alinea 0.9.6 → 0.9.8

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 (55) hide show
  1. package/dist/backend/test/Example.d.ts +84 -84
  2. package/dist/backend/test/ExampleTypes.d.ts +4 -4
  3. package/dist/backend/util/JsonPatch.js +1 -1
  4. package/dist/chunks/{chunk-PYIT5GU5.js → chunk-OIHAZLUJ.js} +1 -1
  5. package/dist/chunks/{chunk-HP3RAFUD.js → chunk-QOWSW6DW.js} +3 -0
  6. package/dist/chunks/{chunk-UUJJ7TAP.js → chunk-V5DYTTAP.js} +2 -2
  7. package/dist/cli/Serve.js +1 -1
  8. package/dist/cli/bin.js +1 -1
  9. package/dist/cli/generate/GenerateDashboard.js +1 -1
  10. package/dist/cloud/server/CloudAuthServer.js +1 -1
  11. package/dist/core/CMS.d.ts +1 -1
  12. package/dist/core/Config.d.ts +14 -14
  13. package/dist/core/Edit.d.ts +17 -14
  14. package/dist/core/Edit.js +45 -38
  15. package/dist/core/Query.d.ts +4 -4
  16. package/dist/core/field/RichTextField.js +8 -0
  17. package/dist/core/media/MediaTypes.browser.d.ts +8 -8
  18. package/dist/core/pages/Cursor.d.ts +4 -4
  19. package/dist/core/shape/RichTextShape.d.ts +5 -1
  20. package/dist/core/shape/RichTextShape.js +4 -0
  21. package/dist/dashboard/Routes.d.ts +26 -26
  22. package/dist/dashboard/atoms/DashboardAtoms.d.ts +2 -2
  23. package/dist/dashboard/atoms/EntryEditorAtoms.d.ts +4 -4
  24. package/dist/dashboard/atoms/NavigationAtoms.d.ts +3 -3
  25. package/dist/dashboard/hook/UseConfig.d.ts +1 -1
  26. package/dist/dashboard/hook/UseGraph.d.ts +1 -1
  27. package/dist/dashboard/hook/UseRoot.d.ts +4 -4
  28. package/dist/dashboard/hook/UseSession.d.ts +1 -1
  29. package/dist/dashboard/hook/UseWorkspace.d.ts +2 -2
  30. package/dist/dashboard/util/Loader.d.ts +2 -2
  31. package/dist/dashboard/util/PersistentStore.js +1 -1
  32. package/dist/dashboard/view/diff/DiffUtils.d.ts +1 -1
  33. package/dist/dashboard/view/entry/EntrySummary.d.ts +8 -8
  34. package/dist/field/link/EntryLink.d.ts +8 -8
  35. package/dist/field/link/FileLink.d.ts +4 -4
  36. package/dist/field/link/ImageLink.d.ts +1 -1
  37. package/dist/field/link/Link.d.ts +2 -2
  38. package/dist/field/link/LinkEditor.d.ts +27 -0
  39. package/dist/field/link/LinkEditor.js +71 -0
  40. package/dist/field/link/UrlLink.d.ts +1 -1
  41. package/dist/field/richtext/PickTextLink.js +15 -13
  42. package/dist/field/richtext/RichTextField.browser.js +5 -4
  43. package/dist/field/richtext/RichTextField.d.ts +2 -0
  44. package/dist/field/richtext/RichTextKit.js +2662 -4
  45. package/dist/field/richtext/RichTextToolbar.d.ts +1 -0
  46. package/dist/field/richtext/RichTextToolbar.js +74 -2
  47. package/dist/field/richtext/extensions/Link.js +1 -1
  48. package/dist/field/richtext/extensions/Small.js +1 -1
  49. package/dist/index.css +27 -0
  50. package/dist/index.d.ts +1 -1
  51. package/dist/index.js +1 -1
  52. package/dist/ui/RichText.js +8 -0
  53. package/dist/ui/hook/UseElementSize.d.ts +1 -1
  54. package/dist/ui/util/CreateTypo.d.ts +1 -1
  55. package/package.json +2 -2
