@rebasepro/app 0.0.1-canary.4829d6e

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 (268) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +174 -0
  3. package/dist/auth/api.d.ts +66 -0
  4. package/dist/auth/index.d.ts +13 -0
  5. package/dist/auth/types.d.ts +127 -0
  6. package/dist/auth/useRebaseAuthController.d.ts +13 -0
  7. package/dist/components/AIIcon.d.ts +17 -0
  8. package/dist/components/AuthSimulationMenu.d.ts +0 -0
  9. package/dist/components/ConfirmationDialog.d.ts +9 -0
  10. package/dist/components/Debug/UIReferenceView.d.ts +13 -0
  11. package/dist/components/Debug/UIStyleGuide.d.ts +2 -0
  12. package/dist/components/Debug/collection-views/CardViewDemo.d.ts +2 -0
  13. package/dist/components/Debug/collection-views/CollectionTableDemo.d.ts +2 -0
  14. package/dist/components/Debug/collection-views/KanbanBoardDemo.d.ts +2 -0
  15. package/dist/components/Debug/collection-views/index.d.ts +3 -0
  16. package/dist/components/Debug/collection-views/sample_data.d.ts +23 -0
  17. package/dist/components/Debug/crm-dashboard/CalendarWidget.d.ts +22 -0
  18. package/dist/components/Debug/crm-dashboard/CrmDashboardDemo.d.ts +2 -0
  19. package/dist/components/Debug/crm-dashboard/DashboardMetrics.d.ts +15 -0
  20. package/dist/components/Debug/crm-dashboard/PipelineOverview.d.ts +34 -0
  21. package/dist/components/Debug/crm-dashboard/RecentActivity.d.ts +19 -0
  22. package/dist/components/Debug/crm-dashboard/TaskFilters.d.ts +30 -0
  23. package/dist/components/Debug/crm-dashboard/TaskTable.d.ts +50 -0
  24. package/dist/components/Debug/crm-dashboard/TasksView.d.ts +41 -0
  25. package/dist/components/ErrorTooltip.d.ts +3 -0
  26. package/dist/components/ErrorView.d.ts +21 -0
  27. package/dist/components/LanguageToggle.d.ts +2 -0
  28. package/dist/components/LoginView/LoginView.d.ts +113 -0
  29. package/dist/components/LoginView/index.d.ts +2 -0
  30. package/dist/components/NotFoundPage.d.ts +2 -0
  31. package/dist/components/RebaseAuth.d.ts +10 -0
  32. package/dist/components/RebaseLogo.d.ts +7 -0
  33. package/dist/components/SchemaDriftBanner.d.ts +27 -0
  34. package/dist/components/UnsavedChangesDialog.d.ts +9 -0
  35. package/dist/components/UserDisplay.d.ts +7 -0
  36. package/dist/components/UserSelectPopover.d.ts +63 -0
  37. package/dist/components/UserSettingsView.d.ts +2 -0
  38. package/dist/components/common/index.d.ts +6 -0
  39. package/dist/components/common/table_height.d.ts +5 -0
  40. package/dist/components/common/types.d.ts +66 -0
  41. package/dist/components/common/useColumnsIds.d.ts +9 -0
  42. package/dist/components/common/useDataTableController.d.ts +45 -0
  43. package/dist/components/common/useDebouncedData.d.ts +9 -0
  44. package/dist/components/common/useScrollRestoration.d.ts +14 -0
  45. package/dist/components/index.d.ts +18 -0
  46. package/dist/contexts/AdminModeController.d.ts +4 -0
  47. package/dist/contexts/AnalyticsContext.d.ts +3 -0
  48. package/dist/contexts/AuthControllerContext.d.ts +3 -0
  49. package/dist/contexts/CollectionScopeContext.d.ts +50 -0
  50. package/dist/contexts/ComponentOverrideContext.d.ts +42 -0
  51. package/dist/contexts/CustomizationControllerContext.d.ts +3 -0
  52. package/dist/contexts/DataDriverContext.d.ts +3 -0
  53. package/dist/contexts/DataSourcesContext.d.ts +31 -0
  54. package/dist/contexts/DatabaseAdminContext.d.ts +3 -0
  55. package/dist/contexts/DialogsProvider.d.ts +4 -0
  56. package/dist/contexts/EffectiveRoleController.d.ts +4 -0
  57. package/dist/contexts/ModeController.d.ts +4 -0
  58. package/dist/contexts/RebaseClientInstanceContext.d.ts +6 -0
  59. package/dist/contexts/RebaseDataContext.d.ts +3 -0
  60. package/dist/contexts/SnackbarProvider.d.ts +2 -0
  61. package/dist/contexts/StorageSourceContext.d.ts +3 -0
  62. package/dist/contexts/StorageSourcesContext.d.ts +25 -0
  63. package/dist/contexts/UserConfigurationPersistenceContext.d.ts +3 -0
  64. package/dist/contexts/index.d.ts +17 -0
  65. package/dist/core/PluginLifecycleManager.d.ts +17 -0
  66. package/dist/core/PluginProviderStack.d.ts +21 -0
  67. package/dist/core/Rebase.d.ts +15 -0
  68. package/dist/core/RebaseProps.d.ts +291 -0
  69. package/dist/core/RebaseRouter.d.ts +4 -0
  70. package/dist/core/RebaseRoutes.d.ts +17 -0
  71. package/dist/core/index.d.ts +4 -0
  72. package/dist/hooks/ApiConfigContext.d.ts +24 -0
  73. package/dist/hooks/data/delete.d.ts +33 -0
  74. package/dist/hooks/data/save.d.ts +40 -0
  75. package/dist/hooks/data/useCollection.d.ts +62 -0
  76. package/dist/hooks/data/useData.d.ts +13 -0
  77. package/dist/hooks/data/useDataOrder.d.ts +12 -0
  78. package/dist/hooks/data/useFetch.d.ts +43 -0
  79. package/dist/hooks/data/useRelationSelector.d.ts +52 -0
  80. package/dist/hooks/index.d.ts +36 -0
  81. package/dist/hooks/useAdminModeController.d.ts +19 -0
  82. package/dist/hooks/useAnalyticsController.d.ts +5 -0
  83. package/dist/hooks/useAuthController.d.ts +11 -0
  84. package/dist/hooks/useAuthSubscription.d.ts +2 -0
  85. package/dist/hooks/useBackendStorageSource.d.ts +30 -0
  86. package/dist/hooks/useBridgeRegistration.d.ts +18 -0
  87. package/dist/hooks/useBrowserTitleAndIcon.d.ts +6 -0
  88. package/dist/hooks/useBuildAdminModeController.d.ts +6 -0
  89. package/dist/hooks/useBuildEffectiveRoleController.d.ts +8 -0
  90. package/dist/hooks/useBuildLocalConfigurationPersistence.d.ts +2 -0
  91. package/dist/hooks/useBuildModeController.d.ts +6 -0
  92. package/dist/hooks/useClipboard.d.ts +57 -0
  93. package/dist/hooks/useCollapsedGroups.d.ts +27 -0
  94. package/dist/hooks/useComponentOverride.d.ts +32 -0
  95. package/dist/hooks/useCustomizationController.d.ts +11 -0
  96. package/dist/hooks/useDialogsController.d.ts +11 -0
  97. package/dist/hooks/useEffectiveRoleController.d.ts +7 -0
  98. package/dist/hooks/useLargeLayout.d.ts +1 -0
  99. package/dist/hooks/useModeController.d.ts +19 -0
  100. package/dist/hooks/usePermissions.d.ts +12 -0
  101. package/dist/hooks/useRebaseClient.d.ts +5 -0
  102. package/dist/hooks/useRebaseContext.d.ts +11 -0
  103. package/dist/hooks/useRebaseRegistry.d.ts +34 -0
  104. package/dist/hooks/useResolvedComponent.d.ts +47 -0
  105. package/dist/hooks/useSlot.d.ts +18 -0
  106. package/dist/hooks/useSnackbarController.d.ts +20 -0
  107. package/dist/hooks/useStorageSource.d.ts +6 -0
  108. package/dist/hooks/useStudioBridge.d.ts +79 -0
  109. package/dist/hooks/useTranslation.d.ts +17 -0
  110. package/dist/hooks/useUnsavedChangesDialog.d.ts +12 -0
  111. package/dist/hooks/useUserConfigurationPersistence.d.ts +8 -0
  112. package/dist/i18n/RebaseI18nProvider.d.ts +33 -0
  113. package/dist/index.d.ts +16 -0
  114. package/dist/index.es.js +16843 -0
  115. package/dist/index.es.js.map +1 -0
  116. package/dist/index.umd.js +17021 -0
  117. package/dist/index.umd.js.map +1 -0
  118. package/dist/internal/common.d.ts +14 -0
  119. package/dist/internal/useRestoreScroll.d.ts +15 -0
  120. package/dist/locales/de.d.ts +2 -0
  121. package/dist/locales/en.d.ts +10 -0
  122. package/dist/locales/es.d.ts +10 -0
  123. package/dist/locales/fr.d.ts +2 -0
  124. package/dist/locales/hi.d.ts +2 -0
  125. package/dist/locales/it.d.ts +2 -0
  126. package/dist/locales/pt.d.ts +7 -0
  127. package/dist/util/constants.d.ts +1 -0
  128. package/dist/util/createFormexStub.d.ts +2 -0
  129. package/dist/util/entity_cache.d.ts +22 -0
  130. package/dist/util/enums.d.ts +5 -0
  131. package/dist/util/icon_list.d.ts +5 -0
  132. package/dist/util/icons.d.ts +20 -0
  133. package/dist/util/index.d.ts +8 -0
  134. package/dist/util/previews.d.ts +4 -0
  135. package/dist/util/useStorageUploadController.d.ts +44 -0
  136. package/dist/vitePlugin.d.ts +60 -0
  137. package/dist/vitePlugin.js +113 -0
  138. package/package.json +145 -0
  139. package/src/auth/api.ts +148 -0
  140. package/src/auth/index.ts +25 -0
  141. package/src/auth/types.ts +115 -0
  142. package/src/auth/useRebaseAuthController.ts +328 -0
  143. package/src/components/AIIcon.tsx +47 -0
  144. package/src/components/AuthSimulationMenu.tsx +0 -0
  145. package/src/components/ConfirmationDialog.tsx +48 -0
  146. package/src/components/Debug/UIReferenceView.tsx +958 -0
  147. package/src/components/Debug/UIStyleGuide.tsx +156 -0
  148. package/src/components/Debug/collection-views/CardViewDemo.tsx +85 -0
  149. package/src/components/Debug/collection-views/CollectionTableDemo.tsx +107 -0
  150. package/src/components/Debug/collection-views/KanbanBoardDemo.tsx +90 -0
  151. package/src/components/Debug/collection-views/index.ts +3 -0
  152. package/src/components/Debug/collection-views/sample_data.ts +42 -0
  153. package/src/components/Debug/crm-dashboard/CalendarWidget.tsx +389 -0
  154. package/src/components/Debug/crm-dashboard/CrmDashboardDemo.tsx +1102 -0
  155. package/src/components/Debug/crm-dashboard/DashboardMetrics.tsx +133 -0
  156. package/src/components/Debug/crm-dashboard/PipelineOverview.tsx +290 -0
  157. package/src/components/Debug/crm-dashboard/RecentActivity.tsx +215 -0
  158. package/src/components/Debug/crm-dashboard/TaskFilters.tsx +184 -0
  159. package/src/components/Debug/crm-dashboard/TaskTable.tsx +427 -0
  160. package/src/components/Debug/crm-dashboard/TasksView.tsx +234 -0
  161. package/src/components/ErrorTooltip.tsx +12 -0
  162. package/src/components/ErrorView.tsx +94 -0
  163. package/src/components/LanguageToggle.tsx +59 -0
  164. package/src/components/LoginView/LoginView.tsx +932 -0
  165. package/src/components/LoginView/index.ts +2 -0
  166. package/src/components/NotFoundPage.tsx +27 -0
  167. package/src/components/RebaseAuth.tsx +27 -0
  168. package/src/components/RebaseLogo.tsx +29 -0
  169. package/src/components/SchemaDriftBanner.tsx +102 -0
  170. package/src/components/UnsavedChangesDialog.tsx +46 -0
  171. package/src/components/UserDisplay.tsx +54 -0
  172. package/src/components/UserSelectPopover.tsx +399 -0
  173. package/src/components/UserSettingsView.tsx +318 -0
  174. package/src/components/common/index.ts +6 -0
  175. package/src/components/common/table_height.tsx +21 -0
  176. package/src/components/common/types.tsx +66 -0
  177. package/src/components/common/useColumnsIds.tsx +222 -0
  178. package/src/components/common/useDataTableController.tsx +514 -0
  179. package/src/components/common/useDebouncedData.ts +49 -0
  180. package/src/components/common/useScrollRestoration.tsx +68 -0
  181. package/src/components/index.tsx +26 -0
  182. package/src/contexts/AdminModeController.tsx +11 -0
  183. package/src/contexts/AnalyticsContext.tsx +4 -0
  184. package/src/contexts/AuthControllerContext.tsx +4 -0
  185. package/src/contexts/CollectionScopeContext.tsx +67 -0
  186. package/src/contexts/ComponentOverrideContext.tsx +81 -0
  187. package/src/contexts/CustomizationControllerContext.tsx +4 -0
  188. package/src/contexts/DataDriverContext.tsx +4 -0
  189. package/src/contexts/DataSourcesContext.tsx +36 -0
  190. package/src/contexts/DatabaseAdminContext.tsx +4 -0
  191. package/src/contexts/DialogsProvider.tsx +56 -0
  192. package/src/contexts/EffectiveRoleController.tsx +12 -0
  193. package/src/contexts/ModeController.tsx +11 -0
  194. package/src/contexts/RebaseClientInstanceContext.tsx +7 -0
  195. package/src/contexts/RebaseDataContext.tsx +4 -0
  196. package/src/contexts/SnackbarProvider.tsx +15 -0
  197. package/src/contexts/StorageSourceContext.tsx +4 -0
  198. package/src/contexts/StorageSourcesContext.tsx +30 -0
  199. package/src/contexts/UserConfigurationPersistenceContext.tsx +4 -0
  200. package/src/contexts/index.ts +17 -0
  201. package/src/core/PluginLifecycleManager.tsx +95 -0
  202. package/src/core/PluginProviderStack.tsx +40 -0
  203. package/src/core/Rebase.tsx +439 -0
  204. package/src/core/RebaseProps.tsx +320 -0
  205. package/src/core/RebaseRouter.tsx +17 -0
  206. package/src/core/RebaseRoutes.tsx +24 -0
  207. package/src/core/index.tsx +5 -0
  208. package/src/hooks/ApiConfigContext.tsx +41 -0
  209. package/src/hooks/data/delete.ts +55 -0
  210. package/src/hooks/data/save.ts +77 -0
  211. package/src/hooks/data/useCollection.tsx +176 -0
  212. package/src/hooks/data/useData.tsx +18 -0
  213. package/src/hooks/data/useDataOrder.ts +26 -0
  214. package/src/hooks/data/useFetch.tsx +140 -0
  215. package/src/hooks/data/useRelationSelector.tsx +234 -0
  216. package/src/hooks/index.tsx +45 -0
  217. package/src/hooks/useAdminModeController.tsx +23 -0
  218. package/src/hooks/useAnalyticsController.tsx +8 -0
  219. package/src/hooks/useAuthController.tsx +14 -0
  220. package/src/hooks/useAuthSubscription.ts +87 -0
  221. package/src/hooks/useBackendStorageSource.ts +288 -0
  222. package/src/hooks/useBridgeRegistration.tsx +32 -0
  223. package/src/hooks/useBrowserTitleAndIcon.tsx +23 -0
  224. package/src/hooks/useBuildAdminModeController.tsx +24 -0
  225. package/src/hooks/useBuildEffectiveRoleController.tsx +31 -0
  226. package/src/hooks/useBuildLocalConfigurationPersistence.tsx +75 -0
  227. package/src/hooks/useBuildModeController.tsx +71 -0
  228. package/src/hooks/useClipboard.tsx +158 -0
  229. package/src/hooks/useCollapsedGroups.ts +116 -0
  230. package/src/hooks/useComponentOverride.tsx +59 -0
  231. package/src/hooks/useCustomizationController.tsx +14 -0
  232. package/src/hooks/useDialogsController.tsx +15 -0
  233. package/src/hooks/useEffectiveRoleController.tsx +10 -0
  234. package/src/hooks/useLargeLayout.tsx +65 -0
  235. package/src/hooks/useModeController.tsx +23 -0
  236. package/src/hooks/usePermissions.ts +44 -0
  237. package/src/hooks/useRebaseClient.tsx +10 -0
  238. package/src/hooks/useRebaseContext.tsx +83 -0
  239. package/src/hooks/useRebaseRegistry.tsx +91 -0
  240. package/src/hooks/useResolvedComponent.tsx +159 -0
  241. package/src/hooks/useSlot.tsx +64 -0
  242. package/src/hooks/useSnackbarController.tsx +52 -0
  243. package/src/hooks/useStorageSource.tsx +11 -0
  244. package/src/hooks/useStudioBridge.tsx +209 -0
  245. package/src/hooks/useTranslation.ts +33 -0
  246. package/src/hooks/useUnsavedChangesDialog.tsx +64 -0
  247. package/src/hooks/useUserConfigurationPersistence.tsx +11 -0
  248. package/src/i18n/RebaseI18nProvider.tsx +160 -0
  249. package/src/index.ts +25 -0
  250. package/src/internal/common.tsx +16 -0
  251. package/src/internal/useRestoreScroll.tsx +69 -0
  252. package/src/locales/de.ts +902 -0
  253. package/src/locales/en.ts +980 -0
  254. package/src/locales/es.ts +922 -0
  255. package/src/locales/fr.ts +901 -0
  256. package/src/locales/hi.ts +901 -0
  257. package/src/locales/it.ts +901 -0
  258. package/src/locales/pt.ts +909 -0
  259. package/src/util/constants.ts +7 -0
  260. package/src/util/createFormexStub.tsx +66 -0
  261. package/src/util/entity_cache.ts +239 -0
  262. package/src/util/enums.ts +32 -0
  263. package/src/util/icon_list.ts +22 -0
  264. package/src/util/icons.tsx +149 -0
  265. package/src/util/index.ts +12 -0
  266. package/src/util/previews.ts +105 -0
  267. package/src/util/useStorageUploadController.tsx +350 -0
  268. package/src/vitePlugin.ts +196 -0
