@rebasepro/studio 0.0.1-canary.09e5ec5

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 (361) hide show
  1. package/LICENSE +114 -0
  2. package/README.md +159 -0
  3. package/dist/ApiExplorer-gMJt5JrS.js +1053 -0
  4. package/dist/ApiExplorer-gMJt5JrS.js.map +1 -0
  5. package/dist/AuthSimulationSelector-BF4rkRGp.js +118 -0
  6. package/dist/AuthSimulationSelector-BF4rkRGp.js.map +1 -0
  7. package/dist/BranchesView-DcHZtvXo.js +292 -0
  8. package/dist/BranchesView-DcHZtvXo.js.map +1 -0
  9. package/dist/CronJobsView-CijCToeK.js +456 -0
  10. package/dist/CronJobsView-CijCToeK.js.map +1 -0
  11. package/dist/JSEditor-D8nVp3Lp.js +1308 -0
  12. package/dist/JSEditor-D8nVp3Lp.js.map +1 -0
  13. package/dist/MonacoEditor-CMYEjiRf.js +161 -0
  14. package/dist/MonacoEditor-CMYEjiRf.js.map +1 -0
  15. package/dist/RLSEditor-DBH09u9v.js +1831 -0
  16. package/dist/RLSEditor-DBH09u9v.js.map +1 -0
  17. package/dist/SQLEditor-CkVx9vgr.js +1792 -0
  18. package/dist/SQLEditor-CkVx9vgr.js.map +1 -0
  19. package/dist/SchemaVisualizer-BgD5Zb77.js +1069 -0
  20. package/dist/SchemaVisualizer-BgD5Zb77.js.map +1 -0
  21. package/dist/StorageView-CTqGFhY9.js +907 -0
  22. package/dist/StorageView-CTqGFhY9.js.map +1 -0
  23. package/dist/common/src/collections/CollectionRegistry.d.ts +56 -0
  24. package/dist/common/src/collections/index.d.ts +1 -0
  25. package/dist/common/src/data/buildRebaseData.d.ts +14 -0
  26. package/dist/common/src/index.d.ts +3 -0
  27. package/dist/common/src/util/builders.d.ts +57 -0
  28. package/dist/common/src/util/callbacks.d.ts +6 -0
  29. package/dist/common/src/util/collections.d.ts +11 -0
  30. package/dist/common/src/util/common.d.ts +2 -0
  31. package/dist/common/src/util/conditions.d.ts +26 -0
  32. package/dist/common/src/util/entities.d.ts +58 -0
  33. package/dist/common/src/util/enums.d.ts +3 -0
  34. package/dist/common/src/util/index.d.ts +16 -0
  35. package/dist/common/src/util/navigation_from_path.d.ts +34 -0
  36. package/dist/common/src/util/navigation_utils.d.ts +20 -0
  37. package/dist/common/src/util/parent_references_from_path.d.ts +6 -0
  38. package/dist/common/src/util/paths.d.ts +14 -0
  39. package/dist/common/src/util/permissions.d.ts +5 -0
  40. package/dist/common/src/util/references.d.ts +2 -0
  41. package/dist/common/src/util/relations.d.ts +22 -0
  42. package/dist/common/src/util/resolutions.d.ts +72 -0
  43. package/dist/common/src/util/storage.d.ts +24 -0
  44. package/dist/core/src/components/AIIcon.d.ts +16 -0
  45. package/dist/core/src/components/ConfirmationDialog.d.ts +9 -0
  46. package/dist/core/src/components/Debug/UIReferenceView.d.ts +1 -0
  47. package/dist/core/src/components/Debug/UIStyleGuide.d.ts +1 -0
  48. package/dist/core/src/components/ErrorTooltip.d.ts +2 -0
  49. package/dist/core/src/components/ErrorView.d.ts +21 -0
  50. package/dist/core/src/components/LanguageToggle.d.ts +1 -0
  51. package/dist/core/src/components/LoginView/LoginView.d.ts +68 -0
  52. package/dist/core/src/components/LoginView/index.d.ts +2 -0
  53. package/dist/core/src/components/NotFoundPage.d.ts +1 -0
  54. package/dist/core/src/components/RebaseAuth.d.ts +10 -0
  55. package/dist/core/src/components/RebaseLogo.d.ts +7 -0
  56. package/dist/core/src/components/UnsavedChangesDialog.d.ts +9 -0
  57. package/dist/core/src/components/UserDisplay.d.ts +7 -0
  58. package/dist/core/src/components/UserSelectPopover.d.ts +62 -0
  59. package/dist/core/src/components/UserSettingsView.d.ts +1 -0
  60. package/dist/core/src/components/common/index.d.ts +6 -0
  61. package/dist/core/src/components/common/table_height.d.ts +5 -0
  62. package/dist/core/src/components/common/types.d.ts +63 -0
  63. package/dist/core/src/components/common/useColumnsIds.d.ts +9 -0
  64. package/dist/core/src/components/common/useDataTableController.d.ts +45 -0
  65. package/dist/core/src/components/common/useDebouncedData.d.ts +9 -0
  66. package/dist/core/src/components/common/useScrollRestoration.d.ts +14 -0
  67. package/dist/core/src/components/index.d.ts +16 -0
  68. package/dist/core/src/contexts/AdminModeController.d.ts +4 -0
  69. package/dist/core/src/contexts/AnalyticsContext.d.ts +3 -0
  70. package/dist/core/src/contexts/AuthControllerContext.d.ts +3 -0
  71. package/dist/core/src/contexts/CustomizationControllerContext.d.ts +3 -0
  72. package/dist/core/src/contexts/DataDriverContext.d.ts +3 -0
  73. package/dist/core/src/contexts/DatabaseAdminContext.d.ts +3 -0
  74. package/dist/core/src/contexts/DialogsProvider.d.ts +4 -0
  75. package/dist/core/src/contexts/EffectiveRoleController.d.ts +4 -0
  76. package/dist/core/src/contexts/InternalUserManagementContext.d.ts +3 -0
  77. package/dist/core/src/contexts/ModeController.d.ts +4 -0
  78. package/dist/core/src/contexts/RebaseClientInstanceContext.d.ts +6 -0
  79. package/dist/core/src/contexts/RebaseDataContext.d.ts +3 -0
  80. package/dist/core/src/contexts/SnackbarProvider.d.ts +2 -0
  81. package/dist/core/src/contexts/StorageSourceContext.d.ts +3 -0
  82. package/dist/core/src/contexts/UserConfigurationPersistenceContext.d.ts +3 -0
  83. package/dist/core/src/contexts/index.d.ts +13 -0
  84. package/dist/core/src/core/PluginLifecycleManager.d.ts +17 -0
  85. package/dist/core/src/core/PluginProviderStack.d.ts +21 -0
  86. package/dist/core/src/core/Rebase.d.ts +14 -0
  87. package/dist/core/src/core/RebaseProps.d.ts +136 -0
  88. package/dist/core/src/core/RebaseRouter.d.ts +4 -0
  89. package/dist/core/src/core/RebaseRoutes.d.ts +17 -0
  90. package/dist/core/src/core/index.d.ts +4 -0
  91. package/dist/core/src/hooks/ApiConfigContext.d.ts +24 -0
  92. package/dist/core/src/hooks/data/delete.d.ts +31 -0
  93. package/dist/core/src/hooks/data/save.d.ts +34 -0
  94. package/dist/core/src/hooks/data/useCollectionFetch.d.ts +51 -0
  95. package/dist/core/src/hooks/data/useData.d.ts +13 -0
  96. package/dist/core/src/hooks/data/useDataOrder.d.ts +12 -0
  97. package/dist/core/src/hooks/data/useEntityFetch.d.ts +38 -0
  98. package/dist/core/src/hooks/data/useRelationSelector.d.ts +52 -0
  99. package/dist/core/src/hooks/data/useUserSelector.d.ts +31 -0
  100. package/dist/core/src/hooks/index.d.ts +37 -0
  101. package/dist/core/src/hooks/useAdminModeController.d.ts +19 -0
  102. package/dist/core/src/hooks/useAnalyticsController.d.ts +5 -0
  103. package/dist/core/src/hooks/useAuthController.d.ts +11 -0
  104. package/dist/core/src/hooks/useAuthSubscription.d.ts +2 -0
  105. package/dist/core/src/hooks/useBackendStorageSource.d.ts +30 -0
  106. package/dist/core/src/hooks/useBridgeRegistration.d.ts +18 -0
  107. package/dist/core/src/hooks/useBrowserTitleAndIcon.d.ts +6 -0
  108. package/dist/core/src/hooks/useBuildAdminModeController.d.ts +6 -0
  109. package/dist/core/src/hooks/useBuildEffectiveRoleController.d.ts +8 -0
  110. package/dist/core/src/hooks/useBuildLocalConfigurationPersistence.d.ts +2 -0
  111. package/dist/core/src/hooks/useBuildModeController.d.ts +6 -0
  112. package/dist/core/src/hooks/useClipboard.d.ts +57 -0
  113. package/dist/core/src/hooks/useCollapsedGroups.d.ts +12 -0
  114. package/dist/core/src/hooks/useCustomizationController.d.ts +11 -0
  115. package/dist/core/src/hooks/useDialogsController.d.ts +11 -0
  116. package/dist/core/src/hooks/useEffectiveRoleController.d.ts +7 -0
  117. package/dist/core/src/hooks/useInternalUserManagementController.d.ts +12 -0
  118. package/dist/core/src/hooks/useLargeLayout.d.ts +1 -0
  119. package/dist/core/src/hooks/useModeController.d.ts +19 -0
  120. package/dist/core/src/hooks/usePermissions.d.ts +12 -0
  121. package/dist/core/src/hooks/useRebaseClient.d.ts +5 -0
  122. package/dist/core/src/hooks/useRebaseContext.d.ts +11 -0
  123. package/dist/core/src/hooks/useRebaseRegistry.d.ts +34 -0
  124. package/dist/core/src/hooks/useSlot.d.ts +18 -0
  125. package/dist/core/src/hooks/useSnackbarController.d.ts +20 -0
  126. package/dist/core/src/hooks/useStorageSource.d.ts +7 -0
  127. package/dist/core/src/hooks/useStudioBridge.d.ts +91 -0
  128. package/dist/core/src/hooks/useTranslation.d.ts +17 -0
  129. package/dist/core/src/hooks/useUnsavedChangesDialog.d.ts +12 -0
  130. package/dist/core/src/hooks/useUserConfigurationPersistence.d.ts +8 -0
  131. package/dist/core/src/hooks/useValidateAuthenticator.d.ts +21 -0
  132. package/dist/core/src/i18n/RebaseI18nProvider.d.ts +33 -0
  133. package/dist/core/src/index.d.ts +15 -0
  134. package/dist/core/src/internal/common.d.ts +3 -0
  135. package/dist/core/src/internal/useRestoreScroll.d.ts +6 -0
  136. package/dist/core/src/locales/de.d.ts +2 -0
  137. package/dist/core/src/locales/en.d.ts +10 -0
  138. package/dist/core/src/locales/es.d.ts +10 -0
  139. package/dist/core/src/locales/fr.d.ts +2 -0
  140. package/dist/core/src/locales/hi.d.ts +2 -0
  141. package/dist/core/src/locales/it.d.ts +2 -0
  142. package/dist/core/src/locales/pt.d.ts +7 -0
  143. package/dist/core/src/util/constants.d.ts +1 -0
  144. package/dist/core/src/util/createFormexStub.d.ts +2 -0
  145. package/dist/core/src/util/entity_cache.d.ts +27 -0
  146. package/dist/core/src/util/enums.d.ts +5 -0
  147. package/dist/core/src/util/icon_list.d.ts +5 -0
  148. package/dist/core/src/util/icon_synonyms.d.ts +1 -0
  149. package/dist/core/src/util/icons.d.ts +20 -0
  150. package/dist/core/src/util/index.d.ts +10 -0
  151. package/dist/core/src/util/previews.d.ts +4 -0
  152. package/dist/core/src/util/useStorageUploadController.d.ts +38 -0
  153. package/dist/core/src/util/useTraceUpdate.d.ts +2 -0
  154. package/dist/formex/src/Field.d.ts +52 -0
  155. package/dist/formex/src/Formex.d.ts +7 -0
  156. package/dist/formex/src/index.d.ts +5 -0
  157. package/dist/formex/src/types.d.ts +40 -0
  158. package/dist/formex/src/useCreateFormex.d.ts +14 -0
  159. package/dist/formex/src/utils.d.ts +16 -0
  160. package/dist/index.es.js +726 -0
  161. package/dist/index.es.js.map +1 -0
  162. package/dist/index.umd.js +9647 -0
  163. package/dist/index.umd.js.map +1 -0
  164. package/dist/studio/src/components/ApiExplorer/ApiExplorer.d.ts +9 -0
  165. package/dist/studio/src/components/ApiExplorer/EndpointDetail.d.ts +9 -0
  166. package/dist/studio/src/components/ApiExplorer/TryItPanel.d.ts +15 -0
  167. package/dist/studio/src/components/ApiExplorer/parseSpec.d.ts +16 -0
  168. package/dist/studio/src/components/ApiExplorer/types.d.ts +90 -0
  169. package/dist/studio/src/components/AuthSimulationSelector.d.ts +11 -0
  170. package/dist/studio/src/components/Branches/BranchesView.d.ts +1 -0
  171. package/dist/studio/src/components/CronJobs/CronJobsView.d.ts +1 -0
  172. package/dist/studio/src/components/JSEditor/JSEditor.d.ts +1 -0
  173. package/dist/studio/src/components/JSEditor/JSEditorSidebar.d.ts +21 -0
  174. package/dist/studio/src/components/JSEditor/JSMonacoEditor.d.ts +18 -0
  175. package/dist/studio/src/components/RLSEditor/PolicyEditor.d.ts +9 -0
  176. package/dist/studio/src/components/RLSEditor/RLSEditor.d.ts +19 -0
  177. package/dist/studio/src/components/RLSEditor/index.d.ts +1 -0
  178. package/dist/studio/src/components/RebaseStudio.d.ts +2 -0
  179. package/dist/studio/src/components/SQLEditor/ExplainVisualizer.d.ts +24 -0
  180. package/dist/studio/src/components/SQLEditor/MonacoEditor.d.ts +17 -0
  181. package/dist/studio/src/components/SQLEditor/SQLEditor.d.ts +11 -0
  182. package/dist/studio/src/components/SQLEditor/SQLEditorSidebar.d.ts +21 -0
  183. package/dist/studio/src/components/SQLEditor/SchemaBrowser.d.ts +8 -0
  184. package/dist/studio/src/components/SchemaVisualizer/RelationEdge.d.ts +3 -0
  185. package/dist/studio/src/components/SchemaVisualizer/SchemaVisualizer.d.ts +2 -0
  186. package/dist/studio/src/components/SchemaVisualizer/TableNode.d.ts +3 -0
  187. package/dist/studio/src/components/SchemaVisualizer/index.d.ts +5 -0
  188. package/dist/studio/src/components/SchemaVisualizer/schema-visualizer.utils.d.ts +42 -0
  189. package/dist/studio/src/components/SchemaVisualizer/useSchemaGraph.d.ts +37 -0
  190. package/dist/studio/src/components/StorageView/StorageView.d.ts +1 -0
  191. package/dist/studio/src/components/StudioHomePage.d.ts +9 -0
  192. package/dist/studio/src/index.d.ts +4 -0
  193. package/dist/studio/src/utils/entities.d.ts +0 -0
  194. package/dist/studio/src/utils/pgColumnToProperty.d.ts +6 -0
  195. package/dist/studio/src/utils/sql_utils.d.ts +52 -0
  196. package/dist/types/src/controllers/analytics_controller.d.ts +7 -0
  197. package/dist/types/src/controllers/auth.d.ts +119 -0
  198. package/dist/types/src/controllers/client.d.ts +170 -0
  199. package/dist/types/src/controllers/collection_registry.d.ts +45 -0
  200. package/dist/types/src/controllers/customization_controller.d.ts +60 -0
  201. package/dist/types/src/controllers/data.d.ts +168 -0
  202. package/dist/types/src/controllers/data_driver.d.ts +160 -0
  203. package/dist/types/src/controllers/database_admin.d.ts +11 -0
  204. package/dist/types/src/controllers/dialogs_controller.d.ts +36 -0
  205. package/dist/types/src/controllers/effective_role.d.ts +4 -0
  206. package/dist/types/src/controllers/email.d.ts +34 -0
  207. package/dist/types/src/controllers/index.d.ts +18 -0
  208. package/dist/types/src/controllers/local_config_persistence.d.ts +20 -0
  209. package/dist/types/src/controllers/navigation.d.ts +213 -0
  210. package/dist/types/src/controllers/registry.d.ts +54 -0
  211. package/dist/types/src/controllers/side_dialogs_controller.d.ts +67 -0
  212. package/dist/types/src/controllers/side_entity_controller.d.ts +90 -0
  213. package/dist/types/src/controllers/snackbar.d.ts +24 -0
  214. package/dist/types/src/controllers/storage.d.ts +171 -0
  215. package/dist/types/src/index.d.ts +4 -0
  216. package/dist/types/src/rebase_context.d.ts +105 -0
  217. package/dist/types/src/types/backend.d.ts +536 -0
  218. package/dist/types/src/types/builders.d.ts +15 -0
  219. package/dist/types/src/types/chips.d.ts +5 -0
  220. package/dist/types/src/types/collections.d.ts +856 -0
  221. package/dist/types/src/types/cron.d.ts +102 -0
  222. package/dist/types/src/types/data_source.d.ts +64 -0
  223. package/dist/types/src/types/entities.d.ts +145 -0
  224. package/dist/types/src/types/entity_actions.d.ts +98 -0
  225. package/dist/types/src/types/entity_callbacks.d.ts +173 -0
  226. package/dist/types/src/types/entity_link_builder.d.ts +7 -0
  227. package/dist/types/src/types/entity_overrides.d.ts +10 -0
  228. package/dist/types/src/types/entity_views.d.ts +61 -0
  229. package/dist/types/src/types/export_import.d.ts +21 -0
  230. package/dist/types/src/types/index.d.ts +23 -0
  231. package/dist/types/src/types/locales.d.ts +4 -0
  232. package/dist/types/src/types/modify_collections.d.ts +5 -0
  233. package/dist/types/src/types/plugins.d.ts +279 -0
  234. package/dist/types/src/types/properties.d.ts +1176 -0
  235. package/dist/types/src/types/property_config.d.ts +70 -0
  236. package/dist/types/src/types/relations.d.ts +336 -0
  237. package/dist/types/src/types/slots.d.ts +252 -0
  238. package/dist/types/src/types/translations.d.ts +870 -0
  239. package/dist/types/src/types/user_management_delegate.d.ts +121 -0
  240. package/dist/types/src/types/websockets.d.ts +78 -0
  241. package/dist/types/src/users/index.d.ts +2 -0
  242. package/dist/types/src/users/roles.d.ts +22 -0
  243. package/dist/types/src/users/user.d.ts +46 -0
  244. package/dist/ui/src/components/Alert.d.ts +12 -0
  245. package/dist/ui/src/components/Autocomplete.d.ts +21 -0
  246. package/dist/ui/src/components/Avatar.d.ts +11 -0
  247. package/dist/ui/src/components/Badge.d.ts +8 -0
  248. package/dist/ui/src/components/BooleanSwitch.d.ts +14 -0
  249. package/dist/ui/src/components/BooleanSwitchWithLabel.d.ts +17 -0
  250. package/dist/ui/src/components/Button.d.ts +14 -0
  251. package/dist/ui/src/components/Card.d.ts +9 -0
  252. package/dist/ui/src/components/CenteredView.d.ts +9 -0
  253. package/dist/ui/src/components/Checkbox.d.ts +13 -0
  254. package/dist/ui/src/components/Chip.d.ts +26 -0
  255. package/dist/ui/src/components/CircularProgress.d.ts +5 -0
  256. package/dist/ui/src/components/CircularProgressCenter.d.ts +11 -0
  257. package/dist/ui/src/components/Collapse.d.ts +9 -0
  258. package/dist/ui/src/components/ColorPicker.d.ts +30 -0
  259. package/dist/ui/src/components/Container.d.ts +8 -0
  260. package/dist/ui/src/components/DateTimeField.d.ts +24 -0
  261. package/dist/ui/src/components/DebouncedTextField.d.ts +2 -0
  262. package/dist/ui/src/components/Dialog.d.ts +39 -0
  263. package/dist/ui/src/components/DialogActions.d.ts +7 -0
  264. package/dist/ui/src/components/DialogContent.d.ts +7 -0
  265. package/dist/ui/src/components/DialogTitle.d.ts +10 -0
  266. package/dist/ui/src/components/ErrorBoundary.d.ts +11 -0
  267. package/dist/ui/src/components/ExpandablePanel.d.ts +12 -0
  268. package/dist/ui/src/components/FileUpload.d.ts +23 -0
  269. package/dist/ui/src/components/IconButton.d.ts +12 -0
  270. package/dist/ui/src/components/InfoLabel.d.ts +5 -0
  271. package/dist/ui/src/components/InputLabel.d.ts +11 -0
  272. package/dist/ui/src/components/Label.d.ts +7 -0
  273. package/dist/ui/src/components/LoadingButton.d.ts +7 -0
  274. package/dist/ui/src/components/Markdown.d.ts +10 -0
  275. package/dist/ui/src/components/Menu.d.ts +23 -0
  276. package/dist/ui/src/components/Menubar.d.ts +80 -0
  277. package/dist/ui/src/components/MultiSelect.d.ts +48 -0
  278. package/dist/ui/src/components/Paper.d.ts +6 -0
  279. package/dist/ui/src/components/Popover.d.ts +24 -0
  280. package/dist/ui/src/components/RadioGroup.d.ts +28 -0
  281. package/dist/ui/src/components/ResizablePanels.d.ts +18 -0
  282. package/dist/ui/src/components/SearchBar.d.ts +22 -0
  283. package/dist/ui/src/components/Select.d.ts +43 -0
  284. package/dist/ui/src/components/Separator.d.ts +5 -0
  285. package/dist/ui/src/components/Sheet.d.ts +22 -0
  286. package/dist/ui/src/components/Skeleton.d.ts +6 -0
  287. package/dist/ui/src/components/Slider.d.ts +21 -0
  288. package/dist/ui/src/components/Table.d.ts +34 -0
  289. package/dist/ui/src/components/Tabs.d.ts +19 -0
  290. package/dist/ui/src/components/TextField.d.ts +58 -0
  291. package/dist/ui/src/components/TextareaAutosize.d.ts +43 -0
  292. package/dist/ui/src/components/ToggleButtonGroup.d.ts +30 -0
  293. package/dist/ui/src/components/Tooltip.d.ts +19 -0
  294. package/dist/ui/src/components/Typography.d.ts +36 -0
  295. package/dist/ui/src/components/VirtualTable/VirtualTable.d.ts +11 -0
  296. package/dist/ui/src/components/VirtualTable/VirtualTableCell.d.ts +21 -0
  297. package/dist/ui/src/components/VirtualTable/VirtualTableHeader.d.ts +29 -0
  298. package/dist/ui/src/components/VirtualTable/VirtualTableHeaderRow.d.ts +2 -0
  299. package/dist/ui/src/components/VirtualTable/VirtualTableProps.d.ts +243 -0
  300. package/dist/ui/src/components/VirtualTable/VirtualTableRow.d.ts +3 -0
  301. package/dist/ui/src/components/VirtualTable/index.d.ts +3 -0
  302. package/dist/ui/src/components/VirtualTable/types.d.ts +38 -0
  303. package/dist/ui/src/components/common/SelectInputLabel.d.ts +5 -0
  304. package/dist/ui/src/components/index.d.ts +53 -0
  305. package/dist/ui/src/hooks/PortalContainerContext.d.ts +31 -0
  306. package/dist/ui/src/hooks/index.d.ts +6 -0
  307. package/dist/ui/src/hooks/useDebounceCallback.d.ts +1 -0
  308. package/dist/ui/src/hooks/useDebounceValue.d.ts +1 -0
  309. package/dist/ui/src/hooks/useDebouncedCallback.d.ts +1 -0
  310. package/dist/ui/src/hooks/useInjectStyles.d.ts +7 -0
  311. package/dist/ui/src/hooks/useOutsideAlerter.d.ts +5 -0
  312. package/dist/ui/src/icons/GitHubIcon.d.ts +2 -0
  313. package/dist/ui/src/icons/HandleIcon.d.ts +1 -0
  314. package/dist/ui/src/icons/Icon.d.ts +20 -0
  315. package/dist/ui/src/icons/cool_icon_keys.d.ts +1 -0
  316. package/dist/ui/src/icons/icon_keys.d.ts +1 -0
  317. package/dist/ui/src/icons/index.d.ts +6 -0
  318. package/dist/ui/src/index.d.ts +5 -0
  319. package/dist/ui/src/styles.d.ts +12 -0
  320. package/dist/ui/src/util/chip_colors.d.ts +4 -0
  321. package/dist/ui/src/util/cls.d.ts +2 -0
  322. package/dist/ui/src/util/debounce.d.ts +10 -0
  323. package/dist/ui/src/util/hash.d.ts +1 -0
  324. package/dist/ui/src/util/index.d.ts +4 -0
  325. package/dist/ui/src/util/key_to_icon_component.d.ts +1 -0
  326. package/package.json +84 -0
  327. package/src/components/ApiExplorer/ApiExplorer.tsx +290 -0
  328. package/src/components/ApiExplorer/EndpointDetail.tsx +271 -0
  329. package/src/components/ApiExplorer/TryItPanel.tsx +510 -0
  330. package/src/components/ApiExplorer/parseSpec.ts +104 -0
  331. package/src/components/ApiExplorer/types.ts +84 -0
  332. package/src/components/AuthSimulationSelector.tsx +77 -0
  333. package/src/components/Branches/BranchesView.tsx +370 -0
  334. package/src/components/CronJobs/CronJobsView.tsx +346 -0
  335. package/src/components/JSEditor/JSEditor.tsx +1033 -0
  336. package/src/components/JSEditor/JSEditorSidebar.tsx +340 -0
  337. package/src/components/JSEditor/JSMonacoEditor.tsx +390 -0
  338. package/src/components/RLSEditor/PolicyEditor.tsx +444 -0
  339. package/src/components/RLSEditor/RLSEditor.tsx +692 -0
  340. package/src/components/RLSEditor/index.ts +1 -0
  341. package/src/components/RebaseStudio.tsx +121 -0
  342. package/src/components/SQLEditor/ExplainVisualizer.tsx +128 -0
  343. package/src/components/SQLEditor/MonacoEditor.tsx +203 -0
  344. package/src/components/SQLEditor/SQLEditor.tsx +1419 -0
  345. package/src/components/SQLEditor/SQLEditorSidebar.tsx +174 -0
  346. package/src/components/SQLEditor/SchemaBrowser.tsx +158 -0
  347. package/src/components/SchemaVisualizer/RelationEdge.tsx +102 -0
  348. package/src/components/SchemaVisualizer/SchemaVisualizer.tsx +665 -0
  349. package/src/components/SchemaVisualizer/TableNode.tsx +257 -0
  350. package/src/components/SchemaVisualizer/index.ts +5 -0
  351. package/src/components/SchemaVisualizer/schema-visualizer.utils.ts +140 -0
  352. package/src/components/SchemaVisualizer/useSchemaGraph.ts +397 -0
  353. package/src/components/StorageView/StorageView.tsx +1035 -0
  354. package/src/components/StudioHomePage.tsx +357 -0
  355. package/src/index.ts +31 -0
  356. package/src/utils/entities.ts +2 -0
  357. package/src/utils/pgColumnToProperty.test.ts +401 -0
  358. package/src/utils/pgColumnToProperty.ts +275 -0
  359. package/src/utils/sql_utils.test.ts +265 -0
  360. package/src/utils/sql_utils.ts +291 -0
  361. package/src/vite-env.d.ts +1 -0
