stargazer-ui 1.5.26 → 1.5.29

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 (378) hide show
  1. package/Bar/Bar.type.d.ts +6 -0
  2. package/Bar/index.js +2 -0
  3. package/Bar/index.js.map +1 -0
  4. package/Bar/package.json +1 -0
  5. package/Button/Button.js +15 -0
  6. package/Button/Button.js.map +1 -0
  7. package/{types/components/Button → Button}/Button.types.d.ts +1 -2
  8. package/Button/index.d.ts +3 -0
  9. package/Button/index.js +7 -0
  10. package/Button/index.js.map +1 -0
  11. package/Button/package.json +1 -0
  12. package/ButtonGroup/ButtonGroup.d.ts +4 -0
  13. package/ButtonGroup/ButtonGroup.js +11 -0
  14. package/ButtonGroup/ButtonGroup.js.map +1 -0
  15. package/ButtonGroup/ButtonGroup.types.d.ts +7 -0
  16. package/ButtonGroup/index.d.ts +3 -0
  17. package/ButtonGroup/index.js +7 -0
  18. package/ButtonGroup/index.js.map +1 -0
  19. package/ButtonGroup/package.json +1 -0
  20. package/{types/components/Card → Card}/Card.d.ts +12 -12
  21. package/Card/Card.js +42 -0
  22. package/Card/Card.js.map +1 -0
  23. package/{types/components/Card → Card}/Card.types.d.ts +3 -1
  24. package/Card/index.d.ts +3 -0
  25. package/Card/index.js +7 -0
  26. package/Card/index.js.map +1 -0
  27. package/Card/package.json +1 -0
  28. package/CloseButton/CloseButton.js +11 -0
  29. package/CloseButton/CloseButton.js.map +1 -0
  30. package/{types/components/CloseButton → CloseButton}/CloseButton.types.d.ts +1 -1
  31. package/CloseButton/index.d.ts +3 -0
  32. package/CloseButton/index.js +7 -0
  33. package/CloseButton/index.js.map +1 -0
  34. package/CloseButton/package.json +1 -0
  35. package/Dropdown/Dropdown.d.ts +39 -0
  36. package/Dropdown/Dropdown.js +380 -0
  37. package/Dropdown/Dropdown.js.map +1 -0
  38. package/{types/components/Dropdown → Dropdown}/Dropdown.types.d.ts +13 -12
  39. package/Dropdown/index.d.ts +4 -0
  40. package/Dropdown/index.js +8 -0
  41. package/Dropdown/index.js.map +1 -0
  42. package/Dropdown/package.json +1 -0
  43. package/FileUploadButton/FileUploadButton.d.ts +4 -0
  44. package/FileUploadButton/FileUploadButton.js +20 -0
  45. package/FileUploadButton/FileUploadButton.js.map +1 -0
  46. package/FileUploadButton/FileUploadButton.types.d.ts +7 -0
  47. package/FileUploadButton/index.d.ts +3 -0
  48. package/FileUploadButton/index.js +7 -0
  49. package/FileUploadButton/index.js.map +1 -0
  50. package/FileUploadButton/package.json +1 -0
  51. package/FloatingLabel/FloatingLabel.js +15 -0
  52. package/FloatingLabel/FloatingLabel.js.map +1 -0
  53. package/{types/components/FloatingLabel → FloatingLabel}/FloatingLabel.types.d.ts +1 -1
  54. package/FloatingLabel/index.d.ts +3 -0
  55. package/FloatingLabel/index.js +7 -0
  56. package/FloatingLabel/index.js.map +1 -0
  57. package/FloatingLabel/package.json +1 -0
  58. package/Form/Form.d.ts +37 -0
  59. package/Form/Form.js +227 -0
  60. package/Form/Form.js.map +1 -0
  61. package/Form/Form.types.d.ts +159 -0
  62. package/Form/FormSelect.d.ts +12 -0
  63. package/Form/FormSelect.js +512 -0
  64. package/Form/FormSelect.js.map +1 -0
  65. package/Form/index.d.ts +4 -0
  66. package/Form/index.js +8 -0
  67. package/Form/index.js.map +1 -0
  68. package/Form/package.json +1 -0
  69. package/InputGroup/InputGroup.d.ts +7 -0
  70. package/InputGroup/InputGroup.js +31 -0
  71. package/InputGroup/InputGroup.js.map +1 -0
  72. package/InputGroup/InputGroup.types.d.ts +17 -0
  73. package/InputGroup/index.d.ts +4 -0
  74. package/InputGroup/index.js +7 -0
  75. package/InputGroup/index.js.map +1 -0
  76. package/InputGroup/package.json +1 -0
  77. package/List/List.d.ts +14 -0
  78. package/List/List.js +77 -0
  79. package/List/List.js.map +1 -0
  80. package/List/List.types.d.ts +28 -0
  81. package/List/index.d.ts +3 -0
  82. package/List/index.js +7 -0
  83. package/List/index.js.map +1 -0
  84. package/List/package.json +1 -0
  85. package/{types/components/Modal → Modal}/Modal.d.ts +19 -19
  86. package/Modal/Modal.js +157 -0
  87. package/Modal/Modal.js.map +1 -0
  88. package/{types/components/Modal → Modal}/Modal.types.d.ts +3 -2
  89. package/Modal/index.d.ts +3 -0
  90. package/Modal/index.js +7 -0
  91. package/Modal/index.js.map +1 -0
  92. package/Modal/package.json +1 -0
  93. package/{types/components/Nav → Nav}/Nav.d.ts +12 -12
  94. package/Nav/Nav.js +29 -0
  95. package/Nav/Nav.js.map +1 -0
  96. package/{types/components/Nav → Nav}/Nav.types.d.ts +1 -1
  97. package/Nav/index.d.ts +4 -0
  98. package/Nav/index.js +7 -0
  99. package/Nav/index.js.map +1 -0
  100. package/Nav/package.json +1 -0
  101. package/{types/components/NavBar → NavBar}/Navbar.d.ts +7 -8
  102. package/NavBar/Navbar.js +36 -0
  103. package/NavBar/Navbar.js.map +1 -0
  104. package/{types/components/NavBar → NavBar}/Navbar.types.d.ts +2 -1
  105. package/NavBar/index.d.ts +4 -0
  106. package/NavBar/index.js +8 -0
  107. package/NavBar/index.js.map +1 -0
  108. package/NavBar/package.json +1 -0
  109. package/NavDropdown/NavDropdown.d.ts +19 -0
  110. package/NavDropdown/NavDropdown.js +75 -0
  111. package/NavDropdown/NavDropdown.js.map +1 -0
  112. package/{types/components/NavDropdown → NavDropdown}/NavDropdown.types.d.ts +2 -1
  113. package/NavDropdown/index.d.ts +3 -0
  114. package/NavDropdown/index.js +7 -0
  115. package/NavDropdown/index.js.map +1 -0
  116. package/NavDropdown/package.json +1 -0
  117. package/Overlay/Overlay.d.ts +4 -0
  118. package/Overlay/Overlay.js +241 -0
  119. package/Overlay/Overlay.js.map +1 -0
  120. package/Overlay/Overlay.types.d.ts +22 -0
  121. package/{src/Overlay/index.ts → Overlay/index.d.ts} +2 -2
  122. package/Overlay/index.js +7 -0
  123. package/Overlay/index.js.map +1 -0
  124. package/Overlay/package.json +1 -0
  125. package/{types/components/Popout → Popout}/Popout.d.ts +6 -6
  126. package/Popout/Popout.js +111 -0
  127. package/Popout/Popout.js.map +1 -0
  128. package/{types/components/Popout → Popout}/Popout.types.d.ts +1 -1
  129. package/Popout/index.d.ts +3 -0
  130. package/Popout/index.js +7 -0
  131. package/Popout/index.js.map +1 -0
  132. package/Popout/package.json +1 -0
  133. package/Spinner/Spinner.js +11 -0
  134. package/Spinner/Spinner.js.map +1 -0
  135. package/Spinner/index.d.ts +3 -0
  136. package/Spinner/index.js +7 -0
  137. package/Spinner/index.js.map +1 -0
  138. package/Spinner/package.json +1 -0
  139. package/Table/Table.js +12 -0
  140. package/Table/Table.js.map +1 -0
  141. package/{types/components/Table → Table}/Table.types.d.ts +1 -1
  142. package/Table/index.d.ts +3 -0
  143. package/Table/index.js +7 -0
  144. package/Table/index.js.map +1 -0
  145. package/Table/package.json +1 -0
  146. package/Tabs/Tabs.js +162 -0
  147. package/Tabs/Tabs.js.map +1 -0
  148. package/{types/components/Tabs → Tabs}/Tabs.types.d.ts +12 -2
  149. package/Tabs/index.d.ts +3 -0
  150. package/Tabs/index.js +7 -0
  151. package/Tabs/index.js.map +1 -0
  152. package/Tabs/package.json +1 -0
  153. package/ToggleButton/ToggleButton.d.ts +4 -0
  154. package/ToggleButton/ToggleButton.js +18 -0
  155. package/ToggleButton/ToggleButton.js.map +1 -0
  156. package/ToggleButton/ToggleButton.types.d.ts +7 -0
  157. package/ToggleButton/index.d.ts +3 -0
  158. package/ToggleButton/index.js +7 -0
  159. package/ToggleButton/index.js.map +1 -0
  160. package/ToggleButton/package.json +1 -0
  161. package/{src/hooks/index.ts → hooks/index.d.ts} +1 -2
  162. package/hooks/index.js +7 -0
  163. package/hooks/index.js.map +1 -0
  164. package/hooks/package.json +1 -0
  165. package/hooks/useClassname.d.ts +2 -0
  166. package/hooks/useClassname.js +7 -0
  167. package/hooks/useClassname.js.map +1 -0
  168. package/hooks/useDraggable.d.ts +23 -0
  169. package/hooks/useDraggable.js +147 -0
  170. package/hooks/useDraggable.js.map +1 -0
  171. package/hooks/useKeepElementFocused.d.ts +2 -0
  172. package/hooks/useKeepElementFocused.js +37 -0
  173. package/hooks/useKeepElementFocused.js.map +1 -0
  174. package/hooks/useQueryParams.d.ts +2 -0
  175. package/hooks/useQueryParams.js +13 -0
  176. package/hooks/useQueryParams.js.map +1 -0
  177. package/hooks/useScreenSize.d.ts +5 -0
  178. package/hooks/useScreenSize.js +21 -0
  179. package/hooks/useScreenSize.js.map +1 -0
  180. package/index.d.ts +19 -0
  181. package/index.js +20 -0
  182. package/index.js.map +1 -0
  183. package/package.json +1 -80
  184. package/styles/stargazerui.css +6661 -0
  185. package/styles/stargazerui.css.map +1 -0
  186. package/{src/utils/BaseTypes.ts → utils/BaseTypes.d.ts} +2 -9
  187. package/utils/ContrastingColor.d.ts +1 -0
  188. package/utils/CreateSyntheticEvent.d.ts +2 -0
  189. package/utils/CreateSyntheticEvent.js +33 -0
  190. package/utils/CreateSyntheticEvent.js.map +1 -0
  191. package/utils/IsInputKey.d.ts +7 -0
  192. package/utils/IsInputKey.js +20 -0
  193. package/utils/IsInputKey.js.map +1 -0
  194. package/utils/MergeClassnames.d.ts +2 -0
  195. package/utils/MergeClassnames.js +7 -0
  196. package/utils/MergeClassnames.js.map +1 -0
  197. package/utils/MergeRefs.d.ts +1 -0
  198. package/utils/MergeRefs.js +16 -0
  199. package/utils/MergeRefs.js.map +1 -0
  200. package/utils/createFastContext.d.ts +16 -0
  201. package/utils/createFastContext.js +99 -0
  202. package/utils/createFastContext.js.map +1 -0
  203. package/utils/index.d.ts +4 -0
  204. package/.babelrc.json +0 -10
  205. package/.eslintrc.cjs +0 -18
  206. package/.gitattributes +0 -2
  207. package/.github/workflows/npm-publish.yml +0 -24
  208. package/LICENSE +0 -21
  209. package/dev/index.html +0 -16
  210. package/dev/index.jsx +0 -46
  211. package/dev/index.scss +0 -74
  212. package/dev/pages/ButtonPage.jsx +0 -44
  213. package/dev/pages/CardPage.jsx +0 -81
  214. package/dev/pages/DropdownPage.jsx +0 -32
  215. package/dev/pages/FormPage.jsx +0 -163
  216. package/dev/pages/ListPage.jsx +0 -52
  217. package/dev/pages/ModalPage.jsx +0 -38
  218. package/dev/pages/OverlayPage.jsx +0 -39
  219. package/dev/pages/components.jsx +0 -19
  220. package/dev/stargazerui.css +0 -3762
  221. package/dev/stargazerui.css.map +0 -1
  222. package/dev/test.jsx +0 -87
  223. package/rollup.config.js +0 -140
  224. package/scripts/writePackageJsons.js +0 -42
  225. package/src/Bar/Bar.tsx +0 -0
  226. package/src/Bar/Bar.type.ts +0 -9
  227. package/src/Bar/index.ts +0 -0
  228. package/src/Button/Button.tsx +0 -20
  229. package/src/Button/Button.types.ts +0 -8
  230. package/src/Button/index.ts +0 -3
  231. package/src/ButtonGroup/ButtonGroup.tsx +0 -14
  232. package/src/ButtonGroup/ButtonGroup.types.ts +0 -8
  233. package/src/ButtonGroup/index.ts +0 -3
  234. package/src/Card/Card.tsx +0 -70
  235. package/src/Card/Card.types.ts +0 -33
  236. package/src/Card/index.ts +0 -3
  237. package/src/CloseButton/CloseButton.tsx +0 -14
  238. package/src/CloseButton/CloseButton.types.ts +0 -6
  239. package/src/CloseButton/index.ts +0 -3
  240. package/src/Dropdown/Dropdown.tsx +0 -441
  241. package/src/Dropdown/Dropdown.types.ts +0 -60
  242. package/src/Dropdown/index.ts +0 -4
  243. package/src/FileUploadButton/FileUploadButton.tsx +0 -27
  244. package/src/FileUploadButton/FileUploadButton.types.ts +0 -9
  245. package/src/FileUploadButton/index.ts +0 -3
  246. package/src/FloatingLabel/FloatingLabel.tsx +0 -22
  247. package/src/FloatingLabel/FloatingLabel.types.ts +0 -11
  248. package/src/FloatingLabel/index.ts +0 -3
  249. package/src/Form/Form.tsx +0 -399
  250. package/src/Form/Form.types.ts +0 -169
  251. package/src/Form/FormSelect.tsx +0 -620
  252. package/src/Form/index.ts +0 -4
  253. package/src/InputGroup/InputGroup.tsx +0 -46
  254. package/src/InputGroup/InputGroup.types.ts +0 -22
  255. package/src/InputGroup/index.ts +0 -4
  256. package/src/List/List.tsx +0 -112
  257. package/src/List/List.types.ts +0 -34
  258. package/src/List/index.ts +0 -4
  259. package/src/Modal/Modal.tsx +0 -229
  260. package/src/Modal/Modal.types.ts +0 -49
  261. package/src/Modal/index.ts +0 -4
  262. package/src/Nav/Nav.tsx +0 -43
  263. package/src/Nav/Nav.types.ts +0 -21
  264. package/src/Nav/index.ts +0 -4
  265. package/src/NavBar/Navbar.tsx +0 -57
  266. package/src/NavBar/Navbar.types.ts +0 -24
  267. package/src/NavBar/index.ts +0 -4
  268. package/src/NavDropdown/NavDropdown.tsx +0 -93
  269. package/src/NavDropdown/NavDropdown.types.ts +0 -7
  270. package/src/NavDropdown/index.ts +0 -3
  271. package/src/Overlay/Overlay.tsx +0 -305
  272. package/src/Overlay/Overlay.types.ts +0 -24
  273. package/src/Popout/Popout.tsx +0 -155
  274. package/src/Popout/Popout.types.ts +0 -42
  275. package/src/Popout/index.ts +0 -3
  276. package/src/Spinner/Spinner.tsx +0 -15
  277. package/src/Spinner/Spinner.types.ts +0 -7
  278. package/src/Spinner/index.ts +0 -3
  279. package/src/Table/Table.tsx +0 -16
  280. package/src/Table/Table.types.ts +0 -9
  281. package/src/Table/index.ts +0 -3
  282. package/src/Tabs/Tabs.tsx +0 -233
  283. package/src/Tabs/Tabs.types.ts +0 -52
  284. package/src/Tabs/index.ts +0 -3
  285. package/src/ToggleButton/ToggleButton.tsx +0 -21
  286. package/src/ToggleButton/ToggleButton.types.ts +0 -8
  287. package/src/ToggleButton/index.ts +0 -3
  288. package/src/assets/tooltip-pointer.svg +0 -3
  289. package/src/assets/warning.svg +0 -39
  290. package/src/hooks/useClassname.ts +0 -5
  291. package/src/hooks/useDraggable.ts +0 -186
  292. package/src/hooks/useKeepElementFocused.ts +0 -37
  293. package/src/hooks/useQueryParams.ts +0 -12
  294. package/src/hooks/useScreenSize.ts +0 -24
  295. package/src/index.ts +0 -21
  296. package/src/styles/_Card.scss +0 -166
  297. package/src/styles/_CloseButton.scss +0 -51
  298. package/src/styles/_CustomButton.scss +0 -134
  299. package/src/styles/_Dropdown.scss +0 -127
  300. package/src/styles/_FloatingLabel.scss +0 -56
  301. package/src/styles/_Forms.scss +0 -7
  302. package/src/styles/_Grid.scss +0 -178
  303. package/src/styles/_InputGroup.scss +0 -71
  304. package/src/styles/_List.scss +0 -62
  305. package/src/styles/_Modal.scss +0 -235
  306. package/src/styles/_ModalOld.scss +0 -242
  307. package/src/styles/_Nav.scss +0 -36
  308. package/src/styles/_NavBar.scss +0 -116
  309. package/src/styles/_NavDropdown.scss +0 -33
  310. package/src/styles/_OffCanvas.scss +0 -260
  311. package/src/styles/_OverLay.scss +0 -79
  312. package/src/styles/_Popout.scss +0 -75
  313. package/src/styles/_Resizable.scss +0 -64
  314. package/src/styles/_Spinner.scss +0 -19
  315. package/src/styles/_Table.scss +0 -34
  316. package/src/styles/_Tabs.scss +0 -129
  317. package/src/styles/_colors.scss +0 -510
  318. package/src/styles/_components.scss +0 -41
  319. package/src/styles/_functions.scss +0 -134
  320. package/src/styles/_mixins.scss +0 -26
  321. package/src/styles/_reset.scss +0 -239
  322. package/src/styles/_utilities.scss +0 -2480
  323. package/src/styles/_variables.scss +0 -164
  324. package/src/styles/forms/_FormCheck.scss +0 -270
  325. package/src/styles/forms/_FormControl.scss +0 -135
  326. package/src/styles/forms/_FormGroup.scss +0 -26
  327. package/src/styles/forms/_FormLabel.scss +0 -3
  328. package/src/styles/forms/_FormSelect.scss +0 -222
  329. package/src/styles/forms/_FormSlider.scss +0 -116
  330. package/src/styles/forms/_FormText.scss +0 -6
  331. package/src/utils/ContrastingColor.ts +0 -25
  332. package/src/utils/CreateSyntheticEvent.ts +0 -30
  333. package/src/utils/FileImportExport.js +0 -50
  334. package/src/utils/IsInputKey.ts +0 -18
  335. package/src/utils/MergeClassnames.ts +0 -5
  336. package/src/utils/MergeRefs.ts +0 -12
  337. package/src/utils/createFastContext.tsx +0 -120
  338. package/src/utils/index.ts +0 -4
  339. package/src/vite-env.d.ts +0 -1
  340. package/tsconfig-build.json +0 -4
  341. package/tsconfig.json +0 -79
  342. package/tsconfig.node.json +0 -10
  343. package/types/BaseTypes.d.ts +0 -19
  344. package/types/components/Button/index.d.ts +0 -1
  345. package/types/components/Card/index.d.ts +0 -1
  346. package/types/components/CloseButton/index.d.ts +0 -1
  347. package/types/components/Dropdown/Dropdown.d.ts +0 -71
  348. package/types/components/Dropdown/index.d.ts +0 -1
  349. package/types/components/FloatingLabel/index.d.ts +0 -1
  350. package/types/components/Form/Form.d.ts +0 -17
  351. package/types/components/Form/Form.types.d.ts +0 -50
  352. package/types/components/Form/index.d.ts +0 -1
  353. package/types/components/InputGroup/InputGroup.d.ts +0 -6
  354. package/types/components/InputGroup/InputGroup.types.d.ts +0 -10
  355. package/types/components/InputGroup/index.d.ts +0 -1
  356. package/types/components/Modal/index.d.ts +0 -1
  357. package/types/components/Nav/index.d.ts +0 -1
  358. package/types/components/NavBar/index.d.ts +0 -1
  359. package/types/components/NavDropdown/NavDropdown.d.ts +0 -35
  360. package/types/components/NavDropdown/index.d.ts +0 -1
  361. package/types/components/Popout/index.d.ts +0 -1
  362. package/types/components/Spinner/index.d.ts +0 -1
  363. package/types/components/Table/index.d.ts +0 -1
  364. package/types/components/Tabs/index.d.ts +0 -1
  365. package/types/components/ToggleButton/ToggleButton.d.ts +0 -9
  366. package/types/components/ToggleButton/ToggleButton.types.d.ts +0 -0
  367. package/types/components/ToggleButton/index.d.ts +0 -1
  368. package/types/components/index.d.ts +0 -16
  369. package/types/index.d.ts +0 -1
  370. package/vite.config.js +0 -57
  371. package/vite.config.js.timestamp-1708777378490-e94428ceb2bf9.mjs +0 -42
  372. /package/{types/components/Button → Button}/Button.d.ts +0 -0
  373. /package/{types/components/CloseButton → CloseButton}/CloseButton.d.ts +0 -0
  374. /package/{types/components/FloatingLabel → FloatingLabel}/FloatingLabel.d.ts +0 -0
  375. /package/{types/components/Spinner → Spinner}/Spinner.d.ts +0 -0
  376. /package/{types/components/Spinner → Spinner}/Spinner.types.d.ts +0 -0
  377. /package/{types/components/Table → Table}/Table.d.ts +0 -0
  378. /package/{types/components/Tabs → Tabs}/Tabs.d.ts +0 -0
