@trycourier/react-designer 0.0.0-canary-20251202152218 → 0.0.0-canary-20251204163023

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.
@@ -2711,6 +2711,10 @@ body {
2711
2711
  .courier-sms-editor .ProseMirror > .react-renderer .draggable-item > div {
2712
2712
  padding-left: 0px;
2713
2713
  }
2714
+ .courier-sms-editor .ProseMirror > .react-renderer.node-paragraph p {
2715
+ overflow-wrap: break-word;
2716
+ word-break: break-word;
2717
+ }
2714
2718
  .courier-sms-editor .ProseMirror > .react-renderer.node-paragraph .selected-element .node-element::before {
2715
2719
  display: none;
2716
2720
  }
@@ -1,5 +1,10 @@
1
1
  export declare const MAX_IMAGE_DIMENSION = 800;
2
2
  export declare const MAX_FILE_SIZE: number;
3
+ export declare const BLANK_IMAGE_PLACEHOLDER = "data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7";
4
+ /**
5
+ * Check if an image source is effectively blank (empty or placeholder)
6
+ */
7
+ export declare function isBlankImageSrc(src: string | undefined | null): boolean;
3
8
  export declare const resizeImage: (file: File, maxDimension: number) => Promise<{
4
9
  dataUrl: string;
5
10
  width: number;
package/dist/styles.css CHANGED
@@ -2711,6 +2711,10 @@ body {
2711
2711
  .courier-sms-editor .ProseMirror > .react-renderer .draggable-item > div {
2712
2712
  padding-left: 0px;
2713
2713
  }
2714
+ .courier-sms-editor .ProseMirror > .react-renderer.node-paragraph p {
2715
+ overflow-wrap: break-word;
2716
+ word-break: break-word;
2717
+ }
2714
2718
  .courier-sms-editor .ProseMirror > .react-renderer.node-paragraph .selected-element .node-element::before {
2715
2719
  display: none;
2716
2720
  }
@@ -45,8 +45,13 @@ export interface IsElementalTextNode extends IsElementalNode {
45
45
  background_color?: string;
46
46
  format?: "markdown";
47
47
  padding?: string;
48
- color?: string;
49
- border?: BorderConfig;
48
+ border_color?: string;
49
+ border_size?: string;
50
+ /**
51
+ * @deprecated Legacy nested border format. Use flat `border_color` and `border_size` instead.
52
+ * Kept for backward compatibility when reading old templates.
53
+ */
54
+ border?: IBorderConfig;
50
55
  locales?: ElementalLocales<{
51
56
  content?: string;
52
57
  }>;
@@ -113,7 +118,16 @@ export interface ElementalImageNode extends IsElementalNode {
113
118
  href?: string;
114
119
  align?: Align;
115
120
  alt_text?: string;
121
+ /** Width in pixels (e.g., "50px") - MJML only supports pixel values */
116
122
  width?: string;
123
+ /** Natural width of the image in pixels - used to convert between percentage (UI) and pixels (storage) */
124
+ image_natural_width?: number;
125
+ border_color?: string;
126
+ border_size?: string;
127
+ /**
128
+ * @deprecated Legacy nested border format. Use flat `border_color` and `border_size` instead.
129
+ * Kept for backward compatibility when reading old templates.
130
+ */
117
131
  border?: IBorderConfig;
118
132
  locales?: ElementalLocales<{
119
133
  href?: string;
@@ -140,6 +154,12 @@ export interface ElementalActionNode extends IsElementalNode {
140
154
  export interface ElementalDividerNode extends IsElementalNode {
141
155
  type: "divider";
142
156
  color?: string;
157
+ /** Border width in pixels (e.g., "15px") */
158
+ border_width?: string;
159
+ /**
160
+ * @deprecated Legacy width property. Use `border_width` instead.
161
+ * Kept for backward compatibility when reading old templates.
162
+ */
143
163
  width?: string;
144
164
  padding?: string;
145
165
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@trycourier/react-designer",
3
- "version": "0.0.0-canary-20251202152218",
3
+ "version": "0.0.0-canary-20251204163023",
4
4
  "description": "React-based rich text designer component",
5
5
  "main": "./dist/cjs/index.js",
6
6
  "module": "./dist/esm/index.js",