@trycourier/react-designer 0.0.0-canary-20250714142320 → 0.0.0-canary-20250820153811
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.
- package/README.md +21 -20
- package/dist/cjs/index.css +1 -1
- package/dist/cjs/index.css.map +2 -2
- package/dist/cjs/index.js +38 -40
- package/dist/cjs/index.js.map +4 -4
- package/dist/cjs/styles.css +83 -10
- package/dist/components/Providers/BrandProvider.d.ts +0 -12
- package/dist/components/Providers/TemplateProvider.d.ts +7 -12
- package/dist/components/Providers/api/common.d.ts +1 -1
- package/dist/components/Providers/api/template.d.ts +1 -1
- package/dist/components/Providers/index.d.ts +4 -2
- package/dist/components/Providers/store.d.ts +15 -5
- package/dist/components/Providers/useBrandActions.d.ts +13 -0
- package/dist/components/Providers/useTemplateActions.d.ts +19 -0
- package/dist/components/TemplateEditor/Channels/Email/Email.d.ts +3 -3
- package/dist/components/TemplateEditor/Channels/Email/EmailEditor.d.ts +1 -1
- package/dist/components/TemplateEditor/Channels/Email/index.d.ts +1 -0
- package/dist/components/TemplateEditor/Channels/Inbox/Inbox.d.ts +1 -1
- package/dist/components/TemplateEditor/Channels/Push/Push.d.ts +1 -1
- package/dist/components/TemplateEditor/Channels/Push/PushEditor.d.ts +1 -2
- package/dist/components/TemplateEditor/Channels/SMS/SMS.d.ts +1 -1
- package/dist/components/TemplateEditor/Channels/useChannels.d.ts +1 -0
- package/dist/components/TemplateEditor/Layout/Layout.d.ts +1 -0
- package/dist/components/TemplateEditor/TemplateEditor.d.ts +1 -1
- package/dist/components/TemplateEditor/index.d.ts +3 -1
- package/dist/components/extensions/FixedChannelPaste/FixedChannelPaste.d.ts +11 -0
- package/dist/components/extensions/FixedChannelPaste/FixedChannelPaste.test.d.ts +1 -0
- package/dist/components/extensions/FixedChannelPaste/index.d.ts +2 -0
- package/dist/components/extensions/FixedChannelSelection/FixedChannelSelection.d.ts +14 -0
- package/dist/components/extensions/FixedChannelSelection/FixedChannelSelection.test.d.ts +1 -0
- package/dist/components/extensions/FixedChannelSelection/index.d.ts +1 -0
- package/dist/components/extensions/Variable/VariablePaste.d.ts +2 -0
- package/dist/components/extensions/Variable/VariablePaste.test.d.ts +1 -0
- package/dist/components/extensions/Variable/index.d.ts +1 -0
- package/dist/components/extensions/extension-kit.d.ts +1 -1
- package/dist/components/extensions/index.d.ts +3 -1
- package/dist/components/ui/PreviewPanel/PreviewPanel.d.ts +3 -2
- package/dist/components/ui/Status/Status.d.ts +4 -1
- package/dist/components/ui-kit/AlertDialog/AlertDialog.d.ts +20 -0
- package/dist/components/ui-kit/AlertDialog/index.d.ts +1 -0
- package/dist/components/ui-kit/Button/Button.d.ts +1 -2
- package/dist/components/ui-kit/index.d.ts +1 -0
- package/dist/esm/index.css +1 -1
- package/dist/esm/index.css.map +2 -2
- package/dist/esm/index.js +38 -40
- package/dist/esm/index.js.map +4 -4
- package/dist/esm/styles.css +83 -10
- package/dist/styles.css +83 -10
- package/package.json +3 -2
package/dist/cjs/styles.css
CHANGED
|
@@ -884,6 +884,9 @@ body {
|
|
|
884
884
|
.courier-invisible {
|
|
885
885
|
visibility: hidden;
|
|
886
886
|
}
|
|
887
|
+
.courier-fixed {
|
|
888
|
+
position: fixed;
|
|
889
|
+
}
|
|
887
890
|
.courier-absolute {
|
|
888
891
|
position: absolute;
|
|
889
892
|
}
|
|
@@ -917,6 +920,9 @@ body {
|
|
|
917
920
|
.courier-left-\[-20px\] {
|
|
918
921
|
left: -20px;
|
|
919
922
|
}
|
|
923
|
+
.courier-left-\[50\%\] {
|
|
924
|
+
left: 50%;
|
|
925
|
+
}
|
|
920
926
|
.courier-right-0 {
|
|
921
927
|
right: 0px;
|
|
922
928
|
}
|
|
@@ -959,6 +965,9 @@ body {
|
|
|
959
965
|
.courier-top-\[245px\] {
|
|
960
966
|
top: 245px;
|
|
961
967
|
}
|
|
968
|
+
.courier-top-\[50\%\] {
|
|
969
|
+
top: 50%;
|
|
970
|
+
}
|
|
962
971
|
.courier-z-0 {
|
|
963
972
|
z-index: 0;
|
|
964
973
|
}
|
|
@@ -1318,6 +1327,9 @@ body {
|
|
|
1318
1327
|
.courier-max-w-4xl {
|
|
1319
1328
|
max-width: 56rem;
|
|
1320
1329
|
}
|
|
1330
|
+
.courier-max-w-lg {
|
|
1331
|
+
max-width: 32rem;
|
|
1332
|
+
}
|
|
1321
1333
|
.courier-flex-1 {
|
|
1322
1334
|
flex: 1 1 0%;
|
|
1323
1335
|
}
|
|
@@ -1406,6 +1418,9 @@ body {
|
|
|
1406
1418
|
.courier-flex-col {
|
|
1407
1419
|
flex-direction: column;
|
|
1408
1420
|
}
|
|
1421
|
+
.courier-flex-col-reverse {
|
|
1422
|
+
flex-direction: column-reverse;
|
|
1423
|
+
}
|
|
1409
1424
|
.courier-flex-wrap {
|
|
1410
1425
|
flex-wrap: wrap;
|
|
1411
1426
|
}
|
|
@@ -1654,6 +1669,9 @@ body {
|
|
|
1654
1669
|
--tw-bg-opacity: 1;
|
|
1655
1670
|
background-color: rgb(0 0 0 / var(--tw-bg-opacity, 1));
|
|
1656
1671
|
}
|
|
1672
|
+
.courier-bg-\[\#0a0a0a52\] {
|
|
1673
|
+
background-color: #0a0a0a52;
|
|
1674
|
+
}
|
|
1657
1675
|
.courier-bg-\[\#3B82F6\] {
|
|
1658
1676
|
--tw-bg-opacity: 1;
|
|
1659
1677
|
background-color: rgb(59 130 246 / var(--tw-bg-opacity, 1));
|
|
@@ -2172,6 +2190,9 @@ body {
|
|
|
2172
2190
|
.courier-duration-100 {
|
|
2173
2191
|
transition-duration: 100ms;
|
|
2174
2192
|
}
|
|
2193
|
+
.courier-duration-200 {
|
|
2194
|
+
transition-duration: 200ms;
|
|
2195
|
+
}
|
|
2175
2196
|
.courier-duration-300 {
|
|
2176
2197
|
transition-duration: 300ms;
|
|
2177
2198
|
}
|
|
@@ -2199,6 +2220,9 @@ body {
|
|
|
2199
2220
|
.courier-duration-100 {
|
|
2200
2221
|
animation-duration: 100ms;
|
|
2201
2222
|
}
|
|
2223
|
+
.courier-duration-200 {
|
|
2224
|
+
animation-duration: 200ms;
|
|
2225
|
+
}
|
|
2202
2226
|
.courier-duration-300 {
|
|
2203
2227
|
animation-duration: 300ms;
|
|
2204
2228
|
}
|
|
@@ -2395,34 +2419,43 @@ body {
|
|
|
2395
2419
|
.courier-editor-main >div {
|
|
2396
2420
|
width: 100%;
|
|
2397
2421
|
}
|
|
2398
|
-
.courier-editor-preview-mode.courier-editor-preview-mode-mobile .courier-editor-main {
|
|
2422
|
+
.courier-editor-preview-mode.courier-editor-preview-mode-mobile .courier-editor-main, .courier-editor-readonly.courier-editor-preview-mode-mobile .courier-editor-main {
|
|
2399
2423
|
max-width: 24rem;
|
|
2400
2424
|
}
|
|
2401
|
-
.courier-editor-preview-mode.courier-editor-preview-mode-mobile .courier-editor-main:hover >button {
|
|
2425
|
+
.courier-editor-preview-mode.courier-editor-preview-mode-mobile .courier-editor-main:hover >button, .courier-editor-readonly.courier-editor-preview-mode-mobile .courier-editor-main:hover >button {
|
|
2402
2426
|
display: none;
|
|
2403
2427
|
}
|
|
2404
|
-
.courier-editor-preview-mode .ProseMirror
|
|
2428
|
+
.courier-editor-preview-mode .ProseMirror, .courier-editor-readonly .ProseMirror {
|
|
2405
2429
|
pointer-events: none;
|
|
2406
2430
|
}
|
|
2407
|
-
.courier-editor-preview-mode .ProseMirror>.react-renderer.node-imageBlock *, .courier-editor-preview-mode .ProseMirror>.react-renderer.node-button *, .courier-editor-preview-mode .ProseMirror>.react-renderer.node-divider *, .courier-editor-preview-mode .ProseMirror>.react-renderer.node-paragraph *, .courier-editor-preview-mode .ProseMirror>.react-renderer.node-heading *, .courier-editor-preview-mode .ProseMirror>.react-renderer.node-blockquote *, .courier-editor-preview-mode .ProseMirror>.react-renderer.node-buttonRow * {
|
|
2431
|
+
.courier-editor-preview-mode .ProseMirror>.react-renderer.node-imageBlock *, .courier-editor-preview-mode .ProseMirror>.react-renderer.node-button *, .courier-editor-preview-mode .ProseMirror>.react-renderer.node-divider *, .courier-editor-preview-mode .ProseMirror>.react-renderer.node-paragraph *, .courier-editor-preview-mode .ProseMirror>.react-renderer.node-heading *, .courier-editor-preview-mode .ProseMirror>.react-renderer.node-blockquote *, .courier-editor-preview-mode .ProseMirror>.react-renderer.node-buttonRow *, .courier-editor-readonly .ProseMirror>.react-renderer.node-imageBlock *, .courier-editor-readonly .ProseMirror>.react-renderer.node-button *, .courier-editor-readonly .ProseMirror>.react-renderer.node-divider *, .courier-editor-readonly .ProseMirror>.react-renderer.node-paragraph *, .courier-editor-readonly .ProseMirror>.react-renderer.node-heading *, .courier-editor-readonly .ProseMirror>.react-renderer.node-blockquote *, .courier-editor-readonly .ProseMirror>.react-renderer.node-buttonRow * {
|
|
2432
|
+
pointer-events: none;
|
|
2433
|
+
}
|
|
2434
|
+
.courier-editor-preview-mode .ProseMirror>.react-renderer.node-imageBlock *, .courier-editor-preview-mode .ProseMirror>.react-renderer.node-button *, .courier-editor-preview-mode .ProseMirror>.react-renderer.node-divider *, .courier-editor-preview-mode .ProseMirror>.react-renderer.node-paragraph *, .courier-editor-preview-mode .ProseMirror>.react-renderer.node-heading *, .courier-editor-preview-mode .ProseMirror>.react-renderer.node-blockquote *, .courier-editor-preview-mode .ProseMirror>.react-renderer.node-buttonRow *, .courier-editor-readonly .ProseMirror>.react-renderer.node-imageBlock *, .courier-editor-readonly .ProseMirror>.react-renderer.node-button *, .courier-editor-readonly .ProseMirror>.react-renderer.node-divider *, .courier-editor-readonly .ProseMirror>.react-renderer.node-paragraph *, .courier-editor-readonly .ProseMirror>.react-renderer.node-heading *, .courier-editor-readonly .ProseMirror>.react-renderer.node-blockquote *, .courier-editor-readonly .ProseMirror>.react-renderer.node-buttonRow * {
|
|
2408
2435
|
cursor: default;
|
|
2409
2436
|
}
|
|
2410
|
-
.courier-editor-preview-mode .ProseMirror>.react-renderer.node-imageBlock [data-cypress="draggable-handle"], .courier-editor-preview-mode .ProseMirror>.react-renderer.node-button [data-cypress="draggable-handle"], .courier-editor-preview-mode .ProseMirror>.react-renderer.node-divider [data-cypress="draggable-handle"], .courier-editor-preview-mode .ProseMirror>.react-renderer.node-paragraph [data-cypress="draggable-handle"], .courier-editor-preview-mode .ProseMirror>.react-renderer.node-heading [data-cypress="draggable-handle"], .courier-editor-preview-mode .ProseMirror>.react-renderer.node-blockquote [data-cypress="draggable-handle"], .courier-editor-preview-mode .ProseMirror>.react-renderer.node-buttonRow [data-cypress="draggable-handle"] {
|
|
2437
|
+
.courier-editor-preview-mode .ProseMirror>.react-renderer.node-imageBlock [data-cypress="draggable-handle"], .courier-editor-preview-mode .ProseMirror>.react-renderer.node-button [data-cypress="draggable-handle"], .courier-editor-preview-mode .ProseMirror>.react-renderer.node-divider [data-cypress="draggable-handle"], .courier-editor-preview-mode .ProseMirror>.react-renderer.node-paragraph [data-cypress="draggable-handle"], .courier-editor-preview-mode .ProseMirror>.react-renderer.node-heading [data-cypress="draggable-handle"], .courier-editor-preview-mode .ProseMirror>.react-renderer.node-blockquote [data-cypress="draggable-handle"], .courier-editor-preview-mode .ProseMirror>.react-renderer.node-buttonRow [data-cypress="draggable-handle"], .courier-editor-readonly .ProseMirror>.react-renderer.node-imageBlock [data-cypress="draggable-handle"], .courier-editor-readonly .ProseMirror>.react-renderer.node-button [data-cypress="draggable-handle"], .courier-editor-readonly .ProseMirror>.react-renderer.node-divider [data-cypress="draggable-handle"], .courier-editor-readonly .ProseMirror>.react-renderer.node-paragraph [data-cypress="draggable-handle"], .courier-editor-readonly .ProseMirror>.react-renderer.node-heading [data-cypress="draggable-handle"], .courier-editor-readonly .ProseMirror>.react-renderer.node-blockquote [data-cypress="draggable-handle"], .courier-editor-readonly .ProseMirror>.react-renderer.node-buttonRow [data-cypress="draggable-handle"] {
|
|
2438
|
+
display: none;
|
|
2439
|
+
}
|
|
2440
|
+
.courier-editor-preview-mode .ProseMirror>.react-renderer.node-imageBlock .selected-element .courier-actions-panel, .courier-editor-preview-mode .ProseMirror>.react-renderer.node-button .selected-element .courier-actions-panel, .courier-editor-preview-mode .ProseMirror>.react-renderer.node-divider .selected-element .courier-actions-panel, .courier-editor-preview-mode .ProseMirror>.react-renderer.node-paragraph .selected-element .courier-actions-panel, .courier-editor-preview-mode .ProseMirror>.react-renderer.node-heading .selected-element .courier-actions-panel, .courier-editor-preview-mode .ProseMirror>.react-renderer.node-blockquote .selected-element .courier-actions-panel, .courier-editor-preview-mode .ProseMirror>.react-renderer.node-buttonRow .selected-element .courier-actions-panel, .courier-editor-readonly .ProseMirror>.react-renderer.node-imageBlock .selected-element .courier-actions-panel, .courier-editor-readonly .ProseMirror>.react-renderer.node-button .selected-element .courier-actions-panel, .courier-editor-readonly .ProseMirror>.react-renderer.node-divider .selected-element .courier-actions-panel, .courier-editor-readonly .ProseMirror>.react-renderer.node-paragraph .selected-element .courier-actions-panel, .courier-editor-readonly .ProseMirror>.react-renderer.node-heading .selected-element .courier-actions-panel, .courier-editor-readonly .ProseMirror>.react-renderer.node-blockquote .selected-element .courier-actions-panel, .courier-editor-readonly .ProseMirror>.react-renderer.node-buttonRow .selected-element .courier-actions-panel {
|
|
2411
2441
|
display: none;
|
|
2412
2442
|
}
|
|
2413
|
-
.courier-editor-preview-mode .ProseMirror>.react-renderer.node-imageBlock
|
|
2443
|
+
.courier-editor-preview-mode .ProseMirror>.react-renderer.node-imageBlock .selected-element .node-element::before, .courier-editor-preview-mode .ProseMirror>.react-renderer.node-button .selected-element .node-element::before, .courier-editor-preview-mode .ProseMirror>.react-renderer.node-divider .selected-element .node-element::before, .courier-editor-preview-mode .ProseMirror>.react-renderer.node-paragraph .selected-element .node-element::before, .courier-editor-preview-mode .ProseMirror>.react-renderer.node-heading .selected-element .node-element::before, .courier-editor-preview-mode .ProseMirror>.react-renderer.node-blockquote .selected-element .node-element::before, .courier-editor-preview-mode .ProseMirror>.react-renderer.node-buttonRow .selected-element .node-element::before, .courier-editor-readonly .ProseMirror>.react-renderer.node-imageBlock .selected-element .node-element::before, .courier-editor-readonly .ProseMirror>.react-renderer.node-button .selected-element .node-element::before, .courier-editor-readonly .ProseMirror>.react-renderer.node-divider .selected-element .node-element::before, .courier-editor-readonly .ProseMirror>.react-renderer.node-paragraph .selected-element .node-element::before, .courier-editor-readonly .ProseMirror>.react-renderer.node-heading .selected-element .node-element::before, .courier-editor-readonly .ProseMirror>.react-renderer.node-blockquote .selected-element .node-element::before, .courier-editor-readonly .ProseMirror>.react-renderer.node-buttonRow .selected-element .node-element::before {
|
|
2414
2444
|
display: none;
|
|
2415
2445
|
}
|
|
2416
|
-
.courier-editor-preview-mode .ProseMirror>.react-renderer.node-imageBlock:hover
|
|
2446
|
+
.courier-editor-preview-mode .ProseMirror>.react-renderer.node-imageBlock:hover [data-cypress="draggable-handle"], .courier-editor-preview-mode .ProseMirror>.react-renderer.node-imageBlock:active [data-cypress="draggable-handle"], .courier-editor-preview-mode .ProseMirror>.react-renderer.node-button:hover [data-cypress="draggable-handle"], .courier-editor-preview-mode .ProseMirror>.react-renderer.node-button:active [data-cypress="draggable-handle"], .courier-editor-preview-mode .ProseMirror>.react-renderer.node-divider:hover [data-cypress="draggable-handle"], .courier-editor-preview-mode .ProseMirror>.react-renderer.node-divider:active [data-cypress="draggable-handle"], .courier-editor-preview-mode .ProseMirror>.react-renderer.node-paragraph:hover [data-cypress="draggable-handle"], .courier-editor-preview-mode .ProseMirror>.react-renderer.node-paragraph:active [data-cypress="draggable-handle"], .courier-editor-preview-mode .ProseMirror>.react-renderer.node-heading:hover [data-cypress="draggable-handle"], .courier-editor-preview-mode .ProseMirror>.react-renderer.node-heading:active [data-cypress="draggable-handle"], .courier-editor-preview-mode .ProseMirror>.react-renderer.node-blockquote:hover [data-cypress="draggable-handle"], .courier-editor-preview-mode .ProseMirror>.react-renderer.node-blockquote:active [data-cypress="draggable-handle"], .courier-editor-preview-mode .ProseMirror>.react-renderer.node-buttonRow:hover [data-cypress="draggable-handle"], .courier-editor-preview-mode .ProseMirror>.react-renderer.node-buttonRow:active [data-cypress="draggable-handle"], .courier-editor-readonly .ProseMirror>.react-renderer.node-imageBlock:hover [data-cypress="draggable-handle"], .courier-editor-readonly .ProseMirror>.react-renderer.node-imageBlock:active [data-cypress="draggable-handle"], .courier-editor-readonly .ProseMirror>.react-renderer.node-button:hover [data-cypress="draggable-handle"], .courier-editor-readonly .ProseMirror>.react-renderer.node-button:active [data-cypress="draggable-handle"], .courier-editor-readonly .ProseMirror>.react-renderer.node-divider:hover [data-cypress="draggable-handle"], .courier-editor-readonly .ProseMirror>.react-renderer.node-divider:active [data-cypress="draggable-handle"], .courier-editor-readonly .ProseMirror>.react-renderer.node-paragraph:hover [data-cypress="draggable-handle"], .courier-editor-readonly .ProseMirror>.react-renderer.node-paragraph:active [data-cypress="draggable-handle"], .courier-editor-readonly .ProseMirror>.react-renderer.node-heading:hover [data-cypress="draggable-handle"], .courier-editor-readonly .ProseMirror>.react-renderer.node-heading:active [data-cypress="draggable-handle"], .courier-editor-readonly .ProseMirror>.react-renderer.node-blockquote:hover [data-cypress="draggable-handle"], .courier-editor-readonly .ProseMirror>.react-renderer.node-blockquote:active [data-cypress="draggable-handle"], .courier-editor-readonly .ProseMirror>.react-renderer.node-buttonRow:hover [data-cypress="draggable-handle"], .courier-editor-readonly .ProseMirror>.react-renderer.node-buttonRow:active [data-cypress="draggable-handle"] {
|
|
2417
2447
|
display: none;
|
|
2418
2448
|
}
|
|
2419
|
-
.courier-editor-preview-mode .ProseMirror>.react-renderer.node-imageBlock .courier-empty-image {
|
|
2449
|
+
.courier-editor-preview-mode .ProseMirror>.react-renderer.node-imageBlock:hover .node-element>div::before, .courier-editor-preview-mode .ProseMirror>.react-renderer.node-imageBlock:hover .node-element>hr::before, .courier-editor-preview-mode .ProseMirror>.react-renderer.node-imageBlock:hover .node-element.courier-empty-image::before, .courier-editor-preview-mode .ProseMirror>.react-renderer.node-imageBlock:active .node-element>div::before, .courier-editor-preview-mode .ProseMirror>.react-renderer.node-imageBlock:active .node-element>hr::before, .courier-editor-preview-mode .ProseMirror>.react-renderer.node-imageBlock:active .node-element.courier-empty-image::before, .courier-editor-preview-mode .ProseMirror>.react-renderer.node-button:hover .node-element>div::before, .courier-editor-preview-mode .ProseMirror>.react-renderer.node-button:hover .node-element>hr::before, .courier-editor-preview-mode .ProseMirror>.react-renderer.node-button:hover .node-element.courier-empty-image::before, .courier-editor-preview-mode .ProseMirror>.react-renderer.node-button:active .node-element>div::before, .courier-editor-preview-mode .ProseMirror>.react-renderer.node-button:active .node-element>hr::before, .courier-editor-preview-mode .ProseMirror>.react-renderer.node-button:active .node-element.courier-empty-image::before, .courier-editor-preview-mode .ProseMirror>.react-renderer.node-divider:hover .node-element>div::before, .courier-editor-preview-mode .ProseMirror>.react-renderer.node-divider:hover .node-element>hr::before, .courier-editor-preview-mode .ProseMirror>.react-renderer.node-divider:hover .node-element.courier-empty-image::before, .courier-editor-preview-mode .ProseMirror>.react-renderer.node-divider:active .node-element>div::before, .courier-editor-preview-mode .ProseMirror>.react-renderer.node-divider:active .node-element>hr::before, .courier-editor-preview-mode .ProseMirror>.react-renderer.node-divider:active .node-element.courier-empty-image::before, .courier-editor-preview-mode .ProseMirror>.react-renderer.node-paragraph:hover .node-element>div::before, .courier-editor-preview-mode .ProseMirror>.react-renderer.node-paragraph:hover .node-element>hr::before, .courier-editor-preview-mode .ProseMirror>.react-renderer.node-paragraph:hover .node-element.courier-empty-image::before, .courier-editor-preview-mode .ProseMirror>.react-renderer.node-paragraph:active .node-element>div::before, .courier-editor-preview-mode .ProseMirror>.react-renderer.node-paragraph:active .node-element>hr::before, .courier-editor-preview-mode .ProseMirror>.react-renderer.node-paragraph:active .node-element.courier-empty-image::before, .courier-editor-preview-mode .ProseMirror>.react-renderer.node-heading:hover .node-element>div::before, .courier-editor-preview-mode .ProseMirror>.react-renderer.node-heading:hover .node-element>hr::before, .courier-editor-preview-mode .ProseMirror>.react-renderer.node-heading:hover .node-element.courier-empty-image::before, .courier-editor-preview-mode .ProseMirror>.react-renderer.node-heading:active .node-element>div::before, .courier-editor-preview-mode .ProseMirror>.react-renderer.node-heading:active .node-element>hr::before, .courier-editor-preview-mode .ProseMirror>.react-renderer.node-heading:active .node-element.courier-empty-image::before, .courier-editor-preview-mode .ProseMirror>.react-renderer.node-blockquote:hover .node-element>div::before, .courier-editor-preview-mode .ProseMirror>.react-renderer.node-blockquote:hover .node-element>hr::before, .courier-editor-preview-mode .ProseMirror>.react-renderer.node-blockquote:hover .node-element.courier-empty-image::before, .courier-editor-preview-mode .ProseMirror>.react-renderer.node-blockquote:active .node-element>div::before, .courier-editor-preview-mode .ProseMirror>.react-renderer.node-blockquote:active .node-element>hr::before, .courier-editor-preview-mode .ProseMirror>.react-renderer.node-blockquote:active .node-element.courier-empty-image::before, .courier-editor-preview-mode .ProseMirror>.react-renderer.node-buttonRow:hover .node-element>div::before, .courier-editor-preview-mode .ProseMirror>.react-renderer.node-buttonRow:hover .node-element>hr::before, .courier-editor-preview-mode .ProseMirror>.react-renderer.node-buttonRow:hover .node-element.courier-empty-image::before, .courier-editor-preview-mode .ProseMirror>.react-renderer.node-buttonRow:active .node-element>div::before, .courier-editor-preview-mode .ProseMirror>.react-renderer.node-buttonRow:active .node-element>hr::before, .courier-editor-preview-mode .ProseMirror>.react-renderer.node-buttonRow:active .node-element.courier-empty-image::before, .courier-editor-readonly .ProseMirror>.react-renderer.node-imageBlock:hover .node-element>div::before, .courier-editor-readonly .ProseMirror>.react-renderer.node-imageBlock:hover .node-element>hr::before, .courier-editor-readonly .ProseMirror>.react-renderer.node-imageBlock:hover .node-element.courier-empty-image::before, .courier-editor-readonly .ProseMirror>.react-renderer.node-imageBlock:active .node-element>div::before, .courier-editor-readonly .ProseMirror>.react-renderer.node-imageBlock:active .node-element>hr::before, .courier-editor-readonly .ProseMirror>.react-renderer.node-imageBlock:active .node-element.courier-empty-image::before, .courier-editor-readonly .ProseMirror>.react-renderer.node-button:hover .node-element>div::before, .courier-editor-readonly .ProseMirror>.react-renderer.node-button:hover .node-element>hr::before, .courier-editor-readonly .ProseMirror>.react-renderer.node-button:hover .node-element.courier-empty-image::before, .courier-editor-readonly .ProseMirror>.react-renderer.node-button:active .node-element>div::before, .courier-editor-readonly .ProseMirror>.react-renderer.node-button:active .node-element>hr::before, .courier-editor-readonly .ProseMirror>.react-renderer.node-button:active .node-element.courier-empty-image::before, .courier-editor-readonly .ProseMirror>.react-renderer.node-divider:hover .node-element>div::before, .courier-editor-readonly .ProseMirror>.react-renderer.node-divider:hover .node-element>hr::before, .courier-editor-readonly .ProseMirror>.react-renderer.node-divider:hover .node-element.courier-empty-image::before, .courier-editor-readonly .ProseMirror>.react-renderer.node-divider:active .node-element>div::before, .courier-editor-readonly .ProseMirror>.react-renderer.node-divider:active .node-element>hr::before, .courier-editor-readonly .ProseMirror>.react-renderer.node-divider:active .node-element.courier-empty-image::before, .courier-editor-readonly .ProseMirror>.react-renderer.node-paragraph:hover .node-element>div::before, .courier-editor-readonly .ProseMirror>.react-renderer.node-paragraph:hover .node-element>hr::before, .courier-editor-readonly .ProseMirror>.react-renderer.node-paragraph:hover .node-element.courier-empty-image::before, .courier-editor-readonly .ProseMirror>.react-renderer.node-paragraph:active .node-element>div::before, .courier-editor-readonly .ProseMirror>.react-renderer.node-paragraph:active .node-element>hr::before, .courier-editor-readonly .ProseMirror>.react-renderer.node-paragraph:active .node-element.courier-empty-image::before, .courier-editor-readonly .ProseMirror>.react-renderer.node-heading:hover .node-element>div::before, .courier-editor-readonly .ProseMirror>.react-renderer.node-heading:hover .node-element>hr::before, .courier-editor-readonly .ProseMirror>.react-renderer.node-heading:hover .node-element.courier-empty-image::before, .courier-editor-readonly .ProseMirror>.react-renderer.node-heading:active .node-element>div::before, .courier-editor-readonly .ProseMirror>.react-renderer.node-heading:active .node-element>hr::before, .courier-editor-readonly .ProseMirror>.react-renderer.node-heading:active .node-element.courier-empty-image::before, .courier-editor-readonly .ProseMirror>.react-renderer.node-blockquote:hover .node-element>div::before, .courier-editor-readonly .ProseMirror>.react-renderer.node-blockquote:hover .node-element>hr::before, .courier-editor-readonly .ProseMirror>.react-renderer.node-blockquote:hover .node-element.courier-empty-image::before, .courier-editor-readonly .ProseMirror>.react-renderer.node-blockquote:active .node-element>div::before, .courier-editor-readonly .ProseMirror>.react-renderer.node-blockquote:active .node-element>hr::before, .courier-editor-readonly .ProseMirror>.react-renderer.node-blockquote:active .node-element.courier-empty-image::before, .courier-editor-readonly .ProseMirror>.react-renderer.node-buttonRow:hover .node-element>div::before, .courier-editor-readonly .ProseMirror>.react-renderer.node-buttonRow:hover .node-element>hr::before, .courier-editor-readonly .ProseMirror>.react-renderer.node-buttonRow:hover .node-element.courier-empty-image::before, .courier-editor-readonly .ProseMirror>.react-renderer.node-buttonRow:active .node-element>div::before, .courier-editor-readonly .ProseMirror>.react-renderer.node-buttonRow:active .node-element>hr::before, .courier-editor-readonly .ProseMirror>.react-renderer.node-buttonRow:active .node-element.courier-empty-image::before {
|
|
2420
2450
|
display: none;
|
|
2421
2451
|
}
|
|
2422
|
-
.courier-editor-preview-mode .ProseMirror>.react-renderer.node-
|
|
2452
|
+
.courier-editor-preview-mode .ProseMirror>.react-renderer.node-imageBlock .courier-empty-image, .courier-editor-readonly .ProseMirror>.react-renderer.node-imageBlock .courier-empty-image {
|
|
2423
2453
|
display: none;
|
|
2424
2454
|
}
|
|
2425
|
-
.courier-editor-preview-mode .ProseMirror>.react-renderer.node-
|
|
2455
|
+
.courier-editor-preview-mode .ProseMirror>.react-renderer.node-paragraph .is-empty p::after, .courier-editor-preview-mode .ProseMirror>.react-renderer.node-paragraph .is-empty blockquote::after, .courier-editor-preview-mode .ProseMirror>.react-renderer.node-blockquote .is-empty p::after, .courier-editor-preview-mode .ProseMirror>.react-renderer.node-blockquote .is-empty blockquote::after, .courier-editor-readonly .ProseMirror>.react-renderer.node-paragraph .is-empty p::after, .courier-editor-readonly .ProseMirror>.react-renderer.node-paragraph .is-empty blockquote::after, .courier-editor-readonly .ProseMirror>.react-renderer.node-blockquote .is-empty p::after, .courier-editor-readonly .ProseMirror>.react-renderer.node-blockquote .is-empty blockquote::after {
|
|
2456
|
+
display: none;
|
|
2457
|
+
}
|
|
2458
|
+
.courier-editor-preview-mode .ProseMirror>.react-renderer.node-heading .is-empty h1::after, .courier-editor-preview-mode .ProseMirror>.react-renderer.node-heading .is-empty h2::after, .courier-editor-preview-mode .ProseMirror>.react-renderer.node-heading .is-empty h3::after, .courier-editor-readonly .ProseMirror>.react-renderer.node-heading .is-empty h1::after, .courier-editor-readonly .ProseMirror>.react-renderer.node-heading .is-empty h2::after, .courier-editor-readonly .ProseMirror>.react-renderer.node-heading .is-empty h3::after {
|
|
2426
2459
|
display: none;
|
|
2427
2460
|
}
|
|
2428
2461
|
.courier-sms-editor {
|
|
@@ -3349,6 +3382,18 @@ body {
|
|
|
3349
3382
|
.data-\[side\=top\]\:courier-slide-in-from-bottom-2[data-side="top"] {
|
|
3350
3383
|
--tw-enter-translate-y: 0.5rem;
|
|
3351
3384
|
}
|
|
3385
|
+
.data-\[state\=closed\]\:courier-slide-out-to-left-1\/2[data-state="closed"] {
|
|
3386
|
+
--tw-exit-translate-x: -50%;
|
|
3387
|
+
}
|
|
3388
|
+
.data-\[state\=closed\]\:courier-slide-out-to-top-\[48\%\][data-state="closed"] {
|
|
3389
|
+
--tw-exit-translate-y: -48%;
|
|
3390
|
+
}
|
|
3391
|
+
.data-\[state\=open\]\:courier-slide-in-from-left-1\/2[data-state="open"] {
|
|
3392
|
+
--tw-enter-translate-x: -50%;
|
|
3393
|
+
}
|
|
3394
|
+
.data-\[state\=open\]\:courier-slide-in-from-top-\[48\%\][data-state="open"] {
|
|
3395
|
+
--tw-enter-translate-y: -48%;
|
|
3396
|
+
}
|
|
3352
3397
|
.dark\:courier-border-foreground:is(.courier-dark *) {
|
|
3353
3398
|
border-color: var(--foreground);
|
|
3354
3399
|
}
|
|
@@ -3482,6 +3527,34 @@ body {
|
|
|
3482
3527
|
--tw-text-opacity: 1;
|
|
3483
3528
|
color: rgb(229 229 229 / var(--tw-text-opacity, 1));
|
|
3484
3529
|
}
|
|
3530
|
+
@media (min-width: 640px) {
|
|
3531
|
+
|
|
3532
|
+
.sm\:courier-mt-0 {
|
|
3533
|
+
margin-top: 0px;
|
|
3534
|
+
}
|
|
3535
|
+
|
|
3536
|
+
.sm\:courier-flex-row {
|
|
3537
|
+
flex-direction: row;
|
|
3538
|
+
}
|
|
3539
|
+
|
|
3540
|
+
.sm\:courier-justify-end {
|
|
3541
|
+
justify-content: flex-end;
|
|
3542
|
+
}
|
|
3543
|
+
|
|
3544
|
+
.sm\:courier-space-x-2 > :not([hidden]) ~ :not([hidden]) {
|
|
3545
|
+
--tw-space-x-reverse: 0;
|
|
3546
|
+
margin-right: calc(0.5rem * var(--tw-space-x-reverse));
|
|
3547
|
+
margin-left: calc(0.5rem * calc(1 - var(--tw-space-x-reverse)));
|
|
3548
|
+
}
|
|
3549
|
+
|
|
3550
|
+
.sm\:courier-rounded-lg {
|
|
3551
|
+
border-radius: var(--radius);
|
|
3552
|
+
}
|
|
3553
|
+
|
|
3554
|
+
.sm\:courier-text-left {
|
|
3555
|
+
text-align: left;
|
|
3556
|
+
}
|
|
3557
|
+
}
|
|
3485
3558
|
@media (min-width: 768px) {
|
|
3486
3559
|
|
|
3487
3560
|
.md\:courier-text-sm {
|
|
@@ -1,14 +1,2 @@
|
|
|
1
1
|
import type { BasicProviderProps } from "./Providers.types";
|
|
2
|
-
export declare function useBrandActions(): {
|
|
3
|
-
getTenant: (options?: {
|
|
4
|
-
includeBrand?: boolean;
|
|
5
|
-
} | undefined) => Promise<void>;
|
|
6
|
-
saveBrand: (settings?: Record<string, unknown> | undefined) => Promise<any>;
|
|
7
|
-
publishBrand: () => Promise<any>;
|
|
8
|
-
isTenantLoading: boolean | null;
|
|
9
|
-
isTenantSaving: boolean | null;
|
|
10
|
-
isTenantPublishing: boolean | null;
|
|
11
|
-
tenantError: string | null;
|
|
12
|
-
tenantData: import("./store").TenantData | null;
|
|
13
|
-
};
|
|
14
2
|
export declare const BrandProvider: import("react").NamedExoticComponent<BasicProviderProps>;
|
|
@@ -1,18 +1,13 @@
|
|
|
1
1
|
import type { BasicProviderProps } from "./Providers.types";
|
|
2
|
-
|
|
3
|
-
getTenant: (options?: {
|
|
4
|
-
includeBrand?: boolean;
|
|
5
|
-
} | undefined) => Promise<void>;
|
|
6
|
-
saveTemplate: (routing: import("./store").MessageRouting) => Promise<any>;
|
|
7
|
-
publishTemplate: () => Promise<any>;
|
|
8
|
-
isTenantLoading: boolean | null;
|
|
9
|
-
isTenantSaving: boolean | null;
|
|
10
|
-
isTenantPublishing: boolean | null;
|
|
11
|
-
tenantError: string | null;
|
|
12
|
-
tenantData: import("./store").TenantData | null;
|
|
13
|
-
};
|
|
2
|
+
import { useTemplateActions } from "./useTemplateActions";
|
|
14
3
|
type TemplateProviderProps = BasicProviderProps & {
|
|
15
4
|
templateId: string;
|
|
5
|
+
getTemplate?: (actions: ReturnType<typeof useTemplateActions>) => Promise<void>;
|
|
6
|
+
saveTemplate?: (actions: ReturnType<typeof useTemplateActions>, options?: any) => Promise<void>;
|
|
7
|
+
};
|
|
8
|
+
export declare const overrideFunctions: {
|
|
9
|
+
getTemplate: TemplateProviderProps["getTemplate"] | null;
|
|
10
|
+
saveTemplate: TemplateProviderProps["saveTemplate"] | null;
|
|
16
11
|
};
|
|
17
12
|
export declare const TemplateProvider: import("react").NamedExoticComponent<TemplateProviderProps>;
|
|
18
13
|
export {};
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { type MessageRouting } from "../store";
|
|
2
|
-
export declare const saveTemplateAtom: import("jotai").WritableAtom<null, [routing
|
|
2
|
+
export declare const saveTemplateAtom: import("jotai").WritableAtom<null, [routing?: MessageRouting | undefined], Promise<any>> & {
|
|
3
3
|
init: null;
|
|
4
4
|
};
|
|
5
5
|
export declare const publishTemplateAtom: import("jotai").WritableAtom<null, [], Promise<any>> & {
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
-
export {
|
|
2
|
-
export { BrandProvider, useBrandActions } from "./BrandProvider";
|
|
1
|
+
export { BrandProvider } from "./BrandProvider";
|
|
3
2
|
export * from "./store";
|
|
3
|
+
export { TemplateProvider } from "./TemplateProvider";
|
|
4
|
+
export { useBrandActions } from "./useBrandActions";
|
|
5
|
+
export { useTemplateActions } from "./useTemplateActions";
|
|
@@ -92,21 +92,31 @@ export declare const tenantIdAtom: import("jotai").PrimitiveAtom<string> & {
|
|
|
92
92
|
export declare const templateIdAtom: import("jotai").PrimitiveAtom<string> & {
|
|
93
93
|
init: string;
|
|
94
94
|
};
|
|
95
|
-
export declare const
|
|
95
|
+
export declare const templateDataAtom: import("jotai").PrimitiveAtom<TenantData | null> & {
|
|
96
96
|
init: TenantData | null;
|
|
97
97
|
};
|
|
98
|
-
export declare const
|
|
98
|
+
export declare const isTemplateLoadingAtom: import("jotai").PrimitiveAtom<boolean | null> & {
|
|
99
99
|
init: boolean | null;
|
|
100
100
|
};
|
|
101
|
-
export declare const
|
|
101
|
+
export declare const isTemplateSavingAtom: import("jotai").PrimitiveAtom<boolean | null> & {
|
|
102
102
|
init: boolean | null;
|
|
103
103
|
};
|
|
104
|
-
export declare const
|
|
104
|
+
export declare const isTemplatePublishingAtom: import("jotai").PrimitiveAtom<boolean | null> & {
|
|
105
105
|
init: boolean | null;
|
|
106
106
|
};
|
|
107
|
-
export declare const
|
|
107
|
+
export declare const templateErrorAtom: import("jotai").PrimitiveAtom<string | null> & {
|
|
108
108
|
init: string | null;
|
|
109
109
|
};
|
|
110
110
|
export declare const brandApplyAtom: import("jotai").PrimitiveAtom<boolean> & {
|
|
111
111
|
init: boolean;
|
|
112
112
|
};
|
|
113
|
+
export declare const getTemplateOverrideAtom: import("jotai").PrimitiveAtom<((options?: {
|
|
114
|
+
includeBrand?: boolean;
|
|
115
|
+
}) => Promise<void>) | null> & {
|
|
116
|
+
init: ((options?: {
|
|
117
|
+
includeBrand?: boolean;
|
|
118
|
+
}) => Promise<void>) | null;
|
|
119
|
+
};
|
|
120
|
+
export declare const saveTemplateOverrideAtom: import("jotai").PrimitiveAtom<((actions: any, options?: any) => Promise<void>) | null> & {
|
|
121
|
+
init: ((actions: any, options?: any) => Promise<void>) | null;
|
|
122
|
+
};
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
export declare function useBrandActions(): {
|
|
2
|
+
getTemplate: (options?: {
|
|
3
|
+
includeBrand?: boolean;
|
|
4
|
+
}) => Promise<void>;
|
|
5
|
+
saveTemplate: (options?: any) => Promise<void>;
|
|
6
|
+
saveBrand: (settings?: Record<string, unknown> | undefined) => Promise<any>;
|
|
7
|
+
publishBrand: () => Promise<any>;
|
|
8
|
+
isTemplateLoading: boolean | null;
|
|
9
|
+
isTemplateSaving: boolean | null;
|
|
10
|
+
isTemplatePublishing: boolean | null;
|
|
11
|
+
templateError: string | null;
|
|
12
|
+
templateData: import("./store").TenantData | null;
|
|
13
|
+
};
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
export declare function useTemplateActions(): {
|
|
2
|
+
getTemplate: (options?: {
|
|
3
|
+
includeBrand?: boolean;
|
|
4
|
+
}) => Promise<void>;
|
|
5
|
+
saveTemplate: (options?: any) => Promise<void>;
|
|
6
|
+
publishTemplate: () => Promise<any>;
|
|
7
|
+
isTemplateLoading: boolean | null;
|
|
8
|
+
setIsTemplateLoading: (args_0: boolean | ((prev: boolean | null) => boolean | null) | null) => void;
|
|
9
|
+
isTemplateSaving: boolean | null;
|
|
10
|
+
setIsTemplateSaving: (args_0: boolean | ((prev: boolean | null) => boolean | null) | null) => void;
|
|
11
|
+
isTemplatePublishing: boolean | null;
|
|
12
|
+
setIsTemplatePublishing: (args_0: boolean | ((prev: boolean | null) => boolean | null) | null) => void;
|
|
13
|
+
templateError: string | null;
|
|
14
|
+
setTemplateError: (args_0: string | ((prev: string | null) => string | null) | null) => void;
|
|
15
|
+
templateData: import("./store").TenantData | null;
|
|
16
|
+
setTemplateData: (args_0: import("./store").TenantData | ((prev: import("./store").TenantData | null) => import("./store").TenantData | null) | null) => void;
|
|
17
|
+
templateEditorContent: import("../../types").ElementalContent | null | undefined;
|
|
18
|
+
setTemplateEditorContent: (args_0: import("../../types").ElementalContent | ((prev: import("../../types").ElementalContent | null | undefined) => import("../../types").ElementalContent | null | undefined) | null | undefined) => void;
|
|
19
|
+
};
|
|
@@ -25,9 +25,9 @@ export interface EmailProps extends Pick<TemplateEditorProps, "hidePublish" | "b
|
|
|
25
25
|
headerRenderer?: ({ hidePublish, channels, routing, }: {
|
|
26
26
|
hidePublish?: boolean;
|
|
27
27
|
channels?: ChannelType[];
|
|
28
|
-
routing
|
|
28
|
+
routing?: MessageRouting;
|
|
29
29
|
}) => React.ReactNode;
|
|
30
|
-
render?: ({ subject, handleSubjectChange, selectedNode, setSelectedNode, previewMode, emailEditor, ref, isBrandApply, brandSettings, items, content, strategy, syncEditorItems, brandEditorContent,
|
|
30
|
+
render?: ({ subject, handleSubjectChange, selectedNode, setSelectedNode, previewMode, emailEditor, ref, isBrandApply, brandSettings, items, content, strategy, syncEditorItems, brandEditorContent, templateData, togglePreviewMode, }: {
|
|
31
31
|
subject: string | null;
|
|
32
32
|
handleSubjectChange: (e: React.ChangeEvent<HTMLInputElement>) => void;
|
|
33
33
|
selectedNode: Node | null;
|
|
@@ -42,7 +42,7 @@ export interface EmailProps extends Pick<TemplateEditorProps, "hidePublish" | "b
|
|
|
42
42
|
strategy: SortingStrategy;
|
|
43
43
|
syncEditorItems: (editor: Editor) => void;
|
|
44
44
|
brandEditorContent: string | null;
|
|
45
|
-
|
|
45
|
+
templateData: TenantData | null;
|
|
46
46
|
togglePreviewMode: (mode: "desktop" | "mobile" | undefined) => void;
|
|
47
47
|
}) => React.ReactNode;
|
|
48
48
|
}
|
|
@@ -22,7 +22,7 @@ export interface InboxProps extends Pick<TemplateEditorProps, "hidePublish" | "t
|
|
|
22
22
|
headerRenderer?: ({ hidePublish, channels, routing, }: {
|
|
23
23
|
hidePublish?: boolean;
|
|
24
24
|
channels?: ChannelType[];
|
|
25
|
-
routing
|
|
25
|
+
routing?: MessageRouting;
|
|
26
26
|
}) => React.ReactNode;
|
|
27
27
|
render?: (props: InboxRenderProps) => React.ReactNode;
|
|
28
28
|
}
|
|
@@ -20,7 +20,7 @@ export interface PushProps extends Pick<TemplateEditorProps, "hidePublish" | "th
|
|
|
20
20
|
headerRenderer?: ({ hidePublish, channels, routing, }: {
|
|
21
21
|
hidePublish?: boolean;
|
|
22
22
|
channels?: ChannelType[];
|
|
23
|
-
routing
|
|
23
|
+
routing?: MessageRouting;
|
|
24
24
|
}) => React.ReactNode;
|
|
25
25
|
render?: (props: PushRenderProps) => React.ReactNode;
|
|
26
26
|
}
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import type { HTMLAttributes } from "react";
|
|
2
2
|
import { type PushRenderProps } from "./Push";
|
|
3
|
-
interface PushEditorProps extends PushRenderProps, Omit<HTMLAttributes<HTMLDivElement>, "content"> {
|
|
3
|
+
export interface PushEditorProps extends PushRenderProps, Omit<HTMLAttributes<HTMLDivElement>, "content"> {
|
|
4
4
|
}
|
|
5
5
|
export declare const PushEditor: ({ content, extensions, editable, autofocus, onUpdate, className, }: PushEditorProps) => import("react/jsx-runtime").JSX.Element;
|
|
6
|
-
export {};
|
|
@@ -21,7 +21,7 @@ export interface SMSProps extends Pick<TemplateEditorProps, "hidePublish" | "the
|
|
|
21
21
|
headerRenderer?: ({ hidePublish, channels, routing, }: {
|
|
22
22
|
hidePublish?: boolean;
|
|
23
23
|
channels?: ChannelType[];
|
|
24
|
-
routing
|
|
24
|
+
routing?: MessageRouting;
|
|
25
25
|
}) => React.ReactNode;
|
|
26
26
|
render?: (props: SMSRenderProps) => React.ReactNode;
|
|
27
27
|
}
|
|
@@ -7,6 +7,7 @@ export declare const useChannels: ({ channels, routing, }: {
|
|
|
7
7
|
enabledChannels: Channel[];
|
|
8
8
|
disabledChannels: Channel[];
|
|
9
9
|
channel: ChannelType;
|
|
10
|
+
channelOptions: Channel[];
|
|
10
11
|
setChannel: (channelType: ChannelType) => void;
|
|
11
12
|
addChannel: (channelType: ChannelType) => void;
|
|
12
13
|
removeChannel: (channelToRemove: ChannelType) => Promise<void>;
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { type HTMLAttributes } from "react";
|
|
2
2
|
export declare const ChannelRootContainer: import("react").ForwardRefExoticComponent<HTMLAttributes<HTMLDivElement> & {
|
|
3
3
|
previewMode: "desktop" | "mobile" | undefined;
|
|
4
|
+
readOnly?: boolean;
|
|
4
5
|
} & import("react").RefAttributes<HTMLDivElement>>;
|
|
5
6
|
export declare const EditorSidebar: import("react").ForwardRefExoticComponent<HTMLAttributes<HTMLDivElement> & {
|
|
6
7
|
previewMode: "desktop" | "mobile" | undefined;
|
|
@@ -14,6 +14,6 @@ export interface TemplateEditorProps {
|
|
|
14
14
|
brandEditor?: boolean;
|
|
15
15
|
brandProps?: BrandEditorProps;
|
|
16
16
|
channels?: ChannelType[];
|
|
17
|
-
routing
|
|
17
|
+
routing?: MessageRouting;
|
|
18
18
|
}
|
|
19
19
|
export declare const TemplateEditor: import("react").NamedExoticComponent<TemplateEditorProps>;
|
|
@@ -12,6 +12,8 @@ export declare const EmailChannel: import("react").MemoExoticComponent<import("r
|
|
|
12
12
|
export declare const SMSChannel: import("react").MemoExoticComponent<import("react").ForwardRefExoticComponent<import("./Channels").SMSProps & import("react").RefAttributes<HTMLDivElement>>>;
|
|
13
13
|
export declare const PushChannel: import("react").MemoExoticComponent<import("react").ForwardRefExoticComponent<import("./Channels").PushProps & import("react").RefAttributes<HTMLDivElement>>>;
|
|
14
14
|
export declare const InboxChannel: import("react").MemoExoticComponent<import("react").ForwardRefExoticComponent<import("./Channels").InboxProps & import("react").RefAttributes<HTMLDivElement>>>;
|
|
15
|
-
export { EmailEditorContainer, EmailEditorMain } from "./Channels
|
|
15
|
+
export { EmailEditorContainer, EmailEditorMain, type EmailEditorProps, type InboxEditorProps, type PushEditorProps, type SMSEditorProps, } from "./Channels";
|
|
16
16
|
export { ChannelRootContainer, EditorSidebar } from "./Layout";
|
|
17
17
|
export { InboxEditor, PushEditor, SMSEditor } from "./Channels";
|
|
18
|
+
export { useAutoSave } from "@/hooks/useAutoSave";
|
|
19
|
+
export { Status as TemplateStatus } from "@/components/ui/Status";
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { Extension } from "@tiptap/core";
|
|
2
|
+
import { PluginKey } from "@tiptap/pm/state";
|
|
3
|
+
export interface FixedChannelPasteOptions {
|
|
4
|
+
/**
|
|
5
|
+
* Channels that have fixed element structure (like PushEditor, SMS, Inbox)
|
|
6
|
+
* For these channels, multi-element paste should be converted to merged text
|
|
7
|
+
*/
|
|
8
|
+
fixedChannels?: string[];
|
|
9
|
+
}
|
|
10
|
+
export declare const FixedChannelPastePlugin: PluginKey<any>;
|
|
11
|
+
export declare const FixedChannelPaste: Extension<FixedChannelPasteOptions, any>;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { Extension } from "@tiptap/core";
|
|
2
|
+
import { PluginKey } from "@tiptap/pm/state";
|
|
3
|
+
export interface FixedChannelSelectionOptions {
|
|
4
|
+
channels: Array<"push" | "sms" | "inbox">;
|
|
5
|
+
}
|
|
6
|
+
declare module "@tiptap/core" {
|
|
7
|
+
interface Commands<ReturnType> {
|
|
8
|
+
fixedChannelSelection: {
|
|
9
|
+
constrainSelectionToElement: () => ReturnType;
|
|
10
|
+
};
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
export declare const FixedChannelSelectionPlugin: PluginKey<any>;
|
|
14
|
+
export declare const FixedChannelSelection: Extension<FixedChannelSelectionOptions, any>;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { FixedChannelSelection, type FixedChannelSelectionOptions } from "./FixedChannelSelection";
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -2,5 +2,5 @@ import type { Node } from "@tiptap/pm/model";
|
|
|
2
2
|
export declare const ExtensionKit: (options?: {
|
|
3
3
|
variables?: Record<string, unknown>;
|
|
4
4
|
setSelectedNode?: (node: Node) => void;
|
|
5
|
-
}) => (import("@tiptap/core").Node<any, any> | import("@tiptap/core").Extension<
|
|
5
|
+
}) => (import("@tiptap/core").Node<any, any> | import("@tiptap/core").Extension<any, any> | import("@tiptap/core").Mark<import("@tiptap/extension-underline").UnderlineOptions, any>)[];
|
|
6
6
|
export default ExtensionKit;
|
|
@@ -14,6 +14,8 @@ export { Divider } from "./Divider";
|
|
|
14
14
|
export { Document } from "./Document";
|
|
15
15
|
export * from "./DragPlaceholder";
|
|
16
16
|
export { FileHandler } from "./FileHandler";
|
|
17
|
+
export { FixedChannelPaste } from "./FixedChannelPaste";
|
|
18
|
+
export { FixedChannelSelection } from "./FixedChannelSelection";
|
|
17
19
|
export { Heading } from "./Heading";
|
|
18
20
|
export { ImageBlock } from "./ImageBlock";
|
|
19
21
|
export { Link } from "./Link";
|
|
@@ -21,4 +23,4 @@ export { Paragraph } from "./Paragraph";
|
|
|
21
23
|
export { Selection } from "./Selection";
|
|
22
24
|
export { SlashMenu } from "./SlashMenu";
|
|
23
25
|
export { UniqueId } from "./UniqueId";
|
|
24
|
-
export { Variable, VariableNode } from "./Variable";
|
|
26
|
+
export { Variable, VariableNode, VariablePaste } from "./Variable";
|
|
@@ -1,6 +1,7 @@
|
|
|
1
|
-
|
|
1
|
+
import type { HTMLAttributes } from "react";
|
|
2
|
+
interface PreviewPanelProps extends HTMLAttributes<HTMLDivElement> {
|
|
2
3
|
previewMode: "desktop" | "mobile" | undefined;
|
|
3
4
|
togglePreviewMode: (mode?: "desktop" | "mobile" | undefined) => void;
|
|
4
5
|
}
|
|
5
|
-
export declare const PreviewPanel: ({ previewMode, togglePreviewMode }: PreviewPanelProps) => import("react/jsx-runtime").JSX.Element;
|
|
6
|
+
export declare const PreviewPanel: ({ previewMode, togglePreviewMode, ...props }: PreviewPanelProps) => import("react/jsx-runtime").JSX.Element;
|
|
6
7
|
export {};
|
|
@@ -2,6 +2,9 @@ interface StatusProps {
|
|
|
2
2
|
isError?: boolean;
|
|
3
3
|
isSaving?: boolean | null;
|
|
4
4
|
isLoading?: boolean;
|
|
5
|
+
renderIsSaving?: (isSaving: boolean) => React.ReactNode;
|
|
6
|
+
renderIsError?: (isError: boolean) => React.ReactNode;
|
|
7
|
+
renderSaved?: (isSaved: boolean) => React.ReactNode;
|
|
5
8
|
}
|
|
6
|
-
export declare const Status: ({ isError, isSaving, isLoading }: StatusProps) => import("react/jsx-runtime").JSX.Element | null;
|
|
9
|
+
export declare const Status: ({ isError, isSaving, isLoading, renderIsSaving, renderIsError, renderSaved, }: StatusProps) => string | number | boolean | Iterable<import("react").ReactNode> | import("react/jsx-runtime").JSX.Element | null | undefined;
|
|
7
10
|
export {};
|