@dalcvil/steam-green-react 0.2.0 → 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (348) hide show
  1. package/README.md +20 -5
  2. package/dist/components/Avatar/Avatar.css +136 -0
  3. package/dist/components/Avatar/Avatar.d.ts +22 -0
  4. package/dist/components/Avatar/Avatar.d.ts.map +1 -0
  5. package/dist/components/Avatar/Avatar.js +49 -0
  6. package/dist/components/Avatar/Avatar.js.map +1 -0
  7. package/dist/components/Avatar/index.d.ts +3 -0
  8. package/dist/components/Avatar/index.d.ts.map +1 -0
  9. package/dist/components/Button/Button.css +117 -0
  10. package/dist/components/Button/Button.d.ts +18 -0
  11. package/dist/components/Button/Button.d.ts.map +1 -0
  12. package/dist/components/Button/Button.js +29 -0
  13. package/dist/components/Button/Button.js.map +1 -0
  14. package/dist/components/Button/index.d.ts +3 -0
  15. package/dist/components/Button/index.d.ts.map +1 -0
  16. package/dist/components/Checkbox/Checkbox.css +116 -0
  17. package/dist/components/Checkbox/Checkbox.css.d.ts +1 -0
  18. package/dist/components/Checkbox/Checkbox.d.ts +19 -0
  19. package/dist/components/Checkbox/Checkbox.d.ts.map +1 -0
  20. package/dist/components/Checkbox/Checkbox.js +51 -0
  21. package/dist/components/Checkbox/Checkbox.js.map +1 -0
  22. package/dist/components/Checkbox/index.d.ts +3 -0
  23. package/dist/components/Checkbox/index.d.ts.map +1 -0
  24. package/dist/components/ColorPicker/ColorPicker.css +331 -0
  25. package/dist/components/ColorPicker/ColorPicker.css.d.ts +1 -0
  26. package/dist/components/ColorPicker/ColorPicker.d.ts +29 -0
  27. package/dist/components/ColorPicker/ColorPicker.d.ts.map +1 -0
  28. package/dist/components/ColorPicker/ColorPicker.js +534 -0
  29. package/dist/components/ColorPicker/ColorPicker.js.map +1 -0
  30. package/dist/components/ColorPicker/index.d.ts +3 -0
  31. package/dist/components/{GreenButton → ColorPicker}/index.d.ts.map +1 -1
  32. package/dist/components/Console/Console.css +96 -0
  33. package/dist/components/Console/Console.css.d.ts +1 -0
  34. package/dist/components/Console/Console.d.ts +26 -0
  35. package/dist/components/Console/Console.d.ts.map +1 -0
  36. package/dist/components/Console/Console.js +59 -0
  37. package/dist/components/Console/Console.js.map +1 -0
  38. package/dist/components/Console/index.d.ts +3 -0
  39. package/dist/components/Console/index.d.ts.map +1 -0
  40. package/dist/components/Dialog/Dialog.css +137 -0
  41. package/dist/components/Dialog/Dialog.css.d.ts +1 -0
  42. package/dist/components/Dialog/Dialog.d.ts +28 -0
  43. package/dist/components/Dialog/Dialog.d.ts.map +1 -0
  44. package/dist/components/Dialog/Dialog.js +151 -0
  45. package/dist/components/Dialog/Dialog.js.map +1 -0
  46. package/dist/components/Dialog/index.d.ts +3 -0
  47. package/dist/components/Dialog/index.d.ts.map +1 -0
  48. package/dist/components/Divider/Divider.css +68 -0
  49. package/dist/components/Divider/Divider.css.d.ts +1 -0
  50. package/dist/components/Divider/Divider.d.ts +12 -0
  51. package/dist/components/Divider/Divider.d.ts.map +1 -0
  52. package/dist/components/Divider/Divider.js +23 -0
  53. package/dist/components/Divider/Divider.js.map +1 -0
  54. package/dist/components/Divider/index.d.ts +3 -0
  55. package/dist/components/Divider/index.d.ts.map +1 -0
  56. package/dist/components/FieldLabel/FieldLabel.css +98 -0
  57. package/dist/components/FieldLabel/FieldLabel.css.d.ts +1 -0
  58. package/dist/components/FieldLabel/FieldLabel.d.ts +29 -0
  59. package/dist/components/FieldLabel/FieldLabel.d.ts.map +1 -0
  60. package/dist/components/FieldLabel/FieldLabel.js +42 -0
  61. package/dist/components/FieldLabel/FieldLabel.js.map +1 -0
  62. package/dist/components/FieldLabel/index.d.ts +3 -0
  63. package/dist/components/{GreenPanel → FieldLabel}/index.d.ts.map +1 -1
  64. package/dist/components/GroupBox/GroupBox.css +101 -0
  65. package/dist/components/GroupBox/GroupBox.css.d.ts +1 -0
  66. package/dist/components/GroupBox/GroupBox.d.ts +14 -0
  67. package/dist/components/GroupBox/GroupBox.d.ts.map +1 -0
  68. package/dist/components/GroupBox/GroupBox.js +25 -0
  69. package/dist/components/GroupBox/GroupBox.js.map +1 -0
  70. package/dist/components/GroupBox/index.d.ts +3 -0
  71. package/dist/components/GroupBox/index.d.ts.map +1 -0
  72. package/dist/components/IconButton/IconButton.css +184 -0
  73. package/dist/components/IconButton/IconButton.css.d.ts +1 -0
  74. package/dist/components/IconButton/IconButton.d.ts +56 -0
  75. package/dist/components/IconButton/IconButton.d.ts.map +1 -0
  76. package/dist/components/IconButton/IconButton.js +77 -0
  77. package/dist/components/IconButton/IconButton.js.map +1 -0
  78. package/dist/components/IconButton/index.d.ts +3 -0
  79. package/dist/components/IconButton/index.d.ts.map +1 -0
  80. package/dist/components/LevelMeter/LevelMeter.css +117 -0
  81. package/dist/components/LevelMeter/LevelMeter.css.d.ts +1 -0
  82. package/dist/components/LevelMeter/LevelMeter.d.ts +20 -0
  83. package/dist/components/LevelMeter/LevelMeter.d.ts.map +1 -0
  84. package/dist/components/LevelMeter/LevelMeter.js +44 -0
  85. package/dist/components/LevelMeter/LevelMeter.js.map +1 -0
  86. package/dist/components/LevelMeter/index.d.ts +3 -0
  87. package/dist/components/LevelMeter/index.d.ts.map +1 -0
  88. package/dist/components/Link/Link.css +127 -0
  89. package/dist/components/Link/Link.css.d.ts +1 -0
  90. package/dist/components/Link/Link.d.ts +26 -0
  91. package/dist/components/Link/Link.d.ts.map +1 -0
  92. package/dist/components/Link/Link.js +60 -0
  93. package/dist/components/Link/Link.js.map +1 -0
  94. package/dist/components/Link/index.d.ts +3 -0
  95. package/dist/components/Link/index.d.ts.map +1 -0
  96. package/dist/components/List/List.css +224 -0
  97. package/dist/components/List/List.css.d.ts +1 -0
  98. package/dist/components/List/List.d.ts +49 -0
  99. package/dist/components/List/List.d.ts.map +1 -0
  100. package/dist/components/List/List.js +300 -0
  101. package/dist/components/List/List.js.map +1 -0
  102. package/dist/components/List/index.d.ts +3 -0
  103. package/dist/components/List/index.d.ts.map +1 -0
  104. package/dist/components/Menu/Menu.css +122 -0
  105. package/dist/components/Menu/Menu.css.d.ts +1 -0
  106. package/dist/components/Menu/Menu.d.ts +46 -0
  107. package/dist/components/Menu/Menu.d.ts.map +1 -0
  108. package/dist/components/Menu/Menu.js +246 -0
  109. package/dist/components/Menu/Menu.js.map +1 -0
  110. package/dist/components/Menu/index.d.ts +3 -0
  111. package/dist/components/Menu/index.d.ts.map +1 -0
  112. package/dist/components/MenuBar/MenuBar.css +94 -0
  113. package/dist/components/MenuBar/MenuBar.css.d.ts +1 -0
  114. package/dist/components/MenuBar/MenuBar.d.ts +34 -0
  115. package/dist/components/MenuBar/MenuBar.d.ts.map +1 -0
  116. package/dist/components/MenuBar/MenuBar.js +129 -0
  117. package/dist/components/MenuBar/MenuBar.js.map +1 -0
  118. package/dist/components/MenuBar/index.d.ts +3 -0
  119. package/dist/components/MenuBar/index.d.ts.map +1 -0
  120. package/dist/components/NavBar/NavBar.css +179 -0
  121. package/dist/components/NavBar/NavBar.css.d.ts +1 -0
  122. package/dist/components/NavBar/NavBar.d.ts +39 -0
  123. package/dist/components/NavBar/NavBar.d.ts.map +1 -0
  124. package/dist/components/NavBar/NavBar.js +198 -0
  125. package/dist/components/NavBar/NavBar.js.map +1 -0
  126. package/dist/components/NavBar/index.d.ts +3 -0
  127. package/dist/components/NavBar/index.d.ts.map +1 -0
  128. package/dist/components/Notification/Notification.css +176 -0
  129. package/dist/components/Notification/Notification.css.d.ts +1 -0
  130. package/dist/components/Notification/Notification.d.ts +26 -0
  131. package/dist/components/Notification/Notification.d.ts.map +1 -0
  132. package/dist/components/Notification/Notification.js +181 -0
  133. package/dist/components/Notification/Notification.js.map +1 -0
  134. package/dist/components/Notification/index.d.ts +3 -0
  135. package/dist/components/Notification/index.d.ts.map +1 -0
  136. package/dist/components/Panel/Panel.css +56 -0
  137. package/dist/components/Panel/Panel.css.d.ts +1 -0
  138. package/dist/components/Panel/Panel.d.ts +14 -0
  139. package/dist/components/Panel/Panel.d.ts.map +1 -0
  140. package/dist/components/Panel/Panel.js +42 -0
  141. package/dist/components/Panel/Panel.js.map +1 -0
  142. package/dist/components/Panel/index.d.ts +3 -0
  143. package/dist/components/Panel/index.d.ts.map +1 -0
  144. package/dist/components/ProgressBar/ProgressBar.css +108 -0
  145. package/dist/components/ProgressBar/ProgressBar.css.d.ts +1 -0
  146. package/dist/components/ProgressBar/ProgressBar.d.ts +22 -0
  147. package/dist/components/ProgressBar/ProgressBar.d.ts.map +1 -0
  148. package/dist/components/ProgressBar/ProgressBar.js +43 -0
  149. package/dist/components/ProgressBar/ProgressBar.js.map +1 -0
  150. package/dist/components/ProgressBar/index.d.ts +3 -0
  151. package/dist/components/ProgressBar/index.d.ts.map +1 -0
  152. package/dist/components/Radio/Radio.css +125 -0
  153. package/dist/components/Radio/Radio.css.d.ts +1 -0
  154. package/dist/components/Radio/Radio.d.ts +40 -0
  155. package/dist/components/Radio/Radio.d.ts.map +1 -0
  156. package/dist/components/Radio/Radio.js +91 -0
  157. package/dist/components/Radio/Radio.js.map +1 -0
  158. package/dist/components/Radio/index.d.ts +3 -0
  159. package/dist/components/Radio/index.d.ts.map +1 -0
  160. package/dist/components/RichText/RichText.css +96 -0
  161. package/dist/components/RichText/RichText.css.d.ts +1 -0
  162. package/dist/components/RichText/RichText.d.ts +25 -0
  163. package/dist/components/RichText/RichText.d.ts.map +1 -0
  164. package/dist/components/RichText/RichText.js +56 -0
  165. package/dist/components/RichText/RichText.js.map +1 -0
  166. package/dist/components/RichText/index.d.ts +3 -0
  167. package/dist/components/RichText/index.d.ts.map +1 -0
  168. package/dist/components/ScrollArea/ScrollArea.css +236 -0
  169. package/dist/components/ScrollArea/ScrollArea.css.d.ts +1 -0
  170. package/dist/components/ScrollArea/ScrollArea.d.ts +25 -0
  171. package/dist/components/ScrollArea/ScrollArea.d.ts.map +1 -0
  172. package/dist/components/ScrollArea/ScrollArea.js +124 -0
  173. package/dist/components/ScrollArea/ScrollArea.js.map +1 -0
  174. package/dist/components/ScrollArea/index.d.ts +3 -0
  175. package/dist/components/ScrollArea/index.d.ts.map +1 -0
  176. package/dist/components/Scrollbar/Scrollbar.css +260 -0
  177. package/dist/components/Scrollbar/Scrollbar.css.d.ts +1 -0
  178. package/dist/components/Scrollbar/Scrollbar.d.ts +31 -0
  179. package/dist/components/Scrollbar/Scrollbar.d.ts.map +1 -0
  180. package/dist/components/Scrollbar/Scrollbar.js +277 -0
  181. package/dist/components/Scrollbar/Scrollbar.js.map +1 -0
  182. package/dist/components/Scrollbar/index.d.ts +3 -0
  183. package/dist/components/Scrollbar/index.d.ts.map +1 -0
  184. package/dist/components/Select/Select.css +299 -0
  185. package/dist/components/Select/Select.css.d.ts +1 -0
  186. package/dist/components/Select/Select.d.ts +52 -0
  187. package/dist/components/Select/Select.d.ts.map +1 -0
  188. package/dist/components/Select/Select.js +281 -0
  189. package/dist/components/Select/Select.js.map +1 -0
  190. package/dist/components/Select/index.d.ts +3 -0
  191. package/dist/components/Select/index.d.ts.map +1 -0
  192. package/dist/components/Slider/Slider.css +158 -0
  193. package/dist/components/Slider/Slider.css.d.ts +1 -0
  194. package/dist/components/Slider/Slider.d.ts +26 -0
  195. package/dist/components/Slider/Slider.d.ts.map +1 -0
  196. package/dist/components/Slider/Slider.js +67 -0
  197. package/dist/components/Slider/Slider.js.map +1 -0
  198. package/dist/components/Slider/index.d.ts +3 -0
  199. package/dist/components/Slider/index.d.ts.map +1 -0
  200. package/dist/components/SpinBox/SpinBox.css +152 -0
  201. package/dist/components/SpinBox/SpinBox.css.d.ts +1 -0
  202. package/dist/components/SpinBox/SpinBox.d.ts +28 -0
  203. package/dist/components/SpinBox/SpinBox.d.ts.map +1 -0
  204. package/dist/components/SpinBox/SpinBox.js +207 -0
  205. package/dist/components/SpinBox/SpinBox.js.map +1 -0
  206. package/dist/components/SpinBox/index.d.ts +3 -0
  207. package/dist/components/SpinBox/index.d.ts.map +1 -0
  208. package/dist/components/Spinner/Spinner.css +137 -0
  209. package/dist/components/Spinner/Spinner.css.d.ts +1 -0
  210. package/dist/components/Spinner/Spinner.d.ts +20 -0
  211. package/dist/components/Spinner/Spinner.d.ts.map +1 -0
  212. package/dist/components/Spinner/Spinner.js +36 -0
  213. package/dist/components/Spinner/Spinner.js.map +1 -0
  214. package/dist/components/Spinner/index.d.ts +3 -0
  215. package/dist/components/Spinner/index.d.ts.map +1 -0
  216. package/dist/components/Splitter/Splitter.css +119 -0
  217. package/dist/components/Splitter/Splitter.css.d.ts +1 -0
  218. package/dist/components/Splitter/Splitter.d.ts +25 -0
  219. package/dist/components/Splitter/Splitter.d.ts.map +1 -0
  220. package/dist/components/Splitter/Splitter.js +212 -0
  221. package/dist/components/Splitter/Splitter.js.map +1 -0
  222. package/dist/components/Splitter/index.d.ts +3 -0
  223. package/dist/components/Splitter/index.d.ts.map +1 -0
  224. package/dist/components/StatusBar/StatusBar.css +97 -0
  225. package/dist/components/StatusBar/StatusBar.css.d.ts +1 -0
  226. package/dist/components/StatusBar/StatusBar.d.ts +22 -0
  227. package/dist/components/StatusBar/StatusBar.d.ts.map +1 -0
  228. package/dist/components/StatusBar/StatusBar.js +56 -0
  229. package/dist/components/StatusBar/StatusBar.js.map +1 -0
  230. package/dist/components/StatusBar/index.d.ts +3 -0
  231. package/dist/components/StatusBar/index.d.ts.map +1 -0
  232. package/dist/components/StatusLabel/StatusLabel.css +93 -0
  233. package/dist/components/StatusLabel/StatusLabel.css.d.ts +1 -0
  234. package/dist/components/StatusLabel/StatusLabel.d.ts +20 -0
  235. package/dist/components/StatusLabel/StatusLabel.d.ts.map +1 -0
  236. package/dist/components/StatusLabel/StatusLabel.js +42 -0
  237. package/dist/components/StatusLabel/StatusLabel.js.map +1 -0
  238. package/dist/components/StatusLabel/index.d.ts +3 -0
  239. package/dist/components/StatusLabel/index.d.ts.map +1 -0
  240. package/dist/components/Table/Table.css +253 -0
  241. package/dist/components/Table/Table.css.d.ts +1 -0
  242. package/dist/components/Table/Table.d.ts +67 -0
  243. package/dist/components/Table/Table.d.ts.map +1 -0
  244. package/dist/components/Table/Table.js +429 -0
  245. package/dist/components/Table/Table.js.map +1 -0
  246. package/dist/components/Table/index.d.ts +3 -0
  247. package/dist/components/Table/index.d.ts.map +1 -0
  248. package/dist/components/Tabs/Tabs.css +138 -0
  249. package/dist/components/Tabs/Tabs.css.d.ts +1 -0
  250. package/dist/components/Tabs/Tabs.d.ts +34 -0
  251. package/dist/components/Tabs/Tabs.d.ts.map +1 -0
  252. package/dist/components/Tabs/Tabs.js +140 -0
  253. package/dist/components/Tabs/Tabs.js.map +1 -0
  254. package/dist/components/Tabs/index.d.ts +3 -0
  255. package/dist/components/Tabs/index.d.ts.map +1 -0
  256. package/dist/components/TextInput/TextInput.css +133 -0
  257. package/dist/components/TextInput/TextInput.css.d.ts +1 -0
  258. package/dist/components/TextInput/TextInput.d.ts +16 -0
  259. package/dist/components/TextInput/TextInput.d.ts.map +1 -0
  260. package/dist/components/TextInput/TextInput.js +38 -0
  261. package/dist/components/TextInput/TextInput.js.map +1 -0
  262. package/dist/components/TextInput/index.d.ts +3 -0
  263. package/dist/components/TextInput/index.d.ts.map +1 -0
  264. package/dist/components/Textarea/Textarea.css +121 -0
  265. package/dist/components/Textarea/Textarea.css.d.ts +1 -0
  266. package/dist/components/Textarea/Textarea.d.ts +21 -0
  267. package/dist/components/Textarea/Textarea.d.ts.map +1 -0
  268. package/dist/components/Textarea/Textarea.js +61 -0
  269. package/dist/components/Textarea/Textarea.js.map +1 -0
  270. package/dist/components/Textarea/index.d.ts +3 -0
  271. package/dist/components/Textarea/index.d.ts.map +1 -0
  272. package/dist/components/TitleBar/TitleBar.css +76 -0
  273. package/dist/components/TitleBar/TitleBar.css.d.ts +1 -0
  274. package/dist/components/TitleBar/TitleBar.d.ts +20 -0
  275. package/dist/components/TitleBar/TitleBar.d.ts.map +1 -0
  276. package/dist/components/TitleBar/TitleBar.js +43 -0
  277. package/dist/components/TitleBar/TitleBar.js.map +1 -0
  278. package/dist/components/TitleBar/index.d.ts +3 -0
  279. package/dist/components/TitleBar/index.d.ts.map +1 -0
  280. package/dist/components/ToggleButton/ToggleButton.css +162 -0
  281. package/dist/components/ToggleButton/ToggleButton.css.d.ts +1 -0
  282. package/dist/components/ToggleButton/ToggleButton.d.ts +27 -0
  283. package/dist/components/ToggleButton/ToggleButton.d.ts.map +1 -0
  284. package/dist/components/ToggleButton/ToggleButton.js +52 -0
  285. package/dist/components/ToggleButton/ToggleButton.js.map +1 -0
  286. package/dist/components/ToggleButton/index.d.ts +3 -0
  287. package/dist/components/ToggleButton/index.d.ts.map +1 -0
  288. package/dist/components/Toolbar/Toolbar.css +202 -0
  289. package/dist/components/Toolbar/Toolbar.css.d.ts +1 -0
  290. package/dist/components/Toolbar/Toolbar.d.ts +46 -0
  291. package/dist/components/Toolbar/Toolbar.d.ts.map +1 -0
  292. package/dist/components/Toolbar/Toolbar.js +102 -0
  293. package/dist/components/Toolbar/Toolbar.js.map +1 -0
  294. package/dist/components/Toolbar/index.d.ts +3 -0
  295. package/dist/components/Toolbar/index.d.ts.map +1 -0
  296. package/dist/components/Tooltip/Tooltip.css +86 -0
  297. package/dist/components/Tooltip/Tooltip.css.d.ts +1 -0
  298. package/dist/components/Tooltip/Tooltip.d.ts +22 -0
  299. package/dist/components/Tooltip/Tooltip.d.ts.map +1 -0
  300. package/dist/components/Tooltip/Tooltip.js +92 -0
  301. package/dist/components/Tooltip/Tooltip.js.map +1 -0
  302. package/dist/components/Tooltip/index.d.ts +3 -0
  303. package/dist/components/Tooltip/index.d.ts.map +1 -0
  304. package/dist/components/TreeView/TreeView.css +191 -0
  305. package/dist/components/TreeView/TreeView.css.d.ts +1 -0
  306. package/dist/components/TreeView/TreeView.d.ts +46 -0
  307. package/dist/components/TreeView/TreeView.d.ts.map +1 -0
  308. package/dist/components/TreeView/TreeView.js +331 -0
  309. package/dist/components/TreeView/TreeView.js.map +1 -0
  310. package/dist/components/TreeView/index.d.ts +3 -0
  311. package/dist/components/TreeView/index.d.ts.map +1 -0
  312. package/dist/components/Window/Window.css +218 -0
  313. package/dist/components/Window/Window.css.d.ts +1 -0
  314. package/dist/components/Window/Window.d.ts +30 -0
  315. package/dist/components/Window/Window.d.ts.map +1 -0
  316. package/dist/components/Window/Window.js +156 -0
  317. package/dist/components/Window/Window.js.map +1 -0
  318. package/dist/components/Window/index.d.ts +3 -0
  319. package/dist/components/Window/index.d.ts.map +1 -0
  320. package/dist/index.d.ts +91 -10
  321. package/dist/index.d.ts.map +1 -1
  322. package/dist/index.js +41 -3
  323. package/dist/styles/scrollbars.css +123 -0
  324. package/dist/styles/scrollbars.css.d.ts +1 -0
  325. package/dist/styles/theme.css +86 -41
  326. package/dist/styles/tokens.css +202 -0
  327. package/dist/styles/tokens.css.d.ts +1 -0
  328. package/dist/test/a11y.d.ts +3 -0
  329. package/dist/test/a11y.d.ts.map +1 -0
  330. package/dist/test/index.d.ts +2 -0
  331. package/dist/test/index.d.ts.map +1 -0
  332. package/dist/test/setup.d.ts +2 -0
  333. package/dist/test/setup.d.ts.map +1 -0
  334. package/package.json +13 -2
  335. package/dist/components/GreenButton/GreenButton.css +0 -47
  336. package/dist/components/GreenButton/GreenButton.d.ts +0 -8
  337. package/dist/components/GreenButton/GreenButton.d.ts.map +0 -1
  338. package/dist/components/GreenButton/GreenButton.js +0 -20
  339. package/dist/components/GreenButton/GreenButton.js.map +0 -1
  340. package/dist/components/GreenButton/index.d.ts +0 -3
  341. package/dist/components/GreenPanel/GreenPanel.css +0 -45
  342. package/dist/components/GreenPanel/GreenPanel.d.ts +0 -12
  343. package/dist/components/GreenPanel/GreenPanel.d.ts.map +0 -1
  344. package/dist/components/GreenPanel/GreenPanel.js +0 -24
  345. package/dist/components/GreenPanel/GreenPanel.js.map +0 -1
  346. package/dist/components/GreenPanel/index.d.ts +0 -3
  347. /package/dist/components/{GreenButton/GreenButton.css.d.ts → Avatar/Avatar.css.d.ts} +0 -0
  348. /package/dist/components/{GreenPanel/GreenPanel.css.d.ts → Button/Button.css.d.ts} +0 -0
