ngwr 14.10.0 → 14.11.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 (694) hide show
  1. package/fesm2022/ngwr-action-sheet-testing.mjs +111 -310
  2. package/fesm2022/ngwr-action-sheet-testing.mjs.map +1 -1
  3. package/fesm2022/ngwr-action-sheet.mjs +209 -89
  4. package/fesm2022/ngwr-action-sheet.mjs.map +1 -1
  5. package/fesm2022/ngwr-affix.mjs +122 -140
  6. package/fesm2022/ngwr-affix.mjs.map +1 -1
  7. package/fesm2022/ngwr-alert.mjs +204 -107
  8. package/fesm2022/ngwr-alert.mjs.map +1 -1
  9. package/fesm2022/ngwr-anchor.mjs +171 -113
  10. package/fesm2022/ngwr-anchor.mjs.map +1 -1
  11. package/fesm2022/ngwr-aurora.mjs +278 -198
  12. package/fesm2022/ngwr-aurora.mjs.map +1 -1
  13. package/fesm2022/ngwr-avatar.mjs +191 -190
  14. package/fesm2022/ngwr-avatar.mjs.map +1 -1
  15. package/fesm2022/ngwr-back-top.mjs +140 -95
  16. package/fesm2022/ngwr-back-top.mjs.map +1 -1
  17. package/fesm2022/ngwr-badge.mjs +339 -204
  18. package/fesm2022/ngwr-badge.mjs.map +1 -1
  19. package/fesm2022/ngwr-bar-chart-testing.mjs +56 -120
  20. package/fesm2022/ngwr-bar-chart-testing.mjs.map +1 -1
  21. package/fesm2022/ngwr-bar-chart.mjs +204 -113
  22. package/fesm2022/ngwr-bar-chart.mjs.map +1 -1
  23. package/fesm2022/ngwr-blur-text-testing.mjs +44 -198
  24. package/fesm2022/ngwr-blur-text-testing.mjs.map +1 -1
  25. package/fesm2022/ngwr-blur-text.mjs +322 -202
  26. package/fesm2022/ngwr-blur-text.mjs.map +1 -1
  27. package/fesm2022/ngwr-border-glow-testing.mjs +134 -318
  28. package/fesm2022/ngwr-border-glow-testing.mjs.map +1 -1
  29. package/fesm2022/ngwr-border-glow.mjs +440 -277
  30. package/fesm2022/ngwr-border-glow.mjs.map +1 -1
  31. package/fesm2022/ngwr-breadcrumbs.mjs +256 -120
  32. package/fesm2022/ngwr-breadcrumbs.mjs.map +1 -1
  33. package/fesm2022/ngwr-burger.mjs +115 -63
  34. package/fesm2022/ngwr-burger.mjs.map +1 -1
  35. package/fesm2022/ngwr-button-testing.mjs +39 -94
  36. package/fesm2022/ngwr-button-testing.mjs.map +1 -1
  37. package/fesm2022/ngwr-button.mjs +404 -354
  38. package/fesm2022/ngwr-button.mjs.map +1 -1
  39. package/fesm2022/ngwr-calendar-heatmap-testing.mjs +50 -96
  40. package/fesm2022/ngwr-calendar-heatmap-testing.mjs.map +1 -1
  41. package/fesm2022/ngwr-calendar-heatmap.mjs +360 -264
  42. package/fesm2022/ngwr-calendar-heatmap.mjs.map +1 -1
  43. package/fesm2022/ngwr-calendar-testing.mjs +181 -378
  44. package/fesm2022/ngwr-calendar-testing.mjs.map +1 -1
  45. package/fesm2022/ngwr-calendar.mjs +612 -790
  46. package/fesm2022/ngwr-calendar.mjs.map +1 -1
  47. package/fesm2022/ngwr-card.mjs +216 -98
  48. package/fesm2022/ngwr-card.mjs.map +1 -1
  49. package/fesm2022/ngwr-carousel-testing.mjs +131 -374
  50. package/fesm2022/ngwr-carousel-testing.mjs.map +1 -1
  51. package/fesm2022/ngwr-carousel.mjs +459 -332
  52. package/fesm2022/ngwr-carousel.mjs.map +1 -1
  53. package/fesm2022/ngwr-cascader-testing.mjs +227 -600
  54. package/fesm2022/ngwr-cascader-testing.mjs.map +1 -1
  55. package/fesm2022/ngwr-cascader.mjs +479 -418
  56. package/fesm2022/ngwr-cascader.mjs.map +1 -1
  57. package/fesm2022/ngwr-checkbox-testing.mjs +45 -99
  58. package/fesm2022/ngwr-checkbox-testing.mjs.map +1 -1
  59. package/fesm2022/ngwr-checkbox.mjs +442 -354
  60. package/fesm2022/ngwr-checkbox.mjs.map +1 -1
  61. package/fesm2022/ngwr-circular-text-testing.mjs +56 -223
  62. package/fesm2022/ngwr-circular-text-testing.mjs.map +1 -1
  63. package/fesm2022/ngwr-circular-text.mjs +226 -186
  64. package/fesm2022/ngwr-circular-text.mjs.map +1 -1
  65. package/fesm2022/ngwr-click-spark.mjs +303 -199
  66. package/fesm2022/ngwr-click-spark.mjs.map +1 -1
  67. package/fesm2022/ngwr-clipboard.mjs +95 -163
  68. package/fesm2022/ngwr-clipboard.mjs.map +1 -1
  69. package/fesm2022/ngwr-collapse-testing.mjs +118 -365
  70. package/fesm2022/ngwr-collapse-testing.mjs.map +1 -1
  71. package/fesm2022/ngwr-collapse.mjs +287 -227
  72. package/fesm2022/ngwr-collapse.mjs.map +1 -1
  73. package/fesm2022/ngwr-color-picker-testing.mjs +223 -461
  74. package/fesm2022/ngwr-color-picker-testing.mjs.map +1 -1
  75. package/fesm2022/ngwr-color-picker.mjs +937 -976
  76. package/fesm2022/ngwr-color-picker.mjs.map +1 -1
  77. package/fesm2022/ngwr-command-palette-testing.mjs +236 -585
  78. package/fesm2022/ngwr-command-palette-testing.mjs.map +1 -1
  79. package/fesm2022/ngwr-command-palette.mjs +512 -443
  80. package/fesm2022/ngwr-command-palette.mjs.map +1 -1
  81. package/fesm2022/ngwr-compare.mjs +252 -225
  82. package/fesm2022/ngwr-compare.mjs.map +1 -1
  83. package/fesm2022/ngwr-confetti.mjs +163 -181
  84. package/fesm2022/ngwr-confetti.mjs.map +1 -1
  85. package/fesm2022/ngwr-config.mjs +31 -106
  86. package/fesm2022/ngwr-config.mjs.map +1 -1
  87. package/fesm2022/ngwr-context-menu-testing.mjs +233 -642
  88. package/fesm2022/ngwr-context-menu-testing.mjs.map +1 -1
  89. package/fesm2022/ngwr-context-menu.mjs +837 -1167
  90. package/fesm2022/ngwr-context-menu.mjs.map +1 -1
  91. package/fesm2022/ngwr-cookie.mjs +103 -140
  92. package/fesm2022/ngwr-cookie.mjs.map +1 -1
  93. package/fesm2022/ngwr-counter.mjs +646 -460
  94. package/fesm2022/ngwr-counter.mjs.map +1 -1
  95. package/fesm2022/ngwr-date-adapters-fns.mjs +173 -266
  96. package/fesm2022/ngwr-date-adapters-fns.mjs.map +1 -1
  97. package/fesm2022/ngwr-date-adapters-luxon.mjs +164 -236
  98. package/fesm2022/ngwr-date-adapters-luxon.mjs.map +1 -1
  99. package/fesm2022/ngwr-date-picker-testing.mjs +340 -700
  100. package/fesm2022/ngwr-date-picker-testing.mjs.map +1 -1
  101. package/fesm2022/ngwr-date-picker.mjs +2575 -2416
  102. package/fesm2022/ngwr-date-picker.mjs.map +1 -1
  103. package/fesm2022/ngwr-date.mjs +606 -861
  104. package/fesm2022/ngwr-date.mjs.map +1 -1
  105. package/fesm2022/ngwr-decrypt-text-testing.mjs +57 -256
  106. package/fesm2022/ngwr-decrypt-text-testing.mjs.map +1 -1
  107. package/fesm2022/ngwr-decrypt-text.mjs +489 -409
  108. package/fesm2022/ngwr-decrypt-text.mjs.map +1 -1
  109. package/fesm2022/ngwr-density.mjs +157 -154
  110. package/fesm2022/ngwr-density.mjs.map +1 -1
  111. package/fesm2022/ngwr-descriptions.mjs +188 -90
  112. package/fesm2022/ngwr-descriptions.mjs.map +1 -1
  113. package/fesm2022/ngwr-dialog-testing.mjs +44 -87
  114. package/fesm2022/ngwr-dialog-testing.mjs.map +1 -1
  115. package/fesm2022/ngwr-dialog.mjs +391 -522
  116. package/fesm2022/ngwr-dialog.mjs.map +1 -1
  117. package/fesm2022/ngwr-directives.mjs +354 -271
  118. package/fesm2022/ngwr-directives.mjs.map +1 -1
  119. package/fesm2022/ngwr-divider.mjs +151 -133
  120. package/fesm2022/ngwr-divider.mjs.map +1 -1
  121. package/fesm2022/ngwr-donut-chart-testing.mjs +48 -111
  122. package/fesm2022/ngwr-donut-chart-testing.mjs.map +1 -1
  123. package/fesm2022/ngwr-donut-chart.mjs +295 -190
  124. package/fesm2022/ngwr-donut-chart.mjs.map +1 -1
  125. package/fesm2022/ngwr-drag-drop.mjs +411 -301
  126. package/fesm2022/ngwr-drag-drop.mjs.map +1 -1
  127. package/fesm2022/ngwr-drawer-testing.mjs +97 -248
  128. package/fesm2022/ngwr-drawer-testing.mjs.map +1 -1
  129. package/fesm2022/ngwr-drawer.mjs +862 -889
  130. package/fesm2022/ngwr-drawer.mjs.map +1 -1
  131. package/fesm2022/ngwr-dropdown-testing.mjs +125 -288
  132. package/fesm2022/ngwr-dropdown-testing.mjs.map +1 -1
  133. package/fesm2022/ngwr-dropdown.mjs +613 -641
  134. package/fesm2022/ngwr-dropdown.mjs.map +1 -1
  135. package/fesm2022/ngwr-editor-testing.mjs +194 -640
  136. package/fesm2022/ngwr-editor-testing.mjs.map +1 -1
  137. package/fesm2022/ngwr-editor.mjs +2062 -2541
  138. package/fesm2022/ngwr-editor.mjs.map +1 -1
  139. package/fesm2022/ngwr-empty.mjs +117 -72
  140. package/fesm2022/ngwr-empty.mjs.map +1 -1
  141. package/fesm2022/ngwr-event-calendar-testing.mjs +215 -439
  142. package/fesm2022/ngwr-event-calendar-testing.mjs.map +1 -1
  143. package/fesm2022/ngwr-event-calendar.mjs +906 -822
  144. package/fesm2022/ngwr-event-calendar.mjs.map +1 -1
  145. package/fesm2022/ngwr-falling-text-testing.mjs +52 -216
  146. package/fesm2022/ngwr-falling-text-testing.mjs.map +1 -1
  147. package/fesm2022/ngwr-falling-text.mjs +375 -342
  148. package/fesm2022/ngwr-falling-text.mjs.map +1 -1
  149. package/fesm2022/ngwr-file-upload-testing.mjs +133 -320
  150. package/fesm2022/ngwr-file-upload-testing.mjs.map +1 -1
  151. package/fesm2022/ngwr-file-upload.mjs +457 -328
  152. package/fesm2022/ngwr-file-upload.mjs.map +1 -1
  153. package/fesm2022/ngwr-form-testing.mjs +145 -452
  154. package/fesm2022/ngwr-form-testing.mjs.map +1 -1
  155. package/fesm2022/ngwr-form.mjs +512 -590
  156. package/fesm2022/ngwr-form.mjs.map +1 -1
  157. package/fesm2022/ngwr-fuzzy-text-testing.mjs +36 -132
  158. package/fesm2022/ngwr-fuzzy-text-testing.mjs.map +1 -1
  159. package/fesm2022/ngwr-fuzzy-text.mjs +635 -421
  160. package/fesm2022/ngwr-fuzzy-text.mjs.map +1 -1
  161. package/fesm2022/ngwr-gauge-testing.mjs +49 -98
  162. package/fesm2022/ngwr-gauge-testing.mjs.map +1 -1
  163. package/fesm2022/ngwr-gauge.mjs +297 -129
  164. package/fesm2022/ngwr-gauge.mjs.map +1 -1
  165. package/fesm2022/ngwr-glitch-text-testing.mjs +61 -213
  166. package/fesm2022/ngwr-glitch-text-testing.mjs.map +1 -1
  167. package/fesm2022/ngwr-glitch-text.mjs +170 -73
  168. package/fesm2022/ngwr-glitch-text.mjs.map +1 -1
  169. package/fesm2022/ngwr-gradient-text-testing.mjs +82 -251
  170. package/fesm2022/ngwr-gradient-text-testing.mjs.map +1 -1
  171. package/fesm2022/ngwr-gradient-text.mjs +215 -114
  172. package/fesm2022/ngwr-gradient-text.mjs.map +1 -1
  173. package/fesm2022/ngwr-graph-testing.mjs +65 -233
  174. package/fesm2022/ngwr-graph-testing.mjs.map +1 -1
  175. package/fesm2022/ngwr-graph.mjs +882 -1046
  176. package/fesm2022/ngwr-graph.mjs.map +1 -1
  177. package/fesm2022/ngwr-hotkey.mjs +307 -285
  178. package/fesm2022/ngwr-hotkey.mjs.map +1 -1
  179. package/fesm2022/ngwr-i18n-ar.mjs +375 -464
  180. package/fesm2022/ngwr-i18n-ar.mjs.map +1 -1
  181. package/fesm2022/ngwr-i18n-cs.mjs +375 -434
  182. package/fesm2022/ngwr-i18n-cs.mjs.map +1 -1
  183. package/fesm2022/ngwr-i18n-de.mjs +375 -453
  184. package/fesm2022/ngwr-i18n-de.mjs.map +1 -1
  185. package/fesm2022/ngwr-i18n-en.mjs +375 -561
  186. package/fesm2022/ngwr-i18n-en.mjs.map +1 -1
  187. package/fesm2022/ngwr-i18n-es.mjs +375 -434
  188. package/fesm2022/ngwr-i18n-es.mjs.map +1 -1
  189. package/fesm2022/ngwr-i18n-fr.mjs +375 -458
  190. package/fesm2022/ngwr-i18n-fr.mjs.map +1 -1
  191. package/fesm2022/ngwr-i18n-he.mjs +375 -457
  192. package/fesm2022/ngwr-i18n-he.mjs.map +1 -1
  193. package/fesm2022/ngwr-i18n-hi.mjs +375 -434
  194. package/fesm2022/ngwr-i18n-hi.mjs.map +1 -1
  195. package/fesm2022/ngwr-i18n-id.mjs +375 -434
  196. package/fesm2022/ngwr-i18n-id.mjs.map +1 -1
  197. package/fesm2022/ngwr-i18n-it.mjs +375 -453
  198. package/fesm2022/ngwr-i18n-it.mjs.map +1 -1
  199. package/fesm2022/ngwr-i18n-ja.mjs +375 -438
  200. package/fesm2022/ngwr-i18n-ja.mjs.map +1 -1
  201. package/fesm2022/ngwr-i18n-ko.mjs +375 -446
  202. package/fesm2022/ngwr-i18n-ko.mjs.map +1 -1
  203. package/fesm2022/ngwr-i18n-nl.mjs +375 -450
  204. package/fesm2022/ngwr-i18n-nl.mjs.map +1 -1
  205. package/fesm2022/ngwr-i18n-pl.mjs +375 -460
  206. package/fesm2022/ngwr-i18n-pl.mjs.map +1 -1
  207. package/fesm2022/ngwr-i18n-pt.mjs +375 -443
  208. package/fesm2022/ngwr-i18n-pt.mjs.map +1 -1
  209. package/fesm2022/ngwr-i18n-ru.mjs +375 -447
  210. package/fesm2022/ngwr-i18n-ru.mjs.map +1 -1
  211. package/fesm2022/ngwr-i18n-sv.mjs +375 -434
  212. package/fesm2022/ngwr-i18n-sv.mjs.map +1 -1
  213. package/fesm2022/ngwr-i18n-tr.mjs +375 -458
  214. package/fesm2022/ngwr-i18n-tr.mjs.map +1 -1
  215. package/fesm2022/ngwr-i18n-uk.mjs +375 -455
  216. package/fesm2022/ngwr-i18n-uk.mjs.map +1 -1
  217. package/fesm2022/ngwr-i18n-vi.mjs +375 -451
  218. package/fesm2022/ngwr-i18n-vi.mjs.map +1 -1
  219. package/fesm2022/ngwr-i18n-zh-TW.mjs +375 -442
  220. package/fesm2022/ngwr-i18n-zh-TW.mjs.map +1 -1
  221. package/fesm2022/ngwr-i18n-zh.mjs +375 -433
  222. package/fesm2022/ngwr-i18n-zh.mjs.map +1 -1
  223. package/fesm2022/ngwr-i18n.mjs +415 -683
  224. package/fesm2022/ngwr-i18n.mjs.map +1 -1
  225. package/fesm2022/ngwr-icon-adapters-feather.mjs +28 -77
  226. package/fesm2022/ngwr-icon-adapters-feather.mjs.map +1 -1
  227. package/fesm2022/ngwr-icon-adapters-lucide.mjs +32 -94
  228. package/fesm2022/ngwr-icon-adapters-lucide.mjs.map +1 -1
  229. package/fesm2022/ngwr-icon.mjs +371 -690
  230. package/fesm2022/ngwr-icon.mjs.map +1 -1
  231. package/fesm2022/ngwr-image-cropper-testing.mjs +84 -227
  232. package/fesm2022/ngwr-image-cropper-testing.mjs.map +1 -1
  233. package/fesm2022/ngwr-image-cropper.mjs +577 -639
  234. package/fesm2022/ngwr-image-cropper.mjs.map +1 -1
  235. package/fesm2022/ngwr-input-number-testing.mjs +108 -305
  236. package/fesm2022/ngwr-input-number-testing.mjs.map +1 -1
  237. package/fesm2022/ngwr-input-number.mjs +496 -361
  238. package/fesm2022/ngwr-input-number.mjs.map +1 -1
  239. package/fesm2022/ngwr-input-otp-testing.mjs +172 -420
  240. package/fesm2022/ngwr-input-otp-testing.mjs.map +1 -1
  241. package/fesm2022/ngwr-input-otp.mjs +396 -352
  242. package/fesm2022/ngwr-input-otp.mjs.map +1 -1
  243. package/fesm2022/ngwr-input-testing.mjs +52 -100
  244. package/fesm2022/ngwr-input-testing.mjs.map +1 -1
  245. package/fesm2022/ngwr-input.mjs +356 -303
  246. package/fesm2022/ngwr-input.mjs.map +1 -1
  247. package/fesm2022/ngwr-keyboard.mjs +63 -45
  248. package/fesm2022/ngwr-keyboard.mjs.map +1 -1
  249. package/fesm2022/ngwr-knob-testing.mjs +101 -223
  250. package/fesm2022/ngwr-knob-testing.mjs.map +1 -1
  251. package/fesm2022/ngwr-knob.mjs +421 -303
  252. package/fesm2022/ngwr-knob.mjs.map +1 -1
  253. package/fesm2022/ngwr-layout.mjs +362 -207
  254. package/fesm2022/ngwr-layout.mjs.map +1 -1
  255. package/fesm2022/ngwr-lightbox-testing.mjs +100 -221
  256. package/fesm2022/ngwr-lightbox-testing.mjs.map +1 -1
  257. package/fesm2022/ngwr-lightbox.mjs +335 -268
  258. package/fesm2022/ngwr-lightbox.mjs.map +1 -1
  259. package/fesm2022/ngwr-line-chart-testing.mjs +65 -133
  260. package/fesm2022/ngwr-line-chart-testing.mjs.map +1 -1
  261. package/fesm2022/ngwr-line-chart.mjs +356 -281
  262. package/fesm2022/ngwr-line-chart.mjs.map +1 -1
  263. package/fesm2022/ngwr-list.mjs +251 -134
  264. package/fesm2022/ngwr-list.mjs.map +1 -1
  265. package/fesm2022/ngwr-loading-bar-router.mjs +26 -68
  266. package/fesm2022/ngwr-loading-bar-router.mjs.map +1 -1
  267. package/fesm2022/ngwr-loading-bar.mjs +173 -186
  268. package/fesm2022/ngwr-loading-bar.mjs.map +1 -1
  269. package/fesm2022/ngwr-markdown-testing.mjs +174 -505
  270. package/fesm2022/ngwr-markdown-testing.mjs.map +1 -1
  271. package/fesm2022/ngwr-markdown.mjs +1578 -2219
  272. package/fesm2022/ngwr-markdown.mjs.map +1 -1
  273. package/fesm2022/ngwr-marquee-testing.mjs +118 -331
  274. package/fesm2022/ngwr-marquee-testing.mjs.map +1 -1
  275. package/fesm2022/ngwr-marquee.mjs +411 -230
  276. package/fesm2022/ngwr-marquee.mjs.map +1 -1
  277. package/fesm2022/ngwr-media.mjs +100 -127
  278. package/fesm2022/ngwr-media.mjs.map +1 -1
  279. package/fesm2022/ngwr-mention-testing.mjs +179 -506
  280. package/fesm2022/ngwr-mention-testing.mjs.map +1 -1
  281. package/fesm2022/ngwr-mention.mjs +668 -732
  282. package/fesm2022/ngwr-mention.mjs.map +1 -1
  283. package/fesm2022/ngwr-meta.mjs +257 -329
  284. package/fesm2022/ngwr-meta.mjs.map +1 -1
  285. package/fesm2022/ngwr-meter-group-testing.mjs +56 -101
  286. package/fesm2022/ngwr-meter-group-testing.mjs.map +1 -1
  287. package/fesm2022/ngwr-meter-group.mjs +206 -114
  288. package/fesm2022/ngwr-meter-group.mjs.map +1 -1
  289. package/fesm2022/ngwr-overlay.mjs +264 -576
  290. package/fesm2022/ngwr-overlay.mjs.map +1 -1
  291. package/fesm2022/ngwr-page-header.mjs +107 -67
  292. package/fesm2022/ngwr-page-header.mjs.map +1 -1
  293. package/fesm2022/ngwr-pagination-testing.mjs +125 -388
  294. package/fesm2022/ngwr-pagination-testing.mjs.map +1 -1
  295. package/fesm2022/ngwr-pagination.mjs +505 -335
  296. package/fesm2022/ngwr-pagination.mjs.map +1 -1
  297. package/fesm2022/ngwr-pipes.mjs +343 -382
  298. package/fesm2022/ngwr-pipes.mjs.map +1 -1
  299. package/fesm2022/ngwr-platform.mjs +182 -221
  300. package/fesm2022/ngwr-platform.mjs.map +1 -1
  301. package/fesm2022/ngwr-popconfirm-testing.mjs +112 -307
  302. package/fesm2022/ngwr-popconfirm-testing.mjs.map +1 -1
  303. package/fesm2022/ngwr-popconfirm.mjs +474 -277
  304. package/fesm2022/ngwr-popconfirm.mjs.map +1 -1
  305. package/fesm2022/ngwr-popover-testing.mjs +114 -332
  306. package/fesm2022/ngwr-popover-testing.mjs.map +1 -1
  307. package/fesm2022/ngwr-popover.mjs +1106 -1311
  308. package/fesm2022/ngwr-popover.mjs.map +1 -1
  309. package/fesm2022/ngwr-progress.mjs +124 -68
  310. package/fesm2022/ngwr-progress.mjs.map +1 -1
  311. package/fesm2022/ngwr-pull-to-refresh.mjs +198 -185
  312. package/fesm2022/ngwr-pull-to-refresh.mjs.map +1 -1
  313. package/fesm2022/ngwr-qr.mjs +1179 -1100
  314. package/fesm2022/ngwr-qr.mjs.map +1 -1
  315. package/fesm2022/ngwr-radio-testing.mjs +138 -389
  316. package/fesm2022/ngwr-radio-testing.mjs.map +1 -1
  317. package/fesm2022/ngwr-radio.mjs +346 -239
  318. package/fesm2022/ngwr-radio.mjs.map +1 -1
  319. package/fesm2022/ngwr-rating-testing.mjs +153 -390
  320. package/fesm2022/ngwr-rating-testing.mjs.map +1 -1
  321. package/fesm2022/ngwr-rating.mjs +281 -247
  322. package/fesm2022/ngwr-rating.mjs.map +1 -1
  323. package/fesm2022/ngwr-result.mjs +353 -114
  324. package/fesm2022/ngwr-result.mjs.map +1 -1
  325. package/fesm2022/ngwr-rotating-text-testing.mjs +45 -215
  326. package/fesm2022/ngwr-rotating-text-testing.mjs.map +1 -1
  327. package/fesm2022/ngwr-rotating-text.mjs +402 -272
  328. package/fesm2022/ngwr-rotating-text.mjs.map +1 -1
  329. package/fesm2022/ngwr-schema-form.mjs +384 -213
  330. package/fesm2022/ngwr-schema-form.mjs.map +1 -1
  331. package/fesm2022/ngwr-scroll.mjs +95 -105
  332. package/fesm2022/ngwr-scroll.mjs.map +1 -1
  333. package/fesm2022/ngwr-segmented-testing.mjs +184 -593
  334. package/fesm2022/ngwr-segmented-testing.mjs.map +1 -1
  335. package/fesm2022/ngwr-segmented.mjs +235 -251
  336. package/fesm2022/ngwr-segmented.mjs.map +1 -1
  337. package/fesm2022/ngwr-select-testing.mjs +139 -284
  338. package/fesm2022/ngwr-select-testing.mjs.map +1 -1
  339. package/fesm2022/ngwr-select.mjs +1784 -2098
  340. package/fesm2022/ngwr-select.mjs.map +1 -1
  341. package/fesm2022/ngwr-shiny-text-testing.mjs +83 -228
  342. package/fesm2022/ngwr-shiny-text-testing.mjs.map +1 -1
  343. package/fesm2022/ngwr-shiny-text.mjs +304 -131
  344. package/fesm2022/ngwr-shiny-text.mjs.map +1 -1
  345. package/fesm2022/ngwr-sidebar.mjs +256 -205
  346. package/fesm2022/ngwr-sidebar.mjs.map +1 -1
  347. package/fesm2022/ngwr-skeleton.mjs +101 -72
  348. package/fesm2022/ngwr-skeleton.mjs.map +1 -1
  349. package/fesm2022/ngwr-slider-testing.mjs +191 -473
  350. package/fesm2022/ngwr-slider-testing.mjs.map +1 -1
  351. package/fesm2022/ngwr-slider.mjs +430 -443
  352. package/fesm2022/ngwr-slider.mjs.map +1 -1
  353. package/fesm2022/ngwr-sparkline-testing.mjs +37 -74
  354. package/fesm2022/ngwr-sparkline-testing.mjs.map +1 -1
  355. package/fesm2022/ngwr-sparkline.mjs +311 -196
  356. package/fesm2022/ngwr-sparkline.mjs.map +1 -1
  357. package/fesm2022/ngwr-speed-dial-testing.mjs +135 -278
  358. package/fesm2022/ngwr-speed-dial-testing.mjs.map +1 -1
  359. package/fesm2022/ngwr-speed-dial.mjs +242 -140
  360. package/fesm2022/ngwr-speed-dial.mjs.map +1 -1
  361. package/fesm2022/ngwr-spinner.mjs +97 -60
  362. package/fesm2022/ngwr-spinner.mjs.map +1 -1
  363. package/fesm2022/ngwr-splash-cursor-testing.mjs +23 -87
  364. package/fesm2022/ngwr-splash-cursor-testing.mjs.map +1 -1
  365. package/fesm2022/ngwr-splash-cursor.mjs +980 -725
  366. package/fesm2022/ngwr-splash-cursor.mjs.map +1 -1
  367. package/fesm2022/ngwr-split-text-testing.mjs +48 -218
  368. package/fesm2022/ngwr-split-text-testing.mjs.map +1 -1
  369. package/fesm2022/ngwr-split-text.mjs +365 -220
  370. package/fesm2022/ngwr-split-text.mjs.map +1 -1
  371. package/fesm2022/ngwr-splitter-testing.mjs +107 -241
  372. package/fesm2022/ngwr-splitter-testing.mjs.map +1 -1
  373. package/fesm2022/ngwr-splitter.mjs +222 -184
  374. package/fesm2022/ngwr-splitter.mjs.map +1 -1
  375. package/fesm2022/ngwr-spotlight-card-testing.mjs +105 -360
  376. package/fesm2022/ngwr-spotlight-card-testing.mjs.map +1 -1
  377. package/fesm2022/ngwr-spotlight-card.mjs +217 -135
  378. package/fesm2022/ngwr-spotlight-card.mjs.map +1 -1
  379. package/fesm2022/ngwr-squircle.mjs +410 -326
  380. package/fesm2022/ngwr-squircle.mjs.map +1 -1
  381. package/fesm2022/ngwr-star-border-testing.mjs +53 -168
  382. package/fesm2022/ngwr-star-border-testing.mjs.map +1 -1
  383. package/fesm2022/ngwr-star-border.mjs +160 -70
  384. package/fesm2022/ngwr-star-border.mjs.map +1 -1
  385. package/fesm2022/ngwr-statistic.mjs +570 -389
  386. package/fesm2022/ngwr-statistic.mjs.map +1 -1
  387. package/fesm2022/ngwr-stepper-testing.mjs +158 -471
  388. package/fesm2022/ngwr-stepper-testing.mjs.map +1 -1
  389. package/fesm2022/ngwr-stepper.mjs +336 -215
  390. package/fesm2022/ngwr-stepper.mjs.map +1 -1
  391. package/fesm2022/ngwr-storage.mjs +217 -330
  392. package/fesm2022/ngwr-storage.mjs.map +1 -1
  393. package/fesm2022/ngwr-switch-testing.mjs +42 -75
  394. package/fesm2022/ngwr-switch-testing.mjs.map +1 -1
  395. package/fesm2022/ngwr-switch.mjs +197 -114
  396. package/fesm2022/ngwr-switch.mjs.map +1 -1
  397. package/fesm2022/ngwr-table-testing.mjs +238 -572
  398. package/fesm2022/ngwr-table-testing.mjs.map +1 -1
  399. package/fesm2022/ngwr-table.mjs +1875 -1446
  400. package/fesm2022/ngwr-table.mjs.map +1 -1
  401. package/fesm2022/ngwr-tabs-router.mjs +84 -153
  402. package/fesm2022/ngwr-tabs-router.mjs.map +1 -1
  403. package/fesm2022/ngwr-tabs-testing.mjs +217 -617
  404. package/fesm2022/ngwr-tabs-testing.mjs.map +1 -1
  405. package/fesm2022/ngwr-tabs.mjs +402 -425
  406. package/fesm2022/ngwr-tabs.mjs.map +1 -1
  407. package/fesm2022/ngwr-textarea-testing.mjs +84 -236
  408. package/fesm2022/ngwr-textarea-testing.mjs.map +1 -1
  409. package/fesm2022/ngwr-textarea.mjs +385 -264
  410. package/fesm2022/ngwr-textarea.mjs.map +1 -1
  411. package/fesm2022/ngwr-theme.mjs +247 -443
  412. package/fesm2022/ngwr-theme.mjs.map +1 -1
  413. package/fesm2022/ngwr-tilt-card-testing.mjs +79 -186
  414. package/fesm2022/ngwr-tilt-card-testing.mjs.map +1 -1
  415. package/fesm2022/ngwr-tilt-card.mjs +257 -168
  416. package/fesm2022/ngwr-tilt-card.mjs.map +1 -1
  417. package/fesm2022/ngwr-timeline.mjs +157 -70
  418. package/fesm2022/ngwr-timeline.mjs.map +1 -1
  419. package/fesm2022/ngwr-toast-testing.mjs +59 -99
  420. package/fesm2022/ngwr-toast-testing.mjs.map +1 -1
  421. package/fesm2022/ngwr-toast.mjs +769 -691
  422. package/fesm2022/ngwr-toast.mjs.map +1 -1
  423. package/fesm2022/ngwr-toolbar.mjs +73 -58
  424. package/fesm2022/ngwr-toolbar.mjs.map +1 -1
  425. package/fesm2022/ngwr-tour-testing.mjs +75 -171
  426. package/fesm2022/ngwr-tour-testing.mjs.map +1 -1
  427. package/fesm2022/ngwr-tour.mjs +333 -347
  428. package/fesm2022/ngwr-tour.mjs.map +1 -1
  429. package/fesm2022/ngwr-transfer-testing.mjs +195 -534
  430. package/fesm2022/ngwr-transfer-testing.mjs.map +1 -1
  431. package/fesm2022/ngwr-transfer.mjs +441 -322
  432. package/fesm2022/ngwr-transfer.mjs.map +1 -1
  433. package/fesm2022/ngwr-tree-testing.mjs +277 -754
  434. package/fesm2022/ngwr-tree-testing.mjs.map +1 -1
  435. package/fesm2022/ngwr-tree.mjs +876 -906
  436. package/fesm2022/ngwr-tree.mjs.map +1 -1
  437. package/fesm2022/ngwr-typewriter-testing.mjs +50 -237
  438. package/fesm2022/ngwr-typewriter-testing.mjs.map +1 -1
  439. package/fesm2022/ngwr-typewriter.mjs +461 -242
  440. package/fesm2022/ngwr-typewriter.mjs.map +1 -1
  441. package/fesm2022/ngwr-typography.mjs +142 -81
  442. package/fesm2022/ngwr-typography.mjs.map +1 -1
  443. package/fesm2022/ngwr-utils.mjs +304 -613
  444. package/fesm2022/ngwr-utils.mjs.map +1 -1
  445. package/fesm2022/ngwr-validators.mjs +179 -361
  446. package/fesm2022/ngwr-validators.mjs.map +1 -1
  447. package/fesm2022/ngwr-version.mjs +17 -47
  448. package/fesm2022/ngwr-version.mjs.map +1 -1
  449. package/fesm2022/ngwr-virtual-scroll.mjs +259 -125
  450. package/fesm2022/ngwr-virtual-scroll.mjs.map +1 -1
  451. package/fesm2022/ngwr-waves-testing.mjs +34 -125
  452. package/fesm2022/ngwr-waves-testing.mjs.map +1 -1
  453. package/fesm2022/ngwr-waves.mjs +816 -373
  454. package/fesm2022/ngwr-waves.mjs.map +1 -1
  455. package/fesm2022/ngwr-window-testing.mjs +171 -366
  456. package/fesm2022/ngwr-window-testing.mjs.map +1 -1
  457. package/fesm2022/ngwr-window.mjs +1437 -1351
  458. package/fesm2022/ngwr-window.mjs.map +1 -1
  459. package/fesm2022/ngwr.mjs +0 -4
  460. package/input-number/styles/_index.scss +33 -35
  461. package/llms-full.txt +2 -2
  462. package/package.json +1 -1
  463. package/segmented/styles/_index.scss +10 -3
  464. package/types/ngwr-action-sheet-testing.d.ts +174 -200
  465. package/types/ngwr-action-sheet.d.ts +83 -45
  466. package/types/ngwr-affix.d.ts +27 -22
  467. package/types/ngwr-alert.d.ts +93 -59
  468. package/types/ngwr-anchor.d.ts +52 -35
  469. package/types/ngwr-aurora.d.ts +53 -35
  470. package/types/ngwr-avatar.d.ts +97 -81
  471. package/types/ngwr-back-top.d.ts +36 -23
  472. package/types/ngwr-badge.d.ts +160 -105
  473. package/types/ngwr-bar-chart-testing.d.ts +40 -58
  474. package/types/ngwr-bar-chart.d.ts +86 -60
  475. package/types/ngwr-blur-text-testing.d.ts +103 -121
  476. package/types/ngwr-blur-text.d.ts +99 -60
  477. package/types/ngwr-border-glow-testing.d.ts +155 -173
  478. package/types/ngwr-border-glow.d.ts +93 -45
  479. package/types/ngwr-breadcrumbs.d.ts +60 -32
  480. package/types/ngwr-burger.d.ts +38 -23
  481. package/types/ngwr-button-testing.d.ts +41 -59
  482. package/types/ngwr-button.d.ts +213 -163
  483. package/types/ngwr-calendar-heatmap-testing.d.ts +38 -56
  484. package/types/ngwr-calendar-heatmap.d.ts +151 -105
  485. package/types/ngwr-calendar-testing.d.ts +198 -224
  486. package/types/ngwr-calendar.d.ts +285 -246
  487. package/types/ngwr-card.d.ts +41 -23
  488. package/types/ngwr-carousel-testing.d.ts +196 -214
  489. package/types/ngwr-carousel.d.ts +173 -122
  490. package/types/ngwr-cascader-testing.d.ts +338 -372
  491. package/types/ngwr-cascader.d.ts +230 -161
  492. package/types/ngwr-checkbox-testing.d.ts +45 -63
  493. package/types/ngwr-checkbox.d.ts +238 -183
  494. package/types/ngwr-circular-text-testing.d.ts +108 -126
  495. package/types/ngwr-circular-text.d.ts +53 -41
  496. package/types/ngwr-click-spark.d.ts +82 -50
  497. package/types/ngwr-clipboard.d.ts +40 -44
  498. package/types/ngwr-collapse-testing.d.ts +193 -219
  499. package/types/ngwr-collapse.d.ts +82 -71
  500. package/types/ngwr-color-picker-testing.d.ts +211 -237
  501. package/types/ngwr-color-picker.d.ts +343 -300
  502. package/types/ngwr-command-palette-testing.d.ts +311 -345
  503. package/types/ngwr-command-palette.d.ts +257 -197
  504. package/types/ngwr-compare.d.ts +102 -67
  505. package/types/ngwr-confetti.d.ts +51 -55
  506. package/types/ngwr-config.d.ts +44 -71
  507. package/types/ngwr-context-menu-testing.d.ts +301 -327
  508. package/types/ngwr-context-menu.d.ts +350 -310
  509. package/types/ngwr-cookie.d.ts +37 -41
  510. package/types/ngwr-counter.d.ts +223 -128
  511. package/types/ngwr-date-adapters-fns.d.ts +40 -59
  512. package/types/ngwr-date-adapters-luxon.d.ts +61 -72
  513. package/types/ngwr-date-picker-testing.d.ts +295 -339
  514. package/types/ngwr-date-picker.d.ts +759 -583
  515. package/types/ngwr-date.d.ts +229 -258
  516. package/types/ngwr-decrypt-text-testing.d.ts +140 -158
  517. package/types/ngwr-decrypt-text.d.ts +104 -62
  518. package/types/ngwr-density.d.ts +42 -57
  519. package/types/ngwr-descriptions.d.ts +50 -27
  520. package/types/ngwr-dialog-testing.d.ts +36 -54
  521. package/types/ngwr-dialog.d.ts +166 -190
  522. package/types/ngwr-directives.d.ts +82 -60
  523. package/types/ngwr-divider.d.ts +78 -62
  524. package/types/ngwr-donut-chart-testing.d.ts +36 -54
  525. package/types/ngwr-donut-chart.d.ts +102 -66
  526. package/types/ngwr-drag-drop.d.ts +139 -106
  527. package/types/ngwr-drawer-testing.d.ts +141 -159
  528. package/types/ngwr-drawer.d.ts +374 -316
  529. package/types/ngwr-dropdown-testing.d.ts +128 -154
  530. package/types/ngwr-dropdown.d.ts +260 -166
  531. package/types/ngwr-editor-testing.d.ts +312 -330
  532. package/types/ngwr-editor.d.ts +435 -344
  533. package/types/ngwr-empty.d.ts +41 -28
  534. package/types/ngwr-event-calendar-testing.d.ts +217 -243
  535. package/types/ngwr-event-calendar.d.ts +340 -298
  536. package/types/ngwr-falling-text-testing.d.ts +108 -126
  537. package/types/ngwr-falling-text.d.ts +57 -35
  538. package/types/ngwr-file-upload-testing.d.ts +133 -151
  539. package/types/ngwr-file-upload.d.ts +193 -128
  540. package/types/ngwr-form-testing.d.ts +255 -282
  541. package/types/ngwr-form.d.ts +324 -306
  542. package/types/ngwr-fuzzy-text-testing.d.ts +63 -81
  543. package/types/ngwr-fuzzy-text.d.ts +152 -65
  544. package/types/ngwr-gauge-testing.d.ts +43 -61
  545. package/types/ngwr-gauge.d.ts +113 -61
  546. package/types/ngwr-glitch-text-testing.d.ts +125 -143
  547. package/types/ngwr-glitch-text.d.ts +47 -24
  548. package/types/ngwr-gradient-text-testing.d.ts +114 -132
  549. package/types/ngwr-gradient-text.d.ts +51 -24
  550. package/types/ngwr-graph-testing.d.ts +89 -115
  551. package/types/ngwr-graph.d.ts +137 -124
  552. package/types/ngwr-hotkey.d.ts +85 -75
  553. package/types/ngwr-i18n-ar.d.ts +2 -5
  554. package/types/ngwr-i18n-cs.d.ts +2 -5
  555. package/types/ngwr-i18n-de.d.ts +2 -5
  556. package/types/ngwr-i18n-en.d.ts +2 -5
  557. package/types/ngwr-i18n-es.d.ts +2 -5
  558. package/types/ngwr-i18n-fr.d.ts +2 -5
  559. package/types/ngwr-i18n-he.d.ts +2 -5
  560. package/types/ngwr-i18n-hi.d.ts +2 -5
  561. package/types/ngwr-i18n-id.d.ts +2 -5
  562. package/types/ngwr-i18n-it.d.ts +2 -5
  563. package/types/ngwr-i18n-ja.d.ts +2 -5
  564. package/types/ngwr-i18n-ko.d.ts +2 -5
  565. package/types/ngwr-i18n-nl.d.ts +2 -5
  566. package/types/ngwr-i18n-pl.d.ts +2 -5
  567. package/types/ngwr-i18n-pt.d.ts +2 -5
  568. package/types/ngwr-i18n-ru.d.ts +2 -5
  569. package/types/ngwr-i18n-sv.d.ts +2 -5
  570. package/types/ngwr-i18n-tr.d.ts +2 -5
  571. package/types/ngwr-i18n-uk.d.ts +2 -5
  572. package/types/ngwr-i18n-vi.d.ts +2 -5
  573. package/types/ngwr-i18n-zh-TW.d.ts +2 -5
  574. package/types/ngwr-i18n-zh.d.ts +2 -5
  575. package/types/ngwr-i18n.d.ts +202 -246
  576. package/types/ngwr-icon-adapters-feather.d.ts +2 -11
  577. package/types/ngwr-icon-adapters-lucide.d.ts +2 -12
  578. package/types/ngwr-icon.d.ts +62 -84
  579. package/types/ngwr-image-cropper-testing.d.ts +116 -134
  580. package/types/ngwr-image-cropper.d.ts +287 -252
  581. package/types/ngwr-input-number-testing.d.ts +164 -182
  582. package/types/ngwr-input-number.d.ts +231 -150
  583. package/types/ngwr-input-otp-testing.d.ts +210 -244
  584. package/types/ngwr-input-otp.d.ts +167 -123
  585. package/types/ngwr-input-testing.d.ts +42 -60
  586. package/types/ngwr-input.d.ts +118 -94
  587. package/types/ngwr-keyboard.d.ts +14 -12
  588. package/types/ngwr-knob-testing.d.ts +106 -124
  589. package/types/ngwr-knob.d.ts +194 -129
  590. package/types/ngwr-layout.d.ts +57 -40
  591. package/types/ngwr-lightbox-testing.d.ts +101 -119
  592. package/types/ngwr-lightbox.d.ts +140 -87
  593. package/types/ngwr-line-chart-testing.d.ts +51 -69
  594. package/types/ngwr-line-chart.d.ts +171 -134
  595. package/types/ngwr-list.d.ts +55 -27
  596. package/types/ngwr-loading-bar-router.d.ts +2 -12
  597. package/types/ngwr-loading-bar.d.ts +45 -39
  598. package/types/ngwr-markdown-testing.d.ts +323 -350
  599. package/types/ngwr-markdown.d.ts +432 -318
  600. package/types/ngwr-marquee-testing.d.ts +190 -216
  601. package/types/ngwr-marquee.d.ts +127 -75
  602. package/types/ngwr-media.d.ts +25 -39
  603. package/types/ngwr-mention-testing.d.ts +274 -300
  604. package/types/ngwr-mention.d.ts +249 -164
  605. package/types/ngwr-meta.d.ts +93 -108
  606. package/types/ngwr-meter-group-testing.d.ts +33 -51
  607. package/types/ngwr-meter-group.d.ts +86 -60
  608. package/types/ngwr-overlay.d.ts +57 -132
  609. package/types/ngwr-page-header.d.ts +32 -19
  610. package/types/ngwr-pagination-testing.d.ts +215 -233
  611. package/types/ngwr-pagination.d.ts +213 -141
  612. package/types/ngwr-pipes.d.ts +67 -84
  613. package/types/ngwr-platform.d.ts +52 -57
  614. package/types/ngwr-popconfirm-testing.d.ts +181 -199
  615. package/types/ngwr-popconfirm.d.ts +151 -82
  616. package/types/ngwr-popover-testing.d.ts +183 -201
  617. package/types/ngwr-popover.d.ts +291 -207
  618. package/types/ngwr-progress.d.ts +38 -25
  619. package/types/ngwr-pull-to-refresh.d.ts +55 -40
  620. package/types/ngwr-qr.d.ts +79 -37
  621. package/types/ngwr-radio-testing.d.ts +208 -234
  622. package/types/ngwr-radio.d.ts +162 -125
  623. package/types/ngwr-rating-testing.d.ts +218 -244
  624. package/types/ngwr-rating.d.ts +146 -111
  625. package/types/ngwr-result.d.ts +85 -41
  626. package/types/ngwr-rotating-text-testing.d.ts +107 -125
  627. package/types/ngwr-rotating-text.d.ts +96 -52
  628. package/types/ngwr-schema-form.d.ts +57 -49
  629. package/types/ngwr-scroll.d.ts +27 -31
  630. package/types/ngwr-segmented-testing.d.ts +333 -359
  631. package/types/ngwr-segmented.d.ts +183 -165
  632. package/types/ngwr-select-testing.d.ts +128 -154
  633. package/types/ngwr-select.d.ts +1083 -906
  634. package/types/ngwr-shiny-text-testing.d.ts +82 -100
  635. package/types/ngwr-shiny-text.d.ts +83 -36
  636. package/types/ngwr-sidebar.d.ts +108 -93
  637. package/types/ngwr-skeleton.d.ts +34 -26
  638. package/types/ngwr-slider-testing.d.ts +228 -254
  639. package/types/ngwr-slider.d.ts +236 -186
  640. package/types/ngwr-sparkline-testing.d.ts +29 -47
  641. package/types/ngwr-sparkline.d.ts +130 -88
  642. package/types/ngwr-speed-dial-testing.d.ts +129 -155
  643. package/types/ngwr-speed-dial.d.ts +92 -57
  644. package/types/ngwr-spinner.d.ts +30 -23
  645. package/types/ngwr-splash-cursor-testing.d.ts +42 -60
  646. package/types/ngwr-splash-cursor.d.ts +129 -61
  647. package/types/ngwr-split-text-testing.d.ts +119 -137
  648. package/types/ngwr-split-text.d.ts +120 -71
  649. package/types/ngwr-splitter-testing.d.ts +114 -132
  650. package/types/ngwr-splitter.d.ts +85 -55
  651. package/types/ngwr-spotlight-card-testing.d.ts +177 -203
  652. package/types/ngwr-spotlight-card.d.ts +50 -32
  653. package/types/ngwr-squircle.d.ts +112 -70
  654. package/types/ngwr-star-border-testing.d.ts +74 -92
  655. package/types/ngwr-star-border.d.ts +42 -20
  656. package/types/ngwr-statistic.d.ts +210 -130
  657. package/types/ngwr-stepper-testing.d.ts +258 -284
  658. package/types/ngwr-stepper.d.ts +112 -75
  659. package/types/ngwr-storage.d.ts +96 -118
  660. package/types/ngwr-switch-testing.d.ts +26 -44
  661. package/types/ngwr-switch.d.ts +92 -62
  662. package/types/ngwr-table-testing.d.ts +291 -333
  663. package/types/ngwr-table.d.ts +922 -707
  664. package/types/ngwr-tabs-router.d.ts +21 -24
  665. package/types/ngwr-tabs-testing.d.ts +354 -380
  666. package/types/ngwr-tabs.d.ts +169 -155
  667. package/types/ngwr-textarea-testing.d.ts +123 -141
  668. package/types/ngwr-textarea.d.ts +160 -105
  669. package/types/ngwr-theme.d.ts +81 -163
  670. package/types/ngwr-tilt-card-testing.d.ts +94 -112
  671. package/types/ngwr-tilt-card.d.ts +64 -35
  672. package/types/ngwr-timeline.d.ts +36 -19
  673. package/types/ngwr-toast-testing.d.ts +37 -55
  674. package/types/ngwr-toast.d.ts +165 -209
  675. package/types/ngwr-toolbar.d.ts +17 -14
  676. package/types/ngwr-tour-testing.d.ts +84 -102
  677. package/types/ngwr-tour.d.ts +142 -144
  678. package/types/ngwr-transfer-testing.d.ts +293 -328
  679. package/types/ngwr-transfer.d.ts +217 -159
  680. package/types/ngwr-tree-testing.d.ts +428 -454
  681. package/types/ngwr-tree.d.ts +400 -296
  682. package/types/ngwr-typewriter-testing.d.ts +125 -143
  683. package/types/ngwr-typewriter.d.ts +137 -63
  684. package/types/ngwr-typography.d.ts +49 -27
  685. package/types/ngwr-utils.d.ts +100 -107
  686. package/types/ngwr-validators.d.ts +94 -104
  687. package/types/ngwr-version.d.ts +3 -14
  688. package/types/ngwr-virtual-scroll.d.ts +86 -58
  689. package/types/ngwr-waves-testing.d.ts +61 -79
  690. package/types/ngwr-waves.d.ts +116 -63
  691. package/types/ngwr-window-testing.d.ts +178 -204
  692. package/types/ngwr-window.d.ts +299 -325
  693. package/types/ngwr.d.ts +1 -2
  694. package/fesm2022/ngwr.mjs.map +0 -1
