alinea 2.0.0-preview.3 → 2.0.0-preview.4

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 (154) hide show
  1. package/dist/.init/content/pages/welcome.json +1 -1
  2. package/dist/LICENSES.md +144 -90
  3. package/dist/adapter/next/DevRemote.js +10 -2
  4. package/dist/adapter/next/previews.js +1 -0
  5. package/dist/backend/Handler.js +14 -7
  6. package/dist/backend/api/BasicAuth.d.ts +1 -1
  7. package/dist/backend/api/BasicAuth.js +14 -14
  8. package/dist/backend/api/OAuth2.d.ts +3 -3
  9. package/dist/backend/api/OAuth2.js +7 -4
  10. package/dist/bundled.d.ts +96 -25
  11. package/dist/chunks/{chunk-Y7XOMJOC.js → chunk-CFNRVI3Y.js} +220 -247
  12. package/dist/chunks/chunk-D6UJHBJJ.js +183 -0
  13. package/dist/chunks/chunk-TIJTT5ZI.js +228 -0
  14. package/dist/chunks/{chunk-HFBZMKIN.js → chunk-XMOVGDFI.js} +1 -1
  15. package/dist/cli/Serve.js +1 -1
  16. package/dist/cli/bin.js +1 -1
  17. package/dist/cli/serve/LocalAuth.js +1 -1
  18. package/dist/cloud/AuthResult.d.ts +2 -0
  19. package/dist/cloud/CloudHandshake.d.ts +7 -0
  20. package/dist/cloud/CloudHandshake.js +64 -0
  21. package/dist/cloud/CloudRemote.d.ts +4 -1
  22. package/dist/cloud/CloudRemote.js +21 -3
  23. package/dist/components/Calendar.js +6 -6
  24. package/dist/components/Checkbox.js +2 -2
  25. package/dist/components/ComboBox.js +12 -12
  26. package/dist/components/DatePicker.js +4 -4
  27. package/dist/components/DateRangePicker.js +4 -4
  28. package/dist/components/Disclosure.js +6 -6
  29. package/dist/components/Label.js +6 -6
  30. package/dist/components/List.js +37 -37
  31. package/dist/components/Menu.js +4 -4
  32. package/dist/components/Modal.js +2 -2
  33. package/dist/components/MultipleSelect.js +23 -23
  34. package/dist/components/NumberField.js +5 -5
  35. package/dist/components/ProgressCircle.js +4 -4
  36. package/dist/components/SearchField.js +7 -7
  37. package/dist/components/Select.js +6 -6
  38. package/dist/components/Surface.js +1 -1
  39. package/dist/components/Table.js +8 -8
  40. package/dist/components/TextField.js +4 -4
  41. package/dist/components/TimeField.js +4 -4
  42. package/dist/components/Toggle.d.ts +1 -1
  43. package/dist/components/Toggle.js +2 -2
  44. package/dist/components/Toolbar.js +3 -3
  45. package/dist/components/Tooltip.js +2 -2
  46. package/dist/components/Tree.js +6 -6
  47. package/dist/core/Connection.d.ts +7 -4
  48. package/dist/core/Entry.d.ts +6 -0
  49. package/dist/core/Entry.js +10 -0
  50. package/dist/core/Id.d.ts +1 -0
  51. package/dist/core/Id.js +8 -0
  52. package/dist/core/db/Operation.js +4 -3
  53. package/dist/dashboard/App.js +30 -16
  54. package/dist/dashboard/StoryProvider.js +2 -2
  55. package/dist/dashboard/app/AccessDenied.js +3 -3
  56. package/dist/dashboard/app/ActivityStatus.js +23 -23
  57. package/dist/dashboard/app/AppShell.js +2 -2
  58. package/dist/dashboard/app/AppearanceToggle.d.ts +1 -0
  59. package/dist/dashboard/app/AppearanceToggle.js +43 -0
  60. package/dist/dashboard/app/AuthView.d.ts +1 -1
  61. package/dist/dashboard/app/AuthView.js +17 -19
  62. package/dist/dashboard/app/Badge.js +2 -2
  63. package/dist/dashboard/app/CompactField.js +17 -17
  64. package/dist/dashboard/app/DashboardErrorBoundary.js +23 -11
  65. package/dist/dashboard/app/DashboardLayout.js +15 -8
  66. package/dist/dashboard/app/DashboardMeta.d.ts +2 -1
  67. package/dist/dashboard/app/DashboardMeta.js +20 -5
  68. package/dist/dashboard/app/EntryFields.js +6 -6
  69. package/dist/dashboard/app/EntryHeader.js +27 -27
  70. package/dist/dashboard/app/EntryReferences.js +15 -15
  71. package/dist/dashboard/app/EntrySidebar.js +24 -24
  72. package/dist/dashboard/app/EntrySidebarPreview.js +20 -19
  73. package/dist/dashboard/app/EntryTranslationBanner.js +5 -5
  74. package/dist/dashboard/app/Explorer.js +64 -64
  75. package/dist/dashboard/app/ExplorerCards.js +46 -46
  76. package/dist/dashboard/app/ExplorerFileCard.js +19 -19
  77. package/dist/dashboard/app/ExplorerList.js +20 -20
  78. package/dist/dashboard/app/ExplorerModal.js +5 -5
  79. package/dist/dashboard/app/ExplorerPickerContent.js +2 -2
  80. package/dist/dashboard/app/ExplorerTable.js +63 -63
  81. package/dist/dashboard/app/ImagePicker.js +7 -7
  82. package/dist/dashboard/app/LinkPicker.js +17 -22
  83. package/dist/dashboard/app/LocaleMenu.js +10 -12
  84. package/dist/dashboard/app/SidebarLayout.js +4 -4
  85. package/dist/dashboard/app/SidebarTree.js +58 -58
  86. package/dist/dashboard/app/WorkspaceMenu.d.ts +10 -3
  87. package/dist/dashboard/app/WorkspaceMenu.js +88 -67
  88. package/dist/dashboard/app/WorkspaceMenu.stories.d.ts +2 -0
  89. package/dist/dashboard/app/WorkspaceRoots.d.ts +3 -1
  90. package/dist/dashboard/app/WorkspaceRoots.js +86 -111
  91. package/dist/dashboard/app/editor/FileEditor.js +29 -29
  92. package/dist/dashboard/app/editor/FilePreview.js +6 -6
  93. package/dist/dashboard/app/editor/MediaAltField.view.js +4 -4
  94. package/dist/dashboard/app/modals/CreateEntry.js +15 -15
  95. package/dist/dashboard/app/pages/EntryPage.js +29 -31
  96. package/dist/dashboard/app/pages/RootPage.js +4 -4
  97. package/dist/dashboard/app/pages/SplashPage.d.ts +3 -0
  98. package/dist/dashboard/app/pages/SplashPage.js +414 -0
  99. package/dist/dashboard/app/pages/UsersPage.js +42 -42
  100. package/dist/dashboard/app/ui/DashboardModal.js +16 -16
  101. package/dist/dashboard/app/ui/Rail.js +3 -3
  102. package/dist/dashboard/app/ui/Sidebar.js +2 -2
  103. package/dist/dashboard/atoms/ReactiveNode.js +1 -1
  104. package/dist/dashboard/atoms/activity.js +2 -3
  105. package/dist/dashboard/atoms/auth.d.ts +2 -0
  106. package/dist/dashboard/atoms/auth.js +6 -2
  107. package/dist/dashboard/atoms/config.js +1 -1
  108. package/dist/dashboard/atoms/core.js +2 -2
  109. package/dist/dashboard/atoms/create.js +1 -1
  110. package/dist/dashboard/atoms/dashboard.js +2 -2
  111. package/dist/dashboard/atoms/editor.js +1 -1
  112. package/dist/dashboard/atoms/entry.js +2 -2
  113. package/dist/dashboard/atoms/explorer.d.ts +1 -3
  114. package/dist/dashboard/atoms/explorer.js +7 -9
  115. package/dist/dashboard/atoms/graph.d.ts +1 -0
  116. package/dist/dashboard/atoms/graph.js +7 -2
  117. package/dist/dashboard/atoms/link.js +2 -2
  118. package/dist/dashboard/atoms/nav.d.ts +4 -3
  119. package/dist/dashboard/atoms/nav.js +10 -5
  120. package/dist/dashboard/atoms/preview.js +1 -1
  121. package/dist/dashboard/atoms/root.js +2 -2
  122. package/dist/dashboard/atoms/upload.js +1 -1
  123. package/dist/dashboard/atoms/user.d.ts +1 -1
  124. package/dist/dashboard/atoms/user.js +8 -6
  125. package/dist/dashboard/atoms/utils.js +2 -2
  126. package/dist/dashboard/boot/Boot.js +2 -4
  127. package/dist/dashboard/boot/DashboardWorker.js +34 -29
  128. package/dist/dashboard/editor/UseField.js +6 -6
  129. package/dist/dashboard/fixture/cms.d.ts +12 -0
  130. package/dist/dashboard/fixture/cms.js +53 -2
  131. package/dist/dashboard/hook/UseGraph.js +4 -4
  132. package/dist/dashboard/hook/UseRoot.js +4 -4
  133. package/dist/dashboard/hooks.js +16 -16
  134. package/dist/field/code/CodeField.view.js +12 -12
  135. package/dist/field/link/LinkField.view.js +56 -56
  136. package/dist/field/list/ListField.view.js +24 -24
  137. package/dist/field/localiser/LocalisedField.view.js +76 -5
  138. package/dist/field/metadata/MetadataField.view.js +19 -19
  139. package/dist/field/richtext/PickTextLink.js +6 -6
  140. package/dist/field/richtext/RichTextBlock.js +4 -4
  141. package/dist/field/richtext/RichTextBlocks.js +1 -1
  142. package/dist/field/richtext/RichTextExtensions.js +19 -19
  143. package/dist/field/richtext/RichTextField.view.js +6 -6
  144. package/dist/field/richtext/RichTextInsertMenu.js +3 -3
  145. package/dist/field/richtext/RichTextState.js +1 -1
  146. package/dist/field/text/TextField.view.js +2 -2
  147. package/dist/index.css +415 -28
  148. package/dist/preview/RegisterPreview.d.ts +1 -1
  149. package/dist/preview/RegisterPreview.js +4 -6
  150. package/dist/preview/react.d.ts +5 -1
  151. package/dist/preview/react.js +12 -9
  152. package/package.json +1 -1
  153. package/dist/chunks/chunk-STAJCW4Z.js +0 -322
  154. package/dist/chunks/chunk-U4VOHNR2.js +0 -210
