stargazer-ui 1.5.21 → 1.5.23

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 (377) 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 +16 -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 +163 -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 +441 -0
  38. package/src/Dropdown/Dropdown.types.ts +60 -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 +399 -0
  47. package/src/Form/Form.types.ts +169 -0
  48. package/src/Form/FormSelect.tsx +620 -0
  49. package/src/Form/index.ts +4 -0
  50. package/src/InputGroup/InputGroup.tsx +46 -0
  51. package/src/InputGroup/InputGroup.types.ts +22 -0
  52. package/src/InputGroup/index.ts +4 -0
  53. package/src/List/List.tsx +112 -0
  54. package/src/List/List.types.ts +34 -0
  55. package/src/List/index.ts +4 -0
  56. package/src/Modal/Modal.tsx +229 -0
  57. package/src/Modal/Modal.types.ts +49 -0
  58. package/src/Modal/index.ts +4 -0
  59. package/src/Nav/Nav.tsx +43 -0
  60. package/src/Nav/Nav.types.ts +21 -0
  61. package/src/Nav/index.ts +4 -0
  62. package/src/NavBar/Navbar.tsx +57 -0
  63. package/src/NavBar/Navbar.types.ts +24 -0
  64. package/src/NavBar/index.ts +4 -0
  65. package/src/NavDropdown/NavDropdown.tsx +93 -0
  66. package/src/NavDropdown/NavDropdown.types.ts +7 -0
  67. package/src/NavDropdown/index.ts +3 -0
  68. package/src/Overlay/Overlay.tsx +305 -0
  69. package/src/Overlay/Overlay.types.ts +24 -0
  70. package/{Overlay/index.d.ts → src/Overlay/index.ts} +3 -3
  71. package/src/Popout/Popout.tsx +155 -0
  72. package/src/Popout/Popout.types.ts +42 -0
  73. package/src/Popout/index.ts +3 -0
  74. package/src/Spinner/Spinner.tsx +15 -0
  75. package/src/Spinner/Spinner.types.ts +7 -0
  76. package/src/Spinner/index.ts +3 -0
  77. package/src/Table/Table.tsx +16 -0
  78. package/src/Table/Table.types.ts +9 -0
  79. package/src/Table/index.ts +3 -0
  80. package/src/Tabs/Tabs.tsx +233 -0
  81. package/src/Tabs/Tabs.types.ts +52 -0
  82. package/src/Tabs/index.ts +3 -0
  83. package/src/ToggleButton/ToggleButton.tsx +21 -0
  84. package/src/ToggleButton/ToggleButton.types.ts +8 -0
  85. package/src/ToggleButton/index.ts +3 -0
  86. package/src/assets/tooltip-pointer.svg +3 -0
  87. package/src/assets/warning.svg +39 -0
  88. package/{hooks/index.d.ts → src/hooks/index.ts} +7 -6
  89. package/src/hooks/useClassname.ts +5 -0
  90. package/src/hooks/useDraggable.ts +186 -0
  91. package/src/hooks/useKeepElementFocused.ts +37 -0
  92. package/src/hooks/useQueryParams.ts +12 -0
  93. package/src/hooks/useScreenSize.ts +24 -0
  94. package/src/index.ts +21 -0
  95. package/src/styles/_Card.scss +166 -0
  96. package/src/styles/_CloseButton.scss +51 -0
  97. package/src/styles/_CustomButton.scss +134 -0
  98. package/src/styles/_Dropdown.scss +127 -0
  99. package/src/styles/_FloatingLabel.scss +56 -0
  100. package/src/styles/_Forms.scss +7 -0
  101. package/src/styles/_Grid.scss +178 -0
  102. package/src/styles/_InputGroup.scss +71 -0
  103. package/src/styles/_List.scss +62 -0
  104. package/src/styles/_Modal.scss +234 -0
  105. package/src/styles/_ModalOld.scss +242 -0
  106. package/src/styles/_Nav.scss +36 -0
  107. package/src/styles/_NavBar.scss +116 -0
  108. package/src/styles/_NavDropdown.scss +33 -0
  109. package/src/styles/_OffCanvas.scss +260 -0
  110. package/src/styles/_OverLay.scss +79 -0
  111. package/src/styles/_Popout.scss +75 -0
  112. package/src/styles/_Resizable.scss +64 -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 +41 -0
  118. package/src/styles/_functions.scss +134 -0
  119. package/src/styles/_mixins.scss +26 -0
  120. package/src/styles/_reset.scss +239 -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 +222 -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/utils/createFastContext.tsx +119 -0
  138. package/src/utils/index.ts +4 -0
  139. package/src/vite-env.d.ts +1 -0
  140. package/tsconfig-build.json +4 -0
  141. package/tsconfig.json +79 -0
  142. package/tsconfig.node.json +10 -0
  143. package/types/BaseTypes.d.ts +19 -0
  144. package/{Button → types/components/Button}/Button.types.d.ts +2 -1
  145. package/types/components/Button/index.d.ts +1 -0
  146. package/{Card → types/components/Card}/Card.d.ts +12 -12
  147. package/{Card → types/components/Card}/Card.types.d.ts +1 -3
  148. package/types/components/Card/index.d.ts +1 -0
  149. package/{CloseButton → types/components/CloseButton}/CloseButton.types.d.ts +1 -1
  150. package/types/components/CloseButton/index.d.ts +1 -0
  151. package/types/components/Dropdown/Dropdown.d.ts +71 -0
  152. package/{Dropdown → types/components/Dropdown}/Dropdown.types.d.ts +12 -13
  153. package/types/components/Dropdown/index.d.ts +1 -0
  154. package/{FloatingLabel → types/components/FloatingLabel}/FloatingLabel.types.d.ts +1 -1
  155. package/types/components/FloatingLabel/index.d.ts +1 -0
  156. package/types/components/Form/Form.d.ts +17 -0
  157. package/types/components/Form/Form.types.d.ts +50 -0
  158. package/types/components/Form/index.d.ts +1 -0
  159. package/types/components/InputGroup/InputGroup.d.ts +6 -0
  160. package/types/components/InputGroup/InputGroup.types.d.ts +10 -0
  161. package/types/components/InputGroup/index.d.ts +1 -0
  162. package/{Modal → types/components/Modal}/Modal.d.ts +19 -19
  163. package/{Modal → types/components/Modal}/Modal.types.d.ts +2 -3
  164. package/types/components/Modal/index.d.ts +1 -0
  165. package/{Nav → types/components/Nav}/Nav.d.ts +12 -12
  166. package/{Nav → types/components/Nav}/Nav.types.d.ts +1 -1
  167. package/types/components/Nav/index.d.ts +1 -0
  168. package/{NavBar → types/components/NavBar}/Navbar.d.ts +8 -7
  169. package/{NavBar → types/components/NavBar}/Navbar.types.d.ts +1 -2
  170. package/types/components/NavBar/index.d.ts +1 -0
  171. package/types/components/NavDropdown/NavDropdown.d.ts +35 -0
  172. package/{NavDropdown → types/components/NavDropdown}/NavDropdown.types.d.ts +1 -2
  173. package/types/components/NavDropdown/index.d.ts +1 -0
  174. package/{Popout → types/components/Popout}/Popout.d.ts +6 -6
  175. package/{Popout → types/components/Popout}/Popout.types.d.ts +1 -1
  176. package/types/components/Popout/index.d.ts +1 -0
  177. package/types/components/Spinner/index.d.ts +1 -0
  178. package/{Table → types/components/Table}/Table.types.d.ts +1 -1
  179. package/types/components/Table/index.d.ts +1 -0
  180. package/{Tabs → types/components/Tabs}/Tabs.types.d.ts +2 -12
  181. package/types/components/Tabs/index.d.ts +1 -0
  182. package/types/components/ToggleButton/ToggleButton.d.ts +9 -0
  183. package/types/components/ToggleButton/ToggleButton.types.d.ts +0 -0
  184. package/types/components/ToggleButton/index.d.ts +1 -0
  185. package/types/components/index.d.ts +16 -0
  186. package/types/index.d.ts +1 -0
  187. package/vite.config.js +57 -0
  188. package/vite.config.js.timestamp-1708777378490-e94428ceb2bf9.mjs +42 -0
  189. package/Bar/Bar.type.d.ts +0 -6
  190. package/Bar/index.js +0 -2
  191. package/Bar/index.js.map +0 -1
  192. package/Bar/package.json +0 -1
  193. package/Button/Button.js +0 -15
  194. package/Button/Button.js.map +0 -1
  195. package/Button/index.d.ts +0 -3
  196. package/Button/index.js +0 -7
  197. package/Button/index.js.map +0 -1
  198. package/Button/package.json +0 -1
  199. package/ButtonGroup/ButtonGroup.d.ts +0 -4
  200. package/ButtonGroup/ButtonGroup.js +0 -11
  201. package/ButtonGroup/ButtonGroup.js.map +0 -1
  202. package/ButtonGroup/ButtonGroup.types.d.ts +0 -7
  203. package/ButtonGroup/index.d.ts +0 -3
  204. package/ButtonGroup/index.js +0 -7
  205. package/ButtonGroup/index.js.map +0 -1
  206. package/ButtonGroup/package.json +0 -1
  207. package/Card/Card.js +0 -42
  208. package/Card/Card.js.map +0 -1
  209. package/Card/index.d.ts +0 -3
  210. package/Card/index.js +0 -7
  211. package/Card/index.js.map +0 -1
  212. package/Card/package.json +0 -1
  213. package/CloseButton/CloseButton.js +0 -11
  214. package/CloseButton/CloseButton.js.map +0 -1
  215. package/CloseButton/index.d.ts +0 -3
  216. package/CloseButton/index.js +0 -7
  217. package/CloseButton/index.js.map +0 -1
  218. package/CloseButton/package.json +0 -1
  219. package/Dropdown/Dropdown.d.ts +0 -39
  220. package/Dropdown/Dropdown.js +0 -380
  221. package/Dropdown/Dropdown.js.map +0 -1
  222. package/Dropdown/index.d.ts +0 -4
  223. package/Dropdown/index.js +0 -8
  224. package/Dropdown/index.js.map +0 -1
  225. package/Dropdown/package.json +0 -1
  226. package/FileUploadButton/FileUploadButton.d.ts +0 -4
  227. package/FileUploadButton/FileUploadButton.js +0 -20
  228. package/FileUploadButton/FileUploadButton.js.map +0 -1
  229. package/FileUploadButton/FileUploadButton.types.d.ts +0 -7
  230. package/FileUploadButton/index.d.ts +0 -3
  231. package/FileUploadButton/index.js +0 -7
  232. package/FileUploadButton/index.js.map +0 -1
  233. package/FileUploadButton/package.json +0 -1
  234. package/FloatingLabel/FloatingLabel.js +0 -15
  235. package/FloatingLabel/FloatingLabel.js.map +0 -1
  236. package/FloatingLabel/index.d.ts +0 -3
  237. package/FloatingLabel/index.js +0 -7
  238. package/FloatingLabel/index.js.map +0 -1
  239. package/FloatingLabel/package.json +0 -1
  240. package/Form/Form.d.ts +0 -37
  241. package/Form/Form.js +0 -227
  242. package/Form/Form.js.map +0 -1
  243. package/Form/Form.types.d.ts +0 -159
  244. package/Form/FormSelect.d.ts +0 -12
  245. package/Form/FormSelect.js +0 -492
  246. package/Form/FormSelect.js.map +0 -1
  247. package/Form/index.d.ts +0 -4
  248. package/Form/index.js +0 -8
  249. package/Form/index.js.map +0 -1
  250. package/Form/package.json +0 -1
  251. package/InputGroup/InputGroup.d.ts +0 -7
  252. package/InputGroup/InputGroup.js +0 -31
  253. package/InputGroup/InputGroup.js.map +0 -1
  254. package/InputGroup/InputGroup.types.d.ts +0 -17
  255. package/InputGroup/index.d.ts +0 -4
  256. package/InputGroup/index.js +0 -7
  257. package/InputGroup/index.js.map +0 -1
  258. package/InputGroup/package.json +0 -1
  259. package/List/List.d.ts +0 -14
  260. package/List/List.js +0 -77
  261. package/List/List.js.map +0 -1
  262. package/List/List.types.d.ts +0 -28
  263. package/List/index.d.ts +0 -3
  264. package/List/index.js +0 -7
  265. package/List/index.js.map +0 -1
  266. package/List/package.json +0 -1
  267. package/Modal/Modal.js +0 -157
  268. package/Modal/Modal.js.map +0 -1
  269. package/Modal/index.d.ts +0 -3
  270. package/Modal/index.js +0 -7
  271. package/Modal/index.js.map +0 -1
  272. package/Modal/package.json +0 -1
  273. package/Nav/Nav.js +0 -29
  274. package/Nav/Nav.js.map +0 -1
  275. package/Nav/index.d.ts +0 -4
  276. package/Nav/index.js +0 -7
  277. package/Nav/index.js.map +0 -1
  278. package/Nav/package.json +0 -1
  279. package/NavBar/Navbar.js +0 -36
  280. package/NavBar/Navbar.js.map +0 -1
  281. package/NavBar/index.d.ts +0 -4
  282. package/NavBar/index.js +0 -8
  283. package/NavBar/index.js.map +0 -1
  284. package/NavBar/package.json +0 -1
  285. package/NavDropdown/NavDropdown.d.ts +0 -19
  286. package/NavDropdown/NavDropdown.js +0 -75
  287. package/NavDropdown/NavDropdown.js.map +0 -1
  288. package/NavDropdown/index.d.ts +0 -3
  289. package/NavDropdown/index.js +0 -7
  290. package/NavDropdown/index.js.map +0 -1
  291. package/NavDropdown/package.json +0 -1
  292. package/Overlay/Overlay.d.ts +0 -4
  293. package/Overlay/Overlay.js +0 -241
  294. package/Overlay/Overlay.js.map +0 -1
  295. package/Overlay/Overlay.types.d.ts +0 -22
  296. package/Overlay/index.js +0 -7
  297. package/Overlay/index.js.map +0 -1
  298. package/Overlay/package.json +0 -1
  299. package/Popout/Popout.js +0 -111
  300. package/Popout/Popout.js.map +0 -1
  301. package/Popout/index.d.ts +0 -3
  302. package/Popout/index.js +0 -7
  303. package/Popout/index.js.map +0 -1
  304. package/Popout/package.json +0 -1
  305. package/Spinner/Spinner.js +0 -11
  306. package/Spinner/Spinner.js.map +0 -1
  307. package/Spinner/index.d.ts +0 -3
  308. package/Spinner/index.js +0 -7
  309. package/Spinner/index.js.map +0 -1
  310. package/Spinner/package.json +0 -1
  311. package/Table/Table.js +0 -12
  312. package/Table/Table.js.map +0 -1
  313. package/Table/index.d.ts +0 -3
  314. package/Table/index.js +0 -7
  315. package/Table/index.js.map +0 -1
  316. package/Table/package.json +0 -1
  317. package/Tabs/Tabs.js +0 -162
  318. package/Tabs/Tabs.js.map +0 -1
  319. package/Tabs/index.d.ts +0 -3
  320. package/Tabs/index.js +0 -7
  321. package/Tabs/index.js.map +0 -1
  322. package/Tabs/package.json +0 -1
  323. package/ToggleButton/ToggleButton.d.ts +0 -4
  324. package/ToggleButton/ToggleButton.js +0 -18
  325. package/ToggleButton/ToggleButton.js.map +0 -1
  326. package/ToggleButton/ToggleButton.types.d.ts +0 -7
  327. package/ToggleButton/index.d.ts +0 -3
  328. package/ToggleButton/index.js +0 -7
  329. package/ToggleButton/index.js.map +0 -1
  330. package/ToggleButton/package.json +0 -1
  331. package/hooks/index.js +0 -7
  332. package/hooks/index.js.map +0 -1
  333. package/hooks/package.json +0 -1
  334. package/hooks/useClassname.d.ts +0 -2
  335. package/hooks/useClassname.js +0 -7
  336. package/hooks/useClassname.js.map +0 -1
  337. package/hooks/useDraggable.d.ts +0 -23
  338. package/hooks/useDraggable.js +0 -147
  339. package/hooks/useDraggable.js.map +0 -1
  340. package/hooks/useKeepElementFocused.d.ts +0 -2
  341. package/hooks/useKeepElementFocused.js +0 -37
  342. package/hooks/useKeepElementFocused.js.map +0 -1
  343. package/hooks/useQueryParams.d.ts +0 -2
  344. package/hooks/useQueryParams.js +0 -13
  345. package/hooks/useQueryParams.js.map +0 -1
  346. package/hooks/useScreenSize.d.ts +0 -5
  347. package/hooks/useScreenSize.js +0 -21
  348. package/hooks/useScreenSize.js.map +0 -1
  349. package/index.d.ts +0 -19
  350. package/index.js +0 -20
  351. package/index.js.map +0 -1
  352. package/styles/stargazerui.css +0 -6658
  353. package/styles/stargazerui.css.map +0 -1
  354. package/utils/ContrastingColor.d.ts +0 -1
  355. package/utils/CreateSyntheticEvent.d.ts +0 -2
  356. package/utils/CreateSyntheticEvent.js +0 -33
  357. package/utils/CreateSyntheticEvent.js.map +0 -1
  358. package/utils/IsInputKey.d.ts +0 -7
  359. package/utils/IsInputKey.js +0 -20
  360. package/utils/IsInputKey.js.map +0 -1
  361. package/utils/MergeClassnames.d.ts +0 -2
  362. package/utils/MergeClassnames.js +0 -7
  363. package/utils/MergeClassnames.js.map +0 -1
  364. package/utils/MergeRefs.d.ts +0 -1
  365. package/utils/MergeRefs.js +0 -16
  366. package/utils/MergeRefs.js.map +0 -1
  367. package/utils/createFastContext.d.ts +0 -16
  368. package/utils/createFastContext.js +0 -101
  369. package/utils/createFastContext.js.map +0 -1
  370. package/utils/index.d.ts +0 -4
  371. /package/{Button → types/components/Button}/Button.d.ts +0 -0
  372. /package/{CloseButton → types/components/CloseButton}/CloseButton.d.ts +0 -0
  373. /package/{FloatingLabel → types/components/FloatingLabel}/FloatingLabel.d.ts +0 -0
  374. /package/{Spinner → types/components/Spinner}/Spinner.d.ts +0 -0
  375. /package/{Spinner → types/components/Spinner}/Spinner.types.d.ts +0 -0
  376. /package/{Table → types/components/Table}/Table.d.ts +0 -0
  377. /package/{Tabs → types/components/Tabs}/Tabs.d.ts +0 -0
