ngwr 8.0.0 → 9.0.1

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 (431) hide show
  1. package/README.md +76 -29
  2. package/action-sheet/styles/_index.scss +93 -0
  3. package/alert/styles/_index.scss +10 -10
  4. package/anchor/styles/_index.scss +3 -3
  5. package/back-top/styles/_index.scss +1 -1
  6. package/badge/styles/_tag.scss +3 -3
  7. package/bar-chart/styles/_index.scss +4 -4
  8. package/border-glow/styles/_index.scss +3 -3
  9. package/breadcrumbs/styles/_index.scss +3 -3
  10. package/burger/styles/_index.scss +1 -1
  11. package/button/styles/_index.scss +4 -4
  12. package/calendar/styles/_index.scss +4 -4
  13. package/calendar-heatmap/styles/_index.scss +3 -3
  14. package/card/styles/_index.scss +5 -5
  15. package/carousel/styles/_index.scss +5 -5
  16. package/cascader/styles/_index.scss +15 -15
  17. package/checkbox/styles/_index.scss +20 -5
  18. package/collapse/styles/_index.scss +6 -6
  19. package/color-picker/styles/_index.scss +15 -9
  20. package/command-palette/styles/_index.scss +19 -16
  21. package/compare/styles/_index.scss +3 -3
  22. package/context-menu/styles/_index.scss +16 -6
  23. package/counter/styles/_index.scss +12 -1
  24. package/date-picker/styles/_index.scss +8 -8
  25. package/descriptions/styles/_index.scss +9 -9
  26. package/dialog/styles/_index.scss +7 -6
  27. package/divider/styles/_index.scss +2 -2
  28. package/donut-chart/styles/_index.scss +3 -3
  29. package/drag-drop/styles/_index.scss +11 -6
  30. package/drawer/styles/_index.scss +15 -6
  31. package/dropdown/styles/_index.scss +5 -5
  32. package/empty/styles/_index.scss +4 -4
  33. package/fesm2022/ngwr-action-sheet.mjs +81 -0
  34. package/fesm2022/ngwr-action-sheet.mjs.map +1 -0
  35. package/fesm2022/ngwr-affix.mjs +3 -3
  36. package/fesm2022/ngwr-alert.mjs +4 -4
  37. package/fesm2022/ngwr-alert.mjs.map +1 -1
  38. package/fesm2022/ngwr-anchor.mjs +4 -4
  39. package/fesm2022/ngwr-anchor.mjs.map +1 -1
  40. package/fesm2022/ngwr-aurora.mjs +5 -4
  41. package/fesm2022/ngwr-aurora.mjs.map +1 -1
  42. package/fesm2022/ngwr-avatar.mjs +4 -4
  43. package/fesm2022/ngwr-avatar.mjs.map +1 -1
  44. package/fesm2022/ngwr-back-top.mjs +4 -4
  45. package/fesm2022/ngwr-back-top.mjs.map +1 -1
  46. package/fesm2022/ngwr-badge.mjs +8 -8
  47. package/fesm2022/ngwr-badge.mjs.map +1 -1
  48. package/fesm2022/ngwr-bar-chart.mjs +4 -4
  49. package/fesm2022/ngwr-bar-chart.mjs.map +1 -1
  50. package/fesm2022/ngwr-blur-text.mjs +3 -3
  51. package/fesm2022/ngwr-border-glow.mjs +4 -4
  52. package/fesm2022/ngwr-border-glow.mjs.map +1 -1
  53. package/fesm2022/ngwr-breadcrumbs.mjs +8 -8
  54. package/fesm2022/ngwr-breadcrumbs.mjs.map +1 -1
  55. package/fesm2022/ngwr-burger.mjs +4 -4
  56. package/fesm2022/ngwr-burger.mjs.map +1 -1
  57. package/fesm2022/ngwr-button.mjs +8 -8
  58. package/fesm2022/ngwr-button.mjs.map +1 -1
  59. package/fesm2022/ngwr-calendar-heatmap.mjs +4 -4
  60. package/fesm2022/ngwr-calendar-heatmap.mjs.map +1 -1
  61. package/fesm2022/ngwr-calendar.mjs +4 -4
  62. package/fesm2022/ngwr-calendar.mjs.map +1 -1
  63. package/fesm2022/ngwr-card.mjs +11 -11
  64. package/fesm2022/ngwr-card.mjs.map +1 -1
  65. package/fesm2022/ngwr-carousel.mjs +7 -7
  66. package/fesm2022/ngwr-carousel.mjs.map +1 -1
  67. package/fesm2022/ngwr-cascader.mjs +52 -60
  68. package/fesm2022/ngwr-cascader.mjs.map +1 -1
  69. package/fesm2022/ngwr-checkbox.mjs +74 -106
  70. package/fesm2022/ngwr-checkbox.mjs.map +1 -1
  71. package/fesm2022/ngwr-circular-text.mjs +5 -4
  72. package/fesm2022/ngwr-circular-text.mjs.map +1 -1
  73. package/fesm2022/ngwr-click-spark.mjs +5 -4
  74. package/fesm2022/ngwr-click-spark.mjs.map +1 -1
  75. package/fesm2022/ngwr-clipboard.mjs +4 -4
  76. package/fesm2022/ngwr-clipboard.mjs.map +1 -1
  77. package/fesm2022/ngwr-collapse.mjs +12 -12
  78. package/fesm2022/ngwr-collapse.mjs.map +1 -1
  79. package/fesm2022/ngwr-color-picker.mjs +58 -66
  80. package/fesm2022/ngwr-color-picker.mjs.map +1 -1
  81. package/fesm2022/ngwr-command-palette.mjs +4 -4
  82. package/fesm2022/ngwr-command-palette.mjs.map +1 -1
  83. package/fesm2022/ngwr-compare.mjs +4 -4
  84. package/fesm2022/ngwr-compare.mjs.map +1 -1
  85. package/fesm2022/ngwr-confetti.mjs +3 -3
  86. package/fesm2022/ngwr-context-menu.mjs +86 -15
  87. package/fesm2022/ngwr-context-menu.mjs.map +1 -1
  88. package/fesm2022/ngwr-cookie.mjs +19 -6
  89. package/fesm2022/ngwr-cookie.mjs.map +1 -1
  90. package/fesm2022/ngwr-counter.mjs +26 -12
  91. package/fesm2022/ngwr-counter.mjs.map +1 -1
  92. package/fesm2022/ngwr-date-adapter-fns.mjs +3 -3
  93. package/fesm2022/ngwr-date-adapter-luxon.mjs +3 -3
  94. package/fesm2022/ngwr-date-adapter.mjs +10 -5
  95. package/fesm2022/ngwr-date-adapter.mjs.map +1 -1
  96. package/fesm2022/ngwr-date-picker.mjs +128 -123
  97. package/fesm2022/ngwr-date-picker.mjs.map +1 -1
  98. package/fesm2022/ngwr-decrypt-text.mjs +3 -3
  99. package/fesm2022/ngwr-density.mjs +7 -7
  100. package/fesm2022/ngwr-density.mjs.map +1 -1
  101. package/fesm2022/ngwr-descriptions.mjs +7 -7
  102. package/fesm2022/ngwr-descriptions.mjs.map +1 -1
  103. package/fesm2022/ngwr-dialog.mjs +16 -16
  104. package/fesm2022/ngwr-dialog.mjs.map +1 -1
  105. package/fesm2022/ngwr-directives.mjs +21 -15
  106. package/fesm2022/ngwr-directives.mjs.map +1 -1
  107. package/fesm2022/ngwr-divider.mjs +4 -4
  108. package/fesm2022/ngwr-divider.mjs.map +1 -1
  109. package/fesm2022/ngwr-donut-chart.mjs +4 -4
  110. package/fesm2022/ngwr-donut-chart.mjs.map +1 -1
  111. package/fesm2022/ngwr-drag-drop.mjs +10 -9
  112. package/fesm2022/ngwr-drag-drop.mjs.map +1 -1
  113. package/fesm2022/ngwr-drawer.mjs +19 -18
  114. package/fesm2022/ngwr-drawer.mjs.map +1 -1
  115. package/fesm2022/ngwr-dropdown.mjs +13 -12
  116. package/fesm2022/ngwr-dropdown.mjs.map +1 -1
  117. package/fesm2022/ngwr-empty.mjs +4 -4
  118. package/fesm2022/ngwr-empty.mjs.map +1 -1
  119. package/fesm2022/ngwr-falling-text.mjs +5 -4
  120. package/fesm2022/ngwr-falling-text.mjs.map +1 -1
  121. package/fesm2022/ngwr-file-upload.mjs +58 -60
  122. package/fesm2022/ngwr-file-upload.mjs.map +1 -1
  123. package/fesm2022/ngwr-form.mjs +11 -11
  124. package/fesm2022/ngwr-form.mjs.map +1 -1
  125. package/fesm2022/ngwr-fuzzy-text.mjs +5 -4
  126. package/fesm2022/ngwr-fuzzy-text.mjs.map +1 -1
  127. package/fesm2022/ngwr-gauge.mjs +4 -4
  128. package/fesm2022/ngwr-gauge.mjs.map +1 -1
  129. package/fesm2022/ngwr-glitch-text.mjs +4 -4
  130. package/fesm2022/ngwr-glitch-text.mjs.map +1 -1
  131. package/fesm2022/ngwr-gradient-text.mjs +4 -4
  132. package/fesm2022/ngwr-gradient-text.mjs.map +1 -1
  133. package/fesm2022/ngwr-hotkey.mjs +7 -7
  134. package/fesm2022/ngwr-hotkey.mjs.map +1 -1
  135. package/fesm2022/ngwr-i18n.mjs +10 -10
  136. package/fesm2022/ngwr-i18n.mjs.map +1 -1
  137. package/fesm2022/ngwr-icon-adapters-lucide.mjs +6 -7
  138. package/fesm2022/ngwr-icon-adapters-lucide.mjs.map +1 -1
  139. package/fesm2022/ngwr-icon.mjs +4 -4
  140. package/fesm2022/ngwr-icon.mjs.map +1 -1
  141. package/fesm2022/ngwr-image-cropper.mjs +6 -5
  142. package/fesm2022/ngwr-image-cropper.mjs.map +1 -1
  143. package/fesm2022/ngwr-input-number.mjs +56 -73
  144. package/fesm2022/ngwr-input-number.mjs.map +1 -1
  145. package/fesm2022/ngwr-input-otp.mjs +46 -52
  146. package/fesm2022/ngwr-input-otp.mjs.map +1 -1
  147. package/fesm2022/ngwr-input.mjs +17 -17
  148. package/fesm2022/ngwr-input.mjs.map +1 -1
  149. package/fesm2022/ngwr-keyboard.mjs +4 -4
  150. package/fesm2022/ngwr-keyboard.mjs.map +1 -1
  151. package/fesm2022/ngwr-knob.mjs +47 -58
  152. package/fesm2022/ngwr-knob.mjs.map +1 -1
  153. package/fesm2022/ngwr-layout.mjs +16 -16
  154. package/fesm2022/ngwr-layout.mjs.map +1 -1
  155. package/fesm2022/ngwr-lightbox.mjs +7 -6
  156. package/fesm2022/ngwr-lightbox.mjs.map +1 -1
  157. package/fesm2022/ngwr-line-chart.mjs +4 -4
  158. package/fesm2022/ngwr-line-chart.mjs.map +1 -1
  159. package/fesm2022/ngwr-list.mjs +8 -8
  160. package/fesm2022/ngwr-list.mjs.map +1 -1
  161. package/fesm2022/ngwr-loading-bar.mjs +7 -7
  162. package/fesm2022/ngwr-loading-bar.mjs.map +1 -1
  163. package/fesm2022/ngwr-marquee.mjs +6 -5
  164. package/fesm2022/ngwr-marquee.mjs.map +1 -1
  165. package/fesm2022/ngwr-media.mjs +4 -4
  166. package/fesm2022/ngwr-media.mjs.map +1 -1
  167. package/fesm2022/ngwr-mention.mjs +15 -9
  168. package/fesm2022/ngwr-mention.mjs.map +1 -1
  169. package/fesm2022/ngwr-meta.mjs +7 -7
  170. package/fesm2022/ngwr-meta.mjs.map +1 -1
  171. package/fesm2022/ngwr-meter-group.mjs +4 -4
  172. package/fesm2022/ngwr-meter-group.mjs.map +1 -1
  173. package/fesm2022/ngwr-overlay.mjs +9 -4
  174. package/fesm2022/ngwr-overlay.mjs.map +1 -1
  175. package/fesm2022/ngwr-page-header.mjs +4 -4
  176. package/fesm2022/ngwr-page-header.mjs.map +1 -1
  177. package/fesm2022/ngwr-pagination.mjs +4 -4
  178. package/fesm2022/ngwr-pagination.mjs.map +1 -1
  179. package/fesm2022/ngwr-pipes.mjs +21 -21
  180. package/fesm2022/ngwr-platform.mjs +169 -5
  181. package/fesm2022/ngwr-platform.mjs.map +1 -1
  182. package/fesm2022/ngwr-popconfirm.mjs +7 -7
  183. package/fesm2022/ngwr-popconfirm.mjs.map +1 -1
  184. package/fesm2022/ngwr-popover.mjs +7 -7
  185. package/fesm2022/ngwr-popover.mjs.map +1 -1
  186. package/fesm2022/ngwr-progress.mjs +4 -4
  187. package/fesm2022/ngwr-progress.mjs.map +1 -1
  188. package/fesm2022/ngwr-pull-to-refresh.mjs +172 -0
  189. package/fesm2022/ngwr-pull-to-refresh.mjs.map +1 -0
  190. package/fesm2022/ngwr-qr.mjs +5 -5
  191. package/fesm2022/ngwr-qr.mjs.map +1 -1
  192. package/fesm2022/ngwr-radio.mjs +27 -52
  193. package/fesm2022/ngwr-radio.mjs.map +1 -1
  194. package/fesm2022/ngwr-rating.mjs +35 -48
  195. package/fesm2022/ngwr-rating.mjs.map +1 -1
  196. package/fesm2022/ngwr-result.mjs +13 -13
  197. package/fesm2022/ngwr-result.mjs.map +1 -1
  198. package/fesm2022/ngwr-rotating-text.mjs +15 -4
  199. package/fesm2022/ngwr-rotating-text.mjs.map +1 -1
  200. package/fesm2022/ngwr-scroll.mjs +4 -4
  201. package/fesm2022/ngwr-scroll.mjs.map +1 -1
  202. package/fesm2022/ngwr-segmented.mjs +3 -3
  203. package/fesm2022/ngwr-segmented.mjs.map +1 -1
  204. package/fesm2022/ngwr-select.mjs +289 -85
  205. package/fesm2022/ngwr-select.mjs.map +1 -1
  206. package/fesm2022/ngwr-shiny-text.mjs +7 -7
  207. package/fesm2022/ngwr-shiny-text.mjs.map +1 -1
  208. package/fesm2022/ngwr-sidebar.mjs +4 -4
  209. package/fesm2022/ngwr-sidebar.mjs.map +1 -1
  210. package/fesm2022/ngwr-skeleton.mjs +4 -4
  211. package/fesm2022/ngwr-skeleton.mjs.map +1 -1
  212. package/fesm2022/ngwr-slider.mjs +79 -73
  213. package/fesm2022/ngwr-slider.mjs.map +1 -1
  214. package/fesm2022/ngwr-sparkline.mjs +4 -4
  215. package/fesm2022/ngwr-sparkline.mjs.map +1 -1
  216. package/fesm2022/ngwr-speed-dial.mjs +13 -5
  217. package/fesm2022/ngwr-speed-dial.mjs.map +1 -1
  218. package/fesm2022/ngwr-spinner.mjs +4 -4
  219. package/fesm2022/ngwr-spinner.mjs.map +1 -1
  220. package/fesm2022/ngwr-splash-cursor.mjs +4 -4
  221. package/fesm2022/ngwr-splash-cursor.mjs.map +1 -1
  222. package/fesm2022/ngwr-split-text.mjs +3 -3
  223. package/fesm2022/ngwr-splitter.mjs +4 -4
  224. package/fesm2022/ngwr-splitter.mjs.map +1 -1
  225. package/fesm2022/ngwr-spotlight-card.mjs +7 -7
  226. package/fesm2022/ngwr-spotlight-card.mjs.map +1 -1
  227. package/fesm2022/ngwr-squircle.mjs +7 -7
  228. package/fesm2022/ngwr-squircle.mjs.map +1 -1
  229. package/fesm2022/ngwr-star-border.mjs +4 -4
  230. package/fesm2022/ngwr-star-border.mjs.map +1 -1
  231. package/fesm2022/ngwr-statistic.mjs +65 -10
  232. package/fesm2022/ngwr-statistic.mjs.map +1 -1
  233. package/fesm2022/ngwr-stepper.mjs +8 -8
  234. package/fesm2022/ngwr-stepper.mjs.map +1 -1
  235. package/fesm2022/ngwr-storage.mjs +4 -4
  236. package/fesm2022/ngwr-storage.mjs.map +1 -1
  237. package/fesm2022/ngwr-switch.mjs +16 -48
  238. package/fesm2022/ngwr-switch.mjs.map +1 -1
  239. package/fesm2022/ngwr-table.mjs +824 -20
  240. package/fesm2022/ngwr-table.mjs.map +1 -1
  241. package/fesm2022/ngwr-tabs.mjs +9 -8
  242. package/fesm2022/ngwr-tabs.mjs.map +1 -1
  243. package/fesm2022/ngwr-textarea.mjs +18 -50
  244. package/fesm2022/ngwr-textarea.mjs.map +1 -1
  245. package/fesm2022/ngwr-theme.mjs +20 -5
  246. package/fesm2022/ngwr-theme.mjs.map +1 -1
  247. package/fesm2022/ngwr-tilt-card.mjs +27 -11
  248. package/fesm2022/ngwr-tilt-card.mjs.map +1 -1
  249. package/fesm2022/ngwr-timeline.mjs +7 -7
  250. package/fesm2022/ngwr-timeline.mjs.map +1 -1
  251. package/fesm2022/ngwr-toast.mjs +10 -10
  252. package/fesm2022/ngwr-toast.mjs.map +1 -1
  253. package/fesm2022/ngwr-toolbar.mjs +4 -4
  254. package/fesm2022/ngwr-toolbar.mjs.map +1 -1
  255. package/fesm2022/ngwr-tree.mjs +280 -84
  256. package/fesm2022/ngwr-tree.mjs.map +1 -1
  257. package/fesm2022/ngwr-typewriter.mjs +10 -5
  258. package/fesm2022/ngwr-typewriter.mjs.map +1 -1
  259. package/fesm2022/ngwr-typography.mjs +4 -4
  260. package/fesm2022/ngwr-typography.mjs.map +1 -1
  261. package/fesm2022/ngwr-validators.mjs +1 -1
  262. package/fesm2022/ngwr-validators.mjs.map +1 -1
  263. package/fesm2022/ngwr-version.mjs +1 -1
  264. package/fesm2022/ngwr-version.mjs.map +1 -1
  265. package/fesm2022/ngwr-virtual-scroll.mjs +9 -7
  266. package/fesm2022/ngwr-virtual-scroll.mjs.map +1 -1
  267. package/fesm2022/ngwr-waves.mjs +6 -5
  268. package/fesm2022/ngwr-waves.mjs.map +1 -1
  269. package/fesm2022/ngwr-window.mjs +16 -15
  270. package/fesm2022/ngwr-window.mjs.map +1 -1
  271. package/file-upload/styles/_index.scss +11 -11
  272. package/form/styles/_index.scss +4 -4
  273. package/gauge/styles/_index.scss +2 -2
  274. package/glitch-text/styles/_index.scss +1 -1
  275. package/gradient-text/styles/_index.scss +1 -1
  276. package/image-cropper/styles/_index.scss +5 -4
  277. package/input/styles/_index.scss +9 -9
  278. package/input-number/styles/_index.scss +1 -1
  279. package/input-otp/styles/_index.scss +5 -5
  280. package/keyboard/styles/_index.scss +5 -5
  281. package/knob/styles/_index.scss +6 -2
  282. package/layout/styles/_index.scss +12 -12
  283. package/lightbox/styles/_index.scss +10 -8
  284. package/line-chart/styles/_index.scss +5 -5
  285. package/list/styles/_index.scss +3 -3
  286. package/llms-full.txt +31 -5
  287. package/llms.txt +48 -32
  288. package/marquee/styles/_index.scss +1 -1
  289. package/mention/styles/_index.scss +4 -4
  290. package/meter-group/styles/_index.scss +4 -4
  291. package/overlay/styles/_index.scss +8 -0
  292. package/package.json +21 -9
  293. package/page-header/styles/_index.scss +4 -4
  294. package/pagination/styles/_index.scss +3 -3
  295. package/popconfirm/styles/_index.scss +3 -3
  296. package/popover/styles/_index.scss +5 -5
  297. package/progress/styles/_index.scss +1 -1
  298. package/pull-to-refresh/styles/_index.scss +38 -0
  299. package/radio/styles/_index.scss +4 -4
  300. package/rating/styles/_index.scss +1 -1
  301. package/result/styles/_index.scss +3 -3
  302. package/schematics/migrations/v9/index.js +71 -0
  303. package/schematics/migrations.json +5 -0
  304. package/schematics/ng-add/schema.json +1 -1
  305. package/schematics/use/symbol-map.json +13 -0
  306. package/segmented/styles/_index.scss +4 -4
  307. package/select/styles/_index.scss +53 -18
  308. package/shiny-text/styles/_index.scss +4 -4
  309. package/sidebar/styles/_index.scss +12 -12
  310. package/slider/styles/_index.scss +5 -5
  311. package/speed-dial/styles/_index.scss +22 -6
  312. package/splash-cursor/styles/_index.scss +1 -0
  313. package/splitter/styles/_index.scss +7 -4
  314. package/spotlight-card/styles/_index.scss +7 -7
  315. package/star-border/styles/_index.scss +3 -3
  316. package/statistic/styles/_index.scss +51 -4
  317. package/stepper/styles/_index.scss +6 -6
  318. package/styles/_typography.scss +4 -1
  319. package/styles.scss +2 -0
  320. package/switch/styles/_index.scss +4 -4
  321. package/table/styles/_index.scss +447 -17
  322. package/tabs/styles/_index.scss +3 -3
  323. package/textarea/styles/_index.scss +7 -7
  324. package/theme/styles/_colors.scss +27 -3
  325. package/tilt-card/styles/_index.scss +4 -4
  326. package/timeline/styles/_index.scss +7 -6
  327. package/toast/styles/_index.scss +11 -11
  328. package/toolbar/styles/_index.scss +4 -4
  329. package/tree/styles/_index.scss +45 -15
  330. package/types/ngwr-action-sheet.d.ts +75 -0
  331. package/types/ngwr-alert.d.ts +1 -1
  332. package/types/ngwr-anchor.d.ts +1 -1
  333. package/types/ngwr-avatar.d.ts +1 -1
  334. package/types/ngwr-back-top.d.ts +1 -1
  335. package/types/ngwr-badge.d.ts +4 -4
  336. package/types/ngwr-bar-chart.d.ts +1 -1
  337. package/types/ngwr-breadcrumbs.d.ts +1 -1
  338. package/types/ngwr-burger.d.ts +1 -1
  339. package/types/ngwr-button.d.ts +3 -3
  340. package/types/ngwr-calendar-heatmap.d.ts +1 -1
  341. package/types/ngwr-calendar.d.ts +1 -1
  342. package/types/ngwr-card.d.ts +1 -1
  343. package/types/ngwr-carousel.d.ts +1 -1
  344. package/types/ngwr-cascader.d.ts +27 -16
  345. package/types/ngwr-checkbox.d.ts +63 -43
  346. package/types/ngwr-clipboard.d.ts +1 -1
  347. package/types/ngwr-collapse.d.ts +3 -3
  348. package/types/ngwr-color-picker.d.ts +24 -19
  349. package/types/ngwr-command-palette.d.ts +1 -1
  350. package/types/ngwr-compare.d.ts +1 -1
  351. package/types/ngwr-context-menu.d.ts +25 -1
  352. package/types/ngwr-cookie.d.ts +7 -1
  353. package/types/ngwr-counter.d.ts +9 -2
  354. package/types/ngwr-date-picker.d.ts +36 -23
  355. package/types/ngwr-density.d.ts +1 -1
  356. package/types/ngwr-descriptions.d.ts +1 -1
  357. package/types/ngwr-dialog.d.ts +1 -1
  358. package/types/ngwr-directives.d.ts +1 -0
  359. package/types/ngwr-divider.d.ts +2 -2
  360. package/types/ngwr-donut-chart.d.ts +1 -1
  361. package/types/ngwr-drag-drop.d.ts +1 -1
  362. package/types/ngwr-drawer.d.ts +1 -1
  363. package/types/ngwr-dropdown.d.ts +1 -1
  364. package/types/ngwr-empty.d.ts +1 -1
  365. package/types/ngwr-file-upload.d.ts +28 -17
  366. package/types/ngwr-form.d.ts +2 -2
  367. package/types/ngwr-gauge.d.ts +1 -1
  368. package/types/ngwr-hotkey.d.ts +1 -1
  369. package/types/ngwr-i18n.d.ts +1 -1
  370. package/types/ngwr-icon-adapters-lucide.d.ts +5 -3
  371. package/types/ngwr-icon.d.ts +1 -1
  372. package/types/ngwr-image-cropper.d.ts +1 -1
  373. package/types/ngwr-input-number.d.ts +25 -19
  374. package/types/ngwr-input-otp.d.ts +23 -17
  375. package/types/ngwr-input.d.ts +2 -2
  376. package/types/ngwr-keyboard.d.ts +1 -1
  377. package/types/ngwr-knob.d.ts +24 -19
  378. package/types/ngwr-layout.d.ts +1 -1
  379. package/types/ngwr-lightbox.d.ts +1 -1
  380. package/types/ngwr-line-chart.d.ts +1 -1
  381. package/types/ngwr-list.d.ts +1 -1
  382. package/types/ngwr-loading-bar.d.ts +1 -1
  383. package/types/ngwr-marquee.d.ts +1 -1
  384. package/types/ngwr-media.d.ts +1 -1
  385. package/types/ngwr-mention.d.ts +1 -1
  386. package/types/ngwr-meta.d.ts +1 -1
  387. package/types/ngwr-meter-group.d.ts +1 -1
  388. package/types/ngwr-page-header.d.ts +1 -1
  389. package/types/ngwr-pagination.d.ts +1 -1
  390. package/types/ngwr-platform.d.ts +93 -2
  391. package/types/ngwr-popconfirm.d.ts +3 -3
  392. package/types/ngwr-progress.d.ts +2 -2
  393. package/types/ngwr-pull-to-refresh.d.ts +69 -0
  394. package/types/ngwr-qr.d.ts +1 -1
  395. package/types/ngwr-radio.d.ts +25 -22
  396. package/types/ngwr-rating.d.ts +28 -20
  397. package/types/ngwr-result.d.ts +1 -1
  398. package/types/ngwr-rotating-text.d.ts +1 -0
  399. package/types/ngwr-scroll.d.ts +1 -1
  400. package/types/ngwr-segmented.d.ts +1 -1
  401. package/types/ngwr-select.d.ts +93 -26
  402. package/types/ngwr-sidebar.d.ts +1 -1
  403. package/types/ngwr-skeleton.d.ts +2 -2
  404. package/types/ngwr-slider.d.ts +35 -21
  405. package/types/ngwr-sparkline.d.ts +1 -1
  406. package/types/ngwr-speed-dial.d.ts +8 -2
  407. package/types/ngwr-spinner.d.ts +1 -1
  408. package/types/ngwr-splitter.d.ts +1 -1
  409. package/types/ngwr-squircle.d.ts +1 -1
  410. package/types/ngwr-statistic.d.ts +40 -5
  411. package/types/ngwr-stepper.d.ts +2 -2
  412. package/types/ngwr-storage.d.ts +1 -1
  413. package/types/ngwr-switch.d.ts +20 -16
  414. package/types/ngwr-table.d.ts +417 -6
  415. package/types/ngwr-tabs.d.ts +1 -1
  416. package/types/ngwr-textarea.d.ts +21 -18
  417. package/types/ngwr-theme.d.ts +7 -2
  418. package/types/ngwr-tilt-card.d.ts +3 -0
  419. package/types/ngwr-timeline.d.ts +1 -1
  420. package/types/ngwr-toast.d.ts +1 -1
  421. package/types/ngwr-toolbar.d.ts +1 -1
  422. package/types/ngwr-tree.d.ts +100 -19
  423. package/types/ngwr-typography.d.ts +1 -1
  424. package/types/ngwr-validators.d.ts +1 -1
  425. package/types/ngwr-version.d.ts +1 -1
  426. package/types/ngwr-virtual-scroll.d.ts +1 -1
  427. package/types/ngwr-window.d.ts +1 -1
  428. package/typography/styles/_index.scss +11 -11
  429. package/virtual-scroll/styles/_index.scss +1 -1
  430. package/waves/styles/_index.scss +1 -1
  431. package/window/styles/_index.scss +18 -18
