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