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,10 +1,13 @@
1
1
  import * as _angular_core from '@angular/core';
2
- import { ControlValueAccessor } from '@angular/forms';
2
+ import { FormValueControl } from '@angular/forms/signals';
3
3
 
4
4
  /**
5
5
  * Numeric input with locale-aware formatting + ▲▼ stepper buttons.
6
6
  *
7
- * Implements `ControlValueAccessor` — value type is `number | null`.
7
+ * A signal-forms native control: it implements `FormValueControl<number | null>`,
8
+ * so `[formField]` binds straight to its `value` model — no
9
+ * `ControlValueAccessor` in between. `[(value)]` works standalone.
10
+ *
8
11
  * Parses leniently while typing (allows partial input like `"1."` or `"-"`),
9
12
  * re-formats with grouping + fixed decimals on blur.
10
13
  *
@@ -13,17 +16,22 @@ import { ControlValueAccessor } from '@angular/forms';
13
16
  *
14
17
  * @example
15
18
  * ```html
16
- * <wr-input-number [(ngModel)]="qty" [min]="0" [max]="100" />
17
- * <wr-input-number [(ngModel)]="price" [decimals]="2" suffix="USD" />
19
+ * <!-- signal forms -->
20
+ * <wr-input-number [formField]="form.qty" [min]="0" [max]="100" />
21
+ *
22
+ * <!-- standalone two-way binding -->
23
+ * <wr-input-number [(value)]="price" [decimals]="2" suffix="USD" />
18
24
  * ```
19
25
  *
20
- * @see https://ngwr.dev/components/input-number
26
+ * @see https://ngwr.dev/reference/components/input-number
21
27
  */
