ngwr 14.7.0 → 14.9.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 (482) hide show
  1. package/README.md +66 -332
  2. package/alert/styles/_index.scss +10 -0
  3. package/avatar/styles/_index.scss +18 -7
  4. package/badge/styles/_index.scss +7 -0
  5. package/badge/styles/_tag.scss +7 -1
  6. package/bar-chart/styles/_index.scss +1 -0
  7. package/button/styles/_index.scss +6 -0
  8. package/calendar-heatmap/styles/_index.scss +1 -0
  9. package/cascader/styles/_rules.scss +87 -15
  10. package/checkbox/styles/_index.scss +4 -0
  11. package/command-palette/styles/_index.scss +1 -1
  12. package/date-picker/styles/_index.scss +30 -0
  13. package/density/styles/_index.scss +4 -2
  14. package/divider/styles/_index.scss +2 -0
  15. package/donut-chart/styles/_index.scss +10 -0
  16. package/dropdown/styles/_index.scss +67 -5
  17. package/editor/styles/_index.scss +441 -0
  18. package/event-calendar/styles/_index.scss +209 -35
  19. package/fesm2022/ngwr-action-sheet-testing.mjs.map +1 -1
  20. package/fesm2022/ngwr-action-sheet.mjs +3 -3
  21. package/fesm2022/ngwr-action-sheet.mjs.map +1 -1
  22. package/fesm2022/ngwr-affix.mjs +3 -3
  23. package/fesm2022/ngwr-affix.mjs.map +1 -1
  24. package/fesm2022/ngwr-alert.mjs +3 -3
  25. package/fesm2022/ngwr-alert.mjs.map +1 -1
  26. package/fesm2022/ngwr-anchor.mjs +3 -3
  27. package/fesm2022/ngwr-anchor.mjs.map +1 -1
  28. package/fesm2022/ngwr-aurora.mjs +3 -3
  29. package/fesm2022/ngwr-aurora.mjs.map +1 -1
  30. package/fesm2022/ngwr-avatar.mjs +3 -3
  31. package/fesm2022/ngwr-avatar.mjs.map +1 -1
  32. package/fesm2022/ngwr-back-top.mjs +3 -3
  33. package/fesm2022/ngwr-back-top.mjs.map +1 -1
  34. package/fesm2022/ngwr-badge.mjs +28 -13
  35. package/fesm2022/ngwr-badge.mjs.map +1 -1
  36. package/fesm2022/ngwr-bar-chart-testing.mjs.map +1 -1
  37. package/fesm2022/ngwr-bar-chart.mjs +31 -6
  38. package/fesm2022/ngwr-bar-chart.mjs.map +1 -1
  39. package/fesm2022/ngwr-blur-text-testing.mjs.map +1 -1
  40. package/fesm2022/ngwr-blur-text.mjs +3 -3
  41. package/fesm2022/ngwr-blur-text.mjs.map +1 -1
  42. package/fesm2022/ngwr-border-glow-testing.mjs.map +1 -1
  43. package/fesm2022/ngwr-border-glow.mjs +3 -3
  44. package/fesm2022/ngwr-border-glow.mjs.map +1 -1
  45. package/fesm2022/ngwr-breadcrumbs.mjs +6 -6
  46. package/fesm2022/ngwr-breadcrumbs.mjs.map +1 -1
  47. package/fesm2022/ngwr-burger.mjs +3 -3
  48. package/fesm2022/ngwr-burger.mjs.map +1 -1
  49. package/fesm2022/ngwr-button-testing.mjs.map +1 -1
  50. package/fesm2022/ngwr-button.mjs +6 -6
  51. package/fesm2022/ngwr-button.mjs.map +1 -1
  52. package/fesm2022/ngwr-calendar-heatmap-testing.mjs.map +1 -1
  53. package/fesm2022/ngwr-calendar-heatmap.mjs +61 -6
  54. package/fesm2022/ngwr-calendar-heatmap.mjs.map +1 -1
  55. package/fesm2022/ngwr-calendar-testing.mjs.map +1 -1
  56. package/fesm2022/ngwr-calendar.mjs +3 -3
  57. package/fesm2022/ngwr-calendar.mjs.map +1 -1
  58. package/fesm2022/ngwr-card.mjs +9 -9
  59. package/fesm2022/ngwr-card.mjs.map +1 -1
  60. package/fesm2022/ngwr-carousel-testing.mjs.map +1 -1
  61. package/fesm2022/ngwr-carousel.mjs +6 -6
  62. package/fesm2022/ngwr-carousel.mjs.map +1 -1
  63. package/fesm2022/ngwr-cascader-testing.mjs.map +1 -1
  64. package/fesm2022/ngwr-cascader.mjs +4 -4
  65. package/fesm2022/ngwr-cascader.mjs.map +1 -1
  66. package/fesm2022/ngwr-checkbox-testing.mjs.map +1 -1
  67. package/fesm2022/ngwr-checkbox.mjs +18 -8
  68. package/fesm2022/ngwr-checkbox.mjs.map +1 -1
  69. package/fesm2022/ngwr-circular-text-testing.mjs.map +1 -1
  70. package/fesm2022/ngwr-circular-text.mjs +3 -3
  71. package/fesm2022/ngwr-circular-text.mjs.map +1 -1
  72. package/fesm2022/ngwr-click-spark.mjs +3 -3
  73. package/fesm2022/ngwr-click-spark.mjs.map +1 -1
  74. package/fesm2022/ngwr-clipboard.mjs +3 -3
  75. package/fesm2022/ngwr-clipboard.mjs.map +1 -1
  76. package/fesm2022/ngwr-collapse-testing.mjs.map +1 -1
  77. package/fesm2022/ngwr-collapse.mjs +9 -9
  78. package/fesm2022/ngwr-collapse.mjs.map +1 -1
  79. package/fesm2022/ngwr-color-picker-testing.mjs.map +1 -1
  80. package/fesm2022/ngwr-color-picker.mjs +6 -6
  81. package/fesm2022/ngwr-color-picker.mjs.map +1 -1
  82. package/fesm2022/ngwr-command-palette-testing.mjs.map +1 -1
  83. package/fesm2022/ngwr-command-palette.mjs +3 -3
  84. package/fesm2022/ngwr-command-palette.mjs.map +1 -1
  85. package/fesm2022/ngwr-compare.mjs +3 -3
  86. package/fesm2022/ngwr-compare.mjs.map +1 -1
  87. package/fesm2022/ngwr-confetti.mjs +3 -3
  88. package/fesm2022/ngwr-confetti.mjs.map +1 -1
  89. package/fesm2022/ngwr-config.mjs.map +1 -1
  90. package/fesm2022/ngwr-context-menu-testing.mjs.map +1 -1
  91. package/fesm2022/ngwr-context-menu.mjs +12 -12
  92. package/fesm2022/ngwr-context-menu.mjs.map +1 -1
  93. package/fesm2022/ngwr-cookie.mjs +3 -3
  94. package/fesm2022/ngwr-cookie.mjs.map +1 -1
  95. package/fesm2022/ngwr-counter.mjs +6 -6
  96. package/fesm2022/ngwr-counter.mjs.map +1 -1
  97. package/fesm2022/ngwr-date-adapters-fns.mjs +3 -3
  98. package/fesm2022/ngwr-date-adapters-fns.mjs.map +1 -1
  99. package/fesm2022/ngwr-date-adapters-luxon.mjs +3 -3
  100. package/fesm2022/ngwr-date-adapters-luxon.mjs.map +1 -1
  101. package/fesm2022/ngwr-date-picker-testing.mjs.map +1 -1
  102. package/fesm2022/ngwr-date-picker.mjs +721 -62
  103. package/fesm2022/ngwr-date-picker.mjs.map +1 -1
  104. package/fesm2022/ngwr-date.mjs +3 -3
  105. package/fesm2022/ngwr-date.mjs.map +1 -1
  106. package/fesm2022/ngwr-decrypt-text-testing.mjs.map +1 -1
  107. package/fesm2022/ngwr-decrypt-text.mjs +3 -3
  108. package/fesm2022/ngwr-decrypt-text.mjs.map +1 -1
  109. package/fesm2022/ngwr-density.mjs +6 -6
  110. package/fesm2022/ngwr-density.mjs.map +1 -1
  111. package/fesm2022/ngwr-descriptions.mjs +6 -6
  112. package/fesm2022/ngwr-descriptions.mjs.map +1 -1
  113. package/fesm2022/ngwr-dialog-testing.mjs.map +1 -1
  114. package/fesm2022/ngwr-dialog.mjs +15 -15
  115. package/fesm2022/ngwr-dialog.mjs.map +1 -1
  116. package/fesm2022/ngwr-directives.mjs +12 -12
  117. package/fesm2022/ngwr-directives.mjs.map +1 -1
  118. package/fesm2022/ngwr-divider.mjs +3 -3
  119. package/fesm2022/ngwr-divider.mjs.map +1 -1
  120. package/fesm2022/ngwr-donut-chart-testing.mjs.map +1 -1
  121. package/fesm2022/ngwr-donut-chart.mjs +48 -6
  122. package/fesm2022/ngwr-donut-chart.mjs.map +1 -1
  123. package/fesm2022/ngwr-drag-drop.mjs +6 -6
  124. package/fesm2022/ngwr-drag-drop.mjs.map +1 -1
  125. package/fesm2022/ngwr-drawer-testing.mjs.map +1 -1
  126. package/fesm2022/ngwr-drawer.mjs +18 -18
  127. package/fesm2022/ngwr-drawer.mjs.map +1 -1
  128. package/fesm2022/ngwr-dropdown-testing.mjs.map +1 -1
  129. package/fesm2022/ngwr-dropdown.mjs +174 -25
  130. package/fesm2022/ngwr-dropdown.mjs.map +1 -1
  131. package/fesm2022/ngwr-editor-testing.mjs +568 -0
  132. package/fesm2022/ngwr-editor-testing.mjs.map +1 -0
  133. package/fesm2022/ngwr-editor.mjs +2601 -0
  134. package/fesm2022/ngwr-editor.mjs.map +1 -0
  135. package/fesm2022/ngwr-empty.mjs +3 -3
  136. package/fesm2022/ngwr-empty.mjs.map +1 -1
  137. package/fesm2022/ngwr-event-calendar-testing.mjs.map +1 -1
  138. package/fesm2022/ngwr-event-calendar.mjs +14 -7
  139. package/fesm2022/ngwr-event-calendar.mjs.map +1 -1
  140. package/fesm2022/ngwr-falling-text-testing.mjs.map +1 -1
  141. package/fesm2022/ngwr-falling-text.mjs +3 -3
  142. package/fesm2022/ngwr-falling-text.mjs.map +1 -1
  143. package/fesm2022/ngwr-file-upload-testing.mjs.map +1 -1
  144. package/fesm2022/ngwr-file-upload.mjs +3 -3
  145. package/fesm2022/ngwr-file-upload.mjs.map +1 -1
  146. package/fesm2022/ngwr-form-testing.mjs.map +1 -1
  147. package/fesm2022/ngwr-form.mjs +61 -10
  148. package/fesm2022/ngwr-form.mjs.map +1 -1
  149. package/fesm2022/ngwr-fuzzy-text-testing.mjs.map +1 -1
  150. package/fesm2022/ngwr-fuzzy-text.mjs +3 -3
  151. package/fesm2022/ngwr-fuzzy-text.mjs.map +1 -1
  152. package/fesm2022/ngwr-gauge-testing.mjs.map +1 -1
  153. package/fesm2022/ngwr-gauge.mjs +35 -6
  154. package/fesm2022/ngwr-gauge.mjs.map +1 -1
  155. package/fesm2022/ngwr-glitch-text-testing.mjs.map +1 -1
  156. package/fesm2022/ngwr-glitch-text.mjs +3 -3
  157. package/fesm2022/ngwr-glitch-text.mjs.map +1 -1
  158. package/fesm2022/ngwr-gradient-text-testing.mjs.map +1 -1
  159. package/fesm2022/ngwr-gradient-text.mjs +3 -3
  160. package/fesm2022/ngwr-gradient-text.mjs.map +1 -1
  161. package/fesm2022/ngwr-graph-testing.mjs.map +1 -1
  162. package/fesm2022/ngwr-graph.mjs +6 -6
  163. package/fesm2022/ngwr-graph.mjs.map +1 -1
  164. package/fesm2022/ngwr-hotkey.mjs +6 -6
  165. package/fesm2022/ngwr-hotkey.mjs.map +1 -1
  166. package/fesm2022/ngwr-i18n-ar.mjs +31 -0
  167. package/fesm2022/ngwr-i18n-ar.mjs.map +1 -1
  168. package/fesm2022/ngwr-i18n-cs.mjs +31 -0
  169. package/fesm2022/ngwr-i18n-cs.mjs.map +1 -1
  170. package/fesm2022/ngwr-i18n-de.mjs +31 -0
  171. package/fesm2022/ngwr-i18n-de.mjs.map +1 -1
  172. package/fesm2022/ngwr-i18n-en.mjs +39 -0
  173. package/fesm2022/ngwr-i18n-en.mjs.map +1 -1
  174. package/fesm2022/ngwr-i18n-es.mjs +31 -0
  175. package/fesm2022/ngwr-i18n-es.mjs.map +1 -1
  176. package/fesm2022/ngwr-i18n-fr.mjs +31 -0
  177. package/fesm2022/ngwr-i18n-fr.mjs.map +1 -1
  178. package/fesm2022/ngwr-i18n-he.mjs +31 -0
  179. package/fesm2022/ngwr-i18n-he.mjs.map +1 -1
  180. package/fesm2022/ngwr-i18n-hi.mjs +31 -0
  181. package/fesm2022/ngwr-i18n-hi.mjs.map +1 -1
  182. package/fesm2022/ngwr-i18n-id.mjs +31 -0
  183. package/fesm2022/ngwr-i18n-id.mjs.map +1 -1
  184. package/fesm2022/ngwr-i18n-it.mjs +31 -0
  185. package/fesm2022/ngwr-i18n-it.mjs.map +1 -1
  186. package/fesm2022/ngwr-i18n-ja.mjs +31 -0
  187. package/fesm2022/ngwr-i18n-ja.mjs.map +1 -1
  188. package/fesm2022/ngwr-i18n-ko.mjs +31 -0
  189. package/fesm2022/ngwr-i18n-ko.mjs.map +1 -1
  190. package/fesm2022/ngwr-i18n-nl.mjs +31 -0
  191. package/fesm2022/ngwr-i18n-nl.mjs.map +1 -1
  192. package/fesm2022/ngwr-i18n-pl.mjs +31 -0
  193. package/fesm2022/ngwr-i18n-pl.mjs.map +1 -1
  194. package/fesm2022/ngwr-i18n-pt.mjs +31 -0
  195. package/fesm2022/ngwr-i18n-pt.mjs.map +1 -1
  196. package/fesm2022/ngwr-i18n-ru.mjs +31 -0
  197. package/fesm2022/ngwr-i18n-ru.mjs.map +1 -1
  198. package/fesm2022/ngwr-i18n-sv.mjs +31 -0
  199. package/fesm2022/ngwr-i18n-sv.mjs.map +1 -1
  200. package/fesm2022/ngwr-i18n-tr.mjs +31 -0
  201. package/fesm2022/ngwr-i18n-tr.mjs.map +1 -1
  202. package/fesm2022/ngwr-i18n-uk.mjs +31 -0
  203. package/fesm2022/ngwr-i18n-uk.mjs.map +1 -1
  204. package/fesm2022/ngwr-i18n-vi.mjs +31 -0
  205. package/fesm2022/ngwr-i18n-vi.mjs.map +1 -1
  206. package/fesm2022/ngwr-i18n-zh-TW.mjs +31 -0
  207. package/fesm2022/ngwr-i18n-zh-TW.mjs.map +1 -1
  208. package/fesm2022/ngwr-i18n-zh.mjs +31 -0
  209. package/fesm2022/ngwr-i18n-zh.mjs.map +1 -1
  210. package/fesm2022/ngwr-i18n.mjs +9 -9
  211. package/fesm2022/ngwr-i18n.mjs.map +1 -1
  212. package/fesm2022/ngwr-icon-adapters-feather.mjs.map +1 -1
  213. package/fesm2022/ngwr-icon-adapters-lucide.mjs.map +1 -1
  214. package/fesm2022/ngwr-icon.mjs +6 -6
  215. package/fesm2022/ngwr-icon.mjs.map +1 -1
  216. package/fesm2022/ngwr-image-cropper-testing.mjs.map +1 -1
  217. package/fesm2022/ngwr-image-cropper.mjs +3 -3
  218. package/fesm2022/ngwr-image-cropper.mjs.map +1 -1
  219. package/fesm2022/ngwr-input-number-testing.mjs.map +1 -1
  220. package/fesm2022/ngwr-input-number.mjs +15 -3
  221. package/fesm2022/ngwr-input-number.mjs.map +1 -1
  222. package/fesm2022/ngwr-input-otp-testing.mjs.map +1 -1
  223. package/fesm2022/ngwr-input-otp.mjs +3 -3
  224. package/fesm2022/ngwr-input-otp.mjs.map +1 -1
  225. package/fesm2022/ngwr-input-testing.mjs.map +1 -1
  226. package/fesm2022/ngwr-input.mjs +15 -15
  227. package/fesm2022/ngwr-input.mjs.map +1 -1
  228. package/fesm2022/ngwr-keyboard.mjs +3 -3
  229. package/fesm2022/ngwr-keyboard.mjs.map +1 -1
  230. package/fesm2022/ngwr-knob-testing.mjs.map +1 -1
  231. package/fesm2022/ngwr-knob.mjs +3 -3
  232. package/fesm2022/ngwr-knob.mjs.map +1 -1
  233. package/fesm2022/ngwr-layout.mjs +15 -15
  234. package/fesm2022/ngwr-layout.mjs.map +1 -1
  235. package/fesm2022/ngwr-lightbox-testing.mjs.map +1 -1
  236. package/fesm2022/ngwr-lightbox.mjs +3 -3
  237. package/fesm2022/ngwr-lightbox.mjs.map +1 -1
  238. package/fesm2022/ngwr-line-chart-testing.mjs.map +1 -1
  239. package/fesm2022/ngwr-line-chart.mjs +18 -7
  240. package/fesm2022/ngwr-line-chart.mjs.map +1 -1
  241. package/fesm2022/ngwr-list.mjs +6 -6
  242. package/fesm2022/ngwr-list.mjs.map +1 -1
  243. package/fesm2022/ngwr-loading-bar-router.mjs.map +1 -1
  244. package/fesm2022/ngwr-loading-bar.mjs +6 -6
  245. package/fesm2022/ngwr-loading-bar.mjs.map +1 -1
  246. package/fesm2022/ngwr-markdown-testing.mjs.map +1 -1
  247. package/fesm2022/ngwr-markdown.mjs +798 -17
  248. package/fesm2022/ngwr-markdown.mjs.map +1 -1
  249. package/fesm2022/ngwr-marquee-testing.mjs.map +1 -1
  250. package/fesm2022/ngwr-marquee.mjs +3 -3
  251. package/fesm2022/ngwr-marquee.mjs.map +1 -1
  252. package/fesm2022/ngwr-media.mjs +3 -3
  253. package/fesm2022/ngwr-media.mjs.map +1 -1
  254. package/fesm2022/ngwr-mention-testing.mjs.map +1 -1
  255. package/fesm2022/ngwr-mention.mjs +6 -6
  256. package/fesm2022/ngwr-mention.mjs.map +1 -1
  257. package/fesm2022/ngwr-meta.mjs +6 -6
  258. package/fesm2022/ngwr-meta.mjs.map +1 -1
  259. package/fesm2022/ngwr-meter-group-testing.mjs +7 -3
  260. package/fesm2022/ngwr-meter-group-testing.mjs.map +1 -1
  261. package/fesm2022/ngwr-meter-group.mjs +26 -6
  262. package/fesm2022/ngwr-meter-group.mjs.map +1 -1
  263. package/fesm2022/ngwr-overlay.mjs +6 -6
  264. package/fesm2022/ngwr-overlay.mjs.map +1 -1
  265. package/fesm2022/ngwr-page-header.mjs +13 -5
  266. package/fesm2022/ngwr-page-header.mjs.map +1 -1
  267. package/fesm2022/ngwr-pagination-testing.mjs.map +1 -1
  268. package/fesm2022/ngwr-pagination.mjs +3 -3
  269. package/fesm2022/ngwr-pagination.mjs.map +1 -1
  270. package/fesm2022/ngwr-pipes.mjs +21 -21
  271. package/fesm2022/ngwr-pipes.mjs.map +1 -1
  272. package/fesm2022/ngwr-platform.mjs +9 -9
  273. package/fesm2022/ngwr-platform.mjs.map +1 -1
  274. package/fesm2022/ngwr-popconfirm-testing.mjs.map +1 -1
  275. package/fesm2022/ngwr-popconfirm.mjs +6 -6
  276. package/fesm2022/ngwr-popconfirm.mjs.map +1 -1
  277. package/fesm2022/ngwr-popover-testing.mjs.map +1 -1
  278. package/fesm2022/ngwr-popover.mjs +578 -16
  279. package/fesm2022/ngwr-popover.mjs.map +1 -1
  280. package/fesm2022/ngwr-progress.mjs +3 -3
  281. package/fesm2022/ngwr-progress.mjs.map +1 -1
  282. package/fesm2022/ngwr-pull-to-refresh.mjs +3 -3
  283. package/fesm2022/ngwr-pull-to-refresh.mjs.map +1 -1
  284. package/fesm2022/ngwr-qr.mjs +3 -3
  285. package/fesm2022/ngwr-qr.mjs.map +1 -1
  286. package/fesm2022/ngwr-radio-testing.mjs.map +1 -1
  287. package/fesm2022/ngwr-radio.mjs +6 -6
  288. package/fesm2022/ngwr-radio.mjs.map +1 -1
  289. package/fesm2022/ngwr-rating-testing.mjs.map +1 -1
  290. package/fesm2022/ngwr-rating.mjs +3 -3
  291. package/fesm2022/ngwr-rating.mjs.map +1 -1
  292. package/fesm2022/ngwr-result.mjs +12 -12
  293. package/fesm2022/ngwr-result.mjs.map +1 -1
  294. package/fesm2022/ngwr-rotating-text-testing.mjs.map +1 -1
  295. package/fesm2022/ngwr-rotating-text.mjs +3 -3
  296. package/fesm2022/ngwr-rotating-text.mjs.map +1 -1
  297. package/fesm2022/ngwr-schema-form.mjs +3 -3
  298. package/fesm2022/ngwr-schema-form.mjs.map +1 -1
  299. package/fesm2022/ngwr-scroll.mjs +3 -3
  300. package/fesm2022/ngwr-scroll.mjs.map +1 -1
  301. package/fesm2022/ngwr-segmented-testing.mjs.map +1 -1
  302. package/fesm2022/ngwr-segmented.mjs +3 -3
  303. package/fesm2022/ngwr-segmented.mjs.map +1 -1
  304. package/fesm2022/ngwr-select-testing.mjs.map +1 -1
  305. package/fesm2022/ngwr-select.mjs +12 -12
  306. package/fesm2022/ngwr-select.mjs.map +1 -1
  307. package/fesm2022/ngwr-shiny-text-testing.mjs.map +1 -1
  308. package/fesm2022/ngwr-shiny-text.mjs +6 -6
  309. package/fesm2022/ngwr-shiny-text.mjs.map +1 -1
  310. package/fesm2022/ngwr-sidebar.mjs +10 -3
  311. package/fesm2022/ngwr-sidebar.mjs.map +1 -1
  312. package/fesm2022/ngwr-skeleton.mjs +3 -3
  313. package/fesm2022/ngwr-skeleton.mjs.map +1 -1
  314. package/fesm2022/ngwr-slider-testing.mjs.map +1 -1
  315. package/fesm2022/ngwr-slider.mjs +3 -3
  316. package/fesm2022/ngwr-slider.mjs.map +1 -1
  317. package/fesm2022/ngwr-sparkline-testing.mjs.map +1 -1
  318. package/fesm2022/ngwr-sparkline.mjs +84 -10
  319. package/fesm2022/ngwr-sparkline.mjs.map +1 -1
  320. package/fesm2022/ngwr-speed-dial-testing.mjs.map +1 -1
  321. package/fesm2022/ngwr-speed-dial.mjs +3 -3
  322. package/fesm2022/ngwr-speed-dial.mjs.map +1 -1
  323. package/fesm2022/ngwr-spinner.mjs +3 -3
  324. package/fesm2022/ngwr-spinner.mjs.map +1 -1
  325. package/fesm2022/ngwr-splash-cursor-testing.mjs.map +1 -1
  326. package/fesm2022/ngwr-splash-cursor.mjs +3 -3
  327. package/fesm2022/ngwr-splash-cursor.mjs.map +1 -1
  328. package/fesm2022/ngwr-split-text-testing.mjs.map +1 -1
  329. package/fesm2022/ngwr-split-text.mjs +3 -3
  330. package/fesm2022/ngwr-split-text.mjs.map +1 -1
  331. package/fesm2022/ngwr-splitter-testing.mjs.map +1 -1
  332. package/fesm2022/ngwr-splitter.mjs +3 -3
  333. package/fesm2022/ngwr-splitter.mjs.map +1 -1
  334. package/fesm2022/ngwr-spotlight-card-testing.mjs.map +1 -1
  335. package/fesm2022/ngwr-spotlight-card.mjs +6 -6
  336. package/fesm2022/ngwr-spotlight-card.mjs.map +1 -1
  337. package/fesm2022/ngwr-squircle.mjs +6 -6
  338. package/fesm2022/ngwr-squircle.mjs.map +1 -1
  339. package/fesm2022/ngwr-star-border-testing.mjs.map +1 -1
  340. package/fesm2022/ngwr-star-border.mjs +3 -3
  341. package/fesm2022/ngwr-star-border.mjs.map +1 -1
  342. package/fesm2022/ngwr-statistic.mjs +9 -9
  343. package/fesm2022/ngwr-statistic.mjs.map +1 -1
  344. package/fesm2022/ngwr-stepper-testing.mjs.map +1 -1
  345. package/fesm2022/ngwr-stepper.mjs +6 -6
  346. package/fesm2022/ngwr-stepper.mjs.map +1 -1
  347. package/fesm2022/ngwr-storage.mjs +3 -3
  348. package/fesm2022/ngwr-storage.mjs.map +1 -1
  349. package/fesm2022/ngwr-switch-testing.mjs.map +1 -1
  350. package/fesm2022/ngwr-switch.mjs +3 -3
  351. package/fesm2022/ngwr-switch.mjs.map +1 -1
  352. package/fesm2022/ngwr-table-testing.mjs.map +1 -1
  353. package/fesm2022/ngwr-table.mjs +18 -18
  354. package/fesm2022/ngwr-table.mjs.map +1 -1
  355. package/fesm2022/ngwr-tabs-router.mjs +3 -3
  356. package/fesm2022/ngwr-tabs-router.mjs.map +1 -1
  357. package/fesm2022/ngwr-tabs-testing.mjs.map +1 -1
  358. package/fesm2022/ngwr-tabs.mjs +6 -6
  359. package/fesm2022/ngwr-tabs.mjs.map +1 -1
  360. package/fesm2022/ngwr-textarea-testing.mjs.map +1 -1
  361. package/fesm2022/ngwr-textarea.mjs +3 -3
  362. package/fesm2022/ngwr-textarea.mjs.map +1 -1
  363. package/fesm2022/ngwr-theme.mjs +3 -3
  364. package/fesm2022/ngwr-theme.mjs.map +1 -1
  365. package/fesm2022/ngwr-tilt-card-testing.mjs.map +1 -1
  366. package/fesm2022/ngwr-tilt-card.mjs +6 -6
  367. package/fesm2022/ngwr-tilt-card.mjs.map +1 -1
  368. package/fesm2022/ngwr-timeline.mjs +6 -6
  369. package/fesm2022/ngwr-timeline.mjs.map +1 -1
  370. package/fesm2022/ngwr-toast-testing.mjs.map +1 -1
  371. package/fesm2022/ngwr-toast.mjs +9 -9
  372. package/fesm2022/ngwr-toast.mjs.map +1 -1
  373. package/fesm2022/ngwr-toolbar.mjs +10 -3
  374. package/fesm2022/ngwr-toolbar.mjs.map +1 -1
  375. package/fesm2022/ngwr-tour-testing.mjs.map +1 -1
  376. package/fesm2022/ngwr-tour.mjs +6 -6
  377. package/fesm2022/ngwr-tour.mjs.map +1 -1
  378. package/fesm2022/ngwr-transfer-testing.mjs.map +1 -1
  379. package/fesm2022/ngwr-transfer.mjs +3 -3
  380. package/fesm2022/ngwr-transfer.mjs.map +1 -1
  381. package/fesm2022/ngwr-tree-testing.mjs.map +1 -1
  382. package/fesm2022/ngwr-tree.mjs +3 -3
  383. package/fesm2022/ngwr-tree.mjs.map +1 -1
  384. package/fesm2022/ngwr-typewriter-testing.mjs.map +1 -1
  385. package/fesm2022/ngwr-typewriter.mjs +3 -3
  386. package/fesm2022/ngwr-typewriter.mjs.map +1 -1
  387. package/fesm2022/ngwr-typography.mjs +7 -3
  388. package/fesm2022/ngwr-typography.mjs.map +1 -1
  389. package/fesm2022/ngwr-utils.mjs.map +1 -1
  390. package/fesm2022/ngwr-validators.mjs.map +1 -1
  391. package/fesm2022/ngwr-version.mjs +1 -1
  392. package/fesm2022/ngwr-version.mjs.map +1 -1
  393. package/fesm2022/ngwr-virtual-scroll.mjs +3 -3
  394. package/fesm2022/ngwr-virtual-scroll.mjs.map +1 -1
  395. package/fesm2022/ngwr-waves-testing.mjs.map +1 -1
  396. package/fesm2022/ngwr-waves.mjs +3 -3
  397. package/fesm2022/ngwr-waves.mjs.map +1 -1
  398. package/fesm2022/ngwr-window-testing.mjs.map +1 -1
  399. package/fesm2022/ngwr-window.mjs +12 -12
  400. package/fesm2022/ngwr-window.mjs.map +1 -1
  401. package/form/styles/_index.scss +16 -1
  402. package/gauge/styles/_index.scss +1 -0
  403. package/i18n/ar.json +32 -1
  404. package/i18n/cs.json +32 -1
  405. package/i18n/de.json +32 -1
  406. package/i18n/en.json +32 -1
  407. package/i18n/es.json +32 -1
  408. package/i18n/fr.json +32 -1
  409. package/i18n/he.json +32 -1
  410. package/i18n/hi.json +32 -1
  411. package/i18n/id.json +32 -1
  412. package/i18n/it.json +32 -1
  413. package/i18n/ja.json +32 -1
  414. package/i18n/ko.json +32 -1
  415. package/i18n/nl.json +32 -1
  416. package/i18n/pl.json +32 -1
  417. package/i18n/pt.json +32 -1
  418. package/i18n/ru.json +32 -1
  419. package/i18n/sv.json +32 -1
  420. package/i18n/tr.json +32 -1
  421. package/i18n/uk.json +32 -1
  422. package/i18n/vi.json +32 -1
  423. package/i18n/zh-TW.json +32 -1
  424. package/i18n/zh.json +32 -1
  425. package/input/styles/_index.scss +24 -1
  426. package/input-number/styles/_index.scss +69 -0
  427. package/input-otp/styles/_index.scss +5 -5
  428. package/line-chart/styles/_index.scss +30 -2
  429. package/llms-full.txt +14 -4
  430. package/llms.txt +188 -132
  431. package/mcp/providers.js +2 -2
  432. package/mcp/server.js +1 -1
  433. package/meter-group/styles/_index.scss +1 -0
  434. package/overlay/styles/_arrow.scss +30 -2
  435. package/package.json +43 -2
  436. package/page-header/styles/_index.scss +37 -1
  437. package/pagination/styles/_index.scss +9 -5
  438. package/popover/styles/_index.scss +73 -5
  439. package/progress/styles/_index.scss +4 -0
  440. package/radio/styles/_index.scss +4 -1
  441. package/schematics/use/symbol-map.json +1 -0
  442. package/select/styles/_index.scss +51 -12
  443. package/sidebar/styles/_index.scss +44 -2
  444. package/skeleton/styles/_index.scss +3 -0
  445. package/skills/ngwr/SKILL.md +5 -5
  446. package/skills/ngwr/references/catalog.md +2 -0
  447. package/skills/ngwr/references/setup.md +3 -3
  448. package/sparkline/styles/_index.scss +19 -0
  449. package/styles.scss +1 -0
  450. package/table/styles/_index.scss +7 -0
  451. package/textarea/styles/_index.scss +12 -3
  452. package/theme/styles/_colors.scss +39 -13
  453. package/theme/styles/_contrast.scss +9 -7
  454. package/toast/styles/_index.scss +4 -0
  455. package/toolbar/styles/_index.scss +35 -1
  456. package/tree/styles/_index.scss +46 -7
  457. package/types/ngwr-badge.d.ts +22 -7
  458. package/types/ngwr-bar-chart.d.ts +19 -1
  459. package/types/ngwr-calendar-heatmap.d.ts +29 -1
  460. package/types/ngwr-checkbox.d.ts +2 -0
  461. package/types/ngwr-config.d.ts +12 -0
  462. package/types/ngwr-date-picker.d.ts +308 -43
  463. package/types/ngwr-donut-chart.d.ts +24 -1
  464. package/types/ngwr-dropdown.d.ts +22 -2
  465. package/types/ngwr-editor-testing.d.ts +378 -0
  466. package/types/ngwr-editor.d.ts +449 -0
  467. package/types/ngwr-event-calendar.d.ts +8 -0
  468. package/types/ngwr-form.d.ts +35 -5
  469. package/types/ngwr-gauge.d.ts +20 -1
  470. package/types/ngwr-input-number.d.ts +7 -0
  471. package/types/ngwr-line-chart.d.ts +9 -1
  472. package/types/ngwr-markdown.d.ts +61 -2
  473. package/types/ngwr-meter-group-testing.d.ts +3 -2
  474. package/types/ngwr-meter-group.d.ts +14 -1
  475. package/types/ngwr-page-header.d.ts +10 -2
  476. package/types/ngwr-popover.d.ts +154 -3
  477. package/types/ngwr-sidebar.d.ts +7 -0
  478. package/types/ngwr-sparkline.d.ts +43 -1
  479. package/types/ngwr-toolbar.d.ts +7 -0
  480. package/types/ngwr-typography.d.ts +4 -0
  481. package/types/ngwr-version.d.ts +1 -1
  482. package/typography/styles/_index.scss +16 -0
