ngwr 10.2.0 → 11.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (471) hide show
  1. package/README.md +39 -19
  2. package/anchor/styles/_index.scss +4 -4
  3. package/back-top/styles/_index.scss +6 -1
  4. package/blur-text/styles/_index.scss +13 -0
  5. package/button/styles/_index.scss +11 -6
  6. package/carousel/styles/_index.scss +13 -2
  7. package/cascader/styles/_index.scss +2 -2
  8. package/circular-text/styles/_index.scss +2 -0
  9. package/collapse/styles/_index.scss +1 -1
  10. package/color-picker/styles/_index.scss +6 -1
  11. package/compare/styles/_index.scss +1 -2
  12. package/context-menu/styles/_index.scss +6 -1
  13. package/descriptions/styles/_index.scss +2 -2
  14. package/dialog/styles/_index.scss +38 -0
  15. package/drawer/styles/_index.scss +20 -1
  16. package/dropdown/styles/_index.scss +19 -5
  17. package/empty/styles/_index.scss +10 -0
  18. package/fesm2022/ngwr-action-sheet.mjs +15 -5
  19. package/fesm2022/ngwr-action-sheet.mjs.map +1 -1
  20. package/fesm2022/ngwr-affix.mjs +43 -16
  21. package/fesm2022/ngwr-affix.mjs.map +1 -1
  22. package/fesm2022/ngwr-alert.mjs +3 -3
  23. package/fesm2022/ngwr-anchor.mjs +20 -8
  24. package/fesm2022/ngwr-anchor.mjs.map +1 -1
  25. package/fesm2022/ngwr-aurora.mjs +4 -4
  26. package/fesm2022/ngwr-aurora.mjs.map +1 -1
  27. package/fesm2022/ngwr-avatar.mjs +33 -9
  28. package/fesm2022/ngwr-avatar.mjs.map +1 -1
  29. package/fesm2022/ngwr-back-top.mjs +8 -4
  30. package/fesm2022/ngwr-back-top.mjs.map +1 -1
  31. package/fesm2022/ngwr-badge.mjs +6 -6
  32. package/fesm2022/ngwr-badge.mjs.map +1 -1
  33. package/fesm2022/ngwr-bar-chart.mjs +32 -11
  34. package/fesm2022/ngwr-bar-chart.mjs.map +1 -1
  35. package/fesm2022/ngwr-blur-text.mjs +4 -4
  36. package/fesm2022/ngwr-blur-text.mjs.map +1 -1
  37. package/fesm2022/ngwr-border-glow.mjs +4 -4
  38. package/fesm2022/ngwr-border-glow.mjs.map +1 -1
  39. package/fesm2022/ngwr-breadcrumbs.mjs +9 -8
  40. package/fesm2022/ngwr-breadcrumbs.mjs.map +1 -1
  41. package/fesm2022/ngwr-burger.mjs +11 -6
  42. package/fesm2022/ngwr-burger.mjs.map +1 -1
  43. package/fesm2022/ngwr-button-testing.mjs +96 -0
  44. package/fesm2022/ngwr-button-testing.mjs.map +1 -0
  45. package/fesm2022/ngwr-button.mjs +89 -24
  46. package/fesm2022/ngwr-button.mjs.map +1 -1
  47. package/fesm2022/ngwr-calendar-heatmap.mjs +42 -10
  48. package/fesm2022/ngwr-calendar-heatmap.mjs.map +1 -1
  49. package/fesm2022/ngwr-calendar.mjs +108 -9
  50. package/fesm2022/ngwr-calendar.mjs.map +1 -1
  51. package/fesm2022/ngwr-card.mjs +10 -10
  52. package/fesm2022/ngwr-card.mjs.map +1 -1
  53. package/fesm2022/ngwr-carousel-testing.mjs +377 -0
  54. package/fesm2022/ngwr-carousel-testing.mjs.map +1 -0
  55. package/fesm2022/ngwr-carousel.mjs +72 -18
  56. package/fesm2022/ngwr-carousel.mjs.map +1 -1
  57. package/fesm2022/ngwr-cascader-testing.mjs +534 -0
  58. package/fesm2022/ngwr-cascader-testing.mjs.map +1 -0
  59. package/fesm2022/ngwr-cascader.mjs +4 -4
  60. package/fesm2022/ngwr-cascader.mjs.map +1 -1
  61. package/fesm2022/ngwr-checkbox-testing.mjs +90 -0
  62. package/fesm2022/ngwr-checkbox-testing.mjs.map +1 -0
  63. package/fesm2022/ngwr-checkbox.mjs +15 -9
  64. package/fesm2022/ngwr-checkbox.mjs.map +1 -1
  65. package/fesm2022/ngwr-circular-text.mjs +4 -4
  66. package/fesm2022/ngwr-circular-text.mjs.map +1 -1
  67. package/fesm2022/ngwr-click-spark.mjs +4 -4
  68. package/fesm2022/ngwr-click-spark.mjs.map +1 -1
  69. package/fesm2022/ngwr-clipboard.mjs +18 -4
  70. package/fesm2022/ngwr-clipboard.mjs.map +1 -1
  71. package/fesm2022/ngwr-collapse-testing.mjs +368 -0
  72. package/fesm2022/ngwr-collapse-testing.mjs.map +1 -0
  73. package/fesm2022/ngwr-collapse.mjs +9 -9
  74. package/fesm2022/ngwr-color-picker.mjs +139 -19
  75. package/fesm2022/ngwr-color-picker.mjs.map +1 -1
  76. package/fesm2022/ngwr-command-palette-testing.mjs +589 -0
  77. package/fesm2022/ngwr-command-palette-testing.mjs.map +1 -0
  78. package/fesm2022/ngwr-command-palette.mjs +60 -10
  79. package/fesm2022/ngwr-command-palette.mjs.map +1 -1
  80. package/fesm2022/ngwr-compare.mjs +105 -15
  81. package/fesm2022/ngwr-compare.mjs.map +1 -1
  82. package/fesm2022/ngwr-confetti.mjs +3 -3
  83. package/fesm2022/ngwr-config.mjs +106 -0
  84. package/fesm2022/ngwr-config.mjs.map +1 -0
  85. package/fesm2022/ngwr-context-menu-testing.mjs +631 -0
  86. package/fesm2022/ngwr-context-menu-testing.mjs.map +1 -0
  87. package/fesm2022/ngwr-context-menu.mjs +104 -18
  88. package/fesm2022/ngwr-context-menu.mjs.map +1 -1
  89. package/fesm2022/ngwr-cookie.mjs +8 -4
  90. package/fesm2022/ngwr-cookie.mjs.map +1 -1
  91. package/fesm2022/ngwr-counter.mjs +17 -9
  92. package/fesm2022/ngwr-counter.mjs.map +1 -1
  93. package/fesm2022/ngwr-date-adapter-fns.mjs +3 -3
  94. package/fesm2022/ngwr-date-adapter-luxon.mjs +55 -7
  95. package/fesm2022/ngwr-date-adapter-luxon.mjs.map +1 -1
  96. package/fesm2022/ngwr-date-adapter.mjs +57 -11
  97. package/fesm2022/ngwr-date-adapter.mjs.map +1 -1
  98. package/fesm2022/ngwr-date-picker-testing.mjs +766 -0
  99. package/fesm2022/ngwr-date-picker-testing.mjs.map +1 -0
  100. package/fesm2022/ngwr-date-picker.mjs +409 -57
  101. package/fesm2022/ngwr-date-picker.mjs.map +1 -1
  102. package/fesm2022/ngwr-decrypt-text.mjs +30 -12
  103. package/fesm2022/ngwr-decrypt-text.mjs.map +1 -1
  104. package/fesm2022/ngwr-density.mjs +6 -6
  105. package/fesm2022/ngwr-descriptions.mjs +6 -6
  106. package/fesm2022/ngwr-dialog-testing.mjs +89 -0
  107. package/fesm2022/ngwr-dialog-testing.mjs.map +1 -0
  108. package/fesm2022/ngwr-dialog.mjs +33 -17
  109. package/fesm2022/ngwr-dialog.mjs.map +1 -1
  110. package/fesm2022/ngwr-directives.mjs +48 -24
  111. package/fesm2022/ngwr-directives.mjs.map +1 -1
  112. package/fesm2022/ngwr-divider.mjs +3 -3
  113. package/fesm2022/ngwr-donut-chart.mjs +24 -7
  114. package/fesm2022/ngwr-donut-chart.mjs.map +1 -1
  115. package/fesm2022/ngwr-drag-drop.mjs +7 -7
  116. package/fesm2022/ngwr-drag-drop.mjs.map +1 -1
  117. package/fesm2022/ngwr-drawer-testing.mjs +250 -0
  118. package/fesm2022/ngwr-drawer-testing.mjs.map +1 -0
  119. package/fesm2022/ngwr-drawer.mjs +37 -19
  120. package/fesm2022/ngwr-drawer.mjs.map +1 -1
  121. package/fesm2022/ngwr-dropdown-testing.mjs +291 -0
  122. package/fesm2022/ngwr-dropdown-testing.mjs.map +1 -0
  123. package/fesm2022/ngwr-dropdown.mjs +19 -11
  124. package/fesm2022/ngwr-dropdown.mjs.map +1 -1
  125. package/fesm2022/ngwr-empty.mjs +26 -9
  126. package/fesm2022/ngwr-empty.mjs.map +1 -1
  127. package/fesm2022/ngwr-event-calendar.mjs +62 -15
  128. package/fesm2022/ngwr-event-calendar.mjs.map +1 -1
  129. package/fesm2022/ngwr-falling-text.mjs +4 -4
  130. package/fesm2022/ngwr-falling-text.mjs.map +1 -1
  131. package/fesm2022/ngwr-file-upload-testing.mjs +332 -0
  132. package/fesm2022/ngwr-file-upload-testing.mjs.map +1 -0
  133. package/fesm2022/ngwr-file-upload.mjs +3 -3
  134. package/fesm2022/ngwr-form-testing.mjs +451 -0
  135. package/fesm2022/ngwr-form-testing.mjs.map +1 -0
  136. package/fesm2022/ngwr-form.mjs +28 -12
  137. package/fesm2022/ngwr-form.mjs.map +1 -1
  138. package/fesm2022/ngwr-fuzzy-text.mjs +11 -4
  139. package/fesm2022/ngwr-fuzzy-text.mjs.map +1 -1
  140. package/fesm2022/ngwr-gauge.mjs +21 -7
  141. package/fesm2022/ngwr-gauge.mjs.map +1 -1
  142. package/fesm2022/ngwr-glitch-text.mjs +4 -4
  143. package/fesm2022/ngwr-glitch-text.mjs.map +1 -1
  144. package/fesm2022/ngwr-gradient-text.mjs +4 -4
  145. package/fesm2022/ngwr-gradient-text.mjs.map +1 -1
  146. package/fesm2022/ngwr-hotkey.mjs +31 -10
  147. package/fesm2022/ngwr-hotkey.mjs.map +1 -1
  148. package/fesm2022/ngwr-i18n-en.mjs +61 -0
  149. package/fesm2022/ngwr-i18n-en.mjs.map +1 -1
  150. package/fesm2022/ngwr-i18n-ru.mjs +59 -0
  151. package/fesm2022/ngwr-i18n-ru.mjs.map +1 -1
  152. package/fesm2022/ngwr-i18n.mjs +9 -9
  153. package/fesm2022/ngwr-icon.mjs +6 -6
  154. package/fesm2022/ngwr-image-cropper.mjs +26 -3
  155. package/fesm2022/ngwr-image-cropper.mjs.map +1 -1
  156. package/fesm2022/ngwr-input-number-testing.mjs +306 -0
  157. package/fesm2022/ngwr-input-number-testing.mjs.map +1 -0
  158. package/fesm2022/ngwr-input-number.mjs +37 -5
  159. package/fesm2022/ngwr-input-number.mjs.map +1 -1
  160. package/fesm2022/ngwr-input-otp-testing.mjs +419 -0
  161. package/fesm2022/ngwr-input-otp-testing.mjs.map +1 -0
  162. package/fesm2022/ngwr-input-otp.mjs +39 -8
  163. package/fesm2022/ngwr-input-otp.mjs.map +1 -1
  164. package/fesm2022/ngwr-input-testing.mjs +102 -0
  165. package/fesm2022/ngwr-input-testing.mjs.map +1 -0
  166. package/fesm2022/ngwr-input.mjs +62 -25
  167. package/fesm2022/ngwr-input.mjs.map +1 -1
  168. package/fesm2022/ngwr-keyboard.mjs +3 -3
  169. package/fesm2022/ngwr-knob.mjs +46 -10
  170. package/fesm2022/ngwr-knob.mjs.map +1 -1
  171. package/fesm2022/ngwr-layout.mjs +36 -20
  172. package/fesm2022/ngwr-layout.mjs.map +1 -1
  173. package/fesm2022/ngwr-lightbox.mjs +35 -8
  174. package/fesm2022/ngwr-lightbox.mjs.map +1 -1
  175. package/fesm2022/ngwr-line-chart.mjs +19 -6
  176. package/fesm2022/ngwr-line-chart.mjs.map +1 -1
  177. package/fesm2022/ngwr-list.mjs +14 -9
  178. package/fesm2022/ngwr-list.mjs.map +1 -1
  179. package/fesm2022/ngwr-loading-bar.mjs +71 -31
  180. package/fesm2022/ngwr-loading-bar.mjs.map +1 -1
  181. package/fesm2022/ngwr-markdown-testing.mjs +516 -0
  182. package/fesm2022/ngwr-markdown-testing.mjs.map +1 -0
  183. package/fesm2022/ngwr-markdown.mjs +1492 -0
  184. package/fesm2022/ngwr-markdown.mjs.map +1 -0
  185. package/fesm2022/ngwr-marquee.mjs +19 -8
  186. package/fesm2022/ngwr-marquee.mjs.map +1 -1
  187. package/fesm2022/ngwr-media.mjs +3 -3
  188. package/fesm2022/ngwr-mention-testing.mjs +513 -0
  189. package/fesm2022/ngwr-mention-testing.mjs.map +1 -0
  190. package/fesm2022/ngwr-mention.mjs +16 -7
  191. package/fesm2022/ngwr-mention.mjs.map +1 -1
  192. package/fesm2022/ngwr-meta.mjs +28 -13
  193. package/fesm2022/ngwr-meta.mjs.map +1 -1
  194. package/fesm2022/ngwr-meter-group.mjs +22 -8
  195. package/fesm2022/ngwr-meter-group.mjs.map +1 -1
  196. package/fesm2022/ngwr-overlay.mjs +57 -8
  197. package/fesm2022/ngwr-overlay.mjs.map +1 -1
  198. package/fesm2022/ngwr-page-header.mjs +3 -3
  199. package/fesm2022/ngwr-pagination-testing.mjs +389 -0
  200. package/fesm2022/ngwr-pagination-testing.mjs.map +1 -0
  201. package/fesm2022/ngwr-pagination.mjs +27 -11
  202. package/fesm2022/ngwr-pagination.mjs.map +1 -1
  203. package/fesm2022/ngwr-pipes.mjs +21 -21
  204. package/fesm2022/ngwr-platform.mjs +9 -9
  205. package/fesm2022/ngwr-popconfirm-testing.mjs +309 -0
  206. package/fesm2022/ngwr-popconfirm-testing.mjs.map +1 -0
  207. package/fesm2022/ngwr-popconfirm.mjs +99 -21
  208. package/fesm2022/ngwr-popconfirm.mjs.map +1 -1
  209. package/fesm2022/ngwr-popover-testing.mjs +316 -0
  210. package/fesm2022/ngwr-popover-testing.mjs.map +1 -0
  211. package/fesm2022/ngwr-popover.mjs +48 -10
  212. package/fesm2022/ngwr-popover.mjs.map +1 -1
  213. package/fesm2022/ngwr-progress.mjs +3 -3
  214. package/fesm2022/ngwr-pull-to-refresh.mjs +19 -4
  215. package/fesm2022/ngwr-pull-to-refresh.mjs.map +1 -1
  216. package/fesm2022/ngwr-qr.mjs +15 -5
  217. package/fesm2022/ngwr-qr.mjs.map +1 -1
  218. package/fesm2022/ngwr-radio-testing.mjs +392 -0
  219. package/fesm2022/ngwr-radio-testing.mjs.map +1 -0
  220. package/fesm2022/ngwr-radio.mjs +16 -9
  221. package/fesm2022/ngwr-radio.mjs.map +1 -1
  222. package/fesm2022/ngwr-rating-testing.mjs +384 -0
  223. package/fesm2022/ngwr-rating-testing.mjs.map +1 -0
  224. package/fesm2022/ngwr-rating.mjs +40 -5
  225. package/fesm2022/ngwr-rating.mjs.map +1 -1
  226. package/fesm2022/ngwr-result.mjs +12 -12
  227. package/fesm2022/ngwr-rotating-text.mjs +3 -3
  228. package/fesm2022/ngwr-scroll.mjs +3 -3
  229. package/fesm2022/ngwr-segmented-testing.mjs +512 -0
  230. package/fesm2022/ngwr-segmented-testing.mjs.map +1 -0
  231. package/fesm2022/ngwr-segmented.mjs +3 -3
  232. package/fesm2022/ngwr-select-testing.mjs +268 -0
  233. package/fesm2022/ngwr-select-testing.mjs.map +1 -0
  234. package/fesm2022/ngwr-select.mjs +96 -25
  235. package/fesm2022/ngwr-select.mjs.map +1 -1
  236. package/fesm2022/ngwr-shiny-text.mjs +7 -7
  237. package/fesm2022/ngwr-shiny-text.mjs.map +1 -1
  238. package/fesm2022/ngwr-sidebar.mjs +67 -14
  239. package/fesm2022/ngwr-sidebar.mjs.map +1 -1
  240. package/fesm2022/ngwr-skeleton.mjs +3 -3
  241. package/fesm2022/ngwr-slider-testing.mjs +478 -0
  242. package/fesm2022/ngwr-slider-testing.mjs.map +1 -0
  243. package/fesm2022/ngwr-slider.mjs +59 -15
  244. package/fesm2022/ngwr-slider.mjs.map +1 -1
  245. package/fesm2022/ngwr-sparkline.mjs +28 -8
  246. package/fesm2022/ngwr-sparkline.mjs.map +1 -1
  247. package/fesm2022/ngwr-speed-dial.mjs +39 -6
  248. package/fesm2022/ngwr-speed-dial.mjs.map +1 -1
  249. package/fesm2022/ngwr-spinner.mjs +14 -5
  250. package/fesm2022/ngwr-spinner.mjs.map +1 -1
  251. package/fesm2022/ngwr-splash-cursor.mjs +4 -4
  252. package/fesm2022/ngwr-splash-cursor.mjs.map +1 -1
  253. package/fesm2022/ngwr-split-text.mjs +4 -4
  254. package/fesm2022/ngwr-split-text.mjs.map +1 -1
  255. package/fesm2022/ngwr-splitter.mjs +72 -11
  256. package/fesm2022/ngwr-splitter.mjs.map +1 -1
  257. package/fesm2022/ngwr-spotlight-card.mjs +7 -7
  258. package/fesm2022/ngwr-spotlight-card.mjs.map +1 -1
  259. package/fesm2022/ngwr-squircle.mjs +6 -6
  260. package/fesm2022/ngwr-star-border.mjs +4 -4
  261. package/fesm2022/ngwr-star-border.mjs.map +1 -1
  262. package/fesm2022/ngwr-statistic.mjs +33 -16
  263. package/fesm2022/ngwr-statistic.mjs.map +1 -1
  264. package/fesm2022/ngwr-stepper-testing.mjs +477 -0
  265. package/fesm2022/ngwr-stepper-testing.mjs.map +1 -0
  266. package/fesm2022/ngwr-stepper.mjs +6 -6
  267. package/fesm2022/ngwr-storage.mjs +27 -17
  268. package/fesm2022/ngwr-storage.mjs.map +1 -1
  269. package/fesm2022/ngwr-switch-testing.mjs +77 -0
  270. package/fesm2022/ngwr-switch-testing.mjs.map +1 -0
  271. package/fesm2022/ngwr-switch.mjs +12 -6
  272. package/fesm2022/ngwr-switch.mjs.map +1 -1
  273. package/fesm2022/ngwr-table-testing.mjs +580 -0
  274. package/fesm2022/ngwr-table-testing.mjs.map +1 -0
  275. package/fesm2022/ngwr-table.mjs +105 -44
  276. package/fesm2022/ngwr-table.mjs.map +1 -1
  277. package/fesm2022/ngwr-tabs-testing.mjs +617 -0
  278. package/fesm2022/ngwr-tabs-testing.mjs.map +1 -0
  279. package/fesm2022/ngwr-tabs.mjs +44 -12
  280. package/fesm2022/ngwr-tabs.mjs.map +1 -1
  281. package/fesm2022/ngwr-textarea-testing.mjs +238 -0
  282. package/fesm2022/ngwr-textarea-testing.mjs.map +1 -0
  283. package/fesm2022/ngwr-textarea.mjs +35 -7
  284. package/fesm2022/ngwr-textarea.mjs.map +1 -1
  285. package/fesm2022/ngwr-theme.mjs +3 -3
  286. package/fesm2022/ngwr-tilt-card.mjs +7 -7
  287. package/fesm2022/ngwr-tilt-card.mjs.map +1 -1
  288. package/fesm2022/ngwr-timeline.mjs +6 -6
  289. package/fesm2022/ngwr-toast-testing.mjs +101 -0
  290. package/fesm2022/ngwr-toast-testing.mjs.map +1 -0
  291. package/fesm2022/ngwr-toast.mjs +55 -21
  292. package/fesm2022/ngwr-toast.mjs.map +1 -1
  293. package/fesm2022/ngwr-toolbar.mjs +3 -3
  294. package/fesm2022/ngwr-tour.mjs +67 -15
  295. package/fesm2022/ngwr-tour.mjs.map +1 -1
  296. package/fesm2022/ngwr-transfer-testing.mjs +538 -0
  297. package/fesm2022/ngwr-transfer-testing.mjs.map +1 -0
  298. package/fesm2022/ngwr-transfer.mjs +47 -16
  299. package/fesm2022/ngwr-transfer.mjs.map +1 -1
  300. package/fesm2022/ngwr-tree-testing.mjs +734 -0
  301. package/fesm2022/ngwr-tree-testing.mjs.map +1 -0
  302. package/fesm2022/ngwr-tree.mjs +75 -9
  303. package/fesm2022/ngwr-tree.mjs.map +1 -1
  304. package/fesm2022/ngwr-typewriter.mjs +7 -5
  305. package/fesm2022/ngwr-typewriter.mjs.map +1 -1
  306. package/fesm2022/ngwr-typography.mjs +3 -3
  307. package/fesm2022/ngwr-version.mjs +1 -1
  308. package/fesm2022/ngwr-version.mjs.map +1 -1
  309. package/fesm2022/ngwr-virtual-scroll.mjs +33 -7
  310. package/fesm2022/ngwr-virtual-scroll.mjs.map +1 -1
  311. package/fesm2022/ngwr-waves.mjs +5 -5
  312. package/fesm2022/ngwr-waves.mjs.map +1 -1
  313. package/fesm2022/ngwr-window.mjs +88 -18
  314. package/fesm2022/ngwr-window.mjs.map +1 -1
  315. package/gauge/styles/_index.scss +1 -1
  316. package/glitch-text/styles/_index.scss +4 -0
  317. package/i18n/en.json +56 -0
  318. package/i18n/ru.json +56 -0
  319. package/image-cropper/styles/_index.scss +13 -1
  320. package/input/styles/_index.scss +2 -2
  321. package/input-number/styles/_index.scss +7 -2
  322. package/knob/styles/_index.scss +8 -1
  323. package/layout/styles/_index.scss +3 -3
  324. package/lightbox/styles/_index.scss +10 -2
  325. package/line-chart/styles/_index.scss +6 -0
  326. package/llms-full.txt +151 -4
  327. package/llms.txt +57 -8
  328. package/loading-bar/styles/_index.scss +1 -2
  329. package/markdown/styles/_index.scss +296 -0
  330. package/marquee/styles/_index.scss +12 -0
  331. package/mcp/api.js +512 -0
  332. package/mcp/catalog.js +157 -0
  333. package/mcp/server.js +273 -0
  334. package/mcp/tools.js +366 -0
  335. package/meter-group/styles/_index.scss +1 -1
  336. package/package.json +186 -35
  337. package/pagination/styles/_index.scss +6 -6
  338. package/popover/styles/_index.scss +37 -5
  339. package/rating/styles/_index.scss +10 -0
  340. package/schematics/use/symbol-map.json +2 -0
  341. package/segmented/styles/_index.scss +7 -0
  342. package/select/styles/_index.scss +29 -9
  343. package/sidebar/styles/_index.scss +30 -5
  344. package/slider/styles/_index.scss +15 -0
  345. package/speed-dial/styles/_index.scss +20 -0
  346. package/split-text/styles/_index.scss +13 -0
  347. package/star-border/styles/_index.scss +2 -0
  348. package/stepper/styles/_index.scss +1 -1
  349. package/styles/_grid.scss +4 -4
  350. package/styles.scss +1 -0
  351. package/switch/styles/_index.scss +5 -3
  352. package/table/styles/_index.scss +22 -11
  353. package/tabs/styles/_index.scss +11 -1
  354. package/textarea/styles/_index.scss +5 -0
  355. package/theme/styles/_colors.scss +29 -13
  356. package/theme/styles/_dark.scss +11 -3
  357. package/theme/styles/_mixins.scss +3 -0
  358. package/timeline/styles/_index.scss +2 -2
  359. package/toast/styles/_index.scss +17 -8
  360. package/toolbar/styles/_index.scss +3 -3
  361. package/tour/styles/_index.scss +7 -1
  362. package/tree/styles/_index.scss +5 -3
  363. package/types/ngwr-action-sheet.d.ts +9 -1
  364. package/types/ngwr-affix.d.ts +7 -1
  365. package/types/ngwr-anchor.d.ts +8 -1
  366. package/types/ngwr-avatar.d.ts +13 -3
  367. package/types/ngwr-bar-chart.d.ts +16 -0
  368. package/types/ngwr-burger.d.ts +6 -2
  369. package/types/ngwr-button-testing.d.ts +85 -0
  370. package/types/ngwr-button.d.ts +58 -10
  371. package/types/ngwr-calendar-heatmap.d.ts +16 -2
  372. package/types/ngwr-calendar.d.ts +37 -1
  373. package/types/ngwr-carousel-testing.d.ts +257 -0
  374. package/types/ngwr-carousel.d.ts +20 -4
  375. package/types/ngwr-cascader-testing.d.ts +392 -0
  376. package/types/ngwr-checkbox-testing.d.ts +77 -0
  377. package/types/ngwr-checkbox.d.ts +7 -2
  378. package/types/ngwr-clipboard.d.ts +8 -1
  379. package/types/ngwr-collapse-testing.d.ts +290 -0
  380. package/types/ngwr-color-picker.d.ts +20 -11
  381. package/types/ngwr-command-palette-testing.d.ts +437 -0
  382. package/types/ngwr-command-palette.d.ts +25 -2
  383. package/types/ngwr-compare.d.ts +50 -2
  384. package/types/ngwr-config.d.ts +176 -0
  385. package/types/ngwr-context-menu-testing.d.ts +401 -0
  386. package/types/ngwr-context-menu.d.ts +65 -17
  387. package/types/ngwr-counter.d.ts +6 -1
  388. package/types/ngwr-date-adapter-luxon.d.ts +26 -0
  389. package/types/ngwr-date-picker-testing.d.ts +518 -0
  390. package/types/ngwr-date-picker.d.ts +128 -8
  391. package/types/ngwr-dialog-testing.d.ts +79 -0
  392. package/types/ngwr-dialog.d.ts +13 -0
  393. package/types/ngwr-directives.d.ts +10 -1
  394. package/types/ngwr-donut-chart.d.ts +8 -1
  395. package/types/ngwr-drawer-testing.d.ts +196 -0
  396. package/types/ngwr-drawer.d.ts +15 -0
  397. package/types/ngwr-dropdown-testing.d.ts +202 -0
  398. package/types/ngwr-dropdown.d.ts +7 -1
  399. package/types/ngwr-empty.d.ts +19 -4
  400. package/types/ngwr-event-calendar.d.ts +26 -1
  401. package/types/ngwr-file-upload-testing.d.ts +194 -0
  402. package/types/ngwr-form-testing.d.ts +379 -0
  403. package/types/ngwr-form.d.ts +17 -0
  404. package/types/ngwr-gauge.d.ts +13 -1
  405. package/types/ngwr-hotkey.d.ts +2 -0
  406. package/types/ngwr-image-cropper.d.ts +10 -0
  407. package/types/ngwr-input-number-testing.d.ts +226 -0
  408. package/types/ngwr-input-number.d.ts +29 -1
  409. package/types/ngwr-input-otp-testing.d.ts +299 -0
  410. package/types/ngwr-input-otp.d.ts +23 -2
  411. package/types/ngwr-input-testing.d.ts +84 -0
  412. package/types/ngwr-input.d.ts +20 -6
  413. package/types/ngwr-knob.d.ts +18 -0
  414. package/types/ngwr-layout.d.ts +1 -0
  415. package/types/ngwr-lightbox.d.ts +17 -3
  416. package/types/ngwr-line-chart.d.ts +9 -2
  417. package/types/ngwr-list.d.ts +7 -2
  418. package/types/ngwr-loading-bar.d.ts +4 -7
  419. package/types/ngwr-markdown-testing.d.ts +462 -0
  420. package/types/ngwr-markdown.d.ts +534 -0
  421. package/types/ngwr-marquee.d.ts +12 -2
  422. package/types/ngwr-mention-testing.d.ts +359 -0
  423. package/types/ngwr-meta.d.ts +4 -2
  424. package/types/ngwr-meter-group.d.ts +11 -1
  425. package/types/ngwr-overlay.d.ts +33 -2
  426. package/types/ngwr-pagination-testing.d.ts +291 -0
  427. package/types/ngwr-pagination.d.ts +7 -1
  428. package/types/ngwr-popconfirm-testing.d.ts +235 -0
  429. package/types/ngwr-popconfirm.d.ts +31 -21
  430. package/types/ngwr-popover-testing.d.ts +221 -0
  431. package/types/ngwr-popover.d.ts +19 -2
  432. package/types/ngwr-pull-to-refresh.d.ts +7 -0
  433. package/types/ngwr-qr.d.ts +9 -1
  434. package/types/ngwr-radio-testing.d.ts +296 -0
  435. package/types/ngwr-radio.d.ts +8 -2
  436. package/types/ngwr-rating-testing.d.ts +291 -0
  437. package/types/ngwr-rating.d.ts +23 -0
  438. package/types/ngwr-segmented-testing.d.ts +401 -0
  439. package/types/ngwr-select-testing.d.ts +175 -0
  440. package/types/ngwr-select.d.ts +45 -4
  441. package/types/ngwr-sidebar.d.ts +17 -2
  442. package/types/ngwr-slider-testing.d.ts +329 -0
  443. package/types/ngwr-slider.d.ts +35 -1
  444. package/types/ngwr-sparkline.d.ts +12 -2
  445. package/types/ngwr-speed-dial.d.ts +17 -18
  446. package/types/ngwr-spinner.d.ts +8 -1
  447. package/types/ngwr-splitter.d.ts +24 -1
  448. package/types/ngwr-statistic.d.ts +12 -2
  449. package/types/ngwr-stepper-testing.d.ts +346 -0
  450. package/types/ngwr-storage.d.ts +10 -1
  451. package/types/ngwr-switch-testing.d.ts +66 -0
  452. package/types/ngwr-switch.d.ts +7 -2
  453. package/types/ngwr-table-testing.d.ts +423 -0
  454. package/types/ngwr-table.d.ts +42 -0
  455. package/types/ngwr-tabs-testing.d.ts +470 -0
  456. package/types/ngwr-tabs.d.ts +9 -0
  457. package/types/ngwr-textarea-testing.d.ts +184 -0
  458. package/types/ngwr-textarea.d.ts +7 -2
  459. package/types/ngwr-toast-testing.d.ts +80 -0
  460. package/types/ngwr-toast.d.ts +19 -4
  461. package/types/ngwr-tour.d.ts +27 -0
  462. package/types/ngwr-transfer-testing.d.ts +444 -0
  463. package/types/ngwr-transfer.d.ts +16 -1
  464. package/types/ngwr-tree-testing.d.ts +501 -0
  465. package/types/ngwr-tree.d.ts +33 -0
  466. package/types/ngwr-version.d.ts +1 -1
  467. package/types/ngwr-virtual-scroll.d.ts +13 -1
  468. package/types/ngwr-window.d.ts +23 -2
  469. package/typewriter/styles/_index.scss +1 -1
  470. package/typography/styles/_index.scss +1 -1
  471. package/window/styles/_index.scss +32 -9
