@feminab/box-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 (295) hide show
  1. package/.babelrc +15 -0
  2. package/.storybook/main.ts +20 -0
  3. package/.storybook/preview.ts +15 -0
  4. package/README.md +46 -0
  5. package/dist/@interfaces/Badge.d.d.ts +12 -0
  6. package/dist/@interfaces/Badge.d.d.ts.map +1 -0
  7. package/dist/@interfaces/Button.d.d.ts +15 -0
  8. package/dist/@interfaces/Button.d.d.ts.map +1 -0
  9. package/dist/@interfaces/Color.d.d.ts +6 -0
  10. package/dist/@interfaces/Color.d.d.ts.map +1 -0
  11. package/dist/@interfaces/IButtonItem.d.d.ts +6 -0
  12. package/dist/@interfaces/IButtonItem.d.d.ts.map +1 -0
  13. package/dist/@interfaces/ISubNavItem.d.d.ts +9 -0
  14. package/dist/@interfaces/ISubNavItem.d.d.ts.map +1 -0
  15. package/dist/@interfaces/MobileNavProps.d.d.ts +5 -0
  16. package/dist/@interfaces/MobileNavProps.d.d.ts.map +1 -0
  17. package/dist/@interfaces/NavItem.d.d.ts +22 -0
  18. package/dist/@interfaces/NavItem.d.d.ts.map +1 -0
  19. package/dist/@interfaces/Pagination.d.d.ts +8 -0
  20. package/dist/@interfaces/Pagination.d.d.ts.map +1 -0
  21. package/dist/@interfaces/Select.d.d.ts +14 -0
  22. package/dist/@interfaces/Select.d.d.ts.map +1 -0
  23. package/dist/@interfaces/SideNavProps.d.d.ts +11 -0
  24. package/dist/@interfaces/SideNavProps.d.d.ts.map +1 -0
  25. package/dist/@interfaces/TextInput.d.d.ts +15 -0
  26. package/dist/@interfaces/TextInput.d.d.ts.map +1 -0
  27. package/dist/@interfaces/index.d.ts +12 -0
  28. package/dist/@interfaces/index.d.ts.map +1 -0
  29. package/dist/Badge.d.ts +4 -0
  30. package/dist/Badge.d.ts.map +1 -0
  31. package/dist/Button.d.ts +4 -0
  32. package/dist/Button.d.ts.map +1 -0
  33. package/dist/ButtonGroup.d.ts +9 -0
  34. package/dist/ButtonGroup.d.ts.map +1 -0
  35. package/dist/ColorBox.d.ts +4 -0
  36. package/dist/ColorBox.d.ts.map +1 -0
  37. package/dist/Header.d.ts +13 -0
  38. package/dist/Header.d.ts.map +1 -0
  39. package/dist/Nav/MobileNav.d.ts +4 -0
  40. package/dist/Nav/MobileNav.d.ts.map +1 -0
  41. package/dist/Nav/NavItem.d.ts +4 -0
  42. package/dist/Nav/NavItem.d.ts.map +1 -0
  43. package/dist/Nav/SideNav.d.ts +5 -0
  44. package/dist/Nav/SideNav.d.ts.map +1 -0
  45. package/dist/Nav/SubNavItem.d.ts +4 -0
  46. package/dist/Nav/SubNavItem.d.ts.map +1 -0
  47. package/dist/Page.d.ts +3 -0
  48. package/dist/Page.d.ts.map +1 -0
  49. package/dist/Paginate.d.ts +4 -0
  50. package/dist/Paginate.d.ts.map +1 -0
  51. package/dist/Select.d.ts +4 -0
  52. package/dist/Select.d.ts.map +1 -0
  53. package/dist/StoryLayout.d.ts +9 -0
  54. package/dist/StoryLayout.d.ts.map +1 -0
  55. package/dist/TextInput.d.ts +4 -0
  56. package/dist/TextInput.d.ts.map +1 -0
  57. package/dist/Typography.d.ts +14 -0
  58. package/dist/Typography.d.ts.map +1 -0
  59. package/dist/box-ui.cjs.development.js +1122 -0
  60. package/dist/box-ui.cjs.development.js.map +1 -0
  61. package/dist/box-ui.cjs.production.min.js +2 -0
  62. package/dist/box-ui.cjs.production.min.js.map +1 -0
  63. package/dist/box-ui.esm.js +1096 -0
  64. package/dist/box-ui.esm.js.map +1 -0
  65. package/dist/data/colors.d.ts +3 -0
  66. package/dist/data/colors.d.ts.map +1 -0
  67. package/dist/data/countries.d.ts +3 -0
  68. package/dist/data/countries.d.ts.map +1 -0
  69. package/dist/data/images/index.d.ts +5 -0
  70. package/dist/data/images/index.d.ts.map +1 -0
  71. package/dist/data/index.d.ts +6 -0
  72. package/dist/data/index.d.ts.map +1 -0
  73. package/dist/data/navItems.d.ts +4 -0
  74. package/dist/data/navItems.d.ts.map +1 -0
  75. package/dist/data/options.d.ts +5 -0
  76. package/dist/data/options.d.ts.map +1 -0
  77. package/dist/data/prices.d.ts +3 -0
  78. package/dist/data/prices.d.ts.map +1 -0
  79. package/dist/hooks/useIconClassName.d.ts +5 -0
  80. package/dist/hooks/useIconClassName.d.ts.map +1 -0
  81. package/dist/hooks/useIconProps.d.ts +5 -0
  82. package/dist/hooks/useIconProps.d.ts.map +1 -0
  83. package/dist/index.d.ts +14 -0
  84. package/dist/index.d.ts.map +1 -0
  85. package/dist/index.js +8 -0
  86. package/dist/reportWebVitals.d.ts +4 -0
  87. package/dist/reportWebVitals.d.ts.map +1 -0
  88. package/dist/setupTests.d.ts +2 -0
  89. package/dist/setupTests.d.ts.map +1 -0
  90. package/dist/stories/Badge.stories.d.ts +13 -0
  91. package/dist/stories/Badge.stories.d.ts.map +1 -0
  92. package/dist/stories/Button.stories.d.ts +16 -0
  93. package/dist/stories/Button.stories.d.ts.map +1 -0
  94. package/dist/stories/ButtonGroup.stories.d.ts +11 -0
  95. package/dist/stories/ButtonGroup.stories.d.ts.map +1 -0
  96. package/dist/stories/Colors.stories.d.ts +8 -0
  97. package/dist/stories/Colors.stories.d.ts.map +1 -0
  98. package/dist/stories/Header.stories.d.ts +20 -0
  99. package/dist/stories/Header.stories.d.ts.map +1 -0
  100. package/dist/stories/MobileNav.stories.d.ts +10 -0
  101. package/dist/stories/MobileNav.stories.d.ts.map +1 -0
  102. package/dist/stories/Page.stories.d.ts +14 -0
  103. package/dist/stories/Page.stories.d.ts.map +1 -0
  104. package/dist/stories/Paginate.stories.d.ts +11 -0
  105. package/dist/stories/Paginate.stories.d.ts.map +1 -0
  106. package/dist/stories/Select.stories.d.ts +11 -0
  107. package/dist/stories/Select.stories.d.ts.map +1 -0
  108. package/dist/stories/SideNav.stories.d.ts +10 -0
  109. package/dist/stories/SideNav.stories.d.ts.map +1 -0
  110. package/dist/stories/TextInput.stories.d.ts +11 -0
  111. package/dist/stories/TextInput.stories.d.ts.map +1 -0
  112. package/dist/stories/Typography.stories.d.ts +11 -0
  113. package/dist/stories/Typography.stories.d.ts.map +1 -0
  114. package/output.css +639 -0
  115. package/package.json +91 -0
  116. package/postcss.config.js +6 -0
  117. package/public/favicon.ico +0 -0
  118. package/public/index.html +43 -0
  119. package/public/logo192.png +0 -0
  120. package/public/logo512.png +0 -0
  121. package/public/manifest.json +25 -0
  122. package/public/robots.txt +3 -0
  123. package/src/@interfaces/Badge.d.tsx +13 -0
  124. package/src/@interfaces/Button.d.tsx +17 -0
  125. package/src/@interfaces/Color.d.tsx +5 -0
  126. package/src/@interfaces/IButtonItem.d.tsx +6 -0
  127. package/src/@interfaces/ISubNavItem.d.tsx +10 -0
  128. package/src/@interfaces/MobileNavProps.d.tsx +4 -0
  129. package/src/@interfaces/NavItem.d.tsx +22 -0
  130. package/src/@interfaces/Pagination.d.tsx +7 -0
  131. package/src/@interfaces/Select.d.tsx +12 -0
  132. package/src/@interfaces/SideNavProps.d.tsx +11 -0
  133. package/src/@interfaces/TextInput.d.tsx +13 -0
  134. package/src/@interfaces/index.tsx +11 -0
  135. package/src/Badge.tsx +44 -0
  136. package/src/Button.tsx +132 -0
  137. package/src/ButtonGroup.tsx +37 -0
  138. package/src/ColorBox.tsx +15 -0
  139. package/src/Header.tsx +55 -0
  140. package/src/Nav/MobileNav.tsx +35 -0
  141. package/src/Nav/NavItem.tsx +101 -0
  142. package/src/Nav/SideNav.tsx +165 -0
  143. package/src/Nav/SubNavItem.tsx +39 -0
  144. package/src/Page.tsx +72 -0
  145. package/src/Paginate.tsx +102 -0
  146. package/src/Select.tsx +102 -0
  147. package/src/StoryLayout.tsx +17 -0
  148. package/src/TextInput.tsx +103 -0
  149. package/src/Typography.tsx +81 -0
  150. package/src/data/colors.tsx +279 -0
  151. package/src/data/countries.tsx +57 -0
  152. package/src/data/images/be.svg +1 -0
  153. package/src/data/images/de.svg +1 -0
  154. package/src/data/images/fr.svg +1 -0
  155. package/src/data/images/in.svg +1 -0
  156. package/src/data/images/index.tsx +33 -0
  157. package/src/data/images/it.svg +1 -0
  158. package/src/data/images/logo.svg +23 -0
  159. package/src/data/images/nl.svg +1 -0
  160. package/src/data/images/ru.svg +1 -0
  161. package/src/data/images/us.svg +1 -0
  162. package/src/data/index.tsx +5 -0
  163. package/src/data/navItems.tsx +109 -0
  164. package/src/data/options.tsx +51 -0
  165. package/src/data/prices.tsx +36 -0
  166. package/src/hooks/useIconClassName.tsx +14 -0
  167. package/src/hooks/useIconProps.tsx +19 -0
  168. package/src/index.js +15 -0
  169. package/src/react-app-env.d.ts +1 -0
  170. package/src/reportWebVitals.ts +15 -0
  171. package/src/setupTests.ts +5 -0
  172. package/src/stories/Badge.stories.tsx +86 -0
  173. package/src/stories/Button.stories.tsx +104 -0
  174. package/src/stories/ButtonGroup.stories.tsx +83 -0
  175. package/src/stories/Colors.stories.tsx +31 -0
  176. package/src/stories/Configure.mdx +364 -0
  177. package/src/stories/Header.stories.ts +33 -0
  178. package/src/stories/MobileNav.stories.tsx +60 -0
  179. package/src/stories/Page.stories.ts +32 -0
  180. package/src/stories/Paginate.stories.tsx +64 -0
  181. package/src/stories/Select.stories.tsx +77 -0
  182. package/src/stories/SideNav.stories.tsx +38 -0
  183. package/src/stories/TextInput.stories.tsx +100 -0
  184. package/src/stories/Typography.stories.tsx +115 -0
  185. package/src/stories/assets/accessibility.png +0 -0
  186. package/src/stories/assets/accessibility.svg +1 -0
  187. package/src/stories/assets/addon-library.png +0 -0
  188. package/src/stories/assets/assets.png +0 -0
  189. package/src/stories/assets/avif-test-image.avif +0 -0
  190. package/src/stories/assets/context.png +0 -0
  191. package/src/stories/assets/discord.svg +1 -0
  192. package/src/stories/assets/docs.png +0 -0
  193. package/src/stories/assets/figma-plugin.png +0 -0
  194. package/src/stories/assets/github.svg +1 -0
  195. package/src/stories/assets/share.png +0 -0
  196. package/src/stories/assets/styling.png +0 -0
  197. package/src/stories/assets/testing.png +0 -0
  198. package/src/stories/assets/theming.png +0 -0
  199. package/src/stories/assets/tutorials.svg +1 -0
  200. package/src/stories/assets/youtube.svg +1 -0
  201. package/src/styles/global.css +367 -0
  202. package/storybook-static/125.65b26339.iframe.bundle.js +405 -0
  203. package/storybook-static/125.65b26339.iframe.bundle.js.LICENSE.txt +9 -0
  204. package/storybook-static/125.65b26339.iframe.bundle.js.map +1 -0
  205. package/storybook-static/13.0638081a.iframe.bundle.js +2 -0
  206. package/storybook-static/13.0638081a.iframe.bundle.js.LICENSE.txt +9 -0
  207. package/storybook-static/161.a19908ac.iframe.bundle.js +2 -0
  208. package/storybook-static/161.a19908ac.iframe.bundle.js.LICENSE.txt +9 -0
  209. package/storybook-static/161528bb6c25115b3f83.png +0 -0
  210. package/storybook-static/167.3fa3a909.iframe.bundle.js +1 -0
  211. package/storybook-static/294.ce38f65c.iframe.bundle.js +1 -0
  212. package/storybook-static/2dbc69731c3f9930a271.png +0 -0
  213. package/storybook-static/314.568bd9af.iframe.bundle.js +2 -0
  214. package/storybook-static/314.568bd9af.iframe.bundle.js.LICENSE.txt +15 -0
  215. package/storybook-static/364.0b18ef67.iframe.bundle.js +1 -0
  216. package/storybook-static/735.1625d9f4.iframe.bundle.js +2 -0
  217. package/storybook-static/735.1625d9f4.iframe.bundle.js.LICENSE.txt +9 -0
  218. package/storybook-static/742.597501f6.iframe.bundle.js +1 -0
  219. package/storybook-static/7a58d2cb9a6358f85e9b.png +0 -0
  220. package/storybook-static/844.aec20bdb.iframe.bundle.js +95 -0
  221. package/storybook-static/844.aec20bdb.iframe.bundle.js.LICENSE.txt +19 -0
  222. package/storybook-static/844.aec20bdb.iframe.bundle.js.map +1 -0
  223. package/storybook-static/9335a1a91b80ad4fec70.png +0 -0
  224. package/storybook-static/936.fd850a3f.iframe.bundle.js +1 -0
  225. package/storybook-static/961.0e5457c5.iframe.bundle.js +2 -0
  226. package/storybook-static/961.0e5457c5.iframe.bundle.js.LICENSE.txt +9 -0
  227. package/storybook-static/c720ced26387af8a9cb2.png +0 -0
  228. package/storybook-static/e93de094692245f1ec04.png +0 -0
  229. package/storybook-static/f7d8b9a8cec7528e0e36.png +0 -0
  230. package/storybook-static/favicon.ico +0 -0
  231. package/storybook-static/favicon.svg +1 -0
  232. package/storybook-static/iframe.html +511 -0
  233. package/storybook-static/index.html +185 -0
  234. package/storybook-static/index.json +1 -0
  235. package/storybook-static/logo192.png +0 -0
  236. package/storybook-static/logo512.png +0 -0
  237. package/storybook-static/main.069281cf.iframe.bundle.js +1 -0
  238. package/storybook-static/manifest.json +25 -0
  239. package/storybook-static/nunito-sans-bold-italic.woff2 +0 -0
  240. package/storybook-static/nunito-sans-bold.woff2 +0 -0
  241. package/storybook-static/nunito-sans-italic.woff2 +0 -0
  242. package/storybook-static/nunito-sans-regular.woff2 +0 -0
  243. package/storybook-static/project.json +1 -0
  244. package/storybook-static/robots.txt +3 -0
  245. package/storybook-static/runtime~main.295ddda4.iframe.bundle.js +1 -0
  246. package/storybook-static/sb-addons/chromatic-com-storybook-10/manager-bundle.js +331 -0
  247. package/storybook-static/sb-addons/chromatic-com-storybook-10/manager-bundle.js.LEGAL.txt +51 -0
  248. package/storybook-static/sb-addons/essentials-actions-2/manager-bundle.js +3 -0
  249. package/storybook-static/sb-addons/essentials-backgrounds-4/manager-bundle.js +12 -0
  250. package/storybook-static/sb-addons/essentials-controls-1/manager-bundle.js +402 -0
  251. package/storybook-static/sb-addons/essentials-docs-3/manager-bundle.js +242 -0
  252. package/storybook-static/sb-addons/essentials-measure-7/manager-bundle.js +3 -0
  253. package/storybook-static/sb-addons/essentials-outline-8/manager-bundle.js +3 -0
  254. package/storybook-static/sb-addons/essentials-toolbars-6/manager-bundle.js +3 -0
  255. package/storybook-static/sb-addons/essentials-viewport-5/manager-bundle.js +3 -0
  256. package/storybook-static/sb-addons/interactions-11/manager-bundle.js +222 -0
  257. package/storybook-static/sb-addons/links-12/manager-bundle.js +3 -0
  258. package/storybook-static/sb-addons/onboarding-9/manager-bundle.js +127 -0
  259. package/storybook-static/sb-addons/storybook-core-core-server-presets-0/common-manager-bundle.js +3 -0
  260. package/storybook-static/sb-common-assets/favicon.svg +1 -0
  261. package/storybook-static/sb-common-assets/nunito-sans-bold-italic.woff2 +0 -0
  262. package/storybook-static/sb-common-assets/nunito-sans-bold.woff2 +0 -0
  263. package/storybook-static/sb-common-assets/nunito-sans-italic.woff2 +0 -0
  264. package/storybook-static/sb-common-assets/nunito-sans-regular.woff2 +0 -0
  265. package/storybook-static/sb-manager/globals-module-info.js +1051 -0
  266. package/storybook-static/sb-manager/globals-runtime.js +41591 -0
  267. package/storybook-static/sb-manager/globals.js +48 -0
  268. package/storybook-static/sb-manager/runtime.js +12048 -0
  269. package/storybook-static/sb-preview/globals.js +33 -0
  270. package/storybook-static/sb-preview/runtime.js +7745 -0
  271. package/storybook-static/static/css/main.08036cd2.css +2294 -0
  272. package/storybook-static/static/css/main.08036cd2.css.map +1 -0
  273. package/storybook-static/static/media/discord.d85804c7f88be863ff119366ab74d826.svg +1 -0
  274. package/storybook-static/static/media/github.e4e8df827592b1ed0288e4678e1965ce.svg +1 -0
  275. package/storybook-static/static/media/tutorials.fde6e46fc254fa77b6e39d1118470f7c.svg +1 -0
  276. package/storybook-static/static/media/youtube.fd046a09fac357359f94cc21068d6560.svg +1 -0
  277. package/storybook-static/stories-Badge-stories.484f7206.iframe.bundle.js +1 -0
  278. package/storybook-static/stories-Button-stories.5e29be85.iframe.bundle.js +1 -0
  279. package/storybook-static/stories-ButtonGroup-stories.cc89968c.iframe.bundle.js +1 -0
  280. package/storybook-static/stories-Colors-stories.f892dc75.iframe.bundle.js +2 -0
  281. package/storybook-static/stories-Colors-stories.f892dc75.iframe.bundle.js.LICENSE.txt +15 -0
  282. package/storybook-static/stories-Configure-mdx.81346d97.iframe.bundle.js +1 -0
  283. package/storybook-static/stories-Header-stories.cf691094.iframe.bundle.js +2 -0
  284. package/storybook-static/stories-Header-stories.cf691094.iframe.bundle.js.LICENSE.txt +15 -0
  285. package/storybook-static/stories-MobileNav-stories.f04cccdd.iframe.bundle.js +1 -0
  286. package/storybook-static/stories-Page-stories.0c9aa29d.iframe.bundle.js +2 -0
  287. package/storybook-static/stories-Page-stories.0c9aa29d.iframe.bundle.js.LICENSE.txt +15 -0
  288. package/storybook-static/stories-Paginate-stories.3b161781.iframe.bundle.js +1 -0
  289. package/storybook-static/stories-Select-stories.7556ae0d.iframe.bundle.js +1 -0
  290. package/storybook-static/stories-SideNav-stories.093fac6a.iframe.bundle.js +1 -0
  291. package/storybook-static/stories-TextInput-stories.6d3e15c6.iframe.bundle.js +1 -0
  292. package/storybook-static/stories-Typography-stories.6640f7ac.iframe.bundle.js +2 -0
  293. package/storybook-static/stories-Typography-stories.6640f7ac.iframe.bundle.js.LICENSE.txt +15 -0
  294. package/tailwind.config.js +113 -0
  295. package/tsconfig.json +29 -0
