alinea 2.0.0-preview.2 → 2.0.0-preview.3

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 (101) hide show
  1. package/dist/.init/content/pages/welcome.json +1 -1
  2. package/dist/LICENSES.md +63 -63
  3. package/dist/adapter/next/previews.js +3 -1
  4. package/dist/adapter/next/previews.spec.d.ts +1 -0
  5. package/dist/bundled.d.ts +63 -17
  6. package/dist/chunks/{chunk-UVOEM4AH.js → chunk-HFBZMKIN.js} +1 -1
  7. package/dist/cli/Serve.js +1 -1
  8. package/dist/cli/bin.js +1 -1
  9. package/dist/cloud/CloudRemote.js +1 -1
  10. package/dist/components/Breadcrumbs.js +2 -2
  11. package/dist/components/Calendar.js +5 -5
  12. package/dist/components/Checkbox.js +3 -3
  13. package/dist/components/ComboBox.js +12 -12
  14. package/dist/components/DateField.js +3 -3
  15. package/dist/components/DatePicker.js +5 -5
  16. package/dist/components/DateRangePicker.js +7 -7
  17. package/dist/components/Disclosure.js +8 -8
  18. package/dist/components/Label.js +6 -6
  19. package/dist/components/List.js +29 -29
  20. package/dist/components/Menu.js +4 -4
  21. package/dist/components/Modal.js +4 -4
  22. package/dist/components/MultipleSelect.js +24 -24
  23. package/dist/components/NumberField.js +5 -5
  24. package/dist/components/ProgressCircle.js +3 -3
  25. package/dist/components/RadioGroup.js +2 -2
  26. package/dist/components/SearchField.js +7 -7
  27. package/dist/components/Select.js +8 -8
  28. package/dist/components/Surface.js +3 -3
  29. package/dist/components/Table.js +8 -8
  30. package/dist/components/Tabs.js +4 -4
  31. package/dist/components/TagGroup.js +2 -2
  32. package/dist/components/TextField.js +4 -4
  33. package/dist/components/TimeField.js +3 -3
  34. package/dist/components/Toolbar.js +3 -3
  35. package/dist/components/Tooltip.js +3 -3
  36. package/dist/components/Tree.d.ts +4 -2
  37. package/dist/components/Tree.js +18 -4
  38. package/dist/core/Graph.d.ts +1 -1
  39. package/dist/core/Infer.d.ts +8 -1
  40. package/dist/core/db/EntryAliases.js +1 -4
  41. package/dist/core/db/EntryResolver.js +6 -6
  42. package/dist/core/db/EntryTransaction.js +1 -0
  43. package/dist/core/db/Operation.d.ts +2 -2
  44. package/dist/core/db/Operation.js +11 -1
  45. package/dist/dashboard/App.js +8 -2
  46. package/dist/dashboard/app/AccessDenied.d.ts +16 -1
  47. package/dist/dashboard/app/AccessDenied.js +20 -11
  48. package/dist/dashboard/app/ActivityStatus.js +15 -15
  49. package/dist/dashboard/app/AppShell.js +2 -2
  50. package/dist/dashboard/app/AuthView.js +8 -8
  51. package/dist/dashboard/app/CompactField.js +13 -13
  52. package/dist/dashboard/app/DashboardErrorBoundary.js +5 -5
  53. package/dist/dashboard/app/EntryHeader.js +7 -7
  54. package/dist/dashboard/app/EntryReferences.js +10 -10
  55. package/dist/dashboard/app/EntrySidebar.js +11 -11
  56. package/dist/dashboard/app/EntrySidebarPreview.js +52 -26
  57. package/dist/dashboard/app/EntrySidebarPreview.story.d.ts +6 -1
  58. package/dist/dashboard/app/EntryTranslationBanner.js +5 -5
  59. package/dist/dashboard/app/Explorer.d.ts +2 -1
  60. package/dist/dashboard/app/Explorer.js +56 -44
  61. package/dist/dashboard/app/ExplorerCards.js +42 -46
  62. package/dist/dashboard/app/ExplorerFileCard.js +18 -18
  63. package/dist/dashboard/app/ExplorerList.js +11 -11
  64. package/dist/dashboard/app/ExplorerModal.js +5 -5
  65. package/dist/dashboard/app/ExplorerTable.js +53 -53
  66. package/dist/dashboard/app/LinkPicker.js +34 -9
  67. package/dist/dashboard/app/LocaleMenu.js +5 -5
  68. package/dist/dashboard/app/SidebarLayout.js +3 -3
  69. package/dist/dashboard/app/SidebarTree.js +48 -56
  70. package/dist/dashboard/app/WorkspaceMenu.js +11 -11
  71. package/dist/dashboard/app/WorkspaceRoots.js +24 -24
  72. package/dist/dashboard/app/editor/FileEditor.js +26 -26
  73. package/dist/dashboard/app/editor/FilePreview.js +4 -4
  74. package/dist/dashboard/app/modals/CreateEntry.js +2 -2
  75. package/dist/dashboard/app/pages/EntryPage.js +17 -17
  76. package/dist/dashboard/app/pages/UsersPage.js +35 -35
  77. package/dist/dashboard/app/ui/DashboardModal.js +17 -17
  78. package/dist/dashboard/app/ui/Rail.js +2 -2
  79. package/dist/dashboard/app/ui/Sidebar.js +2 -2
  80. package/dist/field/check/CheckField.view.js +2 -2
  81. package/dist/field/code/CodeField.view.js +11 -11
  82. package/dist/field/link/EntryLink.d.ts +1 -1
  83. package/dist/field/link/EntryLink.js +1 -0
  84. package/dist/field/link/Link.js +1 -0
  85. package/dist/field/link/LinkField.d.ts +5 -0
  86. package/dist/field/link/LinkField.view.js +58 -41
  87. package/dist/field/list/ListField.view.js +14 -14
  88. package/dist/field/metadata/MetadataField.d.ts +2 -0
  89. package/dist/field/metadata/MetadataField.js +2 -1
  90. package/dist/field/metadata/MetadataField.view.js +19 -19
  91. package/dist/field/richtext/RichTextBlock.js +2 -2
  92. package/dist/field/richtext/RichTextExtensions.js +24 -24
  93. package/dist/field/richtext/RichTextField.view.js +4 -4
  94. package/dist/field/richtext/RichTextInsertMenu.js +3 -3
  95. package/dist/index.css +21 -0
  96. package/dist/preview/PreviewMessage.d.ts +3 -0
  97. package/dist/preview/PreviewMessage.js +1 -0
  98. package/dist/preview/RegisterPreview.js +29 -9
  99. package/dist/preview/widget.js +6 -12
  100. package/dist/query.d.ts +7 -7
  101. package/package.json +1 -1
