monto-email-builder 1.0.0

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 (181) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +169 -0
  3. package/dist/App/InspectorDrawer/ConfigurationPanel/index.d.ts +3 -0
  4. package/dist/App/InspectorDrawer/ConfigurationPanel/index.d.ts.map +1 -0
  5. package/dist/App/InspectorDrawer/ConfigurationPanel/input-panels/AvatarSidebarPanel.d.ts +9 -0
  6. package/dist/App/InspectorDrawer/ConfigurationPanel/input-panels/AvatarSidebarPanel.d.ts.map +1 -0
  7. package/dist/App/InspectorDrawer/ConfigurationPanel/input-panels/ButtonSidebarPanel.d.ts +9 -0
  8. package/dist/App/InspectorDrawer/ConfigurationPanel/input-panels/ButtonSidebarPanel.d.ts.map +1 -0
  9. package/dist/App/InspectorDrawer/ConfigurationPanel/input-panels/ColumnsContainerSidebarPanel.d.ts +9 -0
  10. package/dist/App/InspectorDrawer/ConfigurationPanel/input-panels/ColumnsContainerSidebarPanel.d.ts.map +1 -0
  11. package/dist/App/InspectorDrawer/ConfigurationPanel/input-panels/ContainerSidebarPanel.d.ts +9 -0
  12. package/dist/App/InspectorDrawer/ConfigurationPanel/input-panels/ContainerSidebarPanel.d.ts.map +1 -0
  13. package/dist/App/InspectorDrawer/ConfigurationPanel/input-panels/DividerSidebarPanel.d.ts +9 -0
  14. package/dist/App/InspectorDrawer/ConfigurationPanel/input-panels/DividerSidebarPanel.d.ts.map +1 -0
  15. package/dist/App/InspectorDrawer/ConfigurationPanel/input-panels/EmailLayoutSidebarPanel.d.ts +9 -0
  16. package/dist/App/InspectorDrawer/ConfigurationPanel/input-panels/EmailLayoutSidebarPanel.d.ts.map +1 -0
  17. package/dist/App/InspectorDrawer/ConfigurationPanel/input-panels/HeadingSidebarPanel.d.ts +9 -0
  18. package/dist/App/InspectorDrawer/ConfigurationPanel/input-panels/HeadingSidebarPanel.d.ts.map +1 -0
  19. package/dist/App/InspectorDrawer/ConfigurationPanel/input-panels/HtmlSidebarPanel.d.ts +9 -0
  20. package/dist/App/InspectorDrawer/ConfigurationPanel/input-panels/HtmlSidebarPanel.d.ts.map +1 -0
  21. package/dist/App/InspectorDrawer/ConfigurationPanel/input-panels/ImageSidebarPanel.d.ts +9 -0
  22. package/dist/App/InspectorDrawer/ConfigurationPanel/input-panels/ImageSidebarPanel.d.ts.map +1 -0
  23. package/dist/App/InspectorDrawer/ConfigurationPanel/input-panels/SpacerSidebarPanel.d.ts +9 -0
  24. package/dist/App/InspectorDrawer/ConfigurationPanel/input-panels/SpacerSidebarPanel.d.ts.map +1 -0
  25. package/dist/App/InspectorDrawer/ConfigurationPanel/input-panels/TextSidebarPanel.d.ts +9 -0
  26. package/dist/App/InspectorDrawer/ConfigurationPanel/input-panels/TextSidebarPanel.d.ts.map +1 -0
  27. package/dist/App/InspectorDrawer/ConfigurationPanel/input-panels/helpers/BaseSidebarPanel.d.ts +8 -0
  28. package/dist/App/InspectorDrawer/ConfigurationPanel/input-panels/helpers/BaseSidebarPanel.d.ts.map +1 -0
  29. package/dist/App/InspectorDrawer/ConfigurationPanel/input-panels/helpers/inputs/BooleanInput.d.ts +9 -0
  30. package/dist/App/InspectorDrawer/ConfigurationPanel/input-panels/helpers/inputs/BooleanInput.d.ts.map +1 -0
  31. package/dist/App/InspectorDrawer/ConfigurationPanel/input-panels/helpers/inputs/ColorInput/BaseColorInput.d.ts +15 -0
  32. package/dist/App/InspectorDrawer/ConfigurationPanel/input-panels/helpers/inputs/ColorInput/BaseColorInput.d.ts.map +1 -0
  33. package/dist/App/InspectorDrawer/ConfigurationPanel/input-panels/helpers/inputs/ColorInput/Picker.d.ts +8 -0
  34. package/dist/App/InspectorDrawer/ConfigurationPanel/input-panels/helpers/inputs/ColorInput/Picker.d.ts.map +1 -0
  35. package/dist/App/InspectorDrawer/ConfigurationPanel/input-panels/helpers/inputs/ColorInput/Swatch.d.ts +9 -0
  36. package/dist/App/InspectorDrawer/ConfigurationPanel/input-panels/helpers/inputs/ColorInput/Swatch.d.ts.map +1 -0
  37. package/dist/App/InspectorDrawer/ConfigurationPanel/input-panels/helpers/inputs/ColorInput/index.d.ts +15 -0
  38. package/dist/App/InspectorDrawer/ConfigurationPanel/input-panels/helpers/inputs/ColorInput/index.d.ts.map +1 -0
  39. package/dist/App/InspectorDrawer/ConfigurationPanel/input-panels/helpers/inputs/ColumnWidthsInput.d.ts +15 -0
  40. package/dist/App/InspectorDrawer/ConfigurationPanel/input-panels/helpers/inputs/ColumnWidthsInput.d.ts.map +1 -0
  41. package/dist/App/InspectorDrawer/ConfigurationPanel/input-panels/helpers/inputs/FontFamily.d.ts +9 -0
  42. package/dist/App/InspectorDrawer/ConfigurationPanel/input-panels/helpers/inputs/FontFamily.d.ts.map +1 -0
  43. package/dist/App/InspectorDrawer/ConfigurationPanel/input-panels/helpers/inputs/FontSizeInput.d.ts +9 -0
  44. package/dist/App/InspectorDrawer/ConfigurationPanel/input-panels/helpers/inputs/FontSizeInput.d.ts.map +1 -0
  45. package/dist/App/InspectorDrawer/ConfigurationPanel/input-panels/helpers/inputs/FontWeightInput.d.ts +9 -0
  46. package/dist/App/InspectorDrawer/ConfigurationPanel/input-panels/helpers/inputs/FontWeightInput.d.ts.map +1 -0
  47. package/dist/App/InspectorDrawer/ConfigurationPanel/input-panels/helpers/inputs/PaddingInput.d.ts +15 -0
  48. package/dist/App/InspectorDrawer/ConfigurationPanel/input-panels/helpers/inputs/PaddingInput.d.ts.map +1 -0
  49. package/dist/App/InspectorDrawer/ConfigurationPanel/input-panels/helpers/inputs/RadioGroupInput.d.ts +10 -0
  50. package/dist/App/InspectorDrawer/ConfigurationPanel/input-panels/helpers/inputs/RadioGroupInput.d.ts.map +1 -0
  51. package/dist/App/InspectorDrawer/ConfigurationPanel/input-panels/helpers/inputs/SliderInput.d.ts +15 -0
  52. package/dist/App/InspectorDrawer/ConfigurationPanel/input-panels/helpers/inputs/SliderInput.d.ts.map +1 -0
  53. package/dist/App/InspectorDrawer/ConfigurationPanel/input-panels/helpers/inputs/TextAlignInput.d.ts +9 -0
  54. package/dist/App/InspectorDrawer/ConfigurationPanel/input-panels/helpers/inputs/TextAlignInput.d.ts.map +1 -0
  55. package/dist/App/InspectorDrawer/ConfigurationPanel/input-panels/helpers/inputs/TextDimensionInput.d.ts +9 -0
  56. package/dist/App/InspectorDrawer/ConfigurationPanel/input-panels/helpers/inputs/TextDimensionInput.d.ts.map +1 -0
  57. package/dist/App/InspectorDrawer/ConfigurationPanel/input-panels/helpers/inputs/TextInput.d.ts +14 -0
  58. package/dist/App/InspectorDrawer/ConfigurationPanel/input-panels/helpers/inputs/TextInput.d.ts.map +1 -0
  59. package/dist/App/InspectorDrawer/ConfigurationPanel/input-panels/helpers/inputs/raw/RawSliderInput.d.ts +14 -0
  60. package/dist/App/InspectorDrawer/ConfigurationPanel/input-panels/helpers/inputs/raw/RawSliderInput.d.ts.map +1 -0
  61. package/dist/App/InspectorDrawer/ConfigurationPanel/input-panels/helpers/style-inputs/MultiStylePropertyPanel.d.ts +10 -0
  62. package/dist/App/InspectorDrawer/ConfigurationPanel/input-panels/helpers/style-inputs/MultiStylePropertyPanel.d.ts.map +1 -0
  63. package/dist/App/InspectorDrawer/ConfigurationPanel/input-panels/helpers/style-inputs/SingleStylePropertyPanel.d.ts +10 -0
  64. package/dist/App/InspectorDrawer/ConfigurationPanel/input-panels/helpers/style-inputs/SingleStylePropertyPanel.d.ts.map +1 -0
  65. package/dist/App/InspectorDrawer/StylesPanel.d.ts +3 -0
  66. package/dist/App/InspectorDrawer/StylesPanel.d.ts.map +1 -0
  67. package/dist/App/InspectorDrawer/ToggleInspectorPanelButton.d.ts +3 -0
  68. package/dist/App/InspectorDrawer/ToggleInspectorPanelButton.d.ts.map +1 -0
  69. package/dist/App/InspectorDrawer/index.d.ts +4 -0
  70. package/dist/App/InspectorDrawer/index.d.ts.map +1 -0
  71. package/dist/App/LanguageSwitcher/index.d.ts +3 -0
  72. package/dist/App/LanguageSwitcher/index.d.ts.map +1 -0
  73. package/dist/App/SamplesDrawer/SidebarButton.d.ts +6 -0
  74. package/dist/App/SamplesDrawer/SidebarButton.d.ts.map +1 -0
  75. package/dist/App/SamplesDrawer/ToggleSamplesPanelButton.d.ts +3 -0
  76. package/dist/App/SamplesDrawer/ToggleSamplesPanelButton.d.ts.map +1 -0
  77. package/dist/App/SamplesDrawer/index.d.ts +4 -0
  78. package/dist/App/SamplesDrawer/index.d.ts.map +1 -0
  79. package/dist/App/TemplatePanel/DownloadJson/index.d.ts +3 -0
  80. package/dist/App/TemplatePanel/DownloadJson/index.d.ts.map +1 -0
  81. package/dist/App/TemplatePanel/HtmlPanel.d.ts +3 -0
  82. package/dist/App/TemplatePanel/HtmlPanel.d.ts.map +1 -0
  83. package/dist/App/TemplatePanel/ImportJson/ImportJsonDialog.d.ts +7 -0
  84. package/dist/App/TemplatePanel/ImportJson/ImportJsonDialog.d.ts.map +1 -0
  85. package/dist/App/TemplatePanel/ImportJson/index.d.ts +3 -0
  86. package/dist/App/TemplatePanel/ImportJson/index.d.ts.map +1 -0
  87. package/dist/App/TemplatePanel/ImportJson/validateJsonStringValue.d.ts +11 -0
  88. package/dist/App/TemplatePanel/ImportJson/validateJsonStringValue.d.ts.map +1 -0
  89. package/dist/App/TemplatePanel/JsonPanel.d.ts +3 -0
  90. package/dist/App/TemplatePanel/JsonPanel.d.ts.map +1 -0
  91. package/dist/App/TemplatePanel/MainTabsGroup.d.ts +3 -0
  92. package/dist/App/TemplatePanel/MainTabsGroup.d.ts.map +1 -0
  93. package/dist/App/TemplatePanel/ShareButton.d.ts +3 -0
  94. package/dist/App/TemplatePanel/ShareButton.d.ts.map +1 -0
  95. package/dist/App/TemplatePanel/helper/HighlightedCodePanel.d.ts +8 -0
  96. package/dist/App/TemplatePanel/helper/HighlightedCodePanel.d.ts.map +1 -0
  97. package/dist/App/TemplatePanel/helper/highlighters.d.ts +3 -0
  98. package/dist/App/TemplatePanel/helper/highlighters.d.ts.map +1 -0
  99. package/dist/App/TemplatePanel/index.d.ts +3 -0
  100. package/dist/App/TemplatePanel/index.d.ts.map +1 -0
  101. package/dist/App/index.d.ts +3 -0
  102. package/dist/App/index.d.ts.map +1 -0
  103. package/dist/EmailBuilder/index.d.ts +68 -0
  104. package/dist/EmailBuilder/index.d.ts.map +1 -0
  105. package/dist/documents/blocks/ColumnsContainer/ColumnsContainerEditor.d.ts +4 -0
  106. package/dist/documents/blocks/ColumnsContainer/ColumnsContainerEditor.d.ts.map +1 -0
  107. package/dist/documents/blocks/ColumnsContainer/ColumnsContainerPropsSchema.d.ts +136 -0
  108. package/dist/documents/blocks/ColumnsContainer/ColumnsContainerPropsSchema.d.ts.map +1 -0
  109. package/dist/documents/blocks/Container/ContainerEditor.d.ts +4 -0
  110. package/dist/documents/blocks/Container/ContainerEditor.d.ts.map +1 -0
  111. package/dist/documents/blocks/Container/ContainerPropsSchema.d.ts +84 -0
  112. package/dist/documents/blocks/Container/ContainerPropsSchema.d.ts.map +1 -0
  113. package/dist/documents/blocks/EmailLayout/EmailLayoutEditor.d.ts +4 -0
  114. package/dist/documents/blocks/EmailLayout/EmailLayoutEditor.d.ts.map +1 -0
  115. package/dist/documents/blocks/EmailLayout/EmailLayoutPropsSchema.d.ts +32 -0
  116. package/dist/documents/blocks/EmailLayout/EmailLayoutPropsSchema.d.ts.map +1 -0
  117. package/dist/documents/blocks/helpers/EditorChildrenIds/AddBlockMenu/BlockButton.d.ts +9 -0
  118. package/dist/documents/blocks/helpers/EditorChildrenIds/AddBlockMenu/BlockButton.d.ts.map +1 -0
  119. package/dist/documents/blocks/helpers/EditorChildrenIds/AddBlockMenu/BlocksMenu.d.ts +10 -0
  120. package/dist/documents/blocks/helpers/EditorChildrenIds/AddBlockMenu/BlocksMenu.d.ts.map +1 -0
  121. package/dist/documents/blocks/helpers/EditorChildrenIds/AddBlockMenu/DividerButton.d.ts +8 -0
  122. package/dist/documents/blocks/helpers/EditorChildrenIds/AddBlockMenu/DividerButton.d.ts.map +1 -0
  123. package/dist/documents/blocks/helpers/EditorChildrenIds/AddBlockMenu/PlaceholderButton.d.ts +7 -0
  124. package/dist/documents/blocks/helpers/EditorChildrenIds/AddBlockMenu/PlaceholderButton.d.ts.map +1 -0
  125. package/dist/documents/blocks/helpers/EditorChildrenIds/AddBlockMenu/buttons.d.ts +10 -0
  126. package/dist/documents/blocks/helpers/EditorChildrenIds/AddBlockMenu/buttons.d.ts.map +1 -0
  127. package/dist/documents/blocks/helpers/EditorChildrenIds/AddBlockMenu/index.d.ts +9 -0
  128. package/dist/documents/blocks/helpers/EditorChildrenIds/AddBlockMenu/index.d.ts.map +1 -0
  129. package/dist/documents/blocks/helpers/EditorChildrenIds/index.d.ts +13 -0
  130. package/dist/documents/blocks/helpers/EditorChildrenIds/index.d.ts.map +1 -0
  131. package/dist/documents/blocks/helpers/TStyle.d.ts +12 -0
  132. package/dist/documents/blocks/helpers/TStyle.d.ts.map +1 -0
  133. package/dist/documents/blocks/helpers/block-wrappers/EditorBlockWrapper.d.ts +7 -0
  134. package/dist/documents/blocks/helpers/block-wrappers/EditorBlockWrapper.d.ts.map +1 -0
  135. package/dist/documents/blocks/helpers/block-wrappers/ReaderBlockWrapper.d.ts +9 -0
  136. package/dist/documents/blocks/helpers/block-wrappers/ReaderBlockWrapper.d.ts.map +1 -0
  137. package/dist/documents/blocks/helpers/block-wrappers/TuneMenu.d.ts +7 -0
  138. package/dist/documents/blocks/helpers/block-wrappers/TuneMenu.d.ts.map +1 -0
  139. package/dist/documents/blocks/helpers/fontFamily.d.ts +7 -0
  140. package/dist/documents/blocks/helpers/fontFamily.d.ts.map +1 -0
  141. package/dist/documents/blocks/helpers/zod.d.ts +22 -0
  142. package/dist/documents/blocks/helpers/zod.d.ts.map +1 -0
  143. package/dist/documents/editor/EditorBlock.d.ts +13 -0
  144. package/dist/documents/editor/EditorBlock.d.ts.map +1 -0
  145. package/dist/documents/editor/EditorContext.d.ts +40 -0
  146. package/dist/documents/editor/EditorContext.d.ts.map +1 -0
  147. package/dist/documents/editor/core.d.ts +2777 -0
  148. package/dist/documents/editor/core.d.ts.map +1 -0
  149. package/dist/getConfiguration/index.d.ts +3 -0
  150. package/dist/getConfiguration/index.d.ts.map +1 -0
  151. package/dist/getConfiguration/sample/empty-email-message.d.ts +4 -0
  152. package/dist/getConfiguration/sample/empty-email-message.d.ts.map +1 -0
  153. package/dist/getConfiguration/sample/one-time-passcode.d.ts +4 -0
  154. package/dist/getConfiguration/sample/one-time-passcode.d.ts.map +1 -0
  155. package/dist/getConfiguration/sample/order-ecommerce.d.ts +4 -0
  156. package/dist/getConfiguration/sample/order-ecommerce.d.ts.map +1 -0
  157. package/dist/getConfiguration/sample/post-metrics-report.d.ts +4 -0
  158. package/dist/getConfiguration/sample/post-metrics-report.d.ts.map +1 -0
  159. package/dist/getConfiguration/sample/reservation-reminder.d.ts +4 -0
  160. package/dist/getConfiguration/sample/reservation-reminder.d.ts.map +1 -0
  161. package/dist/getConfiguration/sample/reset-password.d.ts +4 -0
  162. package/dist/getConfiguration/sample/reset-password.d.ts.map +1 -0
  163. package/dist/getConfiguration/sample/respond-to-message.d.ts +4 -0
  164. package/dist/getConfiguration/sample/respond-to-message.d.ts.map +1 -0
  165. package/dist/getConfiguration/sample/subscription-receipt.d.ts +4 -0
  166. package/dist/getConfiguration/sample/subscription-receipt.d.ts.map +1 -0
  167. package/dist/getConfiguration/sample/welcome.d.ts +4 -0
  168. package/dist/getConfiguration/sample/welcome.d.ts.map +1 -0
  169. package/dist/i18n/index.d.ts +18 -0
  170. package/dist/i18n/index.d.ts.map +1 -0
  171. package/dist/i18n/useTranslation.d.ts +9 -0
  172. package/dist/i18n/useTranslation.d.ts.map +1 -0
  173. package/dist/index.d.ts +11 -0
  174. package/dist/index.d.ts.map +1 -0
  175. package/dist/index.js +3534 -0
  176. package/dist/main.d.ts +2 -0
  177. package/dist/main.d.ts.map +1 -0
  178. package/dist/samples-SfLrANbd.js +6038 -0
  179. package/dist/theme.d.ts +3 -0
  180. package/dist/theme.d.ts.map +1 -0
  181. package/package.json +102 -0
