ngwr 14.12.0 → 15.0.0-rc.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 (845) hide show
  1. package/README.md +40 -17
  2. package/affix/styles/_index.scss +8 -5
  3. package/alert/styles/_index.scss +44 -25
  4. package/anchor/styles/_index.scss +25 -9
  5. package/avatar/styles/_index.scss +17 -3
  6. package/badge/styles/_index.scss +45 -37
  7. package/badge/styles/_tag.scss +20 -29
  8. package/bits/aurora/styles/_index.scss +8 -0
  9. package/{aurora → bits/aurora}/styles/_rules.scss +7 -7
  10. package/bits/border-glow/styles/_index.scss +15 -0
  11. package/{border-glow → bits/border-glow}/styles/_rules.scss +92 -41
  12. package/bits/circular-text/styles/_index.scss +15 -0
  13. package/{circular-text → bits/circular-text}/styles/_rules.scss +4 -2
  14. package/bits/falling-text/styles/_index.scss +15 -0
  15. package/bits/glitch-text/styles/_index.scss +15 -0
  16. package/{glitch-text → bits/glitch-text}/styles/_rules.scss +2 -1
  17. package/bits/gradient-text/styles/_index.scss +15 -0
  18. package/{gradient-text → bits/gradient-text}/styles/_rules.scss +9 -4
  19. package/bits/marquee/styles/_index.scss +15 -0
  20. package/bits/shiny-text/styles/_index.scss +15 -0
  21. package/bits/shiny-text/styles/_rules.scss +121 -0
  22. package/bits/spotlight-card/styles/_index.scss +15 -0
  23. package/{spotlight-card → bits/spotlight-card}/styles/_rules.scss +15 -7
  24. package/bits/star-border/styles/_index.scss +15 -0
  25. package/{star-border → bits/star-border}/styles/_rules.scss +17 -9
  26. package/bits/tilt-card/styles/_index.scss +15 -0
  27. package/bits/tilt-card/styles/_rules.scss +56 -0
  28. package/bits/typewriter/styles/_index.scss +15 -0
  29. package/bits/waves/styles/_index.scss +15 -0
  30. package/{waves → bits/waves}/styles/_rules.scss +7 -2
  31. package/breadcrumbs/styles/_index.scss +21 -7
  32. package/breadcrumbs/styles/_rules.scss +15 -9
  33. package/button/styles/_index.scss +75 -29
  34. package/calendar/styles/_index.scss +47 -27
  35. package/card/styles/_index.scss +6 -6
  36. package/card/styles/_rules.scss +14 -11
  37. package/carousel/styles/_index.scss +12 -6
  38. package/cascader/styles/_index.scss +4 -4
  39. package/cascader/styles/_rules.scss +49 -29
  40. package/charts/bar-chart/styles/_index.scss +73 -0
  41. package/{calendar-heatmap → charts/calendar-heatmap}/styles/_index.scss +23 -17
  42. package/charts/donut-chart/styles/_index.scss +104 -0
  43. package/charts/gauge/styles/_index.scss +46 -0
  44. package/{line-chart → charts/line-chart}/styles/_index.scss +41 -16
  45. package/{meter-group → charts/meter-group}/styles/_index.scss +6 -6
  46. package/{sparkline → charts/sparkline}/styles/_index.scss +1 -1
  47. package/checkbox/styles/_index.scss +22 -8
  48. package/collapse/styles/_index.scss +14 -7
  49. package/color-picker/styles/_index.scss +70 -35
  50. package/command-palette/styles/_index.scss +113 -74
  51. package/compare/styles/_index.scss +2 -2
  52. package/context-menu/styles/_index.scss +40 -12
  53. package/date-picker/styles/_index.scss +108 -44
  54. package/descriptions/styles/_index.scss +53 -27
  55. package/dialog/styles/_index.scss +29 -15
  56. package/divider/styles/_index.scss +9 -6
  57. package/drawer/styles/_index.scss +50 -139
  58. package/dropdown/styles/_index.scss +27 -11
  59. package/editor/styles/_index.scss +82 -40
  60. package/empty/styles/_index.scss +32 -8
  61. package/event-calendar/styles/_index.scss +94 -29
  62. package/fesm2022/ngwr-affix.mjs +12 -2
  63. package/fesm2022/ngwr-affix.mjs.map +1 -1
  64. package/fesm2022/ngwr-alert.mjs +3 -1
  65. package/fesm2022/ngwr-alert.mjs.map +1 -1
  66. package/fesm2022/ngwr-anchor.mjs +5 -8
  67. package/fesm2022/ngwr-anchor.mjs.map +1 -1
  68. package/fesm2022/ngwr-avatar.mjs.map +1 -1
  69. package/fesm2022/ngwr-back-top.mjs +1 -1
  70. package/fesm2022/ngwr-badge.mjs +7 -3
  71. package/fesm2022/ngwr-badge.mjs.map +1 -1
  72. package/fesm2022/{ngwr-aurora.mjs → ngwr-bits-aurora.mjs} +33 -27
  73. package/fesm2022/ngwr-bits-aurora.mjs.map +1 -0
  74. package/fesm2022/{ngwr-blur-text-testing.mjs → ngwr-bits-blur-text-testing.mjs} +1 -1
  75. package/fesm2022/ngwr-bits-blur-text-testing.mjs.map +1 -0
  76. package/fesm2022/{ngwr-blur-text.mjs → ngwr-bits-blur-text.mjs} +2 -2
  77. package/fesm2022/ngwr-bits-blur-text.mjs.map +1 -0
  78. package/fesm2022/{ngwr-border-glow-testing.mjs → ngwr-bits-border-glow-testing.mjs} +1 -1
  79. package/fesm2022/ngwr-bits-border-glow-testing.mjs.map +1 -0
  80. package/fesm2022/ngwr-bits-border-glow.mjs +453 -0
  81. package/fesm2022/ngwr-bits-border-glow.mjs.map +1 -0
  82. package/fesm2022/{ngwr-circular-text-testing.mjs → ngwr-bits-circular-text-testing.mjs} +1 -1
  83. package/fesm2022/ngwr-bits-circular-text-testing.mjs.map +1 -0
  84. package/fesm2022/{ngwr-circular-text.mjs → ngwr-bits-circular-text.mjs} +4 -4
  85. package/fesm2022/ngwr-bits-circular-text.mjs.map +1 -0
  86. package/fesm2022/{ngwr-click-spark.mjs → ngwr-bits-click-spark.mjs} +5 -8
  87. package/fesm2022/ngwr-bits-click-spark.mjs.map +1 -0
  88. package/fesm2022/{ngwr-confetti.mjs → ngwr-bits-confetti.mjs} +8 -6
  89. package/fesm2022/ngwr-bits-confetti.mjs.map +1 -0
  90. package/fesm2022/{ngwr-decrypt-text-testing.mjs → ngwr-bits-decrypt-text-testing.mjs} +1 -1
  91. package/fesm2022/ngwr-bits-decrypt-text-testing.mjs.map +1 -0
  92. package/fesm2022/{ngwr-decrypt-text.mjs → ngwr-bits-decrypt-text.mjs} +3 -3
  93. package/fesm2022/ngwr-bits-decrypt-text.mjs.map +1 -0
  94. package/fesm2022/{ngwr-falling-text-testing.mjs → ngwr-bits-falling-text-testing.mjs} +1 -1
  95. package/fesm2022/ngwr-bits-falling-text-testing.mjs.map +1 -0
  96. package/fesm2022/{ngwr-falling-text.mjs → ngwr-bits-falling-text.mjs} +2 -2
  97. package/fesm2022/ngwr-bits-falling-text.mjs.map +1 -0
  98. package/fesm2022/{ngwr-fuzzy-text-testing.mjs → ngwr-bits-fuzzy-text-testing.mjs} +1 -1
  99. package/fesm2022/ngwr-bits-fuzzy-text-testing.mjs.map +1 -0
  100. package/fesm2022/{ngwr-fuzzy-text.mjs → ngwr-bits-fuzzy-text.mjs} +20 -14
  101. package/fesm2022/ngwr-bits-fuzzy-text.mjs.map +1 -0
  102. package/fesm2022/{ngwr-glitch-text-testing.mjs → ngwr-bits-glitch-text-testing.mjs} +1 -1
  103. package/fesm2022/ngwr-bits-glitch-text-testing.mjs.map +1 -0
  104. package/fesm2022/{ngwr-glitch-text.mjs → ngwr-bits-glitch-text.mjs} +4 -4
  105. package/fesm2022/ngwr-bits-glitch-text.mjs.map +1 -0
  106. package/fesm2022/{ngwr-gradient-text-testing.mjs → ngwr-bits-gradient-text-testing.mjs} +1 -1
  107. package/fesm2022/ngwr-bits-gradient-text-testing.mjs.map +1 -0
  108. package/fesm2022/{ngwr-gradient-text.mjs → ngwr-bits-gradient-text.mjs} +4 -4
  109. package/fesm2022/ngwr-bits-gradient-text.mjs.map +1 -0
  110. package/fesm2022/{ngwr-marquee-testing.mjs → ngwr-bits-marquee-testing.mjs} +1 -1
  111. package/fesm2022/ngwr-bits-marquee-testing.mjs.map +1 -0
  112. package/fesm2022/{ngwr-marquee.mjs → ngwr-bits-marquee.mjs} +5 -5
  113. package/fesm2022/ngwr-bits-marquee.mjs.map +1 -0
  114. package/fesm2022/{ngwr-rotating-text-testing.mjs → ngwr-bits-rotating-text-testing.mjs} +1 -1
  115. package/fesm2022/ngwr-bits-rotating-text-testing.mjs.map +1 -0
  116. package/fesm2022/{ngwr-rotating-text.mjs → ngwr-bits-rotating-text.mjs} +3 -3
  117. package/fesm2022/ngwr-bits-rotating-text.mjs.map +1 -0
  118. package/fesm2022/{ngwr-shiny-text-testing.mjs → ngwr-bits-shiny-text-testing.mjs} +1 -1
  119. package/fesm2022/ngwr-bits-shiny-text-testing.mjs.map +1 -0
  120. package/fesm2022/{ngwr-shiny-text.mjs → ngwr-bits-shiny-text.mjs} +15 -7
  121. package/fesm2022/ngwr-bits-shiny-text.mjs.map +1 -0
  122. package/fesm2022/{ngwr-splash-cursor-testing.mjs → ngwr-bits-splash-cursor-testing.mjs} +1 -1
  123. package/fesm2022/ngwr-bits-splash-cursor-testing.mjs.map +1 -0
  124. package/fesm2022/{ngwr-splash-cursor.mjs → ngwr-bits-splash-cursor.mjs} +3 -3
  125. package/fesm2022/ngwr-bits-splash-cursor.mjs.map +1 -0
  126. package/fesm2022/{ngwr-split-text-testing.mjs → ngwr-bits-split-text-testing.mjs} +1 -1
  127. package/fesm2022/ngwr-bits-split-text-testing.mjs.map +1 -0
  128. package/fesm2022/{ngwr-split-text.mjs → ngwr-bits-split-text.mjs} +2 -2
  129. package/fesm2022/ngwr-bits-split-text.mjs.map +1 -0
  130. package/fesm2022/{ngwr-spotlight-card-testing.mjs → ngwr-bits-spotlight-card-testing.mjs} +1 -1
  131. package/fesm2022/ngwr-bits-spotlight-card-testing.mjs.map +1 -0
  132. package/fesm2022/{ngwr-spotlight-card.mjs → ngwr-bits-spotlight-card.mjs} +4 -4
  133. package/fesm2022/ngwr-bits-spotlight-card.mjs.map +1 -0
  134. package/fesm2022/{ngwr-star-border-testing.mjs → ngwr-bits-star-border-testing.mjs} +1 -1
  135. package/fesm2022/ngwr-bits-star-border-testing.mjs.map +1 -0
  136. package/fesm2022/{ngwr-star-border.mjs → ngwr-bits-star-border.mjs} +3 -3
  137. package/fesm2022/ngwr-bits-star-border.mjs.map +1 -0
  138. package/fesm2022/{ngwr-tilt-card-testing.mjs → ngwr-bits-tilt-card-testing.mjs} +1 -1
  139. package/fesm2022/ngwr-bits-tilt-card-testing.mjs.map +1 -0
  140. package/fesm2022/{ngwr-tilt-card.mjs → ngwr-bits-tilt-card.mjs} +3 -3
  141. package/fesm2022/ngwr-bits-tilt-card.mjs.map +1 -0
  142. package/fesm2022/{ngwr-typewriter-testing.mjs → ngwr-bits-typewriter-testing.mjs} +1 -1
  143. package/fesm2022/ngwr-bits-typewriter-testing.mjs.map +1 -0
  144. package/fesm2022/{ngwr-typewriter.mjs → ngwr-bits-typewriter.mjs} +3 -3
  145. package/fesm2022/ngwr-bits-typewriter.mjs.map +1 -0
  146. package/fesm2022/{ngwr-waves-testing.mjs → ngwr-bits-waves-testing.mjs} +1 -1
  147. package/fesm2022/ngwr-bits-waves-testing.mjs.map +1 -0
  148. package/fesm2022/{ngwr-waves.mjs → ngwr-bits-waves.mjs} +8 -8
  149. package/fesm2022/ngwr-bits-waves.mjs.map +1 -0
  150. package/fesm2022/ngwr-breadcrumbs.mjs +4 -4
  151. package/fesm2022/ngwr-breadcrumbs.mjs.map +1 -1
  152. package/fesm2022/ngwr-burger.mjs +1 -1
  153. package/fesm2022/ngwr-button-testing.mjs.map +1 -1
  154. package/fesm2022/ngwr-button.mjs +3 -5
  155. package/fesm2022/ngwr-button.mjs.map +1 -1
  156. package/fesm2022/ngwr-calendar-testing.mjs.map +1 -1
  157. package/fesm2022/ngwr-calendar.mjs +14 -3
  158. package/fesm2022/ngwr-calendar.mjs.map +1 -1
  159. package/fesm2022/ngwr-card.mjs +3 -3
  160. package/fesm2022/ngwr-card.mjs.map +1 -1
  161. package/fesm2022/ngwr-carousel-testing.mjs.map +1 -1
  162. package/fesm2022/ngwr-carousel.mjs +3 -3
  163. package/fesm2022/ngwr-carousel.mjs.map +1 -1
  164. package/fesm2022/ngwr-cascader-testing.mjs.map +1 -1
  165. package/fesm2022/ngwr-cascader.mjs +11 -9
  166. package/fesm2022/ngwr-cascader.mjs.map +1 -1
  167. package/fesm2022/{ngwr-bar-chart-testing.mjs → ngwr-charts-bar-chart-testing.mjs} +1 -1
  168. package/fesm2022/ngwr-charts-bar-chart-testing.mjs.map +1 -0
  169. package/fesm2022/{ngwr-bar-chart.mjs → ngwr-charts-bar-chart.mjs} +22 -4
  170. package/fesm2022/ngwr-charts-bar-chart.mjs.map +1 -0
  171. package/fesm2022/{ngwr-calendar-heatmap-testing.mjs → ngwr-charts-calendar-heatmap-testing.mjs} +1 -1
  172. package/fesm2022/ngwr-charts-calendar-heatmap-testing.mjs.map +1 -0
  173. package/fesm2022/{ngwr-calendar-heatmap.mjs → ngwr-charts-calendar-heatmap.mjs} +9 -9
  174. package/fesm2022/ngwr-charts-calendar-heatmap.mjs.map +1 -0
  175. package/fesm2022/{ngwr-donut-chart-testing.mjs → ngwr-charts-donut-chart-testing.mjs} +1 -1
  176. package/fesm2022/ngwr-charts-donut-chart-testing.mjs.map +1 -0
  177. package/fesm2022/{ngwr-donut-chart.mjs → ngwr-charts-donut-chart.mjs} +3 -4
  178. package/fesm2022/ngwr-charts-donut-chart.mjs.map +1 -0
  179. package/fesm2022/{ngwr-gauge-testing.mjs → ngwr-charts-gauge-testing.mjs} +1 -1
  180. package/fesm2022/ngwr-charts-gauge-testing.mjs.map +1 -0
  181. package/fesm2022/{ngwr-gauge.mjs → ngwr-charts-gauge.mjs} +4 -4
  182. package/fesm2022/ngwr-charts-gauge.mjs.map +1 -0
  183. package/fesm2022/{ngwr-line-chart-testing.mjs → ngwr-charts-line-chart-testing.mjs} +1 -1
  184. package/fesm2022/ngwr-charts-line-chart-testing.mjs.map +1 -0
  185. package/fesm2022/{ngwr-line-chart.mjs → ngwr-charts-line-chart.mjs} +41 -30
  186. package/fesm2022/ngwr-charts-line-chart.mjs.map +1 -0
  187. package/fesm2022/{ngwr-meter-group-testing.mjs → ngwr-charts-meter-group-testing.mjs} +1 -1
  188. package/fesm2022/ngwr-charts-meter-group-testing.mjs.map +1 -0
  189. package/fesm2022/{ngwr-meter-group.mjs → ngwr-charts-meter-group.mjs} +3 -3
  190. package/fesm2022/ngwr-charts-meter-group.mjs.map +1 -0
  191. package/fesm2022/{ngwr-sparkline-testing.mjs → ngwr-charts-sparkline-testing.mjs} +1 -1
  192. package/fesm2022/ngwr-charts-sparkline-testing.mjs.map +1 -0
  193. package/fesm2022/{ngwr-sparkline.mjs → ngwr-charts-sparkline.mjs} +2 -2
  194. package/fesm2022/ngwr-charts-sparkline.mjs.map +1 -0
  195. package/fesm2022/ngwr-checkbox-testing.mjs.map +1 -1
  196. package/fesm2022/ngwr-checkbox.mjs +9 -7
  197. package/fesm2022/ngwr-checkbox.mjs.map +1 -1
  198. package/fesm2022/ngwr-clipboard.mjs +2 -2
  199. package/fesm2022/ngwr-clipboard.mjs.map +1 -1
  200. package/fesm2022/ngwr-collapse-testing.mjs.map +1 -1
  201. package/fesm2022/ngwr-collapse.mjs +9 -3
  202. package/fesm2022/ngwr-collapse.mjs.map +1 -1
  203. package/fesm2022/ngwr-color-picker-testing.mjs.map +1 -1
  204. package/fesm2022/ngwr-color-picker.mjs +22 -14
  205. package/fesm2022/ngwr-color-picker.mjs.map +1 -1
  206. package/fesm2022/ngwr-command-palette-testing.mjs +0 -4
  207. package/fesm2022/ngwr-command-palette-testing.mjs.map +1 -1
  208. package/fesm2022/ngwr-command-palette.mjs +8 -33
  209. package/fesm2022/ngwr-command-palette.mjs.map +1 -1
  210. package/fesm2022/ngwr-compare.mjs +3 -3
  211. package/fesm2022/ngwr-compare.mjs.map +1 -1
  212. package/fesm2022/ngwr-context-menu-testing.mjs.map +1 -1
  213. package/fesm2022/ngwr-context-menu.mjs +5 -5
  214. package/fesm2022/ngwr-cookie.mjs +2 -2
  215. package/fesm2022/ngwr-cookie.mjs.map +1 -1
  216. package/fesm2022/ngwr-counter.mjs +7 -6
  217. package/fesm2022/ngwr-counter.mjs.map +1 -1
  218. package/fesm2022/ngwr-date-picker-testing.mjs +1 -1
  219. package/fesm2022/ngwr-date-picker-testing.mjs.map +1 -1
  220. package/fesm2022/ngwr-date-picker.mjs +27 -21
  221. package/fesm2022/ngwr-date-picker.mjs.map +1 -1
  222. package/fesm2022/ngwr-date.mjs +39 -15
  223. package/fesm2022/ngwr-date.mjs.map +1 -1
  224. package/fesm2022/ngwr-density.mjs +7 -6
  225. package/fesm2022/ngwr-density.mjs.map +1 -1
  226. package/fesm2022/ngwr-descriptions.mjs +9 -3
  227. package/fesm2022/ngwr-descriptions.mjs.map +1 -1
  228. package/fesm2022/ngwr-dialog-testing.mjs.map +1 -1
  229. package/fesm2022/ngwr-dialog.mjs +10 -14
  230. package/fesm2022/ngwr-dialog.mjs.map +1 -1
  231. package/fesm2022/ngwr-directives.mjs +4 -4
  232. package/fesm2022/ngwr-directives.mjs.map +1 -1
  233. package/fesm2022/ngwr-divider.mjs +1 -1
  234. package/fesm2022/ngwr-divider.mjs.map +1 -1
  235. package/fesm2022/ngwr-drawer-testing.mjs +0 -3
  236. package/fesm2022/ngwr-drawer-testing.mjs.map +1 -1
  237. package/fesm2022/ngwr-drawer.mjs +9 -88
  238. package/fesm2022/ngwr-drawer.mjs.map +1 -1
  239. package/fesm2022/ngwr-dropdown-testing.mjs.map +1 -1
  240. package/fesm2022/ngwr-dropdown.mjs +26 -54
  241. package/fesm2022/ngwr-dropdown.mjs.map +1 -1
  242. package/fesm2022/ngwr-editor-testing.mjs +1 -1
  243. package/fesm2022/ngwr-editor-testing.mjs.map +1 -1
  244. package/fesm2022/ngwr-editor.mjs +159 -591
  245. package/fesm2022/ngwr-editor.mjs.map +1 -1
  246. package/fesm2022/ngwr-empty.mjs +4 -2
  247. package/fesm2022/ngwr-empty.mjs.map +1 -1
  248. package/fesm2022/ngwr-event-calendar-testing.mjs.map +1 -1
  249. package/fesm2022/ngwr-event-calendar.mjs +5 -5
  250. package/fesm2022/ngwr-event-calendar.mjs.map +1 -1
  251. package/fesm2022/ngwr-file-upload-testing.mjs.map +1 -1
  252. package/fesm2022/ngwr-file-upload.mjs +2 -2
  253. package/fesm2022/ngwr-file-upload.mjs.map +1 -1
  254. package/fesm2022/ngwr-form-testing.mjs.map +1 -1
  255. package/fesm2022/ngwr-form.mjs +38 -70
  256. package/fesm2022/ngwr-form.mjs.map +1 -1
  257. package/fesm2022/ngwr-graph-testing.mjs.map +1 -1
  258. package/fesm2022/ngwr-graph.mjs +2 -2
  259. package/fesm2022/ngwr-graph.mjs.map +1 -1
  260. package/fesm2022/ngwr-hotkey.mjs +3 -3
  261. package/fesm2022/ngwr-hotkey.mjs.map +1 -1
  262. package/fesm2022/ngwr-i18n-ar.mjs +9 -33
  263. package/fesm2022/ngwr-i18n-ar.mjs.map +1 -1
  264. package/fesm2022/ngwr-i18n-cs.mjs +9 -33
  265. package/fesm2022/ngwr-i18n-cs.mjs.map +1 -1
  266. package/fesm2022/ngwr-i18n-de.mjs +9 -33
  267. package/fesm2022/ngwr-i18n-de.mjs.map +1 -1
  268. package/fesm2022/ngwr-i18n-en.mjs +9 -33
  269. package/fesm2022/ngwr-i18n-en.mjs.map +1 -1
  270. package/fesm2022/ngwr-i18n-es.mjs +9 -33
  271. package/fesm2022/ngwr-i18n-es.mjs.map +1 -1
  272. package/fesm2022/ngwr-i18n-fr.mjs +9 -33
  273. package/fesm2022/ngwr-i18n-fr.mjs.map +1 -1
  274. package/fesm2022/ngwr-i18n-he.mjs +9 -33
  275. package/fesm2022/ngwr-i18n-he.mjs.map +1 -1
  276. package/fesm2022/ngwr-i18n-hi.mjs +9 -33
  277. package/fesm2022/ngwr-i18n-hi.mjs.map +1 -1
  278. package/fesm2022/ngwr-i18n-id.mjs +9 -33
  279. package/fesm2022/ngwr-i18n-id.mjs.map +1 -1
  280. package/fesm2022/ngwr-i18n-it.mjs +9 -33
  281. package/fesm2022/ngwr-i18n-it.mjs.map +1 -1
  282. package/fesm2022/ngwr-i18n-ja.mjs +9 -33
  283. package/fesm2022/ngwr-i18n-ja.mjs.map +1 -1
  284. package/fesm2022/ngwr-i18n-ko.mjs +9 -33
  285. package/fesm2022/ngwr-i18n-ko.mjs.map +1 -1
  286. package/fesm2022/ngwr-i18n-nl.mjs +9 -33
  287. package/fesm2022/ngwr-i18n-nl.mjs.map +1 -1
  288. package/fesm2022/ngwr-i18n-pl.mjs +9 -33
  289. package/fesm2022/ngwr-i18n-pl.mjs.map +1 -1
  290. package/fesm2022/ngwr-i18n-pt.mjs +9 -33
  291. package/fesm2022/ngwr-i18n-pt.mjs.map +1 -1
  292. package/fesm2022/ngwr-i18n-ru.mjs +9 -33
  293. package/fesm2022/ngwr-i18n-ru.mjs.map +1 -1
  294. package/fesm2022/ngwr-i18n-sv.mjs +9 -33
  295. package/fesm2022/ngwr-i18n-sv.mjs.map +1 -1
  296. package/fesm2022/ngwr-i18n-tr.mjs +9 -33
  297. package/fesm2022/ngwr-i18n-tr.mjs.map +1 -1
  298. package/fesm2022/ngwr-i18n-uk.mjs +9 -33
  299. package/fesm2022/ngwr-i18n-uk.mjs.map +1 -1
  300. package/fesm2022/ngwr-i18n-vi.mjs +9 -33
  301. package/fesm2022/ngwr-i18n-vi.mjs.map +1 -1
  302. package/fesm2022/{ngwr-i18n-zh-TW.mjs → ngwr-i18n-zh-tw.mjs} +10 -34
  303. package/fesm2022/ngwr-i18n-zh-tw.mjs.map +1 -0
  304. package/fesm2022/ngwr-i18n-zh.mjs +9 -33
  305. package/fesm2022/ngwr-i18n-zh.mjs.map +1 -1
  306. package/fesm2022/ngwr-i18n.mjs.map +1 -1
  307. package/fesm2022/ngwr-icon.mjs +28 -3
  308. package/fesm2022/ngwr-icon.mjs.map +1 -1
  309. package/fesm2022/ngwr-image-cropper-testing.mjs.map +1 -1
  310. package/fesm2022/ngwr-image-cropper.mjs +1 -1
  311. package/fesm2022/ngwr-image-cropper.mjs.map +1 -1
  312. package/fesm2022/ngwr-input-number-testing.mjs.map +1 -1
  313. package/fesm2022/ngwr-input-number.mjs +9 -12
  314. package/fesm2022/ngwr-input-number.mjs.map +1 -1
  315. package/fesm2022/ngwr-input-otp-testing.mjs.map +1 -1
  316. package/fesm2022/ngwr-input-otp.mjs +7 -8
  317. package/fesm2022/ngwr-input-otp.mjs.map +1 -1
  318. package/fesm2022/ngwr-input-testing.mjs.map +1 -1
  319. package/fesm2022/ngwr-input.mjs +10 -14
  320. package/fesm2022/ngwr-input.mjs.map +1 -1
  321. package/fesm2022/ngwr-keyboard.mjs.map +1 -1
  322. package/fesm2022/ngwr-knob-testing.mjs.map +1 -1
  323. package/fesm2022/ngwr-knob.mjs +3 -3
  324. package/fesm2022/ngwr-knob.mjs.map +1 -1
  325. package/fesm2022/ngwr-lightbox-testing.mjs.map +1 -1
  326. package/fesm2022/ngwr-lightbox.mjs +8 -8
  327. package/fesm2022/ngwr-lightbox.mjs.map +1 -1
  328. package/fesm2022/ngwr-list.mjs +7 -13
  329. package/fesm2022/ngwr-list.mjs.map +1 -1
  330. package/fesm2022/ngwr-loading-bar-router.mjs +1 -1
  331. package/fesm2022/ngwr-loading-bar.mjs +3 -3
  332. package/fesm2022/ngwr-loading-bar.mjs.map +1 -1
  333. package/fesm2022/ngwr-mention-testing.mjs.map +1 -1
  334. package/fesm2022/ngwr-mention.mjs +6 -6
  335. package/fesm2022/ngwr-mention.mjs.map +1 -1
  336. package/fesm2022/ngwr-meta.mjs +10 -7
  337. package/fesm2022/ngwr-meta.mjs.map +1 -1
  338. package/fesm2022/ngwr-overlay.mjs +41 -68
  339. package/fesm2022/ngwr-overlay.mjs.map +1 -1
  340. package/fesm2022/ngwr-page-header.mjs +7 -3
  341. package/fesm2022/ngwr-page-header.mjs.map +1 -1
  342. package/fesm2022/ngwr-pagination-testing.mjs.map +1 -1
  343. package/fesm2022/ngwr-pagination.mjs +3 -4
  344. package/fesm2022/ngwr-pagination.mjs.map +1 -1
  345. package/fesm2022/ngwr-pipes.mjs +3 -22
  346. package/fesm2022/ngwr-pipes.mjs.map +1 -1
  347. package/fesm2022/ngwr-platform.mjs +4 -60
  348. package/fesm2022/ngwr-platform.mjs.map +1 -1
  349. package/fesm2022/ngwr-popconfirm-testing.mjs.map +1 -1
  350. package/fesm2022/ngwr-popconfirm.mjs +40 -40
  351. package/fesm2022/ngwr-popconfirm.mjs.map +1 -1
  352. package/fesm2022/ngwr-popover-testing.mjs +0 -3
  353. package/fesm2022/ngwr-popover-testing.mjs.map +1 -1
  354. package/fesm2022/ngwr-popover.mjs +128 -155
  355. package/fesm2022/ngwr-popover.mjs.map +1 -1
  356. package/fesm2022/ngwr-progress.mjs +1 -1
  357. package/fesm2022/ngwr-pull-to-refresh.mjs +1 -1
  358. package/fesm2022/ngwr-qr.mjs +1 -1
  359. package/fesm2022/ngwr-qr.mjs.map +1 -1
  360. package/fesm2022/ngwr-radio-testing.mjs.map +1 -1
  361. package/fesm2022/ngwr-radio.mjs +8 -6
  362. package/fesm2022/ngwr-radio.mjs.map +1 -1
  363. package/fesm2022/ngwr-rating-testing.mjs.map +1 -1
  364. package/fesm2022/ngwr-rating.mjs +3 -3
  365. package/fesm2022/ngwr-result.mjs +8 -2
  366. package/fesm2022/ngwr-result.mjs.map +1 -1
  367. package/fesm2022/ngwr-schema-form.mjs +4 -5
  368. package/fesm2022/ngwr-schema-form.mjs.map +1 -1
  369. package/fesm2022/ngwr-scroll.mjs +2 -2
  370. package/fesm2022/ngwr-scroll.mjs.map +1 -1
  371. package/fesm2022/ngwr-segmented-testing.mjs.map +1 -1
  372. package/fesm2022/ngwr-segmented.mjs +8 -4
  373. package/fesm2022/ngwr-segmented.mjs.map +1 -1
  374. package/fesm2022/ngwr-select-testing.mjs.map +1 -1
  375. package/fesm2022/ngwr-select.mjs +21 -47
  376. package/fesm2022/ngwr-select.mjs.map +1 -1
  377. package/fesm2022/ngwr-sidebar.mjs +235 -55
  378. package/fesm2022/ngwr-sidebar.mjs.map +1 -1
  379. package/fesm2022/ngwr-skeleton.mjs +5 -3
  380. package/fesm2022/ngwr-skeleton.mjs.map +1 -1
  381. package/fesm2022/ngwr-slider-testing.mjs.map +1 -1
  382. package/fesm2022/ngwr-slider.mjs +7 -5
  383. package/fesm2022/ngwr-slider.mjs.map +1 -1
  384. package/fesm2022/ngwr-sortable-list.mjs +445 -0
  385. package/fesm2022/ngwr-sortable-list.mjs.map +1 -0
  386. package/fesm2022/ngwr-speed-dial-testing.mjs.map +1 -1
  387. package/fesm2022/ngwr-speed-dial.mjs +1 -1
  388. package/fesm2022/ngwr-speed-dial.mjs.map +1 -1
  389. package/fesm2022/ngwr-spinner.mjs.map +1 -1
  390. package/fesm2022/ngwr-splitter-testing.mjs.map +1 -1
  391. package/fesm2022/ngwr-splitter.mjs +2 -2
  392. package/fesm2022/ngwr-statistic.mjs +3 -3
  393. package/fesm2022/ngwr-statistic.mjs.map +1 -1
  394. package/fesm2022/ngwr-stepper-testing.mjs.map +1 -1
  395. package/fesm2022/ngwr-stepper.mjs +1 -1
  396. package/fesm2022/ngwr-storage.mjs +6 -5
  397. package/fesm2022/ngwr-storage.mjs.map +1 -1
  398. package/fesm2022/ngwr-switch-testing.mjs.map +1 -1
  399. package/fesm2022/ngwr-switch.mjs +4 -6
  400. package/fesm2022/ngwr-switch.mjs.map +1 -1
  401. package/fesm2022/ngwr-table-testing.mjs.map +1 -1
  402. package/fesm2022/ngwr-table.mjs +34 -14
  403. package/fesm2022/ngwr-table.mjs.map +1 -1
  404. package/fesm2022/ngwr-tabs-router.mjs +2 -2
  405. package/fesm2022/ngwr-tabs-router.mjs.map +1 -1
  406. package/fesm2022/ngwr-tabs-testing.mjs.map +1 -1
  407. package/fesm2022/ngwr-tabs.mjs +12 -6
  408. package/fesm2022/ngwr-tabs.mjs.map +1 -1
  409. package/fesm2022/ngwr-textarea-testing.mjs.map +1 -1
  410. package/fesm2022/ngwr-textarea.mjs +10 -9
  411. package/fesm2022/ngwr-textarea.mjs.map +1 -1
  412. package/fesm2022/ngwr-theme.mjs +26 -169
  413. package/fesm2022/ngwr-theme.mjs.map +1 -1
  414. package/fesm2022/ngwr-timeline.mjs +8 -2
  415. package/fesm2022/ngwr-timeline.mjs.map +1 -1
  416. package/fesm2022/ngwr-toast-testing.mjs.map +1 -1
  417. package/fesm2022/ngwr-toast.mjs +11 -9
  418. package/fesm2022/ngwr-toast.mjs.map +1 -1
  419. package/fesm2022/ngwr-toolbar.mjs +1 -1
  420. package/fesm2022/ngwr-tour-testing.mjs.map +1 -1
  421. package/fesm2022/ngwr-tour.mjs +10 -8
  422. package/fesm2022/ngwr-tour.mjs.map +1 -1
  423. package/fesm2022/ngwr-transfer-testing.mjs.map +1 -1
  424. package/fesm2022/ngwr-transfer.mjs +9 -5
  425. package/fesm2022/ngwr-transfer.mjs.map +1 -1
  426. package/fesm2022/ngwr-tree-testing.mjs.map +1 -1
  427. package/fesm2022/ngwr-tree.mjs +8 -8
  428. package/fesm2022/ngwr-tree.mjs.map +1 -1
  429. package/fesm2022/ngwr-typography.mjs +1 -1
  430. package/fesm2022/ngwr-typography.mjs.map +1 -1
  431. package/fesm2022/ngwr-utils.mjs +70 -2
  432. package/fesm2022/ngwr-utils.mjs.map +1 -1
  433. package/fesm2022/ngwr-validators.mjs.map +1 -1
  434. package/fesm2022/ngwr-version.mjs +1 -1
  435. package/fesm2022/ngwr-version.mjs.map +1 -1
  436. package/fesm2022/ngwr-virtual-scroll.mjs +5 -5
  437. package/fesm2022/ngwr-virtual-scroll.mjs.map +1 -1
  438. package/fesm2022/ngwr-window-testing.mjs.map +1 -1
  439. package/fesm2022/ngwr-window.mjs +7 -5
  440. package/fesm2022/ngwr-window.mjs.map +1 -1
  441. package/fesm2022/ngwr.mjs +20 -0
  442. package/fesm2022/ngwr.mjs.map +1 -0
  443. package/file-upload/styles/_index.scss +52 -24
  444. package/form/styles/_index.scss +42 -41
  445. package/graph/styles/_index.scss +9 -6
  446. package/i18n/ar.json +9 -35
  447. package/i18n/cs.json +9 -35
  448. package/i18n/de.json +9 -35
  449. package/i18n/en.json +9 -35
  450. package/i18n/es.json +9 -35
  451. package/i18n/fr.json +9 -35
  452. package/i18n/he.json +9 -35
  453. package/i18n/hi.json +9 -35
  454. package/i18n/id.json +9 -35
  455. package/i18n/it.json +9 -35
  456. package/i18n/ja.json +9 -35
  457. package/i18n/ko.json +9 -35
  458. package/i18n/nl.json +9 -35
  459. package/i18n/pl.json +9 -35
  460. package/i18n/pt.json +9 -35
  461. package/i18n/ru.json +9 -35
  462. package/i18n/sv.json +9 -35
  463. package/i18n/tr.json +9 -35
  464. package/i18n/uk.json +9 -35
  465. package/i18n/vi.json +9 -35
  466. package/i18n/zh-TW.json +9 -35
  467. package/i18n/zh.json +9 -35
  468. package/icon/styles/_index.scss +4 -12
  469. package/image-cropper/styles/_index.scss +12 -6
  470. package/input/styles/_index.scss +21 -14
  471. package/input-number/styles/_index.scss +22 -4
  472. package/input-otp/styles/_index.scss +21 -9
  473. package/keyboard/styles/_index.scss +28 -17
  474. package/knob/styles/_index.scss +15 -6
  475. package/layout/styles/_index.scss +7 -7
  476. package/lightbox/styles/_index.scss +4 -4
  477. package/lightbox/styles/_rules.scss +31 -15
  478. package/list/styles/_index.scss +6 -6
  479. package/list/styles/_rules.scss +13 -10
  480. package/llms-full.txt +364 -415
  481. package/llms.txt +167 -112
  482. package/loading-bar/styles/_index.scss +7 -7
  483. package/loading-bar/styles/_rules.scss +1 -1
  484. package/mcp/api.js +9 -9
  485. package/mcp/catalog.js +3 -3
  486. package/mcp/providers.js +2 -17
  487. package/mcp/tools.js +2 -2
  488. package/mention/styles/_index.scss +23 -11
  489. package/overlay/styles/_arrow.scss +5 -19
  490. package/package.json +618 -673
  491. package/page-header/styles/_index.scss +32 -15
  492. package/pagination/styles/_index.scss +41 -14
  493. package/popconfirm/styles/_index.scss +38 -10
  494. package/popover/styles/_index.scss +27 -14
  495. package/progress/styles/_index.scss +1 -5
  496. package/pull-to-refresh/styles/_index.scss +17 -1
  497. package/qr/styles/_index.scss +3 -1
  498. package/radio/styles/_index.scss +22 -10
  499. package/rating/styles/_index.scss +6 -3
  500. package/result/styles/_index.scss +24 -23
  501. package/schema-form/styles/_index.scss +24 -1
  502. package/schematics/collection.json +2 -2
  503. package/schematics/icon-set/index.js +5 -5
  504. package/schematics/migrations/v7/index.js +1 -1
  505. package/schematics/migrations.json +1 -1
  506. package/schematics/ng-add/index.js +52 -79
  507. package/schematics/ng-add/schema.json +36 -44
  508. package/schematics/page/templates.js +4 -2
  509. package/schematics/provider/index.js +155 -43
  510. package/schematics/provider/schema.json +4 -16
  511. package/schematics/use/index.js +1 -1
  512. package/schematics/use/rule.js +1 -6
  513. package/schematics/use/symbol-map.json +34 -42
  514. package/segmented/styles/_index.scss +20 -6
  515. package/select/styles/_index.scss +100 -48
  516. package/sidebar/styles/_index.scss +317 -200
  517. package/skeleton/styles/_index.scss +21 -8
  518. package/skills/ngwr/SKILL.md +14 -16
  519. package/skills/ngwr/references/catalog.md +54 -65
  520. package/skills/ngwr/references/setup.md +71 -38
  521. package/slider/styles/_index.scss +13 -7
  522. package/sortable-list/styles/_index.scss +16 -0
  523. package/{drag-drop → sortable-list}/styles/_rules.scss +38 -9
  524. package/speed-dial/styles/_index.scss +32 -5
  525. package/splitter/styles/_index.scss +11 -6
  526. package/statistic/styles/_index.scss +49 -21
  527. package/stepper/styles/_index.scss +54 -28
  528. package/styles/_animations.scss +11 -4
  529. package/styles/_grid.scss +13 -0
  530. package/styles/_reset.scss +18 -4
  531. package/styles/_typography.scss +9 -4
  532. package/switch/styles/_index.scss +7 -7
  533. package/table/styles/_index.scss +159 -78
  534. package/tabs/styles/_index.scss +16 -15
  535. package/textarea/styles/_index.scss +18 -9
  536. package/theme/_index.scss +28 -36
  537. package/theme/styles/_box-model.scss +30 -6
  538. package/theme/styles/_colors.scss +436 -264
  539. package/theme/styles/_contrast.scss +35 -107
  540. package/theme/styles/_focus.scss +6 -10
  541. package/theme/styles/_index.scss +0 -1
  542. package/theme/styles/_motion.scss +2 -12
  543. package/theme/styles/_variables.scss +61 -28
  544. package/timeline/styles/_index.scss +53 -26
  545. package/toast/styles/_index.scss +66 -31
  546. package/toolbar/styles/_index.scss +15 -7
  547. package/tour/styles/_index.scss +51 -21
  548. package/transfer/styles/_index.scss +62 -18
  549. package/tree/styles/_index.scss +72 -41
  550. package/types/ngwr-affix.d.ts +9 -3
  551. package/types/ngwr-anchor.d.ts +14 -1
  552. package/types/ngwr-avatar.d.ts +1 -1
  553. package/types/ngwr-badge.d.ts +4 -4
  554. package/types/{ngwr-aurora.d.ts → ngwr-bits-aurora.d.ts} +12 -6
  555. package/types/{ngwr-border-glow.d.ts → ngwr-bits-border-glow.d.ts} +13 -4
  556. package/types/{ngwr-click-spark.d.ts → ngwr-bits-click-spark.d.ts} +9 -8
  557. package/types/{ngwr-confetti.d.ts → ngwr-bits-confetti.d.ts} +1 -1
  558. package/types/{ngwr-glitch-text.d.ts → ngwr-bits-glitch-text.d.ts} +4 -4
  559. package/types/{ngwr-gradient-text-testing.d.ts → ngwr-bits-gradient-text-testing.d.ts} +1 -1
  560. package/types/{ngwr-gradient-text.d.ts → ngwr-bits-gradient-text.d.ts} +2 -2
  561. package/types/{ngwr-shiny-text-testing.d.ts → ngwr-bits-shiny-text-testing.d.ts} +2 -2
  562. package/types/{ngwr-shiny-text.d.ts → ngwr-bits-shiny-text.d.ts} +16 -3
  563. package/types/{ngwr-splash-cursor.d.ts → ngwr-bits-splash-cursor.d.ts} +1 -1
  564. package/types/{ngwr-split-text.d.ts → ngwr-bits-split-text.d.ts} +1 -1
  565. package/types/{ngwr-spotlight-card-testing.d.ts → ngwr-bits-spotlight-card-testing.d.ts} +5 -5
  566. package/types/{ngwr-spotlight-card.d.ts → ngwr-bits-spotlight-card.d.ts} +4 -1
  567. package/types/{ngwr-star-border.d.ts → ngwr-bits-star-border.d.ts} +1 -1
  568. package/types/{ngwr-tilt-card.d.ts → ngwr-bits-tilt-card.d.ts} +0 -3
  569. package/types/{ngwr-waves.d.ts → ngwr-bits-waves.d.ts} +8 -3
  570. package/types/ngwr-button.d.ts +16 -45
  571. package/types/ngwr-calendar.d.ts +21 -3
  572. package/types/ngwr-carousel.d.ts +2 -2
  573. package/types/ngwr-cascader.d.ts +16 -1
  574. package/types/{ngwr-bar-chart.d.ts → ngwr-charts-bar-chart.d.ts} +21 -0
  575. package/types/{ngwr-calendar-heatmap.d.ts → ngwr-charts-calendar-heatmap.d.ts} +5 -1
  576. package/types/{ngwr-donut-chart.d.ts → ngwr-charts-donut-chart.d.ts} +4 -0
  577. package/types/{ngwr-gauge.d.ts → ngwr-charts-gauge.d.ts} +18 -0
  578. package/types/{ngwr-line-chart.d.ts → ngwr-charts-line-chart.d.ts} +36 -1
  579. package/types/{ngwr-meter-group.d.ts → ngwr-charts-meter-group.d.ts} +4 -0
  580. package/types/{ngwr-sparkline.d.ts → ngwr-charts-sparkline.d.ts} +4 -0
  581. package/types/ngwr-checkbox.d.ts +31 -17
  582. package/types/ngwr-collapse.d.ts +14 -8
  583. package/types/ngwr-color-picker.d.ts +23 -5
  584. package/types/ngwr-command-palette-testing.d.ts +0 -13
  585. package/types/ngwr-command-palette.d.ts +0 -17
  586. package/types/ngwr-compare.d.ts +2 -1
  587. package/types/ngwr-counter.d.ts +7 -4
  588. package/types/ngwr-date-picker-testing.d.ts +2 -2
  589. package/types/ngwr-date-picker.d.ts +41 -12
  590. package/types/ngwr-date.d.ts +46 -35
  591. package/types/ngwr-density.d.ts +21 -4
  592. package/types/ngwr-descriptions.d.ts +4 -0
  593. package/types/ngwr-dialog.d.ts +5 -13
  594. package/types/ngwr-directives.d.ts +12 -0
  595. package/types/ngwr-divider.d.ts +1 -1
  596. package/types/ngwr-drawer-testing.d.ts +2 -11
  597. package/types/ngwr-drawer.d.ts +6 -38
  598. package/types/ngwr-dropdown.d.ts +1 -16
  599. package/types/ngwr-editor-testing.d.ts +15 -13
  600. package/types/ngwr-editor.d.ts +50 -89
  601. package/types/ngwr-event-calendar.d.ts +2 -2
  602. package/types/ngwr-form-testing.d.ts +15 -13
  603. package/types/ngwr-form.d.ts +37 -65
  604. package/types/ngwr-hotkey.d.ts +4 -0
  605. package/types/ngwr-i18n-en.d.ts +1 -1
  606. package/types/ngwr-i18n.d.ts +10 -9
  607. package/types/ngwr-icon.d.ts +84 -19
  608. package/types/ngwr-input-number.d.ts +13 -30
  609. package/types/ngwr-input-otp.d.ts +14 -15
  610. package/types/ngwr-input.d.ts +6 -19
  611. package/types/ngwr-knob.d.ts +4 -5
  612. package/types/ngwr-lightbox.d.ts +1 -1
  613. package/types/ngwr-mention.d.ts +1 -1
  614. package/types/ngwr-meta.d.ts +39 -14
  615. package/types/ngwr-overlay.d.ts +26 -102
  616. package/types/ngwr-pagination-testing.d.ts +4 -11
  617. package/types/ngwr-pipes.d.ts +5 -9
  618. package/types/ngwr-platform.d.ts +0 -30
  619. package/types/ngwr-popconfirm-testing.d.ts +1 -1
  620. package/types/ngwr-popconfirm.d.ts +3 -3
  621. package/types/ngwr-popover-testing.d.ts +2 -4
  622. package/types/ngwr-popover.d.ts +10 -15
  623. package/types/ngwr-progress.d.ts +1 -1
  624. package/types/ngwr-qr.d.ts +15 -1
  625. package/types/ngwr-radio.d.ts +20 -14
  626. package/types/ngwr-rating.d.ts +1 -1
  627. package/types/ngwr-result.d.ts +18 -0
  628. package/types/ngwr-schema-form.d.ts +9 -4
  629. package/types/ngwr-scroll.d.ts +7 -1
  630. package/types/ngwr-segmented-testing.d.ts +1 -4
  631. package/types/ngwr-segmented.d.ts +15 -1
  632. package/types/ngwr-select.d.ts +78 -65
  633. package/types/ngwr-sidebar.d.ts +160 -67
  634. package/types/ngwr-skeleton.d.ts +10 -7
  635. package/types/ngwr-slider.d.ts +19 -0
  636. package/types/ngwr-sortable-list.d.ts +348 -0
  637. package/types/ngwr-speed-dial.d.ts +4 -0
  638. package/types/ngwr-statistic.d.ts +5 -1
  639. package/types/ngwr-storage.d.ts +58 -36
  640. package/types/ngwr-switch.d.ts +3 -8
  641. package/types/ngwr-table.d.ts +38 -4
  642. package/types/ngwr-tabs-router.d.ts +2 -2
  643. package/types/ngwr-tabs-testing.d.ts +1 -3
  644. package/types/ngwr-tabs.d.ts +16 -10
  645. package/types/ngwr-textarea.d.ts +16 -6
  646. package/types/ngwr-theme.d.ts +126 -106
  647. package/types/ngwr-timeline.d.ts +26 -3
  648. package/types/ngwr-toast.d.ts +33 -30
  649. package/types/ngwr-tour.d.ts +4 -3
  650. package/types/ngwr-transfer.d.ts +15 -1
  651. package/types/ngwr-tree.d.ts +1 -1
  652. package/types/ngwr-typography.d.ts +26 -10
  653. package/types/ngwr-utils.d.ts +105 -7
  654. package/types/ngwr-version.d.ts +2 -2
  655. package/types/ngwr-virtual-scroll.d.ts +1 -1
  656. package/types/ngwr-window.d.ts +5 -5
  657. package/types/ngwr.d.ts +48 -1
  658. package/typography/styles/_index.scss +134 -72
  659. package/typography/styles/_typeset.scss +318 -0
  660. package/virtual-scroll/styles/_index.scss +8 -7
  661. package/virtual-scroll/styles/_rules.scss +4 -2
  662. package/window/styles/_index.scss +81 -33
  663. package/action-sheet/styles/_index.scss +0 -101
  664. package/aurora/styles/_dark.scss +0 -21
  665. package/aurora/styles/_index.scss +0 -11
  666. package/bar-chart/styles/_index.scss +0 -56
  667. package/border-glow/styles/_dark.scss +0 -46
  668. package/border-glow/styles/_index.scss +0 -20
  669. package/circular-text/styles/_index.scss +0 -15
  670. package/donut-chart/styles/_index.scss +0 -86
  671. package/drag-drop/styles/_index.scss +0 -15
  672. package/falling-text/styles/_index.scss +0 -15
  673. package/fesm2022/ngwr-action-sheet-testing.mjs +0 -114
  674. package/fesm2022/ngwr-action-sheet-testing.mjs.map +0 -1
  675. package/fesm2022/ngwr-action-sheet.mjs +0 -211
  676. package/fesm2022/ngwr-action-sheet.mjs.map +0 -1
  677. package/fesm2022/ngwr-aurora.mjs.map +0 -1
  678. package/fesm2022/ngwr-bar-chart-testing.mjs.map +0 -1
  679. package/fesm2022/ngwr-bar-chart.mjs.map +0 -1
  680. package/fesm2022/ngwr-blur-text-testing.mjs.map +0 -1
  681. package/fesm2022/ngwr-blur-text.mjs.map +0 -1
  682. package/fesm2022/ngwr-border-glow-testing.mjs.map +0 -1
  683. package/fesm2022/ngwr-border-glow.mjs +0 -453
  684. package/fesm2022/ngwr-border-glow.mjs.map +0 -1
  685. package/fesm2022/ngwr-calendar-heatmap-testing.mjs.map +0 -1
  686. package/fesm2022/ngwr-calendar-heatmap.mjs.map +0 -1
  687. package/fesm2022/ngwr-circular-text-testing.mjs.map +0 -1
  688. package/fesm2022/ngwr-circular-text.mjs.map +0 -1
  689. package/fesm2022/ngwr-click-spark.mjs.map +0 -1
  690. package/fesm2022/ngwr-confetti.mjs.map +0 -1
  691. package/fesm2022/ngwr-config.mjs +0 -40
  692. package/fesm2022/ngwr-config.mjs.map +0 -1
  693. package/fesm2022/ngwr-date-adapters-fns.mjs +0 -182
  694. package/fesm2022/ngwr-date-adapters-fns.mjs.map +0 -1
  695. package/fesm2022/ngwr-date-adapters-luxon.mjs +0 -177
  696. package/fesm2022/ngwr-date-adapters-luxon.mjs.map +0 -1
  697. package/fesm2022/ngwr-decrypt-text-testing.mjs.map +0 -1
  698. package/fesm2022/ngwr-decrypt-text.mjs.map +0 -1
  699. package/fesm2022/ngwr-donut-chart-testing.mjs.map +0 -1
  700. package/fesm2022/ngwr-donut-chart.mjs.map +0 -1
  701. package/fesm2022/ngwr-drag-drop.mjs +0 -415
  702. package/fesm2022/ngwr-drag-drop.mjs.map +0 -1
  703. package/fesm2022/ngwr-falling-text-testing.mjs.map +0 -1
  704. package/fesm2022/ngwr-falling-text.mjs.map +0 -1
  705. package/fesm2022/ngwr-fuzzy-text-testing.mjs.map +0 -1
  706. package/fesm2022/ngwr-fuzzy-text.mjs.map +0 -1
  707. package/fesm2022/ngwr-gauge-testing.mjs.map +0 -1
  708. package/fesm2022/ngwr-gauge.mjs.map +0 -1
  709. package/fesm2022/ngwr-glitch-text-testing.mjs.map +0 -1
  710. package/fesm2022/ngwr-glitch-text.mjs.map +0 -1
  711. package/fesm2022/ngwr-gradient-text-testing.mjs.map +0 -1
  712. package/fesm2022/ngwr-gradient-text.mjs.map +0 -1
  713. package/fesm2022/ngwr-i18n-zh-TW.mjs.map +0 -1
  714. package/fesm2022/ngwr-icon-adapters-feather.mjs +0 -36
  715. package/fesm2022/ngwr-icon-adapters-feather.mjs.map +0 -1
  716. package/fesm2022/ngwr-icon-adapters-lucide.mjs +0 -45
  717. package/fesm2022/ngwr-icon-adapters-lucide.mjs.map +0 -1
  718. package/fesm2022/ngwr-line-chart-testing.mjs.map +0 -1
  719. package/fesm2022/ngwr-line-chart.mjs.map +0 -1
  720. package/fesm2022/ngwr-markdown-testing.mjs +0 -185
  721. package/fesm2022/ngwr-markdown-testing.mjs.map +0 -1
  722. package/fesm2022/ngwr-markdown.mjs +0 -1742
  723. package/fesm2022/ngwr-markdown.mjs.map +0 -1
  724. package/fesm2022/ngwr-marquee-testing.mjs.map +0 -1
  725. package/fesm2022/ngwr-marquee.mjs.map +0 -1
  726. package/fesm2022/ngwr-media.mjs +0 -108
  727. package/fesm2022/ngwr-media.mjs.map +0 -1
  728. package/fesm2022/ngwr-meter-group-testing.mjs.map +0 -1
  729. package/fesm2022/ngwr-meter-group.mjs.map +0 -1
  730. package/fesm2022/ngwr-rotating-text-testing.mjs.map +0 -1
  731. package/fesm2022/ngwr-rotating-text.mjs.map +0 -1
  732. package/fesm2022/ngwr-shiny-text-testing.mjs.map +0 -1
  733. package/fesm2022/ngwr-shiny-text.mjs.map +0 -1
  734. package/fesm2022/ngwr-sparkline-testing.mjs.map +0 -1
  735. package/fesm2022/ngwr-sparkline.mjs.map +0 -1
  736. package/fesm2022/ngwr-splash-cursor-testing.mjs.map +0 -1
  737. package/fesm2022/ngwr-splash-cursor.mjs.map +0 -1
  738. package/fesm2022/ngwr-split-text-testing.mjs.map +0 -1
  739. package/fesm2022/ngwr-split-text.mjs.map +0 -1
  740. package/fesm2022/ngwr-spotlight-card-testing.mjs.map +0 -1
  741. package/fesm2022/ngwr-spotlight-card.mjs.map +0 -1
  742. package/fesm2022/ngwr-squircle.mjs +0 -424
  743. package/fesm2022/ngwr-squircle.mjs.map +0 -1
  744. package/fesm2022/ngwr-star-border-testing.mjs.map +0 -1
  745. package/fesm2022/ngwr-star-border.mjs.map +0 -1
  746. package/fesm2022/ngwr-tilt-card-testing.mjs.map +0 -1
  747. package/fesm2022/ngwr-tilt-card.mjs.map +0 -1
  748. package/fesm2022/ngwr-typewriter-testing.mjs.map +0 -1
  749. package/fesm2022/ngwr-typewriter.mjs.map +0 -1
  750. package/fesm2022/ngwr-waves-testing.mjs.map +0 -1
  751. package/fesm2022/ngwr-waves.mjs.map +0 -1
  752. package/gauge/styles/_index.scss +0 -38
  753. package/glitch-text/styles/_index.scss +0 -15
  754. package/gradient-text/styles/_index.scss +0 -15
  755. package/markdown/styles/_index.scss +0 -299
  756. package/marquee/styles/_index.scss +0 -15
  757. package/overlay/styles/_index.scss +0 -76
  758. package/shiny-text/styles/_dark.scss +0 -20
  759. package/shiny-text/styles/_index.scss +0 -20
  760. package/shiny-text/styles/_rules.scss +0 -97
  761. package/spotlight-card/styles/_dark.scss +0 -21
  762. package/spotlight-card/styles/_index.scss +0 -20
  763. package/squircle/styles/_index.scss +0 -39
  764. package/star-border/styles/_dark.scss +0 -21
  765. package/star-border/styles/_index.scss +0 -20
  766. package/styles.scss +0 -127
  767. package/theme/styles/_dark.scss +0 -353
  768. package/tilt-card/styles/_dark.scss +0 -21
  769. package/tilt-card/styles/_index.scss +0 -20
  770. package/tilt-card/styles/_rules.scss +0 -35
  771. package/types/ngwr-action-sheet-testing.d.ts +0 -234
  772. package/types/ngwr-action-sheet.d.ts +0 -121
  773. package/types/ngwr-config.d.ts +0 -170
  774. package/types/ngwr-date-adapters-fns.d.ts +0 -123
  775. package/types/ngwr-date-adapters-luxon.d.ts +0 -88
  776. package/types/ngwr-drag-drop.d.ts +0 -201
  777. package/types/ngwr-icon-adapters-feather.d.ts +0 -46
  778. package/types/ngwr-icon-adapters-lucide.d.ts +0 -46
  779. package/types/ngwr-markdown-testing.d.ts +0 -435
  780. package/types/ngwr-markdown.d.ts +0 -718
  781. package/types/ngwr-media.d.ts +0 -60
  782. package/types/ngwr-squircle.d.ts +0 -193
  783. package/typewriter/styles/_index.scss +0 -15
  784. package/waves/styles/_dark.scss +0 -19
  785. package/waves/styles/_index.scss +0 -20
  786. /package/{aurora → bits/aurora}/aurora.scss +0 -0
  787. /package/{blur-text → bits/blur-text}/blur-text.scss +0 -0
  788. /package/{blur-text → bits/blur-text}/styles/_index.scss +0 -0
  789. /package/{border-glow → bits/border-glow}/border-glow.scss +0 -0
  790. /package/{circular-text → bits/circular-text}/circular-text.scss +0 -0
  791. /package/{click-spark → bits/click-spark}/click-spark.scss +0 -0
  792. /package/{click-spark → bits/click-spark}/styles/_index.scss +0 -0
  793. /package/{decrypt-text → bits/decrypt-text}/decrypt-text.scss +0 -0
  794. /package/{decrypt-text → bits/decrypt-text}/styles/_index.scss +0 -0
  795. /package/{falling-text → bits/falling-text}/falling-text.scss +0 -0
  796. /package/{falling-text → bits/falling-text}/styles/_rules.scss +0 -0
  797. /package/{glitch-text → bits/glitch-text}/glitch-text.scss +0 -0
  798. /package/{gradient-text → bits/gradient-text}/gradient-text.scss +0 -0
  799. /package/{marquee → bits/marquee}/marquee.scss +0 -0
  800. /package/{marquee → bits/marquee}/styles/_rules.scss +0 -0
  801. /package/{rotating-text → bits/rotating-text}/rotating-text.scss +0 -0
  802. /package/{rotating-text → bits/rotating-text}/styles/_index.scss +0 -0
  803. /package/{shiny-text → bits/shiny-text}/shiny-text.scss +0 -0
  804. /package/{splash-cursor → bits/splash-cursor}/splash-cursor.scss +0 -0
  805. /package/{splash-cursor → bits/splash-cursor}/styles/_index.scss +0 -0
  806. /package/{split-text → bits/split-text}/split-text.scss +0 -0
  807. /package/{split-text → bits/split-text}/styles/_index.scss +0 -0
  808. /package/{spotlight-card → bits/spotlight-card}/spotlight-card.scss +0 -0
  809. /package/{star-border → bits/star-border}/star-border.scss +0 -0
  810. /package/{tilt-card → bits/tilt-card}/tilt-card.scss +0 -0
  811. /package/{typewriter → bits/typewriter}/styles/_rules.scss +0 -0
  812. /package/{typewriter → bits/typewriter}/typewriter.scss +0 -0
  813. /package/{waves → bits/waves}/waves.scss +0 -0
  814. /package/{drag-drop → sortable-list}/sortable-list.scss +0 -0
  815. /package/types/{ngwr-blur-text-testing.d.ts → ngwr-bits-blur-text-testing.d.ts} +0 -0
  816. /package/types/{ngwr-blur-text.d.ts → ngwr-bits-blur-text.d.ts} +0 -0
  817. /package/types/{ngwr-border-glow-testing.d.ts → ngwr-bits-border-glow-testing.d.ts} +0 -0
  818. /package/types/{ngwr-circular-text-testing.d.ts → ngwr-bits-circular-text-testing.d.ts} +0 -0
  819. /package/types/{ngwr-circular-text.d.ts → ngwr-bits-circular-text.d.ts} +0 -0
  820. /package/types/{ngwr-decrypt-text-testing.d.ts → ngwr-bits-decrypt-text-testing.d.ts} +0 -0
  821. /package/types/{ngwr-decrypt-text.d.ts → ngwr-bits-decrypt-text.d.ts} +0 -0
  822. /package/types/{ngwr-falling-text-testing.d.ts → ngwr-bits-falling-text-testing.d.ts} +0 -0
  823. /package/types/{ngwr-falling-text.d.ts → ngwr-bits-falling-text.d.ts} +0 -0
  824. /package/types/{ngwr-fuzzy-text-testing.d.ts → ngwr-bits-fuzzy-text-testing.d.ts} +0 -0
  825. /package/types/{ngwr-fuzzy-text.d.ts → ngwr-bits-fuzzy-text.d.ts} +0 -0
  826. /package/types/{ngwr-glitch-text-testing.d.ts → ngwr-bits-glitch-text-testing.d.ts} +0 -0
  827. /package/types/{ngwr-marquee-testing.d.ts → ngwr-bits-marquee-testing.d.ts} +0 -0
  828. /package/types/{ngwr-marquee.d.ts → ngwr-bits-marquee.d.ts} +0 -0
  829. /package/types/{ngwr-rotating-text-testing.d.ts → ngwr-bits-rotating-text-testing.d.ts} +0 -0
  830. /package/types/{ngwr-rotating-text.d.ts → ngwr-bits-rotating-text.d.ts} +0 -0
  831. /package/types/{ngwr-splash-cursor-testing.d.ts → ngwr-bits-splash-cursor-testing.d.ts} +0 -0
  832. /package/types/{ngwr-split-text-testing.d.ts → ngwr-bits-split-text-testing.d.ts} +0 -0
  833. /package/types/{ngwr-star-border-testing.d.ts → ngwr-bits-star-border-testing.d.ts} +0 -0
  834. /package/types/{ngwr-tilt-card-testing.d.ts → ngwr-bits-tilt-card-testing.d.ts} +0 -0
  835. /package/types/{ngwr-typewriter-testing.d.ts → ngwr-bits-typewriter-testing.d.ts} +0 -0
  836. /package/types/{ngwr-typewriter.d.ts → ngwr-bits-typewriter.d.ts} +0 -0
  837. /package/types/{ngwr-waves-testing.d.ts → ngwr-bits-waves-testing.d.ts} +0 -0
  838. /package/types/{ngwr-bar-chart-testing.d.ts → ngwr-charts-bar-chart-testing.d.ts} +0 -0
  839. /package/types/{ngwr-calendar-heatmap-testing.d.ts → ngwr-charts-calendar-heatmap-testing.d.ts} +0 -0
  840. /package/types/{ngwr-donut-chart-testing.d.ts → ngwr-charts-donut-chart-testing.d.ts} +0 -0
  841. /package/types/{ngwr-gauge-testing.d.ts → ngwr-charts-gauge-testing.d.ts} +0 -0
  842. /package/types/{ngwr-line-chart-testing.d.ts → ngwr-charts-line-chart-testing.d.ts} +0 -0
  843. /package/types/{ngwr-meter-group-testing.d.ts → ngwr-charts-meter-group-testing.d.ts} +0 -0
  844. /package/types/{ngwr-sparkline-testing.d.ts → ngwr-charts-sparkline-testing.d.ts} +0 -0
  845. /package/types/{ngwr-i18n-zh-TW.d.ts → ngwr-i18n-zh-tw.d.ts} +0 -0