@@ -1,5 +1,5 @@
1
1
  {
2
- "_id": "3J0HOUgEnDgT3KMVS2IyiiHVGPp",
2
+ "_id": "3J5B7YiszA6gly0Vumu4zjLeUNP",
3
3
  "_type": "Page",
4
4
  "_index": "a0",
5
5
  "_seeded": "welcome.json",
package/dist/LICENSES.md CHANGED
@@ -55,7 +55,7 @@ SOFTWARE.
55
55
 
56
56
  ===
57
57
 
58
- # @internationalized/date@3.12.1 (Apache-2.0)
58
+ # react-aria-components@1.17.0 (Apache-2.0)
59
59
 
60
60
  Apache License
61
61
  Version 2.0, January 2004
@@ -262,7 +262,7 @@ SOFTWARE.
262
262
 
263
263
  ===
264
264
 
265
- # react-stately@3.46.0 (Apache-2.0)
265
+ # @internationalized/date@3.12.1 (Apache-2.0)
266
266
 
267
267
  Apache License
268
268
  Version 2.0, January 2004
@@ -469,7 +469,34 @@ SOFTWARE.
469
469
 
470
470
  ===
471
471
 
472
- # react-aria-components@1.17.0 (Apache-2.0)
472
+ # @tiptap/core@3.30.5 (MIT)
473
+
474
+ MIT License
475
+
476
+ Copyright (c) 2025, Tiptap GmbH
477
+
478
+ Permission is hereby granted, free of charge, to any person obtaining a copy
479
+ of this software and associated documentation files (the "Software"), to deal
480
+ in the Software without restriction, including without limitation the rights
481
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
482
+ copies of the Software, and to permit persons to whom the Software is
483
+ furnished to do so, subject to the following conditions:
484
+
485
+ The above copyright notice and this permission notice shall be included in all
486
+ copies or substantial portions of the Software.
487
+
488
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
489
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
490
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
491
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
492
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
493
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
494
+ SOFTWARE.
495
+
496
+
497
+ ===
498
+
499
+ # react-stately@3.46.0 (Apache-2.0)
473
500
 
474
501
  Apache License
475
502
  Version 2.0, January 2004
@@ -674,33 +701,6 @@ SOFTWARE.
674
701
  limitations under the License.
675
702
 
676
703
 
677
- ===
678
-
679
- # @tiptap/core@3.30.5 (MIT)
680
-
681
- MIT License
682
-
683
- Copyright (c) 2025, Tiptap GmbH
684
-
685
- Permission is hereby granted, free of charge, to any person obtaining a copy
686
- of this software and associated documentation files (the "Software"), to deal
687
- in the Software without restriction, including without limitation the rights
688
- to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
689
- copies of the Software, and to permit persons to whom the Software is
690
- furnished to do so, subject to the following conditions:
691
-
692
- The above copyright notice and this permission notice shall be included in all
693
- copies or substantial portions of the Software.
694
-
695
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
696
- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
697
- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
698
- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
699
- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
700
- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
701
- SOFTWARE.
702
-
703
-
704
704
  ===
705
705
 
706
706
  # jotai-location@0.6.2 (MIT)
@@ -989,6 +989,33 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
989
989
  SOFTWARE.
990
990
 
991
991
 
992
+ ===
993
+
994
+ # use-sync-external-store@1.6.0 (MIT)
995
+
996
+ MIT License
997
+
998
+ Copyright (c) Meta Platforms, Inc. and affiliates.
999
+
1000
+ Permission is hereby granted, free of charge, to any person obtaining a copy
1001
+ of this software and associated documentation files (the "Software"), to deal
1002
+ in the Software without restriction, including without limitation the rights
1003
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
1004
+ copies of the Software, and to permit persons to whom the Software is
1005
+ furnished to do so, subject to the following conditions:
1006
+
1007
+ The above copyright notice and this permission notice shall be included in all
1008
+ copies or substantial portions of the Software.
1009
+
1010
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
1011
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
1012
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
1013
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
1014
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
1015
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
1016
+ SOFTWARE.
1017
+
1018
+
992
1019
  ===
993
1020
 
994
1021
  # htmlparser2@9.1.0 (MIT)
@@ -1014,11 +1041,11 @@ IN THE SOFTWARE.
1014
1041
 
1015
1042
  ===
1016
1043
 
1017
- # use-sync-external-store@1.6.0 (MIT)
1044
+ # fp16@1.0.0 (MIT)
1018
1045
 
1019
1046
  MIT License
1020
1047
 
1021
- Copyright (c) Meta Platforms, Inc. and affiliates.
1048
+ Copyright (c) 2021 Joel Gustafson
1022
1049
 
1023
1050
  Permission is hereby granted, free of charge, to any person obtaining a copy
1024
1051
  of this software and associated documentation files (the "Software"), to deal
@@ -1058,34 +1085,7 @@ EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
1058
1085
 
1059
1086
  ===
1060
1087
 
1061
- # fp16@1.0.0 (MIT)
1062
-
1063
- MIT License
1064
-
1065
- Copyright (c) 2021 Joel Gustafson
1066
-
1067
- Permission is hereby granted, free of charge, to any person obtaining a copy
1068
- of this software and associated documentation files (the "Software"), to deal
1069
- in the Software without restriction, including without limitation the rights
1070
- to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
1071
- copies of the Software, and to permit persons to whom the Software is
1072
- furnished to do so, subject to the following conditions:
1073
-
1074
- The above copyright notice and this permission notice shall be included in all
1075
- copies or substantial portions of the Software.
1076
-
1077
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
1078
- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
1079
- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
1080
- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
1081
- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
1082
- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
1083
- SOFTWARE.
1084
-
1085
-
1086
- ===
1087
-
1088
- # entities@4.5.0 (BSD-2-Clause)
1088
+ # domhandler@5.0.3 (BSD-2-Clause)
1089
1089
 
1090
1090
  Copyright (c) Felix Böhm
1091
1091
  All rights reserved.
@@ -1102,7 +1102,7 @@ EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
1102
1102
 
1103
1103
  ===
1104
1104
 
1105
- # domhandler@5.0.3 (BSD-2-Clause)
1105
+ # entities@4.5.0 (BSD-2-Clause)
1106
1106
 
1107
1107
  Copyright (c) Felix Böhm
1108
1108
  All rights reserved.
@@ -1136,7 +1136,7 @@ THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI
1136
1136
 
1137
1137
  ===
1138
1138
 
1139
- # @internationalized/number@3.6.6 (Apache-2.0)
1139
+ # @internationalized/string@3.2.8 (Apache-2.0)
1140
1140
 
1141
1141
  Apache License
1142
1142
  Version 2.0, January 2004
@@ -1343,7 +1343,7 @@ THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI
1343
1343
 
1344
1344
  ===
1345
1345
 
1346
- # @internationalized/string@3.2.8 (Apache-2.0)
1346
+ # @internationalized/number@3.6.6 (Apache-2.0)
1347
1347
 
1348
1348
  Apache License
1349
1349
  Version 2.0, January 2004
@@ -37,12 +37,14 @@ function NextPreviews({
37
37
  if (widget) registerPreviewWidget();
38
38
  }, [widget]);
39
39
  if (!widget) return null;
40
+ const isFullPage = window.parent === window;
41
+ if (isFullPage && isPreviewing && !previewDisabled) return null;
40
42
  return /* @__PURE__ */ jsx(
41
43
  "alinea-preview",
42
44
  {
43
45
  adminUrl: String(adminUrl),
44
46
  editUrl: String(editUrl),
45
- livePreview: isLoading ? "loading" : isPreviewing ? previewDisabled ? "warning" : "connected" : void 0
47
+ livePreview: isPreviewing ? isLoading ? "loading" : previewDisabled ? "warning" : "connected" : void 0
46
48
  }
47
49
  );
48
50
  }