@@ -1,468 +1,230 @@
1
- import { ComponentHarness, HarnessPredicate, TestKey } from '@angular/cdk/testing';
2
- import { WrSegmentedHarness } from 'ngwr/segmented/testing';
3
-
4
- /**
5
- * @license
6
- *
7
- * Use of this source code is governed by an MIT-style license that can be
8
- * found in the LICENSE file at https://github.com/thekhegay/ngwr/blob/main/LICENSE
9
- */
10
- /**
11
- * One labelled numeric field — internal. A `TestElement` cannot be queried into, so
12
- * pairing an input with the label printed under it means a harness anchored on the
13
- * `<label>` that holds both.
14
- */
15
- class FieldHarness extends ComponentHarness {
16
- static hostSelector = '.wr-color-picker__field';
17
- async getLabel() {
18
- return (await this.locatorFor('.wr-color-picker__field-label')()).text();
19
- }
20
- async getInput() {
21
- return this.locatorFor('input')();
22
- }
23
- async getValue() {
24
- return (await this.getInput()).getProperty('value');
25
- }
26
- }
1
+ import { ComponentHarness, HarnessPredicate, TestKey } from "@angular/cdk/testing";
2
+ import { WrSegmentedHarness } from "ngwr/segmented/testing";
27
3
  /**
28
- * The percentage a thumb carries, out of its inline `style`.
29
- *
30
- * Three properties and not two, because the surfaces do not agree on the inline
31
- * axis and that disagreement is the contract: the SV canvas is a picture and
32
- * keeps a physical `left`, while the hue and alpha tracks are one-value sliders
33
- * that mirror under `dir="rtl"` and so are placed with `inset-inline-start`.
34
- * Reading `left` off a slider thumb therefore finds nothing, which is exactly
35
- * what should happen if one of them ever regresses to the physical property.
36
- */
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
+ var FieldHarness = class extends ComponentHarness {
10
+ static hostSelector = ".wr-color-picker__field";
11
+ async getLabel() {
12
+ return (await this.locatorFor(".wr-color-picker__field-label")()).text();
13
+ }
14
+ async getInput() {
15
+ return this.locatorFor("input")();
16
+ }
17
+ async getValue() {
18
+ return (await this.getInput()).getProperty("value");
19
+ }
20
+ };
37
21
  const THUMB_POS = {
38
- left: /(?:^|;)\s*left\s*:\s*([\d.]+)%/,
39
- top: /(?:^|;)\s*top\s*:\s*([\d.]+)%/,
40
- 'inset-inline-start': /(?:^|;)\s*inset-inline-start\s*:\s*([\d.]+)%/,
22
+ left: /(?:^|;)\s*left\s*:\s*([\d.]+)%/,
23
+ top: /(?:^|;)\s*top\s*:\s*([\d.]+)%/,
24
+ "inset-inline-start": /(?:^|;)\s*inset-inline-start\s*:\s*([\d.]+)%/
41
25
  };