package/README.md CHANGED
@@ -37,14 +37,16 @@ export class SignupCard {
37
37
  private readonly model = signal({ email: '', agree: false });
38
38
 
39
39
  readonly signup = form(this.model, path => {
40
- required(path.email);
41
- email(path.email);
40
+ required(path.email, { message: 'Enter your work email.' });
41
+ email(path.email, { message: 'That is not an email address.' });
42
42
  });
43
43
  }
44
44
  ```
45
45
 
46
- `<wr-form-field>` shows the validation messages itself, so there is no error
47
- markup to write. Template-driven and reactive forms bind too, with limits the
46
+ `<wr-form-field>` shows each rule's `message`, so there is no error markup to
47
+ write. ngwr ships no validation copy of its own: for a rule without a message,
48
+ the field reads `validation.<key>` from your i18n catalog. Template-driven and
49
+ reactive forms bind too, with limits the
48
50
  [forms guide](https://ngwr.dev/guides/forms) lists.
49
51
 
50
52
  ## Features
@@ -54,7 +56,7 @@ markup to write. Template-driven and reactive forms bind too, with limits the
54
56
  - One import path per component (`ngwr/button`, `ngwr/select`). The only
55
57
  runtime dependency is `tslib`.
56
58
  - [Theming](https://ngwr.dev/guides/theming) through `--wr-*` CSS custom
57
- properties, with light and dark modes.
59
+ properties, with light and dark modes that follow `color-scheme`.
58
60
  - Keyboard and screen reader support based on the WAI-ARIA patterns.
59
61
  - Translatable built-in labels and right-to-left layouts.
60
62
  - Angular CDK [test harnesses](https://ngwr.dev/guides/testing) for the form
@@ -70,8 +72,8 @@ services and validators are in the [reference](https://ngwr.dev/reference).
70
72
  ng add ngwr
71
73
  ```