@@ -0,0 +1 @@
1
+ export {};
package/dist/bundled.d.ts CHANGED
@@ -127,6 +127,12 @@ declare module 'alinea/adapter/next/previews' {
127
127
 
128
128
  }
129
129
 
130
+ declare module 'alinea/adapter/next/previews.spec' {
131
+
132
+ export {};
133
+
134
+ }
135
+
130
136
  declare module 'alinea/adapter/next/with-alinea' {
131
137
 
132
138
  import type { NextConfig } from 'next/dist/types.js';
@@ -1986,18 +1992,20 @@ declare module 'alinea/components/Tree' {
1986
1992
  children?: ReactNode;
1987
1993
  disableDragging?: boolean;
1988
1994
  icon?: IconProps['icon'];
1995
+ iconHref?: string;
1989
1996
  suffix?: ReactNode;
1990
1997
  }
1991
- export const TreeItemContent: import("react").MemoExoticComponent<({ disableDragging, icon, suffix, children }: TreeItemContentProps) => import("react").JSX.Element>;
1998
+ export const TreeItemContent: import("react").MemoExoticComponent<({ disableDragging, icon, iconHref, suffix, children }: TreeItemContentProps) => import("react").JSX.Element>;
1992
1999
  export interface TreeItemProps extends Partial<Omit<AriaTreeItemProps, 'className'>> {
1993
2000
  className?: string;
1994
2001
  disableDragging?: boolean;
1995
2002
  title: string;
1996
2003
  icon?: IconProps['icon'];
2004
+ iconHref?: string;
1997
2005
  label?: ReactNode;
1998
2006
  suffix?: ReactNode;
1999
2007
  }
2000
- export function TreeItem({ disableDragging, title, icon, label, suffix, children, className, hasChildItems, ...rest }: TreeItemProps): import("react").JSX.Element;
2008
+ export function TreeItem({ disableDragging, title, icon, iconHref, label, suffix, children, className, hasChildItems, ...rest }: TreeItemProps): import("react").JSX.Element;
2001
2009
 
2002
2010
  }
