ngwr 14.3.1 → 14.5.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 (368) hide show
  1. package/README.md +4 -4
  2. package/avatar/styles/_index.scss +4 -2
  3. package/badge/styles/_index.scss +4 -1
  4. package/badge/styles/_tag.scss +3 -0
  5. package/cascader/styles/_rules.scss +3 -0
  6. package/command-palette/styles/_index.scss +23 -0
  7. package/context-menu/styles/_index.scss +13 -1
  8. package/fesm2022/ngwr-action-sheet.mjs +3 -3
  9. package/fesm2022/ngwr-affix.mjs +17 -4
  10. package/fesm2022/ngwr-affix.mjs.map +1 -1
  11. package/fesm2022/ngwr-alert.mjs +4 -4
  12. package/fesm2022/ngwr-alert.mjs.map +1 -1
  13. package/fesm2022/ngwr-anchor.mjs +3 -3
  14. package/fesm2022/ngwr-aurora.mjs +3 -3
  15. package/fesm2022/ngwr-avatar.mjs +3 -3
  16. package/fesm2022/ngwr-back-top.mjs +3 -3
  17. package/fesm2022/ngwr-badge.mjs +6 -6
  18. package/fesm2022/ngwr-bar-chart-testing.mjs +18 -2
  19. package/fesm2022/ngwr-bar-chart-testing.mjs.map +1 -1
  20. package/fesm2022/ngwr-bar-chart.mjs +3 -3
  21. package/fesm2022/ngwr-blur-text.mjs +3 -3
  22. package/fesm2022/ngwr-border-glow.mjs +3 -3
  23. package/fesm2022/ngwr-breadcrumbs.mjs +7 -7
  24. package/fesm2022/ngwr-breadcrumbs.mjs.map +1 -1
  25. package/fesm2022/ngwr-burger.mjs +3 -3
  26. package/fesm2022/ngwr-button.mjs +6 -6
  27. package/fesm2022/ngwr-calendar-heatmap-testing.mjs +12 -9
  28. package/fesm2022/ngwr-calendar-heatmap-testing.mjs.map +1 -1
  29. package/fesm2022/ngwr-calendar-heatmap.mjs +35 -7
  30. package/fesm2022/ngwr-calendar-heatmap.mjs.map +1 -1
  31. package/fesm2022/ngwr-calendar.mjs +32 -4
  32. package/fesm2022/ngwr-calendar.mjs.map +1 -1
  33. package/fesm2022/ngwr-card.mjs +9 -9
  34. package/fesm2022/ngwr-carousel.mjs +6 -6
  35. package/fesm2022/ngwr-cascader-testing.mjs +87 -17
  36. package/fesm2022/ngwr-cascader-testing.mjs.map +1 -1
  37. package/fesm2022/ngwr-cascader.mjs +76 -5
  38. package/fesm2022/ngwr-cascader.mjs.map +1 -1
  39. package/fesm2022/ngwr-checkbox-testing.mjs +13 -2
  40. package/fesm2022/ngwr-checkbox-testing.mjs.map +1 -1
  41. package/fesm2022/ngwr-checkbox.mjs +42 -7
  42. package/fesm2022/ngwr-checkbox.mjs.map +1 -1
  43. package/fesm2022/ngwr-circular-text.mjs +3 -3
  44. package/fesm2022/ngwr-click-spark.mjs +3 -3
  45. package/fesm2022/ngwr-clipboard.mjs +3 -3
  46. package/fesm2022/ngwr-collapse.mjs +9 -9
  47. package/fesm2022/ngwr-color-picker.mjs +24 -8
  48. package/fesm2022/ngwr-color-picker.mjs.map +1 -1
  49. package/fesm2022/ngwr-command-palette.mjs +16 -3
  50. package/fesm2022/ngwr-command-palette.mjs.map +1 -1
  51. package/fesm2022/ngwr-compare.mjs +3 -3
  52. package/fesm2022/ngwr-confetti.mjs +3 -3
  53. package/fesm2022/ngwr-context-menu.mjs +47 -15
  54. package/fesm2022/ngwr-context-menu.mjs.map +1 -1
  55. package/fesm2022/ngwr-cookie.mjs +3 -3
  56. package/fesm2022/ngwr-counter.mjs +6 -6
  57. package/fesm2022/ngwr-date-adapters-fns.mjs +3 -3
  58. package/fesm2022/ngwr-date-adapters-luxon.mjs +3 -3
  59. package/fesm2022/ngwr-date-picker.mjs +111 -28
  60. package/fesm2022/ngwr-date-picker.mjs.map +1 -1
  61. package/fesm2022/ngwr-date.mjs +3 -3
  62. package/fesm2022/ngwr-decrypt-text.mjs +3 -3
  63. package/fesm2022/ngwr-density.mjs +6 -6
  64. package/fesm2022/ngwr-descriptions.mjs +6 -6
  65. package/fesm2022/ngwr-dialog.mjs +27 -16
  66. package/fesm2022/ngwr-dialog.mjs.map +1 -1
  67. package/fesm2022/ngwr-directives.mjs +12 -12
  68. package/fesm2022/ngwr-divider.mjs +3 -3
  69. package/fesm2022/ngwr-donut-chart-testing.mjs +18 -2
  70. package/fesm2022/ngwr-donut-chart-testing.mjs.map +1 -1
  71. package/fesm2022/ngwr-donut-chart.mjs +4 -4
  72. package/fesm2022/ngwr-donut-chart.mjs.map +1 -1
  73. package/fesm2022/ngwr-drag-drop.mjs +7 -7
  74. package/fesm2022/ngwr-drag-drop.mjs.map +1 -1
  75. package/fesm2022/ngwr-drawer.mjs +66 -20
  76. package/fesm2022/ngwr-drawer.mjs.map +1 -1
  77. package/fesm2022/ngwr-dropdown.mjs +54 -16
  78. package/fesm2022/ngwr-dropdown.mjs.map +1 -1
  79. package/fesm2022/ngwr-empty.mjs +3 -3
  80. package/fesm2022/ngwr-event-calendar.mjs +6 -6
  81. package/fesm2022/ngwr-falling-text.mjs +3 -3
  82. package/fesm2022/ngwr-file-upload.mjs +18 -5
  83. package/fesm2022/ngwr-file-upload.mjs.map +1 -1
  84. package/fesm2022/ngwr-form.mjs +66 -14
  85. package/fesm2022/ngwr-form.mjs.map +1 -1
  86. package/fesm2022/ngwr-fuzzy-text.mjs +3 -3
  87. package/fesm2022/ngwr-gauge-testing.mjs +16 -2
  88. package/fesm2022/ngwr-gauge-testing.mjs.map +1 -1
  89. package/fesm2022/ngwr-gauge.mjs +3 -3
  90. package/fesm2022/ngwr-glitch-text.mjs +3 -3
  91. package/fesm2022/ngwr-gradient-text.mjs +3 -3
  92. package/fesm2022/ngwr-graph-testing.mjs +243 -0
  93. package/fesm2022/ngwr-graph-testing.mjs.map +1 -0
  94. package/fesm2022/ngwr-graph.mjs +1112 -0
  95. package/fesm2022/ngwr-graph.mjs.map +1 -0
  96. package/fesm2022/ngwr-hotkey.mjs +6 -6
  97. package/fesm2022/ngwr-i18n-ar.mjs +7 -0
  98. package/fesm2022/ngwr-i18n-ar.mjs.map +1 -1
  99. package/fesm2022/ngwr-i18n-cs.mjs +7 -0
  100. package/fesm2022/ngwr-i18n-cs.mjs.map +1 -1
  101. package/fesm2022/ngwr-i18n-de.mjs +7 -0
  102. package/fesm2022/ngwr-i18n-de.mjs.map +1 -1
  103. package/fesm2022/ngwr-i18n-en.mjs +23 -2
  104. package/fesm2022/ngwr-i18n-en.mjs.map +1 -1
  105. package/fesm2022/ngwr-i18n-es.mjs +7 -0
  106. package/fesm2022/ngwr-i18n-es.mjs.map +1 -1
  107. package/fesm2022/ngwr-i18n-fr.mjs +7 -0
  108. package/fesm2022/ngwr-i18n-fr.mjs.map +1 -1
  109. package/fesm2022/ngwr-i18n-he.mjs +7 -0
  110. package/fesm2022/ngwr-i18n-he.mjs.map +1 -1
  111. package/fesm2022/ngwr-i18n-hi.mjs +7 -0
  112. package/fesm2022/ngwr-i18n-hi.mjs.map +1 -1
  113. package/fesm2022/ngwr-i18n-id.mjs +7 -0
  114. package/fesm2022/ngwr-i18n-id.mjs.map +1 -1
  115. package/fesm2022/ngwr-i18n-it.mjs +7 -0
  116. package/fesm2022/ngwr-i18n-it.mjs.map +1 -1
  117. package/fesm2022/ngwr-i18n-ja.mjs +7 -0
  118. package/fesm2022/ngwr-i18n-ja.mjs.map +1 -1
  119. package/fesm2022/ngwr-i18n-ko.mjs +7 -0
  120. package/fesm2022/ngwr-i18n-ko.mjs.map +1 -1
  121. package/fesm2022/ngwr-i18n-nl.mjs +7 -0
  122. package/fesm2022/ngwr-i18n-nl.mjs.map +1 -1
  123. package/fesm2022/ngwr-i18n-pl.mjs +7 -0
  124. package/fesm2022/ngwr-i18n-pl.mjs.map +1 -1
  125. package/fesm2022/ngwr-i18n-pt.mjs +7 -0
  126. package/fesm2022/ngwr-i18n-pt.mjs.map +1 -1
  127. package/fesm2022/ngwr-i18n-ru.mjs +7 -0
  128. package/fesm2022/ngwr-i18n-ru.mjs.map +1 -1
  129. package/fesm2022/ngwr-i18n-sv.mjs +7 -0
  130. package/fesm2022/ngwr-i18n-sv.mjs.map +1 -1
  131. package/fesm2022/ngwr-i18n-tr.mjs +7 -0
  132. package/fesm2022/ngwr-i18n-tr.mjs.map +1 -1
  133. package/fesm2022/ngwr-i18n-uk.mjs +7 -0
  134. package/fesm2022/ngwr-i18n-uk.mjs.map +1 -1
  135. package/fesm2022/ngwr-i18n-vi.mjs +7 -0
  136. package/fesm2022/ngwr-i18n-vi.mjs.map +1 -1
  137. package/fesm2022/ngwr-i18n-zh-TW.mjs +7 -0
  138. package/fesm2022/ngwr-i18n-zh-TW.mjs.map +1 -1
  139. package/fesm2022/ngwr-i18n-zh.mjs +7 -0
  140. package/fesm2022/ngwr-i18n-zh.mjs.map +1 -1
  141. package/fesm2022/ngwr-i18n.mjs +9 -9
  142. package/fesm2022/ngwr-icon.mjs +6 -6
  143. package/fesm2022/ngwr-image-cropper.mjs +3 -3
  144. package/fesm2022/ngwr-input-number.mjs +15 -6
  145. package/fesm2022/ngwr-input-number.mjs.map +1 -1
  146. package/fesm2022/ngwr-input-otp.mjs +38 -6
  147. package/fesm2022/ngwr-input-otp.mjs.map +1 -1
  148. package/fesm2022/ngwr-input.mjs +15 -15
  149. package/fesm2022/ngwr-keyboard.mjs +3 -3
  150. package/fesm2022/ngwr-knob-testing.mjs +11 -3
  151. package/fesm2022/ngwr-knob-testing.mjs.map +1 -1
  152. package/fesm2022/ngwr-knob.mjs +19 -4
  153. package/fesm2022/ngwr-knob.mjs.map +1 -1
  154. package/fesm2022/ngwr-layout.mjs +15 -15
  155. package/fesm2022/ngwr-lightbox.mjs +27 -6
  156. package/fesm2022/ngwr-lightbox.mjs.map +1 -1
  157. package/fesm2022/ngwr-line-chart-testing.mjs +18 -2
  158. package/fesm2022/ngwr-line-chart-testing.mjs.map +1 -1
  159. package/fesm2022/ngwr-line-chart.mjs +22 -4
  160. package/fesm2022/ngwr-line-chart.mjs.map +1 -1
  161. package/fesm2022/ngwr-list.mjs +7 -7
  162. package/fesm2022/ngwr-list.mjs.map +1 -1
  163. package/fesm2022/ngwr-loading-bar.mjs +6 -6
  164. package/fesm2022/ngwr-markdown.mjs +6 -6
  165. package/fesm2022/ngwr-marquee.mjs +3 -3
  166. package/fesm2022/ngwr-media.mjs +3 -3
  167. package/fesm2022/ngwr-mention.mjs +24 -8
  168. package/fesm2022/ngwr-mention.mjs.map +1 -1
  169. package/fesm2022/ngwr-meta.mjs +6 -6
  170. package/fesm2022/ngwr-meter-group.mjs +3 -3
  171. package/fesm2022/ngwr-overlay.mjs +125 -10
  172. package/fesm2022/ngwr-overlay.mjs.map +1 -1
  173. package/fesm2022/ngwr-page-header.mjs +3 -3
  174. package/fesm2022/ngwr-pagination.mjs +33 -6
  175. package/fesm2022/ngwr-pagination.mjs.map +1 -1
  176. package/fesm2022/ngwr-pipes.mjs +21 -21
  177. package/fesm2022/ngwr-platform.mjs +9 -9
  178. package/fesm2022/ngwr-popconfirm.mjs +25 -9
  179. package/fesm2022/ngwr-popconfirm.mjs.map +1 -1
  180. package/fesm2022/ngwr-popover-testing.mjs +22 -5
  181. package/fesm2022/ngwr-popover-testing.mjs.map +1 -1
  182. package/fesm2022/ngwr-popover.mjs +243 -37
  183. package/fesm2022/ngwr-popover.mjs.map +1 -1
  184. package/fesm2022/ngwr-progress.mjs +3 -3
  185. package/fesm2022/ngwr-pull-to-refresh.mjs +3 -3
  186. package/fesm2022/ngwr-qr.mjs +3 -3
  187. package/fesm2022/ngwr-radio.mjs +6 -6
  188. package/fesm2022/ngwr-rating-testing.mjs +12 -3
  189. package/fesm2022/ngwr-rating-testing.mjs.map +1 -1
  190. package/fesm2022/ngwr-rating.mjs +19 -4
  191. package/fesm2022/ngwr-rating.mjs.map +1 -1
  192. package/fesm2022/ngwr-result.mjs +13 -13
  193. package/fesm2022/ngwr-result.mjs.map +1 -1
  194. package/fesm2022/ngwr-rotating-text.mjs +3 -3
  195. package/fesm2022/ngwr-schema-form.mjs +3 -3
  196. package/fesm2022/ngwr-scroll.mjs +3 -3
  197. package/fesm2022/ngwr-segmented.mjs +37 -4
  198. package/fesm2022/ngwr-segmented.mjs.map +1 -1
  199. package/fesm2022/ngwr-select.mjs +24 -10
  200. package/fesm2022/ngwr-select.mjs.map +1 -1
  201. package/fesm2022/ngwr-shiny-text.mjs +6 -6
  202. package/fesm2022/ngwr-sidebar.mjs +3 -3
  203. package/fesm2022/ngwr-skeleton.mjs +3 -3
  204. package/fesm2022/ngwr-slider.mjs +18 -5
  205. package/fesm2022/ngwr-slider.mjs.map +1 -1
  206. package/fesm2022/ngwr-sparkline.mjs +3 -3
  207. package/fesm2022/ngwr-speed-dial.mjs +3 -3
  208. package/fesm2022/ngwr-spinner.mjs +3 -3
  209. package/fesm2022/ngwr-splash-cursor.mjs +3 -3
  210. package/fesm2022/ngwr-split-text.mjs +3 -3
  211. package/fesm2022/ngwr-splitter.mjs +3 -3
  212. package/fesm2022/ngwr-spotlight-card.mjs +6 -6
  213. package/fesm2022/ngwr-squircle.mjs +28 -9
  214. package/fesm2022/ngwr-squircle.mjs.map +1 -1
  215. package/fesm2022/ngwr-star-border.mjs +3 -3
  216. package/fesm2022/ngwr-statistic.mjs +20 -13
  217. package/fesm2022/ngwr-statistic.mjs.map +1 -1
  218. package/fesm2022/ngwr-stepper.mjs +6 -6
  219. package/fesm2022/ngwr-storage.mjs +3 -3
  220. package/fesm2022/ngwr-switch.mjs +3 -3
  221. package/fesm2022/ngwr-table.mjs +18 -18
  222. package/fesm2022/ngwr-tabs-router.mjs +3 -3
  223. package/fesm2022/ngwr-tabs.mjs +6 -6
  224. package/fesm2022/ngwr-textarea.mjs +3 -3
  225. package/fesm2022/ngwr-theme.mjs +3 -3
  226. package/fesm2022/ngwr-tilt-card.mjs +6 -6
  227. package/fesm2022/ngwr-timeline.mjs +6 -6
  228. package/fesm2022/ngwr-toast.mjs +29 -12
  229. package/fesm2022/ngwr-toast.mjs.map +1 -1
  230. package/fesm2022/ngwr-toolbar.mjs +3 -3
  231. package/fesm2022/ngwr-tour.mjs +26 -12
  232. package/fesm2022/ngwr-tour.mjs.map +1 -1
  233. package/fesm2022/ngwr-transfer.mjs +88 -11
  234. package/fesm2022/ngwr-transfer.mjs.map +1 -1
  235. package/fesm2022/ngwr-tree-testing.mjs +24 -0
  236. package/fesm2022/ngwr-tree-testing.mjs.map +1 -1
  237. package/fesm2022/ngwr-tree.mjs +81 -9
  238. package/fesm2022/ngwr-tree.mjs.map +1 -1
  239. package/fesm2022/ngwr-typewriter.mjs +3 -3
  240. package/fesm2022/ngwr-typography.mjs +3 -3
  241. package/fesm2022/ngwr-version.mjs +1 -1
  242. package/fesm2022/ngwr-version.mjs.map +1 -1
  243. package/fesm2022/ngwr-virtual-scroll.mjs +3 -3
  244. package/fesm2022/ngwr-waves.mjs +3 -3
  245. package/fesm2022/ngwr-window.mjs +30 -13
  246. package/fesm2022/ngwr-window.mjs.map +1 -1
  247. package/form/styles/_index.scss +63 -0
  248. package/graph/styles/_index.scss +113 -0
  249. package/i18n/ar.json +9 -2
  250. package/i18n/cs.json +9 -2
  251. package/i18n/de.json +9 -2
  252. package/i18n/en.json +11 -4
  253. package/i18n/es.json +9 -2
  254. package/i18n/fr.json +9 -2
  255. package/i18n/he.json +9 -2
  256. package/i18n/hi.json +9 -2
  257. package/i18n/id.json +9 -2
  258. package/i18n/it.json +9 -2
  259. package/i18n/ja.json +9 -2
  260. package/i18n/ko.json +9 -2
  261. package/i18n/nl.json +9 -2
  262. package/i18n/pl.json +9 -2
  263. package/i18n/pt.json +9 -2
  264. package/i18n/ru.json +9 -2
  265. package/i18n/sv.json +9 -2
  266. package/i18n/tr.json +9 -2
  267. package/i18n/uk.json +9 -2
  268. package/i18n/vi.json +9 -2
  269. package/i18n/zh-TW.json +9 -2
  270. package/i18n/zh.json +9 -2
  271. package/input-otp/styles/_index.scss +5 -1
  272. package/line-chart/styles/_index.scss +5 -3
  273. package/llms-full.txt +13 -3
  274. package/llms.txt +8 -6
  275. package/markdown/styles/_index.scss +4 -1
  276. package/mention/styles/_index.scss +22 -1
  277. package/package.json +10 -1
  278. package/radio/styles/_index.scss +3 -0
  279. package/result/styles/_index.scss +12 -0
  280. package/schematics/migrations/v14/index.js +6 -3
  281. package/schematics/migrations.json +1 -1
  282. package/schematics/ng-add/index.js +34 -5
  283. package/schematics/use/symbol-map.json +2 -0
  284. package/segmented/styles/_index.scss +12 -1
  285. package/select/styles/_index.scss +20 -1
  286. package/skills/ngwr/SKILL.md +1 -1
  287. package/skills/ngwr/references/catalog.md +2 -0
  288. package/statistic/styles/_index.scss +4 -0
  289. package/stepper/styles/_index.scss +36 -0
  290. package/styles.scss +1 -0
  291. package/switch/styles/_index.scss +3 -0
  292. package/table/styles/_index.scss +12 -0
  293. package/tabs/styles/_index.scss +4 -1
  294. package/textarea/styles/_index.scss +6 -1
  295. package/theme/styles/_colors.scss +11 -0
  296. package/theme/styles/_contrast.scss +136 -0
  297. package/theme/styles/_focus.scss +7 -0
  298. package/theme/styles/_index.scss +1 -0
  299. package/theme/styles/_mixins.scss +15 -8
  300. package/timeline/styles/_index.scss +28 -1
  301. package/toast/styles/_index.scss +11 -0
  302. package/tree/styles/_index.scss +27 -1
  303. package/types/ngwr-badge.d.ts +1 -1
  304. package/types/ngwr-bar-chart-testing.d.ts +11 -1
  305. package/types/ngwr-button.d.ts +1 -1
  306. package/types/ngwr-calendar-heatmap-testing.d.ts +10 -5
  307. package/types/ngwr-calendar-heatmap.d.ts +22 -0
  308. package/types/ngwr-calendar.d.ts +21 -0
  309. package/types/ngwr-cascader-testing.d.ts +74 -17
  310. package/types/ngwr-cascader.d.ts +35 -0
  311. package/types/ngwr-checkbox-testing.d.ts +12 -1
  312. package/types/ngwr-checkbox.d.ts +10 -0
  313. package/types/ngwr-clipboard.d.ts +1 -1
  314. package/types/ngwr-color-picker.d.ts +8 -0
  315. package/types/ngwr-confetti.d.ts +1 -1
  316. package/types/ngwr-context-menu.d.ts +10 -0
  317. package/types/ngwr-cookie.d.ts +1 -1
  318. package/types/ngwr-date-adapters-fns.d.ts +1 -1
  319. package/types/ngwr-date-adapters-luxon.d.ts +1 -1
  320. package/types/ngwr-date-picker.d.ts +16 -0
  321. package/types/ngwr-date.d.ts +9 -3
  322. package/types/ngwr-density.d.ts +1 -1
  323. package/types/ngwr-dialog.d.ts +2 -1
  324. package/types/ngwr-donut-chart-testing.d.ts +11 -1
  325. package/types/ngwr-drawer.d.ts +29 -1
  326. package/types/ngwr-dropdown.d.ts +25 -0
  327. package/types/ngwr-file-upload.d.ts +11 -0
  328. package/types/ngwr-form.d.ts +25 -0
  329. package/types/ngwr-gauge-testing.d.ts +9 -1
  330. package/types/ngwr-graph-testing.d.ts +190 -0
  331. package/types/ngwr-graph.d.ts +203 -0
  332. package/types/ngwr-hotkey.d.ts +1 -1
  333. package/types/ngwr-i18n.d.ts +1 -1
  334. package/types/ngwr-input-number.d.ts +12 -2
  335. package/types/ngwr-input-otp.d.ts +12 -0
  336. package/types/ngwr-knob-testing.d.ts +11 -3
  337. package/types/ngwr-knob.d.ts +13 -0
  338. package/types/ngwr-lightbox.d.ts +15 -0
  339. package/types/ngwr-line-chart-testing.d.ts +11 -1
  340. package/types/ngwr-line-chart.d.ts +18 -0
  341. package/types/ngwr-loading-bar.d.ts +1 -1
  342. package/types/ngwr-markdown.d.ts +1 -1
  343. package/types/ngwr-media.d.ts +1 -1
  344. package/types/ngwr-mention.d.ts +7 -0
  345. package/types/ngwr-meta.d.ts +1 -1
  346. package/types/ngwr-overlay.d.ts +64 -6
  347. package/types/ngwr-pagination.d.ts +16 -0
  348. package/types/ngwr-platform.d.ts +3 -3
  349. package/types/ngwr-popconfirm.d.ts +1 -0
  350. package/types/ngwr-popover-testing.d.ts +22 -5
  351. package/types/ngwr-popover.d.ts +44 -8
  352. package/types/ngwr-rating-testing.d.ts +12 -3
  353. package/types/ngwr-rating.d.ts +13 -0
  354. package/types/ngwr-scroll.d.ts +1 -1
  355. package/types/ngwr-segmented.d.ts +16 -0
  356. package/types/ngwr-select.d.ts +7 -0
  357. package/types/ngwr-squircle.d.ts +22 -3
  358. package/types/ngwr-statistic.d.ts +0 -1
  359. package/types/ngwr-storage.d.ts +1 -1
  360. package/types/ngwr-theme.d.ts +1 -1
  361. package/types/ngwr-toast.d.ts +3 -1
  362. package/types/ngwr-tour.d.ts +7 -1
  363. package/types/ngwr-transfer.d.ts +52 -0
  364. package/types/ngwr-tree-testing.d.ts +20 -0
  365. package/types/ngwr-tree.d.ts +43 -1
  366. package/types/ngwr-version.d.ts +1 -1
  367. package/types/ngwr-window.d.ts +2 -1
  368. package/typography/styles/_index.scss +26 -4