42
- /** One thumb's declared offset. See {@link WrColorPickerHarness.getThumbs} for why this is not `getCssValue()`. */
43
26
  async function percent(thumb, side, surface) {
44
- const style = await thumb.getAttribute('style');
45
- const match = THUMB_POS[side].exec(style ?? '');
46
- if (!match) {
47
- throw new Error(`WrColorPickerHarness.getThumbs(): the ${surface} thumb carries no inline ${side} percentage ` +
48
- `(style: "${style ?? ''}"). The component writes one on every render, so its absence is the bug — ` +
49
- `and the stylesheet declares \`${side}: 0\`, so reporting 0 would read as a thumb parked at the origin.`);
50
- }
51
- return Number.parseFloat(match[1]);
52
- }
53
- /**
54
- * Test harness for `<wr-color-picker>` — the inline picker, and the one the
55
- * `[wrColorPickerTrigger]` directive mounts in an overlay.
56
- *
57
- * **What this harness will not do: drag.** The SV canvas and the hue / alpha
58
- * sliders are pointer surfaces that read `getBoundingClientRect()` and divide by
59
- * its width. A unit test has no layout, so every box is 0×0 and the division is
60
- * `NaN` — a `setHue()` built on a synthetic pointer event would report success and
61
- * write nothing, or write garbage. The numeric fields reach the same state and are
62
- * also the only keyboard path the component has, so they are the whole write API
63
- * here. {@link getThumbs} reads where the thumbs ARE, from the percentages the
64
- * component writes inline, which is how a spec checks a surface followed a value.
65
- *
66
- * **And it will not read the preview swatch.** The preview paints the current
67
- * colour as a CSS background, and jsdom normalises that to `rgb(…)` — dropping the
68
- * alpha channel entirely, so `#ff880080` and `#ff8800ff` come back identical. A
69
- * `getColor()` reading it would answer one thing in a unit test and another in a
70
- * browser. {@link getHex} is the colour: the field holds the canonical 8-digit
71
- * string, alpha included, whatever `format` writes into `value`.
72
- *
73
- * @example
74
- * ```ts
75
- * const picker = await loader.getHarness(WrColorPickerHarness);
76
- *
77
- * await picker.setHex('#3969e2');
78
- * expect(await picker.getHex()).toBe('#3969e2ff');
79
- *
80
- * await picker.setTab('rgb');
81
- * expect(await picker.getRgb()).toEqual({ r: 57, g: 105, b: 226 });
82
- * ```
83
- *
84
- * @see https://ngwr.dev/guides/testing
85
- */
86
- class WrColorPickerHarness extends ComponentHarness {
87
- static hostSelector = 'wr-color-picker';
88
- /** Build a predicate that narrows the query — pass to `getHarness` / `getAllHarnesses`. */
89
- static with(options = {}) {
90
- return new HarnessPredicate(WrColorPickerHarness, options)
91
- .addOption('color', options.color, (harness, color) => HarnessPredicate.stringMatches(harness.readHex(), color))
92
- .addOption('tab', options.tab, async (harness, tab) => (await harness.getTab()) === tab)
93
- .addOption('disabled', options.disabled, async (harness, disabled) => (await harness.isDisabled()) === disabled);
94
- }
95
- hexField = this.locatorForOptional('.wr-color-picker__inputs--hex input');
96
- tabs = this.locatorFor(WrSegmentedHarness.with({ selector: '.wr-color-picker__tabs' }));
97
- /**
98
- * The tab switcher, as a {@link WrSegmentedHarness}.
99
- *
100
- * Handed back rather than re-queried: the switcher IS a `<wr-segmented>`, which
101
- * already knows that the roving tab stop is not the selection and how the sliding
102
- * thumb reports itself. Re-reading its buttons here would be a second, worse copy.
103
- */
104
- async getTabs() {
105
- return this.tabs();
106
- }
107
- /** Which set of numeric fields is showing. */
108
- async getTab() {
109
- const label = await (await this.tabs()).getSelectedLabel();
110
- return (label ?? 'HEX').toLowerCase();
111
- }
112
- /** Show a different set of numeric fields. An already-active tab is left alone. */
113
- async setTab(tab) {
114
- if ((await this.getTab()) === tab)
115
- return;
116
- await (await this.tabs()).select({ label: tab.toUpperCase() });
117
- }
118
- /**
119
- * The canonical hex string, as the HEX field shows it — 8 digits while `alpha` is
120
- * on, 6 while it is off.
121
- *
122
- * This is the picker's colour, and deliberately not the same thing as its `value`:
123
- * `format` decides whether `value` is written as hex, `rgb()` or `hsl()`, while the
124
- * field always shows hex. A spec that cares about the emitted string should read
125
- * the bound signal; one that cares about the COLOUR should read this.
126
- *
127
- * Throws off the HEX tab, where the field does not exist — see {@link setTab}.
128
- */
129
- async getHex() {
130
- const field = await this.hexField();
131
- if (!field) {
132
- throw new Error(`WrColorPickerHarness.getHex(): the HEX field is not rendered — the picker is showing the ` +
133
- `${(await this.getTab()).toUpperCase()} tab. Call setTab('hex') first.`);
134
- }
135
- return field.getProperty('value');
136
- }
137
- /**
138
- * Type a colour into the HEX field.
139
- *
140
- * Typed rather than assigned, because that is the path the component is built
141
- * around: it re-parses on every keystroke and applies the first spelling that
142
- * parses, so a partial `#ff8` commits a colour on its way to `#ff8800`. An
143
- * unparseable string leaves the committed colour ALONE and lives in the field
144
- * until {@link blurHex} snaps it back — assert that rather than expecting a throw.
145
- */
146
- async setHex(value) {
147
- const field = await this.requireHexField('setHex');
148
- await field.clear();
149
- await field.sendKeys(value);
150
- }
151
- /**
152
- * Blur the HEX field — re-syncing it with the committed colour and emitting
153
- * `touch`.
154
- *
155
- * The re-sync is the visible half: a field left holding text that never parsed
156
- * goes back to the canonical hex here, and nowhere else.
157
- */
158
- async blurHex() {
159
- await (await this.requireHexField('blurHex')).blur();
160
- }
161
- /** Whether the HEX field currently holds focus. */
162
- async isHexFocused() {
163
- return (await this.requireHexField('isHexFocused')).isFocused();
164
- }
165
- /** The three RGB channels as the RGB tab shows them. Throws off that tab. */
166
- async getRgb() {
167
- const [r, g, b] = await this.channelValues('rgb', ['R', 'G', 'B']);
168
- return { r, g, b };
169
- }
170
- /** Write one RGB channel, 0–255. Out-of-range numbers are clamped by the component. */
171
- async setRgbChannel(channel, value) {
172
- await this.writeChannel('rgb', channel.toUpperCase(), value);
173
- }
174
- /**
175
- * Hue, saturation and lightness as the HSL tab shows them — degrees and whole
176
- * percents, already rounded for display. Throws off that tab.
177
- */
178
- async getHsl() {
179
- const [h, s, l] = await this.channelValues('hsl', ['H', 'S%', 'L%']);
180
- return { h, s, l };
181
- }
182
- /** Write one HSL channel — `h` in degrees, `s` / `l` in percent. */
183
- async setHslChannel(channel, value) {
184
- await this.writeChannel('hsl', channel === 'h' ? 'H' : `${channel.toUpperCase()}%`, value);
185
- }
186
- /**
187
- * Alpha as the whole percent the numeric tabs show, or `null` when the picker was
188
- * built without alpha.
189
- *
190
- * Only the RGB and HSL tabs carry the field — the HEX tab spells alpha into the
191
- * hex string instead — so this throws on the HEX tab rather than answering `null`,
192
- * which would read as "this picker has no alpha".
193
- */
194
- async getAlphaPercent() {
195
- const tab = await this.getTab();
196
- if (tab === 'hex') {
197
- throw new Error('WrColorPickerHarness.getAlphaPercent(): the HEX tab has no alpha field — the alpha is the last two ' +
198
- "digits of getHex(). Call setTab('rgb') or setTab('hsl') to read it as a percent.");
199
- }
200
- if (!(await this.hasAlpha()))
201
- return null;
202
- const [alpha] = await this.channelValues(tab, ['A%']);
203
- return alpha;
204
- }
205
- /** Write alpha as a whole percent, 0–100. */
206
- async setAlphaPercent(value) {
207
- const tab = await this.getTab();
208
- if (tab === 'hex') {
209
- throw new Error("WrColorPickerHarness.setAlphaPercent(): the HEX tab has no alpha field. Call setTab('rgb') first, " +
210
- 'or write the two alpha digits through setHex().');
211
- }
212
- await this.writeChannel(tab, 'A%', value);
213
- }
214
- /**
215
- * Whether the picker offers alpha at all.
216
- *
217
- * From the host modifier, which is the one answer that holds on every tab: the
218
- * alpha SLIDER is always rendered when it is on, while the `A%` field only exists
219
- * on the two numeric tabs.
220
- */
221
- async hasAlpha() {
222
- return (await this.host()).hasClass('wr-color-picker--alpha');
223
- }
224
- /**
225
- * Whether the picker refuses interaction.
226
- *
227
- * Read from the modifier the host paints rather than from a field's `disabled`
228
- * property, because the fields come and go with the tab while the state does not —
229
- * and the drag surfaces, which have no `disabled` of their own, are gated by the
230
- * same signal.
231
- */
232
- async isDisabled() {
233
- return (await this.host()).hasClass('wr-color-picker--disabled');
234
- }
235
- /** The preset colours offered under the fields, as the strings the consumer passed. */
236
- async getSwatches() {
237
- const swatches = await this.locatorForAll('.wr-color-picker__swatch')();
238
- return Promise.all(swatches.map(async (swatch) => (await swatch.getAttribute('aria-label')) ?? ''));
239
- }
240
- /**
241
- * Click a preset.
242
- *
243
- * Matched on the string the consumer passed, which is what the button publishes as
244
- * its accessible name — the rendered background is a CSS colour and would come back
245
- * normalised and alpha-stripped. Throws when nothing matches, naming what is offered.
246
- */
247
- async pickSwatch(color) {
248
- const swatches = await this.locatorForAll('.wr-color-picker__swatch')();
249
- for (const swatch of swatches) {
250
- if ((await swatch.getAttribute('aria-label')) === color) {
251
- await swatch.click();
252
- return;
253
- }
254
- }
255
- throw new Error(`WrColorPickerHarness.pickSwatch(): no swatch for "${color}". The picker offers: ` +
256
- `${(await this.getSwatches()).join(', ')}.`);
257
- }
258
- /**
259
- * Where the three thumbs sit, in percent along their surfaces.
260
- *
261
- * The component writes these as inline percentages, so they are readable with no
262
- * layout at all — which makes them the only evidence a spec has that the surfaces
263
- * followed a colour set through the fields. A measured position would be zero for
264
- * all three.
265
- *
266
- * The number is always "along the surface from its own start", so it is direction
267
- * free: the SV canvas reports a physical `left` because it does not mirror, and
268
- * the two tracks report `inset-inline-start` because they do. An RTL spec reads
269
- * the same value as an LTR one, which is the point — what mirrors is where that
270
- * fraction lands on screen, not the fraction.
271
- *
272
- * Read off the `style` ATTRIBUTE rather than through `getCssValue()`, and the
273
- * difference is not cosmetic: `getCssValue()` is `getComputedStyle()`, and `left` /
274
- * `top` on a positioned element resolve to the USED value — so the declared `40%`
275
- * comes straight back in jsdom and arrives as pixels in a real browser, and the same
276
- * harness answered 40 here and 96 under a browser runner with nothing to say which
277
- * one you got. The stylesheet's own `top: 0; left: 0` is a second way that read lies,
278
- * turning a thumb whose binding is gone into one parked at the origin.
279
- */
280
- async getThumbs() {
281
- const sv = await this.locatorFor('.wr-color-picker__sv .wr-color-picker__thumb')();
282
- const hue = await this.locatorFor('.wr-color-picker__slider--hue .wr-color-picker__thumb')();
283
- const alpha = await this.locatorForOptional('.wr-color-picker__slider--alpha .wr-color-picker__thumb')();
284
- return {
285
- sv: { x: await percent(sv, 'left', 'SV'), y: await percent(sv, 'top', 'SV') },
286
- hue: await percent(hue, 'inset-inline-start', 'hue'),
287
- alpha: alpha ? await percent(alpha, 'inset-inline-start', 'alpha') : null,
288
- };
289
- }
290
- /** The HEX field's value without the tab check — for filters, which must not throw. */
291
- async readHex() {
292
- const field = await this.hexField();
293
- return field ? field.getProperty('value') : '';
294
- }
295
- async requireHexField(method) {
296
- const field = await this.hexField();
297
- if (!field) {
298
- throw new Error(`WrColorPickerHarness.${method}(): the HEX field is not rendered — the picker is showing the ` +
299
- `${(await this.getTab()).toUpperCase()} tab. Call setTab('hex') first.`);
300
- }
301
- return field;
302
- }
303
- async channelValues(tab, labels) {
304
- await this.requireTab(tab, 'read');
305
- const inputs = await this.inputsByLabel();
306
- return labels.map(label => {
307
- const input = inputs.get(label);
308
- if (!input)
309
- throw new Error(`WrColorPickerHarness: the ${tab.toUpperCase()} tab has no "${label}" field.`);
310
- return Number(input.value);
311
- });
312
- }
313
- async writeChannel(tab, label, value) {
314
- await this.requireTab(tab, 'write');
315
- const inputs = await this.inputsByLabel();
316
- const found = inputs.get(label);
317
- if (!found) {
318
- throw new Error(`WrColorPickerHarness: the ${tab.toUpperCase()} tab has no "${label}" field. ${label === 'A%' ? 'This picker was built with `[alpha]="false"`.' : ''}`);
319
- }
320
- // Set and dispatch once, rather than clearing and typing. Each of these inputs
321
- // is bound to `[value]`, and the component commits on every `input` event — so
322
- // typing 128 would land 1, then 12, then 128, and CLEARING would land 0 first,
323
- // because `Number('')` is 0 rather than NaN. A spec that asked for one colour
324
- // would get four, the first of them black.
325
- await found.element.setInputValue(String(value));
326
- await found.element.dispatchEvent('input');
327
- }
328
- async requireTab(tab, verb) {
329
- const current = await this.getTab();
330
- if (current !== tab) {
331
- throw new Error(`WrColorPickerHarness: cannot ${verb} the ${tab.toUpperCase()} channels while the picker is showing ` +
332
- `the ${current.toUpperCase()} tab — those fields are not rendered. Call setTab('${tab}') first.`);
333
- }
334
- }
335
- /** Every numeric input of the current tab, keyed by the label printed under it. */
336
- async inputsByLabel() {
337
- const found = new Map();
338
- for (const field of await this.locatorForAll(FieldHarness)()) {
339
- const label = await field.getLabel();
340
- found.set(label, { element: await field.getInput(), value: await field.getValue() });
341
- }
342
- return found;
343
- }
344
- }
345
-
346
- /**
347
- * @license
348
- *
349
- * Use of this source code is governed by an MIT-style license that can be
350
- * found in the LICENSE file at https://github.com/thekhegay/ngwr/blob/main/LICENSE
351
- */
352
- /**
353
- * Test harness for `[wrColorPickerTrigger]` — the element that opens a
354
- * `<wr-color-picker>` in an overlay.
355
- *
356
- * The trigger stays in your fixture; the picker it opens does not. So this harness
357
- * is loaded from the fixture loader like any element, and {@link getPicker} reaches
358
- * ACROSS into the overlay container for you — scoped by the panel id the trigger
359
- * publishes through `aria-controls`, never by `.wr-color-picker-overlay`, which
360
- * answers with whichever trigger opened first.
361
- *
362
- * @example
363
- * ```ts
364
- * const trigger = await loader.getHarness(WrColorPickerTriggerHarness);
365
- * const picker = await trigger.open();
366
- *
367
- * await picker.setHex('#3969e2');
368
- * await trigger.sendEscape();
369
- * expect(await trigger.isOpen()).toBe(false);
370
- * ```
371
- *
372
- * @see https://ngwr.dev/guides/testing
373
- */
374
- class WrColorPickerTriggerHarness extends ComponentHarness {
375
- static hostSelector = '[wrColorPickerTrigger]';
376
- /** Build a predicate that narrows the query — pass to `getHarness` / `getAllHarnesses`. */
377
- static with(options = {}) {
378
- return new HarnessPredicate(WrColorPickerTriggerHarness, options)
379
- .addOption('text', options.text, (harness, text) => HarnessPredicate.stringMatches(harness.getText(), text))
380
- .addOption('open', options.open, async (harness, open) => (await harness.isOpen()) === open);
381
- }
382
- /** The trigger's own text, trimmed. */
383
- async getText() {
384
- return (await this.host()).text();
385
- }
386
- /** Whether the picker is showing, from the trigger's `aria-expanded`. */
387
- async isOpen() {
388
- return (await (await this.host()).getAttribute('aria-expanded')) === 'true';
389
- }
390
- /**
391
- * Whether the trigger refuses to open.
392
- *
393
- * From `aria-disabled`, which the directive writes for its own `disabled` input.
394
- * The host is usually a `<button>`, but the directive does not touch its `disabled`
395
- * PROPERTY — a consumer who binds that as well turns the element off at the DOM
396
- * level, which is a stronger thing and reads here too.
397
- */
398
- async isDisabled() {
399
- const host = await this.host();
400
- return (await host.getAttribute('aria-disabled')) === 'true' || (await host.getProperty('disabled'));
401
- }
402
- /**
403
- * The picker this trigger opened, or `null` while it is closed.
404
- *
405
- * Scoped by the id in `aria-controls`, so two triggers open at once — which
406
- * nothing in the component prevents, since only an outside click closes one —
407
- * answer with their own panels rather than with whichever came first.
408
- */
409
- async getPicker() {
410
- const id = await (await this.host()).getAttribute('aria-controls');
411
- if (!id)
412
- return null;
413
- return this.documentRootLocatorFactory().locatorForOptional(WrColorPickerHarness.with({ ancestor: `#${id}` }))();
414
- }
415
- /**
416
- * Open the picker and hand it back. An already-open trigger is left alone.
417
- *
418
- * Throws on a disabled trigger rather than answering `null` three lines later:
419
- * `toggle()` returns early while `disabled` is set, so the click lands and nothing
420
- * happens at all.
421
- */
422
- async open() {
423
- if (!(await this.isOpen())) {
424
- if (await this.isDisabled()) {
425
- throw new Error(`WrColorPickerTriggerHarness.open(): "${await this.getText()}" is disabled — the directive turns its ` +
426
- 'own toggle away, so the click would land and change nothing.');
427
- }
428
- await (await this.host()).click();
429
- }
430
- const picker = await this.getPicker();
431
- if (!picker) {
432
- throw new Error('WrColorPickerTriggerHarness.open(): the trigger reports itself open but published no panel to find. ' +
433
- 'That is a broken `aria-controls` pairing, not a timing problem.');
434
- }
435
- return picker;
436
- }
437
- /** Close the picker. An already-closed trigger is left alone. */
438
- async close() {
439
- if (!(await this.isOpen()))
440
- return;
441
- await (await this.host()).click();
442
- }
443
- /** Click the trigger once, whichever way that takes it. */
444
- async toggle() {
445
- await (await this.host()).click();
446
- }
447
- /**
448
- * Press Escape.
449
- *
450
- * Sent to the TRIGGER, and it still reaches the picker: the overlay listens through
451
- * the CDK's keyboard dispatcher, which keeps one document listener and routes to
452
- * the top-most overlay — so this does not depend on where focus happens to be.
453
- */
454
- async sendEscape() {
455
- await (await this.host()).sendKeys(TestKey.ESCAPE);
456
- }
457
- /** The role the trigger claims to open — `dialog`. */
458
- async getHasPopup() {
459
- return (await this.host()).getAttribute('aria-haspopup');
460
- }
27
+ const style = await thumb.getAttribute("style");
28
+ const match = THUMB_POS[side].exec(style ?? "");
29
+ if (!match) throw new Error(`WrColorPickerHarness.getThumbs(): the ${surface} thumb carries no inline ${side} percentage (style: "${style ?? ""}"). The component writes one on every render, so its absence is the bug — and the stylesheet declares \`${side}: 0\`, so reporting 0 would read as a thumb parked at the origin.`);
30
+ return Number.parseFloat(match[1]);
461
31
  }
