robobyte-front-builder 1.0.19 → 1.0.21

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 (513) hide show
  1. package/README.md +211 -0
  2. package/next.config.js +19 -48
  3. package/package.json +39 -85
  4. package/src/context/BuilderContext.jsx +134 -6
  5. package/src/context/SystemContext.js +2 -2
  6. package/src/hooks/useGlobalStore.js +36 -0
  7. package/src/hooks/useTimerEngine.js +54 -0
  8. package/src/lib/index.js +11 -3
  9. package/src/lib/layouts/BlankLayout.jsx +13 -0
  10. package/src/lib/providers/RoboByteFrontBuilderProvider.jsx +61 -7
  11. package/src/lib/themes/builderTheme.js +41 -0
  12. package/src/pages/_app.js +32 -134
  13. package/src/pages/api/ai.js +87 -0
  14. package/src/pages/builders/report/index.js +1 -0
  15. package/src/pages/builders/report/list/index.js +1 -0
  16. package/src/pages/builders/report/viewer/index.js +1 -0
  17. package/src/pages/index.js +88 -37
  18. package/src/pages/printBuilder/index.jsx +263 -0
  19. package/src/pages/printBuilder/layouts/index.jsx +298 -0
  20. package/src/pages/reportModule/reportBuilder/index.js +8 -6
  21. package/src/pages/reportModule/reportBuilder/reportViewer/index.js +33 -22
  22. package/src/pages/reportModule/reportBuilder/reports/index.js +3 -5
  23. package/src/pages/reportModule/reportBuilder/reportsPermissions/index.js +2 -3
  24. package/src/pages/viewBuilder/index.jsx +117 -32
  25. package/src/pages/viewBuilder/views/index.js +3 -3
  26. package/src/pages/viewer/[id]/index.js +2 -1
  27. package/src/services/DeleteService.js +31 -60
  28. package/src/services/Endpoints/PrintLayoutEndpoints.js +42 -0
  29. package/src/services/Endpoints.js +2 -0
  30. package/src/services/GetService.js +33 -54
  31. package/src/services/PatchService.js +38 -65
  32. package/src/services/PostService.js +37 -63
  33. package/src/services/UpdateService.js +39 -65
  34. package/src/services/builderHelper/actionExecutor.js +141 -25
  35. package/src/services/builderHelper/builderHelper.js +92 -0
  36. package/src/services/builderHelper/colorSchema.js +95 -0
  37. package/src/services/builderHelper/iconResolver.js +50 -0
  38. package/src/services/builderHelper/jsExecutor.js +212 -46
  39. package/src/services/builderHelper/nodeFactory.js +32 -15
  40. package/src/services/builderHelper/numberFormat.js +123 -0
  41. package/src/services/builderHelper/resolveProps.js +73 -4
  42. package/src/services/builderHelper/thresholdEngine.js +77 -0
  43. package/src/services/builderHelper/tree.js +31 -0
  44. package/src/services/components/agGridAutoComplete.js +5 -9
  45. package/src/services/config.js +9 -1
  46. package/src/services/globalStore.js +80 -0
  47. package/src/services/helper/multiSelectEditor.js +5 -9
  48. package/src/services/helper/multiSelectEditorByBuilder.js +5 -9
  49. package/src/services/reportData/fetchReportData.js +69 -28
  50. package/src/services/routerRef.js +35 -0
  51. package/src/views/ConfirmDialog.js +2 -2
  52. package/src/views/builder/JSEditor.js +105 -107
  53. package/src/views/builder/inspector/Inspector.jsx +6 -9
  54. package/src/views/builder/inspector/Tabs/ComponentActionsTab.jsx +7 -13
  55. package/src/views/builder/inspector/Tabs/MainTab.jsx +143 -25
  56. package/src/views/builder/inspector/Tabs/RulesTab.jsx +9 -24
  57. package/src/views/builder/inspector/Tabs/StyleTab.jsx +9 -24
  58. package/src/views/builder/inspector/definitions/autocomplete/main.js +4 -6
  59. package/src/views/builder/inspector/definitions/banner/actions.js +7 -0
  60. package/src/views/builder/inspector/definitions/banner/main.js +22 -0
  61. package/src/views/builder/inspector/definitions/banner/rules.js +1 -0
  62. package/src/views/builder/inspector/definitions/banner/style.js +1 -0
  63. package/src/views/builder/inspector/definitions/breadcrumb/main.js +43 -6
  64. package/src/views/builder/inspector/definitions/button/main.js +11 -12
  65. package/src/views/builder/inspector/definitions/button/style.js +18 -30
  66. package/src/views/builder/inspector/definitions/checkbox/actions.js +3 -1
  67. package/src/views/builder/inspector/definitions/checkbox/main.js +4 -6
  68. package/src/views/builder/inspector/definitions/common/main.js +13 -2
  69. package/src/views/builder/inspector/definitions/dataGrid/main.js +23 -0
  70. package/src/views/builder/inspector/definitions/dataTableViewer/main.js +46 -0
  71. package/src/views/builder/inspector/definitions/datepicker/actions.js +3 -1
  72. package/src/views/builder/inspector/definitions/datepicker/main.js +6 -14
  73. package/src/views/builder/inspector/definitions/dialog/main.js +36 -0
  74. package/src/views/builder/inspector/definitions/dropdown/main.js +5 -8
  75. package/src/views/builder/inspector/definitions/excelUpload/actions.js +23 -0
  76. package/src/views/builder/inspector/definitions/excelUpload/main.js +17 -0
  77. package/src/views/builder/inspector/definitions/excelUpload/rules.js +1 -0
  78. package/src/views/builder/inspector/definitions/excelUpload/style.js +45 -0
  79. package/src/views/builder/inspector/definitions/header/main.js +10 -1
  80. package/src/views/builder/inspector/definitions/index.js +106 -19
  81. package/src/views/builder/inspector/definitions/input/actions.js +4 -1
  82. package/src/views/builder/inspector/definitions/input/main.js +20 -11
  83. package/src/views/builder/inspector/definitions/kpi/avatarGroup.js +22 -0
  84. package/src/views/builder/inspector/definitions/kpi/badge.js +17 -0
  85. package/src/views/builder/inspector/definitions/kpi/bulletChart.js +47 -0
  86. package/src/views/builder/inspector/definitions/kpi/chart.js +55 -0
  87. package/src/views/builder/inspector/definitions/kpi/colorScale.js +60 -0
  88. package/src/views/builder/inspector/definitions/kpi/comparisonBars.js +41 -0
  89. package/src/views/builder/inspector/definitions/kpi/countdown.js +46 -0
  90. package/src/views/builder/inspector/definitions/kpi/donut.js +51 -0
  91. package/src/views/builder/inspector/definitions/kpi/funnel.js +25 -0
  92. package/src/views/builder/inspector/definitions/kpi/gauge.js +39 -0
  93. package/src/views/builder/inspector/definitions/kpi/heatmapGrid.js +96 -0
  94. package/src/views/builder/inspector/definitions/kpi/iconBox.js +20 -0
  95. package/src/views/builder/inspector/definitions/kpi/metric.js +45 -0
  96. package/src/views/builder/inspector/definitions/kpi/rating.js +27 -0
  97. package/src/views/builder/inspector/definitions/kpi/statusDot.js +18 -0
  98. package/src/views/builder/inspector/definitions/kpi/stepStage.js +65 -0
  99. package/src/views/builder/inspector/definitions/kpi/tagList.js +32 -0
  100. package/src/views/builder/inspector/definitions/kpi/timeline.js +80 -0
  101. package/src/views/builder/inspector/definitions/kpi/trend.js +20 -0
  102. package/src/views/builder/inspector/definitions/label/main.js +10 -1
  103. package/src/views/builder/inspector/definitions/layout/main.js +27 -3
  104. package/src/views/builder/inspector/definitions/number/main.js +6 -14
  105. package/src/views/builder/inspector/definitions/pageNumber/main.js +21 -0
  106. package/src/views/builder/inspector/definitions/popover/main.js +71 -0
  107. package/src/views/builder/inspector/definitions/radio/main.js +5 -8
  108. package/src/views/builder/inspector/definitions/repeater/main.js +31 -0
  109. package/src/views/builder/inspector/definitions/reportViewer/main.js +15 -1
  110. package/src/views/builder/inspector/definitions/richtext/main.js +5 -8
  111. package/src/views/builder/inspector/definitions/signature/main.js +4 -1
  112. package/src/views/builder/inspector/definitions/tag/main.js +5 -8
  113. package/src/views/builder/inspector/definitions/textarea/actions.js +4 -1
  114. package/src/views/builder/inspector/definitions/textarea/main.js +5 -7
  115. package/src/views/builder/inspector/definitions/time/main.js +5 -8
  116. package/src/views/builder/inspector/definitions/toggle/main.js +5 -19
  117. package/src/views/builder/inspector/definitions/treeView/main.js +61 -0
  118. package/src/views/builder/inspector/definitions/viewRenderer/main.js +53 -0
  119. package/src/views/builder/inspector/definitions/wizard/main.js +68 -0
  120. package/src/views/builder/inspector/definitions/wizard-step/main.js +25 -0
  121. package/src/views/builder/inspector/fields/ActionsConfigEditor.jsx +426 -0
  122. package/src/views/builder/inspector/fields/ColorSchemaField.jsx +140 -0
  123. package/src/views/builder/inspector/fields/ColumnFunctionEditor.jsx +238 -0
  124. package/src/views/builder/inspector/fields/ColumnMappingEditor.jsx +105 -0
  125. package/src/views/builder/inspector/fields/ColumnsConfigEditor.jsx +506 -0
  126. package/src/views/builder/inspector/fields/DonutRingsEditorField.jsx +337 -0
  127. package/src/views/builder/inspector/fields/ExtraColsEditor.jsx +618 -0
  128. package/src/views/builder/inspector/fields/FunctionHelpPopover.jsx +295 -0
  129. package/src/views/builder/inspector/fields/IconEditor.jsx +64 -0
  130. package/src/views/builder/inspector/fields/KpiActionField.jsx +223 -0
  131. package/src/views/builder/inspector/fields/MarkersEditorField.jsx +173 -0
  132. package/src/views/builder/inspector/fields/SelectEditor.jsx +9 -5
  133. package/src/views/builder/inspector/fields/SeriesEditorField.jsx +363 -0
  134. package/src/views/builder/inspector/fields/TableColumnsEditor.jsx +104 -0
  135. package/src/views/builder/inspector/fields/ThresholdsEditor.jsx +247 -0
  136. package/src/views/builder/inspector/fields/ValueFunctionsRefPanel.jsx +217 -0
  137. package/src/views/builder/inspector/fields/columnEditorShared.jsx +217 -0
  138. package/src/views/builder/sidebar/Sidebar.jsx +4 -2
  139. package/src/views/builder/sidebar/SidebarTabs.jsx +28 -17
  140. package/src/views/builder/sidebar/tabs/ActionsTab.jsx +7 -3
  141. package/src/views/builder/sidebar/tabs/AiTab/AiPreviewDialog.jsx +193 -0
  142. package/src/views/builder/sidebar/tabs/AiTab/aiProvider.js +49 -0
  143. package/src/views/builder/sidebar/tabs/AiTab/index.jsx +409 -0
  144. package/src/views/builder/sidebar/tabs/AiTab/schemaTransformer.js +102 -0
  145. package/src/views/builder/sidebar/tabs/AiTab/schemaValidator.js +64 -0
  146. package/src/views/builder/sidebar/tabs/AiTab/systemPrompt.js +1151 -0
  147. package/src/views/builder/sidebar/tabs/Components/ComponentsTab.jsx +31 -31
  148. package/src/views/builder/sidebar/tabs/Components/componentCatalog.js +43 -21
  149. package/src/views/builder/sidebar/tabs/Components/printComponentCatalog.js +81 -0
  150. package/src/views/builder/sidebar/tabs/TimersTab.jsx +338 -0
  151. package/src/views/builder/sidebar/tabs/TreeTab.jsx +13 -4
  152. package/src/views/builder/sidebar/tabs/ViewTab.jsx +1 -1
  153. package/src/views/builder/viewer/AdornedLabel.jsx +82 -0
  154. package/src/views/builder/viewer/ComponentRenderer.jsx +98 -24
  155. package/src/views/builder/viewer/DialogsZone.jsx +259 -0
  156. package/src/views/builder/viewer/FieldLabel.jsx +106 -0
  157. package/src/views/builder/viewer/PrintDialog.jsx +481 -0
  158. package/src/views/builder/viewer/ProductionViewer.jsx +80 -5
  159. package/src/views/builder/viewer/Viewer.jsx +106 -8
  160. package/src/views/builder/viewer/ViewerComponentWrapper.jsx +61 -4
  161. package/src/views/builder/viewer/ViewerToolbar.jsx +273 -59
  162. package/src/views/builder/viewer/renderers/AutoCompleteRenderer.jsx +26 -22
  163. package/src/views/builder/viewer/renderers/AvatarGroupRenderer.jsx +112 -0
  164. package/src/views/builder/viewer/renderers/BadgeRenderer.jsx +79 -0
  165. package/src/views/builder/viewer/renderers/BannerRenderer.jsx +62 -0
  166. package/src/views/builder/viewer/renderers/BreadcrumbRenderer.jsx +203 -15
  167. package/src/views/builder/viewer/renderers/BulletChartRenderer.jsx +147 -0
  168. package/src/views/builder/viewer/renderers/ButtonRenderer.jsx +98 -39
  169. package/src/views/builder/viewer/renderers/CardRenderer.jsx +1 -1
  170. package/src/views/builder/viewer/renderers/ChartRenderer.jsx +388 -0
  171. package/src/views/builder/viewer/renderers/CheckboxRenderer.jsx +17 -9
  172. package/src/views/builder/viewer/renderers/ColorScaleRenderer.jsx +300 -0
  173. package/src/views/builder/viewer/renderers/ComparisonBarsRenderer.jsx +133 -0
  174. package/src/views/builder/viewer/renderers/ContainerRenderer.jsx +3 -1
  175. package/src/views/builder/viewer/renderers/CountdownRenderer.jsx +249 -0
  176. package/src/views/builder/viewer/renderers/DataGridRenderer.jsx +380 -0
  177. package/src/views/builder/viewer/renderers/DataTableViewerRenderer.jsx +240 -0
  178. package/src/views/builder/viewer/renderers/DatePickerRenderer.jsx +25 -24
  179. package/src/views/builder/viewer/renderers/DialogRenderer.jsx +327 -0
  180. package/src/views/builder/viewer/renderers/DividerRenderer.jsx +1 -1
  181. package/src/views/builder/viewer/renderers/DonutRenderer.jsx +294 -0
  182. package/src/views/builder/viewer/renderers/DropdownRenderer.jsx +36 -44
  183. package/src/views/builder/viewer/renderers/ExcelUploadRenderer.jsx +639 -0
  184. package/src/views/builder/viewer/renderers/FunnelRenderer.jsx +93 -0
  185. package/src/views/builder/viewer/renderers/GaugeRenderer.jsx +159 -0
  186. package/src/views/builder/viewer/renderers/HeaderRenderer.jsx +31 -9
  187. package/src/views/builder/viewer/renderers/HeatmapGridRenderer.jsx +432 -0
  188. package/src/views/builder/viewer/renderers/IconBoxRenderer.jsx +59 -0
  189. package/src/views/builder/viewer/renderers/ImageRenderer.jsx +1 -1
  190. package/src/views/builder/viewer/renderers/InputRenderer.jsx +75 -18
  191. package/src/views/builder/viewer/renderers/LabelRenderer.jsx +35 -9
  192. package/src/views/builder/viewer/renderers/LayoutCellRenderer.jsx +102 -40
  193. package/src/views/builder/viewer/renderers/LayoutContextMenu.jsx +8 -8
  194. package/src/views/builder/viewer/renderers/LayoutRenderer.jsx +48 -6
  195. package/src/views/builder/viewer/renderers/LinkRenderer.jsx +1 -1
  196. package/src/views/builder/viewer/renderers/MenuRenderer.jsx +2 -2
  197. package/src/views/builder/viewer/renderers/MetricRenderer.jsx +80 -0
  198. package/src/views/builder/viewer/renderers/NumberFormatRenderer.jsx +21 -30
  199. package/src/views/builder/viewer/renderers/PageNumberRenderer.jsx +76 -0
  200. package/src/views/builder/viewer/renderers/PopoverRenderer.jsx +350 -0
  201. package/src/views/builder/viewer/renderers/ProgressCircleRenderer.jsx +1 -1
  202. package/src/views/builder/viewer/renderers/ProgressLineRenderer.jsx +1 -1
  203. package/src/views/builder/viewer/renderers/RadioGroupRenderer.jsx +28 -39
  204. package/src/views/builder/viewer/renderers/RatingRenderer.jsx +80 -0
  205. package/src/views/builder/viewer/renderers/RepeaterRenderer.jsx +297 -38
  206. package/src/views/builder/viewer/renderers/ReportViewerRenderer.jsx +219 -5
  207. package/src/views/builder/viewer/renderers/RichTextRenderer.jsx +60 -66
  208. package/src/views/builder/viewer/renderers/RowActionsCell.jsx +308 -0
  209. package/src/views/builder/viewer/renderers/SignatureRenderer.jsx +33 -62
  210. package/src/views/builder/viewer/renderers/StatusDotRenderer.jsx +75 -0
  211. package/src/views/builder/viewer/renderers/StepStageRenderer.jsx +348 -0
  212. package/src/views/builder/viewer/renderers/TagListRenderer.jsx +115 -0
  213. package/src/views/builder/viewer/renderers/TagPickerRenderer.jsx +31 -45
  214. package/src/views/builder/viewer/renderers/TextAreaRenderer.jsx +25 -18
  215. package/src/views/builder/viewer/renderers/TextRenderer.jsx +7 -1
  216. package/src/views/builder/viewer/renderers/TimePickerRenderer.jsx +25 -24
  217. package/src/views/builder/viewer/renderers/TimelineRenderer.jsx +525 -0
  218. package/src/views/builder/viewer/renderers/ToggleRenderer.jsx +21 -27
  219. package/src/views/builder/viewer/renderers/TreeViewRenderer.jsx +832 -0
  220. package/src/views/builder/viewer/renderers/TrendRenderer.jsx +66 -0
  221. package/src/views/builder/viewer/renderers/ViewRendererRenderer.jsx +315 -0
  222. package/src/views/builder/viewer/renderers/WizardRenderer.jsx +380 -64
  223. package/src/views/builder/viewer/renderers/WizardStepRenderer.jsx +21 -12
  224. package/src/views/builder/viewer/renderers/dataGridComponents.jsx +824 -0
  225. package/src/views/customFilter/CustomFilterDialog.js +1023 -660
  226. package/src/views/customFilter/FixedFilterDialog.js +649 -0
  227. package/src/views/customFilter/SearchFilterDialog.js +248 -0
  228. package/src/views/genericTable/BuilderExpressionParams.js +3 -3
  229. package/src/views/genericTable/ColumnConfiguratorDialog.js +33 -24
  230. package/src/views/genericTable/FixedFilterDialog.js +3 -2
  231. package/src/views/genericTable/FormattingSettingsDialog.js +8 -3
  232. package/src/views/genericTable/SGrid.js +198 -97
  233. package/src/views/genericTable/SearchFilterDialog.js +3 -2
  234. package/src/views/genericTable/cellEditors/autocompleteEditor.js +5 -9
  235. package/src/views/genericTable/convertStringFunctions.js +274 -138
  236. package/src/views/genericTable/statusBar/rowCountStatusBar.js +3 -1
  237. package/src/views/genericTable/updateRefHelpers.js +9 -6
  238. package/src/views/printBuilder/PrintBuilderViewer.jsx +607 -0
  239. package/src/views/printBuilder/PrintPreviewCanvas.jsx +157 -0
  240. package/src/views/rolePermissions/UpdateReportPermissionDialog.js +3 -2
  241. package/src/@core/components/auth/AclGuard.js +0 -55
  242. package/src/@core/components/auth/AuthGuard.js +0 -40
  243. package/src/@core/components/auth/GuestGuard.js +0 -30
  244. package/src/@core/components/custom-inputs/Horizontal.jsx +0 -143
  245. package/src/@core/components/custom-inputs/Image.jsx +0 -78
  246. package/src/@core/components/custom-inputs/Vertical.jsx +0 -113
  247. package/src/@core/components/customizer/index.jsx +0 -470
  248. package/src/@core/components/customizer/styles.module.css +0 -169
  249. package/src/@core/components/mui/Avatar.jsx +0 -41
  250. package/src/@core/components/mui/Badge.jsx +0 -20
  251. package/src/@core/components/mui/IconButton.jsx +0 -74
  252. package/src/@core/components/mui/TabList.jsx +0 -60
  253. package/src/@core/components/option-menu/index.jsx +0 -137
  254. package/src/@core/components/scroll-to-top/index.jsx +0 -43
  255. package/src/@core/components/spinner/index.js +0 -26
  256. package/src/@core/components/window-wrapper/index.js +0 -27
  257. package/src/@core/contexts/settingsContext.jsx +0 -98
  258. package/src/@core/hooks/useBgColor.js +0 -63
  259. package/src/@core/hooks/useImageVariant.js +0 -27
  260. package/src/@core/hooks/useLayoutInit.js +0 -37
  261. package/src/@core/hooks/useObjectCookie.js +0 -18
  262. package/src/@core/hooks/useSettings.jsx +0 -15
  263. package/src/@core/layouts/BlankLayout.js +0 -37
  264. package/src/@core/layouts/BlankLayoutWithAppBar.js +0 -51
  265. package/src/@core/layouts/HorizontalLayout.jsx +0 -151
  266. package/src/@core/layouts/Layout.js +0 -39
  267. package/src/@core/layouts/VerticalLayout.jsx +0 -124
  268. package/src/@core/layouts/components/blank-layout-with-appBar/index.js +0 -115
  269. package/src/@core/layouts/components/horizontal/app-bar-content/index.js +0 -67
  270. package/src/@core/layouts/components/horizontal/navigation/HorizontalNavGroup.js +0 -352
  271. package/src/@core/layouts/components/horizontal/navigation/HorizontalNavItems.js +0 -21
  272. package/src/@core/layouts/components/horizontal/navigation/HorizontalNavLink.js +0 -195
  273. package/src/@core/layouts/components/horizontal/navigation/index.js +0 -31
  274. package/src/@core/layouts/components/shared-components/LanguageDropdown.js +0 -96
  275. package/src/@core/layouts/components/shared-components/ModeToggler.js +0 -32
  276. package/src/@core/layouts/components/shared-components/NotificationDropdown.js +0 -226
  277. package/src/@core/layouts/components/shared-components/UserDropdown.js +0 -177
  278. package/src/@core/layouts/components/shared-components/footer/FooterContent.js +0 -46
  279. package/src/@core/layouts/components/shared-components/footer/index.js +0 -61
  280. package/src/@core/layouts/components/vertical/appBar/index.js +0 -74
  281. package/src/@core/layouts/components/vertical/navigation/Drawer.js +0 -122
  282. package/src/@core/layouts/components/vertical/navigation/VerticalNavGroup.js +0 -435
  283. package/src/@core/layouts/components/vertical/navigation/VerticalNavHeader.js +0 -180
  284. package/src/@core/layouts/components/vertical/navigation/VerticalNavItems.js +0 -26
  285. package/src/@core/layouts/components/vertical/navigation/VerticalNavLink.js +0 -258
  286. package/src/@core/layouts/components/vertical/navigation/VerticalNavSectionTitle.js +0 -102
  287. package/src/@core/layouts/components/vertical/navigation/index.js +0 -169
  288. package/src/@core/layouts/utils.js +0 -69
  289. package/src/@core/styles/Table.module.css +0 -93
  290. package/src/@core/styles/horizontal/menuItemStyles.js +0 -100
  291. package/src/@core/styles/horizontal/menuRootStyles.js +0 -19
  292. package/src/@core/styles/libs/fullcalendar/index.js +0 -461
  293. package/src/@core/styles/libs/keen-slider/index.js +0 -111
  294. package/src/@core/styles/libs/react-apexcharts/index.js +0 -107
  295. package/src/@core/styles/libs/react-cleave/index.js +0 -33
  296. package/src/@core/styles/libs/react-credit-cards/index.js +0 -11
  297. package/src/@core/styles/libs/react-datepicker/index.js +0 -388
  298. package/src/@core/styles/libs/react-draft-wysiwyg/index.js +0 -144
  299. package/src/@core/styles/libs/react-dropzone/index.js +0 -76
  300. package/src/@core/styles/libs/react-hot-toast/index.js +0 -37
  301. package/src/@core/styles/libs/recharts/index.js +0 -47
  302. package/src/@core/styles/stepper.js +0 -103
  303. package/src/@core/styles/vertical/menuItemStyles.js +0 -138
  304. package/src/@core/styles/vertical/menuSectionStyles.js +0 -54
  305. package/src/@core/styles/vertical/navigationCustomStyles.js +0 -62
  306. package/src/@core/svg/ContentCompact.jsx +0 -17
  307. package/src/@core/svg/ContentWide.jsx +0 -17
  308. package/src/@core/svg/DirectionLtr.jsx +0 -93
  309. package/src/@core/svg/DirectionRtl.jsx +0 -93
  310. package/src/@core/svg/LayoutCollapsed.jsx +0 -59
  311. package/src/@core/svg/LayoutHorizontal.jsx +0 -42
  312. package/src/@core/svg/LayoutVertical.jsx +0 -59
  313. package/src/@core/svg/Logo.jsx +0 -76
  314. package/src/@core/svg/SkinBordered.jsx +0 -54
  315. package/src/@core/svg/SkinDefault.jsx +0 -59
  316. package/src/@core/tailwind/plugin.js +0 -78
  317. package/src/@core/theme/ThemeComponent.js +0 -63
  318. package/src/@core/theme/ThemeOptions.js +0 -71
  319. package/src/@core/theme/breakpoints/index.js +0 -11
  320. package/src/@core/theme/colorSchemes.js +0 -326
  321. package/src/@core/theme/customShadows.js +0 -11
  322. package/src/@core/theme/globalStyles.js +0 -81
  323. package/src/@core/theme/index.js +0 -42
  324. package/src/@core/theme/overrides/accordion.js +0 -51
  325. package/src/@core/theme/overrides/accordion.jsx +0 -85
  326. package/src/@core/theme/overrides/alerts.js +0 -110
  327. package/src/@core/theme/overrides/alerts.jsx +0 -180
  328. package/src/@core/theme/overrides/autocomplete.js +0 -14
  329. package/src/@core/theme/overrides/autocomplete.jsx +0 -68
  330. package/src/@core/theme/overrides/avatar.js +0 -38
  331. package/src/@core/theme/overrides/avatars.js +0 -27
  332. package/src/@core/theme/overrides/backdrop.js +0 -22
  333. package/src/@core/theme/overrides/badges.js +0 -16
  334. package/src/@core/theme/overrides/breadcrumbs.js +0 -11
  335. package/src/@core/theme/overrides/button-group.js +0 -84
  336. package/src/@core/theme/overrides/button.js +0 -93
  337. package/src/@core/theme/overrides/buttonGroup.js +0 -9
  338. package/src/@core/theme/overrides/card.js +0 -83
  339. package/src/@core/theme/overrides/checkbox.jsx +0 -95
  340. package/src/@core/theme/overrides/chip.js +0 -72
  341. package/src/@core/theme/overrides/dataGrid.js +0 -114
  342. package/src/@core/theme/overrides/dateTimePicker.js +0 -65
  343. package/src/@core/theme/overrides/dialog.js +0 -120
  344. package/src/@core/theme/overrides/divider.js +0 -13
  345. package/src/@core/theme/overrides/drawer.js +0 -20
  346. package/src/@core/theme/overrides/fab.js +0 -13
  347. package/src/@core/theme/overrides/form-control-label.js +0 -19
  348. package/src/@core/theme/overrides/icon-button.js +0 -145
  349. package/src/@core/theme/overrides/index.js +0 -103
  350. package/src/@core/theme/overrides/input.js +0 -72
  351. package/src/@core/theme/overrides/link.js +0 -9
  352. package/src/@core/theme/overrides/list.js +0 -44
  353. package/src/@core/theme/overrides/menu.js +0 -25
  354. package/src/@core/theme/overrides/pagination.js +0 -41
  355. package/src/@core/theme/overrides/paper.js +0 -9
  356. package/src/@core/theme/overrides/popover.js +0 -16
  357. package/src/@core/theme/overrides/progress.js +0 -38
  358. package/src/@core/theme/overrides/radio.jsx +0 -80
  359. package/src/@core/theme/overrides/rating.js +0 -16
  360. package/src/@core/theme/overrides/rating.jsx +0 -32
  361. package/src/@core/theme/overrides/select.js +0 -19
  362. package/src/@core/theme/overrides/select.jsx +0 -52
  363. package/src/@core/theme/overrides/slider.js +0 -97
  364. package/src/@core/theme/overrides/snackbar.js +0 -19
  365. package/src/@core/theme/overrides/switch.js +0 -73
  366. package/src/@core/theme/overrides/switches.js +0 -25
  367. package/src/@core/theme/overrides/table-pagination.js +0 -39
  368. package/src/@core/theme/overrides/table.js +0 -81
  369. package/src/@core/theme/overrides/tabs.js +0 -30
  370. package/src/@core/theme/overrides/timeline.js +0 -80
  371. package/src/@core/theme/overrides/toggle-button.js +0 -33
  372. package/src/@core/theme/overrides/toggleButton.js +0 -16
  373. package/src/@core/theme/overrides/tooltip.js +0 -21
  374. package/src/@core/theme/overrides/typography.js +0 -13
  375. package/src/@core/theme/palette/index.js +0 -107
  376. package/src/@core/theme/shadows/index.js +0 -61
  377. package/src/@core/theme/shadows.js +0 -12
  378. package/src/@core/theme/spacing/index.js +0 -3
  379. package/src/@core/theme/spacing.js +0 -5
  380. package/src/@core/theme/typography/index.js +0 -65
  381. package/src/@core/theme/typography.js +0 -84
  382. package/src/@core/utils/create-emotion-cache.js +0 -5
  383. package/src/@core/utils/hex-to-rgba.js +0 -11
  384. package/src/@core/utils/serverHelpers.js +0 -45
  385. package/src/@menu/components/RouterLink.jsx +0 -18
  386. package/src/@menu/components/horizontal-menu/HorizontalNav.jsx +0 -88
  387. package/src/@menu/components/horizontal-menu/Menu.jsx +0 -83
  388. package/src/@menu/components/horizontal-menu/MenuButton.jsx +0 -100
  389. package/src/@menu/components/horizontal-menu/MenuItem.jsx +0 -183
  390. package/src/@menu/components/horizontal-menu/SubMenu.jsx +0 -418
  391. package/src/@menu/components/horizontal-menu/SubMenuContent.jsx +0 -41
  392. package/src/@menu/components/horizontal-menu/VerticalNavInHorizontal.jsx +0 -20
  393. package/src/@menu/components/vertical-menu/Menu.jsx +0 -161
  394. package/src/@menu/components/vertical-menu/MenuButton.jsx +0 -95
  395. package/src/@menu/components/vertical-menu/MenuItem.jsx +0 -180
  396. package/src/@menu/components/vertical-menu/MenuSection.jsx +0 -124
  397. package/src/@menu/components/vertical-menu/NavCollapseIcons.jsx +0 -70
  398. package/src/@menu/components/vertical-menu/NavHeader.jsx +0 -39
  399. package/src/@menu/components/vertical-menu/SubMenu.jsx +0 -420
  400. package/src/@menu/components/vertical-menu/SubMenuContent.jsx +0 -101
  401. package/src/@menu/components/vertical-menu/VerticalNav.jsx +0 -216
  402. package/src/@menu/contexts/horizontalNavContext.jsx +0 -29
  403. package/src/@menu/contexts/verticalNavContext.jsx +0 -65
  404. package/src/@menu/defaultConfigs.js +0 -12
  405. package/src/@menu/hooks/useHorizontalMenu.jsx +0 -19
  406. package/src/@menu/hooks/useHorizontalNav.jsx +0 -19
  407. package/src/@menu/hooks/useMediaQuery.jsx +0 -29
  408. package/src/@menu/hooks/useVerticalMenu.jsx +0 -19
  409. package/src/@menu/hooks/useVerticalNav.jsx +0 -19
  410. package/src/@menu/horizontal-menu/index.jsx +0 -8
  411. package/src/@menu/styles/StyledBackdrop.jsx +0 -15
  412. package/src/@menu/styles/StyledMenuIcon.jsx +0 -12
  413. package/src/@menu/styles/StyledMenuLabel.jsx +0 -16
  414. package/src/@menu/styles/StyledMenuPrefix.jsx +0 -10
  415. package/src/@menu/styles/StyledMenuSectionLabel.jsx +0 -21
  416. package/src/@menu/styles/StyledMenuSuffix.jsx +0 -10
  417. package/src/@menu/styles/StyledSubMenuContent.jsx +0 -43
  418. package/src/@menu/styles/horizontal/StyledHorizontalMenu.jsx +0 -13
  419. package/src/@menu/styles/horizontal/StyledHorizontalMenuItem.jsx +0 -26
  420. package/src/@menu/styles/horizontal/StyledHorizontalNav.jsx +0 -11
  421. package/src/@menu/styles/horizontal/StyledHorizontalNavExpandIcon.jsx +0 -33
  422. package/src/@menu/styles/horizontal/StyledHorizontalSubMenuContent.jsx +0 -18
  423. package/src/@menu/styles/horizontal/StyledHorizontalSubMenuContentWrapper.jsx +0 -10
  424. package/src/@menu/styles/horizontal/horizontalUl.module.css +0 -15
  425. package/src/@menu/styles/styles.module.css +0 -5
  426. package/src/@menu/styles/vertical/StyledVerticalMenu.jsx +0 -16
  427. package/src/@menu/styles/vertical/StyledVerticalMenuItem.jsx +0 -28
  428. package/src/@menu/styles/vertical/StyledVerticalMenuSection.jsx +0 -23
  429. package/src/@menu/styles/vertical/StyledVerticalNav.jsx +0 -67
  430. package/src/@menu/styles/vertical/StyledVerticalNavBgColorContainer.jsx +0 -15
  431. package/src/@menu/styles/vertical/StyledVerticalNavContainer.jsx +0 -23
  432. package/src/@menu/styles/vertical/StyledVerticalNavExpandIcon.jsx +0 -25
  433. package/src/@menu/styles/vertical/verticalNavBgImage.module.css +0 -10
  434. package/src/@menu/svg/ChevronRight.jsx +0 -9
  435. package/src/@menu/svg/Close.jsx +0 -12
  436. package/src/@menu/svg/RadioCircle.jsx +0 -12
  437. package/src/@menu/svg/RadioCircleMarked.jsx +0 -13
  438. package/src/@menu/utils/menuClasses.js +0 -44
  439. package/src/@menu/utils/menuUtils.jsx +0 -145
  440. package/src/@menu/vertical-menu/index.jsx +0 -11
  441. package/src/configs/acl.js +0 -115
  442. package/src/configs/auth.js +0 -5
  443. package/src/configs/aws-exports.js +0 -30
  444. package/src/configs/firebase.js +0 -25
  445. package/src/configs/i18n.js +0 -34
  446. package/src/configs/primaryColorConfig.js +0 -35
  447. package/src/configs/themeConfig.js +0 -44
  448. package/src/layouts/UserLayout.js +0 -94
  449. package/src/layouts/UserThemeOptions.js +0 -191
  450. package/src/layouts/components/Direction.js +0 -30
  451. package/src/layouts/components/HtmlTooltip.js +0 -15
  452. package/src/layouts/components/Translations.js +0 -11
  453. package/src/layouts/components/UserDropdown.js +0 -217
  454. package/src/layouts/components/UserIcon.js +0 -40
  455. package/src/layouts/components/acl/Can.js +0 -6
  456. package/src/layouts/components/acl/CanViewNavGroup.js +0 -36
  457. package/src/layouts/components/acl/CanViewNavLink.js +0 -17
  458. package/src/layouts/components/acl/CanViewNavSectionTitle.js +0 -17
  459. package/src/layouts/components/horizontal/AppBarContent.js +0 -39
  460. package/src/layouts/components/horizontal/ServerSideNavItems.js +0 -44
  461. package/src/layouts/components/mui/StepperComps.js +0 -55
  462. package/src/layouts/components/vertical/AppBarContent.js +0 -35
  463. package/src/layouts/components/vertical/ServerSideNavItems.js +0 -44
  464. package/src/libs/ApexCharts.jsx +0 -5
  465. package/src/libs/ReactPlayer.jsx +0 -5
  466. package/src/libs/Recharts.jsx +0 -4
  467. package/src/libs/auth.js +0 -124
  468. package/src/libs/styles/AppFullCalendar.js +0 -505
  469. package/src/libs/styles/AppKeenSlider.js +0 -116
  470. package/src/libs/styles/AppReactApexCharts.jsx +0 -110
  471. package/src/libs/styles/AppReactDatepicker.jsx +0 -470
  472. package/src/libs/styles/AppReactDropzone.js +0 -76
  473. package/src/libs/styles/AppReactToastify.jsx +0 -108
  474. package/src/libs/styles/AppRecharts.js +0 -55
  475. package/src/libs/styles/inputOtp.module.css +0 -39
  476. package/src/libs/styles/tiptapEditor.css +0 -72
  477. package/src/navigation/horizontal/index.js +0 -246
  478. package/src/navigation/vertical/index.js +0 -253
  479. package/src/pages/401.js +0 -70
  480. package/src/pages/404.js +0 -67
  481. package/src/pages/500.js +0 -68
  482. package/src/pages/[slug].js +0 -115
  483. package/src/pages/_document.js +0 -72
  484. package/src/pages/api/navigation/regenerate-registry.js +0 -116
  485. package/src/pages/api/navigation/save.js +0 -218
  486. package/src/pages/authModule/acl/index.js +0 -48
  487. package/src/pages/authModule/forgot-password/index.js +0 -228
  488. package/src/pages/authModule/permissions/rolePermissions/[id]/rolePermissionsUser/index.js +0 -392
  489. package/src/pages/authModule/permissions/rolePermissions/index.js +0 -343
  490. package/src/pages/authModule/permissions/systemPermissions/index.js +0 -354
  491. package/src/pages/authModule/privacy/index.js +0 -721
  492. package/src/pages/authModule/users/index.js +0 -210
  493. package/src/pages/login/index.js +0 -328
  494. package/src/pages/mainHome/index.js +0 -181
  495. package/src/views/builder/inspector/definitions/cell/main.js +0 -4
  496. package/src/views/builder/inspector/definitions/column/main.js +0 -9
  497. package/src/views/builder/inspector/definitions/column-group/main.js +0 -18
  498. package/src/views/builder/inspector/definitions/header-cell/main.js +0 -5
  499. package/src/views/builder/inspector/definitions/table/main.js +0 -9
  500. package/src/views/builder/viewer/renderers/CellRenderer.jsx +0 -71
  501. package/src/views/builder/viewer/renderers/ColumnGroupRenderer.jsx +0 -96
  502. package/src/views/builder/viewer/renderers/ColumnRenderer.jsx +0 -71
  503. package/src/views/builder/viewer/renderers/HeaderCellRenderer.jsx +0 -78
  504. package/src/views/builder/viewer/renderers/TabRenderer.jsx +0 -82
  505. package/src/views/builder/viewer/renderers/TableRenderer.jsx +0 -92
  506. package/src/views/pages/auth/FooterIllustrationsV2.js +0 -40
  507. package/src/views/pages/misc/FooterIllustrations.js +0 -47
  508. package/src/views/pages/misc/muiTable/CustomPagination.js +0 -34
  509. package/src/views/pages/users/UserManageDialog.js +0 -283
  510. package/src/views/pages/users/UserViewPage.js +0 -199
  511. package/src/views/users/AddUserNameDialog.js +0 -162
  512. package/src/views/users/ContactManage.js +0 -449
  513. package/src/views/users/ResetPasswordDialog.js +0 -242
