stargazer-ui 1.2.0 → 1.2.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (349) hide show
  1. package/.babelrc.json +10 -0
  2. package/.eslintrc.cjs +18 -0
  3. package/.gitattributes +2 -0
  4. package/LICENSE +21 -0
  5. package/dev/index.html +12 -0
  6. package/dev/index.jsx +49 -0
  7. package/dev/index.scss +59 -0
  8. package/dev/pages/ButtonPage.jsx +44 -0
  9. package/dev/pages/CardPage.jsx +81 -0
  10. package/dev/pages/DropdownPage.jsx +31 -0
  11. package/dev/pages/FormPage.jsx +130 -0
  12. package/dev/pages/ListPage.jsx +52 -0
  13. package/dev/pages/ModalPage.jsx +37 -0
  14. package/dev/pages/OverlayPage.jsx +35 -0
  15. package/dev/pages/components.jsx +19 -0
  16. package/{styles → dev}/stargazerui.css +392 -3075
  17. package/dev/stargazerui.css.map +1 -0
  18. package/dev/test.jsx +88 -0
  19. package/package.json +79 -1
  20. package/rollup.config.js +140 -0
  21. package/scripts/writePackageJsons.js +42 -0
  22. package/src/Bar/Bar.tsx +0 -0
  23. package/src/Bar/Bar.type.ts +9 -0
  24. package/src/Bar/index.ts +0 -0
  25. package/src/Button/Button.tsx +17 -0
  26. package/src/Button/Button.types.ts +8 -0
  27. package/src/Button/index.ts +3 -0
  28. package/src/ButtonGroup/ButtonGroup.tsx +14 -0
  29. package/src/ButtonGroup/ButtonGroup.types.ts +8 -0
  30. package/src/ButtonGroup/index.ts +3 -0
  31. package/src/Card/Card.tsx +70 -0
  32. package/src/Card/Card.types.ts +33 -0
  33. package/src/Card/index.ts +3 -0
  34. package/src/CloseButton/CloseButton.tsx +14 -0
  35. package/src/CloseButton/CloseButton.types.ts +6 -0
  36. package/src/CloseButton/index.ts +3 -0
  37. package/src/Dropdown/Dropdown.tsx +358 -0
  38. package/src/Dropdown/Dropdown.types.ts +52 -0
  39. package/src/Dropdown/index.ts +4 -0
  40. package/src/FileUploadButton/FileUploadButton.tsx +27 -0
  41. package/src/FileUploadButton/FileUploadButton.types.ts +9 -0
  42. package/src/FileUploadButton/index.ts +3 -0
  43. package/src/FloatingLabel/FloatingLabel.tsx +22 -0
  44. package/src/FloatingLabel/FloatingLabel.types.ts +11 -0
  45. package/src/FloatingLabel/index.ts +3 -0
  46. package/src/Form/Form.tsx +445 -0
  47. package/src/Form/Form.types.ts +117 -0
  48. package/src/Form/index.ts +4 -0
  49. package/src/InputGroup/InputGroup.tsx +46 -0
  50. package/src/InputGroup/InputGroup.types.ts +21 -0
  51. package/src/InputGroup/index.ts +4 -0
  52. package/src/List/List.tsx +112 -0
  53. package/src/List/List.types.ts +34 -0
  54. package/src/List/index.ts +4 -0
  55. package/src/Modal/Modal.tsx +220 -0
  56. package/src/Modal/Modal.types.ts +49 -0
  57. package/src/Modal/index.ts +4 -0
  58. package/src/Nav/Nav.tsx +43 -0
  59. package/src/Nav/Nav.types.ts +21 -0
  60. package/src/Nav/index.ts +4 -0
  61. package/src/NavBar/Navbar.tsx +57 -0
  62. package/src/NavBar/Navbar.types.ts +24 -0
  63. package/src/NavBar/index.ts +4 -0
  64. package/src/NavDropdown/NavDropdown.tsx +93 -0
  65. package/src/NavDropdown/NavDropdown.types.ts +6 -0
  66. package/src/NavDropdown/index.ts +3 -0
  67. package/src/Overlay/Overlay.tsx +277 -0
  68. package/src/Overlay/Overlay.types.ts +20 -0
  69. package/{Overlay/index.d.ts → src/Overlay/index.ts} +3 -3
  70. package/src/Popout/Popout.tsx +155 -0
  71. package/src/Popout/Popout.types.ts +42 -0
  72. package/src/Popout/index.ts +3 -0
  73. package/src/Spinner/Spinner.tsx +15 -0
  74. package/src/Spinner/Spinner.types.ts +7 -0
  75. package/src/Spinner/index.ts +3 -0
  76. package/src/Table/Table.tsx +16 -0
  77. package/src/Table/Table.types.ts +9 -0
  78. package/src/Table/index.ts +3 -0
  79. package/src/Tabs/Tabs.tsx +215 -0
  80. package/src/Tabs/Tabs.types.ts +49 -0
  81. package/src/Tabs/index.ts +3 -0
  82. package/src/ToggleButton/ToggleButton.tsx +21 -0
  83. package/src/ToggleButton/ToggleButton.types.ts +8 -0
  84. package/src/ToggleButton/index.ts +3 -0
  85. package/{hooks/index.d.ts → src/hooks/index.ts} +6 -5
  86. package/src/hooks/useClassname.ts +5 -0
  87. package/src/hooks/useDraggable.ts +186 -0
  88. package/src/hooks/useKeepElementFocused.ts +37 -0
  89. package/src/hooks/useScreenSize.ts +24 -0
  90. package/src/index.ts +21 -0
  91. package/src/styles/_Card.scss +166 -0
  92. package/src/styles/_CloseButton.scss +51 -0
  93. package/src/styles/_CustomButton.scss +132 -0
  94. package/src/styles/_Dropdown.scss +120 -0
  95. package/src/styles/_FloatingLabel.scss +56 -0
  96. package/src/styles/_Forms.scss +7 -0
  97. package/src/styles/_Grid.scss +178 -0
  98. package/src/styles/_InputGroup.scss +71 -0
  99. package/src/styles/_List.scss +62 -0
  100. package/src/styles/_Modal.scss +234 -0
  101. package/src/styles/_ModalOld.scss +242 -0
  102. package/src/styles/_Nav.scss +36 -0
  103. package/src/styles/_NavBar.scss +116 -0
  104. package/src/styles/_NavDropdown.scss +34 -0
  105. package/src/styles/_OffCanvas.scss +260 -0
  106. package/src/styles/_OverLay.scss +56 -0
  107. package/src/styles/_Popout.scss +75 -0
  108. package/src/styles/_Spinner.scss +19 -0
  109. package/src/styles/_Table.scss +34 -0
  110. package/src/styles/_Tabs.scss +129 -0
  111. package/src/styles/_colors.scss +510 -0
  112. package/src/styles/_components.scss +40 -0
  113. package/src/styles/_functions.scss +134 -0
  114. package/src/styles/_mixins.scss +26 -0
  115. package/src/styles/_reset.scss +231 -0
  116. package/src/styles/_utilities.scss +2480 -0
  117. package/src/styles/_variables.scss +146 -0
  118. package/src/styles/forms/_FormCheck.scss +269 -0
  119. package/src/styles/forms/_FormControl.scss +102 -0
  120. package/src/styles/forms/_FormGroup.scss +21 -0
  121. package/src/styles/forms/_FormLabel.scss +3 -0
  122. package/src/styles/forms/_FormSelect.scss +164 -0
  123. package/src/styles/forms/_FormSlider.scss +116 -0
  124. package/src/styles/forms/_FormText.scss +6 -0
  125. package/{utils/BaseTypes.d.ts → src/utils/BaseTypes.ts} +30 -23
  126. package/src/utils/ContrastingColor.ts +25 -0
  127. package/src/utils/FileImportExport.js +50 -0
  128. package/src/utils/MergeClassnames.ts +5 -0
  129. package/src/utils/MergeRefs.ts +12 -0
  130. package/src/vite-env.d.ts +1 -0
  131. package/tsconfig-build.json +4 -0
  132. package/tsconfig.json +79 -0
  133. package/tsconfig.node.json +10 -0
  134. package/types/BaseTypes.d.ts +19 -0
  135. package/{Button → types/components/Button}/Button.types.d.ts +2 -1
  136. package/types/components/Button/index.d.ts +1 -0
  137. package/{Card → types/components/Card}/Card.types.d.ts +1 -3
  138. package/types/components/Card/index.d.ts +1 -0
  139. package/{CloseButton → types/components/CloseButton}/CloseButton.types.d.ts +1 -1
  140. package/types/components/CloseButton/index.d.ts +1 -0
  141. package/{Dropdown → types/components/Dropdown}/Dropdown.types.d.ts +10 -3
  142. package/types/components/Dropdown/index.d.ts +1 -0
  143. package/{FloatingLabel → types/components/FloatingLabel}/FloatingLabel.types.d.ts +1 -1
  144. package/types/components/FloatingLabel/index.d.ts +1 -0
  145. package/types/components/Form/Form.d.ts +17 -0
  146. package/types/components/Form/Form.types.d.ts +50 -0
  147. package/types/components/Form/index.d.ts +1 -0
  148. package/types/components/InputGroup/InputGroup.d.ts +6 -0
  149. package/types/components/InputGroup/InputGroup.types.d.ts +10 -0
  150. package/types/components/InputGroup/index.d.ts +1 -0
  151. package/{Modal → types/components/Modal}/Modal.d.ts +1 -1
  152. package/{Modal → types/components/Modal}/Modal.types.d.ts +2 -3
  153. package/types/components/Modal/index.d.ts +1 -0
  154. package/{Nav → types/components/Nav}/Nav.types.d.ts +1 -1
  155. package/types/components/Nav/index.d.ts +1 -0
  156. package/{NavBar → types/components/NavBar}/Navbar.d.ts +2 -1
  157. package/{NavBar → types/components/NavBar}/Navbar.types.d.ts +1 -2
  158. package/types/components/NavBar/index.d.ts +1 -0
  159. package/{NavDropdown → types/components/NavDropdown}/NavDropdown.d.ts +2 -2
  160. package/types/components/NavDropdown/index.d.ts +1 -0
  161. package/{Popout → types/components/Popout}/Popout.types.d.ts +1 -1
  162. package/types/components/Popout/index.d.ts +1 -0
  163. package/types/components/Spinner/index.d.ts +1 -0
  164. package/{Table → types/components/Table}/Table.types.d.ts +1 -1
  165. package/types/components/Table/index.d.ts +1 -0
  166. package/{Tabs → types/components/Tabs}/Tabs.types.d.ts +1 -9
  167. package/types/components/Tabs/index.d.ts +1 -0
  168. package/types/components/ToggleButton/ToggleButton.d.ts +9 -0
  169. package/types/components/ToggleButton/ToggleButton.types.d.ts +0 -0
  170. package/types/components/ToggleButton/index.d.ts +1 -0
  171. package/types/components/index.d.ts +16 -0
  172. package/types/index.d.ts +1 -0
  173. package/vite.config.js +57 -0
  174. package/vite.config.js.timestamp-1708777378490-e94428ceb2bf9.mjs +42 -0
  175. package/Bar/Bar.type.d.ts +0 -6
  176. package/Bar/index.js +0 -2
  177. package/Bar/index.js.map +0 -1
  178. package/Bar/package.json +0 -1
  179. package/Button/Button.js +0 -12
  180. package/Button/Button.js.map +0 -1
  181. package/Button/index.d.ts +0 -3
  182. package/Button/index.js +0 -7
  183. package/Button/index.js.map +0 -1
  184. package/Button/package.json +0 -1
  185. package/ButtonGroup/ButtonGroup.d.ts +0 -4
  186. package/ButtonGroup/ButtonGroup.js +0 -10
  187. package/ButtonGroup/ButtonGroup.js.map +0 -1
  188. package/ButtonGroup/ButtonGroup.types.d.ts +0 -7
  189. package/ButtonGroup/index.d.ts +0 -3
  190. package/ButtonGroup/index.js +0 -7
  191. package/ButtonGroup/index.js.map +0 -1
  192. package/ButtonGroup/package.json +0 -1
  193. package/Card/Card.js +0 -41
  194. package/Card/Card.js.map +0 -1
  195. package/Card/index.d.ts +0 -3
  196. package/Card/index.js +0 -7
  197. package/Card/index.js.map +0 -1
  198. package/Card/package.json +0 -1
  199. package/CloseButton/CloseButton.js +0 -11
  200. package/CloseButton/CloseButton.js.map +0 -1
  201. package/CloseButton/index.d.ts +0 -3
  202. package/CloseButton/index.js +0 -7
  203. package/CloseButton/index.js.map +0 -1
  204. package/CloseButton/package.json +0 -1
  205. package/Dropdown/Dropdown.js +0 -292
  206. package/Dropdown/Dropdown.js.map +0 -1
  207. package/Dropdown/index.d.ts +0 -4
  208. package/Dropdown/index.js +0 -8
  209. package/Dropdown/index.js.map +0 -1
  210. package/Dropdown/package.json +0 -1
  211. package/FileUploadButton/FileUploadButton.d.ts +0 -4
  212. package/FileUploadButton/FileUploadButton.js +0 -21
  213. package/FileUploadButton/FileUploadButton.js.map +0 -1
  214. package/FileUploadButton/FileUploadButton.types.d.ts +0 -7
  215. package/FileUploadButton/index.d.ts +0 -3
  216. package/FileUploadButton/index.js +0 -7
  217. package/FileUploadButton/index.js.map +0 -1
  218. package/FileUploadButton/package.json +0 -1
  219. package/FloatingLabel/FloatingLabel.js +0 -17
  220. package/FloatingLabel/FloatingLabel.js.map +0 -1
  221. package/FloatingLabel/index.d.ts +0 -3
  222. package/FloatingLabel/index.js +0 -7
  223. package/FloatingLabel/index.js.map +0 -1
  224. package/FloatingLabel/package.json +0 -1
  225. package/Form/Form.d.ts +0 -38
  226. package/Form/Form.js +0 -308
  227. package/Form/Form.js.map +0 -1
  228. package/Form/Form.types.d.ts +0 -105
  229. package/Form/index.d.ts +0 -4
  230. package/Form/index.js +0 -8
  231. package/Form/index.js.map +0 -1
  232. package/Form/package.json +0 -1
  233. package/InputGroup/InputGroup.d.ts +0 -7
  234. package/InputGroup/InputGroup.js +0 -31
  235. package/InputGroup/InputGroup.js.map +0 -1
  236. package/InputGroup/InputGroup.types.d.ts +0 -16
  237. package/InputGroup/index.d.ts +0 -4
  238. package/InputGroup/index.js +0 -7
  239. package/InputGroup/index.js.map +0 -1
  240. package/InputGroup/package.json +0 -1
  241. package/List/List.d.ts +0 -14
  242. package/List/List.js +0 -76
  243. package/List/List.js.map +0 -1
  244. package/List/List.types.d.ts +0 -28
  245. package/List/index.d.ts +0 -3
  246. package/List/index.js +0 -7
  247. package/List/index.js.map +0 -1
  248. package/List/package.json +0 -1
  249. package/Modal/Modal.js +0 -160
  250. package/Modal/Modal.js.map +0 -1
  251. package/Modal/index.d.ts +0 -3
  252. package/Modal/index.js +0 -7
  253. package/Modal/index.js.map +0 -1
  254. package/Modal/package.json +0 -1
  255. package/Nav/Nav.js +0 -28
  256. package/Nav/Nav.js.map +0 -1
  257. package/Nav/index.d.ts +0 -4
  258. package/Nav/index.js +0 -7
  259. package/Nav/index.js.map +0 -1
  260. package/Nav/package.json +0 -1
  261. package/NavBar/Navbar.js +0 -36
  262. package/NavBar/Navbar.js.map +0 -1
  263. package/NavBar/index.d.ts +0 -4
  264. package/NavBar/index.js +0 -8
  265. package/NavBar/index.js.map +0 -1
  266. package/NavBar/package.json +0 -1
  267. package/NavDropdown/NavDropdown.js +0 -77
  268. package/NavDropdown/NavDropdown.js.map +0 -1
  269. package/NavDropdown/index.d.ts +0 -3
  270. package/NavDropdown/index.js +0 -7
  271. package/NavDropdown/index.js.map +0 -1
  272. package/NavDropdown/package.json +0 -1
  273. package/Overlay/Overlay.d.ts +0 -4
  274. package/Overlay/Overlay.js +0 -228
  275. package/Overlay/Overlay.js.map +0 -1
  276. package/Overlay/Overlay.types.d.ts +0 -18
  277. package/Overlay/index.js +0 -7
  278. package/Overlay/index.js.map +0 -1
  279. package/Overlay/package.json +0 -1
  280. package/Popout/Popout.js +0 -110
  281. package/Popout/Popout.js.map +0 -1
  282. package/Popout/index.d.ts +0 -3
  283. package/Popout/index.js +0 -7
  284. package/Popout/index.js.map +0 -1
  285. package/Popout/package.json +0 -1
  286. package/Spinner/Spinner.js +0 -12
  287. package/Spinner/Spinner.js.map +0 -1
  288. package/Spinner/index.d.ts +0 -3
  289. package/Spinner/index.js +0 -7
  290. package/Spinner/index.js.map +0 -1
  291. package/Spinner/package.json +0 -1
  292. package/Table/Table.js +0 -11
  293. package/Table/Table.js.map +0 -1
  294. package/Table/index.d.ts +0 -3
  295. package/Table/index.js +0 -7
  296. package/Table/index.js.map +0 -1
  297. package/Table/package.json +0 -1
  298. package/Tabs/Tabs.js +0 -158
  299. package/Tabs/Tabs.js.map +0 -1
  300. package/Tabs/index.d.ts +0 -3
  301. package/Tabs/index.js +0 -7
  302. package/Tabs/index.js.map +0 -1
  303. package/Tabs/package.json +0 -1
  304. package/ToggleButton/ToggleButton.d.ts +0 -4
  305. package/ToggleButton/ToggleButton.js +0 -17
  306. package/ToggleButton/ToggleButton.js.map +0 -1
  307. package/ToggleButton/ToggleButton.types.d.ts +0 -7
  308. package/ToggleButton/index.d.ts +0 -3
  309. package/ToggleButton/index.js +0 -7
  310. package/ToggleButton/index.js.map +0 -1
  311. package/ToggleButton/package.json +0 -1
  312. package/hooks/index.js +0 -6
  313. package/hooks/index.js.map +0 -1
  314. package/hooks/package.json +0 -1
  315. package/hooks/useClassname.d.ts +0 -2
  316. package/hooks/useClassname.js +0 -7
  317. package/hooks/useClassname.js.map +0 -1
  318. package/hooks/useDraggable.d.ts +0 -23
  319. package/hooks/useDraggable.js +0 -147
  320. package/hooks/useDraggable.js.map +0 -1
  321. package/hooks/useKeepElementFocused.d.ts +0 -2
  322. package/hooks/useKeepElementFocused.js +0 -37
  323. package/hooks/useKeepElementFocused.js.map +0 -1
  324. package/hooks/useScreenSize.d.ts +0 -5
  325. package/hooks/useScreenSize.js +0 -21
  326. package/hooks/useScreenSize.js.map +0 -1
  327. package/index.d.ts +0 -18
  328. package/index.js +0 -19
  329. package/index.js.map +0 -1
  330. package/styles/stargazerui.css.map +0 -1
  331. package/utils/ContrastingColor.d.ts +0 -1
  332. package/utils/MergeClassnames.d.ts +0 -2
  333. package/utils/MergeClassnames.js +0 -7
  334. package/utils/MergeClassnames.js.map +0 -1
  335. package/utils/MergeRefs.d.ts +0 -2
  336. package/utils/MergeRefs.js +0 -16
  337. package/utils/MergeRefs.js.map +0 -1
  338. /package/{Button → types/components/Button}/Button.d.ts +0 -0
  339. /package/{Card → types/components/Card}/Card.d.ts +0 -0
  340. /package/{CloseButton → types/components/CloseButton}/CloseButton.d.ts +0 -0
  341. /package/{Dropdown → types/components/Dropdown}/Dropdown.d.ts +0 -0
  342. /package/{FloatingLabel → types/components/FloatingLabel}/FloatingLabel.d.ts +0 -0
  343. /package/{Nav → types/components/Nav}/Nav.d.ts +0 -0
  344. /package/{NavDropdown → types/components/NavDropdown}/NavDropdown.types.d.ts +0 -0
  345. /package/{Popout → types/components/Popout}/Popout.d.ts +0 -0
  346. /package/{Spinner → types/components/Spinner}/Spinner.d.ts +0 -0
  347. /package/{Spinner → types/components/Spinner}/Spinner.types.d.ts +0 -0
  348. /package/{Table → types/components/Table}/Table.d.ts +0 -0
  349. /package/{Tabs → types/components/Tabs}/Tabs.d.ts +0 -0
