@prismicio/editor-fields 0.4.67-alpha.4 → 0.4.67-alpha.5

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 (32) hide show
  1. package/dist/core/MediaLibrary/hooks/mediaLibraryData.d.ts +13 -13
  2. package/dist/core/MediaLibrary/hooks/tagData.d.ts +3 -3
  3. package/dist/core/MediaLibrary/hooks/useMediaLibraryUpload.d.ts +1 -1
  4. package/dist/core/MediaLibrary/hooks/useSelectedMedia.d.ts +1 -1
  5. package/dist/core/service/customType.d.ts +9 -9
  6. package/dist/core/service/document.d.ts +85 -85
  7. package/dist/core/service/documentSearch.d.ts +15 -15
  8. package/dist/core/service/repository.d.ts +6 -6
  9. package/dist/core/service/role.d.ts +10 -10
  10. package/dist/fields/ImageField/useImageField.d.ts +1 -1
  11. package/dist/fields/ImageField/useImageFieldImageUpload.d.ts +1 -1
  12. package/dist/fields/IntegrationField/integrationData.d.ts +5 -5
  13. package/dist/fields/LinkField/Documents/documentsData.d.ts +4 -4
  14. package/dist/fields/RichTextField/coreExtensions/ListItem.d.ts +4 -4
  15. package/dist/fields/RichTextField/extensions/Image/useImageView.d.ts +1 -1
  16. package/dist/fields/RichTextField/extensions/Table/Table.d.ts +6 -0
  17. package/dist/fields/RichTextField/extensions/Table/TableCell/plugins/TableHandles/TableHandlesPlugin.d.ts +1 -1
  18. package/dist/fields/RichTextField/extensions/Table/TableCell/plugins/TableHandles/index.d.ts +1 -1
  19. package/dist/fields/RichTextField/extensions/Table/TableControlsWrapper.d.ts +3 -0
  20. package/dist/fields/RichTextField/extensions/Table/menus/utils.d.ts +5 -0
  21. package/dist/fields/RichTextField/extensions/Table/plugins/TableHandles/TableHandlesPlugin.d.ts +8 -0
  22. package/dist/fields/RichTextField/extensions/Table/plugins/TableHandles/TableHandlesPluginDef.d.ts +8 -0
  23. package/dist/fields/RichTextField/extensions/Table/plugins/TableHandles/TableHandlesPluginView.d.ts +34 -0
  24. package/dist/fields/RichTextField/extensions/Table/plugins/TableHandles/TableHandlesPluginViewClass.d.ts +34 -0
  25. package/dist/fields/RichTextField/extensions/Table/plugins/TableHandles/index.d.ts +1 -0
  26. package/dist/fields/RichTextField/extensions/Table/plugins/TableHandles/utils.d.ts +23 -0
  27. package/dist/fields/RichTextField/extensions/Table/plugins/index.d.ts +1 -0
  28. package/dist/fields/RichTextField/extensions/Table/utils.d.ts +25 -25
  29. package/dist/index.cjs.js +42 -42
  30. package/dist/index.es.js +29590 -27297
  31. package/dist/slices/utils.d.ts +4 -4
  32. package/package.json +4 -10
@@ -20,8 +20,8 @@ interface SearchDocumentsArgs {
20
20
  }
