@trycourier/react-designer 0.0.2 → 0.0.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (166) hide show
  1. package/README.md +143 -22
  2. package/dist/channels.d.ts +7 -0
  3. package/dist/cjs/index.css +1 -1
  4. package/dist/cjs/index.css.map +2 -2
  5. package/dist/cjs/index.js +50 -30
  6. package/dist/cjs/index.js.map +4 -4
  7. package/dist/cjs/styles.css +505 -31
  8. package/dist/components/BrandEditor/BrandEditor.types.d.ts +36 -0
  9. package/dist/components/BrandEditor/Editor/BrandFooter/BrandFooter.d.ts +8 -3
  10. package/dist/components/BrandEditor/Editor/Editor.d.ts +2 -40
  11. package/dist/components/BrandEditor/Editor/SideBar/SideBar.d.ts +2 -7
  12. package/dist/components/Providers/BrandProvider.d.ts +0 -12
  13. package/dist/components/Providers/Providers.types.d.ts +1 -0
  14. package/dist/components/Providers/TemplateProvider.d.ts +7 -12
  15. package/dist/components/Providers/api/common.d.ts +1 -1
  16. package/dist/components/Providers/api/template.d.ts +2 -1
  17. package/dist/components/Providers/index.d.ts +4 -2
  18. package/dist/components/Providers/store.d.ts +48 -14
  19. package/dist/components/Providers/useBrandActions.d.ts +22 -0
  20. package/dist/components/Providers/useTemplateActions.d.ts +23 -0
  21. package/dist/components/TemplateEditor/Channels/Channels.d.ts +6 -0
  22. package/dist/components/TemplateEditor/Channels/Email/Email.d.ts +55 -0
  23. package/dist/components/TemplateEditor/Channels/Email/Email.test.d.ts +1 -0
  24. package/dist/components/TemplateEditor/Channels/Email/EmailEditor.d.ts +17 -0
  25. package/dist/components/TemplateEditor/Channels/Email/EmailEditor.test.d.ts +1 -0
  26. package/dist/components/TemplateEditor/Channels/Email/EmailLayout.d.ts +9 -0
  27. package/dist/components/TemplateEditor/Channels/Email/SideBar/SideBar.d.ts +7 -0
  28. package/dist/components/TemplateEditor/{Editor → Channels/Email}/SideBar/SideBarItemDetails/SideBarItemDetails.d.ts +1 -2
  29. package/dist/components/TemplateEditor/Channels/Email/SideBar/index.d.ts +2 -0
  30. package/dist/components/TemplateEditor/Channels/Email/index.d.ts +3 -0
  31. package/dist/components/TemplateEditor/Channels/Inbox/Inbox.d.ts +33 -0
  32. package/dist/components/TemplateEditor/Channels/Inbox/Inbox.test.d.ts +1 -0
  33. package/dist/components/TemplateEditor/Channels/Inbox/InboxEditor.d.ts +4 -0
  34. package/dist/components/TemplateEditor/Channels/Inbox/InboxEditor.test.d.ts +1 -0
  35. package/dist/components/TemplateEditor/Channels/Inbox/InboxLayout.d.ts +4 -0
  36. package/dist/components/TemplateEditor/Channels/Inbox/SideBar/SideBar.d.ts +1 -0
  37. package/dist/components/TemplateEditor/Channels/Inbox/index.d.ts +3 -0
  38. package/dist/components/TemplateEditor/Channels/Push/Push.d.ts +35 -0
  39. package/dist/components/TemplateEditor/Channels/Push/Push.test.d.ts +1 -0
  40. package/dist/components/TemplateEditor/Channels/Push/PushEditor.d.ts +5 -0
  41. package/dist/components/TemplateEditor/Channels/Push/PushEditor.test.d.ts +1 -0
  42. package/dist/components/TemplateEditor/Channels/Push/PushLayout.d.ts +4 -0
  43. package/dist/components/TemplateEditor/Channels/Push/index.d.ts +3 -0
  44. package/dist/components/TemplateEditor/Channels/SMS/SMS.d.ts +34 -0
  45. package/dist/components/TemplateEditor/Channels/SMS/SMS.test.d.ts +1 -0
  46. package/dist/components/TemplateEditor/Channels/SMS/SMSEditor.d.ts +5 -0
  47. package/dist/components/TemplateEditor/Channels/SMS/SMSEditor.test.d.ts +1 -0
  48. package/dist/components/TemplateEditor/Channels/SMS/SMSLayout.d.ts +4 -0
  49. package/dist/components/TemplateEditor/Channels/SMS/index.d.ts +3 -0
  50. package/dist/components/TemplateEditor/Channels/index.d.ts +6 -0
  51. package/dist/components/TemplateEditor/Channels/useChannels.d.ts +14 -0
  52. package/dist/components/TemplateEditor/Channels/useChannels.test.d.ts +1 -0
  53. package/dist/components/TemplateEditor/IPhoneFrame/IPhoneFrame.d.ts +4 -0
  54. package/dist/components/TemplateEditor/IPhoneFrame/index.d.ts +1 -0
  55. package/dist/components/TemplateEditor/Layout/Layout.d.ts +8 -0
  56. package/dist/components/TemplateEditor/Layout/index.d.ts +1 -0
  57. package/dist/components/TemplateEditor/TemplateEditor.d.ts +5 -1
  58. package/dist/components/TemplateEditor/index.d.ts +19 -0
  59. package/dist/components/TemplateEditor/store.d.ts +16 -0
  60. package/dist/components/extensions/Blockquote/Blockquote.test.d.ts +1 -0
  61. package/dist/components/extensions/Blockquote/Blockquote.types.d.ts +2 -2
  62. package/dist/components/extensions/Button/Button.test.d.ts +1 -0
  63. package/dist/components/extensions/Button/Button.types.d.ts +6 -6
  64. package/dist/components/extensions/ButtonRow/ButtonRow.d.ts +11 -0
  65. package/dist/components/extensions/ButtonRow/ButtonRow.test.d.ts +1 -0
  66. package/dist/components/extensions/ButtonRow/ButtonRow.types.d.ts +45 -0
  67. package/dist/components/extensions/ButtonRow/ButtonRowComponent.d.ts +5 -0
  68. package/dist/components/extensions/ButtonRow/index.d.ts +4 -0
  69. package/dist/components/extensions/Divider/Divider.test.d.ts +1 -0
  70. package/dist/components/extensions/Divider/Divider.types.d.ts +2 -2
  71. package/dist/components/extensions/DragPlaceholder/DragPlaceholder.test.d.ts +1 -0
  72. package/dist/components/extensions/FileHandler/FileHandler.test.d.ts +1 -0
  73. package/dist/components/extensions/FixedChannelPaste/FixedChannelPaste.d.ts +11 -0
  74. package/dist/components/extensions/FixedChannelPaste/FixedChannelPaste.test.d.ts +1 -0
  75. package/dist/components/extensions/FixedChannelPaste/index.d.ts +2 -0
  76. package/dist/components/extensions/FixedChannelSelection/FixedChannelSelection.d.ts +14 -0
  77. package/dist/components/extensions/FixedChannelSelection/FixedChannelSelection.test.d.ts +1 -0
  78. package/dist/components/extensions/FixedChannelSelection/index.d.ts +1 -0
  79. package/dist/components/extensions/Heading/Heading.test.d.ts +1 -0
  80. package/dist/components/extensions/Image/Image.test.d.ts +1 -0
  81. package/dist/components/extensions/ImageBlock/ImageBlock.test.d.ts +1 -0
  82. package/dist/components/extensions/Link/Link.test.d.ts +1 -0
  83. package/dist/components/extensions/Paragraph/Paragraph.test.d.ts +1 -0
  84. package/dist/components/extensions/Selection/Selection.test.d.ts +1 -0
  85. package/dist/components/extensions/TextBlock/TextBlock.test.d.ts +1 -0
  86. package/dist/components/extensions/TextBlock/TextBlock.types.d.ts +4 -4
  87. package/dist/components/extensions/UniqueId/UniqueId.test.d.ts +1 -0
  88. package/dist/components/extensions/Variable/Variable.test.d.ts +1 -0
  89. package/dist/components/extensions/Variable/VariablePaste.d.ts +2 -0
  90. package/dist/components/extensions/Variable/VariablePaste.test.d.ts +1 -0
  91. package/dist/components/extensions/Variable/index.d.ts +1 -0
  92. package/dist/components/extensions/extension-kit.d.ts +1 -4
  93. package/dist/components/extensions/index.d.ts +4 -1
  94. package/dist/components/ui/MainLayout/MainLayout.d.ts +9 -0
  95. package/dist/components/ui/MainLayout/index.d.ts +1 -0
  96. package/dist/components/ui/PreviewPanel/PreviewPanel.d.ts +3 -2
  97. package/dist/components/ui/Status/Status.d.ts +5 -2
  98. package/dist/components/ui/TextMenu/BubbleTextMenu.d.ts +6 -0
  99. package/dist/components/ui/TextMenu/TextMenu.d.ts +3 -1
  100. package/dist/components/ui/TextMenu/config.d.ts +1 -1
  101. package/dist/components/ui/TextMenu/hooks/useTextmenuStates.d.ts +3 -5
  102. package/dist/components/ui/TextMenu/store.d.ts +1 -16
  103. package/dist/components/ui/index.d.ts +1 -1
  104. package/dist/components/ui-kit/AlertDialog/AlertDialog.d.ts +20 -0
  105. package/dist/components/ui-kit/AlertDialog/index.d.ts +1 -0
  106. package/dist/components/ui-kit/Button/Button.d.ts +2 -3
  107. package/dist/components/ui-kit/ErrorBoundary/ErrorBoundary.d.ts +22 -0
  108. package/dist/components/ui-kit/ErrorBoundary/index.d.ts +1 -0
  109. package/dist/components/ui-kit/Icon/BatteryIcon.d.ts +3 -0
  110. package/dist/components/ui-kit/Icon/ExpandIcon.d.ts +3 -0
  111. package/dist/components/ui-kit/Icon/HamburgerMenuIcon.d.ts +3 -0
  112. package/dist/components/ui-kit/Icon/InAppIcon.d.ts +3 -0
  113. package/dist/components/ui-kit/Icon/InboxIcon.d.ts +3 -0
  114. package/dist/components/ui-kit/Icon/MoreMenuIcon.d.ts +3 -0
  115. package/dist/components/ui-kit/Icon/PushIcon.d.ts +3 -0
  116. package/dist/components/ui-kit/Icon/SMSIcon.d.ts +3 -0
  117. package/dist/components/ui-kit/Icon/SignalIcon.d.ts +3 -0
  118. package/dist/components/ui-kit/Icon/WiFiIcon.d.ts +3 -0
  119. package/dist/components/ui-kit/Icon/index.d.ts +10 -0
  120. package/dist/components/ui-kit/Separator/Separator.d.ts +4 -0
  121. package/dist/components/ui-kit/Separator/index.d.ts +1 -0
  122. package/dist/components/ui-kit/ThemeProvider/ThemeProvider.d.ts +1 -1
  123. package/dist/components/ui-kit/index.d.ts +3 -0
  124. package/dist/components/utils/index.d.ts +1 -0
  125. package/dist/components/utils/safeGetPos.d.ts +13 -0
  126. package/dist/esm/index.css +1 -1
  127. package/dist/esm/index.css.map +2 -2
  128. package/dist/esm/index.js +50 -30
  129. package/dist/esm/index.js.map +4 -4
  130. package/dist/esm/styles.css +505 -31
  131. package/dist/index.d.ts +2 -0
  132. package/dist/lib/api/uploadImage.d.ts +0 -1
  133. package/dist/lib/utils/convertElementalToTiptap/convertElementalToTiptap.d.ts +5 -1
  134. package/dist/lib/utils/convertElementalToTiptap/convertElementalToTiptap.test.d.ts +1 -0
  135. package/dist/lib/utils/convertMarkdownToTiptap/convertMarkdownToTiptap.test.d.ts +1 -0
  136. package/dist/lib/utils/convertTiptapToElemental/convertTiptapToElemental.d.ts +2 -2
  137. package/dist/lib/utils/convertTiptapToElemental/convertTiptapToElemental.test.d.ts +1 -0
  138. package/dist/lib/utils/convertTiptapToMarkdown/convertTiptapToMarkdown.test.d.ts +1 -0
  139. package/dist/lib/utils/errors.d.ts +26 -0
  140. package/dist/lib/utils/getTitle/demo.d.ts +1 -0
  141. package/dist/lib/utils/getTitle/getTitle.d.ts +18 -0
  142. package/dist/lib/utils/getTitle/getTitle.test.d.ts +1 -0
  143. package/dist/lib/utils/getTitle/index.d.ts +2 -0
  144. package/dist/lib/utils/getTitle/preserveStorageFormat.d.ts +30 -0
  145. package/dist/lib/utils/getTitle/preserveStorageFormat.test.d.ts +1 -0
  146. package/dist/lib/utils/index.d.ts +3 -1
  147. package/dist/lib/utils/updateElemental/index.d.ts +1 -0
  148. package/dist/lib/utils/updateElemental/updateElemental.d.ts +11 -0
  149. package/dist/lib/utils/updateElemental/updateElemental.test.d.ts +1 -0
  150. package/dist/store.d.ts +7 -2
  151. package/dist/styles.css +505 -31
  152. package/dist/types/elemental.schema.d.ts +3 -3
  153. package/package.json +14 -11
  154. package/dist/components/BrandEditor/Editor/useBlockEditor.d.ts +0 -23
  155. package/dist/components/TemplateEditor/Editor/Editor.d.ts +0 -11
  156. package/dist/components/TemplateEditor/Editor/SideBar/SideBar.d.ts +0 -7
  157. package/dist/components/TemplateEditor/Editor/index.d.ts +0 -1
  158. package/dist/components/TemplateEditor/Editor/useBlockEditor.d.ts +0 -23
  159. package/dist/components/ui/EditorLayout/EditorLayout.d.ts +0 -6
  160. package/dist/components/ui/EditorLayout/index.d.ts +0 -1
  161. /package/dist/components/TemplateEditor/{Editor → Channels/Email}/SideBar/SideBarItem/SideBarItem.d.ts +0 -0
  162. /package/dist/components/TemplateEditor/{Editor → Channels/Email}/SideBar/SideBarItem/index.d.ts +0 -0
  163. /package/dist/components/TemplateEditor/{Editor → Channels/Email}/SideBar/SideBarItemDetails/index.d.ts +0 -0
  164. /package/dist/components/TemplateEditor/{Editor → Channels/Email}/SideBar/SideBarSortableItemWrapper/SideBarSortableItemWrapper.d.ts +0 -0
  165. /package/dist/components/TemplateEditor/{Editor → Channels/Email}/SideBar/SideBarSortableItemWrapper/index.d.ts +0 -0
  166. /package/dist/components/TemplateEditor/{Editor → Channels/Inbox}/SideBar/index.d.ts +0 -0