@@ -0,0 +1 @@
1
+ {"version":3,"sourceRoot":"","sources":["../../src/styles/_utilities.scss","../../src/styles/_variables.scss","../../src/styles/_components.scss","../../src/styles/_Card.scss","../../src/styles/_CloseButton.scss","../../src/styles/_CustomButton.scss","../../src/styles/_Dropdown.scss","../../src/styles/_FloatingLabel.scss","../../src/styles/forms/_FormCheck.scss","../../src/styles/_mixins.scss","../../src/styles/forms/_FormControl.scss","../../src/styles/forms/_FormLabel.scss","../../src/styles/forms/_FormSelect.scss","../../src/styles/forms/_FormText.scss","../../src/styles/_InputGroup.scss","../../src/styles/_Modal.scss","../../src/styles/_ModalOld.scss","../../src/styles/_Nav.scss","../../src/styles/_NavBar.scss","../../src/styles/_NavDropdown.scss","../../src/styles/_OverLay.scss","../../src/styles/_Popout.scss","../../src/styles/_Tabs.scss"],"names":[],"mappings":"AAAA;EACI;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;IACA;;EAEF;IACE;IACA;;EAEF;IACE;IACA;;EAEF;IACE;IACA;;EAEF;IACE;IACA;;EAEF;IACE;IACA;;EAEF;IACE;IACA;;EAEF;IACE;IACA;;EAEF;IACE;IACA;;EAEF;IACE;IACA;;EAEF;IACE;IACA;;EAEF;IACE;IACA;;EAEF;IACE;IACA;;EAEF;IACE;IACA;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;IACA;;EAEF;IACE;IACA;;EAEF;IACE;IACA;;EAEF;IACE;IACA;;EAEF;IACE;IACA;;EAEF;IACE;IACA;;EAEF;IACE;IACA;;EAEF;IACE;IACA;;EAEF;IACE;IACA;;EAEF;IACE;IACA;;EAEF;IACE;IACA;;EAEF;IACE;IACA;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;AAGN;EACI;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;IACA;;EAEF;IACE;IACA;;EAEF;IACE;IACA;;EAEF;IACE;IACA;;EAEF;IACE;IACA;;EAEF;IACE;IACA;;EAEF;IACE;IACA;;EAEF;IACE;IACA;;EAEF;IACE;IACA;;EAEF;IACE;IACA;;EAEF;IACE;IACA;;EAEF;IACE;IACA;;EAEF;IACE;IACA;;EAEF;IACE;IACA;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;IACA;;EAEF;IACE;IACA;;EAEF;IACE;IACA;;EAEF;IACE;IACA;;EAEF;IACE;IACA;;EAEF;IACE;IACA;;EAEF;IACE;IACA;;EAEF;IACE;IACA;;EAEF;IACE;IACA;;EAEF;IACE;IACA;;EAEF;IACE;IACA;;EAEF;IACE;IACA;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;AAGN;EACI;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;IACA;;EAEF;IACE;IACA;;EAEF;IACE;IACA;;EAEF;IACE;IACA;;EAEF;IACE;IACA;;EAEF;IACE;IACA;;EAEF;IACE;IACA;;EAEF;IACE;IACA;;EAEF;IACE;IACA;;EAEF;IACE;IACA;;EAEF;IACE;IACA;;EAEF;IACE;IACA;;EAEF;IACE;IACA;;EAEF;IACE;IACA;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;IACA;;EAEF;IACE;IACA;;EAEF;IACE;IACA;;EAEF;IACE;IACA;;EAEF;IACE;IACA;;EAEF;IACE;IACA;;EAEF;IACE;IACA;;EAEF;IACE;IACA;;EAEF;IACE;IACA;;EAEF;IACE;IACA;;EAEF;IACE;IACA;;EAEF;IACE;IACA;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;AAGN;EACI;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;IACA;;EAEF;IACE;IACA;;EAEF;IACE;IACA;;EAEF;IACE;IACA;;EAEF;IACE;IACA;;EAEF;IACE;IACA;;EAEF;IACE;IACA;;EAEF;IACE;IACA;;EAEF;IACE;IACA;;EAEF;IACE;IACA;;EAEF;IACE;IACA;;EAEF;IACE;IACA;;EAEF;IACE;IACA;;EAEF;IACE;IACA;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;IACA;;EAEF;IACE;IACA;;EAEF;IACE;IACA;;EAEF;IACE;IACA;;EAEF;IACE;IACA;;EAEF;IACE;IACA;;EAEF;IACE;IACA;;EAEF;IACE;IACA;;EAEF;IACE;IACA;;EAEF;IACE;IACA;;EAEF;IACE;IACA;;EAEF;IACE;IACA;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;AAGN;EACI;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;IACA;;EAEF;IACE;IACA;;EAEF;IACE;IACA;;EAEF;IACE;IACA;;EAEF;IACE;IACA;;EAEF;IACE;IACA;;EAEF;IACE;IACA;;EAEF;IACE;IACA;;EAEF;IACE;IACA;;EAEF;IACE;IACA;;EAEF;IACE;IACA;;EAEF;IACE;IACA;;EAEF;IACE;IACA;;EAEF;IACE;IACA;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;IACA;;EAEF;IACE;IACA;;EAEF;IACE;IACA;;EAEF;IACE;IACA;;EAEF;IACE;IACA;;EAEF;IACE;IACA;;EAEF;IACE;IACA;;EAEF;IACE;IACA;;EAEF;IACE;IACA;;EAEF;IACE;IACA;;EAEF;IACE;IACA;;EAEF;IACE;IACA;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;ACz6EN;AAIA;AAYA;AAKA;AAsBA;AASA;EACC;EACA;;;AAED;EACC;EACA;EACA;EACA;EACG;EACA;;;AAGJ;AAIA;ACpEA;EACC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;ACdD;EACI;EACA;EACA;;AAEA;EACI,kBF2CQ;EE1CR,OF2CU;EE1CV;;AAGJ;EACI;EACA;;AAEJ;EACI;EACA;EAEA,kBFkCe;EEjCf;;AAEJ;EACI;;AAEJ;EACI;EAEA,kBFyBe;EExBf;;AAEJ;EACI;;AAGJ;EACI;;;AChCR;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAGA;EACE;EACA;EACA;;AAEF;EACI;EACA;EACA;EACA;;AAGJ;EAEE;EACA;EACA;;;AAIJ;EACE;;;AAGJ;EACC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;ACrCD;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EAEA;EACA;EACA;EACA;EACA;EACA;EAEA;EACA;EACA;;AACA;EACI;EACA;;AAEJ;EACI;EACA;;AAEJ;EACI;EACA;EACA;EACA;;;AAQJ;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAEJ;EACI;EACA;;;AAdJ;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAEJ;EACI;EACA;;;AAdJ;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAEJ;EACI;EACA;;;AAdJ;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAEJ;EACI;EACA;;;AAdJ;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAEJ;EACI;EACA;;;AAdJ;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAEJ;EACI;EACA;;;AAdJ;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAEJ;EACI;EACA;;;AAdJ;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAEJ;EACI;EACA;;;AAIR;EACI;EACA;EACA;EAEA;;AAEA;EACI;EACA;;;AAKJ;EACI;;AAIJ;EACI;EACA;;AAOJ;EACI;EACA;;;AAIR;EACI;EACA;EACA;;AAGA;AAAA;EAEE;;AAIF;AAAA;EAEE;;AAIF;AAAA;EAEI;EACA;;AAGJ;AAAA;EAEI;EACA;;;ACjIR;AAAA;AAAA;AAAA;AAAA;AAAA;EAME;;;AAGF;EACI;EACA,SLNgC;EKOhC;EACA;EACA;EACA;EACA;EACA;EACA,kBApBkB;EAqBlB;EACA;EACA;EACA;;AAEA;EACE;EACA;EACA;;;AAGN;EACI;;;AAGJ;EACI;;AACA;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAIR;EACE;EACA;EACA;EACA;EACA;EACA;;;AAMF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACI;;AAGJ;EAEI;;AAGJ;EAEI;EACA;;AAEJ;EACE;EACA;EACA;;;AC5FJ;EACI;EACA;;AACA;EACI;;AAGJ;EACI;;AACA;EACI;;AAEJ;EACI;;AAGJ;EACI;;AAIR;EACI;EAGA;EACA;EACA;EAEA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EAGA;EACA;;AAEJ;EACI;EACA;;AAOA;AAAA;AAAA;AAAA;EACI;EACA;EACA;;;AChDZ;EACI;EACA,YATU;EAUV,cAVU;EAWV;;AAEA;EACI;EACA;;;AAGR;EACI;EACA,YApBU;EAqBV,eArBU;EAsBV;EACA;;AAEA;EACE;EACA;EACA;;;AAIN;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACI;;AAGJ;EAEE;;AAGF;EACE;;AAGF;ECrCE;EAEA;EACA;EDoCE;;AAGJ;EACE,kBA/Da;EAgEb,cAhEa;;AAkEb;EACE;;AAGF;EACE;;AAEF;EACE;;AAIJ;EACI,kBA/EW;EAgFX,cAhFW;EAkFX;;AAIJ;EACE;EACA;EACA;;AAOA;EACE;EACA;;;AASR;EACI;;AAEA;EACI,OA5GY;EA6GZ;EACA;EACA;EACA,eAhHY;EAiHZ;;AAEA;EClGF;EAEA;EACA;;ADmGE;EACI;EACA;;;AE3HZ;EACE;EACA;EACA;EACA;EACA,OTmBiB;ESlBjB,kBT6BuB;ES5BvB;EACA;EACA;EACA,eTsBoB;ESpBpB;;AAEA;EACE;;AAEA;EACE;;AAIJ;EDHI;EAEA;EACA;;ACIJ;EACE,QT3Be;;AS8BjB;EACE,OTMsB;ESLtB;;AAGF;EAEE,kBTDmB;ESGnB;;AAIF;EACE;EACA;EACA,mBTlBc;ESmBd;EACA;EACA;EACA;EACA,yBTpBiB;ESqBjB;EACA;;AAGF;EACE;;;AAIJ;EACE;EACA;EACA;EACA;EACA,OT1CiB;ES2CjB;EACA;EACA;;AAEA;EACE;;;AAKF;EACE,YTpCW;;;ASyCf;EACE;EACA,QT3Ca;ES4Cb,ST1DgB;;AS4DhB;EACE;;AAGF;EACE;EACA,eT9DkB;;ASiEpB;EACE,eTlEkB;;;AUlCtB;EACI;;;ACDJ;EACI;EACA;EACA;EACA,eX0Bc;EWzBd;EACA,OXoBe;EWlBf,kBX6BqB;EW5BrB;EACA;EACA;EACA;EAEA;EACA,eXmBkB;EWjBlB;;AAEA;EHEE;EAEA;EACA;;AGFF;EACI,eXOU;EWNV;;AAEJ;EAEI,kBXUe;EWRf;;;AC9BR;EACI;EACA;EACA;EACA;;;ACJJ;EACI;EACA;EACA;EACA;;AACA;AAAA;AAAA;AAAA;EAII;EACA;EACA;;AAGJ;EACI;EACA;;AAGJ;EACI;;AAEI;EACI;;AAIZ;EACI;EACA;;AAEI;EACI;EACA;;AAIZ;EACI;EACA;;AAEI;EACI;EACA;;;AAKhB;EACI;EACA;EACA;EACA;EACA;EAEA;EAEA;EAEA,kBblBgC;EamBhC,OblCe;EamCf;EACA,eb5BkB;;;AczBtB;EACI;EACA;;;AAGJ;EACE;EAEA;EACA;EAGA;EACA;EAGA,OApBoB;EAqBpB,kBAtB0B;EAuB1B;EACA;EACA,eAvBgB;EAyBhB;;AAGA;EACE,YA5BkB;EA6BlB;;;AAGJ;EACE;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;ENrDI,wBMKY;ENJZ,yBMIY;;AAmDhB;EACE;EACA;;;AAGJ;EACE;;;AAEF;EACE;EACA;EACA;EACA;;;AAEF;EACE;EACA;EACA;EACA;EACA;EACA;EACA,kBA1E0B;EA2E1B;ENpEI,4BMLY;ENMZ,2BMNY;EA4EhB;;;AAWE;EACE;IACE;;;AAKJ;EACE;IACE;IACA;IACA;;EAEF;IACE;;;AAKJ;EACE;IACE;;;AAKJ;EACE;IACE;;;AChHR;EACE;;;AAGF;EACE;EACA;EACA;EACA,SfFkC;EeGlC;EACA;EACA;;AAGA;EACE;EACA;EACA;EACA;;AAEF;EACE;EACA;EACA;EACA;;;AAGJ;EACE;IACE;;EAEF;IACE;;;AAGJ;EACE;IACE;;EAEF;IACE;;;AAIJ;EACE;EACA;EACA;EACA,SfzCkC;Ee0ClC;EACA;EACA;EACA;EACA;EAGA;;;AAMF;EACE;EACA;EACA;EACA;EAEA;;AAGA;EACE;EACA;EACA;EACA;;AAIF;EACE;EACA;EACA;EACA;;AAIF;EACE;IACE;IACA;;EAEF;IACE;IACA;;;AAIJ;EACE;IACE;IACA;;EAEF;IACE;IACA;;;AAKJ;EACE,YAjHkB;EAkHlB;;;AAIJ;EACE;;AAEA;EACE;EACA;;AAGF;EACE;;;AAGJ;EACE;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;EAEA,OAnJoB;EAoJpB;EACA,kBAtJ0B;EAuJ1B;EACA;EACA,eAvJgB;EAyJhB;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EPvKI,wBOKY;EPJZ,yBOIY;;AAqKhB;EACE;EACA;;;AAGJ;EACE;;;AAGF;EACE;EACA;EACA;EACA;;;AAEF;EACE;EACA;EACA;EACA;EACA;EACA;EACA,kBA7L0B;EA8L1B;EPvLI,4BOLY;EPMZ,2BONY;EA+LhB;;;AAWE;EACE;IACE;;;AAKJ;EACE;IACE;IACA;IACA;;EAEF;IACE;;;AAKJ;EACE;IACE;;;AAKJ;EACE;IACE;;;AC5OR;EACI;EACA;EACA;EACA;EACA;;;AAGJ;EACI;EACA;EACA;;AAIA;EACE;EACA;;;AAIN;EACE;;;ACtBF;EAEI;EACA;EACA;EACA;EACA;EACA;EACA;EAEA;EAEA;EACA;EACA;EACA;EACA;;AAGA;AAAA;EACE;EACA;EACA;EACA;;AAeN;EACI;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EAEE;EACA;;;AAIN;EAEI;EACA;EACA;EACA;EACA;EAGA;EACA;EACA;EACA;EACA;;AAEA;AAAA;EAEE;;AAGF;EACE;;;AAIN;EACI;EACA;EACA;;AAEA;AAAA;AAAA;EAGE;;;AAKJ;EACE;EACA;;;AC9FJ;EACI;EACA;EACA;EACA;EACA;EACA;EACA;;AAGA;EAEI;EACA;;AAEJ;EACI;;AAIJ;EACI;EACA;EACA;;;ACvBR;EAII;EACA;EACA;EACA;EACA;EACA;EACA;;AACA;EACI;;AAEJ;EACI;;AAEJ;EACI;;AAEJ;EACI;;;ACrBR;EACI;EACA;EACA;EACA;EACA;EAEA;EACA;EAEA;EACA;EACA;EACA;EAEA;EACA;EAEA;EAEA;;AACA;EACI;EACA;EACA;EAEA,kBpB2Be;EoB1Bf;;AACA;EACI;;AAGJ;EACI;;AAIJ;EACI;;AAGR;EACI;EACA;EACA;EACA;;AAEJ;EACI;EACA;EAEA,kBpBEe;EoBDf;;AACA;EACI;;AAGR;EACI;;AAEJ;EACI;;AACA;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;ACtEZ;EACI;;;AAGJ;EACI;EACA;;;AAGJ;EACI;;AACA;EACI;EACA;;;AAIR;EACI;;;AAGJ;EACI;;AACA;EACI;EACA","file":"stargazerui.css"}
package/dev/test.jsx ADDED
@@ -0,0 +1,87 @@
1
+ import { useEffect, useState } from "react"
2
+
3
+ import Tabs from '../src/Tabs'
4
+ import Popout from '../src/Popout'
5
+
6
+ import CardPage from './pages/CardPage'
7
+ import ButtonPage from './pages/ButtonPage'
8
+ import DropdownPage from './pages/DropdownPage'
9
+ import OverlayPage from './pages/OverlayPage'
10
+ import FormPage from './pages/FormPage'
11
+ import ModalPage from './pages/ModalPage'
12
+ import ListPage from './pages/ListPage'
13
+
14
+ const tabs = [
15
+ {
16
+ label: "Cards",
17
+ id: "cards",
18
+ page: <CardPage />
19
+ },
20
+ {
21
+ label: "Buttons",
22
+ id: "buttons",
23
+ page: <ButtonPage />
24
+ },
25
+ {
26
+ label: "Modal",
27
+ id: "modal",
28
+ page: <ModalPage />
29
+ },
30
+ {
31
+ label: "Overlay",
32
+ id: "overlay",
33
+ page: <OverlayPage />
34
+ },
35
+ {
36
+ label: "Dropdown",
37
+ id: "dropdown",
38
+ page: <DropdownPage />
39
+ },
40
+ {
41
+ label: "Form",
42
+ id: "form",
43
+ page: <FormPage />
44
+ },
45
+ {
46
+ label: "Drag and Drop List",
47
+ id: "drag-and-drop-list",
48
+ page: <ListPage />
49
+ }
50
+ ]
51
+
52
+ export const Component = () => {
53
+ const url = new URL(window.location.href)
54
+
55
+ return (
56
+ <div>
57
+ {false ?
58
+ <Popout move="true">
59
+ <Popout.Header>
60
+ <Popout.Title>Test</Popout.Title>
61
+ </Popout.Header>
62
+ <Popout.Body><p>test</p></Popout.Body>
63
+ </Popout>
64
+ : null}
65
+ <Tabs controlId="tabs-test" defaultActive={url.searchParams.get("tabid") ?? tabs[5].id}>
66
+ <Tabs.Controls>
67
+ {
68
+ tabs.map(tab =>
69
+ <Tabs.Button key={tab.id+"-button"} tabId={tab.id}>
70
+ {tab.label}
71
+ </Tabs.Button>
72
+ )
73
+ }
74
+ </Tabs.Controls>
75
+ <Tabs.Content>
76
+ {
77
+ tabs.map(tab =>
78
+ <Tabs.Page key={tab.id+"-page"} tabId={tab.id}>
79
+ {tab.page}
80
+ </Tabs.Page>
81
+ )
82
+ }
83
+ </Tabs.Content>
84
+ </Tabs>
85
+ </div>
86
+ )
87
+ }
package/package.json CHANGED
@@ -1 +1,79 @@
1
- {"name":"stargazer-ui","version":"1.5.21","description":"React component library made by Stargazer Works","module":"./index.js","types":"./index.d.ts","scripts":{"test":"\"echo \\\"Error: no test specified\\\" && exit 1\"","dev":"vite --config vite.config.js --port 3001","build":"tsc --p ./tsconfig-build.json && vite build --config vite.config.js","rollup":"rimraf dist && rollup -c","postrollup":"node scripts/writePackageJsons.js && sass src/styles/_components.scss dist/styles/stargazerui.css","packageJsons":"node scripts/writePackageJsons.js","makecss":"sass src/styles/_components.scss dist/styles/stargazerui.css"},"type":"module","engines":{"node":">=18.0.0"},"repository":{"type":"git","url":"git+https://github.com/Xoror/stargazer-ui.git"},"keywords":["ui","library","stargazer-works"],"author":"Stargazer Works","license":"MIT","bugs":{"url":"https://github.com/Xoror/stargazer-ui/issues"},"homepage":"https://github.com/Xoror/stargazer-ui#readme","peerDependencies":{"lodash":"^4.17.21","react":">=17.0.0","react-dom":">=17.0.0"},"publishConfig":{"access":"public"},"devDependencies":{"@babel/core":"^7.16.5","@govtechsg/sgds-react":"^2.3.0","@reduxjs/toolkit":"^2.2.1","@rollup/plugin-commonjs":"^25.0.7","@rollup/plugin-node-resolve":"^15.2.3","@rollup/plugin-terser":"^0.4.4","@rollup/plugin-typescript":"^11.1.6","@types/lodash":"^4.17.4","@types/node":"^20.8.10","@types/react":"^18.2.35","@types/react-dom":"^18.2.14","@typescript-eslint/eslint-plugin":"^6.9.1","@typescript-eslint/parser":"^6.9.1","@vitejs/plugin-react":"^1.3.2","ally.js":"^1.4.1","eslint":"^8.53.0","eslint-plugin-react-hooks":"^4.6.0","eslint-plugin-react-refresh":"^0.4.4","glob":"^10.3.10","lodash":"^4.17.21","react":">=17.0.0","react-bootstrap":"^2.10.1","react-dom":">=17.0.0","react-router-dom":"^6.23.1","rollup":"^4.12.0","rollup-plugin-dts":"^6.1.0","rollup-plugin-generate-package-json":"^3.2.0","rollup-plugin-peer-deps-external":"^2.2.4","rollup-plugin-typescript2":"^0.36.0","sass":"^1.71.1","tslib":"^2.6.2","typescript":"^5.2.2","vite":"^6.1.1","vite-plugin-dts":"^4.5.0"}}
1
+ {
2
+ "name": "stargazer-ui",
3
+ "version": "1.5.23",
4
+ "description": "React component library made by Stargazer Works",
5
+ "module": "./index.js",
6
+ "types": "./index.d.ts",
7
+ "scripts": {
8
+ "test": "\"echo \\\"Error: no test specified\\\" && exit 1\"",
9
+ "dev": "vite --config vite.config.js --port 3001",
10
+ "build": "tsc --p ./tsconfig-build.json && vite build --config vite.config.js",
11
+ "rollup": "rimraf dist && rollup -c",
12
+ "postrollup": "node scripts/writePackageJsons.js && sass src/styles/_components.scss dist/styles/stargazerui.css",
13
+ "packageJsons": "node scripts/writePackageJsons.js",
14
+ "makecss": "sass src/styles/_components.scss dist/styles/stargazerui.css"
15
+ },
16
+ "type": "module",
17
+ "engines": {
18
+ "node": ">=18.0.0"
19
+ },
20
+ "repository": {
21
+ "type": "git",
22
+ "url": "git+https://github.com/Xoror/stargazer-ui.git"
23
+ },
24
+ "keywords": [
25
+ "ui",
26
+ "library",
27
+ "stargazer-works"
28
+ ],
29
+ "author": "Stargazer Works",
30
+ "license": "MIT",
31
+ "bugs": {
32
+ "url": "https://github.com/Xoror/stargazer-ui/issues"
33
+ },
34
+ "homepage": "https://github.com/Xoror/stargazer-ui#readme",
35
+ "peerDependencies": {
36
+ "lodash": "^4.17.21",
37
+ "react": ">=17.0.0",
38
+ "react-dom": ">=17.0.0"
39
+ },
40
+ "publishConfig": {
41
+ "access": "public"
42
+ },
43
+ "devDependencies": {
44
+ "@babel/core": "^7.16.5",
45
+ "@govtechsg/sgds-react": "^2.3.0",
46
+ "@reduxjs/toolkit": "^2.2.1",
47
+ "@rollup/plugin-commonjs": "^25.0.7",
48
+ "@rollup/plugin-node-resolve": "^15.2.3",
49
+ "@rollup/plugin-terser": "^0.4.4",
50
+ "@rollup/plugin-typescript": "^11.1.6",
51
+ "@types/lodash": "^4.17.4",
52
+ "@types/node": "^20.8.10",
53
+ "@types/react": "^18.2.35",
54
+ "@types/react-dom": "^18.2.14",
55
+ "@typescript-eslint/eslint-plugin": "^6.9.1",
56
+ "@typescript-eslint/parser": "^6.9.1",
57
+ "@vitejs/plugin-react": "^1.3.2",
58
+ "ally.js": "^1.4.1",
59
+ "eslint": "^8.53.0",
60
+ "eslint-plugin-react-hooks": "^4.6.0",
61
+ "eslint-plugin-react-refresh": "^0.4.4",
62
+ "glob": "^10.3.10",
63
+ "lodash": "^4.17.21",
64
+ "react": ">=17.0.0",
65
+ "react-bootstrap": "^2.10.1",
66
+ "react-dom": ">=17.0.0",
67
+ "react-router-dom": "^6.23.1",
68
+ "rollup": "^4.12.0",
69
+ "rollup-plugin-dts": "^6.1.0",
70
+ "rollup-plugin-generate-package-json": "^3.2.0",
71
+ "rollup-plugin-peer-deps-external": "^2.2.4",
72
+ "rollup-plugin-typescript2": "^0.36.0",
73
+ "sass": "^1.71.1",
74
+ "tslib": "^2.6.2",
75
+ "typescript": "^5.2.2",
76
+ "vite": "^6.1.1",
77
+ "vite-plugin-dts": "^4.5.0"
78
+ }
79
+ }
@@ -0,0 +1,140 @@
1
+ import resolve from "@rollup/plugin-node-resolve";
2
+ import commonjs from "@rollup/plugin-commonjs";
3
+ import typescript from "@rollup/plugin-typescript";
4
+ //import typescript from 'rollup-plugin-typescript2';
5
+ import dts from "rollup-plugin-dts";
6
+ import terser from "@rollup/plugin-terser";
7
+ import peerDepsExternal from "rollup-plugin-peer-deps-external";
8
+ import generatePackageJson from "rollup-plugin-generate-package-json";
9
+
10
+ import fs from "fs"
11
+ import { readFile } from 'fs/promises';
12
+
13
+ const packageJson = JSON.parse(
14
+ await readFile(
15
+ new URL('./package.json', import.meta.url)
16
+ )
17
+ )
18
+ const plugins = [
19
+ peerDepsExternal(),
20
+ resolve(),
21
+ commonjs(),
22
+ typescript({
23
+ tsconfig: "./tsconfig.json"
24
+ }),
25
+ //terser(),
26
+ ]
27
+
28
+ const getComponentsFolders = () => {
29
+ const dirs = fs.readdirSync("./src")
30
+ const dirsWithoutIndex = dirs.filter(name => !name.includes(".ts") && name != "styles" && name != "utils" && name != "assets")
31
+ return dirsWithoutIndex
32
+ }
33
+
34
+ const component = (folder) => {
35
+ return {
36
+ input: `src/${folder}/index.ts`,
37
+ output: [
38
+ {
39
+ file: `dist/${folder}/index.esm.js`,
40
+ exports: 'named',
41
+ sourcemap: true,
42
+ format: 'esm',
43
+
44
+ },
45
+ {
46
+ file: `dist/${folder}/index.cjs.js`,
47
+ exports: 'named',
48
+ sourcemap: true,
49
+ format: 'cjs',
50
+ }
51
+ ],
52
+ plugins: [
53
+ ...plugins,
54
+ generatePackageJson({
55
+ baseContents: {
56
+ name: `${packageJson.name}/${folder}`,
57
+ private: false,
58
+ main: './index.cjs.js',
59
+ module: './index.esm.js',
60
+ types: './index.d.ts',
61
+ peerDependencies: packageJson.peerDependencies,
62
+ },
63
+ outputFolder: `dist/${folder}/`
64
+ }),
65
+ ],
66
+ external: [/node_modules/, /\.\.\/utils/],
67
+ };
68
+ }
69
+
70
+ export default [
71
+ {
72
+ input: ['src/index.ts', ...getComponentsFolders().map(folder => `src/${folder}/index.ts`)],
73
+ output: [
74
+ {
75
+ dir: "dist",
76
+ format: 'esm',
77
+ sourcemap: true,
78
+ exports: 'named',
79
+ banner: `'use client';`,
80
+ preserveModules: true,
81
+ preserveModulesRoot: 'src',
82
+ }
83
+ ],
84
+ plugins: plugins,
85
+ external: ['react', 'react-dom'],
86
+ }
87
+ ]
88
+ /*
89
+ {
90
+ input: ['src/index.ts', 'src/Button/index.ts'],
91
+ output: [
92
+ {
93
+ dir:"dist",
94
+ format: 'cjs',
95
+ sourcemap: true,
96
+ exports: 'named',
97
+ preserveModules: true,
98
+ preserveModulesRoot: 'src',
99
+ }
100
+ ],
101
+ plugins: plugins,
102
+ external: ['react', 'react-dom'],
103
+ }
104
+ ]
105
+ */
106
+
107
+
108
+ /*
109
+ {
110
+ input: 'src/index.ts',
111
+ output: [
112
+ {
113
+ file: packageJson.main,
114
+ format: 'cjs',
115
+ sourcemap: true,
116
+ exports: 'named',
117
+ },
118
+ ],
119
+ plugins: [...plugins],
120
+ external: ['react', 'react-dom'],
121
+ },
122
+ ];
123
+ */
124
+
125
+ /* Code split, works well but for intellisense
126
+ {
127
+ input: ['src/index.ts', 'src/Button/index.ts'],
128
+ output: [
129
+ {
130
+ dir: "dist",
131
+ format: 'esm',
132
+ sourcemap: true,
133
+ exports: 'named',
134
+ preserveModules: true,
135
+ },
136
+ ],
137
+ plugins: [...plugins],
138
+ external: ['react', 'react-dom'],
139
+
140
+ */
@@ -0,0 +1,42 @@
1
+ import fs from "fs";
2
+ import { readFile } from 'fs/promises';
3
+
4
+ const packageJson = JSON.parse(
5
+ await readFile(
6
+ new URL('../package.json', import.meta.url)
7
+ )
8
+ )
9
+
10
+ const packageJsonTemplate = (folder) => {
11
+ return {
12
+ name: `${packageJson.name}/${folder}`,
13
+ private: false,
14
+ module: `./index.js`,
15
+ types: `./index.d.ts`,
16
+ peerDependencies: packageJson.peerDependencies,
17
+ }
18
+ }
19
+
20
+ const getComponentsFolders = () => {
21
+ const dirs = fs.readdirSync("./src")
22
+ const dirsWithoutIndex = dirs.filter(name => !name.includes(".ts") && name != "styles" && name != "utils" && name != "assets")
23
+ return dirsWithoutIndex
24
+ }
25
+
26
+ const write = () => {
27
+ fs.writeFileSync(`./dist/package.json`, JSON.stringify(packageJson), 'utf-8')
28
+ const folders = getComponentsFolders()
29
+ folders.map(folder => {
30
+ //fs.mkdirSync(`./dist/${folder}`)
31
+ fs.writeFileSync(`./dist/${folder}/package.json`, JSON.stringify(packageJsonTemplate(folder)), 'utf-8', (error) => {
32
+ // 4
33
+ if (error) {
34
+ console.log(`WRITE ERROR: ${error}`)
35
+ } else {
36
+ // 5
37
+ console.log('FILE WRITTEN TO')
38
+ }
39
+ })
40
+ })
41
+ }
42
+ write()
File without changes
@@ -0,0 +1,9 @@
1
+ import { BaseProgressBarType, BaseMeterType } from "../utils/BaseTypes";
2
+
3
+ export type ProgressBarType = {
4
+ className?: string
5
+ }
6
+
7
+ export type MeterType = {
8
+ className?: string
9
+ }
File without changes
@@ -0,0 +1,20 @@
1
+ import React, { forwardRef } from "react"
2
+
3
+ import { ButtonType } from "./Button.types"
4
+
5
+ import mergeClassnames from "../utils/MergeClassnames"
6
+
7
+ const Button = forwardRef<HTMLButtonElement, ButtonType>( ({children, variant="primary", className, ...rest}, ref) => {
8
+ const variants = ["primary", "secondary", "success", "info", "warning", "danger", "dark", "light", "custom"] //["red", "blue", "yellow", "green", "purple"]
9
+ const variantTest = variants.find(variantTest => variantTest === variant) ? variant : "primary"
10
+ const computedClassnames = mergeClassnames("sg-button", `sg-button-${variantTest}`, className)
11
+ return(
12
+ <button ref={ref} type="button" className={computedClassnames} {...rest}>
13
+ {children}
14
+ </button>
15
+ )
16
+ } )
17
+
18
+ Button.displayName = "Button"
19
+
20
+ export default Button
@@ -0,0 +1,8 @@
1
+ import { ReactNode } from "react"
2
+ import { BaseButtonType } from "../utils/BaseTypes"
3
+
4
+ export type ButtonType = {
5
+ children: ReactNode
6
+ variant?: string,
7
+ className?: string,
8
+ } & React.ComponentPropsWithRef<"button">
@@ -0,0 +1,3 @@
1
+ import Button from "./Button"
2
+ export default Button
3
+ export type { ButtonType } from "./Button.types"
@@ -0,0 +1,14 @@
1
+ import React, { forwardRef } from "react"
2
+ import { ButtonGroupType } from "./ButtonGroup.types"
3
+
4
+ const ButtonGroup = forwardRef<HTMLDivElement, ButtonGroupType>( ({ children, className, vertical=false, ...restProps}, ref) => {
5
+ return (
6
+ <div ref={ref} role="group" className={`sg-button-group${vertical ? "-vertical" : ""}${className ? " "+className : ""}`} {...restProps}>
7
+ {children}
8
+ </div>
9
+ )
10
+ })
11
+
12
+ ButtonGroup.displayName = "ButtonGroup"
13
+
14
+ export default ButtonGroup
@@ -0,0 +1,8 @@
1
+ import { ReactNode } from "react"
2
+ import { BaseDivType } from "../utils/BaseTypes"
3
+
4
+ export type ButtonGroupType = {
5
+ children: ReactNode,
6
+ className?: string,
7
+ vertical?: boolean,
8
+ } & BaseDivType
@@ -0,0 +1,3 @@
1
+ import ButtonGroup from "./ButtonGroup"
2
+ export default ButtonGroup
3
+ export type { ButtonGroupType } from "./ButtonGroup.types"
@@ -0,0 +1,70 @@
1
+ import React, { forwardRef } from "react"
2
+
3
+ import { CardBodyType, CardFooterType, CardHeaderType, CardTextType, CardType } from "./Card.types"
4
+
5
+ const Card = forwardRef<HTMLDivElement, CardType>( ({children, className, variant, inverted=false,...restProps}, ref) => {
6
+ return (
7
+ <div ref={ref} className={`sg-card${className ? " "+className:""}${variant ? " "+variant:""}${inverted ? " inverted":""}`} {...restProps}>
8
+ {children}
9
+ </div>
10
+ )
11
+ })
12
+ Card.displayName = "Card"
13
+
14
+ const Header = forwardRef<HTMLDivElement | HTMLHeadingElement | HTMLSpanElement, CardHeaderType>( ({as="div", className, children, ...restProps}, ref) => {
15
+ let validAs = ["div", "span", "h1", "h2", "h3", "h4", "h5", "h6"]
16
+ let Component = validAs.find(valid => valid === as) ? as : "div"
17
+
18
+ return (
19
+ <Component ref={ref} className={`sg-card-header ${className}`} {...restProps}>
20
+ {children}
21
+ </Component>
22
+ )
23
+ })
24
+ Header.displayName = "CardHeader"
25
+
26
+ const Title = forwardRef<HTMLHeadingElement, CardHeaderType>(({as="h5", className, children, ...restProps}, ref) => {
27
+ let validAs = ["h1", "h2", "h3", "h4", "h5", "h6"]
28
+ let Component = validAs.find(valid => valid === as) ? as : "h5"
29
+ return (
30
+ <Component ref={ref} className={`sg-card-title${className ? " "+className : ""}`} {...restProps}>
31
+ {children}
32
+ </Component>
33
+ )
34
+ })
35
+ Title.displayName = "CardTitle"
36
+
37
+ const Body = forwardRef<HTMLDivElement, CardBodyType>( ({children, className, ...restProps}, ref) => {
38
+ return (
39
+ <div ref={ref} className={`sg-card-body ${className}`} {...restProps}>
40
+ {children}
41
+ </div>
42
+ )
43
+ })
44
+ Body.displayName = "CardBody"
45
+
46
+ const Text = forwardRef<HTMLParagraphElement, CardTextType>( ({children, className, ...restProps}, ref) => {
47
+ return (
48
+ <p ref={ref} className={`sg-card-text ${className}`} {...restProps}>
49
+ {children}
50
+ </p>
51
+ )
52
+ })
53
+ Text.displayName = "CardText"
54
+
55
+ const Footer = forwardRef<HTMLDivElement, CardFooterType>( ({children, className, ...restProps}, ref) => {
56
+ return (
57
+ <div ref={ref} className={`sg-card-footer ${className}`} {...restProps}>
58
+ {children}
59
+ </div>
60
+ )
61
+ })
62
+ Footer.displayName = "CardFooter"
63
+
64
+ export default Object.assign(Card, {
65
+ Header: Header,
66
+ Body: Body,
67
+ Title: Title,
68
+ Text: Text,
69
+ Footer: Footer
70
+ })
@@ -0,0 +1,33 @@
1
+ import { ReactNode } from "react"
2
+
3
+ import { BaseDivType, BaseHeadingType, BaseSpanType, BaseParagraphType } from "../utils/BaseTypes"
4
+
5
+
6
+ export type CardType = {
7
+ children: ReactNode,
8
+ className?: string,
9
+ variant?: string,
10
+ inverted?: boolean
11
+ } & BaseDivType
12
+
13
+ export type CardHeaderPossible = BaseDivType | BaseSpanType | BaseHeadingType
14
+ export type CardHeaderType = {
15
+ children: ReactNode,
16
+ className?: string,
17
+ as?: React.ElementType
18
+ } & CardHeaderPossible
19
+
20
+ export type CardBodyType = {
21
+ children: ReactNode,
22
+ className?: string
23
+ } & BaseDivType
24
+
25
+ export type CardTextType = {
26
+ children: ReactNode,
27
+ className?: string
28
+ } & BaseParagraphType
29
+
30
+ export type CardFooterType = {
31
+ children: ReactNode,
32
+ className?: string,
33
+ } & BaseDivType
@@ -0,0 +1,3 @@
1
+ import Card from "./Card"
2
+ export default Card
3
+ export type {CardBodyType, CardFooterType, CardHeaderPossible, CardHeaderType, CardTextType, CardType} from "./Card.types"
@@ -0,0 +1,14 @@
1
+ import React, { forwardRef } from "react"
2
+
3
+ import { CloseButtonType } from "./CloseButton.types"
4
+
5
+ const CloseButton = forwardRef<HTMLButtonElement, CloseButtonType>( ({className, variant = false, ...restProps}, ref) => {
6
+ return (
7
+ <button ref={ref} className={`sg-button-close${variant ? " sg-button-close-white" : ""} ${className}`} {...restProps}>
8
+ <span className="sg-close-visually-hidden-label">Close</span>
9
+ </button>
10
+ )
11
+ })
12
+ CloseButton.displayName = "CloseButton"
13
+
14
+ export default CloseButton
@@ -0,0 +1,6 @@
1
+ import { BaseButtonType } from "../utils/BaseTypes"
2
+
3
+ export type CloseButtonType = {
4
+ className?: string,
5
+ variant?: boolean
6
+ } & BaseButtonType
@@ -0,0 +1,3 @@
1
+ import CloseButton from "./CloseButton"
2
+ export default CloseButton
3
+ export type { CloseButtonType } from "./CloseButton.types"