@@ -212,14 +212,14 @@ $contrast-light: #ffffff !default;
212
212
  --wr-color-fill: rgba(var(--wr-color-light-rgb), 0.3);
213
213
  --wr-color-fill-strong: rgba(var(--wr-color-light-rgb), 0.55);
214
214
 
215
- // De-emphasized text — the muted ink dimmed to two canonical strengths so
216
- // labels / captions / placeholders read consistently. One place each.
217
- // Only the full-opacity token above is AA-safe for body text; these two are
218
- // decorative by design (0.85 reaches ~3.5:1, 0.6 ~2.3:1 on a light surface).
219
- // 0.95, not 0.85: the role itself is 5.35:1 on the light surface, but wrapping
220
- // it at 0.85 composited to #778291 — 3.90:1, under the AA bar. 0.95 is the
221
- // most softening that still clears it (4.81), which leaves this token barely
222
- // distinguishable from the flat role it wraps.
215
+ // De-emphasized text — the muted ink at two strengths, and only the first is
216
+ // text. `-text-muted` is 0.95, not 0.85: the role itself is 5.35:1 on the
217
+ // light surface, but wrapping it at 0.85 composited to #778291 — 3.90:1,
218
+ // under the AA bar. 0.95 is the most softening that still clears it (4.81),
219
+ // which leaves this token barely distinguishable from the flat role it wraps.
220
+ // Every library rule that read it was a placeholder, and those read
221
+ // `--wr-color-placeholder` now; it stays for the muted labels a consumer
222
+ // writes. `-text-faint` is below every bar — see its marker.
223
223
  --wr-color-text-muted: rgba(var(--wr-color-muted-text-rgb), 0.95);
