@dalcvil/steam-green-react 0.1.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 (343) hide show
  1. package/LICENSE +25 -25
  2. package/README.md +38 -12
  3. package/dist/components/Avatar/Avatar.css +136 -0
  4. package/dist/components/Avatar/Avatar.d.ts +22 -0
  5. package/dist/components/Avatar/Avatar.d.ts.map +1 -0
  6. package/dist/components/Avatar/Avatar.js +49 -0
  7. package/dist/components/Avatar/Avatar.js.map +1 -0
  8. package/dist/components/Avatar/index.d.ts +3 -0
  9. package/dist/components/Avatar/index.d.ts.map +1 -0
  10. package/dist/components/Button/Button.css +117 -0
  11. package/dist/components/Button/Button.css.d.ts +1 -0
  12. package/dist/components/Button/Button.d.ts +18 -0
  13. package/dist/components/Button/Button.d.ts.map +1 -0
  14. package/dist/components/Button/Button.js +29 -0
  15. package/dist/components/Button/Button.js.map +1 -0
  16. package/dist/components/Button/index.d.ts +3 -0
  17. package/dist/components/Button/index.d.ts.map +1 -0
  18. package/dist/components/Checkbox/Checkbox.css +116 -0
  19. package/dist/components/Checkbox/Checkbox.css.d.ts +1 -0
  20. package/dist/components/Checkbox/Checkbox.d.ts +19 -0
  21. package/dist/components/Checkbox/Checkbox.d.ts.map +1 -0
  22. package/dist/components/Checkbox/Checkbox.js +51 -0
  23. package/dist/components/Checkbox/Checkbox.js.map +1 -0
  24. package/dist/components/Checkbox/index.d.ts +3 -0
  25. package/dist/components/Checkbox/index.d.ts.map +1 -0
  26. package/dist/components/ColorPicker/ColorPicker.css +331 -0
  27. package/dist/components/ColorPicker/ColorPicker.css.d.ts +1 -0
  28. package/dist/components/ColorPicker/ColorPicker.d.ts +29 -0
  29. package/dist/components/ColorPicker/ColorPicker.d.ts.map +1 -0
  30. package/dist/components/ColorPicker/ColorPicker.js +534 -0
  31. package/dist/components/ColorPicker/ColorPicker.js.map +1 -0
  32. package/dist/components/ColorPicker/index.d.ts +3 -0
  33. package/dist/components/{GreenButton → ColorPicker}/index.d.ts.map +1 -1
  34. package/dist/components/Console/Console.css +96 -0
  35. package/dist/components/Console/Console.css.d.ts +1 -0
  36. package/dist/components/Console/Console.d.ts +26 -0
  37. package/dist/components/Console/Console.d.ts.map +1 -0
  38. package/dist/components/Console/Console.js +59 -0
  39. package/dist/components/Console/Console.js.map +1 -0
  40. package/dist/components/Console/index.d.ts +3 -0
  41. package/dist/components/Console/index.d.ts.map +1 -0
  42. package/dist/components/Dialog/Dialog.css +137 -0
  43. package/dist/components/Dialog/Dialog.css.d.ts +1 -0
  44. package/dist/components/Dialog/Dialog.d.ts +28 -0
  45. package/dist/components/Dialog/Dialog.d.ts.map +1 -0
  46. package/dist/components/Dialog/Dialog.js +151 -0
  47. package/dist/components/Dialog/Dialog.js.map +1 -0
  48. package/dist/components/Dialog/index.d.ts +3 -0
  49. package/dist/components/Dialog/index.d.ts.map +1 -0
  50. package/dist/components/Divider/Divider.css +68 -0
  51. package/dist/components/Divider/Divider.css.d.ts +1 -0
  52. package/dist/components/Divider/Divider.d.ts +12 -0
  53. package/dist/components/Divider/Divider.d.ts.map +1 -0
  54. package/dist/components/Divider/Divider.js +23 -0
  55. package/dist/components/Divider/Divider.js.map +1 -0
  56. package/dist/components/Divider/index.d.ts +3 -0
  57. package/dist/components/Divider/index.d.ts.map +1 -0
  58. package/dist/components/FieldLabel/FieldLabel.css +98 -0
  59. package/dist/components/FieldLabel/FieldLabel.css.d.ts +1 -0
  60. package/dist/components/FieldLabel/FieldLabel.d.ts +29 -0
  61. package/dist/components/FieldLabel/FieldLabel.d.ts.map +1 -0
  62. package/dist/components/FieldLabel/FieldLabel.js +42 -0
  63. package/dist/components/FieldLabel/FieldLabel.js.map +1 -0
  64. package/dist/components/FieldLabel/index.d.ts +3 -0
  65. package/dist/components/FieldLabel/index.d.ts.map +1 -0
  66. package/dist/components/GroupBox/GroupBox.css +101 -0
  67. package/dist/components/GroupBox/GroupBox.css.d.ts +1 -0
  68. package/dist/components/GroupBox/GroupBox.d.ts +14 -0
  69. package/dist/components/GroupBox/GroupBox.d.ts.map +1 -0
  70. package/dist/components/GroupBox/GroupBox.js +25 -0
  71. package/dist/components/GroupBox/GroupBox.js.map +1 -0
  72. package/dist/components/GroupBox/index.d.ts +3 -0
  73. package/dist/components/GroupBox/index.d.ts.map +1 -0
  74. package/dist/components/IconButton/IconButton.css +184 -0
  75. package/dist/components/IconButton/IconButton.css.d.ts +1 -0
  76. package/dist/components/IconButton/IconButton.d.ts +56 -0
  77. package/dist/components/IconButton/IconButton.d.ts.map +1 -0
  78. package/dist/components/IconButton/IconButton.js +77 -0
  79. package/dist/components/IconButton/IconButton.js.map +1 -0
  80. package/dist/components/IconButton/index.d.ts +3 -0
  81. package/dist/components/IconButton/index.d.ts.map +1 -0
  82. package/dist/components/LevelMeter/LevelMeter.css +117 -0
  83. package/dist/components/LevelMeter/LevelMeter.css.d.ts +1 -0
  84. package/dist/components/LevelMeter/LevelMeter.d.ts +20 -0
  85. package/dist/components/LevelMeter/LevelMeter.d.ts.map +1 -0
  86. package/dist/components/LevelMeter/LevelMeter.js +44 -0
  87. package/dist/components/LevelMeter/LevelMeter.js.map +1 -0
  88. package/dist/components/LevelMeter/index.d.ts +3 -0
  89. package/dist/components/LevelMeter/index.d.ts.map +1 -0
  90. package/dist/components/Link/Link.css +127 -0
  91. package/dist/components/Link/Link.css.d.ts +1 -0
  92. package/dist/components/Link/Link.d.ts +26 -0
  93. package/dist/components/Link/Link.d.ts.map +1 -0
  94. package/dist/components/Link/Link.js +60 -0
  95. package/dist/components/Link/Link.js.map +1 -0
  96. package/dist/components/Link/index.d.ts +3 -0
  97. package/dist/components/Link/index.d.ts.map +1 -0
  98. package/dist/components/List/List.css +224 -0
  99. package/dist/components/List/List.css.d.ts +1 -0
  100. package/dist/components/List/List.d.ts +49 -0
  101. package/dist/components/List/List.d.ts.map +1 -0
  102. package/dist/components/List/List.js +300 -0
  103. package/dist/components/List/List.js.map +1 -0
  104. package/dist/components/List/index.d.ts +3 -0
  105. package/dist/components/List/index.d.ts.map +1 -0
  106. package/dist/components/Menu/Menu.css +122 -0
  107. package/dist/components/Menu/Menu.css.d.ts +1 -0
  108. package/dist/components/Menu/Menu.d.ts +46 -0
  109. package/dist/components/Menu/Menu.d.ts.map +1 -0
  110. package/dist/components/Menu/Menu.js +246 -0
  111. package/dist/components/Menu/Menu.js.map +1 -0
  112. package/dist/components/Menu/index.d.ts +3 -0
  113. package/dist/components/Menu/index.d.ts.map +1 -0
  114. package/dist/components/MenuBar/MenuBar.css +94 -0
  115. package/dist/components/MenuBar/MenuBar.css.d.ts +1 -0
  116. package/dist/components/MenuBar/MenuBar.d.ts +34 -0
  117. package/dist/components/MenuBar/MenuBar.d.ts.map +1 -0
  118. package/dist/components/MenuBar/MenuBar.js +129 -0
  119. package/dist/components/MenuBar/MenuBar.js.map +1 -0
  120. package/dist/components/MenuBar/index.d.ts +3 -0
  121. package/dist/components/MenuBar/index.d.ts.map +1 -0
  122. package/dist/components/NavBar/NavBar.css +179 -0
  123. package/dist/components/NavBar/NavBar.css.d.ts +1 -0
  124. package/dist/components/NavBar/NavBar.d.ts +39 -0
  125. package/dist/components/NavBar/NavBar.d.ts.map +1 -0
  126. package/dist/components/NavBar/NavBar.js +198 -0
  127. package/dist/components/NavBar/NavBar.js.map +1 -0
  128. package/dist/components/NavBar/index.d.ts +3 -0
  129. package/dist/components/NavBar/index.d.ts.map +1 -0
  130. package/dist/components/Notification/Notification.css +176 -0
  131. package/dist/components/Notification/Notification.css.d.ts +1 -0
  132. package/dist/components/Notification/Notification.d.ts +26 -0
  133. package/dist/components/Notification/Notification.d.ts.map +1 -0
  134. package/dist/components/Notification/Notification.js +181 -0
  135. package/dist/components/Notification/Notification.js.map +1 -0
  136. package/dist/components/Notification/index.d.ts +3 -0
  137. package/dist/components/Notification/index.d.ts.map +1 -0
  138. package/dist/components/Panel/Panel.css +56 -0
  139. package/dist/components/Panel/Panel.css.d.ts +1 -0
  140. package/dist/components/Panel/Panel.d.ts +14 -0
  141. package/dist/components/Panel/Panel.d.ts.map +1 -0
  142. package/dist/components/Panel/Panel.js +42 -0
  143. package/dist/components/Panel/Panel.js.map +1 -0
  144. package/dist/components/Panel/index.d.ts +3 -0
  145. package/dist/components/Panel/index.d.ts.map +1 -0
  146. package/dist/components/ProgressBar/ProgressBar.css +108 -0
  147. package/dist/components/ProgressBar/ProgressBar.css.d.ts +1 -0
  148. package/dist/components/ProgressBar/ProgressBar.d.ts +22 -0
  149. package/dist/components/ProgressBar/ProgressBar.d.ts.map +1 -0
  150. package/dist/components/ProgressBar/ProgressBar.js +43 -0
  151. package/dist/components/ProgressBar/ProgressBar.js.map +1 -0
  152. package/dist/components/ProgressBar/index.d.ts +3 -0
  153. package/dist/components/ProgressBar/index.d.ts.map +1 -0
  154. package/dist/components/Radio/Radio.css +125 -0
  155. package/dist/components/Radio/Radio.css.d.ts +1 -0
  156. package/dist/components/Radio/Radio.d.ts +40 -0
  157. package/dist/components/Radio/Radio.d.ts.map +1 -0
  158. package/dist/components/Radio/Radio.js +91 -0
  159. package/dist/components/Radio/Radio.js.map +1 -0
  160. package/dist/components/Radio/index.d.ts +3 -0
  161. package/dist/components/Radio/index.d.ts.map +1 -0
  162. package/dist/components/RichText/RichText.css +96 -0
  163. package/dist/components/RichText/RichText.css.d.ts +1 -0
  164. package/dist/components/RichText/RichText.d.ts +25 -0
  165. package/dist/components/RichText/RichText.d.ts.map +1 -0
  166. package/dist/components/RichText/RichText.js +56 -0
  167. package/dist/components/RichText/RichText.js.map +1 -0
  168. package/dist/components/RichText/index.d.ts +3 -0
  169. package/dist/components/RichText/index.d.ts.map +1 -0
  170. package/dist/components/ScrollArea/ScrollArea.css +236 -0
  171. package/dist/components/ScrollArea/ScrollArea.css.d.ts +1 -0
  172. package/dist/components/ScrollArea/ScrollArea.d.ts +25 -0
  173. package/dist/components/ScrollArea/ScrollArea.d.ts.map +1 -0
  174. package/dist/components/ScrollArea/ScrollArea.js +124 -0
  175. package/dist/components/ScrollArea/ScrollArea.js.map +1 -0
  176. package/dist/components/ScrollArea/index.d.ts +3 -0
  177. package/dist/components/ScrollArea/index.d.ts.map +1 -0
  178. package/dist/components/Scrollbar/Scrollbar.css +260 -0
  179. package/dist/components/Scrollbar/Scrollbar.css.d.ts +1 -0
  180. package/dist/components/Scrollbar/Scrollbar.d.ts +31 -0
  181. package/dist/components/Scrollbar/Scrollbar.d.ts.map +1 -0
  182. package/dist/components/Scrollbar/Scrollbar.js +277 -0
  183. package/dist/components/Scrollbar/Scrollbar.js.map +1 -0
  184. package/dist/components/Scrollbar/index.d.ts +3 -0
  185. package/dist/components/Scrollbar/index.d.ts.map +1 -0
  186. package/dist/components/Select/Select.css +299 -0
  187. package/dist/components/Select/Select.css.d.ts +1 -0
  188. package/dist/components/Select/Select.d.ts +52 -0
  189. package/dist/components/Select/Select.d.ts.map +1 -0
  190. package/dist/components/Select/Select.js +281 -0
  191. package/dist/components/Select/Select.js.map +1 -0
  192. package/dist/components/Select/index.d.ts +3 -0
  193. package/dist/components/Select/index.d.ts.map +1 -0
  194. package/dist/components/Slider/Slider.css +158 -0
  195. package/dist/components/Slider/Slider.css.d.ts +1 -0
  196. package/dist/components/Slider/Slider.d.ts +26 -0
  197. package/dist/components/Slider/Slider.d.ts.map +1 -0
  198. package/dist/components/Slider/Slider.js +67 -0
  199. package/dist/components/Slider/Slider.js.map +1 -0
  200. package/dist/components/Slider/index.d.ts +3 -0
  201. package/dist/components/Slider/index.d.ts.map +1 -0
  202. package/dist/components/SpinBox/SpinBox.css +152 -0
  203. package/dist/components/SpinBox/SpinBox.css.d.ts +1 -0
  204. package/dist/components/SpinBox/SpinBox.d.ts +28 -0
  205. package/dist/components/SpinBox/SpinBox.d.ts.map +1 -0
  206. package/dist/components/SpinBox/SpinBox.js +207 -0
  207. package/dist/components/SpinBox/SpinBox.js.map +1 -0
  208. package/dist/components/SpinBox/index.d.ts +3 -0
  209. package/dist/components/SpinBox/index.d.ts.map +1 -0
  210. package/dist/components/Spinner/Spinner.css +137 -0
  211. package/dist/components/Spinner/Spinner.css.d.ts +1 -0
  212. package/dist/components/Spinner/Spinner.d.ts +20 -0
  213. package/dist/components/Spinner/Spinner.d.ts.map +1 -0
  214. package/dist/components/Spinner/Spinner.js +36 -0
  215. package/dist/components/Spinner/Spinner.js.map +1 -0
  216. package/dist/components/Spinner/index.d.ts +3 -0
  217. package/dist/components/Spinner/index.d.ts.map +1 -0
  218. package/dist/components/Splitter/Splitter.css +119 -0
  219. package/dist/components/Splitter/Splitter.css.d.ts +1 -0
  220. package/dist/components/Splitter/Splitter.d.ts +25 -0
  221. package/dist/components/Splitter/Splitter.d.ts.map +1 -0
  222. package/dist/components/Splitter/Splitter.js +212 -0
  223. package/dist/components/Splitter/Splitter.js.map +1 -0
  224. package/dist/components/Splitter/index.d.ts +3 -0
  225. package/dist/components/Splitter/index.d.ts.map +1 -0
  226. package/dist/components/StatusBar/StatusBar.css +97 -0
  227. package/dist/components/StatusBar/StatusBar.css.d.ts +1 -0
  228. package/dist/components/StatusBar/StatusBar.d.ts +22 -0
  229. package/dist/components/StatusBar/StatusBar.d.ts.map +1 -0
  230. package/dist/components/StatusBar/StatusBar.js +56 -0
  231. package/dist/components/StatusBar/StatusBar.js.map +1 -0
  232. package/dist/components/StatusBar/index.d.ts +3 -0
  233. package/dist/components/StatusBar/index.d.ts.map +1 -0
  234. package/dist/components/StatusLabel/StatusLabel.css +93 -0
  235. package/dist/components/StatusLabel/StatusLabel.css.d.ts +1 -0
  236. package/dist/components/StatusLabel/StatusLabel.d.ts +20 -0
  237. package/dist/components/StatusLabel/StatusLabel.d.ts.map +1 -0
  238. package/dist/components/StatusLabel/StatusLabel.js +42 -0
  239. package/dist/components/StatusLabel/StatusLabel.js.map +1 -0
  240. package/dist/components/StatusLabel/index.d.ts +3 -0
  241. package/dist/components/StatusLabel/index.d.ts.map +1 -0
  242. package/dist/components/Table/Table.css +253 -0
  243. package/dist/components/Table/Table.css.d.ts +1 -0
  244. package/dist/components/Table/Table.d.ts +67 -0
  245. package/dist/components/Table/Table.d.ts.map +1 -0
  246. package/dist/components/Table/Table.js +429 -0
  247. package/dist/components/Table/Table.js.map +1 -0
  248. package/dist/components/Table/index.d.ts +3 -0
  249. package/dist/components/Table/index.d.ts.map +1 -0
  250. package/dist/components/Tabs/Tabs.css +138 -0
  251. package/dist/components/Tabs/Tabs.css.d.ts +1 -0
  252. package/dist/components/Tabs/Tabs.d.ts +34 -0
  253. package/dist/components/Tabs/Tabs.d.ts.map +1 -0
  254. package/dist/components/Tabs/Tabs.js +140 -0
  255. package/dist/components/Tabs/Tabs.js.map +1 -0
  256. package/dist/components/Tabs/index.d.ts +3 -0
  257. package/dist/components/Tabs/index.d.ts.map +1 -0
  258. package/dist/components/TextInput/TextInput.css +133 -0
  259. package/dist/components/TextInput/TextInput.css.d.ts +1 -0
  260. package/dist/components/TextInput/TextInput.d.ts +16 -0
  261. package/dist/components/TextInput/TextInput.d.ts.map +1 -0
  262. package/dist/components/TextInput/TextInput.js +38 -0
  263. package/dist/components/TextInput/TextInput.js.map +1 -0
  264. package/dist/components/TextInput/index.d.ts +3 -0
  265. package/dist/components/TextInput/index.d.ts.map +1 -0
  266. package/dist/components/Textarea/Textarea.css +121 -0
  267. package/dist/components/Textarea/Textarea.css.d.ts +1 -0
  268. package/dist/components/Textarea/Textarea.d.ts +21 -0
  269. package/dist/components/Textarea/Textarea.d.ts.map +1 -0
  270. package/dist/components/Textarea/Textarea.js +61 -0
  271. package/dist/components/Textarea/Textarea.js.map +1 -0
  272. package/dist/components/Textarea/index.d.ts +3 -0
  273. package/dist/components/Textarea/index.d.ts.map +1 -0
  274. package/dist/components/TitleBar/TitleBar.css +76 -0
  275. package/dist/components/TitleBar/TitleBar.css.d.ts +1 -0
  276. package/dist/components/TitleBar/TitleBar.d.ts +20 -0
  277. package/dist/components/TitleBar/TitleBar.d.ts.map +1 -0
  278. package/dist/components/TitleBar/TitleBar.js +43 -0
  279. package/dist/components/TitleBar/TitleBar.js.map +1 -0
  280. package/dist/components/TitleBar/index.d.ts +3 -0
  281. package/dist/components/TitleBar/index.d.ts.map +1 -0
  282. package/dist/components/ToggleButton/ToggleButton.css +162 -0
  283. package/dist/components/ToggleButton/ToggleButton.css.d.ts +1 -0
  284. package/dist/components/ToggleButton/ToggleButton.d.ts +27 -0
  285. package/dist/components/ToggleButton/ToggleButton.d.ts.map +1 -0
  286. package/dist/components/ToggleButton/ToggleButton.js +52 -0
  287. package/dist/components/ToggleButton/ToggleButton.js.map +1 -0
  288. package/dist/components/ToggleButton/index.d.ts +3 -0
  289. package/dist/components/ToggleButton/index.d.ts.map +1 -0
  290. package/dist/components/Toolbar/Toolbar.css +202 -0
  291. package/dist/components/Toolbar/Toolbar.css.d.ts +1 -0
  292. package/dist/components/Toolbar/Toolbar.d.ts +46 -0
  293. package/dist/components/Toolbar/Toolbar.d.ts.map +1 -0
  294. package/dist/components/Toolbar/Toolbar.js +102 -0
  295. package/dist/components/Toolbar/Toolbar.js.map +1 -0
  296. package/dist/components/Toolbar/index.d.ts +3 -0
  297. package/dist/components/Toolbar/index.d.ts.map +1 -0
  298. package/dist/components/Tooltip/Tooltip.css +86 -0
  299. package/dist/components/Tooltip/Tooltip.css.d.ts +1 -0
  300. package/dist/components/Tooltip/Tooltip.d.ts +22 -0
  301. package/dist/components/Tooltip/Tooltip.d.ts.map +1 -0
  302. package/dist/components/Tooltip/Tooltip.js +92 -0
  303. package/dist/components/Tooltip/Tooltip.js.map +1 -0
  304. package/dist/components/Tooltip/index.d.ts +3 -0
  305. package/dist/components/Tooltip/index.d.ts.map +1 -0
  306. package/dist/components/TreeView/TreeView.css +191 -0
  307. package/dist/components/TreeView/TreeView.css.d.ts +1 -0
  308. package/dist/components/TreeView/TreeView.d.ts +46 -0
  309. package/dist/components/TreeView/TreeView.d.ts.map +1 -0
  310. package/dist/components/TreeView/TreeView.js +331 -0
  311. package/dist/components/TreeView/TreeView.js.map +1 -0
  312. package/dist/components/TreeView/index.d.ts +3 -0
  313. package/dist/components/TreeView/index.d.ts.map +1 -0
  314. package/dist/components/Window/Window.css +218 -0
  315. package/dist/components/Window/Window.css.d.ts +1 -0
  316. package/dist/components/Window/Window.d.ts +30 -0
  317. package/dist/components/Window/Window.d.ts.map +1 -0
  318. package/dist/components/Window/Window.js +156 -0
  319. package/dist/components/Window/Window.js.map +1 -0
  320. package/dist/components/Window/index.d.ts +3 -0
  321. package/dist/components/Window/index.d.ts.map +1 -0
  322. package/dist/index.d.ts +91 -8
  323. package/dist/index.d.ts.map +1 -1
  324. package/dist/index.js +41 -2
  325. package/dist/styles/scrollbars.css +123 -0
  326. package/dist/styles/scrollbars.css.d.ts +1 -0
  327. package/dist/styles/theme.css +167 -122
  328. package/dist/styles/tokens.css +202 -0
  329. package/dist/styles/tokens.css.d.ts +1 -0
  330. package/dist/test/a11y.d.ts +3 -0
  331. package/dist/test/a11y.d.ts.map +1 -0
  332. package/dist/test/index.d.ts +2 -0
  333. package/dist/test/index.d.ts.map +1 -0
  334. package/dist/test/setup.d.ts +2 -0
  335. package/dist/test/setup.d.ts.map +1 -0
  336. package/package.json +23 -14
  337. package/dist/components/GreenButton/GreenButton.css +0 -47
  338. package/dist/components/GreenButton/GreenButton.d.ts +0 -8
  339. package/dist/components/GreenButton/GreenButton.d.ts.map +0 -1
  340. package/dist/components/GreenButton/GreenButton.js +0 -20
  341. package/dist/components/GreenButton/GreenButton.js.map +0 -1
  342. package/dist/components/GreenButton/index.d.ts +0 -3
  343. /package/dist/components/{GreenButton/GreenButton.css.d.ts → Avatar/Avatar.css.d.ts} +0 -0
