@js-empire/emperor-ui 1.3.10 → 1.3.12

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 (586) hide show
  1. package/.cursor/rules/code-conventions.mdc +50 -0
  2. package/.husky/pre-commit +4 -0
  3. package/.prettierrc +10 -0
  4. package/.storybook/main.ts +24 -0
  5. package/.storybook/preview.ts +19 -0
  6. package/.storybook/vitest.setup.ts +7 -0
  7. package/.vscode/extensions.json +1 -0
  8. package/dist/emperor-ui.js +158 -4236
  9. package/dist/emperor-ui.umd.cjs +52 -0
  10. package/dist/globals.css +1 -1
  11. package/dist/icons/emperor-ui-logo.ico +0 -0
  12. package/dist/images/avatar-female.jpg +0 -0
  13. package/dist/images/avatar-male.jpg +0 -0
  14. package/dist/images/emperor-ui-logo.png +0 -0
  15. package/dist/index-4OxAyqvp.js +5 -0
  16. package/dist/index-CHrqdTZ9.js +290 -0
  17. package/dist/index-DXWNWGH3.js +57021 -0
  18. package/dist/index.d.ts +1357 -0
  19. package/dist/src-UW24ZMRV-DQtCWsbT.js +5 -0
  20. package/eslint.config.js +34 -0
  21. package/index.html +13 -0
  22. package/package.json +11 -57
  23. package/public/icons/emperor-ui-logo.ico +0 -0
  24. package/public/images/avatar-female.jpg +0 -0
  25. package/public/images/avatar-male.jpg +0 -0
  26. package/public/images/emperor-ui-logo.png +0 -0
  27. package/src/animations/blink.ts +26 -0
  28. package/src/animations/floating.ts +12 -0
  29. package/src/animations/index.ts +2 -0
  30. package/src/components/atoms/brand/brand.stories.tsx +29 -0
  31. package/src/components/atoms/brand/brand.tsx +56 -0
  32. package/src/components/atoms/brand/index.ts +1 -0
  33. package/src/components/atoms/brand/styles/classes.ts +9 -0
  34. package/src/components/atoms/brand/styles/index.ts +2 -0
  35. package/src/components/atoms/brand/styles/styles.ts +0 -0
  36. package/src/components/atoms/color-picker/color-picker.tsx +12 -0
  37. package/src/components/atoms/color-picker/free-color-picker.tsx +58 -0
  38. package/src/components/atoms/color-picker/index.ts +3 -0
  39. package/src/components/atoms/color-picker/preset-color-picker.tsx +66 -0
  40. package/src/components/atoms/color-picker/stories/color-picker.stories.tsx +63 -0
  41. package/src/components/atoms/column/column.stories.tsx +37 -0
  42. package/src/components/atoms/column/column.tsx +21 -0
  43. package/src/components/atoms/column/index.ts +1 -0
  44. package/src/components/atoms/container/column.stories.tsx +37 -0
  45. package/src/components/atoms/container/container.tsx +28 -0
  46. package/src/components/atoms/container/index.ts +1 -0
  47. package/src/components/atoms/copy-button/copy-button.tsx +73 -0
  48. package/src/components/atoms/copy-button/index.ts +1 -0
  49. package/src/components/atoms/copy-button/stories/copy-button.stories.tsx +21 -0
  50. package/src/components/atoms/field/field.tsx +81 -0
  51. package/src/components/atoms/field/index.ts +3 -0
  52. package/src/components/atoms/field/styles/classes.ts +9 -0
  53. package/src/components/atoms/field/styles/index.ts +1 -0
  54. package/src/components/atoms/field/units/autocomplete-field.tsx +49 -0
  55. package/src/components/atoms/field/units/checkbox-field.tsx +35 -0
  56. package/src/components/atoms/field/units/index.ts +7 -0
  57. package/src/components/atoms/field/units/input-field.tsx +35 -0
  58. package/src/components/atoms/field/units/radio-field.tsx +43 -0
  59. package/src/components/atoms/field/units/select-field.tsx +50 -0
  60. package/src/components/atoms/field/units/switch-field.tsx +35 -0
  61. package/src/components/atoms/field/units/textarea-field.tsx +37 -0
  62. package/src/components/atoms/filter/filter.tsx +93 -0
  63. package/src/components/atoms/filter/index.ts +3 -0
  64. package/src/components/atoms/filter/stories/filter.stories.tsx +238 -0
  65. package/src/components/atoms/filter/styles/classes.ts +20 -0
  66. package/src/components/atoms/filter/styles/index.ts +1 -0
  67. package/src/components/atoms/filter/units/autocomplete-filter.tsx +66 -0
  68. package/src/components/atoms/filter/units/checkbox-filter.tsx +42 -0
  69. package/src/components/atoms/filter/units/checkbox-group-filter.tsx +68 -0
  70. package/src/components/atoms/filter/units/date-filter.tsx +46 -0
  71. package/src/components/atoms/filter/units/index.ts +9 -0
  72. package/src/components/atoms/filter/units/numeric-filter.tsx +41 -0
  73. package/src/components/atoms/filter/units/range-filter.tsx +65 -0
  74. package/src/components/atoms/filter/units/search-filter.tsx +53 -0
  75. package/src/components/atoms/filter/units/select-filter.tsx +57 -0
  76. package/src/components/atoms/filter/units/switch-filter.tsx +35 -0
  77. package/src/components/atoms/index.ts +11 -0
  78. package/src/components/atoms/portal/index.ts +1 -0
  79. package/src/components/atoms/portal/portal.stories.tsx +43 -0
  80. package/src/components/atoms/portal/portal.tsx +25 -0
  81. package/src/components/atoms/row/index.ts +1 -0
  82. package/src/components/atoms/row/row.stories.tsx +37 -0
  83. package/src/components/atoms/row/row.tsx +26 -0
  84. package/src/components/atoms/theme-switch/index.ts +1 -0
  85. package/src/components/atoms/theme-switch/styles/classes.ts +16 -0
  86. package/src/components/atoms/theme-switch/styles/index.ts +1 -0
  87. package/src/components/atoms/theme-switch/theme-switch.stories.tsx +26 -0
  88. package/src/components/atoms/theme-switch/theme-switch.tsx +54 -0
  89. package/src/components/atoms/uploader/components/avatar-label.tsx +102 -0
  90. package/src/components/atoms/uploader/components/index.ts +8 -0
  91. package/src/components/atoms/uploader/components/upload-file-error-box.tsx +40 -0
  92. package/src/components/atoms/uploader/components/upload-file-input.tsx +36 -0
  93. package/src/components/atoms/uploader/components/upload-file-label.tsx +92 -0
  94. package/src/components/atoms/uploader/components/upload-file-listing.tsx +64 -0
  95. package/src/components/atoms/uploader/components/uploader-title.tsx +21 -0
  96. package/src/components/atoms/uploader/components/uploader.tsx +89 -0
  97. package/src/components/atoms/uploader/components/view-image-modal.tsx +41 -0
  98. package/src/components/atoms/uploader/index.ts +1 -0
  99. package/src/components/atoms/uploader/stories/uploader.stories.tsx +202 -0
  100. package/src/components/index.ts +4 -0
  101. package/src/components/molecules/index.ts +4 -0
  102. package/src/components/molecules/item-card/components/actions/index.ts +3 -0
  103. package/src/components/molecules/item-card/components/actions/item-actions-buttons.tsx +43 -0
  104. package/src/components/molecules/item-card/components/actions/item-actions-dropdown.tsx +57 -0
  105. package/src/components/molecules/item-card/components/actions/item-actions-overlay.tsx +50 -0
  106. package/src/components/molecules/item-card/components/additions/index.ts +2 -0
  107. package/src/components/molecules/item-card/components/additions/item-banner.tsx +22 -0
  108. package/src/components/molecules/item-card/components/additions/loading-item.tsx +88 -0
  109. package/src/components/molecules/item-card/components/card/index.ts +4 -0
  110. package/src/components/molecules/item-card/components/card/item-card-body.tsx +74 -0
  111. package/src/components/molecules/item-card/components/card/item-card-footer.tsx +79 -0
  112. package/src/components/molecules/item-card/components/card/item-card-header.tsx +69 -0
  113. package/src/components/molecules/item-card/components/card/item-card.tsx +123 -0
  114. package/src/components/molecules/item-card/components/index.ts +3 -0
  115. package/src/components/molecules/item-card/index.ts +2 -0
  116. package/src/components/molecules/item-card/stories/item-card.stories.tsx +218 -0
  117. package/src/components/molecules/item-card/styles/classes.ts +141 -0
  118. package/src/components/molecules/item-card/styles/index.ts +1 -0
  119. package/src/components/molecules/nav-bar/index.ts +3 -0
  120. package/src/components/molecules/nav-bar/nav-bar-item.tsx +64 -0
  121. package/src/components/molecules/nav-bar/nav-bar.tsx +57 -0
  122. package/src/components/molecules/nav-bar/stories/hover-effect/nav-bar-hover-effect.stories.tsx +52 -0
  123. package/src/components/molecules/nav-bar/stories/nav-bar.stories.tsx +50 -0
  124. package/src/components/molecules/nav-bar/styles/classes.ts +68 -0
  125. package/src/components/molecules/nav-bar/styles/index.ts +2 -0
  126. package/src/components/molecules/nav-bar/styles/styles.ts +85 -0
  127. package/src/components/molecules/nav-bar/sub-items-box.tsx +58 -0
  128. package/src/components/molecules/scaffold/index.ts +2 -0
  129. package/src/components/molecules/scaffold/scaffold.stories.tsx +21 -0
  130. package/src/components/molecules/scaffold/scaffold.tsx +23 -0
  131. package/src/components/molecules/scaffold/styles/index.ts +1 -0
  132. package/src/components/molecules/scaffold/styles/scaffold-classes.ts +10 -0
  133. package/src/components/molecules/side-bar/compact-side-bar.tsx +77 -0
  134. package/src/components/molecules/side-bar/index.ts +1 -0
  135. package/src/components/molecules/side-bar/side-bar-drawer.tsx +113 -0
  136. package/src/components/molecules/side-bar/side-bar.stories.tsx +111 -0
  137. package/src/components/molecules/side-bar/side-bar.tsx +31 -0
  138. package/src/components/molecules/side-bar/styles/classes.ts +28 -0
  139. package/src/components/molecules/side-bar/styles/index.ts +2 -0
  140. package/src/components/molecules/side-bar/styles/styles.ts +13 -0
  141. package/src/components/organisms/deletion-confirmor/deletion-confirmor.tsx +110 -0
  142. package/src/components/organisms/deletion-confirmor/index.ts +3 -0
  143. package/src/components/organisms/deletion-confirmor/stories/components.tsx +25 -0
  144. package/src/components/organisms/deletion-confirmor/stories/deletion-confirmor.stories.tsx +78 -0
  145. package/src/components/organisms/deletion-confirmor/styles/classes.ts +28 -0
  146. package/src/components/organisms/deletion-confirmor/styles/index.ts +2 -0
  147. package/src/components/organisms/deletion-confirmor/styles/styles.ts +4 -0
  148. package/src/components/organisms/footer/copy-rights-box.tsx +27 -0
  149. package/src/components/organisms/footer/footer.tsx +75 -0
  150. package/src/components/organisms/footer/index.ts +5 -0
  151. package/src/components/organisms/footer/policies-box.tsx +27 -0
  152. package/src/components/organisms/footer/quick-links-box.tsx +46 -0
  153. package/src/components/organisms/footer/social-links-box.tsx +33 -0
  154. package/src/components/organisms/footer/stories/footer.stories.tsx +61 -0
  155. package/src/components/organisms/footer/styles/classes.ts +71 -0
  156. package/src/components/organisms/footer/styles/index.ts +2 -0
  157. package/src/components/organisms/footer/styles/styles.ts +6 -0
  158. package/src/components/organisms/form-builder/form-builder.stories.tsx +144 -0
  159. package/src/components/organisms/form-builder/form-builder.tsx +75 -0
  160. package/src/components/organisms/form-builder/index.ts +1 -0
  161. package/src/components/organisms/header/header.tsx +87 -0
  162. package/src/components/organisms/header/index.ts +1 -0
  163. package/src/components/organisms/header/segmented-header-content.tsx +29 -0
  164. package/src/components/organisms/header/stories/header.stories.tsx +144 -0
  165. package/src/components/organisms/header/styles/classes.ts +22 -0
  166. package/src/components/organisms/header/styles/index.ts +2 -0
  167. package/src/components/organisms/header/styles/styles.ts +39 -0
  168. package/src/components/organisms/index.ts +6 -0
  169. package/src/components/organisms/item-details/index.ts +1 -0
  170. package/src/components/organisms/item-details/item-details.tsx +6 -0
  171. package/src/components/organisms/listings/empty-listings.tsx +80 -0
  172. package/src/components/organisms/listings/index.ts +3 -0
  173. package/src/components/organisms/listings/listings.tsx +96 -0
  174. package/src/components/organisms/listings/stories/grid-listings.stories.tsx +153 -0
  175. package/src/components/organisms/listings/stories/list-listings.stories.tsx +171 -0
  176. package/src/components/organisms/listings/styles/classes.ts +49 -0
  177. package/src/components/organisms/listings/styles/index.ts +2 -0
  178. package/src/components/organisms/listings/styles/styles.ts +6 -0
  179. package/src/components/templates/index.ts +1 -0
  180. package/src/components/templates/landing-page/index.ts +1 -0
  181. package/src/components/templates/landing-page/landing-page.stories.tsx +21 -0
  182. package/src/components/templates/landing-page/landing-page.tsx +57 -0
  183. package/src/components/templates/landing-page/styles/classes.ts +11 -0
  184. package/src/components/templates/landing-page/styles/index.ts +1 -0
  185. package/src/constants/animations.ts +14 -0
  186. package/src/constants/card.tsx +42 -0
  187. package/src/constants/defaults.ts +59 -0
  188. package/src/constants/fake.ts +5 -0
  189. package/src/constants/footer.tsx +157 -0
  190. package/src/constants/index.ts +6 -0
  191. package/src/constants/uploader.ts +33 -0
  192. package/src/context/emperor-ui-context.ts +6 -0
  193. package/src/context/form-builder-context.tsx +8 -0
  194. package/src/context/index.ts +4 -0
  195. package/src/context/navigation-context.ts +6 -0
  196. package/src/context/uploader-context.ts +6 -0
  197. package/src/enums/index.ts +2 -0
  198. package/src/enums/placeholders.ts +5 -0
  199. package/src/enums/preserved-keys.ts +3 -0
  200. package/src/examples/index.ts +1 -0
  201. package/src/hooks/index.ts +8 -0
  202. package/src/hooks/use-emperor-ui.ts +12 -0
  203. package/src/hooks/use-filters.ts +20 -0
  204. package/src/hooks/use-form-builder-context.ts +16 -0
  205. package/src/hooks/use-navigation.ts +12 -0
  206. package/src/hooks/use-search-params-handler.tsx +186 -0
  207. package/src/hooks/use-uploader-context.ts +14 -0
  208. package/src/hooks/use-uploader.tsx +164 -0
  209. package/src/hooks/use-window-size.tsx +53 -0
  210. package/src/i18n/configs/i18n.ts +7 -0
  211. package/src/i18n/configs/index.ts +1 -0
  212. package/src/i18n/constants/index.ts +1 -0
  213. package/src/i18n/constants/locales.ts +4 -0
  214. package/src/i18n/index.ts +5 -0
  215. package/src/i18n/locales/ar.ts +15 -0
  216. package/src/i18n/locales/atoms/ar.ts +18 -0
  217. package/src/i18n/locales/atoms/en.ts +18 -0
  218. package/src/i18n/locales/atoms/index.ts +2 -0
  219. package/src/i18n/locales/common/ar.ts +1 -0
  220. package/src/i18n/locales/common/en.ts +1 -0
  221. package/src/i18n/locales/common/index.ts +2 -0
  222. package/src/i18n/locales/en.ts +15 -0
  223. package/src/i18n/locales/index.ts +4 -0
  224. package/src/i18n/locales/molecules/ar.ts +1 -0
  225. package/src/i18n/locales/molecules/en.ts +1 -0
  226. package/src/i18n/locales/molecules/index.ts +2 -0
  227. package/src/i18n/locales/organisms/ar.ts +11 -0
  228. package/src/i18n/locales/organisms/en.ts +11 -0
  229. package/src/i18n/locales/organisms/index.ts +2 -0
  230. package/src/i18n/locales/templates/ar.ts +1 -0
  231. package/src/i18n/locales/templates/en.ts +1 -0
  232. package/src/i18n/locales/templates/index.ts +2 -0
  233. package/src/i18n/locales/toasts/ar.ts +1 -0
  234. package/src/i18n/locales/toasts/en.ts +1 -0
  235. package/src/i18n/locales/toasts/index.ts +2 -0
  236. package/src/i18n/types/index.ts +2 -0
  237. package/{dist/src/i18n/types/locale.d.ts → src/i18n/types/locale.ts} +3 -1
  238. package/{dist/src/i18n/types/toasts.d.ts → src/i18n/types/toasts.ts} +2 -1
  239. package/src/i18n/utils/get-locales.ts +4 -0
  240. package/src/i18n/utils/index.ts +2 -0
  241. package/src/i18n/utils/localize.ts +15 -0
  242. package/src/index.ts +14 -0
  243. package/src/mocks/constants.ts +103 -0
  244. package/src/mocks/deletion-confirmor.ts +16 -0
  245. package/src/mocks/header.tsx +118 -0
  246. package/src/mocks/index.ts +6 -0
  247. package/src/mocks/listings.tsx +154 -0
  248. package/src/mocks/locales/index.ts +1 -0
  249. package/src/mocks/locales/uploader.ts +33 -0
  250. package/src/mocks/types.ts +64 -0
  251. package/src/providers/config-provider.tsx +72 -0
  252. package/src/providers/emperor-ui-provider.tsx +35 -0
  253. package/src/providers/form-builder-provider-context.tsx +18 -0
  254. package/src/providers/index.ts +6 -0
  255. package/src/providers/navigation-provider.tsx +42 -0
  256. package/src/providers/theme-provider.tsx +16 -0
  257. package/src/providers/uploader-provider.tsx +53 -0
  258. package/src/styles/globals.css +38 -0
  259. package/src/styles/hero.ts +3 -0
  260. package/src/styles/index.css +18 -0
  261. package/src/types/components/atoms/brand.ts +13 -0
  262. package/src/types/components/atoms/color-picker/color-picker.ts +21 -0
  263. package/src/types/components/atoms/color-picker/index.ts +1 -0
  264. package/src/types/components/atoms/column.ts +3 -0
  265. package/{dist/src/types/components/atoms/container.d.ts → src/types/components/atoms/container.ts} +2 -1
  266. package/src/types/components/atoms/field/field.ts +61 -0
  267. package/src/types/components/atoms/field/index.ts +1 -0
  268. package/src/types/components/atoms/filter/filter.ts +52 -0
  269. package/src/types/components/atoms/filter/index.ts +2 -0
  270. package/{dist/src/types/components/atoms/filter/select-filter.d.ts → src/types/components/atoms/filter/select-filter.ts} +4 -3
  271. package/src/types/components/atoms/index.ts +9 -0
  272. package/src/types/components/atoms/portal.ts +6 -0
  273. package/src/types/components/atoms/row.ts +3 -0
  274. package/src/types/components/atoms/uploader.ts +103 -0
  275. package/src/types/components/index.ts +4 -0
  276. package/src/types/components/molecules/footer/footer.ts +68 -0
  277. package/src/types/components/molecules/footer/index.ts +1 -0
  278. package/src/types/components/molecules/header/header.ts +51 -0
  279. package/src/types/components/molecules/header/index.ts +1 -0
  280. package/src/types/components/molecules/index.ts +9 -0
  281. package/src/types/components/molecules/item-card/index.ts +1 -0
  282. package/src/types/components/molecules/item-card/item-card.ts +69 -0
  283. package/src/types/components/molecules/item-details/index.ts +1 -0
  284. package/src/types/components/molecules/item-details/item-details.ts +9 -0
  285. package/src/types/components/molecules/listings/index.ts +1 -0
  286. package/src/types/components/molecules/listings/listings.ts +29 -0
  287. package/src/types/components/molecules/nav-bar/index.ts +1 -0
  288. package/src/types/components/molecules/nav-bar/nav-bar.ts +66 -0
  289. package/src/types/components/molecules/scaffold/index.ts +1 -0
  290. package/src/types/components/molecules/scaffold/scaffold.ts +9 -0
  291. package/src/types/components/molecules/side-bar/index.ts +1 -0
  292. package/src/types/components/molecules/side-bar/side-bar.ts +40 -0
  293. package/src/types/components/molecules/theme-switch/index.ts +1 -0
  294. package/src/types/components/molecules/theme-switch/theme-switch.ts +9 -0
  295. package/src/types/components/organisms/deletion-confirmor/deletion-confirmor.ts +22 -0
  296. package/src/types/components/organisms/deletion-confirmor/index.ts +1 -0
  297. package/src/types/components/organisms/filters/filters.ts +11 -0
  298. package/src/types/components/organisms/filters/index.ts +1 -0
  299. package/src/types/components/organisms/form-builder/context.ts +6 -0
  300. package/src/types/components/organisms/form-builder/form-builder.ts +39 -0
  301. package/src/types/components/organisms/form-builder/index.ts +2 -0
  302. package/src/types/components/organisms/index.ts +3 -0
  303. package/src/types/components/templates/index.ts +1 -0
  304. package/src/types/components/templates/landing-page.ts +10 -0
  305. package/src/types/context/config.ts +24 -0
  306. package/src/types/context/index.ts +4 -0
  307. package/src/types/context/localization.ts +24 -0
  308. package/src/types/context/navigation.ts +17 -0
  309. package/src/types/context/theme.ts +33 -0
  310. package/src/types/index.ts +3 -0
  311. package/{dist/src/types/shared/components.d.ts → src/types/shared/components.ts} +9 -6
  312. package/src/types/shared/index.ts +1 -0
  313. package/src/utils/cn.ts +6 -0
  314. package/src/utils/compress-images.ts +36 -0
  315. package/src/utils/index.ts +5 -0
  316. package/src/utils/locales.ts +54 -0
  317. package/src/utils/storybook.tsx +15 -0
  318. package/src/utils/uploader.ts +170 -0
  319. package/tsconfig.app.json +37 -0
  320. package/tsconfig.json +7 -0
  321. package/tsconfig.node.json +25 -0
  322. package/vite.config.ts +44 -0
  323. package/vitest.shims.d.ts +1 -0
  324. package/dist/src/animations/blink.d.ts +0 -7
  325. package/dist/src/animations/floating.d.ts +0 -2
  326. package/dist/src/animations/index.d.ts +0 -2
  327. package/dist/src/components/atoms/brand/brand.d.ts +0 -14
  328. package/dist/src/components/atoms/brand/index.d.ts +0 -1
  329. package/dist/src/components/atoms/brand/styles/classes.d.ts +0 -3
  330. package/dist/src/components/atoms/brand/styles/index.d.ts +0 -2
  331. package/dist/src/components/atoms/brand/styles/styles.d.ts +0 -1
  332. package/dist/src/components/atoms/color-picker/color-picker.d.ts +0 -2
  333. package/dist/src/components/atoms/color-picker/free-color-picker.d.ts +0 -2
  334. package/dist/src/components/atoms/color-picker/index.d.ts +0 -3
  335. package/dist/src/components/atoms/color-picker/preset-color-picker.d.ts +0 -2
  336. package/dist/src/components/atoms/column/column.d.ts +0 -2
  337. package/dist/src/components/atoms/column/index.d.ts +0 -1
  338. package/dist/src/components/atoms/container/container.d.ts +0 -2
  339. package/dist/src/components/atoms/container/index.d.ts +0 -1
  340. package/dist/src/components/atoms/copy-button/copy-button.d.ts +0 -3
  341. package/dist/src/components/atoms/copy-button/index.d.ts +0 -1
  342. package/dist/src/components/atoms/field/field.d.ts +0 -3
  343. package/dist/src/components/atoms/field/index.d.ts +0 -3
  344. package/dist/src/components/atoms/field/styles/classes.d.ts +0 -3
  345. package/dist/src/components/atoms/field/styles/index.d.ts +0 -1
  346. package/dist/src/components/atoms/field/units/autocomplete-field.d.ts +0 -3
  347. package/dist/src/components/atoms/field/units/checkbox-field.d.ts +0 -3
  348. package/dist/src/components/atoms/field/units/index.d.ts +0 -7
  349. package/dist/src/components/atoms/field/units/input-field.d.ts +0 -3
  350. package/dist/src/components/atoms/field/units/radio-field.d.ts +0 -3
  351. package/dist/src/components/atoms/field/units/select-field.d.ts +0 -3
  352. package/dist/src/components/atoms/field/units/switch-field.d.ts +0 -3
  353. package/dist/src/components/atoms/field/units/textarea-field.d.ts +0 -3
  354. package/dist/src/components/atoms/filter/filter.d.ts +0 -2
  355. package/dist/src/components/atoms/filter/index.d.ts +0 -3
  356. package/dist/src/components/atoms/filter/styles/classes.d.ts +0 -3
  357. package/dist/src/components/atoms/filter/styles/index.d.ts +0 -1
  358. package/dist/src/components/atoms/filter/units/autocomplete-filter.d.ts +0 -2
  359. package/dist/src/components/atoms/filter/units/checkbox-filter.d.ts +0 -2
  360. package/dist/src/components/atoms/filter/units/checkbox-group-filter.d.ts +0 -2
  361. package/dist/src/components/atoms/filter/units/date-filter.d.ts +0 -2
  362. package/dist/src/components/atoms/filter/units/index.d.ts +0 -9
  363. package/dist/src/components/atoms/filter/units/numeric-filter.d.ts +0 -2
  364. package/dist/src/components/atoms/filter/units/range-filter.d.ts +0 -2
  365. package/dist/src/components/atoms/filter/units/search-filter.d.ts +0 -2
  366. package/dist/src/components/atoms/filter/units/select-filter.d.ts +0 -2
  367. package/dist/src/components/atoms/filter/units/switch-filter.d.ts +0 -2
  368. package/dist/src/components/atoms/index.d.ts +0 -11
  369. package/dist/src/components/atoms/portal/index.d.ts +0 -1
  370. package/dist/src/components/atoms/portal/portal.d.ts +0 -2
  371. package/dist/src/components/atoms/row/index.d.ts +0 -1
  372. package/dist/src/components/atoms/row/row.d.ts +0 -2
  373. package/dist/src/components/atoms/theme-switch/index.d.ts +0 -1
  374. package/dist/src/components/atoms/theme-switch/styles/classes.d.ts +0 -3
  375. package/dist/src/components/atoms/theme-switch/styles/index.d.ts +0 -1
  376. package/dist/src/components/atoms/theme-switch/theme-switch.d.ts +0 -2
  377. package/dist/src/components/atoms/uploader/components/avatar-label.d.ts +0 -1
  378. package/dist/src/components/atoms/uploader/components/index.d.ts +0 -8
  379. package/dist/src/components/atoms/uploader/components/upload-file-error-box.d.ts +0 -1
  380. package/dist/src/components/atoms/uploader/components/upload-file-input.d.ts +0 -1
  381. package/dist/src/components/atoms/uploader/components/upload-file-label.d.ts +0 -1
  382. package/dist/src/components/atoms/uploader/components/upload-file-listing.d.ts +0 -1
  383. package/dist/src/components/atoms/uploader/components/uploader-title.d.ts +0 -2
  384. package/dist/src/components/atoms/uploader/components/uploader.d.ts +0 -19
  385. package/dist/src/components/atoms/uploader/components/view-image-modal.d.ts +0 -1
  386. package/dist/src/components/atoms/uploader/index.d.ts +0 -1
  387. package/dist/src/components/index.d.ts +0 -4
  388. package/dist/src/components/molecules/index.d.ts +0 -4
  389. package/dist/src/components/molecules/item-card/components/actions/index.d.ts +0 -3
  390. package/dist/src/components/molecules/item-card/components/actions/item-actions-buttons.d.ts +0 -6
  391. package/dist/src/components/molecules/item-card/components/actions/item-actions-dropdown.d.ts +0 -2
  392. package/dist/src/components/molecules/item-card/components/actions/item-actions-overlay.d.ts +0 -4
  393. package/dist/src/components/molecules/item-card/components/additions/index.d.ts +0 -2
  394. package/dist/src/components/molecules/item-card/components/additions/item-banner.d.ts +0 -2
  395. package/dist/src/components/molecules/item-card/components/additions/loading-item.d.ts +0 -2
  396. package/dist/src/components/molecules/item-card/components/card/index.d.ts +0 -4
  397. package/dist/src/components/molecules/item-card/components/card/item-card-body.d.ts +0 -2
  398. package/dist/src/components/molecules/item-card/components/card/item-card-footer.d.ts +0 -2
  399. package/dist/src/components/molecules/item-card/components/card/item-card-header.d.ts +0 -2
  400. package/dist/src/components/molecules/item-card/components/card/item-card.d.ts +0 -2
  401. package/dist/src/components/molecules/item-card/components/index.d.ts +0 -3
  402. package/dist/src/components/molecules/item-card/index.d.ts +0 -2
  403. package/dist/src/components/molecules/item-card/styles/classes.d.ts +0 -33
  404. package/dist/src/components/molecules/item-card/styles/index.d.ts +0 -1
  405. package/dist/src/components/molecules/nav-bar/index.d.ts +0 -3
  406. package/dist/src/components/molecules/nav-bar/nav-bar-item.d.ts +0 -6
  407. package/dist/src/components/molecules/nav-bar/nav-bar.d.ts +0 -13
  408. package/dist/src/components/molecules/nav-bar/styles/classes.d.ts +0 -11
  409. package/dist/src/components/molecules/nav-bar/styles/index.d.ts +0 -2
  410. package/dist/src/components/molecules/nav-bar/styles/styles.d.ts +0 -5
  411. package/dist/src/components/molecules/nav-bar/sub-items-box.d.ts +0 -2
  412. package/dist/src/components/molecules/scaffold/index.d.ts +0 -2
  413. package/dist/src/components/molecules/scaffold/scaffold.d.ts +0 -3
  414. package/dist/src/components/molecules/scaffold/styles/index.d.ts +0 -1
  415. package/dist/src/components/molecules/scaffold/styles/scaffold-classes.d.ts +0 -1
  416. package/dist/src/components/molecules/side-bar/compact-side-bar.d.ts +0 -2
  417. package/dist/src/components/molecules/side-bar/index.d.ts +0 -1
  418. package/dist/src/components/molecules/side-bar/side-bar-drawer.d.ts +0 -2
  419. package/dist/src/components/molecules/side-bar/side-bar.d.ts +0 -15
  420. package/dist/src/components/molecules/side-bar/styles/classes.d.ts +0 -6
  421. package/dist/src/components/molecules/side-bar/styles/index.d.ts +0 -2
  422. package/dist/src/components/molecules/side-bar/styles/styles.d.ts +0 -3
  423. package/dist/src/components/organisms/deletion-confirmor/deletion-confirmor.d.ts +0 -2
  424. package/dist/src/components/organisms/deletion-confirmor/index.d.ts +0 -3
  425. package/dist/src/components/organisms/deletion-confirmor/stories/components.d.ts +0 -2
  426. package/dist/src/components/organisms/deletion-confirmor/styles/classes.d.ts +0 -4
  427. package/dist/src/components/organisms/deletion-confirmor/styles/index.d.ts +0 -2
  428. package/dist/src/components/organisms/deletion-confirmor/styles/styles.d.ts +0 -2
  429. package/dist/src/components/organisms/footer/copy-rights-box.d.ts +0 -2
  430. package/dist/src/components/organisms/footer/footer.d.ts +0 -11
  431. package/dist/src/components/organisms/footer/index.d.ts +0 -5
  432. package/dist/src/components/organisms/footer/policies-box.d.ts +0 -2
  433. package/dist/src/components/organisms/footer/quick-links-box.d.ts +0 -2
  434. package/dist/src/components/organisms/footer/social-links-box.d.ts +0 -2
  435. package/dist/src/components/organisms/footer/styles/classes.d.ts +0 -9
  436. package/dist/src/components/organisms/footer/styles/index.d.ts +0 -2
  437. package/dist/src/components/organisms/footer/styles/styles.d.ts +0 -2
  438. package/dist/src/components/organisms/form-builder/form-builder.d.ts +0 -3
  439. package/dist/src/components/organisms/form-builder/index.d.ts +0 -1
  440. package/dist/src/components/organisms/header/header.d.ts +0 -8
  441. package/dist/src/components/organisms/header/index.d.ts +0 -1
  442. package/dist/src/components/organisms/header/segmented-header-content.d.ts +0 -2
  443. package/dist/src/components/organisms/header/styles/classes.d.ts +0 -3
  444. package/dist/src/components/organisms/header/styles/index.d.ts +0 -2
  445. package/dist/src/components/organisms/header/styles/styles.d.ts +0 -6
  446. package/dist/src/components/organisms/index.d.ts +0 -6
  447. package/dist/src/components/organisms/item-details/index.d.ts +0 -1
  448. package/dist/src/components/organisms/item-details/item-details.d.ts +0 -2
  449. package/dist/src/components/organisms/listings/empty-listings.d.ts +0 -9
  450. package/dist/src/components/organisms/listings/index.d.ts +0 -3
  451. package/dist/src/components/organisms/listings/listings.d.ts +0 -2
  452. package/dist/src/components/organisms/listings/styles/classes.d.ts +0 -10
  453. package/dist/src/components/organisms/listings/styles/index.d.ts +0 -2
  454. package/dist/src/components/organisms/listings/styles/styles.d.ts +0 -2
  455. package/dist/src/components/templates/index.d.ts +0 -1
  456. package/dist/src/components/templates/landing-page/index.d.ts +0 -1
  457. package/dist/src/components/templates/landing-page/landing-page.d.ts +0 -10
  458. package/dist/src/components/templates/landing-page/styles/classes.d.ts +0 -3
  459. package/dist/src/components/templates/landing-page/styles/index.d.ts +0 -1
  460. package/dist/src/constants/animations.d.ts +0 -5
  461. package/dist/src/constants/card.d.ts +0 -3
  462. package/dist/src/constants/defaults.d.ts +0 -2
  463. package/dist/src/constants/fake.d.ts +0 -2
  464. package/dist/src/constants/footer.d.ts +0 -6
  465. package/dist/src/constants/index.d.ts +0 -6
  466. package/dist/src/constants/uploader.d.ts +0 -8
  467. package/dist/src/context/emperor-ui-context.d.ts +0 -2
  468. package/dist/src/context/form-builder-context.d.ts +0 -3
  469. package/dist/src/context/index.d.ts +0 -4
  470. package/dist/src/context/navigation-context.d.ts +0 -2
  471. package/dist/src/context/uploader-context.d.ts +0 -2
  472. package/dist/src/enums/index.d.ts +0 -2
  473. package/dist/src/enums/placeholders.d.ts +0 -5
  474. package/dist/src/enums/preserved-keys.d.ts +0 -3
  475. package/dist/src/examples/index.d.ts +0 -1
  476. package/dist/src/hooks/index.d.ts +0 -8
  477. package/dist/src/hooks/use-emperor-ui.d.ts +0 -1
  478. package/dist/src/hooks/use-filters.d.ts +0 -4
  479. package/dist/src/hooks/use-form-builder-context.d.ts +0 -3
  480. package/dist/src/hooks/use-navigation.d.ts +0 -1
  481. package/dist/src/hooks/use-search-params-handler.d.ts +0 -17
  482. package/dist/src/hooks/use-uploader-context.d.ts +0 -1
  483. package/dist/src/hooks/use-uploader.d.ts +0 -2
  484. package/dist/src/hooks/use-window-size.d.ts +0 -7
  485. package/dist/src/i18n/configs/i18n.d.ts +0 -6
  486. package/dist/src/i18n/configs/index.d.ts +0 -1
  487. package/dist/src/i18n/constants/index.d.ts +0 -1
  488. package/dist/src/i18n/constants/locales.d.ts +0 -4
  489. package/dist/src/i18n/index.d.ts +0 -5
  490. package/dist/src/i18n/locales/ar.d.ts +0 -32
  491. package/dist/src/i18n/locales/atoms/ar.d.ts +0 -16
  492. package/dist/src/i18n/locales/atoms/en.d.ts +0 -16
  493. package/dist/src/i18n/locales/atoms/index.d.ts +0 -2
  494. package/dist/src/i18n/locales/common/ar.d.ts +0 -1
  495. package/dist/src/i18n/locales/common/en.d.ts +0 -1
  496. package/dist/src/i18n/locales/common/index.d.ts +0 -2
  497. package/dist/src/i18n/locales/en.d.ts +0 -32
  498. package/dist/src/i18n/locales/index.d.ts +0 -4
  499. package/dist/src/i18n/locales/molecules/ar.d.ts +0 -1
  500. package/dist/src/i18n/locales/molecules/en.d.ts +0 -1
  501. package/dist/src/i18n/locales/molecules/index.d.ts +0 -2
  502. package/dist/src/i18n/locales/organisms/ar.d.ts +0 -10
  503. package/dist/src/i18n/locales/organisms/en.d.ts +0 -10
  504. package/dist/src/i18n/locales/organisms/index.d.ts +0 -2
  505. package/dist/src/i18n/locales/templates/ar.d.ts +0 -1
  506. package/dist/src/i18n/locales/templates/en.d.ts +0 -1
  507. package/dist/src/i18n/locales/templates/index.d.ts +0 -2
  508. package/dist/src/i18n/locales/toasts/ar.d.ts +0 -1
  509. package/dist/src/i18n/locales/toasts/en.d.ts +0 -1
  510. package/dist/src/i18n/locales/toasts/index.d.ts +0 -2
  511. package/dist/src/i18n/types/index.d.ts +0 -2
  512. package/dist/src/i18n/utils/get-locales.d.ts +0 -2
  513. package/dist/src/i18n/utils/index.d.ts +0 -2
  514. package/dist/src/i18n/utils/localize.d.ts +0 -6
  515. package/dist/src/index.d.ts +0 -10
  516. package/dist/src/mocks/constants.d.ts +0 -10
  517. package/dist/src/mocks/deletion-confirmor.d.ts +0 -7
  518. package/dist/src/mocks/header.d.ts +0 -5
  519. package/dist/src/mocks/index.d.ts +0 -6
  520. package/dist/src/mocks/listings.d.ts +0 -14
  521. package/dist/src/mocks/locales/index.d.ts +0 -1
  522. package/dist/src/mocks/locales/uploader.d.ts +0 -2
  523. package/dist/src/mocks/types.d.ts +0 -28
  524. package/dist/src/providers/config-provider.d.ts +0 -2
  525. package/dist/src/providers/emperor-ui-provider.d.ts +0 -4
  526. package/dist/src/providers/form-builder-provider-context.d.ts +0 -7
  527. package/dist/src/providers/index.d.ts +0 -6
  528. package/dist/src/providers/navigation-provider.d.ts +0 -2
  529. package/dist/src/providers/theme-provider.d.ts +0 -5
  530. package/dist/src/providers/uploader-provider.d.ts +0 -2
  531. package/dist/src/styles/hero.d.ts +0 -2
  532. package/dist/src/types/components/atoms/brand.d.ts +0 -12
  533. package/dist/src/types/components/atoms/color-picker/color-picker.d.ts +0 -10
  534. package/dist/src/types/components/atoms/color-picker/index.d.ts +0 -1
  535. package/dist/src/types/components/atoms/column.d.ts +0 -2
  536. package/dist/src/types/components/atoms/field/field.d.ts +0 -36
  537. package/dist/src/types/components/atoms/field/index.d.ts +0 -1
  538. package/dist/src/types/components/atoms/filter/filter.d.ts +0 -35
  539. package/dist/src/types/components/atoms/filter/index.d.ts +0 -2
  540. package/dist/src/types/components/atoms/index.d.ts +0 -9
  541. package/dist/src/types/components/atoms/portal.d.ts +0 -5
  542. package/dist/src/types/components/atoms/row.d.ts +0 -2
  543. package/dist/src/types/components/atoms/uploader.d.ts +0 -84
  544. package/dist/src/types/components/index.d.ts +0 -4
  545. package/dist/src/types/components/molecules/footer/footer.d.ts +0 -60
  546. package/dist/src/types/components/molecules/footer/index.d.ts +0 -1
  547. package/dist/src/types/components/molecules/header/header.d.ts +0 -38
  548. package/dist/src/types/components/molecules/header/index.d.ts +0 -1
  549. package/dist/src/types/components/molecules/index.d.ts +0 -9
  550. package/dist/src/types/components/molecules/item-card/index.d.ts +0 -1
  551. package/dist/src/types/components/molecules/item-card/item-card.d.ts +0 -57
  552. package/dist/src/types/components/molecules/item-details/index.d.ts +0 -1
  553. package/dist/src/types/components/molecules/item-details/item-details.d.ts +0 -7
  554. package/dist/src/types/components/molecules/listings/index.d.ts +0 -1
  555. package/dist/src/types/components/molecules/listings/listings.d.ts +0 -22
  556. package/dist/src/types/components/molecules/nav-bar/index.d.ts +0 -1
  557. package/dist/src/types/components/molecules/nav-bar/nav-bar.d.ts +0 -45
  558. package/dist/src/types/components/molecules/scaffold/index.d.ts +0 -1
  559. package/dist/src/types/components/molecules/scaffold/scaffold.d.ts +0 -7
  560. package/dist/src/types/components/molecules/side-bar/index.d.ts +0 -1
  561. package/dist/src/types/components/molecules/side-bar/side-bar.d.ts +0 -36
  562. package/dist/src/types/components/molecules/theme-switch/index.d.ts +0 -1
  563. package/dist/src/types/components/molecules/theme-switch/theme-switch.d.ts +0 -7
  564. package/dist/src/types/components/organisms/deletion-confirmor/deletion-confirmor.d.ts +0 -20
  565. package/dist/src/types/components/organisms/deletion-confirmor/index.d.ts +0 -1
  566. package/dist/src/types/components/organisms/filters/filters.d.ts +0 -9
  567. package/dist/src/types/components/organisms/filters/index.d.ts +0 -1
  568. package/dist/src/types/components/organisms/form-builder/context.d.ts +0 -5
  569. package/dist/src/types/components/organisms/form-builder/form-builder.d.ts +0 -26
  570. package/dist/src/types/components/organisms/form-builder/index.d.ts +0 -2
  571. package/dist/src/types/components/organisms/index.d.ts +0 -3
  572. package/dist/src/types/components/templates/index.d.ts +0 -1
  573. package/dist/src/types/components/templates/landing-page.d.ts +0 -8
  574. package/dist/src/types/context/config.d.ts +0 -19
  575. package/dist/src/types/context/index.d.ts +0 -4
  576. package/dist/src/types/context/localization.d.ts +0 -17
  577. package/dist/src/types/context/navigation.d.ts +0 -15
  578. package/dist/src/types/context/theme.d.ts +0 -32
  579. package/dist/src/types/index.d.ts +0 -3
  580. package/dist/src/types/shared/index.d.ts +0 -1
  581. package/dist/src/utils/cn.d.ts +0 -2
  582. package/dist/src/utils/compress-images.d.ts +0 -2
  583. package/dist/src/utils/index.d.ts +0 -5
  584. package/dist/src/utils/locales.d.ts +0 -10
  585. package/dist/src/utils/storybook.d.ts +0 -4
  586. package/dist/src/utils/uploader.d.ts +0 -40
