thread-ui 0.1.0

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 (257) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +68 -0
  3. package/dist/components/button/button.d.ts +3 -0
  4. package/dist/components/button/button.d.ts.map +1 -0
  5. package/dist/components/button/button.js +31 -0
  6. package/dist/components/button/button.js.map +1 -0
  7. package/dist/components/button/button.types.d.ts +10 -0
  8. package/dist/components/button/button.types.d.ts.map +1 -0
  9. package/dist/components/button/button.types.js +2 -0
  10. package/dist/components/button/button.types.js.map +1 -0
  11. package/dist/components/button/index.d.ts +3 -0
  12. package/dist/components/button/index.d.ts.map +1 -0
  13. package/dist/components/button/index.js +2 -0
  14. package/dist/components/button/index.js.map +1 -0
  15. package/dist/components/column-layout/column-layout.d.ts +3 -0
  16. package/dist/components/column-layout/column-layout.d.ts.map +1 -0
  17. package/dist/components/column-layout/column-layout.js +9 -0
  18. package/dist/components/column-layout/column-layout.js.map +1 -0
  19. package/dist/components/column-layout/column-layout.types.d.ts +17 -0
  20. package/dist/components/column-layout/column-layout.types.d.ts.map +1 -0
  21. package/dist/components/column-layout/column-layout.types.js +2 -0
  22. package/dist/components/column-layout/column-layout.types.js.map +1 -0
  23. package/dist/components/column-layout/index.d.ts +3 -0
  24. package/dist/components/column-layout/index.d.ts.map +1 -0
  25. package/dist/components/column-layout/index.js +2 -0
  26. package/dist/components/column-layout/index.js.map +1 -0
  27. package/dist/components/divider/divider.d.ts +3 -0
  28. package/dist/components/divider/divider.d.ts.map +1 -0
  29. package/dist/components/divider/divider.js +31 -0
  30. package/dist/components/divider/divider.js.map +1 -0
  31. package/dist/components/divider/divider.types.d.ts +6 -0
  32. package/dist/components/divider/divider.types.d.ts.map +1 -0
  33. package/dist/components/divider/divider.types.js +2 -0
  34. package/dist/components/divider/divider.types.js.map +1 -0
  35. package/dist/components/divider/index.d.ts +3 -0
  36. package/dist/components/divider/index.d.ts.map +1 -0
  37. package/dist/components/divider/index.js +2 -0
  38. package/dist/components/divider/index.js.map +1 -0
  39. package/dist/components/footer/footer.d.ts +3 -0
  40. package/dist/components/footer/footer.d.ts.map +1 -0
  41. package/dist/components/footer/footer.js +25 -0
  42. package/dist/components/footer/footer.js.map +1 -0
  43. package/dist/components/footer/footer.types.d.ts +14 -0
  44. package/dist/components/footer/footer.types.d.ts.map +1 -0
  45. package/dist/components/footer/footer.types.js +2 -0
  46. package/dist/components/footer/footer.types.js.map +1 -0
  47. package/dist/components/footer/index.d.ts +2 -0
  48. package/dist/components/footer/index.d.ts.map +1 -0
  49. package/dist/components/footer/index.js +2 -0
  50. package/dist/components/footer/index.js.map +1 -0
  51. package/dist/components/icon/icon.d.ts +4 -0
  52. package/dist/components/icon/icon.d.ts.map +1 -0
  53. package/dist/components/icon/icon.js +11 -0
  54. package/dist/components/icon/icon.js.map +1 -0
  55. package/dist/components/icon/icon.types.d.ts +13 -0
  56. package/dist/components/icon/icon.types.d.ts.map +1 -0
  57. package/dist/components/icon/icon.types.js +2 -0
  58. package/dist/components/icon/icon.types.js.map +1 -0
  59. package/dist/components/icon/index.d.ts +3 -0
  60. package/dist/components/icon/index.d.ts.map +1 -0
  61. package/dist/components/icon/index.js +2 -0
  62. package/dist/components/icon/index.js.map +1 -0
  63. package/dist/components/info-card/index.d.ts +3 -0
  64. package/dist/components/info-card/index.d.ts.map +1 -0
  65. package/dist/components/info-card/index.js +2 -0
  66. package/dist/components/info-card/index.js.map +1 -0
  67. package/dist/components/info-card/info-card.d.ts +3 -0
  68. package/dist/components/info-card/info-card.d.ts.map +1 -0
  69. package/dist/components/info-card/info-card.js +5 -0
  70. package/dist/components/info-card/info-card.js.map +1 -0
  71. package/dist/components/info-card/info-card.types.d.ts +10 -0
  72. package/dist/components/info-card/info-card.types.d.ts.map +1 -0
  73. package/dist/components/info-card/info-card.types.js +2 -0
  74. package/dist/components/info-card/info-card.types.js.map +1 -0
  75. package/dist/components/masonry-layout/index.d.ts +3 -0
  76. package/dist/components/masonry-layout/index.d.ts.map +1 -0
  77. package/dist/components/masonry-layout/index.js +2 -0
  78. package/dist/components/masonry-layout/index.js.map +1 -0
  79. package/dist/components/masonry-layout/masonry-layout.d.ts +3 -0
  80. package/dist/components/masonry-layout/masonry-layout.d.ts.map +1 -0
  81. package/dist/components/masonry-layout/masonry-layout.js +5 -0
  82. package/dist/components/masonry-layout/masonry-layout.js.map +1 -0
  83. package/dist/components/masonry-layout/masonry-layout.types.d.ts +7 -0
  84. package/dist/components/masonry-layout/masonry-layout.types.d.ts.map +1 -0
  85. package/dist/components/masonry-layout/masonry-layout.types.js +2 -0
  86. package/dist/components/masonry-layout/masonry-layout.types.js.map +1 -0
  87. package/dist/components/nav-menu/index.d.ts +3 -0
  88. package/dist/components/nav-menu/index.d.ts.map +1 -0
  89. package/dist/components/nav-menu/index.js +2 -0
  90. package/dist/components/nav-menu/index.js.map +1 -0
  91. package/dist/components/nav-menu/items/base-item/base-item.d.ts +3 -0
  92. package/dist/components/nav-menu/items/base-item/base-item.d.ts.map +1 -0
  93. package/dist/components/nav-menu/items/base-item/base-item.js +47 -0
  94. package/dist/components/nav-menu/items/base-item/base-item.js.map +1 -0
  95. package/dist/components/nav-menu/items/base-item/base-item.types.d.ts +10 -0
  96. package/dist/components/nav-menu/items/base-item/base-item.types.d.ts.map +1 -0
  97. package/dist/components/nav-menu/items/base-item/base-item.types.js +2 -0
  98. package/dist/components/nav-menu/items/base-item/base-item.types.js.map +1 -0
  99. package/dist/components/nav-menu/items/base-item/index.d.ts +3 -0
  100. package/dist/components/nav-menu/items/base-item/index.d.ts.map +1 -0
  101. package/dist/components/nav-menu/items/base-item/index.js +2 -0
  102. package/dist/components/nav-menu/items/base-item/index.js.map +1 -0
  103. package/dist/components/nav-menu/items/nav-drop-down-item/index.d.ts +3 -0
  104. package/dist/components/nav-menu/items/nav-drop-down-item/index.d.ts.map +1 -0
  105. package/dist/components/nav-menu/items/nav-drop-down-item/index.js +2 -0
  106. package/dist/components/nav-menu/items/nav-drop-down-item/index.js.map +1 -0
  107. package/dist/components/nav-menu/items/nav-drop-down-item/nav-drop-down-item.d.ts +3 -0
  108. package/dist/components/nav-menu/items/nav-drop-down-item/nav-drop-down-item.d.ts.map +1 -0
  109. package/dist/components/nav-menu/items/nav-drop-down-item/nav-drop-down-item.js +64 -0
  110. package/dist/components/nav-menu/items/nav-drop-down-item/nav-drop-down-item.js.map +1 -0
  111. package/dist/components/nav-menu/items/nav-drop-down-item/nav-drop-down-item.types.d.ts +6 -0
  112. package/dist/components/nav-menu/items/nav-drop-down-item/nav-drop-down-item.types.d.ts.map +1 -0
  113. package/dist/components/nav-menu/items/nav-drop-down-item/nav-drop-down-item.types.js +2 -0
  114. package/dist/components/nav-menu/items/nav-drop-down-item/nav-drop-down-item.types.js.map +1 -0
  115. package/dist/components/nav-menu/items/nav-icon-item/index.d.ts +3 -0
  116. package/dist/components/nav-menu/items/nav-icon-item/index.d.ts.map +1 -0
  117. package/dist/components/nav-menu/items/nav-icon-item/index.js +2 -0
  118. package/dist/components/nav-menu/items/nav-icon-item/index.js.map +1 -0
  119. package/dist/components/nav-menu/items/nav-icon-item/nav-icon-item.d.ts +3 -0
  120. package/dist/components/nav-menu/items/nav-icon-item/nav-icon-item.d.ts.map +1 -0
  121. package/dist/components/nav-menu/items/nav-icon-item/nav-icon-item.js +6 -0
  122. package/dist/components/nav-menu/items/nav-icon-item/nav-icon-item.js.map +1 -0
  123. package/dist/components/nav-menu/items/nav-icon-item/nav-icon-item.types.d.ts +8 -0
  124. package/dist/components/nav-menu/items/nav-icon-item/nav-icon-item.types.d.ts.map +1 -0
  125. package/dist/components/nav-menu/items/nav-icon-item/nav-icon-item.types.js +2 -0
  126. package/dist/components/nav-menu/items/nav-icon-item/nav-icon-item.types.js.map +1 -0
  127. package/dist/components/nav-menu/items/nav-item/index.d.ts +3 -0
  128. package/dist/components/nav-menu/items/nav-item/index.d.ts.map +1 -0
  129. package/dist/components/nav-menu/items/nav-item/index.js +2 -0
  130. package/dist/components/nav-menu/items/nav-item/index.js.map +1 -0
  131. package/dist/components/nav-menu/items/nav-item/nav-item.d.ts +3 -0
  132. package/dist/components/nav-menu/items/nav-item/nav-item.d.ts.map +1 -0
  133. package/dist/components/nav-menu/items/nav-item/nav-item.js +14 -0
  134. package/dist/components/nav-menu/items/nav-item/nav-item.js.map +1 -0
  135. package/dist/components/nav-menu/items/nav-item/nav-item.types.d.ts +5 -0
  136. package/dist/components/nav-menu/items/nav-item/nav-item.types.d.ts.map +1 -0
  137. package/dist/components/nav-menu/items/nav-item/nav-item.types.js +2 -0
  138. package/dist/components/nav-menu/items/nav-item/nav-item.types.js.map +1 -0
  139. package/dist/components/nav-menu/nav-menu-styles.d.ts +5 -0
  140. package/dist/components/nav-menu/nav-menu-styles.d.ts.map +1 -0
  141. package/dist/components/nav-menu/nav-menu-styles.js +5 -0
  142. package/dist/components/nav-menu/nav-menu-styles.js.map +1 -0
  143. package/dist/components/nav-menu/nav-menu.d.ts +3 -0
  144. package/dist/components/nav-menu/nav-menu.d.ts.map +1 -0
  145. package/dist/components/nav-menu/nav-menu.js +181 -0
  146. package/dist/components/nav-menu/nav-menu.js.map +1 -0
  147. package/dist/components/nav-menu/nav-menu.types.d.ts +8 -0
  148. package/dist/components/nav-menu/nav-menu.types.d.ts.map +1 -0
  149. package/dist/components/nav-menu/nav-menu.types.js +2 -0
  150. package/dist/components/nav-menu/nav-menu.types.js.map +1 -0
  151. package/dist/defaults/index.d.ts +2 -0
  152. package/dist/defaults/index.d.ts.map +1 -0
  153. package/dist/defaults/index.js +3 -0
  154. package/dist/defaults/index.js.map +1 -0
  155. package/dist/defaults/theme/default-theme.d.ts +3 -0
  156. package/dist/defaults/theme/default-theme.d.ts.map +1 -0
  157. package/dist/defaults/theme/default-theme.js +92 -0
  158. package/dist/defaults/theme/default-theme.js.map +1 -0
  159. package/dist/index.d.ts +11 -0
  160. package/dist/index.d.ts.map +1 -0
  161. package/dist/index.js +16 -0
  162. package/dist/index.js.map +1 -0
  163. package/dist/internal-components/column-skeleton/column-skeleton.d.ts +3 -0
  164. package/dist/internal-components/column-skeleton/column-skeleton.d.ts.map +1 -0
  165. package/dist/internal-components/column-skeleton/column-skeleton.js +27 -0
  166. package/dist/internal-components/column-skeleton/column-skeleton.js.map +1 -0
  167. package/dist/internal-components/column-skeleton/column-skeleton.types.d.ts +7 -0
  168. package/dist/internal-components/column-skeleton/column-skeleton.types.d.ts.map +1 -0
  169. package/dist/internal-components/column-skeleton/column-skeleton.types.js +2 -0
  170. package/dist/internal-components/column-skeleton/column-skeleton.types.js.map +1 -0
  171. package/dist/internal-components/column-skeleton/index.d.ts +3 -0
  172. package/dist/internal-components/column-skeleton/index.d.ts.map +1 -0
  173. package/dist/internal-components/column-skeleton/index.js +2 -0
  174. package/dist/internal-components/column-skeleton/index.js.map +1 -0
  175. package/dist/internal-components/index.d.ts +3 -0
  176. package/dist/internal-components/index.d.ts.map +1 -0
  177. package/dist/internal-components/index.js +4 -0
  178. package/dist/internal-components/index.js.map +1 -0
  179. package/dist/internal-components/link-wrapper/index.d.ts +3 -0
  180. package/dist/internal-components/link-wrapper/index.d.ts.map +1 -0
  181. package/dist/internal-components/link-wrapper/index.js +2 -0
  182. package/dist/internal-components/link-wrapper/index.js.map +1 -0
  183. package/dist/internal-components/link-wrapper/link-wrapper.d.ts +4 -0
  184. package/dist/internal-components/link-wrapper/link-wrapper.d.ts.map +1 -0
  185. package/dist/internal-components/link-wrapper/link-wrapper.js +9 -0
  186. package/dist/internal-components/link-wrapper/link-wrapper.js.map +1 -0
  187. package/dist/internal-components/link-wrapper/link-wrapper.types.d.ts +6 -0
  188. package/dist/internal-components/link-wrapper/link-wrapper.types.d.ts.map +1 -0
  189. package/dist/internal-components/link-wrapper/link-wrapper.types.js +2 -0
  190. package/dist/internal-components/link-wrapper/link-wrapper.types.js.map +1 -0
  191. package/dist/styles/thread.css +806 -0
  192. package/dist/thread-ui-1.0.0.tgz +0 -0
  193. package/dist/types/colors/utility-color-options.types.d.ts +2 -0
  194. package/dist/types/colors/utility-color-options.types.d.ts.map +1 -0
  195. package/dist/types/colors/utility-color-options.types.js +2 -0
  196. package/dist/types/colors/utility-color-options.types.js.map +1 -0
  197. package/dist/types/image/image.types.d.ts +8 -0
  198. package/dist/types/image/image.types.d.ts.map +1 -0
  199. package/dist/types/image/image.types.js +2 -0
  200. package/dist/types/image/image.types.js.map +1 -0
  201. package/dist/types/index.d.ts +4 -0
  202. package/dist/types/index.d.ts.map +1 -0
  203. package/dist/types/index.js +2 -0
  204. package/dist/types/index.js.map +1 -0
  205. package/dist/types/theme/borders/borders.types.d.ts +11 -0
  206. package/dist/types/theme/borders/borders.types.d.ts.map +1 -0
  207. package/dist/types/theme/borders/borders.types.js +2 -0
  208. package/dist/types/theme/borders/borders.types.js.map +1 -0
  209. package/dist/types/theme/colors/colors.types.d.ts +37 -0
  210. package/dist/types/theme/colors/colors.types.d.ts.map +1 -0
  211. package/dist/types/theme/colors/colors.types.js +2 -0
  212. package/dist/types/theme/colors/colors.types.js.map +1 -0
  213. package/dist/types/theme/size/themeSizes.types.d.ts +8 -0
  214. package/dist/types/theme/size/themeSizes.types.d.ts.map +1 -0
  215. package/dist/types/theme/size/themeSizes.types.js +2 -0
  216. package/dist/types/theme/size/themeSizes.types.js.map +1 -0
  217. package/dist/types/theme/theme.types.d.ts +22 -0
  218. package/dist/types/theme/theme.types.d.ts.map +1 -0
  219. package/dist/types/theme/theme.types.js +2 -0
  220. package/dist/types/theme/theme.types.js.map +1 -0
  221. package/dist/utils/deep-merge/deep-merge.d.ts +5 -0
  222. package/dist/utils/deep-merge/deep-merge.d.ts.map +1 -0
  223. package/dist/utils/deep-merge/deep-merge.js +25 -0
  224. package/dist/utils/deep-merge/deep-merge.js.map +1 -0
  225. package/dist/utils/get-utility-color/get-utility-color-value.d.ts +3 -0
  226. package/dist/utils/get-utility-color/get-utility-color-value.d.ts.map +1 -0
  227. package/dist/utils/get-utility-color/get-utility-color-value.js +26 -0
  228. package/dist/utils/get-utility-color/get-utility-color-value.js.map +1 -0
  229. package/dist/utils/index.d.ts +5 -0
  230. package/dist/utils/index.d.ts.map +1 -0
  231. package/dist/utils/index.js +7 -0
  232. package/dist/utils/index.js.map +1 -0
  233. package/dist/utils/is-next-env/index.d.ts +2 -0
  234. package/dist/utils/is-next-env/index.d.ts.map +1 -0
  235. package/dist/utils/is-next-env/index.js +2 -0
  236. package/dist/utils/is-next-env/index.js.map +1 -0
  237. package/dist/utils/is-next-env/is-next-env.d.ts +2 -0
  238. package/dist/utils/is-next-env/is-next-env.d.ts.map +1 -0
  239. package/dist/utils/is-next-env/is-next-env.js +18 -0
  240. package/dist/utils/is-next-env/is-next-env.js.map +1 -0
  241. package/dist/utils/responsive/responsive-styles.d.ts +4 -0
  242. package/dist/utils/responsive/responsive-styles.d.ts.map +1 -0
  243. package/dist/utils/responsive/responsive-styles.js +55 -0
  244. package/dist/utils/responsive/responsive-styles.js.map +1 -0
  245. package/dist/utils/responsive/responsive-styles.types.d.ts +8 -0
  246. package/dist/utils/responsive/responsive-styles.types.d.ts.map +1 -0
  247. package/dist/utils/responsive/responsive-styles.types.js +2 -0
  248. package/dist/utils/responsive/responsive-styles.types.js.map +1 -0
  249. package/dist/utils/theme/create-theme.d.ts +5 -0
  250. package/dist/utils/theme/create-theme.d.ts.map +1 -0
  251. package/dist/utils/theme/create-theme.js +21 -0
  252. package/dist/utils/theme/create-theme.js.map +1 -0
  253. package/dist/utils/theme/use-theme.d.ts +9 -0
  254. package/dist/utils/theme/use-theme.d.ts.map +1 -0
  255. package/dist/utils/theme/use-theme.js +32 -0
  256. package/dist/utils/theme/use-theme.js.map +1 -0
  257. package/package.json +105 -0