@@ -0,0 +1,380 @@
1
+ 'use client';
2
+ import { jsx, jsxs } from 'react/jsx-runtime';
3
+ import { createContext, forwardRef, useState, useCallback, useMemo, useRef, useEffect, useLayoutEffect, useContext } from 'react';
4
+ import { createPortal } from 'react-dom';
5
+ import mergeRefs from '../utils/MergeRefs.js';
6
+
7
+ //automatic menu placement function
8
+ const getDropdownMenuPlacement = (controlId, drop = "down", align = "start") => {
9
+ const dropPossible = ["down", "up", "right", "left"];
10
+ const alignPossible = ["start", "end", "center"];
11
+ const placement = (dropPossible.find(item => item === drop) ? drop : "down") + "-" + (alignPossible.find(item => item === align) ? align : "start");
12
+ const button = document.getElementById(controlId);
13
+ if (!button)
14
+ return {};
15
+ const { width: buttonWidth, height: buttonHeight, x: buttonLeft, y: buttonTop } = button.getBoundingClientRect();
16
+ //console.log(buttonLeft)
17
+ const menu = document.getElementById(controlId + "-menu");
18
+ const { width: menuWidth, height: menuHeight } = menu.getBoundingClientRect();
19
+ const navbars = Array.from(document.querySelectorAll(".sg-navbar"));
20
+ if (navbars) {
21
+ for (const navbar of navbars) {
22
+ if (navbar.contains(button)) {
23
+ menu.style.setProperty("position", "absolute");
24
+ }
25
+ }
26
+ }
27
+ const position = {};
28
+ const offset = 2; //"4px"
29
+ switch (drop) {
30
+ case "down":
31
+ //position.top = `calc(100% + ${offset})`
32
+ position.top = buttonTop + buttonHeight + offset;
33
+ break;
34
+ case "up":
35
+ //position.bottom = `calc(100% + ${offset})`
36
+ position.top = buttonTop - menuHeight - offset;
37
+ break;
38
+ case "right":
39
+ //position.left = `calc(100% + ${offset})`
40
+ position.left = buttonLeft + buttonWidth + offset;
41
+ break;
42
+ case "left":
43
+ //position.right = `calc(100% + ${offset})`
44
+ position.left = buttonLeft - menuWidth - offset;
45
+ break;
46
+ }
47
+ switch (placement) {
48
+ case "down-start":
49
+ case "up-start":
50
+ //position.left = -2
51
+ position.left = buttonLeft;
52
+ break;
53
+ case "down-center":
54
+ case "up-center":
55
+ position.left = buttonLeft + -1 * (menuWidth - buttonWidth) / 2;
56
+ break;
57
+ case "down-end":
58
+ case "up-end":
59
+ position.left = buttonLeft + -1 * (menuWidth - buttonWidth);
60
+ break;
61
+ case "right-start":
62
+ case "left-start":
63
+ position.top = buttonTop;
64
+ break;
65
+ case "right-center":
66
+ case "left-center":
67
+ position.top = buttonTop + -1 * (menuHeight - buttonHeight) / 2;
68
+ break;
69
+ case "right-end":
70
+ case "left-end":
71
+ position.top = buttonTop + -1 * (menuHeight - buttonHeight);
72
+ }
73
+ return position;
74
+ };
75
+ // is click event on the menu
76
+ const isEventOnMenu = (event, controlId = "") => {
77
+ const element = event.target;
78
+ const eventIsOnMenu = document.getElementById(controlId + "-menu").contains(element);
79
+ return eventIsOnMenu;
80
+ };
81
+ const DropdownContext = createContext(null);
82
+ const DropdownContextProvider = ({ children, value }) => {
83
+ return (jsx(DropdownContext.Provider, { value: value, children: children }));
84
+ };
85
+ const useDropdownContext = () => {
86
+ const context = useContext(DropdownContext);
87
+ if (!context) {
88
+ throw new Error("useDropdownContext has to be used within DropdownContextProvider!");
89
+ }
90
+ return context;
91
+ };
92
+ const Dropdown = forwardRef(({ children, className, onSelect, onToggle, controlId, navDropdown = false, drop = "down", align = "start", autoClose = true, show = "default", label, as = "button", variant = "primary", menuRef, menuProps, ...restProps }, ref) => {
93
+ const [showInternal, setShowInternal] = useState(show === "default" ? false : show);
94
+ // this is an object like {index: string} because we need it to rerender even if the case is the same
95
+ // aka we use a "next/previous" case to navigate through the dropdown menu so need to rerender consecutive "next" cases
96
+ const [activeDescendant, setActiveDescendant] = useState({ case: "" });
97
+ const internalOnToggle = useCallback((event) => {
98
+ event.stopPropagation();
99
+ //console.log("toggle")
100
+ setShowInternal(prev => !prev);
101
+ }, []);
102
+ const contextValue = useMemo(() => ({
103
+ align,
104
+ drop,
105
+ showInternal: show != "default" && onToggle ? show : showInternal,
106
+ handleToggle: show != "default" && onToggle ? onToggle : internalOnToggle,
107
+ controlId: controlId,
108
+ activeDescendant,
109
+ setActiveDescendant,
110
+ navDropdown: navDropdown
111
+ }), [align, drop, show, showInternal, onToggle, controlId, activeDescendant, setActiveDescendant, navDropdown]);
112
+ let computedClassName = className ? className + " sg-dropdown" : "sg-dropdown";
113
+ computedClassName += navDropdown ? " sg-nav-item" : "";
114
+ return (jsx(DropdownContextProvider, { value: contextValue, children: jsx(Toggle, { ...restProps, ref: ref, className: computedClassName, label: label, "data-nav": navDropdown ? "true" : null, children: jsx(Menu, { ref: menuRef, ...menuProps, children: children }) }) }));
115
+ });
116
+ Dropdown.displayName = "Dropdown";
117
+ const Toggle = forwardRef(({ children, className, as = "button", variant = "primary", label = "add label", onClick, onBlur, ...restProps }, ref) => {
118
+ const internalRef = useRef(null);
119
+ const { controlId, handleToggle, setActiveDescendant, showInternal, navDropdown, drop } = useDropdownContext();
120
+ const Component = as;
121
+ const handleKeyPress = (event) => {
122
+ let flag = false;
123
+ switch (event.key) {
124
+ case "ArrowDown":
125
+ flag = true;
126
+ if (showInternal) {
127
+ setActiveDescendant(prev => ({ ...prev, case: "next" }));
128
+ }
129
+ else {
130
+ handleToggle(event);
131
+ setActiveDescendant(prev => ({ ...prev, case: "first" }));
132
+ }
133
+ break;
134
+ case "ArrowUp":
135
+ flag = true;
136
+ if (showInternal) {
137
+ setActiveDescendant(prev => ({ ...prev, case: "previous" }));
138
+ }
139
+ else {
140
+ handleToggle(event);
141
+ setActiveDescendant(prev => ({ ...prev, case: "last" }));
142
+ }
143
+ break;
144
+ case "Home":
145
+ flag = true;
146
+ if (showInternal) {
147
+ setActiveDescendant(prev => ({ ...prev, case: "first" }));
148
+ }
149
+ break;
150
+ case "End":
151
+ flag = true;
152
+ if (showInternal) {
153
+ setActiveDescendant(prev => ({ ...prev, case: "last" }));
154
+ }
155
+ break;
156
+ case "Tab":
157
+ if (showInternal) {
158
+ handleToggle(event);
159
+ }
160
+ break;
161
+ case "Escape":
162
+ flag = true;
163
+ if (showInternal) {
164
+ handleToggle(event);
165
+ }
166
+ break;
167
+ case "Enter":
168
+ case " ":
169
+ if (showInternal) {
170
+ flag = true;
171
+ const activeElement = document.querySelector(".sg-dropdown-item-visual-focus");
172
+ activeElement.click();
173
+ handleToggle(event);
174
+ break;
175
+ }
176
+ else {
177
+ setActiveDescendant(prev => ({ ...prev, case: "first" }));
178
+ break;
179
+ }
180
+ }
181
+ if (flag) {
182
+ event.stopPropagation();
183
+ event.preventDefault();
184
+ }
185
+ };
186
+ const handleMouseUp = (event) => {
187
+ if (!showInternal)
188
+ return;
189
+ if (event.target.id === controlId)
190
+ return;
191
+ if (!isEventOnMenu(event, controlId)) {
192
+ handleToggle(event);
193
+ }
194
+ else if (isEventOnMenu(event, controlId)) {
195
+ event.stopPropagation();
196
+ handleToggle(event);
197
+ const toggleElement = document.getElementById(controlId);
198
+ toggleElement?.focus();
199
+ }
200
+ };
201
+ useEffect(() => {
202
+ const toggleElement = document.getElementById(controlId);
203
+ toggleElement.addEventListener("keydown", handleKeyPress, true);
204
+ document.addEventListener("mouseup", handleMouseUp, true);
205
+ return function cleanup() {
206
+ toggleElement.removeEventListener("keydown", handleKeyPress, true);
207
+ document.removeEventListener("mouseup", handleMouseUp, true);
208
+ };
209
+ }, [handleKeyPress, controlId]);
210
+ const toggleButtonClick = (event) => {
211
+ handleToggle(event);
212
+ if (!showInternal) {
213
+ setActiveDescendant(prev => ({ ...prev, case: "first" }));
214
+ }
215
+ if (onClick)
216
+ onClick(event);
217
+ };
218
+ const handleBlur = (event) => {
219
+ //handleToggle(event)
220
+ if (onBlur)
221
+ onBlur(event);
222
+ };
223
+ let classNamesComputed = `sg-button sg-button${variant ? "-" + variant : "-primary"} sg-dropdown-toggle${className ? " " + className : ""}`;
224
+ if (Component === "a" || navDropdown) {
225
+ classNamesComputed = `sg-nav-dropdown-toggle sg-dropdown-toggle${className ? " " + className : ""}`;
226
+ }
227
+ return (jsxs("button", { ref: mergeRefs([ref, internalRef]), tabIndex: 0, type: "button", "aria-haspopup": "true", "aria-controls": controlId + "-menu", "aria-expanded": showInternal, id: controlId, className: classNamesComputed, "data-drop": drop, onClick: toggleButtonClick, onBlur: handleBlur, ...restProps, children: [label, children] }));
228
+ });
229
+ Toggle.displayName = "DropdownToggle";
230
+ const isValidListElement = (elementList, startIndex, direction) => {
231
+ let testIndex = startIndex;
232
+ let count = 0;
233
+ let stop = false;
234
+ while (!stop) {
235
+ const test1 = elementList[testIndex].children[0] ? true : false;
236
+ const liItem = elementList[testIndex];
237
+ const test2 = getComputedStyle(liItem).getPropertyValue("display") != "none";
238
+ const test3 = test1 ? getComputedStyle(liItem.children[0]).getPropertyValue("display") != "none" : false;
239
+ if (test1 && test2 && test3) {
240
+ stop = true;
241
+ break;
242
+ }
243
+ if (direction === "forward" && testIndex === elementList.length - 1) {
244
+ testIndex = 0;
245
+ }
246
+ else if (direction === "backward" && testIndex === 0) {
247
+ testIndex = elementList.length - 1;
248
+ }
249
+ else {
250
+ testIndex += direction === "forward" ? 1 : -1;
251
+ }
252
+ count += 1;
253
+ if (count >= 100) {
254
+ stop = true;
255
+ }
256
+ }
257
+ return testIndex;
258
+ };
259
+ const Menu = forwardRef(({ children, className, style = {}, ...restProps }, ref) => {
260
+ const { controlId, showInternal, activeDescendant, navDropdown, align, drop } = useDropdownContext();
261
+ const [computedStyle, setComputedStyle] = useState({});
262
+ useLayoutEffect(() => {
263
+ if (showInternal) {
264
+ const basePosition = getDropdownMenuPlacement(controlId, drop, align);
265
+ setComputedStyle(basePosition);
266
+ }
267
+ }, [showInternal, drop, align, controlId]);
268
+ const handleResize = (event) => {
269
+ const basePosition = getDropdownMenuPlacement(controlId, drop, align);
270
+ setComputedStyle(basePosition);
271
+ };
272
+ useEffect(() => {
273
+ const controller = new AbortController();
274
+ const signal = controller.signal;
275
+ if (showInternal) {
276
+ const menu = document.getElementById(controlId + "-menu");
277
+ const menuChildren = document.getElementById(controlId + "-menu").children;
278
+ const menuChildrenLast = menuChildren.length - 1;
279
+ const elementWithVisualFocus = document.querySelector(".sg-dropdown-item-visual-focus");
280
+ let currentIndex = 0, currentChild = menuChildren[0].children[0];
281
+ if (elementWithVisualFocus != null) {
282
+ elementWithVisualFocus.classList.remove("sg-dropdown-item-visual-focus");
283
+ for (let i = 0; i < menuChildren.length; i++) {
284
+ if (menuChildren[i] === elementWithVisualFocus.parentElement) {
285
+ currentIndex = i;
286
+ break;
287
+ }
288
+ }
289
+ }
290
+ switch (activeDescendant.case) {
291
+ case "first":
292
+ currentIndex = isValidListElement(menuChildren, 0, "forward");
293
+ currentChild = menuChildren[currentIndex].children[0];
294
+ break;
295
+ case "last":
296
+ currentIndex = isValidListElement(menuChildren, menuChildrenLast, "backward");
297
+ currentChild = menuChildren[currentIndex].children[0];
298
+ break;
299
+ case "next":
300
+ currentIndex = isValidListElement(menuChildren, currentIndex === menuChildrenLast ? 0 : currentIndex + 1, "forward");
301
+ currentChild = menuChildren[currentIndex].children[0];
302
+ break;
303
+ case "previous":
304
+ currentIndex = isValidListElement(menuChildren, currentIndex === 0 ? menuChildrenLast : currentIndex - 1, "backward");
305
+ currentChild = menuChildren[currentIndex].children[0];
306
+ break;
307
+ }
308
+ menu.setAttribute("aria-activedescendant", currentChild.id);
309
+ menuChildren[currentIndex].children[0].classList.add("sg-dropdown-item-visual-focus");
310
+ //makes it so that the menu stays with the button
311
+ window.addEventListener("resize", event => handleResize(), { capture: true, signal });
312
+ window.addEventListener("scroll", event => handleResize(), { capture: true, signal });
313
+ }
314
+ else {
315
+ const menu = document.getElementById(controlId + "-menu");
316
+ menu.setAttribute("aria-activedescendant", "");
317
+ }
318
+ return function cleanup() {
319
+ controller.abort();
320
+ };
321
+ }, [controlId, showInternal, activeDescendant]);
322
+ const handleMouseOver = (event) => {
323
+ const target = event.target;
324
+ const active = target.classList.contains("sg-dropdown-item-visual-focus");
325
+ const menuId = controlId + "-menu";
326
+ const menu = document.getElementById(menuId);
327
+ if (active) {
328
+ return;
329
+ }
330
+ else {
331
+ document.querySelector(".sg-dropdown-item-visual-focus")?.classList.remove("sg-dropdown-item-visual-focus");
332
+ menu.setAttribute("aria-activedescendant", "");
333
+ target.classList.add("sg-dropdown-item-visual-focus");
334
+ menu.setAttribute("aria-activedescendant", target.id);
335
+ }
336
+ };
337
+ useEffect(() => {
338
+ const menu = document.getElementById(controlId + "-menu");
339
+ for (let i = 0; i < menu.children.length; i++) {
340
+ if (menu.children[i].children[0]) {
341
+ menu.children[i].addEventListener("mouseover", handleMouseOver, true);
342
+ }
343
+ }
344
+ return function cleanup() {
345
+ for (let i = 0; i < menu.children.length; i++) {
346
+ if (menu.children[i].children[0]) {
347
+ menu.children[i].addEventListener("mouseover", handleMouseOver, true);
348
+ }
349
+ }
350
+ };
351
+ }, []);
352
+ return (createPortal(jsx("ul", { id: controlId + "-menu", role: "menu", tabIndex: -1, "aria-labelledby": controlId, "data-navdropdown": navDropdown ? "true" : "false", ref: ref, className: `sg-dropdown-list${className ? " " + className : ""}${showInternal ? " show" : ""}`, style: { ...computedStyle, ...style }, ...restProps, children: children }), document.body));
353
+ });
354
+ Menu.displayName = "DropdownMenu";
355
+ const Item = forwardRef(({ children, as = "button", className, liProps, onClick, ...restProps }, ref) => {
356
+ const { navDropdown, activeDescendant } = useDropdownContext();
357
+ const Component = navDropdown ? "a" : as;
358
+ const handleClick = (event) => {
359
+ event.stopPropagation();
360
+ event.preventDefault();
361
+ if (onClick)
362
+ onClick(event);
363
+ };
364
+ return (jsx("li", { role: "none", ...liProps, children: jsx(Component, { ref: ref, role: "menuitem", tabIndex: "-1", onClick: handleClick, className: `sg-dropdown-item${className ? " " + className : ""}`, ...restProps, children: children }) }));
365
+ });
366
+ Item.displayName = "DropdownItem";
367
+ const Divider = forwardRef(({ className = "", ...restProps }, ref) => {
368
+ return (jsx("hr", { ref: ref, className: `.sg-dropdown-divider${className}`, ...restProps }));
369
+ });
370
+ Divider.displayName = "DropdownDivider";
371
+ var Dropdown$1 = Object.assign(Dropdown, {
372
+ Toggle: Toggle,
373
+ Menu: Menu,
374
+ Item: Item,
375
+ //Text: Text,
376
+ Divider: Divider
377
+ });
378
+
379
+ export { Divider, DropdownContext, DropdownContextProvider, Item, Menu, Toggle, Dropdown$1 as default, useDropdownContext };
380
+ //# sourceMappingURL=Dropdown.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Dropdown.js","sources":["../../src/Dropdown/Dropdown.tsx"],"sourcesContent":[null],"names":["_jsx","_jsxs"],"mappings":"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"}
@@ -1,19 +1,10 @@
1
1
  import { ReactNode } from "react";
