stargazer-ui 1.5.11 → 1.5.13

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 (371) 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 +46 -0
  7. package/dev/index.scss +74 -0
  8. package/dev/pages/ButtonPage.jsx +44 -0
  9. package/dev/pages/CardPage.jsx +81 -0
  10. package/dev/pages/DropdownPage.jsx +32 -0
  11. package/dev/pages/FormPage.jsx +155 -0
  12. package/dev/pages/ListPage.jsx +52 -0
  13. package/dev/pages/ModalPage.jsx +38 -0
  14. package/dev/pages/OverlayPage.jsx +39 -0
  15. package/dev/pages/components.jsx +19 -0
  16. package/dev/stargazerui.css +3762 -0
  17. package/dev/stargazerui.css.map +1 -0
  18. package/dev/test.jsx +87 -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 +20 -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 +440 -0
  38. package/src/Dropdown/Dropdown.types.ts +60 -0
  39. package/src/Dropdown/DropdownOld.tsx +409 -0
  40. package/src/Dropdown/index.ts +4 -0
  41. package/src/FileUploadButton/FileUploadButton.tsx +27 -0
  42. package/src/FileUploadButton/FileUploadButton.types.ts +9 -0
  43. package/src/FileUploadButton/index.ts +3 -0
  44. package/src/FloatingLabel/FloatingLabel.tsx +22 -0
  45. package/src/FloatingLabel/FloatingLabel.types.ts +11 -0
  46. package/src/FloatingLabel/index.ts +3 -0
  47. package/src/Form/Form.tsx +398 -0
  48. package/src/Form/Form.types.ts +169 -0
  49. package/src/Form/FormSelect.tsx +527 -0
  50. package/src/Form/index.ts +4 -0
  51. package/src/InputGroup/InputGroup.tsx +46 -0
  52. package/src/InputGroup/InputGroup.types.ts +22 -0
  53. package/src/InputGroup/index.ts +4 -0
  54. package/src/List/List.tsx +112 -0
  55. package/src/List/List.types.ts +34 -0
  56. package/src/List/index.ts +4 -0
  57. package/src/Modal/Modal.tsx +229 -0
  58. package/src/Modal/Modal.types.ts +49 -0
  59. package/src/Modal/index.ts +4 -0
  60. package/src/Nav/Nav.tsx +43 -0
  61. package/src/Nav/Nav.types.ts +21 -0
  62. package/src/Nav/index.ts +4 -0
  63. package/src/NavBar/Navbar.tsx +57 -0
  64. package/src/NavBar/Navbar.types.ts +24 -0
  65. package/src/NavBar/index.ts +4 -0
  66. package/src/NavDropdown/NavDropdown.tsx +93 -0
  67. package/src/NavDropdown/NavDropdown.types.ts +6 -0
  68. package/src/NavDropdown/index.ts +3 -0
  69. package/src/Overlay/Overlay.tsx +309 -0
  70. package/src/Overlay/Overlay.types.ts +24 -0
  71. package/{Overlay/index.d.ts → src/Overlay/index.ts} +3 -3
  72. package/src/Popout/Popout.tsx +155 -0
  73. package/src/Popout/Popout.types.ts +42 -0
  74. package/src/Popout/index.ts +3 -0
  75. package/src/Spinner/Spinner.tsx +15 -0
  76. package/src/Spinner/Spinner.types.ts +7 -0
  77. package/src/Spinner/index.ts +3 -0
  78. package/src/Table/Table.tsx +16 -0
  79. package/src/Table/Table.types.ts +9 -0
  80. package/src/Table/index.ts +3 -0
  81. package/src/Tabs/Tabs.tsx +233 -0
  82. package/src/Tabs/Tabs.types.ts +52 -0
  83. package/src/Tabs/index.ts +3 -0
  84. package/src/ToggleButton/ToggleButton.tsx +21 -0
  85. package/src/ToggleButton/ToggleButton.types.ts +8 -0
  86. package/src/ToggleButton/index.ts +3 -0
  87. package/src/assets/tooltip-pointer.svg +3 -0
  88. package/src/assets/warning.svg +39 -0
  89. package/{hooks/index.d.ts → src/hooks/index.ts} +7 -6
  90. package/src/hooks/useClassname.ts +5 -0
  91. package/src/hooks/useDraggable.ts +186 -0
  92. package/src/hooks/useKeepElementFocused.ts +37 -0
  93. package/src/hooks/useQueryParams.ts +12 -0
  94. package/src/hooks/useScreenSize.ts +24 -0
  95. package/src/index.ts +21 -0
  96. package/src/styles/_Card.scss +166 -0
  97. package/src/styles/_CloseButton.scss +51 -0
  98. package/src/styles/_CustomButton.scss +134 -0
  99. package/src/styles/_Dropdown.scss +127 -0
  100. package/src/styles/_FloatingLabel.scss +56 -0
  101. package/src/styles/_Forms.scss +7 -0
  102. package/src/styles/_Grid.scss +178 -0
  103. package/src/styles/_InputGroup.scss +71 -0
  104. package/src/styles/_List.scss +62 -0
  105. package/src/styles/_Modal.scss +234 -0
  106. package/src/styles/_ModalOld.scss +242 -0
  107. package/src/styles/_Nav.scss +36 -0
  108. package/src/styles/_NavBar.scss +116 -0
  109. package/src/styles/_NavDropdown.scss +33 -0
  110. package/src/styles/_OffCanvas.scss +260 -0
  111. package/src/styles/_OverLay.scss +64 -0
  112. package/src/styles/_Popout.scss +75 -0
  113. package/src/styles/_Spinner.scss +19 -0
  114. package/src/styles/_Table.scss +34 -0
  115. package/src/styles/_Tabs.scss +129 -0
  116. package/src/styles/_colors.scss +510 -0
  117. package/src/styles/_components.scss +40 -0
  118. package/src/styles/_functions.scss +134 -0
  119. package/src/styles/_mixins.scss +26 -0
  120. package/src/styles/_reset.scss +237 -0
  121. package/src/styles/_utilities.scss +2480 -0
  122. package/src/styles/_variables.scss +164 -0
  123. package/src/styles/forms/_FormCheck.scss +270 -0
  124. package/src/styles/forms/_FormControl.scss +135 -0
  125. package/src/styles/forms/_FormGroup.scss +26 -0
  126. package/src/styles/forms/_FormLabel.scss +3 -0
  127. package/src/styles/forms/_FormSelect.scss +196 -0
  128. package/src/styles/forms/_FormSlider.scss +116 -0
  129. package/src/styles/forms/_FormText.scss +6 -0
  130. package/{utils/BaseTypes.d.ts → src/utils/BaseTypes.ts} +32 -25
  131. package/src/utils/ContrastingColor.ts +25 -0
  132. package/src/utils/CreateSyntheticEvent.ts +30 -0
  133. package/src/utils/FileImportExport.js +50 -0
  134. package/src/utils/IsInputKey.ts +18 -0
  135. package/src/utils/MergeClassnames.ts +5 -0
  136. package/src/utils/MergeRefs.ts +12 -0
  137. package/src/vite-env.d.ts +1 -0
  138. package/tsconfig-build.json +4 -0
  139. package/tsconfig.json +79 -0
  140. package/tsconfig.node.json +10 -0
  141. package/types/BaseTypes.d.ts +19 -0
  142. package/{Button → types/components/Button}/Button.types.d.ts +2 -1
  143. package/types/components/Button/index.d.ts +1 -0
  144. package/{Card → types/components/Card}/Card.types.d.ts +1 -3
  145. package/types/components/Card/index.d.ts +1 -0
  146. package/{CloseButton → types/components/CloseButton}/CloseButton.types.d.ts +1 -1
  147. package/types/components/CloseButton/index.d.ts +1 -0
  148. package/{Dropdown/DropdownOld.d.ts → types/components/Dropdown/Dropdown.d.ts} +3 -61
  149. package/{Dropdown → types/components/Dropdown}/Dropdown.types.d.ts +11 -10
  150. package/types/components/Dropdown/index.d.ts +1 -0
  151. package/{FloatingLabel → types/components/FloatingLabel}/FloatingLabel.types.d.ts +1 -1
  152. package/types/components/FloatingLabel/index.d.ts +1 -0
  153. package/types/components/Form/Form.d.ts +17 -0
  154. package/types/components/Form/Form.types.d.ts +50 -0
  155. package/types/components/Form/index.d.ts +1 -0
  156. package/types/components/InputGroup/InputGroup.d.ts +6 -0
  157. package/types/components/InputGroup/InputGroup.types.d.ts +10 -0
  158. package/types/components/InputGroup/index.d.ts +1 -0
  159. package/{Modal → types/components/Modal}/Modal.d.ts +1 -1
  160. package/{Modal → types/components/Modal}/Modal.types.d.ts +2 -3
  161. package/types/components/Modal/index.d.ts +1 -0
  162. package/{Nav → types/components/Nav}/Nav.types.d.ts +1 -1
  163. package/types/components/Nav/index.d.ts +1 -0
  164. package/{NavBar → types/components/NavBar}/Navbar.d.ts +2 -1
  165. package/{NavBar → types/components/NavBar}/Navbar.types.d.ts +1 -2
  166. package/types/components/NavBar/index.d.ts +1 -0
  167. package/types/components/NavDropdown/NavDropdown.d.ts +35 -0
  168. package/types/components/NavDropdown/index.d.ts +1 -0
  169. package/{Popout → types/components/Popout}/Popout.types.d.ts +1 -1
  170. package/types/components/Popout/index.d.ts +1 -0
  171. package/types/components/Spinner/index.d.ts +1 -0
  172. package/{Table → types/components/Table}/Table.types.d.ts +1 -1
  173. package/types/components/Table/index.d.ts +1 -0
  174. package/{Tabs → types/components/Tabs}/Tabs.types.d.ts +1 -12
  175. package/types/components/Tabs/index.d.ts +1 -0
  176. package/types/components/ToggleButton/ToggleButton.d.ts +9 -0
  177. package/types/components/ToggleButton/ToggleButton.types.d.ts +0 -0
  178. package/types/components/ToggleButton/index.d.ts +1 -0
  179. package/types/components/index.d.ts +16 -0
  180. package/types/index.d.ts +1 -0
  181. package/vite.config.js +57 -0
  182. package/vite.config.js.timestamp-1708777378490-e94428ceb2bf9.mjs +42 -0
  183. package/Bar/Bar.type.d.ts +0 -6
  184. package/Bar/index.js +0 -2
  185. package/Bar/index.js.map +0 -1
  186. package/Bar/package.json +0 -1
  187. package/Button/Button.js +0 -15
  188. package/Button/Button.js.map +0 -1
  189. package/Button/index.d.ts +0 -3
  190. package/Button/index.js +0 -7
  191. package/Button/index.js.map +0 -1
  192. package/Button/package.json +0 -1
  193. package/ButtonGroup/ButtonGroup.d.ts +0 -4
  194. package/ButtonGroup/ButtonGroup.js +0 -11
  195. package/ButtonGroup/ButtonGroup.js.map +0 -1
  196. package/ButtonGroup/ButtonGroup.types.d.ts +0 -7
  197. package/ButtonGroup/index.d.ts +0 -3
  198. package/ButtonGroup/index.js +0 -7
  199. package/ButtonGroup/index.js.map +0 -1
  200. package/ButtonGroup/package.json +0 -1
  201. package/Card/Card.js +0 -42
  202. package/Card/Card.js.map +0 -1
  203. package/Card/index.d.ts +0 -3
  204. package/Card/index.js +0 -7
  205. package/Card/index.js.map +0 -1
  206. package/Card/package.json +0 -1
  207. package/CloseButton/CloseButton.js +0 -11
  208. package/CloseButton/CloseButton.js.map +0 -1
  209. package/CloseButton/index.d.ts +0 -3
  210. package/CloseButton/index.js +0 -7
  211. package/CloseButton/index.js.map +0 -1
  212. package/CloseButton/package.json +0 -1
  213. package/Dropdown/Dropdown.d.ts +0 -129
  214. package/Dropdown/Dropdown.js +0 -378
  215. package/Dropdown/Dropdown.js.map +0 -1
  216. package/Dropdown/index.d.ts +0 -4
  217. package/Dropdown/index.js +0 -8
  218. package/Dropdown/index.js.map +0 -1
  219. package/Dropdown/package.json +0 -1
  220. package/FileUploadButton/FileUploadButton.d.ts +0 -4
  221. package/FileUploadButton/FileUploadButton.js +0 -20
  222. package/FileUploadButton/FileUploadButton.js.map +0 -1
  223. package/FileUploadButton/FileUploadButton.types.d.ts +0 -7
  224. package/FileUploadButton/index.d.ts +0 -3
  225. package/FileUploadButton/index.js +0 -7
  226. package/FileUploadButton/index.js.map +0 -1
  227. package/FileUploadButton/package.json +0 -1
  228. package/FloatingLabel/FloatingLabel.js +0 -15
  229. package/FloatingLabel/FloatingLabel.js.map +0 -1
  230. package/FloatingLabel/index.d.ts +0 -3
  231. package/FloatingLabel/index.js +0 -7
  232. package/FloatingLabel/index.js.map +0 -1
  233. package/FloatingLabel/package.json +0 -1
  234. package/Form/Form.d.ts +0 -38
  235. package/Form/Form.js +0 -227
  236. package/Form/Form.js.map +0 -1
  237. package/Form/Form.types.d.ts +0 -159
  238. package/Form/FormSelect.d.ts +0 -15
  239. package/Form/FormSelect.js +0 -436
  240. package/Form/FormSelect.js.map +0 -1
  241. package/Form/index.d.ts +0 -4
  242. package/Form/index.js +0 -8
  243. package/Form/index.js.map +0 -1
  244. package/Form/package.json +0 -1
  245. package/InputGroup/InputGroup.d.ts +0 -7
  246. package/InputGroup/InputGroup.js +0 -31
  247. package/InputGroup/InputGroup.js.map +0 -1
  248. package/InputGroup/InputGroup.types.d.ts +0 -17
  249. package/InputGroup/index.d.ts +0 -4
  250. package/InputGroup/index.js +0 -7
  251. package/InputGroup/index.js.map +0 -1
  252. package/InputGroup/package.json +0 -1
  253. package/List/List.d.ts +0 -14
  254. package/List/List.js +0 -77
  255. package/List/List.js.map +0 -1
  256. package/List/List.types.d.ts +0 -28
  257. package/List/index.d.ts +0 -3
  258. package/List/index.js +0 -7
  259. package/List/index.js.map +0 -1
  260. package/List/package.json +0 -1
  261. package/Modal/Modal.js +0 -157
  262. package/Modal/Modal.js.map +0 -1
  263. package/Modal/index.d.ts +0 -3
  264. package/Modal/index.js +0 -7
  265. package/Modal/index.js.map +0 -1
  266. package/Modal/package.json +0 -1
  267. package/Nav/Nav.js +0 -29
  268. package/Nav/Nav.js.map +0 -1
  269. package/Nav/index.d.ts +0 -4
  270. package/Nav/index.js +0 -7
  271. package/Nav/index.js.map +0 -1
  272. package/Nav/package.json +0 -1
  273. package/NavBar/Navbar.js +0 -36
  274. package/NavBar/Navbar.js.map +0 -1
  275. package/NavBar/index.d.ts +0 -4
  276. package/NavBar/index.js +0 -8
  277. package/NavBar/index.js.map +0 -1
  278. package/NavBar/package.json +0 -1
  279. package/NavDropdown/NavDropdown.d.ts +0 -93
  280. package/NavDropdown/NavDropdown.js +0 -75
  281. package/NavDropdown/NavDropdown.js.map +0 -1
  282. package/NavDropdown/index.d.ts +0 -3
  283. package/NavDropdown/index.js +0 -7
  284. package/NavDropdown/index.js.map +0 -1
  285. package/NavDropdown/package.json +0 -1
  286. package/Overlay/Overlay.d.ts +0 -4
  287. package/Overlay/Overlay.js +0 -242
  288. package/Overlay/Overlay.js.map +0 -1
  289. package/Overlay/Overlay.types.d.ts +0 -22
  290. package/Overlay/index.js +0 -7
  291. package/Overlay/index.js.map +0 -1
  292. package/Overlay/package.json +0 -1
  293. package/Popout/Popout.js +0 -111
  294. package/Popout/Popout.js.map +0 -1
  295. package/Popout/index.d.ts +0 -3
  296. package/Popout/index.js +0 -7
  297. package/Popout/index.js.map +0 -1
  298. package/Popout/package.json +0 -1
  299. package/Spinner/Spinner.js +0 -11
  300. package/Spinner/Spinner.js.map +0 -1
  301. package/Spinner/index.d.ts +0 -3
  302. package/Spinner/index.js +0 -7
  303. package/Spinner/index.js.map +0 -1
  304. package/Spinner/package.json +0 -1
  305. package/Table/Table.js +0 -12
  306. package/Table/Table.js.map +0 -1
  307. package/Table/index.d.ts +0 -3
  308. package/Table/index.js +0 -7
  309. package/Table/index.js.map +0 -1
  310. package/Table/package.json +0 -1
  311. package/Tabs/Tabs.js +0 -162
  312. package/Tabs/Tabs.js.map +0 -1
  313. package/Tabs/index.d.ts +0 -3
  314. package/Tabs/index.js +0 -7
  315. package/Tabs/index.js.map +0 -1
  316. package/Tabs/package.json +0 -1
  317. package/ToggleButton/ToggleButton.d.ts +0 -4
  318. package/ToggleButton/ToggleButton.js +0 -18
  319. package/ToggleButton/ToggleButton.js.map +0 -1
  320. package/ToggleButton/ToggleButton.types.d.ts +0 -7
  321. package/ToggleButton/index.d.ts +0 -3
  322. package/ToggleButton/index.js +0 -7
  323. package/ToggleButton/index.js.map +0 -1
  324. package/ToggleButton/package.json +0 -1
  325. package/hooks/index.js +0 -7
  326. package/hooks/index.js.map +0 -1
  327. package/hooks/package.json +0 -1
  328. package/hooks/useClassname.d.ts +0 -2
  329. package/hooks/useClassname.js +0 -7
  330. package/hooks/useClassname.js.map +0 -1
  331. package/hooks/useDraggable.d.ts +0 -23
  332. package/hooks/useDraggable.js +0 -147
  333. package/hooks/useDraggable.js.map +0 -1
  334. package/hooks/useKeepElementFocused.d.ts +0 -2
  335. package/hooks/useKeepElementFocused.js +0 -37
  336. package/hooks/useKeepElementFocused.js.map +0 -1
  337. package/hooks/useQueryParams.d.ts +0 -2
  338. package/hooks/useQueryParams.js +0 -13
  339. package/hooks/useQueryParams.js.map +0 -1
  340. package/hooks/useScreenSize.d.ts +0 -5
  341. package/hooks/useScreenSize.js +0 -21
  342. package/hooks/useScreenSize.js.map +0 -1
  343. package/index.d.ts +0 -18
  344. package/index.js +0 -19
  345. package/index.js.map +0 -1
  346. package/styles/stargazerui.css +0 -6552
  347. package/styles/stargazerui.css.map +0 -1
  348. package/utils/ContrastingColor.d.ts +0 -1
  349. package/utils/CreateSyntheticEvent.d.ts +0 -3
  350. package/utils/CreateSyntheticEvent.js +0 -33
  351. package/utils/CreateSyntheticEvent.js.map +0 -1
  352. package/utils/IsInputKey.d.ts +0 -7
  353. package/utils/IsInputKey.js +0 -20
  354. package/utils/IsInputKey.js.map +0 -1
  355. package/utils/MergeClassnames.d.ts +0 -2
  356. package/utils/MergeClassnames.js +0 -7
  357. package/utils/MergeClassnames.js.map +0 -1
  358. package/utils/MergeRefs.d.ts +0 -2
  359. package/utils/MergeRefs.js +0 -16
  360. package/utils/MergeRefs.js.map +0 -1
  361. /package/{Button → types/components/Button}/Button.d.ts +0 -0
  362. /package/{Card → types/components/Card}/Card.d.ts +0 -0
  363. /package/{CloseButton → types/components/CloseButton}/CloseButton.d.ts +0 -0
  364. /package/{FloatingLabel → types/components/FloatingLabel}/FloatingLabel.d.ts +0 -0
  365. /package/{Nav → types/components/Nav}/Nav.d.ts +0 -0
  366. /package/{NavDropdown → types/components/NavDropdown}/NavDropdown.types.d.ts +0 -0
  367. /package/{Popout → types/components/Popout}/Popout.d.ts +0 -0
  368. /package/{Spinner → types/components/Spinner}/Spinner.d.ts +0 -0
  369. /package/{Spinner → types/components/Spinner}/Spinner.types.d.ts +0 -0
  370. /package/{Table → types/components/Table}/Table.d.ts +0 -0
  371. /package/{Tabs → types/components/Tabs}/Tabs.d.ts +0 -0
