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