package/dist/bundled.d.ts CHANGED
@@ -187,7 +187,7 @@ declare module 'alinea/backend/api/BasicAuth' {
187
187
  export class BasicAuth implements AuthApi {
188
188
  #private;
189
189
  constructor(context: RequestContext, verify: Verifier);
190
- authenticate(request: Request, options?: AuthOptions): Promise<Response>;
190
+ authenticate(request: Request, options: AuthOptions): Promise<Response>;
191
191
  verify(request: Request): Promise<AuthedContext>;
192
192
  }
193
193
 
@@ -331,15 +331,15 @@ declare module 'alinea/backend/api/OAuth2' {
331
331
  */
332
332
  revocationEndpoint?: string;
333
333
  /**
334
- * Extra claims to validate, such as `iss` or `aud`,
334
+ * Validate provider-specific claims, including `iss` and `aud`.
335
335
  * If the claims are invalid, an error should be thrown.
336
336
  */
337
- validateClaims?(claims: JWTPayload): void;
337
+ validateClaims(claims: JWTPayload): void | Promise<void>;
338
338
  }
339
339
  export class OAuth2 implements AuthApi {
340
340
  #private;
341
341
  constructor(context: RequestContext, config: Config, options: OAuth2Options);
342
- authenticate(request: Request, options?: AuthOptions): Promise<Response>;
342
+ authenticate(request: Request, options: AuthOptions): Promise<Response>;
343
343
  verify(request: Request): Promise<AuthedContext>;
344
344
  }
345
345
 
@@ -1225,6 +1225,7 @@ declare module 'alinea/cli/util/Watcher' {
1225
1225
 
1226
1226
  declare module 'alinea/cloud/AuthResult' {
1227
1227
 
1228
+ import type { BackendCapabilities } from 'alinea/core/Connection';
1228
1229
  import type { User } from 'alinea/core/User';
1229
1230
  export enum AuthResultType {
1230
1231
  Authenticated = 0,
@@ -1235,6 +1236,7 @@ declare module 'alinea/cloud/AuthResult' {
1235
1236
  export type AuthResult = {
1236
1237
  type: AuthResultType.Authenticated;
1237
1238
  user: User;
1239
+ capabilities?: BackendCapabilities;
1238
1240
  } | {
1239
1241
  type: AuthResultType.UnAuthenticated;
1240
1242
  redirect: string;
@@ -1270,6 +1272,18 @@ declare module 'alinea/cloud/CloudConfig' {
1270
1272
 
1271
1273
  }
1272
1274
 
1275
+ declare module 'alinea/cloud/CloudHandshake' {
1276
+
1277
+ interface VerifyCloudHandshakeOptions {
1278
+ clientId: string;
1279
+ handshakeId: string;
1280
+ origin: string;
1281
+ }
1282
+ export function verifyCloudHandshake(token: string, options: VerifyCloudHandshakeOptions): Promise<void>;
1283
+ export {};
1284
+
1285
+ }
1286
+
1273
1287
  declare module 'alinea/cloud/CloudRemote' {
1274
1288
 
1275
1289
  import { OAuth2 } from 'alinea/backend/api/OAuth2';
@@ -1284,12 +1298,15 @@ declare module 'alinea/cloud/CloudRemote' {
1284
1298
  export class CloudRemote extends OAuth2 implements RemoteConnection {
1285
1299
  #private;
1286
1300
  constructor(context: RequestContext, config: Config);
1301
+ capabilities(): Promise<{
1302
+ users: boolean;
1303
+ }>;
1287
1304
  getTreeIfDifferent(sha: string): Promise<ReadonlyTree | undefined>;
1288
1305
  getBlobs(shas: ReadonlyArray<string>, options?: GetBlobsOptions): AsyncGenerator<[sha: string, blob: Uint8Array]>;
1289
1306
  write(request: CommitRequest): Promise<{
1290
1307
  sha: string;
1291
1308
  }>;
1292
- authenticate(request: Request, options?: AuthOptions): Promise<globalThis.Response>;
1309
+ authenticate(request: Request, options: AuthOptions): Promise<globalThis.Response>;
1293
1310
  prepareUpload(file: string, metadata?: UploadMetadata): Promise<{
1294
1311
  entryId: string;
1295
1312
  location: string;
@@ -1945,7 +1962,7 @@ declare module 'alinea/components/Toggle' {
1945
1962
 
1946
1963
  import { type ToggleButtonGroupProps as ToggleButtonGroupPrimitiveProps, type ToggleButtonProps as ToggleButtonPrimitiveProps } from 'react-aria-components';
1947
1964
  export interface ToggleButtonGroupProps extends ToggleButtonGroupPrimitiveProps {
1948
- variant?: 'compact' | 'enclosed';
1965
+ variant?: 'compact' | 'enclosed' | 'icon-small';
1949
1966
  }
1950
1967
  export function ToggleButtonGroup({ variant, className, ...props }: ToggleButtonGroupProps): import("react").JSX.Element;
1951
1968
  export interface ToggleButtonProps extends ToggleButtonPrimitiveProps {
@@ -2206,11 +2223,15 @@ declare module 'alinea/core/Connection' {
2206
2223
  import type { ReadonlyTree } from 'alinea/core/source/Tree';
2207
2224
  import type { User, UserInput } from 'alinea/core/User';
2208
2225
  export interface AuthApi {
2209
- authenticate(request: Request, options?: AuthOptions): Promise<Response>;
2226
+ authenticate(request: Request, options: AuthOptions): Promise<Response>;
2210
2227
  verify(request: Request): Promise<AuthedContext>;
2211
2228
  }
2212
2229
  export interface AuthOptions {
2213
- enrichUser?(user: User): Promise<User>;
2230
+ authenticated(user: User): Promise<AuthenticatedUser>;
2231
+ }
2232
+ export interface AuthenticatedUser {
2233
+ user: User;
2234
+ capabilities: BackendCapabilities;
2214
2235
  }
2215
2236
  export interface UserApi {
2216
2237
  enrichUser(user: User): Promise<User>;
@@ -2223,7 +2244,7 @@ declare module 'alinea/core/Connection' {
2223
2244
  users: boolean;
2224
2245
  }
2225
2246
  export interface CapabilitiesApi {
2226
- capabilities?(): Promise<BackendCapabilities>;
2247
+ capabilities(): Promise<BackendCapabilities>;
2227
2248
  }
2228
2249
  export interface RemoteConnection extends Connection, AuthApi, CapabilitiesApi {
2229
2250
  }
@@ -2231,7 +2252,6 @@ declare module 'alinea/core/Connection' {
2231
2252
  logout?(): Promise<void>;
2232
2253
  }
2233
2254
  export interface LocalConnection extends Connection, CapabilitiesApi {
2234
- capabilities(): Promise<BackendCapabilities>;
2235
2255
  mutate(mutations: Array<Mutation>): Promise<{
2236
2256
  sha: string;
2237
2257
  }>;
@@ -3135,6 +3155,10 @@ declare module 'alinea/core/Entry' {
3135
3155
  export interface EntryAlias {
3136
3156
  url: string;
3137
3157
  }
3158
+ export interface EntryAuditUser {
3159
+ email: string;
3160
+ name: string;
3161
+ }
3138
3162
  export const Entry: {
3139
3163
  id: Expr<string>;
3140
3164
  status: Expr<EntryStatus>;
@@ -3159,7 +3183,9 @@ declare module 'alinea/core/Entry' {
3159
3183
  url: Expr<string>;
3160
3184
  aliases: Expr<EntryAlias[]>;
3161
3185
  createdAt: Expr<number | null>;
3186
+ createdBy: Expr<EntryAuditUser | null>;
3162
3187
  updatedAt: Expr<number | null>;
3188
+ updatedBy: Expr<EntryAuditUser | null>;
3163
3189
  data: Expr<Record<string, any>>;
3164
3190
  searchableText: Expr<string>;
3165
3191
  };
@@ -3785,6 +3811,7 @@ declare module 'alinea/core/HttpError' {
3785
3811
  declare module 'alinea/core/Id' {
3786
3812
 
3787
3813
  export function validateId(id: string): boolean;
3814
+ export function timestampFromId(id: string): number | undefined;
3788
3815
  export function createId(): string;
3789
3816
 
3790
3817
  }
@@ -5954,6 +5981,12 @@ declare module 'alinea/dashboard/app/AlineaLogo' {
5954
5981
 
5955
5982
  }
5956
5983
 
5984
+ declare module 'alinea/dashboard/app/AppearanceToggle' {
5985
+
5986
+ export function AppearanceToggle(): import("react").JSX.Element;
5987
+
5988
+ }
5989
+
5957
5990
  declare module 'alinea/dashboard/app/AppShell' {
5958
5991
 
5959
5992
  import { HTMLProps } from 'react';
@@ -5972,7 +6005,7 @@ declare module 'alinea/dashboard/app/AuthView' {
5972
6005
  action?: DashboardAuthAction
5973
6006
  ], unknown>;
5974
6007
  }
5975
- export function AuthView({ auth: authState }: AuthViewProps): import("react").JSX.Element | null;
6008
+ export function AuthView({ auth: authState }: AuthViewProps): import("react").JSX.Element;
5976
6009
 
5977
6010
  }
5978
6011
 
@@ -6044,9 +6077,10 @@ declare module 'alinea/dashboard/app/DashboardMeta' {
6044
6077
  export interface DashboardMetaProps {
6045
6078
  color: string;
6046
6079
  icon?: ComponentType;
6080
+ plain?: boolean;
6047
6081
  title: string;
6048
6082
  }
6049
- export function DashboardMeta({ color, icon, title }: DashboardMetaProps): import("react").JSX.Element;
6083
+ export function DashboardMeta({ color, icon, plain, title }: DashboardMetaProps): import("react").JSX.Element;
6050
6084
 
6051
6085
  }
6052
6086
 
@@ -6538,6 +6572,14 @@ declare module 'alinea/dashboard/app/pages/RootPage' {
6538
6572
 
6539
6573
  }
6540
6574
 
6575
+ declare module 'alinea/dashboard/app/pages/SplashPage' {
6576
+
6577
+ import { type Getter } from 'jotai';
6578
+ import type { ReactNode } from 'react';
6579
+ export function splashPage(get: Getter): Promise<ReactNode>;
6580
+
6581
+ }
6582
+
6541
6583
  declare module 'alinea/dashboard/app/pages/UsersPage' {
6542
6584
 
6543
6585
  import { Page } from 'alinea/dashboard/atoms/nav';
@@ -6715,7 +6757,7 @@ declare module 'alinea/dashboard/app/WorkspaceMenu' {
6715
6757
  import type { WorkspaceInternal } from 'alinea/core/Workspace';
6716
6758
  import type { Page } from 'alinea/dashboard/atoms/nav';
6717
6759
  import type { RootAtoms } from 'alinea/dashboard/atoms/root';
6718
- import { type ComponentType } from 'react';
6760
+ import { type ComponentType, type ReactNode } from 'react';
6719
6761
  interface WorkspaceMenuProps {
6720
6762
  canManageMembers: boolean;
6721
6763
  page: Page;
@@ -6727,14 +6769,21 @@ declare module 'alinea/dashboard/app/WorkspaceMenu' {
6727
6769
  interface WorkspaceAvatarProps {
6728
6770
  color: string;
6729
6771
  icon?: ComponentType;
6730
- size?: 'default' | 'small';
6772
+ size?: 'default' | 'large' | 'small';
6731
6773
  }
6732
6774
  function WorkspaceAvatar({ color, icon, size }: WorkspaceAvatarProps): import("react").JSX.Element;
6733
6775
  export { WorkspaceAvatar };
6734
6776
  interface WorkspaceAvatarMenuProps {
6735
6777
  page: Page;
6778
+ root: RootAtoms;
6736
6779
  }
6737
- export function WorkspaceAvatarMenu({ page }: WorkspaceAvatarMenuProps): import("react").JSX.Element;
6780
+ export function WorkspaceAvatarMenu({ page, root }: WorkspaceAvatarMenuProps): import("react").JSX.Element;
6781
+ interface GlobalSearchProps {
6782
+ children: ReactNode;
6783
+ initialSearchScope?: 'everything' | 'workspace';
6784
+ root: RootAtoms;
6785
+ }
6786
+ export function GlobalSearch({ children, initialSearchScope, root }: GlobalSearchProps): import("react").JSX.Element;
6738
6787
  export function WorkspaceMenu({ canManageMembers, page, root, workspace }: WorkspaceMenuProps): import("react").JSX.Element;
6739
6788
 
6740
6789
  }
@@ -6748,6 +6797,8 @@ declare module 'alinea/dashboard/app/WorkspaceMenu.spec' {
6748
6797
  declare module 'alinea/dashboard/app/WorkspaceMenu.stories' {
6749
6798
 
6750
6799
  export function GlobalSearchStory(): import("react").JSX.Element;
6800
+ export function SingleWorkspaceAvatarStory(): import("react").JSX.Element;
6801
+ export function LocalizedGlobalSearchStory(): import("react").JSX.Element;
6751
6802
  const _default: {
6752
6803
  title: string;
6753
6804
  };
@@ -6758,11 +6809,13 @@ declare module 'alinea/dashboard/app/WorkspaceMenu.stories' {
6758
6809
  declare module 'alinea/dashboard/app/WorkspaceRoots' {
6759
6810
 
6760
6811
  import type { Page } from 'alinea/dashboard/atoms/nav';
6812
+ import { type RootAtoms } from 'alinea/dashboard/atoms/root';
6761
6813
  export interface WorkspaceRootsProps {
6762
6814
  canManageMembers: boolean;
6763
6815
  page: Page;
6816
+ root: RootAtoms;
6764
6817
  }
6765
- export function WorkspaceRoots({ canManageMembers, page }: WorkspaceRootsProps): import("react").JSX.Element;
6818
+ export function WorkspaceRoots({ canManageMembers, page, root: currentRoot }: WorkspaceRootsProps): import("react").JSX.Element;
6766
6819
 
6767
6820
  }
6768
6821
 
@@ -6821,6 +6874,7 @@ declare module 'alinea/dashboard/atoms/activity' {
6821
6874
 
6822
6875
  declare module 'alinea/dashboard/atoms/auth' {
6823
6876
 
6877
+ import type { BackendCapabilities } from 'alinea/core/Connection';
6824
6878
  import { User } from 'alinea/core/User';
6825
6879
  export const authRequiredAtom: import("jotai").Atom<boolean>;
6826
6880
  export interface DashboardAuthLoading {
@@ -6843,6 +6897,7 @@ declare module 'alinea/dashboard/atoms/auth' {
6843
6897
  export interface DashboardAuthAuthenticated {
6844
6898
  status: 'authenticated';
6845
6899
  user: User;
6900
+ capabilities?: BackendCapabilities;
6846
6901
  }
6847
6902
  export type DashboardAuthState = DashboardAuthLoading | DashboardAuthMissingHandler | DashboardAuthMissingApiKey | DashboardAuthRedirecting | DashboardAuthError | DashboardAuthAuthenticated;
6848
6903
  interface DashboardAuthCheck {
@@ -7362,7 +7417,6 @@ declare module 'alinea/dashboard/atoms/explorer' {
7362
7417
  condition?: Filter<EntryFields>;
7363
7418
  defaultOrderBy?: Atom<OrderBy | Array<OrderBy> | undefined>;
7364
7419
  enableNavigation?: boolean;
7365
- hideResultsUntilSearch?: boolean;
7366
7420
  initialView?: ExplorerView;
7367
7421
  initialResultMode?: ExplorerResultMode;
7368
7422
  initialSearchScope?: 'workspace' | 'everything';
@@ -7402,6 +7456,7 @@ declare module 'alinea/dashboard/atoms/explorer' {
7402
7456
  location: ExplorerLocation;
7403
7457
  root: ExplorerRootData;
7404
7458
  resultMode: ExplorerResultMode;
7459
+ search: string;
7405
7460
  searchScope: 'workspace' | 'everything';
7406
7461
  searchesEverything: boolean;
7407
7462
  view: ExplorerView;
@@ -7511,7 +7566,6 @@ declare module 'alinea/dashboard/atoms/explorer' {
7511
7566
  readonly hasRowAction: boolean;
7512
7567
  readonly mode: 'browse' | 'search';
7513
7568
  readonly hasSelection: boolean;
7514
- readonly hideResultsUntilSearch: boolean;
7515
7569
  readonly linkedKeys: ReadonlySet<Key>;
7516
7570
  readonly searchDepth: "all" | "current";
7517
7571
  readonly supportsInlineExpansion: boolean;
@@ -7543,7 +7597,6 @@ declare module 'alinea/dashboard/atoms/explorer' {
7543
7597
  constructor(location: WritableAtom<ExplorerLocation, [
7544
7598
  SetStateAction<ExplorerLocation>
7545
7599
  ], void>, options: ExplorerOptions, initialLocation: ExplorerLocation);
7546
- showResults: Atom<boolean>;
7547
7600
  isMedia: Atom<boolean>;
7548
7601
  view: WritableAtom<ExplorerView, [view: ExplorerView], void>;
7549
7602
  sort: WritableAtom<ExplorerSort, [sortBy: ExplorerSortBy], void>;
@@ -7592,6 +7645,7 @@ declare module 'alinea/dashboard/atoms/graph' {
7592
7645
  export const syncAtom: import("jotai").WritableAtom<null, [], Promise<string | undefined>> & {
7593
7646
  init: null;
7594
7647
  };
7648
+ export const graphReadyAtom: import("jotai").Atom<Promise<void>>;
7595
7649
 
7596
7650
  }
7597
7651
 
@@ -7639,7 +7693,7 @@ declare module 'alinea/dashboard/atoms/nav' {
7639
7693
  init: RouteBlock | null;
7640
7694
  };
7641
7695
  export interface DashboardRoute {
7642
- page?: 'entry' | 'users';
7696
+ page?: 'splash' | 'entry' | 'users';
7643
7697
  workspace?: string;
7644
7698
  root?: string;
7645
7699
  entry?: string;
@@ -7647,9 +7701,10 @@ declare module 'alinea/dashboard/atoms/nav' {
7647
7701
  view?: EntryDefaultView;
7648
7702
  }
7649
7703
  interface ResolvedDashboardRoute extends DashboardRoute {
7650
- page: 'entry' | 'users';
7704
+ page: 'splash' | 'entry' | 'users';
7651
7705
  }
7652
7706
  export const nav: {
7707
+ splash(): string;
7653
7708
  users(): string;
7654
7709
  entry(workspace?: string, root?: string, entryId?: string, locale?: string | null, view?: EntryDefaultView): string;
7655
7710
  };
@@ -7662,7 +7717,7 @@ declare module 'alinea/dashboard/atoms/nav' {
7662
7717
  onMount(navigate: (request: NavigationRequest) => void): (() => void) | undefined;
7663
7718
  };
7664
7719
  export interface Page {
7665
- type: 'users' | 'entry';
7720
+ type: 'splash' | 'users' | 'entry';
7666
7721
  workspace: string | undefined;
7667
7722
  root: string | undefined;
7668
7723
  requestedRoot?: string;
@@ -7853,7 +7908,7 @@ declare module 'alinea/dashboard/atoms/user' {
7853
7908
  export const preloadUserPolicyAtom: import("jotai").WritableAtom<null, [user: User, policy: Policy], void> & {
7854
7909
  init: null;
7855
7910
  };
7856
- export const authReady: import("jotai").Atom<Promise<void>>;
7911
+ export const userPolicyReadyAtom: import("jotai").Atom<Promise<void>>;
7857
7912
  export const canManageMembersAtom: import("jotai").Atom<Promise<boolean>>;
7858
7913
 
7859
7914
  }
@@ -8179,6 +8234,18 @@ declare module 'alinea/dashboard/fixture/cms' {
8179
8234
  pages: import("alinea").Root<import("alinea/core/Root").ChildrenDefinition>;
8180
8235
  media: import("alinea/core/media/MediaRoot").MediaRoot<import("alinea/core/Root").ChildrenDefinition>;
8181
8236
  }>;
8237
+ manyRoots: import("alinea").Workspace<{
8238
+ pages: import("alinea").Root<import("alinea/core/Root").ChildrenDefinition>;
8239
+ articles: import("alinea").Root<import("alinea/core/Root").ChildrenDefinition>;
8240
+ documentation: import("alinea").Root<import("alinea/core/Root").ChildrenDefinition>;
8241
+ campaigns: import("alinea").Root<import("alinea/core/Root").ChildrenDefinition>;
8242
+ translations: import("alinea").Root<import("alinea/core/Root").ChildrenDefinition>;
8243
+ archive: import("alinea").Root<import("alinea/core/Root").ChildrenDefinition>;
8244
+ settings: import("alinea").Root<import("alinea/core/Root").ChildrenDefinition>;
8245
+ brandAssets: import("alinea").Root<import("alinea/core/Root").ChildrenDefinition>;
8246
+ nestedContent: import("alinea").Root<import("alinea/core/Root").ChildrenDefinition>;
8247
+ media: import("alinea/core/media/MediaRoot").MediaRoot<import("alinea/core/Root").ChildrenDefinition>;
8248
+ }>;
8182
8249
  };
8183
8250
  }>;
8184
8251
 
@@ -10782,7 +10849,11 @@ declare module 'alinea/preview/PreviewPayload' {
10782
10849
  declare module 'alinea/preview/react' {
10783
10850
 
10784
10851
  import { type PreviewApi } from 'alinea/preview/RegisterPreview';
10785
- export function usePreview(api: Omit<PreviewApi, 'setIsPreviewing'>): {
10852
+ export interface UsePreviewOptions {
10853
+ hostOrigin: string;
10854
+ preview: PreviewApi['preview'];
10855
+ }
10856
+ export function usePreview(options: UsePreviewOptions): {
10786
10857
  isPreviewing: boolean;
10787
10858
  };
10788
10859
 
@@ -10795,7 +10866,7 @@ declare module 'alinea/preview/RegisterPreview' {
10795
10866
  preview(update: PreviewPayload): Promise<void>;
10796
10867
  setIsPreviewing(isPreviewing: boolean): void;
10797
10868
  }
10798
- export function registerPreview(api: PreviewApi): (() => void) | undefined;
10869
+ export function registerPreview(api: PreviewApi, hostOrigin: string): (() => void) | undefined;
10799
10870
 
10800
10871
  }
10801
10872