@@ -1,18 +1,21 @@
1
1
  @use '../../theme/styles' as theme;
2
2
 
3
3
  .wr-table {
4
- --wr-table-border: var(--wr-color-light);
5
- --wr-table-head-bg: rgba(var(--wr-color-light-rgb), 0.25);
6
- --wr-table-row-hover: rgba(var(--wr-color-light-rgb), 0.15);
4
+ --wr-table-border: var(--wr-color-outline);
5
+ --wr-table-head-bg: rgba(var(--wr-color-outline-rgb), 0.25);
6
+ --wr-table-row-hover: rgba(var(--wr-color-outline-rgb), 0.15);
7
7
 
8
8
  display: block;
9
9
  position: relative;
10
+ // Own stacking context so the loading overlay reliably outranks the sticky
11
+ // pinned cells regardless of the surrounding page z-index.
12
+ isolation: isolate;
10
13
  width: 100%;
11
14
  border: 1px solid var(--wr-table-border);
12
15
  @include theme.smooth-br(var(--wr-border-radius-base));
13
16
  overflow: hidden;
14
17
  font-family: var(--wr-font-family-base);
15
- color: var(--wr-color-dark);
18
+ color: var(--wr-color-on-surface);
16
19
 
17
20
  // Opt-in (`responsive`): query the table's own width so each row collapses to
18
21
  // a labelled card when it's too narrow for columns. Already width:100%, so
@@ -42,8 +45,9 @@
42
45
  }
