@prismicio/editor-fields 0.1.0-rc.2

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 (63) hide show
  1. package/README.md +1 -0
  2. package/dist/DocumentEditor.d.ts +14 -0
  3. package/dist/GroupEditor.d.ts +12 -0
  4. package/dist/NestableWidgetSwitch.d.ts +12 -0
  5. package/dist/SectionEditor.d.ts +12 -0
  6. package/dist/domain/Document.d.ts +8 -0
  7. package/dist/domain/Field.d.ts +5 -0
  8. package/dist/domain/Group.d.ts +6 -0
  9. package/dist/domain/NestableWidget.d.ts +12 -0
  10. package/dist/domain/Section.d.ts +10 -0
  11. package/dist/domain/SharedSlices.d.ts +3 -0
  12. package/dist/domain/StaticWidget.d.ts +7 -0
  13. package/dist/domain/Widget.d.ts +10 -0
  14. package/dist/domain/slices/CompositeSlice.d.ts +6 -0
  15. package/dist/domain/slices/LegacySlice.d.ts +4 -0
  16. package/dist/domain/slices/SharedSlice.d.ts +9 -0
  17. package/dist/domain/zones/NonRepeatableZone.d.ts +5 -0
  18. package/dist/domain/zones/RepeatableZone.d.ts +8 -0
  19. package/dist/domain/zones/SliceZone.d.ts +8 -0
  20. package/dist/domain/zones/StaticZone.d.ts +5 -0
  21. package/dist/fields/KeyTextField.d.ts +12 -0
  22. package/dist/fields/RichTextField/BubbleMenu.d.ts +8 -0
  23. package/dist/fields/RichTextField/RichTextField.d.ts +12 -0
  24. package/dist/fields/RichTextField/coreExtensions/Document.d.ts +3 -0
  25. package/dist/fields/RichTextField/coreExtensions/HardBreak.d.ts +12 -0
  26. package/dist/fields/RichTextField/coreExtensions/ListItem.d.ts +45 -0
  27. package/dist/fields/RichTextField/coreExtensions/Placeholder.d.ts +3 -0
  28. package/dist/fields/RichTextField/coreExtensions/SlashCommands.d.ts +4 -0
  29. package/dist/fields/RichTextField/coreExtensions/Text.d.ts +15 -0
  30. package/dist/fields/RichTextField/coreExtensions/index.d.ts +9 -0
  31. package/dist/fields/RichTextField/extensions/Bold.d.ts +3 -0
  32. package/dist/fields/RichTextField/extensions/BulletList.d.ts +3 -0
  33. package/dist/fields/RichTextField/extensions/CodeBlock.d.ts +3 -0
  34. package/dist/fields/RichTextField/extensions/Embed/EmbedView.d.ts +3 -0
  35. package/dist/fields/RichTextField/extensions/Embed/index.d.ts +10 -0
  36. package/dist/fields/RichTextField/extensions/Heading.d.ts +21 -0
  37. package/dist/fields/RichTextField/extensions/Italic.d.ts +3 -0
  38. package/dist/fields/RichTextField/extensions/Link.d.ts +4 -0
  39. package/dist/fields/RichTextField/extensions/OrderedList.d.ts +3 -0
  40. package/dist/fields/RichTextField/extensions/Paragraph.d.ts +3 -0
  41. package/dist/fields/RichTextField/extensions/index.d.ts +14 -0
  42. package/dist/fields/RichTextField/globalExtensions/TextDirection.d.ts +40 -0
  43. package/dist/fields/RichTextField/globalExtensions/index.d.ts +1 -0
  44. package/dist/fields/RichTextField/index.d.ts +1 -0
  45. package/dist/fields/RichTextField/models/EditorExtension.d.ts +109 -0
  46. package/dist/fields/RichTextField/models/MenuItems.d.ts +24 -0
  47. package/dist/fields/RichTextField/models/RichTextConfig.d.ts +10 -0
  48. package/dist/fields/RichTextField/models/Span.d.ts +12 -0
  49. package/dist/fields/RichTextField/models/helpers/NodeUtils.d.ts +15 -0
  50. package/dist/fields/RichTextField/models/helpers/index.d.ts +1 -0
  51. package/dist/fields/RichTextField/models/index.d.ts +3 -0
  52. package/dist/fields/SelectField.d.ts +12 -0
  53. package/dist/index.d.ts +3 -0
  54. package/dist/index.es.js +48794 -0
  55. package/dist/index.umd.js +121 -0
  56. package/dist/slices/CompositeSliceEditor.d.ts +12 -0
  57. package/dist/slices/LegacySliceEditor.d.ts +12 -0
  58. package/dist/slices/SharedSliceEditor.d.ts +12 -0
  59. package/dist/zones/NonRepeatableZoneEditor.d.ts +11 -0
  60. package/dist/zones/RepeatableZoneEditor.d.ts +11 -0
  61. package/dist/zones/SliceZoneEditor.d.ts +12 -0
  62. package/dist/zones/StaticZoneEditor.d.ts +11 -0
  63. package/package.json +82 -0
