@feminab/box-ui 0.1.0 → 0.1.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (188) hide show
  1. package/.storybook/main.ts +40 -2
  2. package/dist/@interfaces/Badge.d.d.ts.map +1 -1
  3. package/dist/@interfaces/Button.d.d.ts.map +1 -1
  4. package/dist/@interfaces/Color.d.d.ts.map +1 -1
  5. package/dist/@interfaces/IButtonItem.d.d.ts.map +1 -1
  6. package/dist/@interfaces/ISubNavItem.d.d.ts.map +1 -1
  7. package/dist/@interfaces/MobileNavProps.d.d.ts.map +1 -1
  8. package/dist/@interfaces/NavItem.d.d.ts.map +1 -1
  9. package/dist/@interfaces/Pagination.d.d.ts.map +1 -1
  10. package/dist/@interfaces/Select.d.d.ts.map +1 -1
  11. package/dist/@interfaces/SideNavProps.d.d.ts.map +1 -1
  12. package/dist/@interfaces/TextInput.d.d.ts.map +1 -1
  13. package/dist/@interfaces/index.d.ts.map +1 -1
  14. package/dist/Badge.d.ts.map +1 -1
  15. package/dist/Button.d.ts.map +1 -1
  16. package/dist/ButtonGroup.d.ts.map +1 -1
  17. package/dist/ColorBox.d.ts.map +1 -1
  18. package/dist/Header.d.ts.map +1 -1
  19. package/dist/Nav/MobileNav.d.ts.map +1 -1
  20. package/dist/Nav/NavItem.d.ts.map +1 -1
  21. package/dist/Nav/SideNav.d.ts.map +1 -1
  22. package/dist/Nav/SubNavItem.d.ts.map +1 -1
  23. package/dist/Paginate.d.ts.map +1 -1
  24. package/dist/Select.d.ts.map +1 -1
  25. package/dist/StoryLayout.d.ts.map +1 -1
  26. package/dist/TextInput.d.ts.map +1 -1
  27. package/dist/Typography.d.ts.map +1 -1
  28. package/dist/box-ui.cjs.development.js +17 -11
  29. package/dist/box-ui.cjs.development.js.map +1 -1
  30. package/dist/box-ui.cjs.production.min.js +1 -1
  31. package/dist/box-ui.cjs.production.min.js.map +1 -1
  32. package/dist/box-ui.esm.js +17 -11
  33. package/dist/box-ui.esm.js.map +1 -1
  34. package/dist/data/colors.d.ts.map +1 -1
  35. package/dist/data/countries.d.ts.map +1 -1
  36. package/dist/data/images/index.d.ts.map +1 -1
  37. package/dist/data/index.d.ts.map +1 -1
  38. package/dist/data/navItems.d.ts.map +1 -1
  39. package/dist/data/options.d.ts.map +1 -1
  40. package/dist/data/prices.d.ts.map +1 -1
  41. package/dist/hooks/useIconClassName.d.ts.map +1 -1
  42. package/dist/hooks/useIconProps.d.ts.map +1 -1
  43. package/dist/index.d.ts.map +1 -1
  44. package/dist/jest.config.d.ts +9 -0
  45. package/dist/jest.config.d.ts.map +1 -0
  46. package/dist/reportWebVitals.d.ts.map +1 -1
  47. package/dist/setupTests.d.ts.map +1 -1
  48. package/dist/stories/Badge.stories.d.ts +3 -4
  49. package/dist/stories/Badge.stories.d.ts.map +1 -1
  50. package/dist/stories/Button.stories.d.ts +3 -4
  51. package/dist/stories/Button.stories.d.ts.map +1 -1
  52. package/dist/stories/ButtonGroup.stories.d.ts +4 -4
  53. package/dist/stories/ButtonGroup.stories.d.ts.map +1 -1
  54. package/dist/stories/Colors.stories.d.ts +3 -3
  55. package/dist/stories/Colors.stories.d.ts.map +1 -1
  56. package/dist/stories/MobileNav.stories.d.ts +3 -4
  57. package/dist/stories/MobileNav.stories.d.ts.map +1 -1
  58. package/dist/stories/Paginate.stories.d.ts +3 -4
  59. package/dist/stories/Paginate.stories.d.ts.map +1 -1
  60. package/dist/stories/Select.stories.d.ts +3 -4
  61. package/dist/stories/Select.stories.d.ts.map +1 -1
  62. package/dist/stories/SideNav.stories.d.ts +3 -4
  63. package/dist/stories/SideNav.stories.d.ts.map +1 -1
  64. package/dist/stories/TextInput.stories.d.ts +3 -4
  65. package/dist/stories/TextInput.stories.d.ts.map +1 -1
  66. package/dist/stories/Typography.stories.d.ts +4 -4
  67. package/dist/stories/Typography.stories.d.ts.map +1 -1
  68. package/dist/utils/IconWrapper.d.ts +8 -0
  69. package/dist/utils/IconWrapper.d.ts.map +1 -0
  70. package/jest.config.js +13 -0
  71. package/jest.setup.ts +3 -0
  72. package/netlify.toml +3 -0
  73. package/package.json +24 -26
  74. package/src/Nav/MobileNav.tsx +2 -0
  75. package/src/Nav/SideNav.tsx +1 -0
  76. package/src/Paginate.tsx +2 -0
  77. package/src/Select.tsx +1 -1
  78. package/src/TextInput.tsx +23 -27
  79. package/src/index.js +1 -1
  80. package/src/stories/Badge.stories.tsx +6 -8
  81. package/src/stories/Button.stories.tsx +21 -8
  82. package/src/stories/ButtonGroup.stories.tsx +48 -48
  83. package/src/stories/Colors.stories.tsx +2 -4
  84. package/src/stories/MobileNav.stories.tsx +29 -19
  85. package/src/stories/Paginate.stories.tsx +36 -35
  86. package/src/stories/Select.stories.tsx +46 -43
  87. package/src/stories/SideNav.stories.tsx +18 -19
  88. package/src/stories/TextInput.stories.tsx +81 -71
  89. package/src/stories/Typography.stories.tsx +2 -4
  90. package/src/styles/global.css +1 -181
  91. package/src/tests/Badge.test.tsx +48 -0
  92. package/src/tests/Button.test.tsx +69 -0
  93. package/src/tests/ButtonGroup.test.tsx +51 -0
  94. package/src/tests/MobileNav.test.tsx +66 -0
  95. package/src/tests/Paginate.test.tsx +86 -0
  96. package/src/tests/Select.test.tsx +63 -0
  97. package/src/tests/SideNav.test.tsx +43 -0
  98. package/src/tests/TextInput.test.tsx +42 -0
  99. package/src/tests/Typography.test.tsx +41 -0
  100. package/src/tests/__snapshots__/Badge.test.tsx.snap +13 -0
  101. package/src/tests/__snapshots__/Button.test.tsx.snap +106 -0
  102. package/src/tests/__snapshots__/ButtonGroup.test.tsx.snap +228 -0
  103. package/src/tests/__snapshots__/Paginate.test.tsx.snap +580 -0
  104. package/src/tests/__snapshots__/Select.test.tsx.snap +119 -0
  105. package/src/tests/__snapshots__/TextInput.test.tsx.snap +323 -0
  106. package/src/utils/IconWrapper.tsx +11 -0
  107. package/storybook-static/{125.65b26339.iframe.bundle.js → 125.df7cc93e.iframe.bundle.js} +3 -3
  108. package/storybook-static/125.df7cc93e.iframe.bundle.js.map +1 -0
  109. package/storybook-static/13.d4c3993e.iframe.bundle.js +2 -0
  110. package/storybook-static/161.f5193502.iframe.bundle.js +2 -0
  111. package/storybook-static/167.89fa6ac2.iframe.bundle.js +1 -0
  112. package/storybook-static/294.eccdc80d.iframe.bundle.js +1 -0
  113. package/storybook-static/314.c9f9245e.iframe.bundle.js +2 -0
  114. package/storybook-static/364.1cfcaebe.iframe.bundle.js +1 -0
  115. package/storybook-static/735.c396ee77.iframe.bundle.js +2 -0
  116. package/storybook-static/742.52c662a4.iframe.bundle.js +1 -0
  117. package/storybook-static/{844.aec20bdb.iframe.bundle.js → 844.3bb89aad.iframe.bundle.js} +3 -3
  118. package/storybook-static/844.3bb89aad.iframe.bundle.js.map +1 -0
  119. package/storybook-static/936.c827da74.iframe.bundle.js +1 -0
  120. package/storybook-static/961.c3df469f.iframe.bundle.js +2 -0
  121. package/storybook-static/iframe.html +3 -3
  122. package/storybook-static/main.179173d1.iframe.bundle.js +1 -0
  123. package/storybook-static/project.json +1 -1
  124. package/storybook-static/{runtime~main.295ddda4.iframe.bundle.js → runtime~main.70344601.iframe.bundle.js} +1 -1
  125. package/storybook-static/static/css/main.08036cd2.css.map +1 -1
  126. package/storybook-static/stories-Badge-stories.a924d6d5.iframe.bundle.js +1 -0
  127. package/storybook-static/stories-Button-stories.a3c88a14.iframe.bundle.js +1 -0
  128. package/storybook-static/stories-ButtonGroup-stories.2c74e4c4.iframe.bundle.js +1 -0
  129. package/storybook-static/stories-Colors-stories.424256b4.iframe.bundle.js +2 -0
  130. package/storybook-static/stories-Configure-mdx.46ebbf59.iframe.bundle.js +1 -0
  131. package/storybook-static/stories-Header-stories.df09e844.iframe.bundle.js +2 -0
  132. package/storybook-static/stories-MobileNav-stories.eb9a0ca6.iframe.bundle.js +1 -0
  133. package/storybook-static/stories-Page-stories.ab66c885.iframe.bundle.js +2 -0
  134. package/storybook-static/stories-Paginate-stories.086f736a.iframe.bundle.js +1 -0
  135. package/storybook-static/stories-Select-stories.4c04edb3.iframe.bundle.js +1 -0
  136. package/storybook-static/stories-SideNav-stories.272a4362.iframe.bundle.js +1 -0
  137. package/storybook-static/stories-TextInput-stories.cfa81131.iframe.bundle.js +1 -0
  138. package/storybook-static/stories-Typography-stories.a31da7ce.iframe.bundle.js +2 -0
  139. package/tailwind.config.js +1 -1
  140. package/tsconfig.json +6 -3
  141. package/tsdx.config.js +14 -0
  142. package/dist/Page.d.ts +0 -3
  143. package/dist/Page.d.ts.map +0 -1
  144. package/dist/stories/Header.stories.d.ts +0 -20
  145. package/dist/stories/Header.stories.d.ts.map +0 -1
  146. package/dist/stories/Page.stories.d.ts +0 -14
  147. package/dist/stories/Page.stories.d.ts.map +0 -1
  148. package/src/Page.tsx +0 -72
  149. package/src/stories/Configure.mdx +0 -364
  150. package/src/stories/Header.stories.ts +0 -33
  151. package/src/stories/Page.stories.ts +0 -32
  152. package/storybook-static/125.65b26339.iframe.bundle.js.map +0 -1
  153. package/storybook-static/13.0638081a.iframe.bundle.js +0 -2
  154. package/storybook-static/161.a19908ac.iframe.bundle.js +0 -2
  155. package/storybook-static/167.3fa3a909.iframe.bundle.js +0 -1
  156. package/storybook-static/294.ce38f65c.iframe.bundle.js +0 -1
  157. package/storybook-static/314.568bd9af.iframe.bundle.js +0 -2
  158. package/storybook-static/364.0b18ef67.iframe.bundle.js +0 -1
  159. package/storybook-static/735.1625d9f4.iframe.bundle.js +0 -2
  160. package/storybook-static/742.597501f6.iframe.bundle.js +0 -1
  161. package/storybook-static/844.aec20bdb.iframe.bundle.js.map +0 -1
  162. package/storybook-static/936.fd850a3f.iframe.bundle.js +0 -1
  163. package/storybook-static/961.0e5457c5.iframe.bundle.js +0 -2
  164. package/storybook-static/main.069281cf.iframe.bundle.js +0 -1
  165. package/storybook-static/stories-Badge-stories.484f7206.iframe.bundle.js +0 -1
  166. package/storybook-static/stories-Button-stories.5e29be85.iframe.bundle.js +0 -1
  167. package/storybook-static/stories-ButtonGroup-stories.cc89968c.iframe.bundle.js +0 -1
  168. package/storybook-static/stories-Colors-stories.f892dc75.iframe.bundle.js +0 -2
  169. package/storybook-static/stories-Configure-mdx.81346d97.iframe.bundle.js +0 -1
  170. package/storybook-static/stories-Header-stories.cf691094.iframe.bundle.js +0 -2
  171. package/storybook-static/stories-MobileNav-stories.f04cccdd.iframe.bundle.js +0 -1
  172. package/storybook-static/stories-Page-stories.0c9aa29d.iframe.bundle.js +0 -2
  173. package/storybook-static/stories-Paginate-stories.3b161781.iframe.bundle.js +0 -1
  174. package/storybook-static/stories-Select-stories.7556ae0d.iframe.bundle.js +0 -1
  175. package/storybook-static/stories-SideNav-stories.093fac6a.iframe.bundle.js +0 -1
  176. package/storybook-static/stories-TextInput-stories.6d3e15c6.iframe.bundle.js +0 -1
  177. package/storybook-static/stories-Typography-stories.6640f7ac.iframe.bundle.js +0 -2
  178. /package/storybook-static/{125.65b26339.iframe.bundle.js.LICENSE.txt → 125.df7cc93e.iframe.bundle.js.LICENSE.txt} +0 -0
  179. /package/storybook-static/{13.0638081a.iframe.bundle.js.LICENSE.txt → 13.d4c3993e.iframe.bundle.js.LICENSE.txt} +0 -0
  180. /package/storybook-static/{161.a19908ac.iframe.bundle.js.LICENSE.txt → 161.f5193502.iframe.bundle.js.LICENSE.txt} +0 -0
  181. /package/storybook-static/{314.568bd9af.iframe.bundle.js.LICENSE.txt → 314.c9f9245e.iframe.bundle.js.LICENSE.txt} +0 -0
  182. /package/storybook-static/{735.1625d9f4.iframe.bundle.js.LICENSE.txt → 735.c396ee77.iframe.bundle.js.LICENSE.txt} +0 -0
  183. /package/storybook-static/{844.aec20bdb.iframe.bundle.js.LICENSE.txt → 844.3bb89aad.iframe.bundle.js.LICENSE.txt} +0 -0
  184. /package/storybook-static/{961.0e5457c5.iframe.bundle.js.LICENSE.txt → 961.c3df469f.iframe.bundle.js.LICENSE.txt} +0 -0
  185. /package/storybook-static/{stories-Colors-stories.f892dc75.iframe.bundle.js.LICENSE.txt → stories-Colors-stories.424256b4.iframe.bundle.js.LICENSE.txt} +0 -0
  186. /package/storybook-static/{stories-Header-stories.cf691094.iframe.bundle.js.LICENSE.txt → stories-Header-stories.df09e844.iframe.bundle.js.LICENSE.txt} +0 -0
  187. /package/storybook-static/{stories-Page-stories.0c9aa29d.iframe.bundle.js.LICENSE.txt → stories-Page-stories.ab66c885.iframe.bundle.js.LICENSE.txt} +0 -0
  188. /package/storybook-static/{stories-Typography-stories.6640f7ac.iframe.bundle.js.LICENSE.txt → stories-Typography-stories.a31da7ce.iframe.bundle.js.LICENSE.txt} +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"box-ui.cjs.production.min.js","sources":["../src/Badge.tsx","../src/Button.tsx","../src/Typography.tsx","../src/TextInput.tsx","../src/hooks/useIconClassName.tsx","../src/Nav/SubNavItem.tsx","../src/Nav/NavItem.tsx","../src/hooks/useIconProps.tsx","../src/data/images/index.tsx","../src/Nav/SideNav.tsx","../src/data/countries.tsx","../src/data/navItems.tsx","../src/data/options.tsx","../src/ButtonGroup.tsx","../src/ColorBox.tsx","../src/Nav/MobileNav.tsx","../src/Paginate.tsx","../src/Select.tsx","../src/data/colors.tsx","../src/data/prices.tsx"],"sourcesContent":["import React, { FC } from \"react\";\nimport { BadgeProps, BadgeSize, BadgeVariant } from \"./@interfaces\";\nimport classNames from \"classnames\";\n\nconst BadgeSizeClasses: Record<BadgeSize, string> = {\n sm: \"badge-sm\",\n md: \"badge-md\",\n lg: \"badge-lg\",\n};\n\nconst BadgeVariantClasses: Record<BadgeVariant, string> = {\n gray: \"badge-gray\",\n primary: \"badge-primary\",\n warning: \"badge-warning\",\n error: \"badge-error\",\n success: \"badge-success\",\n};\n\nexport const Badge: FC<BadgeProps> = ({\n className,\n children,\n LeadingIcon,\n TrailingIcon,\n variant,\n size,\n}) => {\n const badgeVariantClassName = BadgeVariantClasses[variant];\n const badgeSizeClassName = BadgeSizeClasses[size];\n\n return (\n <div\n className={classNames(\n \"badge-base\",\n badgeSizeClassName,\n badgeVariantClassName,\n className\n )}\n >\n {LeadingIcon && <span className=\"mr-1.5\">{LeadingIcon}</span>}\n {children}\n {TrailingIcon && <span className=\"mr-1.5\">{TrailingIcon}</span>}\n </div>\n );\n};\n","import React, { ReactElement, cloneElement, isValidElement } from \"react\";\nimport {\n ButtonProps,\n ButtonVariant,\n ButtonSize,\n ButtonState,\n} from \"./@interfaces\";\nimport classNames from \"classnames\";\n\nconst buttonVariantClasses: Record<\n ButtonVariant,\n Record<ButtonState, string>\n> = {\n primary: {\n default: \"btn-primary\",\n hover: \"btn-primary-hover\",\n focus: \"btn-primary-focus shadow-grayDark\",\n disabled: \"btn-primary-disabled\",\n },\n secondary: {\n default: \"btn-secondary\",\n hover: \"btn-secondary-hover\",\n focus: \"btn-secondary-focus shadow-grayDark\",\n disabled: \"btn-secondary-disabled\",\n },\n secondaryGray: {\n default: \"btn-secondaryGray\",\n hover: \"btn-secondaryGray-hover\",\n focus: \"btn-secondaryGray-focus shadow-grayDark\",\n disabled: \"btn-secondaryGray-disabled\",\n },\n tertiary: {\n default: \"btn-tertiary\",\n hover: \"btn-tertiary-hover\",\n focus: \"btn-tertiary-focus shadow-grayDark\",\n disabled: \"btn-tertiary-disabled\",\n },\n tertiaryGray: {\n default: \"btn-tertiaryGray\",\n hover: \"btn-tertiaryGray-hover\",\n focus: \"btn-tertiaryGray-focus shadow-grayDark\",\n disabled: \"btn-tertiaryGray-disabled\",\n },\n};\n\nconst buttonSizeClasses: Record<ButtonSize, string> = {\n sm: \"btn-sm\",\n md: \"btn-md\",\n lg: \"btn-lg\",\n xl: \"btn-xl\",\n \"2xl\": \"btn-2xl\",\n};\n\nconst buttonIconSizeClasses: Record<ButtonSize, string> = {\n sm: \"btn-icon-sm\",\n md: \"btn-icon-md\",\n lg: \"btn-icon-lg\",\n xl: \"btn-icon-xl\",\n \"2xl\": \"btn-icon-2xl\",\n};\n\nexport const Button = ({\n children,\n className,\n variant = \"primary\",\n size = \"md\",\n disabled,\n LeadingIcon,\n TrailingIcon,\n IconOnly,\n ...buttonProps\n}: ButtonProps) => {\n const buttonVariantClassName = buttonVariantClasses[variant];\n const buttonIconSizeClassName = buttonIconSizeClasses[size];\n\n const setIconSize = (icon: ReactElement, iconSize: number) => {\n if (isValidElement<{ size?: number }>(icon) && \"size\" in icon.props) {\n return cloneElement(icon, { size: 20 });\n }\n return icon;\n };\n\n const setClassName = (icon: ReactElement, additionalClass: string) => {\n return isValidElement<{ className?: string }>(icon)\n ? cloneElement(icon, {\n className: classNames(icon.props.className, additionalClass),\n })\n : icon;\n };\n\n return (\n <button\n type=\"button\"\n className={classNames(\"btn-base\", className, {\n [buttonSizeClasses[size]]: !IconOnly,\n [classNames(buttonIconSizeClassName, \"justify-center\")]: IconOnly,\n [classNames(buttonVariantClassName.default,\n buttonVariantClassName.hover,\n buttonVariantClassName.focus)]: !disabled,\n [classNames(buttonVariantClassName.disabled, \"cursor-not-allowed\")]: disabled,\n })}\n {...buttonProps}\n >\n {LeadingIcon && (\n <span>\n {setClassName(\n LeadingIcon,\n classNames({\n \"mr-2\": size !== \"2xl\",\n \"mr-3\": size === \"2xl\",\n })\n )}\n </span>\n )}\n {children}\n {IconOnly && (\n <span>{setIconSize(IconOnly, size === \"2xl\" ? 24 : 20)}</span>\n )}\n {TrailingIcon && (\n <span>\n {setClassName(\n TrailingIcon,\n classNames({\n \"ml-2\": size !== \"2xl\",\n \"ml-3\": size === \"2xl\",\n })\n )}\n </span>\n )}\n </button>\n );\n};\n","import React, { FC, JSX } from \"react\";\nimport classNames from \"classnames\";\n\ntype TypographyVariant =\n | \"xs\"\n | \"sm\"\n | \"md\"\n | \"lg\"\n | \"xl\"\n | \"h6\"\n | \"h5\"\n | \"h4\"\n | \"h3\"\n | \"h2\"\n | \"h1\";\n\ntype TypographyWeightOption = \"regular\" | \"medium\" | \"semibold\" | \"bold\";\n\ntype TypographyWeightValue = \"font-normal\" | \"font-medium\" | \"font-semibold\" | \"font-bold\";\n\nexport interface TypographyProps {\n variant?: TypographyVariant;\n customWeight?: TypographyWeightOption;\n customColor?: string;\n customClass?: string;\n className?: string;\n children: string | React.ReactNode;\n}\n\nconst TypographyVariantClasses: Record<TypographyVariant, string> = {\n xs: \"text-xs\",\n sm: \"text-sm\",\n md: \"text-md\",\n lg: \"text-lg\",\n xl: \"text-xl\",\n h6: \"text-h6\",\n h5: \"text-h5\",\n h4: \"text-h4\",\n h3: \"text-h3\",\n h2: \"text-h2\",\n h1: \"text-h1\",\n};\n\nconst TypographyWeightClasses: Record<TypographyWeightOption, TypographyWeightValue> = {\n regular: \"font-normal\",\n medium: \"font-medium\",\n semibold: \"font-semibold\",\n bold: \"font-bold\",\n};\n\nexport const Typography: FC<TypographyProps> = ({\n variant = \"md\",\n customWeight = \"regular\",\n customColor,\n className,\n children,\n}) => {\n const TypographyVariantClassName = TypographyVariantClasses[variant];\n const TypographyWeightClassName = TypographyWeightClasses[customWeight];\n\n\n const Component: React.ElementType =\n [\"h1\", \"h2\", \"h3\", \"h4\", \"h5\", \"h6\"].includes(variant ?? \"p\") ? (variant as keyof JSX.IntrinsicElements) : \"p\";\n\n return (\n <Component\n className={classNames(\n TypographyVariantClassName,\n TypographyWeightClassName,\n className,\n {\n \"tracking-tight\": [\"h1\", \"h2\", \"h3\"].includes(variant),\n \"text-black dark:text-white\": !customColor,\n },\n customColor \n )}\n >\n {children}\n </Component>\n );\n};\n","import React, { FC } from \"react\";\nimport { TextInputProps } from \"./@interfaces\";\nimport { Typography } from \"./Typography\";\nimport classNames from \"classnames\";\nimport { useIconClassName } from \"./hooks/useIconClassName\";\n\nexport const TextInput: FC<TextInputProps> = ({\n type,\n value,\n label,\n placeholder,\n error,\n helperText,\n disabled,\n LeadingIcon,\n TrailingIcon,\n leadingText,\n handleChange,\n}) => {\n const { setClassName } = useIconClassName();\n\n return (\n <div>\n {label && (\n <Typography\n variant=\"sm\"\n customWeight=\"medium\"\n customColor=\"text-gray-700 dark:text-white\"\n className=\"mb-1.5\"\n >\n {label}\n </Typography>\n )}\n <div\n className={classNames(\"relative\", { \"flex items-center\": leadingText })}\n >\n <div className=\"h-11 absolute shadow-sm rounded-lg w-full flex justify-between items-center px-3.5 pointer-events-none\">\n {LeadingIcon ? setClassName(LeadingIcon, \"text-gray-500\") : <div />}\n {TrailingIcon &&\n setClassName(\n TrailingIcon,\n classNames({ \"text-error-500\": error, \"text-gray-400\": !error })\n )}\n </div>\n {leadingText && (\n <Typography\n variant=\"sm\"\n customWeight=\"regular\"\n className={classNames(\n \"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\",\n {\n \"bg-gray-50 dark:bg-gray-700\": disabled,\n \"dark:bg-gray-800\": !disabled,\n },\n )}\n >\n {leadingText}\n </Typography>\n )}\n <input\n type={type}\n value={value}\n placeholder={placeholder}\n onChange={handleChange}\n disabled={disabled}\n className={classNames(\n \"w-full select-none text-gray-900 dark:text-white text-md border h-11 px-2\",\n {\n \"pl-9\": LeadingIcon,\n \"pr-9\": TrailingIcon,\n \"rounded-l-0 rounded-r-lg\": leadingText,\n \"rounded-lg\": !leadingText,\n \"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\":\n !error,\n \"border-error-300 focus:ring-4 focus:border-error-300 focus:ring-error-100\":\n error,\n \"bg-white dark:bg-gray-800\": !disabled,\n \"bg-gray-50 dark:bg-gray-700\": disabled,\n },\n )}\n />\n </div>\n {error && (\n <Typography\n variant=\"sm\"\n customWeight=\"regular\"\n className=\"mt-1.5 text-error-500\"\n >\n {error}\n </Typography>\n )}\n {helperText && (\n <Typography\n variant=\"sm\"\n customWeight=\"regular\"\n className=\"mt-1.5 text-gray-500\"\n >\n {helperText}\n </Typography>\n )}\n </div>\n );\n};\n","import { ReactElement, cloneElement, isValidElement } from \"react\";\nimport classNames from \"classnames\";\n\nexport const useIconClassName = () => {\n const setClassName = (icon: ReactElement, additionalClass: string) => {\n return isValidElement<{ className?: string }>(icon)\n ? cloneElement(icon, {\n className: classNames(icon.props.className, additionalClass),\n })\n : icon;\n };\n\n return { setClassName };\n};\n","import React, { FC } from \"react\";\nimport { Typography } from \"../Typography\";\nimport classNames from \"classnames\";\nimport { SubNavItemProps } from \"../@interfaces\";\n\nexport const SubNavItem: FC<SubNavItemProps> = ({\n inDropdown,\n isActive,\n subItem,\n onClick,\n}) => {\n return (\n <li\n key={subItem.label}\n className={classNames(\"navItem group\", {\n \"bg-primary-50 dark:bg-gray-100 dark:bg-opacity-10\": isActive,\n })}\n onClick={onClick}\n >\n <Typography\n variant=\"md\"\n customWeight=\"medium\"\n customColor={classNames(\n \"group-hover:text-primary-600 dark:group-hover:text-white\",\n {\n \"text-gray-800 dark:text-white\": !isActive,\n \"text-primary-600 dark:text-white\": isActive,\n }\n )}\n className={classNames(\"flex-grow\", {\n \"pl-13\": !inDropdown,\n \"pl-4\": inDropdown,\n })}\n >\n {subItem.label}\n </Typography>\n </li>\n );\n};\n","import React, {FC} from \"react\";\nimport { NavItemProps } from \"../@interfaces\";\nimport { Popover, PopoverButton, PopoverPanel } from \"@headlessui/react\";\nimport { FiChevronDown } from \"react-icons/fi\";\nimport { Typography } from \"../Typography\";\nimport { SubNavItem } from \"./SubNavItem\";\nimport classNames from \"classnames\";\nimport { useIconProps } from \"../hooks/useIconProps\";\n\nexport const NavItem:FC<NavItemProps> = ({\n item,\n isActive,\n activeSubNavItem,\n open,\n openDropdown,\n onClick,\n}) => {\n const { setProps } = useIconProps();\n\n const ArrowDown = FiChevronDown as React.FC<any>;\n\n return (\n <Popover key={item.label} className=\"relative\">\n <PopoverButton as={React.Fragment}>\n <li\n className={classNames(\"navItem group\", {\n \"px-4\": open,\n \"ml-2 px-2 w-10\": !open,\n \"bg-primary-50 dark:bg-gray-100 dark:bg-opacity-10\": isActive,\n })}\n onClick={() => onClick(item)}\n >\n {setProps(item.icon, 24, classNames(\"group-hover:text-primary-600 dark:group-hover:text-white dark:text-white transform duration-100 ease-out\",\n {\n \"-rotate-180\": item.toggleSidebar && !open,\n \"text-gray-900\": !isActive,\n \"text-primary-600 dark:text-white\": isActive,\n },))}\n <>\n <Typography\n variant=\"md\"\n customWeight=\"medium\"\n className={classNames(\"flex-grow ml-3\", {\n \"opacity-0 hidden\": !open,\n })}\n customColor={classNames(\n \"group-hover:text-primary-600 dark:group-hover:text-white\",\n {\n \"text-gray-800 dark:text-white\": !isActive,\n \"text-primary-600 dark:text-white\": isActive,\n },\n )}\n >\n {item.label}\n </Typography>\n {item.subItems && item.subItems.length > 0 ? (\n <ArrowDown\n size={20}\n className={classNames(\n \"group-hover:text-primary-600 dark:group-hover:text-white transform duration-100 ease-out\",\n {\n \"opacity-0 hidden\": !open,\n \"text-gray-400\": !isActive,\n \"text-primary-600 dark:text-white\": isActive,\n \"-rotate-180\": openDropdown,\n },\n )}\n />\n ) : null}\n </>\n </li>\n </PopoverButton>\n\n {openDropdown && open && item.subItems && item.subItems.length > 0 ? (\n <div className=\"my-2 space-y-1\">\n {item.subItems.map((subItem) => (\n <SubNavItem\n key={subItem.label}\n isActive={activeSubNavItem === subItem.label}\n subItem={subItem}\n onClick={() => onClick(item, subItem.label)}\n />\n ))}\n </div>\n ) : null}\n\n {!open && item.subItems && item.subItems.length > 0 ? (\n <PopoverPanel 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\">\n {item.subItems.map((subItem) => (\n <SubNavItem\n key={subItem.label}\n inDropdown\n isActive={activeSubNavItem === subItem.label}\n subItem={subItem}\n onClick={() => onClick(item, subItem.label)}\n />\n ))}\n </PopoverPanel>\n ) : null}\n </Popover>\n)};","import { ReactElement, cloneElement, isValidElement } from \"react\";\nimport classNames from \"classnames\";\n\nexport const useIconProps = () => {\n const setProps = (\n icon: ReactElement,\n iconSize: number,\n additionalClass: string\n ) => {\n return isValidElement<{ size?: number; className?: string }>(icon)\n ? cloneElement(icon, {\n size: iconSize,\n className: classNames(icon.props.className, additionalClass),\n })\n : icon;\n };\n\n return { setProps };\n};\n","export type CountryISO = \"IN\" | \"BE\" | \"DE\" | \"FR\" | \"IT\" | \"NL\" | \"RU\" | \"US\";\n\ntype image = CountryISO | \"logo\";\n\n// Development images\n// const devImages: Record<image, string> = {\n// logo: require(\"./logo.png\"),\n// IN: require(\"./in.svg\"),\n// BE: require(\"./be.svg\"),\n// DE: require(\"./de.svg\"),\n// FR: require(\"./fr.svg\"),\n// IT: require(\"./it.svg\"),\n// NL: require(\"./nl.svg\"),\n// RU: require(\"./ru.svg\"),\n// US: require(\"./us.svg\"),\n\n// };\n\n// Production images (CDN)\nconst prodImages: Record<image, string> = {\n 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__\",\n IN: \"https://kapowaz.github.io/circle-flags/flags/in.svg\",\n BE: \"https://kapowaz.github.io/circle-flags/flags/be.svg\",\n DE: \"https://kapowaz.github.io/circle-flags/flags/de.svg\",\n FR: \"https://kapowaz.github.io/circle-flags/flags/fr.svg\",\n IT: \"https://kapowaz.github.io/circle-flags/flags/it.svg\",\n NL: \"https://kapowaz.github.io/circle-flags/flags/nl.svg\",\n RU: \"https://kapowaz.github.io/circle-flags/flags/ru.svg\",\n US: \"https://kapowaz.github.io/circle-flags/flags/us.svg\",\n};\n\nexport const images = prodImages;\n// export const images = process.env.NODE_ENV === \"production\" ? prodImages : devImages;\n","import React from \"react\";\nimport { SideNavProps, INavItem } from \"../@interfaces\";\nimport classNames from \"classnames\";\nimport { Typography } from \"../Typography\";\nimport { NavItem } from \"./NavItem\";\nimport { FiLogOut, FiSearch } from \"react-icons/fi\";\nimport { TextInput } from \"../TextInput\";\nimport { images } from \"../data/images\";\n\nexport const renderLogo = () => (\n <img src={images.logo} className=\"w-8 h-8 select-none\" alt=\"logo\" />\n);\n\nexport const SideNav = ({\n className,\n navItemsTop,\n navItemsBottom,\n username,\n email,\n open,\n setOpen,\n}: SideNavProps) => {\n\n\n const Logout = FiLogOut as React.FC<any>;\n const Search = FiSearch as React.FC<any>;\n\n const [searchString, setSearchString] = React.useState<string>(\"\");\n const [activeNavItem, setActiveNavItem] = React.useState<string>(\"\");\n const [activeSubNavItem, setActiveSubNavItem] = React.useState<string>(\"\");\n const [openDropdowns, setOpenDropdowns] = React.useState<string[]>([]);\n\n const handleSearch = (e: React.ChangeEvent<HTMLInputElement>) => {\n setSearchString(e.target.value);\n };\n\n const onClickNavItem = (item: INavItem, subNavPath?: string) => {\n if (subNavPath) {\n setActiveSubNavItem(subNavPath);\n }\n if (!item.toggleSidebar) {\n setActiveNavItem(item.label);\n } else if (item.toggleSidebar) {\n setOpen(!open);\n }\n \n if (item.subItems && openDropdowns.includes(item.label) && !subNavPath) {\n setOpenDropdowns(\n openDropdowns.filter((dropdownItem) => dropdownItem !== item.label),\n );\n } else if (item.subItems && !openDropdowns.includes(item.label)) {\n setOpenDropdowns([...openDropdowns, item.label]);\n }\n };\n \n return (\n <div\n className={classNames(\n \"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\",\n {\n \"w-80\": open,\n \"w-24\": !open,\n \"border-r border-gray-300 dark:border-opacity-20\": true,\n },\n className,\n )}\n >\n <div className=\"flex items-center w-full mb-8 ml-9\"> \n {renderLogo()}\n <Typography\n variant=\"xl\"\n className={classNames(\"ml-2.5 whitespace-nowrap select-none\", {\n \"opacity-0 hidden\": !open,\n })}\n customWeight=\"medium\"\n >\n Box UI\n </Typography>\n </div>\n \n <div className=\"mb-8 mx-9\">\n {open ? (\n <TextInput\n type=\"text\"\n value={searchString}\n handleChange={handleSearch}\n placeholder=\"Search\"\n LeadingIcon={<Search />}\n />\n ) : (\n <div className=\"h-11\" />\n )}\n </div>\n \n <div\n className={classNames(\n \"flex flex-col justify-between h-full ml-5 w-70\",\n {\n \"w-14\": !open,\n },\n )}\n >\n <ul className=\"flex flex-col space-y-1\">\n {navItemsTop.map((item) => (\n <NavItem\n key={item.label}\n item={item}\n isActive={activeNavItem === item.label}\n activeSubNavItem={activeSubNavItem}\n open={open}\n openDropdown={openDropdowns.includes(item.label)}\n onClick={onClickNavItem}\n />\n ))}\n </ul>\n <ul className=\"flex flex-col mb-6 space-y-1\">\n {navItemsBottom.map((item) => (\n <NavItem\n key={item.label}\n item={item}\n isActive={activeNavItem === item.label}\n activeSubNavItem={activeSubNavItem}\n open={open}\n openDropdown={openDropdowns.includes(item.label)}\n onClick={onClickNavItem}\n />\n ))}\n </ul>\n </div>\n \n <hr\n className={classNames(\n \"ml-5 border-t border-gray-300 dark:border-opacity-20\",\n {\n \"w-70\": open,\n \"w-14\": !open,\n },\n )}\n />\n \n <div className=\"flex mt-6 w-70 ml-7\">\n {open ? (\n <div className=\"flex justify-between ml-3\">\n <div className=\"select-none\">\n <Typography\n variant=\"sm\"\n customWeight=\"medium\"\n customColor=\"text-gray-700 dark:text-white\"\n >\n {username}\n </Typography>\n \n <Typography variant=\"sm\" customColor=\"text-gray-500\">\n {email}\n </Typography>\n </div>\n \n <Logout size={24} className=\"ml-6 text-gray-400 cursor-pointer\" />\n </div>\n ) : null}\n </div>\n </div>\n );\n \n}","import React from \"react\";\nimport { IOption } from \"../@interfaces\";\nimport { CountryISO, images } from \"./images\";\n\ninterface ICountry {\n city: string;\n countryISO: CountryISO;\n}\n\nconst countriesData: ICountry[] = [\n {\n city: \"Ahmedabad\",\n countryISO: \"IN\",\n },\n {\n city: \"Amsterdam\",\n countryISO: \"NL\",\n },\n {\n city: \"Rome\",\n countryISO: \"IT\",\n },\n {\n city: \"Berlin\",\n countryISO: \"DE\",\n },\n {\n city: \"Paris\",\n countryISO: \"FR\",\n },\n {\n city: \"Washington\",\n countryISO: \"US\",\n },\n {\n city: \"Moscow\",\n countryISO: \"RU\",\n },\n {\n city: \"Brussels\",\n countryISO: \"BE\",\n },\n];\n\nexport const countries: IOption[] = countriesData.map((country) => ({\n value: country.countryISO,\n label: (\n <>\n <img\n src={images[country.countryISO]}\n alt={country.countryISO.toLowerCase()}\n className=\"w-5 h-5 mr-2\"\n />{\" \"}\n {`${country.city}, ${country.countryISO}`}\n </>\n ),\n}));\n","import React from \"react\";\r\nimport { INavItem } from \"../@interfaces\";\r\nimport {\r\n FiArrowLeft,\r\n FiBarChart2,\r\n FiCheckSquare,\r\n FiHome,\r\n FiLayers,\r\n FiSettings,\r\n FiFlag,\r\n FiMapPin,\r\n} from \"react-icons/fi\";\r\n\r\nconst Home = FiHome as React.FC<any>;\r\nconst Layers = FiLayers as React.FC<any>;\r\nconst Settings = FiSettings as React.FC<any>;\r\nconst Flag = FiFlag as React.FC<any>;\r\nconst MapPin = FiMapPin as React.FC<any>;\r\nconst CheckSquare = FiCheckSquare as React.FC<any>;\r\nconst BarChart = FiBarChart2 as React.FC<any>;\r\nconst ArrowLeft = FiArrowLeft as React.FC<any>;\r\n\r\nexport const navItemsTop: INavItem[] = [\r\n {\r\n order: 0,\r\n path: \"home\",\r\n label: \"Home\",\r\n icon: <Home />,\r\n },\r\n {\r\n order: 1,\r\n path: \"dashboard\",\r\n label: \"Dashboard\",\r\n icon: <BarChart />,\r\n subItems: [\r\n {\r\n order: 0,\r\n path: \"analytics\",\r\n label: \"Analytics\",\r\n },\r\n {\r\n order: 1,\r\n path: \"apps\",\r\n label: \"Apps\",\r\n },\r\n {\r\n order: 2,\r\n path: \"learn\",\r\n label: \"Learn\",\r\n },\r\n ],\r\n },\r\n {\r\n order: 2,\r\n path: \"projects\",\r\n label: \"Projects\",\r\n icon: <Layers />,\r\n },\r\n {\r\n order: 3,\r\n path: \"tasks\",\r\n label: \"Tasks\",\r\n icon: <CheckSquare />,\r\n },\r\n {\r\n order: 4,\r\n path: \"reporting\",\r\n label: \"Reporting\",\r\n icon: <Flag />,\r\n },\r\n {\r\n order: 5,\r\n path: \"rentals\",\r\n label: \"Rentals\",\r\n icon: <MapPin />,\r\n subItems: [\r\n {\r\n order: 0,\r\n path: \"all\",\r\n label: \"All rentals\",\r\n },\r\n {\r\n order: 1,\r\n path: \"popular\",\r\n label: \"Popular\",\r\n },\r\n {\r\n order: 2,\r\n path: \"recent\",\r\n label: \"Recently added\",\r\n },\r\n ],\r\n },\r\n];\r\n\r\nexport const navItemsBottom: INavItem[] = [\r\n {\r\n order: 0,\r\n path: \"settings\",\r\n label: \"Settings\",\r\n icon: <Settings />,\r\n },\r\n {\r\n order: 1,\r\n label: \"Close Navbar\",\r\n icon: <ArrowLeft />,\r\n toggleSidebar: true,\r\n },\r\n];\r\n","import React from 'react'\nimport { IButtonItem } from \"../@interfaces\";\nimport { FiCircle, FiList, FiGrid } from \"react-icons/fi\";\n\n\nconst Circle = FiCircle as React.FC<any>;\n\nconst List = FiList as React.FC<any>;\n\nconst Grid = FiGrid as React.FC<any>;\n\nexport const options1: IButtonItem[] = [\n { value: \"Leading\", content: \"Leading\" },\n { value: \"Middle\", content: \"Middle\" },\n { value: \"Trailing\", content: \"Trailing\" },\n];\n\nexport const options2: IButtonItem[] = [\n {\n value: \"first\",\n content: (\n <>\n <span><Circle size={20} className='mr-2'/></span>\n First\n </>\n ),\n },\n {\n value: \"second\",\n content: (\n <>\n <span><Circle size={20} className='mr-2'/></span>\n Second\n </>\n ),\n },\n {\n value: \"third\",\n content: (\n <>\n <span><Circle size={20} className='mr-2'/></span>\n Third\n </>\n ),\n },\n];\n\nexport const options3: IButtonItem[] = [\n {value:'list', content:<List size={20}/>},\n {value:'grid', content:<Grid size={20}/>},\n]\n","import React from \"react\";\nimport { IButtonItem } from \"./@interfaces\";\nimport classNames from \"classnames\";\n\nexport interface ButtonGroupProps {\n options: IButtonItem[];\n activeOption: string;\n setActiveOption: (activeOption: string) => void;\n}\n\nexport const ButtonGroup = ({\n options,\n activeOption,\n setActiveOption,\n}: ButtonGroupProps) => {\n return (\n <div>\n {options.map((option, index) => (\n <button\n key={option.value}\n className={classNames(\n \"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\",\n {\n \"rounded-l-lg\": index === 0,\n \"rounded-r-lg\": index === options.length - 1,\n \"bg-gray-50 dark:bg-gray-700\": activeOption === option.value,\n \"border-r-0\": index !== 0 && index !== options.length - 1\n }\n )}\n onClick={() => setActiveOption(option.value)}\n >\n {option.content}\n </button>\n ))}\n </div>\n );\n};\n","import React from \"react\";\nimport { IColor } from \"./@interfaces\";\n\nexport const ColorBox = ({ code, hex, bgClass }: IColor) => (\n<div\n key={bgClass}\n className=\"flex flex-col rounded-lg shadow-lg w-26 h-39 dark:bg-white\">\n <div className={`h-20 ${bgClass} rounded-t-lg`} />\n <div className=\"mx-3 my-3\">\n {code}\n <br/>\n {hex}\n </div>\n </div>\n);","import classNames from \"classnames\";\nimport React, { FC } from \"react\";\nimport { Typography } from \"../Typography\";\nimport { renderLogo } from \"./SideNav\";\nimport {MobileNavProps} from '../@interfaces';\n\n\nexport const MobileNavbar: FC<MobileNavProps> = ({ open, toggleOpen }) => (\n <div className=\"z-40 flex items-center justify-between h-20 py-6 bg-white shadow-md dark:bg-gray-900 px-9\">\n {renderLogo()}\n <Typography variant=\"h6\" customWeight=\"medium\" className=\"select-none\">\n Box UI\n </Typography>\n <svg\n width=\"32\"\n height=\"32\"\n viewBox=\"0 0 32 32\"\n xmlns=\"http://www.w3.org/2000/svg\"\n className={classNames(\n \"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\",\n {\n \"opacity-0\": open,\n },\n )}\n onClick={toggleOpen}\n >\n <path\n d=\"M4 16H22.6667M4 8H28M4 24H28\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n </div>\n);\n","import React from \"react\";\nimport { PaginationProps } from \"./@interfaces\";\nimport classNames from \"classnames\";\nimport { Pagination } from \"react-headless-pagination\";\nimport { FiArrowLeft, FiArrowRight } from \"react-icons/fi\";\n\nexport const Paginate = ({\n totalPages,\n page,\n isMobile,\n className,\n setPage,\n}: PaginationProps) => {\n const handlePageChange = (page: number) => {\n setPage(page);\n };\n\n const ArrowLeft = FiArrowLeft as React.FC<any>;\n const ArrowRight = FiArrowRight as React.FC<any>;\n\n if (isMobile) {\n return (\n <div className={classNames(\"flex w-full h-10 items-center\", className)}>\n <ArrowLeft\n size={20}\n className={classNames(\"mr-3 text-gray-500 dark:text-white\", {\n \"cursor-pointer\": page !== 0,\n \"opacity-50\": page === 0,\n })}\n onClick={() => {\n if (page > 0) {\n handlePageChange(page - 1);\n }\n }}\n />\n <div className=\"flex justify-center flex-grow text-sm text-gray-700 select-none dark:text-white\">\n {`Page ${page} of ${totalPages}`}\n </div>\n <ArrowRight\n size={20}\n className={classNames(\"ml-3 text-gray-500 dark:text-white\", {\n \"cursor-pointer\": page !== totalPages - 1,\n \"opacity-50\": page === totalPages - 1,\n })}\n onClick={() => {\n if (page < totalPages - 1) {\n handlePageChange(page + 1);\n }\n }}\n />\n </div>\n );\n }\n\n return (\n <Pagination\n className={classNames(\n \"flex w-full items-center h-10 text-sm select-none\",\n className\n )}\n currentPage={page}\n totalPages={totalPages}\n edgePageCount={2}\n setCurrentPage={handlePageChange}\n truncableText=\"...\"\n middlePagesSiblingCount={2}\n truncableClassName=\"w-10 px-0.5 text-center dark:text-gray-500\"\n >\n <Pagination.PrevButton\n className={classNames(\n \"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\",\n {\n \"cursor-pointer\": page !== 0,\n \"opacity-50\": page === 0,\n }\n )}\n >\n <ArrowLeft size={20} className={classNames(\"mr-3\")} />\n Previous\n </Pagination.PrevButton>\n <div className=\"flex items-center justify-center flex-grow list-none\">\n <Pagination.PageButton\n activeClassName=\"bg-primary-50 dark:bg-opacity-0 text-primary-600 dark:text-white\"\n inactiveClassName=\"text-gray-500\"\n className=\"flex items-center justify-center h-10 w-10 rounded-full cursor-pointer font-medium\"\n />\n </div>\n <Pagination.NextButton\n className={classNames(\n \"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\",\n {\n \"cursor-pointer\": page !== totalPages - 1,\n \"opacity-50\": page === totalPages - 1,\n }\n )}\n >\n Next\n <ArrowRight size={20} className={classNames(\"ml-3\")} />\n </Pagination.NextButton>\n </Pagination>\n );\n};\n","import React, {\n FC,\n ReactElement,\n isValidElement,\n cloneElement,\n} from \"react\";\nimport { SelectProps } from \"./@interfaces\";\nimport {\n Listbox,\n ListboxButton,\n ListboxOption,\n ListboxOptions,\n} from \"@headlessui/react\";\nimport classNames from \"classnames\";\nimport {FiCheck, FiChevronDown} from 'react-icons/fi'\n\nexport const Select: FC<SelectProps> = ({\n options,\n selectedOption,\n setSelectedOption,\n placeholder,\n LeadingIcon,\n width,\n}) => {\n\n const ArrowDown = FiChevronDown as React.FC<any>;\n const Check = FiCheck as React.FC<any>;\n\n const setProps = (\n icon: ReactElement,\n iconSize: number,\n additionalClass: string\n ) => {\n if (\n isValidElement<{ size?: number; className?: string }>(icon) &&\n \"size\" in icon.props\n ) {\n return cloneElement(icon, {\n size: iconSize,\n className: classNames(icon.props.className, additionalClass),\n });\n }\n return icon;\n };\n\n return (\n <div className={classNames(\"relative inline-block\", width)}>\n <Listbox value={selectedOption && selectedOption.value} onChange={setSelectedOption}>\n {({ open }) => (\n <>\n <ListboxButton 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\",\n \"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\",\n {\n \"text-gray-900 dark:text-white\": selectedOption,\n \"text-gray-500 dark:text-gray-300\": !selectedOption,\n },\n width,)}>\n {LeadingIcon && (\n <div className=\"w-5 h-5 mr-2 overflow-hidden\">\n {setProps(LeadingIcon, 20, classNames(\"text-gray-400\"))}\n </div>\n )}\n {selectedOption ? selectedOption.label : placeholder}\n <ArrowDown\n size={20}\n className={classNames(\n \"text-gray-500 dark:text-gray-300 transform duration-100 ease-out\",\n {\n \"-rotate-180\": open,\n \"ml-auto\": width,\n \"ml-3.5\": !width,\n },\n )}\n />\n </ListboxButton>\n <ListboxOptions 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\">\n {options?.map((option, index) => (\n <ListboxOption as={React.Fragment} key={option.value} value={option.value}>\n {({focus, selected}) => (\n <li className={classNames(classNames(\n \"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\",\n {\n \"bg-primary-25 dark:bg-gray-100 dark:bg-opacity-10\":\n focus,\n \"rounded-t-lg\": index === 0,\n \"rounded-b-lg\": index === options.length - 1,\n },\n ))}>\n <div className=\"flex items-center\">{option.label}</div>\n {selected && <Check className=\"ml-5 text-primary-600 dark:text-white\" />}\n </li>\n )}\n \n </ListboxOption>\n ))}\n </ListboxOptions>\n </>\n )}\n </Listbox>\n </div>\n );\n};\n","import { IColor } from \"../@interfaces\";\n\nexport const colors: IColor[] = [\n {\n bgClass: \"bg-gray-2\",\n code: 25,\n hex: \"#FCFCF\",\n },\n {\n bgClass: \"bg-gray-50\",\n code: 50,\n hex: \"#F9FAFB\",\n },\n {\n bgClass: \"bg-gray-100\",\n code: 100,\n hex: \"#F2F4F7\",\n },\n {\n bgClass: \"bg-gray-200\",\n code: 200,\n hex: \"#E4E7EC\",\n },\n {\n bgClass: \"bg-gray-300\",\n code: 300,\n hex: \"#D0D5DD\",\n },\n {\n bgClass: \"bg-gray-400\",\n code: 400,\n hex: \"#98A2B3\",\n },\n {\n bgClass: \"bg-gray-500\",\n code: 500,\n hex: \"#667085\",\n },\n {\n bgClass: \"bg-gray-600\",\n code: 600,\n hex: \"#475467\",\n },\n {\n bgClass: \"bg-gray-700\",\n code: 700,\n hex: \"#344054\",\n },\n {\n bgClass: \"bg-gray-800\",\n code: 800,\n hex: \"#1D2939\",\n },\n {\n bgClass: \"bg-gray-900\",\n code: 900,\n hex: \"#101828\",\n },\n {\n bgClass: \"bg-primary-25\",\n code: 25,\n hex: \"#F5FAFF\",\n },\n {\n bgClass: \"bg-primary-50\",\n code: 50,\n hex: \"#EFF8FF\",\n },\n {\n bgClass: \"bg-primary-100\",\n code: 100,\n hex: \"#D1E9FF\",\n },\n {\n bgClass: \"bg-primary-200\",\n code: 200,\n hex: \"#B2DDFF\",\n },\n {\n bgClass: \"bg-primary-300\",\n code: 300,\n hex: \"#84CAFF\",\n },\n {\n bgClass: \"bg-primary-400\",\n code: 400,\n hex: \"#53B1FD\",\n },\n {\n bgClass: \"bg-primary-500\",\n code: 500,\n hex: \"#2E90FA\",\n },\n {\n bgClass: \"bg-primary-600\",\n code: 600,\n hex: \"#1570EF\",\n },\n {\n bgClass: \"bg-primary-700\",\n code: 700,\n hex: \"#175CD3\",\n },\n {\n bgClass: \"bg-primary-800\",\n code: 800,\n hex: \"#1849A9\",\n },\n {\n bgClass: \"bg-primary-900\",\n code: 900,\n hex: \"#194185\",\n },\n {\n bgClass: \"bg-error-25\",\n code: 25,\n hex: \"#FFFBFA\",\n },\n {\n bgClass: \"bg-error-50\",\n code: 50,\n hex: \"#FEF3F2\",\n },\n {\n bgClass: \"bg-error-100\",\n code: 100,\n hex: \"#FEE4E2\",\n },\n {\n bgClass: \"bg-error-200\",\n code: 200,\n hex: \"#FECDCA\",\n },\n {\n bgClass: \"bg-error-300\",\n code: 300,\n hex: \"#FDA29B\",\n },\n {\n bgClass: \"bg-error-400\",\n code: 400,\n hex: \"#F97066\",\n },\n {\n bgClass: \"bg-error-500\",\n code: 500,\n hex: \"#F04438\",\n },\n {\n bgClass: \"bg-error-600\",\n code: 600,\n hex: \"#D92D20\",\n },\n {\n bgClass: \"bg-error-700\",\n code: 700,\n hex: \"#B42318\",\n },\n {\n bgClass: \"bg-error-800\",\n code: 800,\n hex: \"#912018\",\n },\n {\n bgClass: \"bg-error-900\",\n code: 900,\n hex: \"#7A271A\",\n },\n {\n bgClass: \"bg-warning-25\",\n code: 25,\n hex: \"#FFFCF5\",\n },\n {\n bgClass: \"bg-warning-50\",\n code: 50,\n hex: \"#FFFAEB\",\n },\n {\n bgClass: \"bg-warning-100\",\n code: 100,\n hex: \"#FEF0C7\",\n },\n {\n bgClass: \"bg-warning-200\",\n code: 200,\n hex: \"#FEDF89\",\n },\n {\n bgClass: \"bg-warning-300\",\n code: 300,\n hex: \"#FEC84B\",\n },\n {\n bgClass: \"bg-warning-400\",\n code: 400,\n hex: \"#FDB022\",\n },\n {\n bgClass: \"bg-warning-500\",\n code: 500,\n hex: \"#F79009\",\n },\n {\n bgClass: \"bg-warning-600\",\n code: 600,\n hex: \"#DC6803\",\n },\n {\n bgClass: \"bg-warning-700\",\n code: 700,\n hex: \"#B54708\",\n },\n {\n bgClass: \"bg-warning-800\",\n code: 800,\n hex: \"#93370D\",\n },\n {\n bgClass: \"bg-warning-900\",\n code: 900,\n hex: \"#7A2E0E\",\n },\n {\n bgClass: \"bg-success-25\",\n code: 25,\n hex: \"#F6FEF9\",\n },\n {\n bgClass: \"bg-success-50\",\n code: 50,\n hex: \"#ECFDF3\",\n },\n {\n bgClass: \"bg-success-100\",\n code: 100,\n hex: \"#D1FADF\",\n },\n {\n bgClass: \"bg-success-200\",\n code: 200,\n hex: \"#A6F4C5\",\n },\n {\n bgClass: \"bg-success-300\",\n code: 300,\n hex: \"#6CE9A6\",\n },\n {\n bgClass: \"bg-success-400\",\n code: 400,\n hex: \"#32D583\",\n },\n {\n bgClass: \"bg-success-500\",\n code: 500,\n hex: \"#12B76A\",\n },\n {\n bgClass: \"bg-success-600\",\n code: 600,\n hex: \"#039855\",\n },\n {\n bgClass: \"bg-success-700\",\n code: 700,\n hex: \"#027A48\",\n },\n {\n bgClass: \"bg-success-800\",\n code: 800,\n hex: \"#05603A\",\n },\n {\n bgClass: \"bg-success-900\",\n code: 900,\n hex: \"#054F31\",\n },\n];\n","import { IOption } from \"../@interfaces\";\n\nexport const prices: IOption[] = [\n {\n label: \"Any price\",\n value: \"-1\",\n },\n {\n label: \"Below 50\",\n value: \"0\",\n },\n {\n label: \"50 - 100\",\n value: \"50\",\n },\n {\n label: \"100 - 200\",\n value: \"100\",\n },\n {\n label: \"200 - 300\",\n value: \"200\",\n },\n {\n label: \"300 - 400\",\n value: \"300\",\n },\n {\n label: \"400 - 500\",\n value: \"400\",\n },\n {\n label: \"500 - 600\",\n value: \"500\",\n },\n];\n"],"names":["BadgeSizeClasses","sm","md","lg","BadgeVariantClasses","gray","primary","warning","error","success","buttonVariantClasses","default","hover","focus","disabled","secondary","secondaryGray","tertiary","tertiaryGray","buttonSizeClasses","xl","2xl","buttonIconSizeClasses","TypographyVariantClasses","xs","h6","h5","h4","h3","h2","h1","TypographyWeightClasses","regular","medium","semibold","bold","Typography","_ref","variant","customWeight","customColor","className","children","TypographyVariantClassName","TypographyWeightClassName","Component","includes","React","classNames","tracking-tight","text-black dark:text-white","TextInput","type","value","label","placeholder","helperText","LeadingIcon","TrailingIcon","leadingText","handleChange","setClassName","icon","additionalClass","isValidElement","cloneElement","props","flex items-center","text-error-500","text-gray-400","bg-gray-50 dark:bg-gray-700","dark:bg-gray-800","onChange","pl-9","pr-9","rounded-l-0 rounded-r-lg","rounded-lg","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","border-error-300 focus:ring-4 focus:border-error-300 focus:ring-error-100","bg-white dark:bg-gray-800","SubNavItem","inDropdown","isActive","subItem","onClick","key","bg-primary-50 dark:bg-gray-100 dark:bg-opacity-10","text-gray-800 dark:text-white","text-primary-600 dark:text-white","pl-13","pl-4","NavItem","item","activeSubNavItem","open","openDropdown","setProps","iconSize","size","ArrowDown","FiChevronDown","Popover","PopoverButton","as","Fragment","px-4","ml-2 px-2 w-10","-rotate-180","toggleSidebar","text-gray-900","opacity-0 hidden","subItems","length","map","PopoverPanel","images","logo","IN","BE","DE","FR","IT","NL","RU","US","renderLogo","src","alt","countries","city","countryISO","country","toLowerCase","Layers","FiLayers","Settings","FiSettings","Flag","FiFlag","MapPin","FiMapPin","CheckSquare","FiCheckSquare","BarChart","FiBarChart2","ArrowLeft","FiArrowLeft","navItemsTop","order","path","FiHome","navItemsBottom","Circle","FiCircle","List","FiList","Grid","FiGrid","options2","content","options3","IconOnly","buttonProps","buttonVariantClassName","[object Object]","mr-2","mr-3","ml-2","ml-3","setIconSize","options","activeOption","setActiveOption","option","index","rounded-l-lg","rounded-r-lg","border-r-0","code","hex","bgClass","toggleOpen","width","height","viewBox","xmlns","opacity-0","d","strokeWidth","strokeLinecap","strokeLinejoin","totalPages","page","isMobile","setPage","handlePageChange","ArrowRight","FiArrowRight","cursor-pointer","opacity-50","Pagination","currentPage","edgePageCount","setCurrentPage","truncableText","middlePagesSiblingCount","truncableClassName","PrevButton","PageButton","activeClassName","inactiveClassName","NextButton","selectedOption","setSelectedOption","Check","FiCheck","Listbox","_ref2","ListboxButton","text-gray-900 dark:text-white","text-gray-500 dark:text-gray-300","ml-auto","ml-3.5","ListboxOptions","ListboxOption","_ref3","selected","bg-primary-25 dark:bg-gray-100 dark:bg-opacity-10","rounded-t-lg","rounded-b-lg","username","email","setOpen","Logout","FiLogOut","Search","FiSearch","searchString","setSearchString","useState","activeNavItem","setActiveNavItem","setActiveSubNavItem","openDropdowns","setOpenDropdowns","onClickNavItem","subNavPath","filter","dropdownItem","w-80","w-24","border-r border-gray-300 dark:border-opacity-20","e","target","w-14","w-70"],"mappings":"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"}