@@ -0,0 +1,35 @@
1
+ import { ConfigProviderProps } from "@/types";
2
+ import { ConfigProvider, NavigationProvider } from "@/providers";
3
+ import { HeroUIProvider } from "@heroui/system";
4
+ import { ToastProvider } from "@heroui/toast";
5
+ import { ThemeProvider } from "next-themes";
6
+
7
+ type EmperorUIProviderProps = ConfigProviderProps & {};
8
+
9
+ export function EmperorUIProvider({
10
+ children,
11
+ ...props
12
+ }: EmperorUIProviderProps) {
13
+ return (
14
+ <ConfigProvider {...props}>
15
+ <HeroUIProvider>
16
+ <NavigationProvider>
17
+ <ThemeProvider>
18
+ <ToastProvider
19
+ placement="top-center"
20
+ toastProps={{
21
+ radius: "lg",
22
+ size: "lg",
23
+ color: "primary",
24
+ variant: "flat",
25
+ timeout: 4000,
26
+ }}
27
+ {...props?.config?.toast}
28
+ />
29
+ {children}
30
+ </ThemeProvider>
31
+ </NavigationProvider>
32
+ </HeroUIProvider>
33
+ </ConfigProvider>
34
+ );
35
+ }
@@ -0,0 +1,18 @@
1
+ import type { FieldValues } from "react-hook-form";
2
+ import type { ReactNode } from "react";
3
+ import { FormBuilderValue } from "@/types";
4
+ import { FormBuilderContext } from "@/context";
5
+
6
+ export function FormBuilderProvider<TSchema extends FieldValues>({
7
+ children,
8
+ value,
9
+ }: {
10
+ children: ReactNode;
11
+ value: FormBuilderValue<TSchema>;
12
+ }) {
13
+ return (
14
+ <FormBuilderContext.Provider value={value as FormBuilderValue<FieldValues>}>
15
+ {children}
16
+ </FormBuilderContext.Provider>
17
+ );
18
+ }
@@ -0,0 +1,6 @@
1
+ export * from "./config-provider";
2
+ export * from "./emperor-ui-provider";
3
+ export * from "./navigation-provider";
4
+ export * from "./uploader-provider";
5
+ export * from "./theme-provider";
6
+ export * from "./form-builder-provider-context";
@@ -0,0 +1,42 @@
1
+ import type {
2
+ NavigationProviderProps,
3
+ NavigationContextState,
4
+ NavigationItem,
5
+ } from "@/types";
6
+ import { useMemo, useState } from "react";
7
+ import { NavigationContext } from "@/context";
8
+ import { PreservedKeys } from "@/enums";
9
+
10
+ export function NavigationProvider({ children }: NavigationProviderProps) {
11
+ const [hoveredItemId, setHoveredItemId] = useState<string | null>(null);
12
+ const [subItems, setSubItems] = useState<NavigationItem[]>([]);
13
+ const [isSubItemsBoxOpen, setIsSubItemsBoxOpen] = useState(false);
14
+ const [subItemsBoxIsHovered, setSubItemsBoxIsHovered] = useState(false);
15
+
16
+ const navigationProviderValue: NavigationContextState = useMemo(() => {
17
+ return {
18
+ hoveredItemId,
19
+ subItems,
20
+ isSubItemsBoxOpen,
21
+ subItemsBoxIsHovered,
22
+ setHoveredItemId,
23
+ setSubItems,
24
+ setIsSubItemsBoxOpen,
25
+ setSubItemsBoxIsHovered,
26
+ };
27
+ }, [hoveredItemId, subItems, isSubItemsBoxOpen, subItemsBoxIsHovered]);
28
+
29
+ return (
30
+ <NavigationContext.Provider
31
+ value={navigationProviderValue}
32
+ data-slot="emperor-navigation-provider"
33
+ >
34
+ <div
35
+ id={PreservedKeys.COMPACT_SIDEBAR_ID}
36
+ data-slot="emperor-compact-sidebar"
37
+ />
38
+
39
+ {children}
40
+ </NavigationContext.Provider>
41
+ );
42
+ }
@@ -0,0 +1,16 @@
1
+ "use client";
2
+
3
+ import { ThemeProvider as NextThemesProvider } from "next-themes";
4
+ import { ReactNode } from "react";
5
+
6
+ export type ThemeProviderProps = {
7
+ children: ReactNode;
8
+ };
9
+
10
+ export function ThemeProvider({ children }: ThemeProviderProps) {
11
+ return (
12
+ <NextThemesProvider attribute="class" defaultTheme="system" enableSystem>
13
+ {children}
14
+ </NextThemesProvider>
15
+ );
16
+ }
@@ -0,0 +1,53 @@
1
+ import type {
2
+ UploaderProviderProps,
3
+ UploaderContextState,
4
+ FileObject,
5
+ } from "@/types";
6
+ import { useMemo, useState } from "react";
7
+ import { UploaderContext } from "@/context";
8
+ import { useDisclosure } from "@heroui/modal";
9
+
10
+ export function UploaderProvider({
11
+ children,
12
+ ...props
13
+ }: UploaderProviderProps) {
14
+ const { isOpen, onOpen, onOpenChange } = useDisclosure();
15
+ const [selectedFile, setSelectedFile] = useState<FileObject | null>(null);
16
+
17
+ const isFileViewable = useMemo(
18
+ () =>
19
+ !!selectedFile?.view &&
20
+ !!selectedFile?.file?.name &&
21
+ selectedFile?.type === "image",
22
+ [selectedFile],
23
+ );
24
+
25
+ const uploaderProviderValue: UploaderContextState = useMemo(() => {
26
+ return {
27
+ isOpen,
28
+ onOpen,
29
+ onOpenChange,
30
+ selectedFile,
31
+ setSelectedFile,
32
+ isFileViewable,
33
+ ...props,
34
+ };
35
+ }, [
36
+ isOpen,
37
+ isFileViewable,
38
+ selectedFile,
39
+ onOpen,
40
+ onOpenChange,
41
+ setSelectedFile,
42
+ props,
43
+ ]);
44
+
45
+ return (
46
+ <UploaderContext.Provider
47
+ value={uploaderProviderValue}
48
+ data-slot="emperor-uploader-provider"
49
+ >
50
+ {children}
51
+ </UploaderContext.Provider>
52
+ );
53
+ }
@@ -0,0 +1,38 @@
1
+ @import "tailwindcss";
2
+ @plugin './hero.ts';
3
+ @source '../../node_modules/@heroui/theme/dist/**/*.{js,ts,jsx,tsx}';
4
+
5
+ /* @custom-variant dark (&:is(.dark *)); */
6
+
7
+ .scrollbar-hide {
8
+ -ms-overflow-style: none; /* IE and Edge */
9
+ scrollbar-width: none; /* Firefox */
10
+ }
11
+
12
+ .scrollbar-hide::-webkit-scrollbar {
13
+ display: none; /* Chrome, Safari, Opera */
14
+ }
15
+
16
+ /* Rounded corners and compact size for native color input swatch */
17
+ .color-swatch {
18
+ width: 1.25rem;
19
+ height: 1.25rem;
20
+ min-width: 1.25rem;
21
+ min-height: 1.25rem;
22
+ cursor: pointer;
23
+ }
24
+
25
+ .color-swatch::-webkit-color-swatch-wrapper {
26
+ padding: 0;
27
+ border-radius: 0.375rem;
28
+ }
29
+
30
+ .color-swatch::-webkit-color-swatch {
31
+ border: none;
32
+ border-radius: 0.375rem;
33
+ }
34
+
35
+ .color-swatch::-moz-color-swatch {
36
+ border: none;
37
+ border-radius: 0.375rem;
38
+ }
@@ -0,0 +1,3 @@
1
+ import { heroui } from "@heroui/theme";
2
+
3
+ export default heroui();
@@ -0,0 +1,18 @@
1
+ @import "tailwindcss";
2
+
3
+ :root {
4
+ line-height: 1.5;
5
+ font-weight: 400;
6
+ color-scheme: light dark;
7
+ font-synthesis: none;
8
+ text-rendering: optimizeLegibility;
9
+ -webkit-font-smoothing: antialiased;
10
+ -moz-osx-font-smoothing: grayscale;
11
+ }
12
+
13
+ html,
14
+ body {
15
+ margin: 0;
16
+ padding: 0;
17
+ box-sizing: border-box;
18
+ }
@@ -0,0 +1,13 @@
1
+ import { SharedComponentProps } from "@/types";
2
+
3
+ export type BrandProps = SharedComponentProps & {
4
+ src?: string;
5
+ alt?: string;
6
+ name?: string;
7
+ isIconOnly?: boolean;
8
+ classNames?: {
9
+ base?: string;
10
+ logo?: string;
11
+ name?: string;
12
+ };
13
+ };
@@ -0,0 +1,21 @@
1
+ import { InputProps } from "@heroui/input";
2
+ import { SelectProps } from "@heroui/select";
3
+
4
+ export type ColorPickerInputType = "free" | "preset";
5
+
6
+ export type ColorPickerProps = Omit<
7
+ InputProps & SelectProps,
8
+ | "onChange"
9
+ | "onValueChange"
10
+ | "onSelectionChange"
11
+ | "children"
12
+ | "selectedKeys"
13
+ | "defaultSelectedKeys"
14
+ | "value"
15
+ > & {
16
+ inputType: ColorPickerInputType;
17
+ presets?: string[];
18
+ onChange?: (value: string) => void;
19
+ value?: string;
20
+ defaultValue?: string;
21
+ };
@@ -0,0 +1 @@
1
+ export * from "./color-picker";
@@ -0,0 +1,3 @@
1
+ import type { SharedComponentProps } from "@/types";
2
+
3
+ export type ColumnProps = SharedComponentProps & {};
@@ -1,2 +1,3 @@
1
- import { SharedComponentProps } from '../..';
1
+ import type { SharedComponentProps } from "@/types";
2
+
2
3
  export type ContainerProps = SharedComponentProps & {};