462
-
32
+ var WrColorPickerHarness = class WrColorPickerHarness extends ComponentHarness {
33
+ static hostSelector = "wr-color-picker";
34
+ static with(options = {}) {
35
+ return new HarnessPredicate(WrColorPickerHarness, options).addOption("color", options.color, (harness, color) => HarnessPredicate.stringMatches(harness.readHex(), color)).addOption("tab", options.tab, async (harness, tab) => await harness.getTab() === tab).addOption("disabled", options.disabled, async (harness, disabled) => await harness.isDisabled() === disabled);
36
+ }
37
+ hexField = this.locatorForOptional(".wr-color-picker__inputs--hex input");
38
+ tabs = this.locatorFor(WrSegmentedHarness.with({ selector: ".wr-color-picker__tabs" }));
39
+ async getTabs() {
40
+ return this.tabs();
41
+ }
42
+ async getTab() {
43
+ return (await (await this.tabs()).getSelectedLabel() ?? "HEX").toLowerCase();
44
+ }
45
+ async setTab(tab) {
46
+ if (await this.getTab() === tab) return;
47
+ await (await this.tabs()).select({ label: tab.toUpperCase() });
48
+ }
49
+ async getHex() {
50
+ const field = await this.hexField();
51
+ if (!field) throw new Error(`WrColorPickerHarness.getHex(): the HEX field is not rendered — the picker is showing the ${(await this.getTab()).toUpperCase()} tab. Call setTab('hex') first.`);
52
+ return field.getProperty("value");
53
+ }
54
+ async setHex(value) {
55
+ const field = await this.requireHexField("setHex");
56
+ await field.clear();
57
+ await field.sendKeys(value);
58
+ }
59
+ async blurHex() {
60
+ await (await this.requireHexField("blurHex")).blur();
61
+ }
62
+ async isHexFocused() {
63
+ return (await this.requireHexField("isHexFocused")).isFocused();
64
+ }
65
+ async getRgb() {
66
+ const [r, g, b] = await this.channelValues("rgb", [
67
+ "R",
68
+ "G",
69
+ "B"
70
+ ]);
71
+ return {
72
+ r,
73
+ g,
74
+ b
75
+ };
76
+ }
77
+ async setRgbChannel(channel, value) {
78
+ await this.writeChannel("rgb", channel.toUpperCase(), value);
79
+ }
80
+ async getHsl() {
81
+ const [h, s, l] = await this.channelValues("hsl", [
82
+ "H",
83
+ "S%",
84
+ "L%"
85
+ ]);
86
+ return {
87
+ h,
88
+ s,
89
+ l
90
+ };
91
+ }
92
+ async setHslChannel(channel, value) {
93
+ await this.writeChannel("hsl", channel === "h" ? "H" : `${channel.toUpperCase()}%`, value);
94
+ }
95
+ async getAlphaPercent() {
96
+ const tab = await this.getTab();
97
+ if (tab === "hex") throw new Error("WrColorPickerHarness.getAlphaPercent(): the HEX tab has no alpha field — the alpha is the last two digits of getHex(). Call setTab('rgb') or setTab('hsl') to read it as a percent.");
98
+ if (!await this.hasAlpha()) return null;
99
+ const [alpha] = await this.channelValues(tab, ["A%"]);
100
+ return alpha;
101
+ }
102
+ async setAlphaPercent(value) {
103
+ const tab = await this.getTab();
104
+ if (tab === "hex") throw new Error("WrColorPickerHarness.setAlphaPercent(): the HEX tab has no alpha field. Call setTab('rgb') first, or write the two alpha digits through setHex().");
105
+ await this.writeChannel(tab, "A%", value);
106
+ }
107
+ async hasAlpha() {
108
+ return (await this.host()).hasClass("wr-color-picker--alpha");
109
+ }
110
+ async isDisabled() {
111
+ return (await this.host()).hasClass("wr-color-picker--disabled");
112
+ }
113
+ async getSwatches() {
114
+ const swatches = await this.locatorForAll(".wr-color-picker__swatch")();
115
+ return Promise.all(swatches.map(async (swatch) => await swatch.getAttribute("aria-label") ?? ""));
116
+ }
117
+ async pickSwatch(color) {
118
+ const swatches = await this.locatorForAll(".wr-color-picker__swatch")();
119
+ for (const swatch of swatches) if (await swatch.getAttribute("aria-label") === color) {
120
+ await swatch.click();
121
+ return;
122
+ }
123
+ throw new Error(`WrColorPickerHarness.pickSwatch(): no swatch for "${color}". The picker offers: ${(await this.getSwatches()).join(", ")}.`);
124
+ }
125
+ async getThumbs() {
126
+ const sv = await this.locatorFor(".wr-color-picker__sv .wr-color-picker__thumb")();
127
+ const hue = await this.locatorFor(".wr-color-picker__slider--hue .wr-color-picker__thumb")();
128
+ const alpha = await this.locatorForOptional(".wr-color-picker__slider--alpha .wr-color-picker__thumb")();
129
+ return {
130
+ sv: {
131
+ x: await percent(sv, "left", "SV"),
132
+ y: await percent(sv, "top", "SV")
133
+ },
134
+ hue: await percent(hue, "inset-inline-start", "hue"),
135
+ alpha: alpha ? await percent(alpha, "inset-inline-start", "alpha") : null
136
+ };
137
+ }
138
+ async readHex() {
139
+ const field = await this.hexField();
140
+ return field ? field.getProperty("value") : "";
141
+ }
142
+ async requireHexField(method) {
143
+ const field = await this.hexField();
144
+ if (!field) throw new Error(`WrColorPickerHarness.${method}(): the HEX field is not rendered — the picker is showing the ${(await this.getTab()).toUpperCase()} tab. Call setTab('hex') first.`);
145
+ return field;
146
+ }
147
+ async channelValues(tab, labels) {
148
+ await this.requireTab(tab, "read");
149
+ const inputs = await this.inputsByLabel();
150
+ return labels.map((label) => {
151
+ const input = inputs.get(label);
152
+ if (!input) throw new Error(`WrColorPickerHarness: the ${tab.toUpperCase()} tab has no "${label}" field.`);
153
+ return Number(input.value);
154
+ });
155
+ }
156
+ async writeChannel(tab, label, value) {
157
+ await this.requireTab(tab, "write");
158
+ const found = (await this.inputsByLabel()).get(label);
159
+ if (!found) throw new Error(`WrColorPickerHarness: the ${tab.toUpperCase()} tab has no "${label}" field. ${label === "A%" ? "This picker was built with `[alpha]=\"false\"`." : ""}`);
160
+ await found.element.setInputValue(String(value));
161
+ await found.element.dispatchEvent("input");
162
+ }
163
+ async requireTab(tab, verb) {
164
+ const current = await this.getTab();
165
+ if (current !== tab) throw new Error(`WrColorPickerHarness: cannot ${verb} the ${tab.toUpperCase()} channels while the picker is showing the ${current.toUpperCase()} tab — those fields are not rendered. Call setTab('${tab}') first.`);
166
+ }
167
+ async inputsByLabel() {
168
+ const found = /* @__PURE__ */ new Map();
169
+ for (const field of await this.locatorForAll(FieldHarness)()) {
170
+ const label = await field.getLabel();
171
+ found.set(label, {
172
+ element: await field.getInput(),
173
+ value: await field.getValue()
174
+ });
175
+ }
176
+ return found;
177
+ }
178
+ };
463
179
  /**
464
- * Generated bundle index. Do not edit.
465
- */
466
-
180
+ * @license
181
+ *
182
+ * Use of this source code is governed by an MIT-style license that can be
183
+ * found in the LICENSE file at https://github.com/thekhegay/ngwr/blob/main/LICENSE
184
+ */
185
+ var WrColorPickerTriggerHarness = class WrColorPickerTriggerHarness extends ComponentHarness {
186
+ static hostSelector = "[wrColorPickerTrigger]";
187
+ static with(options = {}) {
188
+ return new HarnessPredicate(WrColorPickerTriggerHarness, options).addOption("text", options.text, (harness, text) => HarnessPredicate.stringMatches(harness.getText(), text)).addOption("open", options.open, async (harness, open) => await harness.isOpen() === open);
189
+ }
190
+ async getText() {
191
+ return (await this.host()).text();
192
+ }
193
+ async isOpen() {
194
+ return await (await this.host()).getAttribute("aria-expanded") === "true";
195
+ }
196
+ async isDisabled() {
197
+ const host = await this.host();
198
+ return await host.getAttribute("aria-disabled") === "true" || await host.getProperty("disabled");
199
+ }
200
+ async getPicker() {
201
+ const id = await (await this.host()).getAttribute("aria-controls");
202
+ if (!id) return null;
203
+ return this.documentRootLocatorFactory().locatorForOptional(WrColorPickerHarness.with({ ancestor: `#${id}` }))();
204
+ }
205
+ async open() {
206
+ if (!await this.isOpen()) {
207
+ if (await this.isDisabled()) throw new Error(`WrColorPickerTriggerHarness.open(): "${await this.getText()}" is disabled — the directive turns its own toggle away, so the click would land and change nothing.`);
208
+ await (await this.host()).click();
209
+ }
210
+ const picker = await this.getPicker();
211
+ if (!picker) throw new Error("WrColorPickerTriggerHarness.open(): the trigger reports itself open but published no panel to find. That is a broken `aria-controls` pairing, not a timing problem.");
212
+ return picker;
213
+ }
214
+ async close() {
215
+ if (!await this.isOpen()) return;
216
+ await (await this.host()).click();
217
+ }
218
+ async toggle() {
219
+ await (await this.host()).click();
220
+ }
221
+ async sendEscape() {
222
+ await (await this.host()).sendKeys(TestKey.ESCAPE);
223
+ }
224
+ async getHasPopup() {
225
+ return (await this.host()).getAttribute("aria-haspopup");
226
+ }
227
+ };
467
228
  export { WrColorPickerHarness, WrColorPickerTriggerHarness };
468
- //# sourceMappingURL=ngwr-color-picker-testing.mjs.map
229
+
230
+ //# sourceMappingURL=ngwr-color-picker-testing.mjs.map