43
46
 
44
47
  &__th {
48
+ position: relative;
45
49
  background: var(--wr-table-head-bg);
46
- color: var(--wr-color-medium);
50
+ color: var(--wr-color-on-surface-muted);
47
51
  font-weight: 600;
48
52
  font-size: var(--wr-text-xs);
49
53
  letter-spacing: 0.04em;
@@ -51,6 +55,200 @@
51
55
  white-space: nowrap;
52
56
  }
53
57
 
58
+ // --- Column resizing ------------------------------------------------------
59
+ // Once a column is dragged the table goes fixed-layout so `<col>` widths are
60
+ // exact; cells then truncate rather than forcing the column wider.
61
+ &__table--fixed {
62
+ table-layout: fixed;
63
+ }
64
+
65
+ &__table--fixed &__td,
66
+ &__table--fixed &__foot-cell {
67
+ overflow: hidden;
68
+ text-overflow: ellipsis;
69
+ white-space: nowrap;
70
+ }
71
+
72
+ &__table--fixed &__th {
73
+ overflow: hidden;
74
+ }
75
+
76
+ &__resize-handle {
77
+ position: absolute;
78
+ top: 0;
79
+ right: 0;
80
+ z-index: 1;
81
+ width: 0.5rem;
82
+ height: 100%;
83
+ cursor: col-resize;
84
+ touch-action: none;
85
+ user-select: none;
86
+
87
+ &::after {
88
+ content: '';
89
+ position: absolute;
90
+ inset: 20% 0.1875rem;
91
+ left: auto;
92
+ width: 2px;
93
+ border-radius: 1px;
94
+ background: var(--wr-color-outline);
95
+ opacity: 0;
96
+ transition: opacity var(--wr-transition-base);
97
+ }
98
+
99
+ &:hover::after {
100
+ opacity: 1;
101
+ }
102
+ }
103
+
104
+ // --- Column reordering ----------------------------------------------------
105
+ &__th--draggable {
106
+ cursor: grab;
107
+ user-select: none;
108
+ }
109
+
110
+ .cdk-drag-placeholder {
111
+ opacity: 0.35;
112
+ }
113
+
114
+ .cdk-drag-animating {
115
+ transition: transform 0.18s cubic-bezier(0, 0, 0.2, 1);
116
+ }
117
+
118
+ // --- Row selection --------------------------------------------------------
119
+ &__th--select,
120
+ &__td--select {
121
+ width: 1%;
122
+ white-space: nowrap;
123
+ text-align: center;
124
+ vertical-align: middle;
125
+ }
126
+
127
+ &__tr--selected,
128
+ &__tr--selected:hover {
129
+ background: var(--wr-color-primary-soft);
130
+ }
131
+
132
+ // Pinned cells paint their own opaque background, so re-apply the selection
133
+ // tint over it (same technique as the row-hover rule above).
134
+ &__tr--selected &__td--pin-left,
135
+ &__tr--selected &__td--pin-right,
136
+ &__tr--selected:hover &__td--pin-left,
137
+ &__tr--selected:hover &__td--pin-right {
138
+ background-image: linear-gradient(var(--wr-color-primary-soft), var(--wr-color-primary-soft));
139
+ }
140
+
141
+ // --- Row expansion --------------------------------------------------------
142
+ &__th--expand,
143
+ &__td--expand {
144
+ width: 1%;
145
+ white-space: nowrap;
146
+ text-align: center;
147
+ vertical-align: middle;
148
+ }
149
+
150
+ &__expand-btn {
151
+ display: inline-flex;
152
+ align-items: center;
153
+ justify-content: center;
154
+ appearance: none;
155
+ padding: 0.25rem;
156
+ background: transparent;
157
+ border: 0;
158
+ border-radius: var(--wr-border-radius-sm);
159
+ color: var(--wr-color-on-surface-muted);
160
+ cursor: pointer;
161
+ transition: color var(--wr-transition-base);
162
+
163
+ &:hover {
164
+ color: var(--wr-color-on-surface);
165
+ }
166
+ }
167
+
168
+ &__expand-icon {
169
+ width: 1rem;
170
+ height: 1rem;
171
+ transition: transform var(--wr-transition-base);
172
+ }
173
+
174
+ &__expand-btn--open &__expand-icon {
175
+ transform: rotate(90deg);
176
+ }
177
+
178
+ &__detail-row > &__detail {
179
+ padding: 0.875rem 1rem;
180
+ background: rgba(var(--wr-color-outline-rgb), 0.08);
181
+ border-bottom: 1px solid var(--wr-table-border);
182
+ }
183
+
184
+ &__detail-row:last-child > &__detail {
185
+ border-bottom: 0;
186
+ }
187
+
188
+ // Fixed width for the leading select / expand columns (their `<col>` entries).
189
+ &__col--lead {
190
+ width: 2.75rem;
191
+ }
192
+
193
+ // --- Summary / footer row -------------------------------------------------
194
+ &__foot-cell {
195
+ padding: calc(0.625rem * var(--wr-density-y, 1)) calc(0.875rem * var(--wr-density-x, 1));
196
+ background: var(--wr-table-head-bg);
197
+ border-top: 1px solid var(--wr-table-border);
198
+ font-weight: 600;
199
+ font-variant-numeric: tabular-nums;
200
+ white-space: nowrap;
201
+ }
202
+
203
+ // Pinned footer cells need an opaque base (over the head tint) to stay sticky.
204
+ &__foot-cell#{&}__td--pin-left,
205
+ &__foot-cell#{&}__td--pin-right {
206
+ background-color: var(--wr-color-surface);
207
+ background-image: linear-gradient(var(--wr-table-head-bg), var(--wr-table-head-bg));
208
+ }
209
+
210
+ // --- Pinned columns -------------------------------------------------------
211
+ // Frozen against an edge while the rest scrolls. Pinned cells need an opaque
212
+ // background so scrolled content can't show through; the left / right offsets
213
+ // are measured and set inline by the component.
214
+ &__th--pin-left,
215
+ &__th--pin-right,
216
+ &__td--pin-left,
217
+ &__td--pin-right {
218
+ position: sticky;
219
+ }
220
+
221
+ &__td--pin-left,
222
+ &__td--pin-right {
223
+ z-index: 1;
224
+ background-color: var(--wr-color-surface);
225
+ }
226
+
227
+ // Header cells lay the head tint over the opaque base so the row stays seamless.
228
+ &__th--pin-left,
229
+ &__th--pin-right {
230
+ z-index: 2;
231
+ background-color: var(--wr-color-surface);
232
+ background-image: linear-gradient(var(--wr-table-head-bg), var(--wr-table-head-bg));
233
+ }
234
+
235
+ // Keep the row-hover tint on pinned body cells.
236
+ &__tr:hover &__td--pin-left,
237
+ &__tr:hover &__td--pin-right {
238
+ background-image: linear-gradient(var(--wr-table-row-hover), var(--wr-table-row-hover));
239
+ }
240
+
241
+ // Separating shadow on the inner edge of each pinned group.
242
+ &__th--pin-edge-left,
243
+ &__td--pin-edge-left {
244
+ box-shadow: 0.375rem 0 0.375rem -0.25rem rgba(0, 0, 0, 0.18);
245
+ }
246
+
247
+ &__th--pin-edge-right,
248
+ &__td--pin-edge-right {
249
+ box-shadow: -0.375rem 0 0.375rem -0.25rem rgba(0, 0, 0, 0.18);
250
+ }
251
+
54
252
  &__th-inner {
55
253
  display: inline-flex;
56
254
  align-items: center;
@@ -85,7 +283,7 @@
85
283
 
86
284
  &__empty {
87
285
  text-align: center;
88
- color: var(--wr-color-medium);
286
+ color: var(--wr-color-on-surface-muted);
89
287
  padding: 1.5rem;
90
288
  }
91
289
 
@@ -103,9 +301,173 @@
103
301
  display: flex;
104
302
  align-items: center;
105
303
  justify-content: center;
106
- background: rgba(var(--wr-color-white-rgb), 0.7);
304
+ background: rgba(var(--wr-color-surface-rgb), 0.7);
107
305
  backdrop-filter: blur(2px);
108
- z-index: 1;
306
+ // Above the pinned sticky cells (th z-index 2), so loading veils them too.
307
+ z-index: 3;
308
+ }
309
+
310
+ // --- Row grouping ---------------------------------------------------------
311
+ --wr-table-group-bg: rgba(var(--wr-color-outline-rgb), 0.18);
312
+
313
+ &__group-cell {
314
+ // NOTE: never add `overflow` here — the inner box below is `position: sticky`
315
+ // and clips the instant this cell becomes a scroll container. The `--fixed`
316
+ // overflow rules target `__td` / `__foot-cell`, which this cell deliberately
317
+ // is NOT, so it stays safe as written.
318
+ padding: 0;
319
+ background: var(--wr-table-group-bg);
320
+ border-bottom: 1px solid var(--wr-table-border);
321
+ }
322
+
323
+ // The band cell is full table width, so a sticky inline box inside it rides
324
+ // horizontal scroll and keeps the label at the left edge. No measurement.
325
+ &__group-inner {
326
+ position: sticky;
327
+ left: 0;
328
+ display: inline-flex;
329
+ align-items: center;
330
+ gap: 0.5rem;
331
+ max-width: 100%;
332
+ padding: calc(0.5rem * var(--wr-density-y, 1)) calc(0.875rem * var(--wr-density-x, 1));
333
+ }
334
+
335
+ &__group-select {
336
+ flex: 0 0 auto;
337
+ }
338
+
339
+ &__group-toggle {
340
+ display: inline-flex;
341
+ align-items: center;
342
+ gap: 0.5rem;
343
+ min-width: 0; // lets the label shrink so the cell can't widen columns
344
+ appearance: none;
345
+ background: transparent;
346
+ border: 0;
347
+ padding: 0;
348
+ color: inherit;
349
+ font: inherit;
350
+ font-weight: 600;
351
+ cursor: pointer;
352
+ }
353
+
354
+ &__group-icon {
355
+ flex: 0 0 auto;
356
+ width: 1rem;
357
+ height: 1rem;
358
+ transition: transform var(--wr-transition-base);
359
+ transform: rotate(90deg); // expanded — chevron points down
360
+ }
361
+
362
+ &__group-row--collapsed &__group-icon {
363
+ transform: none; // collapsed — chevron points right
364
+ }
365
+
366
+ &__group-label {
367
+ // Cap intrinsic width: in the default (auto) layout a colspan cell's
368
+ // min-content is spread across columns, so an ellipsizing shrinkable label
369
+ // keeps a long group name from widening the table.
370
+ min-width: 0;
371
+ overflow: hidden;
372
+ text-overflow: ellipsis;
373
+ white-space: nowrap;
374
+ }
375
+
376
+ &__group-count {
377
+ flex: 0 0 auto;
378
+ padding: 0 0.375rem;
379
+ border-radius: var(--wr-border-radius-pill);
380
+ background: rgba(var(--wr-color-outline-rgb), 0.5);
381
+ color: var(--wr-color-on-surface-muted);
382
+ font-size: var(--wr-text-xs);
383
+ font-weight: 500;
384
+ font-variant-numeric: tabular-nums;
385
+ }
386
+
387
+ // Per-group subtotal row: the grand footer in the group tint. Every cell
388
+ // carries an opaque `surface` base with the tint layered on top (same
389
+ // technique as the pinned-footer rule), so pinned subtotal cells stay opaque
390
+ // and sticky. Declared AFTER `&__foot-cell#{&}__td--pin-*` so the
391
+ // same-specificity (0,2,0) tie resolves here and paints the group tint.
392
+ &__group-foot-row > &__foot-cell {
393
+ border-top: 0;
394
+ border-bottom: 1px solid var(--wr-table-border);
395
+ background-color: var(--wr-color-surface);
396
+ background-image: linear-gradient(var(--wr-table-group-bg), var(--wr-table-group-bg));
397
+ }
398
+
399
+ // The table's genuine last body row must not double the host's own bottom
400
+ // border. The existing `&__tr:last-child .wr-table__td` covers a data row;
401
+ // these cover a trailing subtotal row or a trailing collapsed band.
402
+ &__group-foot-row:last-child > &__foot-cell,
403
+ &__group-row:last-child > &__group-cell {
404
+ border-bottom: 0;
405
+ }
406
+ }
407
+
408
+ // --- Virtualized body -------------------------------------------------------
409
+ // Scoped under the host `--virtual` class, so a non-virtual table is untouched.
410
+ .wr-table--virtual {
411
+ // One dual-axis scroll container: keep overflow-x (pins), add overflow-y.
412
+ // `max-height` is set inline from `viewportHeight`.
413
+ .wr-table__scroll {
414
+ overflow-y: auto;
415
+ overscroll-behavior: contain;
416
+ }
417
+
418
+ // Sticky header. Plain (non-pinned) cells need an OPAQUE base or scrolled body
419
+ // rows bleed through the translucent head tint.
420
+ thead th {
421
+ position: sticky;
422
+ top: 0;
423
+ z-index: 2;
424
+ }
425
+
426
+ thead th:not(.wr-table__th--pin-left):not(.wr-table__th--pin-right) {
427
+ background-color: var(--wr-color-surface);
428
+ background-image: linear-gradient(var(--wr-table-head-bg), var(--wr-table-head-bg));
429
+ }
430
+
431
+ // The corner-sticky pinned header must beat the plain sticky header during
432
+ // horizontal scroll (plain th is z-2).
433
+ .wr-table__th--pin-left,
434
+ .wr-table__th--pin-right {
435
+ z-index: 3;
436
+ }
437
+
438
+ // Uniform row height (fixed layout is already forced → cells truncate via the
439
+ // existing `--fixed` rules). `height` is a MINIMUM, not a clamp — see the
440
+ // rowHeight contract on the component.
441
+ .wr-table__tr {
442
+ height: var(--wr-table-row-h);
443
+ }
444
+
445
+ // Height-only reserved rows contribute nothing to columns or borders.
446
+ .wr-table__spacer > td {
447
+ padding: 0;
448
+ border: 0;
449
+ }
450
+
451
+ // Grand footer pinned to the viewport bottom; plain cells get the opaque base.
452
+ tfoot .wr-table__foot-cell {
453
+ position: sticky;
454
+ bottom: 0;
455
+ z-index: 2;
456
+ }
457
+
458
+ tfoot .wr-table__foot-cell:not(.wr-table__td--pin-left):not(.wr-table__td--pin-right) {
459
+ background-color: var(--wr-color-surface);
460
+ background-image: linear-gradient(var(--wr-table-head-bg), var(--wr-table-head-bg));
461
+ }
462
+
463
+ tfoot .wr-table__foot-cell.wr-table__td--pin-left,
464
+ tfoot .wr-table__foot-cell.wr-table__td--pin-right {
465
+ z-index: 3;
466
+ }
467
+
468
+ // The loading overlay must outrank the new z-3 corner-sticky header/footer.
469
+ .wr-table__loading {
470
+ z-index: 4;
109
471
  }
110
472
  }
