ngwr 8.0.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 (431) hide show
  1. package/README.md +75 -28
  2. package/action-sheet/styles/_index.scss +93 -0
  3. package/alert/styles/_index.scss +10 -10
  4. package/anchor/styles/_index.scss +3 -3
  5. package/back-top/styles/_index.scss +1 -1
  6. package/badge/styles/_tag.scss +3 -3
  7. package/bar-chart/styles/_index.scss +4 -4
  8. package/border-glow/styles/_index.scss +3 -3
  9. package/breadcrumbs/styles/_index.scss +3 -3
  10. package/burger/styles/_index.scss +1 -1
  11. package/button/styles/_index.scss +4 -4
  12. package/calendar/styles/_index.scss +4 -4
  13. package/calendar-heatmap/styles/_index.scss +3 -3
  14. package/card/styles/_index.scss +5 -5
  15. package/carousel/styles/_index.scss +5 -5
  16. package/cascader/styles/_index.scss +15 -15
  17. package/checkbox/styles/_index.scss +20 -5
  18. package/collapse/styles/_index.scss +6 -6
  19. package/color-picker/styles/_index.scss +15 -9
  20. package/command-palette/styles/_index.scss +19 -16
  21. package/compare/styles/_index.scss +3 -3
  22. package/context-menu/styles/_index.scss +16 -6
  23. package/counter/styles/_index.scss +12 -1
  24. package/date-picker/styles/_index.scss +8 -8
  25. package/descriptions/styles/_index.scss +9 -9
  26. package/dialog/styles/_index.scss +7 -6
  27. package/divider/styles/_index.scss +2 -2
  28. package/donut-chart/styles/_index.scss +3 -3
  29. package/drag-drop/styles/_index.scss +11 -6
  30. package/drawer/styles/_index.scss +15 -6
  31. package/dropdown/styles/_index.scss +5 -5
  32. package/empty/styles/_index.scss +4 -4
  33. package/fesm2022/ngwr-action-sheet.mjs +81 -0
  34. package/fesm2022/ngwr-action-sheet.mjs.map +1 -0
  35. package/fesm2022/ngwr-affix.mjs +3 -3
  36. package/fesm2022/ngwr-alert.mjs +4 -4
  37. package/fesm2022/ngwr-alert.mjs.map +1 -1
  38. package/fesm2022/ngwr-anchor.mjs +4 -4
  39. package/fesm2022/ngwr-anchor.mjs.map +1 -1
  40. package/fesm2022/ngwr-aurora.mjs +5 -4
  41. package/fesm2022/ngwr-aurora.mjs.map +1 -1
  42. package/fesm2022/ngwr-avatar.mjs +4 -4
  43. package/fesm2022/ngwr-avatar.mjs.map +1 -1
  44. package/fesm2022/ngwr-back-top.mjs +4 -4
  45. package/fesm2022/ngwr-back-top.mjs.map +1 -1
  46. package/fesm2022/ngwr-badge.mjs +8 -8
  47. package/fesm2022/ngwr-badge.mjs.map +1 -1
  48. package/fesm2022/ngwr-bar-chart.mjs +4 -4
  49. package/fesm2022/ngwr-bar-chart.mjs.map +1 -1
  50. package/fesm2022/ngwr-blur-text.mjs +3 -3
  51. package/fesm2022/ngwr-border-glow.mjs +4 -4
  52. package/fesm2022/ngwr-border-glow.mjs.map +1 -1
  53. package/fesm2022/ngwr-breadcrumbs.mjs +8 -8
  54. package/fesm2022/ngwr-breadcrumbs.mjs.map +1 -1
  55. package/fesm2022/ngwr-burger.mjs +4 -4
  56. package/fesm2022/ngwr-burger.mjs.map +1 -1
  57. package/fesm2022/ngwr-button.mjs +8 -8
  58. package/fesm2022/ngwr-button.mjs.map +1 -1
  59. package/fesm2022/ngwr-calendar-heatmap.mjs +4 -4
  60. package/fesm2022/ngwr-calendar-heatmap.mjs.map +1 -1
  61. package/fesm2022/ngwr-calendar.mjs +4 -4
  62. package/fesm2022/ngwr-calendar.mjs.map +1 -1
  63. package/fesm2022/ngwr-card.mjs +11 -11
  64. package/fesm2022/ngwr-card.mjs.map +1 -1
  65. package/fesm2022/ngwr-carousel.mjs +7 -7
  66. package/fesm2022/ngwr-carousel.mjs.map +1 -1
  67. package/fesm2022/ngwr-cascader.mjs +52 -60
  68. package/fesm2022/ngwr-cascader.mjs.map +1 -1
  69. package/fesm2022/ngwr-checkbox.mjs +74 -106
  70. package/fesm2022/ngwr-checkbox.mjs.map +1 -1
  71. package/fesm2022/ngwr-circular-text.mjs +5 -4
  72. package/fesm2022/ngwr-circular-text.mjs.map +1 -1
  73. package/fesm2022/ngwr-click-spark.mjs +5 -4
  74. package/fesm2022/ngwr-click-spark.mjs.map +1 -1
  75. package/fesm2022/ngwr-clipboard.mjs +4 -4
  76. package/fesm2022/ngwr-clipboard.mjs.map +1 -1
  77. package/fesm2022/ngwr-collapse.mjs +12 -12
  78. package/fesm2022/ngwr-collapse.mjs.map +1 -1
  79. package/fesm2022/ngwr-color-picker.mjs +58 -66
  80. package/fesm2022/ngwr-color-picker.mjs.map +1 -1
  81. package/fesm2022/ngwr-command-palette.mjs +4 -4
  82. package/fesm2022/ngwr-command-palette.mjs.map +1 -1
  83. package/fesm2022/ngwr-compare.mjs +4 -4
  84. package/fesm2022/ngwr-compare.mjs.map +1 -1
  85. package/fesm2022/ngwr-confetti.mjs +3 -3
  86. package/fesm2022/ngwr-context-menu.mjs +86 -15
  87. package/fesm2022/ngwr-context-menu.mjs.map +1 -1
  88. package/fesm2022/ngwr-cookie.mjs +19 -6
  89. package/fesm2022/ngwr-cookie.mjs.map +1 -1
  90. package/fesm2022/ngwr-counter.mjs +26 -12
  91. package/fesm2022/ngwr-counter.mjs.map +1 -1
  92. package/fesm2022/ngwr-date-adapter-fns.mjs +3 -3
  93. package/fesm2022/ngwr-date-adapter-luxon.mjs +3 -3
  94. package/fesm2022/ngwr-date-adapter.mjs +10 -5
  95. package/fesm2022/ngwr-date-adapter.mjs.map +1 -1
  96. package/fesm2022/ngwr-date-picker.mjs +128 -123
  97. package/fesm2022/ngwr-date-picker.mjs.map +1 -1
  98. package/fesm2022/ngwr-decrypt-text.mjs +3 -3
  99. package/fesm2022/ngwr-density.mjs +7 -7
  100. package/fesm2022/ngwr-density.mjs.map +1 -1
  101. package/fesm2022/ngwr-descriptions.mjs +7 -7
  102. package/fesm2022/ngwr-descriptions.mjs.map +1 -1
  103. package/fesm2022/ngwr-dialog.mjs +16 -16
  104. package/fesm2022/ngwr-dialog.mjs.map +1 -1
  105. package/fesm2022/ngwr-directives.mjs +21 -15
  106. package/fesm2022/ngwr-directives.mjs.map +1 -1
  107. package/fesm2022/ngwr-divider.mjs +4 -4
  108. package/fesm2022/ngwr-divider.mjs.map +1 -1
  109. package/fesm2022/ngwr-donut-chart.mjs +4 -4
  110. package/fesm2022/ngwr-donut-chart.mjs.map +1 -1
  111. package/fesm2022/ngwr-drag-drop.mjs +10 -9
  112. package/fesm2022/ngwr-drag-drop.mjs.map +1 -1
  113. package/fesm2022/ngwr-drawer.mjs +19 -18
  114. package/fesm2022/ngwr-drawer.mjs.map +1 -1
  115. package/fesm2022/ngwr-dropdown.mjs +13 -12
  116. package/fesm2022/ngwr-dropdown.mjs.map +1 -1
  117. package/fesm2022/ngwr-empty.mjs +4 -4
  118. package/fesm2022/ngwr-empty.mjs.map +1 -1
  119. package/fesm2022/ngwr-falling-text.mjs +5 -4
  120. package/fesm2022/ngwr-falling-text.mjs.map +1 -1
  121. package/fesm2022/ngwr-file-upload.mjs +58 -60
  122. package/fesm2022/ngwr-file-upload.mjs.map +1 -1
  123. package/fesm2022/ngwr-form.mjs +11 -11
  124. package/fesm2022/ngwr-form.mjs.map +1 -1
  125. package/fesm2022/ngwr-fuzzy-text.mjs +5 -4
  126. package/fesm2022/ngwr-fuzzy-text.mjs.map +1 -1
  127. package/fesm2022/ngwr-gauge.mjs +4 -4
  128. package/fesm2022/ngwr-gauge.mjs.map +1 -1
  129. package/fesm2022/ngwr-glitch-text.mjs +4 -4
  130. package/fesm2022/ngwr-glitch-text.mjs.map +1 -1
  131. package/fesm2022/ngwr-gradient-text.mjs +4 -4
  132. package/fesm2022/ngwr-gradient-text.mjs.map +1 -1
  133. package/fesm2022/ngwr-hotkey.mjs +7 -7
  134. package/fesm2022/ngwr-hotkey.mjs.map +1 -1
  135. package/fesm2022/ngwr-i18n.mjs +10 -10
  136. package/fesm2022/ngwr-i18n.mjs.map +1 -1
  137. package/fesm2022/ngwr-icon-adapters-lucide.mjs +6 -7
  138. package/fesm2022/ngwr-icon-adapters-lucide.mjs.map +1 -1
  139. package/fesm2022/ngwr-icon.mjs +4 -4
  140. package/fesm2022/ngwr-icon.mjs.map +1 -1
  141. package/fesm2022/ngwr-image-cropper.mjs +6 -5
  142. package/fesm2022/ngwr-image-cropper.mjs.map +1 -1
  143. package/fesm2022/ngwr-input-number.mjs +56 -73
  144. package/fesm2022/ngwr-input-number.mjs.map +1 -1
  145. package/fesm2022/ngwr-input-otp.mjs +46 -52
  146. package/fesm2022/ngwr-input-otp.mjs.map +1 -1
  147. package/fesm2022/ngwr-input.mjs +17 -17
  148. package/fesm2022/ngwr-input.mjs.map +1 -1
  149. package/fesm2022/ngwr-keyboard.mjs +4 -4
  150. package/fesm2022/ngwr-keyboard.mjs.map +1 -1
  151. package/fesm2022/ngwr-knob.mjs +47 -58
  152. package/fesm2022/ngwr-knob.mjs.map +1 -1
  153. package/fesm2022/ngwr-layout.mjs +16 -16
  154. package/fesm2022/ngwr-layout.mjs.map +1 -1
  155. package/fesm2022/ngwr-lightbox.mjs +7 -6
  156. package/fesm2022/ngwr-lightbox.mjs.map +1 -1
  157. package/fesm2022/ngwr-line-chart.mjs +4 -4
  158. package/fesm2022/ngwr-line-chart.mjs.map +1 -1
  159. package/fesm2022/ngwr-list.mjs +8 -8
  160. package/fesm2022/ngwr-list.mjs.map +1 -1
  161. package/fesm2022/ngwr-loading-bar.mjs +7 -7
  162. package/fesm2022/ngwr-loading-bar.mjs.map +1 -1
  163. package/fesm2022/ngwr-marquee.mjs +6 -5
  164. package/fesm2022/ngwr-marquee.mjs.map +1 -1
  165. package/fesm2022/ngwr-media.mjs +4 -4
  166. package/fesm2022/ngwr-media.mjs.map +1 -1
  167. package/fesm2022/ngwr-mention.mjs +15 -9
  168. package/fesm2022/ngwr-mention.mjs.map +1 -1
  169. package/fesm2022/ngwr-meta.mjs +7 -7
  170. package/fesm2022/ngwr-meta.mjs.map +1 -1
  171. package/fesm2022/ngwr-meter-group.mjs +4 -4
  172. package/fesm2022/ngwr-meter-group.mjs.map +1 -1
  173. package/fesm2022/ngwr-overlay.mjs +9 -4
  174. package/fesm2022/ngwr-overlay.mjs.map +1 -1
  175. package/fesm2022/ngwr-page-header.mjs +4 -4
  176. package/fesm2022/ngwr-page-header.mjs.map +1 -1
  177. package/fesm2022/ngwr-pagination.mjs +4 -4
  178. package/fesm2022/ngwr-pagination.mjs.map +1 -1
  179. package/fesm2022/ngwr-pipes.mjs +21 -21
  180. package/fesm2022/ngwr-platform.mjs +169 -5
  181. package/fesm2022/ngwr-platform.mjs.map +1 -1
  182. package/fesm2022/ngwr-popconfirm.mjs +7 -7
  183. package/fesm2022/ngwr-popconfirm.mjs.map +1 -1
  184. package/fesm2022/ngwr-popover.mjs +7 -7
  185. package/fesm2022/ngwr-popover.mjs.map +1 -1
  186. package/fesm2022/ngwr-progress.mjs +4 -4
  187. package/fesm2022/ngwr-progress.mjs.map +1 -1
  188. package/fesm2022/ngwr-pull-to-refresh.mjs +172 -0
  189. package/fesm2022/ngwr-pull-to-refresh.mjs.map +1 -0
  190. package/fesm2022/ngwr-qr.mjs +5 -5
  191. package/fesm2022/ngwr-qr.mjs.map +1 -1
  192. package/fesm2022/ngwr-radio.mjs +27 -52
  193. package/fesm2022/ngwr-radio.mjs.map +1 -1
  194. package/fesm2022/ngwr-rating.mjs +35 -48
  195. package/fesm2022/ngwr-rating.mjs.map +1 -1
  196. package/fesm2022/ngwr-result.mjs +13 -13
  197. package/fesm2022/ngwr-result.mjs.map +1 -1
  198. package/fesm2022/ngwr-rotating-text.mjs +15 -4
  199. package/fesm2022/ngwr-rotating-text.mjs.map +1 -1
  200. package/fesm2022/ngwr-scroll.mjs +4 -4
  201. package/fesm2022/ngwr-scroll.mjs.map +1 -1
  202. package/fesm2022/ngwr-segmented.mjs +3 -3
  203. package/fesm2022/ngwr-segmented.mjs.map +1 -1
  204. package/fesm2022/ngwr-select.mjs +289 -85
  205. package/fesm2022/ngwr-select.mjs.map +1 -1
  206. package/fesm2022/ngwr-shiny-text.mjs +7 -7
  207. package/fesm2022/ngwr-shiny-text.mjs.map +1 -1
  208. package/fesm2022/ngwr-sidebar.mjs +4 -4
  209. package/fesm2022/ngwr-sidebar.mjs.map +1 -1
  210. package/fesm2022/ngwr-skeleton.mjs +4 -4
  211. package/fesm2022/ngwr-skeleton.mjs.map +1 -1
  212. package/fesm2022/ngwr-slider.mjs +79 -73
  213. package/fesm2022/ngwr-slider.mjs.map +1 -1
  214. package/fesm2022/ngwr-sparkline.mjs +4 -4
  215. package/fesm2022/ngwr-sparkline.mjs.map +1 -1
  216. package/fesm2022/ngwr-speed-dial.mjs +13 -5
  217. package/fesm2022/ngwr-speed-dial.mjs.map +1 -1
  218. package/fesm2022/ngwr-spinner.mjs +4 -4
  219. package/fesm2022/ngwr-spinner.mjs.map +1 -1
  220. package/fesm2022/ngwr-splash-cursor.mjs +4 -4
  221. package/fesm2022/ngwr-splash-cursor.mjs.map +1 -1
  222. package/fesm2022/ngwr-split-text.mjs +3 -3
  223. package/fesm2022/ngwr-splitter.mjs +4 -4
  224. package/fesm2022/ngwr-splitter.mjs.map +1 -1
  225. package/fesm2022/ngwr-spotlight-card.mjs +7 -7
  226. package/fesm2022/ngwr-spotlight-card.mjs.map +1 -1
  227. package/fesm2022/ngwr-squircle.mjs +7 -7
  228. package/fesm2022/ngwr-squircle.mjs.map +1 -1
  229. package/fesm2022/ngwr-star-border.mjs +4 -4
  230. package/fesm2022/ngwr-star-border.mjs.map +1 -1
  231. package/fesm2022/ngwr-statistic.mjs +65 -10
  232. package/fesm2022/ngwr-statistic.mjs.map +1 -1
  233. package/fesm2022/ngwr-stepper.mjs +8 -8
  234. package/fesm2022/ngwr-stepper.mjs.map +1 -1
  235. package/fesm2022/ngwr-storage.mjs +4 -4
  236. package/fesm2022/ngwr-storage.mjs.map +1 -1
  237. package/fesm2022/ngwr-switch.mjs +16 -48
  238. package/fesm2022/ngwr-switch.mjs.map +1 -1
  239. package/fesm2022/ngwr-table.mjs +824 -20
  240. package/fesm2022/ngwr-table.mjs.map +1 -1
  241. package/fesm2022/ngwr-tabs.mjs +9 -8
  242. package/fesm2022/ngwr-tabs.mjs.map +1 -1
  243. package/fesm2022/ngwr-textarea.mjs +18 -50
  244. package/fesm2022/ngwr-textarea.mjs.map +1 -1
  245. package/fesm2022/ngwr-theme.mjs +20 -5
  246. package/fesm2022/ngwr-theme.mjs.map +1 -1
  247. package/fesm2022/ngwr-tilt-card.mjs +27 -11
  248. package/fesm2022/ngwr-tilt-card.mjs.map +1 -1
  249. package/fesm2022/ngwr-timeline.mjs +7 -7
  250. package/fesm2022/ngwr-timeline.mjs.map +1 -1
  251. package/fesm2022/ngwr-toast.mjs +10 -10
  252. package/fesm2022/ngwr-toast.mjs.map +1 -1
  253. package/fesm2022/ngwr-toolbar.mjs +4 -4
  254. package/fesm2022/ngwr-toolbar.mjs.map +1 -1
  255. package/fesm2022/ngwr-tree.mjs +280 -84
  256. package/fesm2022/ngwr-tree.mjs.map +1 -1
  257. package/fesm2022/ngwr-typewriter.mjs +10 -5
  258. package/fesm2022/ngwr-typewriter.mjs.map +1 -1
  259. package/fesm2022/ngwr-typography.mjs +4 -4
  260. package/fesm2022/ngwr-typography.mjs.map +1 -1
  261. package/fesm2022/ngwr-validators.mjs +1 -1
  262. package/fesm2022/ngwr-validators.mjs.map +1 -1
  263. package/fesm2022/ngwr-version.mjs +1 -1
  264. package/fesm2022/ngwr-version.mjs.map +1 -1
  265. package/fesm2022/ngwr-virtual-scroll.mjs +9 -7
  266. package/fesm2022/ngwr-virtual-scroll.mjs.map +1 -1
  267. package/fesm2022/ngwr-waves.mjs +6 -5
  268. package/fesm2022/ngwr-waves.mjs.map +1 -1
  269. package/fesm2022/ngwr-window.mjs +16 -15
  270. package/fesm2022/ngwr-window.mjs.map +1 -1
  271. package/file-upload/styles/_index.scss +11 -11
  272. package/form/styles/_index.scss +4 -4
  273. package/gauge/styles/_index.scss +2 -2
  274. package/glitch-text/styles/_index.scss +1 -1
  275. package/gradient-text/styles/_index.scss +1 -1
  276. package/image-cropper/styles/_index.scss +5 -4
  277. package/input/styles/_index.scss +9 -9
  278. package/input-number/styles/_index.scss +1 -1
  279. package/input-otp/styles/_index.scss +5 -5
  280. package/keyboard/styles/_index.scss +5 -5
  281. package/knob/styles/_index.scss +6 -2
  282. package/layout/styles/_index.scss +12 -12
  283. package/lightbox/styles/_index.scss +10 -8
  284. package/line-chart/styles/_index.scss +5 -5
  285. package/list/styles/_index.scss +3 -3
  286. package/llms-full.txt +31 -5
  287. package/llms.txt +48 -32
  288. package/marquee/styles/_index.scss +1 -1
  289. package/mention/styles/_index.scss +4 -4
  290. package/meter-group/styles/_index.scss +4 -4
  291. package/overlay/styles/_index.scss +8 -0
  292. package/package.json +21 -9
  293. package/page-header/styles/_index.scss +4 -4
  294. package/pagination/styles/_index.scss +3 -3
  295. package/popconfirm/styles/_index.scss +3 -3
  296. package/popover/styles/_index.scss +5 -5
  297. package/progress/styles/_index.scss +1 -1
  298. package/pull-to-refresh/styles/_index.scss +38 -0
  299. package/radio/styles/_index.scss +4 -4
  300. package/rating/styles/_index.scss +1 -1
  301. package/result/styles/_index.scss +3 -3
  302. package/schematics/migrations/v9/index.js +71 -0
  303. package/schematics/migrations.json +5 -0
  304. package/schematics/ng-add/schema.json +1 -1
  305. package/schematics/use/symbol-map.json +13 -0
  306. package/segmented/styles/_index.scss +4 -4
  307. package/select/styles/_index.scss +53 -18
  308. package/shiny-text/styles/_index.scss +4 -4
  309. package/sidebar/styles/_index.scss +12 -12
  310. package/slider/styles/_index.scss +5 -5
  311. package/speed-dial/styles/_index.scss +22 -6
  312. package/splash-cursor/styles/_index.scss +1 -0
  313. package/splitter/styles/_index.scss +7 -4
  314. package/spotlight-card/styles/_index.scss +7 -7
  315. package/star-border/styles/_index.scss +3 -3
  316. package/statistic/styles/_index.scss +51 -4
  317. package/stepper/styles/_index.scss +6 -6
  318. package/styles/_typography.scss +4 -1
  319. package/styles.scss +2 -0
  320. package/switch/styles/_index.scss +4 -4
  321. package/table/styles/_index.scss +447 -17
  322. package/tabs/styles/_index.scss +3 -3
  323. package/textarea/styles/_index.scss +7 -7
  324. package/theme/styles/_colors.scss +27 -3
  325. package/tilt-card/styles/_index.scss +4 -4
  326. package/timeline/styles/_index.scss +7 -6
  327. package/toast/styles/_index.scss +11 -11
  328. package/toolbar/styles/_index.scss +4 -4
  329. package/tree/styles/_index.scss +45 -15
  330. package/types/ngwr-action-sheet.d.ts +75 -0
  331. package/types/ngwr-alert.d.ts +1 -1
  332. package/types/ngwr-anchor.d.ts +1 -1
  333. package/types/ngwr-avatar.d.ts +1 -1
  334. package/types/ngwr-back-top.d.ts +1 -1
  335. package/types/ngwr-badge.d.ts +4 -4
  336. package/types/ngwr-bar-chart.d.ts +1 -1
  337. package/types/ngwr-breadcrumbs.d.ts +1 -1
  338. package/types/ngwr-burger.d.ts +1 -1
  339. package/types/ngwr-button.d.ts +3 -3
  340. package/types/ngwr-calendar-heatmap.d.ts +1 -1
  341. package/types/ngwr-calendar.d.ts +1 -1
  342. package/types/ngwr-card.d.ts +1 -1
  343. package/types/ngwr-carousel.d.ts +1 -1
  344. package/types/ngwr-cascader.d.ts +27 -16
  345. package/types/ngwr-checkbox.d.ts +63 -43
  346. package/types/ngwr-clipboard.d.ts +1 -1
  347. package/types/ngwr-collapse.d.ts +3 -3
  348. package/types/ngwr-color-picker.d.ts +24 -19
  349. package/types/ngwr-command-palette.d.ts +1 -1
  350. package/types/ngwr-compare.d.ts +1 -1
  351. package/types/ngwr-context-menu.d.ts +25 -1
  352. package/types/ngwr-cookie.d.ts +7 -1
  353. package/types/ngwr-counter.d.ts +9 -2
  354. package/types/ngwr-date-picker.d.ts +36 -23
  355. package/types/ngwr-density.d.ts +1 -1
  356. package/types/ngwr-descriptions.d.ts +1 -1
  357. package/types/ngwr-dialog.d.ts +1 -1
  358. package/types/ngwr-directives.d.ts +1 -0
  359. package/types/ngwr-divider.d.ts +2 -2
  360. package/types/ngwr-donut-chart.d.ts +1 -1
  361. package/types/ngwr-drag-drop.d.ts +1 -1
  362. package/types/ngwr-drawer.d.ts +1 -1
  363. package/types/ngwr-dropdown.d.ts +1 -1
  364. package/types/ngwr-empty.d.ts +1 -1
  365. package/types/ngwr-file-upload.d.ts +28 -17
  366. package/types/ngwr-form.d.ts +2 -2
  367. package/types/ngwr-gauge.d.ts +1 -1
  368. package/types/ngwr-hotkey.d.ts +1 -1
  369. package/types/ngwr-i18n.d.ts +1 -1
  370. package/types/ngwr-icon-adapters-lucide.d.ts +5 -3
  371. package/types/ngwr-icon.d.ts +1 -1
  372. package/types/ngwr-image-cropper.d.ts +1 -1
  373. package/types/ngwr-input-number.d.ts +25 -19
  374. package/types/ngwr-input-otp.d.ts +23 -17
  375. package/types/ngwr-input.d.ts +2 -2
  376. package/types/ngwr-keyboard.d.ts +1 -1
  377. package/types/ngwr-knob.d.ts +24 -19
  378. package/types/ngwr-layout.d.ts +1 -1
  379. package/types/ngwr-lightbox.d.ts +1 -1
  380. package/types/ngwr-line-chart.d.ts +1 -1
  381. package/types/ngwr-list.d.ts +1 -1
  382. package/types/ngwr-loading-bar.d.ts +1 -1
  383. package/types/ngwr-marquee.d.ts +1 -1
  384. package/types/ngwr-media.d.ts +1 -1
  385. package/types/ngwr-mention.d.ts +1 -1
  386. package/types/ngwr-meta.d.ts +1 -1
  387. package/types/ngwr-meter-group.d.ts +1 -1
  388. package/types/ngwr-page-header.d.ts +1 -1
  389. package/types/ngwr-pagination.d.ts +1 -1
  390. package/types/ngwr-platform.d.ts +93 -2
  391. package/types/ngwr-popconfirm.d.ts +3 -3
  392. package/types/ngwr-progress.d.ts +2 -2
  393. package/types/ngwr-pull-to-refresh.d.ts +69 -0
  394. package/types/ngwr-qr.d.ts +1 -1
  395. package/types/ngwr-radio.d.ts +25 -22
  396. package/types/ngwr-rating.d.ts +28 -20
  397. package/types/ngwr-result.d.ts +1 -1
  398. package/types/ngwr-rotating-text.d.ts +1 -0
  399. package/types/ngwr-scroll.d.ts +1 -1
  400. package/types/ngwr-segmented.d.ts +1 -1
  401. package/types/ngwr-select.d.ts +93 -26
  402. package/types/ngwr-sidebar.d.ts +1 -1
  403. package/types/ngwr-skeleton.d.ts +2 -2
  404. package/types/ngwr-slider.d.ts +35 -21
  405. package/types/ngwr-sparkline.d.ts +1 -1
  406. package/types/ngwr-speed-dial.d.ts +8 -2
  407. package/types/ngwr-spinner.d.ts +1 -1
  408. package/types/ngwr-splitter.d.ts +1 -1
  409. package/types/ngwr-squircle.d.ts +1 -1
  410. package/types/ngwr-statistic.d.ts +40 -5
  411. package/types/ngwr-stepper.d.ts +2 -2
  412. package/types/ngwr-storage.d.ts +1 -1
  413. package/types/ngwr-switch.d.ts +20 -16
  414. package/types/ngwr-table.d.ts +417 -6
  415. package/types/ngwr-tabs.d.ts +1 -1
  416. package/types/ngwr-textarea.d.ts +21 -18
  417. package/types/ngwr-theme.d.ts +7 -2
  418. package/types/ngwr-tilt-card.d.ts +3 -0
  419. package/types/ngwr-timeline.d.ts +1 -1
  420. package/types/ngwr-toast.d.ts +1 -1
  421. package/types/ngwr-toolbar.d.ts +1 -1
  422. package/types/ngwr-tree.d.ts +100 -19
  423. package/types/ngwr-typography.d.ts +1 -1
  424. package/types/ngwr-validators.d.ts +1 -1
  425. package/types/ngwr-version.d.ts +1 -1
  426. package/types/ngwr-virtual-scroll.d.ts +1 -1
  427. package/types/ngwr-window.d.ts +1 -1
  428. package/typography/styles/_index.scss +11 -11
  429. package/virtual-scroll/styles/_index.scss +1 -1
  430. package/waves/styles/_index.scss +1 -1
  431. package/window/styles/_index.scss +18 -18
