ngwr 11.1.0 → 12.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 (481) hide show
  1. package/README.md +7 -7
  2. package/burger/styles/_index.scss +1 -1
  3. package/button/styles/_index.scss +2 -2
  4. package/calendar/styles/_index.scss +32 -12
  5. package/calendar-heatmap/styles/_index.scss +20 -0
  6. package/carousel/styles/_index.scss +23 -1
  7. package/cascader/styles/_index.scss +15 -3
  8. package/checkbox/styles/_index.scss +2 -2
  9. package/circular-text/styles/_index.scss +11 -0
  10. package/collapse/styles/_index.scss +2 -2
  11. package/color-picker/styles/_index.scss +3 -3
  12. package/command-palette/styles/_index.scss +12 -0
  13. package/compare/styles/_index.scss +18 -2
  14. package/context-menu/styles/_index.scss +21 -2
  15. package/date-picker/styles/_index.scss +5 -5
  16. package/descriptions/styles/_index.scss +1 -1
  17. package/drag-drop/styles/_index.scss +28 -1
  18. package/drawer/styles/_index.scss +37 -0
  19. package/dropdown/styles/_index.scss +2 -2
  20. package/event-calendar/styles/_index.scss +67 -10
  21. package/fesm2022/ngwr-action-sheet-testing.mjs +313 -0
  22. package/fesm2022/ngwr-action-sheet-testing.mjs.map +1 -0
  23. package/fesm2022/ngwr-action-sheet.mjs +3 -3
  24. package/fesm2022/ngwr-affix.mjs +3 -3
  25. package/fesm2022/ngwr-alert.mjs +3 -3
  26. package/fesm2022/ngwr-anchor.mjs +3 -3
  27. package/fesm2022/ngwr-aurora.mjs +3 -3
  28. package/fesm2022/ngwr-avatar.mjs +3 -3
  29. package/fesm2022/ngwr-back-top.mjs +3 -3
  30. package/fesm2022/ngwr-badge.mjs +6 -6
  31. package/fesm2022/ngwr-bar-chart-testing.mjs +107 -0
  32. package/fesm2022/ngwr-bar-chart-testing.mjs.map +1 -0
  33. package/fesm2022/ngwr-bar-chart.mjs +3 -3
  34. package/fesm2022/ngwr-blur-text-testing.mjs +203 -0
  35. package/fesm2022/ngwr-blur-text-testing.mjs.map +1 -0
  36. package/fesm2022/ngwr-blur-text.mjs +18 -4
  37. package/fesm2022/ngwr-blur-text.mjs.map +1 -1
  38. package/fesm2022/ngwr-border-glow-testing.mjs +325 -0
  39. package/fesm2022/ngwr-border-glow-testing.mjs.map +1 -0
  40. package/fesm2022/ngwr-border-glow.mjs +4 -4
  41. package/fesm2022/ngwr-border-glow.mjs.map +1 -1
  42. package/fesm2022/ngwr-breadcrumbs.mjs +29 -17
  43. package/fesm2022/ngwr-breadcrumbs.mjs.map +1 -1
  44. package/fesm2022/ngwr-burger.mjs +3 -3
  45. package/fesm2022/ngwr-button.mjs +6 -6
  46. package/fesm2022/ngwr-calendar-heatmap-testing.mjs +95 -0
  47. package/fesm2022/ngwr-calendar-heatmap-testing.mjs.map +1 -0
  48. package/fesm2022/ngwr-calendar-heatmap.mjs +17 -5
  49. package/fesm2022/ngwr-calendar-heatmap.mjs.map +1 -1
  50. package/fesm2022/ngwr-calendar-testing.mjs +368 -0
  51. package/fesm2022/ngwr-calendar-testing.mjs.map +1 -0
  52. package/fesm2022/ngwr-calendar.mjs +228 -10
  53. package/fesm2022/ngwr-calendar.mjs.map +1 -1
  54. package/fesm2022/ngwr-card.mjs +10 -10
  55. package/fesm2022/ngwr-card.mjs.map +1 -1
  56. package/fesm2022/ngwr-carousel.mjs +124 -24
  57. package/fesm2022/ngwr-carousel.mjs.map +1 -1
  58. package/fesm2022/ngwr-cascader.mjs +60 -5
  59. package/fesm2022/ngwr-cascader.mjs.map +1 -1
  60. package/fesm2022/ngwr-checkbox.mjs +14 -6
  61. package/fesm2022/ngwr-checkbox.mjs.map +1 -1
  62. package/fesm2022/ngwr-circular-text-testing.mjs +230 -0
  63. package/fesm2022/ngwr-circular-text-testing.mjs.map +1 -0
  64. package/fesm2022/ngwr-circular-text.mjs +4 -4
  65. package/fesm2022/ngwr-circular-text.mjs.map +1 -1
  66. package/fesm2022/ngwr-click-spark.mjs +27 -7
  67. package/fesm2022/ngwr-click-spark.mjs.map +1 -1
  68. package/fesm2022/ngwr-clipboard.mjs +3 -3
  69. package/fesm2022/ngwr-collapse.mjs +9 -9
  70. package/fesm2022/ngwr-color-picker-testing.mjs +452 -0
  71. package/fesm2022/ngwr-color-picker-testing.mjs.map +1 -0
  72. package/fesm2022/ngwr-color-picker.mjs +126 -10
  73. package/fesm2022/ngwr-color-picker.mjs.map +1 -1
  74. package/fesm2022/ngwr-command-palette.mjs +14 -5
  75. package/fesm2022/ngwr-command-palette.mjs.map +1 -1
  76. package/fesm2022/ngwr-compare.mjs +3 -3
  77. package/fesm2022/ngwr-confetti.mjs +31 -6
  78. package/fesm2022/ngwr-confetti.mjs.map +1 -1
  79. package/fesm2022/ngwr-config.mjs +9 -0
  80. package/fesm2022/ngwr-config.mjs.map +1 -1
  81. package/fesm2022/ngwr-context-menu-testing.mjs +30 -11
  82. package/fesm2022/ngwr-context-menu-testing.mjs.map +1 -1
  83. package/fesm2022/ngwr-context-menu.mjs +358 -48
  84. package/fesm2022/ngwr-context-menu.mjs.map +1 -1
  85. package/fesm2022/ngwr-cookie.mjs +3 -3
  86. package/fesm2022/ngwr-counter.mjs +25 -9
  87. package/fesm2022/ngwr-counter.mjs.map +1 -1
  88. package/fesm2022/{ngwr-date-adapter-fns.mjs → ngwr-date-adapters-fns.mjs} +37 -10
  89. package/fesm2022/ngwr-date-adapters-fns.mjs.map +1 -0
  90. package/fesm2022/{ngwr-date-adapter-luxon.mjs → ngwr-date-adapters-luxon.mjs} +5 -5
  91. package/fesm2022/ngwr-date-adapters-luxon.mjs.map +1 -0
  92. package/fesm2022/ngwr-date-picker-testing.mjs +21 -85
  93. package/fesm2022/ngwr-date-picker-testing.mjs.map +1 -1
  94. package/fesm2022/ngwr-date-picker.mjs +119 -37
  95. package/fesm2022/ngwr-date-picker.mjs.map +1 -1
  96. package/fesm2022/{ngwr-date-adapter.mjs → ngwr-date.mjs} +36 -10
  97. package/fesm2022/ngwr-date.mjs.map +1 -0
  98. package/fesm2022/ngwr-decrypt-text-testing.mjs +261 -0
  99. package/fesm2022/ngwr-decrypt-text-testing.mjs.map +1 -0
  100. package/fesm2022/ngwr-decrypt-text.mjs +9 -4
  101. package/fesm2022/ngwr-decrypt-text.mjs.map +1 -1
  102. package/fesm2022/ngwr-density.mjs +6 -6
  103. package/fesm2022/ngwr-descriptions.mjs +6 -6
  104. package/fesm2022/ngwr-dialog.mjs +73 -18
  105. package/fesm2022/ngwr-dialog.mjs.map +1 -1
  106. package/fesm2022/ngwr-directives.mjs +12 -12
  107. package/fesm2022/ngwr-divider.mjs +52 -5
  108. package/fesm2022/ngwr-divider.mjs.map +1 -1
  109. package/fesm2022/ngwr-donut-chart-testing.mjs +97 -0
  110. package/fesm2022/ngwr-donut-chart-testing.mjs.map +1 -0
  111. package/fesm2022/ngwr-donut-chart.mjs +7 -7
  112. package/fesm2022/ngwr-donut-chart.mjs.map +1 -1
  113. package/fesm2022/ngwr-drag-drop.mjs +160 -11
  114. package/fesm2022/ngwr-drag-drop.mjs.map +1 -1
  115. package/fesm2022/ngwr-drawer.mjs +156 -64
  116. package/fesm2022/ngwr-drawer.mjs.map +1 -1
  117. package/fesm2022/ngwr-dropdown.mjs +58 -12
  118. package/fesm2022/ngwr-dropdown.mjs.map +1 -1
  119. package/fesm2022/ngwr-empty.mjs +3 -3
  120. package/fesm2022/ngwr-event-calendar-testing.mjs +446 -0
  121. package/fesm2022/ngwr-event-calendar-testing.mjs.map +1 -0
  122. package/fesm2022/ngwr-event-calendar.mjs +66 -28
  123. package/fesm2022/ngwr-event-calendar.mjs.map +1 -1
  124. package/fesm2022/ngwr-falling-text-testing.mjs +220 -0
  125. package/fesm2022/ngwr-falling-text-testing.mjs.map +1 -0
  126. package/fesm2022/ngwr-falling-text.mjs +75 -46
  127. package/fesm2022/ngwr-falling-text.mjs.map +1 -1
  128. package/fesm2022/ngwr-file-upload.mjs +3 -3
  129. package/fesm2022/ngwr-form.mjs +32 -15
  130. package/fesm2022/ngwr-form.mjs.map +1 -1
  131. package/fesm2022/ngwr-fuzzy-text-testing.mjs +134 -0
  132. package/fesm2022/ngwr-fuzzy-text-testing.mjs.map +1 -0
  133. package/fesm2022/ngwr-fuzzy-text.mjs +21 -11
  134. package/fesm2022/ngwr-fuzzy-text.mjs.map +1 -1
  135. package/fesm2022/ngwr-gauge-testing.mjs +86 -0
  136. package/fesm2022/ngwr-gauge-testing.mjs.map +1 -0
  137. package/fesm2022/ngwr-gauge.mjs +3 -3
  138. package/fesm2022/ngwr-glitch-text-testing.mjs +215 -0
  139. package/fesm2022/ngwr-glitch-text-testing.mjs.map +1 -0
  140. package/fesm2022/ngwr-glitch-text.mjs +7 -7
  141. package/fesm2022/ngwr-glitch-text.mjs.map +1 -1
  142. package/fesm2022/ngwr-gradient-text-testing.mjs +258 -0
  143. package/fesm2022/ngwr-gradient-text-testing.mjs.map +1 -0
  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 +24 -9
  147. package/fesm2022/ngwr-hotkey.mjs.map +1 -1
  148. package/fesm2022/ngwr-i18n-en.mjs +87 -1
  149. package/fesm2022/ngwr-i18n-en.mjs.map +1 -1
  150. package/fesm2022/ngwr-i18n-ru.mjs +69 -1
  151. package/fesm2022/ngwr-i18n-ru.mjs.map +1 -1
  152. package/fesm2022/ngwr-i18n.mjs +26 -15
  153. package/fesm2022/ngwr-i18n.mjs.map +1 -1
  154. package/fesm2022/ngwr-icon.mjs +6 -6
  155. package/fesm2022/ngwr-image-cropper-testing.mjs +200 -0
  156. package/fesm2022/ngwr-image-cropper-testing.mjs.map +1 -0
  157. package/fesm2022/ngwr-image-cropper.mjs +156 -11
  158. package/fesm2022/ngwr-image-cropper.mjs.map +1 -1
  159. package/fesm2022/ngwr-input-number-testing.mjs +15 -10
  160. package/fesm2022/ngwr-input-number-testing.mjs.map +1 -1
  161. package/fesm2022/ngwr-input-number.mjs +89 -15
  162. package/fesm2022/ngwr-input-number.mjs.map +1 -1
  163. package/fesm2022/ngwr-input-otp-testing.mjs +12 -6
  164. package/fesm2022/ngwr-input-otp-testing.mjs.map +1 -1
  165. package/fesm2022/ngwr-input-otp.mjs +24 -5
  166. package/fesm2022/ngwr-input-otp.mjs.map +1 -1
  167. package/fesm2022/ngwr-input.mjs +15 -15
  168. package/fesm2022/ngwr-keyboard.mjs +3 -3
  169. package/fesm2022/ngwr-knob-testing.mjs +220 -0
  170. package/fesm2022/ngwr-knob-testing.mjs.map +1 -0
  171. package/fesm2022/ngwr-knob.mjs +3 -3
  172. package/fesm2022/ngwr-layout.mjs +15 -15
  173. package/fesm2022/ngwr-lightbox-testing.mjs +223 -0
  174. package/fesm2022/ngwr-lightbox-testing.mjs.map +1 -0
  175. package/fesm2022/ngwr-lightbox.mjs +11 -4
  176. package/fesm2022/ngwr-lightbox.mjs.map +1 -1
  177. package/fesm2022/ngwr-line-chart-testing.mjs +119 -0
  178. package/fesm2022/ngwr-line-chart-testing.mjs.map +1 -0
  179. package/fesm2022/ngwr-line-chart.mjs +73 -26
  180. package/fesm2022/ngwr-line-chart.mjs.map +1 -1
  181. package/fesm2022/ngwr-list.mjs +7 -7
  182. package/fesm2022/ngwr-list.mjs.map +1 -1
  183. package/fesm2022/ngwr-loading-bar.mjs +7 -7
  184. package/fesm2022/ngwr-loading-bar.mjs.map +1 -1
  185. package/fesm2022/ngwr-markdown.mjs +66 -8
  186. package/fesm2022/ngwr-markdown.mjs.map +1 -1
  187. package/fesm2022/ngwr-marquee-testing.mjs +336 -0
  188. package/fesm2022/ngwr-marquee-testing.mjs.map +1 -0
  189. package/fesm2022/ngwr-marquee.mjs +4 -4
  190. package/fesm2022/ngwr-marquee.mjs.map +1 -1
  191. package/fesm2022/ngwr-media.mjs +3 -3
  192. package/fesm2022/ngwr-mention.mjs +108 -13
  193. package/fesm2022/ngwr-mention.mjs.map +1 -1
  194. package/fesm2022/ngwr-meta.mjs +6 -6
  195. package/fesm2022/ngwr-meter-group-testing.mjs +100 -0
  196. package/fesm2022/ngwr-meter-group-testing.mjs.map +1 -0
  197. package/fesm2022/ngwr-meter-group.mjs +3 -3
  198. package/fesm2022/ngwr-overlay.mjs +34 -7
  199. package/fesm2022/ngwr-overlay.mjs.map +1 -1
  200. package/fesm2022/ngwr-page-header.mjs +3 -3
  201. package/fesm2022/ngwr-pagination-testing.mjs +6 -6
  202. package/fesm2022/ngwr-pagination-testing.mjs.map +1 -1
  203. package/fesm2022/ngwr-pagination.mjs +17 -13
  204. package/fesm2022/ngwr-pagination.mjs.map +1 -1
  205. package/fesm2022/ngwr-pipes.mjs +39 -26
  206. package/fesm2022/ngwr-pipes.mjs.map +1 -1
  207. package/fesm2022/ngwr-platform.mjs +9 -9
  208. package/fesm2022/ngwr-popconfirm.mjs +6 -6
  209. package/fesm2022/ngwr-popover-testing.mjs +7 -2
  210. package/fesm2022/ngwr-popover-testing.mjs.map +1 -1
  211. package/fesm2022/ngwr-popover.mjs +169 -33
  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 +3 -3
  215. package/fesm2022/ngwr-qr.mjs +42 -5
  216. package/fesm2022/ngwr-qr.mjs.map +1 -1
  217. package/fesm2022/ngwr-radio.mjs +6 -6
  218. package/fesm2022/ngwr-rating.mjs +3 -3
  219. package/fesm2022/ngwr-result.mjs +21 -30
  220. package/fesm2022/ngwr-result.mjs.map +1 -1
  221. package/fesm2022/ngwr-rotating-text-testing.mjs +220 -0
  222. package/fesm2022/ngwr-rotating-text-testing.mjs.map +1 -0
  223. package/fesm2022/ngwr-rotating-text.mjs +4 -4
  224. package/fesm2022/ngwr-rotating-text.mjs.map +1 -1
  225. package/fesm2022/ngwr-scroll.mjs +3 -3
  226. package/fesm2022/ngwr-segmented-testing.mjs +14 -1
  227. package/fesm2022/ngwr-segmented-testing.mjs.map +1 -1
  228. package/fesm2022/ngwr-segmented.mjs +29 -6
  229. package/fesm2022/ngwr-segmented.mjs.map +1 -1
  230. package/fesm2022/ngwr-select.mjs +227 -43
  231. package/fesm2022/ngwr-select.mjs.map +1 -1
  232. package/fesm2022/ngwr-shiny-text-testing.mjs +237 -0
  233. package/fesm2022/ngwr-shiny-text-testing.mjs.map +1 -0
  234. package/fesm2022/ngwr-shiny-text.mjs +11 -9
  235. package/fesm2022/ngwr-shiny-text.mjs.map +1 -1
  236. package/fesm2022/ngwr-sidebar.mjs +31 -16
  237. package/fesm2022/ngwr-sidebar.mjs.map +1 -1
  238. package/fesm2022/ngwr-skeleton.mjs +3 -3
  239. package/fesm2022/ngwr-slider.mjs +143 -14
  240. package/fesm2022/ngwr-slider.mjs.map +1 -1
  241. package/fesm2022/ngwr-sparkline-testing.mjs +76 -0
  242. package/fesm2022/ngwr-sparkline-testing.mjs.map +1 -0
  243. package/fesm2022/ngwr-sparkline.mjs +3 -3
  244. package/fesm2022/ngwr-speed-dial-testing.mjs +281 -0
  245. package/fesm2022/ngwr-speed-dial-testing.mjs.map +1 -0
  246. package/fesm2022/ngwr-speed-dial.mjs +27 -12
  247. package/fesm2022/ngwr-speed-dial.mjs.map +1 -1
  248. package/fesm2022/ngwr-spinner.mjs +3 -3
  249. package/fesm2022/ngwr-splash-cursor-testing.mjs +89 -0
  250. package/fesm2022/ngwr-splash-cursor-testing.mjs.map +1 -0
  251. package/fesm2022/ngwr-splash-cursor.mjs +3 -3
  252. package/fesm2022/ngwr-split-text-testing.mjs +224 -0
  253. package/fesm2022/ngwr-split-text-testing.mjs.map +1 -0
  254. package/fesm2022/ngwr-split-text.mjs +31 -5
  255. package/fesm2022/ngwr-split-text.mjs.map +1 -1
  256. package/fesm2022/ngwr-splitter-testing.mjs +245 -0
  257. package/fesm2022/ngwr-splitter-testing.mjs.map +1 -0
  258. package/fesm2022/ngwr-splitter.mjs +3 -3
  259. package/fesm2022/ngwr-spotlight-card-testing.mjs +368 -0
  260. package/fesm2022/ngwr-spotlight-card-testing.mjs.map +1 -0
  261. package/fesm2022/ngwr-spotlight-card.mjs +7 -7
  262. package/fesm2022/ngwr-spotlight-card.mjs.map +1 -1
  263. package/fesm2022/ngwr-squircle.mjs +6 -6
  264. package/fesm2022/ngwr-star-border-testing.mjs +172 -0
  265. package/fesm2022/ngwr-star-border-testing.mjs.map +1 -0
  266. package/fesm2022/ngwr-star-border.mjs +4 -4
  267. package/fesm2022/ngwr-star-border.mjs.map +1 -1
  268. package/fesm2022/ngwr-statistic.mjs +9 -9
  269. package/fesm2022/ngwr-stepper-testing.mjs +8 -8
  270. package/fesm2022/ngwr-stepper-testing.mjs.map +1 -1
  271. package/fesm2022/ngwr-stepper.mjs +33 -8
  272. package/fesm2022/ngwr-stepper.mjs.map +1 -1
  273. package/fesm2022/ngwr-storage.mjs +17 -5
  274. package/fesm2022/ngwr-storage.mjs.map +1 -1
  275. package/fesm2022/ngwr-switch.mjs +3 -3
  276. package/fesm2022/ngwr-table.mjs +110 -40
  277. package/fesm2022/ngwr-table.mjs.map +1 -1
  278. package/fesm2022/ngwr-tabs-testing.mjs +11 -10
  279. package/fesm2022/ngwr-tabs-testing.mjs.map +1 -1
  280. package/fesm2022/ngwr-tabs.mjs +51 -11
  281. package/fesm2022/ngwr-tabs.mjs.map +1 -1
  282. package/fesm2022/ngwr-textarea.mjs +3 -3
  283. package/fesm2022/ngwr-theme.mjs +181 -4
  284. package/fesm2022/ngwr-theme.mjs.map +1 -1
  285. package/fesm2022/ngwr-tilt-card-testing.mjs +190 -0
  286. package/fesm2022/ngwr-tilt-card-testing.mjs.map +1 -0
  287. package/fesm2022/ngwr-tilt-card.mjs +26 -8
  288. package/fesm2022/ngwr-tilt-card.mjs.map +1 -1
  289. package/fesm2022/ngwr-timeline.mjs +6 -6
  290. package/fesm2022/ngwr-toast.mjs +44 -15
  291. package/fesm2022/ngwr-toast.mjs.map +1 -1
  292. package/fesm2022/ngwr-toolbar.mjs +3 -3
  293. package/fesm2022/ngwr-tour-testing.mjs +173 -0
  294. package/fesm2022/ngwr-tour-testing.mjs.map +1 -0
  295. package/fesm2022/ngwr-tour.mjs +34 -10
  296. package/fesm2022/ngwr-tour.mjs.map +1 -1
  297. package/fesm2022/ngwr-transfer.mjs +3 -3
  298. package/fesm2022/ngwr-tree.mjs +36 -11
  299. package/fesm2022/ngwr-tree.mjs.map +1 -1
  300. package/fesm2022/ngwr-typewriter-testing.mjs +242 -0
  301. package/fesm2022/ngwr-typewriter-testing.mjs.map +1 -0
  302. package/fesm2022/ngwr-typewriter.mjs +13 -5
  303. package/fesm2022/ngwr-typewriter.mjs.map +1 -1
  304. package/fesm2022/ngwr-typography.mjs +3 -3
  305. package/fesm2022/ngwr-utils.mjs +5 -2
  306. package/fesm2022/ngwr-utils.mjs.map +1 -1
  307. package/fesm2022/ngwr-version.mjs +1 -1
  308. package/fesm2022/ngwr-version.mjs.map +1 -1
  309. package/fesm2022/ngwr-virtual-scroll.mjs +4 -4
  310. package/fesm2022/ngwr-virtual-scroll.mjs.map +1 -1
  311. package/fesm2022/ngwr-waves-testing.mjs +128 -0
  312. package/fesm2022/ngwr-waves-testing.mjs.map +1 -0
  313. package/fesm2022/ngwr-waves.mjs +4 -4
  314. package/fesm2022/ngwr-waves.mjs.map +1 -1
  315. package/fesm2022/ngwr-window-testing.mjs +361 -0
  316. package/fesm2022/ngwr-window-testing.mjs.map +1 -0
  317. package/fesm2022/ngwr-window.mjs +175 -31
  318. package/fesm2022/ngwr-window.mjs.map +1 -1
  319. package/file-upload/styles/_index.scss +2 -2
  320. package/glitch-text/styles/_index.scss +27 -12
  321. package/i18n/en.json +71 -7
  322. package/i18n/ru.json +71 -7
  323. package/image-cropper/styles/_index.scss +19 -0
  324. package/input/styles/_index.scss +2 -2
  325. package/input-number/styles/_index.scss +2 -2
  326. package/input-otp/styles/_index.scss +9 -2
  327. package/knob/styles/_index.scss +1 -1
  328. package/lightbox/styles/_index.scss +16 -2
  329. package/line-chart/styles/_index.scss +28 -14
  330. package/list/styles/_index.scss +1 -1
  331. package/llms-full.txt +161 -19
  332. package/llms.txt +45 -10
  333. package/markdown/styles/_index.scss +3 -3
  334. package/mcp/api.js +6 -4
  335. package/mcp/catalog.js +40 -3
  336. package/mcp/providers.js +42 -0
  337. package/mcp/tools.js +22 -30
  338. package/meter-group/styles/_index.scss +1 -1
  339. package/overlay/styles/_index.scss +33 -1
  340. package/package.json +161 -12
  341. package/pagination/styles/_index.scss +23 -1
  342. package/popover/styles/_index.scss +16 -7
  343. package/progress/styles/_index.scss +1 -1
  344. package/radio/styles/_index.scss +2 -2
  345. package/rating/styles/_index.scss +1 -1
  346. package/schematics/collection.json +1 -1
  347. package/schematics/migrations/v12/index.js +65 -0
  348. package/schematics/migrations/v7/index.js +12 -1
  349. package/schematics/migrations/v8/index.js +10 -1
  350. package/schematics/migrations.json +5 -0
  351. package/schematics/ng-add/index.js +8 -3
  352. package/schematics/provider/index.js +80 -13
  353. package/schematics/use/index.js +9 -129
  354. package/schematics/use/rule.js +206 -0
  355. package/schematics/use/symbol-map.json +4 -4
  356. package/segmented/styles/_index.scss +14 -3
  357. package/select/styles/_index.scss +14 -2
  358. package/sidebar/styles/_index.scss +12 -10
  359. package/skills/ngwr/SKILL.md +117 -0
  360. package/skills/ngwr/references/catalog.md +212 -0
  361. package/skills/ngwr/references/setup.md +78 -0
  362. package/slider/styles/_index.scss +1 -1
  363. package/speed-dial/styles/_index.scss +1 -1
  364. package/stepper/styles/_index.scss +12 -3
  365. package/switch/styles/_index.scss +2 -2
  366. package/table/styles/_index.scss +61 -12
  367. package/tabs/styles/_index.scss +1 -1
  368. package/textarea/styles/_index.scss +1 -1
  369. package/theme/styles/_colors.scss +142 -56
  370. package/theme/styles/_dark.scss +46 -3
  371. package/theme/styles/_focus.scss +28 -5
  372. package/theme/styles/_mixins.scss +1 -1
  373. package/theme/styles/_variables.scss +67 -0
  374. package/transfer/styles/_index.scss +26 -3
  375. package/tree/styles/_index.scss +29 -6
  376. package/types/ngwr-action-sheet-testing.d.ts +260 -0
  377. package/types/ngwr-bar-chart-testing.d.ts +85 -0
  378. package/types/ngwr-blur-text-testing.d.ts +180 -0
  379. package/types/ngwr-blur-text.d.ts +20 -4
  380. package/types/ngwr-border-glow-testing.d.ts +219 -0
  381. package/types/ngwr-breadcrumbs.d.ts +17 -10
  382. package/types/ngwr-calendar-heatmap-testing.d.ts +79 -0
  383. package/types/ngwr-calendar-testing.d.ts +277 -0
  384. package/types/ngwr-calendar.d.ts +76 -0
  385. package/types/ngwr-carousel.d.ts +85 -6
  386. package/types/ngwr-cascader.d.ts +17 -0
  387. package/types/ngwr-checkbox.d.ts +13 -0
  388. package/types/ngwr-circular-text-testing.d.ts +196 -0
  389. package/types/ngwr-click-spark.d.ts +4 -0
  390. package/types/ngwr-color-picker-testing.d.ts +299 -0
  391. package/types/ngwr-color-picker.d.ts +34 -2
  392. package/types/ngwr-confetti.d.ts +8 -0
  393. package/types/ngwr-config.d.ts +10 -1
  394. package/types/ngwr-context-menu-testing.d.ts +24 -11
  395. package/types/ngwr-context-menu.d.ts +71 -1
  396. package/types/ngwr-counter.d.ts +1 -0
  397. package/types/{ngwr-date-adapter-fns.d.ts → ngwr-date-adapters-fns.d.ts} +33 -6
  398. package/types/{ngwr-date-adapter-luxon.d.ts → ngwr-date-adapters-luxon.d.ts} +1 -1
  399. package/types/ngwr-date-picker-testing.d.ts +17 -72
  400. package/types/ngwr-date-picker.d.ts +8 -4
  401. package/types/{ngwr-date-adapter.d.ts → ngwr-date.d.ts} +24 -5
  402. package/types/ngwr-decrypt-text-testing.d.ts +222 -0
  403. package/types/ngwr-dialog.d.ts +38 -1
  404. package/types/ngwr-divider.d.ts +25 -0
  405. package/types/ngwr-donut-chart-testing.d.ts +83 -0
  406. package/types/ngwr-donut-chart.d.ts +3 -3
  407. package/types/ngwr-drag-drop.d.ts +56 -2
  408. package/types/ngwr-drawer.d.ts +68 -5
  409. package/types/ngwr-dropdown.d.ts +9 -0
  410. package/types/ngwr-event-calendar-testing.d.ts +301 -0
  411. package/types/ngwr-event-calendar.d.ts +17 -8
  412. package/types/ngwr-falling-text-testing.d.ts +188 -0
  413. package/types/ngwr-falling-text.d.ts +1 -1
  414. package/types/ngwr-form.d.ts +12 -2
  415. package/types/ngwr-fuzzy-text-testing.d.ts +130 -0
  416. package/types/ngwr-gauge-testing.d.ts +71 -0
  417. package/types/ngwr-glitch-text-testing.d.ts +201 -0
  418. package/types/ngwr-gradient-text-testing.d.ts +186 -0
  419. package/types/ngwr-i18n.d.ts +13 -4
  420. package/types/ngwr-image-cropper-testing.d.ts +173 -0
  421. package/types/ngwr-image-cropper.d.ts +71 -5
  422. package/types/ngwr-input-number-testing.d.ts +15 -10
  423. package/types/ngwr-input-number.d.ts +44 -5
  424. package/types/ngwr-input-otp-testing.d.ts +12 -6
  425. package/types/ngwr-input-otp.d.ts +15 -1
  426. package/types/ngwr-knob-testing.d.ts +150 -0
  427. package/types/ngwr-lightbox-testing.d.ts +154 -0
  428. package/types/ngwr-lightbox.d.ts +6 -0
  429. package/types/ngwr-line-chart-testing.d.ts +93 -0
  430. package/types/ngwr-line-chart.d.ts +20 -3
  431. package/types/ngwr-markdown.d.ts +11 -0
  432. package/types/ngwr-marquee-testing.d.ts +280 -0
  433. package/types/ngwr-mention.d.ts +32 -0
  434. package/types/ngwr-meter-group-testing.d.ts +77 -0
  435. package/types/ngwr-overlay.d.ts +20 -1
  436. package/types/ngwr-pagination-testing.d.ts +4 -4
  437. package/types/ngwr-pipes.d.ts +1 -1
  438. package/types/ngwr-popover-testing.d.ts +7 -2
  439. package/types/ngwr-popover.d.ts +1 -0
  440. package/types/ngwr-result.d.ts +6 -0
  441. package/types/ngwr-rotating-text-testing.d.ts +191 -0
  442. package/types/ngwr-segmented-testing.d.ts +9 -0
  443. package/types/ngwr-segmented.d.ts +21 -1
  444. package/types/ngwr-select.d.ts +100 -6
  445. package/types/ngwr-shiny-text-testing.d.ts +165 -0
  446. package/types/ngwr-shiny-text.d.ts +4 -2
  447. package/types/ngwr-sidebar.d.ts +14 -5
  448. package/types/ngwr-slider.d.ts +84 -1
  449. package/types/ngwr-sparkline-testing.d.ts +69 -0
  450. package/types/ngwr-speed-dial-testing.d.ts +199 -0
  451. package/types/ngwr-speed-dial.d.ts +22 -3
  452. package/types/ngwr-splash-cursor-testing.d.ts +95 -0
  453. package/types/ngwr-split-text-testing.d.ts +209 -0
  454. package/types/ngwr-split-text.d.ts +21 -0
  455. package/types/ngwr-splitter-testing.d.ts +174 -0
  456. package/types/ngwr-spotlight-card-testing.d.ts +303 -0
  457. package/types/ngwr-star-border-testing.d.ts +135 -0
  458. package/types/ngwr-stepper-testing.d.ts +5 -5
  459. package/types/ngwr-stepper.d.ts +8 -0
  460. package/types/ngwr-storage.d.ts +1 -0
  461. package/types/ngwr-table.d.ts +114 -12
  462. package/types/ngwr-tabs-testing.d.ts +11 -10
  463. package/types/ngwr-tabs.d.ts +2 -0
  464. package/types/ngwr-theme.d.ts +82 -1
  465. package/types/ngwr-tilt-card-testing.d.ts +158 -0
  466. package/types/ngwr-tilt-card.d.ts +2 -0
  467. package/types/ngwr-toast.d.ts +14 -5
  468. package/types/ngwr-tour-testing.d.ts +143 -0
  469. package/types/ngwr-tour.d.ts +22 -4
  470. package/types/ngwr-tree.d.ts +12 -4
  471. package/types/ngwr-typewriter-testing.d.ts +211 -0
  472. package/types/ngwr-utils.d.ts +5 -2
  473. package/types/ngwr-version.d.ts +1 -1
  474. package/types/ngwr-waves-testing.d.ts +121 -0
  475. package/types/ngwr-window-testing.d.ts +263 -0
  476. package/types/ngwr-window.d.ts +66 -21
  477. package/typography/styles/_index.scss +1 -1
  478. package/window/styles/_index.scss +116 -42
  479. package/fesm2022/ngwr-date-adapter-fns.mjs.map +0 -1
  480. package/fesm2022/ngwr-date-adapter-luxon.mjs.map +0 -1
  481. package/fesm2022/ngwr-date-adapter.mjs.map +0 -1