@@ -46,7 +46,7 @@ declare class WrMedia {
46
46
  private resolveQuery;
47
47
  private createSignal;
48
48
  static ɵfac: i0.ɵɵFactoryDeclaration<WrMedia, never>;
49
- static ɵprov: i0.ɵɵInjectableDeclaration<WrMedia>;
49
+ static ɵprov: i0.ɵɵInjectableDeclaration<any>;
50
50
  }
51
51
 
52
52
  /**
@@ -60,8 +60,15 @@ declare class WrMention<T extends WrMentionItem = WrMentionItem> {
60
60
  readonly wrMentionSelected: _angular_core.OutputEmitterRef<WrMentionCommit<T>>;
61
61
  private readonly host;
62
62
  private readonly overlay;
63
+ /**
64
+ * Optional inject: `Directionality` is root-provided, so this is never null in
65
+ * an app — but a bare `TestBed` that provides nothing should still get a
66
+ * directive that works, and defaulting to LTR is the honest fallback.
67
+ */
68
+ private readonly dir;
63
69
  private readonly scrollStrategies;
64
70
  private readonly destroyRef;
71
+ private readonly injector;
65
72
  private readonly isBrowser;
66
73
  private overlayRef;
67
74
  private panelRef;
@@ -123,7 +123,7 @@ declare class WrMeta {
123
123
  private updateProp;
124
124
  private diffLink;
125
125
  static ɵfac: i0.ɵɵFactoryDeclaration<WrMeta, never>;
126
- static ɵprov: i0.ɵɵInjectableDeclaration<WrMeta>;
126
+ static ɵprov: i0.ɵɵInjectableDeclaration<any>;
127
127
  }