72
74
 
73
- The schematic asks a few questions, adds `@use 'ngwr';` to your global Sass
74
- stylesheet and prints the providers to add to your app.
75
+ The schematic asks a few questions, adds `@use 'ngwr/theme';` to your global
76
+ Sass stylesheet and prints the providers to add to your app.
75
77
 
76
78
  Or install the packages yourself:
77
79
 
@@ -83,26 +85,25 @@ npm install ngwr @angular/cdk
83
85
  yarn add ngwr @angular/cdk
84
86
  ```
85
87
 
86
- The optional packages (a date library, an icon set, ProseMirror for the editor)
87
- are listed in the [installation guide](https://ngwr.dev/start/installation).
88
+ The optional packages (an icon set, ProseMirror for the editor) are listed in
89
+ the [installation guide](https://ngwr.dev/start/installation).
88
90
 
89
91
  ## Styles
90
92
 
91
- ```scss
92
- // styles.scss
93
- @use 'ngwr';
94
- ```
95
-
96
- This loads the theme and the styles of every component. To keep the stylesheet
97
- small, load only the components you use. Each entry brings the theme with it:
93
+ One `@use` per thing you render, with the token layer on the first line. There
94
+ is no umbrella stylesheet: each component brings the theme with it and Sass
95
+ emits it once, but only a module's first load can take `with ()`, which is
96
+ where `$base-colors` goes.
98
97
 
99
98
  ```scss