2003
2011
 
@@ -2852,7 +2860,7 @@ declare module 'alinea/core/db/Mutation' {
2852
2860
 
2853
2861
  declare module 'alinea/core/db/Operation' {
2854
2862
 
2855
- import type { StoredRow } from 'alinea/core/Infer';
2863
+ import type { CreateInputRow, StoredRow } from 'alinea/core/Infer';
2856
2864
  import type { ImagePreviewDetails } from 'alinea/core/media/CreatePreview';
2857
2865
  import { Type } from 'alinea/core/Type';
2858
2866
  import type { Mutation } from 'alinea/core/db/Mutation';
@@ -2871,7 +2879,7 @@ declare module 'alinea/core/db/Operation' {
2871
2879
  parentId?: string | null;
2872
2880
  locale?: string | null;
2873
2881
  status?: 'draft' | 'published' | 'archived';
2874
- set: Partial<StoredRow<Fields>>;
2882
+ set: Partial<CreateInputRow<Fields>>;
2875
2883
  insertOrder?: 'first' | 'last';
2876
2884
  overwrite?: boolean;
2877
2885
  }
@@ -3664,7 +3672,7 @@ declare module 'alinea/core/Graph' {
3664
3672
  /** Filter by url */
3665
3673
  url?: Condition<string>;
3666
3674
  /** Filter by a metadata URL alias */
3667
- alias?: string;
3675
+ alias?: Condition<string>;
3668
3676
  /** Filter by metadata created timestamp */
3669
3677
  createdAt?: Condition<number | null>;
3670
3678
  /** Filter by metadata updated timestamp */
@@ -3790,6 +3798,7 @@ declare module 'alinea/core/Infer' {
3790
3798
  import type { InferProjection } from 'alinea/core/Graph';
3791
3799
  import type { ListRow } from 'alinea/core/ListRow';
3792
3800
  import type { Type } from 'alinea/core/Type';
3801
+ import type { RecordField } from 'alinea/core/field/RecordField';
3793
3802
  type QueryList<T> = Expand<UnionOfValues<{
3794
3803
  [K in keyof T]: {
3795
3804
  _type: K;
@@ -3804,9 +3813,15 @@ declare module 'alinea/core/Infer' {
3804
3813
  export type StoredRow<Definition> = {
3805
3814
  [K in keyof Definition as Definition[K] extends Field<any> ? K : never]: Definition[K] extends Field<infer T> ? T : never;
3806
3815
  };
3807
- export type InferStoredValue<T> = T extends Type<infer Fields> ? StoredRow<Fields> : T extends Field<infer StoredValue> ? StoredValue : T extends Record<string, Type> ? StoredList<T> : {};
3816
+ type CreateInputValue<T> = T extends RecordField<infer Row, infer _Options> ? Partial<Row> : T extends Field<infer StoredValue> ? StoredValue : never;
3817
+ export type CreateInputRow<Definition> = {
3818
+ [K in keyof Definition as Definition[K] extends Field ? K : never]: CreateInputValue<Definition[K]>;
3819
+ };
3820
+ export type InferStoredValue<T> = T extends Type<infer Fields> ? StoredRow<Fields> : T extends Field<infer StoredValue> ? StoredValue : T extends Record<string, Type> ? StoredList<T> : T extends object ? StoredRow<T> : {};
3808
3821
  export type Infer<T> = InferQueryValue<T>;
3809
3822
  export namespace Infer {
3823
+ /** Stored content for creation and editing, before links are resolved. */
3824
+ type Stored<T> = InferStoredValue<T>;
3810
3825
  type Entry<T extends Type, TypeName extends string = string> = InferQueryValue<T> & Omit<EntryFields, '_type'> & {
3811
3826
  _type: TypeName;
3812
3827
  };
@@ -5892,11 +5907,26 @@ declare module 'alinea/dashboard/App' {
5892
5907
 
5893
5908
  declare module 'alinea/dashboard/app/AccessDenied' {
5894
5909
 
5910
+ const copy: {
5911
+ root: {
5912
+ title: string;
5913
+ message: string;
5914
+ };
5915
+ users: {
5916
+ title: string;
5917
+ message: string;
5918
+ };
5919
+ workspace: {
5920
+ title: string;
5921
+ message: string;
5922
+ };
5923
+ };
5895
5924
  export interface AccessDeniedProps {
5896
5925
  canManageMembers: boolean;
5897
- scope: 'root' | 'workspace';
5926
+ scope: keyof typeof copy;
5898
5927
  }
5899
5928
  export function AccessDenied({ canManageMembers, scope }: AccessDeniedProps): import("react").JSX.Element;
5929
+ export {};
5900
5930
 
5901
5931
  }
5902
5932
 
@@ -6221,7 +6251,12 @@ declare module 'alinea/dashboard/app/EntrySidebarPreview.spec' {
6221
6251
 
6222
6252
  declare module 'alinea/dashboard/app/EntrySidebarPreview.story' {
6223
6253
 
6224
- export function EntrySidebarPreviewStory(): import("react").JSX.Element;
6254
+ interface EntrySidebarPreviewStoryProps {
6255
+ previewUrl?: string;
6256
+ entryId?: string;
6257
+ }
6258
+ export function EntrySidebarPreviewStory({ previewUrl, entryId }: EntrySidebarPreviewStoryProps): import("react").JSX.Element;
6259
+ export {};
6225
6260
 
6226
6261
  }
6227
6262
 
@@ -6266,6 +6301,7 @@ declare module 'alinea/dashboard/app/Explorer' {
6266
6301
  onBack(): void;
6267
6302
  }
6268
6303
  export interface ExplorerHeaderProps {
6304
+ canBrowse?: boolean;
6269
6305
  autoFocusSearch?: boolean;
6270
6306
  controls?: ReactNode;
6271
6307
  explorer: DashboardExplorer;
@@ -6287,7 +6323,7 @@ declare module 'alinea/dashboard/app/Explorer' {
6287
6323
  page: ExplorerReadyPage;
6288
6324
  }
6289
6325
  export function ExplorerSearch({ autoFocus, explorer, onEntryAction, page }: ExplorerSearchProps): import("react").JSX.Element;
6290
- export function ExplorerHeader({ autoFocusSearch, controls, explorer, headerEntry, navigate, page, titleControls }: ExplorerHeaderProps): import("react").JSX.Element;
6326
+ export function ExplorerHeader({ canBrowse, autoFocusSearch, controls, explorer, headerEntry, navigate, page, titleControls }: ExplorerHeaderProps): import("react").JSX.Element;
6291
6327
  export function ExplorerBody({ compactTable, explorer, onSelectionChange, page }: ExplorerBodyProps): import("react").JSX.Element;
6292
6328
  export function Explorer({ controls, explorer, headerEntry, page: loadedPage, titleControls }: ExplorerProps): import("react").JSX.Element;
6293
6329
  export {};
@@ -8960,7 +8996,7 @@ declare module 'alinea/field/link/EntryLink' {
8960
8996
  type EntryRow<Fields> = EntryLink<Type.Infer<Fields>> & ListRow;
8961
8997
  interface EntryOptions<Fields> extends LinkFieldOptions<Array<EntryReference & ListRow & InferStoredValue<Fields>>>, Omit<EntryPickerOptions<Fields>, 'label' | 'selection'> {
8962
8998
  }
8963
- export function multiple<Fields = undefined>(label: Label, options?: WithoutLabel<EntryOptions<Fields>>): import("alinea/field/link/LinkField").LinksField<EntryReference & ListRow, EntryRow<Fields>>;
8999
+ export function multiple<Fields = undefined>(label: Label, options?: WithoutLabel<EntryOptions<Fields>>): import("alinea/field/link/LinkField").LinksField<EntryReference & ListRow & InferStoredValue<Fields>, EntryRow<Fields>>;
8964
9000
  export {};
8965
9001
  }
8966
9002
  export {};
@@ -9129,6 +9165,11 @@ declare module 'alinea/field/link/LinkField' {
9129
9165
  import type { ReactNode } from 'react';
9130
9166
  /** Optional settings to configure a link field */
9131
9167
  export interface LinkFieldOptions<Value> extends FieldOptions<Value> {
9168
+ /**
9169
+ * Allow the same entry to be linked more than once.
9170
+ * Defaults to false for entry fields and true for generic link fields.
9171
+ */
9172
+ allowDuplicates?: boolean;
9132
9173
  /** Width of the field in the dashboard UI (0-1) */
9133
9174
  width?: number;
9134
9175
  /** Add instructional text to a field */
@@ -9452,6 +9493,8 @@ declare module 'alinea/field/metadata/MetadataField' {
9452
9493
  fields: Type<MetadataFields>;
9453
9494
  }> {
9454
9495
  }
9496
+ export interface MetadataField extends MetadataFields {
9497
+ }
9455
9498
  export class MetadataTimestampField extends ScalarField<number | null, MetadataTimestampOptions> {
9456
9499
  }
9457
9500
  export class MetadataUserField extends ScalarField<MetadataAuditUser, MetadataUserOptions> {
@@ -10698,6 +10741,7 @@ declare module 'alinea/preview/PreviewMessage' {
10698
10741
  export enum PreviewAction {
10699
10742
  Ping = "[alinea-ping]",
10700
10743
  Pong = "[alinea-pong]",
10744
+ Disconnect = "[alinea-disconnect]",
10701
10745
  Reload = "[alinea-reload]",
10702
10746
  Refetch = "[alinea-refetch]",
10703
10747
  Previous = "[alinea-previous]",
@@ -10709,6 +10753,8 @@ declare module 'alinea/preview/PreviewMessage' {
10709
10753
  action: PreviewAction.Ping;
10710
10754
  } | {
10711
10755
  action: PreviewAction.Pong;
10756
+ } | {
10757
+ action: PreviewAction.Disconnect;
10712
10758
  } | {
10713
10759
  action: PreviewAction.Reload;
10714
10760
  } | {
@@ -10799,7 +10845,7 @@ declare module 'alinea/query' {
10799
10845
  parentId?: import("alinea/core/Filter").Condition<string | null>;
10800
10846
  path?: import("alinea/core/Filter").Condition<string>;
10801
10847
  url?: import("alinea/core/Filter").Condition<string>;
10802
- alias?: string;
10848
+ alias?: import("alinea/core/Filter").Condition<string>;
10803
10849
  createdAt?: import("alinea/core/Filter").Condition<number | null>;
10804
10850
  updatedAt?: import("alinea/core/Filter").Condition<number | null>;
10805
10851
  workspace?: import("alinea/core/Filter").Condition<string> | import("alinea/types").Workspace;
@@ -10834,7 +10880,7 @@ declare module 'alinea/query' {
10834
10880
  parentId?: import("alinea/core/Filter").Condition<string | null>;
10835
10881
  path?: import("alinea/core/Filter").Condition<string>;
10836
10882
  url?: import("alinea/core/Filter").Condition<string>;
10837
- alias?: string;
10883
+ alias?: import("alinea/core/Filter").Condition<string>;
10838
10884
  createdAt?: import("alinea/core/Filter").Condition<number | null>;
10839
10885
  updatedAt?: import("alinea/core/Filter").Condition<number | null>;
10840
10886
  workspace?: import("alinea/core/Filter").Condition<string> | import("alinea/types").Workspace;
@@ -10869,7 +10915,7 @@ declare module 'alinea/query' {
10869
10915
  parentId?: import("alinea/core/Filter").Condition<string | null>;
10870
10916
  path?: import("alinea/core/Filter").Condition<string>;
10871
10917
  url?: import("alinea/core/Filter").Condition<string>;
10872
- alias?: string;
10918
+ alias?: import("alinea/core/Filter").Condition<string>;
10873
10919
  createdAt?: import("alinea/core/Filter").Condition<number | null>;
10874
10920
  updatedAt?: import("alinea/core/Filter").Condition<number | null>;
10875
10921
  workspace?: import("alinea/core/Filter").Condition<string> | import("alinea/types").Workspace;
@@ -10904,7 +10950,7 @@ declare module 'alinea/query' {
10904
10950
  parentId?: import("alinea/core/Filter").Condition<string | null>;
10905
10951
  path?: import("alinea/core/Filter").Condition<string>;
10906
10952
  url?: import("alinea/core/Filter").Condition<string>;
10907
- alias?: string;
10953
+ alias?: import("alinea/core/Filter").Condition<string>;
10908
10954
  createdAt?: import("alinea/core/Filter").Condition<number | null>;
10909
10955
  updatedAt?: import("alinea/core/Filter").Condition<number | null>;
10910
10956
  workspace?: import("alinea/core/Filter").Condition<string> | import("alinea/types").Workspace;
@@ -10937,7 +10983,7 @@ declare module 'alinea/query' {
10937
10983
  parentId?: import("alinea/core/Filter").Condition<string | null>;
10938
10984
  path?: import("alinea/core/Filter").Condition<string>;
10939
10985
  url?: import("alinea/core/Filter").Condition<string>;
10940
- alias?: string;
10986
+ alias?: import("alinea/core/Filter").Condition<string>;
10941
10987
  createdAt?: import("alinea/core/Filter").Condition<number | null>;
10942
10988
  updatedAt?: import("alinea/core/Filter").Condition<number | null>;
10943
10989
  workspace?: import("alinea/core/Filter").Condition<string> | import("alinea/types").Workspace;
@@ -10969,7 +11015,7 @@ declare module 'alinea/query' {
10969
11015
  parentId?: import("alinea/core/Filter").Condition<string | null>;
10970
11016
  path?: import("alinea/core/Filter").Condition<string>;
10971
11017
  url?: import("alinea/core/Filter").Condition<string>;
10972
- alias?: string;
11018
+ alias?: import("alinea/core/Filter").Condition<string>;
10973
11019
  createdAt?: import("alinea/core/Filter").Condition<number | null>;
10974
11020
  updatedAt?: import("alinea/core/Filter").Condition<number | null>;
10975
11021
  workspace?: import("alinea/core/Filter").Condition<string> | import("alinea/types").Workspace;
@@ -11001,7 +11047,7 @@ declare module 'alinea/query' {
11001
11047
  parentId?: import("alinea/core/Filter").Condition<string | null>;
11002
11048
  path?: import("alinea/core/Filter").Condition<string>;
11003
11049
  url?: import("alinea/core/Filter").Condition<string>;
11004
- alias?: string;
11050
+ alias?: import("alinea/core/Filter").Condition<string>;
11005
11051
  createdAt?: import("alinea/core/Filter").Condition<number | null>;
11006
11052
  updatedAt?: import("alinea/core/Filter").Condition<number | null>;
11007
11053
  workspace?: import("alinea/core/Filter").Condition<string> | import("alinea/types").Workspace;
@@ -1,7 +1,7 @@
1
1
  // package.json with { type: 'json' }
2
2
  var package_default = {
3
3
  name: "alinea",
4
- version: "2.0.0-preview.2",
4
+ version: "2.0.0-preview.3",
5
5
  description: "Headless git-based CMS",
6
6
  repository: "github:alineacms/alinea",
7
7
  license: "MIT",
package/dist/cli/Serve.js CHANGED
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  package_default
3
- } from "../chunks/chunk-UVOEM4AH.js";
3
+ } from "../chunks/chunk-HFBZMKIN.js";
4
4
  import "../chunks/chunk-CQ52GEHY.js";
5
5
 
6
6
  // src/cli/Serve.ts
package/dist/cli/bin.js CHANGED
@@ -220,7 +220,7 @@ var lib_default2 = (e, t2) => new o(e, t2);
220
220
  // package.json
221
221
  var package_default = {
222
222
  name: "alinea",
223
- version: "2.0.0-preview.2",
223
+ version: "2.0.0-preview.3",
224
224
  description: "Headless git-based CMS",
225
225
  repository: "github:alineacms/alinea",
226
226
  license: "MIT",
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  package_default
3
- } from "../chunks/chunk-UVOEM4AH.js";
3
+ } from "../chunks/chunk-HFBZMKIN.js";
4
4
  import "../chunks/chunk-CQ52GEHY.js";
5
5
 
6
6
  // src/cloud/CloudRemote.ts
@@ -17,8 +17,8 @@ import "../chunks/chunk-CQ52GEHY.js";
17
17
 
18
18
  // src/components/Breadcrumbs.module.css
19
19
  var Breadcrumbs_default = {
20
- "Breadcrumbs": "alinea-Breadcrumbs",
21
- "Breadcrumb": "alinea-Breadcrumb"
20
+ "Breadcrumb": "alinea-Breadcrumb",
21
+ "Breadcrumbs": "alinea-Breadcrumbs"
22
22
  };
23
23
 
24
24
  // src/components/Breadcrumbs.tsx
@@ -27,17 +27,17 @@ import {
27
27
 
28
28
  // src/components/Calendar.module.css
29
29
  var Calendar_default = {
30
- "Calendar-heading": "alinea-Calendar-heading",
31
- "CalendarHeading": "alinea-Calendar-heading",
32
30
  "Calendar-cell": "alinea-Calendar-cell",
33
31
  "CalendarCell": "alinea-Calendar-cell",
34
- "Calendar": "alinea-Calendar",
32
+ "Calendar-grid": "alinea-Calendar-grid",
33
+ "CalendarGrid": "alinea-Calendar-grid",
35
34
  "Calendar-header": "alinea-Calendar-header",
36
35
  "CalendarHeader": "alinea-Calendar-header",
37
36
  "Calendar-button": "alinea-Calendar-button",
38
37
  "CalendarButton": "alinea-Calendar-button",
39
- "Calendar-grid": "alinea-Calendar-grid",
40
- "CalendarGrid": "alinea-Calendar-grid"
38
+ "Calendar-heading": "alinea-Calendar-heading",
39
+ "CalendarHeading": "alinea-Calendar-heading",
40
+ "Calendar": "alinea-Calendar"
41
41
  };
42
42
 
43
43
  // src/components/Calendar.tsx
@@ -16,11 +16,11 @@ import "../chunks/chunk-CQ52GEHY.js";
16
16
 
17
17
  // src/components/Checkbox.module.css
18
18
  var Checkbox_default = {
19
+ "Checkbox-box": "alinea-Checkbox-box",
20
+ "CheckboxBox": "alinea-Checkbox-box",
19
21
  "Checkbox-mark": "alinea-Checkbox-mark",
20
22
  "CheckboxMark": "alinea-Checkbox-mark",
21
- "Checkbox": "alinea-Checkbox",
22
- "Checkbox-box": "alinea-Checkbox-box",
23
- "CheckboxBox": "alinea-Checkbox-box"
23
+ "Checkbox": "alinea-Checkbox"
24
24
  };
25
25
 
26
26
  // src/components/Checkbox.tsx
@@ -29,24 +29,24 @@ import {
29
29
 
30
30
  // src/components/ComboBox.module.css
31
31
  var ComboBox_default = {
32
- "ComboBoxTrigger-input": "alinea-ComboBoxTrigger-input",
33
- "ComboBoxTriggerInput": "alinea-ComboBoxTrigger-input",
34
- "ComboBox": "alinea-ComboBox",
35
- "ComboBoxTrigger-button-value": "alinea-ComboBoxTrigger-button-value",
36
- "ComboBoxTriggerButtonValue": "alinea-ComboBoxTrigger-button-value",
37
- "ComboBoxTrigger": "alinea-ComboBoxTrigger",
38
- "ComboBoxTrigger-actions": "alinea-ComboBoxTrigger-actions",
39
- "ComboBoxTriggerActions": "alinea-ComboBoxTrigger-actions",
40
32
  "ComboBoxItem": "alinea-ComboBoxItem",
41
- "ComboBoxItem-check": "alinea-ComboBoxItem-check",
42
- "ComboBoxItemCheck": "alinea-ComboBoxItem-check",
43
33
  "ComboBoxTrigger-button-arrow": "alinea-ComboBoxTrigger-button-arrow",
44
34
  "ComboBoxTriggerButtonArrow": "alinea-ComboBoxTrigger-button-arrow",
35
+ "ComboBoxTrigger-button": "alinea-ComboBoxTrigger-button",
36
+ "ComboBoxTriggerButton": "alinea-ComboBoxTrigger-button",
37
+ "ComboBoxTrigger": "alinea-ComboBoxTrigger",
38
+ "ComboBoxTrigger-actions": "alinea-ComboBoxTrigger-actions",
39
+ "ComboBoxTriggerActions": "alinea-ComboBoxTrigger-actions",
45
40
  "ComboBoxPopover-listbox": "alinea-ComboBoxPopover-listbox",
46
41
  "ComboBoxPopoverListbox": "alinea-ComboBoxPopover-listbox",
47
42
  "ComboBoxClear": "alinea-ComboBoxClear",
48
- "ComboBoxTrigger-button": "alinea-ComboBoxTrigger-button",
49
- "ComboBoxTriggerButton": "alinea-ComboBoxTrigger-button"
43
+ "ComboBoxTrigger-input": "alinea-ComboBoxTrigger-input",
44
+ "ComboBoxTriggerInput": "alinea-ComboBoxTrigger-input",
45
+ "ComboBoxItem-check": "alinea-ComboBoxItem-check",
46
+ "ComboBoxItemCheck": "alinea-ComboBoxItem-check",
47
+ "ComboBoxTrigger-button-value": "alinea-ComboBoxTrigger-button-value",
48
+ "ComboBoxTriggerButtonValue": "alinea-ComboBoxTrigger-button-value",
49
+ "ComboBox": "alinea-ComboBox"
50
50
  };
51
51
 
52
52
  // src/components/ComboBox.tsx
@@ -19,11 +19,11 @@ import "../chunks/chunk-CQ52GEHY.js";
19
19
 
20
20
  // src/components/DateField.module.css
21
21
  var DateField_default = {
22
+ "DateField-input": "alinea-DateField-input",
23
+ "DateFieldInput": "alinea-DateField-input",
22
24
  "DateField": "alinea-DateField",
23
25
  "DateField-input-segment": "alinea-DateField-input-segment",
24
- "DateFieldInputSegment": "alinea-DateField-input-segment",
25
- "DateField-input": "alinea-DateField-input",
26
- "DateFieldInput": "alinea-DateField-input"
26
+ "DateFieldInputSegment": "alinea-DateField-input-segment"
27
27
  };
28
28
 
29
29
  // src/components/DateField.tsx
@@ -25,14 +25,14 @@ import { Calendar } from "./Calendar.js";
25
25
 
26
26
  // src/components/DatePicker.module.css
27
27
  var DatePicker_default = {
28
- "DatePicker-trigger": "alinea-DatePicker-trigger",
29
- "DatePickerTrigger": "alinea-DatePicker-trigger",
30
28
  "DatePicker": "alinea-DatePicker",
31
- "Icon": "alinea-Icon",
29
+ "DatePicker-input-segment": "alinea-DatePicker-input-segment",
30
+ "DatePickerInputSegment": "alinea-DatePicker-input-segment",
32
31
  "DatePicker-input": "alinea-DatePicker-input",
33
32
  "DatePickerInput": "alinea-DatePicker-input",
34
- "DatePicker-input-segment": "alinea-DatePicker-input-segment",
35
- "DatePickerInputSegment": "alinea-DatePicker-input-segment"
33
+ "DatePicker-trigger": "alinea-DatePicker-trigger",
34
+ "DatePickerTrigger": "alinea-DatePicker-trigger",
35
+ "Icon": "alinea-Icon"
36
36
  };
37
37
 
38
38
  // src/components/DatePicker.tsx