@@ -0,0 +1,263 @@
1
+ import { BaseHarnessFilters, ContentContainerComponentHarness, HarnessPredicate, ComponentHarness } from '@angular/cdk/testing';
2
+ import { WrWindowState } from 'ngwr/window';
3
+
4
+ /**
5
+ * @license
6
+ *
7
+ * Use of this source code is governed by an MIT-style license that can be
8
+ * found in the LICENSE file at https://github.com/thekhegay/ngwr/blob/main/LICENSE
9
+ */
10
+
11
+ /** Narrows which `<wr-window>` a harness query matches. */
12
+ interface WrWindowHarnessFilters extends BaseHarnessFilters {
13
+ /** Match the title-bar text — a string is an exact match, a RegExp is tested. */
14
+ readonly title?: string | RegExp;
15
+ /** Match windows in one visual state. */
16
+ readonly state?: WrWindowState;
17
+ }
18
+ /** Narrows which `<wr-window-taskbar>` a harness query matches. */
19
+ interface WrWindowTaskbarHarnessFilters extends BaseHarnessFilters {
20
+ /** Match the edge the taskbar is pinned to. */
21
+ readonly position?: 'top' | 'bottom';
22
+ }
23
+ /**
24
+ * Where a window is and how big, in CSS pixels — the numbers the component writes
25
+ * inline, not a measured box.
26
+ */
27
+ interface WrWindowBox {
28
+ readonly x: number;
29
+ readonly y: number;
30
+ readonly width: number;
31
+ readonly height: number;
32
+ }
33
+
34
+ /**
35
+ * @license
36
+ *
37
+ * Use of this source code is governed by an MIT-style license that can be
38
+ * found in the LICENSE file at https://github.com/thekhegay/ngwr/blob/main/LICENSE
39
+ */
40
+
41
+ /**
42
+ * Test harness for a window opened through `WrWindowManager.open()`.
43
+ *
44
+ * `WrWindow` is deliberately not exported — a window is always a service call — so
45
+ * there is nothing in your fixture to load: each window is a portal in its own
46
+ * overlay pane, and this comes from
47
+ * `TestbedHarnessEnvironment.documentRootLoader()`.
48
+ *
49
+ * It is a CONTENT CONTAINER, like `WrDialogHarness`: the component you opened is
50
+ * projected into the window's body, so `window.getHarness(WrButtonHarness…)` reads
51
+ * ITS buttons and cannot reach another window's. That matters more here than
52
+ * anywhere else, because windows are explicitly non-modal and several are normally
53
+ * open at once.
54
+ *
55
+ * **Geometry is read from the inline styles the component writes**, never measured:
56
+ * a window is positioned with `left` / `top` / `width` / `height` in pixels, and a
57
+ * unit test has no layout to measure. That also makes {@link getBox} the way to
58
+ * assert a move or a resize — including the ones a drag would produce, which no
59
+ * synthetic pointer event can, since the drag divides by a rect that is 0×0 here.
60
+ *
61
+ * @example
62
+ * ```ts
63
+ * const rootLoader = TestbedHarnessEnvironment.documentRootLoader(fixture);
64
+ * windows.open(EditorComponent, { title: 'Untitled.md' });
65
+ * await fixture.whenStable();
66
+ *
67
+ * const win = await rootLoader.getHarness(WrWindowHarness.with({ title: 'Untitled.md' }));
68
+ * await win.maximize();
69
+ * expect(await win.getState()).toBe('maximized');
70
+ * ```
71
+ *
72
+ * @see https://ngwr.dev/guides/testing
73
+ */
74
+ declare class WrWindowHarness extends ContentContainerComponentHarness {
75
+ static hostSelector: string;
76
+ /** Build a predicate that narrows the query — windows come in stacks. */
77
+ static with(options?: WrWindowHarnessFilters): HarnessPredicate<WrWindowHarness>;
78
+ private readonly titleEl;
79
+ /**
80
+ * Whether this window is still on the page.
81
+ *
82
+ * For a harness you are already HOLDING: closing disposes the overlay, so this
83
+ * flips to `false` where a fresh `getHarnessOrNull()` comes back `null`. A
84
+ * MINIMIZED window is still open — it is a state, not a dismissal — and this
85
+ * stays `true` for one.
86
+ */
87
+ isOpen(): Promise<boolean>;
88
+ /** The title-bar text. */
89
+ getTitle(): Promise<string>;
90
+ /** The projected `[wrWindowTitleExtra]` content, trimmed — empty when there is none. */
91
+ getTitleExtraText(): Promise<string>;
92
+ /** The window's visual state, from the host modifier. */
93
+ getState(): Promise<WrWindowState>;
94
+ /**
95
+ * The OS the chrome is dressed as — `macos`, `windows` or `linux`.
96
+ *
97
+ * Worth asserting because it is not cosmetic: on macOS the buttons are a
98
+ * traffic-light cluster in close → minimize → maximize order, and the Linux
99
+ * chrome renders neither minimize nor maximize UNLESS `showMinimize` /
100
+ * `showMaximize` asks for them. "No minimize on Linux" is a default, not an
101
+ * invariant — see {@link hasMinimizeButton}.
102
+ */
103
+ getOs(): Promise<string>;
104
+ /** The title-bar density — `normal` or `compact`. */
105
+ getChromeSize(): Promise<string>;
106
+ /**
107
+ * Where the window is and how big, in CSS pixels.
108
+ *
109
+ * From the inline styles the component writes, which is the only readable answer
110
+ * without layout — and the same numbers a drag or a snap would change.
111
+ */
112
+ getBox(): Promise<WrWindowBox>;
113
+ /**
114
+ * The window's stacking order.
115
+ *
116
+ * The manager hands out a z-index per focus, so this is how a spec asserts that
117
+ * clicking a window brought it to the front — the one thing a window manager
118
+ * exists to do, and the reason these panes are deliberately kept OUT of the
119
+ * browser's top layer, which orders strictly by entry.
120
+ */
121
+ getZIndex(): Promise<number>;
122
+ /** Whether the resize handles are rendered — `resizable`, and only in the normal state. */
123
+ isResizable(): Promise<boolean>;
124
+ /** The resize handles currently rendered, by their edge / corner suffix. */
125
+ getResizeHandles(): Promise<string[]>;
126
+ /** The body text of the window — the component you opened, as rendered. */
127
+ getBodyText(): Promise<string>;
128
+ /** The projected `[wrWindowStatusBar]` content, trimmed. */
129
+ getStatusBarText(): Promise<string>;
130
+ /** Whether the chrome offers a close button (`showClose`). */
131
+ hasCloseButton(): Promise<boolean>;
132
+ /**
133
+ * Whether the chrome offers a minimize button.
134
+ *
135
+ * `false` on Linux BY DEFAULT — that chrome is close-only by convention, which
136
+ * is a real behavioural difference and not a style. `showMinimize: true`
137
+ * overrides it, and a spec that asserts "no minimize on Linux" without saying
138
+ * which of the two it means will pass for the wrong reason.
139
+ */
140
+ hasMinimizeButton(): Promise<boolean>;
141
+ /** Whether the chrome offers a maximize button. Also `false` on Linux by default. */
142
+ hasMaximizeButton(): Promise<boolean>;
143
+ /** The close button's accessible name — the buttons are icon-only, so it is their only name. */
144
+ getCloseLabel(): Promise<string | null>;
145
+ /**
146
+ * The minimize button's accessible name, which flips to the restore wording while
147
+ * the window is minimized — the same button does both.
148
+ */
149
+ getMinimizeLabel(): Promise<string | null>;
150
+ /** The maximize button's accessible name, which flips while the window is maximized. */
151
+ getMaximizeLabel(): Promise<string | null>;
152
+ /** Click the close button. Throws on a window opened `showClose: false`. */
153
+ close(): Promise<void>;
154
+ /**
155
+ * Click the minimize button — which RESTORES a minimized window, since it is the
156
+ * same control.
157
+ */
158
+ minimize(): Promise<void>;
159
+ /** Click the maximize button — which restores a maximized window down. */
160
+ maximize(): Promise<void>;
161
+ /**
162
+ * Double-click the title bar, the other way to maximize.
163
+ *
164
+ * A separate gesture worth its own assertion, and it does NOT follow the
165
+ * button: only an explicit `showMaximize: false` turns it off. The Linux
166
+ * chrome hides the button by convention and keeps the gesture — which is also
167
+ * the only way out of a window that reached `maximized` without one.
168
+ */
169
+ doubleClickChrome(): Promise<void>;
170
+ /** Click the window body — which pulls it to the front of the stack. */
171
+ focusWindow(): Promise<void>;
172
+ /** Press Escape. A window opened `closeOnEscape: false` ignores it — assert, do not assume. */
173
+ sendEscape(): Promise<void>;
174
+ /** The role the window announces — `dialog`, on a non-modal window. */
175
+ getRole(): Promise<string | null>;
176
+ /**
177
+ * Whether the window takes its accessible name from its own title element.
178
+ *
179
+ * Resolved rather than trusted: `aria-labelledby` naming an element that is not
180
+ * this window's title is not a name, and with several windows open the ids are
181
+ * the only thing keeping them apart.
182
+ */
183
+ isLabelledByTitle(): Promise<boolean>;
184
+ /** Whether the window is hidden from assistive tech (`aria-hidden`, set while closed). */
185
+ isHiddenFromAssistiveTech(): Promise<boolean>;
186
+ private chromeAction;
187
+ private requireAction;
188
+ }
189
+
190
+ /**
191
+ * @license
192
+ *
193
+ * Use of this source code is governed by an MIT-style license that can be
194
+ * found in the LICENSE file at https://github.com/thekhegay/ngwr/blob/main/LICENSE
195
+ */
196
+
197
+ /**
198
+ * Test harness for `<wr-window-taskbar>` — the rail of minimized windows.
199
+ *
200
+ * The taskbar IS an element in your template, so it comes from the normal fixture
201
+ * loader, unlike the windows it lists. It renders nothing but its own host until a
202
+ * window is minimized; {@link isEmpty} is the question, and {@link getTabTitles}
203
+ * answers `[]` rather than throwing, because "no minimized windows" is the ordinary
204
+ * state rather than a mistake.
205
+ *
206
+ * @example
207
+ * ```ts
208
+ * const taskbar = await loader.getHarness(WrWindowTaskbarHarness);
209
+ *
210
+ * await (await rootLoader.getHarness(WrWindowHarness)).minimize();
211
+ * expect(await taskbar.getTabTitles()).toEqual(['Untitled.md']);
212
+ * await taskbar.restore('Untitled.md');
213
+ * ```
214
+ *
215
+ * @see https://ngwr.dev/guides/testing
216
+ */
217
+ declare class WrWindowTaskbarHarness extends ComponentHarness {
218
+ static hostSelector: string;
219
+ /** Build a predicate that narrows the query. */
220
+ static with(options?: WrWindowTaskbarHarnessFilters): HarnessPredicate<WrWindowTaskbarHarness>;
221
+ /** The edge the rail is pinned to. */
222
+ getPosition(): Promise<'top' | 'bottom'>;
223
+ /**
224
+ * The rail's accessible name — it is a `role="toolbar"`, and an unnamed one is
225
+ * announced as nothing.
226
+ */
227
+ getRailLabel(): Promise<string | null>;
228
+ /** Whether nothing is minimized — the rail draws no markup at all then. */
229
+ isEmpty(): Promise<boolean>;
230
+ /**
231
+ * The titles in the rail, in order.
232
+ *
233
+ * A window opened without a title still gets a tab, named by the catalog's
234
+ * fallback rather than left blank — a nameless tab is unreachable by voice and
235
+ * indistinguishable from its neighbours.
236
+ */
237
+ getTabTitles(): Promise<string[]>;
238
+ /** A tab's accessible name — the restore wording with the window's title in it. */
239
+ getRestoreLabel(title: string): Promise<string | null>;
240
+ /** Click a tab — restoring that window and focusing it. */
241
+ restore(title: string): Promise<void>;
242
+ /**
243
+ * Click a tab's ✕ — closing the window WITHOUT restoring it.
244
+ *
245
+ * Still worth asserting separately now that the two are siblings rather than
246
+ * nested: they sit inside one pill and look like one control, so a close that
247
+ * also restored would flash a closing window's content and look plausible.
248
+ */
249
+ closeTab(title: string): Promise<void>;
250
+ /**
251
+ * The tab's BUTTON, not the pill around it.
252
+ *
253
+ * `.wr-window-taskbar__tab` is a plain container — it carries the pill's look
254
+ * and nothing else, because the close beside it cannot be a control nested in
255
+ * a control. The name and the click both belong to `__tab-restore`.
256
+ */
257
+ private requireTab;
258
+ /** Which tab carries this title — one lookup for both the tab and its close button. */
259
+ private indexOf;
260
+ }
261
+
262
+ export { WrWindowHarness, WrWindowTaskbarHarness };
263
+ export type { WrWindowBox, WrWindowHarnessFilters, WrWindowTaskbarHarnessFilters };
@@ -1,8 +1,9 @@
1
- import * as i0 from '@angular/core';
1
+ import * as _angular_core from '@angular/core';
2
2
  import { ComponentRef, WritableSignal, Signal, InjectionToken } from '@angular/core';