224
224
  // unused-ok: the library paints with nothing at this strength any more, and
225
225
  // that is the finding rather than an oversight. It had exactly three
@@ -227,11 +227,14 @@ $contrast-light: #ffffff !default;
227
227
  // spinner — and all three were FAILING: 2.43:1 in light, against 4.5:1 for
228
228
  // placeholder text and 3:1 for an interactive affordance and a status
229
229
  // indicator. "Decorative by design" was true of the token and not of any of
230
- // the three, so they moved to `-text-muted` and `-on-surface-muted`. The tier
231
- // stays published because a custom property is public API and a consumer may
232
- // have genuinely decorative text; the library, it turns out, has none. Note
233
- // that no gate reports the shortfall: axe has no non-text-contrast rule, and
234
- // `check:contrast` gates on route counts.
230
+ // the three, so the grip and the spinner moved to `-on-surface-muted` and the
231
+ // placeholder to `--wr-color-placeholder`. The tier stays published because a
232
+ // custom property is public API and a consumer may have genuinely decorative
233
+ // text; the library, it turns out, has none. No gate reports a GRAPHIC at
234
+ // this strength — axe has no non-text-contrast rule. A placeholder painted
235
+ // with it fails `check:contrast`'s probe only where the probe can reach one,
236
+ // an at-rest `::placeholder`; every other placeholder rule is held to
237
+ // `--wr-color-placeholder` at the source, by `theme/styles.spec.ts`.
235
238
  --wr-color-text-faint: rgba(var(--wr-color-muted-text-rgb), 0.6);