@@ -1,148 +1,148 @@
1
1
  export declare function createExample(): {
2
2
  schema: {
3
3
  Fields: import("alinea/core/Type").Type<import("alinea/core/Document").Document<{
4
- text: import("../../field/text").TextField;
5
- hello: import("../../field/text").TextField;
6
- richText: import("../../core").RichTextField<{}, import("../../field/richtext").RichTextOptions<{}>>;
7
- select: import("../../field/select").SelectField<"a" | "b">;
8
- number: import("../../field/number").NumberField;
9
- check: import("../../field/check").CheckField;
10
- date: import("../../field/date").DateField;
11
- code: import("../../field/code").CodeField;
12
- externalLink: import("../../field/link/LinkField").LinkField<import("../..").UrlReference, import("../..").UrlLink<{}>>;
13
- entry: import("../../field/link/LinkField").LinkField<import("../..").EntryReference, import("../..").EntryLink<undefined>>;
14
- entryWithCondition: import("../../field/link/LinkField").LinkField<import("../..").EntryReference, import("../..").EntryLink<undefined>>;
15
- linkMultiple: import("../../field/link/LinkField").LinksField<import("../../core/shape/ListShape").ListRow, import("../..").AnyLink<{}>>;
16
- image: import("../../field/link").ImageField<undefined>;
17
- images: import("../../field/link").ImagesField<undefined>;
18
- file: import("../../field/link/LinkField").LinkField<import("../..").EntryReference, import("../..").EntryLink<undefined>>;
19
- withFields: import("../../field/link/LinkField").LinkField<import("../../core/Reference").Reference, import("../..").AnyLink<{
4
+ text: import("alinea/field/text").TextField;
5
+ hello: import("alinea/field/text").TextField;
6
+ richText: import("alinea/core").RichTextField<{}, import("alinea/field/richtext").RichTextOptions<{}>>;
7
+ select: import("alinea/field/select").SelectField<"a" | "b">;
8
+ number: import("alinea/field/number").NumberField;
9
+ check: import("alinea/field/check").CheckField;
10
+ date: import("alinea/field/date").DateField;
11
+ code: import("alinea/field/code").CodeField;
12
+ externalLink: import("alinea/field/link/LinkField").LinkField<import("alinea/alinea").UrlReference, import("alinea/alinea").UrlLink<{}>>;
13
+ entry: import("alinea/field/link/LinkField").LinkField<import("alinea/alinea").EntryReference, import("alinea/alinea").EntryLink<undefined>>;
14
+ entryWithCondition: import("alinea/field/link/LinkField").LinkField<import("alinea/alinea").EntryReference, import("alinea/alinea").EntryLink<undefined>>;
15
+ linkMultiple: import("alinea/field/link/LinkField").LinksField<import("alinea/core/shape/ListShape").ListRow, import("alinea/types").AnyLink<{}>>;
16
+ image: import("alinea/field/link").ImageField<undefined>;
17
+ images: import("alinea/field/link").ImagesField<undefined>;
18
+ file: import("alinea/field/link/LinkField").LinkField<import("alinea/alinea").EntryReference, import("alinea/alinea").EntryLink<undefined>>;
19
+ withFields: import("alinea/field/link/LinkField").LinkField<import("alinea/core/Reference").Reference, import("alinea/types").AnyLink<{
20
20
  fieldA: string;
21
21
  fieldB: string;
22
22
  }>>;
23
- multipleWithFields: import("../../field/link/LinkField").LinksField<import("../../core/shape/ListShape").ListRow, import("../..").AnyLink<{
23
+ multipleWithFields: import("alinea/field/link/LinkField").LinksField<import("alinea/core/shape/ListShape").ListRow, import("alinea/types").AnyLink<{
24
24
  fieldA: string;
25
25
  fieldB: string;
26
26
  }>>;
27
- list: import("../../core").ListField<({
27
+ list: import("alinea/core").ListField<({
28
28
  _type: "Text";
29
29
  title: string;
30
- text: import("../..").TextDoc<{}>;
30
+ text: import("alinea/alinea").TextDoc<{}>;
31
31
  } | {
32
32
  _type: "Image";
33
- image: import("../..").EntryReference;
34
- }) & import("../../core/shape/ListShape").ListRow, ({
33
+ image: import("alinea/alinea").EntryReference;
34
+ }) & import("alinea/core/shape/ListShape").ListRow, ({
35
35
  _type: "Text";
36
36
  title: string;
37
- text: import("../..").TextDoc<{}>;
37
+ text: import("alinea/alinea").TextDoc<{}>;
38
38
  } | {
39
39
  _type: "Image";
40
- image: import("../..").ImageLink<undefined>;
41
- }) & import("../../core/shape/ListShape").ListRow, import("../../field/list").ListOptions<{
40
+ image: import("alinea/alinea").ImageLink<undefined>;
41
+ }) & import("alinea/core/shape/ListShape").ListRow, import("alinea/field/list").ListOptions<{
42
42
  Text: import("alinea/core/Type").Type<{
43
- title: import("../../field/text").TextField;
44
- text: import("../../core").RichTextField<{}, import("../../field/richtext").RichTextOptions<{}>>;
43
+ title: import("alinea/field/text").TextField;
44
+ text: import("alinea/core").RichTextField<{}, import("alinea/field/richtext").RichTextOptions<{}>>;
45
45
  }>;
46
46
  Image: import("alinea/core/Type").Type<{
47
- image: import("../../field/link").ImageField<undefined>;
47
+ image: import("alinea/field/link").ImageField<undefined>;
48
48
  }>;
49
49
  }>>;
50
- withInitial: import("../../core").RichTextField<{}, import("../../field/richtext").RichTextOptions<{}>>;
51
- nested: import("../../core").RichTextField<{
50
+ withInitial: import("alinea/core").RichTextField<{}, import("alinea/field/richtext").RichTextOptions<{}>>;
51
+ nested: import("alinea/core").RichTextField<{
52
52
  Inner: import("alinea/core/Type").Type<{
53
- checkbox1: import("../../field/check").CheckField;
54
- checkbox2: import("../../field/check").CheckField;
55
- title: import("../../field/text").TextField;
56
- content: import("../../core").RichTextField<{}, import("../../field/richtext").RichTextOptions<{}>>;
53
+ checkbox1: import("alinea/field/check").CheckField;
54
+ checkbox2: import("alinea/field/check").CheckField;
55
+ title: import("alinea/field/text").TextField;
56
+ content: import("alinea/core").RichTextField<{}, import("alinea/field/richtext").RichTextOptions<{}>>;
57
57
  }>;
58
58
  NestLayout: import("alinea/core/Type").Type<{
59
- tabA: import("../../field/text").TextField;
60
- tabB: import("../../field/text").TextField;
61
- object: import("../../field/object").ObjectField<{
62
- fieldA: import("../../field/text").TextField;
63
- fieldB: import("../../field/text").TextField;
59
+ tabA: import("alinea/field/text").TextField;
60
+ tabB: import("alinea/field/text").TextField;
61
+ object: import("alinea/field/object").ObjectField<{
62
+ fieldA: import("alinea/field/text").TextField;
63
+ fieldB: import("alinea/field/text").TextField;
64
64
  }>;
65
65
  }>;
66
- }, import("../../field/richtext").RichTextOptions<{
66
+ }, import("alinea/field/richtext").RichTextOptions<{
67
67
  Inner: import("alinea/core/Type").Type<{
68
- checkbox1: import("../../field/check").CheckField;
69
- checkbox2: import("../../field/check").CheckField;
70
- title: import("../../field/text").TextField;
71
- content: import("../../core").RichTextField<{}, import("../../field/richtext").RichTextOptions<{}>>;
68
+ checkbox1: import("alinea/field/check").CheckField;
69
+ checkbox2: import("alinea/field/check").CheckField;
70
+ title: import("alinea/field/text").TextField;
71
+ content: import("alinea/core").RichTextField<{}, import("alinea/field/richtext").RichTextOptions<{}>>;
72
72
  }>;
73
73
  NestLayout: import("alinea/core/Type").Type<{
74
- tabA: import("../../field/text").TextField;
75
- tabB: import("../../field/text").TextField;
76
- object: import("../../field/object").ObjectField<{
77
- fieldA: import("../../field/text").TextField;
78
- fieldB: import("../../field/text").TextField;
74
+ tabA: import("alinea/field/text").TextField;
75
+ tabB: import("alinea/field/text").TextField;
76
+ object: import("alinea/field/object").ObjectField<{
77
+ fieldA: import("alinea/field/text").TextField;
78
+ fieldB: import("alinea/field/text").TextField;
79
79
  }>;
80
80
  }>;
81
81
  }>>;
82
82
  }>>;
83
83
  Page: import("alinea/core/Type").Type<{
84
- name: import("../../field/path").PathField & import("../../field/text").TextField;
85
- name2: import("../../field/text").TextField;
86
- title: import("../../field/text").TextField;
87
- path: import("../../field/path").PathField;
84
+ name: import("alinea/field/path").PathField & import("alinea/field/text").TextField;
85
+ name2: import("alinea/field/text").TextField;
86
+ title: import("alinea/field/text").TextField;
87
+ path: import("alinea/field/path").PathField;
88
88
  }>;
89
89
  Container: import("alinea/core/Type").Type<{
90
- title: import("../../field/text").TextField;
91
- path: import("../../field/path").PathField;
92
- name: import("../../field/text").TextField;
90
+ title: import("alinea/field/text").TextField;
91
+ path: import("alinea/field/path").PathField;
92
+ name: import("alinea/field/text").TextField;
93
93
  }>;
94
94
  };
95
95
  workspaces: {
96
96
  main: import("alinea/core/Workspace").Workspace<{
97
97
  pages: import("alinea/core/Root").Root<{
98
98
  entry1: import("alinea/core/Page").PageSeed<{
99
- name: import("../../field/path").PathField & import("../../field/text").TextField;
100
- name2: import("../../field/text").TextField;
101
- title: import("../../field/text").TextField;
102
- path: import("../../field/path").PathField;
99
+ name: import("alinea/field/path").PathField & import("alinea/field/text").TextField;
100
+ name2: import("alinea/field/text").TextField;
101
+ title: import("alinea/field/text").TextField;
102
+ path: import("alinea/field/path").PathField;
103
103
  }, Record<string, any>>;
104
104
  entry2: import("alinea/core/Page").PageSeed<{
105
- title: import("../../field/text").TextField;
106
- path: import("../../field/path").PathField;
107
- name: import("../../field/text").TextField;
105
+ title: import("alinea/field/text").TextField;
106
+ path: import("alinea/field/path").PathField;
107
+ name: import("alinea/field/text").TextField;
108
108
  }, Record<string, any>>;
109
109
  }>;
110
110
  multiLanguage: import("alinea/core/Root").Root<{
111
111
  localised1: import("alinea/core/Page").PageSeed<{
112
- name: import("../../field/path").PathField & import("../../field/text").TextField;
113
- name2: import("../../field/text").TextField;
114
- title: import("../../field/text").TextField;
115
- path: import("../../field/path").PathField;
112
+ name: import("alinea/field/path").PathField & import("alinea/field/text").TextField;
113
+ name2: import("alinea/field/text").TextField;
114
+ title: import("alinea/field/text").TextField;
115
+ path: import("alinea/field/path").PathField;
116
116
  }, Record<string, any>>;
117
117
  localised2: import("alinea/core/Page").PageSeed<{
118
- title: import("../../field/text").TextField;
119
- path: import("../../field/path").PathField;
120
- name: import("../../field/text").TextField;
118
+ title: import("alinea/field/text").TextField;
119
+ path: import("alinea/field/path").PathField;
120
+ name: import("alinea/field/text").TextField;
121
121
  }, Record<string, any>>;
122
122
  }>;
123
123
  media: import("alinea/core/media/MediaRoot").MediaRoot<{
124
124
  dir: import("alinea/core/Page").PageSeed<{
125
- title: import("../../field/hidden").HiddenField<string>;
126
- path: import("../../field/hidden").HiddenField<string>;
125
+ title: import("alinea/field/hidden").HiddenField<string>;
126
+ path: import("alinea/field/hidden").HiddenField<string>;
127
127
  }, Record<string, any>>;
128
128
  'file1.png': import("alinea/core/Page").PageSeed<{
129
- title: import("../../field/hidden").HiddenField<string>;
130
- path: import("../../field/hidden").HiddenField<string>;
131
- location: import("../../field/hidden").HiddenField<string>;
132
- extension: import("../../field/hidden").HiddenField<string>;
133
- size: import("../../field/hidden").HiddenField<number>;
134
- hash: import("../../field/hidden").HiddenField<string>;
135
- width: import("../../field/hidden").HiddenField<number>;
136
- height: import("../../field/hidden").HiddenField<number>;
137
- preview: import("../../field/hidden").HiddenField<string>;
138
- averageColor: import("../../field/hidden").HiddenField<string>;
139
- focus: import("../../field/hidden").HiddenField<{
129
+ title: import("alinea/field/hidden").HiddenField<string>;
130
+ path: import("alinea/field/hidden").HiddenField<string>;
131
+ location: import("alinea/field/hidden").HiddenField<string>;
132
+ extension: import("alinea/field/hidden").HiddenField<string>;
133
+ size: import("alinea/field/hidden").HiddenField<number>;
134
+ hash: import("alinea/field/hidden").HiddenField<string>;
135
+ width: import("alinea/field/hidden").HiddenField<number>;
136
+ height: import("alinea/field/hidden").HiddenField<number>;
137
+ preview: import("alinea/field/hidden").HiddenField<string>;
138
+ averageColor: import("alinea/field/hidden").HiddenField<string>;
139
+ focus: import("alinea/field/hidden").HiddenField<{
140
140
  x: number;
141
141
  y: number;
142
142
  }>;
143
- thumbHash: import("../../field/hidden").HiddenField<string>;
143
+ thumbHash: import("alinea/field/hidden").HiddenField<string>;
144
144
  }, Record<string, any>>;
145
145
  }>;
146
146
  }>;
147
147
  };
148
- } & import("alinea/core/driver/TestDriver").TestApi & import("../../core/CMS").CMS;
148
+ } & import("alinea/core/driver/TestDriver").TestApi & import("alinea/core/CMS").CMS;
@@ -1,6 +1,6 @@
1
1
  export declare const TypeWithTabs: import("alinea/core/Type").Type<{
2
- name: import("../../field/path").PathField & import("../../field/text").TextField;
3
- name2: import("../../field/text").TextField;
4
- title: import("../../field/text").TextField;
5
- path: import("../../field/path").PathField;
2
+ name: import("alinea/field/path").PathField & import("alinea/field/text").TextField;
3
+ name2: import("alinea/field/text").TextField;
4
+ title: import("alinea/field/text").TextField;
5
+ path: import("alinea/field/path").PathField;
6
6
  }>;
@@ -5,7 +5,7 @@ function applyJsonPatch(source, patch) {
5
5
  if (!patch || typeof patch !== "object")
6
6
  return source;
7
7
  for (const [key, value] of Object.entries(patch)) {
8
- if (value && typeof value === "object") {
8
+ if (value && typeof value === "object" && !Array.isArray(value)) {
9
9
  if (!source[key])
10
10
  source[key] = {};
11
11
  applyJsonPatch(source[key], value);
@@ -3,7 +3,7 @@ import {
3
3
  Plugin,
4
4
  PluginKey,
5
5
  posToDOMRect
6
- } from "./chunk-HP3RAFUD.js";
6
+ } from "./chunk-QOWSW6DW.js";
7
7
 
8
8
  // node_modules/@popperjs/core/lib/enums.js
9
9
  var top = "top";
@@ -15490,7 +15490,9 @@ export {
15490
15490
  Fragment,
15491
15491
  Slice,
15492
15492
  dropPoint,
15493
+ Transform,
15493
15494
  Selection,
15495
+ SelectionRange,
15494
15496
  TextSelection,
15495
15497
  NodeSelection,
15496
15498
  Plugin,
@@ -15504,6 +15506,7 @@ export {
15504
15506
  Extension,
15505
15507
  isMacOS,
15506
15508
  getMarkAttributes,
15509
+ findParentNodeClosestToPos,
15507
15510
  posToDOMRect,
15508
15511
  Editor,
15509
15512
  markInputRule,
@@ -2,7 +2,7 @@
2
2
  var package_default = {
3
3
  bin: "./dist/cli.js",
4
4
  name: "alinea",
5
- version: "0.9.6",
5
+ version: "0.9.8",
6
6
  license: "MIT",
7
7
  type: "module",
8
8
  scripts: {
@@ -76,7 +76,7 @@ var package_default = {
76
76
  sass: "^1.63.4",
77
77
  sharp: "0.32.6",
78
78
  speedscope: "^1.14.0",
79
- typescript: "^5.3.3",
79
+ typescript: "^5.4.5",
80
80
  "typescript-plugin-css-modules": "^5.0.2",
81
81
  uvu: "^0.5.1"
82
82
  },
package/dist/cli/Serve.js CHANGED
@@ -3,7 +3,7 @@ import {
3
3
  } from "../chunks/chunk-UJJSVROY.js";
4
4
  import {
5
5
  package_default
6
- } from "../chunks/chunk-UUJJ7TAP.js";
6
+ } from "../chunks/chunk-V5DYTTAP.js";
7
7
  import "../chunks/chunk-U5RRZUYZ.js";
8
8
 
9
9
  // src/cli/Serve.ts
package/dist/cli/bin.js CHANGED
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  package_default
3
- } from "../chunks/chunk-UUJJ7TAP.js";
3
+ } from "../chunks/chunk-V5DYTTAP.js";
4
4
  import "../chunks/chunk-U5RRZUYZ.js";
5
5
 
6
6
  // node_modules/mri/lib/index.mjs
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  package_default
3
- } from "../../chunks/chunk-UUJJ7TAP.js";
3
+ } from "../../chunks/chunk-V5DYTTAP.js";
4
4
  import {
5
5
  __commonJS,
6
6
  __toESM
@@ -3,7 +3,7 @@ import {
3
3
  } from "../../chunks/chunk-IKINPSS5.js";
4
4
  import {
5
5
  package_default
6
- } from "../../chunks/chunk-UUJJ7TAP.js";
6
+ } from "../../chunks/chunk-V5DYTTAP.js";
7
7
  import "../../chunks/chunk-U5RRZUYZ.js";
8
8
 
9
9
  // src/cloud/server/CloudAuthServer.ts
@@ -16,7 +16,7 @@ export declare abstract class CMS extends GraphRealm {
16
16
  commit(...operations: Array<Operation>): Promise<{
17
17
  commitHash: string;
18
18
  }>;
19
- get schema(): import("./Schema.js").Schema<{}>;
19
+ get schema(): import("alinea/alinea").Schema<{}>;
20
20
  get workspaces(): Record<string, Workspace>;
21
21
  }
22
22
  export declare namespace CMS {
@@ -40,25 +40,25 @@ export declare namespace Config {
40
40
  export declare function createConfig<Definition extends Config>(definition: Definition): Definition & {
41
41
  schema: {
42
42
  MediaLibrary: Type<{
43
- title: import("../field/hidden.js").HiddenField<string>;
44
- path: import("../field/hidden.js").HiddenField<string>;
43
+ title: import("alinea/field/hidden").HiddenField<string>;
44
+ path: import("alinea/field/hidden").HiddenField<string>;
45
45
  }>;
46
46
  MediaFile: Type<{
47
- title: import("../field/hidden.js").HiddenField<string>;
48
- path: import("../field/hidden.js").HiddenField<string>;
49
- location: import("../field/hidden.js").HiddenField<string>;
50
- extension: import("../field/hidden.js").HiddenField<string>;
51
- size: import("../field/hidden.js").HiddenField<number>;
52
- hash: import("../field/hidden.js").HiddenField<string>;
53
- width: import("../field/hidden.js").HiddenField<number>;
54
- height: import("../field/hidden.js").HiddenField<number>;
55
- preview: import("../field/hidden.js").HiddenField<string>;
56
- averageColor: import("../field/hidden.js").HiddenField<string>;
57
- focus: import("../field/hidden.js").HiddenField<{
47
+ title: import("alinea/field/hidden").HiddenField<string>;
48
+ path: import("alinea/field/hidden").HiddenField<string>;
49
+ location: import("alinea/field/hidden").HiddenField<string>;
50
+ extension: import("alinea/field/hidden").HiddenField<string>;
51
+ size: import("alinea/field/hidden").HiddenField<number>;
52
+ hash: import("alinea/field/hidden").HiddenField<string>;
53
+ width: import("alinea/field/hidden").HiddenField<number>;
54
+ height: import("alinea/field/hidden").HiddenField<number>;
55
+ preview: import("alinea/field/hidden").HiddenField<string>;
56
+ averageColor: import("alinea/field/hidden").HiddenField<string>;
57
+ focus: import("alinea/field/hidden").HiddenField<{
58
58
  x: number;
59
59
  y: number;
60
60
  }>;
61
- thumbHash: import("../field/hidden.js").HiddenField<string>;
61
+ thumbHash: import("alinea/field/hidden").HiddenField<string>;
62
62
  }>;
63
63
  };
64
64
  dashboard: {
@@ -1,19 +1,22 @@
1
1
  import { File } from '@alinea/iso';
2
- import { ListEditor, ListField } from 'alinea/core/field/ListField';
3
- import { RichTextEditor, RichTextField } from 'alinea/core/field/RichTextField';
4
- import type { ListRow } from 'alinea/core/shape/ListShape';
2
+ import { LinkEditor, LinksEditor } from 'alinea/field/link/LinkEditor';
3
+ import { LinkField, LinksField } from 'alinea/field/link/LinkField';
5
4
  import type { Entry } from './Entry.js';
5
+ import { Reference } from './Reference.js';
6
6
  import { TextDoc } from './TextDoc.js';
7
7
  import { CreateOperation, DeleteOp, EditOperation, UploadOperation, UploadOptions } from './Transaction.js';
8
8
  import { Type } from './Type.js';
9
- export declare function Edit<Definition>(entryId: string, type?: Type<Definition>): EditOperation<Definition>;
10
- export declare namespace Edit {
11
- function create<Definition>(type: Type<Definition>): CreateOperation<Definition>;
12
- function createEntry(entry: Entry): CreateOperation<unknown>;
13
- function remove(entryId: string): DeleteOp;
14
- function upload(file: File | [string, Uint8Array], options?: UploadOptions): UploadOperation;
15
- function archive(entryId: string): EditOperation<unknown>;
16
- function publish(entryId: string): EditOperation<unknown>;
17
- function list<StoredValue extends ListRow, QueryValue extends ListRow>(field: ListField<StoredValue, QueryValue, any>, current?: Array<StoredValue>): ListEditor<StoredValue>;
18
- function richText<Blocks>(field: RichTextField<Blocks, any>, current?: TextDoc<Blocks>): RichTextEditor<Blocks>;
19
- }
9
+ import { ListEditor, ListField } from './field/ListField.js';
10
+ import { RichTextEditor, RichTextField } from './field/RichTextField.js';
11
+ import type { ListRow } from './shape/ListShape';
12
+ export declare function update<Definition>(entryId: string, type?: Type<Definition>): EditOperation<Definition>;
13
+ export declare function create<Definition>(type: Type<Definition>): CreateOperation<Definition>;
14
+ export declare function createEntry(entry: Entry): CreateOperation<unknown>;
15
+ export declare function remove(entryId: string): DeleteOp;
16
+ export declare function upload(file: File | [string, Uint8Array], options?: UploadOptions): UploadOperation;
17
+ export declare function archive(entryId: string): EditOperation<unknown>;
18
+ export declare function publish(entryId: string): EditOperation<unknown>;
19
+ export declare function list<StoredValue extends ListRow, QueryValue extends ListRow>(field: ListField<StoredValue, QueryValue, any>, current?: Array<StoredValue>): ListEditor<StoredValue>;
20
+ export declare function richText<Blocks = unknown>(field?: RichTextField<Blocks, any>, current?: TextDoc<Blocks>): RichTextEditor<Blocks>;
21
+ export declare function link<StoredValue extends Reference, QueryValue>(field: LinkField<StoredValue, QueryValue>): LinkEditor<StoredValue>;
22
+ export declare function links<StoredValue extends ListRow, QueryValue>(field: LinksField<StoredValue, QueryValue>): LinksEditor<StoredValue>;
package/dist/core/Edit.js CHANGED
@@ -1,51 +1,58 @@
1
1
  import "../chunks/chunk-U5RRZUYZ.js";
2
2
 
3
3
  // src/core/Edit.ts
4
- import { ListEditor } from "alinea/core/field/ListField";
5
- import { RichTextEditor } from "alinea/core/field/RichTextField";
4
+ import { LinkEditor, LinksEditor } from "alinea/field/link/LinkEditor";
6
5
  import {
7
6
  CreateOperation,
8
7
  DeleteOp,
9
8
  EditOperation,
10
9
  UploadOperation
11
10
  } from "./Transaction.js";
12
- function Edit(entryId, type) {
11
+ import { ListEditor } from "./field/ListField.js";
12
+ import { RichTextEditor } from "./field/RichTextField.js";
13
+ function update(entryId, type) {
13
14
  return new EditOperation(entryId);
14
15
  }
15
- ((Edit2) => {
16
- function create(type) {
17
- return new CreateOperation({}, type);
18
- }
19
- Edit2.create = create;
20
- function createEntry(entry) {
21
- return new CreateOperation(entry);
22
- }
23
- Edit2.createEntry = createEntry;
24
- function remove(entryId) {
25
- return new DeleteOp(entryId);
26
- }
27
- Edit2.remove = remove;
28
- function upload(file, options) {
29
- return new UploadOperation(file, options);
30
- }
31
- Edit2.upload = upload;
32
- function archive(entryId) {
33
- return Edit2(entryId).archive();
34
- }
35
- Edit2.archive = archive;
36
- function publish(entryId) {
37
- return Edit2(entryId).publish();
38
- }
39
- Edit2.publish = publish;
40
- function list(field, current) {
41
- return new ListEditor(current);
42
- }
43
- Edit2.list = list;
44
- function richText(field, current) {
45
- return new RichTextEditor(current);
46
- }
47
- Edit2.richText = richText;
48
- })(Edit || (Edit = {}));
16
+ function create(type) {
17
+ return new CreateOperation({}, type);
18
+ }
19
+ function createEntry(entry) {
20
+ return new CreateOperation(entry);
21
+ }
22
+ function remove(entryId) {
23
+ return new DeleteOp(entryId);
24
+ }
25
+ function upload(file, options) {
26
+ return new UploadOperation(file, options);
27
+ }
28
+ function archive(entryId) {
29
+ return update(entryId).archive();
30
+ }
31
+ function publish(entryId) {
32
+ return update(entryId).publish();
33
+ }
34
+ function list(field, current) {
35
+ return new ListEditor(current);
36
+ }
37
+ function richText(field, current) {
38
+ return new RichTextEditor(current);
39
+ }
40
+ function link(field) {
41
+ return new LinkEditor();
42
+ }
43
+ function links(field) {
44
+ return new LinksEditor();
45
+ }
49
46
  export {
50
- Edit
47
+ archive,
48
+ create,
49
+ createEntry,
50
+ link,
51
+ links,
52
+ list,
53
+ publish,
54
+ remove,
55
+ richText,
56
+ update,
57
+ upload
51
58
  };
@@ -13,8 +13,8 @@ export declare namespace Query {
13
13
  const isNot: <T>(a: EV<T>, b: EV<T>) => Expr<boolean>;
14
14
  const isNull: <T>(a: EV<T>) => Expr<boolean>;
15
15
  const isNotNull: <T>(a: EV<T>) => Expr<boolean>;
16
- const isIn: <T>(a: EV<T>, b: EV<readonly T[]> | Cursor.Find<T>) => Expr<boolean>;
17
- const isNotIn: <T>(a: EV<T>, b: EV<readonly T[]> | Cursor.Find<T>) => Expr<boolean>;
16
+ const isIn: <T>(a: EV<T>, b: EV<ReadonlyArray<T>> | Cursor.Find<T>) => Expr<boolean>;
17
+ const isNotIn: <T>(a: EV<T>, b: EV<ReadonlyArray<T>> | Cursor.Find<T>) => Expr<boolean>;
18
18
  const isGreater: <T>(a: EV<T>, b: EV<T>) => Expr<boolean>;
19
19
  const isGreaterOrEqual: <T>(a: EV<T>, b: EV<T>) => Expr<boolean>;
20
20
  const isLess: <T>(a: EV<T>, b: EV<T>) => Expr<boolean>;
@@ -26,8 +26,8 @@ export declare namespace Query {
26
26
  const remainder: (a: EV<number>, b: EV<number>) => Expr<number>;
27
27
  const concat: (a: EV<string>, b: EV<string>) => Expr<string>;
28
28
  const like: (a: EV<string>, b: EV<string>) => Expr<boolean>;
29
- const at: <T>(a: EV<T[]>, index: number) => Expr<T | null>;
30
- const includes: <T>(a: EV<T[]>, value: EV<T>) => Expr<boolean>;
29
+ const at: <T>(a: EV<Array<T>>, index: number) => Expr<T | null>;
30
+ const includes: <T>(a: EV<Array<T>>, value: EV<T>) => Expr<boolean>;
31
31
  const url: Expr<string>;
32
32
  const path: Expr<string>;
33
33
  const title: Expr<string>;
@@ -1829,6 +1829,14 @@ function mapNode(name, attributes) {
1829
1829
  return { _type: "small", content: [] };
1830
1830
  case "a":
1831
1831
  return { _type: "link", ...attributes, content: [] };
1832
+ case "table":
1833
+ return { _type: "table", content: [] };
1834
+ case "td":
1835
+ return { _type: "tableCell", content: [] };
1836
+ case "th":
1837
+ return { _type: "tableHeader", content: [] };
1838
+ case "tr":
1839
+ return { _type: "tableRow", content: [] };
1832
1840
  }
1833
1841
  }
1834
1842
  function parseHTML(html) {
@@ -6,17 +6,17 @@ export declare function fileSummarySelect(): {
6
6
  workspace: import("../pages/Expr.js").Expr<string>;
7
7
  root: import("../pages/Expr.js").Expr<string>;
8
8
  title: import("../pages/Expr.js").Expr<string>;
9
- extension: import("../../field/hidden.js").HiddenField<string>;
10
- size: import("../../field/hidden.js").HiddenField<number>;
11
- preview: import("../../field/hidden.js").HiddenField<string>;
12
- thumbHash: import("../../field/hidden.js").HiddenField<string>;
13
- averageColor: import("../../field/hidden.js").HiddenField<string>;
14
- focus: import("../../field/hidden.js").HiddenField<{
9
+ extension: import("alinea/field/hidden").HiddenField<string>;
10
+ size: import("alinea/field/hidden").HiddenField<number>;
11
+ preview: import("alinea/field/hidden").HiddenField<string>;
12
+ thumbHash: import("alinea/field/hidden").HiddenField<string>;
13
+ averageColor: import("alinea/field/hidden").HiddenField<string>;
14
+ focus: import("alinea/field/hidden").HiddenField<{
15
15
  x: number;
16
16
  y: number;
17
17
  }>;
18
- width: import("../../field/hidden.js").HiddenField<number>;
19
- height: import("../../field/hidden.js").HiddenField<number>;
18
+ width: import("alinea/field/hidden").HiddenField<number>;
19
+ height: import("alinea/field/hidden").HiddenField<number>;
20
20
  parents: import("../pages/Cursor.js").Cursor.Find<{
21
21
  entryId: string;
22
22
  i18nId: string;