@@ -0,0 +1,156 @@
1
+ import { forwardRef, useId, useRef, useState } from "react";
2
+ import "./Window.css";
3
+ import { jsx, jsxs } from "react/jsx-runtime";
4
+ //#region src/components/Window/Window.tsx
5
+ /** Arrow-key nudge, in pixels. `Shift` drops to a single pixel. */
6
+ var NUDGE = 8;
7
+ var FINE_NUDGE = 1;
8
+ var Window = forwardRef(function Window({ title, icon, minimizable = true, maximizable = true, closable = true, resizable = true, focused = false, maximized = false, onAction, onDrag, controlsLabel, tooltip, className, children, onKeyDown, ...rest }, ref) {
9
+ const titleId = useId();
10
+ const dragOrigin = useRef({
11
+ x: 0,
12
+ y: 0
13
+ });
14
+ const activeZone = useRef(null);
15
+ const [dragging, setDragging] = useState(null);
16
+ const isModal = rest.role === "dialog" || rest.role === "alertdialog";
17
+ const handleKeyDown = (event) => {
18
+ if (event.key === "Escape" && closable && isModal) onAction?.("close");
19
+ onKeyDown?.(event);
20
+ };
21
+ const startDrag = (zone) => (event) => {
22
+ if (!onDrag || event.button !== 0) return;
23
+ activeZone.current = zone;
24
+ dragOrigin.current = {
25
+ x: event.clientX,
26
+ y: event.clientY
27
+ };
28
+ setDragging(zone);
29
+ if (typeof event.currentTarget.setPointerCapture === "function") event.currentTarget.setPointerCapture(event.pointerId);
30
+ };
31
+ const handlePointerMove = (event) => {
32
+ if (!activeZone.current || !onDrag) return;
33
+ onDrag(event.clientX - dragOrigin.current.x, event.clientY - dragOrigin.current.y);
34
+ };
35
+ const endDrag = (event) => {
36
+ if (!activeZone.current) return;
37
+ activeZone.current = null;
38
+ setDragging(null);
39
+ const target = event.currentTarget;
40
+ if (typeof target.hasPointerCapture === "function" && target.hasPointerCapture(event.pointerId)) target.releasePointerCapture(event.pointerId);
41
+ };
42
+ const handleNudge = (event) => {
43
+ if (!onDrag) return;
44
+ const step = event.shiftKey ? FINE_NUDGE : NUDGE;
45
+ let deltaX = 0;
46
+ let deltaY = 0;
47
+ switch (event.key) {
48
+ case "ArrowLeft":
49
+ deltaX = -step;
50
+ break;
51
+ case "ArrowRight":
52
+ deltaX = step;
53
+ break;
54
+ case "ArrowUp":
55
+ deltaY = -step;
56
+ break;
57
+ case "ArrowDown":
58
+ deltaY = step;
59
+ break;
60
+ default: return;
61
+ }
62
+ event.preventDefault();
63
+ onDrag(deltaX, deltaY);
64
+ };
65
+ const controls = [];
66
+ if (minimizable) controls.push({
67
+ action: "minimize",
68
+ label: "Minimize"
69
+ });
70
+ if (maximizable) controls.push(maximized ? {
71
+ action: "restore",
72
+ label: "Restore"
73
+ } : {
74
+ action: "maximize",
75
+ label: "Maximize"
76
+ });
77
+ if (closable) controls.push({
78
+ action: "close",
79
+ label: "Close"
80
+ });
81
+ const gripIsControl = resizable && !maximized && Boolean(onDrag);
82
+ const classes = ["vgui-window"];
83
+ if (focused) classes.push("vgui-window--focused");
84
+ if (maximized) classes.push("vgui-window--maximized");
85
+ if (className) classes.push(className);
86
+ return /* @__PURE__ */ jsxs("section", {
87
+ ref,
88
+ "aria-labelledby": titleId,
89
+ title: tooltip,
90
+ className: classes.join(" "),
91
+ onKeyDown: handleKeyDown,
92
+ ...rest,
93
+ children: [
94
+ /* @__PURE__ */ jsxs("div", {
95
+ className: "vgui-window__titlebar",
96
+ tabIndex: 0,
97
+ "data-dragging": dragging === "titlebar" ? "true" : void 0,
98
+ onPointerDown: startDrag("titlebar"),
99
+ onPointerMove: handlePointerMove,
100
+ onPointerUp: endDrag,
101
+ onPointerCancel: endDrag,
102
+ onKeyDown: handleNudge,
103
+ children: [
104
+ icon ? /* @__PURE__ */ jsx("span", {
105
+ className: "vgui-window__icon",
106
+ children: icon
107
+ }) : null,
108
+ /* @__PURE__ */ jsx("span", {
109
+ className: "vgui-window__title",
110
+ id: titleId,
111
+ children: title
112
+ }),
113
+ controls.length > 0 ? /* @__PURE__ */ jsx("div", {
114
+ className: "vgui-window__controls",
115
+ role: "group",
116
+ "aria-label": controlsLabel ?? "Window controls",
117
+ children: controls.map((control) => /* @__PURE__ */ jsxs("button", {
118
+ type: "button",
119
+ className: `vgui-window__control vgui-window__control--${control.action === "restore" ? "maximize" : control.action}`,
120
+ onClick: () => onAction?.(control.action),
121
+ children: [/* @__PURE__ */ jsx("span", {
122
+ className: "vgui-window__glyph",
123
+ "aria-hidden": "true",
124
+ "data-glyph": control.action
125
+ }), /* @__PURE__ */ jsx("span", {
126
+ className: "vgui-visually-hidden",
127
+ children: control.label
128
+ })]
129
+ }, control.action))
130
+ }) : null
131
+ ]
132
+ }),
133
+ /* @__PURE__ */ jsx("div", {
134
+ className: "vgui-window__body",
135
+ children
136
+ }),
137
+ resizable && !maximized ? /* @__PURE__ */ jsx("div", {
138
+ className: "vgui-window__grip",
139
+ "data-dragging": dragging === "grip" ? "true" : void 0,
140
+ tabIndex: gripIsControl ? 0 : void 0,
141
+ "aria-label": gripIsControl ? "Resize window" : void 0,
142
+ "aria-hidden": gripIsControl ? void 0 : true,
143
+ onPointerDown: gripIsControl ? startDrag("grip") : void 0,
144
+ onPointerMove: gripIsControl ? handlePointerMove : void 0,
145
+ onPointerUp: gripIsControl ? endDrag : void 0,
146
+ onPointerCancel: gripIsControl ? endDrag : void 0,
147
+ onKeyDown: gripIsControl ? handleNudge : void 0
148
+ }) : null
149
+ ]
150
+ });
151
+ });
152
+ Window.displayName = "Window";
153
+ //#endregion
154
+ export { Window };
155
+
156
+ //# sourceMappingURL=Window.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Window.js","names":[],"sources":["../../../src/components/Window/Window.tsx"],"sourcesContent":["import { forwardRef, useId, useRef, useState } from 'react'\nimport type {\n HTMLAttributes,\n KeyboardEvent as ReactKeyboardEvent,\n PointerEvent as ReactPointerEvent,\n ReactNode,\n} from 'react'\n\nimport './Window.css'\n\ntype WindowAction = 'minimize' | 'maximize' | 'restore' | 'close'\n\ntype DragZone = 'titlebar' | 'grip'\n\n/** Arrow-key nudge, in pixels. `Shift` drops to a single pixel. */\nconst NUDGE = 8\nconst FINE_NUDGE = 1\n\n// `title` is the caption, not the tooltip, and `onDrag` reports a pointer delta\n// rather than the DOM drag event, so both DOM props are replaced rather than\n// extended.\nexport interface WindowProps extends Omit<HTMLAttributes<HTMLDivElement>, 'title' | 'onDrag'> {\n /** Uppercase text in the title bar. */\n title: ReactNode\n /** Optional 16px application glyph shown before the title. */\n icon?: ReactNode\n /** Show the minimize control. */\n minimizable?: boolean\n /** Show the maximize control. */\n maximizable?: boolean\n /** Show the close control. */\n closable?: boolean\n /** Show the bottom-right resize grip. */\n resizable?: boolean\n /** Render the focused border and glyph colours. */\n focused?: boolean\n /** Show the maximize glyph in its toggled state. */\n maximized?: boolean\n /** Fires when a control is activated; `close` also fires on Escape. */\n onAction?: (action: 'minimize' | 'maximize' | 'restore' | 'close') => void\n /** Called continuously while dragging the title bar, with the pointer delta. */\n onDrag?: (deltaX: number, deltaY: number) => void\n /** Accessible label for the control group. */\n controlsLabel?: string\n /** Native tooltip attribute — `title` is taken by the caption. */\n tooltip?: string\n}\n\nexport const Window = forwardRef<HTMLDivElement, WindowProps>(function Window(\n {\n title,\n icon,\n minimizable = true,\n maximizable = true,\n closable = true,\n resizable = true,\n focused = false,\n maximized = false,\n onAction,\n onDrag,\n controlsLabel,\n tooltip,\n className,\n children,\n onKeyDown,\n ...rest\n },\n ref,\n) {\n const titleId = useId()\n const dragOrigin = useRef({ x: 0, y: 0 })\n const activeZone = useRef<DragZone | null>(null)\n const [dragging, setDragging] = useState<DragZone | null>(null)\n\n /*\n * A floating window is a plain named `section`; only a modal one — the dialog\n * the consumer opts into by passing `role` — may claim the dialog role, and\n * only a modal one may swallow Escape.\n */\n const isModal = rest.role === 'dialog' || rest.role === 'alertdialog'\n\n const handleKeyDown = (event: ReactKeyboardEvent<HTMLDivElement>) => {\n if (event.key === 'Escape' && closable && isModal) onAction?.('close')\n onKeyDown?.(event)\n }\n\n const startDrag = (zone: DragZone) => (event: ReactPointerEvent<HTMLDivElement>) => {\n if (!onDrag || event.button !== 0) return\n\n activeZone.current = zone\n dragOrigin.current = { x: event.clientX, y: event.clientY }\n setDragging(zone)\n\n // jsdom has no pointer capture at all, so it is feature-detected rather\n // than assumed.\n if (typeof event.currentTarget.setPointerCapture === 'function') {\n event.currentTarget.setPointerCapture(event.pointerId)\n }\n }\n\n const handlePointerMove = (event: ReactPointerEvent<HTMLDivElement>) => {\n if (!activeZone.current || !onDrag) return\n onDrag(event.clientX - dragOrigin.current.x, event.clientY - dragOrigin.current.y)\n }\n\n const endDrag = (event: ReactPointerEvent<HTMLDivElement>) => {\n if (!activeZone.current) return\n\n activeZone.current = null\n setDragging(null)\n\n const target = event.currentTarget\n if (typeof target.hasPointerCapture === 'function' && target.hasPointerCapture(event.pointerId)) {\n target.releasePointerCapture(event.pointerId)\n }\n }\n\n /* Pointer-only dragging fails WCAG 2.1.1, so both zones nudge from the keyboard. */\n const handleNudge = (event: ReactKeyboardEvent<HTMLDivElement>) => {\n if (!onDrag) return\n\n const step = event.shiftKey ? FINE_NUDGE : NUDGE\n let deltaX = 0\n let deltaY = 0\n\n switch (event.key) {\n case 'ArrowLeft':\n deltaX = -step\n break\n case 'ArrowRight':\n deltaX = step\n break\n case 'ArrowUp':\n deltaY = -step\n break\n case 'ArrowDown':\n deltaY = step\n break\n default:\n return\n }\n\n event.preventDefault()\n onDrag(deltaX, deltaY)\n }\n\n const controls: Array<{ action: WindowAction; label: string }> = []\n if (minimizable) controls.push({ action: 'minimize', label: 'Minimize' })\n if (maximizable) {\n controls.push(\n maximized\n ? { action: 'restore', label: 'Restore' }\n : { action: 'maximize', label: 'Maximize' },\n )\n }\n if (closable) controls.push({ action: 'close', label: 'Close' })\n\n // A grip with no `onDrag` to report to would be a lie, so it becomes\n // decorative rather than announcing itself as a control.\n const gripIsControl = resizable && !maximized && Boolean(onDrag)\n\n const classes = ['vgui-window']\n if (focused) classes.push('vgui-window--focused')\n if (maximized) classes.push('vgui-window--maximized')\n if (className) classes.push(className)\n\n return (\n <section\n ref={ref}\n aria-labelledby={titleId}\n title={tooltip}\n className={classes.join(' ')}\n onKeyDown={handleKeyDown}\n {...rest}\n >\n <div\n className=\"vgui-window__titlebar\"\n tabIndex={0}\n data-dragging={dragging === 'titlebar' ? 'true' : undefined}\n onPointerDown={startDrag('titlebar')}\n onPointerMove={handlePointerMove}\n onPointerUp={endDrag}\n onPointerCancel={endDrag}\n onKeyDown={handleNudge}\n >\n {icon ? <span className=\"vgui-window__icon\">{icon}</span> : null}\n <span className=\"vgui-window__title\" id={titleId}>\n {title}\n </span>\n {controls.length > 0 ? (\n <div\n className=\"vgui-window__controls\"\n role=\"group\"\n aria-label={controlsLabel ?? 'Window controls'}\n >\n {controls.map((control) => (\n <button\n key={control.action}\n type=\"button\"\n className={`vgui-window__control vgui-window__control--${\n control.action === 'restore' ? 'maximize' : control.action\n }`}\n onClick={() => onAction?.(control.action)}\n >\n <span\n className=\"vgui-window__glyph\"\n aria-hidden=\"true\"\n data-glyph={control.action}\n />\n <span className=\"vgui-visually-hidden\">{control.label}</span>\n </button>\n ))}\n </div>\n ) : null}\n </div>\n <div className=\"vgui-window__body\">{children}</div>\n {resizable && !maximized ? (\n <div\n className=\"vgui-window__grip\"\n data-dragging={dragging === 'grip' ? 'true' : undefined}\n tabIndex={gripIsControl ? 0 : undefined}\n aria-label={gripIsControl ? 'Resize window' : undefined}\n aria-hidden={gripIsControl ? undefined : true}\n onPointerDown={gripIsControl ? startDrag('grip') : undefined}\n onPointerMove={gripIsControl ? handlePointerMove : undefined}\n onPointerUp={gripIsControl ? endDrag : undefined}\n onPointerCancel={gripIsControl ? endDrag : undefined}\n onKeyDown={gripIsControl ? handleNudge : undefined}\n />\n ) : null}\n </section>\n )\n})\n\nWindow.displayName = 'Window'\n"],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ export { Window } from './Window';
2
+ export type { WindowProps } from './Window';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/Window/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAA;AACjC,YAAY,EAAE,WAAW,EAAE,MAAM,UAAU,CAAA"}
package/dist/index.d.ts CHANGED
@@ -1,19 +1,100 @@
1
1
  /**
2
2
  * @dalcvil/steam-green-react
3
3
  *
4
- * Public entry point. Every component is re-exported from here, but the build
5
- * preserves the module graph so importing one component never pulls in the
6
- * rest:
4
+ * Public entry point. Every component, and the props type for every component,
5
+ * is re-exported from here:
7
6
  *
8
7
  * ```tsx
9
- * import { GreenButton } from '@dalcvil/steam-green-react'
8
+ * import { Button, type ButtonProps } from '@dalcvil/steam-green-react'
10
9
  * ```
11
10
  *
12
- * The global theme (`@dalcvil/steam-green-react/styles/theme.css`) is opt-in;
13
- * per-component styles ship with their component.
11
+ * The build keeps the module graph intact, so importing one component never
12
+ * pulls in the rest. Styles for a component ship beside it and are imported by
13
+ * the component itself; the global theme
14
+ * (`@dalcvil/steam-green-react/styles/theme.css`) is opt-in and only sets
15
+ * document-level defaults.
16
+ *
17
+ * Components are named for what they are, not for the theme: `Button`, not
18
+ * `GreenButton`. See `docs/README.md` for the full component inventory.
14
19
  */