236
239
 
237
240
  // Semantic role aliases over the flipping neutrals — prefer these in new code
@@ -257,6 +260,29 @@ $contrast-light: #ffffff !default;
257
260
  --wr-color-on-surface-muted: var(--wr-color-muted-text);
258
261
  --wr-color-on-surface-muted-rgb: var(--wr-color-muted-text-rgb);
259
262
 
263
+ // Placeholder text — its own role because placeholders are where the catalog
264
+ // kept inventing strengths: four of them, down to `rgba(…, 0.7)` on
265
+ // `[wrInput]` and `wr-textarea` at 2.91:1 in light, and the table filter's
266
+ // search on the browser's own #757575 at 4.08:1 in dark. A placeholder is
267
+ // TEXT, so 1.4.3 asks 4.5:1, and the muted role is the only value that holds
268
+ // on both backgrounds a field paints — 5.34:1 on the surface and 4.76:1 on the
269
+ // `--wr-color-fill` of a readonly `[wrInput]` (7.63 / 7.03 in dark, and 8.16 /
270
+ // 8.30 under `prefers-contrast: more`, where the muted base is what deepens).
271
+ // No softer tier fits under it: 4.5:1 needs 0.93 alpha on white and 0.98 on
272
+ // the readonly fill. The price is that an empty READONLY `[wrInput]` paints its
273
+ // placeholder in the colour a readonly value takes; `-text-muted` would keep
274
+ // them apart and fails there at 4.29. Written as the role rather than a
275
+ // literal, so dark and high contrast follow it on their own, and with no
276
+ // `-rgb` twin on purpose — an alpha over the muted channel is the defect this
277
+ // replaced. What measures it is narrower than "every placeholder":
278
+ // `check:contrast` swaps in each `::placeholder` a page shows at rest, plain
279
+ // `color-contrast` reads the select, cascader and tree triggers (text spans),
280
+ // and nothing painted reaches the command palette's or the table filter's,
281
+ // which exist only inside an overlay. `theme/styles.spec.ts` covers all of
282
+ // them the other way — every placeholder rule reads this token — so the
283
+ // unmeasured ones sit at the measured value.
284
+ --wr-color-placeholder: var(--wr-color-on-surface-muted);
285
+
260
286
  // Solid hairline / divider colour. Distinct from `--wr-color-border` above,