package/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) [2025] [Andrew fisher]
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/README.md ADDED
@@ -0,0 +1,68 @@
1
+ # Thread UI
2
+
3
+ Thread is a UI Library I created for use in my personal website.
4
+
5
+ # Get Started
6
+
7
+ All components work out of the box. Documentation coming soon to thread.fisherandrew.org
8
+
9
+ ## Custom Themes
10
+
11
+ Thread-UI supports custom themes created by the user that override the default theme, even when using SSR in Next.js. To implement a custom theme, first create a config file in the root of the project named `thread.config.ts`. Define the Theme attributes you'd like to override, initilize it using using the thread-ui `createTheme` function, and export your theme.
12
+
13
+ ```
14
+ import { createTheme } from 'thread-ui';
15
+
16
+ const threadConfig = {
17
+ colors: {
18
+ primary: {
19
+ light: '#4f46e5',
20
+ main: '#4338ca',
21
+ dark: '#3730a3',
22
+ },
23
+ },
24
+ } as const;
25
+
26
+ // Initialize Theme
27
+ export const ThreadTheme = createTheme(threadConfig);
28
+ ```
29
+
30
+ Next, create a provider component that will make our custom theme availible in `app/providers.tsx`.
31
+
32
+ ```
33
+ 'use client';
34
+ import { ThemeProvider } from 'thread-ui';
35
+ import { ThreadTheme } from '@/thread.config';
36
+
37
+ export function Providers({ children }: { children: React.ReactNode }) {
38
+ return (
39
+ <ThemeProvider initialTheme={ThreadTheme} initialMode="light">
40
+ {children}
41
+ </ThemeProvider>
42
+ );
43
+ }
44
+ ```
45
+
46
+ Last, wrap your root layout content in this provider in `app/layout.tsx`
47
+
48
+ ```
49
+ const font = Merriweather_Sans({ subsets: ['latin'] });
50
+
51
+ export default function RootLayout({
52
+ children,
53
+ }: Readonly<{
54
+ children: React.ReactNode;
55
+ }>) {
56
+ return (
57
+ <html lang="en">
58
+ <body className={`${font.className}`}>
59
+ <Providers>
60
+ <NavMenu />
61
+ <main>{children}</main>
62
+ <Footer />
63
+ </Providers>
64
+ </body>
65
+ </html>
66
+ );
67
+ }
68
+ ```
@@ -0,0 +1,3 @@
1
+ import { ButtonProps } from './button.types';
2
+ export declare const Button: ({ children, fullWidth, color, onClick, type, margin }: ButtonProps) => import("react/jsx-runtime").JSX.Element;
3
+ //# sourceMappingURL=button.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"button.d.ts","sourceRoot":"","sources":["../../../src/components/button/button.tsx"],"names":[],"mappings":"AAGA,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAE7C,eAAO,MAAM,MAAM,0DAAkF,WAAW,4CAuC/G,CAAC"}
@@ -0,0 +1,31 @@
1
+ 'use client';
2
+ import { jsx as _jsx } from "react/jsx-runtime";
3
+ import { useState } from 'react';
4
+ import { getUtilityColorValue, useTheme } from '../../utils';
5
+ export const Button = ({ children, fullWidth, color = 'primary', onClick, type = 'button', margin }) => {
6
+ const { theme } = useTheme();
7
+ const [isHovered, setIsHovered] = useState(false);
8
+ const colorValue = getUtilityColorValue(color);
9
+ const buttonStyles = {
10
+ padding: `${theme.space * 2}px`,
11
+ width: fullWidth ? '100%' : 'fit-content',
12
+ transition: 'background-color 0.2s ease',
13
+ border: `${theme.border.size.md}px ${colorValue} solid`,
14
+ borderRadius: `${theme.border.radius.md}px`,
15
+ color: theme.colors.white,
16
+ backgroundColor: colorValue,
17
+ margin: margin ?? 'auto',
18
+ display: 'flex',
19
+ justifyContent: 'center',
20
+ alignItems: 'center',
21
+ cursor: 'pointer',
22
+ userSelect: 'none',
23
+ };
24
+ const hoverButton = {
25
+ ...buttonStyles,
26
+ backgroundColor: theme.colors.white,
27
+ color: colorValue,
28
+ };
29
+ return (_jsx("button", { type: type, style: isHovered ? hoverButton : buttonStyles, onMouseEnter: () => setIsHovered(true), onMouseLeave: () => setIsHovered(false), onClick: onClick, children: children }));
30
+ };
31
+ //# sourceMappingURL=button.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"button.js","sourceRoot":"","sources":["../../../src/components/button/button.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AACb,OAAO,EAAiB,QAAQ,EAAE,MAAM,OAAO,CAAC;AAChD,OAAO,EAAE,oBAAoB,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAG7D,MAAM,CAAC,MAAM,MAAM,GAAG,CAAC,EAAE,QAAQ,EAAE,SAAS,EAAE,KAAK,GAAG,SAAS,EAAE,OAAO,EAAE,IAAI,GAAG,QAAQ,EAAE,MAAM,EAAe,EAAE,EAAE;IACnH,MAAM,EAAE,KAAK,EAAE,GAAG,QAAQ,EAAE,CAAC;IAC7B,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAElD,MAAM,UAAU,GAAG,oBAAoB,CAAC,KAAK,CAAC,CAAC;IAE/C,MAAM,YAAY,GAAkB;QACnC,OAAO,EAAE,GAAG,KAAK,CAAC,KAAK,GAAG,CAAC,IAAI;QAC/B,KAAK,EAAE,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,aAAa;QACzC,UAAU,EAAE,4BAA4B;QACxC,MAAM,EAAE,GAAG,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,MAAM,UAAU,QAAQ;QACvD,YAAY,EAAE,GAAG,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,IAAI;QAC3C,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,KAAK;QACzB,eAAe,EAAE,UAAU;QAC3B,MAAM,EAAE,MAAM,IAAI,MAAM;QACxB,OAAO,EAAE,MAAM;QACf,cAAc,EAAE,QAAQ;QACxB,UAAU,EAAE,QAAQ;QACpB,MAAM,EAAE,SAAS;QACjB,UAAU,EAAE,MAAM;KAClB,CAAC;IAEF,MAAM,WAAW,GAAkB;QAClC,GAAG,YAAY;QACf,eAAe,EAAE,KAAK,CAAC,MAAM,CAAC,KAAK;QACnC,KAAK,EAAE,UAAU;KACjB,CAAC;IAEF,OAAO,CACN,iBACC,IAAI,EAAE,IAAI,EACV,KAAK,EAAE,SAAS,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,YAAY,EAC7C,YAAY,EAAE,GAAG,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,EACtC,YAAY,EAAE,GAAG,EAAE,CAAC,YAAY,CAAC,KAAK,CAAC,EACvC,OAAO,EAAE,OAAO,YAEf,QAAQ,GACD,CACT,CAAC;AACH,CAAC,CAAC"}
@@ -0,0 +1,10 @@
1
+ import { ReactNode } from 'react';
2
+ export type ButtonProps = {
3
+ children: ReactNode;
4
+ fullWidth?: boolean;
5
+ color?: 'primary' | 'secondary' | 'tertiary' | 'black' | 'grey' | 'success' | 'error' | 'info';
6
+ type?: 'button' | 'submit' | 'reset';
7
+ onClick?: () => void;
8
+ margin?: string;
9
+ };
10
+ //# sourceMappingURL=button.types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"button.types.d.ts","sourceRoot":"","sources":["../../../src/components/button/button.types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAElC,MAAM,MAAM,WAAW,GAAG;IACzB,QAAQ,EAAE,SAAS,CAAC;IACpB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,KAAK,CAAC,EAAE,SAAS,GAAG,WAAW,GAAG,UAAU,GAAG,OAAO,GAAG,MAAM,GAAG,SAAS,GAAG,OAAO,GAAG,MAAM,CAAC;IAC/F,IAAI,CAAC,EAAE,QAAQ,GAAG,QAAQ,GAAG,OAAO,CAAC;IACrC,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=button.types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"button.types.js","sourceRoot":"","sources":["../../../src/components/button/button.types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,3 @@
1
+ export { ButtonProps } from './button.types';
2
+ export { Button } from './button';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/button/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC"}
@@ -0,0 +1,2 @@
1
+ export { Button } from './button';
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/button/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { ColumnLayoutProps } from './column-layout.types';
2
+ export declare const ColumnLayout: ({ title, caption, mdcol, lgcol, items }: ColumnLayoutProps) => import("react/jsx-runtime").JSX.Element;
3
+ //# sourceMappingURL=column-layout.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"column-layout.d.ts","sourceRoot":"","sources":["../../../src/components/column-layout/column-layout.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,iBAAiB,EAAc,MAAM,uBAAuB,CAAC;AAEtE,eAAO,MAAM,YAAY,4CAA6C,iBAAiB,4CA0CtF,CAAC"}
@@ -0,0 +1,9 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import React from 'react';
3
+ import { ColumnSkeleton } from '../../internal-components';
4
+ export const ColumnLayout = ({ title, caption, mdcol, lgcol, items }) => {
5
+ return (_jsxs("section", { className: "thread-container thread-mx-auto thread-py-10 md:thread-py-8 lg:thread-py-6 thread-flex thread-flex-col thread-justify-center thread-flex-1 lg:thread-flex-none", children: [(title || caption) && (_jsxs("div", { className: "thread-pb-3", children: [title && (_jsx("h3", { className: "thread-text-2xl thread-font-medium thread-tracking-tight thread-text-black sm:thread-text-4xl", children: title })), caption && _jsx("p", { className: "thread-mt-4 thread-text-lg thread-tracking-tight thread-text-gray-600", children: caption })] })), _jsx(ColumnSkeleton, { mdcol: mdcol || 2, lgcol: lgcol || 4, children: items.map((item, index) => (_jsxs("div", { children: [_jsx("div", { className: "thread-mb-6 thread-w-full thread-h-auto thread-rounded thread-overflow-hidden", children: React.isValidElement(item.image)
6
+ ? item.image
7
+ : 'src' in item.image && (_jsx("img", { src: item.image.src, alt: item.image.alt, className: "thread-w-full thread-h-auto thread-rounded" })) }), (item.title || item.description) && (_jsxs("div", { className: "thread-text-left", children: [item.title && _jsx("h2", { className: "thread-text-2xl ", children: item.title }), item.description && (_jsx("div", { className: "thread-mt-6", children: _jsx("p", { className: "thread-whitespace-pre-wrap thread-text-base", children: item.description }) }))] }))] }, index))) })] }));
8
+ };
9
+ //# sourceMappingURL=column-layout.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"column-layout.js","sourceRoot":"","sources":["../../../src/components/column-layout/column-layout.tsx"],"names":[],"mappings":";AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAG3D,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAqB,EAAE,EAAE;IAC1F,OAAO,CACN,mBAAS,SAAS,EAAC,gKAAgK,aACjL,CAAC,KAAK,IAAI,OAAO,CAAC,IAAI,CACtB,eAAK,SAAS,EAAC,aAAa,aAC1B,KAAK,IAAI,CACT,aAAI,SAAS,EAAC,+FAA+F,YAC3G,KAAK,GACF,CACL,EACA,OAAO,IAAI,YAAG,SAAS,EAAC,uEAAuE,YAAE,OAAO,GAAK,IACzG,CACN,EACD,KAAC,cAAc,IAAC,KAAK,EAAE,KAAK,IAAI,CAAC,EAAE,KAAK,EAAE,KAAK,IAAI,CAAC,YAClD,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,CAC3B,0BACC,cAAK,SAAS,EAAC,+EAA+E,YAC5F,KAAK,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC;gCAChC,CAAC,CAAC,IAAI,CAAC,KAAK;gCACZ,CAAC,CAAC,KAAK,IAAK,IAAI,CAAC,KAAyB,IAAI,CAC5C,cACC,GAAG,EAAG,IAAI,CAAC,KAAyB,CAAC,GAAG,EACxC,GAAG,EAAG,IAAI,CAAC,KAAyB,CAAC,GAAG,EACxC,SAAS,EAAC,4CAA4C,GACrD,CACF,GACE,EACL,CAAC,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,WAAW,CAAC,IAAI,CACpC,eAAK,SAAS,EAAC,kBAAkB,aAC/B,IAAI,CAAC,KAAK,IAAI,aAAI,SAAS,EAAC,kBAAkB,YAAE,IAAI,CAAC,KAAK,GAAM,EAChE,IAAI,CAAC,WAAW,IAAI,CACpB,cAAK,SAAS,EAAC,aAAa,YAC3B,YAAG,SAAS,EAAC,6CAA6C,YAAE,IAAI,CAAC,WAAW,GAAK,GAC5E,CACN,IACI,CACN,KArBQ,KAAK,CAsBT,CACN,CAAC,GACc,IACR,CACV,CAAC;AACH,CAAC,CAAC"}
@@ -0,0 +1,17 @@
1
+ import { ReactNode } from 'react';
2
+ export type ColumnLayoutProps = {
3
+ title?: string;
4
+ caption?: string;
5
+ mdcol: number;
6
+ lgcol: number;
7
+ items: ColumnItem[];
8
+ };
9
+ export type ColumnItem = {
10
+ title?: string;
11
+ description?: string;
12
+ image: {
13
+ src: string;
14
+ alt: string;
15
+ } | ReactNode;
16
+ };
17
+ //# sourceMappingURL=column-layout.types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"column-layout.types.d.ts","sourceRoot":"","sources":["../../../src/components/column-layout/column-layout.types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAElC,MAAM,MAAM,iBAAiB,GAAG;IAC/B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,UAAU,EAAE,CAAC;CACpB,CAAC;AAEF,MAAM,MAAM,UAAU,GAAG;IACxB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,EAAE;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE,GAAG,SAAS,CAAC;CAChD,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=column-layout.types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"column-layout.types.js","sourceRoot":"","sources":["../../../src/components/column-layout/column-layout.types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,3 @@
1
+ export { ColumnLayoutProps, ColumnItem } from './column-layout.types';
2
+ export { ColumnLayout } from './column-layout';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/column-layout/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACtE,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC"}
@@ -0,0 +1,2 @@
1
+ export { ColumnLayout } from './column-layout';
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/column-layout/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { DividerProps } from './divider.types';
2
+ export declare const Divider: ({ width, marginY, weight }: DividerProps) => import("react/jsx-runtime").JSX.Element;
3
+ //# sourceMappingURL=divider.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"divider.d.ts","sourceRoot":"","sources":["../../../src/components/divider/divider.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAE/C,eAAO,MAAM,OAAO,+BAAgC,YAAY,4CA6B/D,CAAC"}
@@ -0,0 +1,31 @@
1
+ 'use client';
2
+ import { jsx as _jsx } from "react/jsx-runtime";
3
+ import { useTheme } from '../../utils';
4
+ export const Divider = ({ width, marginY, weight }) => {
5
+ const { theme } = useTheme();
6
+ let dividerWeight;
7
+ switch (weight) {
8
+ case 'light':
9
+ dividerWeight = 0.5;
10
+ break;
11
+ case 'standard':
12
+ dividerWeight = 1;
13
+ break;
14
+ case 'bold':
15
+ dividerWeight = 2;
16
+ break;
17
+ default:
18
+ dividerWeight = 1;
19
+ }
20
+ const styles = {
21
+ width: width || '75%',
22
+ marginTop: marginY || '16px',
23
+ marginBottom: marginY || '16px',
24
+ marginLeft: 'auto',
25
+ marginRight: 'auto',
26
+ height: `${dividerWeight}px`,
27
+ backgroundColor: theme.colors.structure,
28
+ };
29
+ return _jsx("div", { style: styles });
30
+ };
31
+ //# sourceMappingURL=divider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"divider.js","sourceRoot":"","sources":["../../../src/components/divider/divider.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AACb,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAGvC,MAAM,CAAC,MAAM,OAAO,GAAG,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAgB,EAAE,EAAE;IACnE,MAAM,EAAE,KAAK,EAAE,GAAG,QAAQ,EAAE,CAAC;IAE7B,IAAI,aAAqB,CAAC;IAC1B,QAAQ,MAAM,EAAE,CAAC;QAChB,KAAK,OAAO;YACX,aAAa,GAAG,GAAG,CAAC;YACpB,MAAM;QACP,KAAK,UAAU;YACd,aAAa,GAAG,CAAC,CAAC;YAClB,MAAM;QACP,KAAK,MAAM;YACV,aAAa,GAAG,CAAC,CAAC;YAClB,MAAM;QACP;YACC,aAAa,GAAG,CAAC,CAAC;IACpB,CAAC;IAED,MAAM,MAAM,GAAwB;QACnC,KAAK,EAAE,KAAK,IAAI,KAAK;QACrB,SAAS,EAAE,OAAO,IAAI,MAAM;QAC5B,YAAY,EAAE,OAAO,IAAI,MAAM;QAC/B,UAAU,EAAE,MAAM;QAClB,WAAW,EAAE,MAAM;QACnB,MAAM,EAAE,GAAG,aAAa,IAAI;QAC5B,eAAe,EAAE,KAAK,CAAC,MAAM,CAAC,SAAS;KACvC,CAAC;IAEF,OAAO,cAAK,KAAK,EAAE,MAAM,GAAQ,CAAC;AACnC,CAAC,CAAC"}
@@ -0,0 +1,6 @@
1
+ export type DividerProps = {
2
+ width?: string;
3
+ marginY?: string;
4
+ weight?: 'light' | 'standard' | 'bold';
5
+ };
6
+ //# sourceMappingURL=divider.types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"divider.types.d.ts","sourceRoot":"","sources":["../../../src/components/divider/divider.types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,YAAY,GAAG;IAC1B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,OAAO,GAAG,UAAU,GAAG,MAAM,CAAC;CACvC,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=divider.types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"divider.types.js","sourceRoot":"","sources":["../../../src/components/divider/divider.types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,3 @@
1
+ export { DividerProps } from './divider.types';
2
+ export { Divider } from './divider';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/divider/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC"}
@@ -0,0 +1,2 @@
1
+ export { Divider } from './divider';
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/divider/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { FooterProps } from './footer.types';
2
+ export declare const Footer: ({ logo, caption, facebookLink, instagramLink, twitterLink, githubLink, linkedInLink }: FooterProps) => import("react/jsx-runtime").JSX.Element;
3
+ //# sourceMappingURL=footer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"footer.d.ts","sourceRoot":"","sources":["../../../src/components/footer/footer.tsx"],"names":[],"mappings":"AAIA,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAK7C,eAAO,MAAM,MAAM,0FAA2F,WAAW,4CA4CxH,CAAC"}
@@ -0,0 +1,25 @@
1
+ 'use client';
2
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
+ import { LinkWrapper } from '../../internal-components';
4
+ import { Divider } from '../divider';
5
+ import { useTheme } from '../../utils';
6
+ export const Footer = ({ logo, caption, facebookLink, instagramLink, twitterLink, githubLink, linkedInLink }) => {
7
+ const { theme } = useTheme();
8
+ const styles = {
9
+ footer: {
10
+ // backgroundColor: '#ffffff',
11
+ backgroundColor: theme.colors.background,
12
+ height: '208px',
13
+ width: '100%',
14
+ },
15
+ logoWrapper: {
16
+ width: '64px',
17
+ height: '64px',
18
+ display: 'flex',
19
+ alignItems: 'center',
20
+ justifyContent: 'center',
21
+ },
22
+ };
23
+ return (_jsx("footer", { style: styles.footer, children: _jsxs("div", { className: "thread-border thread-container thread-mx-auto", children: [_jsx(Divider, { width: "100%" }), _jsxs("div", { className: "thread-w-full thread-h-full thread-flex thread-flex-col thread-justify-center thread-items-center", children: [logo && (_jsx(LinkWrapper, { style: styles.logoWrapper, link: logo.link, children: _jsx("svg", { xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 27 32", width: "100%", height: "100%", preserveAspectRatio: "xMidYMid meet", children: _jsx("path", { d: "M6.42 8.62 l1.78 -4.06 l7.66 15.44 l-3.76 0 z M3.12 16.04 c-0.26666 0.49334 -0.56668 0.9733 -0.90002 1.44 c-0.28 0.4 -0.61 0.83 -0.99 1.29 s-0.79666 0.87 -1.25 1.23 l3.34 0 l3.32 0 c-0.53334 -0.30666 -1.0133 -0.68332 -1.44 -1.13 s-0.79332 -0.88332 -1.1 -1.31 c-0.36 -0.49334 -0.68666 -1 -0.98 -1.52 z M21.494500000000002 12.2 c0.33334 0.17334 0.66668 0.38666 1 0.64 c0.28 0.22666 0.57666 0.51 0.89 0.85 s0.59 0.75 0.83 1.23 l0 -2.72 l0 -3 c-0.25334 0.53334 -0.53668 0.99 -0.85002 1.37 s-0.61 0.69 -0.89 0.93 c-0.33334 0.28 -0.66 0.51334 -0.98 0.7 z M22.7345 5 l4.26 -0.000019531 l0 5.4 c-0.32 -0.74666 -0.69334 -1.46 -1.12 -2.14 c-0.37334 -0.58666 -0.82 -1.1833 -1.34 -1.79 s-1.12 -1.0967 -1.8 -1.47 z M16.0745 5.02 l0 14.98 l3.52 0 l0 -14.98 l-3.52 0 z" }) }) })), caption && _jsx("span", { className: "thread-text-sm thread-text-gray-500", children: caption }), _jsx("div", { className: "thread-flex thread-flex-row thread-items-center thread-justify-center" })] })] }) }));
24
+ };
25
+ //# sourceMappingURL=footer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"footer.js","sourceRoot":"","sources":["../../../src/components/footer/footer.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AACxD,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAGrC,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAGvC,MAAM,CAAC,MAAM,MAAM,GAAG,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,WAAW,EAAE,UAAU,EAAE,YAAY,EAAe,EAAE,EAAE;IAC5H,MAAM,EAAE,KAAK,EAAE,GAAG,QAAQ,EAAE,CAAC;IAE7B,MAAM,MAAM,GAAkC;QAC7C,MAAM,EAAE;YACP,8BAA8B;YAC9B,eAAe,EAAE,KAAK,CAAC,MAAM,CAAC,UAAU;YACxC,MAAM,EAAE,OAAO;YACf,KAAK,EAAE,MAAM;SACb;QAED,WAAW,EAAE;YACZ,KAAK,EAAE,MAAM;YACb,MAAM,EAAE,MAAM;YACd,OAAO,EAAE,MAAM;YACf,UAAU,EAAE,QAAQ;YACpB,cAAc,EAAE,QAAQ;SACxB;KACD,CAAC;IAEF,OAAO,CACN,iBAAQ,KAAK,EAAE,MAAM,CAAC,MAAM,YAC3B,eAAK,SAAS,EAAC,+CAA+C,aAC7D,KAAC,OAAO,IAAC,KAAK,EAAC,MAAM,GAAG,EACxB,eAAK,SAAS,EAAC,mGAAmG,aAChH,IAAI,IAAI,CACR,KAAC,WAAW,IAAC,KAAK,EAAE,MAAM,CAAC,WAAW,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,YACtD,cACC,KAAK,EAAC,4BAA4B,EAClC,OAAO,EAAC,WAAW,EACnB,KAAK,EAAC,MAAM,EACZ,MAAM,EAAC,MAAM,EACb,mBAAmB,EAAC,eAAe,YAEnC,eAAM,CAAC,EAAC,mvBAAmvB,GAAG,GACzvB,GACO,CACd,EACA,OAAO,IAAI,eAAM,SAAS,EAAC,qCAAqC,YAAE,OAAO,GAAQ,EAClF,cAAK,SAAS,EAAC,uEAAuE,GAAO,IACxF,IACD,GACE,CACT,CAAC;AACH,CAAC,CAAC"}
@@ -0,0 +1,14 @@
1
+ import { ReactNode } from 'react';
2
+ export type FooterProps = {
3
+ logo?: {
4
+ icon: ReactNode;
5
+ link: string | ReactNode;
6
+ };
7
+ caption?: string | ReactNode;
8
+ facebookLink?: string;
9
+ instagramLink?: string;
10
+ twitterLink?: string;
11
+ githubLink?: string;
12
+ linkedInLink?: string;
13
+ };
14
+ //# sourceMappingURL=footer.types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"footer.types.d.ts","sourceRoot":"","sources":["../../../src/components/footer/footer.types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAElC,MAAM,MAAM,WAAW,GAAG;IACzB,IAAI,CAAC,EAAE;QACN,IAAI,EAAE,SAAS,CAAC;QAChB,IAAI,EAAE,MAAM,GAAG,SAAS,CAAC;KACzB,CAAC;IACF,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC7B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,YAAY,CAAC,EAAE,MAAM,CAAC;CACtB,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=footer.types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"footer.types.js","sourceRoot":"","sources":["../../../src/components/footer/footer.types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,2 @@
1
+ export { FooterProps } from './footer.types';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/footer/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/footer/index.ts"],"names":[],"mappings":""}
@@ -0,0 +1,4 @@
1
+ import React from 'react';
2
+ import { IconProps } from './icon.types';
3
+ export declare const Icon: React.FC<IconProps>;
4
+ //# sourceMappingURL=icon.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"icon.d.ts","sourceRoot":"","sources":["../../../src/components/icon/icon.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAIzC,eAAO,MAAM,IAAI,EAAE,KAAK,CAAC,EAAE,CAAC,SAAS,CAWpC,CAAC"}
@@ -0,0 +1,11 @@
1
+ 'use client';
2
+ import { jsx as _jsx } from "react/jsx-runtime";
3
+ import * as PhosphorIcons from '@phosphor-icons/react';
4
+ import { getUtilityColorValue, useTheme } from '../../utils';
5
+ export const Icon = ({ name, color, size = 24, weight = 'regular', filled = false }) => {
6
+ const { theme } = useTheme();
7
+ const IconComponent = PhosphorIcons[name];
8
+ const colorValue = getUtilityColorValue(color);
9
+ return _jsx(IconComponent, { color: colorValue, size: size, weight: filled ? 'fill' : weight });
10
+ };
11
+ //# sourceMappingURL=icon.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"icon.js","sourceRoot":"","sources":["../../../src/components/icon/icon.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb,OAAO,KAAK,aAAa,MAAM,uBAAuB,CAAC;AAGvD,OAAO,EAAE,oBAAoB,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAE7D,MAAM,CAAC,MAAM,IAAI,GAAwB,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,GAAG,EAAE,EAAE,MAAM,GAAG,SAAS,EAAE,MAAM,GAAG,KAAK,EAAE,EAAE,EAAE;IAC3G,MAAM,EAAE,KAAK,EAAE,GAAG,QAAQ,EAAE,CAAC;IAC7B,MAAM,aAAa,GAAG,aAAa,CAAC,IAAI,CAItC,CAAC;IAEH,MAAM,UAAU,GAAG,oBAAoB,CAAC,KAAK,CAAC,CAAC;IAE/C,OAAO,KAAC,aAAa,IAAC,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,GAAI,CAAC;AAC3F,CAAC,CAAC"}
@@ -0,0 +1,13 @@
1
+ import * as PhosphorIcons from '@phosphor-icons/react';
2
+ import { UtilityColorOptions } from '../../types';
3
+ export type IconNames = keyof typeof PhosphorIcons;
4
+ export type IconSizes = 8 | 12 | 16 | 24 | 32 | 48 | 64;
5
+ export type IconProps = {
6
+ name: IconNames;
7
+ size: IconSizes;
8
+ color: UtilityColorOptions;
9
+ weight?: 'light' | 'regular' | 'bold';
10
+ square?: boolean;
11
+ filled?: boolean;
12
+ };
13
+ //# sourceMappingURL=icon.types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"icon.types.d.ts","sourceRoot":"","sources":["../../../src/components/icon/icon.types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,aAAa,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAElD,MAAM,MAAM,SAAS,GAAG,MAAM,OAAO,aAAa,CAAC;AACnD,MAAM,MAAM,SAAS,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC;AAExD,MAAM,MAAM,SAAS,GAAG;IACvB,IAAI,EAAE,SAAS,CAAC;IAChB,IAAI,EAAE,SAAS,CAAC;IAChB,KAAK,EAAE,mBAAmB,CAAC;IAC3B,MAAM,CAAC,EAAE,OAAO,GAAG,SAAS,GAAG,MAAM,CAAC;IACtC,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,MAAM,CAAC,EAAE,OAAO,CAAC;CACjB,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=icon.types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"icon.types.js","sourceRoot":"","sources":["../../../src/components/icon/icon.types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,3 @@
1
+ export { IconProps, IconNames, IconSizes } from './icon.types';
2
+ export { Icon } from './icon';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/icon/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAC/D,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC"}
@@ -0,0 +1,2 @@
1
+ export { Icon } from './icon';
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/icon/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC"}
@@ -0,0 +1,3 @@
1
+ export { InfoCardProps } from './info-card.types';
2
+ export { InfoCard } from './info-card';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/info-card/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC"}
@@ -0,0 +1,2 @@
1
+ export { InfoCard } from './info-card';
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/info-card/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { InfoCardProps } from './info-card.types';
2
+ export declare const InfoCard: ({ title, url, icon, img }: InfoCardProps) => import("react/jsx-runtime").JSX.Element;
3
+ //# sourceMappingURL=info-card.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"info-card.d.ts","sourceRoot":"","sources":["../../../src/components/info-card/info-card.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAElD,eAAO,MAAM,QAAQ,8BAA+B,aAAa,4CAwBhE,CAAC"}
@@ -0,0 +1,5 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ export const InfoCard = ({ title, url, icon, img }) => {
3
+ return (_jsx("div", { className: "thread-mx-auto thread-rounded-lg thread-border thread-bg-card thread-text-card-foreground thread-shadow-sm thread-my-3 thread-overflow-hidden thread-max-h-60 thread-w-[391px] thread-h-[241px]", children: _jsx("a", { href: url, children: _jsxs("span", { className: " thread-cursor-pointer", children: [_jsx("div", { className: "thread-overflow-hidden thread-w-full thread-h-5/6", children: _jsx("img", { className: "thread-h-auto thread-min-h-full thread-w-auto thread-min-w-full", src: img, alt: "recipe cover" }) }), _jsx("div", { className: "thread-p-2 thread-h-1/6", children: _jsxs("span", { className: "thread-flex thread-justify-start thread-items-center", children: [icon.type === 'emoji' ? (_jsx("span", { className: " thread-pr-1", role: "img", children: JSON.parse(`"${icon.content}"`) })) : (_jsx("img", { className: "thread-pr-1", height: 23, width: 23, src: icon.content, alt: "Recipe Logo" })), _jsx("p", { className: "thread-truncate thread-text-sm", children: title })] }) })] }) }) }));
4
+ };
5
+ //# sourceMappingURL=info-card.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"info-card.js","sourceRoot":"","sources":["../../../src/components/info-card/info-card.tsx"],"names":[],"mappings":";AAEA,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAiB,EAAE,EAAE;IACpE,OAAO,CACN,cAAK,SAAS,EAAC,iMAAiM,YAC/M,YAAG,IAAI,EAAE,GAAG,YACX,gBAAM,SAAS,EAAC,wBAAwB,aACvC,cAAK,SAAS,EAAC,mDAAmD,YACjE,cAAK,SAAS,EAAC,iEAAiE,EAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAC,cAAc,GAAG,GAC3G,EACN,cAAK,SAAS,EAAC,yBAAyB,YACvC,gBAAM,SAAS,EAAC,sDAAsD,aACpE,IAAI,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,CACxB,eAAM,SAAS,EAAC,cAAc,EAAC,IAAI,EAAC,KAAK,YACvC,IAAI,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,OAAO,GAAG,CAAC,GAC1B,CACP,CAAC,CAAC,CAAC,CACH,cAAK,SAAS,EAAC,aAAa,EAAC,MAAM,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,GAAG,EAAE,IAAI,CAAC,OAAO,EAAE,GAAG,EAAC,aAAa,GAAG,CAC3F,EACD,YAAG,SAAS,EAAC,gCAAgC,YAAE,KAAK,GAAK,IACnD,GACF,IACA,GACJ,GACC,CACN,CAAC;AACH,CAAC,CAAC"}
@@ -0,0 +1,10 @@
1
+ export type InfoCardProps = {
2
+ title: string;
3
+ url: string;
4
+ icon: {
5
+ type: 'emoji' | 'svg';
6
+ content: string;
7
+ };
8
+ img: string;
9
+ };
10
+ //# sourceMappingURL=info-card.types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"info-card.types.d.ts","sourceRoot":"","sources":["../../../src/components/info-card/info-card.types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,aAAa,GAAG;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE;QACL,IAAI,EAAE,OAAO,GAAG,KAAK,CAAC;QACtB,OAAO,EAAE,MAAM,CAAC;KAChB,CAAC;IACF,GAAG,EAAE,MAAM,CAAC;CACZ,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=info-card.types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"info-card.types.js","sourceRoot":"","sources":["../../../src/components/info-card/info-card.types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,3 @@
1
+ export { MasonryLayoutProps } from './masonry-layout.types';
2
+ export { MasonryLayout } from './masonry-layout';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/masonry-layout/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAC5D,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC"}
@@ -0,0 +1,2 @@
1
+ export { MasonryLayout } from './masonry-layout';
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/masonry-layout/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { MasonryLayoutProps } from './masonry-layout.types';
2
+ export declare const MasonryLayout: ({ title, caption, components }: MasonryLayoutProps) => import("react/jsx-runtime").JSX.Element;
3
+ //# sourceMappingURL=masonry-layout.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"masonry-layout.d.ts","sourceRoot":"","sources":["../../../src/components/masonry-layout/masonry-layout.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAE5D,eAAO,MAAM,aAAa,mCAAoC,kBAAkB,4CAoB/E,CAAC"}
@@ -0,0 +1,5 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ export const MasonryLayout = ({ title, caption, components }) => {
3
+ return (_jsxs("section", { "data-testid": "masonry", className: "thread-container", children: [title && (_jsx("h3", { className: "thread-text-2xl thread-font-normal thread-tracking-tight thread-text-black sm:thread-text-4xl", children: title })), caption && _jsx("p", { className: "thread-mt-4 thread-text-lg thread-tracking-tight thread-text-gray-600", children: caption }), _jsx("div", { children: _jsx("ol", { className: " thread-mt-2 thread-columns-2 md:thread-columns-3 lg:thread-columns-4 thread-gap-x-2", children: components.map((component, index) => (_jsx("li", { className: "thread-w-full thread-inline-block thread-rounded thread-overflow-hidden", children: component }, index))) }) })] }));
4
+ };
5
+ //# sourceMappingURL=masonry-layout.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"masonry-layout.js","sourceRoot":"","sources":["../../../src/components/masonry-layout/masonry-layout.tsx"],"names":[],"mappings":";AAEA,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,UAAU,EAAsB,EAAE,EAAE;IACnF,OAAO,CACN,kCAAqB,SAAS,EAAC,SAAS,EAAC,kBAAkB,aACzD,KAAK,IAAI,CACT,aAAI,SAAS,EAAC,+FAA+F,YAC3G,KAAK,GACF,CACL,EACA,OAAO,IAAI,YAAG,SAAS,EAAC,uEAAuE,YAAE,OAAO,GAAK,EAC9G,wBACC,aAAI,SAAS,EAAC,sFAAsF,YAClG,UAAU,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,KAAK,EAAE,EAAE,CAAC,CACrC,aAAgB,SAAS,EAAC,yEAAyE,YACjG,SAAS,IADF,KAAK,CAET,CACL,CAAC,GACE,GACA,IACG,CACV,CAAC;AACH,CAAC,CAAC"}