128
128
 
129
129
  /**
@@ -1,7 +1,8 @@
1
- import { ConnectedPosition, OverlayRef, OverlayContainer, Overlay } from '@angular/cdk/overlay';
2
- import { Observable } from 'rxjs';
1
+ import { Directionality, Direction } from '@angular/cdk/bidi';
2
+ import { OverlayRef, ConnectedPosition, OverlayContainer, Overlay } from '@angular/cdk/overlay';
3
3
  import * as i0 from '@angular/core';
4
- import { EnvironmentProviders, InjectionToken } from '@angular/core';
4
+ import { Injector, EnvironmentProviders, InjectionToken } from '@angular/core';
5
+ import { Observable } from 'rxjs';
5
6
 
6
7
  /**
7
8
  * @license
@@ -28,6 +29,63 @@ import { EnvironmentProviders, InjectionToken } from '@angular/core';
28
29
  */
29
30
  declare function wrAppendOverlayClose(host: HTMLElement, className: string, label: string, onClose: () => void): HTMLButtonElement;
30
31
 
32
+ /**
33
+ * @license
34
+ *
35
+ * Use of this source code is governed by an MIT-style license that can be
36
+ * found in the LICENSE file at https://github.com/thekhegay/ngwr/blob/main/LICENSE
37
+ */
38
+
39
+ /**
40
+ * Keep an OPEN overlay on the application's reading direction.
41
+ *
42
+ * The CDK reads the direction ONCE, as a string, when the overlay is created
43
+ * (`overlayConfig.direction ||= directionality.value`), writes it as the host's
44
+ * `dir` on attach, and never looks at it again — `updatePosition()` does not
45
+ * touch it and `setDirection()` is the only thing that does. So an application
46
+ * that flips direction while a panel is open mirrors the page and leaves the
47
+ * panel behind, still `ltr`, still resolving `start` to the left. This site's
48
+ * own LTR/RTL switch is the demonstration: it lives inside a `wr-dropdown`, and
49
+ * the `wr-segmented` it is built from reads `Directionality` live — so the thumb
50
+ * slides to the other slot while the pane around it still renders `ltr`, and
51
+ * parks under the wrong label.
52
+ *
53
+ * Call it once per `OverlayRef`, right after `overlay.create(...)`. The follower
54
+ * ends itself when that overlay detaches or is disposed, so a reopen — which is
55
+ * always a NEW ref in this library — needs a new call, and the returned teardown
56
+ * is only for stopping early.
57
+ *
58
+ * `onDirectionChange` is for the sites whose position LIST is itself
59
+ * direction-dependent (the four that pass their table through
60
+ * {@link wrMirrorOffsets}): it runs with the new direction already on the ref
61
+ * and before the overlay repositions, so the strategy is carrying the mirrored
62
+ * offsets by the time the CDK re-resolves them.
63
+ *
64
+ * SSR-safe: it touches no browser global of its own, and the CDK's position
65
+ * strategies no-op off the browser, so a flip on the server only rewrites the
66
+ * attribute.
67
+ *
68
+ * @param overlayRef The overlay to keep in step, freshly created.
69
+ * @param dir The `Directionality` the caller injected. `null` — an optional
70
+ * inject with no provider, i.e. a bare `TestBed` — means there is nothing
71
+ * ambient to follow and this does nothing at all.
72
+ * @param injector Owns the `valueSignal` watch; the caller's own is right.
73
+ * @param onDirectionChange Re-applies direction-dependent state, e.g.
74
+ * `strategy.withPositions(wrMirrorOffsets(TABLE, direction === 'rtl'))`.
75
+ * @returns Stops following. Idempotent, and unnecessary in the normal case.
76
+ *
77
+ * @example
78
+ * ```ts
79
+ * this.overlayRef = this.overlay.create({ positionStrategy, ... });
80
+ * wrFollowDirection(this.overlayRef, this.dir, this.injector, direction =>
81
+ * positionStrategy.withPositions(
82
+ * wrMirrorOffsets(WR_POPCONFIRM_POSITIONS[this.position()], direction === 'rtl')
83
+ * )
84
+ * );
85
+ * ```
86
+ */
87
+ declare function wrFollowDirection(overlayRef: OverlayRef, dir: Directionality | null, injector: Injector, onDirectionChange?: (direction: Direction) => void): () => void;
88
+
31
89
  /**
32
90
  * @license
33
91
  *
@@ -126,7 +184,7 @@ declare class WrOutsideClick {
126
184
  private listen;
127
185
  private unlisten;
128
186
  static ɵfac: i0.ɵɵFactoryDeclaration<WrOutsideClick, never>;
129
- static ɵprov: i0.ɵɵInjectableDeclaration<WrOutsideClick>;
187
+ static ɵprov: i0.ɵɵInjectableDeclaration<any>;
130
188
  }
131
189
 
132
190
  /**
@@ -155,7 +213,7 @@ declare class WrOutsideClick {
155
213
  declare class WrOverlayContainer extends OverlayContainer {
156
214
  protected _createContainer(): void;
157
215
  static ɵfac: i0.ɵɵFactoryDeclaration<WrOverlayContainer, never>;
158
- static ɵprov: i0.ɵɵInjectableDeclaration<WrOverlayContainer>;
216
+ static ɵprov: i0.ɵɵInjectableDeclaration<any>;
159
217
  }
160
218
 
161
219
  /**
@@ -302,5 +360,5 @@ declare const WR_OVERLAY: InjectionToken<Overlay>;
302
360
  */