@@ -0,0 +1,290 @@
1
+ import { BaseHarnessFilters, ComponentHarness, HarnessPredicate } from '@angular/cdk/testing';
2
+
3
+ /**
4
+ * @license
5
+ *
6
+ * Use of this source code is governed by an MIT-style license that can be
7
+ * found in the LICENSE file at https://github.com/thekhegay/ngwr/blob/main/LICENSE
8
+ */
9
+
10
+ /** Narrows which `<wr-collapse>` a harness query matches. */
11
+ interface WrCollapseHarnessFilters extends BaseHarnessFilters {
12
+ /** Match the panel's header text — a string is an exact match, a RegExp is tested. */
13
+ readonly title?: string | RegExp;
14
+ /**
15
+ * Match only open (`true`) or only closed (`false`) panels, as the HEADER announces
16
+ * it — see `WrCollapseHarness.isOpen`, which is where the animated height is
17
+ * explained away.
18
+ */
19
+ readonly open?: boolean;
20
+ /** Match only enabled (`false`) or only disabled (`true`) panels. */
21
+ readonly disabled?: boolean;
22
+ }
23
+ /** Narrows which `<wr-collapse-group>` / `<wr-accordion>` a harness query matches. */
24
+ interface WrCollapseGroupHarnessFilters extends BaseHarnessFilters {
25
+ /**
26
+ * Match a group holding a panel with this header text — the readable way to tell two
27
+ * groups on one page apart, a group having no name of its own. A string is an exact
28
+ * match, a RegExp is tested.
29
+ */
30
+ readonly panelTitle?: string | RegExp;
31
+ /**
32
+ * Match a group whose OPEN panel has this header text; a group with everything closed
33
+ * matches nothing. In accordion mode there is at most one open panel, which is what
34
+ * makes this a way to address a group rather than a coin toss.
35
+ */
36
+ readonly openPanelTitle?: string | RegExp;
37
+ }
38
+
39
+ /**
40
+ * @license
41
+ *
42
+ * Use of this source code is governed by an MIT-style license that can be
43
+ * found in the LICENSE file at https://github.com/thekhegay/ngwr/blob/main/LICENSE
44
+ */
45
+
46
+ /**
47
+ * Test harness for one `<wr-collapse>` — a disclosure: a header button, and the region
48
+ * it opens. {@link WrCollapseGroupHarness} is the container several of them sit in.
49
+ *
50
+ * Open and closed are read from the header's `aria-expanded`, never from the panel's
51
+ * size, and that is not merely a jsdom workaround. The body animates through
52
+ * `grid-template-rows: 0fr → 1fr`, so a measured box answers with whatever frame the
53
+ * transition happens to be on; a unit test has no layout at all, which makes every box
54
+ * 0×0 and every such answer wrong in the same direction. The attribute is also the only
55
+ * thing a screen-reader user gets — a panel that slides open without flipping it is
56
+ * closed as far as they are concerned.
57
+ *
58
+ * The body stays in the DOM while the panel is closed. It has to: there would be no
59
+ * height to animate otherwise. So its text is READABLE from a spec long before it is
60
+ * visible on screen, which is why {@link getContentText} refuses to answer for a closed
61
+ * panel instead of handing back invisible text, and why {@link isContentHidden} exists
62
+ * to assert that a closed panel really is out of reach.
63
+ *
64
+ * The region itself is a plain `<div>` — the component gives it no `role="region"` — so
65
+ * `aria-expanded` plus `aria-controls` is the whole of the wiring, and
66
+ * {@link isRegionBound} is how a spec checks it still points at this panel's own body.
67
+ *
68
+ * @example
69
+ * ```ts
70
+ * const loader = TestbedHarnessEnvironment.loader(fixture);
71
+ * const shipping = await loader.getHarness(WrCollapseHarness.with({ title: 'Shipping' }));
72
+ *
73
+ * await shipping.open();
74
+ * expect(await shipping.getContentText()).toContain('Ships Monday');
75
+ * ```
76
+ *
77
+ * @see https://ngwr.dev/guides/testing
78
+ */
79
+ declare class WrCollapseHarness extends ComponentHarness {
80
+ static hostSelector: string;
81
+ /** Build a predicate that narrows the query — pass to `getHarness` / `getAllHarnesses`. */
82
+ static with(options?: WrCollapseHarnessFilters): HarnessPredicate<WrCollapseHarness>;
83
+ private readonly header;
84
+ private readonly body;
85
+ /**
86
+ * The header text, trimmed.
87
+ *
88
+ * Read from `.wr-collapse__title` rather than from the header button. Reading the
89
+ * button would return the same string today — the chevron beside the title is an
90
+ * `<svg>`, and an `<svg>` contributes no text — but the title element is the thing that
91
+ * holds the name, so an icon that ever grows a `<text>` node or a label, or a badge
92
+ * added next to the title, cannot leak into it.
93
+ */
94
+ getTitle(): Promise<string>;
95
+ /**
96
+ * Whether the panel is open, from the header's `aria-expanded`.
97
+ *
98
+ * The `wr-collapse--open` modifier on the host is equally public and says the same
99
+ * thing today, but the attribute is the one a screen reader acts on: a panel that
100
+ * looks open while announcing `false` is the bug worth catching, and reading the class
101
+ * would agree with the animation and miss it.
102
+ */
103
+ isOpen(): Promise<boolean>;
104
+ /**
105
+ * Whether the panel refuses interaction.
106
+ *
107
+ * From the header's own `disabled` property — the thing that actually turns a click
108
+ * away, and what the CDK consults before dispatching one — rather than from the
109
+ * `wr-collapse--disabled` modifier the host also carries. Both are public, but the
110
+ * class is styling: a panel could lose it and still refuse every click, and what a
111
+ * spec wants to know is whether the control is inert.
112
+ */
113
+ isDisabled(): Promise<boolean>;
114
+ /**
115
+ * The id the header's `aria-controls` names, or `null` when it names nothing.
116
+ *
117
+ * Per-instance and generated, so a spec cannot predict it — what it can do is check
118
+ * that two panels do not share one, and {@link isRegionBound} does the rest.
119
+ */
120
+ getRegionId(): Promise<string | null>;
121
+ /**
122
+ * Whether the header points at THIS panel's body, and at nothing else on the page.
123
+ *
124
+ * Both halves matter, and neither is provable from the header alone. The id is
125
+ * resolved inside the host first, so a header naming a SIBLING panel's body — which
126
+ * resolves perfectly well from the document and would look correctly wired — fails
127
+ * here. Then it is counted across the document, because two bodies answering to one
128
+ * id hand every reference to whichever comes first, and the second panel's region
129
+ * becomes unreachable to anything that follows the reference.
130
+ */
131
+ isRegionBound(): Promise<boolean>;
132
+ /**
133
+ * Whether the region is hidden from assistive tech AND from the keyboard.
134
+ *
135
+ * Two attributes, because a closed panel needs both and they cover different people:
136
+ * `aria-hidden` keeps the content out of the screen reader's document, `inert` keeps
137
+ * Tab from landing on a link inside a panel nobody can see. The body is never removed
138
+ * from the DOM — the height animation needs it — so these are the only thing standing
139
+ * between a collapsed panel and a keyboard user, and losing either is invisible on
140
+ * screen.
141
+ *
142
+ * They are asserted together on purpose: this answers "is the closed content actually
143
+ * out of reach", and half of it is not.
144
+ */
145
+ isContentHidden(): Promise<boolean>;
146
+ /**
147
+ * The text of an OPEN panel's region, trimmed.
148
+ *
149
+ * Throws while the panel is closed rather than answering, because the body is still in
150
+ * the DOM and the text would come back exactly as it does when open — a spec asserting
151
+ * it would be pinning content the user cannot see, and would keep passing if the panel
152
+ * stopped opening at all.
153
+ */
154
+ getContentText(): Promise<string>;
155
+ /** Open the panel. An already-open one is left alone; a disabled one throws. */
156
+ open(): Promise<void>;
157
+ /** Close the panel. An already-closed one is left alone; a disabled one throws. */
158
+ close(): Promise<void>;
159
+ /**
160
+ * Click the header — the panel's entire interactive surface.
161
+ *
162
+ * A click rather than Enter / Space, and nothing is lost by it: the header is a native
163
+ * `<button>`, so a real keyboard activation is the BROWSER synthesising a click from
164
+ * the key press, and jsdom synthesises none. The click is dispatched onto the header
165
+ * itself, so it needs no coordinate and cannot miss in a test that has no layout.
166
+ *
167
+ * A disabled panel ignores this and stays as it was, twice over: the CDK withholds the
168
+ * `click` from an element carrying `disabled`, and the component checks `disabled`
169
+ * again inside its own toggle. Assert rather than assume, or reach for {@link open} /
170
+ * {@link close}, which say so.
171
+ */
172
+ toggle(): Promise<void>;
173
+ /**
174
+ * Move keyboard focus to the header — the only focusable element the component itself
175
+ * renders. Projected content can of course hold its own (which is why a closed panel is
176
+ * `inert`), but that belongs to the consumer, not to this harness.
177
+ */
178
+ focus(): Promise<void>;
179
+ /** Whether the header currently holds focus. */
180
+ isFocused(): Promise<boolean>;
181
+ }
182
+
183
+ /**
184
+ * @license
185
+ *
186
+ * Use of this source code is governed by an MIT-style license that can be
187
+ * found in the LICENSE file at https://github.com/thekhegay/ngwr/blob/main/LICENSE
188
+ */
189
+
190
+ /**
191
+ * Test harness for `<wr-collapse-group>` and `<wr-accordion>` — the container a set of
192
+ * {@link WrCollapseHarness} panels sits in, matched in both of its element shapes.
193
+ *
194
+ * There is deliberately no `isAccordion()`, and the reason is worth knowing before a
195
+ * spec goes looking for one: single-open behaviour is not written down anywhere on the
196
+ * page. `<wr-accordion>` carries the marker class `wr-collapse-group--accordion`, but
197
+ * `<wr-collapse-group [accordion]="true">` enforces exactly the same rule and carries
198
+ * nothing — a bound input reaches the component without touching the DOM, and even the
199
+ * literal `accordion` attribute survives only because Angular leaves a static attribute
200
+ * alone. So the class answers "which element did the template use", not "does this group
201
+ * close siblings", and a harness reporting it would call the group form false. Assert the
202
+ * BEHAVIOUR instead: open two panels and read {@link getOpenTitles} — the assertion that
203
+ * would catch a broken accordion anyway.
204
+ *
205
+ * A collapse group is also not a composite widget. Every header is a native `<button>`
206
+ * in the normal tab order, with no roving `tabindex` and no arrow-key navigation (the
207
+ * APG lists both as optional for an accordion), so there is no "active" panel to tell
208
+ * apart from the open one — {@link getFocusedTitle} is the only cursor there is.
209
+ *
210
+ * @example
211
+ * ```ts
212
+ * const settings = await loader.getHarness(WrCollapseGroupHarness.with({ panelTitle: 'Profile' }));
213
+ *
214
+ * await settings.openPanel({ title: 'Security' });
215
+ * expect(await settings.getOpenTitles()).toEqual(['Security']);
216
+ * ```
217
+ *
218
+ * @see https://ngwr.dev/guides/testing
219
+ */
220
+ declare class WrCollapseGroupHarness extends ComponentHarness {
221
+ /** Both shapes the container ships in: the plain group, and the always-accordion one. */
222
+ static hostSelector: string;
223
+ /** Build a predicate that narrows the query — pass to `getHarness` / `getAllHarnesses`. */
224
+ static with(options?: WrCollapseGroupHarnessFilters): HarnessPredicate<WrCollapseGroupHarness>;
225
+ /**
226
+ * The group's panels, in DOM order.
227
+ *
228
+ * Every `<wr-collapse>` inside the host, which includes one nested in another panel's
229
+ * content and every panel of a nested group — the group scopes no more tightly than
230
+ * the DOM does, and a nested accordion's children are still descendants of this one.
231
+ */
232
+ getPanels(filters?: WrCollapseHarnessFilters): Promise<WrCollapseHarness[]>;
233
+ /** The header text of every panel, in DOM order. */
234
+ getPanelTitles(): Promise<string[]>;
235
+ /** The first panel matching the filters, or a failure naming the panels that exist. */
236
+ getPanel(filters: WrCollapseHarnessFilters): Promise<WrCollapseHarness>;
237
+ /**
238
+ * The panel at a 0-based position in DOM order — the other half of "by text or by
239
+ * index", and the only way to address a panel whose title is not unique.
240
+ *
241
+ * Throws for an index past the end rather than resolving to nothing, and says how many
242
+ * panels there are: an out-of-range index is a mistake in the spec, and a `undefined`
243
+ * handed back would surface three lines later as a failure about something else.
244
+ */
245
+ getPanelAt(index: number): Promise<WrCollapseHarness>;
246
+ /** The panels that are open, in DOM order. In accordion mode there is at most one. */
247
+ getOpenPanels(): Promise<WrCollapseHarness[]>;
248
+ /**
249
+ * The header text of every open panel, in DOM order.
250
+ *
251
+ * The assertion an accordion is worth pinning with: opening a second panel has to leave
252
+ * this a list of ONE, and it reads the state from each header's `aria-expanded`, so a
253
+ * sibling that collapsed on screen while still announcing itself open fails here.
254
+ */
255
+ getOpenTitles(): Promise<string[]>;
256
+ /**
257
+ * Open the first panel matching the filters.
258
+ *
259
+ * In accordion mode this is also what CLOSES the siblings — the group is told by the
260
+ * panel that opened, not by the click — so a spec that opens two panels in a row is
261
+ * asserting the mode, and {@link getOpenTitles} is where the answer shows up. Throws
262
+ * when nothing matched, and again when the panel refused to open (it is disabled).
263
+ */
264
+ openPanel(filters: WrCollapseHarnessFilters): Promise<void>;
265
+ /** Close the first panel matching the filters. */
266
+ closePanel(filters: WrCollapseHarnessFilters): Promise<void>;
267
+ /**
268
+ * Close every open panel.
269
+ *
270
+ * The open panels are resolved first and then closed one at a time. Every click a
271
+ * harness makes already awaits its own change detection, so closing them concurrently
272
+ * would work too — this reads in the order a user would click, and keeps each failure
273
+ * attributable to the panel that caused it. A disabled panel that was opened through
274
+ * `[open]` cannot be closed from the page and throws — the same failure
275
+ * {@link WrCollapseHarness.close} reports, for the same reason.
276
+ */
277
+ closeAll(): Promise<void>;
278
+ /**
279
+ * The header text of the panel whose header holds focus, or `null` when focus is
280
+ * elsewhere.
281
+ *
282
+ * Every header is its own tab stop here, so this reports where focus actually IS
283
+ * rather than where the group would send it — there is no roving tab stop to diverge
284
+ * from.
285
+ */
286
+ getFocusedTitle(): Promise<string | null>;
287
+ }
288
+
289
+ export { WrCollapseGroupHarness, WrCollapseHarness };
290
+ export type { WrCollapseGroupHarnessFilters, WrCollapseHarnessFilters };
@@ -156,12 +156,16 @@ declare function toHex(rgb: WrRgb, withAlpha?: boolean): string;
156
156
  * found in the LICENSE file at https://github.com/thekhegay/ngwr/blob/main/LICENSE