@@ -5,17 +5,17 @@ export declare const ElementalSchema: z.ZodObject<{
5
5
  version: z.ZodLiteral<"2022-01-01">;
6
6
  elements: z.ZodArray<z.ZodType<ElementalNode, z.ZodTypeDef, ElementalNode>, "many">;
7
7
  }, "strip", z.ZodTypeAny, {
8
- elements: ElementalNode[];
9
8
  version: "2022-01-01";
10
- }, {
11
9
  elements: ElementalNode[];
10
+ }, {
12
11
  version: "2022-01-01";
12
+ elements: ElementalNode[];
13
13
  }>;
14
14
  export declare const validateElemental: (json: unknown) => {
15
15
  success: boolean;
16
16
  data: {
17
- elements: ElementalNode[];
18
17
  version: "2022-01-01";
18
+ elements: ElementalNode[];
19
19
  };
20
20
  errors?: undefined;
21
21
  } | {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@trycourier/react-designer",
3
- "version": "0.0.2",
3
+ "version": "0.0.4",
4
4
  "description": "React-based rich text designer component",
5
5
  "main": "./dist/cjs/index.js",
6
6
  "module": "./dist/esm/index.js",
@@ -40,17 +40,19 @@
40
40
  "@dnd-kit/sortable": "^10.0.0",
41
41
  "@dnd-kit/utilities": "^3.2.2",
42
42
  "@hookform/resolvers": "^3.9.1",
43
+ "@radix-ui/react-alert-dialog": "^1.1.14",
43
44
  "@radix-ui/react-dropdown-menu": "^2.1.4",
44
45
  "@radix-ui/react-label": "^2.1.0",
45
46
  "@radix-ui/react-popover": "^1.1.4",
47
+ "@radix-ui/react-separator": "^1.1.4",
46
48
  "@radix-ui/react-slider": "^1.2.3",
47
- "@radix-ui/react-slot": "^1.1.0",
49
+ "@radix-ui/react-slot": "^1.2.0",
48
50
  "@radix-ui/react-switch": "^1.1.3",
49
51
  "@radix-ui/react-tabs": "^1.1.3",
50
52
  "@radix-ui/react-toggle": "^1.1.0",
51
53
  "@radix-ui/react-toggle-group": "^1.1.0",
52
54
  "@tippyjs/react": "^4.2.6",
53
- "@tiptap/core": "^2.0.0",
55
+ "@tiptap/core": "^2.9.0",
54
56
  "@tiptap/extension-code-block-lowlight": "^2.10.3",
55
57
  "@tiptap/extension-color": "^2.10.2",
56
58
  "@tiptap/extension-hard-break": "^2.11.2",
@@ -60,9 +62,9 @@
60
62
  "@tiptap/extension-text-align": "^2.10.2",
61
63
  "@tiptap/extension-typography": "^2.10.2",
62
64
  "@tiptap/extension-underline": "^2.10.2",
63
- "@tiptap/pm": "^2.0.0",
64
- "@tiptap/react": "^2.0.0",
65
- "@tiptap/starter-kit": "^2.0.0",
65
+ "@tiptap/pm": "^2.9.0",
66
+ "@tiptap/react": "^2.9.0",
67
+ "@tiptap/starter-kit": "^2.9.0",
66
68
  "@tiptap/suggestion": "^2.10.3",
67
69
  "class-variance-authority": "^0.7.0",
68
70
  "clsx": "^2.0.0",
@@ -70,6 +72,7 @@
70
72
  "lucide-react": "^0.473.0",
71
73
  "next-themes": "^0.4.5",
72
74
  "react-hook-form": "^7.53.2",
75
+ "sms-segments-calculator": "^1.2.0",
73
76
  "sonner": "^2.0.1",
74
77
  "tailwind-merge": "^1.14.0",
75
78
  "uuid": "^11.0.3",
@@ -102,8 +105,8 @@
102
105
  "vitest": "^0.34.0"
103
106
  },