@@ -0,0 +1,116 @@
1
+ /*
2
+ * Green Steam checkbox.
3
+ *
4
+ * The signature detail is the **inverted** bevel: dark on top/left, light on
5
+ * bottom/right, so the box reads as a hole in the panel rather than a raised
6
+ * button (docs/components/Checkbox.md). Getting it the same way round as
7
+ * `.vgui-button` is the common mistake.
8
+ *
9
+ * The sprite set is replaced with CSS geometry — a rotated bordered box for
10
+ * `chkSelStd`, a filled rect for `chkIndeterminate` — so no assets ship.
11
+ *
12
+ * Deviations required by WCAG:
13
+ *
14
+ * - `chk*Focus`'s dotted `#000` inner rectangle is 1.15:1 on the box face, so
15
+ * the shipped ring is `--vgui-focus-ring` at the same `-3px` offset (the
16
+ * geometry still reads as VGUI); the literal ring is the `.vgui-crisp`
17
+ * opt-in.
18
+ * - The 15×15 box is below the 24×24 minimum target, so the whole row is the
19
+ * hit area: the control is wrapped in a `<label>`, exactly as VGUI's
20
+ * `labelTextOffset` made the label part of the clickable region.
21
+ */
22
+
23
+ .vgui-checkbox {
24
+ display: inline-flex;
25
+ align-items: center;
26
+ gap: 3px;
27
+ font: inherit;
28
+ color: var(--vgui-text);
29
+ cursor: pointer;
30
+ }
31
+
32
+ /* Hidden but present and focusable — never `display: none`. */
33
+ .vgui-checkbox__input {
34
+ position: absolute;
35
+ inline-size: 1px;
36
+ block-size: 1px;
37
+ margin: -1px;
38
+ padding: 0;
39
+ overflow: hidden;
40
+ clip-path: inset(50%);
41
+ white-space: nowrap;
42
+ border: 0;
43
+ }
44
+
45
+ .vgui-checkbox__box {
46
+ position: relative;
47
+ flex: 0 0 auto;
48
+ box-sizing: border-box;
49
+ inline-size: var(--vgui-checkbox-size);
50
+ block-size: var(--vgui-checkbox-size);
51
+ background-color: var(--vgui-surface);
52
+ border-top: var(--vgui-bevel-width) solid var(--vgui-bevel-dark);
53
+ border-left: var(--vgui-bevel-width) solid var(--vgui-bevel-dark);
54
+ border-bottom: var(--vgui-bevel-width) solid var(--vgui-bevel-light);
55
+ border-right: var(--vgui-bevel-width) solid var(--vgui-bevel-light);
56
+ }
57
+
58
+ /* `chkSelStd` as two borders on a rotated box: a shape, not a colour signal. */
59
+ .vgui-checkbox__input:checked ~ .vgui-checkbox__box::after {
60
+ content: '';
61
+ position: absolute;
62
+ left: 4px;
63
+ top: 1px;
64
+ inline-size: 5px;
65
+ block-size: 8px;
66
+ border-right: 2px solid var(--vgui-text-strong);
67
+ border-bottom: 2px solid var(--vgui-text-strong);
68
+ transform: rotate(45deg);
69
+ }
70
+
71
+ /*
72
+ * `chkIndeterminate` is a horizontal bar. It is easy to miss on its own, which
73
+ * is why the real input carries the state and announces "mixed".
74
+ */
75
+ .vgui-checkbox__input:indeterminate ~ .vgui-checkbox__box::after {
76
+ content: '';
77
+ position: absolute;
78
+ left: 2px;
79
+ top: 5px;
80
+ inline-size: 9px;
81
+ block-size: 3px;
82
+ background-color: var(--vgui-text-strong);
83
+ transform: none;
84
+ border: 0;
85
+ }
86
+
87
+ .vgui-checkbox__input:focus-visible ~ .vgui-checkbox__box {
88
+ outline: var(--vgui-focus-ring);
89
+ outline-offset: var(--vgui-focus-ring-offset);
90
+ }
91
+
92
+ /* Valve's literal `chk*Focus` ring, reachable only through the opt-in. */
93
+ .vgui-crisp .vgui-checkbox__input:focus-visible ~ .vgui-checkbox__box {
94
+ outline: var(--vgui-focus-ring-valve);
95
+ outline-offset: var(--vgui-focus-ring-valve-offset);
96
+ }
97
+
98
+ /* DisabledText1 over DisabledText2 at +1px +1px. Colour is decorative here:
99
+ * the `disabled` attribute is what carries the meaning. */
100
+ .vgui-checkbox__input:disabled ~ .vgui-checkbox__label {
101
+ color: var(--vgui-text-disabled);
102
+ text-shadow: 1px 1px 0 var(--vgui-text-disabled-shadow);
103
+ }
104
+
105
+ .vgui-checkbox__input:disabled ~ .vgui-checkbox__box {
106
+ cursor: not-allowed;
107
+ }
108
+
109
+ .vgui-checkbox--label-end {
110
+ flex-direction: row-reverse;
111
+ }
112
+
113
+ .vgui-checkbox__label {
114
+ min-width: 0;
115
+ overflow-wrap: anywhere;
116
+ }
@@ -0,0 +1 @@
1
+ export {}
@@ -0,0 +1,19 @@
1
+ import type { InputHTMLAttributes, ReactNode } from 'react';
2
+ import './Checkbox.css';
3
+ export interface CheckboxProps extends Omit<InputHTMLAttributes<HTMLInputElement>, 'type'> {
4
+ /** The label. Rendered as part of the clickable area. */
5
+ label?: ReactNode;
6
+ /** Render the indeterminate third state. */
7
+ indeterminate?: boolean;
8
+ /** Put the box after the label instead of before. */
9
+ labelPosition?: 'start' | 'end';
10
+ }
11
+ /**
12
+ * A 15×15 box with an *inset* bevel — a hole in the panel, not a raised button.
13
+ *
14
+ * The real `<input type="checkbox">` stays in the DOM, focusable and hidden by
15
+ * `clip-path`, so `Space`, form participation and the platform's "mixed"
16
+ * announcement all keep working (docs/components/Checkbox.md, "Accessibility").
17
+ */
18
+ export declare const Checkbox: import("react").ForwardRefExoticComponent<CheckboxProps & import("react").RefAttributes<HTMLInputElement>>;
19
+ //# sourceMappingURL=Checkbox.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Checkbox.d.ts","sourceRoot":"","sources":["../../../src/components/Checkbox/Checkbox.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,mBAAmB,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AAE3D,OAAO,gBAAgB,CAAA;AAEvB,MAAM,WAAW,aAAc,SAAQ,IAAI,CAAC,mBAAmB,CAAC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IACxF,yDAAyD;IACzD,KAAK,CAAC,EAAE,SAAS,CAAA;IACjB,4CAA4C;IAC5C,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB,qDAAqD;IACrD,aAAa,CAAC,EAAE,OAAO,GAAG,KAAK,CAAA;CAChC;AAED;;;;;;GAMG;AACH,eAAO,MAAM,QAAQ,4GAyCnB,CAAA"}
@@ -0,0 +1,51 @@
1
+ import { forwardRef, useCallback, useEffect, useRef } from "react";
2
+ import { jsx, jsxs } from "react/jsx-runtime";
3
+ import "./Checkbox.css";
4
+ //#region src/components/Checkbox/Checkbox.tsx
5
+ /**
6
+ * A 15×15 box with an *inset* bevel — a hole in the panel, not a raised button.
7
+ *
8
+ * The real `<input type="checkbox">` stays in the DOM, focusable and hidden by
9
+ * `clip-path`, so `Space`, form participation and the platform's "mixed"
10
+ * announcement all keep working (docs/components/Checkbox.md, "Accessibility").
11
+ */
12
+ var Checkbox = forwardRef(function Checkbox({ className, label, indeterminate = false, labelPosition = "start", ...rest }, ref) {
13
+ const inputRef = useRef(null);
14
+ const setInputRef = useCallback((node) => {
15
+ inputRef.current = node;
16
+ if (typeof ref === "function") ref(node);
17
+ else if (ref) ref.current = node;
18
+ }, [ref]);
19
+ useEffect(() => {
20
+ if (inputRef.current) inputRef.current.indeterminate = indeterminate;
21
+ }, [indeterminate]);
22
+ const classes = ["vgui-checkbox"];
23
+ if (labelPosition === "end") classes.push("vgui-checkbox--label-end");
24
+ if (className) classes.push(className);
25
+ const box = /* @__PURE__ */ jsx("span", {
26
+ className: "vgui-checkbox__box",
27
+ "aria-hidden": "true"
28
+ });
29
+ return /* @__PURE__ */ jsxs("label", {
30
+ className: classes.join(" "),
31
+ children: [
32
+ /* @__PURE__ */ jsx("input", {
33
+ ref: setInputRef,
34
+ type: "checkbox",
35
+ className: "vgui-checkbox__input",
36
+ ...rest
37
+ }),
38
+ labelPosition === "end" ? null : box,
39
+ label == null ? null : /* @__PURE__ */ jsx("span", {
40
+ className: "vgui-checkbox__label",
41
+ children: label
42
+ }),
43
+ labelPosition === "end" ? box : null
44
+ ]
45
+ });
46
+ });
47
+ Checkbox.displayName = "Checkbox";
48
+ //#endregion
49
+ export { Checkbox };
50
+
51
+ //# sourceMappingURL=Checkbox.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Checkbox.js","names":[],"sources":["../../../src/components/Checkbox/Checkbox.tsx"],"sourcesContent":["import { forwardRef, useCallback, useEffect, useRef } from 'react'\nimport type { InputHTMLAttributes, ReactNode } from 'react'\n\nimport './Checkbox.css'\n\nexport interface CheckboxProps extends Omit<InputHTMLAttributes<HTMLInputElement>, 'type'> {\n /** The label. Rendered as part of the clickable area. */\n label?: ReactNode\n /** Render the indeterminate third state. */\n indeterminate?: boolean\n /** Put the box after the label instead of before. */\n labelPosition?: 'start' | 'end'\n}\n\n/**\n * A 15×15 box with an *inset* bevel — a hole in the panel, not a raised button.\n *\n * The real `<input type=\"checkbox\">` stays in the DOM, focusable and hidden by\n * `clip-path`, so `Space`, form participation and the platform's \"mixed\"\n * announcement all keep working (docs/components/Checkbox.md, \"Accessibility\").\n */\nexport const Checkbox = forwardRef<HTMLInputElement, CheckboxProps>(function Checkbox(\n { className, label, indeterminate = false, labelPosition = 'start', ...rest },\n ref,\n) {\n const inputRef = useRef<HTMLInputElement | null>(null)\n\n const setInputRef = useCallback(\n (node: HTMLInputElement | null) => {\n inputRef.current = node\n if (typeof ref === 'function') ref(node)\n else if (ref) ref.current = node\n },\n [ref],\n )\n\n // `indeterminate` is a DOM property with no attribute, so it can only be\n // written imperatively — and it never touches `checked` (the doc's React API).\n useEffect(() => {\n if (inputRef.current) inputRef.current.indeterminate = indeterminate\n }, [indeterminate])\n\n if (import.meta.env.DEV && label == null) {\n console.warn(\n 'Checkbox: no `label` means the 15×15 box is the whole hit area and the control has no accessible name.',\n )\n }\n\n const classes = ['vgui-checkbox']\n if (labelPosition === 'end') classes.push('vgui-checkbox--label-end')\n if (className) classes.push(className)\n\n const box = <span className=\"vgui-checkbox__box\" aria-hidden=\"true\" />\n\n return (\n <label className={classes.join(' ')}>\n <input ref={setInputRef} type=\"checkbox\" className=\"vgui-checkbox__input\" {...rest} />\n {labelPosition === 'end' ? null : box}\n {label == null ? null : <span className=\"vgui-checkbox__label\">{label}</span>}\n {labelPosition === 'end' ? box : null}\n </label>\n )\n})\n\nCheckbox.displayName = 'Checkbox'\n"],"mappings":";;;;;;;;;;;AAqBA,IAAa,WAAW,WAA4C,SAAS,SAC3E,EAAE,WAAW,OAAO,gBAAgB,OAAO,gBAAgB,SAAS,GAAG,QACvE,KACA;CACA,MAAM,WAAW,OAAgC,IAAI;CAErD,MAAM,cAAc,aACjB,SAAkC;EACjC,SAAS,UAAU;EACnB,IAAI,OAAO,QAAQ,YAAY,IAAI,IAAI;OAClC,IAAI,KAAK,IAAI,UAAU;CAC9B,GACA,CAAC,GAAG,CACN;CAIA,gBAAgB;EACd,IAAI,SAAS,SAAS,SAAS,QAAQ,gBAAgB;CACzD,GAAG,CAAC,aAAa,CAAC;CAQlB,MAAM,UAAU,CAAC,eAAe;CAChC,IAAI,kBAAkB,OAAO,QAAQ,KAAK,0BAA0B;CACpE,IAAI,WAAW,QAAQ,KAAK,SAAS;CAErC,MAAM,MAAM,oBAAC,QAAD;EAAM,WAAU;EAAqB,eAAY;CAAQ,CAAA;CAErE,OACE,qBAAC,SAAD;EAAO,WAAW,QAAQ,KAAK,GAAG;EAAlC,UAAA;GACE,oBAAC,SAAD;IAAO,KAAK;IAAa,MAAK;IAAW,WAAU;IAAuB,GAAI;GAAO,CAAA;GACpF,kBAAkB,QAAQ,OAAO;GACjC,SAAS,OAAO,OAAO,oBAAC,QAAD;IAAM,WAAU;IAAwB,UAAA;GAAY,CAAA;GAC3E,kBAAkB,QAAQ,MAAM;EAC5B;;AAEX,CAAC;AAED,SAAS,cAAc"}
@@ -0,0 +1,3 @@
1
+ export { Checkbox } from './Checkbox';
2
+ export type { CheckboxProps } from './Checkbox';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/Checkbox/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AACrC,YAAY,EAAE,aAAa,EAAE,MAAM,YAAY,CAAA"}
@@ -0,0 +1,331 @@
1
+ /*
2
+ * ColorPicker — library-original; `docs/components/ColorPicker.md` is explicit
3
+ * that the control has no corpus evidence, so every value here is either a real
4
+ * theme token or a metric the doc names itself.
5
+ */
6
+
7
+ .vgui-color-picker {
8
+ /*
9
+ * Component-local tokens. The doc names all three and none of them belongs in
10
+ * the theme layer, so they keep their literal default here.
11
+ */
12
+ --vgui-color-picker-swatch: 18px;
13
+ --vgui-color-picker-columns: 12;
14
+ /* `BorderSelection`, `steamscheme.res:70`; the token layer spells it
15
+ `--vgui-border-selection`. */
16
+ --vgui-color-picker-selection: var(--vgui-border-selection);
17
+
18
+ position: relative;
19
+ display: inline-block;
20
+ font-family: var(--vgui-font);
21
+ font-size: var(--vgui-font-size);
22
+ color: var(--vgui-text);
23
+ }
24
+
25
+ /* The trigger is a ComboBox: recessed field, inset "3 0 0 0", DarkGreenBG. */
26
+ .vgui-color-picker__trigger {
27
+ box-sizing: border-box;
28
+ display: inline-flex;
29
+ align-items: center;
30
+ gap: 6px;
31
+ min-block-size: var(--vgui-control-height);
32
+ padding: 0 2px 0 3px;
33
+ font: inherit;
34
+ font-size: var(--vgui-font-size);
35
+ color: var(--vgui-text-strong);
36
+ background-color: var(--vgui-surface-dark);
37
+ border-top: var(--vgui-bevel-width) solid var(--vgui-bevel-dark);
38
+ border-left: var(--vgui-bevel-width) solid var(--vgui-bevel-dark);
39
+ border-bottom: var(--vgui-bevel-width) solid var(--vgui-bevel-light);
40
+ border-right: var(--vgui-bevel-width) solid var(--vgui-bevel-light);
41
+ cursor: pointer;
42
+ }
43
+
44
+ /*
45
+ * Hover does nothing: `steam.styles:722` restates the base `ComboBox` values,
46
+ * and the doc is emphatic that the restatement is the rule. The focus ring is
47
+ * the one documented addition.
48
+ */
49
+ .vgui-color-picker__trigger:focus-visible {
50
+ outline: var(--vgui-focus-ring);
51
+ outline-offset: var(--vgui-focus-ring-offset);
52
+ }
53
+
54
+ .vgui-crisp .vgui-color-picker__trigger:focus-visible {
55
+ outline: var(--vgui-focus-ring-valve);
56
+ outline-offset: var(--vgui-focus-ring-valve-offset);
57
+ }
58
+
59
+ .vgui-color-picker__trigger:disabled {
60
+ color: var(--vgui-text-disabled);
61
+ cursor: default;
62
+ }
63
+
64
+ /* Every surface in this theme has a 1px bevel; a swatch is a surface. */
65
+ .vgui-color-picker__swatch {
66
+ flex: none;
67
+ inline-size: var(--vgui-color-picker-swatch);
68
+ block-size: var(--vgui-color-picker-swatch);
69
+ background-color: var(--vgui-swatch, transparent);
70
+ border-top: var(--vgui-bevel-width) solid var(--vgui-bevel-light);
71
+ border-left: var(--vgui-bevel-width) solid var(--vgui-bevel-light);
72
+ border-bottom: var(--vgui-bevel-width) solid var(--vgui-bevel-dark);
73
+ border-right: var(--vgui-bevel-width) solid var(--vgui-bevel-dark);
74
+ }
75
+
76
+ /* Checkerboard for alpha < 1. Two flat greys — the theme has no gradients. */
77
+ .vgui-color-picker__swatch[data-alpha='true'],
78
+ .vgui-color-picker__option[data-alpha='true'] {
79
+ background-image:
80
+ linear-gradient(45deg, var(--vgui-bevel-light) 25%, transparent 25%),
81
+ linear-gradient(-45deg, var(--vgui-bevel-light) 25%, transparent 25%),
82
+ linear-gradient(45deg, transparent 75%, var(--vgui-bevel-light) 75%),
83
+ linear-gradient(-45deg, transparent 75%, var(--vgui-bevel-light) 75%);
84
+ background-size: 8px 8px;
85
+ background-position:
86
+ 0 0,
87
+ 0 4px,
88
+ 4px -4px,
89
+ -4px 0;
90
+ }
91
+
92
+ .vgui-color-picker__label {
93
+ font-family: var(--vgui-font-mono);
94
+ font-size: var(--vgui-font-size-small);
95
+ color: var(--vgui-text-strong);
96
+ white-space: nowrap;
97
+ }
98
+
99
+ .vgui-color-picker__trigger:disabled .vgui-color-picker__label {
100
+ color: var(--vgui-text-disabled);
101
+ }
102
+
103
+ /* The 7x4 staircase arrow from `Scrollbar.md`; the glyph has no token. */
104
+ .vgui-color-picker__arrow {
105
+ flex: none;
106
+ inline-size: 7px;
107
+ block-size: 4px;
108
+ margin-inline-start: auto;
109
+ background-color: currentColor;
110
+ clip-path: polygon(50% 0, 100% 100%, 0 100%);
111
+ }
112
+
113
+ /* The panel is a raised surface, like a Menu. */
114
+ .vgui-color-picker__panel {
115
+ position: absolute;
116
+ inset-block-start: 100%;
117
+ inset-inline-start: 0;
118
+ z-index: 10;
119
+ display: flex;
120
+ flex-direction: column;
121
+ gap: var(--vgui-field-inset);
122
+ margin-block-start: var(--vgui-bevel-width);
123
+ padding: var(--vgui-field-inset);
124
+ background-color: var(--vgui-surface);
125
+ border-top: var(--vgui-bevel-width) solid var(--vgui-bevel-light);
126
+ border-left: var(--vgui-bevel-width) solid var(--vgui-bevel-light);
127
+ border-bottom: var(--vgui-bevel-width) solid var(--vgui-bevel-dark);
128
+ border-right: var(--vgui-bevel-width) solid var(--vgui-bevel-dark);
129
+ }
130
+
131
+ /* `--inline`: same stack, no trigger and no popup. */
132
+ .vgui-color-picker--inline {
133
+ display: inline-flex;
134
+ flex-direction: column;
135
+ gap: var(--vgui-field-inset);
136
+ padding: var(--vgui-field-inset);
137
+ background-color: var(--vgui-surface);
138
+ border-top: var(--vgui-bevel-width) solid var(--vgui-bevel-light);
139
+ border-left: var(--vgui-bevel-width) solid var(--vgui-bevel-light);
140
+ border-bottom: var(--vgui-bevel-width) solid var(--vgui-bevel-dark);
141
+ border-right: var(--vgui-bevel-width) solid var(--vgui-bevel-dark);
142
+ }
143
+
144
+ .vgui-color-picker__grid {
145
+ display: grid;
146
+ grid-template-columns: repeat(var(--vgui-color-picker-columns), auto);
147
+ gap: 2px;
148
+ }
149
+
150
+ .vgui-color-picker__grid:focus-visible {
151
+ outline: var(--vgui-focus-ring);
152
+ outline-offset: var(--vgui-focus-ring-offset);
153
+ }
154
+
155
+ .vgui-crisp .vgui-color-picker__grid:focus-visible {
156
+ outline: var(--vgui-focus-ring-valve);
157
+ outline-offset: var(--vgui-focus-ring-valve-offset);
158
+ }
159
+
160
+ .vgui-color-picker__option {
161
+ inline-size: var(--vgui-color-picker-swatch);
162
+ block-size: var(--vgui-color-picker-swatch);
163
+ background-color: var(--vgui-option-color);
164
+ border: var(--vgui-bevel-width) solid transparent;
165
+ cursor: pointer;
166
+ }
167
+
168
+ /* Swatch hover: `--vgui-surface-light` behind the swatch. */
169
+ .vgui-color-picker__option:hover {
170
+ border-color: var(--vgui-surface-light);
171
+ }
172
+
173
+ /* The keyboard highlight: `BorderSelection`, "0 0 0 255". */
174
+ .vgui-color-picker__option[data-active='true'] {
175
+ border-color: var(--vgui-color-picker-selection);
176
+ }
177
+
178
+ /*
179
+ * The committed choice: `MaizeBG` fill (`steam.styles:703`). The fill is a
180
+ * shape as well as a colour, which is what keeps the selection from depending
181
+ * on hue alone.
182
+ */
183
+ .vgui-color-picker__option[aria-selected='true'] {
184
+ background-color: var(--vgui-accent-dark);
185
+ }
186
+
187
+ /* The one field in the component; the doc's token table names DarkGreenBG. */
188
+ .vgui-color-picker__hex {
189
+ box-sizing: border-box;
190
+ inline-size: 100%;
191
+ min-block-size: var(--vgui-control-height);
192
+ padding: 0 var(--vgui-field-inset);
193
+ font-family: var(--vgui-font-mono);
194
+ font-size: var(--vgui-font-size-small);
195
+ color: var(--vgui-text-strong);
196
+ background-color: var(--vgui-surface-dark);
197
+ border-top: var(--vgui-bevel-width) solid var(--vgui-bevel-dark);
198
+ border-left: var(--vgui-bevel-width) solid var(--vgui-bevel-dark);
199
+ border-bottom: var(--vgui-bevel-width) solid var(--vgui-bevel-light);
200
+ border-right: var(--vgui-bevel-width) solid var(--vgui-bevel-light);
201
+ }
202
+
203
+ .vgui-color-picker__hex:focus-visible {
204
+ outline: var(--vgui-focus-ring);
205
+ outline-offset: var(--vgui-focus-ring-offset);
206
+ }
207
+
208
+ .vgui-crisp .vgui-color-picker__hex:focus-visible {
209
+ outline: var(--vgui-focus-ring-valve);
210
+ outline-offset: var(--vgui-focus-ring-valve-offset);
211
+ }
212
+
213
+ /* Invalid hex: the label goes red and no colour is applied. */
214
+ .vgui-color-picker__hex[aria-invalid='true'] {
215
+ color: var(--vgui-danger);
216
+ }
217
+
218
+ /*
219
+ * The alpha/hue/saturation/brightness sliders reuse the Slider groove and
220
+ * thumb, so the whole family stays in one visual language.
221
+ */
222
+ .vgui-color-picker__slider {
223
+ inline-size: 100%;
224
+ min-block-size: var(--vgui-min-target-size);
225
+ background: none;
226
+ appearance: none;
227
+ color: var(--vgui-bevel-light-strong);
228
+ cursor: pointer;
229
+ }
230
+
231
+ .vgui-color-picker__slider:focus {
232
+ outline: none;
233
+ }
234
+
235
+ .vgui-color-picker__slider:focus-visible {
236
+ outline: var(--vgui-focus-ring);
237
+ outline-offset: 2px;
238
+ }
239
+
240
+ .vgui-crisp .vgui-color-picker__slider:focus-visible {
241
+ outline: var(--vgui-focus-ring-valve);
242
+ outline-offset: var(--vgui-focus-ring-valve-offset);
243
+ }
244
+
245
+ .vgui-color-picker__slider::-webkit-slider-runnable-track {
246
+ block-size: var(--vgui-slider-track-height);
247
+ background-color: var(--vgui-surface-dark);
248
+ border-top: var(--vgui-bevel-width) solid var(--vgui-bevel-dark);
249
+ border-left: var(--vgui-bevel-width) solid var(--vgui-bevel-dark);
250
+ border-bottom: var(--vgui-bevel-width) solid var(--vgui-bevel-light);
251
+ border-right: var(--vgui-bevel-width) solid var(--vgui-bevel-light);
252
+ }
253
+
254
+ .vgui-color-picker__slider::-moz-range-track,
255
+ .vgui-color-picker__slider::-moz-range-progress {
256
+ block-size: var(--vgui-slider-track-height);
257
+ background-color: var(--vgui-surface-dark);
258
+ border-top: var(--vgui-bevel-width) solid var(--vgui-bevel-dark);
259
+ border-left: var(--vgui-bevel-width) solid var(--vgui-bevel-dark);
260
+ border-bottom: var(--vgui-bevel-width) solid var(--vgui-bevel-light);
261
+ border-right: var(--vgui-bevel-width) solid var(--vgui-bevel-light);
262
+ }
263
+
264
+ .vgui-color-picker__slider::-webkit-slider-thumb {
265
+ position: relative;
266
+ top: calc((var(--vgui-slider-thumb-height) - var(--vgui-slider-track-height)) / -2);
267
+ box-sizing: border-box;
268
+ inline-size: var(--vgui-slider-thumb-width);
269
+ block-size: var(--vgui-slider-thumb-height);
270
+ border-radius: 0;
271
+ background-color: var(--vgui-surface);
272
+ border-top: var(--vgui-bevel-width) solid var(--vgui-bevel-light);
273
+ border-left: var(--vgui-bevel-width) solid var(--vgui-bevel-light);
274
+ border-bottom: var(--vgui-bevel-width) solid var(--vgui-bevel-dark);
275
+ border-right: var(--vgui-bevel-width) solid var(--vgui-bevel-dark);
276
+ appearance: none;
277
+ }
278
+
279
+ .vgui-color-picker__slider::-moz-range-thumb {
280
+ box-sizing: border-box;
281
+ inline-size: var(--vgui-slider-thumb-width);
282
+ block-size: var(--vgui-slider-thumb-height);
283
+ border-radius: 0;
284
+ background-color: var(--vgui-surface);
285
+ border-top: var(--vgui-bevel-width) solid var(--vgui-bevel-light);
286
+ border-left: var(--vgui-bevel-width) solid var(--vgui-bevel-light);
287
+ border-bottom: var(--vgui-bevel-width) solid var(--vgui-bevel-dark);
288
+ border-right: var(--vgui-bevel-width) solid var(--vgui-bevel-dark);
289
+ }
290
+
291
+ .vgui-color-picker__slider:disabled {
292
+ cursor: default;
293
+ }
294
+
295
+ .vgui-color-picker__slider:disabled::-webkit-slider-thumb,
296
+ .vgui-color-picker__slider:disabled::-moz-range-thumb {
297
+ background-color: var(--vgui-surface-dark);
298
+ border-color: var(--vgui-surface-dark);
299
+ }
300
+
301
+ /* The alpha slider shows the transparency it is editing. */
302
+ .vgui-color-picker__alpha::-webkit-slider-runnable-track {
303
+ background-image:
304
+ linear-gradient(45deg, var(--vgui-bevel-light) 25%, transparent 25%),
305
+ linear-gradient(-45deg, var(--vgui-bevel-light) 25%, transparent 25%);
306
+ background-size: 8px 8px;
307
+ }
308
+
309
+ /* The `--continuous` stack. Data visualisation, NOT period-accurate. */
310
+ .vgui-color-picker__continuous {
311
+ display: contents;
312
+ }
313
+
314
+ .vgui-color-picker--continuous .vgui-color-picker__sv {
315
+ inline-size: 180px;
316
+ block-size: 120px;
317
+ background-color: var(--vgui-hue);
318
+ background-image:
319
+ linear-gradient(to top, var(--vgui-border-selection), transparent),
320
+ linear-gradient(to right, var(--vgui-text-strong), transparent);
321
+ border-top: var(--vgui-bevel-width) solid var(--vgui-bevel-dark);
322
+ border-left: var(--vgui-bevel-width) solid var(--vgui-bevel-dark);
323
+ border-bottom: var(--vgui-bevel-width) solid var(--vgui-bevel-light);
324
+ border-right: var(--vgui-bevel-width) solid var(--vgui-bevel-light);
325
+ }
326
+
327
+ @media (prefers-reduced-motion: reduce) {
328
+ .vgui-color-picker__panel {
329
+ transition: none;
330
+ }
331
+ }
@@ -0,0 +1 @@
1
+ export {}
@@ -0,0 +1,29 @@
1
+ import type { HTMLAttributes } from 'react';
2
+ import './ColorPicker.css';
3
+ export interface ColorPickerProps extends Omit<HTMLAttributes<HTMLDivElement>, 'onChange'> {
4
+ /** Current colour as `#RRGGBB` or `#RRGGBBAA`. */
5
+ value?: string;
6
+ /** Called with the new colour when the user commits a choice. */
7
+ onValueChange?: (value: string) => void;
8
+ /** Palette to show. Defaults to the scheme's named colours. */
9
+ palette?: Array<{
10
+ name: string;
11
+ value: string;
12
+ }>;
13
+ /** Show the hex text input beside the grid. */
14
+ hex?: boolean;
15
+ /** Add a hue strip and saturation/value square. Not period-accurate. */
16
+ continuous?: boolean;
17
+ /** Allow alpha editing. */
18
+ alpha?: boolean;
19
+ /** Grid columns. 12 fits the scheme palette in three tidy rows. */
20
+ columns?: number;
21
+ /** Render the swatch alone, with no hex label in the trigger. */
22
+ swatchOnly?: boolean;
23
+ /** Grid always visible; no trigger or panel. */
24
+ inline?: boolean;
25
+ /** Disable the control and the panel. */
26
+ disabled?: boolean;
27
+ }
28
+ export declare const ColorPicker: import("react").ForwardRefExoticComponent<ColorPickerProps & import("react").RefAttributes<HTMLDivElement>>;
29
+ //# sourceMappingURL=ColorPicker.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ColorPicker.d.ts","sourceRoot":"","sources":["../../../src/components/ColorPicker/ColorPicker.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAGV,cAAc,EAEf,MAAM,OAAO,CAAA;AAEd,OAAO,mBAAmB,CAAA;AAwG1B,MAAM,WAAW,gBAAiB,SAAQ,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC,EAAE,UAAU,CAAC;IACxF,kDAAkD;IAClD,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,iEAAiE;IACjE,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAA;IACvC,+DAA+D;IAC/D,OAAO,CAAC,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;IAChD,+CAA+C;IAC/C,GAAG,CAAC,EAAE,OAAO,CAAA;IACb,wEAAwE;IACxE,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,2BAA2B;IAC3B,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,mEAAmE;IACnE,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,iEAAiE;IACjE,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,gDAAgD;IAChD,MAAM,CAAC,EAAE,OAAO,CAAA;IAChB,yCAAyC;IACzC,QAAQ,CAAC,EAAE,OAAO,CAAA;CACnB;AAED,eAAO,MAAM,WAAW,6GA+XtB,CAAA"}