@@ -0,0 +1,357 @@
1
+ import type { HomePageSection, PluginGenericProps } from "@rebasepro/types";
2
+ import React, { useEffect } from "react";
3
+ import { Card, cls, Container, Typography } from "@rebasepro/ui";
4
+ import { ArrowRightIcon } from "lucide-react";
5
+ import { iconSize } from "@rebasepro/ui";
6
+ import { IconForView, useRebaseContext, useRestoreScroll, useSlot } from "@rebasepro/core";
7
+ import { useNavigate } from "react-router-dom";
8
+ import { useStudioBreadcrumbs } from "@rebasepro/core";
9
+
10
+ /* ═══════════════════════════════════════════════════════════════
11
+ Static studio tool definitions
12
+ ═══════════════════════════════════════════════════════════════ */
13
+
14
+ interface StudioTool {
15
+ path: string;
16
+ name: string;
17
+ description: string;
18
+ icon: string;
19
+ }
20
+
21
+ interface StudioSection {
22
+ label: string;
23
+ dotColor: string;
24
+ iconColor: string;
25
+ tools: StudioTool[];
26
+ }
27
+
28
+ const SECTIONS: StudioSection[] = [
29
+ {
30
+ label: "Database",
31
+ dotColor: "bg-emerald-400",
32
+ iconColor: "text-emerald-400",
33
+ tools: [
34
+ { path: "/schema", name: "Collections", description: "Define and manage your data model and collection schemas", icon: "LayoutList" },
35
+ { path: "/schema-visualizer", name: "Schema Visualizer", description: "Interactive ERD showing tables, columns, and relationships", icon: "Network" },
36
+ { path: "/sql", name: "SQL Console", description: "Execute raw SQL queries directly against your database", icon: "terminal" },
37
+ { path: "/branches", name: "Branches", description: "Create and manage isolated database copies for development", icon: "GitBranch" },
38
+ { path: "/rls", name: "RLS Policies", description: "Configure Row Level Security for fine-grained data access", icon: "ShieldCheck" }
39
+ ]
40
+ },
41
+ {
42
+ label: "Compute",
43
+ dotColor: "bg-blue-400",
44
+ iconColor: "text-blue-400",
45
+ tools: [
46
+ { path: "/js", name: "JS Console", description: "Run JavaScript with the Rebase SDK in a live sandbox", icon: "code" },
47
+ { path: "/cron", name: "Cron Jobs", description: "Monitor and manage scheduled background tasks", icon: "Clock" }
48
+ ]
49
+ },
50
+ {
51
+ label: "API",
52
+ dotColor: "bg-violet-400",
53
+ iconColor: "text-violet-400",
54
+ tools: [
55
+ { path: "/api", name: "API Explorer", description: "Interactive API documentation with live request testing", icon: "BookOpen" }
56
+ ]
57
+ },
58
+ {
59
+ label: "Storage",
60
+ dotColor: "bg-amber-400",
61
+ iconColor: "text-amber-400",
62
+ tools: [
63
+ { path: "/storage", name: "Storage", description: "Browse, upload, and manage files in your storage bucket", icon: "HardDrive" }
64
+ ]
65
+ },
66
+ {
67
+ label: "Access Control",
68
+ dotColor: "bg-rose-400",
69
+ iconColor: "text-rose-400",
70
+ tools: [
71
+ { path: "/users", name: "Users", description: "Manage developers and assign roles in your workspace", icon: "group" },
72
+ { path: "/roles", name: "Roles", description: "Create and configure fine-grained access permissions", icon: "ShieldEllipsis" }
73
+ ]
74
+ }
75
+ ];
76
+
77
+ /* ═══════════════════════════════════════════════════════════════ */
78
+
79
+ export function StudioHomePage({
80
+ additionalActions,
81
+ additionalChildrenStart,
82
+ additionalChildrenEnd,
83
+ sections,
84
+ hiddenGroups
85
+ }: {
86
+ additionalActions?: React.ReactNode;
87
+ additionalChildrenStart?: React.ReactNode;
88
+ additionalChildrenEnd?: React.ReactNode;
89
+ sections?: HomePageSection[];
90
+ hiddenGroups?: string[];
91
+ }) {
92
+ const context = useRebaseContext();
93
+ const breadcrumbs = useStudioBreadcrumbs();
94
+ const navigate = useNavigate();
95
+
96
+ useEffect(() => {
97
+ breadcrumbs.set({ breadcrumbs: [] });
98
+ }, [breadcrumbs.set]);
99
+
100
+ const { containerRef } = useRestoreScroll();
101
+
102
+ const sectionProps: PluginGenericProps = { context };
103
+
104
+ const pluginActions = useSlot("home.actions", sectionProps);
105
+
106
+ return (
107
+ <div ref={containerRef} className="py-2 overflow-auto h-full w-full">
108
+ <Container maxWidth="6xl">
109
+
110
+ {(additionalActions || pluginActions) && (
111
+ <div className="w-full sticky py-4 transition-all duration-400 ease-in-out top-0 z-10 flex flex-row gap-4 justify-end">
112
+ {additionalActions}
113
+ {pluginActions}
114
+ </div>
115
+ )}
116
+
117
+ {additionalChildrenStart}
118
+
119
+ {/* ── Tool sections ── */}
120
+ <div className="flex flex-col gap-8 pt-2">
121
+ {SECTIONS.map((section) => (
122
+ <section key={section.label} aria-label={section.label}>
123
+ {/* Section header */}
124
+ <Typography
125
+ variant="caption"
126
+ component="h2"
127
+ color="secondary"
128
+ className="py-2 font-medium uppercase text-sm text-surface-600 dark:text-surface-400"
129
+ >
130
+ {section.label}
131
+ </Typography>
132
+
133
+ {/* Card grid */}
134
+ <div className="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-3 mt-2">
135
+ {section.tools.map((tool) => (
136
+ <Card
137
+ key={tool.path}
138
+ onClick={() => {
139
+ navigate(tool.path);
140
+ context.analyticsController?.onAnalyticsEvent?.(
141
+ "home_navigate_to_view",
142
+ { path: tool.path }
143
+ );
144
+ }}
145
+ className={cls(
146
+ "h-full px-4 py-2.5 cursor-pointer transition-all duration-200 ease-in-out",
147
+ "hover:-translate-y-0.5 hover:shadow-md hover:shadow-primary/5"
148
+ )}
149
+ >
150
+ <div className="flex flex-col items-start h-full">
151
+ <div className="grow w-full">
152
+ {/* Icon */}
153
+ <div className={cls("h-6 flex items-center", section.iconColor)}>
154
+ <IconForView
155
+ collectionOrView={{ slug: tool.path,
156
+ name: tool.name,
157
+ icon: tool.icon }}
158
+ size="small"
159
+ />
160
+ </div>
161
+
162
+ {/* Title */}
163
+ <Typography
164
+ gutterBottom
165
+ variant="subtitle1"
166
+ className="mt-1 font-semibold"
167
+ component="h2"
168
+ >
169
+ {tool.name}
170
+ </Typography>
171
+
172
+ {/* Description */}
173
+ <Typography variant="caption" color="secondary" component="div">
174
+ {tool.description}
175
+ </Typography>
176
+ </div>
177
+
178
+ {/* Arrow */}
179
+ <div style={{ alignSelf: "flex-end" }}>
180
+ <div className="p-2">
181
+ <ArrowRightIcon className="text-primary" size={iconSize.small}/>
182
+ </div>
183
+ </div>
184
+ </div>
185
+ </Card>
186
+ ))}
187
+ </div>
188
+ </section>
189
+ ))}
190
+ </div>
191
+
192
+ {/* ── SDK Quick Start ── */}
193
+ <div className="mt-10 mb-6">
194
+ <div className="flex items-center mb-1">
195
+ <Typography
196
+ variant="caption"
197
+ component="h2"
198
+ color="secondary"
199
+ className="py-2 font-medium uppercase text-sm text-surface-600 dark:text-surface-400"
200
+ >
201
+ Quick Start
202
+ </Typography>
203
+ </div>
204
+
205
+ <Typography variant="body2" color="secondary" className="mb-4 max-w-2xl">
206
+ Generate a fully-typed SDK from your collections with{" "}
207
+ <code className="text-emerald-400 font-mono text-xs bg-emerald-400/10 px-1.5 py-0.5 rounded">
208
+ npx rebase generate-sdk
209
+ </code>
210
+ {" "}and start querying your data with full TypeScript autocompletion.
211
+ </Typography>
212
+
213
+ <div className="rounded-lg border border-surface-200/40 dark:border-surface-700/40 bg-white dark:bg-surface-950 overflow-hidden">
214
+ {/* Title bar */}
215
+ <div className="flex items-center justify-between px-4 py-2.5 border-b border-surface-200/40 dark:border-surface-700/40 bg-surface-50 dark:bg-surface-900/80">
216
+ <div className="flex items-center gap-2.5">
217
+ <div className="flex gap-1.5">
218
+ <span className="w-2.5 h-2.5 rounded-full bg-red-400/60"/>
219
+ <span className="w-2.5 h-2.5 rounded-full bg-amber-400/60"/>
220
+ <span className="w-2.5 h-2.5 rounded-full bg-emerald-400/60"/>
221
+ </div>
222
+ <span className="text-xs font-mono text-surface-400 dark:text-surface-500 ml-1">
223
+ app.ts
224
+ </span>
225
+ </div>
226
+ <span className="text-xs font-mono text-surface-400 dark:text-surface-500">
227
+ TypeScript
228
+ </span>
229
+ </div>
230
+
231
+ {/* Syntax-highlighted code */}
232
+ <div className="px-5 py-4 overflow-x-auto text-[13px] leading-6 font-mono">
233
+ <SyntaxHighlightedSnippet/>
234
+ </div>
235
+ </div>
236
+ </div>
237
+
238
+ {/* ── Extra sections from props ── */}
239
+ {sections?.map((s) => (
240
+ <div key={s.key} className="my-10">
241
+ <Typography
242
+ variant="caption"
243
+ component="h2"
244
+ color="secondary"
245
+ className="p-4 py-2 rounded font-medium uppercase text-sm text-surface-600 dark:text-surface-400"
246
+ >
247
+ {s.title}
248
+ </Typography>
249
+ <div className="mt-4">{s.children}</div>
250
+ </div>
251
+ ))}
252
+
253
+ {additionalChildrenEnd}
254
+ </Container>
255
+ </div>
256
+ );
257
+ }
258
+
259
+ /* ═══════════════════════════════════════════════════════════════
260
+ Hand-crafted syntax-highlighted code snippet.
261
+ Uses inline spans with Tailwind color classes to avoid
262
+ pulling in a syntax highlighting library.
263
+ ═══════════════════════════════════════════════════════════════ */
264
+
265
+ function SyntaxHighlightedSnippet() {
266
+ const kw = "text-violet-600 dark:text-violet-400"; // keywords
267
+ const str = "text-emerald-600 dark:text-emerald-400"; // strings
268
+ const typ = "text-amber-600 dark:text-amber-300"; // types
269
+ const fn = "text-blue-600 dark:text-blue-400"; // functions
270
+ const cm = "text-surface-500 dark:text-surface-400 italic"; // comments
271
+ const op = "text-surface-500 dark:text-surface-400"; // operators / punctuation
272
+ const tx = "text-surface-950 dark:text-surface-200"; // plain text
273
+
274
+ return (
275
+ <pre className="m-0 whitespace-pre">
276
+ <span className={kw}>import</span>
277
+ <span className={tx}>{" { "}</span>
278
+ <span className={fn}>createRebaseClient</span>
279
+ <span className={tx}>{" } "}</span>
280
+ <span className={kw}>from</span>
281
+ <span className={tx}> </span>
282
+ <span className={str}>&apos;@rebasepro/client&apos;</span>
283
+ <span className={op}>;</span>
284
+ {"\n"}
285
+
286
+ <span className={kw}>import</span>
287
+ <span className={tx}> </span>
288
+ <span className={kw}>type</span>
289
+ <span className={tx}>{" { "}</span>
290
+ <span className={typ}>Database</span>
291
+ <span className={tx}>{" } "}</span>
292
+ <span className={kw}>from</span>
293
+ <span className={tx}> </span>
294
+ <span className={str}>&apos;./database.types&apos;</span>
295
+ <span className={op}>;</span>
296
+ {"\n\n"}
297
+
298
+ <span className={kw}>const</span>
299
+ <span className={tx}> rebase </span>
300
+ <span className={op}>= </span>
301
+ <span className={fn}>createRebaseClient</span>
302
+ <span className={op}>{"<"}</span>
303
+ <span className={typ}>Database</span>
304
+ <span className={op}>{">("}</span>
305
+ <span className={tx}>{"{"}</span>
306
+ {"\n"}
307
+ <span className={tx}>{" baseUrl"}</span>
308
+ <span className={op}>: </span>
309
+ <span className={str}>&apos;http://localhost:3001&apos;</span>
310
+ <span className={op}>,</span>
311
+ {"\n"}
312
+ <span className={tx}>{"}"}</span>
313
+ <span className={op}>);</span>
314
+ {"\n\n"}
315
+
316
+ <span className={cm}>{"// Fully typed — autocompletion for tables and columns"}</span>
317
+ {"\n"}
318
+ <span className={kw}>const</span>
319
+ <span className={tx}>{" { "}</span>
320
+ <span className={tx}>data</span>
321
+ <span className={op}>: </span>
322
+ <span className={tx}>users</span>
323
+ <span className={tx}>{" } "}</span>
324
+ <span className={op}>= </span>
325
+ <span className={kw}>await</span>
326
+ <span className={tx}> rebase</span>
327
+ <span className={op}>.</span>
328
+ <span className={tx}>data</span>
329
+ <span className={op}>.</span>
330
+ <span className={tx}>users</span>
331
+ <span className={op}>.</span>
332
+ <span className={fn}>find</span>
333
+ <span className={op}>();</span>
334
+ {"\n"}
335
+
336
+ <span className={kw}>const</span>
337
+ <span className={tx}>{" { "}</span>
338
+ <span className={tx}>data</span>
339
+ <span className={op}>: </span>
340
+ <span className={tx}>posts</span>
341
+ <span className={tx}>{" } "}</span>
342
+ <span className={op}>= </span>
343
+ <span className={kw}>await</span>
344
+ <span className={tx}> rebase</span>
345
+ <span className={op}>.</span>
346
+ <span className={tx}>data</span>
347
+ <span className={op}>.</span>
348
+ <span className={fn}>collection</span>
349
+ <span className={op}>(</span>
350
+ <span className={str}>&apos;posts&apos;</span>
351
+ <span className={op}>)</span>
352
+ <span className={op}>.</span>
353
+ <span className={fn}>find</span>
354
+ <span className={op}>();</span>
355
+ </pre>
356
+ );
357
+ }
package/src/index.ts ADDED
@@ -0,0 +1,31 @@
1
+ // ─── Bridge ─────────────────────────────────────────────────────────
2
+ // Re-export the Studio Bridge from @rebasepro/core.
3
+ // The bridge lives in core so both studio and CMS can access it
4
+ // without circular dependencies.
5
+ export {
6
+ StudioBridgeProvider,
7
+ StudioBridgeContext,
8
+ useStudioCollectionRegistry,
9
+ useStudioSideEntityController,
10
+ useStudioUrlController,
11
+ useStudioNavigationState,
12
+ useStudioBreadcrumbs
13
+ } from "@rebasepro/core";
14
+ export type {
15
+ StudioBridge,
16
+ BreadcrumbEntry,
17
+ BreadcrumbsController
18
+ } from "@rebasepro/core";
19
+
20
+ // ─── Studio Entry Point ─────────────────────────────────────────────
21
+ // Only export the lightweight orchestrator & home page.
22
+ // Individual tools (SQLEditor, JSEditor, RLSEditor, StorageView, etc.)
23
+ // are lazy-loaded by RebaseStudio.tsx — DO NOT re-export them here
24
+ // or they'll be pulled into the main bundle, defeating code splitting.
25
+ export * from "./components/RebaseStudio";
26
+ export * from "./components/StudioHomePage";
27
+
28
+ // ─── Direct tool imports (for advanced usage) ───────────────────────
29
+ // Consumers that need direct access to a tool should use deep imports:
30
+ // import { SQLEditor } from "@rebasepro/studio/components/SQLEditor/SQLEditor";
31
+ // This avoids pulling all tools into their bundle.
@@ -0,0 +1,2 @@
1
+ // This file previously contained editableProperty and removeNonEditableProperties.
2
+ // All properties are now always editable, so these utilities were removed.