@rebasepro/app 0.11.1-canary.gfd39654 → 0.12.0

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.
package/dist/index.es.js CHANGED
@@ -1,6 +1,6 @@
1
1
  import React, { createContext, lazy, useCallback, useContext, useEffect, useId, useLayoutEffect, useMemo, useRef, useState } from "react";
2
2
  import { Alert, AlertCircleIcon, AlertTriangleIcon, AppWindow, ArrowDownIcon, ArrowLeftIcon, ArrowRightLeftIcon, ArrowUpDownIcon, ArrowUpIcon, Avatar, BooleanSwitch, Button, CHIP_COLORS, CalendarIcon, Card, CenteredView, CheckCircle2Icon, CheckIcon, Checkbox, ChevronDownIcon, ChevronLeftIcon, ChevronRightIcon, ChevronsLeftIcon, ChevronsRightIcon, Chip, CircleDotIcon, CircleUserIcon, CircularProgress, ColumnsIcon, Container, Dialog, DialogActions, DialogContent, DialogTitle, DollarSignIcon, ErrorBoundary, FileIcon, FileTextIcon, FilterChip, FilterIcon, FolderIcon, FolderKanbanIcon, IconButton, KanbanIcon, KanbanView, LanguagesIcon, LayoutGridIcon, ListIcon, ListPlusIcon, ListTodoIcon, LoadingButton, LogOutIcon, MailIcon, Menu, MenuItem, MessageCircleIcon, MoonIcon, MultiSelect, MultiSelectItem, PanelLeftIcon, Paper, PenLineIcon, PencilIcon, PhoneIcon, PinIcon, PlusIcon, Popover, RefreshCwIcon, SearchBar, Select, SelectItem, Separator, SettingsIcon, Skeleton, StickyNoteIcon, SunIcon, SunMoonIcon, Tab, Table, TableBody, TableCell, TableHeader, TableRow, Tabs, TagIcon, TextField, ToggleButtonGroup, Tooltip, Trash2Icon, TrendingUpIcon, TypeIcon, Typography, UserIcon, UserPlus, UsersIcon, VideoIcon, Wand2Icon, WrenchIcon, XIcon, cls, colorClassesMapping, coolIconKeys, defaultBorderMixin, getColorSchemeForSeed, iconKeys, iconSize, lucideIcons } from "@rebasepro/ui";
3
- import { ALL_WHERE_FILTER_OPS, DEFAULT_DATA_SOURCE_KEY, DEFAULT_STORAGE_SOURCE_KEY, EntityReference, EntityRelation, GeoPoint, RebaseApiError, Vector, getDataSourceCapabilities, isLazyComponentRef } from "@rebasepro/types";
3
+ import { ALL_WHERE_FILTER_OPS, DEFAULT_DATA_SOURCE_KEY, DEFAULT_FILTERABLE_RELATION_KINDS, DEFAULT_STORAGE_SOURCE_KEY, EntityReference, EntityRelation, GeoPoint, RebaseApiError, Vector, getDataSourceCapabilities, isLazyComponentRef, isRelationalCollectionConfig } from "@rebasepro/types";
4
4
  import { Fragment, jsx, jsxs } from "react/jsx-runtime";
5
5
  import { SnackbarProvider as SnackbarProvider$1, useSnackbar } from "notistack";
6
6
  import { buildRebaseData, canCreateEntity, canDeleteEntity, canEditEntity, canReadCollection, evaluateCondition, getEntityChildViews, getLabelOrConfigFrom, getPrimaryKeys, getSubcollections, isPropertyBuilder, resolveStorageFilenameString, resolveStoragePathString, resolveStorageSource, stripCollectionPath, wrapAsEntityData, wrapAsSdkData } from "@rebasepro/common";
@@ -668,7 +668,7 @@ var useDialogsController = () => useContext(DialogsControllerContext);
668
668
  /**
669
669
  * Use this hook to retrieve the customization controller.
670
670
  * This hook includes all the customization options that can be used
671
- * to customize the CMS.
671
+ * to customize the admin.
672
672
  *
673
673
  * You will likely not need to use this hook directly.
674
674
  *
@@ -1643,7 +1643,7 @@ function useBuildLocalConfigurationPersistence() {
1643
1643
  //#region src/hooks/useBuildModeController.tsx
1644
1644
  /**
1645
1645
  * Use this hook to build a color mode controller that determines
1646
- * the theme of the CMS
1646
+ * the theme of the admin
1647
1647
  */
