ngwr 14.9.1 → 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 (695) hide show
  1. package/editor/styles/_index.scss +16 -1
  2. package/fesm2022/ngwr-action-sheet-testing.mjs +111 -310
  3. package/fesm2022/ngwr-action-sheet-testing.mjs.map +1 -1
  4. package/fesm2022/ngwr-action-sheet.mjs +209 -89
  5. package/fesm2022/ngwr-action-sheet.mjs.map +1 -1
  6. package/fesm2022/ngwr-affix.mjs +122 -140
  7. package/fesm2022/ngwr-affix.mjs.map +1 -1
  8. package/fesm2022/ngwr-alert.mjs +204 -107
  9. package/fesm2022/ngwr-alert.mjs.map +1 -1
  10. package/fesm2022/ngwr-anchor.mjs +171 -113
  11. package/fesm2022/ngwr-anchor.mjs.map +1 -1
  12. package/fesm2022/ngwr-aurora.mjs +278 -198
  13. package/fesm2022/ngwr-aurora.mjs.map +1 -1
  14. package/fesm2022/ngwr-avatar.mjs +191 -190
  15. package/fesm2022/ngwr-avatar.mjs.map +1 -1
  16. package/fesm2022/ngwr-back-top.mjs +140 -95
  17. package/fesm2022/ngwr-back-top.mjs.map +1 -1
  18. package/fesm2022/ngwr-badge.mjs +339 -204
  19. package/fesm2022/ngwr-badge.mjs.map +1 -1
  20. package/fesm2022/ngwr-bar-chart-testing.mjs +56 -120
  21. package/fesm2022/ngwr-bar-chart-testing.mjs.map +1 -1
  22. package/fesm2022/ngwr-bar-chart.mjs +204 -113
  23. package/fesm2022/ngwr-bar-chart.mjs.map +1 -1
  24. package/fesm2022/ngwr-blur-text-testing.mjs +44 -198
  25. package/fesm2022/ngwr-blur-text-testing.mjs.map +1 -1
  26. package/fesm2022/ngwr-blur-text.mjs +322 -202
  27. package/fesm2022/ngwr-blur-text.mjs.map +1 -1
  28. package/fesm2022/ngwr-border-glow-testing.mjs +134 -318
  29. package/fesm2022/ngwr-border-glow-testing.mjs.map +1 -1
  30. package/fesm2022/ngwr-border-glow.mjs +440 -277
  31. package/fesm2022/ngwr-border-glow.mjs.map +1 -1
  32. package/fesm2022/ngwr-breadcrumbs.mjs +256 -120
  33. package/fesm2022/ngwr-breadcrumbs.mjs.map +1 -1
  34. package/fesm2022/ngwr-burger.mjs +115 -63
  35. package/fesm2022/ngwr-burger.mjs.map +1 -1
  36. package/fesm2022/ngwr-button-testing.mjs +39 -94
  37. package/fesm2022/ngwr-button-testing.mjs.map +1 -1
  38. package/fesm2022/ngwr-button.mjs +404 -354
  39. package/fesm2022/ngwr-button.mjs.map +1 -1
  40. package/fesm2022/ngwr-calendar-heatmap-testing.mjs +50 -96
  41. package/fesm2022/ngwr-calendar-heatmap-testing.mjs.map +1 -1
  42. package/fesm2022/ngwr-calendar-heatmap.mjs +360 -264
  43. package/fesm2022/ngwr-calendar-heatmap.mjs.map +1 -1
  44. package/fesm2022/ngwr-calendar-testing.mjs +181 -378
  45. package/fesm2022/ngwr-calendar-testing.mjs.map +1 -1
  46. package/fesm2022/ngwr-calendar.mjs +612 -790
  47. package/fesm2022/ngwr-calendar.mjs.map +1 -1
  48. package/fesm2022/ngwr-card.mjs +216 -98
  49. package/fesm2022/ngwr-card.mjs.map +1 -1
  50. package/fesm2022/ngwr-carousel-testing.mjs +131 -374
  51. package/fesm2022/ngwr-carousel-testing.mjs.map +1 -1
  52. package/fesm2022/ngwr-carousel.mjs +459 -332
  53. package/fesm2022/ngwr-carousel.mjs.map +1 -1
  54. package/fesm2022/ngwr-cascader-testing.mjs +227 -600
  55. package/fesm2022/ngwr-cascader-testing.mjs.map +1 -1
  56. package/fesm2022/ngwr-cascader.mjs +479 -418
  57. package/fesm2022/ngwr-cascader.mjs.map +1 -1
  58. package/fesm2022/ngwr-checkbox-testing.mjs +45 -99
  59. package/fesm2022/ngwr-checkbox-testing.mjs.map +1 -1
  60. package/fesm2022/ngwr-checkbox.mjs +442 -354
  61. package/fesm2022/ngwr-checkbox.mjs.map +1 -1
  62. package/fesm2022/ngwr-circular-text-testing.mjs +56 -223
  63. package/fesm2022/ngwr-circular-text-testing.mjs.map +1 -1
  64. package/fesm2022/ngwr-circular-text.mjs +226 -186
  65. package/fesm2022/ngwr-circular-text.mjs.map +1 -1
  66. package/fesm2022/ngwr-click-spark.mjs +303 -199
  67. package/fesm2022/ngwr-click-spark.mjs.map +1 -1
  68. package/fesm2022/ngwr-clipboard.mjs +95 -163
  69. package/fesm2022/ngwr-clipboard.mjs.map +1 -1
  70. package/fesm2022/ngwr-collapse-testing.mjs +118 -365
  71. package/fesm2022/ngwr-collapse-testing.mjs.map +1 -1
  72. package/fesm2022/ngwr-collapse.mjs +287 -227
  73. package/fesm2022/ngwr-collapse.mjs.map +1 -1
  74. package/fesm2022/ngwr-color-picker-testing.mjs +223 -461
  75. package/fesm2022/ngwr-color-picker-testing.mjs.map +1 -1
  76. package/fesm2022/ngwr-color-picker.mjs +937 -976
  77. package/fesm2022/ngwr-color-picker.mjs.map +1 -1
  78. package/fesm2022/ngwr-command-palette-testing.mjs +236 -585
  79. package/fesm2022/ngwr-command-palette-testing.mjs.map +1 -1
  80. package/fesm2022/ngwr-command-palette.mjs +512 -443
  81. package/fesm2022/ngwr-command-palette.mjs.map +1 -1
  82. package/fesm2022/ngwr-compare.mjs +252 -225
  83. package/fesm2022/ngwr-compare.mjs.map +1 -1
  84. package/fesm2022/ngwr-confetti.mjs +163 -181
  85. package/fesm2022/ngwr-confetti.mjs.map +1 -1
  86. package/fesm2022/ngwr-config.mjs +31 -106
  87. package/fesm2022/ngwr-config.mjs.map +1 -1
  88. package/fesm2022/ngwr-context-menu-testing.mjs +233 -642
  89. package/fesm2022/ngwr-context-menu-testing.mjs.map +1 -1
  90. package/fesm2022/ngwr-context-menu.mjs +837 -1167
  91. package/fesm2022/ngwr-context-menu.mjs.map +1 -1
  92. package/fesm2022/ngwr-cookie.mjs +103 -140
  93. package/fesm2022/ngwr-cookie.mjs.map +1 -1
  94. package/fesm2022/ngwr-counter.mjs +646 -460
  95. package/fesm2022/ngwr-counter.mjs.map +1 -1
  96. package/fesm2022/ngwr-date-adapters-fns.mjs +173 -266
  97. package/fesm2022/ngwr-date-adapters-fns.mjs.map +1 -1
  98. package/fesm2022/ngwr-date-adapters-luxon.mjs +164 -236
  99. package/fesm2022/ngwr-date-adapters-luxon.mjs.map +1 -1
  100. package/fesm2022/ngwr-date-picker-testing.mjs +340 -700
  101. package/fesm2022/ngwr-date-picker-testing.mjs.map +1 -1
  102. package/fesm2022/ngwr-date-picker.mjs +2575 -2416
  103. package/fesm2022/ngwr-date-picker.mjs.map +1 -1
  104. package/fesm2022/ngwr-date.mjs +606 -861
  105. package/fesm2022/ngwr-date.mjs.map +1 -1
  106. package/fesm2022/ngwr-decrypt-text-testing.mjs +57 -256
  107. package/fesm2022/ngwr-decrypt-text-testing.mjs.map +1 -1
  108. package/fesm2022/ngwr-decrypt-text.mjs +489 -409
  109. package/fesm2022/ngwr-decrypt-text.mjs.map +1 -1
  110. package/fesm2022/ngwr-density.mjs +157 -154
  111. package/fesm2022/ngwr-density.mjs.map +1 -1
  112. package/fesm2022/ngwr-descriptions.mjs +188 -90
  113. package/fesm2022/ngwr-descriptions.mjs.map +1 -1
  114. package/fesm2022/ngwr-dialog-testing.mjs +44 -87
  115. package/fesm2022/ngwr-dialog-testing.mjs.map +1 -1
  116. package/fesm2022/ngwr-dialog.mjs +391 -522
  117. package/fesm2022/ngwr-dialog.mjs.map +1 -1
  118. package/fesm2022/ngwr-directives.mjs +354 -271
  119. package/fesm2022/ngwr-directives.mjs.map +1 -1
  120. package/fesm2022/ngwr-divider.mjs +151 -133
  121. package/fesm2022/ngwr-divider.mjs.map +1 -1
  122. package/fesm2022/ngwr-donut-chart-testing.mjs +48 -111
  123. package/fesm2022/ngwr-donut-chart-testing.mjs.map +1 -1
  124. package/fesm2022/ngwr-donut-chart.mjs +295 -190
  125. package/fesm2022/ngwr-donut-chart.mjs.map +1 -1
  126. package/fesm2022/ngwr-drag-drop.mjs +411 -301
  127. package/fesm2022/ngwr-drag-drop.mjs.map +1 -1
  128. package/fesm2022/ngwr-drawer-testing.mjs +97 -248
  129. package/fesm2022/ngwr-drawer-testing.mjs.map +1 -1
  130. package/fesm2022/ngwr-drawer.mjs +862 -889
  131. package/fesm2022/ngwr-drawer.mjs.map +1 -1
  132. package/fesm2022/ngwr-dropdown-testing.mjs +125 -288
  133. package/fesm2022/ngwr-dropdown-testing.mjs.map +1 -1
  134. package/fesm2022/ngwr-dropdown.mjs +613 -641
  135. package/fesm2022/ngwr-dropdown.mjs.map +1 -1
  136. package/fesm2022/ngwr-editor-testing.mjs +196 -563
  137. package/fesm2022/ngwr-editor-testing.mjs.map +1 -1
  138. package/fesm2022/ngwr-editor.mjs +2062 -2442
  139. package/fesm2022/ngwr-editor.mjs.map +1 -1
  140. package/fesm2022/ngwr-empty.mjs +117 -72
  141. package/fesm2022/ngwr-empty.mjs.map +1 -1
  142. package/fesm2022/ngwr-event-calendar-testing.mjs +215 -439
  143. package/fesm2022/ngwr-event-calendar-testing.mjs.map +1 -1
  144. package/fesm2022/ngwr-event-calendar.mjs +906 -822
  145. package/fesm2022/ngwr-event-calendar.mjs.map +1 -1
  146. package/fesm2022/ngwr-falling-text-testing.mjs +52 -216
  147. package/fesm2022/ngwr-falling-text-testing.mjs.map +1 -1
  148. package/fesm2022/ngwr-falling-text.mjs +375 -342
  149. package/fesm2022/ngwr-falling-text.mjs.map +1 -1
  150. package/fesm2022/ngwr-file-upload-testing.mjs +133 -320
  151. package/fesm2022/ngwr-file-upload-testing.mjs.map +1 -1
  152. package/fesm2022/ngwr-file-upload.mjs +457 -328
  153. package/fesm2022/ngwr-file-upload.mjs.map +1 -1
  154. package/fesm2022/ngwr-form-testing.mjs +145 -452
  155. package/fesm2022/ngwr-form-testing.mjs.map +1 -1
  156. package/fesm2022/ngwr-form.mjs +512 -590
  157. package/fesm2022/ngwr-form.mjs.map +1 -1
  158. package/fesm2022/ngwr-fuzzy-text-testing.mjs +36 -132
  159. package/fesm2022/ngwr-fuzzy-text-testing.mjs.map +1 -1
  160. package/fesm2022/ngwr-fuzzy-text.mjs +635 -421
  161. package/fesm2022/ngwr-fuzzy-text.mjs.map +1 -1
  162. package/fesm2022/ngwr-gauge-testing.mjs +49 -98
  163. package/fesm2022/ngwr-gauge-testing.mjs.map +1 -1
  164. package/fesm2022/ngwr-gauge.mjs +297 -129
  165. package/fesm2022/ngwr-gauge.mjs.map +1 -1
  166. package/fesm2022/ngwr-glitch-text-testing.mjs +61 -213
  167. package/fesm2022/ngwr-glitch-text-testing.mjs.map +1 -1
  168. package/fesm2022/ngwr-glitch-text.mjs +170 -73
  169. package/fesm2022/ngwr-glitch-text.mjs.map +1 -1
  170. package/fesm2022/ngwr-gradient-text-testing.mjs +82 -251
  171. package/fesm2022/ngwr-gradient-text-testing.mjs.map +1 -1
  172. package/fesm2022/ngwr-gradient-text.mjs +215 -114
  173. package/fesm2022/ngwr-gradient-text.mjs.map +1 -1
  174. package/fesm2022/ngwr-graph-testing.mjs +65 -233
  175. package/fesm2022/ngwr-graph-testing.mjs.map +1 -1
  176. package/fesm2022/ngwr-graph.mjs +882 -1046
  177. package/fesm2022/ngwr-graph.mjs.map +1 -1
  178. package/fesm2022/ngwr-hotkey.mjs +307 -285
  179. package/fesm2022/ngwr-hotkey.mjs.map +1 -1
  180. package/fesm2022/ngwr-i18n-ar.mjs +375 -464
  181. package/fesm2022/ngwr-i18n-ar.mjs.map +1 -1
  182. package/fesm2022/ngwr-i18n-cs.mjs +375 -434
  183. package/fesm2022/ngwr-i18n-cs.mjs.map +1 -1
  184. package/fesm2022/ngwr-i18n-de.mjs +375 -453
  185. package/fesm2022/ngwr-i18n-de.mjs.map +1 -1
  186. package/fesm2022/ngwr-i18n-en.mjs +375 -561
  187. package/fesm2022/ngwr-i18n-en.mjs.map +1 -1
  188. package/fesm2022/ngwr-i18n-es.mjs +375 -434
  189. package/fesm2022/ngwr-i18n-es.mjs.map +1 -1
  190. package/fesm2022/ngwr-i18n-fr.mjs +375 -458
  191. package/fesm2022/ngwr-i18n-fr.mjs.map +1 -1
  192. package/fesm2022/ngwr-i18n-he.mjs +375 -457
  193. package/fesm2022/ngwr-i18n-he.mjs.map +1 -1
  194. package/fesm2022/ngwr-i18n-hi.mjs +375 -434
  195. package/fesm2022/ngwr-i18n-hi.mjs.map +1 -1
  196. package/fesm2022/ngwr-i18n-id.mjs +375 -434
  197. package/fesm2022/ngwr-i18n-id.mjs.map +1 -1
  198. package/fesm2022/ngwr-i18n-it.mjs +375 -453
  199. package/fesm2022/ngwr-i18n-it.mjs.map +1 -1
  200. package/fesm2022/ngwr-i18n-ja.mjs +375 -438
  201. package/fesm2022/ngwr-i18n-ja.mjs.map +1 -1
  202. package/fesm2022/ngwr-i18n-ko.mjs +375 -446
  203. package/fesm2022/ngwr-i18n-ko.mjs.map +1 -1
  204. package/fesm2022/ngwr-i18n-nl.mjs +375 -450
  205. package/fesm2022/ngwr-i18n-nl.mjs.map +1 -1
  206. package/fesm2022/ngwr-i18n-pl.mjs +375 -460
  207. package/fesm2022/ngwr-i18n-pl.mjs.map +1 -1
  208. package/fesm2022/ngwr-i18n-pt.mjs +375 -443
  209. package/fesm2022/ngwr-i18n-pt.mjs.map +1 -1
  210. package/fesm2022/ngwr-i18n-ru.mjs +375 -447
  211. package/fesm2022/ngwr-i18n-ru.mjs.map +1 -1
  212. package/fesm2022/ngwr-i18n-sv.mjs +375 -434
  213. package/fesm2022/ngwr-i18n-sv.mjs.map +1 -1
  214. package/fesm2022/ngwr-i18n-tr.mjs +375 -458
  215. package/fesm2022/ngwr-i18n-tr.mjs.map +1 -1
  216. package/fesm2022/ngwr-i18n-uk.mjs +375 -455
  217. package/fesm2022/ngwr-i18n-uk.mjs.map +1 -1
  218. package/fesm2022/ngwr-i18n-vi.mjs +375 -451
  219. package/fesm2022/ngwr-i18n-vi.mjs.map +1 -1
  220. package/fesm2022/ngwr-i18n-zh-TW.mjs +375 -442
  221. package/fesm2022/ngwr-i18n-zh-TW.mjs.map +1 -1
  222. package/fesm2022/ngwr-i18n-zh.mjs +375 -433
  223. package/fesm2022/ngwr-i18n-zh.mjs.map +1 -1
  224. package/fesm2022/ngwr-i18n.mjs +415 -683
  225. package/fesm2022/ngwr-i18n.mjs.map +1 -1
  226. package/fesm2022/ngwr-icon-adapters-feather.mjs +28 -77
  227. package/fesm2022/ngwr-icon-adapters-feather.mjs.map +1 -1
  228. package/fesm2022/ngwr-icon-adapters-lucide.mjs +32 -94
  229. package/fesm2022/ngwr-icon-adapters-lucide.mjs.map +1 -1
  230. package/fesm2022/ngwr-icon.mjs +371 -690
  231. package/fesm2022/ngwr-icon.mjs.map +1 -1
  232. package/fesm2022/ngwr-image-cropper-testing.mjs +84 -227
  233. package/fesm2022/ngwr-image-cropper-testing.mjs.map +1 -1
  234. package/fesm2022/ngwr-image-cropper.mjs +577 -639
  235. package/fesm2022/ngwr-image-cropper.mjs.map +1 -1
  236. package/fesm2022/ngwr-input-number-testing.mjs +108 -305
  237. package/fesm2022/ngwr-input-number-testing.mjs.map +1 -1
  238. package/fesm2022/ngwr-input-number.mjs +496 -361
  239. package/fesm2022/ngwr-input-number.mjs.map +1 -1
  240. package/fesm2022/ngwr-input-otp-testing.mjs +172 -420
  241. package/fesm2022/ngwr-input-otp-testing.mjs.map +1 -1
  242. package/fesm2022/ngwr-input-otp.mjs +396 -352
  243. package/fesm2022/ngwr-input-otp.mjs.map +1 -1
  244. package/fesm2022/ngwr-input-testing.mjs +52 -100
  245. package/fesm2022/ngwr-input-testing.mjs.map +1 -1
  246. package/fesm2022/ngwr-input.mjs +356 -303
  247. package/fesm2022/ngwr-input.mjs.map +1 -1
  248. package/fesm2022/ngwr-keyboard.mjs +63 -45
  249. package/fesm2022/ngwr-keyboard.mjs.map +1 -1
  250. package/fesm2022/ngwr-knob-testing.mjs +101 -223
  251. package/fesm2022/ngwr-knob-testing.mjs.map +1 -1
  252. package/fesm2022/ngwr-knob.mjs +421 -303
  253. package/fesm2022/ngwr-knob.mjs.map +1 -1
  254. package/fesm2022/ngwr-layout.mjs +362 -207
  255. package/fesm2022/ngwr-layout.mjs.map +1 -1
  256. package/fesm2022/ngwr-lightbox-testing.mjs +100 -221
  257. package/fesm2022/ngwr-lightbox-testing.mjs.map +1 -1
  258. package/fesm2022/ngwr-lightbox.mjs +335 -268
  259. package/fesm2022/ngwr-lightbox.mjs.map +1 -1
  260. package/fesm2022/ngwr-line-chart-testing.mjs +65 -133
  261. package/fesm2022/ngwr-line-chart-testing.mjs.map +1 -1
  262. package/fesm2022/ngwr-line-chart.mjs +356 -281
  263. package/fesm2022/ngwr-line-chart.mjs.map +1 -1
  264. package/fesm2022/ngwr-list.mjs +251 -134
  265. package/fesm2022/ngwr-list.mjs.map +1 -1
  266. package/fesm2022/ngwr-loading-bar-router.mjs +26 -68
  267. package/fesm2022/ngwr-loading-bar-router.mjs.map +1 -1
  268. package/fesm2022/ngwr-loading-bar.mjs +173 -186
  269. package/fesm2022/ngwr-loading-bar.mjs.map +1 -1
  270. package/fesm2022/ngwr-markdown-testing.mjs +174 -505
  271. package/fesm2022/ngwr-markdown-testing.mjs.map +1 -1
  272. package/fesm2022/ngwr-markdown.mjs +1578 -2219
  273. package/fesm2022/ngwr-markdown.mjs.map +1 -1
  274. package/fesm2022/ngwr-marquee-testing.mjs +118 -331
  275. package/fesm2022/ngwr-marquee-testing.mjs.map +1 -1
  276. package/fesm2022/ngwr-marquee.mjs +411 -230
  277. package/fesm2022/ngwr-marquee.mjs.map +1 -1
  278. package/fesm2022/ngwr-media.mjs +100 -127
  279. package/fesm2022/ngwr-media.mjs.map +1 -1
  280. package/fesm2022/ngwr-mention-testing.mjs +179 -506
  281. package/fesm2022/ngwr-mention-testing.mjs.map +1 -1
  282. package/fesm2022/ngwr-mention.mjs +668 -732
  283. package/fesm2022/ngwr-mention.mjs.map +1 -1
  284. package/fesm2022/ngwr-meta.mjs +257 -329
  285. package/fesm2022/ngwr-meta.mjs.map +1 -1
  286. package/fesm2022/ngwr-meter-group-testing.mjs +56 -101
  287. package/fesm2022/ngwr-meter-group-testing.mjs.map +1 -1
  288. package/fesm2022/ngwr-meter-group.mjs +206 -114
  289. package/fesm2022/ngwr-meter-group.mjs.map +1 -1
  290. package/fesm2022/ngwr-overlay.mjs +264 -576
  291. package/fesm2022/ngwr-overlay.mjs.map +1 -1
  292. package/fesm2022/ngwr-page-header.mjs +107 -67
  293. package/fesm2022/ngwr-page-header.mjs.map +1 -1
  294. package/fesm2022/ngwr-pagination-testing.mjs +125 -388
  295. package/fesm2022/ngwr-pagination-testing.mjs.map +1 -1
  296. package/fesm2022/ngwr-pagination.mjs +505 -335
  297. package/fesm2022/ngwr-pagination.mjs.map +1 -1
  298. package/fesm2022/ngwr-pipes.mjs +343 -382
  299. package/fesm2022/ngwr-pipes.mjs.map +1 -1
  300. package/fesm2022/ngwr-platform.mjs +182 -221
  301. package/fesm2022/ngwr-platform.mjs.map +1 -1
  302. package/fesm2022/ngwr-popconfirm-testing.mjs +112 -307
  303. package/fesm2022/ngwr-popconfirm-testing.mjs.map +1 -1
  304. package/fesm2022/ngwr-popconfirm.mjs +474 -277
  305. package/fesm2022/ngwr-popconfirm.mjs.map +1 -1
  306. package/fesm2022/ngwr-popover-testing.mjs +114 -332
  307. package/fesm2022/ngwr-popover-testing.mjs.map +1 -1
  308. package/fesm2022/ngwr-popover.mjs +1106 -1311
  309. package/fesm2022/ngwr-popover.mjs.map +1 -1
  310. package/fesm2022/ngwr-progress.mjs +124 -68
  311. package/fesm2022/ngwr-progress.mjs.map +1 -1
  312. package/fesm2022/ngwr-pull-to-refresh.mjs +198 -185
  313. package/fesm2022/ngwr-pull-to-refresh.mjs.map +1 -1
  314. package/fesm2022/ngwr-qr.mjs +1179 -1100
  315. package/fesm2022/ngwr-qr.mjs.map +1 -1
  316. package/fesm2022/ngwr-radio-testing.mjs +138 -389
  317. package/fesm2022/ngwr-radio-testing.mjs.map +1 -1
  318. package/fesm2022/ngwr-radio.mjs +346 -239
  319. package/fesm2022/ngwr-radio.mjs.map +1 -1
  320. package/fesm2022/ngwr-rating-testing.mjs +153 -390
  321. package/fesm2022/ngwr-rating-testing.mjs.map +1 -1
  322. package/fesm2022/ngwr-rating.mjs +281 -247
  323. package/fesm2022/ngwr-rating.mjs.map +1 -1
  324. package/fesm2022/ngwr-result.mjs +353 -114
  325. package/fesm2022/ngwr-result.mjs.map +1 -1
  326. package/fesm2022/ngwr-rotating-text-testing.mjs +45 -215
  327. package/fesm2022/ngwr-rotating-text-testing.mjs.map +1 -1
  328. package/fesm2022/ngwr-rotating-text.mjs +402 -272
  329. package/fesm2022/ngwr-rotating-text.mjs.map +1 -1
  330. package/fesm2022/ngwr-schema-form.mjs +384 -213
  331. package/fesm2022/ngwr-schema-form.mjs.map +1 -1
  332. package/fesm2022/ngwr-scroll.mjs +95 -105
  333. package/fesm2022/ngwr-scroll.mjs.map +1 -1
  334. package/fesm2022/ngwr-segmented-testing.mjs +184 -593
  335. package/fesm2022/ngwr-segmented-testing.mjs.map +1 -1
  336. package/fesm2022/ngwr-segmented.mjs +235 -251
  337. package/fesm2022/ngwr-segmented.mjs.map +1 -1
  338. package/fesm2022/ngwr-select-testing.mjs +139 -284
  339. package/fesm2022/ngwr-select-testing.mjs.map +1 -1
  340. package/fesm2022/ngwr-select.mjs +1784 -2098
  341. package/fesm2022/ngwr-select.mjs.map +1 -1
  342. package/fesm2022/ngwr-shiny-text-testing.mjs +83 -228
  343. package/fesm2022/ngwr-shiny-text-testing.mjs.map +1 -1
  344. package/fesm2022/ngwr-shiny-text.mjs +304 -131
  345. package/fesm2022/ngwr-shiny-text.mjs.map +1 -1
  346. package/fesm2022/ngwr-sidebar.mjs +256 -205
  347. package/fesm2022/ngwr-sidebar.mjs.map +1 -1
  348. package/fesm2022/ngwr-skeleton.mjs +101 -72
  349. package/fesm2022/ngwr-skeleton.mjs.map +1 -1
  350. package/fesm2022/ngwr-slider-testing.mjs +191 -473
  351. package/fesm2022/ngwr-slider-testing.mjs.map +1 -1
  352. package/fesm2022/ngwr-slider.mjs +430 -443
  353. package/fesm2022/ngwr-slider.mjs.map +1 -1
  354. package/fesm2022/ngwr-sparkline-testing.mjs +37 -74
  355. package/fesm2022/ngwr-sparkline-testing.mjs.map +1 -1
  356. package/fesm2022/ngwr-sparkline.mjs +311 -196
  357. package/fesm2022/ngwr-sparkline.mjs.map +1 -1
  358. package/fesm2022/ngwr-speed-dial-testing.mjs +135 -278
  359. package/fesm2022/ngwr-speed-dial-testing.mjs.map +1 -1
  360. package/fesm2022/ngwr-speed-dial.mjs +242 -140
  361. package/fesm2022/ngwr-speed-dial.mjs.map +1 -1
  362. package/fesm2022/ngwr-spinner.mjs +97 -60
  363. package/fesm2022/ngwr-spinner.mjs.map +1 -1
  364. package/fesm2022/ngwr-splash-cursor-testing.mjs +23 -87
  365. package/fesm2022/ngwr-splash-cursor-testing.mjs.map +1 -1
  366. package/fesm2022/ngwr-splash-cursor.mjs +980 -725
  367. package/fesm2022/ngwr-splash-cursor.mjs.map +1 -1
  368. package/fesm2022/ngwr-split-text-testing.mjs +48 -218
  369. package/fesm2022/ngwr-split-text-testing.mjs.map +1 -1
  370. package/fesm2022/ngwr-split-text.mjs +365 -220
  371. package/fesm2022/ngwr-split-text.mjs.map +1 -1
  372. package/fesm2022/ngwr-splitter-testing.mjs +107 -241
  373. package/fesm2022/ngwr-splitter-testing.mjs.map +1 -1
  374. package/fesm2022/ngwr-splitter.mjs +222 -184
  375. package/fesm2022/ngwr-splitter.mjs.map +1 -1
  376. package/fesm2022/ngwr-spotlight-card-testing.mjs +105 -360
  377. package/fesm2022/ngwr-spotlight-card-testing.mjs.map +1 -1
  378. package/fesm2022/ngwr-spotlight-card.mjs +217 -135
  379. package/fesm2022/ngwr-spotlight-card.mjs.map +1 -1
  380. package/fesm2022/ngwr-squircle.mjs +410 -326
  381. package/fesm2022/ngwr-squircle.mjs.map +1 -1
  382. package/fesm2022/ngwr-star-border-testing.mjs +53 -168
  383. package/fesm2022/ngwr-star-border-testing.mjs.map +1 -1
  384. package/fesm2022/ngwr-star-border.mjs +160 -70
  385. package/fesm2022/ngwr-star-border.mjs.map +1 -1
  386. package/fesm2022/ngwr-statistic.mjs +570 -389
  387. package/fesm2022/ngwr-statistic.mjs.map +1 -1
  388. package/fesm2022/ngwr-stepper-testing.mjs +158 -471
  389. package/fesm2022/ngwr-stepper-testing.mjs.map +1 -1
  390. package/fesm2022/ngwr-stepper.mjs +336 -215
  391. package/fesm2022/ngwr-stepper.mjs.map +1 -1
  392. package/fesm2022/ngwr-storage.mjs +217 -330
  393. package/fesm2022/ngwr-storage.mjs.map +1 -1
  394. package/fesm2022/ngwr-switch-testing.mjs +42 -75
  395. package/fesm2022/ngwr-switch-testing.mjs.map +1 -1
  396. package/fesm2022/ngwr-switch.mjs +197 -114
  397. package/fesm2022/ngwr-switch.mjs.map +1 -1
  398. package/fesm2022/ngwr-table-testing.mjs +238 -572
  399. package/fesm2022/ngwr-table-testing.mjs.map +1 -1
  400. package/fesm2022/ngwr-table.mjs +1875 -1446
  401. package/fesm2022/ngwr-table.mjs.map +1 -1
  402. package/fesm2022/ngwr-tabs-router.mjs +84 -153
  403. package/fesm2022/ngwr-tabs-router.mjs.map +1 -1
  404. package/fesm2022/ngwr-tabs-testing.mjs +217 -617
  405. package/fesm2022/ngwr-tabs-testing.mjs.map +1 -1
  406. package/fesm2022/ngwr-tabs.mjs +402 -425
  407. package/fesm2022/ngwr-tabs.mjs.map +1 -1
  408. package/fesm2022/ngwr-textarea-testing.mjs +84 -236
  409. package/fesm2022/ngwr-textarea-testing.mjs.map +1 -1
  410. package/fesm2022/ngwr-textarea.mjs +385 -264
  411. package/fesm2022/ngwr-textarea.mjs.map +1 -1
  412. package/fesm2022/ngwr-theme.mjs +247 -443
  413. package/fesm2022/ngwr-theme.mjs.map +1 -1
  414. package/fesm2022/ngwr-tilt-card-testing.mjs +79 -186
  415. package/fesm2022/ngwr-tilt-card-testing.mjs.map +1 -1
  416. package/fesm2022/ngwr-tilt-card.mjs +257 -168
  417. package/fesm2022/ngwr-tilt-card.mjs.map +1 -1
  418. package/fesm2022/ngwr-timeline.mjs +157 -70
  419. package/fesm2022/ngwr-timeline.mjs.map +1 -1
  420. package/fesm2022/ngwr-toast-testing.mjs +59 -99
  421. package/fesm2022/ngwr-toast-testing.mjs.map +1 -1
  422. package/fesm2022/ngwr-toast.mjs +769 -691
  423. package/fesm2022/ngwr-toast.mjs.map +1 -1
  424. package/fesm2022/ngwr-toolbar.mjs +73 -58
  425. package/fesm2022/ngwr-toolbar.mjs.map +1 -1
  426. package/fesm2022/ngwr-tour-testing.mjs +75 -171
  427. package/fesm2022/ngwr-tour-testing.mjs.map +1 -1
  428. package/fesm2022/ngwr-tour.mjs +333 -347
  429. package/fesm2022/ngwr-tour.mjs.map +1 -1
  430. package/fesm2022/ngwr-transfer-testing.mjs +195 -534
  431. package/fesm2022/ngwr-transfer-testing.mjs.map +1 -1
  432. package/fesm2022/ngwr-transfer.mjs +441 -322
  433. package/fesm2022/ngwr-transfer.mjs.map +1 -1
  434. package/fesm2022/ngwr-tree-testing.mjs +277 -754
  435. package/fesm2022/ngwr-tree-testing.mjs.map +1 -1
  436. package/fesm2022/ngwr-tree.mjs +876 -906
  437. package/fesm2022/ngwr-tree.mjs.map +1 -1
  438. package/fesm2022/ngwr-typewriter-testing.mjs +50 -237
  439. package/fesm2022/ngwr-typewriter-testing.mjs.map +1 -1
  440. package/fesm2022/ngwr-typewriter.mjs +461 -242
  441. package/fesm2022/ngwr-typewriter.mjs.map +1 -1
  442. package/fesm2022/ngwr-typography.mjs +142 -81
  443. package/fesm2022/ngwr-typography.mjs.map +1 -1
  444. package/fesm2022/ngwr-utils.mjs +304 -613
  445. package/fesm2022/ngwr-utils.mjs.map +1 -1
  446. package/fesm2022/ngwr-validators.mjs +179 -361
  447. package/fesm2022/ngwr-validators.mjs.map +1 -1
  448. package/fesm2022/ngwr-version.mjs +17 -47
  449. package/fesm2022/ngwr-version.mjs.map +1 -1
  450. package/fesm2022/ngwr-virtual-scroll.mjs +259 -125
  451. package/fesm2022/ngwr-virtual-scroll.mjs.map +1 -1
  452. package/fesm2022/ngwr-waves-testing.mjs +34 -125
  453. package/fesm2022/ngwr-waves-testing.mjs.map +1 -1
  454. package/fesm2022/ngwr-waves.mjs +816 -373
  455. package/fesm2022/ngwr-waves.mjs.map +1 -1
  456. package/fesm2022/ngwr-window-testing.mjs +171 -366
  457. package/fesm2022/ngwr-window-testing.mjs.map +1 -1
  458. package/fesm2022/ngwr-window.mjs +1437 -1351
  459. package/fesm2022/ngwr-window.mjs.map +1 -1
  460. package/fesm2022/ngwr.mjs +0 -4
  461. package/input-number/styles/_index.scss +33 -35
  462. package/llms-full.txt +2 -2
  463. package/package.json +1 -1
  464. package/segmented/styles/_index.scss +10 -3
  465. package/types/ngwr-action-sheet-testing.d.ts +174 -200
  466. package/types/ngwr-action-sheet.d.ts +83 -45
  467. package/types/ngwr-affix.d.ts +27 -22
  468. package/types/ngwr-alert.d.ts +93 -59
  469. package/types/ngwr-anchor.d.ts +52 -35
  470. package/types/ngwr-aurora.d.ts +53 -35
  471. package/types/ngwr-avatar.d.ts +97 -81
  472. package/types/ngwr-back-top.d.ts +36 -23
  473. package/types/ngwr-badge.d.ts +160 -105
  474. package/types/ngwr-bar-chart-testing.d.ts +40 -58
  475. package/types/ngwr-bar-chart.d.ts +86 -60
  476. package/types/ngwr-blur-text-testing.d.ts +103 -121
  477. package/types/ngwr-blur-text.d.ts +99 -60
  478. package/types/ngwr-border-glow-testing.d.ts +155 -173
  479. package/types/ngwr-border-glow.d.ts +93 -45
  480. package/types/ngwr-breadcrumbs.d.ts +60 -32
  481. package/types/ngwr-burger.d.ts +38 -23
  482. package/types/ngwr-button-testing.d.ts +41 -59
  483. package/types/ngwr-button.d.ts +213 -163
  484. package/types/ngwr-calendar-heatmap-testing.d.ts +38 -56
  485. package/types/ngwr-calendar-heatmap.d.ts +151 -105
  486. package/types/ngwr-calendar-testing.d.ts +198 -224
  487. package/types/ngwr-calendar.d.ts +285 -246
  488. package/types/ngwr-card.d.ts +41 -23
  489. package/types/ngwr-carousel-testing.d.ts +196 -214
  490. package/types/ngwr-carousel.d.ts +173 -122
  491. package/types/ngwr-cascader-testing.d.ts +338 -372
  492. package/types/ngwr-cascader.d.ts +230 -161
  493. package/types/ngwr-checkbox-testing.d.ts +45 -63
  494. package/types/ngwr-checkbox.d.ts +238 -183
  495. package/types/ngwr-circular-text-testing.d.ts +108 -126
  496. package/types/ngwr-circular-text.d.ts +53 -41
  497. package/types/ngwr-click-spark.d.ts +82 -50
  498. package/types/ngwr-clipboard.d.ts +40 -44
  499. package/types/ngwr-collapse-testing.d.ts +193 -219
  500. package/types/ngwr-collapse.d.ts +82 -71
  501. package/types/ngwr-color-picker-testing.d.ts +211 -237
  502. package/types/ngwr-color-picker.d.ts +343 -300
  503. package/types/ngwr-command-palette-testing.d.ts +311 -345
  504. package/types/ngwr-command-palette.d.ts +257 -197
  505. package/types/ngwr-compare.d.ts +102 -67
  506. package/types/ngwr-confetti.d.ts +51 -55
  507. package/types/ngwr-config.d.ts +44 -71
  508. package/types/ngwr-context-menu-testing.d.ts +301 -327
  509. package/types/ngwr-context-menu.d.ts +350 -310
  510. package/types/ngwr-cookie.d.ts +37 -41
  511. package/types/ngwr-counter.d.ts +223 -128
  512. package/types/ngwr-date-adapters-fns.d.ts +40 -59
  513. package/types/ngwr-date-adapters-luxon.d.ts +61 -72
  514. package/types/ngwr-date-picker-testing.d.ts +295 -339
  515. package/types/ngwr-date-picker.d.ts +759 -583
  516. package/types/ngwr-date.d.ts +229 -258
  517. package/types/ngwr-decrypt-text-testing.d.ts +140 -158
  518. package/types/ngwr-decrypt-text.d.ts +104 -62
  519. package/types/ngwr-density.d.ts +42 -57
  520. package/types/ngwr-descriptions.d.ts +50 -27
  521. package/types/ngwr-dialog-testing.d.ts +36 -54
  522. package/types/ngwr-dialog.d.ts +166 -190
  523. package/types/ngwr-directives.d.ts +82 -60
  524. package/types/ngwr-divider.d.ts +78 -62
  525. package/types/ngwr-donut-chart-testing.d.ts +36 -54
  526. package/types/ngwr-donut-chart.d.ts +102 -66
  527. package/types/ngwr-drag-drop.d.ts +139 -106
  528. package/types/ngwr-drawer-testing.d.ts +141 -159
  529. package/types/ngwr-drawer.d.ts +374 -316
  530. package/types/ngwr-dropdown-testing.d.ts +128 -154
  531. package/types/ngwr-dropdown.d.ts +260 -166
  532. package/types/ngwr-editor-testing.d.ts +329 -301
  533. package/types/ngwr-editor.d.ts +445 -300
  534. package/types/ngwr-empty.d.ts +41 -28
  535. package/types/ngwr-event-calendar-testing.d.ts +217 -243
  536. package/types/ngwr-event-calendar.d.ts +340 -298
  537. package/types/ngwr-falling-text-testing.d.ts +108 -126
  538. package/types/ngwr-falling-text.d.ts +57 -35
  539. package/types/ngwr-file-upload-testing.d.ts +133 -151
  540. package/types/ngwr-file-upload.d.ts +193 -128
  541. package/types/ngwr-form-testing.d.ts +255 -282
  542. package/types/ngwr-form.d.ts +324 -306
  543. package/types/ngwr-fuzzy-text-testing.d.ts +63 -81
  544. package/types/ngwr-fuzzy-text.d.ts +152 -65
  545. package/types/ngwr-gauge-testing.d.ts +43 -61
  546. package/types/ngwr-gauge.d.ts +113 -61
  547. package/types/ngwr-glitch-text-testing.d.ts +125 -143
  548. package/types/ngwr-glitch-text.d.ts +47 -24
  549. package/types/ngwr-gradient-text-testing.d.ts +114 -132
  550. package/types/ngwr-gradient-text.d.ts +51 -24
  551. package/types/ngwr-graph-testing.d.ts +89 -115
  552. package/types/ngwr-graph.d.ts +137 -124
  553. package/types/ngwr-hotkey.d.ts +85 -75
  554. package/types/ngwr-i18n-ar.d.ts +2 -5
  555. package/types/ngwr-i18n-cs.d.ts +2 -5
  556. package/types/ngwr-i18n-de.d.ts +2 -5
  557. package/types/ngwr-i18n-en.d.ts +2 -5
  558. package/types/ngwr-i18n-es.d.ts +2 -5
  559. package/types/ngwr-i18n-fr.d.ts +2 -5
  560. package/types/ngwr-i18n-he.d.ts +2 -5
  561. package/types/ngwr-i18n-hi.d.ts +2 -5
  562. package/types/ngwr-i18n-id.d.ts +2 -5
  563. package/types/ngwr-i18n-it.d.ts +2 -5
  564. package/types/ngwr-i18n-ja.d.ts +2 -5
  565. package/types/ngwr-i18n-ko.d.ts +2 -5
  566. package/types/ngwr-i18n-nl.d.ts +2 -5
  567. package/types/ngwr-i18n-pl.d.ts +2 -5
  568. package/types/ngwr-i18n-pt.d.ts +2 -5
  569. package/types/ngwr-i18n-ru.d.ts +2 -5
  570. package/types/ngwr-i18n-sv.d.ts +2 -5
  571. package/types/ngwr-i18n-tr.d.ts +2 -5
  572. package/types/ngwr-i18n-uk.d.ts +2 -5
  573. package/types/ngwr-i18n-vi.d.ts +2 -5
  574. package/types/ngwr-i18n-zh-TW.d.ts +2 -5
  575. package/types/ngwr-i18n-zh.d.ts +2 -5
  576. package/types/ngwr-i18n.d.ts +202 -246
  577. package/types/ngwr-icon-adapters-feather.d.ts +2 -11
  578. package/types/ngwr-icon-adapters-lucide.d.ts +2 -12
  579. package/types/ngwr-icon.d.ts +62 -84
  580. package/types/ngwr-image-cropper-testing.d.ts +116 -134
  581. package/types/ngwr-image-cropper.d.ts +287 -252
  582. package/types/ngwr-input-number-testing.d.ts +164 -182
  583. package/types/ngwr-input-number.d.ts +231 -150
  584. package/types/ngwr-input-otp-testing.d.ts +210 -244
  585. package/types/ngwr-input-otp.d.ts +167 -123
  586. package/types/ngwr-input-testing.d.ts +42 -60
  587. package/types/ngwr-input.d.ts +118 -94
  588. package/types/ngwr-keyboard.d.ts +14 -12
  589. package/types/ngwr-knob-testing.d.ts +106 -124
  590. package/types/ngwr-knob.d.ts +194 -129
  591. package/types/ngwr-layout.d.ts +57 -40
  592. package/types/ngwr-lightbox-testing.d.ts +101 -119
  593. package/types/ngwr-lightbox.d.ts +140 -87
  594. package/types/ngwr-line-chart-testing.d.ts +51 -69
  595. package/types/ngwr-line-chart.d.ts +171 -134
  596. package/types/ngwr-list.d.ts +55 -27
  597. package/types/ngwr-loading-bar-router.d.ts +2 -12
  598. package/types/ngwr-loading-bar.d.ts +45 -39
  599. package/types/ngwr-markdown-testing.d.ts +323 -350
  600. package/types/ngwr-markdown.d.ts +432 -318
  601. package/types/ngwr-marquee-testing.d.ts +190 -216
  602. package/types/ngwr-marquee.d.ts +127 -75
  603. package/types/ngwr-media.d.ts +25 -39
  604. package/types/ngwr-mention-testing.d.ts +274 -300
  605. package/types/ngwr-mention.d.ts +249 -164
  606. package/types/ngwr-meta.d.ts +93 -108
  607. package/types/ngwr-meter-group-testing.d.ts +33 -51
  608. package/types/ngwr-meter-group.d.ts +86 -60
  609. package/types/ngwr-overlay.d.ts +57 -132
  610. package/types/ngwr-page-header.d.ts +32 -19
  611. package/types/ngwr-pagination-testing.d.ts +215 -233
  612. package/types/ngwr-pagination.d.ts +213 -141
  613. package/types/ngwr-pipes.d.ts +67 -84
  614. package/types/ngwr-platform.d.ts +52 -57
  615. package/types/ngwr-popconfirm-testing.d.ts +181 -199
  616. package/types/ngwr-popconfirm.d.ts +151 -82
  617. package/types/ngwr-popover-testing.d.ts +183 -201
  618. package/types/ngwr-popover.d.ts +291 -207
  619. package/types/ngwr-progress.d.ts +38 -25
  620. package/types/ngwr-pull-to-refresh.d.ts +55 -40
  621. package/types/ngwr-qr.d.ts +79 -37
  622. package/types/ngwr-radio-testing.d.ts +208 -234
  623. package/types/ngwr-radio.d.ts +162 -125
  624. package/types/ngwr-rating-testing.d.ts +218 -244
  625. package/types/ngwr-rating.d.ts +146 -111
  626. package/types/ngwr-result.d.ts +85 -41
  627. package/types/ngwr-rotating-text-testing.d.ts +107 -125
  628. package/types/ngwr-rotating-text.d.ts +96 -52
  629. package/types/ngwr-schema-form.d.ts +57 -49
  630. package/types/ngwr-scroll.d.ts +27 -31
  631. package/types/ngwr-segmented-testing.d.ts +333 -359
  632. package/types/ngwr-segmented.d.ts +183 -165
  633. package/types/ngwr-select-testing.d.ts +128 -154
  634. package/types/ngwr-select.d.ts +1083 -906
  635. package/types/ngwr-shiny-text-testing.d.ts +82 -100
  636. package/types/ngwr-shiny-text.d.ts +83 -36
  637. package/types/ngwr-sidebar.d.ts +108 -93
  638. package/types/ngwr-skeleton.d.ts +34 -26
  639. package/types/ngwr-slider-testing.d.ts +228 -254
  640. package/types/ngwr-slider.d.ts +236 -186
  641. package/types/ngwr-sparkline-testing.d.ts +29 -47
  642. package/types/ngwr-sparkline.d.ts +130 -88
  643. package/types/ngwr-speed-dial-testing.d.ts +129 -155
  644. package/types/ngwr-speed-dial.d.ts +92 -57
  645. package/types/ngwr-spinner.d.ts +30 -23
  646. package/types/ngwr-splash-cursor-testing.d.ts +42 -60
  647. package/types/ngwr-splash-cursor.d.ts +129 -61
  648. package/types/ngwr-split-text-testing.d.ts +119 -137
  649. package/types/ngwr-split-text.d.ts +120 -71
  650. package/types/ngwr-splitter-testing.d.ts +114 -132
  651. package/types/ngwr-splitter.d.ts +85 -55
  652. package/types/ngwr-spotlight-card-testing.d.ts +177 -203
  653. package/types/ngwr-spotlight-card.d.ts +50 -32
  654. package/types/ngwr-squircle.d.ts +112 -70
  655. package/types/ngwr-star-border-testing.d.ts +74 -92
  656. package/types/ngwr-star-border.d.ts +42 -20
  657. package/types/ngwr-statistic.d.ts +210 -130
  658. package/types/ngwr-stepper-testing.d.ts +258 -284
  659. package/types/ngwr-stepper.d.ts +112 -75
  660. package/types/ngwr-storage.d.ts +96 -118
  661. package/types/ngwr-switch-testing.d.ts +26 -44
  662. package/types/ngwr-switch.d.ts +92 -62
  663. package/types/ngwr-table-testing.d.ts +291 -333
  664. package/types/ngwr-table.d.ts +922 -707
  665. package/types/ngwr-tabs-router.d.ts +21 -24
  666. package/types/ngwr-tabs-testing.d.ts +354 -380
  667. package/types/ngwr-tabs.d.ts +169 -155
  668. package/types/ngwr-textarea-testing.d.ts +123 -141
  669. package/types/ngwr-textarea.d.ts +160 -105
  670. package/types/ngwr-theme.d.ts +81 -163
  671. package/types/ngwr-tilt-card-testing.d.ts +94 -112
  672. package/types/ngwr-tilt-card.d.ts +64 -35
  673. package/types/ngwr-timeline.d.ts +36 -19
  674. package/types/ngwr-toast-testing.d.ts +37 -55
  675. package/types/ngwr-toast.d.ts +165 -209
  676. package/types/ngwr-toolbar.d.ts +17 -14
  677. package/types/ngwr-tour-testing.d.ts +84 -102
  678. package/types/ngwr-tour.d.ts +142 -144
  679. package/types/ngwr-transfer-testing.d.ts +293 -328
  680. package/types/ngwr-transfer.d.ts +217 -159
  681. package/types/ngwr-tree-testing.d.ts +428 -454
  682. package/types/ngwr-tree.d.ts +400 -296
  683. package/types/ngwr-typewriter-testing.d.ts +125 -143
  684. package/types/ngwr-typewriter.d.ts +137 -63
  685. package/types/ngwr-typography.d.ts +49 -27
  686. package/types/ngwr-utils.d.ts +100 -107
  687. package/types/ngwr-validators.d.ts +94 -104
  688. package/types/ngwr-version.d.ts +3 -14
  689. package/types/ngwr-virtual-scroll.d.ts +86 -58
  690. package/types/ngwr-waves-testing.d.ts +61 -79
  691. package/types/ngwr-waves.d.ts +116 -63
  692. package/types/ngwr-window-testing.d.ts +178 -204
  693. package/types/ngwr-window.d.ts +299 -325
  694. package/types/ngwr.d.ts +1 -2
  695. 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