111
473
 
@@ -153,7 +515,7 @@
153
515
  .wr-table--responsive .wr-table__td::before {
154
516
  content: attr(data-label);
155
517
  flex: 0 0 auto;
156
- color: var(--wr-color-medium);
518
+ color: var(--wr-color-on-surface-muted);
157
519
  font-size: var(--wr-text-xs);
158
520
  font-weight: 600;
159
521
  letter-spacing: 0.04em;
@@ -161,12 +523,80 @@
161
523
  text-align: left;
162
524
  white-space: nowrap;
163
525
  }
526
+
527
+ // Pinning is meaningless once each row is a card — unfreeze the body cells
528
+ // (the header, and thus pinned `th`, is already hidden above).
529
+ .wr-table--responsive .wr-table__td--pin-left,
530
+ .wr-table--responsive .wr-table__td--pin-right {
531
+ position: static;
532
+ z-index: auto;
533
+ box-shadow: none;
534
+ background-color: transparent;
535
+ background-image: none;
536
+ }
537
+
538
+ // Fixed-layout truncation is meaningless in cards — let values wrap again.
539
+ .wr-table--responsive .wr-table__table--fixed .wr-table__td {
540
+ overflow: visible;
541
+ white-space: normal;
542
+ text-overflow: clip;
543
+ }
544
+
545
+ // The select / expand cells have no label — drop their empty card-mode label.
546
+ .wr-table--responsive .wr-table__td--select::before,
547
+ .wr-table--responsive .wr-table__td--expand::before {
548
+ display: none;
549
+ }
550
+
551
+ // The detail row spans the card rather than a table cell.
552
+ .wr-table--responsive .wr-table__detail-row,
553
+ .wr-table--responsive .wr-table__detail {
554
+ display: block;
555
+ }
556
+
557
+ // The summary footer doesn't translate to cards — hide it.
558
+ .wr-table--responsive .wr-table__foot-row {
559
+ display: none;
560
+ }
561
+
562
+ // Group bands become full-width section headers between the cards.
563
+ .wr-table--responsive .wr-table__group-row,
564
+ .wr-table--responsive .wr-table__group-cell {
565
+ display: block;
566
+ }
567
+
568
+ .wr-table--responsive .wr-table__group-inner {
569
+ position: static;
570
+ display: flex;
571
+ width: 100%;
572
+ }
573
+
574
+ .wr-table--responsive .wr-table__group-toggle {
575
+ flex: 1 1 auto;
576
+ text-align: left;
577
+ }
578
+
579
+ // Per-group subtotals don't translate to cards either — hide like the grand footer.
580
+ .wr-table--responsive .wr-table__group-foot-row {
581
+ display: none;
582
+ }
583
+
584
+ .wr-table--responsive .wr-table__group-row:last-child {
585
+ border-bottom: 0;
586
+ }
587
+
588
+ // A hidden trailing subtotal row still occupies the DOM, stealing `:last-child`
589
+ // from the last data card — clear that card's border so it doesn't double the
590
+ // host's own bottom border.
591
+ .wr-table--responsive .wr-table__tr:has(+ .wr-table__group-foot-row:last-child) {
592
+ border-bottom: 0;
593
+ }
164
594
  }