@@ -0,0 +1,134 @@
1
+ @use "sass:map";
2
+ @use 'sass:color';
3
+ @use 'sass:math';
4
+ @use 'sass:list';
5
+ @use 'sass:string';
6
+
7
+ $color-contrast-dark: black !default;
8
+ $color-contrast-light: white !default;
9
+ $min-contrast-ratio: 4.5 !default;
10
+ $_luminance-list: .0008 .001 .0011 .0013 .0015 .0017 .002 .0022 .0025 .0027 .003 .0033 .0037 .004 .0044 .0048 .0052 .0056 .006 .0065 .007 .0075 .008 .0086 .0091 .0097 .0103 .011 .0116 .0123 .013 .0137 .0144 .0152 .016 .0168 .0176 .0185 .0194 .0203 .0212 .0222 .0232 .0242 .0252 .0262 .0273 .0284 .0296 .0307 .0319 .0331 .0343 .0356 .0369 .0382 .0395 .0409 .0423 .0437 .0452 .0467 .0482 .0497 .0513 .0529 .0545 .0561 .0578 .0595 .0612 .063 .0648 .0666 .0685 .0704 .0723 .0742 .0762 .0782 .0802 .0823 .0844 .0865 .0887 .0908 .0931 .0953 .0976 .0999 .1022 .1046 .107 .1095 .1119 .1144 .117 .1195 .1221 .1248 .1274 .1301 .1329 .1356 .1384 .1413 .1441 .147 .15 .1529 .1559 .159 .162 .1651 .1683 .1714 .1746 .1779 .1812 .1845 .1878 .1912 .1946 .1981 .2016 .2051 .2086 .2122 .2159 .2195 .2232 .227 .2307 .2346 .2384 .2423 .2462 .2502 .2542 .2582 .2623 .2664 .2705 .2747 .2789 .2831 .2874 .2918 .2961 .3005 .305 .3095 .314 .3185 .3231 .3278 .3325 .3372 .3419 .3467 .3515 .3564 .3613 .3663 .3712 .3763 .3813 .3864 .3916 .3968 .402 .4072 .4125 .4179 .4233 .4287 .4342 .4397 .4452 .4508 .4564 .4621 .4678 .4735 .4793 .4851 .491 .4969 .5029 .5089 .5149 .521 .5271 .5333 .5395 .5457 .552 .5583 .5647 .5711 .5776 .5841 .5906 .5972 .6038 .6105 .6172 .624 .6308 .6376 .6445 .6514 .6584 .6654 .6724 .6795 .6867 .6939 .7011 .7084 .7157 .7231 .7305 .7379 .7454 .7529 .7605 .7682 .7758 .7835 .7913 .7991 .807 .8148 .8228 .8308 .8388 .8469 .855 .8632 .8714 .8796 .8879 .8963 .9047 .9131 .9216 .9301 .9387 .9473 .956 .9647 .9734 .9823 .9911 1;
11
+
12
+
13
+ @function color-contrast($background, $color-contrast-dark: $color-contrast-dark, $color-contrast-light: $color-contrast-light, $min-contrast-ratio: $min-contrast-ratio) {
14
+ $foregrounds: $color-contrast-light, $color-contrast-dark, white, black;
15
+ $max-ratio: 0;
16
+ $max-ratio-color: null;
17
+
18
+ @each $color in $foregrounds {
19
+ $contrast-ratio: contrast-ratio($background, $color);
20
+ @if $contrast-ratio > $min-contrast-ratio {
21
+ @return $color;
22
+ } @else if $contrast-ratio > $max-ratio {
23
+ $max-ratio: $contrast-ratio;
24
+ $max-ratio-color: $color;
25
+ }
26
+ }
27
+
28
+ @warn "Found no color leading to #{$min-contrast-ratio}:1 contrast ratio against #{$background}...";
29
+
30
+ @return $max-ratio-color;
31
+ }
32
+
33
+ @function contrast-ratio($background, $foreground: $color-contrast-light) {
34
+ $l1: luminance($background);
35
+ $l2: luminance(opaque($background, $foreground));
36
+ @if $l1 > $l2 {
37
+ $lum: math.div($l1 + .05, $l2 + .05);
38
+ }
39
+ @else {
40
+ $lum: math.div($l2 + .05, $l1 + .05);
41
+ }
42
+ @return if($l1 > $l2, math.div($l1 + .05, $l2 + .05), math.div($l2 + .05, $l1 + .05));
43
+ }
44
+
45
+ // Return WCAG2.1 relative luminance
46
+ // See https://www.w3.org/TR/WCAG/#dfn-relative-luminance
47
+ // See https://www.w3.org/TR/WCAG/#dfn-contrast-ratio
48
+ @function luminance($color) {
49
+ $rgb: (
50
+ "r": red($color),
51
+ "g": green($color),
52
+ "b": blue($color)
53
+ );
54
+
55
+ @each $name, $value in $rgb {
56
+ $value: if(math.div($value, 255) < .03928, math.div(math.div($value, 255), 12.92), nth($_luminance-list, $value + 1));
57
+ $rgb: map-merge($rgb, ($name: $value));
58
+ }
59
+
60
+ @return (map-get($rgb, "r") * .2126) + (map-get($rgb, "g") * .7152) + (map-get($rgb, "b") * .0722);
61
+ }
62
+
63
+ // Return opaque color
64
+ // opaque(#fff, rgba(0, 0, 0, .5)) => #808080
65
+ @function opaque($background, $foreground) {
66
+ @return mix(rgba($foreground, 1), $background, opacity($foreground) * 100%);
67
+ }
68
+
69
+
70
+ @function str-replace($string, $search, $replace: "") {
71
+ $index: string.index($string, $search);
72
+
73
+ @if $index {
74
+ @return string.slice($string, 1, $index - 1) + $replace + str-replace(string.slice($string, $index + string.length($search)), $search, $replace);
75
+ }
76
+
77
+ @return $string;
78
+ }
79
+
80
+ @function escape-svg($string) {
81
+ @if string.index($string, "data:image/svg+xml") {
82
+ @each $char, $encoded in $escaped-characters {
83
+ // Do not escape the url brackets
84
+ @if string.index($string, "url(") == 1 {
85
+ $string: url("#{str-replace(string.slice($string, 6, -3), $char, $encoded)}");
86
+ } @else {
87
+ $string: str-replace($string, $char, $encoded);
88
+ }
89
+ }
90
+ }
91
+
92
+ @return $string;
93
+ }
94
+
95
+
96
+ @function hsb($h, $s, $b, $a: 1) {
97
+ $h-int: $h;//math.div($h, if(math.unit($h) == "", 1, 1*math.unit($h)) );
98
+ $s-int: math.div($s, if(math.unit($s) == "", 1, $s * 0 + 1 ) );
99
+ $b-int: math.div($b, if(math.unit($b) == "", 1, $b * 0 + 1 ) );
100
+ @if $b-int == 0 {
101
+ @return hsla(0, 0 * 1%, 0 * 1%, $a)
102
+ } @else {
103
+ $l-hsl: calc( ($b-int/2) * (2 - ($s-int /(100))) );
104
+ $s-hsl: math.div( ($b-int * $s-int), if($l-hsl < 50, $l-hsl * 2, 200 - $l-hsl * 2) );
105
+ @return hsla($h-int, calc($s-hsl * 1%), calc($l-hsl * 1%), $a);
106
+ }
107
+ }
108
+ @function shade-creator($color) {
109
+ $h-int: color.hue($color);
110
+
111
+ $s-int: color.saturation($color);
112
+ $s-max: calc(100 * 1%);
113
+ $s-min: calc(7 * 1%);
114
+ $s-step-light: calc(($s-int - 7 * 1%)/4);
115
+ $s-step-dark: calc((100 * 1% - $s-int)/4);
116
+
117
+ $b-int: calc( (2 * color.lightness($color) / (2 - ($s-int/(100 * 1%)))) );
118
+ $b-max: calc(100 * 1%);
119
+ $b-min: calc(20 * 1%);
120
+ $b-step-light: calc(($b-int - 20 * 1%)/4);
121
+ $b-step-dark: calc((100 * 1% - $b-int)/4);
122
+
123
+ @return (
124
+ "100": hsb($h-int, $s-min, $b-max),
125
+ "200": hsb($h-int, $s-min + $s-step-light, $b-max - $b-step-dark),
126
+ "300": hsb($h-int, $s-min + 2*$s-step-light, $b-max - 2*$b-step-dark),
127
+ "400": hsb($h-int, $s-min + 3*$s-step-light, $b-max - 3*$b-step-dark),
128
+ "500": hsb($h-int, $s-int, $b-int),
129
+ "600": hsb($h-int, $s-max - 3*$s-step-dark, $b-min + 3*$b-step-light),
130
+ "700": hsb($h-int, $s-max - 2*$s-step-dark, $b-min + 2*$b-step-light),
131
+ "800": hsb($h-int, $s-max - $s-step-dark, $b-min + $b-step-light),
132
+ "900": hsb($h-int, $s-max, $b-min),
133
+ );
134
+ }
@@ -0,0 +1,26 @@
1
+ @mixin border-top-radius($radius: 0.375rem) {
2
+ border-top-left-radius: $radius;
3
+ border-top-right-radius: $radius;
4
+ }
5
+
6
+ @mixin border-end-radius($radius: 0.375rem) {
7
+ border-top-right-radius: $radius;
8
+ border-bottom-right-radius: $radius;
9
+ }
10
+
11
+ @mixin border-bottom-radius($radius: 0.375rem) {
12
+ border-bottom-right-radius: $radius;
13
+ border-bottom-left-radius: $radius;
14
+ }
15
+
16
+ @mixin border-start-radius($radius: 0.375rem) {
17
+ border-top-left-radius: $radius;
18
+ border-bottom-left-radius: $radius;
19
+ }
20
+
21
+ @mixin sg-focus-visible($text-color: white, $color:#0d6efd) {
22
+ box-shadow: 0 0 0 3px $text-color;
23
+ //border: 1px solid $text-color;
24
+ outline: 2px solid $color;
25
+ z-index: 5;
26
+ }
@@ -0,0 +1,231 @@
1
+ @use "sass:color";
2
+ @use "sass:map";
3
+
4
+ :root {
5
+ --sg-body-bg: #212529;
6
+ --sg-body-color: white;
7
+ --sg-nav-color: #1a1b1d;
8
+ --sg-code-color: #fc5d5d;
9
+ --sg-font-monospace: SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;
10
+ --sg-highlight-bg: #fff3cd;
11
+ --sg-link-color: #fc5d5d;// #4D9DE0;// #0d6efd;
12
+ --sg-link-hover-color: color.mix(black, #E15554, 15%);// #62a4da;// #0a58ca;
13
+
14
+ --sg-primary: rgb(73, 149, 213);
15
+ --sg-secondary: rgb(108, 117, 125);
16
+ --sg-success: rgb(31, 173, 97); //hsl(148, 50%, 46%)
17
+ --sg-info: rgb(145, 132, 189);
18
+ --sg-warning: rgb(224, 188, 41);
19
+ --sg-danger: rgb(252, 95, 95);
20
+ --sg-light: rgb(248, 249, 250);
21
+ --sg-dark: rgb(33, 37, 41);
22
+
23
+ --red-2: rgb(248, 113, 113);
24
+ --orange-2: rgb(251 146 60);
25
+ --yellow-2: rgb(251 191 36);
26
+
27
+ --nav-bar-height: 3.5rem;
28
+ --tab-controls-height: 2.5rem;
29
+ --column-header-height: 2rem;
30
+
31
+ font-size: 18px;
32
+ line-height: 1.4;
33
+ font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', 'Oxygen',
34
+ 'Ubuntu', 'Cantarell', 'Fira Sans', 'Droid Sans', 'Helvetica Neue',
35
+ sans-serif;
36
+ -webkit-font-smoothing: antialiased;
37
+ -moz-osx-font-smoothing: grayscale;
38
+ }
39
+
40
+ body {
41
+ margin: 0;
42
+ padding: 0;
43
+ height: 100dvh;
44
+ color: var(--sg-body-color);
45
+ background-color: var(--sg-body-bg);
46
+ }
47
+
48
+ #root {
49
+ height: 100%;
50
+ overflow: auto;
51
+ }
52
+
53
+ .visually-hidden {
54
+ border: 0;
55
+ clip: rect(0 0 0 0);
56
+ height: auto;
57
+ margin: 0;
58
+ overflow: hidden;
59
+ padding: 0;
60
+ position: absolute;
61
+ width: 1px;
62
+ white-space: nowrap;
63
+ }
64
+
65
+ ::-webkit-scrollbar {
66
+ display: none;
67
+ }
68
+
69
+ .full-width {
70
+ width: 100%;
71
+ }
72
+ .top-left-grid {
73
+ border-top-left-radius: 0.375rem;
74
+ border-bottom-left-radius: 0;
75
+ }
76
+ .top-right-grid {
77
+ border-top-right-radius: 0.375rem;
78
+ border-bottom-right-radius: 0;
79
+ }
80
+ .middle-grid {
81
+ border-radius: 0;
82
+ }
83
+ .bottom-left-grid {
84
+ border-bottom-left-radius: 0.375rem;
85
+ border-top-left-radius: 0;
86
+ }
87
+ .bottom-right-grid {
88
+ border-bottom-right-radius: 0.375rem;
89
+ border-top-right-radius: 0;
90
+ }
91
+
92
+ :focus-visible {
93
+ //z-index: 9999;
94
+ }
95
+ .flex-column {
96
+ display: flex;
97
+ flex-direction: column;
98
+ }
99
+ .flex-row {
100
+ display: flex;
101
+ flex-direction: row;
102
+ }
103
+
104
+ .test-red {
105
+ background-color: red;
106
+ }
107
+
108
+ * {
109
+ box-sizing: border-box;
110
+ scrollbar-color: var(--sg-link-color) rgba(0,0,0,0);
111
+ scrollbar-width: thin;
112
+ }
113
+
114
+ dialog {
115
+ padding: 0;
116
+ margin: 0;
117
+ color: inherit
118
+ }
119
+
120
+ input, textarea, select {
121
+ font-size: 1rem * 0.85;
122
+ }
123
+
124
+ button {
125
+ cursor: pointer;
126
+ font-size: calc(1rem * 0.85);
127
+ }
128
+
129
+ hr {
130
+ margin: 0.5rem 0;
131
+ color: inherit;
132
+ border: 0;
133
+ border-top: 1px solid;
134
+ opacity: 0.25;
135
+ }
136
+
137
+ h6, .h6, h5, .h5, h4, .h4, h3, .h3, h2, .h2, h1, .h1 {
138
+ margin-top: 0;
139
+ margin-bottom: 0.5rem;
140
+ font-weight: 500;
141
+ line-height: 1.2;
142
+ }
143
+
144
+ h1, .h1 {
145
+ --unit: 1rem;
146
+ font-size: calc(1.375*var(--unit) + 1.5vw);
147
+ }
148
+ @media (min-width: 1200px) {
149
+ h1, .h1 {
150
+ font-size: calc(2.5*var(--unit));
151
+ }
152
+ }
153
+
154
+ h2, .h2 {
155
+ --unit: 1rem;
156
+ font-size: calc(1.325*var(--unit) + 0.9vw);
157
+ }
158
+ @media (min-width: 1200px) {
159
+ h2, .h2 {
160
+ font-size: calc(2*var(--unit));
161
+ }
162
+ }
163
+
164
+ h3, .h3 {
165
+ --unit: 1rem;
166
+ font-size: calc(1.3*var(--unit) + 0.6vw);
167
+ }
168
+ @media (min-width: 1200px) {
169
+ h3, .h3 {
170
+ font-size: calc(1.75*var(--unit));
171
+ }
172
+ }
173
+
174
+ h4, .h4 {
175
+ --unit: 1rem;
176
+ font-size: calc(1.275*var(--unit) + 0.3vw);
177
+ }
178
+ @media (min-width: 1200px) {
179
+ h4, .h4 {
180
+ font-size: calc(1.5*var(--unit));
181
+ }
182
+ }
183
+
184
+ h5, .h5 {
185
+ --unit: 1rem;
186
+ font-size: calc(1.25*var(--unit));
187
+ }
188
+
189
+ h6, .h6 {
190
+ --unit: 1rem;
191
+ font-size: calc(1*var(--unit));
192
+ }
193
+
194
+ p {
195
+ margin-top: 0;
196
+ margin-bottom: 1rem;
197
+ }
198
+
199
+ ol, ul, dl {
200
+ margin-top: 0;
201
+ margin-bottom: 0;
202
+ }
203
+
204
+ dt {
205
+ font-weight: 700;
206
+ }
207
+
208
+ dd {
209
+ margin-bottom: 0.5rem;
210
+ margin-left: 0;
211
+ }
212
+
213
+ b, strong {
214
+ font-weight: bolder;
215
+ }
216
+
217
+ a {
218
+ color: var(--sg-link-color);
219
+ text-decoration: underline;
220
+ }
221
+ a:hover {
222
+ color: var(--sg-link-hover-color);
223
+ }
224
+
225
+ img, svg {
226
+ vertical-align: middle;
227
+ }
228
+
229
+ label {
230
+ display: inline-block;
231
+ }