1648
1648
  function useBuildModeController() {
1649
1649
  const prefersDarkModeQuery = useCallback(() => {
@@ -1703,8 +1703,8 @@ function RebaseRegistryProvider({ children }) {
1703
1703
  const [studioConfig, setStudioConfig] = useState(null);
1704
1704
  const [authConfig, setAuthConfig] = useState(null);
1705
1705
  const dispatch = useMemo(() => ({
1706
- registerCMS: (config) => setCmsConfig(config),
1707
- unregisterCMS: () => setCmsConfig(null),
1706
+ registerAdmin: (config) => setCmsConfig(config),
1707
+ unregisterAdmin: () => setCmsConfig(null),
1708
1708
  registerStudio: (config) => setStudioConfig(config),
1709
1709
  unregisterStudio: () => setStudioConfig(null),
1710
1710
  registerAuth: (config) => setAuthConfig(config),
@@ -2252,7 +2252,7 @@ function useDebouncedData(data, deps, timeoutMs = 5e3) {
2252
2252
  //#region src/components/common/useColumnsIds.tsx
2253
2253
  /**
2254
2254
  * Get a property in a property tree from a dot-path like `address.street`.
2255
- * Inlined here to avoid importing property-aware utilities from the CMS layer.
2255
+ * Inlined here to avoid importing property-aware utilities from the admin layer.
2256
2256
  */
2257
2257
  function getPropertyInPath(properties, path) {
2258
2258
  if (typeof properties === "object") {
@@ -8942,12 +8942,13 @@ function warnAboutHalfConfiguredOAuth(provider, clientId, backendProviders) {
8942
8942
  * Feature-detects capabilities to show/hide login methods.
8943
8943
  * @group Core
8944
8944
  */
8945
- function LoginView({ logo, authController, noUserComponent, disableSignupScreen = false, disabled = false, notAllowedError, googleClientId, githubClientId, linkedinClientId, title, subtitle, needsSetup, registrationEnabled, additionalComponent, topComponent, defaultEmail, defaultPassword }) {
8945
+ function LoginView({ logo, authController, noUserComponent, disableSignupScreen = false, disabled = false, notAllowedError, googleClientId, githubClientId, linkedinClientId, title, subtitle, needsSetup, registrationEnabled, additionalComponent, topComponent, defaultEmail, defaultPassword, onNewsletterOptIn }) {
8946
8946
  const { mode: colorMode, setMode: setColorMode } = useModeController();
8947
8947
  const { t } = useTranslation();
8948
8948
  const [mode, setMode] = useState("buttons");
8949
8949
  const [fadeIn, setFadeIn] = useState(false);
8950
8950
  const [viewVisible, setViewVisible] = useState(true);
8951
+ const [newsletterOptIn, setNewsletterOptIn] = useState(false);
8951
8952
  const switchMode = (newMode) => {
8952
8953
  setViewVisible(false);
8953
8954
  setTimeout(() => {
@@ -9069,7 +9070,10 @@ function LoginView({ logo, authController, noUserComponent, disableSignupScreen
9069
9070
  disableSignupScreen: false,
9070
9071
  bootstrapMode: true,
9071
9072
  defaultEmail,
9072
- defaultPassword
9073
+ defaultPassword,
9074
+ onNewsletterOptIn,
9075
+ newsletterOptIn,
9076
+ setNewsletterOptIn
9073
9077
  }), !isBootstrapMode && /* @__PURE__ */ jsxs(Fragment, { children: [
9074
9078
  mode === "buttons" && /* @__PURE__ */ jsxs("div", {
9075
9079
  className: "w-full flex flex-col gap-3 mt-2",
@@ -9138,7 +9142,10 @@ function LoginView({ logo, authController, noUserComponent, disableSignupScreen
9138
9142
  disableSignupScreen,
9139
9143
  switchToRegister: showRegistration ? () => switchMode("register") : void 0,
9140
9144
  defaultEmail,
9141
- defaultPassword
9145
+ defaultPassword,
9146
+ onNewsletterOptIn,
9147
+ newsletterOptIn,
9148
+ setNewsletterOptIn
9142
9149
  }),
9143
9150
  mode === "register" && /* @__PURE__ */ jsx(LoginForm, {
9144
9151
  authController,
@@ -9149,7 +9156,10 @@ function LoginView({ logo, authController, noUserComponent, disableSignupScreen
9149
9156
  disableSignupScreen,
9150
9157
  switchToLogin: () => switchMode("login"),
9151
9158
  defaultEmail,
9152
- defaultPassword
9159
+ defaultPassword,
9160
+ onNewsletterOptIn,
9161
+ newsletterOptIn,
9162
+ setNewsletterOptIn
9153
9163
  }),
9154
9164
  mode === "forgot" && authController.forgotPassword && /* @__PURE__ */ jsx(ForgotPasswordForm, {
9155
9165
  authController,
@@ -9289,8 +9299,9 @@ function LinkedInLoginButton({ disabled, linkedinClientId }) {
9289
9299
  onClick: handleClick
9290
9300
  });
9291
9301
  }
9292
- function LoginForm({ onClose, onForgotPassword, authController, registrationMode, noUserComponent, disableSignupScreen, bootstrapMode = false, switchToRegister, switchToLogin, defaultEmail, defaultPassword }) {
9302
+ function LoginForm({ onClose, onForgotPassword, authController, registrationMode, noUserComponent, disableSignupScreen, bootstrapMode = false, switchToRegister, switchToLogin, defaultEmail, defaultPassword, onNewsletterOptIn, newsletterOptIn = false, setNewsletterOptIn }) {
9293
9303
  const passwordRef = useRef(null);
9304
+ const { t } = useTranslation();
9294
9305
  const [email, setEmail] = useState(defaultEmail);
9295
9306
  const [password, setPassword] = useState(defaultPassword);
9296
9307
  const [displayName, setDisplayName] = useState();
@@ -9304,11 +9315,14 @@ function LoginForm({ onClose, onForgotPassword, authController, registrationMode
9304
9315
  document.removeEventListener("keydown", escFunction, false);
9305
9316
  };
9306
9317
  }, [onClose]);
9318
+ function subscribeIfOptedIn(email) {
9319
+ if (newsletterOptIn && onNewsletterOptIn) onNewsletterOptIn(email);
9320
+ }
9307
9321
  function handleEnterPassword() {
9308
- if (email && password && authController.emailPasswordLogin) Promise.resolve(authController.emailPasswordLogin(email, password)).catch(() => void 0);
9322
+ if (email && password && authController.emailPasswordLogin) Promise.resolve(authController.emailPasswordLogin(email, password)).then(() => subscribeIfOptedIn(email)).catch(() => void 0);
9309
9323
  }
9310
9324
  function handleRegistration() {
9311
- if (email && password && authController.register) Promise.resolve(authController.register(email, password, displayName)).catch(() => void 0);
9325
+ if (email && password && authController.register) Promise.resolve(authController.register(email, password, displayName)).then(() => subscribeIfOptedIn(email)).catch(() => void 0);
9312
9326
  }
9313
9327
  const handleSubmit = (event) => {
9314
9328
  event.preventDefault();
@@ -9420,6 +9434,19 @@ function LoginForm({ onClose, onForgotPassword, authController, registrationMode
9420
9434
  children: "Forgot password?"
9421
9435
  })
9422
9436
  }),
9437
+ onNewsletterOptIn && /* @__PURE__ */ jsxs("label", {
9438
+ className: "flex items-center gap-2 cursor-pointer mt-1 mb-1",
9439
+ children: [/* @__PURE__ */ jsx(Checkbox, {
9440
+ checked: newsletterOptIn,
9441
+ onCheckedChange: (checked) => setNewsletterOptIn?.(checked === true),
9442
+ size: "small"
9443
+ }), /* @__PURE__ */ jsx(Typography, {
9444
+ variant: "caption",
9445
+ color: "secondary",
9446
+ className: "select-none",
9447
+ children: t("join_newsletter")
9448
+ })]
9449
+ }),
9423
9450
  /* @__PURE__ */ jsx(LoadingButton, {
9424
9451
  type: "submit",
9425
9452
  variant: "filled",
@@ -9603,7 +9630,7 @@ function ForgotPasswordForm({ onClose, authController }) {
9603
9630
  * Renders nothing — purely registers config into the RebaseRegistry.
9604
9631
  *
9605
9632
  * This is a framework-level component that lives in core since
9606
- * authentication is cross-cutting (CMS, Studio, any app area).
9633
+ * authentication is cross-cutting (admin, Studio, any app area).
9607
9634
  * @group Core
9608
9635
  */
9609
9636
  function RebaseAuth({ loginView }) {
@@ -9680,6 +9707,7 @@ var en = {
9680
9707
  dark_mode: "Dark",
9681
9708
  light_mode: "Light",
9682
9709
  system_mode: "System",
9710
+ join_newsletter: "Join the newsletter, no spam",
9683
9711
  ok: "Ok",
9684
9712
  save_collection_config: "Save collection structure",
9685
9713
  search_for_more_icons: "Search for more icons…",
@@ -9871,7 +9899,7 @@ var en = {
9871
9899
  action_defined_in_code: "This action is defined in code with key",
9872
9900
  add_custom_entity_action: "Add custom entity action",
9873
9901
  remove_this_action: "Remove this action?",
9874
- remove_action_warning: "This will not delete any data, only the action in the CMS",
9902
+ remove_action_warning: "This will not delete any data, only the action in the admin panel",
9875
9903
  subcollections_of: "Subcollections of",
9876
9904
  add_subcollection: "Add subcollection",
9877
9905
  custom_views: "Custom views",
@@ -9879,13 +9907,13 @@ var en = {
9879
9907
  view_defined_in_code: "This view is defined in code with key",
9880
9908
  add_custom_entity_view: "Add custom entity view",
9881
9909
  delete_this_subcollection: "Delete this subcollection?",
9882
- remove_collection_warning: "This will not delete any data, only the collection in the CMS",
9910
+ remove_collection_warning: "This will not delete any data, only the collection in the admin panel",
9883
9911
  remove_this_view: "Remove this view?",
9884
- remove_view_warning: "This will not delete any data, only the view in the CMS",
9912
+ remove_view_warning: "This will not delete any data, only the view in the admin panel",
9885
9913
  no_collection_selected: "No collection selected",
9886
9914
  code_for_collection: "Code for",
9887
9915
  use_config_define_json: "Use this config to define the collection in JSON format.",
9888
- customise_collection_code: "If you want to customise the collection in code, you can add this collection code to your CMS app configuration.",
9916
+ customise_collection_code: "If you want to customise the collection in code, you can add this collection code to your admin app configuration.",
9889
9917
  copied: "Copied",
9890
9918
  property_cant_be_edited: "This property can't be edited",
9891
9919
  property_not_editable_description: "You may not have permission to edit it or it is defined in code and cannot be modified.",
@@ -10134,7 +10162,7 @@ var en = {
10134
10162
  collection_pages_subtitle: "A collection of pages with images, authors and complex content",
10135
10163
  continue_from_scratch: "Continue from scratch",
10136
10164
  /** Admin views config */
10137
- cms_users: "CMS Users",
10165
+ admin_users: "Admin Users",
10138
10166
  roles_menu: "Roles",
10139
10167
  project_settings: "Project settings",
10140
10168
  by_signing_in_you_agree_to_our: "By signing in you agree to our",
@@ -10332,8 +10360,8 @@ var en = {
10332
10360
  studio_sql_error_executing: "An error occurred while executing the query.",
10333
10361
  studio_sql_error_explaining: "An error occurred while explaining the query.",
10334
10362
  studio_sql_save_first_to_favorite: "Please save the snippet first before favoriting.",
10335
- studio_sql_cms: "Collections:",
10336
- studio_sql_cms_collections_tooltip: "Tables in this query that are mapped to collections",
10363
+ studio_sql_collections_label: "Collections:",
10364
+ studio_sql_admin_collections_tooltip: "Tables in this query that are mapped to collections",
10337
10365
  studio_sql_edit_entity: "Open {{name}} #{{id}}",
10338
10366
  studio_sql_sql_not_supported: "SQL execution not supported by this data source",
10339
10367
  studio_sql_fetch_error: "Failed to fetch connection options: {{message}}",
@@ -10438,7 +10466,7 @@ var en = {
10438
10466
  studio_add_kanban_column_add: "Add",
10439
10467
  studio_add_kanban_column_cancel: "Cancel",
10440
10468
  studio_collection_view_sql: "SQL Editor",
10441
- studio_collection_view_cms: "CMS View",
10469
+ studio_collection_view_admin: "Admin View",
10442
10470
  studio_editor_collection_tooltip: "Edit collection schema",
10443
10471
  studio_editor_collection_no_permission: "You don't have permission to edit this collection",
10444
10472
  studio_editor_collection_start_tooltip: "Copy path or edit schema",
@@ -10471,7 +10499,7 @@ var en = {
10471
10499
  studio_editor_collection_start_saved: "Default config saved",
10472
10500
  studio_home_duplicate_collection: "Duplicate",
10473
10501
  studio_home_delete: "Delete",
10474
- studio_home_confirm_delete_no_data: "This will not delete any data, only the collection in the CMS",
10502
+ studio_home_confirm_delete_no_data: "This will not delete any data, only the collection in the admin panel",
10475
10503
  studio_home_collection_deleted: "Collection deleted",
10476
10504
  studio_kanban_configure: "Configure Kanban",
10477
10505
  studio_missing_reference_error: "No collection for path: {{path}}",
@@ -10560,6 +10588,7 @@ var es = {
10560
10588
  dark_mode: "Oscuro",
10561
10589
  light_mode: "Claro",
10562
10590
  system_mode: "Sistema",
10591
+ join_newsletter: "Únete a la newsletter, sin spam",
10563
10592
  ok: "Aceptar",
10564
10593
  save_collection_config: "Guardar la estructura de la colección",
10565
10594
  search_for_more_icons: "Buscar más iconos…",
@@ -10748,7 +10777,7 @@ var es = {
10748
10777
  action_defined_in_code: "Esta acción está definida en el código con la clave",
10749
10778
  add_custom_entity_action: "Añadir acción personalizada de entidad",
10750
10779
  remove_this_action: "¿Eliminar esta acción?",
10751
- remove_action_warning: "Esto no eliminará ningún dato, sólo se retirará del CMS",
10780
+ remove_action_warning: "Esto no eliminará ningún dato, sólo se retirará del panel de administración",
10752
10781
  subcollections_of: "Subcolecciones de",
10753
10782
  add_subcollection: "Añadir subcolección",
10754
10783
  custom_views: "Vistas personalizadas",
@@ -10756,13 +10785,13 @@ var es = {
10756
10785
  view_defined_in_code: "Esta vista se define en el código con la clave",
10757
10786
  add_custom_entity_view: "Añadir vista de entidad personalizada",
10758
10787
  delete_this_subcollection: "¿Eliminar esta subcolección?",
10759
- remove_collection_warning: "Esto no eliminará ningún dato, sólo la colección en el CMS",
10788
+ remove_collection_warning: "Esto no eliminará ningún dato, sólo la colección en el panel de administración",
10760
10789
  remove_this_view: "¿Eliminar esta vista?",
10761
- remove_view_warning: "Esto no eliminará ningún dato, sólo la vista en el CMS",
10790
+ remove_view_warning: "Esto no eliminará ningún dato, sólo la vista en el panel de administración",
10762
10791
  no_collection_selected: "Ninguna colección seleccionada",
10763
10792
  code_for_collection: "Código para",
10764
10793
  use_config_define_json: "Usa esta configuración para definir la colección en formato JSON.",
10765
- customise_collection_code: "Si deseas personalizar la colección en código, puedes añadir este código a la configuración de tu aplicación de CMS.",
10794
+ customise_collection_code: "Si deseas personalizar la colección en código, puedes añadir este código a la configuración de tu aplicación de administración.",
10766
10795
  copied: "Copiado",
10767
10796
  property_cant_be_edited: "Esta propiedad no se puede editar",
10768
10797
  property_not_editable_description: "Puede que no tengas permisos para editarla o que esté definida en código y no se pueda modificar.",
@@ -10923,7 +10952,7 @@ var es = {
10923
10952
  collection_pages_subtitle: "Una colección de páginas con imágenes, autores y contenido complejo",
10924
10953
  continue_from_scratch: "Continuar desde cero",
10925
10954
  /** Admin views config */
10926
- cms_users: "Usuarios del CMS",
10955
+ admin_users: "Usuarios del panel de administración",
10927
10956
  roles_menu: "Roles",
10928
10957
  project_settings: "Ajustes del proyecto",
10929
10958
  by_signing_in_you_agree_to_our: "Al iniciar sesión aceptas nuestros",
@@ -11177,8 +11206,8 @@ var es = {
11177
11206
  studio_sql_error_executing: "An error occurred while executing the query.",
11178
11207
  studio_sql_error_explaining: "An error occurred while explaining the query.",
11179
11208
  studio_sql_save_first_to_favorite: "Please save the snippet first before favoriting.",
11180
- studio_sql_cms: "Collections:",
11181
- studio_sql_cms_collections_tooltip: "Tables in this query that are mapped as CMS collections",
11209
+ studio_sql_collections_label: "Collections:",
11210
+ studio_sql_admin_collections_tooltip: "Tables in this query that are mapped as admin collections",
11182
11211
  studio_sql_edit_entity: "Edit {{name}} #{{id}}",
11183
11212
  studio_sql_sql_not_supported: "SQL execution not supported by this data source",
11184
11213
  studio_sql_fetch_error: "Failed to fetch connection options: {{message}}",
@@ -11283,7 +11312,7 @@ var es = {
11283
11312
  studio_add_kanban_column_add: "Add",
11284
11313
  studio_add_kanban_column_cancel: "Cancel",
11285
11314
  studio_collection_view_sql: "SQL Editor",
11286
- studio_collection_view_cms: "CMS View",
11315
+ studio_collection_view_admin: "Admin View",
11287
11316
  studio_editor_collection_tooltip: "Edit collection schema",
11288
11317
  studio_editor_collection_no_permission: "You don't have permission to edit this collection",
11289
11318
  studio_editor_collection_start_tooltip: "Copy path or edit schema",
@@ -11316,7 +11345,7 @@ var es = {
11316
11345
  studio_editor_collection_start_saved: "Default config saved",
11317
11346
  studio_home_duplicate_collection: "Duplicate",
11318
11347
  studio_home_delete: "Delete",
11319
- studio_home_confirm_delete_no_data: "This will not delete any data, only the collection in the CMS",
11348
+ studio_home_confirm_delete_no_data: "This will not delete any data, only the collection in the admin panel",
11320
11349
  studio_home_collection_deleted: "Collection deleted",
11321
11350
  studio_kanban_configure: "Configure Kanban",
11322
11351
  studio_missing_reference_error: "No collection for path: {{path}}",
@@ -11397,6 +11426,7 @@ var de = {
11397
11426
  dark_mode: "Dunkel",
11398
11427
  light_mode: "Hell",
11399
11428
  system_mode: "System",
11429
+ join_newsletter: "Newsletter abonnieren, kein Spam",
11400
11430
  ok: "Ok",
11401
11431
  save_collection_config: "Sammlungsstruktur speichern",
11402
11432
  search_for_more_icons: "Nach weiteren Symbolen suchen…",
@@ -11585,7 +11615,7 @@ var de = {
11585
11615
  action_defined_in_code: "Diese Aktion ist im Code definiert mit dem Schlüssel",
11586
11616
  add_custom_entity_action: "Benutzerdefinierte Entitätsaktion hinzufügen",
11587
11617
  remove_this_action: "Diese Aktion entfernen?",
11588
- remove_action_warning: "Dadurch werden keine Daten gelöscht, sondern nur die Aktion im CMS",
11618
+ remove_action_warning: "Dadurch werden keine Daten gelöscht, sondern nur die Aktion im Admin-Panel",
11589
11619
  subcollections_of: "Untersammlungen von",
11590
11620
  add_subcollection: "Untersammlung hinzufügen",
11591
11621
  custom_views: "Benutzerdefinierte Ansichten",
@@ -11593,13 +11623,13 @@ var de = {
11593
11623
  view_defined_in_code: "Diese Ansicht ist im Code definiert mit dem Schlüssel",
11594
11624
  add_custom_entity_view: "Benutzerdefinierte Entitätsansicht hinzufügen",
11595
11625
  delete_this_subcollection: "Diese Untersammlung löschen?",
11596
- remove_collection_warning: "Dadurch werden keine Daten gelöscht, sondern nur die Sammlung im CMS",
11626
+ remove_collection_warning: "Dadurch werden keine Daten gelöscht, sondern nur die Sammlung im Admin-Panel",
11597
11627
  remove_this_view: "Diese Ansicht entfernen?",
11598
- remove_view_warning: "Dadurch werden keine Daten gelöscht, sondern nur die Ansicht im CMS",
11628
+ remove_view_warning: "Dadurch werden keine Daten gelöscht, sondern nur die Ansicht im Admin-Panel",
11599
11629
  no_collection_selected: "Keine Sammlung ausgewählt",
11600
11630
  code_for_collection: "Code für",
11601
11631
  use_config_define_json: "Verwenden Sie diese Konfiguration, um die Sammlung im JSON-Format zu definieren.",
11602
- customise_collection_code: "Wenn Sie die Sammlung im Code anpassen möchten, können Sie diesen Sammlungscode zu Ihrer CMS-App-Konfiguration hinzufügen.",
11632
+ customise_collection_code: "Wenn Sie die Sammlung im Code anpassen möchten, können Sie diesen Sammlungscode zu Ihrer Admin-App-Konfiguration hinzufügen.",
11603
11633
  copied: "Kopiert",
11604
11634
  property_cant_be_edited: "Diese Eigenschaft kann nicht bearbeitet werden",
11605
11635
  property_not_editable_description: "Sie haben möglicherweise keine Berechtigung zum Bearbeiten oder es ist im Code definiert und kann nicht geändert werden.",
@@ -11760,7 +11790,7 @@ var de = {
11760
11790
  collection_pages_subtitle: "Eine Sammlung von Seiten mit Bildern, Autoren und komplexen Inhalten",
11761
11791
  continue_from_scratch: "Von vorne beginnen",
11762
11792
  /** Admin views config */
11763
- cms_users: "CMS-Benutzer",
11793
+ admin_users: "Admin-Benutzer",
11764
11794
  roles_menu: "Rollen",
11765
11795
  project_settings: "Projekteinstellungen",
11766
11796
  by_signing_in_you_agree_to_our: "Mit der Anmeldung stimmen Sie unseren",
@@ -12004,8 +12034,8 @@ var de = {
12004
12034
  studio_sql_error_executing: "An error occurred while executing the query.",
12005
12035
  studio_sql_error_explaining: "An error occurred while explaining the query.",
12006
12036
  studio_sql_save_first_to_favorite: "Please save the snippet first before favoriting.",
12007
- studio_sql_cms: "Collections:",
12008
- studio_sql_cms_collections_tooltip: "Tables in this query that are mapped as CMS collections",
12037
+ studio_sql_collections_label: "Collections:",
12038
+ studio_sql_admin_collections_tooltip: "Tables in this query that are mapped as admin collections",
12009
12039
  studio_sql_edit_entity: "Edit {{name}} #{{id}}",
12010
12040
  studio_sql_sql_not_supported: "SQL execution not supported by this data source",
12011
12041
  studio_sql_fetch_error: "Failed to fetch connection options: {{message}}",
@@ -12110,7 +12140,7 @@ var de = {
12110
12140
  studio_add_kanban_column_add: "Add",
12111
12141
  studio_add_kanban_column_cancel: "Cancel",
12112
12142
  studio_collection_view_sql: "SQL Editor",
12113
- studio_collection_view_cms: "CMS View",
12143
+ studio_collection_view_admin: "Admin View",
12114
12144
  studio_editor_collection_tooltip: "Edit collection schema",
12115
12145
  studio_editor_collection_no_permission: "You don't have permission to edit this collection",
12116
12146
  studio_editor_collection_start_tooltip: "Copy path or edit schema",
@@ -12143,7 +12173,7 @@ var de = {
12143
12173
  studio_editor_collection_start_saved: "Default config saved",
12144
12174
  studio_home_duplicate_collection: "Duplicate",
12145
12175
  studio_home_delete: "Delete",
12146
- studio_home_confirm_delete_no_data: "This will not delete any data, only the collection in the CMS",
12176
+ studio_home_confirm_delete_no_data: "This will not delete any data, only the collection in the admin panel",
12147
12177
  studio_home_collection_deleted: "Collection deleted",
12148
12178
  studio_kanban_configure: "Configure Kanban",
12149
12179
  studio_missing_reference_error: "No collection for path: {{path}}",
@@ -12224,6 +12254,7 @@ var fr = {
12224
12254
  dark_mode: "Sombre",
12225
12255
  light_mode: "Clair",
12226
12256
  system_mode: "Système",
12257
+ join_newsletter: "Rejoignez la newsletter, pas de spam",
12227
12258
  ok: "Ok",
12228
12259
  save_collection_config: "Enregistrer la structure de la collection",
12229
12260
  search_for_more_icons: "Rechercher d'autres icônes…",
@@ -12412,7 +12443,7 @@ var fr = {
12412
12443
  action_defined_in_code: "Cette action est définie dans le code avec la clé",
12413
12444
  add_custom_entity_action: "Ajouter une action d'entité personnalisée",
12414
12445
  remove_this_action: "Supprimer cette action ?",
12415
- remove_action_warning: "Cela ne supprimera aucune donnée, uniquement l'action dans le CMS",
12446
+ remove_action_warning: "Cela ne supprimera aucune donnée, uniquement l'action dans le panneau d'administration",
12416
12447
  subcollections_of: "Sous-collections de",
12417
12448
  add_subcollection: "Ajouter une sous-collection",
12418
12449
  custom_views: "Vues personnalisées",
@@ -12420,13 +12451,13 @@ var fr = {
12420
12451
  view_defined_in_code: "Cette vue est définie dans le code avec la clé",
12421
12452
  add_custom_entity_view: "Ajouter une vue d'entité personnalisée",
12422
12453
  delete_this_subcollection: "Supprimer cette sous-collection ?",
12423
- remove_collection_warning: "Cela ne supprimera aucune donnée, uniquement la collection dans le CMS",
12454
+ remove_collection_warning: "Cela ne supprimera aucune donnée, uniquement la collection dans le panneau d'administration",
12424
12455
  remove_this_view: "Supprimer cette vue ?",
12425
- remove_view_warning: "Cela ne supprimera aucune donnée, uniquement la vue dans le CMS",
12456
+ remove_view_warning: "Cela ne supprimera aucune donnée, uniquement la vue dans le panneau d'administration",
12426
12457
  no_collection_selected: "Aucune collection sélectionnée",
12427
12458
  code_for_collection: "Code pour",
12428
12459
  use_config_define_json: "Utilisez cette configuration pour définir la collection au format JSON.",
12429
- customise_collection_code: "Si vous souhaitez personnaliser la collection dans le code, vous pouvez ajouter ce code de collection à la configuration de votre application CMS.",
12460
+ customise_collection_code: "Si vous souhaitez personnaliser la collection dans le code, vous pouvez ajouter ce code de collection à la configuration de votre application d'administration.",
12430
12461
  copied: "Copié",
12431
12462
  property_cant_be_edited: "Cette propriété ne peut pas être modifiée",
12432
12463
  property_not_editable_description: "Vous n'avez peut-être pas l'autorisation de la modifier ou elle est définie dans le code et ne peut pas être modifiée.",
@@ -12587,7 +12618,7 @@ var fr = {
12587
12618
  collection_pages_subtitle: "Une collection de pages avec images, auteurs et contenu complexe",
12588
12619
  continue_from_scratch: "Continuer à partir de zéro",
12589
12620
  /** Admin views config */
12590
- cms_users: "Utilisateurs du CMS",
12621
+ admin_users: "Utilisateurs du panneau d'administration",
12591
12622
  roles_menu: "Rôles",
12592
12623
  project_settings: "Paramètres du projet",
12593
12624
  by_signing_in_you_agree_to_our: "En vous connectant, vous acceptez nos",
@@ -12831,8 +12862,8 @@ var fr = {
12831
12862
  studio_sql_error_executing: "An error occurred while executing the query.",
12832
12863
  studio_sql_error_explaining: "An error occurred while explaining the query.",
12833
12864
  studio_sql_save_first_to_favorite: "Please save the snippet first before favoriting.",
12834
- studio_sql_cms: "Collections:",
12835
- studio_sql_cms_collections_tooltip: "Tables in this query that are mapped as CMS collections",
12865
+ studio_sql_collections_label: "Collections:",
12866
+ studio_sql_admin_collections_tooltip: "Tables in this query that are mapped as admin collections",
12836
12867
  studio_sql_edit_entity: "Edit {{name}} #{{id}}",
12837
12868
  studio_sql_sql_not_supported: "SQL execution not supported by this data source",
12838
12869
  studio_sql_fetch_error: "Failed to fetch connection options: {{message}}",
@@ -12937,7 +12968,7 @@ var fr = {
12937
12968
  studio_add_kanban_column_add: "Add",
12938
12969
  studio_add_kanban_column_cancel: "Cancel",
12939
12970
  studio_collection_view_sql: "SQL Editor",
12940
- studio_collection_view_cms: "CMS View",
12971
+ studio_collection_view_admin: "Admin View",
12941
12972
  studio_editor_collection_tooltip: "Edit collection schema",
12942
12973
  studio_editor_collection_no_permission: "You don't have permission to edit this collection",
12943
12974
  studio_editor_collection_start_tooltip: "Copy path or edit schema",
@@ -12970,7 +13001,7 @@ var fr = {
12970
13001
  studio_editor_collection_start_saved: "Default config saved",
12971
13002
  studio_home_duplicate_collection: "Duplicate",
12972
13003
  studio_home_delete: "Delete",
12973
- studio_home_confirm_delete_no_data: "This will not delete any data, only the collection in the CMS",
13004
+ studio_home_confirm_delete_no_data: "This will not delete any data, only the collection in the admin panel",
12974
13005
  studio_home_collection_deleted: "Collection deleted",
12975
13006
  studio_kanban_configure: "Configure Kanban",
12976
13007
  studio_missing_reference_error: "No collection for path: {{path}}",
@@ -13051,6 +13082,7 @@ var it = {
13051
13082
  dark_mode: "Scuro",
13052
13083
  light_mode: "Chiaro",
13053
13084
  system_mode: "Sistema",
13085
+ join_newsletter: "Iscriviti alla newsletter, niente spam",
13054
13086
  ok: "Ok",
13055
13087
  save_collection_config: "Salva struttura della collezione",
13056
13088
  search_for_more_icons: "Cerca altre icone…",
@@ -13239,7 +13271,7 @@ var it = {
13239
13271
  action_defined_in_code: "Questa azione è definita dal codice con la chiave",
13240
13272
  add_custom_entity_action: "Aggiungi azione di entità personalizzata",
13241
13273
  remove_this_action: "Rimuovi questa azione?",
13242
- remove_action_warning: "Questa operazione non eliminerà dati, ma solo l'azione dal CMS",
13274
+ remove_action_warning: "Questa operazione non eliminerà dati, ma solo l'azione dal pannello di amministrazione",
13243
13275
  subcollections_of: "Sottocollezioni di",
13244
13276
  add_subcollection: "Aggiungi sottocollezione",
13245
13277
  custom_views: "Viste personalizzate",
@@ -13247,13 +13279,13 @@ var it = {
13247
13279
  view_defined_in_code: "Questa vista è definita nel codice dalla chiave",
13248
13280
  add_custom_entity_view: "Aggiungi vista ad entità personalizzata",
13249
13281
  delete_this_subcollection: "Vuoi eliminare questa sottocollezione?",
13250
- remove_collection_warning: "Attenzione: questo rimuoverà solo la collezione configurata nel CMS, senza eliminare i dati effettivi.",
13282
+ remove_collection_warning: "Attenzione: questo rimuoverà solo la collezione configurata nel pannello di amministrazione, senza eliminare i dati effettivi.",
13251
13283
  remove_this_view: "Desideri rimuovere questa vista?",
13252
- remove_view_warning: "Questa azione rimuoverà solo la visualizzazione dal CMS; i dati rimarranno intatti.",
13284
+ remove_view_warning: "Questa azione rimuoverà solo la visualizzazione dal pannello di amministrazione; i dati rimarranno intatti.",
13253
13285
  no_collection_selected: "Nessuna collezione selezionata",
13254
13286
  code_for_collection: "Codice per",
13255
13287
  use_config_define_json: "Utilizza questa configurazione per definire la collezione in formato JSON.",
13256
- customise_collection_code: "Se desideri personalizzare ulteriormente tramite codice la collezione, puoi aggiungere questo frammento di codice nel tuo CMS.",
13288
+ customise_collection_code: "Se desideri personalizzare ulteriormente tramite codice la collezione, puoi aggiungere questo frammento di codice nel tuo pannello di amministrazione.",
13257
13289
  copied: "Copiato",
13258
13290
  property_cant_be_edited: "Non è possibile modificare questa proprietà",
13259
13291
  property_not_editable_description: "Potresti non disporre dei permessi per modificarla o potrebbe essere definita nel codice e non modificabile.",
@@ -13414,7 +13446,7 @@ var it = {
13414
13446
  collection_pages_subtitle: "Gestisci le pagine statiche del tuo sito",
13415
13447
  continue_from_scratch: "Continua da zero",
13416
13448
  /** Admin views config */
13417
- cms_users: "Utenti CMS",
13449
+ admin_users: "Utenti del pannello di amministrazione",
13418
13450
  roles_menu: "Ruoli",
13419
13451
  project_settings: "Impostazioni del progetto",
13420
13452
  by_signing_in_you_agree_to_our: "Accedendo accetti i nostri",
@@ -13442,7 +13474,7 @@ var it = {
13442
13474
  auth_sign_up: "Registrati",
13443
13475
  auto_setup_collections_button: "Configura le collezioni automaticamente",
13444
13476
  auto_setup_collections_title: "Configurazione automatica delle collezioni",
13445
- auto_setup_collections_desc: "Configura le collezioni automaticamente in base ai dati Firestore esistenti. Lascia che Rebase configuri il CMS perfetto per te.",
13477
+ auto_setup_collections_desc: "Configura le collezioni automaticamente in base ai dati Firestore esistenti. Lascia che Rebase configuri il pannello di amministrazione perfetto per te.",
13446
13478
  this_can_take_a_minute: "Potrebbe richiedere qualche minuto",
13447
13479
  no_collections_found_to_setup: "Nessuna collezione trovata da configurare",
13448
13480
  collections_have_been_setup: "Le collezioni sono state configurate",
@@ -13658,8 +13690,8 @@ var it = {
13658
13690
  studio_sql_error_executing: "An error occurred while executing the query.",
13659
13691
  studio_sql_error_explaining: "An error occurred while explaining the query.",
13660
13692
  studio_sql_save_first_to_favorite: "Please save the snippet first before favoriting.",
13661
- studio_sql_cms: "Collections:",
13662
- studio_sql_cms_collections_tooltip: "Tables in this query that are mapped as CMS collections",
13693
+ studio_sql_collections_label: "Collections:",
13694
+ studio_sql_admin_collections_tooltip: "Tables in this query that are mapped as admin collections",
13663
13695
  studio_sql_edit_entity: "Edit {{name}} #{{id}}",
13664
13696
  studio_sql_sql_not_supported: "SQL execution not supported by this data source",
13665
13697
  studio_sql_fetch_error: "Failed to fetch connection options: {{message}}",
@@ -13764,7 +13796,7 @@ var it = {
13764
13796
  studio_add_kanban_column_add: "Add",
13765
13797
  studio_add_kanban_column_cancel: "Cancel",
13766
13798
  studio_collection_view_sql: "SQL Editor",
13767
- studio_collection_view_cms: "CMS View",
13799
+ studio_collection_view_admin: "Admin View",
13768
13800
  studio_editor_collection_tooltip: "Edit collection schema",
13769
13801
  studio_editor_collection_no_permission: "You don't have permission to edit this collection",
13770
13802
  studio_editor_collection_start_tooltip: "Copy path or edit schema",
@@ -13797,7 +13829,7 @@ var it = {
13797
13829
  studio_editor_collection_start_saved: "Default config saved",
13798
13830
  studio_home_duplicate_collection: "Duplicate",
13799
13831
  studio_home_delete: "Delete",
13800
- studio_home_confirm_delete_no_data: "This will not delete any data, only the collection in the CMS",
13832
+ studio_home_confirm_delete_no_data: "This will not delete any data, only the collection in the admin panel",
13801
13833
  studio_home_collection_deleted: "Collection deleted",
13802
13834
  studio_kanban_configure: "Configure Kanban",
13803
13835
  studio_missing_reference_error: "No collection for path: {{path}}",
@@ -13878,6 +13910,7 @@ var hi = {
13878
13910
  dark_mode: "डार्क",
13879
13911
  light_mode: "लाइट",
13880
13912
  system_mode: "सिस्टम",
13913
+ join_newsletter: "न्यूज़लेटर से जुड़ें, कोई स्पैम नहीं",
13881
13914
  ok: "ठीक है",
13882
13915
  save_collection_config: "संग्रह संरचना सहेजें",
13883
13916
  search_for_more_icons: "और आइकन खोजें…",
@@ -14066,7 +14099,7 @@ var hi = {
14066
14099
  action_defined_in_code: "यह क्रिया कोड में कुंजी (key) के साथ परिभाषित की गई है",
14067
14100
  add_custom_entity_action: "कस्टम इकाई कार्रवाई जोड़ें",
14068
14101
  remove_this_action: "यह क्रिया हटाएँ?",
14069
- remove_action_warning: "यह कोई डेटा नहीं हटाएगा, केवल CMS में कार्रवाई को हटाएगा",
14102
+ remove_action_warning: "यह कोई डेटा नहीं हटाएगा, केवल एडमिन पैनल में कार्रवाई को हटाएगा",
14070
14103
  subcollections_of: "के उपसंग्रह",
14071
14104
  add_subcollection: "उपसंग्रह जोड़ें",
14072
14105
  custom_views: "कस्टम दृश्य",
@@ -14074,13 +14107,13 @@ var hi = {
14074
14107
  view_defined_in_code: "यह दृश्य कोड में कुंजी (key) के साथ परिभाषित किया गया है",
14075
14108
  add_custom_entity_view: "कस्टम इकाई दृश्य जोड़ें",
14076
14109
  delete_this_subcollection: "इस उपसंग्रह को हटाएं?",
14077
- remove_collection_warning: "यह कोई डेटा नहीं हटाएगा, केवल CMS में संग्रह को हटाएगा",
14110
+ remove_collection_warning: "यह कोई डेटा नहीं हटाएगा, केवल एडमिन पैनल में संग्रह को हटाएगा",
14078
14111
  remove_this_view: "यह दृश्य हटाएँ?",
14079
- remove_view_warning: "यह कोई डेटा नहीं हटाएगा, केवल CMS में दृश्य को हटाएगा",
14112
+ remove_view_warning: "यह कोई डेटा नहीं हटाएगा, केवल एडमिन पैनल में दृश्य को हटाएगा",
14080
14113
  no_collection_selected: "कोई संग्रह नहीं चुना गया",
14081
14114
  code_for_collection: "संग्रह के लिए कोड",
14082
14115
  use_config_define_json: "संग्रह को JSON प्रारूप में परिभाषित करने के लिए इस कॉन्फ़िगरेशन का उपयोग करें।",
14083
- customise_collection_code: "यदि आप कोड में संग्रह को अनुकूलित करना चाहते हैं, तो आप इस संग्रह कोड को अपने CMS ऐप कॉन्फ़िगरेशन में जोड़ सकते हैं।",
14116
+ customise_collection_code: "यदि आप कोड में संग्रह को अनुकूलित करना चाहते हैं, तो आप इस संग्रह कोड को अपने एडमिन ऐप कॉन्फ़िगरेशन में जोड़ सकते हैं।",
14084
14117
  copied: "कॉपी किया गया",
14085
14118
  property_cant_be_edited: "इस विशेषता को संपादित नहीं किया जा सकता",
14086
14119
  property_not_editable_description: "आपके पास इसे संपादित करने की अनुमति नहीं हो सकती है या इसे कोड में परिभाषित किया गया है और इसे संशोधित नहीं किया जा सकता।",
@@ -14241,7 +14274,7 @@ var hi = {
14241
14274
  collection_pages_subtitle: "छवियों, लेखकों और जटिल सामग्री के साथ पृष्ठों का एक संग्रह",
14242
14275
  continue_from_scratch: "शुरुआत से जारी रखें",
14243
14276
  /** Admin views config */
14244
- cms_users: "CMS उपयोगकर्ता",
14277
+ admin_users: "एडमिन पैनल उपयोगकर्ता",
14245
14278
  roles_menu: "भूमिकाएँ",
14246
14279
  project_settings: "परियोजना सेटिंग",
14247
14280
  by_signing_in_you_agree_to_our: "साइन इन करके आप हमारे नियमों और शर्तों से सहमत होते हैं",
@@ -14269,7 +14302,7 @@ var hi = {
14269
14302
  auth_sign_up: "साइन अप करें",
14270
14303
  auto_setup_collections_button: "संग्रहों को स्वचालित रूप से सेट करें",
14271
14304
  auto_setup_collections_title: "संग्रहों की स्वचालित सेटअप",
14272
- auto_setup_collections_desc: "अपने मौजूदा Firestore डेटा के आधार पर संग्रहों को स्वचालित रूप से सेट करें। Rebase को आपके लिए परफेक्ट CMS कॉन्फ़िगर करने दें।",
14305
+ auto_setup_collections_desc: "अपने मौजूदा Firestore डेटा के आधार पर संग्रहों को स्वचालित रूप से सेट करें। Rebase को आपके लिए परफेक्ट एडमिन पैनल कॉन्फ़िगर करने दें।",
14273
14306
  this_can_take_a_minute: "इसमें एक मिनट लग सकता है",
14274
14307
  no_collections_found_to_setup: "सेट करने के लिए कोई संग्रह नहीं मिला",
14275
14308
  collections_have_been_setup: "संग्रहों को सेट कर दिया गया है",
@@ -14485,8 +14518,8 @@ var hi = {
14485
14518
  studio_sql_error_executing: "An error occurred while executing the query.",
14486
14519
  studio_sql_error_explaining: "An error occurred while explaining the query.",
14487
14520
  studio_sql_save_first_to_favorite: "Please save the snippet first before favoriting.",
14488
- studio_sql_cms: "Collections:",
14489
- studio_sql_cms_collections_tooltip: "Tables in this query that are mapped as CMS collections",
14521
+ studio_sql_collections_label: "Collections:",
14522
+ studio_sql_admin_collections_tooltip: "Tables in this query that are mapped as admin collections",
14490
14523
  studio_sql_edit_entity: "Edit {{name}} #{{id}}",
14491
14524
  studio_sql_sql_not_supported: "SQL execution not supported by this data source",
14492
14525
  studio_sql_fetch_error: "Failed to fetch connection options: {{message}}",
@@ -14591,7 +14624,7 @@ var hi = {
14591
14624
  studio_add_kanban_column_add: "Add",
14592
14625
  studio_add_kanban_column_cancel: "Cancel",
14593
14626
  studio_collection_view_sql: "SQL Editor",
14594
- studio_collection_view_cms: "CMS View",
14627
+ studio_collection_view_admin: "Admin View",
14595
14628
  studio_editor_collection_tooltip: "Edit collection schema",
14596
14629
  studio_editor_collection_no_permission: "You don't have permission to edit this collection",
14597
14630
  studio_editor_collection_start_tooltip: "Copy path or edit schema",
@@ -14624,7 +14657,7 @@ var hi = {
14624
14657
  studio_editor_collection_start_saved: "Default config saved",
14625
14658
  studio_home_duplicate_collection: "Duplicate",
14626
14659
  studio_home_delete: "Delete",
14627
- studio_home_confirm_delete_no_data: "This will not delete any data, only the collection in the CMS",
14660
+ studio_home_confirm_delete_no_data: "This will not delete any data, only the collection in the admin panel",
14628
14661
  studio_home_collection_deleted: "Collection deleted",
14629
14662
  studio_kanban_configure: "Configure Kanban",
14630
14663
  studio_missing_reference_error: "No collection for path: {{path}}",
@@ -14710,6 +14743,7 @@ var pt = {
14710
14743
  dark_mode: "Escuro",
14711
14744
  light_mode: "Claro",
14712
14745
  system_mode: "Sistema",
14746
+ join_newsletter: "Assine a newsletter, sem spam",
14713
14747
  ok: "Ok",
14714
14748
  save_collection_config: "Guardar estrutura da coleção",
14715
14749
  search_for_more_icons: "Pesquisar mais ícones…",
@@ -14898,7 +14932,7 @@ var pt = {
14898
14932
  action_defined_in_code: "Esta ação está definida em código com a chave",
14899
14933
  add_custom_entity_action: "Adicionar ação de entidade personalizada",
14900
14934
  remove_this_action: "Remover esta ação?",
14901
- remove_action_warning: "Isto não eliminará nenhum dado, apenas a ação no CMS",
14935
+ remove_action_warning: "Isto não eliminará nenhum dado, apenas a ação no painel de administração",
14902
14936
  subcollections_of: "Subcoleções de",
14903
14937
  add_subcollection: "Adicionar subcoleção",
14904
14938
  custom_views: "Vistas personalizadas",
@@ -14906,13 +14940,13 @@ var pt = {
14906
14940
  view_defined_in_code: "Esta vista está definida em código com a chave",
14907
14941
  add_custom_entity_view: "Adicionar vista de entidade personalizada",
14908
14942
  delete_this_subcollection: "Eliminar esta subcoleção?",
14909
- remove_collection_warning: "Isto não eliminará nenhum dado, apenas a coleção no CMS",
14943
+ remove_collection_warning: "Isto não eliminará nenhum dado, apenas a coleção no painel de administração",
14910
14944
  remove_this_view: "Remover esta vista?",
14911
- remove_view_warning: "Isto não eliminará nenhum dado, apenas a vista no CMS",
14945
+ remove_view_warning: "Isto não eliminará nenhum dado, apenas a vista no painel de administração",
14912
14946
  no_collection_selected: "Nenhuma coleção selecionada",
14913
14947
  code_for_collection: "Código para",
14914
14948
  use_config_define_json: "Use esta configuração para definir a coleção em formato JSON.",
14915
- customise_collection_code: "Se quiser personalizar a coleção em código, pode adicionar este código de coleção à configuração da sua aplicação CMS.",
14949
+ customise_collection_code: "Se quiser personalizar a coleção em código, pode adicionar este código de coleção à configuração da sua aplicação de administração.",
14916
14950
  copied: "Copiado",
14917
14951
  property_cant_be_edited: "Esta propriedade não pode ser editada",
14918
14952
  property_not_editable_description: "Pode não ter permissão para editá-la ou está definida em código e não pode ser modificada.",
@@ -15073,7 +15107,7 @@ var pt = {
15073
15107
  collection_pages_subtitle: "Uma coleção de páginas com imagens, autores e conteúdo complexo",
15074
15108
  continue_from_scratch: "Continuar do zero",
15075
15109
  /** Admin views config */
15076
- cms_users: "Utilizadores do CMS",
15110
+ admin_users: "Utilizadores do painel de administração",
15077
15111
  roles_menu: "Funções",
15078
15112
  project_settings: "Definições do projeto",
15079
15113
  by_signing_in_you_agree_to_our: "Ao iniciar sessão, concorda com os nossos",
@@ -15317,8 +15351,8 @@ var pt = {
15317
15351
  studio_sql_error_executing: "An error occurred while executing the query.",
15318
15352
  studio_sql_error_explaining: "An error occurred while explaining the query.",
15319
15353
  studio_sql_save_first_to_favorite: "Please save the snippet first before favoriting.",
15320
- studio_sql_cms: "Collections:",
15321
- studio_sql_cms_collections_tooltip: "Tables in this query that are mapped as CMS collections",
15354
+ studio_sql_collections_label: "Collections:",
15355
+ studio_sql_admin_collections_tooltip: "Tables in this query that are mapped as admin collections",
15322
15356
  studio_sql_edit_entity: "Edit {{name}} #{{id}}",
15323
15357
  studio_sql_sql_not_supported: "SQL execution not supported by this data source",
15324
15358
  studio_sql_fetch_error: "Failed to fetch connection options: {{message}}",
@@ -15423,7 +15457,7 @@ var pt = {
15423
15457
  studio_add_kanban_column_add: "Add",
15424
15458
  studio_add_kanban_column_cancel: "Cancel",
15425
15459
  studio_collection_view_sql: "SQL Editor",
15426
- studio_collection_view_cms: "CMS View",
15460
+ studio_collection_view_admin: "Admin View",
15427
15461
  studio_editor_collection_tooltip: "Edit collection schema",
15428
15462
  studio_editor_collection_no_permission: "You don't have permission to edit this collection",
15429
15463
  studio_editor_collection_start_tooltip: "Copy path or edit schema",
@@ -15456,7 +15490,7 @@ var pt = {
15456
15490
  studio_editor_collection_start_saved: "Default config saved",
15457
15491
  studio_home_duplicate_collection: "Duplicate",
15458
15492
  studio_home_delete: "Delete",
15459
- studio_home_confirm_delete_no_data: "This will not delete any data, only the collection in the CMS",
15493
+ studio_home_confirm_delete_no_data: "This will not delete any data, only the collection in the admin panel",
15460
15494
  studio_home_collection_deleted: "Collection deleted",
15461
15495
  studio_kanban_configure: "Configure Kanban",
15462
15496
  studio_missing_reference_error: "No collection for path: {{path}}",
@@ -15567,7 +15601,7 @@ function buildResources(translations) {
15567
15601
  //#endregion
15568
15602
  //#region src/core/Rebase.tsx
15569
15603
  /**
15570
- * If you are using independent components of the CMS
15604
+ * If you are using independent components of the admin
15571
15605
  * you need to wrap them with this main component, so the internal hooks work.
15572
15606
  *
15573
15607
  * This is the main component of Rebase. It acts as the provider of all the
@@ -16905,10 +16939,10 @@ var NOOP_BRIDGE = {
16905
16939
  };
16906
16940
  var StudioBridgeContext = createContext(NOOP_BRIDGE);
16907
16941
  /**
16908
- * Provider that injects CMS capabilities into Studio.
16942
+ * Provider that injects admin capabilities into Studio.
16909
16943
  * Accepts partial overrides — any field not provided falls back to noop.
16910
16944
  *
16911
- * Usage (in app wiring, when CMS is present):
16945
+ * Usage (in app wiring, when the admin is present):
16912
16946
  * ```tsx
16913
16947
  * <StudioBridgeProvider value={{
16914
16948
  * collectionRegistry: useCollectionRegistryController(),
@@ -16931,23 +16965,23 @@ function StudioBridgeProvider({ value, children }) {
16931
16965
  children
16932
16966
  });
16933
16967
  }
16934
- /** Collection registry — returns noop if CMS is not present. */
16968
+ /** Collection registry — returns noop if the admin is not present. */
16935
16969
  function useStudioCollectionRegistry() {
16936
16970
  return useContext(StudioBridgeContext).collectionRegistry;
16937
16971
  }
16938
- /** Side panel controller — returns noop if CMS is not present. */
16972
+ /** Side panel controller — returns noop if the admin is not present. */
16939
16973
  function useStudioSidePanelController() {
16940
16974
  return useContext(StudioBridgeContext).sidePanelController;
16941
16975
  }
16942
- /** URL controller — returns noop if CMS is not present. */
16976
+ /** URL controller — returns noop if the admin is not present. */
16943
16977
  function useStudioUrlController() {
16944
16978
  return useContext(StudioBridgeContext).urlController;
16945
16979
  }
16946
- /** Navigation state — returns noop if CMS is not present. */
16980
+ /** Navigation state — returns noop if the admin is not present. */
16947
16981
  function useStudioNavigationState() {
16948
16982
  return useContext(StudioBridgeContext).navigationState;
16949
16983
  }
16950
- /** Breadcrumbs controller — returns noop if CMS is not present. */
16984
+ /** Breadcrumbs controller — returns noop if the admin is not present. */
16951
16985
  function useStudioBreadcrumbs() {
16952
16986
  return useContext(StudioBridgeContext).breadcrumbs;
16953
16987
  }
@@ -17159,6 +17193,36 @@ var DEFAULT_OPS_BY_TYPE = {
17159
17193
  /** Operators offered when the property is an *array of* a filterable type. */
17160
17194
  var ARRAY_OPS = ["array-contains", "array-contains-any"];
17161
17195
  /**
17196
+ * Whether a relation is one the collection's engine can compile into a
17197
+ * `WHERE`.
17198
+ *
17199
+ * Which kinds those are is the *driver's* answer, not this function's, so it
17200
+ * comes from {@link DataSourceCapabilities.filterableRelationKinds}. The admin
17201
+ * is one UI over Postgres, MongoDB, Firestore and whatever a developer
17202
+ * registers, and "a many-to-many compiles to an `EXISTS` over the junction" is
17203
+ * a fact about the Postgres driver — true today, and not the sort of thing to
17204
+ * assert on an engine's behalf.
17205
+ *
17206
+ * Offering an uncompilable filter is not a cosmetic bug. The Postgres driver
17207
+ * used to drop a filter key it could not resolve, which *widened* the result
17208
+ * set — filtering a many-to-many column returned every row instead of none.
17209
+ * That now fails closed with a 400, which is correct for a real schema drift
17210
+ * and wrong as the answer to a control the admin itself put on screen.
17211
+ *
17212
+ * A relation whose kind cannot be determined at all — no inline `relation`
17213
+ * block and no stamped `resolvedRelation` — stays filterable. The server
17214
+ * resolves relations before the config reaches the admin, so this is the
17215
+ * hand-built-property case, and silently dropping a working filter there would
17216
+ * be its own regression.
17217
+ */
17218
+ function isFilterableRelation(property, engine) {
17219
+ if (property.type !== "relation") return true;
17220
+ const relationProperty = property;
17221
+ const kind = relationProperty.relation?.kind ?? relationProperty.resolvedRelation?.kind;
17222
+ if (!kind) return true;
17223
+ return (getDataSourceCapabilities(engine).filterableRelationKinds ?? DEFAULT_FILTERABLE_RELATION_KINDS).includes(kind);
17224
+ }
17225
+ /**
17162
17226
  * Resolve which filter operators the UI should offer for a property.
17163
17227
  *
17164
17228
  * The result is the **intersection** of three sets:
@@ -17167,12 +17231,14 @@ var ARRAY_OPS = ["array-contains", "array-contains-any"];
17167
17231
  * 2. what makes sense for the property type (e.g. no `>` on booleans);
17168
17232
  * 3. the developer's optional narrowing — `property.admin.filterOperators`.
17169
17233
  *
17170
- * Returns an empty array when the property is not filterable (either by
17171
- * type, or because the developer disabled it with `filterOperators: []`).
17234
+ * Returns an empty array when the property is not filterable by type, by
17235
+ * developer narrowing (`filterOperators: []`), or because it is a relation the
17236
+ * query layer has no column for (see {@link isFilterableRelation}).
17172
17237
  *
17173
17238
  * @group Models
17174
17239
  */
17175
17240
  function resolveFilterOperators({ property, isArray, engine }) {
17241
+ if (!isFilterableRelation(property, engine)) return [];
17176
17242
  const typeDefaults = isArray ? ARRAY_OPS : DEFAULT_OPS_BY_TYPE[property.type] ?? [];
17177
17243
  if (typeDefaults.length === 0) return [];
17178
17244
  const engineOps = new Set(getDataSourceCapabilities(engine).filterOperators ?? ALL_WHERE_FILTER_OPS);
@@ -17446,11 +17512,20 @@ function applyPropertyConditions(property, context) {
17446
17512
  if ("enum" in result && result.enum && (conditions.enumConditions || conditions.allowedEnumValues || conditions.excludedEnumValues)) result.enum = applyEnumConditions(result.enum, conditions, context);
17447
17513
  if (result.type === "reference") {
17448
17514
  if (conditions.referencePath) result.path = evaluateCondition(conditions.referencePath, context);
17449
- if (conditions.referenceFilter) result.fixedFilter = evaluateCondition(conditions.referenceFilter, context);
17515
+ if (conditions.referenceFilter) {
17516
+ result.admin = result.admin || {};
17517
+ result.admin.fixedFilter = evaluateCondition(conditions.referenceFilter, context);
17518
+ }
17450
17519
  }
17451
17520
  if (result.type === "array") {
17452
- if (conditions.canAddElements !== void 0) result.canAddElements = evaluateCondition(conditions.canAddElements, context);
17453
- if (conditions.sortable !== void 0) result.sortable = evaluateCondition(conditions.sortable, context);
17521
+ if (conditions.canAddElements !== void 0) {
17522
+ result.admin = result.admin || {};
17523
+ result.admin.canAddElements = evaluateCondition(conditions.canAddElements, context);
17524
+ }
17525
+ if (conditions.sortable !== void 0) {
17526
+ result.admin = result.admin || {};
17527
+ result.admin.sortable = evaluateCondition(conditions.sortable, context);
17528
+ }
17454
17529
  }
17455
17530
  return result;
17456
17531
  }
@@ -17580,7 +17655,7 @@ function getForeignKeyColumns(collection) {
17580
17655
  default: break;
17581
17656
  }
17582
17657
  };
17583
- for (const relation of collection.relations ?? []) addRelationKeys(relation);
17658
+ for (const relation of (isRelationalCollectionConfig(collection) ? collection.relations : void 0) ?? []) addRelationKeys(relation);
17584
17659
  for (const [key, propertyRaw] of Object.entries(collection.properties ?? {})) {
17585
17660
  const property = propertyRaw;
17586
17661
  if (!property || isPropertyBuilder(property) || property.type !== "relation") continue;
@@ -17704,6 +17779,6 @@ function getTitlePropertyKeyForValues(collection, values, entityId) {
17704
17779
  return candidates[0];
17705
17780
  }
17706
17781
  //#endregion
17707
- export { ADDITIONAL_TAB_WIDTH, AIIcon, AIModifiedIndicator, AdminModeControllerContext, AdminModeControllerProvider, AnalyticsContext, ApiConfigProvider, AuthApiError, AuthControllerContext, CONTAINER_FULL_WIDTH, CollectionComponentOverrideProvider, CollectionResolverRegistrationContext, CollectionScopeContext, CollectionScopeProvider, ComponentOverrideContext, ConfirmationDialog, CrmDashboardDemo, CustomizationControllerContext, DEFAULT_PAGE_SIZE, DataDriverContext, DataSourcesContext, DialogsControllerContext, DialogsProvider, EffectiveRoleControllerContext, EffectiveRoleControllerProvider, ErrorTooltip, ErrorView, FORM_CONTAINER_WIDTH, GlobalComponentOverrideProvider, IconForView, LanguageToggle, LoginView, ModeControllerContext, ModeControllerProvider, NavigationBlockerProvider, NotFoundPage, PluginProviderStack, REBASE_LOCALE_STORAGE_KEY, Rebase, RebaseAuth, RebaseClientInstanceContext, RebaseDataContext, RebaseI18nProvider, RebaseLogo, RebaseRegistryProvider, RebaseRouter, RebaseRoutes, STUDIO_NAVIGATION_GROUPS, SchemaDriftBanner, SchemaDriftProvider, SnackbarProvider, StorageSourceContext, StorageSourcesContext, StudioBridgeContext, StudioBridgeProvider, StudioBridgeRegistryContext, StudioBridgeRegistryProvider, UIReferenceView, UIStyleGuide, UnsavedChangesDialog, UserConfigurationPersistenceContext, UserDisplay, UserSelectPopover, UserSettingsView, addInitialSlash, applyPropertyConditions, buildCollapsedDefaults, buildEnumLabel, clearAuthConfigCache, clearFetchCache, createAuthConfigCache, createFormexStub, deleteEntityWithCallbacks, en, es, fetchAuthConfig, flattenKeys, getAdminEntityChildViews, getAdminSubcollections, getCollectionBySlugWithin, getCollectionPathsCombinations, getColorScheme, getColumnKeysForProperty, getEntityFromCache, getEntityFromMemoryCache, getEntityImagePreviewPropertyKey, getEntityPreviewKeys, getEntityTitlePropertyKey, getFormFieldKeys, getIcon, getLastSegment, getLocalChangesBackup, getNavigationEntriesFromPath, getParentReferencesFromPath, getRelationIncludeParams, getRowHeight, getSubcollectionColumnId, getTitlePropertyCandidates, getTitlePropertyKey, getTitlePropertyKeyForValues, iconsSearch, isEnumValueDisabled, isHidden, isReadOnly, isSchemaDriftError, looksLikeIdentifierValue, populateFetchCache, removeEntityFromCache, removeEntityFromMemoryCache, removeInitialAndTrailingSlashes, removeInitialSlash, removeTrailingSlash, resolveCollectionPathIds, resolveComponentRef, resolveDefaultSelectedView, resolveFilterOperators, saveEntityToCache, saveEntityToMemoryCache, saveEntityWithCallbacks, useAdminModeController, useAnalyticsController, useApiConfig, useAuthController, useAuthSubscription, useBackendStorageSource, useBridgeRegistration, useBrowserTitleAndIcon, useBuildAdminModeController, useBuildEffectiveRoleController, useBuildLocalConfigurationPersistence, useBuildModeController, useClipboard, useCollapsedGroups, useCollection, useCollectionScope, useColumnIds, useComponentOverride, useCustomizationController, useData, useDataSources, useDataTableController, useDebouncedData, useDialogsController, useEffectiveRoleController, useFetch, useLargeLayout, useModeController, useNavigationBlocker, usePermissions, useRebaseAuthController, useRebaseClient, useRebaseContext, useRebaseRegistry, useRebaseRegistryDispatch, useRelationSelector, useResolvedComponent, useRestoreScroll, useSchemaDriftContext, useScrollRestoration, useSlot, useSnackbarController, useStorageSource, useStorageSources, useStorageUploadController, useStudioBreadcrumbs, useStudioCollectionRegistry, useStudioNavigationState, useStudioSidePanelController, useStudioUrlController, useTranslation, useUnsavedChangesDialog, useUserConfigurationPersistence };
17782
+ export { ADDITIONAL_TAB_WIDTH, AIIcon, AIModifiedIndicator, AdminModeControllerContext, AdminModeControllerProvider, AnalyticsContext, ApiConfigProvider, AuthApiError, AuthControllerContext, CONTAINER_FULL_WIDTH, CollectionComponentOverrideProvider, CollectionResolverRegistrationContext, CollectionScopeContext, CollectionScopeProvider, ComponentOverrideContext, ConfirmationDialog, CrmDashboardDemo, CustomizationControllerContext, DEFAULT_PAGE_SIZE, DataDriverContext, DataSourcesContext, DialogsControllerContext, DialogsProvider, EffectiveRoleControllerContext, EffectiveRoleControllerProvider, ErrorTooltip, ErrorView, FORM_CONTAINER_WIDTH, GlobalComponentOverrideProvider, IconForView, LanguageToggle, LoginView, ModeControllerContext, ModeControllerProvider, NavigationBlockerProvider, NotFoundPage, PluginProviderStack, REBASE_LOCALE_STORAGE_KEY, Rebase, RebaseAuth, RebaseClientInstanceContext, RebaseDataContext, RebaseI18nProvider, RebaseLogo, RebaseRegistryProvider, RebaseRouter, RebaseRoutes, STUDIO_NAVIGATION_GROUPS, SchemaDriftBanner, SchemaDriftProvider, SnackbarProvider, StorageSourceContext, StorageSourcesContext, StudioBridgeContext, StudioBridgeProvider, StudioBridgeRegistryContext, StudioBridgeRegistryProvider, UIReferenceView, UIStyleGuide, UnsavedChangesDialog, UserConfigurationPersistenceContext, UserDisplay, UserSelectPopover, UserSettingsView, addInitialSlash, applyPropertyConditions, buildCollapsedDefaults, buildEnumLabel, clearAuthConfigCache, clearFetchCache, createAuthConfigCache, createFormexStub, deleteEntityWithCallbacks, en, es, fetchAuthConfig, flattenKeys, getAdminEntityChildViews, getAdminSubcollections, getCollectionBySlugWithin, getCollectionPathsCombinations, getColorScheme, getColumnKeysForProperty, getEntityFromCache, getEntityFromMemoryCache, getEntityImagePreviewPropertyKey, getEntityPreviewKeys, getEntityTitlePropertyKey, getFormFieldKeys, getIcon, getLastSegment, getLocalChangesBackup, getNavigationEntriesFromPath, getParentReferencesFromPath, getRelationIncludeParams, getRowHeight, getSubcollectionColumnId, getTitlePropertyCandidates, getTitlePropertyKey, getTitlePropertyKeyForValues, iconsSearch, isEnumValueDisabled, isFilterableRelation, isHidden, isReadOnly, isSchemaDriftError, looksLikeIdentifierValue, populateFetchCache, removeEntityFromCache, removeEntityFromMemoryCache, removeInitialAndTrailingSlashes, removeInitialSlash, removeTrailingSlash, resolveCollectionPathIds, resolveComponentRef, resolveDefaultSelectedView, resolveFilterOperators, saveEntityToCache, saveEntityToMemoryCache, saveEntityWithCallbacks, useAdminModeController, useAnalyticsController, useApiConfig, useAuthController, useAuthSubscription, useBackendStorageSource, useBridgeRegistration, useBrowserTitleAndIcon, useBuildAdminModeController, useBuildEffectiveRoleController, useBuildLocalConfigurationPersistence, useBuildModeController, useClipboard, useCollapsedGroups, useCollection, useCollectionScope, useColumnIds, useComponentOverride, useCustomizationController, useData, useDataSources, useDataTableController, useDebouncedData, useDialogsController, useEffectiveRoleController, useFetch, useLargeLayout, useModeController, useNavigationBlocker, usePermissions, useRebaseAuthController, useRebaseClient, useRebaseContext, useRebaseRegistry, useRebaseRegistryDispatch, useRelationSelector, useResolvedComponent, useRestoreScroll, useSchemaDriftContext, useScrollRestoration, useSlot, useSnackbarController, useStorageSource, useStorageSources, useStorageUploadController, useStudioBreadcrumbs, useStudioCollectionRegistry, useStudioNavigationState, useStudioSidePanelController, useStudioUrlController, useTranslation, useUnsavedChangesDialog, useUserConfigurationPersistence };
17708
17783
 
17709
17784
  //# sourceMappingURL=index.es.js.map