165
595
 
166
596
  .wr-table-sort {
167
597
  display: inline-flex;
168
598
  --wr-icon-size: 0.875rem;
169
- color: var(--wr-color-medium);
599
+ color: var(--wr-color-on-surface-muted);
170
600
  transition:
171
601
  transform var(--wr-transition-base),
172
602
  color var(--wr-transition-base);
@@ -186,7 +616,7 @@
186
616
 
187
617
  .wr-table-filter {
188
618
  display: inline-flex;
189
- color: var(--wr-color-medium);
619
+ color: var(--wr-color-on-surface-muted);
190
620
 
191
621
  &--active {
192
622
  color: var(--wr-color-primary);
@@ -232,10 +662,10 @@
232
662
  appearance: none;
233
663
  width: 100%;
234
664
  padding: 0.375rem 0.5rem;
235
- border: 1px solid var(--wr-color-light);
665
+ border: 1px solid var(--wr-color-outline);
236
666
  border-radius: var(--wr-border-radius-sm);
237
667
  background: transparent;
238
- color: var(--wr-color-dark);
668
+ color: var(--wr-color-on-surface);
239
669
  font: inherit;
240
670
  font-size: var(--wr-text-sm);
241
671
  }
@@ -256,14 +686,14 @@
256
686
  border: 0;
257
687
  padding: 0.375rem 0.5rem;
258
688
  border-radius: var(--wr-border-radius-sm);
259
- color: var(--wr-color-dark);
689
+ color: var(--wr-color-on-surface);
260
690
  font: inherit;
261
691
  font-size: var(--wr-text-sm);
262
692
  text-align: left;
263
693
  cursor: pointer;
264
694
 
265
695
  &:hover {
266
- background: rgba(var(--wr-color-light-rgb), 0.35);
696
+ background: rgba(var(--wr-color-outline-rgb), 0.35);
267
697
  }
268
698
  }
269
699
 
@@ -274,7 +704,7 @@
274
704
  width: 1rem;
275
705
  height: 1rem;
276
706
  border-radius: var(--wr-border-radius-sm);
277
- border: 1px solid var(--wr-color-light);
707
+ border: 1px solid var(--wr-color-outline);
278
708
  color: transparent;
279
709
  --wr-icon-size: 0.75rem;
280
710
  transition: var(--wr-transition-base);
@@ -292,7 +722,7 @@
292
722
 
293
723
  &__empty {
294
724
  padding: 0.625rem 0.5rem;
295
- color: var(--wr-color-medium);
725
+ color: var(--wr-color-on-surface-muted);
296
726
  font-size: var(--wr-text-sm);
297
727
  text-align: center;
298
728
  }
@@ -1,9 +1,9 @@
1
1
  @use '../../theme/styles' as theme;
2
2
 
3
3
  .wr-tabs {
4
- --wr-tabs-border: var(--wr-color-light);
5
- --wr-tabs-color: var(--wr-color-medium);
6
- --wr-tabs-color-hover: var(--wr-color-dark);
4
+ --wr-tabs-border: var(--wr-color-outline);
5
+ --wr-tabs-color: var(--wr-color-on-surface-muted);
6
+ --wr-tabs-color-hover: var(--wr-color-on-surface);
7
7
  --wr-tabs-color-active: var(--wr-color-primary);
8
8
  --wr-tabs-indicator: var(--wr-color-primary);
9
9
  --wr-tabs-font-size: var(--wr-control-font-size-md);
@@ -5,10 +5,10 @@
5
5
  position: relative;
6
6
 
7
7
  // Defaults
8
- --wr-textarea-color: var(--wr-color-dark);
9
- --wr-textarea-placeholder: rgba(var(--wr-color-medium-rgb), 0.7);
10
- --wr-textarea-bg: var(--wr-color-white);
11
- --wr-textarea-border: var(--wr-color-light);
8
+ --wr-textarea-color: var(--wr-color-on-surface);
9
+ --wr-textarea-placeholder: rgba(var(--wr-color-on-surface-muted-rgb), 0.7);
10
+ --wr-textarea-bg: var(--wr-color-surface);
11
+ --wr-textarea-border: var(--wr-color-outline);
12
12
  --wr-textarea-radius: var(--wr-control-radius-md);
13
13
  --wr-textarea-ring: transparent;
14
14
  --wr-textarea-padding-y: 0.5rem;
@@ -32,8 +32,8 @@
32
32
  }
33
33
 
34
34
  &--disabled {
35
- --wr-textarea-color: var(--wr-color-medium);
36
- --wr-textarea-bg: rgba(var(--wr-color-light-rgb), 0.35);
35
+ --wr-textarea-color: var(--wr-color-on-surface-muted);
36
+ --wr-textarea-bg: rgba(var(--wr-color-outline-rgb), 0.35);
37
37
  cursor: not-allowed;
38
38
  }
39
39
 
@@ -117,7 +117,7 @@
117
117
  }