261
287
  // which is deliberately translucent (`light` at 50%) so it reads on any
262
288
  // surface — `outline` is the opaque one components actually draw 1px rules
@@ -20,13 +20,15 @@
20
20
  // which measures 11.13:1 on its own and is no longer a muted role at all. A
21
21
  // reader who asked for more contrast is asking for the tiers to close up.
22
22
  //
23
- // A LIVE DEFECT THIS EXPOSED, and it is not fixed here. At the default 0.6,
24
- // `text-faint` measures **2.43:1** in light and 3.46:1 in dark, and its three
25
- // consumers are an `input-otp` `::placeholder` (text, 1.4.3) plus the textarea
26
- // resize grip and the avatar spinner (graphics, 1.4.11 → 3:1). All three fail
27
- // today, in the DEFAULT theme, where `_colors.scss` calls them "decorative by
28
- // design" — a resize affordance and a loading indicator are not decorative.
29
- // High contrast repairs them incidentally; the default still needs a decision.
23
+ // WHAT THIS ONCE REPAIRED BY ACCIDENT. At the default 0.6, `text-faint`
24
+ // measures **2.43:1** in light and 3.46:1 in dark, and this block used to be
25
+ // the only thing lifting its three consumers — an `input-otp` `::placeholder`
26
+ // (text, 1.4.3) plus the textarea resize grip and the avatar spinner (graphics,
27
+ // 1.4.11 → 3:1). All three left the tier in the DEFAULT theme: the placeholder
28
+ // for `--wr-color-placeholder`, the two graphics for `-on-surface-muted`. So the
29
+ // faint override below carries a consumer's own use of the tier and nothing of
30
+ // the library's. `--wr-color-placeholder` needs no line of its own here: it IS
31
+ // the muted role, so the deepened base carries it to 8.16:1 and 8.30:1.
30
32
  //