3
3
  import { OverlayRef } from '@angular/cdk/overlay';
4
4
  import { ReplaySubject, Subject } from 'rxjs';
5
5
  import { ComponentType } from '@angular/cdk/portal';
6
+ import * as ngwr_i18n from 'ngwr/i18n';
6
7
 
7
8
  /**
8
9
  * @license
@@ -35,8 +36,10 @@ type WrWindowChromeSize = 'compact' | 'normal';
35
36
  * - `macos` — traffic-light dots on the LEFT (red close, yellow minimize,
36
37
  * green maximize). Glyphs (×, −, +) appear when the cluster is hovered.
37
38
  * - `windows` — monochrome glyph buttons on the RIGHT.
38
- * - `linux` — close-only on the right; minimize / maximize hidden unless
39
- * explicitly requested.
39
+ * - `linux` — close-only on the right, the GNOME convention. That is a DEFAULT
40
+ * and not a rule: `showMinimize` / `showMaximize` set to `true` put the
41
+ * buttons back, which is what a Linux user needs before a window can be
42
+ * minimized into `<wr-window-taskbar>`.
40
43
  */
41
44
  type WrWindowOs = 'auto' | 'macos' | 'windows' | 'linux';
42
45
 
@@ -129,8 +132,16 @@ interface WrWindowConfig<D = unknown> {
129
132
  readonly closeOnEscape?: boolean;
130
133
  /** Snap-on-drag mode. @default 'none' */
131
134
  readonly snap?: WrWindowSnap;
135
+ /**
136
+ * Show the minimize control. Omit to follow the chrome — every OS but Linux
137
+ * shows it, and the Linux preset is close-only by convention. Pass `true` to
138
+ * override that, which is what a Linux user needs before a window can reach
139
+ * `<wr-window-taskbar>`.
140
+ */
132
141
  readonly showMinimize?: boolean;
142
+ /** Show the maximize control. Omit to follow the chrome, as with {@link showMinimize}. */
133
143
  readonly showMaximize?: boolean;
144
+ /** Show the close control. Every chrome closes, so this is not per-OS. */
134
145
  readonly showClose?: boolean;
135
146
  /** Show in `<wr-window-taskbar>` when minimized. @default true */
136
147
  readonly taskbar?: boolean;
@@ -155,6 +166,31 @@ interface WrWindowConfig<D = unknown> {
155
166
  */
156
167
  type WrWindowState = 'normal' | 'minimized' | 'maximized';
157
168
 
169
+ /**
170
+ * @license
171
+ *
172
+ * Use of this source code is governed by an MIT-style license that can be
173
+ * found in the LICENSE file at https://github.com/thekhegay/ngwr/blob/main/LICENSE
174
+ */
175
+
176
+ /**
177
+ * One window as `WrWindowManager.saveLayout()` recorded it — the geometry the
178
+ * window really had, not the geometry it happens to be showing while maximized
179
+ * or minimized.
180
+ *
181
+ * Public because `readLayout()` returns an array of these; a consumer that
182
+ * stores or forwards that result has to be able to name the element type.
183
+ */
184
+ interface WrWindowLayoutSnapshot {
185
+ readonly id: string;
186
+ readonly state: WrWindowState;
187
+ readonly x: number;
188
+ readonly y: number;
189
+ readonly width: number;
190
+ readonly height: number;
191
+ readonly title: string;
192
+ }
193
+
158
194
  /** Hook signature for `WrWindowRef.beforeClose()`. Return falsy to veto. */
159
195
  type WrWindowBeforeCloseHook<R> = (result: R | undefined) => boolean | Promise<boolean>;
160
196
 
@@ -261,6 +297,7 @@ declare class WrWindowRef<C, R = unknown> {
261
297
  constructor(id: string, _overlayRef: OverlayRef);
262
298
  /** Resolved instance of the projected component. */
263
299
  get componentInstance(): C;
300
+ private isClosed;
264
301
  /**
265
302
  * Close the window, optionally returning a result. If a `beforeClose`
266
303
  * hook is registered it is consulted first — a falsy resolution
@@ -304,15 +341,6 @@ declare const WR_WINDOW_REF: InjectionToken<WrWindowRef<unknown, unknown>>;
304
341
  /** Resolves to the `data` passed in `WrWindowConfig.data`. */
305
342
  declare const WR_WINDOW_DATA: InjectionToken<unknown>;
306
343
 
307
- interface RestoreSnapshot {
308
- readonly id: string;
309
- readonly state: WrWindowState;
310
- readonly x: number;
311
- readonly y: number;
312
- readonly width: number;
313
- readonly height: number;
314
- readonly title: string;
315
- }
316
344
  /**
317
345
  * Owns the open `<wr-window>` stack, hands out z-indexes, cascades the
318
346
  * default spawn position, and opens programmatic windows that wrap a
@@ -377,6 +405,17 @@ declare class WrWindowManager {
377
405
  * "Settings" menu item that should always re-focus the same window).
378
406
  */
379
407
  open<C, R = unknown, D = unknown>(component: ComponentType<C>, config?: WrWindowConfig<D>): WrWindowRef<C, R>;
408
+ /**
409
+ * Whether a keyboard event routed to `ref`'s overlay is actually meant for it.
410
+ *
411
+ * The window holding real DOM focus owns the key. When focus is outside every
412
+ * window — the common case, since a window is not modal and traps nothing —
413
+ * the FRONT-most one does, by the manager's own z stack rather than by attach
414
+ * order. A tie (nothing has ever been focused, so no z has been handed out
415
+ * yet) leaves every window willing, and the dispatcher's newest-first walk
416
+ * settles it as before.
417
+ */
418
+ private ownsKeyboard;
380
419
  /** Close every programmatically-opened window. */
381
420
  closeAll(): void;
382
421
  /** Look up an open window by its `config.id`. Returns `null` when no match. */
@@ -395,7 +434,7 @@ declare class WrWindowManager {
395
434
  */
396
435
  saveLayout(name: string): void;
397
436
  /** Read a saved workspace. Returns `null` when no snapshot is found. */
398
- readLayout(name: string): readonly RestoreSnapshot[] | null;
437
+ readLayout(name: string): readonly WrWindowLayoutSnapshot[] | null;
399
438
  /**
400
439
  * Apply a saved workspace.
401
440
  *
@@ -420,8 +459,8 @@ declare class WrWindowManager {
420
459
  private applyRestore;
421
460
  /** Drop a saved workspace. */
422
461
  clearLayout(name: string): void;
423
- static ɵfac: i0.ɵɵFactoryDeclaration<WrWindowManager, never>;
424
- static ɵprov: i0.ɵɵInjectableDeclaration<WrWindowManager>;
462
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<WrWindowManager, never>;
463
+ static ɵprov: _angular_core.ɵɵInjectableDeclaration<WrWindowManager>;
425
464
  }
426
465
 
427
466
  /**
@@ -442,17 +481,23 @@ declare class WrWindowManager {
442
481
  * @see https://ngwr.dev/reference/components/window
443
482
  */
444
483
  declare class WrWindowTaskbar {
484
+ /** @internal */ protected readonly railLabel: _angular_core.Signal<string>;
485
+ /** @internal */ protected readonly closeLabel: _angular_core.Signal<string>;
486
+ /** @internal */ protected readonly untitled: _angular_core.Signal<string>;
487
+ /** @internal */ protected readonly restoreLabel: (params?: ngwr_i18n.WrI18nParams) => string;
445
488
  /** Edge the taskbar pins itself to. @default 'bottom' */
446
- readonly position: i0.InputSignal<"top" | "bottom">;
489
+ readonly position: _angular_core.InputSignal<"top" | "bottom">;
447
490
  private readonly manager;
448
491
  /** @internal — minimized windows that haven't opted out via `taskbar: false`. */
449
- protected readonly items: i0.Signal<WrWindowRef<unknown, unknown>[]>;
450
- protected readonly classes: i0.Signal<string>;
492
+ protected readonly items: _angular_core.Signal<WrWindowRef<unknown, unknown>[]>;
493
+ protected readonly classes: _angular_core.Signal<string>;
494
+ /** A window with no title still needs a name in the rail. */
495
+ protected tabTitle(ref: WrWindowRef<unknown, unknown>): string;
451
496
  protected restore(ref: WrWindowRef<unknown, unknown>): void;
452
497
  protected close(ref: WrWindowRef<unknown, unknown>, event: Event): void;
453
- static ɵfac: i0.ɵɵFactoryDeclaration<WrWindowTaskbar, never>;
454
- static ɵcmp: i0.ɵɵComponentDeclaration<WrWindowTaskbar, "wr-window-taskbar", never, { "position": { "alias": "position"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
498
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<WrWindowTaskbar, never>;
499
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<WrWindowTaskbar, "wr-window-taskbar", never, { "position": { "alias": "position"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
455
500
  }
456
501
 
457
502
  export { WR_WINDOW_DATA, WR_WINDOW_REF, WrWindowManager, WrWindowRef, WrWindowTaskbar };
458
- export type { WrWindowBeforeCloseHook, WrWindowChromeSize, WrWindowConfig, WrWindowOs, WrWindowPersistMode, WrWindowSize, WrWindowSnap, WrWindowState, WrWindowStorageConfig };
503
+ export type { WrWindowBeforeCloseHook, WrWindowChromeSize, WrWindowConfig, WrWindowLayoutSnapshot, WrWindowOs, WrWindowPersistMode, WrWindowSize, WrWindowSnap, WrWindowState, WrWindowStorageConfig };
@@ -86,7 +86,7 @@
86
86
 
87
87
  &--code {
88
88
  padding: 0.0625rem 0.375rem;
89
- background: rgba(var(--wr-color-outline-rgb), 0.6);
89
+ background: var(--wr-color-fill-strong);
90
90
  border-radius: var(--wr-border-radius-sm);
91
91
  font-size: 0.875em;
92
92
  }