118
118
 
119
119
  &:hover {
120
- color: var(--wr-color-medium);
120
+ color: var(--wr-color-on-surface-muted);
121
121
  }
122
122
  }
123
123
  }
@@ -5,7 +5,7 @@
5
5
  // Base palette
6
6
  //
7
7
  // Override the whole palette via:
8
- // @use 'ngwr/theme/colors' with (
8
+ // @use 'ngwr/theme/styles/colors' with (
9
9
  // $base-colors: (primary: #...)
10
10
  // );
11
11
 
@@ -102,11 +102,35 @@ $contrast-light: #ffffff !default;
102
102
  --wr-color-gray-950: #020617;
103
103
 
104
104
  // Semantic role aliases over the flipping neutrals — prefer these in new code
105
- // for intent-free surface / text jobs. They resolve through `white` / `dark`
106
- // / `medium`, so they flip with the theme automatically.
105
+ // for intent-free surface / text / outline jobs. They resolve through
106
+ // `white` / `dark` / `medium` / `light`, so they flip with the theme
107
+ // automatically.
108
+ //
109
+ // Why roles at all: the neutrals do double duty. `--wr-color-dark` is both
110
+ // the `color="dark"` INTENT (a button variant, public API) and the default
111
+ // text colour; `--wr-color-white` is both the `color="light"`-adjacent
112
+ // surface and the page background. Reading `dark` in a component tells you
113
+ // nothing about which job it is doing. The roles name the job, so a future
114
+ // reader — and a future re-theme — can tell them apart. The intent scale
115
+ // stays exactly as it is; these sit on top of it.
116
+ //
117
+ // Each role mirrors the literal 1:1, including the `-rgb` channel list so
118
+ // translucent fills (`rgba(var(--wr-color-surface-rgb), α)`) never have to
119
+ // reach back down to a literal.
107
120
  --wr-color-surface: var(--wr-color-white);