@@ -0,0 +1,164 @@
1
+ @use "sass:color";
2
+
3
+ :root {
4
+ --sg-body-bg: #212529;
5
+ --sg-body-color: white;
6
+ }
7
+
8
+ $body-line-height: 1.4em !default;
9
+ $sg-body-bg: #212529;
10
+ $sg-body-bg-dark: #ffffff;
11
+ $sg-body-color: white;
12
+
13
+ $sg-font-monospace: SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;
14
+ $sg-highlight-bg: #fff3cd;
15
+
16
+ $primary: #4995d5;
17
+ $secondary: #6c757d;
18
+ $success: #1fad61; //hsl(148, 50%, 46%) //#2ae293
19
+ $info: #9184bd;
20
+ $warning: hsl(48, 75%, 52%);
21
+ $danger: rgb(252, 95, 95);
22
+ $light: #f8f9fa;
23
+ $dark: #212529;
24
+
25
+
26
+
27
+ $sg-nav-color: rgb(26, 27, 29);
28
+
29
+ /* Grid variables */
30
+ $grid-breakpoints: (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px, xxl: 1400px ) !default;
31
+ $container-max-widths: ( sm: 540px, md: 720px, lg: 960px, xl: 1140px, xxl: 1320px ) !default;
32
+
33
+ /* z indices */
34
+ $zindex-sticky: 1010 !default;
35
+ $zindex-navbar: 1010 !default;
36
+ $zindex-fixed: 1010 !default;
37
+ $zindex-dropdown: 1020 !default;
38
+ $zindex-popover: 1020 !default;
39
+ $zindex-offcanvas-backdrop: 1030 !default;
40
+ $zindex-offcanvas: 1040 !default;
41
+ $zindex-modal-backdrop: 1050 !default;
42
+ $zindex-modal: 1060 !default;
43
+ $zindex-tooltip: 1080 !default;
44
+ $zindex-toast: 1090 !default;
45
+
46
+ /* Button */
47
+ //$colors: ("red": #E15554, "green": #3BB273, "yellow": #E1BC29, "blue": #4D9DE0, "purple": #7768AE);
48
+ $colors: ("primary": #0d6efd, "secondary": #6c757d, "success": #198754, "info": #0dcaf0, "warning": #ffc107, "danger": #dc3545, "light": #f8f9fa, "dark": #212529);
49
+ $colors: ("primary": #4D9DE0, "secondary": #6c757d, "success": #3BB273, "info": #7768AE, "warning": #E1BC29, "danger": #E15554, "light": #f8f9fa, "dark": #212529);
50
+ $colors: ("primary": $danger, "secondary": $secondary, "success": $success, "info": $info, "warning": $warning, "danger": $primary, "light": $light, "dark": $dark);
51
+
52
+
53
+ /* Card */
54
+ $card-bg-color: color-mix(in hsl, #212529, white 5%) !default;
55
+ $card-header-bg-color: color-mix(in hsl, white 3%, #212529) !default;
56
+ $card-text-color: white !default;
57
+ $card-border-color: white !default;
58
+
59
+ .popover-header {
60
+ background-color: var(--nav-color);
61
+ color: white;
62
+ }
63
+ .popover-body {
64
+ background-color: var(--background-color);
65
+ color: var(--text-color);
66
+ border-bottom-right-radius: 0.5em;
67
+ border-bottom-left-radius: 0.5em;
68
+ max-height: 30em;
69
+ overflow: auto;
70
+ }
71
+
72
+
73
+ /* Dropdown */
74
+ $sg-dropdown-list-bg: #343a40;
75
+
76
+ $sg-dropdown-item-hover-bg: color.mix(black, $sg-dropdown-list-bg, 15%);
77
+ $sg-dropdown-item-action-bg: color.mix(black, $sg-dropdown-list-bg, 20%);
78
+ $sg-dropdown-item-disabled-bg: color.mix(white, $sg-dropdown-list-bg, 15%);
79
+
80
+
81
+ /* Form */
82
+ $input-text-color: white;// #212529;
83
+ $input-text-color-dark: black;
84
+
85
+ $input-line-height: $body-line-height;
86
+
87
+ $input-padding-x: 0.375em;
88
+ $input-padding-y: 0.5em;
89
+
90
+ $input-border-width: 2px;
91
+ $input-border-radius: 0;// 0.375em;
92
+
93
+ $input-border-color: color-mix(in oklab, $sg-nav-color, white 25%) ;// #ced4da;
94
+ $input-border-color-dark: color-mix(in oklab, white, $sg-nav-color 25%) ;
95
+ $input-border-color-focus: $danger;
96
+ $input-border-color-focus-dark: color-mix(in oklab, $danger, black 25%);
97
+ $input-border-color-invalid: $warning;
98
+ $input-border-color-invalid-dark: color-mix(in oklab, $warning, black 25%);
99
+ $input-border-style: outset;// solid;
100
+
101
+ $input-background-color: $sg-nav-color;
102
+ $input-background-color-dark: $sg-body-bg-dark;// white;
103
+ $input-disabled-color: #e9ecef;
104
+ $input-placeholder-color: rgba(255, 255, 255, 0.336);// #6c757d;
105
+
106
+ $input-group-text-background-color: #e9ecef;
107
+ $input-group-text-border-color: color.mix(black, $input-group-text-background-color, 5%);// #ced4da;
108
+
109
+ $input-height: calc($input-line-height + $input-padding-x * 2 + 2*$input-border-width);
110
+
111
+ $slider-height: 1.75rem;
112
+ $slider-thumb-width: 1.5rem;
113
+ $slider-thumb-height: 0.5rem;
114
+ $slider-border-width: 1px;
115
+
116
+ $slider-filled-color: $danger;
117
+ $slider-filled-hover-color: color-mix(in oklab, $slider-filled-color, black 15%);
118
+ $slider-filled-border-color: color-mix(in oklab, $slider-filled-color, black 20%);
119
+ $slider-filled-border-hover-color: color-mix(in oklab, $slider-filled-color, black 35%);
120
+
121
+ $slider-empty-color: $input-background-color;
122
+ $slider-empty-bover-color: color-mix(in oklab, $input-background-color, black 15%);
123
+ $slider-empty-border-color: color-mix(in oklab, $input-border-color, black 15%);
124
+ $slider-empty-border-hover-color: color-mix(in oklab, $input-border-color, black 25%);
125
+
126
+
127
+ /* Nav */
128
+ $sg-link-color: $danger;// #4D9DE0;// #0d6efd;
129
+ $sg-link-hover-color: white;//color.mix(black, #E15554, 15%);// #62a4da;// #0a58ca;
130
+ $sg-link-disable-color: rgb(180, 180, 180);
131
+
132
+
133
+ /* Overlay */
134
+ $sg-arrow-border: white;
135
+ $sg-arrow-fill: rgb(26, 27, 29);
136
+ $tooltip-arrow-filter: brightness(66.666666%);
137
+
138
+ $tooltip-text-color: white;
139
+ $tooltip-background-color: rgb(26, 27, 29);
140
+
141
+
142
+ $tooltip-font-size: 0.75rem;
143
+ $tooltip-max-width: 12rem;
144
+
145
+ $tooltip-padding-x: 0.375em;
146
+ $tooltip-padding-y: 0.5em;
147
+
148
+ $tooltip-border-color: color-mix(in oklab, $sg-nav-color, white 25%) ;
149
+ $tooltip-border-radius: 0;
150
+ $tooltip-border-width: 2px;
151
+ $tooltip-border-style: inset;
152
+ $tooltip-border-color: $tooltip-text-color;
153
+
154
+
155
+ /* Table */
156
+ $sg-table-padding: 0.5rem;
157
+ $sg-table-padding-sm: 0.25rem;
158
+
159
+ /* Tabs */
160
+ $sg-tab-controls-bg: #212529;
161
+
162
+ $sg-tab-button-color: $danger;
163
+ $sg-tab-button-hover: color-mix(in srgb, black 15%, $sg-tab-controls-bg);
164
+ $sg-tab-button-active: color-mix(in srgb, black 25%, $sg-tab-controls-bg);
@@ -0,0 +1,270 @@
1
+ $form-switch-width: 2em;
2
+ $form-switch-color: rgba(black, .25);
3
+
4
+ .sg-form-check {
5
+ --input-background-color: #{$input-background-color};
6
+ --input-border-color: #{$input-border-color};
7
+ --input-border-color-focus: #{$input-border-color-focus};
8
+ --input-border-color-invalid: #{$input-border-color-invalid};
9
+
10
+ display: block;
11
+ min-height: $input-line-height;
12
+ padding-bottom: 0.5rem;
13
+
14
+ .sg-form-check-input {
15
+ float: left;
16
+ }
17
+ }
18
+ .sg-form-check-reverse {
19
+ display: block;
20
+ min-height: $input-line-height;
21
+ padding-right: $input-line-height;
22
+ padding-bottom: 0.5rem;
23
+ text-align: right;
24
+
25
+ .sg-form-check-input {
26
+ float: right;
27
+ margin-right: $input-line-height * -1;
28
+ margin-left: 0;
29
+ }
30
+ }
31
+ /*
32
+ @media (prefers-color-scheme: dark) {
33
+ .sg-form-check {
34
+ --input-background-color: #{$input-background-color-dark};
35
+ --input-border-color: #{$input-border-color-dark};
36
+ --input-border-color-focus: #{$input-border-color-focus-dark};
37
+ --input-border-color-invalid: #{$input-border-color-invalid-dark};
38
+ }
39
+
40
+ }
41
+ */
42
+
43
+ .sg-form-check-input {
44
+ margin-right: 1ch;
45
+ width: calc($input-line-height - 2px);
46
+ height: calc($input-line-height - 2px);
47
+
48
+ background-color: var(--input-background-color);
49
+ background-repeat: no-repeat;
50
+ background-position: center;
51
+ background-size: contain;
52
+ appearance: none;
53
+ print-color-adjust: exact; // Keep themed appearance for print
54
+ border: $input-border-width $input-border-style var(--input-border-color);
55
+
56
+ &[type="checkbox"] {
57
+ border-radius: $input-border-radius;
58
+ background-clip: padding-box;
59
+
60
+
61
+ &:indeterminate {
62
+ background-color: var(--input-border-color-focus);
63
+ border-color: var(--input-border-color-focus);
64
+
65
+ background-image: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'><path fill='none' stroke='#{$input-background-color}' stroke-linecap='round' stroke-linejoin='round' stroke-width='3' d='M6 10h8'/></svg>");
66
+ }
67
+ }
68
+
69
+ &[type="radio"] {
70
+ // stylelint-disable-next-line property-disallowed-list
71
+ border-radius: 50%;
72
+ }
73
+ &[type="color"] {
74
+ width: 3em;
75
+ height: $input-height;
76
+ padding: $input-padding-x;
77
+
78
+ &:not(:disabled):not([readonly]) {
79
+ cursor: pointer;
80
+ }
81
+
82
+ &::-moz-color-swatch {
83
+ border: 0 !important; // stylelint-disable-line declaration-no-important
84
+ border-radius: $input-border-radius;
85
+ }
86
+
87
+ &::-webkit-color-swatch {
88
+ border-radius: $input-border-radius;
89
+ }
90
+ }
91
+
92
+ &:active {
93
+ filter: brightness(90%);
94
+ }
95
+
96
+ &:focus-visible {
97
+ border-color: var(--input-border-color-focus);
98
+ outline: 0;
99
+ box-shadow: 0;
100
+ }
101
+
102
+ &:checked {
103
+ $currentColor: $input-border-color-focus;
104
+
105
+ &[type="checkbox"] {
106
+ background-image: url("data:image/svg+xml, <svg xmlns='http://www.w3.org/2000/svg' width='32' height='32' viewBox='0 0 32 32'><polygon style='fill:#{$currentColor};' points='11.941,28.877 0,16.935 5.695,11.24 11.941,17.486 26.305,3.123 32,8.818'/></svg>");
107
+ }
108
+
109
+ &[type="radio"] {
110
+ background-image: url("data:image/svg+xml, <svg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='-4 -4 8 8'><circle r='2' fill='#{$currentColor}' /></svg>");
111
+ }
112
+
113
+ }
114
+
115
+ &:disabled, .disabled {
116
+ --input-background-color: rgba(255, 255, 255, 0.04);
117
+ --input-text-color: color-mix(in oklab, #{$input-placeholder-color}, white 40%);
118
+ cursor:not-allowed;
119
+ filter: none;
120
+ opacity: 0.5;
121
+ }
122
+
123
+ // Use disabled attribute in addition of :disabled pseudo-class
124
+ // See: https://github.com/twbs/bootstrap/issues/28247
125
+ &[disabled],
126
+ &:disabled {
127
+ ~ .form-check-label {
128
+ cursor: default;
129
+ opacity: 0.5;
130
+ }
131
+ }
132
+
133
+ &:user-invalid, &.invalid, &[aria-invalid="true"] {
134
+ box-shadow: 0 0 4px 2px var(--input-border-color-invalid);
135
+ z-index: 2;
136
+ }
137
+ }
138
+
139
+ .sg-form-check-label {
140
+ cursor: null;
141
+ display: grid;
142
+ grid-template-columns: auto 1fr;
143
+ align-items: center;
144
+ }
145
+
146
+
147
+ .sg-form-switch {
148
+ .sg-form-check-input {
149
+ width: $form-switch-width;
150
+ margin-right: 1ch;
151
+ background-image: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'><circle r='3' fill='#{$input-border-color}'/></svg>");
152
+ background-position: left center;
153
+ border-radius: $form-switch-width;
154
+ transition: background-position .15s ease-in-out;
155
+
156
+ &:focus-visible {
157
+ border-color: var(--input-border-color-focus);
158
+ outline: 0;
159
+ box-shadow: 0;
160
+ }
161
+
162
+ &:checked {
163
+ background-position: right center;
164
+ background-image: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'><circle r='3' fill='#{$input-border-color-focus}'/></svg>");
165
+ }
166
+ }
167
+ }
168
+
169
+
170
+ .sg-form-check-border {
171
+ //--spin-degree: 40deg;
172
+ position: relative;
173
+ padding: 2px;
174
+ width: fit-content;
175
+ height: fit-content;
176
+
177
+ margin-right: 1ch;
178
+ //border: 2px solid transparent;
179
+ overflow: hidden;
180
+ --border-opacity: 0;
181
+ &:focus-within {
182
+ --border-opacity: 1;
183
+
184
+ }
185
+ box-shadow: 50% 50% 0 white;
186
+
187
+ &::before {
188
+ content: "";
189
+ opacity: var(--border-opacity);
190
+ display: block;
191
+ position: absolute;
192
+ top: 25%;// -8px;
193
+ left: -25%;// -8px;
194
+ width: 150%;// calc(16px + 100%);
195
+ height: 50%;// calc(16px + 100%);
196
+ background-image: conic-gradient(from 0deg, white, white 50%);
197
+ z-index: -2;
198
+ animation: spin 3s linear;
199
+ animation-direction: forwards;
200
+ animation-iteration-count: infinite;
201
+ }
202
+ &::after {
203
+ content: "";
204
+ opacity: var(--border-opacity);
205
+ display: block;
206
+ position: absolute;
207
+ top: -3px;
208
+ left: -3px;
209
+ width: calc(4px + 100%);
210
+ height: calc(4px + 100%);
211
+ background-color: transparent;
212
+ clip-path: rect( -2px 100% 100% -2px);
213
+ z-index: -1;
214
+ }
215
+
216
+
217
+
218
+ //animation: spin 3s ease-in-out infinite forwards;
219
+
220
+ &:has(:focus-visible) {
221
+
222
+ }
223
+ }
224
+ @keyframes spin {
225
+ 0% {
226
+ transform: rotate(-45deg);
227
+ }
228
+ 50% {
229
+ transform: rotate(45deg);
230
+ }
231
+ 100% {
232
+ transform: rotate(-45deg);
233
+ }
234
+ }
235
+
236
+ .sg-input-group-grid {
237
+ > .sg-form-check {
238
+ position: relative;
239
+ padding-bottom: 0;
240
+ > .sg-form-check-label {
241
+ display: block;
242
+ }
243
+ .sg-form-check-input {
244
+ margin: 0;
245
+ height: 100%;
246
+ width:auto;
247
+ aspect-ratio: 1;
248
+ }
249
+ span {
250
+ display: flex;
251
+ flex: 0 1 auto;
252
+ overflow: auto;
253
+ width: fit-content;
254
+ max-width: 8rem;
255
+ align-items: center;
256
+ text-align: center;
257
+ font-size: 0.85rem;
258
+
259
+ padding: $input-padding-x $input-padding-y;
260
+
261
+ white-space: nowrap;
262
+
263
+ background-color: $input-border-color;
264
+ color: $input-text-color;
265
+ border: $input-border-width outset $input-border-color;
266
+ border-right-width: 0;
267
+ border-radius: $input-border-radius;
268
+ }
269
+ }
270
+ }
@@ -0,0 +1,135 @@
1
+ @use "sass:color";
2
+
3
+ .sg-form-control {
4
+ --input-text-color: #{$input-text-color};
5
+ --input-background-color: #{$input-background-color};
6
+ --input-border-color: #{$input-border-color};
7
+ --input-border-color-focus: #{$input-border-color-focus};
8
+ --input-border-color-invalid: #{$input-border-color-invalid};
9
+ --input-disabled-color: #{$input-disabled-color};
10
+ --input-placeholder-color: #{$input-placeholder-color};
11
+
12
+ position: relative;
13
+ display: block;
14
+ width: 100%;
15
+ min-width: 5rem;
16
+ padding: $input-padding-x $input-padding-y;
17
+ color: var(--input-text-color);
18
+ background-color: var(--input-background-color);
19
+ border: $input-border-width $input-border-style var(--input-border-color);
20
+ //appearance: none;
21
+ border-radius: $input-border-radius;
22
+
23
+ caret-color: white;
24
+
25
+ transition: border-color .15s ease-in-out;
26
+
27
+ &[type="file"] {
28
+ overflow: hidden; // prevent pseudo element button overlap
29
+
30
+ &:not(:disabled):not([readonly]) {
31
+ cursor: pointer;
32
+ }
33
+ }
34
+
35
+ &:focus-visible {
36
+ //@include sg-focus-visible()
37
+ border-color: var(--input-border-color-focus);
38
+ outline: 0;
39
+ box-shadow: 0;
40
+ }
41
+
42
+ &::-webkit-date-and-time-value {
43
+ height: $input-line-height;
44
+ }
45
+
46
+ &::placeholder {
47
+ color: var(--input-placeholder-color);
48
+ opacity: 1;
49
+ }
50
+
51
+ &:disabled, .disabled {
52
+ --input-background-color: rgba(255, 255, 255, 0.04);
53
+ --input-placeholder-color: color-mix(in oklab, #{$input-placeholder-color}, white 40%);
54
+ --input-text-color: color-mix(in oklab, #{$input-placeholder-color}, white 40%);
55
+ cursor: not-allowed;
56
+ opacity: 1;
57
+ }
58
+
59
+ // File input buttons theming
60
+ &::file-selector-button {
61
+ padding: $input-padding-x $input-padding-y;
62
+ margin: (-$input-padding-x) (-$input-padding-y);
63
+ margin-inline-end:$input-padding-x;
64
+ pointer-events: none;
65
+ border-color: inherit;
66
+ border-style: solid;
67
+ border-width: 0;
68
+ border-inline-end-width: $input-border-width;
69
+ border-radius: 0; // stylelint-disable-line property-disallowed-list
70
+ transition: color .15s ease-in-out, background-color .15s ease-in-out, border-color .15s ease-in-out;
71
+ }
72
+
73
+ &:hover:not(:disabled):not([readonly])::file-selector-button {
74
+ background-color: color-mix(in oklab, var(--input-text-color) , black 5%);
75
+ }
76
+
77
+ &:user-invalid, &.invalid, &[aria-invalid="true"] {
78
+ //outline: 2px solid $input-border-color-invalid;
79
+ box-shadow: 0 0 4px 2px var(--input-border-color-invalid);
80
+ z-index: 2;
81
+ }
82
+ }
83
+
84
+ .sg-form-control-plaintext {
85
+ display: block;
86
+ width: 100%;
87
+ padding: $input-padding-x 0;
88
+ margin-bottom: 0; // match inputs if this class comes on inputs with default margins
89
+ color: var(--input-text-color);
90
+ background-color: transparent;
91
+ border: solid transparent;
92
+ border-width: $input-border-width 0;
93
+ }
94
+
95
+ textarea {
96
+ &.sg-form-control {
97
+ min-height: $input-height;
98
+ margin: 0;
99
+ }
100
+ }
101
+ // stylelint-enable selector-no-qualifying-type
102
+
103
+ .sg-form-control-error, .sg-form-control-hint {
104
+ max-width: 100%;
105
+ word-break: break-word;
106
+ margin: 0;
107
+ color: var(--text-color, white);
108
+ display: flex;
109
+ align-items:center;
110
+ font-size: 0.8rem;
111
+ .sg-form-control-error-icon {
112
+ color: currentColor;
113
+ margin-right: 0.5ch;
114
+ }
115
+ }
116
+ .sg-form-control-error {
117
+ --text-color: #{$input-border-color-invalid};
118
+ }
119
+ .sg-form-control-hint {
120
+ --text-color: #{$input-text-color};
121
+ }
122
+
123
+ .sg-form-control-description {
124
+ margin-top: var(--error-message-margin, 0.25rem);
125
+ &.tooltip {
126
+ --error-message-margin: 0;
127
+ .sg-form-control-error-icon {
128
+ align-self: last baseline;
129
+ }
130
+ }
131
+
132
+ &:empty {
133
+ display: none;
134
+ }
135
+ }
@@ -0,0 +1,26 @@
1
+ .sg-form-group {
2
+ --error-message-margin: 0rem;
3
+ padding-bottom: 0.5rem;
4
+ display: flex;
5
+ flex-direction: column;
6
+ gap: 0.35rem;
7
+ label {
8
+ margin: 0;
9
+ }
10
+ &.sg-form-group-vertical {
11
+ flex-direction: row;
12
+ align-items: center;
13
+ label {
14
+ min-width: max-content;
15
+ }
16
+ }
17
+
18
+ .sg-form-check {
19
+ padding-bottom: 0;
20
+ }
21
+
22
+ .sg-form-control-error-icon {
23
+ color: currentColor;
24
+ margin-right: 0.5ch;
25
+ }
26
+ }
@@ -0,0 +1,3 @@
1
+ .sg-form-label {
2
+ margin-bottom: 0.5em;
3
+ }