@@ -1,32 +1,39 @@
1
1
  import * as _angular_core from '@angular/core';
2
2
  import { InjectionToken, Signal } from '@angular/core';
3
- import { ControlValueAccessor } from '@angular/forms';
3
+ import { FormCheckboxControl, FormValueControl } from '@angular/forms/signals';
4
4
 
5
5
  /**
6
6
  * Two-state checkbox.
7
7
  *
8
- * **Standalone mode** — boolean value, works as a `ControlValueAccessor`:
8
+ * A signal-forms native control: it implements `FormCheckboxControl`, so
9
+ * `[formField]` binds straight to its `checked` model — no
10
+ * `ControlValueAccessor` in between. `[(checked)]` works standalone, and
11
+ * classic `[(ngModel)]` / reactive forms keep working through Angular's bridge.
9
12
  *
10
13
  * @example
11
14
  * ```html
12
- * <wr-checkbox [(ngModel)]="agree">I agree</wr-checkbox>
15
+ * <wr-checkbox [(checked)]="agree">I agree</wr-checkbox>
16
+ * <wr-checkbox [formField]="form.agree">I agree</wr-checkbox>
13
17
  * ```
14
18
  *
15
- * **Inside `<wr-checkbox-group>`** — the checkbox's `value` is added to
16
- * or removed from the group's array. The standalone CVA is ignored.
19
+ * **Inside `<wr-checkbox-group>`** — the checkbox's `checkboxValue` is added to
20
+ * or removed from the group's array, and the group is the native form control.
21
+ * (The identity input is `checkboxValue`, not `value`, because
22
+ * `FormCheckboxControl` reserves `value` — its form state is the boolean
23
+ * `checked`.)
17
24
  *
18
25
  * @example
19
26
  * ```html
20
- * <wr-checkbox-group [(ngModel)]="features">
21
- * <wr-checkbox value="autosave">Autosave</wr-checkbox>
22
- * <wr-checkbox value="notifications">Notifications</wr-checkbox>
27
+ * <wr-checkbox-group [formField]="form.features">
28
+ * <wr-checkbox checkboxValue="autosave">Autosave</wr-checkbox>
29
+ * <wr-checkbox checkboxValue="notifications">Notifications</wr-checkbox>
23
30
  * </wr-checkbox-group>
24
31
  * ```
25
32
  *
26
- * @see https://ngwr.dev/components/checkbox
33
+ * @see https://ngwr.dev/reference/components/checkbox
27
34
  */