@@ -0,0 +1,980 @@
1
+ import { RebaseTranslations } from "@rebasepro/types";
2
+
3
+ /**
4
+ * English baseline translations for @rebasepro/app.
5
+ *
6
+ * This is the single source of truth for all default UI strings.
7
+ * Override any key via the `translations` prop on Rebase entry-point components.
8
+ *
9
+ * @group Core
10
+ */
11
+ export const en: RebaseTranslations = {
12
+ // ─── Form actions ────────────────────────────────────────────
13
+ save: "Save",
14
+ create: "Create",
15
+ create_copy: "Create copy",
16
+ save_and_close: "Save and close",
17
+ create_copy_and_close: "Create copy and close",
18
+ create_and_close: "Create and close",
19
+ discard: "Discard",
20
+ clear: "Clear",
21
+ cancel: "Cancel",
22
+
23
+ // ─── Entity actions ──────────────────────────────────────────
24
+ edit: "Edit",
25
+ copy: "Copy",
26
+ delete: "Delete",
27
+ delete_not_allowed: "You have selected at least one entity you cannot delete",
28
+ edit_entity: "Edit",
29
+ back_to_detail: "Back to details",
30
+
31
+ // ─── Delete dialog ───────────────────────────────────────────
32
+ delete_confirmation_title: "Delete?",
33
+ delete_confirmation_body: "This will delete the entity. Are you sure?",
34
+ delete_multiple_confirmation_body: "This will delete the selected entities. Are you sure?",
35
+
36
+ // ─── Unsaved-changes dialog ───────────────────────────────────
37
+ unsaved_changes_title: "Unsaved changes",
38
+ unsaved_changes_body: "You have unsaved changes. Do you want to discard them?",
39
+ discard_changes: "Discard changes",
40
+ keep_editing: "Keep editing",
41
+ clear_form: "Clear form?",
42
+ discard_changes_confirmation: "All unsaved changes will be lost. This cannot be undone.",
43
+ clear_form_confirmation: "All entered values will be cleared. This cannot be undone.",
44
+
45
+ // ─── Collection table / toolbar ──────────────────────────────
46
+ search: "Search",
47
+ find_by_id: "Find by ID",
48
+ find_entity_by_id: "Find entity by ID",
49
+ filter: "Filter",
50
+ filters: "Filters",
51
+ clear_filter: "Clear filter",
52
+ clear_filter_sort: "Clear filter/sort",
53
+ clear_sort: "Clear sort",
54
+ clear_all: "Clear all",
55
+ no_items: "No items",
56
+ no_entries_found: "No entries found",
57
+ all_entries_loaded: "All {{count}} entries loaded",
58
+ create_your_first_entry: "Create your first entry",
59
+ no_results_filter_sort: "No results with the applied filter/sort",
60
+ no_results_search: "No results found for \"{{search}}\"",
61
+ add: "Add",
62
+ remove: "Remove",
63
+ multiple_entities: "Multiple entities",
64
+ unsaved_changes: "You have unsaved changes in this {{collectionName}}.",
65
+ so_empty: "So empty...",
66
+ no_results: "No results with the applied filter/sort",
67
+ refresh_data: "Refresh data",
68
+ dark_mode: "Dark",
69
+ light_mode: "Light",
70
+ system_mode: "System",
71
+ ok: "Ok",
72
+ save_collection_config: "Save collection structure",
73
+ search_for_more_icons: "Search for more icons…",
74
+ ai_modified: "AI modified",
75
+ size_label: "Size",
76
+ group_by: "Group by",
77
+ initialize_kanban_order: "Initialize Kanban Order",
78
+ copy_id: "Copy ID",
79
+ add_specific: "Add {{name}}",
80
+ select_specific: "Select {{name}}",
81
+ select_from: "Select from {{name}}",
82
+ done: "Done",
83
+ log_out: "Log out",
84
+ column_cannot_be_edited: "This column can't be edited directly",
85
+ close: "Close",
86
+ unsaved_local_changes: "Unsaved Local changes",
87
+ unsaved_local_changes_description: "This document was edited locally and has unsaved changes. These local changes will be lost if you don't apply them.",
88
+ preview_changes: "Preview Changes",
89
+ apply_changes: "Apply Changes",
90
+ discard_local_changes: "Discard Local Changes",
91
+ preview_local_changes: "Preview Local Changes",
92
+ preview_local_changes_description: "These are the local changes that will be applied to the form.",
93
+ type: "Type",
94
+ string: "string",
95
+ number: "number",
96
+ boolean: "boolean",
97
+ date: "date",
98
+ map: "map",
99
+ array: "array",
100
+ arrays_of_arrays_not_supported: "Arrays of arrays are not supported.",
101
+ data_type_not_supported: "Data type {{dataType}} not supported yet",
102
+ passkey_error_unsupported: "Your device or browser doesn't support passkeys.",
103
+
104
+ // ─── Entity form feedback ─────────────────────────────────────
105
+ saved_correctly: "Saved successfully",
106
+ error_before_saving: "Error preparing data",
107
+ error_after_saving: "Error in post-save hook",
108
+ error_saving_entity: "Error saving entity",
109
+ entity_does_not_exist: "This entity does not exist in the database",
110
+ form_modified: "This form has been modified",
111
+ form_in_sync: "The current form is in sync with the database",
112
+ fix_errors_before_saving: "Fix highlighted errors before saving",
113
+
114
+ admin: "Admin",
115
+ home: "Home",
116
+ this_form_has_errors: "This form has errors",
117
+ error_loading_navigation: "Error loading navigation",
118
+ error_loading_auth: "Error loading auth",
119
+ this_form_has_been_modified: "This form has been modified",
120
+ current_form_in_sync: "The current form is in sync with the database",
121
+ open_in_console: "Open in the console",
122
+ collection_does_not_exist: "The specified collection does not exist. Check console",
123
+ unexpected_value: "Unexpected value",
124
+ unexpected_value_click_to_edit: "Unexpected value. Click to edit",
125
+ unexpected_reference_value: "Unexpected reference value. Click to edit",
126
+ copy_url_to_clipboard: "Copy url to clipboard",
127
+ open_image_in_new_tab: "Open image in new tab",
128
+ reference_not_set: "Reference not set",
129
+ reference_does_not_exist: "Reference does not exist",
130
+ entity_not_found: "Entity not found",
131
+ file_not_found: "File not found",
132
+ unsaved_changes_in_entity: "You have unsaved changes in this entity.",
133
+ delete_this_role: "Delete this role",
134
+ no_roles_yet: "You don't have any roles yet.",
135
+ create_default_roles: "Create default roles",
136
+ delete_role_confirmation: "Are you sure you want to delete this role?",
137
+ delete_this_user: "Delete this user",
138
+ no_users_yet: "There are no users yet",
139
+ add_logged_user_as_admin: "Add the logged user as an admin",
140
+ add_current_user_as_admin: "Add current user as admin",
141
+ create_default_roles_and_add_admin: "Create default roles and add current user as admin",
142
+ delete_user_confirmation: "Are you sure you want to delete this user?",
143
+ create_your_users_and_roles: "Create your users and roles",
144
+ no_users_or_roles_defined: "You have no users or roles defined. You can create default roles and add the current user as admin.",
145
+ save_before_changing_schema: "You need to save the document before changing the schema",
146
+ edit_schema_for_this_form: "Edit schema for this form",
147
+ no_permissions_to_edit_collection: "You don't have permissions to edit this collection",
148
+ browser_does_not_support_audio: "Your browser does not support the audio element.",
149
+ user_not_found: "User not found: {{value}}",
150
+
151
+ // ─── Collection view actions ──────────────────────────────────
152
+ delete_selected: "Delete",
153
+ cannot_delete_selected: "You have selected at least one entity you cannot delete",
154
+
155
+ // ─── Array / field containers ─────────────────────────────────
156
+ add_entry: "Add",
157
+ add_on_top: "Add on top",
158
+ add_below: "Add below",
159
+ add_to_field: "Add to {{fieldName}}",
160
+ value: "Value",
161
+ key: "Key",
162
+ drag_drop_multiple: "Drag 'n' drop some files here, or click to select files. Drag to reorder.",
163
+ drag_drop_single: "Drag 'n' drop a file here, or click to select one",
164
+
165
+ // ─── Navigation / scaffold ────────────────────────────────────
166
+ open_menu: "Open menu",
167
+ close_drawer: "Close drawer",
168
+ navigation_drawer: "Navigation drawer",
169
+ collapse: "Collapse",
170
+ expand: "Expand",
171
+ change_language: "Change language",
172
+ toggle_theme: "Toggle theme",
173
+ user_menu: "User menu",
174
+
175
+ // ─── Error states ─────────────────────────────────────────────
176
+ error: "Error",
177
+ error_loading_data: "Could not load data",
178
+ error_check_server_logs: "Check server logs for details.",
179
+ error_technical_details: "Technical details",
180
+ error_uploading_file: "Error uploading file",
181
+ error_deleting: "Error deleting",
182
+ error_before_delete: "Error before delete",
183
+ error_updating_asset: "Error updating asset",
184
+ error_deleting_asset: "Error deleting asset",
185
+ error_firestore_index: "A Firestore index is required for this query.",
186
+ create_index: "Create Index",
187
+ value_is_not_reference: "Value is not a reference.",
188
+ click_to_edit: "Click to edit",
189
+ data_is_not_array_of_references: "Data is not an array of references",
190
+
191
+ // ─── Misc ─────────────────────────────────────────────────────
192
+ loading: "Loading",
193
+ local_changes_applied: "Local changes applied to the form",
194
+ local_changes_discarded: "Local changes discarded",
195
+ are_you_sure_leave: "Are you sure you want to leave this page?",
196
+ see_console_details: "See console for more details.",
197
+ drop_here_create_group: "Drop here to create a new group",
198
+ filter_for_null_values: "Filter for null values",
199
+ value_updated_elsewhere: "This value has been updated elsewhere",
200
+ add_property: "Add property",
201
+ edit_name: "Edit {{name}}",
202
+ this_entity_not_exist: "This entity does not exist in the database",
203
+ internal_error: "Internal ERROR",
204
+
205
+ // ─── Rename group dialog ──────────────────────────────────────
206
+ rename_group: "Rename Group",
207
+ group_name_label: "Group Name",
208
+ group_name_empty_error: "Group name cannot be empty.",
209
+ group_name_exists_error: "This group name already exists.",
210
+
211
+ // ─── Search ───────────────────────────────────────────────────
212
+ search_collections: "Search collections",
213
+
214
+ // ─── Navigation groups ────────────────────────────────────────
215
+ views_group: "Views",
216
+
217
+ // ─── Entity Edit View ─────────────────────────────────────────
218
+ youd_need_to_save_before_additional_collections: "You need to save your entity before adding additional collections",
219
+
220
+ // ─── Not Found Page ───────────────────────────────────────────
221
+ page_not_found: "Page not found",
222
+ page_not_found_body: "This page does not exist or you may not have access to it",
223
+ back_to_home: "Back to home",
224
+
225
+ // ─── Collection Editor ─────────────────────────────────────────
226
+ default_collection_view: "Default collection view",
227
+ table_view: "Table",
228
+ cards_view: "Cards",
229
+ kanban_view: "Kanban",
230
+ choose_how_entities_displayed_default: "Choose how entities should be displayed by default",
231
+
232
+ document_view: "Document view",
233
+ side_panel: "Side panel",
234
+ full_screen: "Full screen",
235
+ should_documents_opened_full_screen: "Should documents be opened full screen or in an inline side dialog",
236
+
237
+ select_custom_view: "Select custom view",
238
+ no_custom_views_defined: "No custom views defined. Define your custom views in the customization settings, before using this dialog.",
239
+
240
+ select_custom_action: "Select custom action",
241
+ no_custom_actions_defined: "No custom actions defined. Define your custom actions in the customization settings, before using this dialog.",
242
+
243
+ no_collections_found: "No collections found",
244
+ start_building_collections: "Start building collections in Rebase easily. Map them to your existing database data, import from files, or use our templates.",
245
+ create_first_collection: "Create your first collection",
246
+ define_collections_programmatically: "You can also define collections programmatically.",
247
+ edit_collection: "Edit collection",
248
+ no_permissions_edit_collection: "You don't have permissions to edit this collection",
249
+ no_permissions_create_collection: "You don't have permissions to create collections",
250
+ create_collection: "Create collection",
251
+ update_collection: "Update collection",
252
+
253
+ new_collection: "New collection",
254
+ add_new_collection: "Add new collection",
255
+ collection_with_name: "{{name}} collection",
256
+ change_icon: "Change icon",
257
+ is_subcollection_of: "This is a subcollection of",
258
+ name: "Name",
259
+ collection_name_description: "Name of this collection, usually a plural name (e.g. Products)",
260
+ path: "Path",
261
+ relative_path_to_parent: "Relative path to the parent (no need to include the parent path)",
262
+ path_in_database: "Path or table name where this collection is stored in the database",
263
+ singular_name: "Singular name",
264
+ singular_name_description: "Optionally define a singular name for your entities",
265
+ description: "Description",
266
+ description_of_collection: "Description of the collection, you can use markdown",
267
+ collection_id: "Collection ID",
268
+ collection_id_description: "This ID identifies this collection. Typically the same as the path or table name.",
269
+ collection_group: "Collection group",
270
+ collection_group_description: "A collection group consists of all collections with the same path. This allows you to query over multiple collections at once.",
271
+ advanced_settings: "Advanced settings",
272
+ doc_history_global: "Document history revisions enabled if enabled globally",
273
+ doc_history_enabled: "Document history revisions ENABLED",
274
+ doc_history_not_enabled: "Document history revisions NOT enabled",
275
+ doc_history_description: "When enabled, each document in this collection will have a history of changes. This is useful for auditing purposes. The data is stored in a subcollection of the document in your database, called __history.",
276
+ document_id_generation: "Document IDs generation",
277
+ code_defined: "Code defined",
278
+ users_must_define_id: "Users must define an ID",
279
+ users_can_define_id: "Users can define an ID, but it is not required",
280
+ doc_id_auto_generated: "Document ID is generated automatically",
281
+ config_doc_id_generation: "Configure how document IDs are generated when creating new entities.",
282
+ enable_text_search: "Enable text search for this collection",
283
+ text_search_description: "Allow text search for this collection. If you have not specified a text search delegate, this will use the built-in local text search. This is not recommended for large collections, as it may incur in performance and cost issues.",
284
+ database_id: "Database ID",
285
+ default_text: "(default)",
286
+
287
+ custom_actions: "Custom actions",
288
+ more_info: "More info",
289
+ define_custom_actions_cli: "Define your own custom actions by uploading them with the CLI.",
290
+ action_defined_in_code: "This action is defined in code with key",
291
+ add_custom_entity_action: "Add custom entity action",
292
+ remove_this_action: "Remove this action?",
293
+ remove_action_warning: "This will not delete any data, only the action in the CMS",
294
+
295
+ subcollections_of: "Subcollections of",
296
+ add_subcollection: "Add subcollection",
297
+ custom_views: "Custom views",
298
+ define_custom_views_cli: "Define your own custom views by uploading them with the CLI.",
299
+ view_defined_in_code: "This view is defined in code with key",
300
+ add_custom_entity_view: "Add custom entity view",
301
+ delete_this_subcollection: "Delete this subcollection?",
302
+ remove_collection_warning: "This will not delete any data, only the collection in the CMS",
303
+ remove_this_view: "Remove this view?",
304
+ remove_view_warning: "This will not delete any data, only the view in the CMS",
305
+
306
+ no_collection_selected: "No collection selected",
307
+ code_for_collection: "Code for",
308
+ use_config_define_json: "Use this config to define the collection in JSON format.",
309
+ customise_collection_code: "If you want to customise the collection in code, you can add this collection code to your CMS app configuration.",
310
+ copied: "Copied",
311
+
312
+ property_cant_be_edited: "This property can't be edited",
313
+ property_not_editable_description: "You may not have permission to edit it or it is defined in code and cannot be modified.",
314
+ delete_this_property: "Delete this property?",
315
+ delete_property_warning: "This will not delete any data, only modify the collection.",
316
+ error_must_specify_id: "You must specify an id for the field",
317
+ error_id_format: "The id can only contain letters, numbers and underscores (_), and not start with a number",
318
+ error_id_already_exists: "There is another field with this ID already",
319
+ error_must_specify_title: "You must specify a title for the field",
320
+ custom_or_other: "Custom/Other",
321
+ select_property_widget: "Select a property widget",
322
+ error_changing_data_type: "This widget uses a different data type than the initially selected widget. This can cause errors with existing data.",
323
+ required: "Required",
324
+
325
+ enum_form_dialog: "Enum form dialog",
326
+ imported_data_preview: "Imported data preview",
327
+ entities_with_same_id_overwritten: "Entities with the same id will be overwritten",
328
+ collection_editor: "Collection editor",
329
+ properties_in_this_group: "Properties in this group",
330
+ data_property_mapping: "Data property mapping",
331
+ property_edit_view: "Property edit view",
332
+ all_of_these: "All of these",
333
+ any_of_these: "Any of these",
334
+
335
+ only_admins_edit_roles: "Only admins can edit roles",
336
+ error_user_not_found: "User not found",
337
+ all_roles: "All Roles",
338
+ role: "Role",
339
+ name_of_this_role: "Name of this role",
340
+ id_of_this_role: "ID of this role",
341
+ create_entities: "Create entities",
342
+ read_entities: "Read entities",
343
+ update_entities: "Update entities",
344
+ delete_entities: "Delete entities",
345
+ all_collections: "All collections",
346
+ create_entities_in_collections: "Create entities in collections",
347
+ access_all_data_in_every_collection: "Access all data in every collection",
348
+ update_data_in_any_collection: "Update data in any collection",
349
+ delete_data_in_any_collection: "Delete data in any collection",
350
+ allow_all_permissions_in_this_collections: "Allow all permissions in this collections",
351
+ all: "All",
352
+ customise_permissions_description: "You can customise the permissions that the users related to this role can perform in the entities of each collection",
353
+ create_collections: "Create collections",
354
+ yes: "Yes",
355
+ no: "No",
356
+ can_user_create_collections: "Can the user create collections",
357
+ edit_collections: "Edit collections",
358
+ only_own_collections: "Only his/her own",
359
+ own: "Own",
360
+ can_user_edit_collections: "Can the user edit collections",
361
+ delete_collections: "Delete collections",
362
+ can_user_delete_collections: "Can the user delete collections",
363
+ error_saving_role: "There was an error saving this role",
364
+ create_role: "Create role",
365
+ update: "Update",
366
+
367
+ only_admins_change_roles: "Only admins can change roles",
368
+ must_be_at_least_one_admin: "There must be at least one admin",
369
+ logged_user_not_found: "Logged user not found",
370
+ user: "User",
371
+ user_id: "User ID",
372
+ name_of_this_user: "Name of this user",
373
+ email_of_this_user: "Email of this user",
374
+ roles: "Roles",
375
+ create_user: "Create user",
376
+
377
+ users: "Users",
378
+ add_user: "Add user",
379
+ add_role: "Add role",
380
+ is_admin: "Is Admin",
381
+ default_permissions: "Default permissions",
382
+ created_on: "Created on",
383
+ email: "Email",
384
+ id: "ID",
385
+ read: "Read",
386
+
387
+ column_in_file: "Column in file",
388
+ map_to_property: "Map to Property",
389
+ default_values: "Default values",
390
+ default_values_description: "You can select a default value for unmapped columns and empty values:",
391
+ property: "Property",
392
+ default_value: "Default value",
393
+ autogenerate_id: "Autogenerate ID",
394
+ id_column_description: "Column that will be used as ID for each document",
395
+ do_not_set_value: "Do not set value",
396
+ set_value_to_true: "Set value to true",
397
+ set_value_to_false: "Set value to false",
398
+ drag_and_drop_file: "Drag and drop a file here or click to upload",
399
+ error_saving_data: "Error saving data",
400
+ retry: "Retry",
401
+ saving_data: "Saving data",
402
+ entities_saved: "entities saved",
403
+ do_not_close_tab: "Do not close this tab or the import will be interrupted",
404
+ import: "Import",
405
+ import_data: "Import data",
406
+ upload_file_description: "Upload a CSV, Excel or JSON file and map it to your existing schema",
407
+ back: "Back",
408
+ next: "Next",
409
+ save_data: "Save data",
410
+ use_column_as_id: "Use this column as ID",
411
+ do_not_import_property: "Do not import this property",
412
+ entities_will_be_overwritten: "Entities with the same id will be overwritten",
413
+ data_imported_successfully: "Data imported successfully",
414
+ export: "Export",
415
+ export_data: "Export data",
416
+ download_table_csv: "Download the content of this table as a CSV",
417
+ csv: "CSV",
418
+ json: "JSON",
419
+ dates_as_timestamps: "Dates as timestamps",
420
+ dates_as_strings: "Dates as strings",
421
+ flatten_arrays: "Flatten arrays",
422
+ download: "Download",
423
+ large_number_of_documents: "This collection has a large number of documents ({{count}}).",
424
+ include_undefined_values: "Include undefined values",
425
+ submit: "Submit",
426
+
427
+ no_filterable_properties: "No filterable properties available",
428
+ apply_filters: "Apply filters",
429
+
430
+ // ─── Filter Presets ──────────────────────────────────────────
431
+ filter_presets: "Presets",
432
+ filter_preset_apply: "Apply preset",
433
+ filter_preset_active: "Active: {{label}}",
434
+
435
+ list: "List",
436
+ table_view_mode: "Table",
437
+ cards: "Cards",
438
+ board: "Board",
439
+ initialize_kanban_order_desc: "This will assign sequential order values to all items that don't have one. Items will maintain their current order within each column.",
440
+ kanban_view_not_available: "Kanban view is not available",
441
+ kanban_view_requires_enum: "Kanban view requires a string property with enum values to group entities into columns. Please add an enum property to your collection schema to use this view.",
442
+ no_enum_values_configured: 'No enum values configured for property "{{property}}"',
443
+ items_need_backfill: "Some items don't have order values. Initialize to enable drag-and-drop reordering.",
444
+ kanban_order_not_configured: "Drag-and-drop ordering is not configured. Set an order property in the collection settings to persist card positions.",
445
+ initialize: "Initialize",
446
+ confirm_multiple_delete: "Confirm multiple delete?",
447
+ delete_entity_confirm_title: "Would you like to delete this {{entityName}}?",
448
+ no_filter: "No filter",
449
+ is_true: "is true",
450
+ is_false: "is false",
451
+ error_uploading_file_size: "Error uploading file: File is larger than {{maxSize}} bytes",
452
+ error_uploading_file_type: "Error uploading file: File type is not supported",
453
+ drag_drop_files: "Drag 'n' drop some files here, or click here to edit",
454
+ drag_drop_file: "Drag 'n' drop a file here, or click here to edit",
455
+ multiple_deleted: "Multiple deleted",
456
+ some_entities_deleted: "Some of the entities have been deleted, but not all",
457
+ error_deleting_entities: "Error deleting entities",
458
+ deleted: "Deleted",
459
+
460
+ select_reference: "Select reference",
461
+ select_references: "Select references",
462
+ account_settings: "Account Settings",
463
+ profile: "Profile",
464
+ security: "Security",
465
+ sessions: "Sessions",
466
+ change_password: "Change Password",
467
+ current_password: "Current Password",
468
+ new_password: "New Password",
469
+ confirm_password: "Confirm New Password",
470
+ password_changed: "Password changed successfully. You will be logged out.",
471
+ passwords_dont_match: "Passwords don't match",
472
+ password_too_short: "Password must be at least 8 characters",
473
+ password_change_not_available: "Password change is not available for accounts using external sign-in providers.",
474
+ changing_password: "Changing...",
475
+ display_name: "Display Name",
476
+ photo_url: "Photo URL",
477
+ save_profile: "Save Profile",
478
+ saving: "Saving...",
479
+ no_active_sessions: "No active sessions found.",
480
+ revoking: "Revoking...",
481
+ revoke_all_sessions: "Revoke All Sessions",
482
+ unknown_device: "Unknown Device",
483
+ current: "Current",
484
+ role_id: "Role ID",
485
+ role_name: "Role Name",
486
+ add_reference: "Add reference",
487
+ add_reference_to: "Add reference to {{name}}",
488
+
489
+ /** RolesView — table & permissions */
490
+ role_deleted_successfully: "Role deleted successfully",
491
+ error_deleting_role: "Error deleting role",
492
+ collection_permissions: "Collection permissions",
493
+ collection: "Collection",
494
+ no_collections_configured: "No collections configured",
495
+ no_security_rules_defined: "No security rules defined — all operations unrestricted",
496
+ no_rules: "no rules",
497
+
498
+ /** UsersView — snackbar */
499
+ bootstrap_admin_success: "You are now an admin! Refreshing...",
500
+ failed_to_bootstrap_admin: "Failed to bootstrap admin",
501
+ user_deleted_successfully: "User deleted successfully",
502
+ error_deleting_user: "Error deleting user",
503
+ user_created_successfully: "User created successfully",
504
+ invitation_sent: "An invitation email has been sent to {{email}}. They can use the link to set their password.",
505
+ invitation_sent_title: "Invitation Sent",
506
+ temporary_password: "Temporary Password",
507
+ temporary_password_description: "Email is not configured. Share this temporary password with the user securely. It will not be shown again.",
508
+ temporary_password_email_failed_description: "The email could not be delivered. Share this temporary password with the user securely. It will not be shown again.",
509
+ copy_password: "Copy password",
510
+ password_copied: "Password copied to clipboard",
511
+
512
+ /** UsersView — pagination & search */
513
+ search_users: "Search users",
514
+ created: "Created",
515
+ actions: "Actions",
516
+ no_users_found: "No users found",
517
+ reset_password: "Reset Password",
518
+ reset_password_success: "Password reset successfully",
519
+ reset_password_confirmation: "Are you sure you want to reset this user's password?",
520
+ reset_password_send_email: "Send a password reset email",
521
+ reset_password_set_manually: "Set a password manually",
522
+ reset_password_set_manually_description: "The password is updated immediately and no email is sent. Share it with the user securely.",
523
+
524
+ /** Permission-denied empty states */
525
+ no_permission_to_view_users: "You don't have permission to view users",
526
+ no_permission_to_view_roles: "You don't have permission to view roles",
527
+ no_permission_description: "Contact an administrator if you need access to this section.",
528
+ error_resetting_password: "Error resetting password",
529
+
530
+ /** Editor table-bubble */
531
+ add_row_before: "Add row before",
532
+ add_row_after: "Add row after",
533
+ delete_row: "Delete row",
534
+ add_column_before: "Add column before",
535
+ add_column_after: "Add column after",
536
+ delete_column: "Delete column",
537
+ delete_table: "Delete table",
538
+
539
+ /** Editor image-bubble */
540
+ alt_text: "Alt text",
541
+ title: "Title",
542
+
543
+ /** MapFieldBinding */
544
+ a_property_of_this_map_has_error: "A property of this map has an error",
545
+
546
+ /** AI Collection Generator Popover */
547
+ generate_collection_with_ai: "Generate Collection with AI",
548
+ modify_collection_with_ai: "Modify Collection with AI",
549
+ describe_collection_to_create: "Describe the collection you want to create.",
550
+ describe_changes_to_make: "Describe the changes you want to make to this collection.",
551
+ ai_placeholder_create: "e.g., Create a products collection with name, price, description, and category...",
552
+ ai_placeholder_modify: "e.g., Add a thumbnail image field with storage, make price required...",
553
+ ai_assist: "AI Assist",
554
+ generating: "Generating...",
555
+
556
+ /** Recently extracted strings for collection editor */
557
+ this_is_subcollection_of: "This is a subcollection of",
558
+ use_existing_paths_database: "Use one of the existing paths in your database:",
559
+ describe_collection_ai: "Describe your collection to AI:",
560
+ generate_with_ai: "Generate with AI",
561
+ create_from_json_config: "Create from JSON configuration:",
562
+ paste_json_config: "Paste JSON Configuration",
563
+ create_collection_from_file_formats: "Create a collection from a file (csv, json, xls, xslx...)",
564
+ select_template: "Select a template:",
565
+ products: "Products",
566
+ collection_products_subtitle: "A collection of products with images, prices and stock",
567
+ collection_users_subtitle: "A collection of users with emails, names and roles",
568
+ blog_posts: "Blog posts",
569
+ collection_blog_posts_subtitle: "A collection of blog posts with images, authors and complex content",
570
+ pages: "Pages",
571
+ collection_pages_subtitle: "A collection of pages with images, authors and complex content",
572
+ continue_from_scratch: "Continue from scratch",
573
+
574
+ /** Admin views config */
575
+ cms_users: "CMS Users",
576
+ roles_menu: "Roles",
577
+ project_settings: "Project settings",
578
+
579
+ by_signing_in_you_agree_to_our: "By signing in you agree to our",
580
+ terms_and_conditions: "Terms and Conditions",
581
+ and_our: "and our",
582
+ privacy_policy: "Privacy policy",
583
+ email_password: "Email/password",
584
+ sign_in_with_google: "Sign in with Google",
585
+
586
+ // --- Auth error messages ---
587
+ auth_user_not_found: "User not found",
588
+ auth_wrong_password: "Wrong password. Please try again.",
589
+ auth_user_disabled: "User disabled. Please contact support.",
590
+ auth_account_exists_with_different_credential: "Account exists with different sign in method",
591
+ auth_email_already_in_use: "The email is already in use",
592
+ auth_google_permissions_required: "You need to grant additional permissions in order to manage your Google Cloud projects",
593
+ auth_invalid_email_password: "Please enter both email and password",
594
+ auth_enter_email_first: "Please enter your email first",
595
+ auth_password_reset_sent: "Password reset email sent",
596
+ auth_sign_in_account: "Sign in to your account",
597
+ auth_create_new_account: "Create a new account",
598
+ auth_password: "Password",
599
+ auth_reset_password: "Reset password",
600
+ auth_new_user: "New user?",
601
+ auth_have_account: "Have an account?",
602
+ auth_sign_in: "Sign In",
603
+ auth_sign_up: "Sign Up",
604
+
605
+
606
+ auto_setup_collections_button: "Automatically set up collections",
607
+ auto_setup_collections_title: "Automatically set up collections?",
608
+ auto_setup_collections_desc: "This will automatically create collection configs for collections that are <b>NOT</b> already mapped",
609
+ this_can_take_a_minute: "This can take a minute or two",
610
+ no_collections_found_to_setup: "No collections found to setup.",
611
+ collections_have_been_setup: "Collections have been automatically setup.",
612
+ error_setting_up_collections: "Error automatically setting up collections",
613
+
614
+ // --- Home Suggestions ---
615
+ add_your: "Add your",
616
+ database_collections: "database collections",
617
+ no_unmapped_collections: "No unmapped collections in the database",
618
+ query_and_update_with_datatalk: "Query and update your data in natural language with",
619
+
620
+ welcome_to_rebase: "Welcome to Rebase Cloud",
621
+ admin_panel_ready_bring_data: "Your admin panel is ready. Let's bring in your data.",
622
+ admin_panel_ready_get_started: "Your admin panel is ready. Here's how to get started.",
623
+ auto_detect_collections: "Auto-detect collections",
624
+ auto_detect_collections_desc: "Let AI scan your database and automatically generate collection schemas.",
625
+ create_a_collection: "Create a collection",
626
+ create_collection_desc: "Manually define your first collection from scratch using the visual editor.",
627
+ read_the_docs: "Read the docs",
628
+ read_the_docs_desc: "Learn how to customize fields, views, actions and more.",
629
+ explore_docs: "Explore docs",
630
+ want_to_customize_with_code: "Want to customize with code? Run",
631
+ to_scaffold_a_local_project: "to scaffold a local project.",
632
+
633
+ // ─── Collection Editor — Validation ──────────────────────────
634
+ validation: "Validation",
635
+ unique: "Unique",
636
+ required_message: "Required message",
637
+ required_tooltip: "You won't be able to save this entity if this value is not set",
638
+ unique_tooltip: "There cannot be multiple entities with the same value",
639
+ lowercase: "Lowercase",
640
+ uppercase: "Uppercase",
641
+ trim: "Trim",
642
+ exact_length: "Exact length",
643
+ min_length: "Min length",
644
+ max_length: "Max length",
645
+ matches_regex: "Matches regex",
646
+ not_valid_regexp: "Not a valid regexp",
647
+ regex_helper: "e.g. /^\\d+$/ for digits only",
648
+ min_value: "Min value",
649
+ max_value: "Max value",
650
+ less_than: "Less than",
651
+ more_than: "More than",
652
+ positive_value: "Positive value",
653
+ negative_value: "Negative value",
654
+ integer_value: "Integer value",
655
+
656
+ // ─── Collection Editor — Property Edit ───────────────────────
657
+ invalid_regular_expression: "Invalid regular expression",
658
+ must_specify_target_collection: "You must specify a target collection for the field",
659
+ need_specify_repeat_field: "You need to specify a repeat field",
660
+ need_specify_block_properties: "You need to specify the properties of this block",
661
+ incomplete_condition: "Incomplete condition - please select a field",
662
+ field_name: "Field name",
663
+
664
+ // ─── Collection Editor — Display & Config ────────────────────
665
+ kanban_column_property: "Kanban Column Property",
666
+ select_a_property: "Select a property",
667
+ kanban_property_not_found: "Property \"{{property}}\" does not exist or is not an enum string property. Please select a valid property or clear the selection.",
668
+ no_enum_string_properties: "No enum string properties found. Add a string property with enumValues to use Kanban view.",
669
+ kanban_column_description: "Select a string property with enum values to group entities into columns",
670
+ create_property: "+ Create \"{{property}}\" property",
671
+ order_property: "Order Property",
672
+ order_property_not_found: "Property \"{{property}}\" does not exist or is not a text property. Please select a valid property or clear the selection.",
673
+ no_number_properties: "No text properties found. Add a text property to enable ordering.",
674
+ order_property_description: "Select a text property to persist the order of items",
675
+ display_settings: "Display settings",
676
+ default_row_size: "Default row size",
677
+ side_dialog_width: "Side dialog width",
678
+ side_dialog_width_description: "Optionally define the width (in pixels) of entities side dialog. Default is 768px",
679
+ inline_editing_enabled: "Data can be edited directly in the table view",
680
+ inline_editing_disabled: "Data can be edited only in the form view",
681
+ inline_editing_description: "Allow editing data directly in the table view, without opening the form view.",
682
+ include_json_view: "Include JSON view",
683
+ no_json_view: "Do not include JSON view",
684
+ json_view_description: "Include the JSON representation of the document.",
685
+ not_found_suffix: "not found",
686
+
687
+ // ─── Editor ─────────────────────────────────────────────────
688
+ editor_text: "Text",
689
+ editor_text_description: "Just start typing with plain text.",
690
+ editor_heading_1: "Heading 1",
691
+ editor_heading_1_description: "Big section heading.",
692
+ editor_heading_2: "Heading 2",
693
+ editor_heading_2_description: "Medium section heading.",
694
+ editor_heading_3: "Heading 3",
695
+ editor_heading_3_description: "Small section heading.",
696
+ editor_todo_list: "To-do List",
697
+ editor_todo_list_description: "Track tasks with a to-do list.",
698
+ editor_bullet_list: "Bullet List",
699
+ editor_bullet_list_description: "Create a simple bulleted list.",
700
+ editor_numbered_list: "Numbered List",
701
+ editor_numbered_list_description: "Create a list with numbering.",
702
+ editor_quote: "Quote",
703
+ editor_quote_description: "Capture a quote.",
704
+ editor_code: "Code",
705
+ editor_code_description: "Capture a code snippet.",
706
+ editor_image: "Image",
707
+ editor_image_description: "Upload an image from your computer.",
708
+ editor_multiple: "Multiple",
709
+ editor_link: "Link",
710
+ editor_save: "Save",
711
+ editor_cancel: "Cancel",
712
+ editor_remove_link: "Remove link",
713
+ editor_paste_or_type_link: "Paste or type link",
714
+ editor_open_in_new_window: "Open in new window",
715
+ editor_bold: "Bold",
716
+ editor_italic: "Italic",
717
+ editor_underline: "Underline",
718
+ editor_strikethrough: "Strikethrough",
719
+ editor_autocomplete: "Autocomplete",
720
+ editor_autocomplete_description: "Add text based on the context.",
721
+
722
+ // ─── Text Search Dialog ─────────────────────────────────────
723
+ text_search_dialog_title: "Enable text search",
724
+ text_search_local_not_recommended: "Local text search is not recommended for large collections.",
725
+ text_search_local_fetch_warning: "Note that enabling local text search will need to fetch all documents from your collection and store them in the browser. This can be inefficient for large collections. It can also incur in additional costs.",
726
+ text_search_external_suggestion: "For larger collections, you are encouraged to use an external search engine such as Algolia or Elastic Search, and assign a search delegate to your config.",
727
+ text_search_local_description: "Local text search is the simplest way to enable text search in your collection. It loads all documents in the collection in the browser and performs the search locally. This is the recommended option for small collections.",
728
+ text_search_own_implementation: "You have implemented your own text search controller. You enable text search for your collection.",
729
+ text_search_enable_for_collection: "Enable for this collection",
730
+ text_search_enable_for_project: "Enable for project",
731
+ text_search_enabled_snackbar: "Local text search enabled",
732
+
733
+ settings_heading: "Settings",
734
+ settings_project_name: "Project name",
735
+ settings_default_language: "Default language",
736
+ settings_default_language_caption: "Select the base language for this project. Users can override this preference in their personal settings.",
737
+ settings_enable_local_text_search: "Enable local text search",
738
+ settings_local_text_search_caption: "Enable local text search for all collections. This will allow you to search text fields in your collections using the Rebase search bar. Note that this feature can incur in higher read counts, as it will index all text fields in your collections.",
739
+ settings_doc_history_all_collections: "Document history enabled for all collections",
740
+ settings_doc_history_caption: "When true, all collections will have the history enabled by default. You can override this setting in each collection. History will be saved in the __history subcollection of each document.",
741
+ settings_theme: "Theme",
742
+ settings_primary_color: "Primary color",
743
+ settings_secondary_color: "Secondary color",
744
+ settings_sample_theme_components: "Sample theme components",
745
+ settings_drag_drop_logo: "Drag and drop your logo here",
746
+ settings_security_rules: "Security rules",
747
+ settings_security_rules_description: "Rebase uses granular security rules to restrict access to data. When creating a new user through Rebase, custom claims are added to the user. By adding the following security rules to your project, you ensure Rebase users can access data securely.",
748
+ settings_security_rules_add_domain: "Remember to add the domain {{domain}} to your provider allowed domains",
749
+ settings_security_rules_caption: "These rules restrict access to data to Rebase users only, but do not enforce the permissions at the database level. The permissions are enforced in the frontend though, which will work fine for most projects. If you need to enforce the permissions at the database level, you can modify these security rules yourself to suit your needs. The roles assigned to a user are set as custom claims in the auth token, so you can use them in your security rules.",
750
+
751
+ // ─── Studio: SQL Editor ─────────────────────────────────────
752
+ studio_sql_executing_query: "EXECUTING QUERY...",
753
+ studio_sql_query_error: "Query Error",
754
+ studio_sql_run_query_placeholder: "Run a query to see results",
755
+ studio_sql_visual_execution_plan: "Visual Execution Plan",
756
+ studio_sql_success: "SUCCESS",
757
+ studio_sql_no_results: "Query executed successfully but returned no results.",
758
+ studio_sql_rows: "Rows:",
759
+ studio_sql_time: "Time:",
760
+ studio_sql_copy_markdown: "Copy Markdown",
761
+ studio_sql_export_json: "Export JSON",
762
+ studio_sql_export_csv: "Export CSV",
763
+ studio_sql_format_sql: "Format SQL",
764
+ studio_sql_explain: "Explain",
765
+ studio_sql_limit_1000: "Limit 1000",
766
+ studio_sql_remove_from_favorites: "Remove from Favorites",
767
+ studio_sql_add_to_favorites: "Add to Favorites",
768
+ studio_sql_save: "Save",
769
+ studio_sql_run: "Run",
770
+ studio_sql_database: "Database",
771
+ studio_sql_role: "Role",
772
+ studio_sql_admin: "(Admin)",
773
+ studio_sql_select_db: "Select DB",
774
+ studio_sql_query_results: "Query Results",
775
+ studio_sql_save_snippet: "Save SQL Snippet",
776
+ studio_sql_snippet_name: "Snippet Name",
777
+ studio_sql_snippet_name_placeholder: "e.g., Get All Users",
778
+ studio_sql_snippet_saved_local: "This will be saved to your local storage.",
779
+ studio_sql_cancel: "Cancel",
780
+ studio_sql_dangerous_operation: "Dangerous Operation Detected",
781
+ studio_sql_dangerous_operation_body: "The query you are about to run contains potentially destructive operations (DELETE, DROP, TRUNCATE, or UPDATE without WHERE). Are you sure you want to proceed?",
782
+ studio_sql_snippet_saved: "Snippet \"{{name}}\" saved.",
783
+ studio_sql_markdown_copied: "Results copied as Markdown!",
784
+ studio_sql_markdown_copy_failed: "Failed to copy Markdown to clipboard.",
785
+ studio_sql_row_updated: "Row updated successfully.",
786
+ studio_sql_cannot_edit_missing_query: "Cannot edit rows: The underlying query is missing.",
787
+ studio_sql_cannot_resolve_table: "Could not resolve table/primary key",
788
+ studio_sql_missing_pk: "Row is missing primary key column(s): {{columns}}. Cannot safely update.",
789
+ studio_sql_update_failed: "Failed to update: {{message}}",
790
+ studio_sql_execution_not_supported: "SQL execution is not supported by the current data source.",
791
+ studio_sql_error_executing: "An error occurred while executing the query.",
792
+ studio_sql_error_explaining: "An error occurred while explaining the query.",
793
+ studio_sql_save_first_to_favorite: "Please save the snippet first before favoriting.",
794
+ studio_sql_cms: "Collections:",
795
+ studio_sql_cms_collections_tooltip: "Tables in this query that are mapped to collections",
796
+ studio_sql_edit_entity: "Open {{name}} #{{id}}",
797
+ studio_sql_sql_not_supported: "SQL execution not supported by this data source",
798
+ studio_sql_fetch_error: "Failed to fetch connection options: {{message}}",
799
+ studio_sql_unexpected_format: "Unexpected data format: {{type}}",
800
+ studio_sql_no_tables: "No tables found in this database.",
801
+ studio_sql_schema_fetch_error: "Failed to fetch schema: {{message}}",
802
+
803
+ // ─── Studio: SQL Editor Sidebar ──────────────────────────────
804
+ studio_sql_sidebar_snippets: "Snippets",
805
+ studio_sql_sidebar_history: "History",
806
+ studio_sql_sidebar_schema: "Schema",
807
+ studio_sql_sidebar_no_snippets: "No saved snippets",
808
+ studio_sql_sidebar_save_snippet_hint: "Save a query to access it here.",
809
+ studio_sql_sidebar_no_history: "No history",
810
+ studio_sql_sidebar_history_hint: "Executed queries will appear here.",
811
+ studio_sql_sidebar_delete_snippet: "Delete snippet",
812
+
813
+ // ─── Studio: Schema Browser ──────────────────────────────────
814
+ studio_schema_tables: "Tables",
815
+ studio_schema_loading: "Loading schema...",
816
+ studio_schema_no_tables: "No tables found",
817
+ studio_schema_retry: "Retry",
818
+ studio_schema_primary_key: "Primary Key",
819
+ studio_schema_select_all: "SELECT * FROM",
820
+ studio_schema_insert_into: "INSERT INTO",
821
+ studio_schema_update: "UPDATE",
822
+ studio_schema_delete_from: "DELETE FROM",
823
+ studio_schema_columns: "{{count}} columns",
824
+
825
+ // ─── Studio: RLS Editor ──────────────────────────────────────
826
+ studio_rls_title: "Row Level Security",
827
+ studio_rls_description: "Manage RLS policies for your tables",
828
+ studio_rls_enabled: "RLS Enabled",
829
+ studio_rls_disabled: "RLS Disabled",
830
+ studio_rls_no_rls: "No RLS",
831
+ studio_rls_enable_rls: "Enable RLS",
832
+ studio_rls_disable_rls: "Disable RLS",
833
+ studio_rls_create_policy: "Create Policy",
834
+ studio_rls_policies: "Policies",
835
+ studio_rls_no_policies: "No policies defined",
836
+ studio_rls_no_policies_desc: "This table has no RLS policies. All rows are accessible based on the RLS status.",
837
+ studio_rls_add_first_policy: "Add your first policy",
838
+ studio_rls_force_rls: "Force RLS",
839
+ studio_rls_force_rls_desc: "When enabled, RLS policies apply to the table owner as well.",
840
+ studio_rls_enable_force_rls: "Enable Force RLS",
841
+ studio_rls_disable_force_rls: "Disable Force RLS",
842
+ studio_rls_edit: "Edit",
843
+ studio_rls_delete: "Delete",
844
+ studio_rls_confirm_delete_title: "Delete Policy",
845
+ studio_rls_confirm_delete_body: "Are you sure you want to delete this policy? This action cannot be undone.",
846
+ studio_rls_confirm_enable_title: "Enable Row Level Security",
847
+ studio_rls_confirm_enable_body: "Enabling RLS will restrict access to rows in this table based on your policies. Make sure you have appropriate policies in place.",
848
+ studio_rls_confirm_disable_title: "Disable Row Level Security",
849
+ studio_rls_confirm_disable_body: "Disabling RLS will make all rows accessible to all roles. Are you sure you want to continue?",
850
+ studio_rls_select_table: "Select a table",
851
+ studio_rls_no_tables: "No tables available",
852
+ studio_rls_error: "Error loading policies",
853
+ studio_rls_retry: "Retry",
854
+ studio_rls_loading: "Loading policies...",
855
+
856
+ // ─── Studio: Policy Editor ───────────────────────────────────
857
+ studio_policy_edit: "Edit Policy",
858
+ studio_policy_create: "Create New Policy",
859
+ studio_policy_defining_rules: "Defining access rules for",
860
+ studio_policy_cancel: "Cancel",
861
+ studio_policy_save: "Save Policy",
862
+ studio_policy_template: "Start from a template (Optional)",
863
+ studio_policy_select_template: "Select a template...",
864
+ studio_policy_name: "Policy Name",
865
+ studio_policy_name_placeholder: "Give your policy a descriptive name",
866
+ studio_policy_behavior: "Policy Behavior",
867
+ studio_policy_permissive: "Permissive",
868
+ studio_policy_permissive_desc: "Combined using \"OR\"",
869
+ studio_policy_restrictive: "Restrictive",
870
+ studio_policy_restrictive_desc: "Combined using \"AND\"",
871
+ studio_policy_command: "Policy Command",
872
+ studio_policy_target_roles: "Target Roles",
873
+ studio_policy_roles_placeholder: "Select roles (defaults to public)",
874
+ studio_policy_using_expr: "USING expression",
875
+ studio_policy_using_expr_desc: "Applies to existing rows (SELECT, UPDATE, DELETE)",
876
+ studio_policy_check_expr: "WITH CHECK expression",
877
+ studio_policy_check_expr_desc: "Applies to new or modified rows (INSERT, UPDATE)",
878
+ studio_policy_help_title: "Row Level Security (RLS) Guide",
879
+ studio_policy_help_intro: "Row Level Security (RLS) allows you to restrict which rows a user can access or modify based on their authentication status or roles.",
880
+ studio_policy_help_step1_title: "1. Select a Template",
881
+ studio_policy_help_step1_desc: "If you're new to RLS, the easiest way to start is by selecting a predefined template from the dropdown. It will automatically configure the policy for common use cases like \"Users can update their own rows\".",
882
+ studio_policy_help_step2_title: "2. Target Roles",
883
+ studio_policy_help_step2_desc: "Choose which users the policy applies to:",
884
+ studio_policy_help_role_public: "Applies to everyone (logged in or not).",
885
+ studio_policy_help_role_authenticated: "Only applies to users who are logged in.",
886
+ studio_policy_help_role_anon: "Only applies to users who are NOT logged in.",
887
+ studio_policy_help_step3_title: "3. USING Expression",
888
+ studio_policy_help_step3_desc: "A SQL condition that must evaluate to true for existing rows to be visible or updatable (SELECT, UPDATE, DELETE).",
889
+ studio_policy_help_step3_example: "Ensures users can only see rows where they are the owner.",
890
+ studio_policy_help_step4_title: "4. WITH CHECK Expression",
891
+ studio_policy_help_step4_desc: "A SQL condition that must evaluate to true for new or modified rows to be saved (INSERT, UPDATE).",
892
+ studio_policy_help_step4_example: "Usually the same as the USING expression when users are only allowed to insert/edit their own data.",
893
+ studio_policy_help_auth_vars_title: "Rebase Auth Variables",
894
+ studio_policy_help_auth_vars_desc: "Rebase provides native helper functions that you can use in your expressions:",
895
+ studio_policy_help_auth_uid: "Returns the current user's ID as text. Example:",
896
+ studio_policy_help_auth_jwt: "Returns the full JWT payload as JSONB so you can check custom claims. Example:",
897
+ studio_policy_help_auth_roles: "Returns the user's role IDs as a comma-separated string. Best used with:",
898
+ studio_policy_help_docs_cta: "To learn more about Postgres policies, check out the official documentation.",
899
+ studio_policy_help_read_docs: "Read Docs",
900
+ studio_policy_help_got_it: "Got it!",
901
+
902
+ // ─── Studio: UI Actions ──────────────────────────────────────
903
+ studio_add_kanban_column: "Add column",
904
+ studio_add_kanban_column_title: "Add Kanban Column",
905
+ studio_add_kanban_column_name: "Column name",
906
+ studio_add_kanban_column_name_placeholder: "New column name",
907
+ studio_add_kanban_column_add: "Add",
908
+ studio_add_kanban_column_cancel: "Cancel",
909
+ studio_collection_view_sql: "SQL Editor",
910
+ studio_collection_view_cms: "CMS View",
911
+ studio_editor_collection_tooltip: "Edit collection schema",
912
+ studio_editor_collection_no_permission: "You don't have permission to edit this collection",
913
+ studio_editor_collection_start_tooltip: "Copy path or edit schema",
914
+ studio_editor_collection_start_no_permission: "You don't have permission to modify this collection",
915
+ studio_editor_collection_start_copied: "Copied!",
916
+ studio_editor_entity_tooltip: "Edit entity schema",
917
+ studio_editor_entity_no_permission: "You don't have permission to edit this entity",
918
+ studio_home_edit_collection: "Edit collection",
919
+ studio_home_delete_collection: "Delete collection",
920
+ studio_home_confirm_delete_title: "Delete collection?",
921
+ studio_home_confirm_delete_body: "Are you sure you want to delete the collection \"{{name}}\"? This action cannot be undone.",
922
+ studio_kanban_setup: "Kanban Setup",
923
+ studio_missing_reference: "Missing reference: {{path}}",
924
+ studio_missing_reference_create: "Create",
925
+ studio_new_collection: "New collection",
926
+ studio_new_collection_card: "New collection",
927
+ studio_new_collection_no_permission: "You don't have permissions to create collections",
928
+ studio_property_add_column: "Add new property",
929
+ studio_property_add_column_no_permission: "You don't have permission to add new properties",
930
+ studio_add_kanban_column_desc: "Add a new option to the \"{{property}}\" property. This will create a new column in the Kanban board.",
931
+ studio_add_kanban_column_adding: "Adding...",
932
+ studio_collection_view_edit: "Edit",
933
+ studio_editor_collection_disabled: "Collection editing is disabled",
934
+ studio_editor_collection_edit: "Edit collection",
935
+ studio_editor_entity_save_first: "You need to save the document before changing the schema",
936
+ studio_editor_entity_edit_schema: "Edit schema for this form",
937
+ studio_editor_collection_start_save_filter: "Save default filter and sort",
938
+ studio_editor_collection_start_clear_filter: "Clear default filter and sort",
939
+ studio_editor_collection_start_reset_filter: "Reset to default filter and sort",
940
+ studio_editor_collection_start_saved: "Default config saved",
941
+ studio_home_duplicate_collection: "Duplicate",
942
+ studio_home_delete: "Delete",
943
+ studio_home_confirm_delete_no_data: "This will not delete any data, only the collection in the CMS",
944
+ studio_home_collection_deleted: "Collection deleted",
945
+ studio_kanban_configure: "Configure Kanban",
946
+ studio_missing_reference_error: "No collection for path: {{path}}",
947
+ studio_new_collection_add: "Add new collection",
948
+
949
+ // ─── Property field labels ──────────────────────────────────
950
+ db_column_type: "Database Column Type",
951
+ primary_key_unique_id: "Primary Key / Unique ID",
952
+ spread_children_as_columns: "Spread children as columns",
953
+ mode: "Mode",
954
+ timezone: "Timezone",
955
+ target_collection: "Target collection",
956
+
957
+ // ─── Storage property ───────────────────────────────────────
958
+ storage_file_name: "File name",
959
+ storage_path: "Storage path",
960
+ storage_max_size: "Max size (in bytes)",
961
+ storage_resize_mode: "Resize mode",
962
+ storage_output_format: "Output format",
963
+ storage_max_width: "Max width (px)",
964
+ storage_max_height: "Max height (px)",
965
+ storage_quality: "Quality (0-100)",
966
+ storage_file_upload_config: "File upload config",
967
+ storage_image_resize_config: "Image Resize Configuration",
968
+ storage_all_file_types: "All file types allowed",
969
+ storage_allowed_file_types: "Allowed file types",
970
+ storage_include_bucket_url: "Include bucket URL (s3://...) in saved value",
971
+ storage_save_url: "Save URL instead of storage path",
972
+
973
+ // ─── DateTime property ──────────────────────────────────────
974
+ datetime_automatic_value: "Automatic value",
975
+
976
+ // ─── Markdown property ──────────────────────────────────────
977
+ markdown_paste_behavior: "Paste behavior",
978
+ markdown_strip_html: "Strip HTML on paste",
979
+ markdown_convert_pasted: "Convert pasted text to markdown"
980
+ };