@nastechai-research/ui 0.18.2

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 (352) hide show
  1. package/CHANGELOG.md +5 -0
  2. package/README.md +21 -0
  3. package/dist/assets/filler-bg0.webp +0 -0
  4. package/dist/assets.d.ts +38 -0
  5. package/dist/fonts/Collapse-Bold.woff2 +0 -0
  6. package/dist/fonts/Collapse-BoldItalic.woff2 +0 -0
  7. package/dist/fonts/Collapse-Italic.woff2 +0 -0
  8. package/dist/fonts/Collapse-Light.woff2 +0 -0
  9. package/dist/fonts/Collapse-LightItalic.woff2 +0 -0
  10. package/dist/fonts/Collapse-Regular.woff2 +0 -0
  11. package/dist/fonts/Collapse-Thin.woff2 +0 -0
  12. package/dist/fonts/Collapse-ThinItalic.woff2 +0 -0
  13. package/dist/fonts/Mondwest-Regular.woff2 +0 -0
  14. package/dist/fonts/Neuebit-Bold.woff2 +0 -0
  15. package/dist/fonts/RulesCompressed-Medium.woff2 +0 -0
  16. package/dist/fonts/RulesCompressed-Regular.woff2 +0 -0
  17. package/dist/fonts/RulesExpanded-Bold.woff2 +0 -0
  18. package/dist/fonts/RulesExpanded-Regular.woff2 +0 -0
  19. package/dist/fonts.d.ts +6 -0
  20. package/dist/fonts.js +6 -0
  21. package/dist/hooks/use-below-breakpoint.d.ts +2 -0
  22. package/dist/hooks/use-below-breakpoint.js +17 -0
  23. package/dist/hooks/use-capped-frame.d.ts +2 -0
  24. package/dist/hooks/use-capped-frame.js +15 -0
  25. package/dist/hooks/use-confirm-delete.d.ts +10 -0
  26. package/dist/hooks/use-confirm-delete.js +35 -0
  27. package/dist/hooks/use-css-var-dims.d.ts +1 -0
  28. package/dist/hooks/use-css-var-dims.js +29 -0
  29. package/dist/hooks/use-gpu-tier.d.ts +34 -0
  30. package/dist/hooks/use-gpu-tier.js +111 -0
  31. package/dist/hooks/use-render-loop.d.ts +41 -0
  32. package/dist/hooks/use-render-loop.js +63 -0
  33. package/dist/hooks/use-smooth-controls.d.ts +16 -0
  34. package/dist/hooks/use-smooth-controls.js +217 -0
  35. package/dist/hooks/use-toast.d.ts +7 -0
  36. package/dist/hooks/use-toast.js +21 -0
  37. package/dist/index.d.ts +79 -0
  38. package/dist/index.js +107 -0
  39. package/dist/ui/basic-page.d.ts +7 -0
  40. package/dist/ui/basic-page.js +18 -0
  41. package/dist/ui/build.css +4 -0
  42. package/dist/ui/components/animated-count.d.ts +10 -0
  43. package/dist/ui/components/animated-count.js +113 -0
  44. package/dist/ui/components/ascii.d.ts +10 -0
  45. package/dist/ui/components/ascii.js +79 -0
  46. package/dist/ui/components/badge.d.ts +6 -0
  47. package/dist/ui/components/badge.js +40 -0
  48. package/dist/ui/components/badges/nous-girl.d.ts +2 -0
  49. package/dist/ui/components/badges/nous-girl.js +83 -0
  50. package/dist/ui/components/blend-mode.d.ts +28 -0
  51. package/dist/ui/components/blend-mode.js +69 -0
  52. package/dist/ui/components/blink.d.ts +6 -0
  53. package/dist/ui/components/blink.js +17 -0
  54. package/dist/ui/components/bottom-sheet.d.ts +15 -0
  55. package/dist/ui/components/bottom-sheet.js +192 -0
  56. package/dist/ui/components/button.d.ts +14 -0
  57. package/dist/ui/components/button.js +147 -0
  58. package/dist/ui/components/card.d.ts +5 -0
  59. package/dist/ui/components/card.js +74 -0
  60. package/dist/ui/components/checkbox.d.ts +2 -0
  61. package/dist/ui/components/checkbox.js +27 -0
  62. package/dist/ui/components/command-block.d.ts +24 -0
  63. package/dist/ui/components/command-block.js +56 -0
  64. package/dist/ui/components/confirm-dialog.d.ts +13 -0
  65. package/dist/ui/components/confirm-dialog.js +113 -0
  66. package/dist/ui/components/cursor.d.ts +3 -0
  67. package/dist/ui/components/cursor.js +97 -0
  68. package/dist/ui/components/dialog.d.ts +15 -0
  69. package/dist/ui/components/dialog.js +171 -0
  70. package/dist/ui/components/dropdown-menu.d.ts +12 -0
  71. package/dist/ui/components/dropdown-menu.js +102 -0
  72. package/dist/ui/components/fit-text/fit-text.css +42 -0
  73. package/dist/ui/components/fit-text/index.d.ts +9 -0
  74. package/dist/ui/components/fit-text/index.js +25 -0
  75. package/dist/ui/components/graphs/bar-chart.d.ts +12 -0
  76. package/dist/ui/components/graphs/bar-chart.js +129 -0
  77. package/dist/ui/components/graphs/index.d.ts +3 -0
  78. package/dist/ui/components/graphs/index.js +4 -0
  79. package/dist/ui/components/graphs/line-chart.d.ts +14 -0
  80. package/dist/ui/components/graphs/line-chart.js +175 -0
  81. package/dist/ui/components/graphs/utils.d.ts +52 -0
  82. package/dist/ui/components/graphs/utils.js +162 -0
  83. package/dist/ui/components/grid/grid.css +79 -0
  84. package/dist/ui/components/grid/index.d.ts +2 -0
  85. package/dist/ui/components/grid/index.js +17 -0
  86. package/dist/ui/components/hover-bg.d.ts +1 -0
  87. package/dist/ui/components/hover-bg.js +14 -0
  88. package/dist/ui/components/icons/arrow.d.ts +6 -0
  89. package/dist/ui/components/icons/arrow.js +44 -0
  90. package/dist/ui/components/icons/check.d.ts +2 -0
  91. package/dist/ui/components/icons/check.js +13 -0
  92. package/dist/ui/components/icons/chevron.d.ts +6 -0
  93. package/dist/ui/components/icons/chevron.js +51 -0
  94. package/dist/ui/components/icons/discord.d.ts +2 -0
  95. package/dist/ui/components/icons/discord.js +15 -0
  96. package/dist/ui/components/icons/eye.d.ts +2 -0
  97. package/dist/ui/components/icons/eye.js +8 -0
  98. package/dist/ui/components/icons/gear.d.ts +6 -0
  99. package/dist/ui/components/icons/gear.js +30 -0
  100. package/dist/ui/components/icons/github.d.ts +2 -0
  101. package/dist/ui/components/icons/github.js +15 -0
  102. package/dist/ui/components/icons/hamburger.d.ts +6 -0
  103. package/dist/ui/components/icons/hamburger.js +56 -0
  104. package/dist/ui/components/icons/heart.d.ts +2 -0
  105. package/dist/ui/components/icons/heart.js +11 -0
  106. package/dist/ui/components/icons/index.d.ts +12 -0
  107. package/dist/ui/components/icons/index.js +13 -0
  108. package/dist/ui/components/icons/link.d.ts +2 -0
  109. package/dist/ui/components/icons/link.js +13 -0
  110. package/dist/ui/components/icons/minus.d.ts +2 -0
  111. package/dist/ui/components/icons/minus.js +13 -0
  112. package/dist/ui/components/icons/search.d.ts +2 -0
  113. package/dist/ui/components/icons/search.js +33 -0
  114. package/dist/ui/components/image-distortion.d.ts +21 -0
  115. package/dist/ui/components/image-distortion.js +398 -0
  116. package/dist/ui/components/input.d.ts +1 -0
  117. package/dist/ui/components/input.js +21 -0
  118. package/dist/ui/components/label.d.ts +1 -0
  119. package/dist/ui/components/label.js +18 -0
  120. package/dist/ui/components/leva-client.d.ts +1 -0
  121. package/dist/ui/components/leva-client.js +12 -0
  122. package/dist/ui/components/list-item.d.ts +6 -0
  123. package/dist/ui/components/list-item.js +27 -0
  124. package/dist/ui/components/overlays/blend-modes.d.ts +1 -0
  125. package/dist/ui/components/overlays/blend-modes.js +14 -0
  126. package/dist/ui/components/overlays/glitch.d.ts +6 -0
  127. package/dist/ui/components/overlays/glitch.js +209 -0
  128. package/dist/ui/components/overlays/greys.d.ts +6 -0
  129. package/dist/ui/components/overlays/greys.js +339 -0
  130. package/dist/ui/components/overlays/index.d.ts +14 -0
  131. package/dist/ui/components/overlays/index.js +34 -0
  132. package/dist/ui/components/overlays/lens-layers.d.ts +14 -0
  133. package/dist/ui/components/overlays/lens-layers.js +95 -0
  134. package/dist/ui/components/overlays/lens.d.ts +44 -0
  135. package/dist/ui/components/overlays/lens.js +60 -0
  136. package/dist/ui/components/overlays/noise.d.ts +6 -0
  137. package/dist/ui/components/overlays/noise.js +136 -0
  138. package/dist/ui/components/overlays/vignette.d.ts +6 -0
  139. package/dist/ui/components/overlays/vignette.js +47 -0
  140. package/dist/ui/components/poster.d.ts +62 -0
  141. package/dist/ui/components/poster.js +256 -0
  142. package/dist/ui/components/progress.d.ts +9 -0
  143. package/dist/ui/components/progress.js +53 -0
  144. package/dist/ui/components/scene-canvas.d.ts +23 -0
  145. package/dist/ui/components/scene-canvas.js +179 -0
  146. package/dist/ui/components/scramble.d.ts +9 -0
  147. package/dist/ui/components/scramble.js +63 -0
  148. package/dist/ui/components/segmented.d.ts +20 -0
  149. package/dist/ui/components/segmented.js +51 -0
  150. package/dist/ui/components/select.d.ts +18 -0
  151. package/dist/ui/components/select.js +215 -0
  152. package/dist/ui/components/selection-switcher.d.ts +1 -0
  153. package/dist/ui/components/selection-switcher.js +34 -0
  154. package/dist/ui/components/separator.d.ts +5 -0
  155. package/dist/ui/components/separator.js +22 -0
  156. package/dist/ui/components/shader.d.ts +7 -0
  157. package/dist/ui/components/shader.js +60 -0
  158. package/dist/ui/components/socials.d.ts +20 -0
  159. package/dist/ui/components/socials.js +21 -0
  160. package/dist/ui/components/spinner.d.ts +20 -0
  161. package/dist/ui/components/spinner.js +38 -0
  162. package/dist/ui/components/stats.d.ts +16 -0
  163. package/dist/ui/components/stats.js +36 -0
  164. package/dist/ui/components/switch.d.ts +7 -0
  165. package/dist/ui/components/switch.js +37 -0
  166. package/dist/ui/components/tabs.d.ts +14 -0
  167. package/dist/ui/components/tabs.js +44 -0
  168. package/dist/ui/components/terminal-demo.d.ts +32 -0
  169. package/dist/ui/components/terminal-demo.js +125 -0
  170. package/dist/ui/components/theme-toggle.d.ts +6 -0
  171. package/dist/ui/components/theme-toggle.js +66 -0
  172. package/dist/ui/components/tier-card.d.ts +53 -0
  173. package/dist/ui/components/tier-card.js +146 -0
  174. package/dist/ui/components/toast.d.ts +8 -0
  175. package/dist/ui/components/toast.js +39 -0
  176. package/dist/ui/components/tv.d.ts +3 -0
  177. package/dist/ui/components/tv.js +239 -0
  178. package/dist/ui/components/typography/h1.d.ts +11 -0
  179. package/dist/ui/components/typography/h1.js +18 -0
  180. package/dist/ui/components/typography/h2.d.ts +11 -0
  181. package/dist/ui/components/typography/h2.js +18 -0
  182. package/dist/ui/components/typography/index.d.ts +15 -0
  183. package/dist/ui/components/typography/index.js +41 -0
  184. package/dist/ui/components/typography/legend.d.ts +6 -0
  185. package/dist/ui/components/typography/legend.js +20 -0
  186. package/dist/ui/components/typography/small.d.ts +2 -0
  187. package/dist/ui/components/typography/small.js +9 -0
  188. package/dist/ui/components/watchlist.d.ts +11 -0
  189. package/dist/ui/components/watchlist.js +80 -0
  190. package/dist/ui/fonts.css +63 -0
  191. package/dist/ui/footer.d.ts +20 -0
  192. package/dist/ui/footer.js +65 -0
  193. package/dist/ui/globals.css +395 -0
  194. package/dist/ui/header.d.ts +41 -0
  195. package/dist/ui/header.js +270 -0
  196. package/dist/ui/layout-wrapper.d.ts +1 -0
  197. package/dist/ui/layout-wrapper.js +7 -0
  198. package/dist/utils/color.d.ts +4 -0
  199. package/dist/utils/color.js +14 -0
  200. package/dist/utils/index.d.ts +15 -0
  201. package/dist/utils/index.js +48 -0
  202. package/dist/utils/poly.d.ts +8 -0
  203. package/dist/utils/poly.js +3 -0
  204. package/package.json +120 -0
  205. package/src/assets/filler-bg0.webp +0 -0
  206. package/src/assets.d.ts +38 -0
  207. package/src/fonts/Collapse-Bold.woff2 +0 -0
  208. package/src/fonts/Collapse-BoldItalic.woff2 +0 -0
  209. package/src/fonts/Collapse-Italic.woff2 +0 -0
  210. package/src/fonts/Collapse-Light.woff2 +0 -0
  211. package/src/fonts/Collapse-LightItalic.woff2 +0 -0
  212. package/src/fonts/Collapse-Regular.woff2 +0 -0
  213. package/src/fonts/Collapse-Thin.woff2 +0 -0
  214. package/src/fonts/Collapse-ThinItalic.woff2 +0 -0
  215. package/src/fonts/Mondwest-Regular.woff2 +0 -0
  216. package/src/fonts/Neuebit-Bold.woff2 +0 -0
  217. package/src/fonts/RulesCompressed-Medium.woff2 +0 -0
  218. package/src/fonts/RulesCompressed-Regular.woff2 +0 -0
  219. package/src/fonts/RulesExpanded-Bold.woff2 +0 -0
  220. package/src/fonts/RulesExpanded-Regular.woff2 +0 -0
  221. package/src/fonts.ts +6 -0
  222. package/src/hooks/use-below-breakpoint.ts +21 -0
  223. package/src/hooks/use-capped-frame.ts +18 -0
  224. package/src/hooks/use-confirm-delete.ts +43 -0
  225. package/src/hooks/use-css-var-dims.ts +39 -0
  226. package/src/hooks/use-gpu-tier.ts +190 -0
  227. package/src/hooks/use-render-loop.ts +121 -0
  228. package/src/hooks/use-smooth-controls.ts +318 -0
  229. package/src/hooks/use-toast.ts +29 -0
  230. package/src/index.ts +130 -0
  231. package/src/ui/basic-page.tsx +34 -0
  232. package/src/ui/build.css +4 -0
  233. package/src/ui/components/animated-count.stories.tsx +67 -0
  234. package/src/ui/components/animated-count.tsx +168 -0
  235. package/src/ui/components/ascii.stories.tsx +30 -0
  236. package/src/ui/components/ascii.tsx +110 -0
  237. package/src/ui/components/badge.stories.tsx +31 -0
  238. package/src/ui/components/badge.tsx +60 -0
  239. package/src/ui/components/badges/nous-girl.tsx +52 -0
  240. package/src/ui/components/blend-mode.stories.tsx +33 -0
  241. package/src/ui/components/blend-mode.tsx +129 -0
  242. package/src/ui/components/blink.stories.tsx +32 -0
  243. package/src/ui/components/blink.tsx +21 -0
  244. package/src/ui/components/bottom-sheet.stories.tsx +43 -0
  245. package/src/ui/components/bottom-sheet.tsx +227 -0
  246. package/src/ui/components/button.stories.tsx +68 -0
  247. package/src/ui/components/button.tsx +170 -0
  248. package/src/ui/components/card.stories.tsx +63 -0
  249. package/src/ui/components/card.tsx +85 -0
  250. package/src/ui/components/checkbox.stories.tsx +113 -0
  251. package/src/ui/components/checkbox.tsx +36 -0
  252. package/src/ui/components/command-block.stories.tsx +52 -0
  253. package/src/ui/components/command-block.tsx +86 -0
  254. package/src/ui/components/confirm-dialog.stories.tsx +91 -0
  255. package/src/ui/components/confirm-dialog.tsx +130 -0
  256. package/src/ui/components/cursor.tsx +115 -0
  257. package/src/ui/components/dialog.stories.tsx +169 -0
  258. package/src/ui/components/dialog.tsx +177 -0
  259. package/src/ui/components/dropdown-menu.stories.tsx +52 -0
  260. package/src/ui/components/dropdown-menu.tsx +117 -0
  261. package/src/ui/components/fit-text/fit-text.css +42 -0
  262. package/src/ui/components/fit-text/index.stories.tsx +33 -0
  263. package/src/ui/components/fit-text/index.tsx +45 -0
  264. package/src/ui/components/forms.stories.tsx +173 -0
  265. package/src/ui/components/graphs/bar-chart.tsx +153 -0
  266. package/src/ui/components/graphs/index.stories.tsx +64 -0
  267. package/src/ui/components/graphs/index.tsx +4 -0
  268. package/src/ui/components/graphs/line-chart.tsx +213 -0
  269. package/src/ui/components/graphs/utils.tsx +265 -0
  270. package/src/ui/components/grid/grid.css +79 -0
  271. package/src/ui/components/grid/index.tsx +19 -0
  272. package/src/ui/components/hover-bg.stories.tsx +29 -0
  273. package/src/ui/components/hover-bg.tsx +15 -0
  274. package/src/ui/components/icons/arrow.tsx +42 -0
  275. package/src/ui/components/icons/check.tsx +14 -0
  276. package/src/ui/components/icons/chevron.tsx +45 -0
  277. package/src/ui/components/icons/discord.tsx +16 -0
  278. package/src/ui/components/icons/eye.tsx +12 -0
  279. package/src/ui/components/icons/gear.tsx +51 -0
  280. package/src/ui/components/icons/github.tsx +16 -0
  281. package/src/ui/components/icons/hamburger.tsx +52 -0
  282. package/src/ui/components/icons/heart.tsx +12 -0
  283. package/src/ui/components/icons/index.ts +12 -0
  284. package/src/ui/components/icons/link.tsx +14 -0
  285. package/src/ui/components/icons/minus.tsx +14 -0
  286. package/src/ui/components/icons/search.tsx +28 -0
  287. package/src/ui/components/image-distortion.stories.tsx +120 -0
  288. package/src/ui/components/image-distortion.tsx +499 -0
  289. package/src/ui/components/input.stories.tsx +39 -0
  290. package/src/ui/components/input.tsx +20 -0
  291. package/src/ui/components/label.stories.tsx +26 -0
  292. package/src/ui/components/label.tsx +16 -0
  293. package/src/ui/components/leva-client.tsx +14 -0
  294. package/src/ui/components/list-item.stories.tsx +83 -0
  295. package/src/ui/components/list-item.tsx +37 -0
  296. package/src/ui/components/overlays/blend-modes.ts +13 -0
  297. package/src/ui/components/overlays/glitch.tsx +243 -0
  298. package/src/ui/components/overlays/greys.tsx +386 -0
  299. package/src/ui/components/overlays/index.tsx +47 -0
  300. package/src/ui/components/overlays/lens-layers.tsx +121 -0
  301. package/src/ui/components/overlays/lens.ts +91 -0
  302. package/src/ui/components/overlays/noise.tsx +174 -0
  303. package/src/ui/components/overlays/vignette.tsx +60 -0
  304. package/src/ui/components/poster.stories.tsx +513 -0
  305. package/src/ui/components/poster.tsx +411 -0
  306. package/src/ui/components/progress.stories.tsx +48 -0
  307. package/src/ui/components/progress.tsx +56 -0
  308. package/src/ui/components/scene-canvas.tsx +254 -0
  309. package/src/ui/components/scramble.stories.tsx +49 -0
  310. package/src/ui/components/scramble.tsx +95 -0
  311. package/src/ui/components/segmented.stories.tsx +101 -0
  312. package/src/ui/components/segmented.tsx +81 -0
  313. package/src/ui/components/select.stories.tsx +88 -0
  314. package/src/ui/components/select.tsx +267 -0
  315. package/src/ui/components/selection-switcher.tsx +44 -0
  316. package/src/ui/components/separator.stories.tsx +33 -0
  317. package/src/ui/components/separator.tsx +24 -0
  318. package/src/ui/components/shader.tsx +83 -0
  319. package/src/ui/components/socials.tsx +42 -0
  320. package/src/ui/components/spinner.stories.tsx +101 -0
  321. package/src/ui/components/spinner.tsx +60 -0
  322. package/src/ui/components/stats.stories.tsx +24 -0
  323. package/src/ui/components/stats.tsx +53 -0
  324. package/src/ui/components/switch.stories.tsx +77 -0
  325. package/src/ui/components/switch.tsx +48 -0
  326. package/src/ui/components/tabs.stories.tsx +101 -0
  327. package/src/ui/components/tabs.tsx +66 -0
  328. package/src/ui/components/terminal-demo.stories.tsx +67 -0
  329. package/src/ui/components/terminal-demo.tsx +189 -0
  330. package/src/ui/components/theme-toggle.stories.tsx +47 -0
  331. package/src/ui/components/theme-toggle.tsx +66 -0
  332. package/src/ui/components/tier-card.stories.tsx +217 -0
  333. package/src/ui/components/tier-card.tsx +190 -0
  334. package/src/ui/components/toast.stories.tsx +55 -0
  335. package/src/ui/components/toast.tsx +49 -0
  336. package/src/ui/components/tv.stories.tsx +37 -0
  337. package/src/ui/components/tv.tsx +257 -0
  338. package/src/ui/components/typography/h1.tsx +18 -0
  339. package/src/ui/components/typography/h2.tsx +18 -0
  340. package/src/ui/components/typography/index.tsx +54 -0
  341. package/src/ui/components/typography/legend.tsx +24 -0
  342. package/src/ui/components/typography/small.tsx +11 -0
  343. package/src/ui/components/watchlist.stories.tsx +33 -0
  344. package/src/ui/components/watchlist.tsx +105 -0
  345. package/src/ui/fonts.css +63 -0
  346. package/src/ui/footer.tsx +111 -0
  347. package/src/ui/globals.css +395 -0
  348. package/src/ui/header.tsx +398 -0
  349. package/src/ui/layout-wrapper.tsx +11 -0
  350. package/src/utils/color.ts +21 -0
  351. package/src/utils/index.ts +62 -0
  352. package/src/utils/poly.ts +26 -0