@@ -0,0 +1,1096 @@
1
+ import React, { isValidElement, cloneElement } from 'react';
2
+ import classNames from 'classnames';
3
+ import { Pagination } from 'react-headless-pagination';
4
+ import { FiArrowLeft, FiArrowRight, FiChevronDown, FiCheck, FiLogOut, FiSearch, FiHome, FiLayers, FiSettings, FiFlag, FiMapPin, FiCheckSquare, FiBarChart2, FiCircle, FiList, FiGrid } from 'react-icons/fi';
5
+ import { Listbox, ListboxButton, ListboxOptions, ListboxOption, Popover, PopoverButton, PopoverPanel } from '@headlessui/react';
6
+
7
+ const BadgeSizeClasses = {
8
+ sm: "badge-sm",
9
+ md: "badge-md",
10
+ lg: "badge-lg"
11
+ };
12
+ const BadgeVariantClasses = {
13
+ gray: "badge-gray",
14
+ primary: "badge-primary",
15
+ warning: "badge-warning",
16
+ error: "badge-error",
17
+ success: "badge-success"
18
+ };
19
+ const Badge = _ref => {
20
+ let {
21
+ className,
22
+ children,
23
+ LeadingIcon,
24
+ TrailingIcon,
25
+ variant,
26
+ size
27
+ } = _ref;
28
+ const badgeVariantClassName = BadgeVariantClasses[variant];
29
+ const badgeSizeClassName = BadgeSizeClasses[size];
30
+ return /*#__PURE__*/React.createElement("div", {
31
+ className: classNames("badge-base", badgeSizeClassName, badgeVariantClassName, className)
32
+ }, LeadingIcon && /*#__PURE__*/React.createElement("span", {
33
+ className: "mr-1.5"
34
+ }, LeadingIcon), children, TrailingIcon && /*#__PURE__*/React.createElement("span", {
35
+ className: "mr-1.5"
36
+ }, TrailingIcon));
37
+ };
38
+
39
+ const buttonVariantClasses = {
40
+ primary: {
41
+ default: "btn-primary",
42
+ hover: "btn-primary-hover",
43
+ focus: "btn-primary-focus shadow-grayDark",
44
+ disabled: "btn-primary-disabled"
45
+ },
46
+ secondary: {
47
+ default: "btn-secondary",
48
+ hover: "btn-secondary-hover",
49
+ focus: "btn-secondary-focus shadow-grayDark",
50
+ disabled: "btn-secondary-disabled"
51
+ },
52
+ secondaryGray: {
53
+ default: "btn-secondaryGray",
54
+ hover: "btn-secondaryGray-hover",
55
+ focus: "btn-secondaryGray-focus shadow-grayDark",
56
+ disabled: "btn-secondaryGray-disabled"
57
+ },
58
+ tertiary: {
59
+ default: "btn-tertiary",
60
+ hover: "btn-tertiary-hover",
61
+ focus: "btn-tertiary-focus shadow-grayDark",
62
+ disabled: "btn-tertiary-disabled"
63
+ },
64
+ tertiaryGray: {
65
+ default: "btn-tertiaryGray",
66
+ hover: "btn-tertiaryGray-hover",
67
+ focus: "btn-tertiaryGray-focus shadow-grayDark",
68
+ disabled: "btn-tertiaryGray-disabled"
69
+ }
70
+ };
71
+ const buttonSizeClasses = {
72
+ sm: "btn-sm",
73
+ md: "btn-md",
74
+ lg: "btn-lg",
75
+ xl: "btn-xl",
76
+ "2xl": "btn-2xl"
77
+ };
78
+ const buttonIconSizeClasses = {
79
+ sm: "btn-icon-sm",
80
+ md: "btn-icon-md",
81
+ lg: "btn-icon-lg",
82
+ xl: "btn-icon-xl",
83
+ "2xl": "btn-icon-2xl"
84
+ };
85
+ const Button = _ref => {
86
+ let {
87
+ children,
88
+ className,
89
+ variant = "primary",
90
+ size = "md",
91
+ disabled,
92
+ LeadingIcon,
93
+ TrailingIcon,
94
+ IconOnly,
95
+ ...buttonProps
96
+ } = _ref;
97
+ const buttonVariantClassName = buttonVariantClasses[variant];
98
+ const buttonIconSizeClassName = buttonIconSizeClasses[size];
99
+ const setIconSize = (icon, iconSize) => {
100
+ if (/*#__PURE__*/isValidElement(icon) && "size" in icon.props) {
101
+ return /*#__PURE__*/cloneElement(icon, {
102
+ size: 20
103
+ });
104
+ }
105
+ return icon;
106
+ };
107
+ const setClassName = (icon, additionalClass) => {
108
+ return /*#__PURE__*/isValidElement(icon) ? /*#__PURE__*/cloneElement(icon, {
109
+ className: classNames(icon.props.className, additionalClass)
110
+ }) : icon;
111
+ };
112
+ return /*#__PURE__*/React.createElement("button", Object.assign({
113
+ type: "button",
114
+ className: classNames("btn-base", className, {
115
+ [buttonSizeClasses[size]]: !IconOnly,
116
+ [classNames(buttonIconSizeClassName, "justify-center")]: IconOnly,
117
+ [classNames(buttonVariantClassName.default, buttonVariantClassName.hover, buttonVariantClassName.focus)]: !disabled,
118
+ [classNames(buttonVariantClassName.disabled, "cursor-not-allowed")]: disabled
119
+ })
120
+ }, buttonProps), LeadingIcon && (/*#__PURE__*/React.createElement("span", null, setClassName(LeadingIcon, classNames({
121
+ "mr-2": size !== "2xl",
122
+ "mr-3": size === "2xl"
123
+ })))), children, IconOnly && (/*#__PURE__*/React.createElement("span", null, setIconSize(IconOnly))), TrailingIcon && (/*#__PURE__*/React.createElement("span", null, setClassName(TrailingIcon, classNames({
124
+ "ml-2": size !== "2xl",
125
+ "ml-3": size === "2xl"
126
+ })))));
127
+ };
128
+
129
+ const ButtonGroup = _ref => {
130
+ let {
131
+ options,
132
+ activeOption,
133
+ setActiveOption
134
+ } = _ref;
135
+ return /*#__PURE__*/React.createElement("div", null, options.map((option, index) => (/*#__PURE__*/React.createElement("button", {
136
+ key: option.value,
137
+ className: classNames("inline-flex whitespace-nowrap items-center h-10 px-4 font-medium text-center text-sm focus:outline-none hover:bg-gray-50 dark:hover:bg-gray-700 text-gray-700 dark:text-white border border-gray-300 dark:border-gray-500", {
138
+ "rounded-l-lg": index === 0,
139
+ "rounded-r-lg": index === options.length - 1,
140
+ "bg-gray-50 dark:bg-gray-700": activeOption === option.value,
141
+ "border-r-0": index !== 0 && index !== options.length - 1
142
+ }),
143
+ onClick: () => setActiveOption(option.value)
144
+ }, option.content))));
145
+ };
146
+
147
+ const ColorBox = _ref => {
148
+ let {
149
+ code,
150
+ hex,
151
+ bgClass
152
+ } = _ref;
153
+ return /*#__PURE__*/React.createElement("div", {
154
+ key: bgClass,
155
+ className: "flex flex-col rounded-lg shadow-lg w-26 h-39 dark:bg-white"
156
+ }, /*#__PURE__*/React.createElement("div", {
157
+ className: `h-20 ${bgClass} rounded-t-lg`
158
+ }), /*#__PURE__*/React.createElement("div", {
159
+ className: "mx-3 my-3"
160
+ }, code, /*#__PURE__*/React.createElement("br", null), hex));
161
+ };
162
+
163
+ const Paginate = _ref => {
164
+ let {
165
+ totalPages,
166
+ page,
167
+ isMobile,
168
+ className,
169
+ setPage
170
+ } = _ref;
171
+ const handlePageChange = page => {
172
+ setPage(page);
173
+ };
174
+ const ArrowLeft = FiArrowLeft;
175
+ const ArrowRight = FiArrowRight;
176
+ if (isMobile) {
177
+ return /*#__PURE__*/React.createElement("div", {
178
+ className: classNames("flex w-full h-10 items-center", className)
179
+ }, /*#__PURE__*/React.createElement(ArrowLeft, {
180
+ size: 20,
181
+ className: classNames("mr-3 text-gray-500 dark:text-white", {
182
+ "cursor-pointer": page !== 0,
183
+ "opacity-50": page === 0
184
+ }),
185
+ onClick: () => {
186
+ if (page > 0) {
187
+ handlePageChange(page - 1);
188
+ }
189
+ }
190
+ }), /*#__PURE__*/React.createElement("div", {
191
+ className: "flex justify-center flex-grow text-sm text-gray-700 select-none dark:text-white"
192
+ }, `Page ${page} of ${totalPages}`), /*#__PURE__*/React.createElement(ArrowRight, {
193
+ size: 20,
194
+ className: classNames("ml-3 text-gray-500 dark:text-white", {
195
+ "cursor-pointer": page !== totalPages - 1,
196
+ "opacity-50": page === totalPages - 1
197
+ }),
198
+ onClick: () => {
199
+ if (page < totalPages - 1) {
200
+ handlePageChange(page + 1);
201
+ }
202
+ }
203
+ }));
204
+ }
205
+ return /*#__PURE__*/React.createElement(Pagination, {
206
+ className: classNames("flex w-full items-center h-10 text-sm select-none", className),
207
+ currentPage: page,
208
+ totalPages: totalPages,
209
+ edgePageCount: 2,
210
+ setCurrentPage: handlePageChange,
211
+ truncableText: "...",
212
+ middlePagesSiblingCount: 2,
213
+ truncableClassName: "w-10 px-0.5 text-center dark:text-gray-500"
214
+ }, /*#__PURE__*/React.createElement(Pagination.PrevButton, {
215
+ className: classNames("h-10 font-medium flex items-center mr-2 text-gray-500 dark:text-white hover:text-gray-600 dark:hover:text-gray-200 focus:outline-none", {
216
+ "cursor-pointer": page !== 0,
217
+ "opacity-50": page === 0
218
+ })
219
+ }, /*#__PURE__*/React.createElement(ArrowLeft, {
220
+ size: 20,
221
+ className: classNames("mr-3")
222
+ }), "Previous"), /*#__PURE__*/React.createElement("div", {
223
+ className: "flex items-center justify-center flex-grow list-none"
224
+ }, /*#__PURE__*/React.createElement(Pagination.PageButton, {
225
+ activeClassName: "bg-primary-50 dark:bg-opacity-0 text-primary-600 dark:text-white",
226
+ inactiveClassName: "text-gray-500",
227
+ className: "flex items-center justify-center h-10 w-10 rounded-full cursor-pointer font-medium"
228
+ })), /*#__PURE__*/React.createElement(Pagination.NextButton, {
229
+ className: classNames("h-10 font-medium flex items-center mr-2 text-gray-500 dark:text-white hover:text-gray-600 dark:hover:text-gray-200 focus:outline-none", {
230
+ "cursor-pointer": page !== totalPages - 1,
231
+ "opacity-50": page === totalPages - 1
232
+ })
233
+ }, "Next", /*#__PURE__*/React.createElement(ArrowRight, {
234
+ size: 20,
235
+ className: classNames("ml-3")
236
+ })));
237
+ };
238
+
239
+ const Select = _ref => {
240
+ let {
241
+ options,
242
+ selectedOption,
243
+ setSelectedOption,
244
+ placeholder,
245
+ LeadingIcon,
246
+ width
247
+ } = _ref;
248
+ const ArrowDown = FiChevronDown;
249
+ const Check = FiCheck;
250
+ const setProps = (icon, iconSize, additionalClass) => {
251
+ if (/*#__PURE__*/isValidElement(icon) && "size" in icon.props) {
252
+ return /*#__PURE__*/cloneElement(icon, {
253
+ size: iconSize,
254
+ className: classNames(icon.props.className, additionalClass)
255
+ });
256
+ }
257
+ return icon;
258
+ };
259
+ return /*#__PURE__*/React.createElement("div", {
260
+ className: classNames("relative inline-block", width)
261
+ }, /*#__PURE__*/React.createElement(Listbox, {
262
+ value: selectedOption && selectedOption.value,
263
+ onChange: setSelectedOption
264
+ }, _ref2 => {
265
+ let {
266
+ open
267
+ } = _ref2;
268
+ return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(ListboxButton, {
269
+ className: classNames("shadow-sm flex items-center text-md border border-gray-300 dark:border-gray-500 h-11 px-3.5 rounded-lg bg-white dark:bg-gray-800", "focus:ring-4 focus:border-primary-300 dark:focus:border-gray-100 focus:ring-primary-100 dark:focus:ring-gray-100 dark:focus:ring-opacity-20 whitespace-nowrap", {
270
+ "text-gray-900 dark:text-white": selectedOption,
271
+ "text-gray-500 dark:text-gray-300": !selectedOption
272
+ }, width)
273
+ }, LeadingIcon && (/*#__PURE__*/React.createElement("div", {
274
+ className: "w-5 h-5 mr-2 overflow-hidden"
275
+ }, setProps(LeadingIcon, 20, classNames("text-gray-400")))), selectedOption ? selectedOption.label : placeholder, /*#__PURE__*/React.createElement(ArrowDown, {
276
+ size: 20,
277
+ className: classNames("text-gray-500 dark:text-gray-300 transform duration-100 ease-out", {
278
+ "-rotate-180": open,
279
+ "ml-auto": width,
280
+ "ml-3.5": !width
281
+ })
282
+ })), /*#__PURE__*/React.createElement(ListboxOptions, {
283
+ className: "absolute z-10 inline-flex flex-col w-full bg-white border border-gray-300 rounded-lg shadow-lg top-13 dark:border-gray-500 dark:bg-gray-800"
284
+ }, options === null || options === void 0 ? void 0 : options.map((option, index) => (/*#__PURE__*/React.createElement(ListboxOption, {
285
+ as: React.Fragment,
286
+ key: option.value,
287
+ value: option.value
288
+ }, _ref3 => {
289
+ let {
290
+ focus,
291
+ selected
292
+ } = _ref3;
293
+ return /*#__PURE__*/React.createElement("li", {
294
+ className: classNames(classNames("flex items-center pl-3.5 pr-3 justify-between h-11 text-gray-900 dark:text-white text-md cursor-pointer hover:bg-primary-25 dark:hover:bg-gray-100 dark:hover:bg-opacity-10 whitespace-nowrap", {
295
+ "bg-primary-25 dark:bg-gray-100 dark:bg-opacity-10": focus,
296
+ "rounded-t-lg": index === 0,
297
+ "rounded-b-lg": index === options.length - 1
298
+ }))
299
+ }, /*#__PURE__*/React.createElement("div", {
300
+ className: "flex items-center"
301
+ }, option.label), selected && /*#__PURE__*/React.createElement(Check, {
302
+ className: "ml-5 text-primary-600 dark:text-white"
303
+ }));
304
+ })))));
305
+ }));
306
+ };
307
+
308
+ const TypographyVariantClasses = {
309
+ xs: "text-xs",
310
+ sm: "text-sm",
311
+ md: "text-md",
312
+ lg: "text-lg",
313
+ xl: "text-xl",
314
+ h6: "text-h6",
315
+ h5: "text-h5",
316
+ h4: "text-h4",
317
+ h3: "text-h3",
318
+ h2: "text-h2",
319
+ h1: "text-h1"
320
+ };
321
+ const TypographyWeightClasses = {
322
+ regular: "font-normal",
323
+ medium: "font-medium",
324
+ semibold: "font-semibold",
325
+ bold: "font-bold"
326
+ };
327
+ const Typography = _ref => {
328
+ let {
329
+ variant = "md",
330
+ customWeight = "regular",
331
+ customColor,
332
+ className,
333
+ children
334
+ } = _ref;
335
+ const TypographyVariantClassName = TypographyVariantClasses[variant];
336
+ const TypographyWeightClassName = TypographyWeightClasses[customWeight];
337
+ const Component = ["h1", "h2", "h3", "h4", "h5", "h6"].includes(variant ?? "p") ? variant : "p";
338
+ return /*#__PURE__*/React.createElement(Component, {
339
+ className: classNames(TypographyVariantClassName, TypographyWeightClassName, className, {
340
+ "tracking-tight": ["h1", "h2", "h3"].includes(variant),
341
+ "text-black dark:text-white": !customColor
342
+ }, customColor)
343
+ }, children);
344
+ };
345
+
346
+ const useIconClassName = () => {
347
+ const setClassName = (icon, additionalClass) => {
348
+ return /*#__PURE__*/isValidElement(icon) ? /*#__PURE__*/cloneElement(icon, {
349
+ className: classNames(icon.props.className, additionalClass)
350
+ }) : icon;
351
+ };
352
+ return {
353
+ setClassName
354
+ };
355
+ };
356
+
357
+ const TextInput = _ref => {
358
+ let {
359
+ type,
360
+ value,
361
+ label,
362
+ placeholder,
363
+ error,
364
+ helperText,
365
+ disabled,
366
+ LeadingIcon,
367
+ TrailingIcon,
368
+ leadingText,
369
+ handleChange
370
+ } = _ref;
371
+ const {
372
+ setClassName
373
+ } = useIconClassName();
374
+ return /*#__PURE__*/React.createElement("div", null, label && (/*#__PURE__*/React.createElement(Typography, {
375
+ variant: "sm",
376
+ customWeight: "medium",
377
+ customColor: "text-gray-700 dark:text-white",
378
+ className: "mb-1.5"
379
+ }, label)), /*#__PURE__*/React.createElement("div", {
380
+ className: classNames("relative", {
381
+ "flex items-center": leadingText
382
+ })
383
+ }, /*#__PURE__*/React.createElement("div", {
384
+ className: "h-11 absolute shadow-sm rounded-lg w-full flex justify-between items-center px-3.5 pointer-events-none"
385
+ }, LeadingIcon ? setClassName(LeadingIcon, "text-gray-500") : /*#__PURE__*/React.createElement("div", null), TrailingIcon && setClassName(TrailingIcon, classNames({
386
+ "text-error-500": error,
387
+ "text-gray-400": !error
388
+ }))), leadingText && (/*#__PURE__*/React.createElement(Typography, {
389
+ variant: "sm",
390
+ customWeight: "regular",
391
+ className: classNames("flex items-center h-11 text-lg text-gray-500 pl-3.5 pr-3 border border-r-0 rounded-l-lg border-gray-300 dark:border-gray-500", {
392
+ "bg-gray-50 dark:bg-gray-700": disabled,
393
+ "dark:bg-gray-800": !disabled
394
+ })
395
+ }, leadingText)), /*#__PURE__*/React.createElement("input", {
396
+ type: type,
397
+ value: value,
398
+ placeholder: placeholder,
399
+ onChange: handleChange,
400
+ disabled: disabled,
401
+ className: classNames("w-full select-none text-gray-900 dark:text-white text-md border h-11 px-2", {
402
+ "pl-9": LeadingIcon,
403
+ "pr-9": TrailingIcon,
404
+ "rounded-l-0 rounded-r-lg": leadingText,
405
+ "rounded-lg": !leadingText,
406
+ "border-gray-300 dark:border-gray-500 focus:ring-4 focus:border-primary-300 dark:focus:border-gray-100 focus:ring-primary-100 dark:focus:ring-gray-100 dark:focus:ring-opacity-20": !error,
407
+ "border-error-300 focus:ring-4 focus:border-error-300 focus:ring-error-100": error,
408
+ "bg-white dark:bg-gray-800": !disabled,
409
+ "bg-gray-50 dark:bg-gray-700": disabled
410
+ })
411
+ })), error && (/*#__PURE__*/React.createElement(Typography, {
412
+ variant: "sm",
413
+ customWeight: "regular",
414
+ className: "mt-1.5 text-error-500"
415
+ }, error)), helperText && (/*#__PURE__*/React.createElement(Typography, {
416
+ variant: "sm",
417
+ customWeight: "regular",
418
+ className: "mt-1.5 text-gray-500"
419
+ }, helperText)));
420
+ };
421
+
422
+ const SubNavItem = _ref => {
423
+ let {
424
+ inDropdown,
425
+ isActive,
426
+ subItem,
427
+ onClick
428
+ } = _ref;
429
+ return /*#__PURE__*/React.createElement("li", {
430
+ key: subItem.label,
431
+ className: classNames("navItem group", {
432
+ "bg-primary-50 dark:bg-gray-100 dark:bg-opacity-10": isActive
433
+ }),
434
+ onClick: onClick
435
+ }, /*#__PURE__*/React.createElement(Typography, {
436
+ variant: "md",
437
+ customWeight: "medium",
438
+ customColor: classNames("group-hover:text-primary-600 dark:group-hover:text-white", {
439
+ "text-gray-800 dark:text-white": !isActive,
440
+ "text-primary-600 dark:text-white": isActive
441
+ }),
442
+ className: classNames("flex-grow", {
443
+ "pl-13": !inDropdown,
444
+ "pl-4": inDropdown
445
+ })
446
+ }, subItem.label));
447
+ };
448
+
449
+ const useIconProps = () => {
450
+ const setProps = (icon, iconSize, additionalClass) => {
451
+ return /*#__PURE__*/isValidElement(icon) ? /*#__PURE__*/cloneElement(icon, {
452
+ size: iconSize,
453
+ className: classNames(icon.props.className, additionalClass)
454
+ }) : icon;
455
+ };
456
+ return {
457
+ setProps
458
+ };
459
+ };
460
+
461
+ const NavItem = _ref => {
462
+ let {
463
+ item,
464
+ isActive,
465
+ activeSubNavItem,
466
+ open,
467
+ openDropdown,
468
+ onClick
469
+ } = _ref;
470
+ const {
471
+ setProps
472
+ } = useIconProps();
473
+ const ArrowDown = FiChevronDown;
474
+ return /*#__PURE__*/React.createElement(Popover, {
475
+ key: item.label,
476
+ className: "relative"
477
+ }, /*#__PURE__*/React.createElement(PopoverButton, {
478
+ as: React.Fragment
479
+ }, /*#__PURE__*/React.createElement("li", {
480
+ className: classNames("navItem group", {
481
+ "px-4": open,
482
+ "ml-2 px-2 w-10": !open,
483
+ "bg-primary-50 dark:bg-gray-100 dark:bg-opacity-10": isActive
484
+ }),
485
+ onClick: () => onClick(item)
486
+ }, setProps(item.icon, 24, classNames("group-hover:text-primary-600 dark:group-hover:text-white dark:text-white transform duration-100 ease-out", {
487
+ "-rotate-180": item.toggleSidebar && !open,
488
+ "text-gray-900": !isActive,
489
+ "text-primary-600 dark:text-white": isActive
490
+ })), /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(Typography, {
491
+ variant: "md",
492
+ customWeight: "medium",
493
+ className: classNames("flex-grow ml-3", {
494
+ "opacity-0 hidden": !open
495
+ }),
496
+ customColor: classNames("group-hover:text-primary-600 dark:group-hover:text-white", {
497
+ "text-gray-800 dark:text-white": !isActive,
498
+ "text-primary-600 dark:text-white": isActive
499
+ })
500
+ }, item.label), item.subItems && item.subItems.length > 0 ? (/*#__PURE__*/React.createElement(ArrowDown, {
501
+ size: 20,
502
+ className: classNames("group-hover:text-primary-600 dark:group-hover:text-white transform duration-100 ease-out", {
503
+ "opacity-0 hidden": !open,
504
+ "text-gray-400": !isActive,
505
+ "text-primary-600 dark:text-white": isActive,
506
+ "-rotate-180": openDropdown
507
+ })
508
+ })) : null))), openDropdown && open && item.subItems && item.subItems.length > 0 ? (/*#__PURE__*/React.createElement("div", {
509
+ className: "my-2 space-y-1"
510
+ }, item.subItems.map(subItem => (/*#__PURE__*/React.createElement(SubNavItem, {
511
+ key: subItem.label,
512
+ isActive: activeSubNavItem === subItem.label,
513
+ subItem: subItem,
514
+ onClick: () => onClick(item, subItem.label)
515
+ }))))) : null, !open && item.subItems && item.subItems.length > 0 ? (/*#__PURE__*/React.createElement(PopoverPanel, {
516
+ className: "absolute z-50 px-4 py-3 ml-5 space-y-1 bg-white rounded-lg shadow-md -top-3 left-19 w-58 dark:bg-gray-900"
517
+ }, item.subItems.map(subItem => (/*#__PURE__*/React.createElement(SubNavItem, {
518
+ key: subItem.label,
519
+ inDropdown: true,
520
+ isActive: activeSubNavItem === subItem.label,
521
+ subItem: subItem,
522
+ onClick: () => onClick(item, subItem.label)
523
+ }))))) : null);
524
+ };
525
+
526
+ // Development images
527
+ // const devImages: Record<image, string> = {
528
+ // logo: require("./logo.png"),
529
+ // IN: require("./in.svg"),
530
+ // BE: require("./be.svg"),
531
+ // DE: require("./de.svg"),
532
+ // FR: require("./fr.svg"),
533
+ // IT: require("./it.svg"),
534
+ // NL: require("./nl.svg"),
535
+ // RU: require("./ru.svg"),
536
+ // US: require("./us.svg"),
537
+ // };
538
+ // Production images (CDN)
539
+ const prodImages = {
540
+ logo: "https://media-hosting.imagekit.io/0ec1ca8b900e4e8b/logo.svg?Expires=1838348369&Key-Pair-Id=K2ZIVPTIP2VGHC&Signature=pCHsmoIdugCAGgRQuivkSFGORbcd0DMZjw-l9LQlxqEs77-19RpmN8TrGsMdYdKwLic46nDsKt44NPaRyu~mxJDKX7I0acu5x53nLqrjh-fs6s8VATv5eHASNeV83rLF3LXgXwMkXubchLy79xPaEHKlRlvJgcqrjZd3cE4C8QXC0KIG4dSjtkd0rECwtweKFuh1BrJIwcKIxiu5cEJUKgDvi4TUS22KVFh4c52c9CjBGa0ulrxxyZHMj2eXff-uQBkecyW-QYillwmsuz2i5PFf6Ud~9JZ2xYOBWwrq4VRSY-8p~c6Czqagg-w6gqyk-3xEM-f-cDfor~11~xwtTg__",
541
+ IN: "https://kapowaz.github.io/circle-flags/flags/in.svg",
542
+ BE: "https://kapowaz.github.io/circle-flags/flags/be.svg",
543
+ DE: "https://kapowaz.github.io/circle-flags/flags/de.svg",
544
+ FR: "https://kapowaz.github.io/circle-flags/flags/fr.svg",
545
+ IT: "https://kapowaz.github.io/circle-flags/flags/it.svg",
546
+ NL: "https://kapowaz.github.io/circle-flags/flags/nl.svg",
547
+ RU: "https://kapowaz.github.io/circle-flags/flags/ru.svg",
548
+ US: "https://kapowaz.github.io/circle-flags/flags/us.svg"
549
+ };
550
+ const images = prodImages;
551
+ // export const images = process.env.NODE_ENV === "production" ? prodImages : devImages;
552
+
553
+ const renderLogo = () => (/*#__PURE__*/React.createElement("img", {
554
+ src: images.logo,
555
+ className: "w-8 h-8 select-none",
556
+ alt: "logo"
557
+ }));
558
+ const SideNav = _ref => {
559
+ let {
560
+ className,
561
+ navItemsTop,
562
+ navItemsBottom,
563
+ username,
564
+ email,
565
+ open,
566
+ setOpen
567
+ } = _ref;
568
+ const Logout = FiLogOut;
569
+ const Search = FiSearch;
570
+ const [searchString, setSearchString] = React.useState("");
571
+ const [activeNavItem, setActiveNavItem] = React.useState("");
572
+ const [activeSubNavItem, setActiveSubNavItem] = React.useState("");
573
+ const [openDropdowns, setOpenDropdowns] = React.useState([]);
574
+ const handleSearch = e => {
575
+ setSearchString(e.target.value);
576
+ };
577
+ const onClickNavItem = (item, subNavPath) => {
578
+ if (subNavPath) {
579
+ setActiveSubNavItem(subNavPath);
580
+ }
581
+ if (!item.toggleSidebar) {
582
+ setActiveNavItem(item.label);
583
+ } else if (item.toggleSidebar) {
584
+ setOpen(!open);
585
+ }
586
+ if (item.subItems && openDropdowns.includes(item.label) && !subNavPath) {
587
+ setOpenDropdowns(openDropdowns.filter(dropdownItem => dropdownItem !== item.label));
588
+ } else if (item.subItems && !openDropdowns.includes(item.label)) {
589
+ setOpenDropdowns([...openDropdowns, item.label]);
590
+ }
591
+ };
592
+ return /*#__PURE__*/React.createElement("div", {
593
+ className: classNames("py-6 flex flex-col flex-grow bg-white dark:bg-gray-900 transform ease-out duration-100 overflow-y-auto xs:overflow-y-visible", {
594
+ "w-80": open,
595
+ "w-24": !open,
596
+ "border-r border-gray-300 dark:border-opacity-20": true
597
+ }, className)
598
+ }, /*#__PURE__*/React.createElement("div", {
599
+ className: "flex items-center w-full mb-8 ml-9"
600
+ }, renderLogo(), /*#__PURE__*/React.createElement(Typography, {
601
+ variant: "xl",
602
+ className: classNames("ml-2.5 whitespace-nowrap select-none", {
603
+ "opacity-0 hidden": !open
604
+ }),
605
+ customWeight: "medium"
606
+ }, "Box UI")), /*#__PURE__*/React.createElement("div", {
607
+ className: "mb-8 mx-9"
608
+ }, open ? (/*#__PURE__*/React.createElement(TextInput, {
609
+ type: "text",
610
+ value: searchString,
611
+ handleChange: handleSearch,
612
+ placeholder: "Search",
613
+ LeadingIcon: /*#__PURE__*/React.createElement(Search, null)
614
+ })) : (/*#__PURE__*/React.createElement("div", {
615
+ className: "h-11"
616
+ }))), /*#__PURE__*/React.createElement("div", {
617
+ className: classNames("flex flex-col justify-between h-full ml-5 w-70", {
618
+ "w-14": !open
619
+ })
620
+ }, /*#__PURE__*/React.createElement("ul", {
621
+ className: "flex flex-col space-y-1"
622
+ }, navItemsTop.map(item => (/*#__PURE__*/React.createElement(NavItem, {
623
+ key: item.label,
624
+ item: item,
625
+ isActive: activeNavItem === item.label,
626
+ activeSubNavItem: activeSubNavItem,
627
+ open: open,
628
+ openDropdown: openDropdowns.includes(item.label),
629
+ onClick: onClickNavItem
630
+ })))), /*#__PURE__*/React.createElement("ul", {
631
+ className: "flex flex-col mb-6 space-y-1"
632
+ }, navItemsBottom.map(item => (/*#__PURE__*/React.createElement(NavItem, {
633
+ key: item.label,
634
+ item: item,
635
+ isActive: activeNavItem === item.label,
636
+ activeSubNavItem: activeSubNavItem,
637
+ open: open,
638
+ openDropdown: openDropdowns.includes(item.label),
639
+ onClick: onClickNavItem
640
+ }))))), /*#__PURE__*/React.createElement("hr", {
641
+ className: classNames("ml-5 border-t border-gray-300 dark:border-opacity-20", {
642
+ "w-70": open,
643
+ "w-14": !open
644
+ })
645
+ }), /*#__PURE__*/React.createElement("div", {
646
+ className: "flex mt-6 w-70 ml-7"
647
+ }, open ? (/*#__PURE__*/React.createElement("div", {
648
+ className: "flex justify-between ml-3"
649
+ }, /*#__PURE__*/React.createElement("div", {
650
+ className: "select-none"
651
+ }, /*#__PURE__*/React.createElement(Typography, {
652
+ variant: "sm",
653
+ customWeight: "medium",
654
+ customColor: "text-gray-700 dark:text-white"
655
+ }, username), /*#__PURE__*/React.createElement(Typography, {
656
+ variant: "sm",
657
+ customColor: "text-gray-500"
658
+ }, email)), /*#__PURE__*/React.createElement(Logout, {
659
+ size: 24,
660
+ className: "ml-6 text-gray-400 cursor-pointer"
661
+ }))) : null));
662
+ };
663
+
664
+ const MobileNavbar = _ref => {
665
+ let {
666
+ open,
667
+ toggleOpen
668
+ } = _ref;
669
+ return /*#__PURE__*/React.createElement("div", {
670
+ className: "z-40 flex items-center justify-between h-20 py-6 bg-white shadow-md dark:bg-gray-900 px-9"
671
+ }, renderLogo(), /*#__PURE__*/React.createElement(Typography, {
672
+ variant: "h6",
673
+ customWeight: "medium",
674
+ className: "select-none"
675
+ }, "Box UI"), /*#__PURE__*/React.createElement("svg", {
676
+ width: "32",
677
+ height: "32",
678
+ viewBox: "0 0 32 32",
679
+ xmlns: "http://www.w3.org/2000/svg",
680
+ className: classNames("text-gray-500 transition-all duration-100 ease-out cursor-pointer stroke-current hover:text-gray-900 dark:text-white dark:hover:text-gray-200", {
681
+ "opacity-0": open
682
+ }),
683
+ onClick: toggleOpen
684
+ }, /*#__PURE__*/React.createElement("path", {
685
+ d: "M4 16H22.6667M4 8H28M4 24H28",
686
+ strokeWidth: "2",
687
+ strokeLinecap: "round",
688
+ strokeLinejoin: "round"
689
+ })));
690
+ };
691
+
692
+ const colors = [{
693
+ bgClass: "bg-gray-2",
694
+ code: 25,
695
+ hex: "#FCFCF"
696
+ }, {
697
+ bgClass: "bg-gray-50",
698
+ code: 50,
699
+ hex: "#F9FAFB"
700
+ }, {
701
+ bgClass: "bg-gray-100",
702
+ code: 100,
703
+ hex: "#F2F4F7"
704
+ }, {
705
+ bgClass: "bg-gray-200",
706
+ code: 200,
707
+ hex: "#E4E7EC"
708
+ }, {
709
+ bgClass: "bg-gray-300",
710
+ code: 300,
711
+ hex: "#D0D5DD"
712
+ }, {
713
+ bgClass: "bg-gray-400",
714
+ code: 400,
715
+ hex: "#98A2B3"
716
+ }, {
717
+ bgClass: "bg-gray-500",
718
+ code: 500,
719
+ hex: "#667085"
720
+ }, {
721
+ bgClass: "bg-gray-600",
722
+ code: 600,
723
+ hex: "#475467"
724
+ }, {
725
+ bgClass: "bg-gray-700",
726
+ code: 700,
727
+ hex: "#344054"
728
+ }, {
729
+ bgClass: "bg-gray-800",
730
+ code: 800,
731
+ hex: "#1D2939"
732
+ }, {
733
+ bgClass: "bg-gray-900",
734
+ code: 900,
735
+ hex: "#101828"
736
+ }, {
737
+ bgClass: "bg-primary-25",
738
+ code: 25,
739
+ hex: "#F5FAFF"
740
+ }, {
741
+ bgClass: "bg-primary-50",
742
+ code: 50,
743
+ hex: "#EFF8FF"
744
+ }, {
745
+ bgClass: "bg-primary-100",
746
+ code: 100,
747
+ hex: "#D1E9FF"
748
+ }, {
749
+ bgClass: "bg-primary-200",
750
+ code: 200,
751
+ hex: "#B2DDFF"
752
+ }, {
753
+ bgClass: "bg-primary-300",
754
+ code: 300,
755
+ hex: "#84CAFF"
756
+ }, {
757
+ bgClass: "bg-primary-400",
758
+ code: 400,
759
+ hex: "#53B1FD"
760
+ }, {
761
+ bgClass: "bg-primary-500",
762
+ code: 500,
763
+ hex: "#2E90FA"
764
+ }, {
765
+ bgClass: "bg-primary-600",
766
+ code: 600,
767
+ hex: "#1570EF"
768
+ }, {
769
+ bgClass: "bg-primary-700",
770
+ code: 700,
771
+ hex: "#175CD3"
772
+ }, {
773
+ bgClass: "bg-primary-800",
774
+ code: 800,
775
+ hex: "#1849A9"
776
+ }, {
777
+ bgClass: "bg-primary-900",
778
+ code: 900,
779
+ hex: "#194185"
780
+ }, {
781
+ bgClass: "bg-error-25",
782
+ code: 25,
783
+ hex: "#FFFBFA"
784
+ }, {
785
+ bgClass: "bg-error-50",
786
+ code: 50,
787
+ hex: "#FEF3F2"
788
+ }, {
789
+ bgClass: "bg-error-100",
790
+ code: 100,
791
+ hex: "#FEE4E2"
792
+ }, {
793
+ bgClass: "bg-error-200",
794
+ code: 200,
795
+ hex: "#FECDCA"
796
+ }, {
797
+ bgClass: "bg-error-300",
798
+ code: 300,
799
+ hex: "#FDA29B"
800
+ }, {
801
+ bgClass: "bg-error-400",
802
+ code: 400,
803
+ hex: "#F97066"
804
+ }, {
805
+ bgClass: "bg-error-500",
806
+ code: 500,
807
+ hex: "#F04438"
808
+ }, {
809
+ bgClass: "bg-error-600",
810
+ code: 600,
811
+ hex: "#D92D20"
812
+ }, {
813
+ bgClass: "bg-error-700",
814
+ code: 700,
815
+ hex: "#B42318"
816
+ }, {
817
+ bgClass: "bg-error-800",
818
+ code: 800,
819
+ hex: "#912018"
820
+ }, {
821
+ bgClass: "bg-error-900",
822
+ code: 900,
823
+ hex: "#7A271A"
824
+ }, {
825
+ bgClass: "bg-warning-25",
826
+ code: 25,
827
+ hex: "#FFFCF5"
828
+ }, {
829
+ bgClass: "bg-warning-50",
830
+ code: 50,
831
+ hex: "#FFFAEB"
832
+ }, {
833
+ bgClass: "bg-warning-100",
834
+ code: 100,
835
+ hex: "#FEF0C7"
836
+ }, {
837
+ bgClass: "bg-warning-200",
838
+ code: 200,
839
+ hex: "#FEDF89"
840
+ }, {
841
+ bgClass: "bg-warning-300",
842
+ code: 300,
843
+ hex: "#FEC84B"
844
+ }, {
845
+ bgClass: "bg-warning-400",
846
+ code: 400,
847
+ hex: "#FDB022"
848
+ }, {
849
+ bgClass: "bg-warning-500",
850
+ code: 500,
851
+ hex: "#F79009"
852
+ }, {
853
+ bgClass: "bg-warning-600",
854
+ code: 600,
855
+ hex: "#DC6803"
856
+ }, {
857
+ bgClass: "bg-warning-700",
858
+ code: 700,
859
+ hex: "#B54708"
860
+ }, {
861
+ bgClass: "bg-warning-800",
862
+ code: 800,
863
+ hex: "#93370D"
864
+ }, {
865
+ bgClass: "bg-warning-900",
866
+ code: 900,
867
+ hex: "#7A2E0E"
868
+ }, {
869
+ bgClass: "bg-success-25",
870
+ code: 25,
871
+ hex: "#F6FEF9"
872
+ }, {
873
+ bgClass: "bg-success-50",
874
+ code: 50,
875
+ hex: "#ECFDF3"
876
+ }, {
877
+ bgClass: "bg-success-100",
878
+ code: 100,
879
+ hex: "#D1FADF"
880
+ }, {
881
+ bgClass: "bg-success-200",
882
+ code: 200,
883
+ hex: "#A6F4C5"
884
+ }, {
885
+ bgClass: "bg-success-300",
886
+ code: 300,
887
+ hex: "#6CE9A6"
888
+ }, {
889
+ bgClass: "bg-success-400",
890
+ code: 400,
891
+ hex: "#32D583"
892
+ }, {
893
+ bgClass: "bg-success-500",
894
+ code: 500,
895
+ hex: "#12B76A"
896
+ }, {
897
+ bgClass: "bg-success-600",
898
+ code: 600,
899
+ hex: "#039855"
900
+ }, {
901
+ bgClass: "bg-success-700",
902
+ code: 700,
903
+ hex: "#027A48"
904
+ }, {
905
+ bgClass: "bg-success-800",
906
+ code: 800,
907
+ hex: "#05603A"
908
+ }, {
909
+ bgClass: "bg-success-900",
910
+ code: 900,
911
+ hex: "#054F31"
912
+ }];
913
+
914
+ const countriesData = [{
915
+ city: "Ahmedabad",
916
+ countryISO: "IN"
917
+ }, {
918
+ city: "Amsterdam",
919
+ countryISO: "NL"
920
+ }, {
921
+ city: "Rome",
922
+ countryISO: "IT"
923
+ }, {
924
+ city: "Berlin",
925
+ countryISO: "DE"
926
+ }, {
927
+ city: "Paris",
928
+ countryISO: "FR"
929
+ }, {
930
+ city: "Washington",
931
+ countryISO: "US"
932
+ }, {
933
+ city: "Moscow",
934
+ countryISO: "RU"
935
+ }, {
936
+ city: "Brussels",
937
+ countryISO: "BE"
938
+ }];
939
+ const countries = /*#__PURE__*/countriesData.map(country => ({
940
+ value: country.countryISO,
941
+ label: (/*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("img", {
942
+ src: images[country.countryISO],
943
+ alt: country.countryISO.toLowerCase(),
944
+ className: "w-5 h-5 mr-2"
945
+ }), " ", `${country.city}, ${country.countryISO}`))
946
+ }));
947
+
948
+ const prices = [{
949
+ label: "Any price",
950
+ value: "-1"
951
+ }, {
952
+ label: "Below 50",
953
+ value: "0"
954
+ }, {
955
+ label: "50 - 100",
956
+ value: "50"
957
+ }, {
958
+ label: "100 - 200",
959
+ value: "100"
960
+ }, {
961
+ label: "200 - 300",
962
+ value: "200"
963
+ }, {
964
+ label: "300 - 400",
965
+ value: "300"
966
+ }, {
967
+ label: "400 - 500",
968
+ value: "400"
969
+ }, {
970
+ label: "500 - 600",
971
+ value: "500"
972
+ }];
973
+
974
+ const Home = FiHome;
975
+ const Layers = FiLayers;
976
+ const Settings = FiSettings;
977
+ const Flag = FiFlag;
978
+ const MapPin = FiMapPin;
979
+ const CheckSquare = FiCheckSquare;
980
+ const BarChart = FiBarChart2;
981
+ const ArrowLeft = FiArrowLeft;
982
+ const navItemsTop = [{
983
+ order: 0,
984
+ path: "home",
985
+ label: "Home",
986
+ icon: /*#__PURE__*/React.createElement(Home, null)
987
+ }, {
988
+ order: 1,
989
+ path: "dashboard",
990
+ label: "Dashboard",
991
+ icon: /*#__PURE__*/React.createElement(BarChart, null),
992
+ subItems: [{
993
+ order: 0,
994
+ path: "analytics",
995
+ label: "Analytics"
996
+ }, {
997
+ order: 1,
998
+ path: "apps",
999
+ label: "Apps"
1000
+ }, {
1001
+ order: 2,
1002
+ path: "learn",
1003
+ label: "Learn"
1004
+ }]
1005
+ }, {
1006
+ order: 2,
1007
+ path: "projects",
1008
+ label: "Projects",
1009
+ icon: /*#__PURE__*/React.createElement(Layers, null)
1010
+ }, {
1011
+ order: 3,
1012
+ path: "tasks",
1013
+ label: "Tasks",
1014
+ icon: /*#__PURE__*/React.createElement(CheckSquare, null)
1015
+ }, {
1016
+ order: 4,
1017
+ path: "reporting",
1018
+ label: "Reporting",
1019
+ icon: /*#__PURE__*/React.createElement(Flag, null)
1020
+ }, {
1021
+ order: 5,
1022
+ path: "rentals",
1023
+ label: "Rentals",
1024
+ icon: /*#__PURE__*/React.createElement(MapPin, null),
1025
+ subItems: [{
1026
+ order: 0,
1027
+ path: "all",
1028
+ label: "All rentals"
1029
+ }, {
1030
+ order: 1,
1031
+ path: "popular",
1032
+ label: "Popular"
1033
+ }, {
1034
+ order: 2,
1035
+ path: "recent",
1036
+ label: "Recently added"
1037
+ }]
1038
+ }];
1039
+ const navItemsBottom = [{
1040
+ order: 0,
1041
+ path: "settings",
1042
+ label: "Settings",
1043
+ icon: /*#__PURE__*/React.createElement(Settings, null)
1044
+ }, {
1045
+ order: 1,
1046
+ label: "Close Navbar",
1047
+ icon: /*#__PURE__*/React.createElement(ArrowLeft, null),
1048
+ toggleSidebar: true
1049
+ }];
1050
+
1051
+ const Circle = FiCircle;
1052
+ const List = FiList;
1053
+ const Grid = FiGrid;
1054
+ const options1 = [{
1055
+ value: "Leading",
1056
+ content: "Leading"
1057
+ }, {
1058
+ value: "Middle",
1059
+ content: "Middle"
1060
+ }, {
1061
+ value: "Trailing",
1062
+ content: "Trailing"
1063
+ }];
1064
+ const options2 = [{
1065
+ value: "first",
1066
+ content: (/*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("span", null, /*#__PURE__*/React.createElement(Circle, {
1067
+ size: 20,
1068
+ className: 'mr-2'
1069
+ })), "First"))
1070
+ }, {
1071
+ value: "second",
1072
+ content: (/*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("span", null, /*#__PURE__*/React.createElement(Circle, {
1073
+ size: 20,
1074
+ className: 'mr-2'
1075
+ })), "Second"))
1076
+ }, {
1077
+ value: "third",
1078
+ content: (/*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("span", null, /*#__PURE__*/React.createElement(Circle, {
1079
+ size: 20,
1080
+ className: 'mr-2'
1081
+ })), "Third"))
1082
+ }];
1083
+ const options3 = [{
1084
+ value: 'list',
1085
+ content: /*#__PURE__*/React.createElement(List, {
1086
+ size: 20
1087
+ })
1088
+ }, {
1089
+ value: 'grid',
1090
+ content: /*#__PURE__*/React.createElement(Grid, {
1091
+ size: 20
1092
+ })
1093
+ }];
1094
+
1095
+ export { Badge, Button, ButtonGroup, ColorBox, MobileNavbar, Paginate, Select, SideNav, TextInput, Typography, colors, countries, images, navItemsBottom, navItemsTop, options1, options2, options3, prices, renderLogo };
1096
+ //# sourceMappingURL=box-ui.esm.js.map