31
33
  // TWO BLOCKS, NOT ONE, and this is the part that would silently half-work. A
32
34
  // `@media { :root { … } }` resolves its `var()` references against the element
@@ -249,6 +249,10 @@ $toast-colors: (
249
249
  animation-play-state: paused;
250
250
  }
251
251
 
252
+ // color-ok: every type draws its own glyph in toast-item.html — a check in a
253
+ // broken circle, a triangle, an octagon, an `i`, the shapes `wr-alert` uses —
254
+ // and the host announces it as `role="alert"` or `"status"`. The accent only
255
+ // inks the edge, the glyph and the countdown.
252
256
  @each $variant, $color in $toast-colors {
253
257
  &--#{$variant} {
254
258
  --wr-toast-accent: var(--wr-color-#{$color});
@@ -33,7 +33,9 @@
33
33
  &__zone {
34
34
  display: flex;
35
35
  align-items: center;
36
- gap: 0.5rem;
36
+ // Density-aware: `touch` widens it so adjacent controls do not crowd a
37
+ // fingertip, `sm` tightens it. `md` resolves to the 8px it always was.
38
+ gap: calc(0.5rem * var(--wr-density-gap, 1));
37
39
  min-width: 0;
38
40
 
39
41
  &:empty {
@@ -74,6 +76,38 @@
74
76
  }
75
77
  }
76
78
 
79
+ // The documented zone shape is ONE wrapper around the controls —
80
+ // `<div wrToolbarEnd><wr-btn>…</wr-btn><wr-btn>…</wr-btn></div>` — and the zone's
81
+ // `gap` spaces the zone's CHILDREN, which is that wrapper alone, so the buttons
82
+ // inside it met edge to edge (0px, measured in Chromium). A BARE wrapper is laid
83
+ // out the way the zone is, taking the zone's own gap through `inherit`, so both
84
+ // shapes — one wrapper, or the attribute on each control — space the same and a
85
+ // density change moves them together. It wraps, as the inline flow it replaces
86
+ // did, so a stacked `responsive` zone still folds its controls onto a second
87
+ // row, now with the gap between the rows as well. What BARE excludes, and why:
88
+ //
89
+ // - A `class` or a `style`. Zero specificity alone does not keep a consumer's
90
+ // layout: ngwr ships unlayered CSS, and unlayered CSS beats every cascade
91
+ // layer whatever its specificity, so a Tailwind v4 `hidden`, `grid` or `gap-4`
92
+ // on the wrapper lost to this rule and a hidden wrapper came back. A wrapper
93
+ // with a class or a style is the consumer's, and nothing here touches it — not
94
+ // `display`, not `align-items`, not `flex-wrap`. An EMPTY one still counts as
95
+ // bare, because `class=""` / `style=""` is what a `[class.x]` / `[style.x]`
96
+ // binding leaves behind when it switches off, and the same state must not lay
97
+ // out two ways.
98
+ // - Anything but a `div`. A control projected directly is already a child of the
99
+ // zone and spaced by its gap, and must not become a flex container itself.
100
+ // Running text belongs in a `<span>` or a `<p>`, which stay in inline flow: in
101
+ // a bare `<div>` its words and links would become separate flex items.
102
+ // - `[hidden]`. An author rule outranks the user agent's
103
+ // `[hidden] { display: none }` at any specificity.
104
+ :where(.wr-toolbar__zone > div:not([hidden], [class]:not([class='']), [style]:not([style='']))) {
105
+ display: flex;
106
+ align-items: center;
107
+ flex-wrap: wrap;
108
+ gap: inherit;
109
+ }
110
+
77
111
  // Responsive toolbars stack their zones when the bar is too narrow for a row.
78
112
  @container wr-toolbar (max-width: 32rem) {
79
113
  .wr-toolbar--responsive .wr-toolbar__zone {
@@ -177,15 +177,51 @@
177
177
  --wr-tree-trigger-font-size: var(--wr-control-font-size-md);
178
178
  --wr-tree-trigger-line-height: var(--wr-control-line-height-md);
179
179
  --wr-tree-panel-max-height: 18rem;
180
- // Trigger width floor — hooked for the same reason as `--wr-select-min-width`:
181
- // in a narrow grid column the literal wins over `minmax(0, 1fr)` and the
182
- // trigger overhangs its cell, and the only escape was overriding
183
- // `.wr-tree__trigger` from outside. Set it to 0 to defer to the layout.
180
+ // Trigger width floor, the same contract as `--wr-select-min-width`.
181
+ // Despite the name it is a DEFAULT width rather than a minimum: an explicit
182
+ // `width`, `width: 100%` in a narrow parent, a `minmax(0, 1fr)` cell and a
183
+ // shrinking flex item all win over it (see `::after` below). Set it to 0 to
184
+ // size a bare trigger to its content alone. This hook is the only way to
185
+ // lower it: a `min-width` on `.wr-tree__trigger`, the override that did it
186
+ // before the hook existed, no longer reaches the floor.
184
187
  --wr-tree-trigger-min-width: 12rem;
185
188
 
186
- display: inline-flex;
189
+ // One column that shrinks to whatever the layout gives it and, left to size
190
+ // itself, grows to the widest thing in it — the trigger's content or the
191
+ // floor. The floor used to be a `min-width` on the trigger, which no width
192
+ // on the host could beat: `style="width: 6rem"` drew a 192px trigger in a
193
+ // 96px host, and in a 200px flex row beside a 120px sibling the tree
194
+ // overflowed the row by 120px. `minmax(0, …)` also drops the label's text
195
+ // from the host's min-content, so it shrinks as a flex item the way
196
+ // `[wrInput]` does and the label truncates instead.
197
+ display: inline-grid;
198
+ grid-template-columns: minmax(0, 1fr);
199
+ // The spacer below lands in a row of its own, and it must be a FIXED 0
200
+ // rather than an implicit `auto` one: a grid shares height beyond its
201
+ // content among its auto rows, so a host stretched by a taller flex or grid
202
+ // row, or given a `height`, drew a 45px trigger in a 60px host with an empty
203
+ // band beneath it.
204
+ grid-template-rows: auto 0;
187
205
  vertical-align: middle;
188
206
 
207
+ // The floor as a zero-height spacer in the same column. A grid track's
208
+ // max-content is its widest item, so a host sized to its content is at
209
+ // least `--wr-tree-trigger-min-width` wide; `max-width: 100%` is ignored
210
+ // while that size is being worked out and applies once the column exists,
211
+ // so a narrower host caps the spacer instead of the spacer stretching the
212
+ // host. `flex: 0 0 0` keeps it from taking room beside the trigger if a
213
+ // consumer turns the host into a flex container (the floor is then inert,
214
+ // never in the way). In overlay mode the template renders exactly one
215
+ // element into the host — the trigger — so this is the column's only other
216
+ // item, and the zero row is the spacer's.
217
+ &::after {
218
+ content: '';
219
+ flex: 0 0 0;
220
+ width: var(--wr-tree-trigger-min-width);
221
+ max-width: 100%;
222
+ height: 0;
223
+ }
224
+
189
225
  &.wr-tree--disabled {
190
226
  --wr-tree-trigger-color: var(--wr-color-on-surface-muted);
191
227
  --wr-tree-trigger-bg: var(--wr-color-fill);
@@ -197,7 +233,10 @@
197
233
  align-items: center;
198
234
  gap: 0.5rem;
199
235
  width: 100%;
200
- min-width: var(--wr-tree-trigger-min-width);
236
+ // Not the floor — that lives on the host, where a width can beat it. Zero
237
+ // lets the trigger follow the host down and the label's ellipsis take the
238
+ // difference.
239
+ min-width: 0;
201
240
  appearance: none;
202
241
  background: var(--wr-tree-trigger-bg);
203
242
  color: var(--wr-tree-trigger-color);
@@ -245,7 +284,7 @@
245
284
  }
246
285
 
247
286
  &__placeholder {
248
- color: var(--wr-color-text-muted);
287
+ color: var(--wr-color-placeholder);
249
288
  }
250
289
 
251
290
  &__chevron {
@@ -40,9 +40,10 @@ type WrBadgeSize = 'sm' | 'md' | 'lg';
40
40
  type WrTagIconPosition = 'start' | 'end';
41
41
 
42
42
  /**
43
- * Lean status chip — color, size, rounded/pill. Use for short labels
44
- * and counts (e.g. "ONLINE", "3 unread", "v2.1"). Reach for `<wr-tag>`
45
- * when you need icons, loading state, or outlined / transparent styles.
43
+ * Lean chip — color, size, rounded/pill. Use for short labels and counts
44
+ * (e.g. "ONLINE", "3 unread", "v2.1"), where the words say the state and the
45
+ * colour decorates it. Reach for `<wr-tag>` when you need icons, loading
46
+ * state, or outlined / transparent styles.
46
47
  *
47
48
  * @example
48
49
  * ```html
@@ -55,7 +56,12 @@ type WrTagIconPosition = 'start' | 'end';
55
56
  */
56
57
  declare class WrBadge {
57
58
  /**
58
- * Color variant. Maps to `--wr-color-*` CSS variables from the theme.
59
+ * Color variant. Maps to `--wr-color-*` CSS variables from the theme. It is
60
+ * decoration or category, never the state on its own: six of the nine intents
61
+ * share one lightness and `success` against `danger` is 1.004:1, so the label
62
+ * has to say the state (`Offline`, not a red `Status`). A badge draws no
63
+ * icon — when a chip must stand for a status without words, use `<wr-tag>`
64
+ * with its `icon` input.
59
65
  *
60
66
  * @default 'primary'
61
67
  */
@@ -101,14 +107,23 @@ declare class WrBadge {
101
107
  */
102
108
  declare class WrTag {
103
109
  /**
104
- * Color variant.
110
+ * Color variant — decoration or category, never the state on its own. The
111
+ * label carries the state (`Failed`, not a red `Build`): six of the nine
112
+ * intents share one lightness and `success` against `danger` is 1.004:1, so a
113
+ * reader who cannot separate red from green cannot tell those two tags
114
+ * apart, and `primary` and `info` are the same blue to everyone. When a tag has to stand
115
+ * for a status by itself, give it an `icon` as well — register one with
116
+ * `provideWrIcons(lucideIcons({ 'octagon-alert': OctagonAlert }))`, then write
117
+ * `<wr-tag color="danger" icon="octagon-alert">Failed</wr-tag>`.
105
118
  *
106
119
  * @default 'primary'
107
120
  */
108
121
  readonly color: _angular_core.InputSignal<"primary" | "secondary" | "success" | "warning" | "danger" | "info" | "light" | "medium" | "dark">;
109
122
  /**
110
- * Icon name shown alongside the content. The icon is replaced by a
111
- * spinner when `loading` is true.
123
+ * Icon name shown alongside the content — the one channel besides the label
124
+ * that a tag has, so the one to reach for when colour is carrying a status.
125
+ * Nothing ships built in: register the name through `provideWrIcons` first.
126
+ * The icon is replaced by a spinner when `loading` is true.
112
127
  *
113
128
  * @default null
114
129
  */
@@ -1,3 +1,4 @@
1
+ import * as ngwr_popover from 'ngwr/popover';
1
2
  import * as _angular_core from '@angular/core';
2
3
 
3
4
  /** One bar's worth of data. */
@@ -32,6 +33,12 @@ declare class WrBarChart {
32
33
  readonly height: _angular_core.InputSignalWithTransform<number, unknown>;
33
34
  /** Explicit max value. `0` = auto. @default 0 */
34
35
  readonly max: _angular_core.InputSignalWithTransform<number, unknown>;
36
+ /**
37
+ * Show a tooltip with the bar's label and value on hover. Pointer only — the
38
+ * column's accessible name already carries both. @default true
39
+ */
40
+ readonly tooltip: _angular_core.InputSignalWithTransform<boolean, any>;
41
+ private readonly barEls;
35
42
  /**
36
43
  * A datum's value, with anything non-finite read as `0`.
37
44
  *
@@ -55,8 +62,19 @@ declare class WrBarChart {
55
62
  */
56
63
  name: string;
57
64
  }[]>;
65
+ /**
66
+ * One tooltip for the whole chart, with the value exactly as it is printed above
67
+ * the bar. It points at the top edge of the BAR — above it, below it when there is
68
+ * no room — rather than at the column, which is the full height of the plot and
69
+ * would put the chip above every bar alike. A bar with nothing to draw (zero, a
70
+ * negative value) keeps its 1px floor on the baseline, so its chip points there.
71
+ *
72
+ * The bar is the anchor element itself, so an open chip follows it through the
73
+ * height transition a data change starts.
74
+ */
75
+ protected readonly tip: ngwr_popover.WrChartTooltip;
58
76
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<WrBarChart, never>;
59
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<WrBarChart, "wr-bar-chart", never, { "data": { "alias": "data"; "required": false; "isSignal": true; }; "color": { "alias": "color"; "required": false; "isSignal": true; }; "showValues": { "alias": "showValues"; "required": false; "isSignal": true; }; "height": { "alias": "height"; "required": false; "isSignal": true; }; "max": { "alias": "max"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
77
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<WrBarChart, "wr-bar-chart", never, { "data": { "alias": "data"; "required": false; "isSignal": true; }; "color": { "alias": "color"; "required": false; "isSignal": true; }; "showValues": { "alias": "showValues"; "required": false; "isSignal": true; }; "height": { "alias": "height"; "required": false; "isSignal": true; }; "max": { "alias": "max"; "required": false; "isSignal": true; }; "tooltip": { "alias": "tooltip"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
60
78
  }
61
79
 
62
80
  export { WrBarChart };
@@ -1,3 +1,4 @@
1
+ import * as ngwr_popover from 'ngwr/popover';
1
2
  import * as _angular_core from '@angular/core';
2
3
 
3
4
  interface WrHeatmapDatum {
@@ -70,6 +71,13 @@ declare class WrCalendarHeatmap {
70
71
  readonly emptyColor: _angular_core.InputSignal<string>;
71
72
  /** Show the weekday + month labels around the grid. @default true */
72
73
  readonly showLabels: _angular_core.InputSignalWithTransform<boolean, any>;
74
+ /**
75
+ * Show a tooltip with the day and its count on hover. It is the sentence the
76
+ * square's `title` carried, so the `title` is written only while this is off —
77
+ * or the browser would open a second copy a moment later. @default true
78
+ */
79
+ readonly tooltip: _angular_core.InputSignalWithTransform<boolean, any>;
80
+ private readonly daysEl;
73
81
  private readonly locale;
74
82
  /**
75
83
  * Weekday names from the locale rather than a hard-coded English list — the row order is
@@ -84,10 +92,30 @@ declare class WrCalendarHeatmap {
84
92
  week: number;
85
93
  }[]>;
86
94
  protected readonly columnCount: _angular_core.Signal<number>;
95
+ /** Each day's position in `cells()`, for the square the pointer lands on. */
96
+ private readonly indexByIso;
97
+ /**
98
+ * One tooltip for the whole year, pointing at the hovered day: above its square,
99
+ * below it when there is no room above, and slid along the viewport edge for the
100
+ * first and last weeks with the arrow still on the square. A listener on the grid
101
+ * rather than one per square: a year is 371 of them.
102
+ *
103
+ * The box is the square's LAYOUT box rather than its client rect. The hovered square
104
+ * grows by `:hover` over a transition, and a rect read part way through it would
105
+ * move the chip by up to a fifth of a square depending on when it was measured;
106
+ * the scale is centred, so the layout box is the rect's centre and the square's
107
+ * own size.
108
+ */
109
+ protected readonly tip: ngwr_popover.WrChartTooltip;
110
+ /**
111
+ * Which square the pointer is on, from a `mousemove` on the grid. Over the gap
112
+ * between two squares it is on none, and the tooltip starts to leave.
113
+ */
114
+ protected onCellsPointer(event: MouseEvent): void;
87
115
  protected colorFor(intensity: number): string;
88
116
  protected opacityFor(intensity: number): number;
89
117
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<WrCalendarHeatmap, never>;
90
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<WrCalendarHeatmap, "wr-calendar-heatmap", never, { "data": { "alias": "data"; "required": false; "isSignal": true; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; "isSignal": true; }; "endDate": { "alias": "endDate"; "required": false; "isSignal": true; }; "weeks": { "alias": "weeks"; "required": false; "isSignal": true; }; "cellSize": { "alias": "cellSize"; "required": false; "isSignal": true; }; "cellGap": { "alias": "cellGap"; "required": false; "isSignal": true; }; "color": { "alias": "color"; "required": false; "isSignal": true; }; "emptyColor": { "alias": "emptyColor"; "required": false; "isSignal": true; }; "showLabels": { "alias": "showLabels"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
118
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<WrCalendarHeatmap, "wr-calendar-heatmap", never, { "data": { "alias": "data"; "required": false; "isSignal": true; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; "isSignal": true; }; "endDate": { "alias": "endDate"; "required": false; "isSignal": true; }; "weeks": { "alias": "weeks"; "required": false; "isSignal": true; }; "cellSize": { "alias": "cellSize"; "required": false; "isSignal": true; }; "cellGap": { "alias": "cellGap"; "required": false; "isSignal": true; }; "color": { "alias": "color"; "required": false; "isSignal": true; }; "emptyColor": { "alias": "emptyColor"; "required": false; "isSignal": true; }; "showLabels": { "alias": "showLabels"; "required": false; "isSignal": true; }; "tooltip": { "alias": "tooltip"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
91
119
  }
92
120
 
93
121
  export { WrCalendarHeatmap };
@@ -111,6 +111,8 @@ declare class WrCheckbox implements FormCheckboxControl {
111
111
  * only and controlled: set it yourself for a parent "select all" whose
112
112
  * children are partly checked, and clear it on the next toggle. Takes visual
113
113
  * precedence over `checked`; the native input reports `aria-checked="mixed"`.
114
+ * A click the host does not answer still toggles `checked` underneath, and the
115
+ * dash and the mixed state both stay until the binding turns `false`.
114
116
  *
115
117
  * @default false
116
118
  */
@@ -64,6 +64,18 @@ interface WrControlDefaults {
64
64
  interface WrConfig {
65
65
  readonly button?: Pick<WrControlDefaults, 'size'>;
66
66
  readonly checkbox?: Pick<WrControlDefaults, 'size'>;
67
+ /**
68
+ * Defaults for `<wr-editor>`.
69
+ *
70
+ * `format` passes the test a config key has to pass: what an app STORES —
71
+ * HTML, markdown or the document as JSON — is decided once, by its backend,
72
+ * not per field. Spelled as a literal union rather than imported from
73
+ * `ngwr/editor`, for the reason `markdown.linkTarget` is: that entry point
74
+ * imports this one, and ng-packagr refuses the cycle.
75
+ */
76
+ readonly editor?: {
77
+ readonly format?: 'html' | 'markdown' | 'json';
78
+ };
67
79
  readonly input?: WrControlDefaults;
68
80
  readonly inputNumber?: WrControlDefaults;
69
81
  readonly inputOtp?: Pick<WrControlDefaults, 'size'>;