99
+ // styles.scss
100
+ @use 'ngwr/theme';
100
101
  @use 'ngwr/form';
101
102
  @use 'ngwr/input';
102
103
  @use 'ngwr/checkbox';
103
104
  ```
104
105
 
105
- Utilities are opt-in and are not part of `@use 'ngwr'`:
106
+ Utilities are opt-in and come with nothing:
106
107
 
107
108
  ```scss
108
109
  @use 'ngwr/reset'; // box-sizing, body margin, sane defaults
@@ -112,6 +113,28 @@ Utilities are opt-in and are not part of `@use 'ngwr'`:
112
113
  @use 'ngwr/breakpoints' as bp; // Sass mixins only, no CSS output
113
114
  ```
114
115
 
116
+ ## Configuration
117
+
118
+ Nothing has to be configured. When you want app-wide settings, they go through
119
+ one `provideWr()` call, with a feature for each thing you set, imported from
120
+ its own entry point:
121
+
122
+ ```ts
123
+ import { provideWr } from 'ngwr';
124
+ import { withDensity } from 'ngwr/density';
125
+ import { withTheme } from 'ngwr/theme';
126
+
127
+ providers: [
128
+ provideWr(
129
+ withDensity({ defaultDensity: 'sm' }),
130
+ withTheme({ defaultMode: 'dark' }),
131
+ ),
132
+ ],
133
+ ```
134
+
135
+ Icons and translations have calls of their own. The
136
+ [configuration guide](https://ngwr.dev/docs/configuration) lists every feature.
137
+
115
138
  ## Upgrading
116
139
 
117
140
  ```sh