28
35
  type WrCheckboxSize = 'sm' | 'md' | 'lg';
29
- declare class WrCheckbox implements ControlValueAccessor {
36
+ declare class WrCheckbox implements FormCheckboxControl {
30
37
  /**
31
38
  * Stable id used to associate the native input with its label.
32
39
  *
@@ -34,12 +41,23 @@ declare class WrCheckbox implements ControlValueAccessor {
34
41
  */
35
42
  readonly id: _angular_core.InputSignal<string>;
36
43
  /**
37
- * Per-checkbox value used only when inside a `<wr-checkbox-group>`.
38
- * Ignored in standalone mode.
44
+ * This checkbox's identity when inside a `<wr-checkbox-group>` — the value
45
+ * added to / removed from the group's array. Ignored in standalone mode.
46
+ * (Named `checkboxValue`, not `value`, because `FormCheckboxControl` reserves
47
+ * `value`.)
39
48
  */
40
- readonly value: _angular_core.InputSignal<unknown>;
49
+ readonly checkboxValue: _angular_core.InputSignal<unknown>;
41
50
  /**
42
- * Disable the checkbox. Also set automatically by Angular forms.
51
+ * Checked state — the form value. Bound by `[formField]`, two-way via
52
+ * `[(checked)]`, or `[(ngModel)]`. Ignored inside a `<wr-checkbox-group>`,
53
+ * where the group's array is the source of truth.
54
+ */
55
+ readonly checked: _angular_core.ModelSignal<boolean>;
56
+ /** Emitted on blur so a bound field can mark itself touched. */
57
+ readonly touch: _angular_core.OutputEmitterRef<void>;
58
+ /**
59
+ * Disable the checkbox. Bound automatically from the field's disabled state
60
+ * when used with `[formField]`.
43
61
  *
44
62
  * @default false
45
63
  */
@@ -51,24 +69,25 @@ declare class WrCheckbox implements ControlValueAccessor {
51
69
  * default checkmark. Use any registered NGWR icon.
52
70
  */
53
71
  readonly icon: _angular_core.InputSignal<string | null>;
72
+ /**
73
+ * Show the indeterminate ("mixed") state — a dash instead of a check. Visual
74
+ * only and controlled: set it yourself for a parent "select all" whose
75
+ * children are partly checked, and clear it on the next toggle. Takes visual
76
+ * precedence over `checked`; the native input reports `aria-checked="mixed"`.
77
+ *
78
+ * @default false
79
+ */
80
+ readonly indeterminate: _angular_core.InputSignalWithTransform<boolean, any>;
54
81
  private readonly group;
55
- protected readonly standaloneChecked: _angular_core.WritableSignal<boolean>;
56
- protected readonly standaloneDisabledFromCva: _angular_core.WritableSignal<boolean>;
57
- /** Derived "is checked". Reads from group when grouped, else local state. */
58
- protected readonly checked: _angular_core.Signal<boolean>;
59
- /** Effective disabled — input wins, then group, then CVA. */
82
+ /** Rendered "is checked" — reads the group when grouped, else the `checked` model. */
83
+ protected readonly isChecked: _angular_core.Signal<boolean>;
84
+ /** Effective disabled — the `disabled` input wins, then the group. */
60
85
  protected readonly effectiveDisabled: _angular_core.Signal<boolean>;
61
86
  protected readonly classes: _angular_core.Signal<string>;
62
- private onChange;
63
- private onTouched;
64
- writeValue(value: boolean | null): void;
65
- registerOnChange(fn: (value: boolean) => void): void;
66
- registerOnTouched(fn: () => void): void;
67
- setDisabledState(isDisabled: boolean): void;
68
87
  protected onInputChange(event: Event): void;
69
88
  protected onInputBlur(): void;
70
89
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<WrCheckbox, never>;
71
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<WrCheckbox, "wr-checkbox", never, { "id": { "alias": "id"; "required": false; "isSignal": true; }; "value": { "alias": "value"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "icon": { "alias": "icon"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, never>;
90
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<WrCheckbox, "wr-checkbox", never, { "id": { "alias": "id"; "required": false; "isSignal": true; }; "checkboxValue": { "alias": "checkboxValue"; "required": false; "isSignal": true; }; "checked": { "alias": "checked"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "icon": { "alias": "icon"; "required": false; "isSignal": true; }; "indeterminate": { "alias": "indeterminate"; "required": false; "isSignal": true; }; }, { "checked": "checkedChange"; "touch": "touch"; }, never, ["*"], true, never>;
72
91
  }
73
92
 
74
93
  /**
@@ -103,39 +122,40 @@ declare const WR_CHECKBOX_GROUP: InjectionToken<WrCheckboxGroupContext>;
103
122
  * Manages a group of `<wr-checkbox>` children as a single form value
104
123
  * (an array of the checked items' `value` inputs).
105
124
  *
125
+ * A signal-forms native control: it implements `FormValueControl<unknown[]>`,
126
+ * so `[formField]` binds to its `value` model. `[(value)]` works standalone,
127
+ * and classic `[(ngModel)]` / reactive forms keep working through the bridge.
128
+ *
106
129
  * @example
107
130
  * ```html
108
- * <wr-checkbox-group [(ngModel)]="features">
109
- * <wr-checkbox value="autosave">Autosave</wr-checkbox>
110
- * <wr-checkbox value="notifications">Notifications</wr-checkbox>
111
- * <wr-checkbox value="darkmode">Dark mode</wr-checkbox>
131
+ * <wr-checkbox-group [formField]="form.features">
132
+ * <wr-checkbox checkboxValue="autosave">Autosave</wr-checkbox>
133
+ * <wr-checkbox checkboxValue="notifications">Notifications</wr-checkbox>
134
+ * <wr-checkbox checkboxValue="darkmode">Dark mode</wr-checkbox>
112
135
  * </wr-checkbox-group>
113
136
  * ```
114
137
  *
115
- * @see https://ngwr.dev/components/checkbox
138
+ * @see https://ngwr.dev/reference/components/checkbox
116
139
  */
117
- declare class WrCheckboxGroup implements ControlValueAccessor, WrCheckboxGroupContext {
140
+ declare class WrCheckboxGroup implements FormValueControl<unknown[]>, WrCheckboxGroupContext {
118
141
  /**
119
- * Disable every child checkbox. Also set by Angular forms via
120
- * `setDisabledState`.
142
+ * Disable every child checkbox. Bound automatically from the field's
143
+ * disabled state when used with `[formField]`.
121
144
  *
122
145
  * @default false
123
146
  */
124
147
  readonly disabled: _angular_core.InputSignalWithTransform<boolean, any>;
148
+ /** The checked items' values. Bound by `[formField]`, or two-way via `[(value)]`. */
149
+ readonly value: _angular_core.ModelSignal<unknown[]>;
150
+ /** Emitted when a child toggles so a bound field can mark itself touched. */
151
+ readonly touch: _angular_core.OutputEmitterRef<void>;
125
152
  private readonly selected;
126
- private readonly disabledFromCva;
127
- /** Effective disabled state — input wins, CVA second. */
153
+ /** Effective disabled state (WrCheckboxGroupContext). */
128
154
  readonly isDisabled: _angular_core.Signal<boolean>;
129
- private onChange;
130
- private onTouched;
131
155
  isSelected(value: unknown): boolean;
132
156
  toggle(value: unknown): void;
133
- writeValue(value: unknown): void;
134
- registerOnChange(fn: (value: unknown[]) => void): void;
135
- registerOnTouched(fn: () => void): void;
136
- setDisabledState(isDisabled: boolean): void;
137
157
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<WrCheckboxGroup, never>;
138
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<WrCheckboxGroup, "wr-checkbox-group", never, { "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, never>;
158
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<WrCheckboxGroup, "wr-checkbox-group", never, { "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "value": { "alias": "value"; "required": false; "isSignal": true; }; }, { "value": "valueChange"; "touch": "touch"; }, never, ["*"], true, never>;
139
159
  }
140
160
 
141
161
  export { WR_CHECKBOX_GROUP, WrCheckbox, WrCheckboxGroup };
@@ -25,7 +25,7 @@ type WrClipboardPermission = 'granted' | 'denied' | 'prompt' | 'unsupported';
25
25
  * await clip.permission('write'); // 'granted' | 'denied' | 'prompt' | 'unsupported'
26
26
  * ```
27
27
  *
28
- * @see https://ngwr.dev/services/clipboard
28
+ * @see https://ngwr.dev/reference/services/clipboard
29
29
  */
30
30
  declare class WrClipboard {
31
31
  private readonly doc;
@@ -18,7 +18,7 @@ import { InjectionToken, Signal } from '@angular/core';
18
18
  * </wr-collapse-group>
19
19
  * ```
20
20
  *
21
- * @see https://ngwr.dev/components/collapse
21
+ * @see https://ngwr.dev/reference/components/collapse
22
22
  */
23
23
  declare class WrCollapse {
24
24
  /** Header text. */
@@ -89,7 +89,7 @@ interface Member$1 {
89
89
  * Visual + behavioral grouping of `<wr-collapse>` children. When
90
90
  * `accordion` is true, opening one child closes the others.
91
91
  *
92
- * @see https://ngwr.dev/components/collapse
92
+ * @see https://ngwr.dev/reference/components/collapse
93
93
  */
94
94
  declare class WrCollapseGroup implements WrCollapseGroupContext {
95
95
  /** When true, only one child may be open at a time. @default false */
@@ -122,7 +122,7 @@ interface Member {
122
122
  * </wr-accordion>
123
123
  * ```
124
124
  *
125
- * @see https://ngwr.dev/components/collapse
125
+ * @see https://ngwr.dev/reference/components/collapse
126
126
  */
127
127
  declare class WrAccordion implements WrCollapseGroupContext {
128
128
  /** Always behaves as an accordion. Provided for context-interface symmetry. */
@@ -1,5 +1,5 @@
1
1
  import * as _angular_core from '@angular/core';
2
- import { ControlValueAccessor } from '@angular/forms';
2
+ import { FormValueControl } from '@angular/forms/signals';
3
3
  import { WrSegmentedOption } from 'ngwr/segmented';
4
4
 
5
5
  /**
@@ -169,33 +169,41 @@ type Tab = 'hex' | 'rgb' | 'hsl';
169
169
  type Edges = 'sv' | 'hue' | 'alpha';
170
170
  /**
171
171
  * Inline colour picker — HSV canvas, hue slider, optional alpha slider, HEX
172
- * input. Implements `ControlValueAccessor`, so it binds with `[(ngModel)]`,
173
- * `[formControl]`, or `formControlName`. Output is always a string in the
174
- * format chosen via `[format]`.
172
+ * input.
173
+ *
174
+ * A signal-forms native control: it implements `FormValueControl<string>`, so
175
+ * `[formField]` binds straight to its `value` model — no
176
+ * `ControlValueAccessor` in between. `[(value)]` works standalone. Output is
177
+ * always a hex string.
175
178
  *
176
179
  * @example
177
180
  * ```html
178
- * <wr-color-picker [(ngModel)]="brandColor" />
179
- * <wr-color-picker [(ngModel)]="brandColor" [alpha]="false" />
181
+ * <!-- signal forms -->
182
+ * <wr-color-picker [formField]="form.brandColor" />
183
+ *
184
+ * <!-- standalone two-way binding -->
185
+ * <wr-color-picker [(value)]="brandColor" [alpha]="false" />
180
186
  * ```
181
187
  *
182
- * @see https://ngwr.dev/components/color-picker
188
+ * @see https://ngwr.dev/reference/components/color-picker
183
189
  */
184
- declare class WrColorPicker implements ControlValueAccessor {
190
+ declare class WrColorPicker implements FormValueControl<string> {
185
191
  /** Render the alpha slider and emit 8-digit hex / `rgba()`. @default true */
186
192
  readonly alpha: _angular_core.InputSignalWithTransform<boolean, any>;
187
193
  /** Disable interaction. @default false */
188
194
  readonly disabled: _angular_core.InputSignalWithTransform<boolean, any>;
189
- /** Output format produced through the CVA. @default 'hex' */
195
+ /** Output format produced by the control. @default 'hex' */
190
196
  readonly format: _angular_core.InputSignal<WrColorFormat>;
191
197
  /** Preset hex colours rendered as a clickable row beneath the inputs. Empty = no row. @default [] */
192
198
  readonly swatches: _angular_core.InputSignal<readonly string[]>;
199
+ /** The selected colour as a string. Bound by `[formField]`, or two-way via `[(value)]`. */
200
+ readonly value: _angular_core.ModelSignal<string>;
201
+ /** Emitted on blur so a bound field can mark itself touched. */
202
+ readonly touch: _angular_core.OutputEmitterRef<void>;
193
203
  protected readonly h: _angular_core.WritableSignal<number>;
194
204
  protected readonly s: _angular_core.WritableSignal<number>;
195
205
  protected readonly v: _angular_core.WritableSignal<number>;
196
206
  protected readonly a: _angular_core.WritableSignal<number>;
197
- private readonly disabledFromCva;
198
- protected readonly effectiveDisabled: _angular_core.Signal<boolean>;
199
207
  /** RGB view of the current colour, computed lazily. */
200
208
  protected readonly rgb: _angular_core.Signal<WrRgb>;
201
209
  /** Canonical hex (used by the input field and by drag emits). */
@@ -219,12 +227,9 @@ declare class WrColorPicker implements ControlValueAccessor {
219
227
  protected readonly alphaPercent: _angular_core.Signal<number>;
220
228
  protected readonly tabOptions: readonly WrSegmentedOption<Tab>[];
221
229
  protected readonly classes: _angular_core.Signal<string>;
222
- private onChange;
223
- private onTouched;
224
- writeValue(value: string | null): void;
225
- registerOnChange(fn: (value: string) => void): void;
226
- registerOnTouched(fn: () => void): void;
227
- setDisabledState(isDisabled: boolean): void;
230
+ /** Last hex we pushed into `value`; lets the sync effect ignore our own writes. */
231
+ private lastEmittedHex;
232
+ constructor();
228
233
  protected onPointerDown(event: PointerEvent, surface: Edges): void;
229
234
  private updateFromEvent;
230
235
  protected onHexInput(event: Event): void;
@@ -239,7 +244,7 @@ declare class WrColorPicker implements ControlValueAccessor {
239
244
  /** Push an RGB triple into the HSV source of truth (preserving the current alpha if the swap removes it). */
240
245
  private applyRgb;
241
246
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<WrColorPicker, never>;
242
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<WrColorPicker, "wr-color-picker", never, { "alpha": { "alias": "alpha"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "format": { "alias": "format"; "required": false; "isSignal": true; }; "swatches": { "alias": "swatches"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
247
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<WrColorPicker, "wr-color-picker", never, { "alpha": { "alias": "alpha"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "format": { "alias": "format"; "required": false; "isSignal": true; }; "swatches": { "alias": "swatches"; "required": false; "isSignal": true; }; "value": { "alias": "value"; "required": false; "isSignal": true; }; }, { "value": "valueChange"; "touch": "touch"; }, never, never, true, never>;
243
248
  }
244
249
 
245
250
  /**
@@ -262,7 +267,7 @@ declare class WrColorPicker implements ControlValueAccessor {
262
267
  * </button>
263
268
  * ```
264
269
  *
265
- * @see https://ngwr.dev/components/color-picker
270
+ * @see https://ngwr.dev/reference/components/color-picker
266
271
  */
267
272
  declare class WrColorPickerTrigger {
268
273
  /** Two-way bindable colour value (hex string). */
@@ -53,7 +53,7 @@ interface Bucket {
53
53
  * <wr-command-palette [items]="commands" trigger="mod+k" (picked)="onPicked($event)" />
54
54
  * ```
55
55
  *
56
- * @see https://ngwr.dev/components/command-palette
56
+ * @see https://ngwr.dev/reference/components/command-palette
57
57
  */
58
58
  declare class WrCommandPalette {
59
59
  /** Items shown in the palette. */
@@ -19,7 +19,7 @@ import * as _angular_core from '@angular/core';
19
19
  * </wr-compare>
20
20
  * ```
21
21
  *
22
- * @see https://ngwr.dev/components/compare
22
+ * @see https://ngwr.dev/reference/components/compare
23
23
  */
24
24
  declare class WrCompare {
25
25
  /** Divider position as a percentage (0–100). Two-way bindable. @default 50 */
@@ -37,7 +37,7 @@ declare class WrContextMenuPanel {
37
37
  * </wr-context-menu>
38
38
  * ```
39
39
  *
40
- * @see https://ngwr.dev/components/context-menu
40
+ * @see https://ngwr.dev/reference/components/context-menu
41
41
  */
42
42
  declare class WrContextMenu {
43
43
  /** Menu to open. Pass a `<wr-context-menu>` template reference. */
@@ -50,6 +50,13 @@ declare class WrContextMenu {
50
50
  private overlayRef;
51
51
  private closingTimer;
52
52
  private leaveTimer;
53
+ private pressTimer;
54
+ private pressX;
55
+ private pressY;
56
+ private pressPageX;
57
+ private pressPageY;
58
+ private lastLongPressAt;
59
+ private cancelPressScroll;
53
60
  /**
54
61
  * Single open root menu at a time. Submenu items use this to signal
55
62
  * chain-level hover state: when the cursor enters ANY pane in the
@@ -86,9 +93,26 @@ declare class WrContextMenu {
86
93
  * on a deliberate hover-out.
87
94
  */
88
95
  private static readonly LEAVE_DELAY;
96
+ /** Hold duration before a touch long-press opens the menu. */
97
+ private static readonly LONG_PRESS_MS;
98
+ /** Finger travel (px) that turns a pending long-press into a scroll/drag. */
99
+ private static readonly PRESS_MOVE_TOLERANCE;
89
100
  constructor();
90
101
  /** @internal Right-click handler — opens at the pointer (or re-positions if already open). */
91
102
  protected onContextMenu(event: MouseEvent): void;
103
+ /**
104
+ * @internal Touch/pen long-press → open the menu at the press point. Desktop
105
+ * right-click stays on `(contextmenu)`; this path is filtered to non-mouse
106
+ * pointers. Deliberately does NOT `preventDefault`/`setPointerCapture` or set
107
+ * `touch-action` — a press that turns into a scroll must still scroll, so the
108
+ * open is cancelled on movement (> tolerance), on scroll, and on early lift.
109
+ */
110
+ protected onPointerDown(event: PointerEvent): void;
111
+ /** @internal Finger moved too far before the hold fired — it's a scroll/drag. */
112
+ protected onPointerMove(event: PointerEvent): void;
113
+ /** @internal Lifted (or the browser claimed the gesture) before the hold fired. */
114
+ protected onPointerUp(): void;
115
+ private cancelPress;
92
116
  /** Close the menu. */
93
117
  close(): void;
94
118
  private openOverlay;
@@ -36,10 +36,16 @@ interface WrCookieOptions {
36
36
  * cookies.keys(); // readonly string[]
37
37
  * ```
38
38
  *
39
- * @see https://ngwr.dev/services/cookie
39
+ * @see https://ngwr.dev/reference/services/cookie
40
40
  */
41
41
  declare class WrCookie {
42
42
  private readonly doc;
43
+ /**
44
+ * `document.cookie`, or `''` when it cannot be read. Mirrors the guard on
45
+ * `set()`: under SSR the server DOM has no cookie support and throws on the
46
+ * getter, and sandboxed iframes reject access too.
47
+ */
48
+ private read;
43
49
  /** Is `key` present (regardless of value)? */
44
50
  has(key: string): boolean;
45
51
  /** Read `key`. Returns `fallback` (default `null`) when the key is missing. */
@@ -46,7 +46,7 @@ type Cell = {
46
46
  * <wr-counter [value]="9.99" mode="tween" [decimals]="2" prefix="$" />
47
47
  * ```
48
48
  *
49
- * @see https://ngwr.dev/components/counter
49
+ * @see https://ngwr.dev/reference/components/counter
50
50
  */
51
51
  declare class WrCounter {
52
52
  /** Target value. */
@@ -71,6 +71,13 @@ declare class WrCounter {
71
71
  private rafId;
72
72
  /** Tween-mode formatted output. */
73
73
  protected readonly tweenText: _angular_core.Signal<string>;
74
+ /**
75
+ * Odometer-mode text for assistive tech and prerendered output. The strip
76
+ * renders every digit 0-9 per column and picks one with a transform, so its
77
+ * markup carries no usable text — screen readers would announce all ten, and
78
+ * static HTML would ship the same noise. This node holds the real value.
79
+ */
80
+ protected readonly odoText: _angular_core.Signal<string>;
74
81
  /** Odometer cells — one per character in the formatted target string. */
75
82
  protected readonly cells: _angular_core.Signal<readonly Cell[]>;
76
83
  constructor();
@@ -106,7 +113,7 @@ declare class WrCounter {
106
113
  * <wr-count-up [from]="60" [to]="0" direction="down" />
107
114
  * ```
108
115
  *
109
- * @see https://ngwr.dev/components/counter
116
+ * @see https://ngwr.dev/reference/components/counter
110
117
  */
111
118
  declare class WrCountUp {
112
119
  /** Starting value. @default 0 */
@@ -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. */
@@ -93,13 +104,11 @@ declare class WrDatePicker implements ControlValueAccessor {
93
104
  /** Live calendar ref while the date popover is open — lets the panel track
94
105
  * the typed value in real time (not just on reopen). */
95
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;
96
111
  constructor();
97
- private onChange;
98
- private onTouched;
99
- writeValue(value: Date | null): void;
100
- registerOnChange(fn: (value: Date | null) => void): void;
101
- registerOnTouched(fn: () => void): void;
102
- setDisabledState(isDisabled: boolean): void;
103
112
  protected onInput(event: Event): void;
104
113
  protected onBlur(): void;
105
114
  /** Called by the input's click — opens the overlay if it isn't open already. */
@@ -110,11 +119,15 @@ declare class WrDatePicker implements ControlValueAccessor {
110
119
  private attachTime;
111
120
  private attachDateTime;
112
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;
113
125
  private closeOverlay;
114
126
  private dispose;
115
127
  private isOutOfBounds;
128
+ private sameDate;
116
129
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<WrDatePicker, never>;
117
- 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>;
118
131
  }
119
132
 
120
133
  export { WrDatePicker };
@@ -40,7 +40,7 @@ declare const WR_DENSITY_CONFIG: InjectionToken<WrDensityConfig>;
40
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;
@@ -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;
@@ -32,6 +32,7 @@ declare class WrAutosize {
32
32
  readonly minRows: i0.InputSignalWithTransform<number, unknown>;
33
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 */
@@ -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. */