121
+ --wr-color-surface-rgb: var(--wr-color-white-rgb);
108
122
  --wr-color-on-surface: var(--wr-color-dark);
123
+ --wr-color-on-surface-rgb: var(--wr-color-dark-rgb);
109
124
  --wr-color-on-surface-muted: var(--wr-color-medium);
125
+ --wr-color-on-surface-muted-rgb: var(--wr-color-medium-rgb);
126
+
127
+ // Solid hairline / divider colour. Distinct from `--wr-color-border` above,
128
+ // which is deliberately translucent (`light` at 50%) so it reads on any
129
+ // surface — `outline` is the opaque one components actually draw 1px rules
130
+ // with today. Both are kept: swapping one for the other changes appearance,
131
+ // not just naming.
132
+ --wr-color-outline: var(--wr-color-light);
133
+ --wr-color-outline-rgb: var(--wr-color-light-rgb);
110
134
 
111
135
  @each $name, $base in $base-colors {
112
136
  --wr-color-#{$name}: #{$base};
@@ -7,9 +7,9 @@
7
7
  position: relative;
8
8
  padding: 1.5rem;
9
9
  border-radius: 0.75rem;
10
- border: 1px solid var(--wr-color-light);
11
- background: var(--wr-color-white);
12
- color: var(--wr-color-dark);
10
+ border: 1px solid var(--wr-color-outline);
11
+ background: var(--wr-color-surface);
12
+ color: var(--wr-color-on-surface);
13
13
  box-shadow: 0 1px 2px rgba(var(--wr-color-backdrop-rgb), 0.06);
14
14
  // Card itself doesn't need overflow:hidden by default — the directive
15
15
  // toggles overflow when glare is enabled. Authors can opt in.
@@ -27,7 +27,7 @@
27
27
  // to the classic white sheen below.
28
28
  background: radial-gradient(
29
29
  circle at var(--wr-tilt-glare-x, 50%) var(--wr-tilt-glare-y, 50%),
30
- var(--wr-tilt-glare-color, rgba(var(--wr-color-dark-rgb), 0.12)),
30
+ var(--wr-tilt-glare-color, rgba(var(--wr-color-on-surface-rgb), 0.12)),
31
31
  transparent 60%
32
32
  );
33
33
  mix-blend-mode: multiply;