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,14 +1,14 @@
1
1
  @use '../../theme/styles' as theme;
2
2
 
3
3
  .wr-window {
4
- --wr-window-bg: var(--wr-color-white);
5
- --wr-window-border: var(--wr-color-light);
6
- --wr-window-chrome-bg: rgba(var(--wr-color-light-rgb), 0.4);
7
- --wr-window-chrome-color: var(--wr-color-dark);
4
+ --wr-window-bg: var(--wr-color-surface);
5
+ --wr-window-border: var(--wr-color-outline);
6
+ --wr-window-chrome-bg: var(--wr-color-hover);
7
+ --wr-window-chrome-color: var(--wr-color-on-surface);
8
8
  --wr-window-radius: var(--wr-border-radius-base);
9
9
  --wr-window-handle-size: 8px;
10
10
  --wr-window-chrome-height: 2.25rem;
11
- --wr-window-title-size: 0.8125rem;
11
+ --wr-window-title-size: var(--wr-text-sm);
12
12
  --wr-window-action-size: 1.5rem;
13
13
  --wr-window-anim-duration: 0.18s;
14
14
 
@@ -20,7 +20,7 @@
20
20
  @include theme.smooth-br(var(--wr-window-radius));
21
21
  box-shadow: var(--wr-shadow-modal);
22
22
  font-family: var(--wr-font-family-base);
23
- color: var(--wr-color-dark);
23
+ color: var(--wr-color-on-surface);
24
24
  overflow: hidden;
25
25
  user-select: none;
26
26
  // Enter animation — popover-style fade + scale-up. Disabled by
@@ -45,7 +45,7 @@
45
45
  // pixel of vertical space matters.
46
46
  &--chrome-compact {
47
47
  --wr-window-chrome-height: 1.625rem;
48
- --wr-window-title-size: 0.75rem;
48
+ --wr-window-title-size: var(--wr-text-xs);
49
49
  --wr-window-action-size: 1.125rem;
50
50
  }
51
51
 
@@ -94,7 +94,7 @@
94
94
  align-items: center;
95
95
  gap: 0.375rem;
96
96
  padding-right: 0.375rem;
97
- font-size: 0.75rem;
97
+ font-size: var(--wr-text-xs);
98
98
 
99
99
  &:empty {
100
100
  display: none;
@@ -118,7 +118,7 @@
118
118
  display: inline-flex;
119
119
  align-items: center;
120
120
  justify-content: center;
121
- color: var(--wr-color-medium);
121
+ color: var(--wr-color-on-surface-muted);
122
122
  cursor: pointer;
123
123
  border-radius: var(--wr-border-radius-sm);
124
124
  transition:
@@ -126,12 +126,12 @@
126
126
  background var(--wr-transition-base);
127
127
 
128
128
  &:hover {
129
- color: var(--wr-color-dark);
130
- background: rgba(var(--wr-color-light-rgb), 0.6);
129
+ color: var(--wr-color-on-surface);
130
+ background: rgba(var(--wr-color-outline-rgb), 0.6);
131
131
  }
132
132
 
133
133
  &--close:hover {
134
- color: var(--wr-color-white);
134
+ color: var(--wr-color-surface);
135
135
  background: var(--wr-color-danger);
136
136
  }
137
137
  }
@@ -157,7 +157,7 @@
157
157
  width: 0.875rem; // 14px — bigger than the prior 12px to match native
158
158
  height: 0.875rem;
159
159
  border-radius: 50%;
160
- color: rgba(0, 0, 0, 0.55); // glyph color (revealed on hover)
160
+ color: rgba(var(--wr-color-black-rgb), 0.55); // glyph color (revealed on hover)
161
161
 
162
162
  &--close,
163
163
  &--close:hover {
@@ -222,9 +222,9 @@
222
222
  gap: 0.5rem;
223
223
  padding: 0.25rem 0.75rem;
224
224
  border-top: 1px solid var(--wr-window-border);
225
- background: rgba(var(--wr-color-light-rgb), 0.25);
226
- font-size: 0.75rem;
227
- color: var(--wr-color-medium);
225
+ background: rgba(var(--wr-color-outline-rgb), 0.25);
226
+ font-size: var(--wr-text-xs);
227
+ color: var(--wr-color-on-surface-muted);
228
228
 
229
229
  &:empty {
230
230
  display: none;
@@ -345,10 +345,10 @@
345
345
  font-family: var(--wr-font-family-base);
346
346
 
347
347
  &--bottom {
348
- bottom: 0.75rem;
348
+ bottom: calc(0.75rem + env(safe-area-inset-bottom));
349
349
  }
350
350
  &--top {
351
- top: 0.75rem;
351
+ top: calc(0.75rem + env(safe-area-inset-top));
352
352
  }
353
353
 
354
354
  &__rail {
@@ -356,8 +356,8 @@
356
356
  align-items: center;
357
357
  gap: 0.25rem;
358
358
  padding: 0.25rem;
359
- background: var(--wr-color-white);
360
- border: 1px solid var(--wr-color-light);
359
+ background: var(--wr-color-surface);
360
+ border: 1px solid var(--wr-color-outline);
361
361
  @include theme.smooth-br(var(--wr-border-radius-base));
362
362
  box-shadow: var(--wr-shadow-overlay);
363
363
  pointer-events: auto;
@@ -372,9 +372,9 @@
372
372
  gap: 0.375rem;
373
373
  padding: 0.25rem 0.5rem 0.25rem 0.75rem;
374
374
  border-radius: var(--wr-border-radius-sm);
375
- color: var(--wr-color-dark);
375
+ color: var(--wr-color-on-surface);
376
376
  font-family: inherit;
377
- font-size: 0.8125rem;
377
+ font-size: var(--wr-text-sm);
378
378
  line-height: 1.25rem;
379
379
  cursor: pointer;
380
380
  max-width: 12rem;
@@ -383,11 +383,11 @@
383
383
  color var(--wr-transition-base);
384
384
 
385
385
  &:hover {
386
- background: rgba(var(--wr-color-light-rgb), 0.6);
386
+ background: rgba(var(--wr-color-outline-rgb), 0.6);
387
387
  }
388
388
 
389
389
  &:focus-visible {
390
- outline: 2px solid var(--wr-color-primary);
390
+ @include theme.focus-ring;
391
391
  outline-offset: 2px;
392
392
  }
393
393
  }
@@ -408,11 +408,11 @@
408
408
  align-items: center;
409
409
  justify-content: center;
410
410
  border-radius: var(--wr-border-radius-sm);
411
- color: var(--wr-color-medium);
411
+ color: var(--wr-color-on-surface-muted);
412
412
  cursor: pointer;
413
413
 
414
414
  &:hover {
415
- color: var(--wr-color-white);
415
+ color: var(--wr-color-surface);
416
416
  background: var(--wr-color-danger);
417
417
  }
418
418
  }
@@ -1,165 +0,0 @@
1
- import { isPlatformBrowser } from '@angular/common';
2
- import * as i0 from '@angular/core';
3
- import { input, inject, ElementRef, DestroyRef, PLATFORM_ID, afterNextRender, ViewEncapsulation, Component } from '@angular/core';
4
- import { WrPlatform } from 'ngwr/platform';
5
- import { numAttr } from 'ngwr/utils';
6
-
7
- /**
8
- * @license
9
- *
10
- * Use of this source code is governed by an MIT-style license that can be
11
- * found in the LICENSE file at https://github.com/thekhegay/ngwr/blob/main/LICENSE
12
- *
13
- * Angular adaptation of the ScrambledText effect by David Haz / reactbits.dev.
14
- * Original: https://www.reactbits.dev/text-animations/scrambled-text
15
- *
16
- * The reactbits version uses GSAP's paid SplitText + ScrambleTextPlugin.
17
- * This port is dependency-free — splits via vanilla DOM, scrambles via a
18
- * per-char `setInterval` loop, restores on settle.
19
- */
20
- function pickRandom(pool, exclude) {
21
- if (pool.length === 0)
22
- return exclude;
23
- if (pool.length === 1)
24
- return pool;
25
- // Avoid landing on the original mid-scramble — looks like nothing happened.
26
- let pick = pool.charAt(Math.floor(Math.random() * pool.length));
27
- for (let tries = 0; tries < 3 && pick === exclude; tries++) {
28
- pick = pool.charAt(Math.floor(Math.random() * pool.length));
29
- }
30
- return pick;
31
- }
32
- /**
33
- * Cursor-proximity scrambler. Each character inside the projected text
34
- * scrambles through `scrambleChars` whenever the pointer moves within
35
- * `radius` px of it, then settles back to the original. Closer pointer →
36
- * longer scramble.
37
- *
38
- * @example
39
- * ```html
40
- * <wr-scramble-text
41
- * [radius]="120"
42
- * [duration]="1.4"
43
- * scrambleChars="!&%*"
44
- * >
45
- * Hover this paragraph to scramble characters near the cursor.
46
- * </wr-scramble-text>
47
- * ```
48
- *
49
- * @see https://www.reactbits.dev/text-animations/scrambled-text
50
- */
51
- class WrScrambleText {
52
- /** Proximity radius in pixels. @default 100 */
53
- radius = input(100, { ...(ngDevMode ? { debugName: "radius" } : /* istanbul ignore next */ {}), transform: numAttr(100) });
54
- /** Max scramble duration in seconds (scaled by proximity — closer = longer). @default 1.2 */
55
- duration = input(1.2, { ...(ngDevMode ? { debugName: "duration" } : /* istanbul ignore next */ {}), transform: numAttr(1.2) });
56
- /** Approximate seconds between random-char swaps. Lower = faster scramble. @default 0.05 */
57
- speed = input(0.05, { ...(ngDevMode ? { debugName: "speed" } : /* istanbul ignore next */ {}), transform: numAttr(0.05) });
58
- /** Pool of glyphs to scramble through. @default '.:' */
59
- scrambleChars = input('.:', /* @ts-ignore */
60
- ...(ngDevMode ? [{ debugName: "scrambleChars" }] : /* istanbul ignore next */ []));
61
- host = inject(ElementRef);
62
- destroyRef = inject(DestroyRef);
63
- isBrowser = isPlatformBrowser(inject(PLATFORM_ID));
64
- platform = inject(WrPlatform);
65
- /** One entry per active scramble, keyed by char span. */
66
- active = new Map();
67
- /** Cached list of char spans. Re-computed after each render. */
68
- chars = [];
69
- constructor() {
70
- if (!this.isBrowser)
71
- return;
72
- afterNextRender(() => this.split());
73
- this.destroyRef.onDestroy(() => this.clearAll());
74
- }
75
- onPointerMove(event) {
76
- if (this.chars.length === 0)
77
- return;
78
- // Reduced motion: pointer proximity stops scrambling — text stays put.
79
- if (this.platform.prefersReducedMotion())
80
- return;
81
- const radius = this.radius();
82
- const duration = this.duration() * 1000;
83
- const swapInterval = Math.max(16, this.speed() * 1000);
84
- const pool = this.scrambleChars();
85
- for (const charEl of this.chars) {
86
- const rect = charEl.getBoundingClientRect();
87
- const dx = event.clientX - (rect.left + rect.width / 2);
88
- const dy = event.clientY - (rect.top + rect.height / 2);
89
- const dist = Math.hypot(dx, dy);
90
- if (dist > radius)
91
- continue;
92
- // Cancel any in-flight scramble for this char — we're restarting.
93
- this.cancelOne(charEl);
94
- // Proximity factor: 0 at the edge, 1 at the centre.
95
- const proximity = 1 - dist / radius;
96
- const scrambleMs = duration * proximity;
97
- const original = charEl.dataset['scrambleOriginal'] ?? '';
98
- const swapId = setInterval(() => {
99
- charEl.textContent = pickRandom(pool, original);
100
- }, swapInterval);
101
- const settleId = setTimeout(() => {
102
- clearInterval(swapId);
103
- charEl.textContent = original;
104
- this.active.delete(charEl);
105
- }, scrambleMs);
106
- this.active.set(charEl, { swapId, settleId });
107
- }
108
- }
109
- /** Walk the projected text and wrap each non-whitespace character in a span. */
110
- split() {
111
- const inner = this.host.nativeElement.querySelector('.wr-scramble-text__inner');
112
- if (!inner)
113
- return;
114
- const raw = inner.textContent ?? '';
115
- if (!raw)
116
- return;
117
- const frag = document.createDocumentFragment();
118
- for (const ch of [...raw]) {
119
- if (/\s/.test(ch)) {
120
- frag.appendChild(document.createTextNode(ch));
121
- }
122
- else {
123
- const span = document.createElement('span');
124
- span.className = 'wr-scramble-text__char';
125
- span.textContent = ch;
126
- span.dataset['scrambleOriginal'] = ch;
127
- frag.appendChild(span);
128
- }
129
- }
130
- inner.replaceChildren(frag);
131
- this.chars = Array.from(inner.querySelectorAll('.wr-scramble-text__char'));
132
- }
133
- cancelOne(el) {
134
- const entry = this.active.get(el);
135
- if (!entry)
136
- return;
137
- clearInterval(entry.swapId);
138
- clearTimeout(entry.settleId);
139
- this.active.delete(el);
140
- }
141
- clearAll() {
142
- for (const [el, entry] of this.active) {
143
- clearInterval(entry.swapId);
144
- clearTimeout(entry.settleId);
145
- el.textContent = el.dataset['scrambleOriginal'] ?? '';
146
- }
147
- this.active.clear();
148
- }
149
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.2", ngImport: i0, type: WrScrambleText, deps: [], target: i0.ɵɵFactoryTarget.Component });
150
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "22.0.2", type: WrScrambleText, isStandalone: true, selector: "wr-scramble-text", inputs: { radius: { classPropertyName: "radius", publicName: "radius", isSignal: true, isRequired: false, transformFunction: null }, duration: { classPropertyName: "duration", publicName: "duration", isSignal: true, isRequired: false, transformFunction: null }, speed: { classPropertyName: "speed", publicName: "speed", isSignal: true, isRequired: false, transformFunction: null }, scrambleChars: { classPropertyName: "scrambleChars", publicName: "scrambleChars", isSignal: true, isRequired: false, transformFunction: null } }, host: { listeners: { "pointermove": "onPointerMove($event)" }, classAttribute: "wr-scramble-text" }, ngImport: i0, template: '<span class="wr-scramble-text__inner" #inner><ng-content /></span>', isInline: true, styles: [".wr-scramble-text{display:block}.wr-scramble-text__char{display:inline-block;will-change:contents}\n"], encapsulation: i0.ViewEncapsulation.None });
151
- }
152
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.2", ngImport: i0, type: WrScrambleText, decorators: [{
153
- type: Component,
154
- args: [{ selector: 'wr-scramble-text', template: '<span class="wr-scramble-text__inner" #inner><ng-content /></span>', encapsulation: ViewEncapsulation.None, host: {
155
- class: 'wr-scramble-text',
156
- '(pointermove)': 'onPointerMove($event)',
157
- }, styles: [".wr-scramble-text{display:block}.wr-scramble-text__char{display:inline-block;will-change:contents}\n"] }]
158
- }], ctorParameters: () => [], propDecorators: { radius: [{ type: i0.Input, args: [{ isSignal: true, alias: "radius", required: false }] }], duration: [{ type: i0.Input, args: [{ isSignal: true, alias: "duration", required: false }] }], speed: [{ type: i0.Input, args: [{ isSignal: true, alias: "speed", required: false }] }], scrambleChars: [{ type: i0.Input, args: [{ isSignal: true, alias: "scrambleChars", required: false }] }] } });
159
-
160
- /**
161
- * Generated bundle index. Do not edit.
162
- */
163
-
164
- export { WrScrambleText };
165
- //# sourceMappingURL=ngwr-scramble-text.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ngwr-scramble-text.mjs","sources":["../../../projects/lib/scramble-text/scramble-text.ts","../../../projects/lib/scramble-text/ngwr-scramble-text.ts"],"sourcesContent":["/**\n * @license\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://github.com/thekhegay/ngwr/blob/main/LICENSE\n *\n * Angular adaptation of the ScrambledText effect by David Haz / reactbits.dev.\n * Original: https://www.reactbits.dev/text-animations/scrambled-text\n *\n * The reactbits version uses GSAP's paid SplitText + ScrambleTextPlugin.\n * This port is dependency-free — splits via vanilla DOM, scrambles via a\n * per-char `setInterval` loop, restores on settle.\n */\n\nimport { isPlatformBrowser } from '@angular/common';\nimport {\n Component,\n DestroyRef,\n ElementRef,\n PLATFORM_ID,\n ViewEncapsulation,\n afterNextRender,\n inject,\n input,\n} from '@angular/core';\n\nimport { WrPlatform } from 'ngwr/platform';\nimport { numAttr } from 'ngwr/utils';\n\ninterface ActiveScramble {\n swapId: ReturnType<typeof setInterval>;\n settleId: ReturnType<typeof setTimeout>;\n}\n\nfunction pickRandom(pool: string, exclude: string): string {\n if (pool.length === 0) return exclude;\n if (pool.length === 1) return pool;\n // Avoid landing on the original mid-scramble — looks like nothing happened.\n let pick = pool.charAt(Math.floor(Math.random() * pool.length));\n for (let tries = 0; tries < 3 && pick === exclude; tries++) {\n pick = pool.charAt(Math.floor(Math.random() * pool.length));\n }\n return pick;\n}\n\n/**\n * Cursor-proximity scrambler. Each character inside the projected text\n * scrambles through `scrambleChars` whenever the pointer moves within\n * `radius` px of it, then settles back to the original. Closer pointer →\n * longer scramble.\n *\n * @example\n * ```html\n * <wr-scramble-text\n * [radius]=\"120\"\n * [duration]=\"1.4\"\n * scrambleChars=\"!&%*\"\n * >\n * Hover this paragraph to scramble characters near the cursor.\n * </wr-scramble-text>\n * ```\n *\n * @see https://www.reactbits.dev/text-animations/scrambled-text\n */\n@Component({\n selector: 'wr-scramble-text',\n template: '<span class=\"wr-scramble-text__inner\" #inner><ng-content /></span>',\n styleUrl: './scramble-text.scss',\n encapsulation: ViewEncapsulation.None,\n host: {\n class: 'wr-scramble-text',\n '(pointermove)': 'onPointerMove($event)',\n },\n})\nexport class WrScrambleText {\n /** Proximity radius in pixels. @default 100 */\n readonly radius = input(100, { transform: numAttr(100) });\n\n /** Max scramble duration in seconds (scaled by proximity — closer = longer). @default 1.2 */\n readonly duration = input(1.2, { transform: numAttr(1.2) });\n\n /** Approximate seconds between random-char swaps. Lower = faster scramble. @default 0.05 */\n readonly speed = input(0.05, { transform: numAttr(0.05) });\n\n /** Pool of glyphs to scramble through. @default '.:' */\n readonly scrambleChars = input('.:');\n\n private readonly host = inject<ElementRef<HTMLElement>>(ElementRef);\n private readonly destroyRef = inject(DestroyRef);\n private readonly isBrowser = isPlatformBrowser(inject(PLATFORM_ID));\n private readonly platform = inject(WrPlatform);\n\n /** One entry per active scramble, keyed by char span. */\n private readonly active = new Map<HTMLElement, ActiveScramble>();\n\n /** Cached list of char spans. Re-computed after each render. */\n private chars: readonly HTMLElement[] = [];\n\n constructor() {\n if (!this.isBrowser) return;\n afterNextRender(() => this.split());\n this.destroyRef.onDestroy(() => this.clearAll());\n }\n\n protected onPointerMove(event: PointerEvent): void {\n if (this.chars.length === 0) return;\n // Reduced motion: pointer proximity stops scrambling — text stays put.\n if (this.platform.prefersReducedMotion()) return;\n const radius = this.radius();\n const duration = this.duration() * 1000;\n const swapInterval = Math.max(16, this.speed() * 1000);\n const pool = this.scrambleChars();\n\n for (const charEl of this.chars) {\n const rect = charEl.getBoundingClientRect();\n const dx = event.clientX - (rect.left + rect.width / 2);\n const dy = event.clientY - (rect.top + rect.height / 2);\n const dist = Math.hypot(dx, dy);\n if (dist > radius) continue;\n\n // Cancel any in-flight scramble for this char — we're restarting.\n this.cancelOne(charEl);\n\n // Proximity factor: 0 at the edge, 1 at the centre.\n const proximity = 1 - dist / radius;\n const scrambleMs = duration * proximity;\n const original = charEl.dataset['scrambleOriginal'] ?? '';\n\n const swapId = setInterval(() => {\n charEl.textContent = pickRandom(pool, original);\n }, swapInterval);\n\n const settleId = setTimeout(() => {\n clearInterval(swapId);\n charEl.textContent = original;\n this.active.delete(charEl);\n }, scrambleMs);\n\n this.active.set(charEl, { swapId, settleId });\n }\n }\n\n /** Walk the projected text and wrap each non-whitespace character in a span. */\n private split(): void {\n const inner = this.host.nativeElement.querySelector<HTMLElement>('.wr-scramble-text__inner');\n if (!inner) return;\n const raw = inner.textContent ?? '';\n if (!raw) return;\n\n const frag = document.createDocumentFragment();\n for (const ch of [...raw]) {\n if (/\\s/.test(ch)) {\n frag.appendChild(document.createTextNode(ch));\n } else {\n const span = document.createElement('span');\n span.className = 'wr-scramble-text__char';\n span.textContent = ch;\n span.dataset['scrambleOriginal'] = ch;\n frag.appendChild(span);\n }\n }\n inner.replaceChildren(frag);\n this.chars = Array.from(inner.querySelectorAll<HTMLElement>('.wr-scramble-text__char'));\n }\n\n private cancelOne(el: HTMLElement): void {\n const entry = this.active.get(el);\n if (!entry) return;\n clearInterval(entry.swapId);\n clearTimeout(entry.settleId);\n this.active.delete(el);\n }\n\n private clearAll(): void {\n for (const [el, entry] of this.active) {\n clearInterval(entry.swapId);\n clearTimeout(entry.settleId);\n el.textContent = el.dataset['scrambleOriginal'] ?? '';\n }\n this.active.clear();\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- @forward './styles';
@@ -1,8 +0,0 @@
1
- .wr-scramble-text {
2
- display: block;
3
-
4
- &__char {
5
- display: inline-block;
6
- will-change: contents;
7
- }
8
- }
@@ -1,49 +0,0 @@
1
- import * as _angular_core from '@angular/core';
2
-
3
- /**
4
- * Cursor-proximity scrambler. Each character inside the projected text
5
- * scrambles through `scrambleChars` whenever the pointer moves within
6
- * `radius` px of it, then settles back to the original. Closer pointer →
7
- * longer scramble.
8
- *
9
- * @example
10
- * ```html
11
- * <wr-scramble-text
12
- * [radius]="120"
13
- * [duration]="1.4"
14
- * scrambleChars="!&%*"
15
- * >
16
- * Hover this paragraph to scramble characters near the cursor.
17
- * </wr-scramble-text>
18
- * ```
19
- *
20
- * @see https://www.reactbits.dev/text-animations/scrambled-text
21
- */
22
- declare class WrScrambleText {
23
- /** Proximity radius in pixels. @default 100 */
24
- readonly radius: _angular_core.InputSignalWithTransform<number, unknown>;
25
- /** Max scramble duration in seconds (scaled by proximity — closer = longer). @default 1.2 */
26
- readonly duration: _angular_core.InputSignalWithTransform<number, unknown>;
27
- /** Approximate seconds between random-char swaps. Lower = faster scramble. @default 0.05 */
28
- readonly speed: _angular_core.InputSignalWithTransform<number, unknown>;
29
- /** Pool of glyphs to scramble through. @default '.:' */
30
- readonly scrambleChars: _angular_core.InputSignal<string>;
31
- private readonly host;
32
- private readonly destroyRef;
33
- private readonly isBrowser;
34
- private readonly platform;
35
- /** One entry per active scramble, keyed by char span. */
36
- private readonly active;
37
- /** Cached list of char spans. Re-computed after each render. */
38
- private chars;
39
- constructor();
40
- protected onPointerMove(event: PointerEvent): void;
41
- /** Walk the projected text and wrap each non-whitespace character in a span. */
42
- private split;
43
- private cancelOne;
44
- private clearAll;
45
- static ɵfac: _angular_core.ɵɵFactoryDeclaration<WrScrambleText, never>;
46
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<WrScrambleText, "wr-scramble-text", never, { "radius": { "alias": "radius"; "required": false; "isSignal": true; }; "duration": { "alias": "duration"; "required": false; "isSignal": true; }; "speed": { "alias": "speed"; "required": false; "isSignal": true; }; "scrambleChars": { "alias": "scrambleChars"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, never>;
47
- }
48
-
49
- export { WrScrambleText };