21
21
  export declare function searchDocuments(args: SearchDocumentsArgs): Promise<{
22
22
  results: {
23
- id: string;
24
23
  title: string;
24
+ id: string;
25
25
  custom_type_id: string;
26
26
  group_lang_id: string;
27
27
  language: {
@@ -57,8 +57,8 @@ export declare function searchDocuments(args: SearchDocumentsArgs): Promise<{
57
57
  }[];
58
58
  } | {
59
59
  results: {
60
- id: string;
61
60
  title: string;
61
+ id: string;
62
62
  custom_type_id: string;
63
63
  group_lang_id: string;
64
64
  locale_id?: string | undefined;
@@ -75,10 +75,10 @@ export declare function searchDocuments(args: SearchDocumentsArgs): Promise<{
75
75
  version_id: string;
76
76
  tags: string[];
77
77
  last_modified_date: Date;
78
+ summary?: string | undefined;
78
79
  preview_image?: string | undefined;
79
80
  uid?: string | undefined;
80
81
  custom_type_id?: string | undefined;
81
- summary?: string | undefined;
82
82
  author_ids?: string[] | undefined;
83
83
  highlights?: {
84
84
  uid?: string | undefined;
@@ -101,8 +101,8 @@ interface SearchDocumentsQueryOptionsArgs {
101
101
  }
102
102
  export declare function searchDocumentsQueryOptions(args: SearchDocumentsQueryOptionsArgs): import("@tanstack/react-query/build/legacy/types").UseQueryOptions<{
103
103
  results: {
104
- id: string;
105
104
  title: string;
105
+ id: string;
106
106
  custom_type_id: string;
107
107
  group_lang_id: string;
108
108
  language: {
@@ -138,8 +138,8 @@ export declare function searchDocumentsQueryOptions(args: SearchDocumentsQueryOp
138
138
  }[];
139
139
  } | {
140
140
  results: {
141
- id: string;
142
141
  title: string;
142
+ id: string;
143
143
  custom_type_id: string;
144
144
  group_lang_id: string;
145
145
  locale_id?: string | undefined;
@@ -156,10 +156,10 @@ export declare function searchDocumentsQueryOptions(args: SearchDocumentsQueryOp
156
156
  version_id: string;
157
157
  tags: string[];
158
158
  last_modified_date: Date;
159
+ summary?: string | undefined;
159
160
  preview_image?: string | undefined;
160
161
  uid?: string | undefined;
161
162
  custom_type_id?: string | undefined;
162
- summary?: string | undefined;
163
163
  author_ids?: string[] | undefined;
164
164
  highlights?: {
165
165
  uid?: string | undefined;
@@ -168,8 +168,8 @@ export declare function searchDocumentsQueryOptions(args: SearchDocumentsQueryOp
168
168
  }[];
169
169
  }, Error, {
170
170
  results: {
171
- id: string;
172
171
  title: string;
172
+ id: string;
173
173
  custom_type_id: string;
174
174
  group_lang_id: string;
175
175
  language: {
@@ -205,8 +205,8 @@ export declare function searchDocumentsQueryOptions(args: SearchDocumentsQueryOp
205
205
  }[];
206
206
  } | {
207
207
  results: {
208
- id: string;
209
208
  title: string;
209
+ id: string;
210
210
  custom_type_id: string;
211
211
  group_lang_id: string;
212
212
  locale_id?: string | undefined;
@@ -223,10 +223,10 @@ export declare function searchDocumentsQueryOptions(args: SearchDocumentsQueryOp
223
223
  version_id: string;
224
224
  tags: string[];
225
225
  last_modified_date: Date;
226
+ summary?: string | undefined;
226
227
  preview_image?: string | undefined;
227
228
  uid?: string | undefined;
228
229
  custom_type_id?: string | undefined;
229
- summary?: string | undefined;
230
230
  author_ids?: string[] | undefined;
231
231
  highlights?: {
232
232
  uid?: string | undefined;
@@ -251,8 +251,8 @@ export declare function searchDocumentsQueryOptions(args: SearchDocumentsQueryOp
251
251
  }]> & {
252
252
  initialData?: import("@tanstack/query-core/build/legacy/hydration-DTVzC0E7").L<{
253
253
  results: {
254
- id: string;
255
254
  title: string;
255
+ id: string;
256
256
  custom_type_id: string;
257
257
  group_lang_id: string;
258
258
  language: {
@@ -288,8 +288,8 @@ export declare function searchDocumentsQueryOptions(args: SearchDocumentsQueryOp
288
288
  }[];
289
289
  } | {
290
290
  results: {
291
- id: string;
292
291
  title: string;
292
+ id: string;
293
293
  custom_type_id: string;
294
294
  group_lang_id: string;
295
295
  locale_id?: string | undefined;
@@ -306,10 +306,10 @@ export declare function searchDocumentsQueryOptions(args: SearchDocumentsQueryOp
306
306
  version_id: string;
307
307
  tags: string[];
308
308
  last_modified_date: Date;
309
+ summary?: string | undefined;
309
310
  preview_image?: string | undefined;
310
311
  uid?: string | undefined;
311
312
  custom_type_id?: string | undefined;
312
- summary?: string | undefined;
313
313
  author_ids?: string[] | undefined;
314
314
  highlights?: {
315
315
  uid?: string | undefined;
@@ -335,8 +335,8 @@ export declare function searchDocumentsQueryOptions(args: SearchDocumentsQueryOp
335
335
  } | undefined;
336
336
  }], {
337
337
  results: {
338
- id: string;
339
338
  title: string;
339
+ id: string;
340
340
  custom_type_id: string;
341
341
  group_lang_id: string;
342
342
  language: {
@@ -372,8 +372,8 @@ export declare function searchDocumentsQueryOptions(args: SearchDocumentsQueryOp
372
372
  }[];
373
373
  } | {
374
374
  results: {
375
- id: string;
376
375
  title: string;
376
+ id: string;
377
377
  custom_type_id: string;
378
378
  group_lang_id: string;
379
379
  locale_id?: string | undefined;
@@ -390,10 +390,10 @@ export declare function searchDocumentsQueryOptions(args: SearchDocumentsQueryOp
390
390
  version_id: string;
391
391
  tags: string[];
392
392
  last_modified_date: Date;
393
+ summary?: string | undefined;
393
394
  preview_image?: string | undefined;
394
395
  uid?: string | undefined;
395
396
  custom_type_id?: string | undefined;
396
- summary?: string | undefined;
397
397
  author_ids?: string[] | undefined;
398
398
  highlights?: {
399
399
  uid?: string | undefined;
@@ -37,28 +37,28 @@ declare const repositorySchema: z.ZodEffects<z.ZodObject<{
37
37
  name: z.ZodString;
38
38
  is_master: z.ZodOptional<z.ZodBoolean>;
39
39
  }, "strip", z.ZodTypeAny, {
40
- id: string;
41
40
  name: string;
41
+ id: string;
42
42
  is_master?: boolean | undefined;
43
43
  }, {
44
- id: string;
45
44
  name: string;
45
+ id: string;
46
46
  is_master?: boolean | undefined;
47
47
  }>, {
48
48
  isMaster?: boolean | undefined;
49
49
  id: string;
50
50
  label: string;
51
51
  }, {
52
- id: string;
53
52
  name: string;
53
+ id: string;
54
54
  is_master?: boolean | undefined;
55
55
  }>, "many">, {
56
56
  isMaster?: boolean | undefined;
57
57
  id: string;
58
58
  label: string;
59
59
  }[], {
60
- id: string;
61
60
  name: string;
61
+ id: string;
62
62
  is_master?: boolean | undefined;
63
63
  }[]>;
64
64
  authors: z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodObject<{
@@ -126,8 +126,8 @@ declare const repositorySchema: z.ZodEffects<z.ZodObject<{
126
126
  starterId?: string | undefined;
127
127
  }, {
128
128
  languages: {
129
- id: string;
130
129
  name: string;
130
+ id: string;
131
131
  is_master?: boolean | undefined;
132
132
  }[];
133
133
  storageVersion: {
@@ -175,8 +175,8 @@ declare const repositorySchema: z.ZodEffects<z.ZodObject<{
175
175
  starterId?: string | undefined;
176
176
  }, {
177
177
  languages: {
178
- id: string;
179
178
  name: string;
179
+ id: string;
180
180
  is_master?: boolean | undefined;
181
181
  }[];
182
182
  storageVersion: {
@@ -284,12 +284,12 @@ export declare const TeamSpace: z.ZodObject<{
284
284
  name: z.ZodString;
285
285
  customTypes: z.ZodArray<z.ZodString, "many">;
286
286
  }, "strip", z.ZodTypeAny, {
287
- id: string;
288
287
  name: string;
288
+ id: string;
289
289
  customTypes: string[];
290
290
  }, {
291
- id: string;
292
291
  name: string;
292
+ id: string;
293
293
  customTypes: string[];
294
294
  }>;
295
295
  export type TeamSpace = z.infer<typeof TeamSpace>;
@@ -310,24 +310,24 @@ declare const TeamSpacesResponse: z.ZodObject<{
310
310
  name: z.ZodString;
311
311
  customTypes: z.ZodArray<z.ZodString, "many">;
312
312
  }, "strip", z.ZodTypeAny, {
313
- id: string;
314
313
  name: string;
314
+ id: string;
315
315
  customTypes: string[];
316
316
  }, {
317
- id: string;
318
317
  name: string;
318
+ id: string;
319
319
  customTypes: string[];
320
320
  }>, "many">;
321
321
  }, "strip", z.ZodTypeAny, {
322
322
  results: {
323
- id: string;
324
323
  name: string;
324
+ id: string;
325
325
  customTypes: string[];
326
326
  }[];
327
327
  }, {
328
328
  results: {
329
- id: string;
330
329
  name: string;
330
+ id: string;
331
331
  customTypes: string[];
332
332
  }[];
333
333
  }>;
@@ -340,27 +340,27 @@ interface GetTeamSpacesArgs {
340
340
  export declare function getTeamSpaces(args: GetTeamSpacesArgs): Promise<TeamSpacesResponse>;
341
341
  export declare function getTeamSpacesOptions(args: GetTeamSpacesArgs): import("@tanstack/react-query/build/legacy/types").UseQueryOptions<{
342
342
  results: {
343
- id: string;
344
343
  name: string;
344
+ id: string;
345
345
  customTypes: string[];
346
346
  }[];
347
347
  }, Error, {
348
- id: string;
349
348
  name: string;
349
+ id: string;
350
350
  customTypes: string[];
351
351
  }[], (string | GetTeamSpacesArgs)[]> & {
352
352
  initialData?: import("@tanstack/query-core/build/legacy/hydration-DTVzC0E7").L<{
353
353
  results: {
354
- id: string;
355
354
  name: string;
355
+ id: string;
356
356
  customTypes: string[];
357
357
  }[];
358
358
  }> | undefined;
359
359
  } & {
360
360
  queryKey: import("@tanstack/query-core/build/legacy/hydration-DTVzC0E7").E<(string | GetTeamSpacesArgs)[], {
361
361
  results: {
362
- id: string;
363
362
  name: string;
363
+ id: string;
364
364
  customTypes: string[];
365
365
  }[];
366
366
  }>;
@@ -93,8 +93,8 @@ export declare function useImageField(props: useImageFieldProps): {
93
93
  kind: string;
94
94
  size: number;
95
95
  tags: {
96
- id: string;
97
96
  name: string;
97
+ id: string;
98
98
  created_at: number;
99
99
  last_modified: number;
100
100
  count: number;
@@ -9,8 +9,8 @@ export declare function useImageFieldImageUpload(args: UseImageFieldImageUploadA
9
9
  kind: string;
10
10
  size: number;
11
11
  tags: {
12
- id: string;
13
12
  name: string;
13
+ id: string;
14
14
  created_at: number;
15
15
  last_modified: number;
16
16
  count: number;
@@ -5,16 +5,16 @@ interface IntegrationCatalogSearchArgs {
5
5
  }
6
6
  export declare function useIntegrationCatalogSearch(args: IntegrationCatalogSearchArgs): {
7
7
  items: {
8
- id: string;
9
8
  title: string;
9
+ id: string;
10
10
  description?: string | undefined;
11
11
  imageURL?: string | undefined;
12
12
  }[];
13
13
  response: {
14
14
  page: number;
15
15
  items: {
16
- id: string;
17
16
  title: string;
17
+ id: string;
18
18
  description?: string | undefined;
19
19
  imageURL?: string | undefined;
20
20
  }[];
@@ -29,13 +29,13 @@ declare const integrationItem: z.ZodObject<{
29
29
  imageURL: z.ZodOptional<z.ZodString>;
30
30
  description: z.ZodOptional<z.ZodString>;
31
31
  }, "strip", z.ZodTypeAny, {
32
- id: string;
33
32
  title: string;
33
+ id: string;
34
34
  description?: string | undefined;
35
35
  imageURL?: string | undefined;
36
36
  }, {
37
- id: string;
38
37
  title: string;
38
+ id: string;
39
39
  description?: string | undefined;
40
40
  imageURL?: string | undefined;
41
41
  }>;
@@ -46,8 +46,8 @@ interface IntegrationCatalogReadArgs {
46
46
  }
47
47
  export declare function useIntegrationCatalogRead(args: IntegrationCatalogReadArgs): {
48
48
  item: {
49
- id: string;
50
49
  title: string;
50
+ id: string;
51
51
  description?: string | undefined;
52
52
  imageURL?: string | undefined;
53
53
  };
@@ -43,17 +43,17 @@ export declare function useDocuments(params: {
43
43
  version_id: string;
44
44
  tags: string[];
45
45
  last_modified_date: Date;
46
+ summary?: string | undefined;
46
47
  preview_image?: string | undefined;
47
48
  uid?: string | undefined;
48
49
  custom_type_id?: string | undefined;
49
- summary?: string | undefined;
50
50
  author_ids?: string[] | undefined;
51
51
  highlights?: {
52
52
  uid?: string | undefined;
53
53
  } | undefined;
54
54
  }))[];
55
- id: string;
56
55
  title: string;
56
+ id: string;
57
57
  custom_type_id: string;
58
58
  group_lang_id: string;
59
59
  language: {
@@ -99,17 +99,17 @@ export declare function useDocuments(params: {
99
99
  version_id: string;
100
100
  tags: string[];
101
101
  last_modified_date: Date;
102
+ summary?: string | undefined;
102
103
  preview_image?: string | undefined;
103
104
  uid?: string | undefined;
104
105
  custom_type_id?: string | undefined;
105
- summary?: string | undefined;
106
106
  author_ids?: string[] | undefined;
107
107
  highlights?: {
108
108
  uid?: string | undefined;
109
109
  } | undefined;
110
110
  }))[];
111
- id: string;
112
111
  title: string;
112
+ id: string;
113
113
  custom_type_id: string;
114
114
  group_lang_id: string;
115
115
  locale_id?: string | undefined;
@@ -3,7 +3,7 @@ declare const _default: {
3
3
  component: import("@tiptap/core").Node<import("@tiptap/extension-list-item").ListItemOptions, any>;
4
4
  converter: {
5
5
  fromPrismic(schema: Schema<any, any>): (list: {
6
- type: "image" | "embed" | "paragraph" | "heading1" | "heading2" | "heading3" | "heading4" | "heading5" | "heading6" | "strong" | "em" | "preformatted" | "hyperlink" | "list-item" | "o-list-item" | "rtl";
6
+ type: "em" | "embed" | "strong" | "image" | "paragraph" | "heading1" | "heading2" | "heading3" | "heading4" | "heading5" | "heading6" | "preformatted" | "hyperlink" | "list-item" | "o-list-item" | "rtl";
7
7
  content: {
8
8
  text: string;
9
9
  } & {
@@ -56,7 +56,7 @@ declare const _default: {
56
56
  } | {
57
57
  start: number;
58
58
  end: number;
59
- type: "strong" | "em" | "list-item";
59
+ type: "em" | "strong" | "list-item";
60
60
  })[] | undefined;
61
61
  };
62
62
  } & {
@@ -64,7 +64,7 @@ declare const _default: {
64
64
  direction?: string | undefined;
65
65
  }) => ProsemirrorNode | undefined;
66
66
  toPrismic(node: ProsemirrorNode, nodeType: "list-item" | "o-list-item"): readonly ({
67
- type: "image" | "embed" | "paragraph" | "heading1" | "heading2" | "heading3" | "heading4" | "heading5" | "heading6" | "strong" | "em" | "preformatted" | "hyperlink" | "list-item" | "o-list-item" | "rtl";
67
+ type: "em" | "embed" | "strong" | "image" | "paragraph" | "heading1" | "heading2" | "heading3" | "heading4" | "heading5" | "heading6" | "preformatted" | "hyperlink" | "list-item" | "o-list-item" | "rtl";
68
68
  content: {
69
69
  text: string;
70
70
  } & {
@@ -117,7 +117,7 @@ declare const _default: {
117
117
  } | {
118
118
  start: number;
119
119
  end: number;
120
- type: "strong" | "em" | "list-item";
120
+ type: "em" | "strong" | "list-item";
121
121
  })[] | undefined;
122
122
  };
123
123
  } & {
@@ -25,8 +25,8 @@ export declare function useImageView(props: useImageViewProps): {
25
25
  kind: string;
26
26
  size: number;
27
27
  tags: {
28
- id: string;
29
28
  name: string;
29
+ id: string;
30
30
  created_at: number;
31
31
  last_modified: number;
32
32
  count: number;
@@ -20,6 +20,12 @@ declare module "@tiptap/core" {
20
20
  * @example editor.commands.moveRow("up")
21
21
  */
22
22
  moveRow: (direction: "up" | "down") => ReturnType;
23
+ /**
24
+ * Move the selected column left or right
25
+ * @returns True if the command was successful, otherwise false
26
+ * @example editor.commands.moveColumn("left")
27
+ */
28
+ moveColumn: (direction: "left" | "right") => ReturnType;
23
29
  };
24
30
  }
25
31
  }
@@ -2,7 +2,7 @@ import type { Editor } from "@tiptap/core";
2
2
  import { Plugin } from "@tiptap/pm/state";
3
3
  import { DecorationSet } from "@tiptap/pm/view";
4
4
  /** Plugin responsible for showing and hiding the row and column handles. */
5
- export declare function TableHandlesPlugin(this: {
5
+ export declare function tableCellHandlesPlugin(this: {
6
6
  editor: Editor;
7
7
  name: string;
8
8
  }): Plugin<DecorationSet>;
@@ -1 +1 @@
1
- export { TableHandlesPlugin } from "./TableHandlesPlugin";
1
+ export { tableCellHandlesPlugin as TableHandlesPlugin } from "./TableHandlesPlugin";
@@ -0,0 +1,3 @@
1
+ /// <reference types="react" />
2
+ import { type NodeViewProps } from "@tiptap/react";
3
+ export declare function TableControlsWrapper({ editor }: NodeViewProps): JSX.Element;
@@ -14,5 +14,10 @@ export declare const isSingleRow: (editor: Editor) => boolean;
14
14
  * Column utilities
15
15
  */
16
16
  export declare const isFirstColumn: (editor: Editor) => boolean;
17
+ export declare function isSecondColumn(editor: Editor): boolean;
18
+ export declare function isFirstOrLastColumn(editor: Editor): {
19
+ isFirstColumn: boolean;
20
+ isLastColumn: boolean;
21
+ };
17
22
  export declare const isHeaderColumnToggled: (editor: Editor) => boolean;
18
23
  export declare const isSingleColumn: (editor: Editor) => boolean;
@@ -0,0 +1,8 @@
1
+ import type { Editor } from "@tiptap/core";
2
+ import { Plugin } from "@tiptap/pm/state";
3
+ import { DecorationSet } from "@tiptap/pm/view";
4
+ /** Plugin responsible for showing and hiding the row and column handles. */
5
+ export declare function tableHandlesPlugin(args: {
6
+ editor: Editor;
7
+ name: string;
8
+ }): Plugin<DecorationSet>;
@@ -0,0 +1,8 @@
1
+ import type { Editor } from "@tiptap/core";
2
+ import { Plugin } from "@tiptap/pm/state";
3
+ import { DecorationSet } from "@tiptap/pm/view";
4
+ /** Plugin responsible for showing and hiding the row and column handles. */
5
+ export declare function tableHandlesPlugin(args: {
6
+ editor: Editor;
7
+ name: string;
8
+ }): Plugin<DecorationSet>;
@@ -0,0 +1,34 @@
1
+ import { type PluginView } from "@tiptap/pm/state";
2
+ import type { EditorView } from "@tiptap/pm/view";
3
+ /**
4
+ * This plugin centralizes the logic for showing and hiding the row and column
5
+ * handle buttons (the ones that on click open a floating menu).
6
+ *
7
+ * Ideally, hiding and showing the handles would be handled using only CSS,
8
+ * but identifying the topmost cell in a column is not trivial, as the grouping
9
+ * of cells in a column is not clearly defined in the DOM (only by colgroup),
10
+ * and CSS cannot dynamically select it depending on the hovered cell.
11
+ *
12
+ * Another option was to dynamically generate hardcoded selectors, given that
13
+ * we know the number of rows and cells, but inline styles can only contain
14
+ * property declarations, not pseudo-classes like :hover.
15
+ *
16
+ * That leaves us with handling it solely in JavaScript, which is what this
17
+ * plugin does.
18
+ */
19
+ export declare class TableHandlesPluginView implements PluginView {
20
+ private readonly view;
21
+ private abortController;
22
+ private currentRowHandle;
23
+ private currentColumnHandle;
24
+ constructor(view: EditorView);
25
+ update(view: EditorView): void;
26
+ destroy(): void;
27
+ private attachEventListeners;
28
+ private showCurrentHandles;
29
+ private hidePreviousHandles;
30
+ private getRowHandle;
31
+ private getColumnHandle;
32
+ private displayHandle;
33
+ private hideHandle;
34
+ }
@@ -0,0 +1,34 @@
1
+ import { type PluginView } from "@tiptap/pm/state";
2
+ import type { EditorView } from "@tiptap/pm/view";
3
+ /**
4
+ * This plugin centralizes the logic for showing and hiding the row and column
5
+ * handle buttons (the ones that on click open a floating menu).
6
+ *
7
+ * Ideally, hiding and showing the handles would be handled using only CSS,
8
+ * but identifying the topmost cell in a column is not trivial, as the grouping
9
+ * of cells in a column is not clearly defined in the DOM (only by colgroup),
10
+ * and CSS cannot dynamically select it depending on the hovered cell.
11
+ *
12
+ * Another option was to dynamically generate hardcoded selectors, given that
13
+ * we know the number of rows and cells, but inline styles can only contain
14
+ * property declarations, not pseudo-classes like :hover.
15
+ *
16
+ * That leaves us with handling it solely in JavaScript, which is what this
17
+ * plugin does.
18
+ */
19
+ export declare class TableHandlesPluginView implements PluginView {
20
+ private readonly view;
21
+ private abortController;
22
+ private currentRowHandle;
23
+ private currentColumnHandle;
24
+ constructor(view: EditorView);
25
+ update(view: EditorView): void;
26
+ destroy(): void;
27
+ private attachEventListeners;
28
+ private showCurrentHandles;
29
+ private hidePreviousHandles;
30
+ private getRowHandle;
31
+ private getColumnHandle;
32
+ private displayHandle;
33
+ private hideHandle;
34
+ }
@@ -0,0 +1 @@
1
+ export { tableHandlesPlugin } from "./tableHandlesPlugin";
@@ -0,0 +1,23 @@
1
+ import { type Editor } from "@tiptap/core";
2
+ import type { Node as ProseMirrorNode } from "@tiptap/pm/model";
3
+ import type { Selection } from "@tiptap/pm/state";
4
+ interface NodePos {
5
+ pos: number;
6
+ start: number;
7
+ node: ProseMirrorNode | null | undefined;
8
+ }
9
+ export declare function getCellsInColumn(columnIndex: number | number[]): (selection: Selection) => NodePos[] | null;
10
+ export declare function getCellsInRow(rowIndex: number | number[]): (selection: Selection) => NodePos[] | null;
11
+ /** Finds the table handle element for the given type and element. */
12
+ export declare function findTableHandleElement(args: {
13
+ type: "row" | "column";
14
+ element: Element;
15
+ }): Element;
16
+ /** Creates a table handle element for the given type. */
17
+ export declare function createTableHandleElement(args: {
18
+ type: "row" | "column";
19
+ editor: Editor;
20
+ rowIndex: number;
21
+ columnIndex: number;
22
+ }): HTMLButtonElement;
23
+ export {};
@@ -0,0 +1 @@
1
+ export { tableHandlesPlugin } from "./tableHandles";
@@ -14,31 +14,19 @@ export declare function findRow(selection: Selection): {
14
14
  depth: number;
15
15
  node: import("prosemirror-model").Node;
16
16
  } | undefined;
17
- export declare function findTableAndRow(selection: Selection): {
18
- table: null;
19
- row: null;
20
- } | {
21
- table: null;
22
- row: {
23
- pos: number;
24
- start: number;
25
- depth: number;
26
- node: import("prosemirror-model").Node;
27
- };
28
- } | {
29
- table: {
30
- pos: number;
31
- start: number;
32
- depth: number;
33
- node: import("prosemirror-model").Node;
34
- };
35
- row: {
36
- pos: number;
37
- start: number;
38
- depth: number;
39
- node: import("prosemirror-model").Node;
40
- };
41
- };
17
+ export declare function findCell(selection: Selection): {
18
+ pos: number;
19
+ start: number;
20
+ depth: number;
21
+ node: import("prosemirror-model").Node;
22
+ } | undefined;
23
+ type FindableNodeName = "cell" | "row" | "table";
24
+ export declare function findParentNodes<TNodeName extends FindableNodeName>(selection: Selection, ...elements: TNodeName[]): { [key in TNodeName]: {
25
+ pos: number;
26
+ start: number;
27
+ depth: number;
28
+ node: import("prosemirror-model").Node;
29
+ } | undefined; };
42
30
  export declare function getTableColumnCount(editor: Editor): number;
43
31
  export declare function getTableRowCount(editor: Editor): number;
44
32
  export declare function isTableColumnLimitReached(editor: Editor): boolean;
@@ -51,6 +39,10 @@ export declare function selectRow(args: {
51
39
  index: number;
52
40
  tr: Transaction;
53
41
  }): Transaction;
42
+ export declare function selectColumn(args: {
43
+ index: number;
44
+ tr: Transaction;
45
+ }): Transaction;
54
46
  export declare function moveRow(args: {
55
47
  direction: "up" | "down";
56
48
  state: EditorState;
@@ -58,3 +50,11 @@ export declare function moveRow(args: {
58
50
  tr: Transaction;
59
51
  index: number;
60
52
  } | undefined;
53
+ export declare function moveColumn(args: {
54
+ direction: "left" | "right";
55
+ state: EditorState;
56
+ }): {
57
+ tr: Transaction;
58
+ index: number;
59
+ } | undefined;
60
+ export {};