157
157
  */
158
158
  /**
159
- * Output format produced by `<wr-color-picker>` when emitting through its
160
- * `ControlValueAccessor`:
159
+ * Output format produced by `<wr-color-picker>` when it writes its `value`
160
+ * model. Each format has an opaque and a translucent spelling, picked by the
161
+ * picker's `alpha` input:
161
162
  *
162
- * - `hex` — `#3969e2` or `#3969e2ff` when alpha is enabled
163
- * - `rgba` — `rgba(57, 105, 226, 0.5)`
164
- * - `hsla` — `hsla(220, 73%, 56%, 0.5)`
163
+ * - `hex` — `#3969e2`, or `#3969e2ff` with alpha
164
+ * - `rgba` — `rgb(57, 105, 226)`, or `rgba(57, 105, 226, 0.5)` with alpha
165
+ * - `hsla` — `hsl(220, 73%, 56%)`, or `hsla(220, 73%, 56%, 0.5)` with alpha
166
+ *
167
+ * All three are also ACCEPTED on the way in, whichever one is set, so a
168
+ * `[(value)]` binding round-trips its own output.
165
169
  */
166
170
  type WrColorFormat = 'hex' | 'rgba' | 'hsla';
167
171
 
@@ -192,7 +196,10 @@ declare class WrColorPicker implements FormValueControl<string> {
192
196
  readonly alpha: _angular_core.InputSignalWithTransform<boolean, any>;
193
197
  /** Disable interaction. @default false */
194
198
  readonly disabled: _angular_core.InputSignalWithTransform<boolean, any>;
195
- /** Output format produced by the control. @default 'hex' */
199
+ /**
200
+ * Format the control writes into `value`. See {@link WrColorFormat} — all
201
+ * three are accepted on the way in whichever one is set. @default 'hex'
202
+ */
196
203
  readonly format: _angular_core.InputSignal<WrColorFormat>;
197
204
  /** Preset hex colours rendered as a clickable row beneath the inputs. Empty = no row. @default [] */
198
205
  readonly swatches: _angular_core.InputSignal<readonly string[]>;
@@ -206,8 +213,10 @@ declare class WrColorPicker implements FormValueControl<string> {
206
213
  protected readonly a: _angular_core.WritableSignal<number>;
207
214
  /** RGB view of the current colour, computed lazily. */
208
215
  protected readonly rgb: _angular_core.Signal<WrRgb>;
209
- /** Canonical hex (used by the input field and by drag emits). */
216
+ /** Canonical hex — what the HEX field shows, whatever `format` emits. */
210
217
  protected readonly hex: _angular_core.Signal<string>;
218
+ /** The colour as the consumer asked for it; this is what `value` receives. */
219
+ protected readonly formatted: _angular_core.Signal<string>;
211
220
  /** SV canvas background colour (full-saturation hue). */
212
221
  protected readonly hueCss: _angular_core.Signal<string>;
213
222
  /** RGB string used for the alpha-slider gradient. */
@@ -227,8 +236,8 @@ declare class WrColorPicker implements FormValueControl<string> {
227
236
  protected readonly alphaPercent: _angular_core.Signal<number>;
228
237
  protected readonly tabOptions: readonly WrSegmentedOption<Tab>[];
229
238
  protected readonly classes: _angular_core.Signal<string>;
230
- /** Last hex we pushed into `value`; lets the sync effect ignore our own writes. */
231
- private lastEmittedHex;
239
+ /** Last string we pushed into `value`; lets the sync effect ignore our own writes. */
240
+ private lastEmitted;
232
241
  constructor();
233
242
  protected onPointerDown(event: PointerEvent, surface: Edges): void;
234
243
  private updateFromEvent;
@@ -241,7 +250,7 @@ declare class WrColorPicker implements FormValueControl<string> {
241
250
  protected onHslChannel(channel: 'h' | 's' | 'l', event: Event): void;
242
251
  protected onAlphaPercent(event: Event): void;
243
252
  protected onSwatchClick(hex: string): void;
244
- /** Push an RGB triple into the HSV source of truth (preserving the current alpha if the swap removes it). */
253
+ /** Push an RGB triple into the HSV source of truth. */
245
254
  private applyRgb;
246
255
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<WrColorPicker, never>;
247
256
  static ɵcmp: _angular_core.ɵɵComponentDeclaration<WrColorPicker, "wr-color-picker", never, { "alpha": { "alias": "alpha"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "format": { "alias": "format"; "required": false; "isSignal": true; }; "swatches": { "alias": "swatches"; "required": false; "isSignal": true; }; "value": { "alias": "value"; "required": false; "isSignal": true; }; }, { "value": "valueChange"; "touch": "touch"; }, never, never, true, never>;
@@ -290,7 +299,7 @@ declare class WrColorPickerTrigger {
290
299
  private readonly vcr;
291
300
  private readonly scrollStrategies;
292
301
  private readonly destroyRef;
293
- private readonly isOpen;
302
+ protected readonly isOpen: _angular_core.WritableSignal<boolean>;
294
303
  private overlayRef;
295
304
  constructor();
296
305
  /** Toggle the picker. Open if closed, close if open. */