1
+ {"version":3,"file":"box-ui.cjs.production.min.js","sources":["../src/Badge.tsx","../src/Button.tsx","../src/Typography.tsx","../src/TextInput.tsx","../src/hooks/useIconClassName.tsx","../src/Nav/SubNavItem.tsx","../src/Nav/NavItem.tsx","../src/hooks/useIconProps.tsx","../src/data/images/index.tsx","../src/Nav/SideNav.tsx","../src/data/countries.tsx","../src/data/navItems.tsx","../src/data/options.tsx","../src/ButtonGroup.tsx","../src/ColorBox.tsx","../src/Nav/MobileNav.tsx","../src/Paginate.tsx","../src/Select.tsx","../src/data/colors.tsx","../src/data/prices.tsx"],"sourcesContent":["import React, { FC } from \"react\";\nimport { BadgeProps, BadgeSize, BadgeVariant } from \"./@interfaces\";\nimport classNames from \"classnames\";\n\nconst BadgeSizeClasses: Record<BadgeSize, string> = {\n sm: \"badge-sm\",\n md: \"badge-md\",\n lg: \"badge-lg\",\n};\n\nconst BadgeVariantClasses: Record<BadgeVariant, string> = {\n gray: \"badge-gray\",\n primary: \"badge-primary\",\n warning: \"badge-warning\",\n error: \"badge-error\",\n success: \"badge-success\",\n};\n\nexport const Badge: FC<BadgeProps> = ({\n className,\n children,\n LeadingIcon,\n TrailingIcon,\n variant,\n size,\n}) => {\n const badgeVariantClassName = BadgeVariantClasses[variant];\n const badgeSizeClassName = BadgeSizeClasses[size];\n\n return (\n <div\n className={classNames(\n \"badge-base\",\n badgeSizeClassName,\n badgeVariantClassName,\n className\n )}\n >\n {LeadingIcon && <span className=\"mr-1.5\">{LeadingIcon}</span>}\n {children}\n {TrailingIcon && <span className=\"mr-1.5\">{TrailingIcon}</span>}\n </div>\n );\n};\n","import React, { ReactElement, cloneElement, isValidElement } from \"react\";\nimport {\n ButtonProps,\n ButtonVariant,\n ButtonSize,\n ButtonState,\n} from \"./@interfaces\";\nimport classNames from \"classnames\";\n\nconst buttonVariantClasses: Record<\n ButtonVariant,\n Record<ButtonState, string>\n> = {\n primary: {\n default: \"btn-primary\",\n hover: \"btn-primary-hover\",\n focus: \"btn-primary-focus shadow-grayDark\",\n disabled: \"btn-primary-disabled\",\n },\n secondary: {\n default: \"btn-secondary\",\n hover: \"btn-secondary-hover\",\n focus: \"btn-secondary-focus shadow-grayDark\",\n disabled: \"btn-secondary-disabled\",\n },\n secondaryGray: {\n default: \"btn-secondaryGray\",\n hover: \"btn-secondaryGray-hover\",\n focus: \"btn-secondaryGray-focus shadow-grayDark\",\n disabled: \"btn-secondaryGray-disabled\",\n },\n tertiary: {\n default: \"btn-tertiary\",\n hover: \"btn-tertiary-hover\",\n focus: \"btn-tertiary-focus shadow-grayDark\",\n disabled: \"btn-tertiary-disabled\",\n },\n tertiaryGray: {\n default: \"btn-tertiaryGray\",\n hover: \"btn-tertiaryGray-hover\",\n focus: \"btn-tertiaryGray-focus shadow-grayDark\",\n disabled: \"btn-tertiaryGray-disabled\",\n },\n};\n\nconst buttonSizeClasses: Record<ButtonSize, string> = {\n sm: \"btn-sm\",\n md: \"btn-md\",\n lg: \"btn-lg\",\n xl: \"btn-xl\",\n \"2xl\": \"btn-2xl\",\n};\n\nconst buttonIconSizeClasses: Record<ButtonSize, string> = {\n sm: \"btn-icon-sm\",\n md: \"btn-icon-md\",\n lg: \"btn-icon-lg\",\n xl: \"btn-icon-xl\",\n \"2xl\": \"btn-icon-2xl\",\n};\n\nexport const Button = ({\n children,\n className,\n variant = \"primary\",\n size = \"md\",\n disabled,\n LeadingIcon,\n TrailingIcon,\n IconOnly,\n ...buttonProps\n}: ButtonProps) => {\n const buttonVariantClassName = buttonVariantClasses[variant];\n const buttonIconSizeClassName = buttonIconSizeClasses[size];\n\n const setIconSize = (icon: ReactElement, iconSize: number) => {\n if (isValidElement<{ size?: number }>(icon) && \"size\" in icon.props) {\n return cloneElement(icon, { size: 20 });\n }\n return icon;\n };\n\n const setClassName = (icon: ReactElement, additionalClass: string) => {\n return isValidElement<{ className?: string }>(icon)\n ? cloneElement(icon, {\n className: classNames(icon.props.className, additionalClass),\n })\n : icon;\n };\n\n return (\n <button\n type=\"button\"\n className={classNames(\"btn-base\", className, {\n [buttonSizeClasses[size]]: !IconOnly,\n [classNames(buttonIconSizeClassName, \"justify-center\")]: IconOnly,\n [classNames(buttonVariantClassName.default,\n buttonVariantClassName.hover,\n buttonVariantClassName.focus)]: !disabled,\n [classNames(buttonVariantClassName.disabled, \"cursor-not-allowed\")]: disabled,\n })}\n {...buttonProps}\n >\n {LeadingIcon && (\n <span>\n {setClassName(\n LeadingIcon,\n classNames({\n \"mr-2\": size !== \"2xl\",\n \"mr-3\": size === \"2xl\",\n })\n )}\n </span>\n )}\n {children}\n {IconOnly && (\n <span>{setIconSize(IconOnly, size === \"2xl\" ? 24 : 20)}</span>\n )}\n {TrailingIcon && (\n <span>\n {setClassName(\n TrailingIcon,\n classNames({\n \"ml-2\": size !== \"2xl\",\n \"ml-3\": size === \"2xl\",\n })\n )}\n </span>\n )}\n </button>\n );\n};\n","import React, { FC, JSX } from \"react\";\nimport classNames from \"classnames\";\n\ntype TypographyVariant =\n | \"xs\"\n | \"sm\"\n | \"md\"\n | \"lg\"\n | \"xl\"\n | \"h6\"\n | \"h5\"\n | \"h4\"\n | \"h3\"\n | \"h2\"\n | \"h1\";\n\ntype TypographyWeightOption = \"regular\" | \"medium\" | \"semibold\" | \"bold\";\n\ntype TypographyWeightValue = \"font-normal\" | \"font-medium\" | \"font-semibold\" | \"font-bold\";\n\nexport interface TypographyProps {\n variant?: TypographyVariant;\n customWeight?: TypographyWeightOption;\n customColor?: string;\n customClass?: string;\n className?: string;\n children: string | React.ReactNode;\n}\n\nconst TypographyVariantClasses: Record<TypographyVariant, string> = {\n xs: \"text-xs\",\n sm: \"text-sm\",\n md: \"text-md\",\n lg: \"text-lg\",\n xl: \"text-xl\",\n h6: \"text-h6\",\n h5: \"text-h5\",\n h4: \"text-h4\",\n h3: \"text-h3\",\n h2: \"text-h2\",\n h1: \"text-h1\",\n};\n\nconst TypographyWeightClasses: Record<TypographyWeightOption, TypographyWeightValue> = {\n regular: \"font-normal\",\n medium: \"font-medium\",\n semibold: \"font-semibold\",\n bold: \"font-bold\",\n};\n\nexport const Typography: FC<TypographyProps> = ({\n variant = \"md\",\n customWeight = \"regular\",\n customColor,\n className,\n children,\n}) => {\n const TypographyVariantClassName = TypographyVariantClasses[variant];\n const TypographyWeightClassName = TypographyWeightClasses[customWeight];\n\n\n const Component: React.ElementType =\n [\"h1\", \"h2\", \"h3\", \"h4\", \"h5\", \"h6\"].includes(variant ?? \"p\") ? (variant as keyof JSX.IntrinsicElements) : \"p\";\n\n return (\n <Component\n className={classNames(\n TypographyVariantClassName,\n TypographyWeightClassName,\n className,\n {\n \"tracking-tight\": [\"h1\", \"h2\", \"h3\"].includes(variant),\n \"text-black dark:text-white\": !customColor,\n },\n customColor \n )}\n >\n {children}\n </Component>\n );\n};\n","import React, { FC } from \"react\";\nimport { TextInputProps } from \"./@interfaces\";\nimport { Typography } from \"./Typography\";\nimport classNames from \"classnames\";\nimport { useIconClassName } from \"./hooks/useIconClassName\";\n\nexport const TextInput: FC<TextInputProps> = ({\n type,\n value,\n label,\n placeholder,\n error,\n helperText,\n disabled,\n LeadingIcon,\n TrailingIcon,\n leadingText,\n handleChange,\n}) => {\n const { setClassName } = useIconClassName();\n const inputId = `textinput-${label?.toLowerCase().replace(/\\s+/g, '-') || 'input'}`;\n\n return (\n <div>\n {label && (\n <label htmlFor={inputId}>\n <Typography\n variant=\"sm\"\n customWeight=\"medium\"\n customColor=\"text-gray-700 dark:text-white\"\n className=\"mb-1.5\"\n >\n {label}\n </Typography>\n </label>\n )}\n <div\n className={classNames(\"relative\", { \"flex items-center\": leadingText })}\n >\n <div className=\"h-11 absolute shadow-sm rounded-lg w-full flex justify-between items-center px-3.5 pointer-events-none\">\n {LeadingIcon ? setClassName(LeadingIcon, \"text-gray-500\") : <div />}\n {TrailingIcon &&\n setClassName(\n TrailingIcon,\n classNames({ \"text-error-500\": error, \"text-gray-400\": !error })\n )}\n </div>\n {leadingText && (\n <Typography\n variant=\"sm\"\n customWeight=\"regular\"\n className={classNames(\n \"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\",\n {\n \"bg-gray-50 dark:bg-gray-700\": disabled,\n \"dark:bg-gray-800\": !disabled,\n }\n )}\n >\n {leadingText}\n </Typography>\n )}\n <input\n id={inputId}\n type={type}\n value={value}\n placeholder={placeholder}\n onChange={handleChange}\n disabled={disabled}\n className={classNames(\n \"w-full select-none text-gray-900 dark:text-white text-md border h-11 px-2\",\n {\n \"pl-9\": LeadingIcon,\n \"pr-9\": TrailingIcon,\n \"rounded-l-0 rounded-r-lg\": leadingText,\n \"rounded-lg\": !leadingText,\n \"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\":\n !error,\n \"border-error-300 focus:ring-4 focus:border-error-300 focus:ring-error-100\":\n error,\n \"bg-white dark:bg-gray-800\": !disabled,\n \"bg-gray-50 dark:bg-gray-700\": disabled,\n }\n )}\n />\n </div>\n {error && (\n <label className=\"text-sm font-normal mt-1.5 text-error-500\">\n {error}\n </label>\n )}\n {helperText && (\n <label className=\"text-sm font-normal mt-1.5 text-gray-500\">\n {helperText}\n </label>\n )}\n </div>\n );\n};\n","import { ReactElement, cloneElement, isValidElement } from \"react\";\nimport classNames from \"classnames\";\n\nexport const useIconClassName = () => {\n const setClassName = (icon: ReactElement, additionalClass: string) => {\n return isValidElement<{ className?: string }>(icon)\n ? cloneElement(icon, {\n className: classNames(icon.props.className, additionalClass),\n })\n : icon;\n };\n\n return { setClassName };\n};\n","import React, { FC } from \"react\";\nimport { Typography } from \"../Typography\";\nimport classNames from \"classnames\";\nimport { SubNavItemProps } from \"../@interfaces\";\n\nexport const SubNavItem: FC<SubNavItemProps> = ({\n inDropdown,\n isActive,\n subItem,\n onClick,\n}) => {\n return (\n <li\n key={subItem.label}\n className={classNames(\"navItem group\", {\n \"bg-primary-50 dark:bg-gray-100 dark:bg-opacity-10\": isActive,\n })}\n onClick={onClick}\n >\n <Typography\n variant=\"md\"\n customWeight=\"medium\"\n customColor={classNames(\n \"group-hover:text-primary-600 dark:group-hover:text-white\",\n {\n \"text-gray-800 dark:text-white\": !isActive,\n \"text-primary-600 dark:text-white\": isActive,\n }\n )}\n className={classNames(\"flex-grow\", {\n \"pl-13\": !inDropdown,\n \"pl-4\": inDropdown,\n })}\n >\n {subItem.label}\n </Typography>\n </li>\n );\n};\n","import React, {FC} from \"react\";\nimport { NavItemProps } from \"../@interfaces\";\nimport { Popover, PopoverButton, PopoverPanel } from \"@headlessui/react\";\nimport { FiChevronDown } from \"react-icons/fi\";\nimport { Typography } from \"../Typography\";\nimport { SubNavItem } from \"./SubNavItem\";\nimport classNames from \"classnames\";\nimport { useIconProps } from \"../hooks/useIconProps\";\n\nexport const NavItem:FC<NavItemProps> = ({\n item,\n isActive,\n activeSubNavItem,\n open,\n openDropdown,\n onClick,\n}) => {\n const { setProps } = useIconProps();\n\n const ArrowDown = FiChevronDown as React.FC<any>;\n\n return (\n <Popover key={item.label} className=\"relative\">\n <PopoverButton as={React.Fragment}>\n <li\n className={classNames(\"navItem group\", {\n \"px-4\": open,\n \"ml-2 px-2 w-10\": !open,\n \"bg-primary-50 dark:bg-gray-100 dark:bg-opacity-10\": isActive,\n })}\n onClick={() => onClick(item)}\n >\n {setProps(item.icon, 24, classNames(\"group-hover:text-primary-600 dark:group-hover:text-white dark:text-white transform duration-100 ease-out\",\n {\n \"-rotate-180\": item.toggleSidebar && !open,\n \"text-gray-900\": !isActive,\n \"text-primary-600 dark:text-white\": isActive,\n },))}\n <>\n <Typography\n variant=\"md\"\n customWeight=\"medium\"\n className={classNames(\"flex-grow ml-3\", {\n \"opacity-0 hidden\": !open,\n })}\n customColor={classNames(\n \"group-hover:text-primary-600 dark:group-hover:text-white\",\n {\n \"text-gray-800 dark:text-white\": !isActive,\n \"text-primary-600 dark:text-white\": isActive,\n },\n )}\n >\n {item.label}\n </Typography>\n {item.subItems && item.subItems.length > 0 ? (\n <ArrowDown\n size={20}\n className={classNames(\n \"group-hover:text-primary-600 dark:group-hover:text-white transform duration-100 ease-out\",\n {\n \"opacity-0 hidden\": !open,\n \"text-gray-400\": !isActive,\n \"text-primary-600 dark:text-white\": isActive,\n \"-rotate-180\": openDropdown,\n },\n )}\n />\n ) : null}\n </>\n </li>\n </PopoverButton>\n\n {openDropdown && open && item.subItems && item.subItems.length > 0 ? (\n <div className=\"my-2 space-y-1\">\n {item.subItems.map((subItem) => (\n <SubNavItem\n key={subItem.label}\n isActive={activeSubNavItem === subItem.label}\n subItem={subItem}\n onClick={() => onClick(item, subItem.label)}\n />\n ))}\n </div>\n ) : null}\n\n {!open && item.subItems && item.subItems.length > 0 ? (\n <PopoverPanel 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\">\n {item.subItems.map((subItem) => (\n <SubNavItem\n key={subItem.label}\n inDropdown\n isActive={activeSubNavItem === subItem.label}\n subItem={subItem}\n onClick={() => onClick(item, subItem.label)}\n />\n ))}\n </PopoverPanel>\n ) : null}\n </Popover>\n)};","import { ReactElement, cloneElement, isValidElement } from \"react\";\nimport classNames from \"classnames\";\n\nexport const useIconProps = () => {\n const setProps = (\n icon: ReactElement,\n iconSize: number,\n additionalClass: string\n ) => {\n return isValidElement<{ size?: number; className?: string }>(icon)\n ? cloneElement(icon, {\n size: iconSize,\n className: classNames(icon.props.className, additionalClass),\n })\n : icon;\n };\n\n return { setProps };\n};\n","export type CountryISO = \"IN\" | \"BE\" | \"DE\" | \"FR\" | \"IT\" | \"NL\" | \"RU\" | \"US\";\n\ntype image = CountryISO | \"logo\";\n\n// Development images\n// const devImages: Record<image, string> = {\n// logo: require(\"./logo.png\"),\n// IN: require(\"./in.svg\"),\n// BE: require(\"./be.svg\"),\n// DE: require(\"./de.svg\"),\n// FR: require(\"./fr.svg\"),\n// IT: require(\"./it.svg\"),\n// NL: require(\"./nl.svg\"),\n// RU: require(\"./ru.svg\"),\n// US: require(\"./us.svg\"),\n\n// };\n\n// Production images (CDN)\nconst prodImages: Record<image, string> = {\n 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__\",\n IN: \"https://kapowaz.github.io/circle-flags/flags/in.svg\",\n BE: \"https://kapowaz.github.io/circle-flags/flags/be.svg\",\n DE: \"https://kapowaz.github.io/circle-flags/flags/de.svg\",\n FR: \"https://kapowaz.github.io/circle-flags/flags/fr.svg\",\n IT: \"https://kapowaz.github.io/circle-flags/flags/it.svg\",\n NL: \"https://kapowaz.github.io/circle-flags/flags/nl.svg\",\n RU: \"https://kapowaz.github.io/circle-flags/flags/ru.svg\",\n US: \"https://kapowaz.github.io/circle-flags/flags/us.svg\",\n};\n\nexport const images = prodImages;\n// export const images = process.env.NODE_ENV === \"production\" ? prodImages : devImages;\n","import React from \"react\";\nimport { SideNavProps, INavItem } from \"../@interfaces\";\nimport classNames from \"classnames\";\nimport { Typography } from \"../Typography\";\nimport { NavItem } from \"./NavItem\";\nimport { FiLogOut, FiSearch } from \"react-icons/fi\";\nimport { TextInput } from \"../TextInput\";\nimport { images } from \"../data/images\";\n\nexport const renderLogo = () => (\n <img src={images.logo} className=\"w-8 h-8 select-none\" alt=\"logo\" />\n);\n\nexport const SideNav = ({\n className,\n navItemsTop,\n navItemsBottom,\n username,\n email,\n open,\n setOpen,\n}: SideNavProps) => {\n\n\n const Logout = FiLogOut as React.FC<any>;\n const Search = FiSearch as React.FC<any>;\n\n const [searchString, setSearchString] = React.useState<string>(\"\");\n const [activeNavItem, setActiveNavItem] = React.useState<string>(\"\");\n const [activeSubNavItem, setActiveSubNavItem] = React.useState<string>(\"\");\n const [openDropdowns, setOpenDropdowns] = React.useState<string[]>([]);\n\n const handleSearch = (e: React.ChangeEvent<HTMLInputElement>) => {\n setSearchString(e.target.value);\n };\n\n const onClickNavItem = (item: INavItem, subNavPath?: string) => {\n if (subNavPath) {\n setActiveSubNavItem(subNavPath);\n }\n if (!item.toggleSidebar) {\n setActiveNavItem(item.label);\n } else if (item.toggleSidebar) {\n setOpen(!open);\n }\n \n if (item.subItems && openDropdowns.includes(item.label) && !subNavPath) {\n setOpenDropdowns(\n openDropdowns.filter((dropdownItem) => dropdownItem !== item.label),\n );\n } else if (item.subItems && !openDropdowns.includes(item.label)) {\n setOpenDropdowns([...openDropdowns, item.label]);\n }\n };\n \n return (\n <div\n data-testid= \"side-nav\"\n className={classNames(\n \"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\",\n {\n \"w-80\": open,\n \"w-24\": !open,\n \"border-r border-gray-300 dark:border-opacity-20\": true,\n },\n className,\n )}\n >\n <div className=\"flex items-center w-full mb-8 ml-9\"> \n {renderLogo()}\n <Typography\n variant=\"xl\"\n className={classNames(\"ml-2.5 whitespace-nowrap select-none\", {\n \"opacity-0 hidden\": !open,\n })}\n customWeight=\"medium\"\n >\n Box UI\n </Typography>\n </div>\n \n <div className=\"mb-8 mx-9\">\n {open ? (\n <TextInput\n type=\"text\"\n value={searchString}\n handleChange={handleSearch}\n placeholder=\"Search\"\n LeadingIcon={<Search />}\n />\n ) : (\n <div className=\"h-11\" />\n )}\n </div>\n \n <div\n className={classNames(\n \"flex flex-col justify-between h-full ml-5 w-70\",\n {\n \"w-14\": !open,\n },\n )}\n >\n <ul className=\"flex flex-col space-y-1\">\n {navItemsTop.map((item) => (\n <NavItem\n key={item.label}\n item={item}\n isActive={activeNavItem === item.label}\n activeSubNavItem={activeSubNavItem}\n open={open}\n openDropdown={openDropdowns.includes(item.label)}\n onClick={onClickNavItem}\n />\n ))}\n </ul>\n <ul className=\"flex flex-col mb-6 space-y-1\">\n {navItemsBottom.map((item) => (\n <NavItem\n key={item.label}\n item={item}\n isActive={activeNavItem === item.label}\n activeSubNavItem={activeSubNavItem}\n open={open}\n openDropdown={openDropdowns.includes(item.label)}\n onClick={onClickNavItem}\n />\n ))}\n </ul>\n </div>\n \n <hr\n className={classNames(\n \"ml-5 border-t border-gray-300 dark:border-opacity-20\",\n {\n \"w-70\": open,\n \"w-14\": !open,\n },\n )}\n />\n \n <div className=\"flex mt-6 w-70 ml-7\">\n {open ? (\n <div className=\"flex justify-between ml-3\">\n <div className=\"select-none\">\n <Typography\n variant=\"sm\"\n customWeight=\"medium\"\n customColor=\"text-gray-700 dark:text-white\"\n >\n {username}\n </Typography>\n \n <Typography variant=\"sm\" customColor=\"text-gray-500\">\n {email}\n </Typography>\n </div>\n \n <Logout size={24} className=\"ml-6 text-gray-400 cursor-pointer\" />\n </div>\n ) : null}\n </div>\n </div>\n );\n \n}","import React from \"react\";\nimport { IOption } from \"../@interfaces\";\nimport { CountryISO, images } from \"./images\";\n\ninterface ICountry {\n city: string;\n countryISO: CountryISO;\n}\n\nconst countriesData: ICountry[] = [\n {\n city: \"Ahmedabad\",\n countryISO: \"IN\",\n },\n {\n city: \"Amsterdam\",\n countryISO: \"NL\",\n },\n {\n city: \"Rome\",\n countryISO: \"IT\",\n },\n {\n city: \"Berlin\",\n countryISO: \"DE\",\n },\n {\n city: \"Paris\",\n countryISO: \"FR\",\n },\n {\n city: \"Washington\",\n countryISO: \"US\",\n },\n {\n city: \"Moscow\",\n countryISO: \"RU\",\n },\n {\n city: \"Brussels\",\n countryISO: \"BE\",\n },\n];\n\nexport const countries: IOption[] = countriesData.map((country) => ({\n value: country.countryISO,\n label: (\n <>\n <img\n src={images[country.countryISO]}\n alt={country.countryISO.toLowerCase()}\n className=\"w-5 h-5 mr-2\"\n />{\" \"}\n {`${country.city}, ${country.countryISO}`}\n </>\n ),\n}));\n","import React from \"react\";\r\nimport { INavItem } from \"../@interfaces\";\r\nimport {\r\n FiArrowLeft,\r\n FiBarChart2,\r\n FiCheckSquare,\r\n FiHome,\r\n FiLayers,\r\n FiSettings,\r\n FiFlag,\r\n FiMapPin,\r\n} from \"react-icons/fi\";\r\n\r\nconst Home = FiHome as React.FC<any>;\r\nconst Layers = FiLayers as React.FC<any>;\r\nconst Settings = FiSettings as React.FC<any>;\r\nconst Flag = FiFlag as React.FC<any>;\r\nconst MapPin = FiMapPin as React.FC<any>;\r\nconst CheckSquare = FiCheckSquare as React.FC<any>;\r\nconst BarChart = FiBarChart2 as React.FC<any>;\r\nconst ArrowLeft = FiArrowLeft as React.FC<any>;\r\n\r\nexport const navItemsTop: INavItem[] = [\r\n {\r\n order: 0,\r\n path: \"home\",\r\n label: \"Home\",\r\n icon: <Home />,\r\n },\r\n {\r\n order: 1,\r\n path: \"dashboard\",\r\n label: \"Dashboard\",\r\n icon: <BarChart />,\r\n subItems: [\r\n {\r\n order: 0,\r\n path: \"analytics\",\r\n label: \"Analytics\",\r\n },\r\n {\r\n order: 1,\r\n path: \"apps\",\r\n label: \"Apps\",\r\n },\r\n {\r\n order: 2,\r\n path: \"learn\",\r\n label: \"Learn\",\r\n },\r\n ],\r\n },\r\n {\r\n order: 2,\r\n path: \"projects\",\r\n label: \"Projects\",\r\n icon: <Layers />,\r\n },\r\n {\r\n order: 3,\r\n path: \"tasks\",\r\n label: \"Tasks\",\r\n icon: <CheckSquare />,\r\n },\r\n {\r\n order: 4,\r\n path: \"reporting\",\r\n label: \"Reporting\",\r\n icon: <Flag />,\r\n },\r\n {\r\n order: 5,\r\n path: \"rentals\",\r\n label: \"Rentals\",\r\n icon: <MapPin />,\r\n subItems: [\r\n {\r\n order: 0,\r\n path: \"all\",\r\n label: \"All rentals\",\r\n },\r\n {\r\n order: 1,\r\n path: \"popular\",\r\n label: \"Popular\",\r\n },\r\n {\r\n order: 2,\r\n path: \"recent\",\r\n label: \"Recently added\",\r\n },\r\n ],\r\n },\r\n];\r\n\r\nexport const navItemsBottom: INavItem[] = [\r\n {\r\n order: 0,\r\n path: \"settings\",\r\n label: \"Settings\",\r\n icon: <Settings />,\r\n },\r\n {\r\n order: 1,\r\n label: \"Close Navbar\",\r\n icon: <ArrowLeft />,\r\n toggleSidebar: true,\r\n },\r\n];\r\n","import React from 'react'\nimport { IButtonItem } from \"../@interfaces\";\nimport { FiCircle, FiList, FiGrid } from \"react-icons/fi\";\n\n\nconst Circle = FiCircle as React.FC<any>;\n\nconst List = FiList as React.FC<any>;\n\nconst Grid = FiGrid as React.FC<any>;\n\nexport const options1: IButtonItem[] = [\n { value: \"Leading\", content: \"Leading\" },\n { value: \"Middle\", content: \"Middle\" },\n { value: \"Trailing\", content: \"Trailing\" },\n];\n\nexport const options2: IButtonItem[] = [\n {\n value: \"first\",\n content: (\n <>\n <span><Circle size={20} className='mr-2'/></span>\n First\n </>\n ),\n },\n {\n value: \"second\",\n content: (\n <>\n <span><Circle size={20} className='mr-2'/></span>\n Second\n </>\n ),\n },\n {\n value: \"third\",\n content: (\n <>\n <span><Circle size={20} className='mr-2'/></span>\n Third\n </>\n ),\n },\n];\n\nexport const options3: IButtonItem[] = [\n {value:'list', content:<List size={20}/>},\n {value:'grid', content:<Grid size={20}/>},\n]\n","import React from \"react\";\nimport { IButtonItem } from \"./@interfaces\";\nimport classNames from \"classnames\";\n\nexport interface ButtonGroupProps {\n options: IButtonItem[];\n activeOption: string;\n setActiveOption: (activeOption: string) => void;\n}\n\nexport const ButtonGroup = ({\n options,\n activeOption,\n setActiveOption,\n}: ButtonGroupProps) => {\n return (\n <div>\n {options.map((option, index) => (\n <button\n key={option.value}\n className={classNames(\n \"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\",\n {\n \"rounded-l-lg\": index === 0,\n \"rounded-r-lg\": index === options.length - 1,\n \"bg-gray-50 dark:bg-gray-700\": activeOption === option.value,\n \"border-r-0\": index !== 0 && index !== options.length - 1\n }\n )}\n onClick={() => setActiveOption(option.value)}\n >\n {option.content}\n </button>\n ))}\n </div>\n );\n};\n","import React from \"react\";\nimport { IColor } from \"./@interfaces\";\n\nexport const ColorBox = ({ code, hex, bgClass }: IColor) => (\n<div\n key={bgClass}\n className=\"flex flex-col rounded-lg shadow-lg w-26 h-39 dark:bg-white\">\n <div className={`h-20 ${bgClass} rounded-t-lg`} />\n <div className=\"mx-3 my-3\">\n {code}\n <br/>\n {hex}\n </div>\n </div>\n);","import classNames from \"classnames\";\nimport React, { FC } from \"react\";\nimport { Typography } from \"../Typography\";\nimport { renderLogo } from \"./SideNav\";\nimport {MobileNavProps} from '../@interfaces';\n\n\nexport const MobileNavbar: FC<MobileNavProps> = ({ open, toggleOpen }) => (\n <div className=\"z-40 flex items-center justify-between h-20 py-6 bg-white shadow-md dark:bg-gray-900 px-9\">\n {renderLogo()}\n <Typography variant=\"h6\" customWeight=\"medium\" className=\"select-none\">\n Box UI\n </Typography>\n <svg\n role=\"button\"\n width=\"32\"\n height=\"32\"\n viewBox=\"0 0 32 32\"\n xmlns=\"http://www.w3.org/2000/svg\"\n className={classNames(\n \"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\",\n {\n \"opacity-0\": open,\n },\n )}\n data-testid= \"mobile-nav-toggle\"\n onClick={toggleOpen}\n >\n <path\n d=\"M4 16H22.6667M4 8H28M4 24H28\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n </div>\n);\n","import React from \"react\";\nimport { PaginationProps } from \"./@interfaces\";\nimport classNames from \"classnames\";\nimport { Pagination } from \"react-headless-pagination\";\nimport { FiArrowLeft, FiArrowRight } from \"react-icons/fi\";\n\nexport const Paginate = ({\n totalPages,\n page,\n isMobile,\n className,\n setPage,\n}: PaginationProps) => {\n const handlePageChange = (page: number) => {\n setPage(page);\n };\n\n const ArrowLeft = FiArrowLeft as React.FC<any>;\n const ArrowRight = FiArrowRight as React.FC<any>;\n\n if (isMobile) {\n return (\n <div className={classNames(\"flex w-full h-10 items-center\", className)}>\n <ArrowLeft\n data-testid=\"prevBtn\"\n size={20}\n className={classNames(\"mr-3 text-gray-500 dark:text-white\", {\n \"cursor-pointer\": page !== 0,\n \"opacity-50\": page === 0,\n })}\n onClick={() => {\n if (page > 0) {\n handlePageChange(page - 1);\n }\n }}\n />\n <div className=\"flex justify-center flex-grow text-sm text-gray-700 select-none dark:text-white\">\n {`Page ${page} of ${totalPages}`}\n </div>\n <ArrowRight\n data-testid=\"nextBtn\"\n size={20}\n className={classNames(\"ml-3 text-gray-500 dark:text-white\", {\n \"cursor-pointer\": page !== totalPages - 1,\n \"opacity-50\": page === totalPages - 1,\n })}\n onClick={() => {\n if (page < totalPages - 1) {\n handlePageChange(page + 1);\n }\n }}\n />\n </div>\n );\n }\n\n return (\n <Pagination\n className={classNames(\n \"flex w-full items-center h-10 text-sm select-none\",\n className\n )}\n currentPage={page}\n totalPages={totalPages}\n edgePageCount={2}\n setCurrentPage={handlePageChange}\n truncableText=\"...\"\n middlePagesSiblingCount={2}\n truncableClassName=\"w-10 px-0.5 text-center dark:text-gray-500\"\n >\n <Pagination.PrevButton\n className={classNames(\n \"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\",\n {\n \"cursor-pointer\": page !== 0,\n \"opacity-50\": page === 0,\n }\n )}\n >\n <ArrowLeft size={20} className={classNames(\"mr-3\")} />\n Previous\n </Pagination.PrevButton>\n <div className=\"flex items-center justify-center flex-grow list-none\">\n <Pagination.PageButton\n activeClassName=\"bg-primary-50 dark:bg-opacity-0 text-primary-600 dark:text-white\"\n inactiveClassName=\"text-gray-500\"\n className=\"flex items-center justify-center h-10 w-10 rounded-full cursor-pointer font-medium\"\n />\n </div>\n <Pagination.NextButton\n className={classNames(\n \"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\",\n {\n \"cursor-pointer\": page !== totalPages - 1,\n \"opacity-50\": page === totalPages - 1,\n }\n )}\n >\n Next\n <ArrowRight size={20} className={classNames(\"ml-3\")} />\n </Pagination.NextButton>\n </Pagination>\n );\n};\n","import React, {\n FC,\n ReactElement,\n isValidElement,\n cloneElement,\n} from \"react\";\nimport { SelectProps } from \"./@interfaces\";\nimport {\n Listbox,\n ListboxButton,\n ListboxOption,\n ListboxOptions,\n} from \"@headlessui/react\";\nimport classNames from \"classnames\";\nimport {FiCheck, FiChevronDown} from 'react-icons/fi'\n\nexport const Select: FC<SelectProps> = ({\n options,\n selectedOption,\n setSelectedOption,\n placeholder,\n LeadingIcon,\n width,\n}) => {\n\n const ArrowDown = FiChevronDown as React.FC<any>;\n const Check = FiCheck as React.FC<any>;\n\n const setProps = (\n icon: ReactElement,\n iconSize: number,\n additionalClass: string\n ) => {\n if (\n isValidElement<{ size?: number; className?: string }>(icon) &&\n \"size\" in icon.props\n ) {\n return cloneElement(icon, {\n size: iconSize,\n className: classNames(icon.props.className, additionalClass),\n });\n }\n return icon;\n };\n\n return (\n <div className={classNames(\"relative inline-block\", width)}>\n <Listbox value={selectedOption && selectedOption.value} onChange={setSelectedOption}>\n {({ open }) => (\n <>\n <ListboxButton 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\",\n \"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\",\n {\n \"text-gray-900 dark:text-white\": selectedOption,\n \"text-gray-500 dark:text-gray-300\": !selectedOption,\n },\n width,)}>\n {LeadingIcon && (\n <div className=\"w-5 h-5 mr-2 overflow-hidden\" data-testid=\"leading-icon\">\n {setProps(LeadingIcon, 20, classNames(\"text-gray-400\"))}\n </div>\n )}\n {selectedOption ? selectedOption.label : placeholder}\n <ArrowDown\n size={20}\n className={classNames(\n \"text-gray-500 dark:text-gray-300 transform duration-100 ease-out\",\n {\n \"-rotate-180\": open,\n \"ml-auto\": width,\n \"ml-3.5\": !width,\n },\n )}\n />\n </ListboxButton>\n <ListboxOptions 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\">\n {options?.map((option, index) => (\n <ListboxOption as={React.Fragment} key={option.value} value={option.value}>\n {({focus, selected}) => (\n <li className={classNames(classNames(\n \"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\",\n {\n \"bg-primary-25 dark:bg-gray-100 dark:bg-opacity-10\":\n focus,\n \"rounded-t-lg\": index === 0,\n \"rounded-b-lg\": index === options.length - 1,\n },\n ))}>\n <div className=\"flex items-center\">{option.label}</div>\n {selected && <Check className=\"ml-5 text-primary-600 dark:text-white\" />}\n </li>\n )}\n \n </ListboxOption>\n ))}\n </ListboxOptions>\n </>\n )}\n </Listbox>\n </div>\n );\n};\n","import { IColor } from \"../@interfaces\";\n\nexport const colors: IColor[] = [\n {\n bgClass: \"bg-gray-2\",\n code: 25,\n hex: \"#FCFCF\",\n },\n {\n bgClass: \"bg-gray-50\",\n code: 50,\n hex: \"#F9FAFB\",\n },\n {\n bgClass: \"bg-gray-100\",\n code: 100,\n hex: \"#F2F4F7\",\n },\n {\n bgClass: \"bg-gray-200\",\n code: 200,\n hex: \"#E4E7EC\",\n },\n {\n bgClass: \"bg-gray-300\",\n code: 300,\n hex: \"#D0D5DD\",\n },\n {\n bgClass: \"bg-gray-400\",\n code: 400,\n hex: \"#98A2B3\",\n },\n {\n bgClass: \"bg-gray-500\",\n code: 500,\n hex: \"#667085\",\n },\n {\n bgClass: \"bg-gray-600\",\n code: 600,\n hex: \"#475467\",\n },\n {\n bgClass: \"bg-gray-700\",\n code: 700,\n hex: \"#344054\",\n },\n {\n bgClass: \"bg-gray-800\",\n code: 800,\n hex: \"#1D2939\",\n },\n {\n bgClass: \"bg-gray-900\",\n code: 900,\n hex: \"#101828\",\n },\n {\n bgClass: \"bg-primary-25\",\n code: 25,\n hex: \"#F5FAFF\",\n },\n {\n bgClass: \"bg-primary-50\",\n code: 50,\n hex: \"#EFF8FF\",\n },\n {\n bgClass: \"bg-primary-100\",\n code: 100,\n hex: \"#D1E9FF\",\n },\n {\n bgClass: \"bg-primary-200\",\n code: 200,\n hex: \"#B2DDFF\",\n },\n {\n bgClass: \"bg-primary-300\",\n code: 300,\n hex: \"#84CAFF\",\n },\n {\n bgClass: \"bg-primary-400\",\n code: 400,\n hex: \"#53B1FD\",\n },\n {\n bgClass: \"bg-primary-500\",\n code: 500,\n hex: \"#2E90FA\",\n },\n {\n bgClass: \"bg-primary-600\",\n code: 600,\n hex: \"#1570EF\",\n },\n {\n bgClass: \"bg-primary-700\",\n code: 700,\n hex: \"#175CD3\",\n },\n {\n bgClass: \"bg-primary-800\",\n code: 800,\n hex: \"#1849A9\",\n },\n {\n bgClass: \"bg-primary-900\",\n code: 900,\n hex: \"#194185\",\n },\n {\n bgClass: \"bg-error-25\",\n code: 25,\n hex: \"#FFFBFA\",\n },\n {\n bgClass: \"bg-error-50\",\n code: 50,\n hex: \"#FEF3F2\",\n },\n {\n bgClass: \"bg-error-100\",\n code: 100,\n hex: \"#FEE4E2\",\n },\n {\n bgClass: \"bg-error-200\",\n code: 200,\n hex: \"#FECDCA\",\n },\n {\n bgClass: \"bg-error-300\",\n code: 300,\n hex: \"#FDA29B\",\n },\n {\n bgClass: \"bg-error-400\",\n code: 400,\n hex: \"#F97066\",\n },\n {\n bgClass: \"bg-error-500\",\n code: 500,\n hex: \"#F04438\",\n },\n {\n bgClass: \"bg-error-600\",\n code: 600,\n hex: \"#D92D20\",\n },\n {\n bgClass: \"bg-error-700\",\n code: 700,\n hex: \"#B42318\",\n },\n {\n bgClass: \"bg-error-800\",\n code: 800,\n hex: \"#912018\",\n },\n {\n bgClass: \"bg-error-900\",\n code: 900,\n hex: \"#7A271A\",\n },\n {\n bgClass: \"bg-warning-25\",\n code: 25,\n hex: \"#FFFCF5\",\n },\n {\n bgClass: \"bg-warning-50\",\n code: 50,\n hex: \"#FFFAEB\",\n },\n {\n bgClass: \"bg-warning-100\",\n code: 100,\n hex: \"#FEF0C7\",\n },\n {\n bgClass: \"bg-warning-200\",\n code: 200,\n hex: \"#FEDF89\",\n },\n {\n bgClass: \"bg-warning-300\",\n code: 300,\n hex: \"#FEC84B\",\n },\n {\n bgClass: \"bg-warning-400\",\n code: 400,\n hex: \"#FDB022\",\n },\n {\n bgClass: \"bg-warning-500\",\n code: 500,\n hex: \"#F79009\",\n },\n {\n bgClass: \"bg-warning-600\",\n code: 600,\n hex: \"#DC6803\",\n },\n {\n bgClass: \"bg-warning-700\",\n code: 700,\n hex: \"#B54708\",\n },\n {\n bgClass: \"bg-warning-800\",\n code: 800,\n hex: \"#93370D\",\n },\n {\n bgClass: \"bg-warning-900\",\n code: 900,\n hex: \"#7A2E0E\",\n },\n {\n bgClass: \"bg-success-25\",\n code: 25,\n hex: \"#F6FEF9\",\n },\n {\n bgClass: \"bg-success-50\",\n code: 50,\n hex: \"#ECFDF3\",\n },\n {\n bgClass: \"bg-success-100\",\n code: 100,\n hex: \"#D1FADF\",\n },\n {\n bgClass: \"bg-success-200\",\n code: 200,\n hex: \"#A6F4C5\",\n },\n {\n bgClass: \"bg-success-300\",\n code: 300,\n hex: \"#6CE9A6\",\n },\n {\n bgClass: \"bg-success-400\",\n code: 400,\n hex: \"#32D583\",\n },\n {\n bgClass: \"bg-success-500\",\n code: 500,\n hex: \"#12B76A\",\n },\n {\n bgClass: \"bg-success-600\",\n code: 600,\n hex: \"#039855\",\n },\n {\n bgClass: \"bg-success-700\",\n code: 700,\n hex: \"#027A48\",\n },\n {\n bgClass: \"bg-success-800\",\n code: 800,\n hex: \"#05603A\",\n },\n {\n bgClass: \"bg-success-900\",\n code: 900,\n hex: \"#054F31\",\n },\n];\n","import { IOption } from \"../@interfaces\";\n\nexport const prices: IOption[] = [\n {\n label: \"Any price\",\n value: \"-1\",\n },\n {\n label: \"Below 50\",\n value: \"0\",\n },\n {\n label: \"50 - 100\",\n value: \"50\",\n },\n {\n label: \"100 - 200\",\n value: \"100\",\n },\n {\n label: \"200 - 300\",\n value: \"200\",\n },\n {\n label: \"300 - 400\",\n value: \"300\",\n },\n {\n label: \"400 - 500\",\n value: \"400\",\n },\n {\n label: \"500 - 600\",\n value: \"500\",\n },\n];\n"],"names":["BadgeSizeClasses","sm","md","lg","BadgeVariantClasses","gray","primary","warning","error","success","buttonVariantClasses","default","hover","focus","disabled","secondary","secondaryGray","tertiary","tertiaryGray","buttonSizeClasses","xl","2xl","buttonIconSizeClasses","TypographyVariantClasses","xs","h6","h5","h4","h3","h2","h1","TypographyWeightClasses","regular","medium","semibold","bold","Typography","_ref","variant","customWeight","customColor","className","children","TypographyVariantClassName","TypographyWeightClassName","Component","includes","React","classNames","tracking-tight","text-black dark:text-white","TextInput","type","value","label","placeholder","helperText","LeadingIcon","TrailingIcon","leadingText","handleChange","setClassName","icon","additionalClass","isValidElement","cloneElement","props","inputId","toLowerCase","replace","htmlFor","flex items-center","text-error-500","text-gray-400","bg-gray-50 dark:bg-gray-700","dark:bg-gray-800","id","onChange","pl-9","pr-9","rounded-l-0 rounded-r-lg","rounded-lg","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","border-error-300 focus:ring-4 focus:border-error-300 focus:ring-error-100","bg-white dark:bg-gray-800","SubNavItem","inDropdown","isActive","subItem","onClick","key","bg-primary-50 dark:bg-gray-100 dark:bg-opacity-10","text-gray-800 dark:text-white","text-primary-600 dark:text-white","pl-13","pl-4","NavItem","item","activeSubNavItem","open","openDropdown","setProps","iconSize","size","ArrowDown","FiChevronDown","Popover","PopoverButton","as","Fragment","px-4","ml-2 px-2 w-10","-rotate-180","toggleSidebar","text-gray-900","opacity-0 hidden","subItems","length","map","PopoverPanel","images","logo","IN","BE","DE","FR","IT","NL","RU","US","renderLogo","src","alt","countries","city","countryISO","country","Layers","FiLayers","Settings","FiSettings","Flag","FiFlag","MapPin","FiMapPin","CheckSquare","FiCheckSquare","BarChart","FiBarChart2","ArrowLeft","FiArrowLeft","navItemsTop","order","path","FiHome","navItemsBottom","Circle","FiCircle","List","FiList","Grid","FiGrid","options2","content","options3","IconOnly","buttonProps","buttonVariantClassName","[object Object]","mr-2","mr-3","ml-2","ml-3","setIconSize","options","activeOption","setActiveOption","option","index","rounded-l-lg","rounded-r-lg","border-r-0","code","hex","bgClass","toggleOpen","role","width","height","viewBox","xmlns","opacity-0","d","strokeWidth","strokeLinecap","strokeLinejoin","totalPages","page","isMobile","setPage","handlePageChange","ArrowRight","FiArrowRight","cursor-pointer","opacity-50","Pagination","currentPage","edgePageCount","setCurrentPage","truncableText","middlePagesSiblingCount","truncableClassName","PrevButton","PageButton","activeClassName","inactiveClassName","NextButton","selectedOption","setSelectedOption","Check","FiCheck","Listbox","_ref2","ListboxButton","text-gray-900 dark:text-white","text-gray-500 dark:text-gray-300","ml-auto","ml-3.5","ListboxOptions","ListboxOption","_ref3","selected","bg-primary-25 dark:bg-gray-100 dark:bg-opacity-10","rounded-t-lg","rounded-b-lg","username","email","setOpen","Logout","FiLogOut","Search","FiSearch","searchString","setSearchString","useState","activeNavItem","setActiveNavItem","setActiveSubNavItem","openDropdowns","setOpenDropdowns","onClickNavItem","subNavPath","filter","dropdownItem","w-80","w-24","border-r border-gray-300 dark:border-opacity-20","e","target","w-14","w-70"],"mappings":"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"}
@@ -177,6 +177,7 @@ const Paginate = _ref => {
177
177
  return /*#__PURE__*/React.createElement("div", {
178
178
  className: classNames("flex w-full h-10 items-center", className)
179
179
  }, /*#__PURE__*/React.createElement(ArrowLeft, {
180
+ "data-testid": "prevBtn",
180
181
  size: 20,
181
182
  className: classNames("mr-3 text-gray-500 dark:text-white", {
182
183
  "cursor-pointer": page !== 0,
@@ -190,6 +191,7 @@ const Paginate = _ref => {
190
191
  }), /*#__PURE__*/React.createElement("div", {
191
192
  className: "flex justify-center flex-grow text-sm text-gray-700 select-none dark:text-white"
192
193
  }, `Page ${page} of ${totalPages}`), /*#__PURE__*/React.createElement(ArrowRight, {
194
+ "data-testid": "nextBtn",
193
195
  size: 20,
194
196
  className: classNames("ml-3 text-gray-500 dark:text-white", {
195
197
  "cursor-pointer": page !== totalPages - 1,
@@ -271,7 +273,8 @@ const Select = _ref => {
271
273
  "text-gray-500 dark:text-gray-300": !selectedOption
272
274
  }, width)
273
275
  }, LeadingIcon && (/*#__PURE__*/React.createElement("div", {
274
- className: "w-5 h-5 mr-2 overflow-hidden"
276
+ className: "w-5 h-5 mr-2 overflow-hidden",
277
+ "data-testid": "leading-icon"
275
278
  }, setProps(LeadingIcon, 20, classNames("text-gray-400")))), selectedOption ? selectedOption.label : placeholder, /*#__PURE__*/React.createElement(ArrowDown, {
276
279
  size: 20,
277
280
  className: classNames("text-gray-500 dark:text-gray-300 transform duration-100 ease-out", {
@@ -371,12 +374,15 @@ const TextInput = _ref => {
371
374
  const {
372
375
  setClassName
373
376
  } = useIconClassName();
374
- return /*#__PURE__*/React.createElement("div", null, label && (/*#__PURE__*/React.createElement(Typography, {
377
+ const inputId = `textinput-${(label === null || label === void 0 ? void 0 : label.toLowerCase().replace(/\s+/g, '-')) || 'input'}`;
378
+ return /*#__PURE__*/React.createElement("div", null, label && (/*#__PURE__*/React.createElement("label", {
379
+ htmlFor: inputId
380
+ }, /*#__PURE__*/React.createElement(Typography, {
375
381
  variant: "sm",
376
382
  customWeight: "medium",
377
383
  customColor: "text-gray-700 dark:text-white",
378
384
  className: "mb-1.5"
379
- }, label)), /*#__PURE__*/React.createElement("div", {
385
+ }, label))), /*#__PURE__*/React.createElement("div", {
380
386
  className: classNames("relative", {
381
387
  "flex items-center": leadingText
382
388
  })
@@ -393,6 +399,7 @@ const TextInput = _ref => {
393
399
  "dark:bg-gray-800": !disabled
394
400
  })
395
401
  }, leadingText)), /*#__PURE__*/React.createElement("input", {
402
+ id: inputId,
396
403
  type: type,
397
404
  value: value,
398
405
  placeholder: placeholder,
@@ -408,14 +415,10 @@ const TextInput = _ref => {
408
415
  "bg-white dark:bg-gray-800": !disabled,
409
416
  "bg-gray-50 dark:bg-gray-700": disabled
410
417
  })
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"
418
+ })), error && (/*#__PURE__*/React.createElement("label", {
419
+ className: "text-sm font-normal mt-1.5 text-error-500"
420
+ }, error)), helperText && (/*#__PURE__*/React.createElement("label", {
421
+ className: "text-sm font-normal mt-1.5 text-gray-500"
419
422
  }, helperText)));
420
423
  };
421
424
 
@@ -590,6 +593,7 @@ const SideNav = _ref => {
590
593
  }
591
594
  };
592
595
  return /*#__PURE__*/React.createElement("div", {
596
+ "data-testid": "side-nav",
593
597
  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
598
  "w-80": open,
595
599
  "w-24": !open,
@@ -673,6 +677,7 @@ const MobileNavbar = _ref => {
673
677
  customWeight: "medium",
674
678
  className: "select-none"
675
679
  }, "Box UI"), /*#__PURE__*/React.createElement("svg", {
680
+ role: "button",
676
681
  width: "32",
677
682
  height: "32",
678
683
  viewBox: "0 0 32 32",
@@ -680,6 +685,7 @@ const MobileNavbar = _ref => {
680
685
  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
686
  "opacity-0": open
682
687
  }),
688
+ "data-testid": "mobile-nav-toggle",
683
689
  onClick: toggleOpen
684
690
  }, /*#__PURE__*/React.createElement("path", {
685
691
  d: "M4 16H22.6667M4 8H28M4 24H28",