2
- import { BaseDivType, BaseAnchorType, BaseButtonType, BaseUListType, BaseHrType, BaseElementType } from "../../BaseTypes";
2
+ import { BaseAnchorType, BaseButtonType, BaseUListType, BaseHrType, BaseLItemType } from "../utils/BaseTypes";
3
3
  export type DropdownContextType = {
4
4
  align: string;
5
5
  drop: string;
6
6
  showInternal: boolean;
7
7
  handleToggle: Function;
8
- placement: string;
9
- directionClasses?: {
10
- down?: string;
11
- 'down-centered'?: string;
12
- up?: string;
13
- 'up-centered'?: string;
14
- end?: string;
15
- start?: string;
16
- };
17
8
  controlId: string;
18
9
  activeDescendant: {
19
10
  case: string;
@@ -21,10 +12,12 @@ export type DropdownContextType = {
21
12
  setActiveDescendant: React.Dispatch<React.SetStateAction<{
22
13
  case: string;
23
14
  }>>;
15
+ navDropdown: boolean;
24
16
  };
25
17
  export type DropdownType = {
26
18
  children: ReactNode;
27
19
  className?: string;
20
+ navDropdown?: boolean;
28
21
  onSelect?: Function;
29
22
  onToggle?: Function;
30
23
  controlId: string;
@@ -32,14 +25,21 @@ export type DropdownType = {
32
25
  align?: string;
33
26
  autoClose?: boolean;
34
27
  show?: boolean;
35
- } & BaseDivType;
28
+ label: string;
29
+ as?: React.ElementType;
30
+ variant?: string;
31
+ menuRef?: any;
32
+ menuProps: DropdownMenuType;
33
+ } & BaseButtonType;
36
34
  export type DropdownToggleType = {
37
35
  children: ReactNode;
38
36
  className?: string;
37
+ onClick?: (event: React.MouseEvent<HTMLButtonElement, MouseEvent>) => void;
39
38
  navDropdown?: boolean;
40
39
  as?: React.ElementType;
41
40
  variant?: string;
42
- } & (BaseAnchorType | BaseButtonType | BaseElementType);
41
+ label: string;
42
+ } & BaseButtonType;
43
43
  export type DropdownMenuType = {
44
44
  children: ReactNode;
45
45
  className?: string;
@@ -49,6 +49,7 @@ export type DropdownItemType = {
49
49
  children: ReactNode;
50
50
  as?: React.ElementType;
51
51
  className?: string;
52
+ liProps: BaseLItemType;
52
53
  } & (BaseAnchorType | BaseButtonType);
53
54
  export type DropdownDividerType = {
54
55
  className?: string;
@@ -0,0 +1,4 @@
1
+ import Dropdown from "./Dropdown";
2
+ export default Dropdown;
3
+ export { DropdownContext, DropdownContextProvider, useDropdownContext } from "./Dropdown";
4
+ export type { DropdownContextType, DropdownDividerType, DropdownItemType, DropdownMenuType, DropdownToggleType, DropdownType } from "./Dropdown.types";
@@ -0,0 +1,8 @@
1
+ 'use client';
2
+ import Dropdown from './Dropdown.js';
3
+ export { DropdownContext, DropdownContextProvider, useDropdownContext } from './Dropdown.js';
4
+
5
+
6
+
7
+ export { Dropdown as default };
8
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;"}
@@ -0,0 +1 @@
1
+ {"name":"stargazer-ui/Dropdown","private":false,"module":"./index.js","types":"./index.d.ts","peerDependencies":{"lodash":"^4.17.21","react":">=17.0.0","react-dom":">=17.0.0"}}
@@ -0,0 +1,4 @@
1
+ import React from "react";
2
+ import { FileUploadButtonType } from "./FileUploadButton.types";
3
+ declare const FileUploadButton: React.ForwardRefExoticComponent<Omit<FileUploadButtonType, "ref"> & React.RefAttributes<HTMLButtonElement>>;
4
+ export default FileUploadButton;
@@ -0,0 +1,20 @@
1
+ 'use client';
2
+ import { jsxs, Fragment, jsx } from 'react/jsx-runtime';
3
+ import { forwardRef, useRef } from 'react';
4
+ import Button from '../Button/Button.js';
5
+
6
+ const FileUploadButton = forwardRef(({ children, onClick, onFileUpload, controlId, id, ...props }, ref) => {
7
+ const inputRef = useRef(null);
8
+ const handleClick = (event) => {
9
+ if (!inputRef.current)
10
+ return;
11
+ inputRef.current.click();
12
+ if (onClick) {
13
+ onClick(event);
14
+ }
15
+ };
16
+ return (jsxs(Fragment, { children: [jsx(Button, { ref: ref, id: controlId ?? id, onClick: handleClick, ...props, children: children }), jsx("input", { "aria-labelledby": controlId ?? id, ref: inputRef, className: "custom-upload", type: "file", onChange: onFileUpload })] }));
17
+ });
18
+
19
+ export { FileUploadButton as default };
20
+ //# sourceMappingURL=FileUploadButton.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FileUploadButton.js","sources":["../../src/FileUploadButton/FileUploadButton.tsx"],"sourcesContent":[null],"names":["_jsxs","_jsx"],"mappings":";;;;;AAMM,MAAA,gBAAgB,GAAG,UAAU,CAA2C,CAAC,EAAC,QAAQ,EAAE,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,EAAE,EAAE,GAAG,KAAK,EAAC,EAAE,GAAG,KAAI;AAC9I,IAAA,MAAM,QAAQ,GAAG,MAAM,CAAmB,IAAI,CAAC;AAC/C,IAAA,MAAM,WAAW,GAAG,CAAC,KAA0C,KAAI;QAC/D,IAAG,CAAC,QAAQ,CAAC,OAAO;YAAE;AACtB,QAAA,QAAQ,CAAC,OAAO,CAAC,KAAK,EAAE;QACxB,IAAG,OAAO,EAAE;YACR,OAAO,CAAC,KAAK,CAAC;;AAEtB,KAAC;IAED,QACIA,4BACIC,GAAC,CAAA,MAAM,IAAC,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,SAAS,IAAI,EAAE,EAAE,OAAO,EAAE,WAAW,EAAA,GAAM,KAAK,EAAA,QAAA,EACjE,QAAQ,EAAA,CACJ,EACTA,GAAwB,CAAA,OAAA,EAAA,EAAA,iBAAA,EAAA,SAAS,IAAI,EAAE,EAAE,GAAG,EAAE,QAAQ,EAAE,SAAS,EAAC,eAAe,EAAC,IAAI,EAAC,MAAM,EAAC,QAAQ,EAAE,YAAY,EAAA,CAAU,CAC/H,EAAA,CAAA;AAEX,CAAC;;;;"}
@@ -0,0 +1,7 @@
1
+ import { ReactNode } from "react";
2
+ import { ButtonType } from "../Button";
3
+ export type FileUploadButtonType = {
4
+ children: ReactNode;
5
+ onFileUpload: React.ChangeEventHandler<HTMLInputElement>;
6
+ controlId: string;
7
+ } & ButtonType;
@@ -0,0 +1,3 @@
1
+ import FileUploadButton from "./FileUploadButton";
2
+ export default FileUploadButton;
3
+ export { FileUploadButtonType } from "./FileUploadButton.types";
@@ -0,0 +1,7 @@
1
+ 'use client';
2
+ import FileUploadButton from './FileUploadButton.js';
3
+
4
+
5
+
6
+ export { FileUploadButton as default };
7
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;"}
@@ -0,0 +1 @@
1
+ {"name":"stargazer-ui/FileUploadButton","private":false,"module":"./index.js","types":"./index.d.ts","peerDependencies":{"lodash":"^4.17.21","react":">=17.0.0","react-dom":">=17.0.0"}}
@@ -0,0 +1,15 @@
1
+ 'use client';
2
+ import { jsx, jsxs } from 'react/jsx-runtime';
3
+ import { forwardRef, useMemo } from 'react';
4
+ import { FormContextProvider } from '../Form/Form.js';
5
+
6
+ const FloatingLabel = forwardRef(({ children, label, controlId, className, htmlFor, ...restProps }, ref) => {
7
+ const context = useMemo(() => {
8
+ return { controlId: controlId, isFLoatingLabel: true };
9
+ }, [controlId]);
10
+ return (jsx(FormContextProvider, { value: context, children: jsxs("div", { className: `sg-form-floating`, children: [children, jsx("label", { ref: ref, htmlFor: controlId, className: "sg-form-floating-label", ...restProps, children: label })] }) }));
11
+ });
12
+ FloatingLabel.displayName = "FloatingLabel";
13
+
14
+ export { FloatingLabel as default };
15
+ //# sourceMappingURL=FloatingLabel.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FloatingLabel.js","sources":["../../src/FloatingLabel/FloatingLabel.tsx"],"sourcesContent":[null],"names":["_jsx","_jsxs"],"mappings":";;;;;AAMM,MAAA,aAAa,GAAG,UAAU,CAAuC,CAAC,EAAC,QAAQ,EAAE,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,OAAO,EAAC,GAAG,SAAS,EAAC,EAAE,GAAG,KAAI;AAC1I,IAAA,MAAM,OAAO,GAAG,OAAO,CAAkB,MAAK;QAC1C,OAAO,EAAC,SAAS,EAAE,SAAS,EAAE,eAAe,EAAE,IAAI,EAAC;AACxD,KAAC,EAAE,CAAC,SAAS,CAAC,CAAC;AACf,IAAA,QACIA,GAAA,CAAC,mBAAmB,EAAA,EAAC,KAAK,EAAE,OAAO,EAC/B,QAAA,EAAAC,IAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAE,CAAA,gBAAA,CAAkB,EAC7B,QAAA,EAAA,CAAA,QAAQ,EACTD,GAAO,CAAA,OAAA,EAAA,EAAA,GAAG,EAAE,GAAG,EAAE,OAAO,EAAE,SAAS,EAAE,SAAS,EAAC,wBAAwB,EAAK,GAAA,SAAS,YAAG,KAAK,EAAA,CAAS,CACpG,EAAA,CAAA,EAAA,CACY;AAE9B,CAAC;AACD,aAAa,CAAC,WAAW,GAAG,eAAe;;;;"}
@@ -1,5 +1,5 @@
1
1
  import { ReactNode } from "react";
2
- import { BaseLabelType } from "../../BaseTypes";
2
+ import { BaseLabelType } from "../utils/BaseTypes";
3
3
  export type FloatingLabelType = {
4
4
  children: ReactNode;
5
5
  className?: string;
@@ -0,0 +1,3 @@
1
+ import FloatingLabel from "./FloatingLabel";
2
+ export default FloatingLabel;
3
+ export type { FloatingLabelType } from "./FloatingLabel.types";
@@ -0,0 +1,7 @@
1
+ 'use client';
2
+ import FloatingLabel from './FloatingLabel.js';
3
+
4
+
5
+
6
+ export { FloatingLabel as default };
7
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;"}
@@ -0,0 +1 @@
1
+ {"name":"stargazer-ui/FloatingLabel","private":false,"module":"./index.js","types":"./index.d.ts","peerDependencies":{"lodash":"^4.17.21","react":">=17.0.0","react-dom":">=17.0.0"}}
package/Form/Form.d.ts ADDED
@@ -0,0 +1,37 @@
1
+ import React from "react";
2
+ import { HintType, ErrorType, FormTagContextType, FormCheckType, FormContextType, FormControlType, FormGroupType, FormLabelType, FormSliderType, FormTextType, FormType, FormSelectTagType, SliderContextType, WarningIconType } from "./Form.types";
3
+ export declare const useFormTagContext: () => FormTagContextType | {
4
+ noValidate: null;
5
+ };
6
+ export declare const FormContext: React.Context<FormContextType | null>;
7
+ export declare const FormContextProvider: ({ children, value }: {
8
+ children: React.ReactNode;
9
+ value: FormContextType;
10
+ }) => import("react/jsx-runtime").JSX.Element;
11
+ export declare const useFormContext: () => FormContextType;
12
+ export declare const ErrorMessage: React.ForwardRefExoticComponent<Omit<ErrorType, "ref"> & React.RefAttributes<HTMLParagraphElement>>;
13
+ export declare const HintMessage: React.ForwardRefExoticComponent<Omit<HintType, "ref"> & React.RefAttributes<HTMLParagraphElement>>;
14
+ export declare const SliderContext: React.Context<SliderContextType | null>;
15
+ export declare const SliderContextProvider: ({ children, value }: {
16
+ children: React.ReactNode;
17
+ value: SliderContextType;
18
+ }) => import("react/jsx-runtime").JSX.Element;
19
+ export declare const useSliderContext: () => SliderContextType;
20
+ declare const _default: React.ForwardRefExoticComponent<Omit<FormType, "ref"> & React.RefAttributes<HTMLFormElement>> & {
21
+ Control: React.ForwardRefExoticComponent<Omit<FormControlType, "ref"> & React.RefAttributes<HTMLInputElement>>;
22
+ Select: React.ForwardRefExoticComponent<Omit<import("./Form.types").FormSelectType, "ref"> & React.RefAttributes<HTMLButtonElement>> & {
23
+ Control: React.ForwardRefExoticComponent<Omit<import("./Form.types").FormSelectControlType, "ref"> & React.RefAttributes<HTMLButtonElement>>;
24
+ Options: React.ForwardRefExoticComponent<Omit<import("./Form.types").FormSelectListType, "ref"> & React.RefAttributes<HTMLUListElement>>;
25
+ Option: React.ForwardRefExoticComponent<Omit<import("./Form.types").FormSelectOptionType, "ref"> & React.RefAttributes<HTMLLIElement>>;
26
+ };
27
+ SelectTag: React.ForwardRefExoticComponent<Omit<FormSelectTagType, "ref"> & React.RefAttributes<HTMLSelectElement>>;
28
+ Group: React.ForwardRefExoticComponent<Omit<FormGroupType, "ref"> & React.RefAttributes<HTMLDivElement>>;
29
+ Label: React.ForwardRefExoticComponent<Omit<FormLabelType, "ref"> & React.RefAttributes<HTMLLabelElement>>;
30
+ Check: React.ForwardRefExoticComponent<Omit<FormCheckType, "ref"> & React.RefAttributes<HTMLInputElement>>;
31
+ Text: React.ForwardRefExoticComponent<Omit<FormTextType, "ref"> & React.RefAttributes<HTMLElement>>;
32
+ Slider: React.ForwardRefExoticComponent<Omit<FormSliderType, "ref"> & React.RefAttributes<HTMLSpanElement>>;
33
+ WarningIcon: React.ForwardRefExoticComponent<Omit<WarningIconType, "ref"> & React.RefAttributes<SVGSVGElement>>;
34
+ Hint: React.ForwardRefExoticComponent<Omit<HintType, "ref"> & React.RefAttributes<HTMLParagraphElement>>;
35
+ Error: React.ForwardRefExoticComponent<Omit<ErrorType, "ref"> & React.RefAttributes<HTMLParagraphElement>>;
36
+ };
37
+ export default _default;