@@ -0,0 +1,61 @@
1
+ import type { SharedComponentProps } from "@/types";
2
+ import type {
3
+ AutocompleteItemProps,
4
+ AutocompleteProps,
5
+ } from "@heroui/autocomplete";
6
+ import type { CheckboxProps } from "@heroui/checkbox";
7
+ import type { InputProps, TextAreaProps } from "@heroui/input";
8
+ import type { RadioGroupProps } from "@heroui/radio";
9
+ import type { SelectItemProps, SelectProps } from "@heroui/select";
10
+ import type { SwitchProps } from "@heroui/switch";
11
+ import type { FieldValues, Path } from "react-hook-form";
12
+
13
+ export type FieldClassnames = {
14
+ base?: string;
15
+ field?: string;
16
+ };
17
+
18
+ export type FieldType =
19
+ | "input"
20
+ | "textarea"
21
+ | "checkbox"
22
+ | "select"
23
+ | "autocomplete"
24
+ | "switch"
25
+ | "radio";
26
+
27
+ export type FieldOption = {
28
+ key: string;
29
+ label: string;
30
+ };
31
+
32
+ type FieldTypesProps = {
33
+ inputProps?: InputProps;
34
+ textareaProps?: TextAreaProps;
35
+ checkboxProps?: CheckboxProps;
36
+ selectProps?: Omit<
37
+ SelectProps,
38
+ "children" | "selectedKeys" | "onSelectionChange"
39
+ >;
40
+ selectItemProps?: SelectItemProps;
41
+ autocompleteProps?: Omit<
42
+ AutocompleteProps,
43
+ "children" | "selectedKey" | "onSelectionChange"
44
+ >;
45
+ autocompleteItemProps?: AutocompleteItemProps;
46
+ switchProps?: SwitchProps;
47
+ radioGroupProps?: Omit<
48
+ RadioGroupProps,
49
+ "children" | "value" | "onValueChange"
50
+ >;
51
+ };
52
+
53
+ type SharedFieldProps<TFieldValues extends FieldValues> = {
54
+ classNames?: FieldClassnames;
55
+ type: FieldType;
56
+ name: Path<TFieldValues>;
57
+ options?: FieldOption[];
58
+ };
59
+
60
+ export type FieldProps<TFieldValues extends FieldValues = FieldValues> =
61
+ SharedComponentProps & FieldTypesProps & SharedFieldProps<TFieldValues>;
@@ -0,0 +1 @@
1
+ export type * from "./field";
@@ -0,0 +1,52 @@
1
+ import type { SelectFilterProps, SharedComponentProps } from "@/types";
2
+ import { AutocompleteItemProps, AutocompleteProps } from "@heroui/autocomplete";
3
+ import { CheckboxGroupProps } from "@heroui/checkbox";
4
+ import { CheckboxProps } from "@heroui/checkbox";
5
+ import { DatePickerProps } from "@heroui/date-picker";
6
+ import { InputProps } from "@heroui/input";
7
+ import { RadioProps } from "@heroui/radio";
8
+ import { SelectItemProps, SelectProps } from "@heroui/select";
9
+ import { SliderProps } from "@heroui/slider";
10
+ import { SwitchProps } from "@heroui/switch";
11
+
12
+ export type FilterClassnames = {
13
+ base?: string;
14
+ field?: string;
15
+ };
16
+
17
+ export type FilterType =
18
+ | "search"
19
+ | "select"
20
+ | "autocomplete"
21
+ | "date"
22
+ | "numeric"
23
+ | "checkbox"
24
+ | "checkboxGroup"
25
+ | "switch"
26
+ | "range";
27
+
28
+ type FilterTypesProps = {
29
+ searchProps?: InputProps;
30
+ selectProps?: Omit<SelectProps, "children">;
31
+ selectItemProps?: SelectItemProps;
32
+ autocompleteProps?: Omit<AutocompleteProps, "children">;
33
+ autocompleteItemProps?: AutocompleteItemProps;
34
+ dateProps?: DatePickerProps;
35
+ numericProps?: InputProps;
36
+ checkboxProps?: CheckboxProps;
37
+ checkboxGroupProps?: Omit<CheckboxGroupProps, "children">;
38
+ radioProps?: RadioProps;
39
+ switchProps?: SwitchProps;
40
+ rangeProps?: SliderProps;
41
+ };
42
+
43
+ type SharedFilterProps = {
44
+ classNames?: FilterClassnames;
45
+ type: FilterType;
46
+ paramKey: string;
47
+ };
48
+
49
+ export type FilterProps = SharedComponentProps &
50
+ SelectFilterProps &
51
+ FilterTypesProps &
52
+ SharedFilterProps;
@@ -0,0 +1,2 @@
1
+ export type * from "./filter";
2
+ export type * from "./select-filter";
@@ -1,7 +1,8 @@
1
1
  export type SelectOption = {
2
- key: string;
3
- label: string;
2
+ key: string;
3
+ label: string;
4
4
  };