22
- declare class WrInputNumber implements ControlValueAccessor {
28
+ declare class WrInputNumber implements FormValueControl<number | null> {
23
29
  /** Minimum allowed value. @default -Infinity */
24
- readonly min: _angular_core.InputSignalWithTransform<number, unknown>;
30
+ readonly min: _angular_core.InputSignalWithTransform<number | undefined, unknown>;
25
31
  /** Maximum allowed value. @default Infinity */
26
- readonly max: _angular_core.InputSignalWithTransform<number, unknown>;
32
+ readonly max: _angular_core.InputSignalWithTransform<number | undefined, unknown>;
33
+ private readonly minValue;
34
+ private readonly maxValue;
27
35
  /** Step used by stepper buttons + arrow keys. @default 1 */
28
36
  readonly step: _angular_core.InputSignalWithTransform<number, unknown>;
29
37
  /** Fixed number of decimals shown on blur. `null` keeps the entered precision. @default null */
@@ -40,25 +48,23 @@ declare class WrInputNumber implements ControlValueAccessor {
40
48
  readonly disabled: _angular_core.InputSignalWithTransform<boolean, any>;
41
49
  /** Read-only — values cannot be changed (steppers + typing disabled). @default false */
42
50
  readonly readonly: _angular_core.InputSignalWithTransform<boolean, any>;
51
+ /** Numeric value (`null` when empty). Bound by `[formField]`, or two-way via `[(value)]`. */
52
+ readonly value: _angular_core.ModelSignal<number | null>;
53
+ /** Emitted on blur so a bound field can mark itself touched. */
54
+ readonly touch: _angular_core.OutputEmitterRef<void>;
43
55
  private readonly locale;
44
56
  private readonly separators;
45
- /** Current numeric value mirrored from the CVA. */
46
- protected readonly value: _angular_core.WritableSignal<number | null>;
47
57
  /** Text currently in the input (may be partial / invalid mid-type). */
48
58
  protected readonly text: _angular_core.WritableSignal<string>;
49
- private readonly disabledFromCva;
50
- protected readonly effectiveDisabled: _angular_core.Signal<boolean>;
59
+ /** Whether the input is focused. While true, the input handlers own `text`. */
60
+ protected readonly focused: _angular_core.WritableSignal<boolean>;
51
61
  protected readonly interactive: _angular_core.Signal<boolean>;
52
62
  protected readonly atMin: _angular_core.Signal<boolean>;
53
63
  protected readonly atMax: _angular_core.Signal<boolean>;
54
64
  protected readonly classes: _angular_core.Signal<string>;
55
- private onChange;
56
- private onTouched;
57
- writeValue(value: number | null): void;
58
- registerOnChange(fn: (value: number | null) => void): void;
59
- registerOnTouched(fn: () => void): void;
60
- setDisabledState(isDisabled: boolean): void;
65
+ constructor();
61
66
  protected onInput(event: Event): void;
67
+ protected onFocus(): void;
62
68
  protected onBlur(): void;
63
69
  protected onKeydown(event: KeyboardEvent): void;
64
70
  protected stepBy(direction: 1 | -1): void;
@@ -71,7 +77,7 @@ declare class WrInputNumber implements ControlValueAccessor {
71
77
  /** Format a value using `Intl.NumberFormat` for the active locale. */
72
78
  private format;
73
79
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<WrInputNumber, never>;
74
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<WrInputNumber, "wr-input-number", never, { "min": { "alias": "min"; "required": false; "isSignal": true; }; "max": { "alias": "max"; "required": false; "isSignal": true; }; "step": { "alias": "step"; "required": false; "isSignal": true; }; "decimals": { "alias": "decimals"; "required": false; "isSignal": true; }; "showSteppers": { "alias": "showSteppers"; "required": false; "isSignal": true; }; "prefix": { "alias": "prefix"; "required": false; "isSignal": true; }; "suffix": { "alias": "suffix"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "readonly": { "alias": "readonly"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
80
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<WrInputNumber, "wr-input-number", never, { "min": { "alias": "min"; "required": false; "isSignal": true; }; "max": { "alias": "max"; "required": false; "isSignal": true; }; "step": { "alias": "step"; "required": false; "isSignal": true; }; "decimals": { "alias": "decimals"; "required": false; "isSignal": true; }; "showSteppers": { "alias": "showSteppers"; "required": false; "isSignal": true; }; "prefix": { "alias": "prefix"; "required": false; "isSignal": true; }; "suffix": { "alias": "suffix"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "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>;
75
81
  }
76
82
 
77
83
  export { WrInputNumber };
@@ -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
@@ -17,49 +17,59 @@ import { ControlValueAccessor } from '@angular/forms';
17
17
  */
18
18
  type WrInputOtpMode = 'numeric' | 'alphanumeric' | 'text';
19
19
 
20
+ type WrInputOtpSize = 'sm' | 'md' | 'lg';
21
+
20
22
  /**
21
23
  * Fixed-length one-time-code input. Renders one `<input>` per character,
22
24
  * auto-advances focus on typing, handles paste of a full code, and supports
23
25
  * masking like a password field.
24
26
  *
25
- * Implements `ControlValueAccessor` — emits the joined string through
26
- * `[(ngModel)]` / `formControl`. Emits `completed` once all cells are
27
- * filled (useful for auto-submission).
27
+ * A signal-forms native control: it implements `FormValueControl<string>`, so
28
+ * `[formField]` binds straight to its `value` model — no
29
+ * `ControlValueAccessor` in between. `[(value)]` works standalone. Emits
30
+ * `completed` once all cells are filled (useful for auto-submission).
28
31
  *
29
32
  * @example
30
33
  * ```html
31
- * <wr-input-otp [(ngModel)]="code" length="6" (completed)="verify($event)" />
34
+ * <!-- signal forms -->
35
+ * <wr-input-otp [formField]="form.code" length="6" (completed)="verify($event)" />
36
+ *
37
+ * <!-- standalone two-way binding -->
38
+ * <wr-input-otp [(value)]="code" length="6" (completed)="verify($event)" />
32
39
  * ```
33
40
  *
34
- * @see https://ngwr.dev/components/input-otp
41
+ * @see https://ngwr.dev/reference/components/input-otp
35
42
  */
36
- declare class WrInputOtp implements ControlValueAccessor {
43
+ declare class WrInputOtp implements FormValueControl<string> {
37
44
  /** Number of cells to render. Clamped to `[1, 20]`. @default 6 */
38
45
  readonly length: _angular_core.InputSignalWithTransform<number, unknown>;
39
46
  /** Character set per cell. @default 'numeric' */
40
47
  readonly mode: _angular_core.InputSignal<WrInputOtpMode>;
48
+ /** Control size — shares the `--wr-control-*` contract. @default 'md' */
49
+ readonly size: _angular_core.InputSignal<WrInputOtpSize>;
41
50
  /** Mask the typed characters like a password. @default false */
42
51
  readonly mask: _angular_core.InputSignalWithTransform<boolean, any>;
43
- /** Disable interaction. @default false */
52
+ /**
53
+ * Disable interaction. Bound automatically from the field's disabled state
54
+ * when used with `[formField]`.
55
+ *
56
+ * @default false
57
+ */
44
58
  readonly disabled: _angular_core.InputSignalWithTransform<boolean, any>;
45
59
  /** Character shown in empty cells. @default '•' */
46
60
  readonly placeholder: _angular_core.InputSignal<string>;
61
+ /** The entered code. Bound by `[formField]`, or two-way via `[(value)]`. */
62
+ readonly value: _angular_core.ModelSignal<string>;
47
63
  /** Fires once when every cell holds a character. */
48
64
  readonly completed: _angular_core.OutputEmitterRef<string>;
65
+ /** Emitted on blur so a bound field can mark itself touched. */
66
+ readonly touch: _angular_core.OutputEmitterRef<void>;
49
67
  protected readonly cells: _angular_core.WritableSignal<readonly string[]>;
50
- private readonly disabledFromCva;
51
- protected readonly effectiveDisabled: _angular_core.Signal<boolean>;
52
68
  protected readonly classes: _angular_core.Signal<string>;
53
69
  protected readonly cellType: _angular_core.Signal<"text" | "password">;
54
70
  protected readonly cellInputMode: _angular_core.Signal<"numeric" | "text">;
55
71
  protected readonly cellRefs: _angular_core.Signal<readonly ElementRef<HTMLInputElement>[]>;
56
72
  constructor();
57
- private onChange;
58
- private onTouched;
59
- writeValue(v: string | null): void;
60
- registerOnChange(fn: (value: string) => void): void;
61
- registerOnTouched(fn: () => void): void;
62
- setDisabledState(isDisabled: boolean): void;
63
73
  protected onInput(event: Event, index: number): void;
64
74
  protected onKeyDown(event: KeyboardEvent, index: number): void;
65
75
  protected onPaste(event: ClipboardEvent): void;
@@ -71,8 +81,8 @@ declare class WrInputOtp implements ControlValueAccessor {
71
81
  /** Drop a character that doesn't match the configured mode. */
72
82
  private sanitiseChar;
73
83
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<WrInputOtp, never>;
74
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<WrInputOtp, "wr-input-otp", never, { "length": { "alias": "length"; "required": false; "isSignal": true; }; "mode": { "alias": "mode"; "required": false; "isSignal": true; }; "mask": { "alias": "mask"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; }, { "completed": "completed"; }, never, never, true, never>;
84
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<WrInputOtp, "wr-input-otp", never, { "length": { "alias": "length"; "required": false; "isSignal": true; }; "mode": { "alias": "mode"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "mask": { "alias": "mask"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "value": { "alias": "value"; "required": false; "isSignal": true; }; }, { "value": "valueChange"; "completed": "completed"; "touch": "touch"; }, never, never, true, never>;
75
85
  }
76
86
 
77
87
  export { WrInputOtp };
78
- export type { WrInputOtpMode };
88
+ export type { WrInputOtpMode, WrInputOtpSize };
@@ -1,5 +1,25 @@
1
1
  import * as i0 from '@angular/core';
2
2
 
3
+ /**
4
+ * @license
5
+ *
6
+ * Use of this source code is governed by an MIT-style license that can be
7
+ * found in the LICENSE file at https://github.com/thekhegay/ngwr/blob/main/LICENSE
8
+ */
9
+ /**
10
+ * Native input `type` values supported by `<wr-input>`.
11
+ */
12
+ type WrInputType = 'text' | 'number' | 'password' | 'email' | 'search' | 'tel' | 'url';
13
+
14
+ /**
15
+ * @license
16
+ *
17
+ * Use of this source code is governed by an MIT-style license that can be
18
+ * found in the LICENSE file at https://github.com/thekhegay/ngwr/blob/main/LICENSE
19
+ */
20
+ /** Control size for `[wrInput]` — shares the `--wr-control-*` contract. */
21
+ type WrInputSize = 'sm' | 'md' | 'lg';
22
+
3
23
  /**
4
24
  * Applies NGWR input styling to a native `<input>` element.
5
25
  *
@@ -19,14 +39,19 @@ import * as i0 from '@angular/core';
19
39
  * For prefix / suffix / password-toggle layouts, wrap the input in
20
40
  * `<wr-input-group>`.
21
41
  *
22
- * @see https://ngwr.dev/components/input
42
+ * @see https://ngwr.dev/reference/components/input
23
43
  */
24
44
  declare class WrInput {
45
+ /**
46
+ * Control size. Named `wrSize` (not `size`) so it never clashes with the
47
+ * native `<input size>` attribute. @default 'md'
48
+ */
49
+ readonly wrSize: i0.InputSignal<WrInputSize>;
25
50
  /** Pill-shaped corners. @default false */
26
51
  readonly rounded: i0.InputSignalWithTransform<boolean, any>;
27
52
  protected readonly classes: i0.Signal<string>;
28
53
  static ɵfac: i0.ɵɵFactoryDeclaration<WrInput, never>;
29
- static ɵdir: i0.ɵɵDirectiveDeclaration<WrInput, "input[wrInput], textarea[wrInput]", never, { "rounded": { "alias": "rounded"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
54
+ static ɵdir: i0.ɵɵDirectiveDeclaration<WrInput, "input[wrInput], textarea[wrInput]", never, { "wrSize": { "alias": "wrSize"; "required": false; "isSignal": true; }; "rounded": { "alias": "rounded"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
30
55
  }
31
56
 
32
57
  /**
@@ -83,7 +108,7 @@ declare class WrInputSuffix {
83
108
  * </wr-input-group>
84
109
  * ```
85
110
  *
86
- * @see https://ngwr.dev/components/input
111
+ * @see https://ngwr.dev/reference/components/input
87
112
  */
88
113
  declare class WrInputGroup {
89
114
  /** Pill-shaped corners. @default false */
@@ -116,16 +141,5 @@ declare class WrPasswordToggle {
116
141
  static ɵcmp: i0.ɵɵComponentDeclaration<WrPasswordToggle, "wr-password-toggle", never, { "for": { "alias": "for"; "required": true; "isSignal": true; }; }, {}, never, never, true, never>;
117
142
  }
118
143
 
119
- /**
120
- * @license
121
- *
122
- * Use of this source code is governed by an MIT-style license that can be
123
- * found in the LICENSE file at https://github.com/thekhegay/ngwr/blob/main/LICENSE
124
- */
125
- /**
126
- * Native input `type` values supported by `<wr-input>`.
127
- */
128
- type WrInputType = 'text' | 'number' | 'password' | 'email' | 'search' | 'tel' | 'url';
129
-
130
144
  export { WrInput, WrInputGroup, WrInputPrefix, WrInputSuffix, WrPasswordToggle };
131
- export type { WrInputType };
145
+ export type { WrInputSize, WrInputType };
@@ -20,7 +20,7 @@ type WrKbdSize = 'sm' | 'md' | 'lg';
20
20
  * <wr-kbd size="lg">Esc</wr-kbd>
21
21
  * ```
22
22
  *
23
- * @see https://ngwr.dev/components/keyboard
23
+ * @see https://ngwr.dev/reference/components/keyboard
24
24
  */
25
25
  declare class WrKbd {
26
26
  /** Visual size variant. @default 'md' */
@@ -1,23 +1,32 @@
1
1
  import * as _angular_core from '@angular/core';
2
- import { ControlValueAccessor } from '@angular/forms';
2
+ import { FormValueControl } from '@angular/forms/signals';
3
3
 
4
4
  /**
5
- * Radial dial input. CVA-backed `number | null` value clamped to
6
- * `[min, max]`. Drag the indicator around the dial or use ←→ / ↑↓ to step.
5
+ * Radial dial input. A signal-forms native control: it implements
6
+ * `FormValueControl<number>`, so `[formField]` binds straight to its `value`
7
+ * model — no `ControlValueAccessor` in between. `[(value)]` works standalone.
8
+ *
9
+ * The value is clamped to `[min, max]`. Drag the indicator around the dial or
10
+ * use ←→ / ↑↓ to step.
7
11
  *
8
12
  * @example
9
13
  * ```html
10
- * <wr-knob [(ngModel)]="value" [min]="0" [max]="100" />
11
- * <wr-knob [(ngModel)]="vol" suffix="%" valueColor="var(--wr-color-success)" />
14
+ * <!-- signal forms -->
15
+ * <wr-knob [formField]="form.volume" [min]="0" [max]="100" />
16
+ *
17
+ * <!-- standalone two-way binding -->
18
+ * <wr-knob [(value)]="vol" suffix="%" valueColor="var(--wr-color-success)" />
12
19
  * ```
13
20
  *
14
- * @see https://ngwr.dev/components/knob
21
+ * @see https://ngwr.dev/reference/components/knob
15
22
  */
16
- declare class WrKnob implements ControlValueAccessor {
23
+ declare class WrKnob implements FormValueControl<number> {
17
24
  /** Minimum allowed value. @default 0 */
18
- readonly min: _angular_core.InputSignalWithTransform<number, unknown>;
25
+ readonly min: _angular_core.InputSignalWithTransform<number | undefined, unknown>;
19
26
  /** Maximum allowed value. @default 100 */
20
- readonly max: _angular_core.InputSignalWithTransform<number, unknown>;
27
+ readonly max: _angular_core.InputSignalWithTransform<number | undefined, unknown>;
28
+ private readonly minValue;
29
+ private readonly maxValue;
21
30
  /** Step granularity. @default 1 */
22
31
  readonly step: _angular_core.InputSignalWithTransform<number, unknown>;
23
32
  /** Dial diameter in CSS pixels. @default 120 */
@@ -36,10 +45,11 @@ declare class WrKnob implements ControlValueAccessor {
36
45
  readonly readonly: _angular_core.InputSignalWithTransform<boolean, any>;
37
46
  /** Disable interaction. @default false */
38
47
  readonly disabled: _angular_core.InputSignalWithTransform<boolean, any>;
39
- protected readonly value: _angular_core.WritableSignal<number>;
40
- private readonly disabledFromCva;
48
+ /** Bound by `[formField]`, or two-way via `[(value)]`. */
49
+ readonly value: _angular_core.ModelSignal<number>;
50
+ /** Emitted on blur so a bound field can mark itself touched. */
51
+ readonly touch: _angular_core.OutputEmitterRef<void>;
41
52
  private dragging;
42
- protected readonly effectiveDisabled: _angular_core.Signal<boolean>;
43
53
  protected readonly interactive: _angular_core.Signal<boolean>;
44
54
  protected readonly classes: _angular_core.Signal<string>;
45
55
  protected readonly cx = 50;
@@ -57,12 +67,7 @@ declare class WrKnob implements ControlValueAccessor {
57
67
  y: number;
58
68
  }>;
59
69
  private readonly host;
60
- private onChange;
61
- private onTouched;
62
- writeValue(value: number | null): void;
63
- registerOnChange(fn: (value: number | null) => void): void;
64
- registerOnTouched(fn: () => void): void;
65
- setDisabledState(isDisabled: boolean): void;
70
+ constructor();
66
71
  protected onPointerDown(event: PointerEvent): void;
67
72
  protected onPointerMove(event: PointerEvent): void;
68
73
  protected onPointerUp(event: PointerEvent): void;
@@ -71,7 +76,7 @@ declare class WrKnob implements ControlValueAccessor {
71
76
  private commit;
72
77
  private arcPath;
73
78
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<WrKnob, never>;
74
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<WrKnob, "wr-knob", never, { "min": { "alias": "min"; "required": false; "isSignal": true; }; "max": { "alias": "max"; "required": false; "isSignal": true; }; "step": { "alias": "step"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "strokeWidth": { "alias": "strokeWidth"; "required": false; "isSignal": true; }; "trackColor": { "alias": "trackColor"; "required": false; "isSignal": true; }; "valueColor": { "alias": "valueColor"; "required": false; "isSignal": true; }; "showValue": { "alias": "showValue"; "required": false; "isSignal": true; }; "suffix": { "alias": "suffix"; "required": false; "isSignal": true; }; "readonly": { "alias": "readonly"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
79
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<WrKnob, "wr-knob", never, { "min": { "alias": "min"; "required": false; "isSignal": true; }; "max": { "alias": "max"; "required": false; "isSignal": true; }; "step": { "alias": "step"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "strokeWidth": { "alias": "strokeWidth"; "required": false; "isSignal": true; }; "trackColor": { "alias": "trackColor"; "required": false; "isSignal": true; }; "valueColor": { "alias": "valueColor"; "required": false; "isSignal": true; }; "showValue": { "alias": "showValue"; "required": false; "isSignal": true; }; "suffix": { "alias": "suffix"; "required": false; "isSignal": true; }; "readonly": { "alias": "readonly"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "value": { "alias": "value"; "required": false; "isSignal": true; }; }, { "value": "valueChange"; "touch": "touch"; }, never, never, true, never>;
75
80
  }
76
81
 
77
82
  export { WrKnob };
@@ -50,7 +50,7 @@ declare class WrLayoutSider {
50
50
  * </wr-layout>
51
51
  * ```
52
52
  *
53
- * @see https://ngwr.dev/components/layout
53
+ * @see https://ngwr.dev/reference/components/layout
54
54
  */
55
55
  declare class WrLayout {
56
56
  protected readonly siders: i0.Signal<readonly WrLayoutSider[]>;
@@ -16,7 +16,7 @@ import { TemplateRef } from '@angular/core';
16
16
  * />
17
17
  * ```
18
18
  *
19
- * @see https://ngwr.dev/components/lightbox
19
+ * @see https://ngwr.dev/reference/components/lightbox
20
20
  */
21
21
  declare class WrLightbox {
22
22
  /** Image source. */
@@ -29,6 +29,14 @@ declare class WrLightbox {
29
29
  readonly disablePreview: _angular_core.InputSignalWithTransform<boolean, any>;
30
30
  /** Caption shown under the full image in the lightbox. */
31
31
  readonly caption: _angular_core.InputSignal<string>;
32
+ /**
33
+ * Reserve space before the image resolves by fixing the thumbnail's
34
+ * `aspect-ratio` (e.g. `'16 / 9'`, `'4 / 3'`, or a number like `1.5`).
35
+ * Prevents the layout jump when the intrinsic image size isn't known up
36
+ * front — pair it with a `width` and the box keeps its height from first
37
+ * paint. @default null
38
+ */
39
+ readonly aspectRatio: _angular_core.InputSignal<string | number | null>;
32
40
  protected readonly open: _angular_core.WritableSignal<boolean>;
33
41
  protected readonly loaded: _angular_core.WritableSignal<boolean>;
34
42
  protected readonly classes: _angular_core.Signal<string>;
@@ -49,7 +57,7 @@ declare class WrLightbox {
49
57
  private openOverlay;
50
58
  private closeOverlay;
51
59
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<WrLightbox, never>;
52
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<WrLightbox, "wr-lightbox", never, { "src": { "alias": "src"; "required": true; "isSignal": true; }; "alt": { "alias": "alt"; "required": false; "isSignal": true; }; "preview": { "alias": "preview"; "required": false; "isSignal": true; }; "disablePreview": { "alias": "disablePreview"; "required": false; "isSignal": true; }; "caption": { "alias": "caption"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
60
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<WrLightbox, "wr-lightbox", never, { "src": { "alias": "src"; "required": true; "isSignal": true; }; "alt": { "alias": "alt"; "required": false; "isSignal": true; }; "preview": { "alias": "preview"; "required": false; "isSignal": true; }; "disablePreview": { "alias": "disablePreview"; "required": false; "isSignal": true; }; "caption": { "alias": "caption"; "required": false; "isSignal": true; }; "aspectRatio": { "alias": "aspectRatio"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
53
61
  }
54
62
 
55
63
  export { WrLightbox };
@@ -21,7 +21,7 @@ interface WrLineSeries {
21
21
  * />
22
22
  * ```
23
23
  *
24
- * @see https://ngwr.dev/components/line-chart
24
+ * @see https://ngwr.dev/reference/components/line-chart
25
25
  */
26
26
  declare class WrLineChart {
27
27
  readonly series: _angular_core.InputSignal<readonly WrLineSeries[]>;
@@ -20,7 +20,7 @@ import * as _angular_core from '@angular/core';
20
20
  * </wr-list>
21
21
  * ```
22
22
  *
23
- * @see https://ngwr.dev/components/list
23
+ * @see https://ngwr.dev/reference/components/list
24
24
  */
25
25
  declare class WrList {
26
26
  /** Wrap the list in a card-style border + radius. @default false */
@@ -26,7 +26,7 @@ type WrLoadingState = 'idle' | 'running' | 'completing';
26
26
  * return next(req).pipe(finalize(() => bar.complete()));
27
27
  * ```
28
28
  *
29
- * @see https://ngwr.dev/services/loading-bar
29
+ * @see https://ngwr.dev/reference/services/loading-bar
30
30
  */
31
31
  declare class WrLoadingBar {
32
32
  private readonly router;
@@ -57,7 +57,7 @@ declare class WrMarquee {
57
57
  /** Pause the loop on hover. @default false */
58
58
  readonly pauseOnHover: _angular_core.InputSignalWithTransform<boolean, any>;
59
59
  /** Custom speed (px/s) when hovered. Overrides `pauseOnHover`. */
60
- readonly hoverSpeed: _angular_core.InputSignalWithTransform<number | undefined, number | undefined>;
60
+ readonly hoverSpeed: _angular_core.InputSignalWithTransform<number | undefined, unknown>;
61
61
  /** Apply edge fade-out gradients. @default false */
62
62
  readonly fadeOut: _angular_core.InputSignalWithTransform<boolean, any>;
63
63
  /** CSS colour for the fade-out gradient. Defaults to the page background. */
@@ -26,7 +26,7 @@ declare const WR_BREAKPOINTS: InjectionToken<Readonly<Record<ngwr_media.WrBreakp
26
26
  * protected readonly isWide = this.media.matches('(min-width: 1200px)');
27
27
  * ```
28
28
  *
29
- * @see https://ngwr.dev/services/media
29
+ * @see https://ngwr.dev/reference/services/media
30
30
  */
31
31
  declare class WrMedia {
32
32
  private readonly breakpoints;
@@ -38,7 +38,7 @@ interface WrMentionCommit<T extends WrMentionItem = WrMentionItem> {
38
38
  * ></textarea>
39
39
  * ```
40
40
  *
41
- * @see https://ngwr.dev/components/mention
41
+ * @see https://ngwr.dev/reference/components/mention
42
42
  */
43
43
  declare class WrMention<T extends WrMentionItem = WrMentionItem> {
44
44
  /** Items to filter against the typed query. */
@@ -66,7 +66,7 @@ interface WrMetaHandle {
66
66
  * <div [wrMeta]="{ title: 'Pricing' }">
67
67
  * ```
68
68
  *
69
- * @see https://ngwr.dev/services/meta
69
+ * @see https://ngwr.dev/reference/services/meta
70
70
  */
71
71
  declare class WrMeta {
72
72
  private readonly title;
@@ -32,7 +32,7 @@ interface WrMeterSegment {
32
32
  * />
33
33
  * ```
34
34
  *
35
- * @see https://ngwr.dev/components/meter-group
35
+ * @see https://ngwr.dev/reference/components/meter-group
36
36
  */
37
37
  declare class WrMeterGroup {
38
38
  readonly segments: _angular_core.InputSignal<readonly WrMeterSegment[]>;
@@ -21,7 +21,7 @@ import * as _angular_core from '@angular/core';
21
21
  * </wr-page-header>
22
22
  * ```
23
23
  *
24
- * @see https://ngwr.dev/components/page-header
24
+ * @see https://ngwr.dev/reference/components/page-header
25
25
  */
26
26
  declare class WrPageHeader {
27
27
  /** Primary title shown as an h1. */
@@ -1,5 +1,4 @@
1
1
  import * as _angular_core from '@angular/core';
2
- import { WrButtonSize } from 'ngwr/button';
3
2
 
4
3
  /**
5
4
  * @license
@@ -33,12 +32,9 @@ type WrPaginationShape = 'rounded' | 'square';
33
32
  * found in the LICENSE file at https://github.com/thekhegay/ngwr/blob/main/LICENSE
34
33
  */
35
34
  /**
36
- * Size variant. The middle three (`sm` / `md` / `lg`) cascade the
37
- * matching `<wr-btn>` size directly; `xs` and `xl` reuse the closest
38
- * button size and overlay tighter / chunkier padding + font tokens so
39
- * the cells read smaller / bigger than the button's own scale.
35
+ * Size variant. Cascades the matching `<wr-btn>` size to every cell.
40
36
  */
41
- type WrPaginationSize = 'xs' | 'sm' | 'md' | 'lg' | 'xl';
37
+ type WrPaginationSize = 'sm' | 'md' | 'lg';
42
38
 
43
39
  declare const ELLIPSIS: "\u2026";
44
40
  type PageEntry = number | typeof ELLIPSIS;
@@ -58,7 +54,7 @@ type PageEntry = number | typeof ELLIPSIS;
58
54
  * />
59
55
  * ```
60
56
  *
61
- * @see https://ngwr.dev/components/pagination
57
+ * @see https://ngwr.dev/reference/components/pagination
62
58
  */
63
59
  declare class WrPagination {
64
60
  /** Currently displayed page (1-based). Two-way bindable. */
@@ -75,10 +71,8 @@ declare class WrPagination {
75
71
  readonly showTotal: _angular_core.InputSignalWithTransform<boolean, any>;
76
72
  /** Horizontal alignment. @default 'start' */
77
73
  readonly align: _angular_core.InputSignal<WrPaginationAlign>;
78
- /** Size variant — cascades to every internal button. @default 'md' */
74
+ /** Size variant — cascades to every internal button. @default 'sm' */
79
75
  readonly size: _angular_core.InputSignal<WrPaginationSize>;
80
- /** Resolved button size — clamps xs/xl to the closest button size. @internal */
81
- protected readonly buttonSize: _angular_core.Signal<WrButtonSize>;
82
76
  /** Cell corner treatment. @default 'rounded' */
83
77
  readonly shape: _angular_core.InputSignal<WrPaginationShape>;
84
78
  /** Disable interaction. @default false */
@@ -20,7 +20,7 @@ import { Signal } from '@angular/core';
20
20
  * protected readonly dark = this.platform.prefersDark;
21
21
  * ```
22
22
  *
23
- * @see https://ngwr.dev/services/platform
23
+ * @see https://ngwr.dev/reference/services/platform
24
24
  */
25
25
  declare class WrPlatform {
26
26
  private readonly destroyRef;
@@ -35,4 +35,95 @@ declare class WrPlatform {
35
35
  static ɵprov: i0.ɵɵInjectableDeclaration<WrPlatform>;
36
36
  }
37
37
 
38
- export { WrPlatform };
38
+ /**
39
+ * SSR-safe view onto `window.visualViewport` — the part of the layout viewport
40
+ * actually visible once the on-screen keyboard (or other browser chrome) is
41
+ * accounted for.
42
+ *
43
+ * - `bottomInset` — px hidden at the bottom of the layout viewport (the
44
+ * keyboard height); `0` when nothing covers it, on the server, or in browsers
45
+ * without the API.
46
+ * - `offsetTop` — how far the visual viewport is pushed/scrolled down.
47
+ *
48
+ * While active it also mirrors `bottomInset` onto `--wr-keyboard-inset` on the
49
+ * document root, so purely presentational surfaces (the responsive overlay
50
+ * sheet, the command-palette sheet) can lift above the keyboard with CSS alone.
51
+ *
52
+ * @see https://ngwr.dev/reference/services/platform
53
+ */
54
+ declare class WrVisualViewport {
55
+ private readonly destroyRef;
56
+ private readonly doc;
57
+ private readonly isBrowser;
58
+ private readonly _bottomInset;
59
+ private readonly _offsetTop;
60
+ /** Height (px) the keyboard / browser chrome hides at the viewport bottom. */
61
+ readonly bottomInset: Signal<number>;
62
+ /** The visual viewport's top offset (px). */
63
+ readonly offsetTop: Signal<number>;
64
+ constructor();
65
+ static ɵfac: i0.ɵɵFactoryDeclaration<WrVisualViewport, never>;
66
+ static ɵprov: i0.ɵɵInjectableDeclaration<WrVisualViewport>;
67
+ }
68
+
69
+ /** Impact weight for {@link WrHaptics.impact}. */
70
+ type WrHapticImpact = 'light' | 'medium' | 'heavy';
71
+ /**
72
+ * SSR-safe wrapper around the Vibration API for tactile feedback on touch
73
+ * devices. Semantic presets (`impact`, `selection`, `success`, `warning`,
74
+ * `error`) map to sensible vibration patterns so call sites stay readable.
75
+ *
76
+ * Every method is a no-op — returning `false` — when there is no support:
77
+ * on the server, in browsers without `navigator.vibrate`, and notably on
78
+ * **iOS Safari**, which does not expose the Vibration API at all (its
79
+ * haptics are native-only). Check {@link supported} to branch UI on it.
80
+ *
81
+ * Haptics are best paired with a real user gesture (tap) — some browsers
82
+ * ignore `vibrate()` calls that aren't triggered by one. This service does
83
+ * not gate on `prefers-reduced-motion`; read {@link WrPlatform.prefersReducedMotion}
84
+ * at the call site if you want to suppress feedback for those users.
85
+ *
86
+ * @example
87
+ * ```ts
88
+ * private readonly haptics = inject(WrHaptics);
89
+ *
90
+ * onDelete(): void {
91
+ * this.haptics.warning(); // buzz before a destructive confirm
92
+ * }
93
+ *
94
+ * onToggle(): void {
95
+ * this.haptics.selection(); // subtle tick on a switch / segmented change
96
+ * }
97
+ * ```
98
+ *
99
+ * @see https://ngwr.dev/reference/services/platform
100
+ */
101
+ declare class WrHaptics {
102
+ private readonly isBrowser;
103
+ private readonly nav;
104
+ /** Whether the Vibration API is available (browser + `navigator.vibrate`). */
105
+ readonly supported: boolean;
106
+ /**
107
+ * Fire a raw vibration pattern — a single duration in ms, or an alternating
108
+ * `[buzz, pause, buzz, …]` array. Returns whether it was dispatched; passing
109
+ * `0` / `[]` cancels any ongoing vibration.
110
+ */
111
+ vibrate(pattern: number | readonly number[]): boolean;
112
+ /** A physical "tap" — `light`, `medium` (default), or `heavy`. */
113
+ impact(strength?: WrHapticImpact): boolean;
114
+ /** A subtle tick for a discrete change (switch, segmented, stepper). */
115
+ selection(): boolean;
116
+ /** A confirming pulse for a completed action. */
117
+ success(): boolean;
118
+ /** A cautioning pulse before a risky or destructive action. */
119
+ warning(): boolean;
120
+ /** A buzzing pulse for a failure or rejected action. */
121
+ error(): boolean;
122
+ /** Cancel any in-progress vibration. */
123
+ stop(): void;
124
+ static ɵfac: i0.ɵɵFactoryDeclaration<WrHaptics, never>;
125
+ static ɵprov: i0.ɵɵInjectableDeclaration<WrHaptics>;
126
+ }
127
+
128
+ export { WrHaptics, WrPlatform, WrVisualViewport };
129
+ export type { WrHapticImpact };