package/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2025 uSpeedo
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/README.md ADDED
@@ -0,0 +1,169 @@
1
+ # Email Builder - 邮件模板编辑器组件库
2
+
3
+ 一个功能完整的邮件模板编辑器 React 组件,可以在其他 React 项目中使用。
4
+
5
+ ## 安装
6
+
7
+ ```bash
8
+ npm install monto-email-builder
9
+ # 或
10
+ yarn add monto-email-builder
11
+ # 或
12
+ pnpm add monto-email-builder
13
+ ```
14
+
15
+ ### 安装 peerDependencies
16
+
17
+ 由于这是一个库,您需要安装以下 peerDependencies:
18
+
19
+ ```bash
20
+ # 必需依赖
21
+ npm install react react-dom
22
+ npm install @mui/material @mui/icons-material
23
+ npm install @emotion/react @emotion/styled
24
+ npm install zustand zod react-colorful
25
+
26
+ # @usewaypoint 系列包
27
+ npm install @usewaypoint/block-avatar @usewaypoint/block-button \
28
+ @usewaypoint/block-columns-container @usewaypoint/block-container \
29
+ @usewaypoint/block-divider @usewaypoint/block-heading \
30
+ @usewaypoint/block-html @usewaypoint/block-image \
31
+ @usewaypoint/block-spacer @usewaypoint/block-text \
32
+ @usewaypoint/document-core @usewaypoint/email-builder
33
+
34
+ # 可选依赖(用于代码高亮功能)
35
+ npm install highlight.js prettier
36
+ ```
37
+
38
+ 或者使用 yarn/pnpm:
39
+
40
+ ```bash
41
+ # yarn
42
+ yarn add react react-dom @mui/material @mui/icons-material @emotion/react @emotion/styled zustand zod react-colorful @usewaypoint/block-avatar @usewaypoint/block-button @usewaypoint/block-columns-container @usewaypoint/block-container @usewaypoint/block-divider @usewaypoint/block-heading @usewaypoint/block-html @usewaypoint/block-image @usewaypoint/block-spacer @usewaypoint/block-text @usewaypoint/document-core @usewaypoint/email-builder
43
+
44
+ # pnpm
45
+ pnpm add react react-dom @mui/material @mui/icons-material @emotion/react @emotion/styled zustand zod react-colorful @usewaypoint/block-avatar @usewaypoint/block-button @usewaypoint/block-columns-container @usewaypoint/block-container @usewaypoint/block-divider @usewaypoint/block-heading @usewaypoint/block-html @usewaypoint/block-image @usewaypoint/block-spacer @usewaypoint/block-text @usewaypoint/document-core @usewaypoint/email-builder
46
+ ```
47
+
48
+ ## 基本使用
49
+
50
+ ```tsx
51
+ import { EmailBuilder } from 'monto-email-builder';
52
+
53
+ function MyApp() {
54
+ return <EmailBuilder />;
55
+ }
56
+ ```
57
+
58
+ ## 完整示例
59
+
60
+ ```tsx
61
+ import { EmailBuilder, TEditorConfiguration } from 'monto-email-builder';
62
+
63
+ function MyApp() {
64
+ // 初始文档配置(可选)
65
+ const initialDocument: TEditorConfiguration = {
66
+ root: {
67
+ type: 'EmailLayout',
68
+ data: {
69
+ backdropColor: '#F5F5F5',
70
+ canvasColor: '#FFFFFF',
71
+ textColor: '#262626',
72
+ fontFamily: 'MODERN_SANS',
73
+ childrenIds: [],
74
+ },
75
+ },
76
+ };
77
+
78
+ // 文档变化回调
79
+ const handleChange = (document: TEditorConfiguration) => {
80
+ console.log('Document changed:', document);
81
+ // 可以将文档保存到服务器
82
+ // saveToServer(document);
83
+ };
84
+
85
+ // 图片上传处理函数
86
+ const handleImageUpload = async (file: File): Promise<string> => {
87
+ const formData = new FormData();
88
+ formData.append('image', file);
89
+
90
+ const response = await fetch('/api/upload', {
91
+ method: 'POST',
92
+ body: formData,
93
+ });
94
+
95
+ const data = await response.json();
96
+ return data.url; // 返回图片 URL
97
+ };
98
+
99
+ return (
100
+ <EmailBuilder
101
+ initialDocument={initialDocument}
102
+ initialLanguage="zh"
103
+ imageUploadHandler={handleImageUpload}
104
+ onChange={handleChange}
105
+ />
106
+ );
107
+ }
108
+ ```
109
+
110
+ ## API
111
+
112
+ ### EmailBuilder Props
113
+
114
+ | 属性 | 类型 | 默认值 | 说明 |
115
+ |------|------|--------|------|
116
+ | `initialDocument` | `TEditorConfiguration \| undefined` | `undefined` | 初始化的邮件模板配置 JSON |
117
+ | `initialLanguage` | `'zh' \| 'en'` | `'en'` | 初始语言 |
118
+ | `imageUploadHandler` | `(file: File) => Promise<string> \| undefined` | `undefined` | 图片上传回调函数,接收 File 对象,返回 Promise<string>(图片 URL) |
119
+ | `onChange` | `(document: TEditorConfiguration) => void \| undefined` | `undefined` | 文档变化时的回调函数 |
120
+ | `theme` | `Theme \| undefined` | `undefined` | 自定义 Material-UI 主题 |
121
+
122
+ ### 类型导出
123
+
124
+ ```tsx
125
+ import type {
126
+ EmailBuilderProps,
127
+ TEditorConfiguration,
128
+ TEditorBlock,
129
+ Language,
130
+ } from 'monto-email-builder';
131
+ ```
132
+
133
+ ### Hook 导出
134
+
135
+ ```tsx
136
+ import { useDocument, useLanguage } from 'monto-email-builder';
137
+
138
+ function MyComponent() {
139
+ const document = useDocument(); // 获取当前文档
140
+ const language = useLanguage(); // 获取当前语言
141
+ }
142
+ ```
143
+
144
+ ## 特性
145
+
146
+ - ✅ 可视化邮件模板编辑器
147
+ - ✅ 支持多种邮件块类型(文本、图片、按钮、容器等)
148
+ - ✅ 实时预览
149
+ - ✅ 导出 HTML 和 JSON
150
+ - ✅ 国际化支持(中文/英文)
151
+ - ✅ 图片上传支持
152
+ - ✅ 完全可定制
153
+
154
+ ## 开发
155
+
156
+ ```bash
157
+ # 安装依赖
158
+ npm install
159
+
160
+ # 启动开发服务器
161
+ npm run dev
162
+
163
+ # 构建
164
+ npm run build
165
+ ```
166
+
167
+ ## 许可证
168
+
169
+ MIT
@@ -0,0 +1,3 @@
1
+ import React from 'react';
2
+ export default function ConfigurationPanel(): React.JSX.Element;
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/App/InspectorDrawer/ConfigurationPanel/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AA4B1B,MAAM,CAAC,OAAO,UAAU,kBAAkB,sBA2CzC"}
@@ -0,0 +1,9 @@
1
+ import React from 'react';
2
+ import { AvatarProps } from '@usewaypoint/block-avatar';
3
+ type AvatarSidebarPanelProps = {
4
+ data: AvatarProps;
5
+ setData: (v: AvatarProps) => void;
6
+ };
7
+ export default function AvatarSidebarPanel({ data, setData }: AvatarSidebarPanelProps): React.JSX.Element;
8
+ export {};
9
+ //# sourceMappingURL=AvatarSidebarPanel.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AvatarSidebarPanel.d.ts","sourceRoot":"","sources":["../../../../../src/App/InspectorDrawer/ConfigurationPanel/input-panels/AvatarSidebarPanel.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAmB,MAAM,OAAO,CAAC;AAIxC,OAAO,EAAE,WAAW,EAA0C,MAAM,2BAA2B,CAAC;AAQhG,KAAK,uBAAuB,GAAG;IAC7B,IAAI,EAAE,WAAW,CAAC;IAClB,OAAO,EAAE,CAAC,CAAC,EAAE,WAAW,KAAK,IAAI,CAAC;CACnC,CAAC;AACF,MAAM,CAAC,OAAO,UAAU,kBAAkB,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,uBAAuB,qBAgEpF"}
@@ -0,0 +1,9 @@
1
+ import React from 'react';
2
+ import { ButtonProps } from '@usewaypoint/block-button';
3
+ type ButtonSidebarPanelProps = {
4
+ data: ButtonProps;
5
+ setData: (v: ButtonProps) => void;
6
+ };
7
+ export default function ButtonSidebarPanel({ data, setData }: ButtonSidebarPanelProps): React.JSX.Element;
8
+ export {};
9
+ //# sourceMappingURL=ButtonSidebarPanel.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ButtonSidebarPanel.d.ts","sourceRoot":"","sources":["../../../../../src/App/InspectorDrawer/ConfigurationPanel/input-panels/ButtonSidebarPanel.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAmB,MAAM,OAAO,CAAC;AAGxC,OAAO,EAAE,WAAW,EAA0C,MAAM,2BAA2B,CAAC;AAQhG,KAAK,uBAAuB,GAAG;IAC7B,IAAI,EAAE,WAAW,CAAC;IAClB,OAAO,EAAE,CAAC,CAAC,EAAE,WAAW,KAAK,IAAI,CAAC;CACnC,CAAC;AACF,MAAM,CAAC,OAAO,UAAU,kBAAkB,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,uBAAuB,qBA6EpF"}
@@ -0,0 +1,9 @@
1
+ import React from 'react';
2
+ import { ColumnsContainerProps } from '../../../../documents/blocks/ColumnsContainer/ColumnsContainerPropsSchema';
3
+ type ColumnsContainerPanelProps = {
4
+ data: ColumnsContainerProps;
5
+ setData: (v: ColumnsContainerProps) => void;
6
+ };
7
+ export default function ColumnsContainerPanel({ data, setData }: ColumnsContainerPanelProps): React.JSX.Element;
8
+ export {};
9
+ //# sourceMappingURL=ColumnsContainerSidebarPanel.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ColumnsContainerSidebarPanel.d.ts","sourceRoot":"","sources":["../../../../../src/App/InspectorDrawer/ConfigurationPanel/input-panels/ColumnsContainerSidebarPanel.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAmB,MAAM,OAAO,CAAC;AAUxC,OAAoC,EAClC,qBAAqB,EACtB,MAAM,2EAA2E,CAAC;AAQnF,KAAK,0BAA0B,GAAG;IAChC,IAAI,EAAE,qBAAqB,CAAC;IAC5B,OAAO,EAAE,CAAC,CAAC,EAAE,qBAAqB,KAAK,IAAI,CAAC;CAC7C,CAAC;AACF,MAAM,CAAC,OAAO,UAAU,qBAAqB,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,0BAA0B,qBAkE1F"}
@@ -0,0 +1,9 @@
1
+ import React from 'react';
2
+ import { ContainerProps } from '../../../../documents/blocks/Container/ContainerPropsSchema';
3
+ type ContainerSidebarPanelProps = {
4
+ data: ContainerProps;
5
+ setData: (v: ContainerProps) => void;
6
+ };
7
+ export default function ContainerSidebarPanel({ data, setData }: ContainerSidebarPanelProps): React.JSX.Element;
8
+ export {};
9
+ //# sourceMappingURL=ContainerSidebarPanel.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ContainerSidebarPanel.d.ts","sourceRoot":"","sources":["../../../../../src/App/InspectorDrawer/ConfigurationPanel/input-panels/ContainerSidebarPanel.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAmB,MAAM,OAAO,CAAC;AAExC,OAA6B,EAAE,cAAc,EAAE,MAAM,6DAA6D,CAAC;AAKnH,KAAK,0BAA0B,GAAG;IAChC,IAAI,EAAE,cAAc,CAAC;IACrB,OAAO,EAAE,CAAC,CAAC,EAAE,cAAc,KAAK,IAAI,CAAC;CACtC,CAAC;AAEF,MAAM,CAAC,OAAO,UAAU,qBAAqB,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,0BAA0B,qBAoB1F"}
@@ -0,0 +1,9 @@
1
+ import React from 'react';
2
+ import { DividerProps } from '@usewaypoint/block-divider';
3
+ type DividerSidebarPanelProps = {
4
+ data: DividerProps;
5
+ setData: (v: DividerProps) => void;
6
+ };
7
+ export default function DividerSidebarPanel({ data, setData }: DividerSidebarPanelProps): React.JSX.Element;
8
+ export {};
9
+ //# sourceMappingURL=DividerSidebarPanel.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DividerSidebarPanel.d.ts","sourceRoot":"","sources":["../../../../../src/App/InspectorDrawer/ConfigurationPanel/input-panels/DividerSidebarPanel.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAmB,MAAM,OAAO,CAAC;AAGxC,OAAO,EAAE,YAAY,EAA4C,MAAM,4BAA4B,CAAC;AAOpG,KAAK,wBAAwB,GAAG;IAC9B,IAAI,EAAE,YAAY,CAAC;IACnB,OAAO,EAAE,CAAC,CAAC,EAAE,YAAY,KAAK,IAAI,CAAC;CACpC,CAAC;AACF,MAAM,CAAC,OAAO,UAAU,mBAAmB,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,wBAAwB,qBAuCtF"}
@@ -0,0 +1,9 @@
1
+ import React from 'react';
2
+ import { EmailLayoutProps } from '../../../../documents/blocks/EmailLayout/EmailLayoutPropsSchema';
3
+ type EmailLayoutSidebarFieldsProps = {
4
+ data: EmailLayoutProps;
5
+ setData: (v: EmailLayoutProps) => void;
6
+ };
7
+ export default function EmailLayoutSidebarFields({ data, setData }: EmailLayoutSidebarFieldsProps): React.JSX.Element;
8
+ export {};
9
+ //# sourceMappingURL=EmailLayoutSidebarPanel.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"EmailLayoutSidebarPanel.d.ts","sourceRoot":"","sources":["../../../../../src/App/InspectorDrawer/ConfigurationPanel/input-panels/EmailLayoutSidebarPanel.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAmB,MAAM,OAAO,CAAC;AAIxC,OAA+B,EAC7B,gBAAgB,EACjB,MAAM,iEAAiE,CAAC;AAOzE,KAAK,6BAA6B,GAAG;IACnC,IAAI,EAAE,gBAAgB,CAAC;IACvB,OAAO,EAAE,CAAC,CAAC,EAAE,gBAAgB,KAAK,IAAI,CAAC;CACxC,CAAC;AACF,MAAM,CAAC,OAAO,UAAU,wBAAwB,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,6BAA6B,qBAgEhG"}
@@ -0,0 +1,9 @@
1
+ import React from 'react';
2
+ import { HeadingProps } from '@usewaypoint/block-heading';
3
+ type HeadingSidebarPanelProps = {
4
+ data: HeadingProps;
5
+ setData: (v: HeadingProps) => void;
6
+ };
7
+ export default function HeadingSidebarPanel({ data, setData }: HeadingSidebarPanelProps): React.JSX.Element;
8
+ export {};
9
+ //# sourceMappingURL=HeadingSidebarPanel.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"HeadingSidebarPanel.d.ts","sourceRoot":"","sources":["../../../../../src/App/InspectorDrawer/ConfigurationPanel/input-panels/HeadingSidebarPanel.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAmB,MAAM,OAAO,CAAC;AAGxC,OAAO,EAAE,YAAY,EAA4C,MAAM,4BAA4B,CAAC;AAOpG,KAAK,wBAAwB,GAAG;IAC9B,IAAI,EAAE,YAAY,CAAC;IACnB,OAAO,EAAE,CAAC,CAAC,EAAE,YAAY,KAAK,IAAI,CAAC;CACpC,CAAC;AACF,MAAM,CAAC,OAAO,UAAU,mBAAmB,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,wBAAwB,qBAyCtF"}
@@ -0,0 +1,9 @@
1
+ import React from 'react';
2
+ import { HtmlProps } from '@usewaypoint/block-html';
3
+ type HtmlSidebarPanelProps = {
4
+ data: HtmlProps;
5
+ setData: (v: HtmlProps) => void;
6
+ };
7
+ export default function HtmlSidebarPanel({ data, setData }: HtmlSidebarPanelProps): React.JSX.Element;
8
+ export {};
9
+ //# sourceMappingURL=HtmlSidebarPanel.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"HtmlSidebarPanel.d.ts","sourceRoot":"","sources":["../../../../../src/App/InspectorDrawer/ConfigurationPanel/input-panels/HtmlSidebarPanel.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAmB,MAAM,OAAO,CAAC;AAExC,OAAO,EAAE,SAAS,EAAmB,MAAM,yBAAyB,CAAC;AAMrE,KAAK,qBAAqB,GAAG;IAC3B,IAAI,EAAE,SAAS,CAAC;IAChB,OAAO,EAAE,CAAC,CAAC,EAAE,SAAS,KAAK,IAAI,CAAC;CACjC,CAAC;AACF,MAAM,CAAC,OAAO,UAAU,gBAAgB,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,qBAAqB,qBA4BhF"}
@@ -0,0 +1,9 @@
1
+ import React from 'react';
2
+ import { ImageProps } from '@usewaypoint/block-image';
3
+ type ImageSidebarPanelProps = {
4
+ data: ImageProps;
5
+ setData: (v: ImageProps) => void;
6
+ };
7
+ export default function ImageSidebarPanel({ data, setData }: ImageSidebarPanelProps): React.JSX.Element;
8
+ export {};
9
+ //# sourceMappingURL=ImageSidebarPanel.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ImageSidebarPanel.d.ts","sourceRoot":"","sources":["../../../../../src/App/InspectorDrawer/ConfigurationPanel/input-panels/ImageSidebarPanel.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA2B,MAAM,OAAO,CAAC;AAUhD,OAAO,EAAE,UAAU,EAAoB,MAAM,0BAA0B,CAAC;AAUxE,KAAK,sBAAsB,GAAG;IAC5B,IAAI,EAAE,UAAU,CAAC;IACjB,OAAO,EAAE,CAAC,CAAC,EAAE,UAAU,KAAK,IAAI,CAAC;CAClC,CAAC;AACF,MAAM,CAAC,OAAO,UAAU,iBAAiB,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,sBAAsB,qBA+JlF"}
@@ -0,0 +1,9 @@
1
+ import React from 'react';
2
+ import { SpacerProps } from '@usewaypoint/block-spacer';
3
+ type SpacerSidebarPanelProps = {
4
+ data: SpacerProps;
5
+ setData: (v: SpacerProps) => void;
6
+ };
7
+ export default function SpacerSidebarPanel({ data, setData }: SpacerSidebarPanelProps): React.JSX.Element;
8
+ export {};
9
+ //# sourceMappingURL=SpacerSidebarPanel.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SpacerSidebarPanel.d.ts","sourceRoot":"","sources":["../../../../../src/App/InspectorDrawer/ConfigurationPanel/input-panels/SpacerSidebarPanel.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAmB,MAAM,OAAO,CAAC;AAGxC,OAAO,EAAE,WAAW,EAA0C,MAAM,2BAA2B,CAAC;AAKhG,KAAK,uBAAuB,GAAG;IAC7B,IAAI,EAAE,WAAW,CAAC;IAClB,OAAO,EAAE,CAAC,CAAC,EAAE,WAAW,KAAK,IAAI,CAAC;CACnC,CAAC;AACF,MAAM,CAAC,OAAO,UAAU,kBAAkB,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,uBAAuB,qBA2BpF"}
@@ -0,0 +1,9 @@
1
+ import React from 'react';
2
+ import { TextProps } from '@usewaypoint/block-text';
3
+ type TextSidebarPanelProps = {
4
+ data: TextProps;
5
+ setData: (v: TextProps) => void;
6
+ };
7
+ export default function TextSidebarPanel({ data, setData }: TextSidebarPanelProps): React.JSX.Element;
8
+ export {};
9
+ //# sourceMappingURL=TextSidebarPanel.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TextSidebarPanel.d.ts","sourceRoot":"","sources":["../../../../../src/App/InspectorDrawer/ConfigurationPanel/input-panels/TextSidebarPanel.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAmB,MAAM,OAAO,CAAC;AAExC,OAAO,EAAE,SAAS,EAAmB,MAAM,yBAAyB,CAAC;AAOrE,KAAK,qBAAqB,GAAG;IAC3B,IAAI,EAAE,SAAS,CAAC;IAChB,OAAO,EAAE,CAAC,CAAC,EAAE,SAAS,KAAK,IAAI,CAAC;CACjC,CAAC;AACF,MAAM,CAAC,OAAO,UAAU,gBAAgB,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,qBAAqB,qBAkChF"}
@@ -0,0 +1,8 @@
1
+ import React from 'react';
2
+ type SidebarPanelProps = {
3
+ title: string;
4
+ children: React.ReactNode;
5
+ };
6
+ export default function BaseSidebarPanel({ title, children }: SidebarPanelProps): React.JSX.Element;
7
+ export {};
8
+ //# sourceMappingURL=BaseSidebarPanel.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BaseSidebarPanel.d.ts","sourceRoot":"","sources":["../../../../../../src/App/InspectorDrawer/ConfigurationPanel/input-panels/helpers/BaseSidebarPanel.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAI1B,KAAK,iBAAiB,GAAG;IACvB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;CAC3B,CAAC;AACF,MAAM,CAAC,OAAO,UAAU,gBAAgB,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE,iBAAiB,qBAW9E"}
@@ -0,0 +1,9 @@
1
+ import React from 'react';
2
+ type Props = {
3
+ label: string;
4
+ defaultValue: boolean;
5
+ onChange: (value: boolean) => void;
6
+ };
7
+ export default function BooleanInput({ label, defaultValue, onChange }: Props): React.JSX.Element;
8
+ export {};
9
+ //# sourceMappingURL=BooleanInput.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BooleanInput.d.ts","sourceRoot":"","sources":["../../../../../../../src/App/InspectorDrawer/ConfigurationPanel/input-panels/helpers/inputs/BooleanInput.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAmB,MAAM,OAAO,CAAC;AAIxC,KAAK,KAAK,GAAG;IACX,KAAK,EAAE,MAAM,CAAC;IACd,YAAY,EAAE,OAAO,CAAC;IACtB,QAAQ,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;CACpC,CAAC;AAEF,MAAM,CAAC,OAAO,UAAU,YAAY,CAAC,EAAE,KAAK,EAAE,YAAY,EAAE,QAAQ,EAAE,EAAE,KAAK,qBAgB5E"}
@@ -0,0 +1,15 @@
1
+ import React from 'react';
2
+ type Props = {
3
+ nullable: true;
4
+ label: string;
5
+ onChange: (value: string | null) => void;
6
+ defaultValue: string | null;
7
+ } | {
8
+ nullable: false;
9
+ label: string;
10
+ onChange: (value: string) => void;
11
+ defaultValue: string;
12
+ };
13
+ export default function ColorInput({ label, defaultValue, onChange, nullable }: Props): React.JSX.Element;
14
+ export {};
15
+ //# sourceMappingURL=BaseColorInput.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BaseColorInput.d.ts","sourceRoot":"","sources":["../../../../../../../../src/App/InspectorDrawer/ConfigurationPanel/input-panels/helpers/inputs/ColorInput/BaseColorInput.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAmB,MAAM,OAAO,CAAC;AAgBxC,KAAK,KAAK,GACN;IACE,QAAQ,EAAE,IAAI,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,CAAC;IACzC,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;CAC7B,GACD;IACE,QAAQ,EAAE,KAAK,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAClC,YAAY,EAAE,MAAM,CAAC;CACtB,CAAC;AACN,MAAM,CAAC,OAAO,UAAU,UAAU,CAAC,EAAE,KAAK,EAAE,YAAY,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,KAAK,qBA8DpF"}
@@ -0,0 +1,8 @@
1
+ import React from 'react';
2
+ type Props = {
3
+ value: string;
4
+ onChange: (v: string) => void;
5
+ };
6
+ export default function Picker({ value, onChange }: Props): React.JSX.Element;
7
+ export {};
8
+ //# sourceMappingURL=Picker.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Picker.d.ts","sourceRoot":"","sources":["../../../../../../../../src/App/InspectorDrawer/ConfigurationPanel/input-panels/helpers/inputs/ColorInput/Picker.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAuE1B,KAAK,KAAK,GAAG;IACX,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;CAC/B,CAAC;AACF,MAAM,CAAC,OAAO,UAAU,MAAM,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE,KAAK,qBAUxD"}
@@ -0,0 +1,9 @@
1
+ import React from 'react';
2
+ type Props = {
3
+ paletteColors: string[];
4
+ value: string;
5
+ onChange: (value: string) => void;
6
+ };
7
+ export default function Swatch({ paletteColors, value, onChange }: Props): React.JSX.Element;
8
+ export {};
9
+ //# sourceMappingURL=Swatch.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Swatch.d.ts","sourceRoot":"","sources":["../../../../../../../../src/App/InspectorDrawer/ConfigurationPanel/input-panels/helpers/inputs/ColorInput/Swatch.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAI1B,KAAK,KAAK,GAAG;IACX,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;CACnC,CAAC;AAMF,MAAM,CAAC,OAAO,UAAU,MAAM,CAAC,EAAE,aAAa,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE,KAAK,qBA0BvE"}
@@ -0,0 +1,15 @@
1
+ import React from 'react';
2
+ type Props = {
3
+ label: string;
4
+ onChange: (value: string) => void;
5
+ defaultValue: string;
6
+ };
7
+ export default function ColorInput(props: Props): React.JSX.Element;
8
+ type NullableProps = {
9
+ label: string;
10
+ onChange: (value: null | string) => void;
11
+ defaultValue: null | string;
12
+ };
13
+ export declare function NullableColorInput(props: NullableProps): React.JSX.Element;
14
+ export {};
15
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../../../src/App/InspectorDrawer/ConfigurationPanel/input-panels/helpers/inputs/ColorInput/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAI1B,KAAK,KAAK,GAAG;IACX,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAClC,YAAY,EAAE,MAAM,CAAC;CACtB,CAAC;AACF,MAAM,CAAC,OAAO,UAAU,UAAU,CAAC,KAAK,EAAE,KAAK,qBAE9C;AAED,KAAK,aAAa,GAAG;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,CAAC,KAAK,EAAE,IAAI,GAAG,MAAM,KAAK,IAAI,CAAC;IACzC,YAAY,EAAE,IAAI,GAAG,MAAM,CAAC;CAC7B,CAAC;AACF,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,aAAa,qBAEtD"}
@@ -0,0 +1,15 @@
1
+ import React from 'react';
2
+ export declare const DEFAULT_2_COLUMNS: [number];
3
+ export declare const DEFAULT_3_COLUMNS: [number, number];
4
+ type FixedWidths = [
5
+ number | null | undefined,
6
+ number | null | undefined,
7
+ number | null | undefined
8
+ ];
9
+ type ColumnsLayoutInputProps = {
10
+ defaultValue: FixedWidths | null | undefined;
11
+ onChange: (v: FixedWidths | null | undefined) => void;
12
+ };
13
+ export default function ColumnWidthsInput({ defaultValue, onChange }: ColumnsLayoutInputProps): React.JSX.Element;
14
+ export {};
15
+ //# sourceMappingURL=ColumnWidthsInput.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ColumnWidthsInput.d.ts","sourceRoot":"","sources":["../../../../../../../src/App/InspectorDrawer/ConfigurationPanel/input-panels/helpers/inputs/ColumnWidthsInput.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAmB,MAAM,OAAO,CAAC;AAMxC,eAAO,MAAM,iBAAiB,UAAkB,CAAC;AACjD,eAAO,MAAM,iBAAiB,kBAA6B,CAAC;AAG5D,KAAK,WAAW,GAAG;IAEjB,MAAM,GAAG,IAAI,GAAG,SAAS;IACzB,MAAM,GAAG,IAAI,GAAG,SAAS;IACzB,MAAM,GAAG,IAAI,GAAG,SAAS;CAC1B,CAAC;AACF,KAAK,uBAAuB,GAAG;IAC7B,YAAY,EAAE,WAAW,GAAG,IAAI,GAAG,SAAS,CAAC;IAC7C,QAAQ,EAAE,CAAC,CAAC,EAAE,WAAW,GAAG,IAAI,GAAG,SAAS,KAAK,IAAI,CAAC;CACvD,CAAC;AACF,MAAM,CAAC,OAAO,UAAU,iBAAiB,CAAC,EAAE,YAAY,EAAE,QAAQ,EAAE,EAAE,uBAAuB,qBA+C5F"}
@@ -0,0 +1,9 @@
1
+ import React from 'react';
2
+ type NullableProps = {
3
+ label: string;
4
+ onChange: (value: null | string) => void;
5
+ defaultValue: null | string;
6
+ };
7
+ export declare function NullableFontFamily({ label, onChange, defaultValue }: NullableProps): React.JSX.Element;
8
+ export {};
9
+ //# sourceMappingURL=FontFamily.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FontFamily.d.ts","sourceRoot":"","sources":["../../../../../../../src/App/InspectorDrawer/ConfigurationPanel/input-panels/helpers/inputs/FontFamily.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAmB,MAAM,OAAO,CAAC;AAYxC,KAAK,aAAa,GAAG;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,CAAC,KAAK,EAAE,IAAI,GAAG,MAAM,KAAK,IAAI,CAAC;IACzC,YAAY,EAAE,IAAI,GAAG,MAAM,CAAC;CAC7B,CAAC;AACF,wBAAgB,kBAAkB,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,YAAY,EAAE,EAAE,aAAa,qBAkBlF"}
@@ -0,0 +1,9 @@
1
+ import React from 'react';
2
+ type Props = {
3
+ label: string;
4
+ defaultValue: number;
5
+ onChange: (v: number) => void;
6
+ };
7
+ export default function FontSizeInput({ label, defaultValue, onChange }: Props): React.JSX.Element;
8
+ export {};
9
+ //# sourceMappingURL=FontSizeInput.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FontSizeInput.d.ts","sourceRoot":"","sources":["../../../../../../../src/App/InspectorDrawer/ConfigurationPanel/input-panels/helpers/inputs/FontSizeInput.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAmB,MAAM,OAAO,CAAC;AAOxC,KAAK,KAAK,GAAG;IACX,KAAK,EAAE,MAAM,CAAC;IACd,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;CAC/B,CAAC;AACF,MAAM,CAAC,OAAO,UAAU,aAAa,CAAC,EAAE,KAAK,EAAE,YAAY,EAAE,QAAQ,EAAE,EAAE,KAAK,qBAoB7E"}
@@ -0,0 +1,9 @@
1
+ import React from 'react';
2
+ type Props = {
3
+ label: string;
4
+ defaultValue: string;
5
+ onChange: (value: string) => void;
6
+ };
7
+ export default function FontWeightInput({ label, defaultValue, onChange }: Props): React.JSX.Element;
8
+ export {};
9
+ //# sourceMappingURL=FontWeightInput.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FontWeightInput.d.ts","sourceRoot":"","sources":["../../../../../../../src/App/InspectorDrawer/ConfigurationPanel/input-panels/helpers/inputs/FontWeightInput.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAmB,MAAM,OAAO,CAAC;AAMxC,KAAK,KAAK,GAAG;IACX,KAAK,EAAE,MAAM,CAAC;IACd,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;CACnC,CAAC;AACF,MAAM,CAAC,OAAO,UAAU,eAAe,CAAC,EAAE,KAAK,EAAE,YAAY,EAAE,QAAQ,EAAE,EAAE,KAAK,qBAe/E"}
@@ -0,0 +1,15 @@
1
+ import React from 'react';
2
+ type TPaddingValue = {
3
+ top: number;
4
+ bottom: number;
5
+ right: number;
6
+ left: number;
7
+ };
8
+ type Props = {
9
+ label: string;
10
+ defaultValue: TPaddingValue | null;
11
+ onChange: (value: TPaddingValue) => void;
12
+ };
13
+ export default function PaddingInput({ label, defaultValue, onChange }: Props): React.JSX.Element;
14
+ export {};
15
+ //# sourceMappingURL=PaddingInput.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PaddingInput.d.ts","sourceRoot":"","sources":["../../../../../../../src/App/InspectorDrawer/ConfigurationPanel/input-panels/helpers/inputs/PaddingInput.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAmB,MAAM,OAAO,CAAC;AAYxC,KAAK,aAAa,GAAG;IACnB,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;CACd,CAAC;AACF,KAAK,KAAK,GAAG;IACX,KAAK,EAAE,MAAM,CAAC;IACd,YAAY,EAAE,aAAa,GAAG,IAAI,CAAC;IACnC,QAAQ,EAAE,CAAC,KAAK,EAAE,aAAa,KAAK,IAAI,CAAC;CAC1C,CAAC;AACF,MAAM,CAAC,OAAO,UAAU,YAAY,CAAC,EAAE,KAAK,EAAE,YAAY,EAAE,QAAQ,EAAE,EAAE,KAAK,qBAuE5E"}
@@ -0,0 +1,10 @@
1
+ import React from 'react';
2
+ type Props = {
3
+ label: string | JSX.Element;
4
+ children: JSX.Element | JSX.Element[];
5
+ defaultValue: string;
6
+ onChange: (v: string) => void;
7
+ };
8
+ export default function RadioGroupInput({ label, children, defaultValue, onChange }: Props): React.JSX.Element;
9
+ export {};
10
+ //# sourceMappingURL=RadioGroupInput.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RadioGroupInput.d.ts","sourceRoot":"","sources":["../../../../../../../src/App/InspectorDrawer/ConfigurationPanel/input-panels/helpers/inputs/RadioGroupInput.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAmB,MAAM,OAAO,CAAC;AAIxC,KAAK,KAAK,GAAG;IACX,KAAK,EAAE,MAAM,GAAG,GAAG,CAAC,OAAO,CAAC;IAC5B,QAAQ,EAAE,GAAG,CAAC,OAAO,GAAG,GAAG,CAAC,OAAO,EAAE,CAAC;IACtC,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;CAC/B,CAAC;AACF,MAAM,CAAC,OAAO,UAAU,eAAe,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,YAAY,EAAE,QAAQ,EAAE,EAAE,KAAK,qBAsBzF"}
@@ -0,0 +1,15 @@
1
+ import React from 'react';
2
+ type SliderInputProps = {
3
+ label: string;
4
+ iconLabel: JSX.Element;
5
+ step?: number;
6
+ marks?: boolean;
7
+ units: string;
8
+ min?: number;
9
+ max?: number;
10
+ defaultValue: number;
11
+ onChange: (v: number) => void;
12
+ };
13
+ export default function SliderInput({ label, defaultValue, onChange, ...props }: SliderInputProps): React.JSX.Element;
14
+ export {};
15
+ //# sourceMappingURL=SliderInput.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SliderInput.d.ts","sourceRoot":"","sources":["../../../../../../../src/App/InspectorDrawer/ConfigurationPanel/input-panels/helpers/inputs/SliderInput.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAmB,MAAM,OAAO,CAAC;AAMxC,KAAK,gBAAgB,GAAG;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,GAAG,CAAC,OAAO,CAAC;IAEvB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC;IAEb,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;CAC/B,CAAC;AAEF,MAAM,CAAC,OAAO,UAAU,WAAW,CAAC,EAAE,KAAK,EAAE,YAAY,EAAE,QAAQ,EAAE,GAAG,KAAK,EAAE,EAAE,gBAAgB,qBAehG"}
@@ -0,0 +1,9 @@
1
+ import React from 'react';
2
+ type Props = {
3
+ label: string;
4
+ defaultValue: string | null;
5
+ onChange: (value: string | null) => void;
6
+ };
7
+ export default function TextAlignInput({ label, defaultValue, onChange }: Props): React.JSX.Element;
8
+ export {};
9
+ //# sourceMappingURL=TextAlignInput.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TextAlignInput.d.ts","sourceRoot":"","sources":["../../../../../../../src/App/InspectorDrawer/ConfigurationPanel/input-panels/helpers/inputs/TextAlignInput.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAmB,MAAM,OAAO,CAAC;AAOxC,KAAK,KAAK,GAAG;IACX,KAAK,EAAE,MAAM,CAAC;IACd,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,CAAC;CAC1C,CAAC;AACF,MAAM,CAAC,OAAO,UAAU,cAAc,CAAC,EAAE,KAAK,EAAE,YAAY,EAAE,QAAQ,EAAE,EAAE,KAAK,qBAuB9E"}
@@ -0,0 +1,9 @@
1
+ import React from 'react';
2
+ type TextDimensionInputProps = {
3
+ label: string;
4
+ defaultValue: number | null | undefined;
5
+ onChange: (v: number | null) => void;
6
+ };
7
+ export default function TextDimensionInput({ label, defaultValue, onChange }: TextDimensionInputProps): React.JSX.Element;
8
+ export {};
9
+ //# sourceMappingURL=TextDimensionInput.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TextDimensionInput.d.ts","sourceRoot":"","sources":["../../../../../../../src/App/InspectorDrawer/ConfigurationPanel/input-panels/helpers/inputs/TextDimensionInput.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAI1B,KAAK,uBAAuB,GAAG;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,YAAY,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;IACxC,QAAQ,EAAE,CAAC,CAAC,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,CAAC;CACtC,CAAC;AACF,MAAM,CAAC,OAAO,UAAU,kBAAkB,CAAC,EAAE,KAAK,EAAE,YAAY,EAAE,QAAQ,EAAE,EAAE,uBAAuB,qBAuBpG"}