15
- export { GreenButton } from './components/GreenButton';
16
- export type { GreenButtonProps } from './components/GreenButton';
17
- export { GreenPanel } from './components/GreenPanel';
18
- export type { GreenPanelProps } from './components/GreenPanel';
20
+ export { Dialog } from './components/Dialog';
21
+ export type { DialogProps } from './components/Dialog';
22
+ export { Divider } from './components/Divider';
23
+ export type { DividerProps } from './components/Divider';
24
+ export { GroupBox } from './components/GroupBox';
25
+ export type { GroupBoxProps } from './components/GroupBox';
26
+ export { Notification } from './components/Notification';
27
+ export type { NotificationProps } from './components/Notification';
28
+ export { Panel } from './components/Panel';
29
+ export type { PanelProps } from './components/Panel';
30
+ export { ScrollArea } from './components/ScrollArea';
31
+ export type { ScrollAreaProps } from './components/ScrollArea';
32
+ export { Splitter } from './components/Splitter';
33
+ export type { SplitterProps } from './components/Splitter';
34
+ export { TitleBar } from './components/TitleBar';
35
+ export type { TitleBarProps } from './components/TitleBar';
36
+ export { Tooltip } from './components/Tooltip';
37
+ export type { TooltipProps } from './components/Tooltip';
38
+ export { Window } from './components/Window';
39
+ export type { WindowProps } from './components/Window';
40
+ export { Button } from './components/Button';
41
+ export type { ButtonProps } from './components/Button';
42
+ export { Checkbox } from './components/Checkbox';
43
+ export type { CheckboxProps } from './components/Checkbox';
44
+ export { ColorPicker } from './components/ColorPicker';
45
+ export type { ColorPickerProps } from './components/ColorPicker';
46
+ export { FieldLabel } from './components/FieldLabel';
47
+ export type { FieldLabelProps } from './components/FieldLabel';
48
+ export { IconButton, glyphs } from './components/IconButton';
49
+ export type { GlyphName, IconButtonProps } from './components/IconButton';
50
+ export { ProgressBar } from './components/ProgressBar';
51
+ export type { ProgressBarProps } from './components/ProgressBar';
52
+ export { Radio, RadioGroup } from './components/Radio';
53
+ export type { RadioProps, RadioGroupProps } from './components/Radio';
54
+ export { Select } from './components/Select';
55
+ export type { SelectOption, SelectProps } from './components/Select';
56
+ export { Slider } from './components/Slider';
57
+ export type { SliderProps } from './components/Slider';
58
+ export { SpinBox } from './components/SpinBox';
59
+ export type { SpinBoxProps } from './components/SpinBox';
60
+ export { Textarea } from './components/Textarea';
61
+ export type { TextareaProps } from './components/Textarea';
62
+ export { TextInput } from './components/TextInput';
63
+ export type { TextInputProps } from './components/TextInput';
64
+ export { ToggleButton } from './components/ToggleButton';
65
+ export type { ToggleButtonProps } from './components/ToggleButton';
66
+ export { Link } from './components/Link';
67
+ export type { LinkProps } from './components/Link';
68
+ export { Menu, MenuItem } from './components/Menu';
69
+ export type { MenuItemProps, MenuItemSpec, MenuProps } from './components/Menu';
70
+ export { MenuBar } from './components/MenuBar';
71
+ export type { MenuBarItemSpec, MenuBarProps } from './components/MenuBar';
72
+ export { NavBar } from './components/NavBar';
73
+ export type { NavBarItem, NavBarProps } from './components/NavBar';
74
+ export { Tabs } from './components/Tabs';
75
+ export type { TabSpec, TabsProps } from './components/Tabs';
76
+ export { Toolbar } from './components/Toolbar';
77
+ export type { ToolbarItem, ToolbarProps } from './components/Toolbar';
78
+ export { Avatar } from './components/Avatar';
79
+ export type { AvatarProps } from './components/Avatar';
80
+ export { Console } from './components/Console';
81
+ export type { ConsoleLine, ConsoleLineKind, ConsoleProps } from './components/Console';
82
+ export { LevelMeter } from './components/LevelMeter';
83
+ export type { LevelMeterProps } from './components/LevelMeter';
84
+ export { List } from './components/List';
85
+ export type { ListProps, ListRow, ListSection } from './components/List';
86
+ export { RichText, RichTextBold, RichTextEmphasis, RichTextLink } from './components/RichText';
87
+ export type { RichTextBoldProps, RichTextEmphasisProps, RichTextLinkProps, RichTextProps, } from './components/RichText';
88
+ export { Scrollbar } from './components/Scrollbar';
89
+ export type { ScrollbarProps } from './components/Scrollbar';
90
+ export { Spinner } from './components/Spinner';
91
+ export type { SpinnerProps } from './components/Spinner';
92
+ export { StatusBar } from './components/StatusBar';
93
+ export type { StatusBarProps } from './components/StatusBar';
94
+ export { StatusLabel } from './components/StatusLabel';
95
+ export type { StatusLabelProps } from './components/StatusLabel';
96
+ export { Table } from './components/Table';
97
+ export type { TableColumn, TableProps, TableSort } from './components/Table';
98
+ export { TreeView } from './components/TreeView';
99
+ export type { TreeNode, TreeViewProps, TreeViewVariant } from './components/TreeView';
19
100
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AACH,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAA;AACtD,YAAY,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAA;AAChE,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAA;AACpD,YAAY,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -1,3 +1,41 @@
1
- import { GreenButton } from "./components/GreenButton/GreenButton.js";
2
- import { GreenPanel } from "./components/GreenPanel/GreenPanel.js";
3
- export { GreenButton, GreenPanel };
1
+ import { Window } from "./components/Window/Window.js";
2
+ import { Dialog } from "./components/Dialog/Dialog.js";
3
+ import { Divider } from "./components/Divider/Divider.js";
4
+ import { GroupBox } from "./components/GroupBox/GroupBox.js";
5
+ import { Notification } from "./components/Notification/Notification.js";
6
+ import { Panel } from "./components/Panel/Panel.js";
7
+ import { ScrollArea } from "./components/ScrollArea/ScrollArea.js";
8
+ import { Splitter } from "./components/Splitter/Splitter.js";
9
+ import { TitleBar } from "./components/TitleBar/TitleBar.js";
10
+ import { Tooltip } from "./components/Tooltip/Tooltip.js";
11
+ import { Button } from "./components/Button/Button.js";
12
+ import { Checkbox } from "./components/Checkbox/Checkbox.js";
13
+ import { ColorPicker } from "./components/ColorPicker/ColorPicker.js";
14
+ import { FieldLabel } from "./components/FieldLabel/FieldLabel.js";
15
+ import { IconButton, glyphs } from "./components/IconButton/IconButton.js";
16
+ import { ProgressBar } from "./components/ProgressBar/ProgressBar.js";
17
+ import { Radio, RadioGroup } from "./components/Radio/Radio.js";
18
+ import { Select } from "./components/Select/Select.js";
19
+ import { Slider } from "./components/Slider/Slider.js";
20
+ import { SpinBox } from "./components/SpinBox/SpinBox.js";
21
+ import { Textarea } from "./components/Textarea/Textarea.js";
22
+ import { TextInput } from "./components/TextInput/TextInput.js";
23
+ import { ToggleButton } from "./components/ToggleButton/ToggleButton.js";
24
+ import { Link } from "./components/Link/Link.js";
25
+ import { Menu, MenuItem } from "./components/Menu/Menu.js";
26
+ import { MenuBar } from "./components/MenuBar/MenuBar.js";
27
+ import { NavBar } from "./components/NavBar/NavBar.js";
28
+ import { Tabs } from "./components/Tabs/Tabs.js";
29
+ import { Toolbar } from "./components/Toolbar/Toolbar.js";
30
+ import { Avatar } from "./components/Avatar/Avatar.js";
31
+ import { Console } from "./components/Console/Console.js";
32
+ import { LevelMeter } from "./components/LevelMeter/LevelMeter.js";
33
+ import { List } from "./components/List/List.js";
34
+ import { RichText, RichTextBold, RichTextEmphasis, RichTextLink } from "./components/RichText/RichText.js";
35
+ import { Scrollbar } from "./components/Scrollbar/Scrollbar.js";
36
+ import { Spinner } from "./components/Spinner/Spinner.js";
37
+ import { StatusLabel } from "./components/StatusLabel/StatusLabel.js";
38
+ import { StatusBar } from "./components/StatusBar/StatusBar.js";
39
+ import { Table } from "./components/Table/Table.js";
40
+ import { TreeView } from "./components/TreeView/TreeView.js";
41
+ export { Avatar, Button, Checkbox, ColorPicker, Console, Dialog, Divider, FieldLabel, GroupBox, IconButton, LevelMeter, Link, List, Menu, MenuBar, MenuItem, NavBar, Notification, Panel, ProgressBar, Radio, RadioGroup, RichText, RichTextBold, RichTextEmphasis, RichTextLink, ScrollArea, Scrollbar, Select, Slider, SpinBox, Spinner, Splitter, StatusBar, StatusLabel, Table, Tabs, TextInput, Textarea, TitleBar, ToggleButton, Toolbar, Tooltip, TreeView, Window, glyphs };
@@ -0,0 +1,123 @@
1
+ /*
2
+ * Green Steam scrollbar skin for the platform's own scrollbar.
3
+ *
4
+ * The library's scrollbar is the 18px VGUI bar: a light-green gutter, a
5
+ * surface-green thumb with a raised bevel, and an 18x18 arrow button at each
6
+ * end (docs/components/Scrollbar.md). There are three ways to paint it and they
7
+ * are meant to be indistinguishable:
8
+ *
9
+ * 1. `Scrollbar` draws it as a button/gutter/thumb tree, which is the only
10
+ * way to get dragging, clicking and a stable gutter in every browser.
11
+ * 2. `ScrollArea` draws the same bar, without the interaction, for regions
12
+ * that only need the look.
13
+ * 3. This file paints it onto the *platform* bar, so a component that
14
+ * scrolls its own content — a table body, a console, a textarea, a combo
15
+ * box list — reads as the same control.
16
+ *
17
+ * Opt in by putting `.vgui-scroll-surface` on any scrolling element:
18
+ *
19
+ * <div class="vgui-scroll-surface" style="overflow-y: auto">…</div>
20
+ *
21
+ * Every self-scrolling component in the library already does this. Fidelity is
22
+ * browser-dependent and cannot be raised:
23
+ *
24
+ * - WebKit and Blink paint the whole thing, arrow buttons included. That is
25
+ * every engine but Firefox, and Firefox has no scrollbar pseudo-elements at
26
+ * all — `scrollbar-color` recolours the gutter and the thumb and stops
27
+ * there, so the bevel and the arrows are lost there and only there.
28
+ * - Forced-colors mode drops the colours and keeps the geometry, which is the
29
+ * correct behaviour rather than a gap to close.
30
+ * - Scrollbar colours do not animate and the arrows cannot host a `::before`,
31
+ * which is why the glyph below is a stack of gradient layers rather than a
32
+ * `clip-path` triangle like the drawn bar's.
33
+ *
34
+ * Like every other stylesheet in the package this reads the shared tokens with
35
+ * literal fallbacks, so it resolves on a page that never imported the theme.
36
+ */
37
+
38
+ .vgui-scroll-surface {
39
+ /* Thumb first, then track — `steam.styles:2240`, `:2291`. */
40
+ scrollbar-color: var(--vgui-scrollbar-thumb, #4c5844) var(--vgui-scrollbar-gutter, #5a6a50);
41
+ /* `thin` and `none` would take the arrows with them, so the bar keeps its own
42
+ * 18px size and the `scrollbar-width` shorthand is pinned back to `auto`. */
43
+ scrollbar-width: auto;
44
+ }
45
+
46
+ .vgui-scroll-surface::-webkit-scrollbar {
47
+ inline-size: var(--vgui-scrollbar-size, 18px);
48
+ block-size: var(--vgui-scrollbar-size, 18px);
49
+ background-color: var(--vgui-scrollbar-gutter, #5a6a50);
50
+ }
51
+
52
+ /* The square where the two bars meet. `ListView.Corner` makes it darker. */
53
+ .vgui-scroll-surface::-webkit-scrollbar-corner {
54
+ background-color: var(--vgui-scrollbar-corner, #5a6a50);
55
+ }
56
+
57
+ /* A box-shadow ring cannot be split into a light and a dark side, so the bevel
58
+ * is the border (docs/foundations.md §4). */
59
+ .vgui-scroll-surface::-webkit-scrollbar-thumb {
60
+ background-color: var(--vgui-scrollbar-thumb, #4c5844);
61
+ border: var(--vgui-bevel-width, 1px) solid;
62
+ border-color: var(--vgui-bevel-light, #899281) var(--vgui-bevel-dark, #292d23)
63
+ var(--vgui-bevel-dark, #292d23) var(--vgui-bevel-light, #899281);
64
+ }
65
+
66
+ /* The arrow: four half-open fills, 7px wide by 4px tall, laid out as the
67
+ * staircase VGUI's glyph actually is (docs/components/Scrollbar.md). Four 1px
68
+ * gradient layers reproduce it, because a scrollbar button has no `::before`. */
69
+ .vgui-scroll-surface::-webkit-scrollbar-button {
70
+ --vgui-scrollbar-glyph: var(--vgui-scrollbar-glyph-color, #a0aa95);
71
+ inline-size: var(--vgui-scrollbar-button-size, 18px);
72
+ block-size: var(--vgui-scrollbar-button-size, 18px);
73
+ background-color: var(--vgui-scrollbar-thumb, #4c5844);
74
+ background-image: linear-gradient(var(--vgui-scrollbar-glyph), var(--vgui-scrollbar-glyph)),
75
+ linear-gradient(var(--vgui-scrollbar-glyph), var(--vgui-scrollbar-glyph)),
76
+ linear-gradient(var(--vgui-scrollbar-glyph), var(--vgui-scrollbar-glyph)),
77
+ linear-gradient(var(--vgui-scrollbar-glyph), var(--vgui-scrollbar-glyph));
78
+ background-repeat: no-repeat;
79
+ border: var(--vgui-bevel-width, 1px) solid;
80
+ border-color: var(--vgui-bevel-light, #899281) var(--vgui-bevel-dark, #292d23)
81
+ var(--vgui-bevel-dark, #292d23) var(--vgui-bevel-light, #899281);
82
+ }
83
+
84
+ /* Up: the staircase is narrowest at its tip. Positions are measured from the
85
+ * padding box, so 6px..9px is the glyph centered in an 18px button. */
86
+ .vgui-scroll-surface::-webkit-scrollbar-button:vertical {
87
+ background-size: 1px 1px, 3px 1px, 5px 1px, 7px 1px;
88
+ background-position: center 6px, center 7px, center 8px, center 9px;
89
+ }
90
+
91
+ .vgui-scroll-surface::-webkit-scrollbar-button:vertical:increment {
92
+ background-size: 7px 1px, 5px 1px, 3px 1px, 1px 1px;
93
+ }
94
+
95
+ .vgui-scroll-surface::-webkit-scrollbar-button:horizontal {
96
+ background-size: 1px 1px, 1px 3px, 1px 5px, 1px 7px;
97
+ background-position: 6px center, 7px center, 8px center, 9px center;
98
+ }
99
+
100
+ .vgui-scroll-surface::-webkit-scrollbar-button:horizontal:increment {
101
+ background-size: 1px 7px, 1px 5px, 1px 3px, 1px 1px;
102
+ }
103
+
104
+ /* Hover recolours the glyph and press inverts the box — the same two rules the
105
+ * drawn bar follows (`steam.styles:2030-2067`). */
106
+ .vgui-scroll-surface::-webkit-scrollbar-button:hover {
107
+ --vgui-scrollbar-glyph: var(--vgui-text-strong, #ffffff);
108
+ }
109
+
110
+ .vgui-scroll-surface::-webkit-scrollbar-button:active {
111
+ border-color: var(--vgui-bevel-dark, #292d23) var(--vgui-bevel-light, #899281)
112
+ var(--vgui-bevel-light, #899281) var(--vgui-bevel-dark, #292d23);
113
+ }
114
+
115
+ @media (forced-colors: active) {
116
+ .vgui-scroll-surface {
117
+ scrollbar-color: auto;
118
+ }
119
+
120
+ .vgui-scroll-surface::-webkit-scrollbar-button {
121
+ background-image: none;
122
+ }
123
+ }
@@ -0,0 +1 @@
1
+ export {}