package/README.md ADDED
@@ -0,0 +1 @@
1
+ # editor-fields
@@ -0,0 +1,14 @@
1
+ import { type CustomType as DynamicCustomType } from "@prismicio/types-internal/lib/customtypes";
2
+ import { type FC } from "react";
3
+ import { type DocumentContent } from "./domain/Document";
4
+ import { type SharedSlices } from "./domain/SharedSlices";
5
+ declare type DocumentEditorProps = Readonly<{
6
+ content: DocumentContent;
7
+ customType: DynamicCustomType;
8
+ onContentChange: (content: DocumentContent) => void;
9
+ readOnly?: boolean | undefined;
10
+ sectionName: string | undefined;
11
+ sharedSlices: SharedSlices;
12
+ }>;
13
+ export declare const DocumentEditor: FC<DocumentEditorProps>;
14
+ export {};
@@ -0,0 +1,12 @@
1
+ import type { Group } from "@prismicio/types-internal/lib/customtypes/widgets";
2
+ import type { GroupContent } from "@prismicio/types-internal/lib/documents/widgets";
3
+ import type { FC } from "react";
4
+ declare type GroupEditorProps = Readonly<{
5
+ content: GroupContent | undefined;
6
+ group: Group;
7
+ id: string;
8
+ onContentChange: (content: GroupContent) => void;
9
+ readOnly: boolean;
10
+ }>;
11
+ export declare const GroupEditor: FC<GroupEditorProps>;
12
+ export {};
@@ -0,0 +1,12 @@
1
+ import type { NestableWidget } from "@prismicio/types-internal/lib/customtypes/widgets/nestable";
2
+ import type { FC } from "react";
3
+ import { type NestableWidgetContent } from "./domain/NestableWidget";
4
+ declare type NestableWidgetSwitchProps = Readonly<{
5
+ content: NestableWidgetContent | undefined;
6
+ id: string;
7
+ nestableWidget: NestableWidget;
8
+ onContentChange: (content: NestableWidgetContent | undefined) => void;
9
+ readOnly: boolean;
10
+ }>;
11
+ export declare const NestableWidgetSwitch: FC<NestableWidgetSwitchProps>;
12
+ export {};
@@ -0,0 +1,12 @@
1
+ import type { StaticSection as Section } from "@prismicio/types-internal/lib/customtypes/Section";
2
+ import { type FC } from "react";
3
+ import { type SectionContent } from "./domain/Section";
4
+ declare type SectionEditorProps = Readonly<{
5
+ content: SectionContent;
6
+ id: string;
7
+ onContentChange: (content: SectionContent) => void;
8
+ readOnly: boolean;
9
+ section: Section;
10
+ }>;
11
+ export declare const SectionEditor: FC<SectionEditorProps>;
12
+ export {};
@@ -0,0 +1,8 @@
1
+ import type { StaticCustomType as CustomType } from "@prismicio/types-internal/lib/customtypes";
2
+ import type { StaticSection as Section } from "@prismicio/types-internal/lib/customtypes/Section";
3
+ import type { WidgetContent } from "@prismicio/types-internal/lib/documents/widgets";
4
+ import type { SectionContent } from "./Section";
5
+ export declare type DocumentContent = Readonly<Partial<Record<string, WidgetContent>>>;
6
+ export declare function isEmptyCustomType(customType: CustomType): boolean;
7
+ export declare function getSection(customType: CustomType, sectionName: string): Section;
8
+ export declare function getSectionContent(section: Section, documentContent: DocumentContent): SectionContent;
@@ -0,0 +1,5 @@
1
+ import type { BooleanField, NestableWidget, Separator } from "@prismicio/types-internal/lib/customtypes/widgets/nestable";
2
+ declare type Field = Exclude<NestableWidget, Separator>;
3
+ export declare function getFieldLabel(field: Field | Separator): string;
4
+ export declare function getFieldPlaceholder(field: Exclude<Field, BooleanField>): string;
5
+ export {};
@@ -0,0 +1,6 @@
1
+ import type { Group } from "@prismicio/types-internal/lib/customtypes/widgets";
2
+ import type { GroupContent } from "@prismicio/types-internal/lib/documents/widgets";
3
+ import type { RepeatableZone, RepeatableZoneContent } from "./zones/RepeatableZone";
4
+ export declare function getGroupLabel(group: Group): string;
5
+ export declare function getRepeatableZone(group: Group): RepeatableZone;
6
+ export declare function updateRepeatableZoneContent(groupContent: GroupContent | undefined, repeatableZoneContent: RepeatableZoneContent): GroupContent;
@@ -0,0 +1,12 @@
1
+ import { type NonEmptySimpleWidgetContent, type UIDContent } from "@prismicio/types-internal/lib/documents/widgets";
2
+ import type { FieldContent as StringContent, GeoPointContentO as GeoPointContent, ImageContentO as ImageContent } from "@prismicio/types-internal/lib/documents/widgets/nestable";
3
+ export declare type NestableWidgetContent = Exclude<NonEmptySimpleWidgetContent, UIDContent>;
4
+ export declare function isColorContent(nestableWidgetContent: NestableWidgetContent): nestableWidgetContent is StringContent;
5
+ export declare function isDateContent(nestableWidgetContent: NestableWidgetContent): nestableWidgetContent is StringContent;
6
+ export declare function isGeoPointContent(nestableWidgetContent: NestableWidgetContent): nestableWidgetContent is GeoPointContent;
7
+ export declare function isImageContent(nestableWidgetContent: NestableWidgetContent): nestableWidgetContent is ImageContent;
8
+ export declare function isKeyTextContent(nestableWidgetContent: NestableWidgetContent): nestableWidgetContent is StringContent;
9
+ export declare function isNumberContent(nestableWidgetContent: NestableWidgetContent): nestableWidgetContent is StringContent;
10
+ export declare function isRangeContent(nestableWidgetContent: NestableWidgetContent): nestableWidgetContent is StringContent;
11
+ export declare function isSelectContent(nestableWidgetContent: NestableWidgetContent): nestableWidgetContent is StringContent;
12
+ export declare function isTimestampContent(nestableWidgetContent: NestableWidgetContent): nestableWidgetContent is StringContent;
@@ -0,0 +1,10 @@
1
+ import type { StaticSection as Section } from "@prismicio/types-internal/lib/customtypes/Section";
2
+ import type { StaticSlices as SliceZone } from "@prismicio/types-internal/lib/customtypes/widgets/slices/Slices";
3
+ import { type WidgetContent } from "@prismicio/types-internal/lib/documents/widgets";
4
+ import type { StaticZone, StaticZoneContent } from "./zones/StaticZone";
5
+ export declare type SectionContent = Readonly<Partial<Record<string, WidgetContent>>>;
6
+ export declare type PartitionedSection = readonly [StaticZone, SliceZones];
7
+ declare type SliceZones = readonly (readonly [string, SliceZone])[];
8
+ export declare function getPartitionedSection(section: Section): PartitionedSection;
9
+ export declare function getStaticZoneContent(staticZone: StaticZone, sectionContent: SectionContent): StaticZoneContent;
10
+ export {};
@@ -0,0 +1,3 @@
1
+ import type { SharedSlice } from "@prismicio/types-internal/lib/customtypes/widgets/slices";
2
+ export declare type SharedSlices = Readonly<Partial<Record<string, SharedSlice>>>;
3
+ export declare function compactSharedSlices(sharedSlices: SharedSlices): Map<string, SharedSlice>;
@@ -0,0 +1,7 @@
1
+ import type { StaticSlices as SliceZone } from "@prismicio/types-internal/lib/customtypes/widgets/slices/Slices";
2
+ import type { StaticWidget as Widget } from "@prismicio/types-internal/lib/customtypes/widgets/Widget";
3
+ import { type GroupContent, type StaticWidgetContent } from "@prismicio/types-internal/lib/documents/widgets";
4
+ import type { NestableWidgetContent } from "./NestableWidget";
5
+ export declare type StaticWidget = Exclude<Widget, SliceZone>;
6
+ export declare function isGroupContent(staticWidgetContent: StaticWidgetContent): staticWidgetContent is GroupContent;
7
+ export declare function isNestableWidgetContent(staticWidgetContent: StaticWidgetContent): staticWidgetContent is NestableWidgetContent;
@@ -0,0 +1,10 @@
1
+ import type { StaticSlices as SliceZone } from "@prismicio/types-internal/lib/customtypes/widgets/slices/Slices";
2
+ import type { StaticWidget as Widget } from "@prismicio/types-internal/lib/customtypes/widgets/Widget";
3
+ import { type WidgetContent } from "@prismicio/types-internal/lib/documents/widgets";
4
+ import type { SlicesContent as SliceZoneContent } from "@prismicio/types-internal/lib/documents/widgets/slices";
5
+ import type { Refinement } from "fp-ts/Refinement";
6
+ export declare function isSliceZone(widget: Widget): widget is SliceZone;
7
+ export declare function isSliceZoneContent(widgetContent: WidgetContent): widgetContent is SliceZoneContent;
8
+ export declare type Widgets<T> = T extends Record<string, infer V> ? readonly (readonly [string, NonNullable<V>])[] : never;
9
+ export declare function getWidgets<V extends Widget>(record: Readonly<Partial<Record<string, V>>>): Widgets<Readonly<Partial<Record<string, V>>>>;
10
+ export declare function refineWidgetContent<A extends WidgetContent, B extends A>(widgetContent: A | undefined, refinement: Refinement<A, B>): B | undefined;
@@ -0,0 +1,6 @@
1
+ import type { CompositeSlice } from "@prismicio/types-internal/lib/customtypes/widgets/slices";
2
+ import type { NonRepeatableZone } from "../zones/NonRepeatableZone";
3
+ import type { RepeatableZone } from "../zones/RepeatableZone";
4
+ export declare function getCompositeSliceLegend(compositeSlice: CompositeSlice): string;
5
+ export declare function getNonRepeatableZone(compositeSlice: CompositeSlice): NonRepeatableZone;
6
+ export declare function getRepeatableZone(compositeSlice: CompositeSlice): RepeatableZone;
@@ -0,0 +1,4 @@
1
+ import type { LegacySlice } from "@prismicio/types-internal/lib/customtypes/widgets/slices";
2
+ import type { NonEmptyStaticWidgetContent, UIDContent } from "@prismicio/types-internal/lib/documents/widgets";
3
+ export declare type LegacySliceContent = Exclude<NonEmptyStaticWidgetContent, UIDContent>;
4
+ export declare function getLegacySliceLegend(legacySlice: LegacySlice): string;
@@ -0,0 +1,9 @@
1
+ import type { SharedSlice, Variation } from "@prismicio/types-internal/lib/customtypes/widgets/slices";
2
+ import type { SharedSliceContent } from "@prismicio/types-internal/lib/documents/widgets/slices";
3
+ import type { NonRepeatableZone } from "../zones/NonRepeatableZone";
4
+ import type { RepeatableZone } from "../zones/RepeatableZone";
5
+ export declare function defaultSharedSliceContent(variationId: string): SharedSliceContent;
6
+ export declare function getVariation(sharedSlice: SharedSlice, variationId: string): Variation | undefined;
7
+ export declare function getSharedSliceLegend(sharedSlice: SharedSlice, variation: Variation): string;
8
+ export declare function getNonRepeatableZone(variation: Variation): NonRepeatableZone;
9
+ export declare function getRepeatableZone(variation: Variation): RepeatableZone;
@@ -0,0 +1,5 @@
1
+ import type { NestableWidget } from "@prismicio/types-internal/lib/customtypes/widgets/nestable";
2
+ import type { SimpleWidgetContent } from "@prismicio/types-internal/lib/documents/widgets";
3
+ export declare type NonRepeatableZone = Readonly<Partial<Record<string, NestableWidget>>>;
4
+ export declare type NonRepeatableZoneContent = Readonly<Record<string, SimpleWidgetContent>>;
5
+ export declare function updateNonRepeatableWidgetContent(nonRepeatableZoneContent: NonRepeatableZoneContent, nonRepeatableWidgetId: string, nonRepeatableWidgetContent: SimpleWidgetContent | undefined): NonRepeatableZoneContent;
@@ -0,0 +1,8 @@
1
+ import type { NestableWidget } from "@prismicio/types-internal/lib/customtypes/widgets/nestable";
2
+ import type { GroupItemContent, SimpleWidgetContent } from "@prismicio/types-internal/lib/documents/widgets";
3
+ import type { NestableWidgetContent } from "../NestableWidget";
4
+ export declare type RepeatableZone = Readonly<Partial<Record<string, NestableWidget>>>;
5
+ export declare type RepeatableZoneContent = GroupItemContent[];
6
+ export declare function defaultRepeatableZoneContentIfUndefined(repeatableZoneContent: RepeatableZoneContent | undefined): RepeatableZoneContent;
7
+ export declare function getGroupItemContentValue(groupItemContent: GroupItemContent): Readonly<Partial<Record<string, SimpleWidgetContent>>>;
8
+ export declare function updateRepeatableWidgetContent(repeatableZoneContent: RepeatableZoneContent, groupItemContentIndex: number, repeatableWidgetIndex: number, repeatableWidgetId: string, repeatableWidgetContent: NestableWidgetContent | undefined): RepeatableZoneContent;
@@ -0,0 +1,8 @@
1
+ import { EmptyContent } from "@prismicio/types-internal/lib/documents/widgets";
2
+ import type { CompositeSliceContent, SharedSliceContent, SlicesContent as SliceZoneContent, SliceWidgetContent as SliceContent } from "@prismicio/types-internal/lib/documents/widgets/slices";
3
+ import type { LegacySliceContent } from "../slices/LegacySlice";
4
+ export declare function isSharedSliceContent(sliceContent: SliceContent): sliceContent is SharedSliceContent;
5
+ export declare function isCompositeSliceContent(sliceContent: SliceContent): sliceContent is CompositeSliceContent;
6
+ export declare function isLegacySliceContent(sliceContent: SliceContent): sliceContent is LegacySliceContent;
7
+ export declare function isEmptyContent(sliceContent: SliceContent): sliceContent is EmptyContent;
8
+ export declare function updateSliceContent(sliceZoneContent: SliceZoneContent, sliceZoneItemContentIndex: number, sliceContent: SliceContent | undefined): SliceZoneContent;
@@ -0,0 +1,5 @@
1
+ import type { StaticWidgetContent } from "@prismicio/types-internal/lib/documents/widgets";
2
+ import type { StaticWidget } from "../StaticWidget";
3
+ export declare type StaticZone = Readonly<Partial<Record<string, StaticWidget>>>;
4
+ export declare type StaticZoneContent = Readonly<Partial<Record<string, StaticWidgetContent>>>;
5
+ export declare function getStaticZoneLegend(): string;
@@ -0,0 +1,12 @@
1
+ import type { Text as KeyText } from "@prismicio/types-internal/lib/customtypes/widgets/nestable";
2
+ import type { FieldContent as KeyTextContent } from "@prismicio/types-internal/lib/documents/widgets/nestable";
3
+ import type { FC } from "react";
4
+ declare type KeyTextFieldProps = Readonly<{
5
+ content: KeyTextContent | undefined;
6
+ field: KeyText;
7
+ id: string;
8
+ onContentChange: (content: KeyTextContent | undefined) => void;
9
+ readOnly: boolean;
10
+ }>;
11
+ export declare const KeyTextField: FC<KeyTextFieldProps>;
12
+ export {};
@@ -0,0 +1,8 @@
1
+ import type { Editor } from "@tiptap/core";
2
+ import { type FC } from "react";
3
+ declare type BubbleMenuProps = Readonly<{
4
+ editor: Editor;
5
+ nodeTypes: readonly string[];
6
+ }>;
7
+ export declare const BubbleMenu: FC<BubbleMenuProps>;
8
+ export {};
@@ -0,0 +1,12 @@
1
+ import type { RichText } from "@prismicio/types-internal/lib/customtypes/widgets/nestable";
2
+ import type { StructuredTextContent as RichTextContent } from "@prismicio/types-internal/lib/documents/widgets/nestable";
3
+ import { type FC } from "react";
4
+ declare type RichTextFieldProps = Readonly<{
5
+ content: RichTextContent | undefined;
6
+ field: RichText;
7
+ id: string;
8
+ onContentChange: (content: RichTextContent | undefined) => void;
9
+ readOnly: boolean;
10
+ }>;
11
+ export declare const RichTextField: FC<RichTextFieldProps>;
12
+ export {};
@@ -0,0 +1,3 @@
1
+ import { DocumentExtension } from "../models";
2
+ declare const EditorDocument: DocumentExtension;
3
+ export default EditorDocument;
@@ -0,0 +1,12 @@
1
+ import type { Node as ProsemirrorNode, Schema } from "prosemirror-model";
2
+ declare function splitTextToNodes(schema: Schema, text: string): (textToNode: (strText: string) => ProsemirrorNode) => Array<ProsemirrorNode>;
3
+ declare const EditorHardBreak: {
4
+ name: string;
5
+ component: import("@tiptap/core").Node<import("@tiptap/extension-hard-break").HardBreakOptions, any>;
6
+ converter: {
7
+ fromPrismic(schema: Schema): (text: string) => ProsemirrorNode | undefined;
8
+ toPrismic(node: ProsemirrorNode): string | undefined;
9
+ };
10
+ splitTextToNodes: typeof splitTextToNodes;
11
+ };
12
+ export default EditorHardBreak;
@@ -0,0 +1,45 @@
1
+ import type { RichTextNodeType } from "@prismicio/types-internal/lib/customtypes/widgets/nestable";
2
+ import type { ReadonlyNonEmptyArray } from "fp-ts/ReadonlyNonEmptyArray";
3
+ import type { Node as ProsemirrorNode, Schema } from "prosemirror-model";
4
+ declare const _default: {
5
+ component: import("@tiptap/core").Node<import("@tiptap/extension-list-item").ListItemOptions, any>;
6
+ converter: {
7
+ fromPrismic(schema: Schema<any, any>): (list: {
8
+ type: RichTextNodeType;
9
+ content: {
10
+ text: string;
11
+ } & {
12
+ spans?: ({
13
+ data?: unknown;
14
+ } & {
15
+ start: number;
16
+ end: number;
17
+ type: RichTextNodeType;
18
+ })[];
19
+ };
20
+ } & {
21
+ label?: string;
22
+ direction?: string;
23
+ }) => ProsemirrorNode<any> | undefined;
24
+ toPrismic(node: ProsemirrorNode<any>, nodeType: RichTextNodeType.list | RichTextNodeType.orderedList): readonly ({
25
+ type: RichTextNodeType;
26
+ content: {
27
+ text: string;
28
+ } & {
29
+ spans?: ({
30
+ data?: unknown;
31
+ } & {
32
+ start: number;
33
+ end: number;
34
+ type: RichTextNodeType;
35
+ })[];
36
+ };
37
+ } & {
38
+ label?: string;
39
+ direction?: string;
40
+ })[];
41
+ };
42
+ placeholder: string;
43
+ };
44
+ export default _default;
45
+ export declare function mergeLists(lists: ReadonlyNonEmptyArray<ProsemirrorNode>): ProsemirrorNode | undefined;
@@ -0,0 +1,3 @@
1
+ import { type ExtensionPlaceholder } from "../models";
2
+ declare const _default: (placeholderByNodeType: Partial<Record<string, ExtensionPlaceholder>>) => import("@tiptap/core").Extension<import("@tiptap/extension-placeholder").PlaceholderOptions, any>;
3
+ export default _default;
@@ -0,0 +1,4 @@
1
+ import { Extension } from "@tiptap/core";
2
+ export declare const SlashCommands: Extension<Readonly<{
3
+ nodeTypes: readonly string[];
4
+ }>, any>;
@@ -0,0 +1,15 @@
1
+ import type { RichTextNodeType } from "@prismicio/types-internal/lib/customtypes/widgets/nestable";
2
+ import type { TextBlock } from "@prismicio/types-internal/lib/documents/widgets/nestable/StructuredTextContent/Block";
3
+ import type { Node as ProsemirrorNode, Schema } from "prosemirror-model";
4
+ import type { Direction } from "../globalExtensions/TextDirection";
5
+ declare const EditorText: {
6
+ name: string;
7
+ component: import("@tiptap/core").Node<any, any>;
8
+ converter: {
9
+ fromPrismic(schema: Schema): (extensionName: string, textBlock: TextBlock, preventHardbreaks?: boolean) => Array<ProsemirrorNode>;
10
+ toPrismic(node: ProsemirrorNode, nodeType: RichTextNodeType, attributes?: {
11
+ direction?: Direction;
12
+ } | undefined): TextBlock;
13
+ };
14
+ };
15
+ export default EditorText;
@@ -0,0 +1,9 @@
1
+ import { type RichText } from "@prismicio/types-internal/lib/customtypes/widgets/nestable";
2
+ import type { Node } from "@tiptap/core";
3
+ import { type NodeExtension } from "../models";
4
+ import { default as Document } from "./Document";
5
+ import { default as HardBreak } from "./HardBreak";
6
+ import { default as ListItem } from "./ListItem";
7
+ import { default as Text } from "./Text";
8
+ export declare function CoreComponents(field: RichText, nodeExtensions: ReadonlyArray<NodeExtension>): ReadonlyArray<Node>;
9
+ export { Document, HardBreak, ListItem, Text };
@@ -0,0 +1,3 @@
1
+ import { MarkExtension } from "../models/EditorExtension";
2
+ declare const EditorBold: MarkExtension<unknown>;
3
+ export default EditorBold;
@@ -0,0 +1,3 @@
1
+ import { ListExtension } from "../models";
2
+ declare const EditorBulletList: ListExtension;
3
+ export default EditorBulletList;
@@ -0,0 +1,3 @@
1
+ import { TextExtension } from "../models";
2
+ declare const EditorCodeBlock: TextExtension;
3
+ export default EditorCodeBlock;
@@ -0,0 +1,3 @@
1
+ import { type FC } from "react";
2
+ declare const EmbedView: FC;
3
+ export default EmbedView;
@@ -0,0 +1,10 @@
1
+ import { EmbedExtension } from "../../models";
2
+ declare module "@tiptap/core" {
3
+ interface Commands<ReturnType> {
4
+ embed: {
5
+ setEmbed: () => ReturnType;
6
+ };
7
+ }
8
+ }
9
+ declare const _default: EmbedExtension;
10
+ export default _default;
@@ -0,0 +1,21 @@
1
+ import { RichTextNodeType } from "@prismicio/types-internal/lib/customtypes/widgets/nestable";
2
+ import { type Level as TTLevel } from "@tiptap/extension-heading";
3
+ import { type ReadonlyNonEmptyArray } from "fp-ts/ReadonlyNonEmptyArray";
4
+ import type { Node as ProsemirrorNode } from "prosemirror-model";
5
+ import { HeadingTextExtension } from "../models";
6
+ export declare type Level = TTLevel;
7
+ declare type HeadingName = {
8
+ fullName: RichTextNodeType;
9
+ level: Level;
10
+ };
11
+ export declare const HeadingName: {
12
+ byLevel(level: Level): RichTextNodeType;
13
+ default(level: Level): HeadingName;
14
+ fromPrismic(headingName: string, levels?: ReadonlyNonEmptyArray<Level>): HeadingName | undefined;
15
+ fromProsemirror(nodeAttributes: ProsemirrorNode["attrs"], levels: ReadonlyNonEmptyArray<Level>): HeadingName | undefined;
16
+ };
17
+ declare const _default: {
18
+ name: string;
19
+ build: (nodeTypes?: Set<RichTextNodeType> | undefined) => HeadingTextExtension | undefined;
20
+ };
21
+ export default _default;
@@ -0,0 +1,3 @@
1
+ import { MarkExtension } from "../models/EditorExtension";
2
+ declare const EditorItalic: MarkExtension<unknown>;
3
+ export default EditorItalic;
@@ -0,0 +1,4 @@
1
+ import { LinkContent } from "@prismicio/types-internal/lib/documents/widgets/nestable/Link";
2
+ import { MarkExtension } from "../models";
3
+ declare const EditorLink: MarkExtension<LinkContent>;
4
+ export default EditorLink;
@@ -0,0 +1,3 @@
1
+ import { ListExtension } from "../models";
2
+ declare const EditorOrderedList: ListExtension;
3
+ export default EditorOrderedList;
@@ -0,0 +1,3 @@
1
+ import { TextExtension } from "../models";
2
+ declare const EditorParagraph: TextExtension;
3
+ export default EditorParagraph;
@@ -0,0 +1,14 @@
1
+ import type { RichTextNodeType } from "@prismicio/types-internal/lib/customtypes/widgets/nestable";
2
+ import type { WidgetExtension } from "../models";
3
+ import { default as Bold } from "./Bold";
4
+ import { default as BulletList } from "./BulletList";
5
+ import { default as CodeBlock } from "./CodeBlock";
6
+ import { default as Embed } from "./Embed";
7
+ import { default as Heading } from "./Heading";
8
+ import { default as Italic } from "./Italic";
9
+ import { default as OrderedList } from "./OrderedList";
10
+ import { default as Paragraph } from "./Paragraph";
11
+ export declare const DefaultExtension: import("../models").TextExtension;
12
+ export declare const MarkExtensions: import("../models").MarkExtension<unknown>[];
13
+ export declare const Extensions: (nodeTypes?: Set<RichTextNodeType> | undefined) => ReadonlyArray<WidgetExtension>;
14
+ export { Bold, BulletList, CodeBlock, Embed, Heading, Italic, OrderedList, Paragraph, };
@@ -0,0 +1,40 @@
1
+ import { RichTextNodeType } from "@prismicio/types-internal/lib/customtypes/widgets/nestable";
2
+ import type { TextBlock } from "@prismicio/types-internal/lib/documents/widgets/nestable/StructuredTextContent/Block";
3
+ import { Extension } from "@tiptap/core";
4
+ import type { Node as ProsemirrorNode } from "prosemirror-model";
5
+ export declare enum Direction {
6
+ LeftToRight = "ltr",
7
+ RightToLeft = "rtl"
8
+ }
9
+ interface TextDirectionOptions {
10
+ supportedExtensionNames: ReadonlyArray<string>;
11
+ }
12
+ export declare const TEXT_DIRECTION_ATTR_NAME = "text-direction";
13
+ declare module "@tiptap/core" {
14
+ interface Commands<ReturnType> {
15
+ [TEXT_DIRECTION_ATTR_NAME]: {
16
+ setDirection: (direction: Direction) => ReturnType;
17
+ toggleDirection: (direction: Direction) => ReturnType;
18
+ /**
19
+ * Set the text direction attribute
20
+ */
21
+ setRightToLeft: () => ReturnType;
22
+ /**
23
+ * Unset the text direction attribute
24
+ */
25
+ setLeftToRight: () => ReturnType;
26
+ };
27
+ }
28
+ }
29
+ export declare const richTextNodeType = RichTextNodeType.rtl;
30
+ export declare const component: Extension<TextDirectionOptions, any>;
31
+ export declare const converter: {
32
+ parseNodeAttrsDirection(attributes: Partial<Record<string, unknown>>): Direction;
33
+ fromPrismic(textBlock: TextBlock): {
34
+ [TEXT_DIRECTION_ATTR_NAME]: Direction;
35
+ };
36
+ toPrismic(node: ProsemirrorNode): {
37
+ direction: Direction;
38
+ } | Record<string, never>;
39
+ };
40
+ export {};
@@ -0,0 +1 @@
1
+ export * as TextDirection from "./TextDirection";
@@ -0,0 +1 @@
1
+ export { RichTextField } from "./RichTextField";
@@ -0,0 +1,109 @@
1
+ import type { RichTextNodeType } from "@prismicio/types-internal/lib/customtypes/widgets/nestable";
2
+ import type { StructuredTextContent as RichTextContent } from "@prismicio/types-internal/lib/documents/widgets/nestable";
3
+ import type { EmbedBlock, ImageBlock, TextBlock } from "@prismicio/types-internal/lib/documents/widgets/nestable/StructuredTextContent/Block";
4
+ import type { Mark, Node } from "@tiptap/core";
5
+ import type { ReadonlyNonEmptyArray } from "fp-ts/lib/ReadonlyNonEmptyArray";
6
+ import type { NonEmptyArray } from "fp-ts/NonEmptyArray";
7
+ import type { Mark as ProsemirrorMark, Node as ProsemirrorNode, Schema } from "prosemirror-model";
8
+ import type { Level } from "../extensions/Heading";
9
+ export declare enum ExtensionType {
10
+ Document = "document",
11
+ Mark = "mark",
12
+ Node = "node"
13
+ }
14
+ export declare enum NodeType {
15
+ Text = "text",
16
+ Embed = "embed",
17
+ Image = "image"
18
+ }
19
+ export declare type Extension = WidgetExtension | DocumentExtension;
20
+ export declare type WidgetExtension = MarkExtension<unknown> | NodeExtension;
21
+ export declare type ExtensionPlaceholder = string | ((nodeAttrs: ProsemirrorNode["attrs"]) => string | undefined) | undefined;
22
+ export declare class DocumentExtension {
23
+ readonly name: string;
24
+ readonly component: (multiLines: boolean) => Node;
25
+ readonly converter: (extensions: ReadonlyArray<NodeExtension>) => {
26
+ fromPrismic(schema: Schema, defaultTextConverter?: (block: TextBlock) => ProsemirrorNode | undefined): (elmt: RichTextContent) => ProsemirrorNode | undefined;
27
+ toPrismic(elmt: ProsemirrorNode): RichTextContent | undefined;
28
+ };
29
+ extType: ExtensionType.Document;
30
+ constructor(name: string, component: (multiLines: boolean) => Node, converter: (extensions: ReadonlyArray<NodeExtension>) => {
31
+ fromPrismic(schema: Schema, defaultTextConverter?: (block: TextBlock) => ProsemirrorNode | undefined): (elmt: RichTextContent) => ProsemirrorNode | undefined;
32
+ toPrismic(elmt: ProsemirrorNode): RichTextContent | undefined;
33
+ });
34
+ }
35
+ export declare class MarkExtension<P> {
36
+ readonly richTextNodeTypes: NonEmptyArray<RichTextNodeType>;
37
+ readonly name: string;
38
+ readonly component: Mark;
39
+ readonly converter: {
40
+ fromPrismic(schema: Schema): (elmt: P) => ProsemirrorMark | undefined;
41
+ toPrismic(elmt: ProsemirrorMark): P | undefined;
42
+ };
43
+ extType: ExtensionType.Mark;
44
+ constructor(richTextNodeTypes: NonEmptyArray<RichTextNodeType>, name: string, component: Mark, converter: {
45
+ fromPrismic(schema: Schema): (elmt: P) => ProsemirrorMark | undefined;
46
+ toPrismic(elmt: ProsemirrorMark): P | undefined;
47
+ });
48
+ }
49
+ export declare type NodeExtension = TextExtension | EmbedExtension | ImageExtension;
50
+ export declare class TextExtension {
51
+ readonly richTextNodeTypes: ReadonlyNonEmptyArray<RichTextNodeType>;
52
+ readonly name: string;
53
+ readonly component: Node;
54
+ readonly converter: {
55
+ fromPrismic(schema: Schema): (elmt: TextBlock) => ProsemirrorNode | undefined;
56
+ toPrismic(elmt: ProsemirrorNode): TextBlock | ReadonlyArray<TextBlock> | undefined;
57
+ };
58
+ readonly placeholder?: ExtensionPlaceholder;
59
+ readonly lockedFormat: boolean;
60
+ extType: ExtensionType.Node;
61
+ nodeType: NodeType.Text;
62
+ constructor(richTextNodeTypes: ReadonlyNonEmptyArray<RichTextNodeType>, name: string, component: Node, converter: {
63
+ fromPrismic(schema: Schema): (elmt: TextBlock) => ProsemirrorNode | undefined;
64
+ toPrismic(elmt: ProsemirrorNode): TextBlock | ReadonlyArray<TextBlock> | undefined;
65
+ }, placeholder?: ExtensionPlaceholder, lockedFormat?: boolean);
66
+ }
67
+ export declare class EmbedExtension {
68
+ readonly richTextNodeTypes: NonEmptyArray<RichTextNodeType>;
69
+ readonly name: string;
70
+ readonly component: Node;
71
+ readonly converter: {
72
+ fromPrismic(schema: Schema): (elmt: EmbedBlock) => ProsemirrorNode | undefined;
73
+ toPrismic(elmt: ProsemirrorNode): EmbedBlock | undefined;
74
+ };
75
+ extType: ExtensionType;
76
+ nodeType: NodeType.Embed;
77
+ constructor(richTextNodeTypes: NonEmptyArray<RichTextNodeType>, name: string, component: Node, converter: {
78
+ fromPrismic(schema: Schema): (elmt: EmbedBlock) => ProsemirrorNode | undefined;
79
+ toPrismic(elmt: ProsemirrorNode): EmbedBlock | undefined;
80
+ });
81
+ }
82
+ export declare class ImageExtension {
83
+ readonly richTextNodeTypes: NonEmptyArray<RichTextNodeType>;
84
+ readonly name: string;
85
+ readonly component: Node;
86
+ readonly converter: {
87
+ fromPrismic(schema: Schema): (elmt: ImageBlock) => ProsemirrorNode | undefined;
88
+ toPrismic(elmt: ProsemirrorNode): ImageBlock | undefined;
89
+ };
90
+ extType: ExtensionType.Node;
91
+ nodeType: NodeType.Image;
92
+ constructor(richTextNodeTypes: NonEmptyArray<RichTextNodeType>, name: string, component: Node, converter: {
93
+ fromPrismic(schema: Schema): (elmt: ImageBlock) => ProsemirrorNode | undefined;
94
+ toPrismic(elmt: ProsemirrorNode): ImageBlock | undefined;
95
+ });
96
+ }
97
+ export declare class HeadingTextExtension extends TextExtension {
98
+ readonly levels: ReadonlyArray<Level>;
99
+ constructor(richTextNodeTypes: ReadonlyNonEmptyArray<RichTextNodeType>, Component: Node, levels: ReadonlyArray<Level>, Converter: {
100
+ fromPrismic(schema: Schema): (elmt: TextBlock) => ProsemirrorNode | undefined;
101
+ toPrismic(elmt: ProsemirrorNode): TextBlock | undefined;
102
+ }, placeholder?: ExtensionPlaceholder);
103
+ }
104
+ export declare class ListExtension extends TextExtension {
105
+ constructor(richTextNodeTypes: NonEmptyArray<RichTextNodeType>, name: string, Component: Node, Converter: {
106
+ fromPrismic(schema: Schema): (elmt: TextBlock) => ProsemirrorNode | undefined;
107
+ toPrismic(elmt: ProsemirrorNode): ReadonlyArray<TextBlock>;
108
+ });
109
+ }
@@ -0,0 +1,24 @@
1
+ import { RichTextNodeType } from "@prismicio/types-internal/lib/customtypes/widgets/nestable";
2
+ import type { Editor, Range } from "@tiptap/core";
3
+ import type { ReactNode } from "react";
4
+ export declare type MenuItem = Readonly<{
5
+ nodeType: RichTextNodeType;
6
+ icon: ReactNode;
7
+ isActive: (editor: Editor) => boolean;
8
+ runCommands: (editor: Editor, options?: RunCommandsOptions) => boolean;
9
+ } & ({
10
+ shortText: string;
11
+ text: string;
12
+ } | {
13
+ shortText?: undefined;
14
+ text?: undefined;
15
+ })>;
16
+ declare type RunCommandsOptions = Readonly<{
17
+ can?: boolean | undefined;
18
+ deleteRange?: Range | undefined;
19
+ }>;
20
+ export declare const ALL_NODE_ITEMS: readonly MenuItem[];
21
+ export declare const ALL_MARK_ITEMS: readonly MenuItem[];
22
+ export declare const ALL_EXTRA_ITEMS: readonly MenuItem[];
23
+ export declare function filterMenuItems(menuItems: readonly MenuItem[], nodeTypes: readonly string[]): readonly MenuItem[];
24
+ export {};