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
@@ -0,0 +1,7 @@
1
+ import { ReactNode } from 'react';
2
+ export type MasonryLayoutProps = {
3
+ title?: string;
4
+ caption?: string;
5
+ components: ReactNode[];
6
+ };
7
+ //# sourceMappingURL=masonry-layout.types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"masonry-layout.types.d.ts","sourceRoot":"","sources":["../../../src/components/masonry-layout/masonry-layout.types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAElC,MAAM,MAAM,kBAAkB,GAAG;IAChC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,SAAS,EAAE,CAAC;CACxB,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=masonry-layout.types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"masonry-layout.types.js","sourceRoot":"","sources":["../../../src/components/masonry-layout/masonry-layout.types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,3 @@
1
+ export { NavMenuProps } from './nav-menu.types';
2
+ export { NavMenu } from './nav-menu';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/nav-menu/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAChD,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC"}
@@ -0,0 +1,2 @@
1
+ export { NavMenu } from './nav-menu';
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/nav-menu/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { BaseItemProps } from './base-item.types';
2
+ export declare const BaseItem: ({ children, href, padding, onMouseEnter, onMouseLeave, isDropdownItem }: BaseItemProps) => import("react/jsx-runtime").JSX.Element;
3
+ //# sourceMappingURL=base-item.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"base-item.d.ts","sourceRoot":"","sources":["../../../../../src/components/nav-menu/items/base-item/base-item.tsx"],"names":[],"mappings":"AAGA,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAIlD,eAAO,MAAM,QAAQ,4EAA6E,aAAa,4CAsD9G,CAAC"}
@@ -0,0 +1,47 @@
1
+ 'use client';
2
+ import { jsx as _jsx } from "react/jsx-runtime";
3
+ import React from 'react';
4
+ import { useTheme, useResponsiveStyles } from '../../../../utils';
5
+ import { LinkWrapper } from '../../../../internal-components';
6
+ import { NavMenuStyles } from '../../nav-menu-styles';
7
+ export const BaseItem = ({ children, href, padding, onMouseEnter, onMouseLeave, isDropdownItem }) => {
8
+ const { theme } = useTheme();
9
+ const styles = {
10
+ li: {
11
+ display: 'flex',
12
+ alignItems: 'center',
13
+ listStyleType: 'none',
14
+ },
15
+ link: {
16
+ position: useResponsiveStyles({ sm: 'static', lg: 'relative' }),
17
+ display: 'inline-flex',
18
+ flexDirection: 'column',
19
+ height: useResponsiveStyles({ sm: 'auto', lg: '2.5rem' }),
20
+ alignItems: 'center',
21
+ justifyContent: 'center',
22
+ borderRadius: '0.375rem',
23
+ backgroundColor: theme.colors.background,
24
+ color: theme.colors.text.primary,
25
+ fontSize: '0.875rem',
26
+ fontWeight: 500,
27
+ padding: padding ?? `${NavMenuStyles.paddingY / 2}px ${NavMenuStyles.paddingX}px`,
28
+ width: isDropdownItem
29
+ ? useResponsiveStyles({ sm: 'fit-content', lg: '100%' })
30
+ : useResponsiveStyles({ sm: '100%', lg: 'fit-content' }),
31
+ textDecoration: 'none',
32
+ transition: 'all 150ms ease-in-out',
33
+ margin: 'auto',
34
+ },
35
+ linkHover: {
36
+ backgroundColor: theme.colors.gray.light,
37
+ color: theme.colors.gray.dark,
38
+ },
39
+ };
40
+ // Handle hover state
41
+ const [isHovered, setIsHovered] = React.useState(false);
42
+ return (_jsx("li", { onMouseEnter: onMouseEnter, style: styles.li, onMouseLeave: onMouseLeave, children: _jsx(LinkWrapper, { link: href, style: {
43
+ ...styles.link,
44
+ ...(isHovered ? styles.linkHover : {}),
45
+ }, onMouseEnter: () => setIsHovered(true), onMouseLeave: () => setIsHovered(false), children: children }) }));
46
+ };
47
+ //# sourceMappingURL=base-item.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"base-item.js","sourceRoot":"","sources":["../../../../../src/components/nav-menu/items/base-item/base-item.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AACb,OAAO,KAAwB,MAAM,OAAO,CAAC;AAC7C,OAAO,EAAE,QAAQ,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAElE,OAAO,EAAE,WAAW,EAAE,MAAM,iCAAiC,CAAC;AAC9D,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAEtD,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,cAAc,EAAiB,EAAE,EAAE;IAClH,MAAM,EAAE,KAAK,EAAE,GAAG,QAAQ,EAAE,CAAC;IAE7B,MAAM,MAAM,GAAkC;QAC7C,EAAE,EAAE;YACH,OAAO,EAAE,MAAM;YACf,UAAU,EAAE,QAAQ;YACpB,aAAa,EAAE,MAAM;SACrB;QACD,IAAI,EAAE;YACL,QAAQ,EAAE,mBAAmB,CAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,UAAU,EAAE,CAAoC;YAClG,OAAO,EAAE,aAAa;YACtB,aAAa,EAAE,QAAQ;YACvB,MAAM,EAAE,mBAAmB,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,QAAQ,EAAE,CAAC;YACzD,UAAU,EAAE,QAAQ;YACpB,cAAc,EAAE,QAAQ;YACxB,YAAY,EAAE,UAAU;YACxB,eAAe,EAAE,KAAK,CAAC,MAAM,CAAC,UAAU;YACxC,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO;YAChC,QAAQ,EAAE,UAAU;YACpB,UAAU,EAAE,GAAG;YACf,OAAO,EAAE,OAAO,IAAI,GAAG,aAAa,CAAC,QAAQ,GAAG,CAAC,MAAM,aAAa,CAAC,QAAQ,IAAI;YACjF,KAAK,EAAE,cAAc;gBACpB,CAAC,CAAC,mBAAmB,CAAC,EAAE,EAAE,EAAE,aAAa,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC;gBACxD,CAAC,CAAC,mBAAmB,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,aAAa,EAAE,CAAC;YACzD,cAAc,EAAE,MAAM;YACtB,UAAU,EAAE,uBAAuB;YACnC,MAAM,EAAE,MAAM;SACd;QAED,SAAS,EAAE;YACV,eAAe,EAAE,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK;YACxC,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI;SAC7B;KACD,CAAC;IAEF,qBAAqB;IACrB,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IAExD,OAAO,CACN,aAAI,YAAY,EAAE,YAAY,EAAE,KAAK,EAAE,MAAM,CAAC,EAAE,EAAE,YAAY,EAAE,YAAY,YAC3E,KAAC,WAAW,IACX,IAAI,EAAE,IAAI,EACV,KAAK,EAAE;gBACN,GAAG,MAAM,CAAC,IAAI;gBACd,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC;aACtC,EACD,YAAY,EAAE,GAAG,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,EACtC,YAAY,EAAE,GAAG,EAAE,CAAC,YAAY,CAAC,KAAK,CAAC,YAEtC,QAAQ,GACI,GACV,CACL,CAAC;AACH,CAAC,CAAC"}
@@ -0,0 +1,10 @@
1
+ import { ReactNode } from 'react';
2
+ export type BaseItemProps = {
3
+ children: ReactNode;
4
+ href: string;
5
+ padding?: string;
6
+ onMouseEnter?: (event: React.MouseEvent<HTMLLIElement>) => void;
7
+ onMouseLeave?: (event: React.MouseEvent<HTMLLIElement>) => void;
8
+ isDropdownItem?: boolean;
9
+ };
10
+ //# sourceMappingURL=base-item.types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"base-item.types.d.ts","sourceRoot":"","sources":["../../../../../src/components/nav-menu/items/base-item/base-item.types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAqB,SAAS,EAAE,MAAM,OAAO,CAAC;AAErD,MAAM,MAAM,aAAa,GAAG;IAC3B,QAAQ,EAAE,SAAS,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,YAAY,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,UAAU,CAAC,aAAa,CAAC,KAAK,IAAI,CAAC;IAChE,YAAY,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,UAAU,CAAC,aAAa,CAAC,KAAK,IAAI,CAAC;IAChE,cAAc,CAAC,EAAE,OAAO,CAAC;CACzB,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=base-item.types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"base-item.types.js","sourceRoot":"","sources":["../../../../../src/components/nav-menu/items/base-item/base-item.types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,3 @@
1
+ export { BaseItemProps } from './base-item.types';
2
+ export { BaseItem } from './base-item';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/components/nav-menu/items/base-item/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 { BaseItem } from './base-item';
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/components/nav-menu/items/base-item/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC"}
@@ -0,0 +1,3 @@
1
+ export { NavDropdownItemProps } from './nav-drop-down-item.types';
2
+ export { NavDropdownItem } from './nav-drop-down-item';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/components/nav-menu/items/nav-drop-down-item/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;AAClE,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC"}
@@ -0,0 +1,2 @@
1
+ export { NavDropdownItem } from './nav-drop-down-item';
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/components/nav-menu/items/nav-drop-down-item/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { NavDropdownItemProps } from './nav-drop-down-item.types';
2
+ export declare const NavDropdownItem: ({ title, items }: NavDropdownItemProps) => import("react/jsx-runtime").JSX.Element;
3
+ //# sourceMappingURL=nav-drop-down-item.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"nav-drop-down-item.d.ts","sourceRoot":"","sources":["../../../../../src/components/nav-menu/items/nav-drop-down-item/nav-drop-down-item.tsx"],"names":[],"mappings":"AAGA,OAAO,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;AAIlE,eAAO,MAAM,eAAe,qBAAsB,oBAAoB,4CA8FrE,CAAC"}
@@ -0,0 +1,64 @@
1
+ 'use client';
2
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
+ import { useState } from 'react';
4
+ import { BaseItem } from '../base-item';
5
+ import { NavMenuStyles } from '../../nav-menu-styles';
6
+ import { useResponsiveStyles, useTheme } from '../../../../utils';
7
+ export const NavDropdownItem = ({ title, items }) => {
8
+ const { theme } = useTheme();
9
+ const [isHovered, setIsHovered] = useState(false);
10
+ const targetSpacer = useResponsiveStyles({ sm: '0px', lg: '30px' });
11
+ const styles = {
12
+ parentBlock: {
13
+ position: useResponsiveStyles({ sm: 'static', lg: 'relative' }),
14
+ },
15
+ textBlock: {
16
+ display: 'flex',
17
+ flexDirection: 'row',
18
+ gap: '4px',
19
+ justifyContent: 'center',
20
+ alignItems: 'center',
21
+ },
22
+ arrow: {
23
+ marginTop: '1px',
24
+ height: '12px',
25
+ width: '12px',
26
+ transition: 'all 200ms',
27
+ transform: isHovered ? 'rotate(180deg)' : 'rotate(0deg)',
28
+ },
29
+ targetArea: {
30
+ position: 'absolute',
31
+ width: `calc(100% + ${NavMenuStyles.paddingX * 2}px)`,
32
+ height: targetSpacer,
33
+ left: '50%',
34
+ transform: 'translateX(-50%)',
35
+ bottom: `-${targetSpacer}`,
36
+ },
37
+ dropdownContent: {
38
+ display: isHovered ? 'block' : 'none',
39
+ backgroundColor: theme.colors.background,
40
+ borderWidth: '1px',
41
+ boxShadow: `0 4px 8px ${theme.colors.background}`,
42
+ position: 'absolute',
43
+ width: 'fit-content',
44
+ borderRadius: theme.border.radius.md,
45
+ padding: `${NavMenuStyles.paddingY}px ${NavMenuStyles.paddingX}px`,
46
+ zIndex: 10,
47
+ top: `calc(100% + ${targetSpacer})`,
48
+ left: '50%',
49
+ transform: 'translateX(-50%)',
50
+ },
51
+ collapsedDropdownContent: {
52
+ display: isHovered ? 'flex' : 'none',
53
+ justifyContent: 'center',
54
+ columnGap: '24px',
55
+ alignItems: 'center',
56
+ backgroundColor: theme.colors.background,
57
+ width: '100%',
58
+ borderRadius: theme.border.radius.md,
59
+ zIndex: 10,
60
+ },
61
+ };
62
+ return (_jsxs("div", { style: styles.parentBlock, onMouseEnter: () => setIsHovered(true), onMouseLeave: () => setIsHovered(false), children: [_jsx(BaseItem, { href: "#", children: _jsxs("div", { style: styles.textBlock, children: [_jsx("span", { children: title }), _jsx("svg", { xmlns: "http://www.w3.org/2000/svg", width: "24", height: "24", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round", style: styles.arrow, children: _jsx("path", { d: "m6 9 6 6 6-6" }) })] }) }), isHovered && _jsx("div", { style: styles.targetArea }), _jsx("div", { style: useResponsiveStyles({ sm: styles.collapsedDropdownContent, lg: styles.dropdownContent }), children: items.map((item) => (_jsx(BaseItem, { href: item.href, isDropdownItem: true, children: item.title }, item.title))) })] }));
63
+ };
64
+ //# sourceMappingURL=nav-drop-down-item.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"nav-drop-down-item.js","sourceRoot":"","sources":["../../../../../src/components/nav-menu/items/nav-drop-down-item/nav-drop-down-item.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ import { NavItemProps } from '../nav-item';
2
+ export type NavDropdownItemProps = {
3
+ title: string;
4
+ items: NavItemProps[];
5
+ };
6
+ //# sourceMappingURL=nav-drop-down-item.types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"nav-drop-down-item.types.d.ts","sourceRoot":"","sources":["../../../../../src/components/nav-menu/items/nav-drop-down-item/nav-drop-down-item.types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAE3C,MAAM,MAAM,oBAAoB,GAAG;IAClC,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,YAAY,EAAE,CAAC;CACtB,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=nav-drop-down-item.types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"nav-drop-down-item.types.js","sourceRoot":"","sources":["../../../../../src/components/nav-menu/items/nav-drop-down-item/nav-drop-down-item.types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,3 @@
1
+ export { NavIconItemProps } from './nav-icon-item.types';
2
+ export { NavIconItem } from './nav-icon-item';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/components/nav-menu/items/nav-icon-item/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC"}
@@ -0,0 +1,2 @@
1
+ export { NavIconItem } from './nav-icon-item';
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/components/nav-menu/items/nav-icon-item/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { NavIconItemProps } from './nav-icon-item.types';
2
+ export declare const NavIconItem: ({ href, logo }: NavIconItemProps) => import("react/jsx-runtime").JSX.Element;
3
+ //# sourceMappingURL=nav-icon-item.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"nav-icon-item.d.ts","sourceRoot":"","sources":["../../../../../src/components/nav-menu/items/nav-icon-item/nav-icon-item.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAEzD,eAAO,MAAM,WAAW,mBAAoB,gBAAgB,4CAQ3D,CAAC"}
@@ -0,0 +1,6 @@
1
+ import { jsx as _jsx, Fragment as _Fragment } from "react/jsx-runtime";
2
+ import { BaseItem } from '../base-item';
3
+ export const NavIconItem = ({ href, logo }) => {
4
+ return (_jsx(_Fragment, { children: _jsx(BaseItem, { href: href, padding: "4px", children: logo }) }));
5
+ };
6
+ //# sourceMappingURL=nav-icon-item.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"nav-icon-item.js","sourceRoot":"","sources":["../../../../../src/components/nav-menu/items/nav-icon-item/nav-icon-item.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AAGxC,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,EAAE,IAAI,EAAE,IAAI,EAAoB,EAAE,EAAE;IAC/D,OAAO,CACN,4BACC,KAAC,QAAQ,IAAC,IAAI,EAAE,IAAI,EAAE,OAAO,EAAC,KAAK,YACjC,IAAI,GACK,GACT,CACH,CAAC;AACH,CAAC,CAAC"}
@@ -0,0 +1,8 @@
1
+ import { ReactNode } from 'react';
2
+ import { UtilityColorOptions } from '../../../../types';
3
+ export type NavIconItemProps = {
4
+ href: string;
5
+ logo: ReactNode;
6
+ color?: UtilityColorOptions;
7
+ };
8
+ //# sourceMappingURL=nav-icon-item.types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"nav-icon-item.types.d.ts","sourceRoot":"","sources":["../../../../../src/components/nav-menu/items/nav-icon-item/nav-icon-item.types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAClC,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAExD,MAAM,MAAM,gBAAgB,GAAG;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,SAAS,CAAC;IAChB,KAAK,CAAC,EAAE,mBAAmB,CAAC;CAC5B,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=nav-icon-item.types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"nav-icon-item.types.js","sourceRoot":"","sources":["../../../../../src/components/nav-menu/items/nav-icon-item/nav-icon-item.types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,3 @@
1
+ export { NavItemProps } from './nav-item.types';
2
+ export { NavItem } from './nav-item';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/components/nav-menu/items/nav-item/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAChD,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC"}
@@ -0,0 +1,2 @@
1
+ export { NavItem } from './nav-item';
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/components/nav-menu/items/nav-item/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { NavItemProps } from './nav-item.types';
2
+ export declare const NavItem: ({ href, title }: NavItemProps) => import("react/jsx-runtime").JSX.Element;
3
+ //# sourceMappingURL=nav-item.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"nav-item.d.ts","sourceRoot":"","sources":["../../../../../src/components/nav-menu/items/nav-item/nav-item.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAGhD,eAAO,MAAM,OAAO,oBAAqB,YAAY,4CAcpD,CAAC"}
@@ -0,0 +1,14 @@
1
+ import { jsx as _jsx, Fragment as _Fragment } from "react/jsx-runtime";
2
+ import { BaseItem } from '../base-item';
3
+ export const NavItem = ({ href, title }) => {
4
+ const style = {
5
+ block: {
6
+ width: '100%',
7
+ display: 'flex',
8
+ alignItems: 'center',
9
+ justifyContent: 'center',
10
+ },
11
+ };
12
+ return (_jsx(_Fragment, { children: _jsx(BaseItem, { href: href, children: title }) }));
13
+ };
14
+ //# sourceMappingURL=nav-item.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"nav-item.js","sourceRoot":"","sources":["../../../../../src/components/nav-menu/items/nav-item/nav-item.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AAExC,MAAM,CAAC,MAAM,OAAO,GAAG,CAAC,EAAE,IAAI,EAAE,KAAK,EAAgB,EAAE,EAAE;IACxD,MAAM,KAAK,GAAG;QACb,KAAK,EAAE;YACN,KAAK,EAAE,MAAM;YACb,OAAO,EAAE,MAAM;YACf,UAAU,EAAE,QAAQ;YACpB,cAAc,EAAE,QAAQ;SACxB;KACD,CAAC;IACF,OAAO,CACN,4BACC,KAAC,QAAQ,IAAC,IAAI,EAAE,IAAI,YAAG,KAAK,GAAY,GACtC,CACH,CAAC;AACH,CAAC,CAAC"}
@@ -0,0 +1,5 @@
1
+ export type NavItemProps = {
2
+ href: string;
3
+ title: string;
4
+ };
5
+ //# sourceMappingURL=nav-item.types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"nav-item.types.d.ts","sourceRoot":"","sources":["../../../../../src/components/nav-menu/items/nav-item/nav-item.types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,YAAY,GAAG;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;CACd,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=nav-item.types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"nav-item.types.js","sourceRoot":"","sources":["../../../../../src/components/nav-menu/items/nav-item/nav-item.types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,5 @@
1
+ export declare const NavMenuStyles: {
2
+ paddingX: number;
3
+ paddingY: number;
4
+ };
5
+ //# sourceMappingURL=nav-menu-styles.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"nav-menu-styles.d.ts","sourceRoot":"","sources":["../../../src/components/nav-menu/nav-menu-styles.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,aAAa;;;CAGzB,CAAC"}
@@ -0,0 +1,5 @@
1
+ export const NavMenuStyles = {
2
+ paddingX: 16,
3
+ paddingY: 16,
4
+ };
5
+ //# sourceMappingURL=nav-menu-styles.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"nav-menu-styles.js","sourceRoot":"","sources":["../../../src/components/nav-menu/nav-menu-styles.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,aAAa,GAAG;IAC5B,QAAQ,EAAE,EAAE;IACZ,QAAQ,EAAE,EAAE;CACZ,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { NavMenuProps } from './nav-menu.types';
2
+ export declare const NavMenu: ({ logo, items }: NavMenuProps) => import("react/jsx-runtime").JSX.Element;
3
+ //# sourceMappingURL=nav-menu.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"nav-menu.d.ts","sourceRoot":"","sources":["../../../src/components/nav-menu/nav-menu.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAOhD,eAAO,MAAM,OAAO,oBAAqB,YAAY,4CA8NpD,CAAC"}
@@ -0,0 +1,181 @@
1
+ 'use client';
2
+ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
3
+ import { useEffect, useState } from 'react';
4
+ import { useResponsiveStyles, useTheme } from '../../utils';
5
+ import { NavIconItem } from './items/nav-icon-item';
6
+ import { NavItem } from './items/nav-item';
7
+ import { NavDropdownItem } from './items/nav-drop-down-item';
8
+ export const NavMenu = ({ logo, items }) => {
9
+ // Navmenu Controls
10
+ const [navIsOpened, setNavIsOpened] = useState(false);
11
+ const closeNavbar = () => {
12
+ setNavIsOpened(false);
13
+ };
14
+ const toggleNavbar = () => {
15
+ setNavIsOpened((navIsOpened) => !navIsOpened);
16
+ };
17
+ // Dropdown Control
18
+ const [isDropdownHovered, setIsDropdownHovered] = useState(false);
19
+ const handleMusicHover = (hovered) => {
20
+ setIsDropdownHovered(hovered);
21
+ };
22
+ useEffect(() => {
23
+ const onResize = () => {
24
+ closeNavbar();
25
+ };
26
+ window.addEventListener('resize', onResize);
27
+ }, []);
28
+ useEffect(() => {
29
+ const handleOutsideClick = (event) => {
30
+ // Check if the click is outside of the menu
31
+ const menu = document.getElementById('site-menu');
32
+ const isClickInsideMenu = menu && menu.contains(event.target);
33
+ if (!isClickInsideMenu) {
34
+ closeNavbar();
35
+ }
36
+ };
37
+ document.addEventListener('click', handleOutsideClick);
38
+ return () => {
39
+ document.removeEventListener('click', handleOutsideClick);
40
+ };
41
+ }, []);
42
+ const { theme } = useTheme();
43
+ const style = {
44
+ header: {
45
+ position: 'sticky',
46
+ top: '0px',
47
+ width: '100%',
48
+ display: 'flex',
49
+ alignItems: 'center',
50
+ height: '80px',
51
+ backdropFilter: 'blur(24px)',
52
+ borderBottomWidth: '1px',
53
+ borderBottomColor: theme.colors.structure,
54
+ zIndex: '40',
55
+ backgroundColor: theme.colors.background,
56
+ },
57
+ nav: {
58
+ width: '100%',
59
+ marginRight: 'auto',
60
+ marginLeft: 'auto',
61
+ paddingRight: '32px',
62
+ paddingLeft: '32px',
63
+ position: 'relative',
64
+ display: 'flex',
65
+ columnGap: '20px',
66
+ justifyContent: useResponsiveStyles({ sm: 'space-between ', lg: 'flex-start' }),
67
+ alignItems: 'center',
68
+ },
69
+ menuItemBlock: {
70
+ animationDuration: '300ms',
71
+ animationTimingFunction: 'linear',
72
+ position: useResponsiveStyles({ sm: 'absolute', lg: 'relative' }),
73
+ top: useResponsiveStyles({ sm: '100%', lg: '0px' }),
74
+ left: '0px',
75
+ borderBottomWidth: '1px',
76
+ backgroundColor: useResponsiveStyles({ sm: 'rgb(255 255 255 / 1)', lg: 'transparent' }),
77
+ borderColor: '#e5e7eb',
78
+ paddingTop: useResponsiveStyles({ sm: '32px', lg: '0px' }),
79
+ paddingBottom: useResponsiveStyles({ sm: '32px', lg: '0px' }),
80
+ paddingLeft: useResponsiveStyles({ sm: '20px', md: '48px', lg: '0px' }),
81
+ paddingRight: useResponsiveStyles({ sm: '20px', md: '48px', lg: '0px' }),
82
+ borderStyle: useResponsiveStyles({ sm: 'solid', lg: 'none' }),
83
+ width: useResponsiveStyles({ sm: '100%', lg: 'max-content' }),
84
+ display: useResponsiveStyles({ sm: 'block', lg: 'flex' }),
85
+ columnGap: '24px',
86
+ transitionProperty: useResponsiveStyles({ sm: '', md: 'none' }),
87
+ },
88
+ menuOpenItemBlock: {
89
+ transitionDuration: '300ms',
90
+ transitionTimingFunction: 'linear',
91
+ visibility: 'visible',
92
+ opacity: 1,
93
+ transform: 'translateY(0)',
94
+ },
95
+ menuCloseItemBlock: {
96
+ transitionDuration: '300ms',
97
+ transitionTimingFunction: 'linear',
98
+ transform: useResponsiveStyles({
99
+ sm: 'translateY(2.5rem)', // translate-y-10 (10 * 0.25rem = 2.5rem)
100
+ lg: 'translateY(0)',
101
+ }),
102
+ opacity: useResponsiveStyles({ sm: '0', lg: '1' }),
103
+ visibility: useResponsiveStyles({ sm: 'hidden', lg: 'visible' }),
104
+ },
105
+ itemList: {
106
+ display: 'flex',
107
+ flexDirection: useResponsiveStyles({ sm: 'column', lg: 'row' }),
108
+ gap: '24px',
109
+ alignItems: useResponsiveStyles({ sm: 'stretch', lg: 'center' }),
110
+ width: useResponsiveStyles({ sm: 'auto', lg: '100%' }),
111
+ justifyContent: useResponsiveStyles({ sm: 'flex-center', lg: 'center' }),
112
+ },
113
+ menuControl: {
114
+ display: useResponsiveStyles({ sm: 'flex', lg: 'none' }),
115
+ alignItems: 'center',
116
+ },
117
+ menuControlButton: {
118
+ outline: '2px solid transparent',
119
+ outlineOffset: '2px',
120
+ borderLeftWidth: '1px',
121
+ borderLeftColor: theme.colors.gray.main,
122
+ paddingLeft: '12px',
123
+ position: 'relative',
124
+ paddingTop: '12px',
125
+ paddingBottom: '12px',
126
+ },
127
+ menuCross: {
128
+ animationDuration: '300ms',
129
+ display: 'flex',
130
+ height: '2px',
131
+ width: '24px',
132
+ borderRadius: theme.border.radius.sm,
133
+ backgroundColor: theme.colors.gray.dark,
134
+ transitionProperty: 'color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter',
135
+ transitionTimingFunction: 'cubic-bezier(0.4, 0, 0.2, 1)',
136
+ transitionDuration: '300ms',
137
+ },
138
+ // menuCrossTop: {
139
+ // // margin-top: 0.5rem /* 8px */
140
+ // },
141
+ menuCrossBottom: {
142
+ marginTop: '8px',
143
+ },
144
+ menuCrossTopOpen: {
145
+ transform: 'translate(0, 0.324rem) rotate(45deg)',
146
+ },
147
+ menuCrossBottomOpen: {
148
+ transform: 'translate(0, -0.324rem) rotate(-45deg)',
149
+ },
150
+ };
151
+ const _renderNavItem = ({ href, title }) => {
152
+ return _jsx(NavItem, { href: href, title: title }, title);
153
+ };
154
+ const _renderNavDropdown = ({ title, items }) => {
155
+ return _jsx(NavDropdownItem, { title: title, items: items }, title);
156
+ };
157
+ const _renderItem = (item) => {
158
+ if ('href' in item) {
159
+ // item is of type NavItem
160
+ return _renderNavItem(item);
161
+ }
162
+ else {
163
+ // item is of type NavDropdownItem
164
+ return _renderNavDropdown(item);
165
+ }
166
+ };
167
+ return (_jsx(_Fragment, { children: _jsx("header", { id: "site-menu", style: style.header, children: _jsxs("nav", { style: style.nav, children: [logo && _jsx(NavIconItem, { href: logo.href, logo: logo.logo }), _jsx("div", { style: {
168
+ ...style.menuItemBlock,
169
+ ...(navIsOpened ? style.menuOpenItemBlock : style.menuCloseItemBlock),
170
+ }, children: _jsx("ul", { style: style.itemList, children: items.map((item) => _renderItem(item)) }) }), _jsx("div", { style: style.menuControl, children: _jsxs("button", { onClick: () => {
171
+ toggleNavbar();
172
+ }, "aria-label": "toggle navbar", children: [_jsx("span", { "aria-hidden": true, style: {
173
+ ...style.menuCross,
174
+ ...(navIsOpened ? style.menuCrossTopOpen : {}),
175
+ } }), _jsx("span", { "aria-hidden": true, style: {
176
+ ...style.menuCross,
177
+ ...style.menuCrossBottom,
178
+ ...(navIsOpened ? style.menuCrossBottomOpen : {}),
179
+ } })] }) })] }) }) }));
180
+ };
181
+ //# sourceMappingURL=nav-menu.js.map