@@ -0,0 +1,162 @@
1
+ "use client";
2
+ import { Fragment, jsx, jsxs } from "react/jsx-runtime";
3
+ import {
4
+ useEffect,
5
+ useState
6
+ } from "react";
7
+ import { useSmoothControls } from "../../../hooks/use-smooth-controls.js";
8
+ export const accessor = (key) => typeof key === "function" ? key : (d) => d[key];
9
+ export const CHART_MARGINS = {
10
+ marginBottom: 24,
11
+ marginLeft: 36,
12
+ marginRight: 12,
13
+ marginTop: 8
14
+ };
15
+ export const CHART_STYLE = {
16
+ background: "transparent",
17
+ color: "var(--midground)",
18
+ fontFamily: "var(--font-mono), monospace",
19
+ fontSize: "11px",
20
+ overflow: "hidden"
21
+ };
22
+ export const stylePlot = (plot) => {
23
+ plot.querySelectorAll('[aria-label*="grid"] line').forEach(
24
+ (el) => Object.assign(el.style, {
25
+ stroke: "currentColor",
26
+ strokeDasharray: "2,4",
27
+ strokeOpacity: "0.3"
28
+ })
29
+ );
30
+ plot.querySelectorAll("text").forEach(
31
+ (el) => Object.assign(el.style, {
32
+ fontSize: "11px",
33
+ fontWeight: "600"
34
+ })
35
+ );
36
+ plot.querySelectorAll('[aria-label*="label"] text').forEach((el) => el.style.opacity = "0.4");
37
+ const svg = plot.querySelector("svg");
38
+ svg && (svg.style.display = "block");
39
+ };
40
+ export const useDims = (ref) => {
41
+ const [dims, setDims] = useState({ h: 0, w: 0 });
42
+ useEffect(() => {
43
+ if (!ref.current) {
44
+ return;
45
+ }
46
+ const update = () => {
47
+ const { height: h, width: w } = ref.current.getBoundingClientRect();
48
+ const [rh, rw] = [Math.round(h), Math.round(w)];
49
+ rh && rw && setDims((st) => st.h === rh && st.w === rw ? st : { h: rh, w: rw });
50
+ };
51
+ update();
52
+ const ro = new ResizeObserver(update);
53
+ ro.observe(ref.current);
54
+ return () => ro.disconnect();
55
+ }, [ref]);
56
+ return dims;
57
+ };
58
+ export const Crosshair = ({
59
+ color = "var(--foreground)",
60
+ containerWidth,
61
+ height,
62
+ points,
63
+ x
64
+ }) => {
65
+ if (x === null) {
66
+ return null;
67
+ }
68
+ const nearRight = x > containerWidth * 0.7;
69
+ return /* @__PURE__ */ jsxs(Fragment, { children: [
70
+ /* @__PURE__ */ jsx(
71
+ "div",
72
+ {
73
+ className: "pointer-events-none absolute top-0 w-px",
74
+ style: { background: color, height, left: x, opacity: 0.4 }
75
+ }
76
+ ),
77
+ points?.map((pt, i) => /* @__PURE__ */ jsx(
78
+ "div",
79
+ {
80
+ className: "pointer-events-none absolute size-2 -translate-x-1/2 -translate-y-1/2 rounded-full",
81
+ style: { background: color, left: x, top: pt.dotY }
82
+ },
83
+ i
84
+ )),
85
+ points?.map((pt, i) => /* @__PURE__ */ jsx(
86
+ "div",
87
+ {
88
+ className: "tooltip absolute -translate-y-1/2",
89
+ style: {
90
+ left: nearRight ? void 0 : x + 12,
91
+ right: nearRight ? containerWidth - x + 12 : void 0,
92
+ top: pt.dotY
93
+ },
94
+ children: pt.tooltip
95
+ },
96
+ i
97
+ ))
98
+ ] });
99
+ };
100
+ export const setupCrosshair = (container, data, getX, getY, yDomain, formatTooltip, onUpdate, getZ) => {
101
+ if (!data.length) {
102
+ return () => {
103
+ };
104
+ }
105
+ const { marginBottom, marginLeft, marginRight, marginTop } = CHART_MARGINS;
106
+ const seriesMap = data.reduce((m, d) => {
107
+ const key = getZ?.(d) ?? "__single__";
108
+ m.set(key, [...m.get(key) ?? [], d]);
109
+ return m;
110
+ }, /* @__PURE__ */ new Map());
111
+ const sortedSeries = [...seriesMap.values()].map(
112
+ (s) => [...s].sort((a, b) => getX(a) - getX(b))
113
+ );
114
+ const allX = data.map(getX);
115
+ const [xMin, xMax] = [Math.min(...allX), Math.max(...allX)];
116
+ const onMove = (e) => {
117
+ const rect = container.getBoundingClientRect();
118
+ const [localX, localY] = [e.clientX - rect.left, e.clientY - rect.top];
119
+ if (localX < 0 || localX > rect.width || localY < 0 || localY > rect.height) {
120
+ return onUpdate({ x: null });
121
+ }
122
+ const [chartLeft, chartRight] = [marginLeft, rect.width - marginRight];
123
+ const [chartTop, chartBottom] = [marginTop, rect.height - marginBottom];
124
+ if (localX < chartLeft || localX > chartRight) {
125
+ return onUpdate({ x: null });
126
+ }
127
+ const pct = (localX - chartLeft) / (chartRight - chartLeft);
128
+ const xVal = xMin + pct * (xMax - xMin);
129
+ const points = sortedSeries.map((sorted) => {
130
+ const idx = sorted.findIndex((d) => getX(d) >= xVal);
131
+ const [closest, yVal] = idx <= 0 ? [sorted[0], getY(sorted[0])] : idx >= sorted.length ? [sorted.at(-1), getY(sorted.at(-1))] : (() => {
132
+ const [left, right] = [sorted[idx - 1], sorted[idx]];
133
+ const t = (xVal - getX(left)) / (getX(right) - getX(left));
134
+ return [
135
+ t < 0.5 ? left : right,
136
+ getY(left) + t * (getY(right) - getY(left))
137
+ ];
138
+ })();
139
+ const yPct = (yVal - yDomain[0]) / (yDomain[1] - yDomain[0]);
140
+ return {
141
+ dotY: chartBottom - yPct * (chartBottom - chartTop),
142
+ tooltip: formatTooltip(closest)
143
+ };
144
+ });
145
+ onUpdate({ points, x: localX });
146
+ };
147
+ document.addEventListener("mousemove", onMove);
148
+ return () => document.removeEventListener("mousemove", onMove);
149
+ };
150
+ export const withChartBlend = (Component) => {
151
+ const Wrapped = (props) => {
152
+ const { color } = useSmoothControls(
153
+ "Charts",
154
+ { color: { value: "#709fea" } },
155
+ { collapsed: true }
156
+ );
157
+ return /* @__PURE__ */ jsx(Component, { ...props, color });
158
+ };
159
+ Wrapped.displayName = `withChartBlend(${Component.displayName ?? Component.name})`;
160
+ return Wrapped;
161
+ };
162
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiPHN0ZGluPiJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiJ3VzZSBjbGllbnQnXG5cbmltcG9ydCB7XG4gIHR5cGUgQ29tcG9uZW50VHlwZSxcbiAgdHlwZSBIVE1MQXR0cmlidXRlcyxcbiAgdHlwZSBSZWZPYmplY3QsXG4gIHVzZUVmZmVjdCxcbiAgdXNlU3RhdGVcbn0gZnJvbSAncmVhY3QnXG5cbmltcG9ydCB7IHVzZVNtb290aENvbnRyb2xzIH0gZnJvbSAnLi4vLi4vLi4vaG9va3MvdXNlLXNtb290aC1jb250cm9scydcbmltcG9ydCB7XG4gIHR5cGUgQmxlbmRDb2xvcnMsXG4gIHR5cGUgQmxlbmRNb2RlUHJvcHNcbn0gZnJvbSAnLi4vYmxlbmQtbW9kZSdcblxuZXhwb3J0IGNvbnN0IGFjY2Vzc29yID0gPFQsIFI+KGtleTogKChkOiBUKSA9PiBSKSB8IGtleW9mIFQpID0+XG4gIHR5cGVvZiBrZXkgPT09ICdmdW5jdGlvbicgPyBrZXkgOiAoZDogVCkgPT4gZFtrZXldIGFzIFJcblxuZXhwb3J0IGNvbnN0IENIQVJUX01BUkdJTlMgPSB7XG4gIG1hcmdpbkJvdHRvbTogMjQsXG4gIG1hcmdpbkxlZnQ6IDM2LFxuICBtYXJnaW5SaWdodDogMTIsXG4gIG1hcmdpblRvcDogOFxufSBhcyBjb25zdFxuXG5leHBvcnQgY29uc3QgQ0hBUlRfU1RZTEUgPSB7XG4gIGJhY2tncm91bmQ6ICd0cmFuc3BhcmVudCcsXG4gIGNvbG9yOiAndmFyKC0tbWlkZ3JvdW5kKScsXG4gIGZvbnRGYW1pbHk6ICd2YXIoLS1mb250LW1vbm8pLCBtb25vc3BhY2UnLFxuICBmb250U2l6ZTogJzExcHgnLFxuICBvdmVyZmxvdzogJ2hpZGRlbidcbn0gYXMgY29uc3RcblxuZXhwb3J0IGNvbnN0IHN0eWxlUGxvdCA9IChwbG90OiBIVE1MRWxlbWVudCkgPT4ge1xuICBwbG90LnF1ZXJ5U2VsZWN0b3JBbGwoJ1thcmlhLWxhYmVsKj1cImdyaWRcIl0gbGluZScpLmZvckVhY2goZWwgPT5cbiAgICBPYmplY3QuYXNzaWduKChlbCBhcyBTVkdMaW5lRWxlbWVudCkuc3R5bGUsIHtcbiAgICAgIHN0cm9rZTogJ2N1cnJlbnRDb2xvcicsXG4gICAgICBzdHJva2VEYXNoYXJyYXk6ICcyLDQnLFxuICAgICAgc3Ryb2tlT3BhY2l0eTogJzAuMydcbiAgICB9KVxuICApXG5cbiAgcGxvdC5xdWVyeVNlbGVjdG9yQWxsKCd0ZXh0JykuZm9yRWFjaChlbCA9PlxuICAgIE9iamVjdC5hc3NpZ24oKGVsIGFzIFNWR1RleHRFbGVtZW50KS5zdHlsZSwge1xuICAgICAgZm9udFNpemU6ICcxMXB4JyxcbiAgICAgIGZvbnRXZWlnaHQ6ICc2MDAnXG4gICAgfSlcbiAgKVxuXG4gIHBsb3RcbiAgICAucXVlcnlTZWxlY3RvckFsbCgnW2FyaWEtbGFiZWwqPVwibGFiZWxcIl0gdGV4dCcpXG4gICAgLmZvckVhY2goZWwgPT4gKChlbCBhcyBTVkdUZXh0RWxlbWVudCkuc3R5bGUub3BhY2l0eSA9ICcwLjQnKSlcblxuICBjb25zdCBzdmcgPSBwbG90LnF1ZXJ5U2VsZWN0b3IoJ3N2ZycpXG4gIHN2ZyAmJiAoc3ZnLnN0eWxlLmRpc3BsYXkgPSAnYmxvY2snKVxufVxuXG5leHBvcnQgY29uc3QgdXNlRGltcyA9IChyZWY6IFJlZk9iamVjdDxIVE1MRWxlbWVudCB8IG51bGw+KSA9PiB7XG4gIGNvbnN0IFtkaW1zLCBzZXREaW1zXSA9IHVzZVN0YXRlKHsgaDogMCwgdzogMCB9KVxuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKCFyZWYuY3VycmVudCkge1xuICAgICAgcmV0dXJuXG4gICAgfVxuXG4gICAgY29uc3QgdXBkYXRlID0gKCkgPT4ge1xuICAgICAgY29uc3QgeyBoZWlnaHQ6IGgsIHdpZHRoOiB3IH0gPSByZWYuY3VycmVudCEuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KClcbiAgICAgIGNvbnN0IFtyaCwgcnddID0gW01hdGgucm91bmQoaCksIE1hdGgucm91bmQodyldXG5cbiAgICAgIHJoICYmXG4gICAgICAgIHJ3ICYmXG4gICAgICAgIHNldERpbXMoc3QgPT4gKHN0LmggPT09IHJoICYmIHN0LncgPT09IHJ3ID8gc3QgOiB7IGg6IHJoLCB3OiBydyB9KSlcbiAgICB9XG5cbiAgICB1cGRhdGUoKVxuXG4gICAgY29uc3Qgcm8gPSBuZXcgUmVzaXplT2JzZXJ2ZXIodXBkYXRlKVxuICAgIHJvLm9ic2VydmUocmVmLmN1cnJlbnQpXG5cbiAgICByZXR1cm4gKCkgPT4gcm8uZGlzY29ubmVjdCgpXG4gIH0sIFtyZWZdKVxuXG4gIHJldHVybiBkaW1zXG59XG5cbmV4cG9ydCBjb25zdCBDcm9zc2hhaXIgPSAoe1xuICBjb2xvciA9ICd2YXIoLS1mb3JlZ3JvdW5kKScsXG4gIGNvbnRhaW5lcldpZHRoLFxuICBoZWlnaHQsXG4gIHBvaW50cyxcbiAgeFxufTogQ3Jvc3NoYWlyU3RhdGUgJiB7XG4gIGNvbG9yPzogc3RyaW5nXG4gIGNvbnRhaW5lcldpZHRoOiBudW1iZXJcbiAgaGVpZ2h0OiBudW1iZXJcbn0pID0+IHtcbiAgaWYgKHggPT09IG51bGwpIHtcbiAgICByZXR1cm4gbnVsbFxuICB9XG5cbiAgY29uc3QgbmVhclJpZ2h0ID0geCA+IGNvbnRhaW5lcldpZHRoICogMC43XG5cbiAgcmV0dXJuIChcbiAgICA8PlxuICAgICAgPGRpdlxuICAgICAgICBjbGFzc05hbWU9XCJwb2ludGVyLWV2ZW50cy1ub25lIGFic29sdXRlIHRvcC0wIHctcHhcIlxuICAgICAgICBzdHlsZT17eyBiYWNrZ3JvdW5kOiBjb2xvciwgaGVpZ2h0LCBsZWZ0OiB4LCBvcGFjaXR5OiAwLjQgfX1cbiAgICAgIC8+XG5cbiAgICAgIHtwb2ludHM/Lm1hcCgocHQsIGkpID0+IChcbiAgICAgICAgPGRpdlxuICAgICAgICAgIGNsYXNzTmFtZT1cInBvaW50ZXItZXZlbnRzLW5vbmUgYWJzb2x1dGUgc2l6ZS0yIC10cmFuc2xhdGUteC0xLzIgLXRyYW5zbGF0ZS15LTEvMiByb3VuZGVkLWZ1bGxcIlxuICAgICAgICAgIGtleT17aX1cbiAgICAgICAgICBzdHlsZT17eyBiYWNrZ3JvdW5kOiBjb2xvciwgbGVmdDogeCwgdG9wOiBwdC5kb3RZIH19XG4gICAgICAgIC8+XG4gICAgICApKX1cblxuICAgICAge3BvaW50cz8ubWFwKChwdCwgaSkgPT4gKFxuICAgICAgICA8ZGl2XG4gICAgICAgICAgY2xhc3NOYW1lPVwidG9vbHRpcCBhYnNvbHV0ZSAtdHJhbnNsYXRlLXktMS8yXCJcbiAgICAgICAgICBrZXk9e2l9XG4gICAgICAgICAgc3R5bGU9e3tcbiAgICAgICAgICAgIGxlZnQ6IG5lYXJSaWdodCA/IHVuZGVmaW5lZCA6IHggKyAxMixcbiAgICAgICAgICAgIHJpZ2h0OiBuZWFyUmlnaHQgPyBjb250YWluZXJXaWR0aCAtIHggKyAxMiA6IHVuZGVmaW5lZCxcbiAgICAgICAgICAgIHRvcDogcHQuZG90WVxuICAgICAgICAgIH19XG4gICAgICAgID5cbiAgICAgICAgICB7cHQudG9vbHRpcH1cbiAgICAgICAgPC9kaXY+XG4gICAgICApKX1cbiAgICA8Lz5cbiAgKVxufVxuXG5leHBvcnQgY29uc3Qgc2V0dXBDcm9zc2hhaXIgPSA8VCBleHRlbmRzIERhdGFQb2ludD4oXG4gIGNvbnRhaW5lcjogSFRNTEVsZW1lbnQsXG4gIGRhdGE6IFRbXSxcbiAgZ2V0WDogKGQ6IFQpID0+IG51bWJlcixcbiAgZ2V0WTogKGQ6IFQpID0+IG51bWJlcixcbiAgeURvbWFpbjogW251bWJlciwgbnVtYmVyXSxcbiAgZm9ybWF0VG9vbHRpcDogKGQ6IFQpID0+IHN0cmluZyxcbiAgb25VcGRhdGU6IChzdGF0ZTogQ3Jvc3NoYWlyU3RhdGUpID0+IHZvaWQsXG4gIGdldFo/OiAoZDogVCkgPT4gdW5rbm93blxuKSA9PiB7XG4gIGlmICghZGF0YS5sZW5ndGgpIHtcbiAgICByZXR1cm4gKCkgPT4ge31cbiAgfVxuXG4gIGNvbnN0IHsgbWFyZ2luQm90dG9tLCBtYXJnaW5MZWZ0LCBtYXJnaW5SaWdodCwgbWFyZ2luVG9wIH0gPSBDSEFSVF9NQVJHSU5TXG5cbiAgY29uc3Qgc2VyaWVzTWFwID0gZGF0YS5yZWR1Y2UoKG0sIGQpID0+IHtcbiAgICBjb25zdCBrZXkgPSBnZXRaPy4oZCkgPz8gJ19fc2luZ2xlX18nXG4gICAgbS5zZXQoa2V5LCBbLi4uKG0uZ2V0KGtleSkgPz8gW10pLCBkXSlcblxuICAgIHJldHVybiBtXG4gIH0sIG5ldyBNYXA8dW5rbm93biwgVFtdPigpKVxuXG4gIGNvbnN0IHNvcnRlZFNlcmllcyA9IFsuLi5zZXJpZXNNYXAudmFsdWVzKCldLm1hcChzID0+XG4gICAgWy4uLnNdLnNvcnQoKGEsIGIpID0+IGdldFgoYSkgLSBnZXRYKGIpKVxuICApXG5cbiAgY29uc3QgYWxsWCA9IGRhdGEubWFwKGdldFgpXG4gIGNvbnN0IFt4TWluLCB4TWF4XSA9IFtNYXRoLm1pbiguLi5hbGxYKSwgTWF0aC5tYXgoLi4uYWxsWCldXG5cbiAgY29uc3Qgb25Nb3ZlID0gKGU6IE1vdXNlRXZlbnQpID0+IHtcbiAgICBjb25zdCByZWN0ID0gY29udGFpbmVyLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpXG4gICAgY29uc3QgW2xvY2FsWCwgbG9jYWxZXSA9IFtlLmNsaWVudFggLSByZWN0LmxlZnQsIGUuY2xpZW50WSAtIHJlY3QudG9wXVxuXG4gICAgaWYgKFxuICAgICAgbG9jYWxYIDwgMCB8fFxuICAgICAgbG9jYWxYID4gcmVjdC53aWR0aCB8fFxuICAgICAgbG9jYWxZIDwgMCB8fFxuICAgICAgbG9jYWxZID4gcmVjdC5oZWlnaHRcbiAgICApIHtcbiAgICAgIHJldHVybiBvblVwZGF0ZSh7IHg6IG51bGwgfSlcbiAgICB9XG5cbiAgICBjb25zdCBbY2hhcnRMZWZ0LCBjaGFydFJpZ2h0XSA9IFttYXJnaW5MZWZ0LCByZWN0LndpZHRoIC0gbWFyZ2luUmlnaHRdXG4gICAgY29uc3QgW2NoYXJ0VG9wLCBjaGFydEJvdHRvbV0gPSBbbWFyZ2luVG9wLCByZWN0LmhlaWdodCAtIG1hcmdpbkJvdHRvbV1cblxuICAgIGlmIChsb2NhbFggPCBjaGFydExlZnQgfHwgbG9jYWxYID4gY2hhcnRSaWdodCkge1xuICAgICAgcmV0dXJuIG9uVXBkYXRlKHsgeDogbnVsbCB9KVxuICAgIH1cblxuICAgIGNvbnN0IHBjdCA9IChsb2NhbFggLSBjaGFydExlZnQpIC8gKGNoYXJ0UmlnaHQgLSBjaGFydExlZnQpXG4gICAgY29uc3QgeFZhbCA9IHhNaW4gKyBwY3QgKiAoeE1heCAtIHhNaW4pXG5cbiAgICBjb25zdCBwb2ludHMgPSBzb3J0ZWRTZXJpZXMubWFwKHNvcnRlZCA9PiB7XG4gICAgICBjb25zdCBpZHggPSBzb3J0ZWQuZmluZEluZGV4KGQgPT4gZ2V0WChkKSA+PSB4VmFsKVxuXG4gICAgICBjb25zdCBbY2xvc2VzdCwgeVZhbF0gPVxuICAgICAgICBpZHggPD0gMFxuICAgICAgICAgID8gW3NvcnRlZFswXSwgZ2V0WShzb3J0ZWRbMF0pXVxuICAgICAgICAgIDogaWR4ID49IHNvcnRlZC5sZW5ndGhcbiAgICAgICAgICAgID8gW3NvcnRlZC5hdCgtMSkhLCBnZXRZKHNvcnRlZC5hdCgtMSkhKV1cbiAgICAgICAgICAgIDogKCgpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBbbGVmdCwgcmlnaHRdID0gW3NvcnRlZFtpZHggLSAxXSwgc29ydGVkW2lkeF1dXG4gICAgICAgICAgICAgICAgY29uc3QgdCA9ICh4VmFsIC0gZ2V0WChsZWZ0KSkgLyAoZ2V0WChyaWdodCkgLSBnZXRYKGxlZnQpKVxuXG4gICAgICAgICAgICAgICAgcmV0dXJuIFtcbiAgICAgICAgICAgICAgICAgIHQgPCAwLjUgPyBsZWZ0IDogcmlnaHQsXG4gICAgICAgICAgICAgICAgICBnZXRZKGxlZnQpICsgdCAqIChnZXRZKHJpZ2h0KSAtIGdldFkobGVmdCkpXG4gICAgICAgICAgICAgICAgXSBhcyBjb25zdFxuICAgICAgICAgICAgICB9KSgpXG5cbiAgICAgIGNvbnN0IHlQY3QgPSAoeVZhbCAtIHlEb21haW5bMF0pIC8gKHlEb21haW5bMV0gLSB5RG9tYWluWzBdKVxuXG4gICAgICByZXR1cm4ge1xuICAgICAgICBkb3RZOiBjaGFydEJvdHRvbSAtIHlQY3QgKiAoY2hhcnRCb3R0b20gLSBjaGFydFRvcCksXG4gICAgICAgIHRvb2x0aXA6IGZvcm1hdFRvb2x0aXAoY2xvc2VzdClcbiAgICAgIH1cbiAgICB9KVxuXG4gICAgb25VcGRhdGUoeyBwb2ludHMsIHg6IGxvY2FsWCB9KVxuICB9XG5cbiAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignbW91c2Vtb3ZlJywgb25Nb3ZlKVxuXG4gIHJldHVybiAoKSA9PiBkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCdtb3VzZW1vdmUnLCBvbk1vdmUpXG59XG5cbmV4cG9ydCBjb25zdCB3aXRoQ2hhcnRCbGVuZCA9IDxQIGV4dGVuZHMgQmxlbmRNb2RlUHJvcHM+KFxuICBDb21wb25lbnQ6IENvbXBvbmVudFR5cGU8UD5cbikgPT4ge1xuICBjb25zdCBXcmFwcGVkID0gKHByb3BzOiBPbWl0PFAsIGtleW9mIEJsZW5kQ29sb3JzPikgPT4ge1xuICAgIGNvbnN0IHsgY29sb3IgfSA9IHVzZVNtb290aENvbnRyb2xzKFxuICAgICAgJ0NoYXJ0cycsXG4gICAgICB7IGNvbG9yOiB7IHZhbHVlOiAnIzcwOWZlYScgfSB9LFxuICAgICAgeyBjb2xsYXBzZWQ6IHRydWUgfVxuICAgIClcblxuICAgIHJldHVybiA8Q29tcG9uZW50IHsuLi4ocHJvcHMgYXMgUCl9IGNvbG9yPXtjb2xvcn0gLz5cbiAgfVxuXG4gIFdyYXBwZWQuZGlzcGxheU5hbWUgPSBgd2l0aENoYXJ0QmxlbmQoJHtDb21wb25lbnQuZGlzcGxheU5hbWUgPz8gQ29tcG9uZW50Lm5hbWV9KWBcblxuICByZXR1cm4gV3JhcHBlZFxufVxuXG5leHBvcnQgdHlwZSBEYXRhUG9pbnQgPSBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPlxuXG5leHBvcnQgaW50ZXJmYWNlIENyb3NzaGFpclBvaW50IHtcbiAgZG90WTogbnVtYmVyXG4gIHRvb2x0aXA6IHN0cmluZ1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIENyb3NzaGFpclN0YXRlIHtcbiAgcG9pbnRzPzogQ3Jvc3NoYWlyUG9pbnRbXVxuICB4OiBudWxsIHwgbnVtYmVyXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ2hhcnRQcm9wczxUID0gRGF0YVBvaW50PlxuICBleHRlbmRzIE9taXQ8SFRNTEF0dHJpYnV0ZXM8SFRNTERpdkVsZW1lbnQ+LCAnY2hpbGRyZW4nPiB7XG4gIGRhdGE/OiBUW11cbiAgZm9ybWF0VG9vbHRpcD86IChkOiBUKSA9PiBzdHJpbmdcbiAgZm9ybWF0WD86ICh2OiB1bmtub3duKSA9PiBzdHJpbmdcbiAgZm9ybWF0WT86ICh2OiBudW1iZXIpID0+IHN0cmluZ1xuICBoZWlnaHQ/OiBudW1iZXJcbiAgeD86ICgoZDogVCkgPT4gdW5rbm93bikgfCBrZXlvZiBUXG4gIHhUaWNrcz86IG51bWJlciB8IG51bWJlcltdXG4gIHk/OiAoKGQ6IFQpID0+IG51bWJlcikgfCBrZXlvZiBUXG4gIHlEb21haW4/OiBbbnVtYmVyLCBudW1iZXJdXG4gIHlUaWNrcz86IG51bWJlciB8IG51bWJlcltdXG59XG4iXSwKICAibWFwcGluZ3MiOiAiO0FBd0dJLG1CQUNFLEtBREY7QUF0R0o7QUFBQSxFQUlFO0FBQUEsRUFDQTtBQUFBLE9BQ0s7QUFFUCxTQUFTLHlCQUF5QjtBQU0zQixhQUFNLFdBQVcsQ0FBTyxRQUM3QixPQUFPLFFBQVEsYUFBYSxNQUFNLENBQUMsTUFBUyxFQUFFLEdBQUc7QUFFNUMsYUFBTSxnQkFBZ0I7QUFBQSxFQUMzQixjQUFjO0FBQUEsRUFDZCxZQUFZO0FBQUEsRUFDWixhQUFhO0FBQUEsRUFDYixXQUFXO0FBQ2I7QUFFTyxhQUFNLGNBQWM7QUFBQSxFQUN6QixZQUFZO0FBQUEsRUFDWixPQUFPO0FBQUEsRUFDUCxZQUFZO0FBQUEsRUFDWixVQUFVO0FBQUEsRUFDVixVQUFVO0FBQ1o7QUFFTyxhQUFNLFlBQVksQ0FBQyxTQUFzQjtBQUM5QyxPQUFLLGlC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
@@ -0,0 +1,79 @@
1
+ .g {
2
+ @apply grid grid-cols-1 border-l border-current/20;
3
+
4
+ &:has(> .gc:nth-child(3)):not(:has(> .gc:nth-child(4))) > .gc:nth-child(2) {
5
+ @apply -order-1;
6
+ }
7
+
8
+ @media (width >= 40rem) {
9
+ &:has(> .gc:nth-child(2)) {
10
+ @apply grid-cols-2;
11
+ }
12
+
13
+ &:has(> .gc:nth-child(3)):not(:has(> .gc:nth-child(4)))
14
+ > .gc:nth-child(2) {
15
+ @apply -order-1 col-span-full;
16
+ }
17
+ }
18
+
19
+ @media (width >= 64rem) {
20
+ &:has(> .gc:nth-child(3)) {
21
+ @apply grid-cols-3;
22
+ }
23
+
24
+ &:has(> .gc:nth-child(4)) {
25
+ @apply grid-cols-4;
26
+ }
27
+
28
+ &:has(> .gc:nth-child(5)) {
29
+ @apply grid-cols-5;
30
+ }
31
+
32
+ &:has(> .gc:nth-child(6)) {
33
+ @apply grid-cols-6;
34
+ }
35
+
36
+ &:has(> .gc:nth-child(3)):not(:has(> .gc:nth-child(4))) {
37
+ grid-template-columns: 1fr 2fr 1fr;
38
+
39
+ > .gc:nth-child(2) {
40
+ @apply order-none col-auto;
41
+ }
42
+ }
43
+ }
44
+
45
+ &:last-child {
46
+ @apply border-b;
47
+ }
48
+
49
+ &:first-child,
50
+ + .g > .gc,
51
+ > .g {
52
+ @apply border-t;
53
+ }
54
+
55
+ .g {
56
+ @apply border-l-0;
57
+ }
58
+
59
+ &:not(:last-child) .gc:last-child {
60
+ @apply border-b-0;
61
+ }
62
+
63
+ .gc {
64
+ min-width: 0;
65
+ @apply border-r border-inherit p-4;
66
+
67
+ &:has(> .gc) {
68
+ @apply p-0;
69
+
70
+ > .gc {
71
+ @apply border-r-0 not-first:border-t last:border-b-0;
72
+ }
73
+ }
74
+ }
75
+
76
+ .post.gc {
77
+ @apply lg:p-12;
78
+ }
79
+ }
@@ -0,0 +1,2 @@
1
+ export declare const Grid: import("../../..").PolyComponent<"div", object>;
2
+ export declare const Cell: import("../../..").PolyComponent<"div", object>;
@@ -0,0 +1,17 @@
1
+ import { createElement } from "react";
2
+ import { cn, polyRef } from "../../../utils/index.js";
3
+ export const Grid = polyRef(
4
+ ({ as, className, ...rest }, ref) => createElement(as ?? "div", {
5
+ ...rest,
6
+ className: cn("g", className),
7
+ ref
8
+ })
9
+ );
10
+ export const Cell = polyRef(
11
+ ({ as, className, ...rest }, ref) => createElement(as ?? "div", {
12
+ ...rest,
13
+ className: cn("gc", className),
14
+ ref
15
+ })
16
+ );
17
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiPHN0ZGluPiJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiaW1wb3J0IHsgY3JlYXRlRWxlbWVudCB9IGZyb20gJ3JlYWN0J1xuXG5pbXBvcnQgeyBjbiwgcG9seVJlZiB9IGZyb20gJy4uLy4uLy4uL3V0aWxzJ1xuXG5leHBvcnQgY29uc3QgR3JpZCA9IHBvbHlSZWY8J2Rpdic+KCh7IGFzLCBjbGFzc05hbWUsIC4uLnJlc3QgfSwgcmVmKSA9PlxuICBjcmVhdGVFbGVtZW50KChhcyA/PyAnZGl2JykgYXMgUmVhY3QuRWxlbWVudFR5cGUsIHtcbiAgICAuLi5yZXN0LFxuICAgIGNsYXNzTmFtZTogY24oJ2cnLCBjbGFzc05hbWUpLFxuICAgIHJlZlxuICB9KVxuKVxuXG5leHBvcnQgY29uc3QgQ2VsbCA9IHBvbHlSZWY8J2Rpdic+KCh7IGFzLCBjbGFzc05hbWUsIC4uLnJlc3QgfSwgcmVmKSA9PlxuICBjcmVhdGVFbGVtZW50KChhcyA/PyAnZGl2JykgYXMgUmVhY3QuRWxlbWVudFR5cGUsIHtcbiAgICAuLi5yZXN0LFxuICAgIGNsYXNzTmFtZTogY24oJ2djJywgY2xhc3NOYW1lKSxcbiAgICByZWZcbiAgfSlcbilcbiJdLAogICJtYXBwaW5ncyI6ICJBQUFBLFNBQVMscUJBQXFCO0FBRTlCLFNBQVMsSUFBSSxlQUFlO0FBRXJCLGFBQU0sT0FBTztBQUFBLEVBQWUsQ0FBQyxFQUFFLElBQUksV0FBVyxHQUFHLEtBQUssR0FBRyxRQUM5RCxjQUFlLE1BQU0sT0FBNkI7QUFBQSxJQUNoRCxHQUFHO0FBQUEsSUFDSCxXQUFXLEdBQUcsS0FBSyxTQUFTO0FBQUEsSUFDNUI7QUFBQSxFQUNGLENBQUM7QUFDSDtBQUVPLGFBQU0sT0FBTztBQUFBLEVBQWUsQ0FBQyxFQUFFLElBQUksV0FBVyxHQUFHLEtBQUssR0FBRyxRQUM5RCxjQUFlLE1BQU0sT0FBNkI7QUFBQSxJQUNoRCxHQUFHO0FBQUEsSUFDSCxXQUFXLEdBQUcsTUFBTSxTQUFTO0FBQUEsSUFDN0I7QUFBQSxFQUNGLENBQUM7QUFDSDsiLAogICJuYW1lcyI6IFtdCn0K
@@ -0,0 +1 @@
1
+ export declare const HoverBg: import("../..").PolyComponent<"span", object>;
@@ -0,0 +1,14 @@
1
+ import { createElement } from "react";
2
+ import { cn, polyRef } from "../../utils/index.js";
3
+ export const HoverBg = polyRef(
4
+ ({ as, className, ...rest }, ref) => createElement(as ?? "span", {
5
+ ...rest,
6
+ className: cn(
7
+ "absolute inset-1 bg-midground pointer-events-none",
8
+ "opacity-5 transition-opacity duration-250 group-hover:opacity-5 opacity-0 group-hover:duration-0",
9
+ className
10
+ ),
11
+ ref
12
+ })
13
+ );
14
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiPHN0ZGluPiJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiaW1wb3J0IHsgY3JlYXRlRWxlbWVudCB9IGZyb20gJ3JlYWN0J1xuXG5pbXBvcnQgeyBjbiwgcG9seVJlZiB9IGZyb20gJy4uLy4uL3V0aWxzJ1xuXG5leHBvcnQgY29uc3QgSG92ZXJCZyA9IHBvbHlSZWY8J3NwYW4nPigoeyBhcywgY2xhc3NOYW1lLCAuLi5yZXN0IH0sIHJlZikgPT5cbiAgY3JlYXRlRWxlbWVudCgoYXMgPz8gJ3NwYW4nKSBhcyBSZWFjdC5FbGVtZW50VHlwZSwge1xuICAgIC4uLnJlc3QsXG4gICAgY2xhc3NOYW1lOiBjbihcbiAgICAgICdhYnNvbHV0ZSBpbnNldC0xIGJnLW1pZGdyb3VuZCBwb2ludGVyLWV2ZW50cy1ub25lJyxcbiAgICAgICdvcGFjaXR5LTUgdHJhbnNpdGlvbi1vcGFjaXR5IGR1cmF0aW9uLTI1MCBncm91cC1ob3ZlcjpvcGFjaXR5LTUgb3BhY2l0eS0wIGdyb3VwLWhvdmVyOmR1cmF0aW9uLTAnLFxuICAgICAgY2xhc3NOYW1lXG4gICAgKSxcbiAgICByZWZcbiAgfSlcbilcbiJdLAogICJtYXBwaW5ncyI6ICJBQUFBLFNBQVMscUJBQXFCO0FBRTlCLFNBQVMsSUFBSSxlQUFlO0FBRXJCLGFBQU0sVUFBVTtBQUFBLEVBQWdCLENBQUMsRUFBRSxJQUFJLFdBQVcsR0FBRyxLQUFLLEdBQUcsUUFDbEUsY0FBZSxNQUFNLFFBQThCO0FBQUEsSUFDakQsR0FBRztBQUFBLElBQ0gsV0FBVztBQUFBLE1BQ1Q7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLElBQ0Y7QUFBQSxJQUNBO0FBQUEsRUFDRixDQUFDO0FBQ0g7IiwKICAibmFtZXMiOiBbXQp9Cg==
@@ -0,0 +1,6 @@
1
+ import type { SVGProps } from 'react';
2
+ export declare function ArrowIcon({ className, direction, ...props }: ArrowIconProps): import("react").JSX.Element;
3
+ interface ArrowIconProps extends SVGProps<SVGSVGElement> {
4
+ direction?: 'down' | 'left' | 'right' | 'up';
5
+ }
6
+ export {};
@@ -0,0 +1,44 @@
1
+ import { jsx, jsxs } from "react/jsx-runtime";
2
+ import { cn } from "../../../utils/index.js";
3
+ export function ArrowIcon({
4
+ className,
5
+ direction = "down",
6
+ ...props
7
+ }) {
8
+ return /* @__PURE__ */ jsxs(
9
+ "svg",
10
+ {
11
+ className: cn(
12
+ direction === "up" && "rotate-180",
13
+ direction === "left" && "rotate-90",
14
+ direction === "right" && "-rotate-90",
15
+ "origin-center",
16
+ className
17
+ ),
18
+ fill: "none",
19
+ viewBox: "0 0 13 15",
20
+ ...props,
21
+ children: [
22
+ /* @__PURE__ */ jsx(
23
+ "path",
24
+ {
25
+ clipRule: "evenodd",
26
+ d: "M5 15V0h2.50075v15z",
27
+ fill: "currentColor",
28
+ fillRule: "evenodd"
29
+ }
30
+ ),
31
+ /* @__PURE__ */ jsx(
32
+ "path",
33
+ {
34
+ clipRule: "evenodd",
35
+ d: "M10 12.5007H2.5V9.99998H10zM12.4976 9.99951H9.99805v-2.4996h2.49955zM2.4996 9.99951H0v-2.4996h2.4996z",
36
+ fill: "currentColor",
37
+ fillRule: "evenodd"
38
+ }
39
+ )
40
+ ]
41
+ }
42
+ );
43
+ }
44
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiPHN0ZGluPiJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiaW1wb3J0IHR5cGUgeyBTVkdQcm9wcyB9IGZyb20gJ3JlYWN0J1xuXG5pbXBvcnQgeyBjbiB9IGZyb20gJy4uLy4uLy4uL3V0aWxzJ1xuXG5leHBvcnQgZnVuY3Rpb24gQXJyb3dJY29uKHtcbiAgY2xhc3NOYW1lLFxuICBkaXJlY3Rpb24gPSAnZG93bicsXG4gIC4uLnByb3BzXG59OiBBcnJvd0ljb25Qcm9wcykge1xuICByZXR1cm4gKFxuICAgIDxzdmdcbiAgICAgIGNsYXNzTmFtZT17Y24oXG4gICAgICAgIGRpcmVjdGlvbiA9PT0gJ3VwJyAmJiAncm90YXRlLTE4MCcsXG4gICAgICAgIGRpcmVjdGlvbiA9PT0gJ2xlZnQnICYmICdyb3RhdGUtOTAnLFxuICAgICAgICBkaXJlY3Rpb24gPT09ICdyaWdodCcgJiYgJy1yb3RhdGUtOTAnLFxuICAgICAgICAnb3JpZ2luLWNlbnRlcicsXG4gICAgICAgIGNsYXNzTmFtZVxuICAgICAgKX1cbiAgICAgIGZpbGw9XCJub25lXCJcbiAgICAgIHZpZXdCb3g9XCIwIDAgMTMgMTVcIlxuICAgICAgey4uLnByb3BzfVxuICAgID5cbiAgICAgIDxwYXRoXG4gICAgICAgIGNsaXBSdWxlPVwiZXZlbm9kZFwiXG4gICAgICAgIGQ9XCJNNSAxNVYwaDIuNTAwNzV2MTV6XCJcbiAgICAgICAgZmlsbD1cImN1cnJlbnRDb2xvclwiXG4gICAgICAgIGZpbGxSdWxlPVwiZXZlbm9kZFwiXG4gICAgICAvPlxuXG4gICAgICA8cGF0aFxuICAgICAgICBjbGlwUnVsZT1cImV2ZW5vZGRcIlxuICAgICAgICBkPVwiTTEwIDEyLjUwMDdIMi41VjkuOTk5OThIMTB6TTEyLjQ5NzYgOS45OTk1MUg5Ljk5ODA1di0yLjQ5OTZoMi40OTk1NXpNMi40OTk2IDkuOTk5NTFIMHYtMi40OTk2aDIuNDk5NnpcIlxuICAgICAgICBmaWxsPVwiY3VycmVudENvbG9yXCJcbiAgICAgICAgZmlsbFJ1bGU9XCJldmVub2RkXCJcbiAgICAgIC8+XG4gICAgPC9zdmc+XG4gIClcbn1cblxuaW50ZXJmYWNlIEFycm93SWNvblByb3BzIGV4dGVuZHMgU1ZHUHJvcHM8U1ZHU1ZHRWxlbWVudD4ge1xuICBkaXJlY3Rpb24/OiAnZG93bicgfCAnbGVmdCcgfCAncmlnaHQnIHwgJ3VwJ1xufVxuIl0sCiAgIm1hcHBpbmdzIjogIkFBVUksU0FZRSxLQVpGO0FBUkosU0FBUyxVQUFVO0FBRVosZ0JBQVMsVUFBVTtBQUFBLEVBQ3hCO0FBQUEsRUFDQSxZQUFZO0FBQUEsRUFDWixHQUFHO0FBQ0wsR0FBbUI7QUFDakIsU0FDRTtBQUFBLElBQUM7QUFBQTtBQUFBLE1BQ0MsV0FBVztBQUFBLFFBQ1QsY0FBYyxRQUFRO0FBQUEsUUFDdEIsY0FBYyxVQUFVO0FBQUEsUUFDeEIsY0FBYyxXQUFXO0FBQUEsUUFDekI7QUFBQSxRQUNBO0FBQUEsTUFDRjtBQUFBLE1BQ0EsTUFBSztBQUFBLE1BQ0wsU0FBUTtBQUFBLE1BQ1AsR0FBRztBQUFBLE1BRUo7QUFBQTtBQUFBLFVBQUM7QUFBQTtBQUFBLFlBQ0MsVUFBUztBQUFBLFlBQ1QsR0FBRTtBQUFBLFlBQ0YsTUFBSztBQUFBLFlBQ0wsVUFBUztBQUFBO0FBQUEsUUFDWDtBQUFBLFFBRUE7QUFBQSxVQUFDO0FBQUE7QUFBQSxZQUNDLFVBQVM7QUFBQSxZQUNULEdBQUU7QUFBQSxZQUNGLE1BQUs7QUFBQSxZQUNMLFVBQVM7QUFBQTtBQUFBLFFBQ1g7QUFBQTtBQUFBO0FBQUEsRUFDRjtBQUVKOyIsCiAgIm5hbWVzIjogW10KfQo=
@@ -0,0 +1,2 @@
1
+ import type { SVGProps } from 'react';
2
+ export declare function CheckIcon(props: SVGProps<SVGSVGElement>): import("react").JSX.Element;
@@ -0,0 +1,13 @@
1
+ import { jsx } from "react/jsx-runtime";
2
+ export function CheckIcon(props) {
3
+ return /* @__PURE__ */ jsx("svg", { fill: "none", viewBox: "0 0 12 12", ...props, children: /* @__PURE__ */ jsx(
4
+ "path",
5
+ {
6
+ clipRule: "evenodd",
7
+ d: "M10.28 2.22a.75.75 0 0 1 0 1.06l-5.25 5.25a.75.75 0 0 1-1.06 0L1.72 6.28a.75.75 0 1 1 1.06-1.06L4.5 6.94l4.72-4.72a.75.75 0 0 1 1.06 0Z",
8
+ fill: "currentColor",
9
+ fillRule: "evenodd"
10
+ }
11
+ ) });
12
+ }
13
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiPHN0ZGluPiJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiaW1wb3J0IHR5cGUgeyBTVkdQcm9wcyB9IGZyb20gJ3JlYWN0J1xuXG5leHBvcnQgZnVuY3Rpb24gQ2hlY2tJY29uKHByb3BzOiBTVkdQcm9wczxTVkdTVkdFbGVtZW50Pikge1xuICByZXR1cm4gKFxuICAgIDxzdmcgZmlsbD1cIm5vbmVcIiB2aWV3Qm94PVwiMCAwIDEyIDEyXCIgey4uLnByb3BzfT5cbiAgICAgIDxwYXRoXG4gICAgICAgIGNsaXBSdWxlPVwiZXZlbm9kZFwiXG4gICAgICAgIGQ9XCJNMTAuMjggMi4yMmEuNzUuNzUgMCAwIDEgMCAxLjA2bC01LjI1IDUuMjVhLjc1Ljc1IDAgMCAxLTEuMDYgMEwxLjcyIDYuMjhhLjc1Ljc1IDAgMSAxIDEuMDYtMS4wNkw0LjUgNi45NGw0LjcyLTQuNzJhLjc1Ljc1IDAgMCAxIDEuMDYgMFpcIlxuICAgICAgICBmaWxsPVwiY3VycmVudENvbG9yXCJcbiAgICAgICAgZmlsbFJ1bGU9XCJldmVub2RkXCJcbiAgICAgIC8+XG4gICAgPC9zdmc+XG4gIClcbn1cbiJdLAogICJtYXBwaW5ncyI6ICJBQUtNO0FBSEMsZ0JBQVMsVUFBVSxPQUFnQztBQUN4RCxTQUNFLG9CQUFDLFNBQUksTUFBSyxRQUFPLFNBQVEsYUFBYSxHQUFHLE9BQ3ZDO0FBQUEsSUFBQztBQUFBO0FBQUEsTUFDQyxVQUFTO0FBQUEsTUFDVCxHQUFFO0FBQUEsTUFDRixNQUFLO0FBQUEsTUFDTCxVQUFTO0FBQUE7QUFBQSxFQUNYLEdBQ0Y7QUFFSjsiLAogICJuYW1lcyI6IFtdCn0K
@@ -0,0 +1,6 @@
1
+ import type { SVGProps } from 'react';
2
+ export declare function ChevronIcon({ className, direction, ...props }: ChevronIconProps): import("react").JSX.Element;
3
+ interface ChevronIconProps extends SVGProps<SVGSVGElement> {
4
+ direction?: 'left' | 'right';
5
+ }
6
+ export {};
@@ -0,0 +1,51 @@
1
+ import { jsx, jsxs } from "react/jsx-runtime";
2
+ import { cn } from "../../../utils/index.js";
3
+ export function ChevronIcon({
4
+ className,
5
+ direction = "left",
6
+ ...props
7
+ }) {
8
+ return /* @__PURE__ */ jsxs(
9
+ "svg",
10
+ {
11
+ className: cn(
12
+ direction === "left" && "rotate-90",
13
+ direction === "right" && "-rotate-90",
14
+ className
15
+ ),
16
+ fill: "none",
17
+ viewBox: "0 0 8 13",
18
+ ...props,
19
+ children: [
20
+ /* @__PURE__ */ jsx(
21
+ "path",
22
+ {
23
+ clipRule: "evenodd",
24
+ d: "M0 7.49765h5V4.9969H1e-7z",
25
+ fill: "currentColor",
26
+ fillRule: "evenodd"
27
+ }
28
+ ),
29
+ /* @__PURE__ */ jsx(
30
+ "path",
31
+ {
32
+ clipRule: "evenodd",
33
+ d: "M2.5 2.49765v7.5h2.50075v-7.5z",
34
+ fill: "currentColor",
35
+ fillRule: "evenodd"
36
+ }
37
+ ),
38
+ /* @__PURE__ */ jsx(
39
+ "path",
40
+ {
41
+ clipRule: "evenodd",
42
+ d: "M5 .0000031V2.4996h2.4996V.0000032zM5 9.99805v2.49965h2.4996V9.99805z",
43
+ fill: "currentColor",
44
+ fillRule: "evenodd"
45
+ }
46
+ )
47
+ ]
48
+ }
49
+ );
50
+ }
51
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiPHN0ZGluPiJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiaW1wb3J0IHR5cGUgeyBTVkdQcm9wcyB9IGZyb20gJ3JlYWN0J1xuXG5pbXBvcnQgeyBjbiB9IGZyb20gJy4uLy4uLy4uL3V0aWxzJ1xuXG5leHBvcnQgZnVuY3Rpb24gQ2hldnJvbkljb24oe1xuICBjbGFzc05hbWUsXG4gIGRpcmVjdGlvbiA9ICdsZWZ0JyxcbiAgLi4ucHJvcHNcbn06IENoZXZyb25JY29uUHJvcHMpIHtcbiAgcmV0dXJuIChcbiAgICA8c3ZnXG4gICAgICBjbGFzc05hbWU9e2NuKFxuICAgICAgICBkaXJlY3Rpb24gPT09ICdsZWZ0JyAmJiAncm90YXRlLTkwJyxcbiAgICAgICAgZGlyZWN0aW9uID09PSAncmlnaHQnICYmICctcm90YXRlLTkwJyxcbiAgICAgICAgY2xhc3NOYW1lXG4gICAgICApfVxuICAgICAgZmlsbD1cIm5vbmVcIlxuICAgICAgdmlld0JveD1cIjAgMCA4IDEzXCJcbiAgICAgIHsuLi5wcm9wc31cbiAgICA+XG4gICAgICA8cGF0aFxuICAgICAgICBjbGlwUnVsZT1cImV2ZW5vZGRcIlxuICAgICAgICBkPVwiTTAgNy40OTc2NWg1VjQuOTk2OUgxZS03elwiXG4gICAgICAgIGZpbGw9XCJjdXJyZW50Q29sb3JcIlxuICAgICAgICBmaWxsUnVsZT1cImV2ZW5vZGRcIlxuICAgICAgLz5cbiAgICAgIDxwYXRoXG4gICAgICAgIGNsaXBSdWxlPVwiZXZlbm9kZFwiXG4gICAgICAgIGQ9XCJNMi41IDIuNDk3NjV2Ny41aDIuNTAwNzV2LTcuNXpcIlxuICAgICAgICBmaWxsPVwiY3VycmVudENvbG9yXCJcbiAgICAgICAgZmlsbFJ1bGU9XCJldmVub2RkXCJcbiAgICAgIC8+XG4gICAgICA8cGF0aFxuICAgICAgICBjbGlwUnVsZT1cImV2ZW5vZGRcIlxuICAgICAgICBkPVwiTTUgLjAwMDAwMzFWMi40OTk2aDIuNDk5NlYuMDAwMDAzMnpNNSA5Ljk5ODA1djIuNDk5NjVoMi40OTk2VjkuOTk4MDV6XCJcbiAgICAgICAgZmlsbD1cImN1cnJlbnRDb2xvclwiXG4gICAgICAgIGZpbGxSdWxlPVwiZXZlbm9kZFwiXG4gICAgICAvPlxuICAgIDwvc3ZnPlxuICApXG59XG5cbmludGVyZmFjZSBDaGV2cm9uSWNvblByb3BzIGV4dGVuZHMgU1ZHUHJvcHM8U1ZHU1ZHRWxlbWVudD4ge1xuICBkaXJlY3Rpb24/OiAnbGVmdCcgfCAncmlnaHQnXG59XG4iXSwKICAibWFwcGluZ3MiOiAiQUFVSSxTQVVFLEtBVkY7QUFSSixTQUFTLFVBQVU7QUFFWixnQkFBUyxZQUFZO0FBQUEsRUFDMUI7QUFBQSxFQUNBLFlBQVk7QUFBQSxFQUNaLEdBQUc7QUFDTCxHQUFxQjtBQUNuQixTQUNFO0FBQUEsSUFBQztBQUFBO0FBQUEsTUFDQyxXQUFXO0FBQUEsUUFDVCxjQUFjLFVBQVU7QUFBQSxRQUN4QixjQUFjLFdBQVc7QUFBQSxRQUN6QjtBQUFBLE1BQ0Y7QUFBQSxNQUNBLE1BQUs7QUFBQSxNQUNMLFNBQVE7QUFBQSxNQUNQLEdBQUc7QUFBQSxNQUVKO0FBQUE7QUFBQSxVQUFDO0FBQUE7QUFBQSxZQUNDLFVBQVM7QUFBQSxZQUNULEdBQUU7QUFBQSxZQUNGLE1BQUs7QUFBQSxZQUNMLFVBQVM7QUFBQTtBQUFBLFFBQ1g7QUFBQSxRQUNBO0FBQUEsVUFBQztBQUFBO0FBQUEsWUFDQyxVQUFTO0FBQUEsWUFDVCxHQUFFO0FBQUEsWUFDRixNQUFLO0FBQUEsWUFDTCxVQUFTO0FBQUE7QUFBQSxRQUNYO0FBQUEsUUFDQTtBQUFBLFVBQUM7QUFBQTtBQUFBLFlBQ0MsVUFBUztBQUFBLFlBQ1QsR0FBRTtBQUFBLFlBQ0YsTUFBSztBQUFBLFlBQ0wsVUFBUztBQUFBO0FBQUEsUUFDWDtBQUFBO0FBQUE7QUFBQSxFQUNGO0FBRUo7IiwKICAibmFtZXMiOiBbXQp9Cg==
@@ -0,0 +1,2 @@
1
+ import type { SVGProps } from 'react';
2
+ export declare function DiscordIcon({ className, ...props }: SVGProps<SVGSVGElement>): import("react").JSX.Element;
@@ -0,0 +1,15 @@
1
+ import { jsx } from "react/jsx-runtime";
2
+ import { cn } from "../../../utils/index.js";
3
+ export function DiscordIcon({ className, ...props }) {
4
+ return /* @__PURE__ */ jsx(
5
+ "svg",
6
+ {
7
+ className: cn("size-4", className),
8
+ fill: "currentColor",
9
+ viewBox: "0 0 24 24",
10
+ ...props,
11
+ children: /* @__PURE__ */ jsx("path", { d: "M20.317 4.37a19.791 19.791 0 0 0-4.885-1.515.074.074 0 0 0-.079.037c-.21.375-.444.864-.608 1.25a18.27 18.27 0 0 0-5.487 0 12.64 12.64 0 0 0-.617-1.25.077.077 0 0 0-.079-.037A19.736 19.736 0 0 0 3.677 4.37a.07.07 0 0 0-.032.027C.533 9.046-.32 13.58.099 18.057a.082.082 0 0 0 .031.057 19.9 19.9 0 0 0 5.993 3.03.078.078 0 0 0 .084-.028c.462-.63.874-1.295 1.226-1.994a.076.076 0 0 0-.041-.106 13.107 13.107 0 0 1-1.872-.892.077.077 0 0 1-.008-.128 10.2 10.2 0 0 0 .372-.292.074.074 0 0 1 .077-.01c3.928 1.793 8.18 1.793 12.062 0a.074.074 0 0 1 .078.01c.12.098.246.198.373.292a.077.077 0 0 1-.006.127 12.299 12.299 0 0 1-1.873.892.077.077 0 0 0-.041.107c.36.698.772 1.362 1.225 1.993a.076.076 0 0 0 .084.028 19.839 19.839 0 0 0 6.002-3.03.077.077 0 0 0 .032-.054c.5-5.177-.838-9.674-3.549-13.66a.061.061 0 0 0-.031-.03zM8.02 15.33c-1.183 0-2.157-1.085-2.157-2.419 0-1.333.956-2.419 2.157-2.419 1.21 0 2.176 1.096 2.157 2.42 0 1.333-.956 2.418-2.157 2.418zm7.975 0c-1.183 0-2.157-1.085-2.157-2.419 0-1.333.956-2.419 2.157-2.419 1.21 0 2.176 1.096 2.157 2.42 0 1.333-.946 2.418-2.157 2.418z" })
12
+ }
13
+ );
14
+ }
15
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiPHN0ZGluPiJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiaW1wb3J0IHR5cGUgeyBTVkdQcm9wcyB9IGZyb20gJ3JlYWN0J1xuXG5pbXBvcnQgeyBjbiB9IGZyb20gJy4uLy4uLy4uL3V0aWxzJ1xuXG5leHBvcnQgZnVuY3Rpb24gRGlzY29yZEljb24oeyBjbGFzc05hbWUsIC4uLnByb3BzIH06IFNWR1Byb3BzPFNWR1NWR0VsZW1lbnQ+KSB7XG4gIHJldHVybiAoXG4gICAgPHN2Z1xuICAgICAgY2xhc3NOYW1lPXtjbignc2l6ZS00JywgY2xhc3NOYW1lKX1cbiAgICAgIGZpbGw9XCJjdXJyZW50Q29sb3JcIlxuICAgICAgdmlld0JveD1cIjAgMCAyNCAyNFwiXG4gICAgICB7Li4ucHJvcHN9XG4gICAgPlxuICAgICAgPHBhdGggZD1cIk0yMC4zMTcgNC4zN2ExOS43OTEgMTkuNzkxIDAgMCAwLTQuODg1LTEuNTE1LjA3NC4wNzQgMCAwIDAtLjA3OS4wMzdjLS4yMS4zNzUtLjQ0NC44NjQtLjYwOCAxLjI1YTE4LjI3IDE4LjI3IDAgMCAwLTUuNDg3IDAgMTIuNjQgMTIuNjQgMCAwIDAtLjYxNy0xLjI1LjA3Ny4wNzcgMCAwIDAtLjA3OS0uMDM3QTE5LjczNiAxOS43MzYgMCAwIDAgMy42NzcgNC4zN2EuMDcuMDcgMCAwIDAtLjAzMi4wMjdDLjUzMyA5LjA0Ni0uMzIgMTMuNTguMDk5IDE4LjA1N2EuMDgyLjA4MiAwIDAgMCAuMDMxLjA1NyAxOS45IDE5LjkgMCAwIDAgNS45OTMgMy4wMy4wNzguMDc4IDAgMCAwIC4wODQtLjAyOGMuNDYyLS42My44NzQtMS4yOTUgMS4yMjYtMS45OTRhLjA3Ni4wNzYgMCAwIDAtLjA0MS0uMTA2IDEzLjEwNyAxMy4xMDcgMCAwIDEtMS44NzItLjg5Mi4wNzcuMDc3IDAgMCAxLS4wMDgtLjEyOCAxMC4yIDEwLjIgMCAwIDAgLjM3Mi0uMjkyLjA3NC4wNzQgMCAwIDEgLjA3Ny0uMDFjMy45MjggMS43OTMgOC4xOCAxLjc5MyAxMi4wNjIgMGEuMDc0LjA3NCAwIDAgMSAuMDc4LjAxYy4xMi4wOTguMjQ2LjE5OC4zNzMuMjkyYS4wNzcuMDc3IDAgMCAxLS4wMDYuMTI3IDEyLjI5OSAxMi4yOTkgMCAwIDEtMS44NzMuODkyLjA3Ny4wNzcgMCAwIDAtLjA0MS4xMDdjLjM2LjY5OC43NzIgMS4zNjIgMS4yMjUgMS45OTNhLjA3Ni4wNzYgMCAwIDAgLjA4NC4wMjggMTkuODM5IDE5LjgzOSAwIDAgMCA2LjAwMi0zLjAzLjA3Ny4wNzcgMCAwIDAgLjAzMi0uMDU0Yy41LTUuMTc3LS44MzgtOS42NzQtMy41NDktMTMuNjZhLjA2MS4wNjEgMCAwIDAtLjAzMS0uMDN6TTguMDIgMTUuMzNjLTEuMTgzIDAtMi4xNTctMS4wODUtMi4xNTctMi40MTkgMC0xLjMzMy45NTYtMi40MTkgMi4xNTctMi40MTkgMS4yMSAwIDIuMTc2IDEuMDk2IDIuMTU3IDIuNDIgMCAxLjMzMy0uOTU2IDIuNDE4LTIuMTU3IDIuNDE4em03Ljk3NSAwYy0xLjE4MyAwLTIuMTU3LTEuMDg1LTIuMTU3LTIuNDE5IDAtMS4zMzMuOTU2LTIuNDE5IDIuMTU3LTIuNDE5IDEuMjEgMCAyLjE3NiAxLjA5NiAyLjE1NyAyLjQyIDAgMS4zMzMtLjk0NiAyLjQxOC0yLjE1NyAyLjQxOHpcIiAvPlxuICAgIDwvc3ZnPlxuICApXG59XG4iXSwKICAibWFwcGluZ3MiOiAiQUFZTTtBQVZOLFNBQVMsVUFBVTtBQUVaLGdCQUFTLFlBQVksRUFBRSxXQUFXLEdBQUcsTUFBTSxHQUE0QjtBQUM1RSxTQUNFO0FBQUEsSUFBQztBQUFBO0FBQUEsTUFDQyxXQUFXLEdBQUcsVUFBVSxTQUFTO0FBQUEsTUFDakMsTUFBSztBQUFBLE1BQ0wsU0FBUTtBQUFBLE1BQ1AsR0FBRztBQUFBLE1BRUosOEJBQUMsVUFBSyxHQUFFLGdrQ0FBK2pDO0FBQUE7QUFBQSxFQUN6a0M7QUFFSjsiLAogICJuYW1lcyI6IFtdCn0K
@@ -0,0 +1,2 @@
1
+ import type { SVGProps } from 'react';
2
+ export declare function EyeIcon(props: SVGProps<SVGSVGElement>): import("react").JSX.Element;
@@ -0,0 +1,8 @@
1
+ import { jsx, jsxs } from "react/jsx-runtime";
2
+ export function EyeIcon(props) {
3
+ return /* @__PURE__ */ jsx("svg", { fill: "none", viewBox: "0 0 26 17", ...props, children: /* @__PURE__ */ jsxs("g", { clipRule: "evenodd", fill: "currentColor", fillRule: "evenodd", children: [
4
+ /* @__PURE__ */ jsx("path", { d: "M2.36308 9.45484H0V7.09067h2.36308zM23.6387 9.45484h2.3631V7.09067h-2.3631zM4.73047 2.36462h3.54519v2.36309H4.73047zM8.27539 0h9.45451v2.36417H8.27539zM8.27539 14.1808h9.45451v2.3641H8.27539zM4.73047 14.1808h3.54519v-2.3631H4.73047zM21.2718 2.36462h-3.5452v2.36309h3.5452zM21.2718 14.1808h-3.5452v-2.3631h3.5452zM2.36719 4.72751h2.36308v2.36308H2.36719zM2.36719 11.8179h2.36308V9.45486H2.36719z" }),
5
+ /* @__PURE__ */ jsx("path", { d: "M23.6346 4.72751h-2.3631v2.36308h2.3631zM23.6346 11.8179h-2.3631V9.45486h2.3631zM14.7716 6.50014h-3.5452V4.13705h3.5452zm0 0v3.54516h-3.5452v2.3631h3.5452v-2.3631h2.363V6.50014zm-3.5452 0v3.54516H8.86328V6.50014z" })
6
+ ] }) });
7
+ }
8
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiPHN0ZGluPiJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiaW1wb3J0IHR5cGUgeyBTVkdQcm9wcyB9IGZyb20gJ3JlYWN0J1xuXG5leHBvcnQgZnVuY3Rpb24gRXllSWNvbihwcm9wczogU1ZHUHJvcHM8U1ZHU1ZHRWxlbWVudD4pIHtcbiAgcmV0dXJuIChcbiAgICA8c3ZnIGZpbGw9XCJub25lXCIgdmlld0JveD1cIjAgMCAyNiAxN1wiIHsuLi5wcm9wc30+XG4gICAgICA8ZyBjbGlwUnVsZT1cImV2ZW5vZGRcIiBmaWxsPVwiY3VycmVudENvbG9yXCIgZmlsbFJ1bGU9XCJldmVub2RkXCI+XG4gICAgICAgIDxwYXRoIGQ9XCJNMi4zNjMwOCA5LjQ1NDg0SDBWNy4wOTA2N2gyLjM2MzA4ek0yMy42Mzg3IDkuNDU0ODRoMi4zNjMxVjcuMDkwNjdoLTIuMzYzMXpNNC43MzA0NyAyLjM2NDYyaDMuNTQ1MTl2Mi4zNjMwOUg0LjczMDQ3ek04LjI3NTM5IDBoOS40NTQ1MXYyLjM2NDE3SDguMjc1Mzl6TTguMjc1MzkgMTQuMTgwOGg5LjQ1NDUxdjIuMzY0MUg4LjI3NTM5ek00LjczMDQ3IDE0LjE4MDhoMy41NDUxOXYtMi4zNjMxSDQuNzMwNDd6TTIxLjI3MTggMi4zNjQ2MmgtMy41NDUydjIuMzYzMDloMy41NDUyek0yMS4yNzE4IDE0LjE4MDhoLTMuNTQ1MnYtMi4zNjMxaDMuNTQ1MnpNMi4zNjcxOSA0LjcyNzUxaDIuMzYzMDh2Mi4zNjMwOEgyLjM2NzE5ek0yLjM2NzE5IDExLjgxNzloMi4zNjMwOFY5LjQ1NDg2SDIuMzY3MTl6XCIgLz5cbiAgICAgICAgPHBhdGggZD1cIk0yMy42MzQ2IDQuNzI3NTFoLTIuMzYzMXYyLjM2MzA4aDIuMzYzMXpNMjMuNjM0NiAxMS44MTc5aC0yLjM2MzFWOS40NTQ4NmgyLjM2MzF6TTE0Ljc3MTYgNi41MDAxNGgtMy41NDUyVjQuMTM3MDVoMy41NDUyem0wIDB2My41NDUxNmgtMy41NDUydjIuMzYzMWgzLjU0NTJ2LTIuMzYzMWgyLjM2M1Y2LjUwMDE0em0tMy41NDUyIDB2My41NDUxNkg4Ljg2MzI4VjYuNTAwMTR6XCIgLz5cbiAgICAgIDwvZz5cbiAgICA8L3N2Zz5cbiAgKVxufVxuIl0sCiAgIm1hcHBpbmdzIjogIkFBS00sU0FDRSxLQURGO0FBSEMsZ0JBQVMsUUFBUSxPQUFnQztBQUN0RCxTQUNFLG9CQUFDLFNBQUksTUFBSyxRQUFPLFNBQVEsYUFBYSxHQUFHLE9BQ3ZDLCtCQUFDLE9BQUUsVUFBUyxXQUFVLE1BQUssZ0JBQWUsVUFBUyxXQUNqRDtBQUFBLHdCQUFDLFVBQUssR0FBRSw4WUFBNlk7QUFBQSxJQUNyWixvQkFBQyxVQUFLLEdBQUUsd05BQXVOO0FBQUEsS0FDak8sR0FDRjtBQUVKOyIsCiAgIm5hbWVzIjogW10KfQo=
@@ -0,0 +1,6 @@
1
+ import { type PropsWithChildren, type SVGProps } from 'react';
2
+ export declare function GearIcon({ children, innerScale, ...props }: GearIconProps): import("react").JSX.Element;
3
+ interface GearIconProps extends PropsWithChildren<SVGProps<SVGSVGElement>> {
4
+ innerScale?: number;
5
+ }
6
+ export {};
@@ -0,0 +1,30 @@
1
+ import { jsx, jsxs } from "react/jsx-runtime";
2
+ import {
3
+ isValidElement
4
+ } from "react";
5
+ const VIEWBOX = "0 0 34 38";
6
+ const GEAR_PATH = "M10.1249 3.37446h5.0624v3.37446h-5.0624zM23.6262 3.37446h-5.0625v3.37446h5.0625zM18.5637 0v3.37446h-3.3764L15.1877 0zM3.3762 6.74879l6.7487.00013.0003 3.37588h-6.749zM30.3748 6.74879l-6.7486.00013-.0003 3.37588h6.7489zM0 26.9988v-16.874h3.3762l-.00019 16.874zM33.7505 26.9988v-16.874h-3.3757l-.0003 16.874zM10.1248 30.3751H3.37586l.00015-3.3763 6.74879.0003zM23.6262 30.3751h6.749l-.0007-3.3763-6.7483.0003zM15.1873 33.7495h-5.0624l-.0001-3.3744 5.0625-.0001zM18.5637 33.7495h5.0625v-3.3744l-5.0625-.0001zM15.1874 37.1245l-.0001-3.375h3.3764l-.0003 3.375z";
7
+ export function GearIcon({
8
+ children,
9
+ innerScale = 0.55,
10
+ ...props
11
+ }) {
12
+ const isSvg = isValidElement(children) && children.type === "svg";
13
+ const viewBox = isSvg ? children.props.viewBox ?? VIEWBOX : VIEWBOX;
14
+ const inner = isSvg ? children.props.children : children;
15
+ return /* @__PURE__ */ jsxs("svg", { fill: "none", viewBox: VIEWBOX, ...props, children: [
16
+ /* @__PURE__ */ jsx("g", { clipRule: "evenodd", fill: "currentColor", fillRule: "evenodd", children: /* @__PURE__ */ jsx("path", { d: GEAR_PATH }) }),
17
+ children && /* @__PURE__ */ jsx(
18
+ "svg",
19
+ {
20
+ height: 26 * innerScale,
21
+ width: 26 * innerScale,
22
+ x: 17 - 26 * innerScale / 2,
23
+ y: 19 - 26 * innerScale / 2,
24
+ ...{ viewBox },
25
+ children: inner
26
+ }
27
+ )
28
+ ] });
29
+ }
30
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiPHN0ZGluPiJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiaW1wb3J0IHtcbiAgaXNWYWxpZEVsZW1lbnQsXG4gIHR5cGUgUHJvcHNXaXRoQ2hpbGRyZW4sXG4gIHR5cGUgUmVhY3ROb2RlLFxuICB0eXBlIFNWR1Byb3BzXG59IGZyb20gJ3JlYWN0J1xuXG5jb25zdCBWSUVXQk9YID0gJzAgMCAzNCAzOCdcblxuY29uc3QgR0VBUl9QQVRIID1cbiAgJ00xMC4xMjQ5IDMuMzc0NDZoNS4wNjI0djMuMzc0NDZoLTUuMDYyNHpNMjMuNjI2MiAzLjM3NDQ2aC01LjA2MjV2My4zNzQ0Nmg1LjA2MjV6TTE4LjU2MzcgMHYzLjM3NDQ2aC0zLjM3NjRMMTUuMTg3NyAwek0zLjM3NjIgNi43NDg3OWw2Ljc0ODcuMDAwMTMuMDAwMyAzLjM3NTg4aC02Ljc0OXpNMzAuMzc0OCA2Ljc0ODc5bC02Ljc0ODYuMDAwMTMtLjAwMDMgMy4zNzU4OGg2Ljc0ODl6TTAgMjYuOTk4OHYtMTYuODc0aDMuMzc2MmwtLjAwMDE5IDE2Ljg3NHpNMzMuNzUwNSAyNi45OTg4di0xNi44NzRoLTMuMzc1N2wtLjAwMDMgMTYuODc0ek0xMC4xMjQ4IDMwLjM3NTFIMy4zNzU4NmwuMDAwMTUtMy4zNzYzIDYuNzQ4NzkuMDAwM3pNMjMuNjI2MiAzMC4zNzUxaDYuNzQ5bC0uMDAwNy0zLjM3NjMtNi43NDgzLjAwMDN6TTE1LjE4NzMgMzMuNzQ5NWgtNS4wNjI0bC0uMDAwMS0zLjM3NDQgNS4wNjI1LS4wMDAxek0xOC41NjM3IDMzLjc0OTVoNS4wNjI1di0zLjM3NDRsLTUuMDYyNS0uMDAwMXpNMTUuMTg3NCAzNy4xMjQ1bC0uMDAwMS0zLjM3NWgzLjM3NjRsLS4wMDAzIDMuMzc1eidcblxuZXhwb3J0IGZ1bmN0aW9uIEdlYXJJY29uKHtcbiAgY2hpbGRyZW4sXG4gIGlubmVyU2NhbGUgPSAwLjU1LFxuICAuLi5wcm9wc1xufTogR2Vhckljb25Qcm9wcykge1xuICBjb25zdCBpc1N2ZyA9IGlzVmFsaWRFbGVtZW50KGNoaWxkcmVuKSAmJiBjaGlsZHJlbi50eXBlID09PSAnc3ZnJ1xuXG4gIGNvbnN0IHZpZXdCb3ggPSBpc1N2Z1xuICAgID8gKChjaGlsZHJlbi5wcm9wcyBhcyB7IHZpZXdCb3g/OiBzdHJpbmcgfSkudmlld0JveCA/PyBWSUVXQk9YKVxuICAgIDogVklFV0JPWFxuXG4gIGNvbnN0IGlubmVyID0gaXNTdmdcbiAgICA/IChjaGlsZHJlbi5wcm9wcyBhcyB7IGNoaWxkcmVuPzogUmVhY3ROb2RlIH0pLmNoaWxkcmVuXG4gICAgOiBjaGlsZHJlblxuXG4gIHJldHVybiAoXG4gICAgPHN2ZyBmaWxsPVwibm9uZVwiIHZpZXdCb3g9e1ZJRVdCT1h9IHsuLi5wcm9wc30+XG4gICAgICA8ZyBjbGlwUnVsZT1cImV2ZW5vZGRcIiBmaWxsPVwiY3VycmVudENvbG9yXCIgZmlsbFJ1bGU9XCJldmVub2RkXCI+XG4gICAgICAgIDxwYXRoIGQ9e0dFQVJfUEFUSH0gLz5cbiAgICAgIDwvZz5cblxuICAgICAge2NoaWxkcmVuICYmIChcbiAgICAgICAgPHN2Z1xuICAgICAgICAgIGhlaWdodD17MjYgKiBpbm5lclNjYWxlfVxuICAgICAgICAgIHdpZHRoPXsyNiAqIGlubmVyU2NhbGV9XG4gICAgICAgICAgeD17MTcgLSAoMjYgKiBpbm5lclNjYWxlKSAvIDJ9XG4gICAgICAgICAgeT17MTkgLSAoMjYgKiBpbm5lclNjYWxlKSAvIDJ9XG4gICAgICAgICAgey4uLnsgdmlld0JveCB9fVxuICAgICAgICA+XG4gICAgICAgICAge2lubmVyfVxuICAgICAgICA8L3N2Zz5cbiAgICAgICl9XG4gICAgPC9zdmc+XG4gIClcbn1cblxuaW50ZXJmYWNlIEdlYXJJY29uUHJvcHMgZXh0ZW5kcyBQcm9wc1dpdGhDaGlsZHJlbjxTVkdQcm9wczxTVkdTVkdFbGVtZW50Pj4ge1xuICBpbm5lclNjYWxlPzogbnVtYmVyXG59XG4iXSwKICAibWFwcGluZ3MiOiAiQUE0QkksU0FFSSxLQUZKO0FBNUJKO0FBQUEsRUFDRTtBQUFBLE9BSUs7QUFFUCxNQUFNLFVBQVU7QUFFaEIsTUFBTSxZQUNKO0FBRUssZ0JBQVMsU0FBUztBQUFBLEVBQ3ZCO0FBQUEsRUFDQSxhQUFhO0FBQUEsRUFDYixHQUFHO0FBQ0wsR0FBa0I7QUFDaEIsUUFBTSxRQUFRLGVBQWUsUUFBUSxLQUFLLFNBQVMsU0FBUztBQUU1RCxRQUFNLFVBQVUsUUFDVixTQUFTLE1BQStCLFdBQVcsVUFDckQ7QUFFSixRQUFNLFFBQVEsUUFDVCxTQUFTLE1BQW1DLFdBQzdDO0FBRUosU0FDRSxxQkFBQyxTQUFJLE1BQUssUUFBTyxTQUFTLFNBQVUsR0FBRyxPQUNyQztBQUFBLHdCQUFDLE9BQUUsVUFBUyxXQUFVLE1BQUssZ0JBQWUsVUFBUyxXQUNqRCw4QkFBQyxVQUFLLEdBQUcsV0FBVyxHQUN0QjtBQUFBLElBRUMsWUFDQztBQUFBLE1BQUM7QUFBQTtBQUFBLFFBQ0MsUUFBUSxLQUFLO0FBQUEsUUFDYixPQUFPLEtBQUs7QUFBQSxRQUNaLEdBQUcsS0FBTSxLQUFLLGFBQWM7QUFBQSxRQUM1QixHQUFHLEtBQU0sS0FBSyxhQUFjO0FBQUEsUUFDM0IsR0FBRyxFQUFFLFFBQVE7QUFBQSxRQUViO0FBQUE7QUFBQSxJQUNIO0FBQUEsS0FFSjtBQUVKOyIsCiAgIm5hbWVzIjogW10KfQo=
@@ -0,0 +1,2 @@
1
+ import type { SVGProps } from 'react';
2
+ export declare function GitHubIcon({ className, ...props }: SVGProps<SVGSVGElement>): import("react").JSX.Element;
@@ -0,0 +1,15 @@
1
+ import { jsx } from "react/jsx-runtime";
2
+ import { cn } from "../../../utils/index.js";
3
+ export function GitHubIcon({ className, ...props }) {
4
+ return /* @__PURE__ */ jsx(
5
+ "svg",
6
+ {
7
+ className: cn("size-4", className),
8
+ fill: "currentColor",
9
+ viewBox: "0 0 24 24",
10
+ ...props,
11
+ children: /* @__PURE__ */ jsx("path", { d: "M12 0C5.37 0 0 5.37 0 12c0 5.31 3.435 9.795 8.205 11.385.6.105.825-.255.825-.57 0-.285-.015-1.23-.015-2.235-3.015.555-3.795-.735-4.035-1.41-.135-.345-.72-1.41-1.23-1.695-.42-.225-1.02-.78-.015-.795.945-.015 1.62.87 1.845 1.23 1.08 1.815 2.805 1.305 3.495.99.105-.78.42-1.305.765-1.605-2.67-.3-5.46-1.335-5.46-5.925 0-1.305.465-2.385 1.23-3.225-.12-.3-.54-1.53.12-3.18 0 0 1.005-.315 3.3 1.23.96-.27 1.98-.405 3-.405s2.04.135 3 .405c2.295-1.56 3.3-1.23 3.3-1.23.66 1.65.24 2.88.12 3.18.765.84 1.23 1.905 1.23 3.225 0 4.605-2.805 5.625-5.475 5.925.435.375.81 1.095.81 2.22 0 1.605-.015 2.895-.015 3.3 0 .315.225.69.825.57A12.02 12.02 0 0 0 24 12c0-6.63-5.37-12-12-12z" })
12
+ }
13
+ );
14
+ }
15
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiPHN0ZGluPiJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiaW1wb3J0IHR5cGUgeyBTVkdQcm9wcyB9IGZyb20gJ3JlYWN0J1xuXG5pbXBvcnQgeyBjbiB9IGZyb20gJy4uLy4uLy4uL3V0aWxzJ1xuXG5leHBvcnQgZnVuY3Rpb24gR2l0SHViSWNvbih7IGNsYXNzTmFtZSwgLi4ucHJvcHMgfTogU1ZHUHJvcHM8U1ZHU1ZHRWxlbWVudD4pIHtcbiAgcmV0dXJuIChcbiAgICA8c3ZnXG4gICAgICBjbGFzc05hbWU9e2NuKCdzaXplLTQnLCBjbGFzc05hbWUpfVxuICAgICAgZmlsbD1cImN1cnJlbnRDb2xvclwiXG4gICAgICB2aWV3Qm94PVwiMCAwIDI0IDI0XCJcbiAgICAgIHsuLi5wcm9wc31cbiAgICA+XG4gICAgICA8cGF0aCBkPVwiTTEyIDBDNS4zNyAwIDAgNS4zNyAwIDEyYzAgNS4zMSAzLjQzNSA5Ljc5NSA4LjIwNSAxMS4zODUuNi4xMDUuODI1LS4yNTUuODI1LS41NyAwLS4yODUtLjAxNS0xLjIzLS4wMTUtMi4yMzUtMy4wMTUuNTU1LTMuNzk1LS43MzUtNC4wMzUtMS40MS0uMTM1LS4zNDUtLjcyLTEuNDEtMS4yMy0xLjY5NS0uNDItLjIyNS0xLjAyLS43OC0uMDE1LS43OTUuOTQ1LS4wMTUgMS42Mi44NyAxLjg0NSAxLjIzIDEuMDggMS44MTUgMi44MDUgMS4zMDUgMy40OTUuOTkuMTA1LS43OC40Mi0xLjMwNS43NjUtMS42MDUtMi42Ny0uMy01LjQ2LTEuMzM1LTUuNDYtNS45MjUgMC0xLjMwNS40NjUtMi4zODUgMS4yMy0zLjIyNS0uMTItLjMtLjU0LTEuNTMuMTItMy4xOCAwIDAgMS4wMDUtLjMxNSAzLjMgMS4yMy45Ni0uMjcgMS45OC0uNDA1IDMtLjQwNXMyLjA0LjEzNSAzIC40MDVjMi4yOTUtMS41NiAzLjMtMS4yMyAzLjMtMS4yMy42NiAxLjY1LjI0IDIuODguMTIgMy4xOC43NjUuODQgMS4yMyAxLjkwNSAxLjIzIDMuMjI1IDAgNC42MDUtMi44MDUgNS42MjUtNS40NzUgNS45MjUuNDM1LjM3NS44MSAxLjA5NS44MSAyLjIyIDAgMS42MDUtLjAxNSAyLjg5NS0uMDE1IDMuMyAwIC4zMTUuMjI1LjY5LjgyNS41N0ExMi4wMiAxMi4wMiAwIDAgMCAyNCAxMmMwLTYuNjMtNS4zNy0xMi0xMi0xMnpcIiAvPlxuICAgIDwvc3ZnPlxuICApXG59XG4iXSwKICAibWFwcGluZ3MiOiAiQUFZTTtBQVZOLFNBQVMsVUFBVTtBQUVaLGdCQUFTLFdBQVcsRUFBRSxXQUFXLEdBQUcsTUFBTSxHQUE0QjtBQUMzRSxTQUNFO0FBQUEsSUFBQztBQUFBO0FBQUEsTUFDQyxXQUFXLEdBQUcsVUFBVSxTQUFTO0FBQUEsTUFDakMsTUFBSztBQUFBLE1BQ0wsU0FBUTtBQUFBLE1BQ1AsR0FBRztBQUFBLE1BRUosOEJBQUMsVUFBSyxHQUFFLDZwQkFBNHBCO0FBQUE7QUFBQSxFQUN0cUI7QUFFSjsiLAogICJuYW1lcyI6IFtdCn0K
@@ -0,0 +1,6 @@
1
+ import type { SVGProps } from 'react';
2
+ export declare function HamburgerIcon({ className, open, ...props }: HamburgerIconProps): import("react").JSX.Element;
3
+ interface HamburgerIconProps extends SVGProps<SVGSVGElement> {
4
+ open?: boolean;
5
+ }
6
+ export {};
@@ -0,0 +1,56 @@
1
+ import { jsx, jsxs } from "react/jsx-runtime";
2
+ import { cn } from "../../../utils/index.js";
3
+ export function HamburgerIcon({
4
+ className,
5
+ open = false,
6
+ ...props
7
+ }) {
8
+ return /* @__PURE__ */ jsxs(
9
+ "svg",
10
+ {
11
+ className: cn("size-5", className),
12
+ fill: "none",
13
+ stroke: "currentColor",
14
+ strokeLinecap: "round",
15
+ strokeWidth: 1.5,
16
+ viewBox: "0 0 24 24",
17
+ ...props,
18
+ children: [
19
+ /* @__PURE__ */ jsx(
20
+ "line",
21
+ {
22
+ className: "origin-center transition-transform duration-200 ease-out",
23
+ style: { transform: open ? "rotate(45deg)" : "translateY(-4px)" },
24
+ x1: 4,
25
+ x2: 20,
26
+ y1: 12,
27
+ y2: 12
28
+ }
29
+ ),
30
+ /* @__PURE__ */ jsx(
31
+ "line",
32
+ {
33
+ className: "transition-opacity duration-200 ease-out",
34
+ style: { opacity: open ? 0 : 1 },
35
+ x1: 4,
36
+ x2: 20,
37
+ y1: 12,
38
+ y2: 12
39
+ }
40
+ ),
41
+ /* @__PURE__ */ jsx(
42
+ "line",
43
+ {
44
+ className: "origin-center transition-transform duration-200 ease-out",
45
+ style: { transform: open ? "rotate(-45deg)" : "translateY(4px)" },
46
+ x1: 4,
47
+ x2: 20,
48
+ y1: 12,
49
+ y2: 12
50
+ }
51
+ )
52
+ ]
53
+ }
54
+ );
55
+ }
56
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiPHN0ZGluPiJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiaW1wb3J0IHR5cGUgeyBTVkdQcm9wcyB9IGZyb20gJ3JlYWN0J1xuXG5pbXBvcnQgeyBjbiB9IGZyb20gJy4uLy4uLy4uL3V0aWxzJ1xuXG5leHBvcnQgZnVuY3Rpb24gSGFtYnVyZ2VySWNvbih7XG4gIGNsYXNzTmFtZSxcbiAgb3BlbiA9IGZhbHNlLFxuICAuLi5wcm9wc1xufTogSGFtYnVyZ2VySWNvblByb3BzKSB7XG4gIHJldHVybiAoXG4gICAgPHN2Z1xuICAgICAgY2xhc3NOYW1lPXtjbignc2l6ZS01JywgY2xhc3NOYW1lKX1cbiAgICAgIGZpbGw9XCJub25lXCJcbiAgICAgIHN0cm9rZT1cImN1cnJlbnRDb2xvclwiXG4gICAgICBzdHJva2VMaW5lY2FwPVwicm91bmRcIlxuICAgICAgc3Ryb2tlV2lkdGg9ezEuNX1cbiAgICAgIHZpZXdCb3g9XCIwIDAgMjQgMjRcIlxuICAgICAgey4uLnByb3BzfVxuICAgID5cbiAgICAgIDxsaW5lXG4gICAgICAgIGNsYXNzTmFtZT1cIm9yaWdpbi1jZW50ZXIgdHJhbnNpdGlvbi10cmFuc2Zvcm0gZHVyYXRpb24tMjAwIGVhc2Utb3V0XCJcbiAgICAgICAgc3R5bGU9e3sgdHJhbnNmb3JtOiBvcGVuID8gJ3JvdGF0ZSg0NWRlZyknIDogJ3RyYW5zbGF0ZVkoLTRweCknIH19XG4gICAgICAgIHgxPXs0fVxuICAgICAgICB4Mj17MjB9XG4gICAgICAgIHkxPXsxMn1cbiAgICAgICAgeTI9ezEyfVxuICAgICAgLz5cblxuICAgICAgPGxpbmVcbiAgICAgICAgY2xhc3NOYW1lPVwidHJhbnNpdGlvbi1vcGFjaXR5IGR1cmF0aW9uLTIwMCBlYXNlLW91dFwiXG4gICAgICAgIHN0eWxlPXt7IG9wYWNpdHk6IG9wZW4gPyAwIDogMSB9fVxuICAgICAgICB4MT17NH1cbiAgICAgICAgeDI9ezIwfVxuICAgICAgICB5MT17MTJ9XG4gICAgICAgIHkyPXsxMn1cbiAgICAgIC8+XG5cbiAgICAgIDxsaW5lXG4gICAgICAgIGNsYXNzTmFtZT1cIm9yaWdpbi1jZW50ZXIgdHJhbnNpdGlvbi10cmFuc2Zvcm0gZHVyYXRpb24tMjAwIGVhc2Utb3V0XCJcbiAgICAgICAgc3R5bGU9e3sgdHJhbnNmb3JtOiBvcGVuID8gJ3JvdGF0ZSgtNDVkZWcpJyA6ICd0cmFuc2xhdGVZKDRweCknIH19XG4gICAgICAgIHgxPXs0fVxuICAgICAgICB4Mj17MjB9XG4gICAgICAgIHkxPXsxMn1cbiAgICAgICAgeTI9ezEyfVxuICAgICAgLz5cbiAgICA8L3N2Zz5cbiAgKVxufVxuXG5pbnRlcmZhY2UgSGFtYnVyZ2VySWNvblByb3BzIGV4dGVuZHMgU1ZHUHJvcHM8U1ZHU1ZHRWxlbWVudD4ge1xuICBvcGVuPzogYm9vbGVhblxufVxuIl0sCiAgIm1hcHBpbmdzIjogIkFBVUksU0FTRSxLQVRGO0FBUkosU0FBUyxVQUFVO0FBRVosZ0JBQVMsY0FBYztBQUFBLEVBQzVCO0FBQUEsRUFDQSxPQUFPO0FBQUEsRUFDUCxHQUFHO0FBQ0wsR0FBdUI7QUFDckIsU0FDRTtBQUFBLElBQUM7QUFBQTtBQUFBLE1BQ0MsV0FBVyxHQUFHLFVBQVUsU0FBUztBQUFBLE1BQ2pDLE1BQUs7QUFBQSxNQUNMLFFBQU87QUFBQSxNQUNQLGVBQWM7QUFBQSxNQUNkLGFBQWE7QUFBQSxNQUNiLFNBQVE7QUFBQSxNQUNQLEdBQUc7QUFBQSxNQUVKO0FBQUE7QUFBQSxVQUFDO0FBQUE7QUFBQSxZQUNDLFdBQVU7QUFBQSxZQUNWLE9BQU8sRUFBRSxXQUFXLE9BQU8sa0JBQWtCLG1CQUFtQjtBQUFBLFlBQ2hFLElBQUk7QUFBQSxZQUNKLElBQUk7QUFBQSxZQUNKLElBQUk7QUFBQSxZQUNKLElBQUk7QUFBQTtBQUFBLFFBQ047QUFBQSxRQUVBO0FBQUEsVUFBQztBQUFBO0FBQUEsWUFDQyxXQUFVO0FBQUEsWUFDVixPQUFPLEVBQUUsU0FBUyxPQUFPLElBQUksRUFBRTtBQUFBLFlBQy9CLElBQUk7QUFBQSxZQUNKLElBQUk7QUFBQSxZQUNKLElBQUk7QUFBQSxZQUNKLElBQUk7QUFBQTtBQUFBLFFBQ047QUFBQSxRQUVBO0FBQUEsVUFBQztBQUFBO0FBQUEsWUFDQyxXQUFVO0FBQUEsWUFDVixPQUFPLEVBQUUsV0FBVyxPQUFPLG1CQUFtQixrQkFBa0I7QUFBQSxZQUNoRSxJQUFJO0FBQUEsWUFDSixJQUFJO0FBQUEsWUFDSixJQUFJO0FBQUEsWUFDSixJQUFJO0FBQUE7QUFBQSxRQUNOO0FBQUE7QUFBQTtBQUFBLEVBQ0Y7QUFFSjsiLAogICJuYW1lcyI6IFtdCn0K
@@ -0,0 +1,2 @@
1
+ import type { SVGProps } from 'react';
2
+ export declare function HeartIcon(props: SVGProps<SVGSVGElement>): import("react").JSX.Element;