104
107
  "peerDependencies": {
105
- "react": "^18.2.0",
106
- "react-dom": "^18.2.0"
108
+ "react": "^18.2.0 || ^19.0.0",
109
+ "react-dom": "^18.2.0 || ^19.0.0"
107
110
  },
108
111
  "type": "module",
109
112
  "files": [
@@ -126,10 +129,10 @@
126
129
  ],
127
130
  "repository": {
128
131
  "type": "git",
129
- "url": "https://github.com/trycourier/react-editor.git"
132
+ "url": "https://github.com/trycourier/courier-designer.git"
130
133
  },
131
134
  "bugs": {
132
- "url": "https://github.com/trycourier/react-editor/issues"
135
+ "url": "https://github.com/trycourier/courier-designer/issues"
133
136
  },
134
137
  "scripts": {
135
138
  "build": "tsc && node build.js",
@@ -137,7 +140,7 @@
137
140
  "lint": "eslint \"src/**/*.ts*\"",
138
141
  "test": "vitest run",
139
142
  "test:watch": "vitest",
140
- "test:e2e": "playwright test",
143
+ "test:e2e": "playwright test --workers=4",
141
144
  "clean": "rm -rf .turbo && rm -rf node_modules && rm -rf dist",
142
145
  "analyze": "node build.js --analyze",
143
146
  "release": "node scripts/publish.js",
@@ -1,23 +0,0 @@
1
- import type { ElementalContent } from "@/types";
2
- import type { Editor } from "@tiptap/core";
3
- import type { Node } from "@tiptap/pm/model";
4
- import type { Doc as YDoc } from "yjs";
5
- declare global {
6
- interface Window {
7
- editor: Editor | null;
8
- }
9
- }
10
- interface UseBlockEditorProps {
11
- initialContent?: ElementalContent;
12
- readOnly?: boolean;
13
- subject?: string | null;
14
- variables?: Record<string, unknown>;
15
- ydoc: YDoc;
16
- onDestroy?: () => void;
17
- onUpdate?: () => void;
18
- setSelectedNode?: (node: Node | null) => void;
19
- }
20
- export declare const useBlockEditor: ({ initialContent, readOnly, variables, ydoc, onDestroy, setSelectedNode, }: UseBlockEditorProps) => {
21
- editor: Editor;
22
- };
23
- export {};
@@ -1,11 +0,0 @@
1
- import type { Editor as TiptapEditor } from "@tiptap/react";
2
- export interface EditorProps {
3
- editor: TiptapEditor;
4
- handleEditorClick: (event: React.MouseEvent<HTMLDivElement>) => void;
5
- isLoading?: boolean;
6
- isVisible?: boolean;
7
- hidePublish?: boolean;
8
- brandEditor?: boolean;
9
- variables?: Record<string, unknown>;
10
- }
11
- export declare const Editor: import("react").MemoExoticComponent<import("react").ForwardRefExoticComponent<EditorProps & import("react").RefAttributes<HTMLDivElement>>>;
@@ -1,7 +0,0 @@
1
- import type { UniqueIdentifier } from "@dnd-kit/core";
2
- interface SideBarProps {
3
- items: UniqueIdentifier[];
4
- brandEditor?: boolean;
5
- }
6
- export declare const SideBar: ({ items, brandEditor }: SideBarProps) => import("react/jsx-runtime").JSX.Element;
7
- export {};
@@ -1 +0,0 @@
1
- export * from "./Editor";
@@ -1,23 +0,0 @@
1
- import type { ElementalContent } from "@/types";
2
- import type { Editor } from "@tiptap/core";
3
- import type { Doc as YDoc } from "yjs";
4
- import type { Node } from "@tiptap/pm/model";
5
- declare global {
6
- interface Window {
7
- editor: Editor | null;
8
- }
9
- }
10
- interface UseBlockEditorProps {
11
- initialContent?: ElementalContent;
12
- readOnly?: boolean;
13
- subject?: string | null;
14
- variables?: Record<string, unknown>;
15
- ydoc: YDoc;
16
- onDestroy?: () => void;
17
- onUpdate?: () => void;
18
- setSelectedNode?: (node: Node | null) => void;
19
- }
20
- export declare const useBlockEditor: ({ initialContent, readOnly, variables, ydoc, onDestroy, setSelectedNode, }: UseBlockEditorProps) => {
21
- editor: Editor;
22
- };
23
- export {};
@@ -1,6 +0,0 @@
1
- import type { Theme } from "@/components/ui-kit/ThemeProvider/ThemeProvider.types";
2
- export interface EditorLayoutProps {
3
- theme?: Theme | string;
4
- children: React.ReactNode;
5
- }
6
- export declare const EditorLayout: React.FC<EditorLayoutProps>;
@@ -1 +0,0 @@
1
- export * from "./EditorLayout";