@@ -1,12 +1,15 @@
1
- // Minimal styles — the directive does most of the work inline. We just
2
- // expose a class hook so consumers can style the "stuck" state.
1
+ // Almost nothing — the directive does the work inline. This layer owns one
2
+ // declaration, the stacking order below, and otherwise only exposes the class
3
+ // hook a consumer styles the "stuck" state with.
3
4
  //
4
5
  // The directive sets `position: sticky; top: <offset>px` on the host and
5
6
  // toggles `wr-affix--active` via an IntersectionObserver sentinel.
6
7
 
7
8
  .wr-affix {
8
- // No baseline styles intentionally — the host is the consumer's
9
- // element. We only own the `position: sticky` (set inline) and the
10
- // optional active modifier.
9
+ // The host is the consumer's element, so the only thing this layer owns is
10
+ // the stacking order: a pinned element has to sit above the content that
11
+ // scrolls under it. There is no token for it — out-specify `.wr-affix` to
12
+ // restack. `position: sticky` and `top` are set inline by the directive, and
13
+ // the active modifier is the consumer's to style.
11
14
  z-index: 10;
12
15
  }
@@ -1,5 +1,19 @@
1
1
  @use '../../theme/styles' as theme;
2
2
 
3
+ // Styles for the entry points this component's own markup renders.
4
+ //
5
+ // v15 removed the `@use 'ngwr'` umbrella, which is what had been covering these:
6
+ // a consumer now writes one `@use` per component they place, and never learns
7
+ // about the ones a component places INSIDE itself. `@use 'ngwr/date-picker'`
8
+ // alone gave a date field with a raw browser input — grey, square, 2px inset —
9
+ // and `@use 'ngwr/table'` a table with unstyled checkboxes and pager. Nothing
10
+ // says so: the component renders, the markup is right, and no build, console or
11
+ // gate has an opinion about a missing rule.
12
+ //
13
+ // Sass deduplicates `@use` within a compilation, so an app that also loads one of
14
+ // these by hand still emits it once.
15
+ @use '../../icon/styles' as icon-styles; // WrIcon
16
+
3
17
  $alert-colors: (
4
18
  info: info,
5
19
  success: success,
@@ -10,7 +24,7 @@ $alert-colors: (
10
24
  .wr-alert {
11
25
  display: flex;
12
26
  align-items: stretch;
13
- gap: 0.75rem;
27
+ gap: var(--wr-alert-gap);
14
28
  // Claim the full row even when nested in a flex-row demo wrapper.
15
29
  flex: 1 1 100%;
16
30
  width: 100%;
@@ -37,10 +51,25 @@ $alert-colors: (
37
51
  --wr-alert-message: var(--wr-color-on-surface);
38
52
  --wr-alert-close: var(--wr-color-info);
39
53
 
54
+ --wr-alert-radius: var(--wr-border-radius-base);
55
+ --wr-alert-gap: var(--wr-space-md);
56
+ --wr-alert-padding-y: var(--wr-space-md);
57
+ --wr-alert-padding-x: var(--wr-space-lg);
58
+ --wr-alert-body-gap: var(--wr-space-xs);
59
+ --wr-alert-icon-margin-top: var(--wr-space-xs);
60
+ --wr-alert-font-family: var(--wr-font-family-base);
61
+ --wr-alert-title-font-size: var(--wr-text-sm);
62
+ --wr-alert-title-font-weight: var(--wr-font-weight-semibold);
63
+ --wr-alert-title-line-height: var(--wr-text-sm-leading);
64
+ --wr-alert-message-font-size: var(--wr-text-sm);
65
+ --wr-alert-message-line-height: var(--wr-text-sm-leading);
66
+ --wr-alert-close-padding: var(--wr-space-xs);
67
+ --wr-alert-close-radius: var(--wr-border-radius-sm);
68
+
40
69
  background: var(--wr-alert-bg);
41
70
  border: 1px solid var(--wr-alert-border);
42
- @include theme.smooth-br(var(--wr-border-radius-base));
43
- padding: 0.625rem 0.875rem;
71
+ @include theme.smooth-br(var(--wr-alert-radius));
72
+ padding: var(--wr-alert-padding-y) var(--wr-alert-padding-x);
44
73
 
45
74
  &--dismissed {
46
75
  display: none;
@@ -50,7 +79,7 @@ $alert-colors: (
50
79
  flex: 0 0 auto;
51
80
  width: 1.125rem;
52
81
  height: 1.125rem;
53
- margin-top: 0.125rem;
82
+ margin-top: var(--wr-alert-icon-margin-top);
54
83
  color: var(--wr-alert-title);
55
84
  // A custom `<wr-icon>` sizes via this var, not width/height.
56
85
  --wr-icon-size: 1.125rem;
@@ -66,25 +95,25 @@ $alert-colors: (
66
95
  flex: 1 1 auto;
67
96
  display: flex;
68
97
  flex-direction: column;
69
- gap: 0.25rem;
98
+ gap: var(--wr-alert-body-gap);
70
99
  min-width: 0;
71
100
  }
72
101
 
73
102
  &__title {
74
103
  margin: 0;
75
104
  color: var(--wr-alert-title);
76
- font-family: var(--wr-font-family-base);
77
- font-size: var(--wr-text-sm);
78
- font-weight: 600;
79
- line-height: 1.25rem;
105
+ font-family: var(--wr-alert-font-family);
106
+ font-size: var(--wr-alert-title-font-size);
107
+ font-weight: var(--wr-alert-title-font-weight);
108
+ line-height: var(--wr-alert-title-line-height);
80
109
  }
81
110
 
82
111
  &__message {
83
112
  margin: 0;
84
113
  color: var(--wr-alert-message);
85
- font-family: var(--wr-font-family-base);
86
- font-size: var(--wr-text-sm);
87
- line-height: 1.125rem;
114
+ font-family: var(--wr-alert-font-family);
115
+ font-size: var(--wr-alert-message-font-size);
116
+ line-height: var(--wr-alert-message-line-height);
88
117
  }
89
118
 
90
119
  &__close {
@@ -92,10 +121,10 @@ $alert-colors: (
92
121
  appearance: none;
93
122
  background: transparent;
94
123
  border: 0;
95
- padding: 0.125rem;
124
+ padding: var(--wr-alert-close-padding);
96
125
  color: var(--wr-alert-close);
97
126
  cursor: pointer;
98
- border-radius: var(--wr-border-radius-sm);
127
+ border-radius: var(--wr-alert-close-radius);
99
128
  transition:
100
129
  color var(--wr-transition-base),
101
130
  background var(--wr-transition-base);
@@ -121,10 +150,6 @@ $alert-colors: (
121
150
  }
122
151
  }
123
152
 
124
- // color-ok: each type draws its OWN glyph in alert.html — a check in a broken
125
- // circle, a triangle, an octagon, an `i` — so these hooks only ink a
126
- // silhouette that already differs. `[icon]="false"` or an `iconName` hands
127
- // that channel to the author, whose title then has to name the state.
128
153
  @each $variant, $color in $alert-colors {
129
154
  &--#{$variant} {
130
155
  --wr-alert-bg: var(--wr-color-#{$color}-soft);
@@ -134,11 +159,8 @@ $alert-colors: (
134
159
  }
135
160
 
136
161
  // Neutral — muted gray chip, reusing the `medium` soft tokens.
137
- // color-ok: its own glyph in alert.html, a bar in a circle, is what tells it
138
- // from `danger` — the two paints sit on tints 1.036:1 apart, which is a hue
139
- // difference and little else (measured in the template's comment).
140
162
  &--neutral {
141
- --wr-alert-bg: var(--wr-color-medium-soft);
163
+ --wr-alert-bg: var(--wr-color-fill);
142
164
  --wr-alert-title: var(--wr-color-on-surface);
143
165
  --wr-alert-message: var(--wr-color-on-surface-muted);
144
166
  --wr-alert-close: var(--wr-color-on-surface-muted);
@@ -150,9 +172,6 @@ $alert-colors: (
150
172
 
151
173
  // Offline — inverse chip. Auto-flips via the theme tokens: dark bg +
152
174
  // light text in light theme; light bg + dark text in dark theme.
153
- // color-ok: its own glyph in alert.html, a slashed circle — and the inverted
154
- // chip is a LIGHTNESS change, an `on-surface` fill under `surface` text, the
155
- // far end of the scale from every other type's pale tint.
156
175
  &--offline {
157
176
  --wr-alert-bg: var(--wr-color-on-surface);
158
177
  --wr-alert-title: var(--wr-color-surface);
@@ -1,9 +1,25 @@
1
1
  @use '../../theme/styles' as theme;
2
2
 
3
3
  .wr-anchor {
4
+ --wr-anchor-font-family: var(--wr-font-family-base);
5
+ --wr-anchor-border: var(--wr-border-base);
6
+ --wr-anchor-list-gap: var(--wr-space-xs);
7
+ --wr-anchor-list-nested-margin-top: var(--wr-space-xs);
8
+ --wr-anchor-link-padding-y: var(--wr-space-xs);
9
+ --wr-anchor-link-padding-x: var(--wr-space-sm);
10
+ --wr-anchor-link-radius: var(--wr-border-radius-sm);
11
+ --wr-anchor-link-font-size: var(--wr-text-sm);
12
+ --wr-anchor-link-line-height: var(--wr-leading-snug);
13
+ --wr-anchor-link-active-font-weight: var(--wr-font-weight-semibold);
14
+
4
15
  display: block;
5
- font-family: var(--wr-font-family-base);
6
- border-inline-start: 1.5px solid var(--wr-color-outline);
16
+ font-family: var(--wr-anchor-font-family);
17
+ border-inline-start: 1.5px solid var(--wr-anchor-border);
18
+ // NOT on the spacing scale: the active rail at `inset-inline-start: -1rem`
19
+ // below is solved against this 14px indent plus the host's 1.5px border, so
20
+ // the 1.5px bar lands at -0.5px and overlaps the rail it replaces. The
21
+ // scale's nearest step is 16px, which paints the bar at 1.5px and opens a
22
+ // gap between the marker and the rail at every nesting level.
7
23
  padding-inline-start: 0.875rem;
8
24
 
9
25
  &__list {
@@ -12,10 +28,10 @@
12
28
  padding: 0;
13
29
  display: flex;
14
30
  flex-direction: column;
15
- gap: 0.125rem;
31
+ gap: var(--wr-anchor-list-gap);
16
32
 
17
33
  &--nested {
18
- margin-top: 0.125rem;
34
+ margin-top: var(--wr-anchor-list-nested-margin-top);
19
35
  padding-inline-start: 0.875rem;
20
36
  }
21
37
  }
@@ -23,11 +39,11 @@
23
39
  &__link {
24
40
  position: relative;
25
41
  display: block;
26
- padding: 0.25rem 0.5rem;
27
- border-radius: var(--wr-border-radius-sm);
42
+ padding: var(--wr-anchor-link-padding-y) var(--wr-anchor-link-padding-x);
43
+ border-radius: var(--wr-anchor-link-radius);
28
44
  color: var(--wr-color-on-surface-muted);
29
- font-size: var(--wr-text-sm);
30
- line-height: var(--wr-leading-snug);
45
+ font-size: var(--wr-anchor-link-font-size);
46
+ line-height: var(--wr-anchor-link-line-height);
31
47
  transition:
32
48
  color var(--wr-transition-base),
33
49
  background var(--wr-transition-base);
@@ -50,7 +66,7 @@
50
66
  &--active {
51
67
  // Text, on the page surface — `-ink` is the token for the intent AS text.
52
68
  color: var(--wr-color-primary-ink);
53
- font-weight: var(--wr-font-weight-semibold);
69
+ font-weight: var(--wr-anchor-link-active-font-weight);
54
70
 
55
71
  &::before {
56
72
  background: var(--wr-color-primary);
@@ -1,12 +1,26 @@
1
1
  @use '../../theme/styles' as theme;
2
2
 
3
+ // Styles for the entry points this component's own markup renders.
4
+ //
5
+ // v15 removed the `@use 'ngwr'` umbrella, which is what had been covering these:
6
+ // a consumer now writes one `@use` per component they place, and never learns
7
+ // about the ones a component places INSIDE itself. `@use 'ngwr/date-picker'`
8
+ // alone gave a date field with a raw browser input — grey, square, 2px inset —
9
+ // and `@use 'ngwr/table'` a table with unstyled checkboxes and pager. Nothing
10
+ // says so: the component renders, the markup is right, and no build, console or
11
+ // gate has an opinion about a missing rule.
12
+ //
13
+ // Sass deduplicates `@use` within a compilation, so an app that also loads one of
14
+ // these by hand still emits it once.
15
+ @use '../../spinner/styles' as spinner-styles; // WrSpinner
16
+
3
17
  .wr-avatar {
4
18
  // Defaults — `shape="rounded"` (the default) gets the soft rounded
5
19
  // square look. Variant modifiers below override the radius / corner
6
20
  // treatment.
7
21
  --wr-avatar-radius: 10%;
8
22
  --wr-avatar-img-opacity: 0;
9
- --wr-avatar-ring: var(--wr-color-border);
23
+ --wr-avatar-ring: var(--wr-border-strong);
10
24
  // The most of the box projected initials may take, as a share of the size the
11
25
  // host publishes as `--wr-avatar-size`. Measured rather than picked: at 0.375
12
26
  // the widest capital pairs (`ЖШ`, `WW`) in Inter, Geist and the system face, at
@@ -132,8 +146,8 @@
132
146
 
133
147
  // Doubled with `.wr-spinner` on purpose. A lone `.wr-avatar__spin` ties with
134
148
  // the spinner's own `.wr-spinner { color: inherit; --wr-spinner-size: 1.25em }`,
135
- // and the combined `@use 'ngwr'` sheet forwards the spinner after the avatar,
136
- // so the spinner won both: measured, every avatar drew a 19px spinner in the
149
+ // and an app that loads the spinner's sheet after this one gives the spinner
150
+ // both: measured, every avatar drew a 19px spinner in the
137
151
  // inherited ink (17.85:1 light, 15.73:1 dark) — 59% of a 32px box and 20% of
138
152
  // a 96px one — and the colour and size written here never painted once.
139
153
  // Specificity, not order, so it holds for an app that `@use`s the two entry
@@ -5,6 +5,21 @@
5
5
  @use '../../theme/styles' as theme;
6
6
  @forward 'tag';
7
7
 
8
+ // Styles for the entry points this component's own markup renders.
9
+ //
10
+ // v15 removed the `@use 'ngwr'` umbrella, which is what had been covering these:
11
+ // a consumer now writes one `@use` per component they place, and never learns
12
+ // about the ones a component places INSIDE itself. `@use 'ngwr/date-picker'`
13
+ // alone gave a date field with a raw browser input — grey, square, 2px inset —
14
+ // and `@use 'ngwr/table'` a table with unstyled checkboxes and pager. Nothing
15
+ // says so: the component renders, the markup is right, and no build, console or
16
+ // gate has an opinion about a missing rule.
17
+ //
18
+ // Sass deduplicates `@use` within a compilation, so an app that also loads one of
19
+ // these by hand still emits it once.
20
+ @use '../../icon/styles' as icon-styles; // WrIcon
21
+ @use '../../spinner/styles' as spinner-styles; // WrSpinner
22
+
8
23
  .wr-badge {
9
24
  display: inline-flex;
10
25
  align-items: center;
@@ -24,9 +39,20 @@
24
39
  line-height: normal;
25
40
  white-space: nowrap;
26
41
 
42
+ // The neutral default, READ. The three hooks below were declared with a
43
+ // comment saying they are "what a badge paints when nothing asks for an
44
+ // intent" and nothing read any of them, so `<wr-badge [color]="null">` — a
45
+ // typed, documented, public option — painted no fill and no text colour and
46
+ // rendered as bare inherited text. `--wr-tag-*` next door was always read
47
+ // this way; the badge simply never caught up. No `border` here: the filled
48
+ // intents carry none either, and adding one would widen every badge in the
49
+ // catalogue by 2px. The neutral RING is the outlined variant's job, below.
50
+ background-color: var(--wr-badge-bg);
51
+ color: var(--wr-badge-color);
52
+
27
53
  // Defaults — sized modifiers override these
28
- --wr-badge-padding-y: 0.25rem;
29
- --wr-badge-padding-x: 0.5rem;
54
+ --wr-badge-padding-y: var(--wr-space-xs);
55
+ --wr-badge-padding-x: var(--wr-space-sm);
30
56
  --wr-badge-radius: var(--wr-border-radius-sm);
31
57
  --wr-badge-font-size: var(--wr-text-xs);
32
58
  --wr-badge-min-height: 1.5rem;
@@ -60,7 +86,7 @@
60
86
 
61
87
  &--pill {
62
88
  --wr-badge-radius: var(--wr-border-radius-pill);
63
- --wr-badge-padding-x: 0.75rem;
89
+ --wr-badge-padding-x: var(--wr-space-md);
64
90
  }
65
91
 
66
92
  // Squircle — overrides the plain `border-radius` with the
@@ -72,11 +98,13 @@
72
98
 
73
99
  // Colors
74
100
 
75
- // color-ok: a badge's colour is decoration or category, never the state —
76
- // the LABEL carries that. Six of the nine intents share one lightness
77
- // (`success` against `danger` is 1.004:1), so a badge whose words do not name
78
- // the state tells a reader without hue nothing, and no palette can fix that
79
- // without giving up the white labels the intents were tuned for.
101
+ // Neutral, and the default: `color` is nullable and a null one carries no
102
+ // modifier, so this trio is what a badge paints when nothing asks for an
103
+ // intent. The neutral roles do the job the removed `medium` intent used to.
104
+ --wr-badge-bg: var(--wr-color-fill);
105
+ --wr-badge-color: var(--wr-color-on-surface);
106
+ --wr-badge-border: var(--wr-border-base);
107
+
80
108
  @each $name in theme.$colors {
81
109
  &--#{$name} {
82
110
  background-color: var(--wr-color-#{$name});
@@ -93,42 +121,22 @@
93
121
  // wrapped around text of exactly that strength, and the two cannot be
94
122
  // separated while they share one value. `-soft-border` is the same intent at
95
123
  // 0.3 alpha: the theme's canonical hairline, already per intent and already
96
- // theme-correct through the `-rgb` channels. `wr-tag--outlined` draws the same
97
- // ring from the same token; the tag keeps its 6% fill, because a tag is a
98
- // chip you can click and a badge is a label you cannot.
99
- //
100
- // The soft trio covers the seven CHROMATIC intents, so `light` and `dark` have
101
- // no `-soft-border` and the `var()` carries the token's own recipe as its
102
- // fallback. That fallback is load-bearing twice over: an undefined custom
103
- // property with no fallback invalidates the whole declaration, which would
104
- // leave those two badges with no ring at all rather than a soft one — and
105
- // 0.3 alpha is what keeps `dark` in the same family as the other eight
106
- // instead of the only ring still drawn at full label strength, which is the
107
- // weight this rule exists to stop drawing.
108
- //
109
- // `light` is the one intent the recipe cannot serve: it is a surface tone by
110
- // definition, a hair off the page in either theme, so 30% of it over the page
111
- // is nothing. At FULL strength it is `--wr-color-outline` — the hairline every
112
- // bordered surface in the library already draws — so it is reached by that
113
- // name, after the loop, rather than by an alpha that happens to land there.
124
+ // correct in both schemes, since it mixes the intent itself. `wr-tag--outlined`
125
+ // draws the same ring from the same token; the tag keeps its 6% fill, because
126
+ // a tag is a chip you can click and a badge is a label you cannot.
114
127
  &--outlined {
115
128
  background-color: transparent;
116
- box-shadow: inset 0 0 0 1px currentcolor;
129
+ // `--wr-badge-border` rather than `currentcolor` for the NEUTRAL case, for
130
+ // the reason the note above gives about the chromatic ones: a ring drawn in
131
+ // the text colour is a hairline at full label strength around text of
132
+ // exactly that strength. An intent overrides it in the loop below.
133
+ box-shadow: inset 0 0 0 1px var(--wr-badge-border);
117
134
 
118
- // color-ok: the decision the filled loop above records — decoration or
119
- // category, with the label carrying the state.
120
135
  @each $name in theme.$colors {
121
136
  &.wr-badge--#{$name} {
122
137
  color: var(--wr-color-#{$name}-ink);
123
- box-shadow: inset 0 0 0 1px var(--wr-color-#{$name}-soft-border, rgba(var(--wr-color-#{$name}-rgb), 0.3));
138
+ box-shadow: inset 0 0 0 1px var(--wr-color-#{$name}-soft-border);
124
139
  }
125
140
  }
126
-
127
- // color-ok: this ADDS a hairline no other intent carries — `light` is a
128
- // near-surface tone, so without it the badge has no edge at all. A border
129
- // appearing is the channel; its colour is incidental.
130
- &.wr-badge--light {
131
- box-shadow: inset 0 0 0 1px var(--wr-color-outline);
132
- }
133
141
  }
134
142
  }
@@ -3,22 +3,30 @@
3
3
  .wr-tag {
4
4
  display: inline-flex;
5
5
  align-items: center;
6
- gap: 0.25rem;
6
+ gap: var(--wr-tag-gap);
7
7
  vertical-align: middle;
8
8
 
9
9
  appearance: none;
10
10
  text-decoration: none;
11
11
  white-space: nowrap;
12
12
 
13
- // Defaults — color and style modifiers override
13
+ // Defaults — color and style modifiers override. `color` is nullable and a
14
+ // null one carries no modifier, so this trio IS the neutral tag: the gray
15
+ // ramp does the job the removed `medium` intent used to stand in for.
14
16
  --wr-tag-color: var(--wr-color-on-surface);
15
- --wr-tag-bg: var(--wr-color-surface);
16
- --wr-tag-border: var(--wr-color-outline);
17
+ --wr-tag-bg: var(--wr-color-fill);
18
+ --wr-tag-border: var(--wr-border-base);
17
19
  --wr-tag-radius: var(--wr-border-radius-sm);
20
+ --wr-tag-gap: var(--wr-space-xs);
21
+ // NOT on the spacing scale: this is solved against the 22px box the comment
22
+ // below names, which is the shared `sm` control height — a tag sits beside an
23
+ // `sm` input. The scale's nearest step is 4px, which makes the tag 25px, stops
24
+ // `--wr-tag-min-height` binding, and breaks that alignment.
18
25
  --wr-tag-padding-y: 0.125rem;
19
- --wr-tag-padding-x: 0.5rem;
26
+ --wr-tag-padding-x: var(--wr-space-sm);
27
+ --wr-tag-font-family: var(--wr-font-family-base);
20
28
  --wr-tag-font-size: var(--wr-text-xs);
21
- --wr-tag-font-weight: 500;
29
+ --wr-tag-font-weight: var(--wr-font-weight-medium);
22
30
  // `normal`, not a fixed `1rem`: a 16px line box against the font's own 15px
23
31
  // content area leaves half a pixel of leading per side, Blink floors it, and
24
32
  // the label paints 1px high — 3px above / 4px below, while an adornment icon
@@ -35,7 +43,7 @@
35
43
  border-radius: var(--wr-tag-radius);
36
44
  min-height: var(--wr-tag-min-height);
37
45
  padding: calc(var(--wr-tag-padding-y) * var(--wr-density-y, 1)) calc(var(--wr-tag-padding-x) * var(--wr-density-x, 1));
38
- font-family: var(--wr-font-family-base);
46
+ font-family: var(--wr-tag-font-family);
39
47
  font-size: var(--wr-tag-font-size);
40
48
  font-weight: var(--wr-tag-font-weight);
41
49
  line-height: var(--wr-tag-line-height);
@@ -44,7 +52,7 @@
44
52
  // Shape
45
53
  &--rounded {
46
54
  --wr-tag-radius: var(--wr-border-radius-pill);
47
- --wr-tag-padding-x: 0.625rem;
55
+ --wr-tag-padding-x: var(--wr-space-md);
48
56
  }
49
57
 
50
58
  // Icon slot sizing
@@ -68,12 +76,6 @@
68
76
  }
69
77
 
70
78
  // Colored variants
71
- // color-ok: a tag's colour is decoration or category — the label carries the
72
- // state (`Failed`, not a red `Build`), because six of the nine intents share
73
- // one lightness and `success` against `danger` is 1.004:1. When a tag has to
74
- // stand for a status on its own, its `icon` input is the channel. Nothing is
75
- // drawn per intent by default: tags are categories too, and a check on
76
- // `Standalone` would say something false.
77
79
  @each $name in theme.$colors {
78
80
  &--#{$name} {
79
81
  --wr-tag-color: var(--wr-color-#{$name}-contrast);
@@ -85,29 +87,18 @@
85
87
  // place, which is the reason the soft trio exists. 0.25 -> 0.30 is the
86
88
  // whole visual change here. The 6% fill stays, and that is the one place
87
89
  // the two deliberately differ: a tag is a chip you can click, hover and
88
- // dismiss, so it keeps a body the badge has none of. `light` and `dark`
89
- // fall back exactly as the badge does — see the note there.
90
+ // dismiss, so it keeps a body the badge has none of.
90
91
  &.wr-tag--outlined {
91
92
  --wr-tag-color: var(--wr-color-#{$name}-ink);
92
- --wr-tag-bg: rgba(var(--wr-color-#{$name}-rgb), 0.06);
93
- --wr-tag-border: var(--wr-color-#{$name}-soft-border, rgba(var(--wr-color-#{$name}-rgb), 0.3));
93
+ --wr-tag-bg: color-mix(in srgb, var(--wr-color-#{$name}) 6%, transparent);
94
+ --wr-tag-border: var(--wr-color-#{$name}-soft-border);
94
95
  }
95
96
 
96
97
  &.wr-tag--transparent {
97
98
  --wr-tag-color: var(--wr-color-#{$name}-ink);
98
- --wr-tag-bg: rgba(var(--wr-color-#{$name}-rgb), 0.1);
99
+ --wr-tag-bg: color-mix(in srgb, var(--wr-color-#{$name}) 10%, transparent);
99
100
  --wr-tag-border: transparent;
100
101
  }
101
102
  }
102
103
  }
103
-
104
- // `light` outlined, after the loop for the same reason the badge carries the
105
- // same rule: 30% of a surface tone is not a line. At full strength it IS
106
- // `--wr-color-outline`, which is already this component's default border.
107
- // color-ok: every outlined tag already draws a border — this only gives the
108
- // one intent that cannot tint one a literal colour. Telling two INTENTS
109
- // apart is the label's job, as the marker above the loop says.
110
- &--light.wr-tag--outlined {
111
- --wr-tag-border: var(--wr-color-outline);
112
- }
113
104
  }
@@ -0,0 +1,8 @@
1
+ // Public Sass entry for `@use 'ngwr/bits/aurora'`.
2
+ //
3
+ // `aurora.scss` — the component's `styleUrl` — forwards `_rules` and nothing
4
+ // else, so the compiled component styles carry this component's own CSS and no
5
+ // second copy of the theme layer.
6
+ @use '../../../theme/styles';
7
+
8
+ @forward 'rules';
@@ -2,13 +2,13 @@
2
2
  // positioned ancestor; all the visuals live in the fragment shader.
3
3
 
4
4
  .wr-aurora {
5
- // Theme-default colour stops (overridden by `[colorStops]`): vivid
6
- // indigo → emerald on light surfaces; dark restores the neon
7
- // reactbits palette — see `_dark.scss`, which is loaded by the public Sass
8
- // entry only.
9
- --wr-aurora-stop-1: #6366f1;
10
- --wr-aurora-stop-2: #10b981;
11
- --wr-aurora-stop-3: #6366f1;
5
+ // Theme-default colour stops (overridden by `[colorStops]`): vivid indigo
6
+ // and emerald on light surfaces, the neon reactbits palette on dark. The
7
+ // shader cannot read a `light-dark()`, so `aurora.ts` resolves each stop
8
+ // through `resolveCssColor` before it reaches a uniform.
9
+ --wr-aurora-stop-1: light-dark(#6366f1, #5227ff);
10
+ --wr-aurora-stop-2: light-dark(#10b981, #7cff67);
11
+ --wr-aurora-stop-3: light-dark(#6366f1, #5227ff);
12
12
 
13
13
  position: absolute;
14
14
  inset: 0;
@@ -0,0 +1,15 @@
1
+ // Public Sass entry for `@use 'ngwr/bits/border-glow'`.
2
+ //
3
+ // Pulls the whole theme so a standalone import still brings in every design
4
+ // token these rules reference, then loads the rules themselves from `_rules`.
5
+ //
6
+ // The split is what keeps the token layer out of the JavaScript bundle.
7
+ // `border-glow.scss` is the component's `styleUrl`, and a component stylesheet
8
+ // is its OWN Sass compilation — `@use` only deduplicates within one. So while
9
+ // the app's global stylesheet emits the theme once, forwarding it from here
10
+ // would inline a second, byte-identical copy of `:root` and the box-sizing
11
+ // reset into the compiled component styles, which the library build then embeds
12
+ // in the FESM bundle as a string. `border-glow.scss` forwards `_rules` instead,
13
+ // so it carries this component's own CSS and nothing else.
14
+ @use '../../../theme/styles';
15
+ @forward 'rules';