5
+
5
6
  export type SelectFilterProps = {
6
- options?: SelectOption[];
7
+ options?: SelectOption[];
7
8
  };
@@ -0,0 +1,9 @@
1
+ export * from "./brand";
2
+ export * from "./portal";
3
+ export * from "./uploader";
4
+ export * from "./column";
5
+ export * from "./row";
6
+ export * from "./container";
7
+ export * from "./filter";
8
+ export * from "./field";
9
+ export * from "./color-picker";
@@ -0,0 +1,6 @@
1
+ import { SharedComponentProps } from "@/types";
2
+
3
+ export type PortalProps = SharedComponentProps & {
4
+ containerId: string;
5
+ isVisible?: boolean;
6
+ };
@@ -0,0 +1,3 @@
1
+ import type { SharedComponentProps } from "@/types";
2
+
3
+ export type RowProps = SharedComponentProps & {};
@@ -0,0 +1,103 @@
1
+ import type { SharedComponentProps } from "@/types";
2
+ import { ModalProps } from "@heroui/modal";
3
+ import { Dispatch, ReactNode, SetStateAction } from "react";
4
+ import type { Locale } from "@/i18n";
5
+
6
+ export type UploaderProps = SharedComponentProps &
7
+ UploaderContextState & {
8
+ className?: string;
9
+ hideListing?: boolean;
10
+ isAvatar?: boolean;
11
+ };
12
+
13
+ export type FileType = "image" | "doc" | "pdf" | "video" | "sheet";
14
+
15
+ export type FileObject = {
16
+ view?: string;
17
+ type?: FileType;
18
+ file?: File;
19
+ url?: string;
20
+ };
21
+
22
+ export type SharedFilesType = FileObject[];
23
+
24
+ export type SharedLabelIdType = string;
25
+
26
+ export type SharedOnInputChangeType = (
27
+ event: React.ChangeEvent<HTMLInputElement> &
28
+ React.DragEvent<HTMLLabelElement>,
29
+ ) => Promise<void | string | null>;
30
+
31
+ export type UseUploadFileProps = {
32
+ labelId: string;
33
+ fileTypes: FileType[];
34
+ labelContent?: ReactNode;
35
+ isRequired?: boolean;
36
+ isMulti?: boolean;
37
+ isDraggable?: boolean;
38
+ maxCount?: number;
39
+ maxFileSize?: number; // in Kilobytes
40
+ compressFiles?: boolean;
41
+ preventDuplicates?: boolean;
42
+ onChange?: () => void;
43
+ locales?: Partial<Locale["atoms"]["uploader"]>;
44
+ };
45
+
46
+ export type UseUploadFileReturn = {
47
+ files: FileObject[];
48
+ fileTypes: FileType[];
49
+ labelId: string;
50
+ isRequired: boolean;
51
+ labelContent: ReactNode;
52
+ isDraggable: boolean;
53
+ isMulti: boolean;
54
+ isLoading: boolean;
55
+ setFiles: Dispatch<SetStateAction<FileObject[]>>;
56
+ handleClearFile: (fileName?: string) => void;
57
+ onInputChange: SharedOnInputChangeType;
58
+ locales?: Partial<Locale["atoms"]["uploader"]>;
59
+ };
60
+
61
+ export type UploaderContextState = {
62
+ selectedFile?: FileObject | null;
63
+ setSelectedFile?: (file: FileObject | null) => void;
64
+
65
+ labelId: SharedLabelIdType;
66
+ labelContent?: ReactNode;
67
+ avatarLabelContent?: ReactNode;
68
+ title?: ReactNode;
69
+ errorMessage?: ReactNode;
70
+
71
+ isFileViewable?: boolean;
72
+ isRequired?: boolean;
73
+ isDraggable?: boolean;
74
+ isLoading: boolean;
75
+ hideErrorMessage?: boolean;
76
+ isMulti: boolean;
77
+
78
+ placeholderImage?: string;
79
+ files: SharedFilesType;
80
+ fileTypes: FileType[];
81
+
82
+ onInputChange: SharedOnInputChangeType;
83
+ handleClearFile: (fileName?: string) => void;
84
+ setFiles?: Dispatch<SetStateAction<FileObject[]>>;
85
+
86
+ modal?: Omit<ModalProps, "children"> & {
87
+ onOpen?: () => void;
88
+ };
89
+ classNames?: {
90
+ label?: string;
91
+ avatar?: string;
92
+ listing?: string;
93
+ listingItem?: string;
94
+ error?: string;
95
+ input?: string;
96
+ title?: string;
97
+ };
98
+ locales?: Partial<Locale["atoms"]["uploader"]>;
99
+ };
100
+
101
+ export type UploaderProviderProps = UploaderContextState & {
102
+ children: ReactNode;
103
+ };
@@ -0,0 +1,4 @@
1
+ export type * from "./molecules";
2
+ export type * from "./atoms";
3
+ export type * from "./templates";
4
+ export type * from "./organisms";
@@ -0,0 +1,68 @@
1
+ import type { SharedComponentProps } from "@/types";
2
+ import { ReactNode } from "react";
3
+
4
+ export type FooterClassnames = {
5
+ base?: string;
6
+ content?: string;
7
+ policiesWrapper?: string;
8
+ policy?: string;
9
+ quickLinksWrapper?: string;
10
+ quickLinksTitle?: string;
11
+ quickLinksList?: string;
12
+ quickLinksItem?: string;
13
+ quickLinksLink?: string;
14
+ socialLinksWrapper?: string;
15
+ socialLink?: string;
16
+ copyRightsWrapper?: string;
17
+ copyRightsText?: string;
18
+ contactsWrapper?: string;
19
+ contact?: string;
20
+ };
21
+
22
+ export type QuickLink = {
23
+ label: string;
24
+ href: string;
25
+ isExternal?: boolean;
26
+ };
27
+
28
+ export type QuickLinkCollection = {
29
+ title?: string;
30
+ links: QuickLink[];
31
+ };
32
+
33
+ export type SocialLink = {
34
+ label?: string;
35
+ href: string;
36
+ icon?: ReactNode;
37
+ isExternal?: boolean;
38
+ };
39
+
40
+ export type Address = {
41
+ country?: string;
42
+ street?: string;
43
+ city?: string;
44
+ state?: string;
45
+ zip?: string;
46
+ };
47
+
48
+ export type CopyRights = {
49
+ year: number;
50
+ text: string;
51
+ };
52
+
53
+ export type Contacts = {
54
+ mobile?: string;
55
+ email?: string;
56
+ addresses?: Address[];
57
+ website?: string;
58
+ workingHours?: string;
59
+ };
60
+
61
+ export type FooterProps = SharedComponentProps & {
62
+ classNames?: FooterClassnames;
63
+ policies?: QuickLink[];
64
+ quickLinks?: QuickLinkCollection[];
65
+ socialLinks?: SocialLink[];
66
+ copyRights?: CopyRights;
67
+ contacts?: Contacts;
68
+ };
@@ -0,0 +1 @@
1
+ export type * from "./footer";
@@ -0,0 +1,51 @@
1
+ import type { SharedComponentProps } from "@/types";
2
+
3
+ export type HeaderClassnames = {
4
+ base?: string;
5
+ logo?: string;
6
+ navbar?: string;
7
+ userDropdown?: string;
8
+ sideMenu?: string;
9
+ };
10
+
11
+ export type HeaderActivations = {
12
+ hideLog?: boolean;
13
+ hideNavbar?: boolean;
14
+ hideUserDropdown?: boolean;
15
+ hideSideMenu?: boolean;
16
+ };
17
+
18
+ export type HeaderVariant =
19
+ | "default"
20
+ | "floating"
21
+ | "light"
22
+ | "segmented-floating";
23
+
24
+ export type HeaderGlassEffect = {
25
+ enabled?: boolean;
26
+ blur?: number;
27
+ backgroundColor?: string;
28
+ foregroundColor?: string;
29
+ opacity?: number;
30
+ };
31
+
32
+ export type HeaderProps = SharedComponentProps & {
33
+ variant?: HeaderVariant;
34
+ classNames?: HeaderClassnames;
35
+ glassEffect?: HeaderGlassEffect;
36
+ };
37
+
38
+ export type HeaderDropdownProps = SharedComponentProps & {};
39
+
40
+ export type UserDropdownProps = SharedComponentProps & {};
41
+
42
+ export type HeaderStylesProps = {
43
+ primaryColor?: string;
44
+ foregroundColor?: string;
45
+ variant?: HeaderVariant;
46
+ glassEffect?: HeaderGlassEffect;
47
+ };
48
+
49
+ export type SegmentedHeaderContentProps = SharedComponentProps & {
50
+ glassEffect?: HeaderGlassEffect;
51
+ };
@@ -0,0 +1 @@
1
+ export type * from "./header";