@@ -1,183 +0,0 @@
1
- 'use client'
2
-
3
- // React Imports
4
- import { forwardRef, useContext, useEffect, useState } from 'react'
5
-
6
- // Next Imports
7
- import { usePathname } from 'next/navigation'
8
-
9
- // Third-party Imports
10
- import classnames from 'classnames'
11
- import { useUpdateEffect } from 'react-use'
12
- import { useFloatingTree } from '@floating-ui/react'
13
-
14
- // Context Imports
15
- import { HorizontalSubMenuContext } from './SubMenu'
16
-
17
- // Component Imports
18
- import MenuButton from './MenuButton'
19
-
20
- // Hook Imports
21
- import useHorizontalMenu from '../../hooks/useHorizontalMenu'
22
- import useVerticalNav from '../../hooks/useVerticalNav'
23
-
24
- // Util Imports
25
- import { renderMenuIcon } from '../../utils/menuUtils'
26
- import { menuClasses } from '../../utils/menuClasses'
27
-
28
- // Styled Component Imports
29
- import StyledMenuLabel from '../../styles/StyledMenuLabel'
30
- import StyledMenuPrefix from '../../styles/StyledMenuPrefix'
31
- import StyledMenuSuffix from '../../styles/StyledMenuSuffix'
32
- import StyledHorizontalMenuItem from '../../styles/horizontal/StyledHorizontalMenuItem'
33
-
34
- // Style Imports
35
- import styles from '../../styles/horizontal/horizontalUl.module.css'
36
-
37
- const MenuItem = (props, ref) => {
38
- // Props
39
- const {
40
- children,
41
- icon,
42
- className,
43
- prefix,
44
- suffix,
45
- level = 0,
46
- disabled = false,
47
- exactMatch = true,
48
- activeUrl,
49
- component,
50
- onActiveChange,
51
- rootStyles,
52
- ...rest
53
- } = props
54
-
55
- // States
56
- const [active, setActive] = useState(false)
57
-
58
- // Hooks
59
- const tree = useFloatingTree()
60
- const pathname = usePathname()
61
- const { toggleVerticalNav, isToggled } = useVerticalNav()
62
- const { getItemProps } = useContext(HorizontalSubMenuContext)
63
- const { menuItemStyles, renderExpandedMenuItemIcon, textTruncate } = useHorizontalMenu()
64
-
65
- const getMenuItemStyles = element => {
66
- // If the menuItemStyles prop is provided, get the styles for the specified element.
67
- if (menuItemStyles) {
68
- // Define the parameters that are passed to the style functions.
69
- const params = { level, disabled, active, isSubmenu: false }
70
-
71
- // Get the style function for the specified element.
72
- const styleFunction = menuItemStyles[element]
73
-
74
- if (styleFunction) {
75
- // If the style function is a function, call it and return the result.
76
- // Otherwise, return the style function itself.
77
- return typeof styleFunction === 'function' ? styleFunction(params) : styleFunction
78
- }
79
- }
80
- }
81
-
82
- // Handle the click event.
83
- const handleClick = () => {
84
- if (isToggled) {
85
- toggleVerticalNav()
86
- }
87
- }
88
-
89
- // Change active state when the url changes
90
- useEffect(() => {
91
- const href = rest.href || (component && typeof component !== 'string' && component.props.href)
92
-
93
- if (href) {
94
- // Check if the current url matches any of the children urls
95
- if (exactMatch ? pathname === href : activeUrl && pathname.includes(activeUrl)) {
96
- setActive(true)
97
- } else {
98
- setActive(false)
99
- }
100
- }
101
- // eslint-disable-next-line react-hooks/exhaustive-deps
102
- }, [pathname])
103
-
104
- // Call the onActiveChange callback when the active state changes.
105
- useUpdateEffect(() => {
106
- onActiveChange?.(active)
107
- }, [active])
108
-
109
- return (
110
- <StyledHorizontalMenuItem
111
- ref={ref}
112
- className={classnames(
113
- { [menuClasses.menuItemRoot]: level === 0 },
114
- { [menuClasses.active]: active },
115
- { [menuClasses.disabled]: disabled },
116
- styles.li,
117
- className
118
- )}
119
- level={level}
120
- disabled={disabled}
121
- buttonStyles={getMenuItemStyles('button')}
122
- menuItemStyles={getMenuItemStyles('root')}
123
- rootStyles={rootStyles}
124
- >
125
- <MenuButton
126
- className={classnames(menuClasses.button, { [menuClasses.active]: active })}
127
- component={component}
128
- tabIndex={disabled ? -1 : 0}
129
- onClick={handleClick}
130
- {...getItemProps({
131
- onClick(event) {
132
- props.onClick?.(event)
133
- tree?.events.emit('click')
134
- }
135
- })}
136
- {...rest}
137
- >
138
- {/* Menu Item Icon */}
139
- {renderMenuIcon({
140
- icon,
141
- level,
142
- active,
143
- disabled,
144
- renderExpandedMenuItemIcon,
145
- styles: getMenuItemStyles('icon')
146
- })}
147
-
148
- {/* Menu Item Prefix */}
149
- {prefix && (
150
- <StyledMenuPrefix
151
- firstLevel={level === 0}
152
- className={menuClasses.prefix}
153
- rootStyles={getMenuItemStyles('prefix')}
154
- >
155
- {prefix}
156
- </StyledMenuPrefix>
157
- )}
158
-
159
- {/* Menu Item Label */}
160
- <StyledMenuLabel
161
- className={menuClasses.label}
162
- rootStyles={getMenuItemStyles('label')}
163
- textTruncate={textTruncate}
164
- >
165
- {children}
166
- </StyledMenuLabel>
167
-
168
- {/* Menu Item Suffix */}
169
- {suffix && (
170
- <StyledMenuSuffix
171
- firstLevel={level === 0}
172
- className={menuClasses.suffix}
173
- rootStyles={getMenuItemStyles('suffix')}
174
- >
175
- {suffix}
176
- </StyledMenuSuffix>
177
- )}
178
- </MenuButton>
179
- </StyledHorizontalMenuItem>
180
- )
181
- }
182
-
183
- export default forwardRef(MenuItem)
@@ -1,418 +0,0 @@
1
- 'use client'
2
-
3
- // React Imports
4
- import { Children, cloneElement, createContext, forwardRef, useEffect, useRef, useState } from 'react'
5
-
6
- // Next Imports
7
- import { usePathname } from 'next/navigation'
8
-
9
- // Third-party Imports
10
- import classnames from 'classnames'
11
- import styled from '@emotion/styled'
12
- import {
13
- useFloating,
14
- autoUpdate,
15
- offset,
16
- flip,
17
- shift,
18
- useHover,
19
- useRole,
20
- useInteractions,
21
- useClick,
22
- safePolygon,
23
- useDismiss,
24
- useFloatingNodeId,
25
- FloatingNode,
26
- FloatingPortal,
27
- useMergeRefs,
28
- useFloatingParentNodeId,
29
- useFloatingTree,
30
- useTransitionStyles
31
- } from '@floating-ui/react'
32
-
33
- // Component Imports
34
- import SubMenuContent from './SubMenuContent'
35
-
36
- // Hook Imports
37
- import useHorizontalMenu from '../../hooks/useHorizontalMenu'
38
-
39
- // Util Imports
40
- import { menuClasses } from '../../utils/menuClasses'
41
- import { confirmUrlInChildren, renderMenuIcon } from '../../utils/menuUtils'
42
-
43
- // Styled Component Imports
44
- import MenuButton, { menuButtonStyles } from './MenuButton'
45
- import StyledMenuLabel from '../../styles/StyledMenuLabel'
46
- import StyledMenuPrefix from '../../styles/StyledMenuPrefix'
47
- import StyledMenuSuffix from '../../styles/StyledMenuSuffix'
48
- import StyledHorizontalNavExpandIcon, {
49
- StyledHorizontalNavExpandIconWrapper
50
- } from '../../styles/horizontal/StyledHorizontalNavExpandIcon'
51
- import StyledSubMenuContentWrapper from '../../styles/horizontal/StyledHorizontalSubMenuContentWrapper'
52
-
53
- // Style Imports
54
- import ulStyles from '../../styles/horizontal/horizontalUl.module.css'
55
-
56
- // Icon Imports
57
- import ChevronRight from '../../svg/ChevronRight'
58
-
59
- const StyledSubMenu = styled.li`
60
- ${({ level }) => level === 0 && { borderRadius: '6px', overflow: 'hidden' }}
61
-
62
- &.${menuClasses.open} > .${menuClasses.button} {
63
- background-color: #f3f3f3;
64
- }
65
-
66
- ${({ menuItemStyles }) => menuItemStyles};
67
- ${({ rootStyles }) => rootStyles};
68
-
69
- > .${menuClasses.button} {
70
- ${({ level, disabled, children }) =>
71
- menuButtonStyles({
72
- level,
73
- disabled,
74
- children
75
- })};
76
- ${({ buttonStyles }) => buttonStyles};
77
- }
78
- `
79
-
80
- export const HorizontalSubMenuContext = createContext({ getItemProps: () => ({}) })
81
-
82
- const SubMenu = (props, ref) => {
83
- // Props
84
- const {
85
- children,
86
- className,
87
- contentClassName,
88
- label,
89
- icon,
90
- title,
91
- prefix,
92
- suffix,
93
- level = 0,
94
- disabled = false,
95
- rootStyles,
96
- component,
97
- onClick,
98
- onKeyUp,
99
- onOpenChange,
100
- ...rest
101
- } = props
102
-
103
- // States
104
- const [open, setOpen] = useState(false)
105
- const [active, setActive] = useState(false)
106
-
107
- // Refs
108
- const dir = useRef('ltr')
109
- const listItemsRef = useRef([])
110
-
111
- // Hooks
112
- const pathname = usePathname()
113
- const tree = useFloatingTree()
114
- const nodeId = useFloatingNodeId()
115
- const parentId = useFloatingParentNodeId()
116
-
117
- const {
118
- triggerPopout,
119
- renderExpandIcon,
120
- menuItemStyles,
121
- browserScroll,
122
- transitionDuration,
123
- renderExpandedMenuItemIcon,
124
- popoutMenuOffset,
125
- textTruncate
126
- } = useHorizontalMenu()
127
-
128
- // Vars
129
- // Filter out falsy values from children
130
- const childNodes = Children.toArray(children).filter(Boolean)
131
-
132
- const mainAxisOffset =
133
- popoutMenuOffset &&
134
- popoutMenuOffset.mainAxis &&
135
- (typeof popoutMenuOffset.mainAxis === 'function' ? popoutMenuOffset.mainAxis({ level }) : popoutMenuOffset.mainAxis)
136
-
137
- const alignmentAxisOffset =
138
- popoutMenuOffset &&
139
- popoutMenuOffset.alignmentAxis &&
140
- (typeof popoutMenuOffset.alignmentAxis === 'function'
141
- ? popoutMenuOffset.alignmentAxis({ level })
142
- : popoutMenuOffset.alignmentAxis)
143
-
144
- useEffect(() => {
145
- dir.current = window.getComputedStyle(document.documentElement).getPropertyValue('direction')
146
- }, [])
147
-
148
- const { y, refs, floatingStyles, context } = useFloating({
149
- open,
150
- nodeId,
151
- onOpenChange: setOpen,
152
- placement: level > 0 ? (dir.current !== 'rtl' ? 'right-start' : 'left-start') : 'bottom-start',
153
- middleware: [
154
- offset({
155
- mainAxis: mainAxisOffset,
156
- alignmentAxis: alignmentAxisOffset
157
- }),
158
- flip({ crossAxis: false }),
159
- shift()
160
- ],
161
- whileElementsMounted: autoUpdate
162
- })
163
-
164
- // Floating UI Transition Styles
165
- const { isMounted, styles } = useTransitionStyles(context, {
166
- // Configure both open and close durations:
167
- duration: transitionDuration,
168
- initial: {
169
- opacity: 0,
170
- transform: 'translateY(10px)'
171
- },
172
- open: {
173
- opacity: 1,
174
- transform: 'translateY(0px)'
175
- },
176
- close: {
177
- opacity: 0,
178
- transform: 'translateY(10px)'
179
- }
180
- })
181
-
182
- const hover = useHover(context, {
183
- handleClose: safePolygon({
184
- blockPointerEvents: true
185
- }), // safePolygon function allows us to reach to submenu
186
- restMs: 25, // Only opens submenu when cursor rests for 25ms on a menu
187
- enabled: triggerPopout === 'hover', // Only enable hover effect when triggerPopout option is set to 'hover',
188
- delay: { open: 75 } // Delay opening submenu by 75ms
189
- })
190
-
191
- const click = useClick(context, {
192
- enabled: triggerPopout === 'click', // Only enable click effect when triggerPopout option is set to 'click'
193
- toggle: false
194
- })
195
-
196
- const dismiss = useDismiss(context)
197
- const role = useRole(context, { role: 'menu' })
198
-
199
- // Merge all the interactions into prop getters
200
- const { getReferenceProps, getFloatingProps, getItemProps } = useInteractions([hover, click, dismiss, role])
201
-
202
- const handleOnClick = event => {
203
- onClick?.(event)
204
- triggerPopout === 'click' && setOpen(!open)
205
- }
206
-
207
- const handleOnKeyUp = event => {
208
- onKeyUp?.(event)
209
-
210
- if (event.key === 'Enter') {
211
- setOpen(!open)
212
- }
213
- }
214
-
215
- const getSubMenuItemStyles = element => {
216
- // If the menuItemStyles prop is provided, get the styles for the specified element.
217
- if (menuItemStyles) {
218
- // Define the parameters that are passed to the style functions.
219
- const params = { level, disabled, active, isSubmenu: true, open: open }
220
-
221
- // Get the style function for the specified element.
222
- const styleFunction = menuItemStyles[element]
223
-
224
- if (styleFunction) {
225
- // If the style function is a function, call it and return the result.
226
- // Otherwise, return the style function itself.
227
- return typeof styleFunction === 'function' ? styleFunction(params) : styleFunction
228
- }
229
- }
230
- }
231
-
232
- // Event emitter allows you to communicate across tree components.
233
- // This effect closes all menus when an item gets clicked anywhere in the tree.
234
- useEffect(() => {
235
- const handleTreeClick = () => {
236
- setOpen(false)
237
- }
238
-
239
- const onSubMenuOpen = event => {
240
- if (event.nodeId !== nodeId && event.parentId === parentId) {
241
- setOpen(false)
242
- }
243
- }
244
-
245
- tree?.events.on('click', handleTreeClick)
246
- tree?.events.on('menuopen', onSubMenuOpen)
247
-
248
- return () => {
249
- tree?.events.off('click', handleTreeClick)
250
- tree?.events.off('menuopen', onSubMenuOpen)
251
- }
252
- }, [tree, nodeId, parentId])
253
- useEffect(() => {
254
- if (open) {
255
- tree?.events.emit('menuopen', {
256
- parentId,
257
- nodeId
258
- })
259
- }
260
- }, [tree, open, nodeId, parentId])
261
-
262
- // Change active state when the url changes
263
- useEffect(() => {
264
- // Check if the current url matches any of the children urls
265
- if (confirmUrlInChildren(children, pathname)) {
266
- setActive(true)
267
- } else {
268
- setActive(false)
269
- }
270
- // eslint-disable-next-line react-hooks/exhaustive-deps
271
- }, [pathname])
272
-
273
- // User event handler for open state change
274
- useEffect(() => {
275
- onOpenChange?.(open)
276
- // eslint-disable-next-line react-hooks/exhaustive-deps
277
- }, [open])
278
-
279
- // Merge the reference ref with the ref passed to the component
280
- const referenceRef = useMergeRefs([refs.setReference, ref])
281
-
282
- return (
283
- <FloatingNode id={nodeId}>
284
- {/* Sub Menu */}
285
- <StyledSubMenu
286
- {...(!disabled && { ref: referenceRef, ...getReferenceProps() })}
287
- className={classnames(
288
- { [menuClasses.subMenuRoot]: level === 0 },
289
- { [menuClasses.active]: active },
290
- { [menuClasses.disabled]: disabled },
291
- { [menuClasses.open]: open },
292
- ulStyles.li,
293
- className
294
- )}
295
- menuItemStyles={getSubMenuItemStyles('root')}
296
- level={level}
297
- disabled={disabled}
298
- active={active}
299
- buttonStyles={getSubMenuItemStyles('button')}
300
- rootStyles={rootStyles}
301
- >
302
- {/* Sub Menu */}
303
- <MenuButton
304
- title={title}
305
- className={classnames(menuClasses.button, { [menuClasses.active]: active })}
306
- component={component}
307
- onClick={handleOnClick}
308
- onKeyUp={handleOnKeyUp}
309
- {...rest}
310
- >
311
- {/* Sub Menu Icon */}
312
- {renderMenuIcon({
313
- icon,
314
- level,
315
- active,
316
- disabled,
317
- renderExpandedMenuItemIcon,
318
- styles: getSubMenuItemStyles('icon')
319
- })}
320
-
321
- {/* Sub Menu Prefix */}
322
- {prefix && (
323
- <StyledMenuPrefix
324
- firstLevel={level === 0}
325
- className={menuClasses.prefix}
326
- rootStyles={getSubMenuItemStyles('prefix')}
327
- >
328
- {prefix}
329
- </StyledMenuPrefix>
330
- )}
331
-
332
- {/* Sub Menu Label */}
333
- <StyledMenuLabel
334
- className={menuClasses.label}
335
- rootStyles={getSubMenuItemStyles('label')}
336
- textTruncate={textTruncate}
337
- >
338
- {label}
339
- </StyledMenuLabel>
340
-
341
- {/* Sub Menu Suffix */}
342
- {suffix && (
343
- <StyledMenuSuffix
344
- firstLevel={level === 0}
345
- className={menuClasses.suffix}
346
- rootStyles={getSubMenuItemStyles('suffix')}
347
- >
348
- {suffix}
349
- </StyledMenuSuffix>
350
- )}
351
-
352
- {/* Sub Menu Toggle Icon Wrapper */}
353
- <StyledHorizontalNavExpandIconWrapper
354
- className={menuClasses.subMenuExpandIcon}
355
- rootStyles={getSubMenuItemStyles('subMenuExpandIcon')}
356
- >
357
- {renderExpandIcon ? (
358
- renderExpandIcon({
359
- level,
360
- disabled,
361
- active,
362
- open: open
363
- })
364
- ) : (
365
- // eslint-disable-next-line lines-around-comment
366
- /* Expanded Arrow Icon */
367
- <StyledHorizontalNavExpandIcon level={level}>
368
- <ChevronRight fontSize='1rem' />
369
- </StyledHorizontalNavExpandIcon>
370
- )}
371
- </StyledHorizontalNavExpandIconWrapper>
372
- </MenuButton>
373
-
374
- <HorizontalSubMenuContext.Provider value={{ getItemProps }}>
375
- <FloatingPortal>
376
- {isMounted && (
377
- <StyledSubMenuContentWrapper
378
- ref={refs.setFloating}
379
- {...getFloatingProps()}
380
- style={floatingStyles}
381
- rootStyles={getSubMenuItemStyles('subMenuStyles')}
382
- >
383
- <SubMenuContent
384
- open={open}
385
- top={y ? y - window.scrollY : 0}
386
- firstLevel={level === 0}
387
- browserScroll={browserScroll}
388
- className={classnames(menuClasses.subMenuContent, contentClassName)}
389
- rootStyles={getSubMenuItemStyles('subMenuContent')}
390
- style={{ ...styles }}
391
- >
392
- {childNodes.map((node, index) =>
393
- cloneElement(node, {
394
- ...getItemProps({
395
- ref(node) {
396
- listItemsRef.current[index] = node
397
- },
398
- onClick(event) {
399
- if (node.props.children && !Array.isArray(node.props.children)) {
400
- node.props.onClick?.(event)
401
- tree?.events.emit('click')
402
- }
403
- }
404
- }),
405
- level: level + 1
406
- })
407
- )}
408
- </SubMenuContent>
409
- </StyledSubMenuContentWrapper>
410
- )}
411
- </FloatingPortal>
412
- </HorizontalSubMenuContext.Provider>
413
- </StyledSubMenu>
414
- </FloatingNode>
415
- )
416
- }
417
-
418
- export default forwardRef(SubMenu)
@@ -1,41 +0,0 @@
1
- // React Imports
2
- import { forwardRef } from 'react'
3
-
4
- // Third-party Imports
5
- import PerfectScrollbar from 'react-perfect-scrollbar'
6
-
7
- // Styled Component Imports
8
- import StyledHorizontalSubMenuContent from '../../styles/horizontal/StyledHorizontalSubMenuContent'
9
-
10
- // Style Imports
11
- import styles from '../../styles/styles.module.css'
12
-
13
- const SubMenuContent = (props, ref) => {
14
- // Props
15
- const { children, open, firstLevel, top, browserScroll, ...rest } = props
16
-
17
- return (
18
- <StyledHorizontalSubMenuContent
19
- ref={ref}
20
- firstLevel={firstLevel}
21
- open={open}
22
- top={top}
23
- browserScroll={browserScroll}
24
- {...rest}
25
- >
26
- {/* If browserScroll is false render PerfectScrollbar */}
27
- {!browserScroll ? (
28
- <PerfectScrollbar
29
- options={{ wheelPropagation: false, suppressScrollX: true }}
30
- style={{ maxBlockSize: `calc((var(--vh, 1vh) * 100) - ${top}px)` }}
31
- >
32
- <ul className={styles.ul}>{children}</ul>
33
- </PerfectScrollbar>
34
- ) : (
35
- <ul className={styles.ul}>{children}</ul>
36
- )}
37
- </StyledHorizontalSubMenuContent>
38
- )
39
- }
40
-
41
- export default forwardRef(SubMenuContent)
@@ -1,20 +0,0 @@
1
- // Component Imports
2
- import VerticalNav from '../../vertical-menu'
3
-
4
- const VerticalNavInHorizontal = props => {
5
- // Props
6
- const { children, className, breakpoint, customBreakpoint, verticalNavProps } = props
7
-
8
- return (
9
- <VerticalNav
10
- {...verticalNavProps}
11
- className={className}
12
- breakpoint={breakpoint}
13
- customBreakpoint={customBreakpoint}
14
- >
15
- {children}
16
- </VerticalNav>
17
- )
18
- }
19
-
20
- export default VerticalNavInHorizontal