303
361
  declare const WR_OVERLAY_CONTAINER: InjectionToken<OverlayContainer>;
304
362
 
305
- export { WR_OVERLAY, WR_OVERLAY_CONTAINER, WR_RESPONSIVE_OVERLAYS, WrOutsideClick, WrOverlayContainer, provideWrOverlay, provideWrResponsiveOverlays, wrAppendOverlayClose, wrMirrorOffsets, wrPresentAsSheet };
363
+ export { WR_OVERLAY, WR_OVERLAY_CONTAINER, WR_RESPONSIVE_OVERLAYS, WrOutsideClick, WrOverlayContainer, provideWrOverlay, provideWrResponsiveOverlays, wrAppendOverlayClose, wrFollowDirection, wrMirrorOffsets, wrPresentAsSheet };
306
364
  export type { WrResponsiveOverlaysConfig };
@@ -115,6 +115,22 @@ declare class WrPagination {
115
115
  /** The nav landmark's own accessible name — was a hardcoded English literal. */
116
116
  protected readonly navLabel: _angular_core.Signal<string>;
117
117
  /** Internal: total page count. */
118
+ /**
119
+ * A page size that is not a positive number yields ONE page, not `Infinity`.
120
+ *
121
+ * `pageSize` is a `model()`, so Angular offers no `transform` to coerce it and
122
+ * whatever the host writes arrives raw. At 0 the division is `Infinity`,
123
+ * `Math.max(1, …)` keeps it, and the item list below pushes `total` as the
124
+ * last page — so the strip rendered a clickable cell reading "Infinity", and
125
+ * clicking it locked the tab. `NaN` (a `pageSize` bound to an emptied number
126
+ * field) came through untouched for the same reason.
127
+ *
128
+ * One page is the honest answer: a size of zero describes no paging at all.
129
+ * Note this is about `pageSize` and does NOT touch the recorded contract
130
+ * about `total` — pagination still refuses to pull the page DOWN while
131
+ * `total` is at or below zero, because 0 is ambiguous with "still loading".
132
+ */
133
+ private readonly usablePageSize;
118
134
  protected readonly totalPages: _angular_core.Signal<number>;
119
135
  /**
120
136
  * Internal: where the previous arrow goes. Clamped to the end of the valid
@@ -32,7 +32,7 @@ declare class WrPlatform {
32
32
  readonly prefersReducedMotion: Signal<boolean>;
33
33
  private mediaSignal;
34
34
  static ɵfac: i0.ɵɵFactoryDeclaration<WrPlatform, never>;
35
- static ɵprov: i0.ɵɵInjectableDeclaration<WrPlatform>;
35
+ static ɵprov: i0.ɵɵInjectableDeclaration<any>;
36
36
  }
37
37
 
38
38
  /**
@@ -63,7 +63,7 @@ declare class WrVisualViewport {
63
63
  readonly offsetTop: Signal<number>;
64
64
  constructor();
65
65
  static ɵfac: i0.ɵɵFactoryDeclaration<WrVisualViewport, never>;
66
- static ɵprov: i0.ɵɵInjectableDeclaration<WrVisualViewport>;
66
+ static ɵprov: i0.ɵɵInjectableDeclaration<any>;
67
67
  }
68
68
 
69
69
  /** Impact weight for {@link WrHaptics.impact}. */
@@ -122,7 +122,7 @@ declare class WrHaptics {
122
122
  /** Cancel any in-progress vibration. */
123
123
  stop(): void;
124
124
  static ɵfac: i0.ɵɵFactoryDeclaration<WrHaptics, never>;
125
- static ɵprov: i0.ɵɵInjectableDeclaration<WrHaptics>;
125
+ static ɵprov: i0.ɵɵInjectableDeclaration<any>;
126
126
  }
127
127
 
128
128
  export { WrHaptics, WrPlatform, WrVisualViewport };
@@ -40,6 +40,7 @@ declare class WrPopconfirm {
40
40
  private readonly outsideClick;
41
41
  private readonly vcr;
42
42
  private readonly scrollStrategies;
43
+ private readonly injector;
43
44
  private readonly destroyRef;
44
45
  /** @internal Public so the host bindings can read it. */
45
46
  readonly isOpen: _angular_core.WritableSignal<boolean>;
@@ -34,9 +34,9 @@ interface WrPopoverHarnessFilters extends BaseHarnessFilters {
34
34
  *
35
35
  * - **popover** — template content, opens on click (or hover), announces
36
36
  * `role="dialog"` and is what the trigger's `aria-expanded` describes;
37
- * - **tooltip** — string content, opens on hover AND focus after a delay,
38
- * announces `role="tooltip"` and DESCRIBES its trigger instead of being
39
- * owned by it.
37
+ * - **tooltip** — string content, opens after a delay on hover or on KEYBOARD
38
+ * focus (never on a `.focus()` call — see {@link focus}), announces
39
+ * `role="tooltip"` and DESCRIBES its trigger instead of being owned by it.
40
40
  *
41
41
  * The panel is never inside the trigger: it is a portal in the overlay
42
42
  * container, a sibling of the whole app. It is reached through the document
@@ -112,7 +112,9 @@ declare class WrPopoverHarness extends ContentContainerComponentHarness {
112
112
  * Hover leads because a click is an outside pointer event for every OTHER open
113
113
  * panel, so leading with it would dismiss someone else's popover on the way to
114
114
  * opening this one; a click-driven popover ignores the hover outright. A
115
- * tooltip is never clicked at all — hover and focus are its only gestures.
115
+ * tooltip is never clicked at all, and hover is the only one of its two
116
+ * gestures a harness can perform — the other is a keyboard focus, which is
117
+ * `FocusMonitor`'s to grant (see {@link focus}).
116
118
  *
117
119
  * Throws when nothing appears: a tooltip with an empty string never opens, and
118
120
  * a spec on fake timers has to advance the clock itself.
@@ -133,7 +135,22 @@ declare class WrPopoverHarness extends ContentContainerComponentHarness {
133
135
  hover(): Promise<void>;
134
136
  /** Move the pointer off the trigger. The panel goes after the grace period, not instantly. */
135
137
  mouseAway(): Promise<void>;
136
- /** Focus the trigger — a tooltip's other opening gesture, so keyboard users get the hint too. */
138
+ /**
139
+ * Focus the trigger PROGRAMMATICALLY — and note that this does not open a
140
+ * tooltip.
141
+ *
142
+ * `TestElement.focus()` is a `.focus()` call, which is the one kind of focus a
143
+ * tooltip deliberately ignores: it shows for a KEYBOARD focus only, because
144
+ * every overlay in the catalog hands focus back to the trigger it was opened
145
+ * from, and a tooltip that answered those appeared with no pointer to leave and
146
+ * no focus to lose. So this method is the way to assert that NOTHING happens.
147
+ *
148
+ * There is no keyboard-origin twin, and it cannot be written honestly here:
149
+ * origin is `FocusMonitor`'s answer, this class has no injector, and the Tab
150
+ * that would earn it moves focus in a browser and not in jsdom. A spec that
151
+ * needs the opening gesture drives `FocusMonitor.focusVia(el, 'keyboard')`
152
+ * itself, the way `popover.spec.ts` does — or uses `hover()`.
153
+ */
137
154
  focus(): Promise<void>;
138
155
  /** Blur the trigger, which hides a tooltip after `hideDelay`. */
139
156
  blur(): Promise<void>;
@@ -23,13 +23,13 @@ declare class WrPopover {
23
23
  *
24
24
  * - `'popover'` (default) — template content, click trigger, dialog
25
25
  * semantics.
26
- * - `'tooltip'` — text content, hover+focus trigger, `role="tooltip"`,
27
- * `aria-describedby` on the host.
26
+ * - `'tooltip'` — text content, hover / keyboard-focus trigger,
27
+ * `role="tooltip"`, `aria-describedby` on the host.
28
28
  */
29
29
  readonly mode: _angular_core.InputSignal<"popover" | "tooltip">;
30
30
  /**
31
- * How the popover opens. Ignored in tooltip mode — tooltips are always
32
- * hover+focus. @default 'click'
31
+ * How the popover opens. Ignored in tooltip mode — a tooltip is always hover
32
+ * plus keyboard focus. @default 'click'
33
33
  */
34
34
  readonly trigger: _angular_core.InputSignal<"click" | "hover">;
35
35
  /** Anchor side. @default 'bottom' for popover, 'top' for tooltip */
@@ -57,6 +57,8 @@ declare class WrPopover {
57
57
  /** Fires after the panel closes. */
58
58
  readonly closed: _angular_core.OutputEmitterRef<void>;
59
59
  private readonly host;
60
+ private readonly focusMonitor;
61
+ private readonly keystroke;
60
62
  private readonly overlay;
61
63
  private readonly dir;
62
64
  private readonly outsideClick;
@@ -64,6 +66,7 @@ declare class WrPopover {
64
66
  private readonly vcr;
65
67
  private readonly scrollStrategies;
66
68
  private readonly destroyRef;
69
+ private readonly injector;
67
70
  /** @internal */
68
71
  readonly isOpen: _angular_core.WritableSignal<boolean>;
69
72
  /** @internal */
@@ -74,6 +77,8 @@ declare class WrPopover {
74
77
  private readonly resolvedPosition;
75
78
  private overlayRef;
76
79
  private textPanelRef;
80
+ /** Whether the HOST itself holds focus — not a descendant of it. */
81
+ private hostFocused;
77
82
  private hoverCloseTimer;
78
83
  private showTimer;
79
84
  private hideTimer;
@@ -88,15 +93,46 @@ declare class WrPopover {
88
93
  /** @internal */
89
94
  protected onMouseLeave(event: MouseEvent): void;
90
95
  /** @internal */
91
- protected onFocus(): void;
92
- /** @internal */
93
- protected onBlur(): void;
94
- /** @internal */
95
96
  protected onEscape(): void;
97
+ /**
98
+ * Whether the keystroke in flight is one the user moves focus with.
99
+ *
100
+ * Asked only of a `keyboard` origin, which the CDK grants to any focus landing
101
+ * within a millisecond of a keydown — including the hand-back a drawer
102
+ * performs while Escape is still being handled. That is the reported bug's
103
+ * keyboard half, and the origin cannot see it.
104
+ *
105
+ * NO key on record answers `true`, and that polarity is chosen rather than
106
+ * inherited: a keyboard modality with no keystroke behind it is a screen
107
+ * reader's virtual cursor (the CDK reads its synthetic mousedown as
108
+ * `keyboard`) or a deliberate `focusVia(el, 'keyboard')`, and both are the
109
+ * user. Refusing wants positive evidence of a key that does something other
110
+ * than navigate — silence must not cost an AT user the hint. The two windows
111
+ * are aligned so that "keyboard origin, no key" cannot mean "the key just
112
+ * expired"; what it does still admit is a `FocusMonitorDetectionMode.EVENTUAL`
113
+ * app, where the CDK never expires an origin at all.
114
+ */
115
+ private fromNavigationKey;
96
116
  private scheduleShow;
97
117
  private scheduleHide;
98
118
  private clearTimers;
99
119
  private openOverlay;
120
+ /**
121
+ * Tear the overlay down, and tell the host — unless the host is going away
122
+ * with it.
123
+ *
124
+ * `notify: false` is the DESTROY path, and it is not a nicety. An `output()`
125
+ * belongs to the view that declares it, so emitting from `onDestroy` is
126
+ * refused: Angular logs `NG0953: Unexpected emit for destroyed OutputRef` and
127
+ * the listener never runs. Measured — a `(closed)` handler on a dropdown whose
128
+ * host view is removed while the menu is open fired zero times and left a
129
+ * console error behind. There is nobody to notify at that point, because the
130
+ * consumer's own view is being torn down in the same pass; `wr-popconfirm`
131
+ * already disposes without emitting, and this brings the other two into line.
132
+ *
133
+ * The focus hand-back is skipped for the same reason — the host element is on
134
+ * its way out of the document.
135
+ */
100
136
  private closeOverlay;
101
137
  private readonly onOverlayLeave;
102
138
  private readonly onOverlayEnter;
@@ -225,10 +225,19 @@ declare class WrRatingHarness extends ComponentHarness {
225
225
  /** Whether the rating refuses interaction — `aria-disabled`, for the same reason. */
226
226
  isDisabled(): Promise<boolean>;
227
227
  /**
228
- * Whether the rating is in the tab order.
228
+ * Whether the rating is a tab stop.
229
229
  *
230
- * A rating that takes no input takes itself out of it (`tabindex="-1"`), so this
231
- * is `false` while readonly or disabled.
230
+ * `disabled` only, never `readonly` — and the distinction is deliberate, not
231
+ * incidental. A disabled control leaves the tab order; a READ-ONLY one stays
232
+ * in it, keeps announcing its value, and still submits, which is the whole
233
+ * difference between "you may not" and "there is nothing here". The component
234
+ * records that driving this off an `interactive()` that folded the two
235
+ * together made `readonly` unreachable, with an `aria-describedby` pointing
236
+ * at an element nobody could focus.
237
+ *
238
+ * This docblock used to describe exactly that fixed bug — "false while
239
+ * readonly or disabled" — so a reader trusting it would have asserted the
240
+ * behaviour the component was changed to stop having.
232
241
  */
233
242
  isFocusable(): Promise<boolean>;
234
243
  /**
@@ -105,6 +105,19 @@ declare class WrRating implements FormValueControl<number | null> {
105
105
  private readonly directionality;
106
106
  /** The surrounding `<wr-form-field>`'s error state. @internal */
107
107
  protected readonly fieldAria: ngwr_form.WrFormFieldAria;
108
+ /**
109
+ * The field's label wins over the built-in default, and an explicit
110
+ * `ariaLabel` wins over both.
111
+ *
112
+ * `<wr-form-field label="…">` renders a `<label for>` that cannot reach this
113
+ * control — `for` binds only to a LABELABLE element and the focusable part
114
+ * here carries a role instead — so the field's label named nothing and this
115
+ * announced its own generic default. A consumer who wrote
116
+ * `<wr-form-field label="Overall satisfaction">` heard "Rating".
117
+ */
118
+ protected readonly labelledBy: _angular_core.Signal<string | null>;
119
+ /** `null` once `aria-labelledby` is carrying the name, or the two are announced together. */
120
+ protected readonly nameLabel: _angular_core.Signal<string | null>;
108
121
  protected readonly classes: _angular_core.Signal<string>;
109
122
  /** Fill ratio for slot `i` in `[0, 1]` — drives the CSS clip width. */
110
123
  protected fillFor(i: number): number;
@@ -58,7 +58,7 @@ declare class WrScroll {
58
58
  private behavior;
59
59
  private scroll;
60
60
  static ɵfac: i0.ɵɵFactoryDeclaration<WrScroll, never>;
61
- static ɵprov: i0.ɵɵInjectableDeclaration<WrScroll>;
61
+ static ɵprov: i0.ɵɵInjectableDeclaration<any>;
62
62
  }
63
63
 
64
64
  export { WrScroll };
@@ -148,6 +148,22 @@ declare class WrSegmented<T = unknown> implements FormValueControl<T | null> {
148
148
  protected readonly selectedIndex: _angular_core.Signal<number>;
149
149
  /** Flips true after the first paint so the thumb only animates user-driven changes, not the initial snap. */
150
150
  private readonly mounted;
151
+ /**
152
+ * True for the tick in which the reading direction changed.
153
+ *
154
+ * Mirroring moves the thumb's SLOT by the whole width of the strip (see
155
+ * `thumbStyle`), and animating that is a quarter-second of the pill travelling
156
+ * across options it does not mark — caught under the wrong label every time the
157
+ * docs site's LTR / RTL switch was used, which is a strip inside an overlay that
158
+ * mirrors underneath it. The selection did not move, so neither should the pill:
159
+ * the stylesheet drops its transition while this is set, and the new slot lands
160
+ * in the same pass that removes it.
161
+ *
162
+ * Cleared from a task rather than `afterNextRender`, which runs inside the very
163
+ * change detection that set this and would put the transition back before the
164
+ * new position is painted.
165
+ */
166
+ private readonly flipping;
151
167
  constructor();
152
168
  protected readonly classes: _angular_core.Signal<string>;
153
169
  private readonly dir;
@@ -710,6 +710,13 @@ declare class WrSelect implements FormValueControl<unknown>, WrSelectContext {
710
710
  private readonly destroyRef;
711
711
  private readonly platformId;
712
712
  private readonly injector;
713
+ /**
714
+ * Ambient reading direction, for the open panel alone — nothing in this
715
+ * component reads it directly. Optional so a bare `TestBed` needs no
716
+ * provider; `Directionality` is root-provided anyway, and a missing one
717
+ * simply reads as `ltr`.
718
+ */
719
+ private readonly dir;
713
720
  private overlayRef;
714
721
  constructor();
715
722
  isSelected(value: unknown): boolean;
@@ -41,6 +41,20 @@ type WrSquircleCornerMask = 'all' | 'left' | 'right' | 'top' | 'bottom' | 'none'
41
41
  * Apply a Figma-style smooth-corner ("squircle") `clip-path` to the host
42
42
  * element. Re-computes the path whenever the element resizes.
43
43
  *
44
+ * @deprecated Use the native route instead — `@use 'ngwr/theme'` and the
45
+ * `smooth-br` mixin, which 31 entry points already ride by default. This
46
+ * directive exists because `corner-shape` was Chromium-only, and that reason
47
+ * has an expiry date: WebKit has it in Technology Preview. It will be removed
48
+ * in the major after Safari stable ships the property.
49
+ *
50
+ * It is deprecated rather than removed today because it is still the only
51
+ * DETERMINISTIC squircle — the native property reaches roughly two thirds of
52
+ * users and the rest see a rounded corner. If that difference matters to a
53
+ * design, this is still the way to get it, with the costs stated: a hand-ported
54
+ * superellipse, a `ResizeObserver` and a `getBoundingClientRect` per host on
55
+ * every resize, square corners until hydration under SSR, no test harness, and
56
+ * a clip that `box-shadow`, `border-image` and the focus ring do not follow.
57
+ *
44
58
  * Borders: pass `[borderWidth]` (px) + `[borderColor]` and the directive
45
59
  * paints a `::before` pseudo with an *inset* squircle path on top of the
46
60
  * host. The visible border is the host's own background colour, so set
@@ -92,9 +106,11 @@ declare class WrSquircle {
92
106
  * only the two corners on the named side and leave the other two at
93
107
  * 90°. `'none'` is equivalent to disabling the directive.
94
108
  *
95
- * Modelled so parent components composing the directive can flip the
96
- * value imperatively — used by `WrButtonGroup` to squircle only the
97
- * outer corners of the first / last child.
109
+ * A `model()` rather than an `input()` so a parent composing the directive
110
+ * can flip it imperatively. Nothing in the library does today: this line
111
+ * used to name `WrButtonGroup` as the consumer, and that component has
112
+ * carried no squircle reference for several releases — `wr-btn--squircle`
113
+ * is plain CSS now.
98
114
  *
99
115
  * @default 'all'
100
116
  */
@@ -122,6 +138,9 @@ declare class WrSquircle {
122
138
  * ```
123
139
  *
124
140
  * @see https://ngwr.dev/reference/components/squircle
141
+ *
142
+ * @deprecated Follows `[wrSquircle]`, which it wraps — see that directive
143
+ * for why, and for the native route to use instead.
125
144
  */
126
145
  declare class WrSquircleHost {
127
146
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<WrSquircleHost, never>;
@@ -128,7 +128,6 @@ declare class WrStatisticCountdown {
128
128
  readonly tickMs: _angular_core.InputSignalWithTransform<number, unknown>;
129
129
  /** Fires once when the countdown crosses zero. */
130
130
  readonly countdownEnd: _angular_core.OutputEmitterRef<void>;
131
- private readonly destroyRef;
132
131
  private readonly isBrowser;
133
132
  private readonly targetMs;
134
133
  /**
@@ -94,7 +94,7 @@ declare class WrStorage {
94
94
  private rawKeys;
95
95
  private installCrossTabListener;
96
96
  static ɵfac: i0.ɵɵFactoryDeclaration<WrStorage, never>;
97
- static ɵprov: i0.ɵɵInjectableDeclaration<WrStorage>;
97
+ static ɵprov: i0.ɵɵInjectableDeclaration<any>;
98
98
  }
99
99
 
100
100
  /**
@@ -219,7 +219,7 @@ declare class WrTheme {
219
219
  private readPersisted;
220
220
  private persist;
221
221
  static ɵfac: i0.ɵɵFactoryDeclaration<WrTheme, never>;
222
- static ɵprov: i0.ɵɵInjectableDeclaration<WrTheme>;
222
+ static ɵprov: i0.ɵɵInjectableDeclaration<any>;
223
223
  }
224
224
 
225
225
  /**
@@ -164,6 +164,8 @@ declare class WrToastRef {
164
164
  declare class WrToast {
165
165
  private readonly overlay;
166
166
  private readonly config;
167
+ private readonly injector;
168
+ private readonly dir;
167
169
  private overlayRef;
168
170
  private hostRef;
169
171
  /** Watches the overlay container for overlays opened after the host. */
@@ -238,7 +240,7 @@ declare class WrToast {
238
240
  private pushToHost;
239
241
  private disposeHost;
240
242
  static ɵfac: i0.ɵɵFactoryDeclaration<WrToast, never>;
241
- static ɵprov: i0.ɵɵInjectableDeclaration<WrToast>;
243
+ static ɵprov: i0.ɵɵInjectableDeclaration<any>;
242
244
  }
243
245
 
244
246
  /**
@@ -115,6 +115,12 @@ declare class WrTour {
115
115
  private anyResolvableBefore;
116
116
  private resolve;
117
117
  private openStep;
118
+ /**
119
+ * The card's fallback table for one placement, with its inline offsets already
120
+ * mirrored. Built per call rather than per step: the direction can change while
121
+ * the step is on screen, and a table is what has to be rebuilt when it does.
122
+ */
123
+ private stepPositions;
118
124
  private placeSpotlight;
119
125
  private teardownStep;
120
126
  /**
@@ -126,7 +132,7 @@ declare class WrTour {
126
132
  */
127
133
  private isRtl;
128
134
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<WrTour, never>;
129
- static ɵprov: _angular_core.ɵɵInjectableDeclaration<WrTour>;
135
+ static ɵprov: _angular_core.ɵɵInjectableDeclaration<any>;
130
136
  }
131
137
 
132
138
  /** What the popup needs from the running tour, without importing the service (cycle). */
@@ -114,6 +114,17 @@ declare class WrTransfer implements FormValueControl<readonly unknown[]> {
114
114
  protected readonly resolvedSearch: _angular_core.Signal<string>;
115
115
  protected readonly resolvedEmpty: _angular_core.Signal<string>;
116
116
  protected readonly resolvedSelectAll: _angular_core.Signal<string>;
117
+ /**
118
+ * The select-all checkbox's accessible name, composed IN THE CATALOG.
119
+ *
120
+ * It used to be a template literal — `` `${title} — ${selectAll}` `` — which
121
+ * froze both the separator and the operand order into English. A translator
122
+ * could change each half and not the sentence they make, which is the exact
123
+ * defect the calendar and event-calendar catalogs were rewritten to remove.
124
+ * The key ships as `{{pane}} — {{action}}` in every locale, so nothing reads
125
+ * differently today and every locale can now reorder it without a code change.
126
+ */
127
+ protected readonly selectAllAria: (params?: ngwr_i18n.WrI18nParams) => string;
117
128
  protected readonly resolvedToTarget: _angular_core.Signal<string>;
118
129
  protected readonly resolvedToSource: _angular_core.Signal<string>;
119
130
  /** `{{checked}} / {{total}}` under each heading. @internal */
@@ -129,6 +140,23 @@ declare class WrTransfer implements FormValueControl<readonly unknown[]> {
129
140
  private readonly valueSet;
130
141
  protected readonly source: _angular_core.Signal<PaneState>;
131
142
  protected readonly target: _angular_core.Signal<PaneState>;
143
+ /**
144
+ * Say something when `value` holds a value no `items` entry matches.
145
+ *
146
+ * Such a value is in NEITHER pane — the left one filters out anything already
147
+ * selected and the right one can only render rows it found — and the header
148
+ * counts the rows it shows, so nothing on screen contradicts anything. The
149
+ * result is a value the user can neither see nor remove, and no sign that it
150
+ * is there.
151
+ *
152
+ * A warning rather than an invented row, which matches how the library treats
153
+ * the same question elsewhere: `wr-select` renders a value outside its option
154
+ * list only under an explicit `freeText`, so an unmatched value is a mode a
155
+ * consumer opts into, not a shape a component guesses at. It also stays quiet
156
+ * about the common transient case — `items` arriving after `value` — because
157
+ * the message names the values and a developer can see them settle.
158
+ */
159
+ private warnAboutOrphans;
132
160
  protected readonly canMoveRight: _angular_core.Signal<boolean>;
133
161
  protected readonly canMoveLeft: _angular_core.Signal<boolean>;
134
162
  protected readonly classes: _angular_core.Signal<string>;
@@ -137,6 +165,30 @@ declare class WrTransfer implements FormValueControl<readonly unknown[]> {
137
165
  /** Header checkbox — stages or clears every enabled row the filter shows. */
138
166
  protected toggleAll(pane: 'source' | 'target', checked: boolean): void;
139
167
  protected onSearch(pane: 'source' | 'target', event: Event): void;
168
+ private readonly host;
169
+ private readonly injector;
170
+ /**
171
+ * Keep focus in the widget after a move.
172
+ *
173
+ * A move empties the pane's staging set, which is exactly what disables the
174
+ * button that was just pressed — so the element holding DOM focus went
175
+ * `disabled` as a RESULT of its own activation and the browser dropped focus
176
+ * to `<body>`. From there the next Tab restarts at the top of the document,
177
+ * which for a keyboard user is being thrown out of a control they were in the
178
+ * middle of using.
179
+ *
180
+ * The landing is the FIRST ROW OF THE PANE THE ROWS ARRIVED IN, and the
181
+ * obvious alternative does not work: after a move BOTH buttons are disabled,
182
+ * because each needs something ticked and the move cleared the tick on one
183
+ * side and arrived unticked on the other. The rows that just moved are where
184
+ * the user's attention is and where the next action lives, so that is where
185
+ * focus goes.
186
+ *
187
+ * `afterNextRender`, not `queueMicrotask`: under zoneless CD the microtask
188
+ * runs before the moved rows are in the DOM, so the focus call would land on
189
+ * the pane as it was before the move.
190
+ */
191
+ private restoreFocusAfterMove;
140
192
  protected moveRight(): void;
141
193
  protected moveLeft(): void;
142
194
  /** Filter, then derive the header state from what survived. */
@@ -358,6 +358,26 @@ declare class WrTreeHarness extends ContentContainerComponentHarness {
358
358
  removeChip(label: string): Promise<void>;
359
359
  /** Click the clear (×) control on the trigger. */
360
360
  clear(): Promise<void>;
361
+ /**
362
+ * Backspace on the closed overlay trigger — the keyboard route to the ×.
363
+ *
364
+ * In single mode it clears (only while `clearable` is on); in multi mode it
365
+ * drops the LAST chip, one per call, whatever `clearable` says. Both ×
366
+ * controls are `tabindex="-1"` spans inside the trigger, so a key can never
367
+ * reach them directly. In single mode this is the ONLY keyboard route back to
368
+ * no selection; in multi mode a keyboard user can also toggle a row off in the
369
+ * panel ({@link selectNode} with `additive`). {@link clear} / {@link removeChip}
370
+ * prove the pointer path and nothing more.
371
+ *
372
+ * The key is honoured only on the CLOSED trigger, so an open panel is closed
373
+ * first with Escape — the step a keyboard user takes too, since focus sits in
374
+ * the panel while it is up.
375
+ *
376
+ * Does nothing, rather than throwing, where the component does nothing —
377
+ * nothing selected, disabled or read-only — so a spec asserts the outcome on
378
+ * the value.
379
+ */
380
+ clearByKeyboard(): Promise<void>;
361
381
  /**
362
382
  * The nodes currently rendered, in the order they are shown.
363
383
  *