@trycourier/react-designer 0.5.1 → 0.6.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.
- package/README.md +70 -0
- package/dist/cjs/index.js +66 -59
- package/dist/cjs/index.js.map +4 -4
- package/dist/cjs/styles.css +105 -36
- package/dist/components/Providers/TemplateProvider.d.ts +2 -0
- package/dist/components/TemplateEditor/Channels/Email/EmailEditor.d.ts +3 -1
- package/dist/components/TemplateEditor/Channels/Inbox/InboxEditor.d.ts +3 -1
- package/dist/components/TemplateEditor/Channels/MSTeams/MSTeams.d.ts +6 -1
- package/dist/components/TemplateEditor/Channels/MSTeams/MSTeamsEditor.d.ts +3 -1
- package/dist/components/TemplateEditor/Channels/MSTeams/SideBar/MSTeamsSideBarItemDetails.d.ts +8 -0
- package/dist/components/TemplateEditor/Channels/MSTeams/SideBar/index.d.ts +1 -0
- package/dist/components/TemplateEditor/Channels/MSTeams/index.d.ts +1 -1
- package/dist/components/TemplateEditor/Channels/Push/PushEditor.d.ts +3 -1
- package/dist/components/TemplateEditor/Channels/SMS/SMSEditor.d.ts +3 -1
- package/dist/components/TemplateEditor/Channels/Slack/Slack.d.ts +6 -1
- package/dist/components/TemplateEditor/Channels/Slack/SlackEditor.d.ts +3 -1
- package/dist/components/TemplateEditor/VariableViewModeSync.d.ts +24 -0
- package/dist/components/TemplateEditor/index.d.ts +1 -1
- package/dist/components/TemplateEditor/store.d.ts +16 -1
- package/dist/components/extensions/Button/Button.d.ts +0 -3
- package/dist/components/extensions/Button/ButtonComponent.d.ts +2 -3
- package/dist/components/extensions/Button/buttonUtils.d.ts +13 -0
- package/dist/components/extensions/HardBreak/HardBreak.d.ts +12 -0
- package/dist/components/extensions/HardBreak/index.d.ts +1 -0
- package/dist/components/extensions/List/List.d.ts +0 -1
- package/dist/components/extensions/List/List.types.d.ts +0 -10
- package/dist/components/extensions/List/ListForm.d.ts +6 -1
- package/dist/components/extensions/Variable/index.d.ts +2 -0
- package/dist/components/extensions/Variable/variable-storage.types.d.ts +26 -0
- package/dist/components/extensions/Variable/variable-storage.utils.d.ts +72 -0
- package/dist/components/extensions/extension-kit.d.ts +17 -0
- package/dist/components/extensions/index.d.ts +1 -1
- package/dist/components/ui/TextMenu/hooks/useTextmenuCommands.d.ts +0 -1
- package/dist/components/ui-kit/Button/Button.d.ts +1 -1
- package/dist/components/ui-kit/Toggle/Toggle.d.ts +2 -2
- package/dist/components/ui-kit/ToggleGroup/ToggleGroup.d.ts +2 -2
- package/dist/components/utils/shadowDomDndFix.d.ts +47 -0
- package/dist/esm/index.js +66 -59
- package/dist/esm/index.js.map +4 -4
- package/dist/esm/styles.css +105 -36
- package/dist/hooks/useAutoSave.d.ts +1 -0
- package/dist/index.d.ts +1 -0
- package/dist/lib/testHelpers.d.ts +21 -1
- package/dist/lib/utils/convertElementalToTiptap/convertElementalToTiptap.d.ts +6 -1
- package/dist/lib/utils/getTitle/index.d.ts +1 -1
- package/dist/lib/utils/getTitle/preserveStorageFormat.d.ts +7 -0
- package/dist/styles.css +105 -36
- package/dist/types/elemental.types.d.ts +0 -4
- package/package.json +6 -1
package/dist/cjs/styles.css
CHANGED
|
@@ -447,6 +447,23 @@
|
|
|
447
447
|
.ProseMirror .ProseMirror-gapcursor + .node-blockquote:hover:is(.courier-dark *) {
|
|
448
448
|
outline-color: #a3a3a3;
|
|
449
449
|
}
|
|
450
|
+
/* Hard break wrapper for cursor positioning */
|
|
451
|
+
.ProseMirror .hard-break-wrapper {
|
|
452
|
+
display: inline;
|
|
453
|
+
white-space: pre;
|
|
454
|
+
}
|
|
455
|
+
/* Ensure cursor is visible before inline nodes after line breaks */
|
|
456
|
+
.ProseMirror .hard-break-wrapper + [data-node-view-wrapper] {
|
|
457
|
+
display: inline;
|
|
458
|
+
}
|
|
459
|
+
/* Custom cursor indicator for positions where browser can't render native cursor */
|
|
460
|
+
.ProseMirror .variable-cursor-indicator {
|
|
461
|
+
pointer-events: none;
|
|
462
|
+
}
|
|
463
|
+
@keyframes cursor-blink {
|
|
464
|
+
0%, 100% { opacity: 1; }
|
|
465
|
+
50% { opacity: 0; }
|
|
466
|
+
}
|
|
450
467
|
*, ::before, ::after {
|
|
451
468
|
--tw-border-spacing-x: 0;
|
|
452
469
|
--tw-border-spacing-y: 0;
|
|
@@ -1000,15 +1017,18 @@ body {
|
|
|
1000
1017
|
.courier-z-50 {
|
|
1001
1018
|
z-index: 50;
|
|
1002
1019
|
}
|
|
1020
|
+
.courier-z-\[40\] {
|
|
1021
|
+
z-index: 40;
|
|
1022
|
+
}
|
|
1023
|
+
.courier-z-\[50\] {
|
|
1024
|
+
z-index: 50;
|
|
1025
|
+
}
|
|
1003
1026
|
.courier-z-\[9999\] {
|
|
1004
1027
|
z-index: 9999;
|
|
1005
1028
|
}
|
|
1006
1029
|
.courier-z-\[999\] {
|
|
1007
1030
|
z-index: 999;
|
|
1008
1031
|
}
|
|
1009
|
-
.courier-z-\[9\] {
|
|
1010
|
-
z-index: 9;
|
|
1011
|
-
}
|
|
1012
1032
|
.\!courier-m-0 {
|
|
1013
1033
|
margin: 0px !important;
|
|
1014
1034
|
}
|
|
@@ -1033,6 +1053,10 @@ body {
|
|
|
1033
1053
|
margin-left: -1rem;
|
|
1034
1054
|
margin-right: -1rem;
|
|
1035
1055
|
}
|
|
1056
|
+
.courier-mx-0 {
|
|
1057
|
+
margin-left: 0px;
|
|
1058
|
+
margin-right: 0px;
|
|
1059
|
+
}
|
|
1036
1060
|
.courier-mx-1 {
|
|
1037
1061
|
margin-left: 0.25rem;
|
|
1038
1062
|
margin-right: 0.25rem;
|
|
@@ -1049,10 +1073,6 @@ body {
|
|
|
1049
1073
|
margin-left: auto;
|
|
1050
1074
|
margin-right: auto;
|
|
1051
1075
|
}
|
|
1052
|
-
.courier-my-0 {
|
|
1053
|
-
margin-top: 0px;
|
|
1054
|
-
margin-bottom: 0px;
|
|
1055
|
-
}
|
|
1056
1076
|
.courier-my-1 {
|
|
1057
1077
|
margin-top: 0.25rem;
|
|
1058
1078
|
margin-bottom: 0.25rem;
|
|
@@ -1252,9 +1272,6 @@ body {
|
|
|
1252
1272
|
.courier-h-\[25px\] {
|
|
1253
1273
|
height: 25px;
|
|
1254
1274
|
}
|
|
1255
|
-
.courier-h-\[28px\] {
|
|
1256
|
-
height: 28px;
|
|
1257
|
-
}
|
|
1258
1275
|
.courier-h-\[48px\] {
|
|
1259
1276
|
height: 48px;
|
|
1260
1277
|
}
|
|
@@ -1372,8 +1389,8 @@ body {
|
|
|
1372
1389
|
.courier-w-\[360px\] {
|
|
1373
1390
|
width: 360px;
|
|
1374
1391
|
}
|
|
1375
|
-
.courier-w-\[
|
|
1376
|
-
width:
|
|
1392
|
+
.courier-w-\[85\%\] {
|
|
1393
|
+
width: 85%;
|
|
1377
1394
|
}
|
|
1378
1395
|
.courier-w-auto {
|
|
1379
1396
|
width: auto;
|
|
@@ -1536,6 +1553,9 @@ body {
|
|
|
1536
1553
|
.courier-flex-wrap {
|
|
1537
1554
|
flex-wrap: wrap;
|
|
1538
1555
|
}
|
|
1556
|
+
.courier-flex-nowrap {
|
|
1557
|
+
flex-wrap: nowrap;
|
|
1558
|
+
}
|
|
1539
1559
|
.courier-content-center {
|
|
1540
1560
|
align-content: center;
|
|
1541
1561
|
}
|
|
@@ -1609,9 +1629,15 @@ body {
|
|
|
1609
1629
|
.courier-overflow-hidden {
|
|
1610
1630
|
overflow: hidden;
|
|
1611
1631
|
}
|
|
1632
|
+
.courier-overflow-x-auto {
|
|
1633
|
+
overflow-x: auto;
|
|
1634
|
+
}
|
|
1612
1635
|
.courier-overflow-y-auto {
|
|
1613
1636
|
overflow-y: auto;
|
|
1614
1637
|
}
|
|
1638
|
+
.courier-overflow-y-clip {
|
|
1639
|
+
overflow-y: clip;
|
|
1640
|
+
}
|
|
1615
1641
|
.courier-truncate {
|
|
1616
1642
|
overflow: hidden;
|
|
1617
1643
|
text-overflow: ellipsis;
|
|
@@ -1620,6 +1646,9 @@ body {
|
|
|
1620
1646
|
.courier-text-ellipsis {
|
|
1621
1647
|
text-overflow: ellipsis;
|
|
1622
1648
|
}
|
|
1649
|
+
.\!courier-whitespace-nowrap {
|
|
1650
|
+
white-space: nowrap !important;
|
|
1651
|
+
}
|
|
1623
1652
|
.courier-whitespace-nowrap {
|
|
1624
1653
|
white-space: nowrap;
|
|
1625
1654
|
}
|
|
@@ -2226,9 +2255,6 @@ body {
|
|
|
2226
2255
|
.courier-uppercase {
|
|
2227
2256
|
text-transform: uppercase;
|
|
2228
2257
|
}
|
|
2229
|
-
.courier-leading-\[28px\] {
|
|
2230
|
-
line-height: 28px;
|
|
2231
|
-
}
|
|
2232
2258
|
.courier-leading-none {
|
|
2233
2259
|
line-height: 1;
|
|
2234
2260
|
}
|
|
@@ -2266,6 +2292,10 @@ body {
|
|
|
2266
2292
|
.courier-text-accent-foreground {
|
|
2267
2293
|
color: var(--accent-foreground);
|
|
2268
2294
|
}
|
|
2295
|
+
.courier-text-black {
|
|
2296
|
+
--tw-text-opacity: 1;
|
|
2297
|
+
color: rgb(0 0 0 / var(--tw-text-opacity, 1));
|
|
2298
|
+
}
|
|
2269
2299
|
.courier-text-blue-700 {
|
|
2270
2300
|
--tw-text-opacity: 1;
|
|
2271
2301
|
color: rgb(29 78 216 / var(--tw-text-opacity, 1));
|
|
@@ -2342,6 +2372,9 @@ body {
|
|
|
2342
2372
|
.courier-underline {
|
|
2343
2373
|
text-decoration-line: underline;
|
|
2344
2374
|
}
|
|
2375
|
+
.courier-no-underline {
|
|
2376
|
+
text-decoration-line: none;
|
|
2377
|
+
}
|
|
2345
2378
|
.courier-antialiased {
|
|
2346
2379
|
-webkit-font-smoothing: antialiased;
|
|
2347
2380
|
-moz-osx-font-smoothing: grayscale;
|
|
@@ -2754,6 +2787,19 @@ body {
|
|
|
2754
2787
|
.courier-editor-preview-mode .ProseMirror, .courier-editor-readonly .ProseMirror {
|
|
2755
2788
|
pointer-events: none;
|
|
2756
2789
|
}
|
|
2790
|
+
/* Re-enable pointer events for clickable elements in preview mode */
|
|
2791
|
+
.courier-editor-preview-mode .ProseMirror a.link, .courier-editor-readonly .ProseMirror a.link {
|
|
2792
|
+
pointer-events: auto !important;
|
|
2793
|
+
cursor: pointer !important;
|
|
2794
|
+
}
|
|
2795
|
+
/* Button link wrapper in preview mode */
|
|
2796
|
+
.courier-editor-preview-mode .ProseMirror a.button-link-wrapper, .courier-editor-readonly .ProseMirror a.button-link-wrapper {
|
|
2797
|
+
pointer-events: auto !important;
|
|
2798
|
+
cursor: pointer !important;
|
|
2799
|
+
text-decoration: none;
|
|
2800
|
+
color: inherit;
|
|
2801
|
+
display: block;
|
|
2802
|
+
}
|
|
2757
2803
|
.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-list *, .courier-editor-preview-mode .ProseMirror > .react-renderer.node-buttonRow *, .courier-editor-preview-mode .ProseMirror > .react-renderer.node-column *, .courier-editor-preview-mode .ProseMirror > .react-renderer.node-customCode *, .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-list *, .courier-editor-readonly .ProseMirror > .react-renderer.node-buttonRow *, .courier-editor-readonly .ProseMirror > .react-renderer.node-column *, .courier-editor-readonly .ProseMirror > .react-renderer.node-customCode * {
|
|
2758
2804
|
pointer-events: none;
|
|
2759
2805
|
}
|
|
@@ -2772,7 +2818,10 @@ body {
|
|
|
2772
2818
|
.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-list:hover [data-cypress="draggable-handle"], .courier-editor-preview-mode .ProseMirror > .react-renderer.node-list: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-preview-mode .ProseMirror > .react-renderer.node-column:hover [data-cypress="draggable-handle"], .courier-editor-preview-mode .ProseMirror > .react-renderer.node-column:active [data-cypress="draggable-handle"], .courier-editor-preview-mode .ProseMirror > .react-renderer.node-customCode:hover [data-cypress="draggable-handle"], .courier-editor-preview-mode .ProseMirror > .react-renderer.node-customCode: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-list:hover [data-cypress="draggable-handle"], .courier-editor-readonly .ProseMirror > .react-renderer.node-list: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"], .courier-editor-readonly .ProseMirror > .react-renderer.node-column:hover [data-cypress="draggable-handle"], .courier-editor-readonly .ProseMirror > .react-renderer.node-column:active [data-cypress="draggable-handle"], .courier-editor-readonly .ProseMirror > .react-renderer.node-customCode:hover [data-cypress="draggable-handle"], .courier-editor-readonly .ProseMirror > .react-renderer.node-customCode:active [data-cypress="draggable-handle"] {
|
|
2773
2819
|
display: none;
|
|
2774
2820
|
}
|
|
2775
|
-
.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-list:hover .node-element > div::before, .courier-editor-preview-mode .ProseMirror > .react-renderer.node-list:hover .node-element > hr::before, .courier-editor-preview-mode .ProseMirror > .react-renderer.node-list:hover .node-element.courier-empty-image::before, .courier-editor-preview-mode .ProseMirror > .react-renderer.node-list:active .node-element > div::before, .courier-editor-preview-mode .ProseMirror > .react-renderer.node-list:active .node-element > hr::before, .courier-editor-preview-mode .ProseMirror > .react-renderer.node-list: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-preview-mode .ProseMirror > .react-renderer.node-column:hover .node-element > div::before, .courier-editor-preview-mode .ProseMirror > .react-renderer.node-column:hover .node-element > hr::before, .courier-editor-preview-mode .ProseMirror > .react-renderer.node-column:hover .node-element.courier-empty-image::before, .courier-editor-preview-mode .ProseMirror > .react-renderer.node-column:active .node-element > div::before, .courier-editor-preview-mode .ProseMirror > .react-renderer.node-column:active .node-element > hr::before, .courier-editor-preview-mode .ProseMirror > .react-renderer.node-column:active .node-element.courier-empty-image::before, .courier-editor-preview-mode .ProseMirror > .react-renderer.node-customCode:hover .node-element > div::before, .courier-editor-preview-mode .ProseMirror > .react-renderer.node-customCode:hover .node-element > hr::before, .courier-editor-preview-mode .ProseMirror > .react-renderer.node-customCode:hover .node-element.courier-empty-image::before, .courier-editor-preview-mode .ProseMirror > .react-renderer.node-customCode:active .node-element > div::before, .courier-editor-preview-mode .ProseMirror > .react-renderer.node-customCode:active .node-element > hr::before, .courier-editor-preview-mode .ProseMirror > .react-renderer.node-customCode: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-list:hover .node-element > div::before, .courier-editor-readonly .ProseMirror > .react-renderer.node-list:hover .node-element > hr::before, .courier-editor-readonly .ProseMirror > .react-renderer.node-list:hover .node-element.courier-empty-image::before, .courier-editor-readonly .ProseMirror > .react-renderer.node-list:active .node-element > div::before, .courier-editor-readonly .ProseMirror > .react-renderer.node-list:active .node-element > hr::before, .courier-editor-readonly .ProseMirror > .react-renderer.node-list: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, .courier-editor-readonly .ProseMirror > .react-renderer.node-column:hover .node-element > div::before, .courier-editor-readonly .ProseMirror > .react-renderer.node-column:hover .node-element > hr::before, .courier-editor-readonly .ProseMirror > .react-renderer.node-column:hover .node-element.courier-empty-image::before, .courier-editor-readonly .ProseMirror > .react-renderer.node-column:active .node-element > div::before, .courier-editor-readonly .ProseMirror > .react-renderer.node-column:active .node-element > hr::before, .courier-editor-readonly .ProseMirror > .react-renderer.node-column:active .node-element.courier-empty-image::before, .courier-editor-readonly .ProseMirror > .react-renderer.node-customCode:hover .node-element > div::before, .courier-editor-readonly .ProseMirror > .react-renderer.node-customCode:hover .node-element > hr::before, .courier-editor-readonly .ProseMirror > .react-renderer.node-customCode:hover .node-element.courier-empty-image::before, .courier-editor-readonly .ProseMirror > .react-renderer.node-customCode:active .node-element > div::before, .courier-editor-readonly .ProseMirror > .react-renderer.node-customCode:active .node-element > hr::before, .courier-editor-readonly .ProseMirror > .react-renderer.node-customCode:active .node-element.courier-empty-image::before {
|
|
2821
|
+
.courier-editor-preview-mode .ProseMirror > .react-renderer.node-imageBlock:hover .node-element::before, .courier-editor-preview-mode .ProseMirror > .react-renderer.node-imageBlock:active .node-element::before, .courier-editor-preview-mode .ProseMirror > .react-renderer.node-button:hover .node-element::before, .courier-editor-preview-mode .ProseMirror > .react-renderer.node-button:active .node-element::before, .courier-editor-preview-mode .ProseMirror > .react-renderer.node-divider:hover .node-element::before, .courier-editor-preview-mode .ProseMirror > .react-renderer.node-divider:active .node-element::before, .courier-editor-preview-mode .ProseMirror > .react-renderer.node-paragraph:hover .node-element::before, .courier-editor-preview-mode .ProseMirror > .react-renderer.node-paragraph:active .node-element::before, .courier-editor-preview-mode .ProseMirror > .react-renderer.node-heading:hover .node-element::before, .courier-editor-preview-mode .ProseMirror > .react-renderer.node-heading:active .node-element::before, .courier-editor-preview-mode .ProseMirror > .react-renderer.node-blockquote:hover .node-element::before, .courier-editor-preview-mode .ProseMirror > .react-renderer.node-blockquote:active .node-element::before, .courier-editor-preview-mode .ProseMirror > .react-renderer.node-list:hover .node-element::before, .courier-editor-preview-mode .ProseMirror > .react-renderer.node-list:active .node-element::before, .courier-editor-preview-mode .ProseMirror > .react-renderer.node-buttonRow:hover .node-element::before, .courier-editor-preview-mode .ProseMirror > .react-renderer.node-buttonRow:active .node-element::before, .courier-editor-preview-mode .ProseMirror > .react-renderer.node-column:hover .node-element::before, .courier-editor-preview-mode .ProseMirror > .react-renderer.node-column:active .node-element::before, .courier-editor-preview-mode .ProseMirror > .react-renderer.node-customCode:hover .node-element::before, .courier-editor-preview-mode .ProseMirror > .react-renderer.node-customCode:active .node-element::before, .courier-editor-readonly .ProseMirror > .react-renderer.node-imageBlock:hover .node-element::before, .courier-editor-readonly .ProseMirror > .react-renderer.node-imageBlock:active .node-element::before, .courier-editor-readonly .ProseMirror > .react-renderer.node-button:hover .node-element::before, .courier-editor-readonly .ProseMirror > .react-renderer.node-button:active .node-element::before, .courier-editor-readonly .ProseMirror > .react-renderer.node-divider:hover .node-element::before, .courier-editor-readonly .ProseMirror > .react-renderer.node-divider:active .node-element::before, .courier-editor-readonly .ProseMirror > .react-renderer.node-paragraph:hover .node-element::before, .courier-editor-readonly .ProseMirror > .react-renderer.node-paragraph:active .node-element::before, .courier-editor-readonly .ProseMirror > .react-renderer.node-heading:hover .node-element::before, .courier-editor-readonly .ProseMirror > .react-renderer.node-heading:active .node-element::before, .courier-editor-readonly .ProseMirror > .react-renderer.node-blockquote:hover .node-element::before, .courier-editor-readonly .ProseMirror > .react-renderer.node-blockquote:active .node-element::before, .courier-editor-readonly .ProseMirror > .react-renderer.node-list:hover .node-element::before, .courier-editor-readonly .ProseMirror > .react-renderer.node-list:active .node-element::before, .courier-editor-readonly .ProseMirror > .react-renderer.node-buttonRow:hover .node-element::before, .courier-editor-readonly .ProseMirror > .react-renderer.node-buttonRow:active .node-element::before, .courier-editor-readonly .ProseMirror > .react-renderer.node-column:hover .node-element::before, .courier-editor-readonly .ProseMirror > .react-renderer.node-column:active .node-element::before, .courier-editor-readonly .ProseMirror > .react-renderer.node-customCode:hover .node-element::before, .courier-editor-readonly .ProseMirror > .react-renderer.node-customCode:active .node-element::before {
|
|
2822
|
+
display: none;
|
|
2823
|
+
}
|
|
2824
|
+
.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 > ul::before, .courier-editor-preview-mode .ProseMirror > .react-renderer.node-imageBlock:hover .node-element > ol::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 > ul::before, .courier-editor-preview-mode .ProseMirror > .react-renderer.node-imageBlock:active .node-element > ol::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 > ul::before, .courier-editor-preview-mode .ProseMirror > .react-renderer.node-button:hover .node-element > ol::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 > ul::before, .courier-editor-preview-mode .ProseMirror > .react-renderer.node-button:active .node-element > ol::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 > ul::before, .courier-editor-preview-mode .ProseMirror > .react-renderer.node-divider:hover .node-element > ol::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 > ul::before, .courier-editor-preview-mode .ProseMirror > .react-renderer.node-divider:active .node-element > ol::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 > ul::before, .courier-editor-preview-mode .ProseMirror > .react-renderer.node-paragraph:hover .node-element > ol::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 > ul::before, .courier-editor-preview-mode .ProseMirror > .react-renderer.node-paragraph:active .node-element > ol::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 > ul::before, .courier-editor-preview-mode .ProseMirror > .react-renderer.node-heading:hover .node-element > ol::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 > ul::before, .courier-editor-preview-mode .ProseMirror > .react-renderer.node-heading:active .node-element > ol::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 > ul::before, .courier-editor-preview-mode .ProseMirror > .react-renderer.node-blockquote:hover .node-element > ol::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 > ul::before, .courier-editor-preview-mode .ProseMirror > .react-renderer.node-blockquote:active .node-element > ol::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-list:hover .node-element > div::before, .courier-editor-preview-mode .ProseMirror > .react-renderer.node-list:hover .node-element > hr::before, .courier-editor-preview-mode .ProseMirror > .react-renderer.node-list:hover .node-element > ul::before, .courier-editor-preview-mode .ProseMirror > .react-renderer.node-list:hover .node-element > ol::before, .courier-editor-preview-mode .ProseMirror > .react-renderer.node-list:hover .node-element.courier-empty-image::before, .courier-editor-preview-mode .ProseMirror > .react-renderer.node-list:active .node-element > div::before, .courier-editor-preview-mode .ProseMirror > .react-renderer.node-list:active .node-element > hr::before, .courier-editor-preview-mode .ProseMirror > .react-renderer.node-list:active .node-element > ul::before, .courier-editor-preview-mode .ProseMirror > .react-renderer.node-list:active .node-element > ol::before, .courier-editor-preview-mode .ProseMirror > .react-renderer.node-list: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 > ul::before, .courier-editor-preview-mode .ProseMirror > .react-renderer.node-buttonRow:hover .node-element > ol::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 > ul::before, .courier-editor-preview-mode .ProseMirror > .react-renderer.node-buttonRow:active .node-element > ol::before, .courier-editor-preview-mode .ProseMirror > .react-renderer.node-buttonRow:active .node-element.courier-empty-image::before, .courier-editor-preview-mode .ProseMirror > .react-renderer.node-column:hover .node-element > div::before, .courier-editor-preview-mode .ProseMirror > .react-renderer.node-column:hover .node-element > hr::before, .courier-editor-preview-mode .ProseMirror > .react-renderer.node-column:hover .node-element > ul::before, .courier-editor-preview-mode .ProseMirror > .react-renderer.node-column:hover .node-element > ol::before, .courier-editor-preview-mode .ProseMirror > .react-renderer.node-column:hover .node-element.courier-empty-image::before, .courier-editor-preview-mode .ProseMirror > .react-renderer.node-column:active .node-element > div::before, .courier-editor-preview-mode .ProseMirror > .react-renderer.node-column:active .node-element > hr::before, .courier-editor-preview-mode .ProseMirror > .react-renderer.node-column:active .node-element > ul::before, .courier-editor-preview-mode .ProseMirror > .react-renderer.node-column:active .node-element > ol::before, .courier-editor-preview-mode .ProseMirror > .react-renderer.node-column:active .node-element.courier-empty-image::before, .courier-editor-preview-mode .ProseMirror > .react-renderer.node-customCode:hover .node-element > div::before, .courier-editor-preview-mode .ProseMirror > .react-renderer.node-customCode:hover .node-element > hr::before, .courier-editor-preview-mode .ProseMirror > .react-renderer.node-customCode:hover .node-element > ul::before, .courier-editor-preview-mode .ProseMirror > .react-renderer.node-customCode:hover .node-element > ol::before, .courier-editor-preview-mode .ProseMirror > .react-renderer.node-customCode:hover .node-element.courier-empty-image::before, .courier-editor-preview-mode .ProseMirror > .react-renderer.node-customCode:active .node-element > div::before, .courier-editor-preview-mode .ProseMirror > .react-renderer.node-customCode:active .node-element > hr::before, .courier-editor-preview-mode .ProseMirror > .react-renderer.node-customCode:active .node-element > ul::before, .courier-editor-preview-mode .ProseMirror > .react-renderer.node-customCode:active .node-element > ol::before, .courier-editor-preview-mode .ProseMirror > .react-renderer.node-customCode: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 > ul::before, .courier-editor-readonly .ProseMirror > .react-renderer.node-imageBlock:hover .node-element > ol::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 > ul::before, .courier-editor-readonly .ProseMirror > .react-renderer.node-imageBlock:active .node-element > ol::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 > ul::before, .courier-editor-readonly .ProseMirror > .react-renderer.node-button:hover .node-element > ol::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 > ul::before, .courier-editor-readonly .ProseMirror > .react-renderer.node-button:active .node-element > ol::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 > ul::before, .courier-editor-readonly .ProseMirror > .react-renderer.node-divider:hover .node-element > ol::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 > ul::before, .courier-editor-readonly .ProseMirror > .react-renderer.node-divider:active .node-element > ol::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 > ul::before, .courier-editor-readonly .ProseMirror > .react-renderer.node-paragraph:hover .node-element > ol::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 > ul::before, .courier-editor-readonly .ProseMirror > .react-renderer.node-paragraph:active .node-element > ol::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 > ul::before, .courier-editor-readonly .ProseMirror > .react-renderer.node-heading:hover .node-element > ol::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 > ul::before, .courier-editor-readonly .ProseMirror > .react-renderer.node-heading:active .node-element > ol::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 > ul::before, .courier-editor-readonly .ProseMirror > .react-renderer.node-blockquote:hover .node-element > ol::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 > ul::before, .courier-editor-readonly .ProseMirror > .react-renderer.node-blockquote:active .node-element > ol::before, .courier-editor-readonly .ProseMirror > .react-renderer.node-blockquote:active .node-element.courier-empty-image::before, .courier-editor-readonly .ProseMirror > .react-renderer.node-list:hover .node-element > div::before, .courier-editor-readonly .ProseMirror > .react-renderer.node-list:hover .node-element > hr::before, .courier-editor-readonly .ProseMirror > .react-renderer.node-list:hover .node-element > ul::before, .courier-editor-readonly .ProseMirror > .react-renderer.node-list:hover .node-element > ol::before, .courier-editor-readonly .ProseMirror > .react-renderer.node-list:hover .node-element.courier-empty-image::before, .courier-editor-readonly .ProseMirror > .react-renderer.node-list:active .node-element > div::before, .courier-editor-readonly .ProseMirror > .react-renderer.node-list:active .node-element > hr::before, .courier-editor-readonly .ProseMirror > .react-renderer.node-list:active .node-element > ul::before, .courier-editor-readonly .ProseMirror > .react-renderer.node-list:active .node-element > ol::before, .courier-editor-readonly .ProseMirror > .react-renderer.node-list: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 > ul::before, .courier-editor-readonly .ProseMirror > .react-renderer.node-buttonRow:hover .node-element > ol::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 > ul::before, .courier-editor-readonly .ProseMirror > .react-renderer.node-buttonRow:active .node-element > ol::before, .courier-editor-readonly .ProseMirror > .react-renderer.node-buttonRow:active .node-element.courier-empty-image::before, .courier-editor-readonly .ProseMirror > .react-renderer.node-column:hover .node-element > div::before, .courier-editor-readonly .ProseMirror > .react-renderer.node-column:hover .node-element > hr::before, .courier-editor-readonly .ProseMirror > .react-renderer.node-column:hover .node-element > ul::before, .courier-editor-readonly .ProseMirror > .react-renderer.node-column:hover .node-element > ol::before, .courier-editor-readonly .ProseMirror > .react-renderer.node-column:hover .node-element.courier-empty-image::before, .courier-editor-readonly .ProseMirror > .react-renderer.node-column:active .node-element > div::before, .courier-editor-readonly .ProseMirror > .react-renderer.node-column:active .node-element > hr::before, .courier-editor-readonly .ProseMirror > .react-renderer.node-column:active .node-element > ul::before, .courier-editor-readonly .ProseMirror > .react-renderer.node-column:active .node-element > ol::before, .courier-editor-readonly .ProseMirror > .react-renderer.node-column:active .node-element.courier-empty-image::before, .courier-editor-readonly .ProseMirror > .react-renderer.node-customCode:hover .node-element > div::before, .courier-editor-readonly .ProseMirror > .react-renderer.node-customCode:hover .node-element > hr::before, .courier-editor-readonly .ProseMirror > .react-renderer.node-customCode:hover .node-element > ul::before, .courier-editor-readonly .ProseMirror > .react-renderer.node-customCode:hover .node-element > ol::before, .courier-editor-readonly .ProseMirror > .react-renderer.node-customCode:hover .node-element.courier-empty-image::before, .courier-editor-readonly .ProseMirror > .react-renderer.node-customCode:active .node-element > div::before, .courier-editor-readonly .ProseMirror > .react-renderer.node-customCode:active .node-element > hr::before, .courier-editor-readonly .ProseMirror > .react-renderer.node-customCode:active .node-element > ul::before, .courier-editor-readonly .ProseMirror > .react-renderer.node-customCode:active .node-element > ol::before, .courier-editor-readonly .ProseMirror > .react-renderer.node-customCode:active .node-element.courier-empty-image::before {
|
|
2776
2825
|
display: none;
|
|
2777
2826
|
}
|
|
2778
2827
|
.courier-editor-preview-mode .ProseMirror > .react-renderer.node-column .draggable-content-wrapper > .node-element > div, .courier-editor-readonly .ProseMirror > .react-renderer.node-column .draggable-content-wrapper > .node-element > div {
|
|
@@ -3083,10 +3132,6 @@ body {
|
|
|
3083
3132
|
margin-top: 0px;
|
|
3084
3133
|
margin-bottom: 0px;
|
|
3085
3134
|
}
|
|
3086
|
-
.ProseMirror > .react-renderer .node-variable {
|
|
3087
|
-
margin-left: 0.25rem !important;
|
|
3088
|
-
margin-right: 0.25rem !important;
|
|
3089
|
-
}
|
|
3090
3135
|
.ProseMirror > .react-renderer .node-variable {
|
|
3091
3136
|
display: inline-block;
|
|
3092
3137
|
}
|
|
@@ -4736,6 +4781,8 @@ body {
|
|
|
4736
4781
|
}
|
|
4737
4782
|
.courier-variable-chip {
|
|
4738
4783
|
position: relative;
|
|
4784
|
+
margin-left: 0.125rem;
|
|
4785
|
+
margin-right: 0.125rem;
|
|
4739
4786
|
display: inline-flex;
|
|
4740
4787
|
max-width: 100%;
|
|
4741
4788
|
align-items: center;
|
|
@@ -4832,7 +4879,11 @@ body {
|
|
|
4832
4879
|
}
|
|
4833
4880
|
/* Variable Input placeholder styles */
|
|
4834
4881
|
.variable-input-placeholder {
|
|
4882
|
+
position: relative;
|
|
4835
4883
|
cursor: text;
|
|
4884
|
+
padding-left: 1px;
|
|
4885
|
+
|
|
4886
|
+
/* Position placeholder absolutely so cursor appears at start */
|
|
4836
4887
|
}
|
|
4837
4888
|
.variable-input-placeholder .ProseMirror {
|
|
4838
4889
|
width: 100%;
|
|
@@ -4843,12 +4894,6 @@ body {
|
|
|
4843
4894
|
.variable-input-placeholder .ProseMirror p {
|
|
4844
4895
|
margin: 0px;
|
|
4845
4896
|
}
|
|
4846
|
-
.variable-input-placeholder .ProseMirror p {
|
|
4847
|
-
height: 28px;
|
|
4848
|
-
}
|
|
4849
|
-
.variable-input-placeholder .ProseMirror p {
|
|
4850
|
-
width: 100%;
|
|
4851
|
-
}
|
|
4852
4897
|
.variable-input-placeholder .ProseMirror p {
|
|
4853
4898
|
cursor: text;
|
|
4854
4899
|
}
|
|
@@ -4858,21 +4903,24 @@ body {
|
|
|
4858
4903
|
.variable-input-placeholder .ProseMirror p {
|
|
4859
4904
|
padding: 0px;
|
|
4860
4905
|
}
|
|
4861
|
-
.variable-input-placeholder .ProseMirror p {
|
|
4862
|
-
line-height: 28px;
|
|
4863
|
-
}
|
|
4864
4906
|
.variable-input-placeholder .ProseMirror p {
|
|
4865
4907
|
outline: 2px solid transparent;
|
|
4866
4908
|
outline-offset: 2px;
|
|
4867
4909
|
}
|
|
4868
4910
|
.variable-input-placeholder .ProseMirror p.is-editor-empty:first-child::before,
|
|
4869
|
-
|
|
4870
|
-
|
|
4871
|
-
|
|
4872
|
-
|
|
4873
|
-
|
|
4874
|
-
|
|
4875
|
-
|
|
4911
|
+
.variable-input-placeholder .ProseMirror p.is-empty:first-child::before {
|
|
4912
|
+
content: attr(data-placeholder);
|
|
4913
|
+
color: var(--muted-foreground);
|
|
4914
|
+
pointer-events: none;
|
|
4915
|
+
position: absolute;
|
|
4916
|
+
left: 1px; /* Match the padding */
|
|
4917
|
+
top: 50%;
|
|
4918
|
+
transform: translateY(-50%);
|
|
4919
|
+
}
|
|
4920
|
+
/* Hide scrollbar for variable input while keeping scroll functionality */
|
|
4921
|
+
.variable-input-no-scrollbar::-webkit-scrollbar {
|
|
4922
|
+
display: none;
|
|
4923
|
+
}
|
|
4876
4924
|
.file\:courier-border-0::file-selector-button {
|
|
4877
4925
|
border-width: 0px;
|
|
4878
4926
|
}
|
|
@@ -5407,9 +5455,18 @@ body {
|
|
|
5407
5455
|
.\[\&\>svg\]\:courier-shrink-0>svg {
|
|
5408
5456
|
flex-shrink: 0;
|
|
5409
5457
|
}
|
|
5458
|
+
.\[\&_\.ProseMirror\]\:courier-inline-flex .ProseMirror {
|
|
5459
|
+
display: inline-flex;
|
|
5460
|
+
}
|
|
5410
5461
|
.\[\&_\.ProseMirror\]\:courier-min-h-\[20px\] .ProseMirror {
|
|
5411
5462
|
min-height: 20px;
|
|
5412
5463
|
}
|
|
5464
|
+
.\[\&_\.ProseMirror\]\:courier-flex-nowrap .ProseMirror {
|
|
5465
|
+
flex-wrap: nowrap;
|
|
5466
|
+
}
|
|
5467
|
+
.\[\&_\.ProseMirror\]\:courier-items-center .ProseMirror {
|
|
5468
|
+
align-items: center;
|
|
5469
|
+
}
|
|
5413
5470
|
.\[\&_\.ProseMirror\]\:courier-border-none .ProseMirror {
|
|
5414
5471
|
border-style: none;
|
|
5415
5472
|
}
|
|
@@ -5420,6 +5477,18 @@ body {
|
|
|
5420
5477
|
outline: 2px solid transparent;
|
|
5421
5478
|
outline-offset: 2px;
|
|
5422
5479
|
}
|
|
5480
|
+
.\[\&_\.tiptap\]\:courier-inline-flex .tiptap {
|
|
5481
|
+
display: inline-flex;
|
|
5482
|
+
}
|
|
5483
|
+
.\[\&_\.tiptap\]\:courier-flex-nowrap .tiptap {
|
|
5484
|
+
flex-wrap: nowrap;
|
|
5485
|
+
}
|
|
5486
|
+
.\[\&_\.tiptap\]\:courier-items-center .tiptap {
|
|
5487
|
+
align-items: center;
|
|
5488
|
+
}
|
|
5489
|
+
.\[\&_\.tiptap\]\:courier-whitespace-nowrap .tiptap {
|
|
5490
|
+
white-space: nowrap;
|
|
5491
|
+
}
|
|
5423
5492
|
.\[\&_\.tiptap\]\:courier-border-none .tiptap {
|
|
5424
5493
|
border-style: none;
|
|
5425
5494
|
}
|
|
@@ -14,6 +14,8 @@ export declare const useUploadImage: () => UploadImageFunction | null;
|
|
|
14
14
|
type TemplateProviderProps = BasicProviderProps & {
|
|
15
15
|
templateId: string;
|
|
16
16
|
uploadImage?: UploadImageFunction;
|
|
17
|
+
variables?: Record<string, unknown>;
|
|
18
|
+
disableVariablesAutocomplete?: boolean;
|
|
17
19
|
};
|
|
18
20
|
export declare const TemplateProvider: import("react").NamedExoticComponent<TemplateProviderProps>;
|
|
19
21
|
export {};
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { type VariableViewMode } from "@/components/TemplateEditor/store";
|
|
1
2
|
import type { TiptapDoc } from "@/types";
|
|
2
3
|
import type { Editor } from "@tiptap/core";
|
|
3
4
|
export interface EmailEditorProps {
|
|
@@ -6,8 +7,9 @@ export interface EmailEditorProps {
|
|
|
6
7
|
subject?: string | null;
|
|
7
8
|
variables?: Record<string, unknown>;
|
|
8
9
|
disableVariablesAutocomplete?: boolean;
|
|
10
|
+
variableViewMode?: VariableViewMode;
|
|
9
11
|
onDestroy?: () => void;
|
|
10
12
|
onUpdate?: (editor: Editor) => void;
|
|
11
13
|
}
|
|
12
|
-
declare const EmailEditor: ({ value, readOnly, onDestroy, onUpdate, subject: propSubject, variables, disableVariablesAutocomplete, }: EmailEditorProps) => import("react/jsx-runtime").JSX.Element;
|
|
14
|
+
declare const EmailEditor: ({ value, readOnly, onDestroy, onUpdate, subject: propSubject, variables, disableVariablesAutocomplete, variableViewMode, }: EmailEditorProps) => import("react/jsx-runtime").JSX.Element;
|
|
13
15
|
export default EmailEditor;
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
import type { InboxRenderProps } from "./Inbox";
|
|
2
|
+
import { type VariableViewMode } from "../../store";
|
|
2
3
|
export interface InboxEditorProps extends InboxRenderProps {
|
|
3
4
|
readOnly?: boolean;
|
|
5
|
+
variableViewMode?: VariableViewMode;
|
|
4
6
|
}
|
|
5
|
-
export declare const InboxEditor: ({ content, extensions, editable, autofocus, onUpdate, readOnly, }: InboxEditorProps) => import("react/jsx-runtime").JSX.Element | null;
|
|
7
|
+
export declare const InboxEditor: ({ content, extensions, editable, autofocus, onUpdate, readOnly, variableViewMode, }: InboxEditorProps) => import("react/jsx-runtime").JSX.Element | null;
|
|
@@ -27,6 +27,7 @@ export interface MSTeamsRenderProps {
|
|
|
27
27
|
};
|
|
28
28
|
selectedNode: Node | null;
|
|
29
29
|
msteamsEditor: Editor | null;
|
|
30
|
+
textMenuConfig: TextMenuConfig;
|
|
30
31
|
}
|
|
31
32
|
export interface MSTeamsProps extends Pick<TemplateEditorProps, "hidePublish" | "theme" | "variables" | "disableVariablesAutocomplete" | "channels" | "routing" | "value" | "colorScheme">, Omit<HTMLAttributes<HTMLDivElement>, "value" | "onChange"> {
|
|
32
33
|
readOnly?: boolean;
|
|
@@ -37,6 +38,10 @@ export interface MSTeamsProps extends Pick<TemplateEditorProps, "hidePublish" |
|
|
|
37
38
|
}) => React.ReactNode;
|
|
38
39
|
render?: (props: MSTeamsRenderProps) => React.ReactNode;
|
|
39
40
|
}
|
|
40
|
-
|
|
41
|
+
/**
|
|
42
|
+
* Get text menu configuration for an MS Teams node based on selection state
|
|
43
|
+
* This function applies MS Teams-specific constraints while respecting text selection
|
|
44
|
+
*/
|
|
45
|
+
export declare const getTextMenuConfigForMSTeamsNode: (nodeName: string, hasTextSelection?: boolean) => TextMenuConfig;
|
|
41
46
|
export declare const MSTeams: React.MemoExoticComponent<React.ForwardRefExoticComponent<MSTeamsProps & React.RefAttributes<HTMLDivElement>>>;
|
|
42
47
|
export {};
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
import type { MSTeamsRenderProps } from "./MSTeams";
|
|
2
|
+
import { type VariableViewMode } from "../../store";
|
|
2
3
|
export interface MSTeamsEditorProps extends MSTeamsRenderProps {
|
|
3
4
|
readOnly?: boolean;
|
|
5
|
+
variableViewMode?: VariableViewMode;
|
|
4
6
|
}
|
|
5
|
-
export declare const MSTeamsEditor: ({ content, extensions, editable, autofocus, onUpdate, readOnly, }: MSTeamsEditorProps) => import("react/jsx-runtime").JSX.Element | null;
|
|
7
|
+
export declare const MSTeamsEditor: ({ content, extensions, editable, autofocus, onUpdate, readOnly, variableViewMode, textMenuConfig, }: MSTeamsEditorProps) => import("react/jsx-runtime").JSX.Element | null;
|
package/dist/components/TemplateEditor/Channels/MSTeams/SideBar/MSTeamsSideBarItemDetails.d.ts
ADDED
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { Node as ProseMirrorNode } from "@tiptap/pm/model";
|
|
2
|
+
import type { Editor } from "@tiptap/react";
|
|
3
|
+
export interface MSTeamsSideBarItemDetailsProps {
|
|
4
|
+
element: ProseMirrorNode | null;
|
|
5
|
+
editor: Editor | null;
|
|
6
|
+
defaultElement: React.ReactNode;
|
|
7
|
+
}
|
|
8
|
+
export declare const MSTeamsSideBarItemDetails: ({ element, editor, defaultElement, }: MSTeamsSideBarItemDetailsProps) => string | number | boolean | Iterable<import("react").ReactNode> | import("react/jsx-runtime").JSX.Element | null | undefined;
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
import type { HTMLAttributes } from "react";
|
|
2
2
|
import { type PushRenderProps } from "./Push";
|
|
3
|
+
import { type VariableViewMode } from "../../store";
|
|
3
4
|
export interface PushEditorProps extends PushRenderProps, Omit<HTMLAttributes<HTMLDivElement>, "content"> {
|
|
4
5
|
readOnly?: boolean;
|
|
6
|
+
variableViewMode?: VariableViewMode;
|
|
5
7
|
}
|
|
6
|
-
export declare const PushEditor: ({ content, extensions, editable, autofocus, onUpdate, className, readOnly, }: PushEditorProps) => import("react/jsx-runtime").JSX.Element;
|
|
8
|
+
export declare const PushEditor: ({ content, extensions, editable, autofocus, onUpdate, className, readOnly, variableViewMode, }: PushEditorProps) => import("react/jsx-runtime").JSX.Element;
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
import type { HTMLAttributes } from "react";
|
|
2
2
|
import type { SMSRenderProps } from "./SMS";
|
|
3
|
+
import { type VariableViewMode } from "../../store";
|
|
3
4
|
export interface SMSEditorProps extends SMSRenderProps, Omit<HTMLAttributes<HTMLDivElement>, "content"> {
|
|
4
5
|
readOnly?: boolean;
|
|
6
|
+
variableViewMode?: VariableViewMode;
|
|
5
7
|
}
|
|
6
|
-
export declare const SMSEditor: ({ content, extensions, editable, autofocus, onUpdate, className, readOnly, }: SMSEditorProps) => import("react/jsx-runtime").JSX.Element;
|
|
8
|
+
export declare const SMSEditor: ({ content, extensions, editable, autofocus, onUpdate, className, readOnly, variableViewMode, }: SMSEditorProps) => import("react/jsx-runtime").JSX.Element;
|
|
@@ -27,6 +27,7 @@ export interface SlackRenderProps {
|
|
|
27
27
|
};
|
|
28
28
|
selectedNode: Node | null;
|
|
29
29
|
slackEditor: Editor | null;
|
|
30
|
+
textMenuConfig: TextMenuConfig;
|
|
30
31
|
}
|
|
31
32
|
export interface SlackProps extends Pick<TemplateEditorProps, "hidePublish" | "theme" | "variables" | "disableVariablesAutocomplete" | "channels" | "routing" | "value" | "colorScheme">, Omit<HTMLAttributes<HTMLDivElement>, "value" | "onChange"> {
|
|
32
33
|
readOnly?: boolean;
|
|
@@ -37,6 +38,10 @@ export interface SlackProps extends Pick<TemplateEditorProps, "hidePublish" | "t
|
|
|
37
38
|
}) => React.ReactNode;
|
|
38
39
|
render?: (props: SlackRenderProps) => React.ReactNode;
|
|
39
40
|
}
|
|
40
|
-
|
|
41
|
+
/**
|
|
42
|
+
* Get text menu configuration for a Slack node based on selection state
|
|
43
|
+
* This function applies Slack-specific constraints while respecting text selection
|
|
44
|
+
*/
|
|
45
|
+
export declare const getTextMenuConfigForSlackNode: (nodeName: string, hasTextSelection?: boolean) => TextMenuConfig;
|
|
41
46
|
export declare const Slack: React.MemoExoticComponent<React.ForwardRefExoticComponent<SlackProps & React.RefAttributes<HTMLDivElement>>>;
|
|
42
47
|
export {};
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
import type { SlackRenderProps } from "./Slack";
|
|
2
|
+
import { type VariableViewMode } from "../../store";
|
|
2
3
|
export interface SlackEditorProps extends SlackRenderProps {
|
|
3
4
|
readOnly?: boolean;
|
|
5
|
+
variableViewMode?: VariableViewMode;
|
|
4
6
|
}
|
|
5
|
-
export declare const SlackEditor: ({ content, extensions, editable, autofocus, onUpdate, readOnly, }: SlackEditorProps) => import("react/jsx-runtime").JSX.Element | null;
|
|
7
|
+
export declare const SlackEditor: ({ content, extensions, editable, autofocus, onUpdate, readOnly, variableViewMode, textMenuConfig, }: SlackEditorProps) => import("react/jsx-runtime").JSX.Element | null;
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { type VariableViewMode } from "./store";
|
|
2
|
+
import { getVariableViewMode } from "../extensions/Variable/variable-storage.utils";
|
|
3
|
+
interface VariableViewModeSyncProps {
|
|
4
|
+
variableViewMode: VariableViewMode;
|
|
5
|
+
}
|
|
6
|
+
/**
|
|
7
|
+
* Syncs the variableViewMode prop to editor storage and dispatches a transaction
|
|
8
|
+
* to notify VariableView components to re-render.
|
|
9
|
+
*
|
|
10
|
+
* This component should be placed inside an EditorProvider.
|
|
11
|
+
*/
|
|
12
|
+
export declare const VariableViewModeSync: ({ variableViewMode }: VariableViewModeSyncProps) => null;
|
|
13
|
+
/**
|
|
14
|
+
* Hook to get the current variable view mode from the editor.
|
|
15
|
+
* Useful for reading the variable view mode outside of VariableView components.
|
|
16
|
+
*
|
|
17
|
+
* @example
|
|
18
|
+
* ```typescript
|
|
19
|
+
* const { editor } = useCurrentEditor();
|
|
20
|
+
* const viewMode = useVariableViewMode(editor);
|
|
21
|
+
* ```
|
|
22
|
+
*/
|
|
23
|
+
export declare function useVariableViewMode(editor: Parameters<typeof getVariableViewMode>[0]): VariableViewMode;
|
|
24
|
+
export {};
|
|
@@ -4,7 +4,7 @@ export { default as EmailEditor } from "./Channels/Email/EmailEditor";
|
|
|
4
4
|
export * from "./TemplateEditor";
|
|
5
5
|
export { SideBar as EmailSideBar, SideBarItemDetails as EmailSideBarItemDetails, } from "./Channels/Email/SideBar";
|
|
6
6
|
export { SideBar as InboxSideBar } from "./Channels/Inbox/SideBar";
|
|
7
|
-
export { MSTeamsSideBar } from "./Channels/MSTeams/SideBar";
|
|
7
|
+
export { MSTeamsSideBar, MSTeamsSideBarItemDetails } from "./Channels/MSTeams/SideBar";
|
|
8
8
|
export { SlackSideBar, SlackSideBarItemDetails } from "./Channels/Slack/SideBar";
|
|
9
9
|
export { EmailEditorContainer, EmailEditorMain, type EmailEditorProps, type InboxEditorProps, type MSTeamsEditorProps, type PushEditorProps, type SlackEditorProps, type SMSEditorProps, } from "./Channels";
|
|
10
10
|
export declare const EmailChannel: import("react").MemoExoticComponent<import("react").ForwardRefExoticComponent<import("./Channels").EmailProps & import("react").RefAttributes<HTMLDivElement>>>;
|
|
@@ -39,9 +39,24 @@ export declare const disableVariablesAutocompleteAtom: import("jotai").Primitive
|
|
|
39
39
|
export declare const variableValidationAtom: import("jotai").PrimitiveAtom<VariableValidationConfig | undefined> & {
|
|
40
40
|
init: VariableValidationConfig | undefined;
|
|
41
41
|
};
|
|
42
|
+
export type VariableViewMode = "show-variables" | "wysiwyg";
|
|
42
43
|
export declare const isDraggingAtom: import("jotai").PrimitiveAtom<boolean> & {
|
|
43
44
|
init: boolean;
|
|
44
45
|
};
|
|
46
|
+
/**
|
|
47
|
+
* Increments or decrements the form updating counter.
|
|
48
|
+
* When true, increments the counter (starting an update).
|
|
49
|
+
* When false, decrements the counter (ending an update).
|
|
50
|
+
*/
|
|
51
|
+
export declare const setFormUpdating: (value: boolean) => void;
|
|
52
|
+
/**
|
|
53
|
+
* Returns true if any form update is in progress (counter > 0)
|
|
54
|
+
*/
|
|
55
|
+
export declare const getFormUpdating: () => boolean;
|
|
56
|
+
/**
|
|
57
|
+
* Resets the form updating counter to 0 (for cleanup/testing)
|
|
58
|
+
*/
|
|
59
|
+
export declare const resetFormUpdating: () => void;
|
|
45
60
|
export declare const pendingAutoSaveAtom: import("jotai").PrimitiveAtom<ElementalContent | null> & {
|
|
46
61
|
init: ElementalContent | null;
|
|
47
62
|
};
|
|
@@ -58,7 +73,7 @@ export declare const flushAllPendingUpdates: (flushFunctions: Map<string, FlushF
|
|
|
58
73
|
/**
|
|
59
74
|
* Available block element types that can be used in the sidebar
|
|
60
75
|
*/
|
|
61
|
-
export type BlockElementType = "heading" | "text" | "image" | "spacer" | "divider" | "button" | "customCode" | "column" | "blockquote";
|
|
76
|
+
export type BlockElementType = "heading" | "text" | "image" | "spacer" | "divider" | "button" | "customCode" | "column" | "blockquote" | "list";
|
|
62
77
|
/**
|
|
63
78
|
* Attributes that can be set as defaults or in presets for blocks.
|
|
64
79
|
* Types match the actual TipTap node attribute types for each extension.
|
|
@@ -4,9 +4,8 @@ import type { ButtonProps } from "./Button.types";
|
|
|
4
4
|
export declare const ButtonComponent: React.FC<ButtonProps & {
|
|
5
5
|
nodeKey?: string;
|
|
6
6
|
selected?: boolean;
|
|
7
|
-
fontWeight?: string;
|
|
8
|
-
isUnderline?: boolean;
|
|
9
|
-
isStrike?: boolean;
|
|
10
7
|
children?: React.ReactNode;
|
|
8
|
+
isPreviewMode?: boolean;
|
|
9
|
+
link?: string;
|
|
11
10
|
}>;
|
|
12
11
|
export declare const ButtonComponentNode: (props: NodeViewProps) => import("react/jsx-runtime").JSX.Element;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { Node as ProseMirrorNode } from "@tiptap/pm/model";
|
|
2
|
+
import type { EditorState, Transaction } from "@tiptap/pm/state";
|
|
3
|
+
export declare function findButtonNodeById(doc: ProseMirrorNode, id: string): {
|
|
4
|
+
pos: number;
|
|
5
|
+
node: ProseMirrorNode;
|
|
6
|
+
} | null;
|
|
7
|
+
export declare function findButtonNodeAtPosition(doc: ProseMirrorNode, position: number): {
|
|
8
|
+
pos: number;
|
|
9
|
+
node: ProseMirrorNode;
|
|
10
|
+
} | null;
|
|
11
|
+
export declare function extractButtonTextContent(node: ProseMirrorNode): string;
|
|
12
|
+
export declare function syncButtonContentToLabelAttr(state: EditorState): Transaction | null;
|
|
13
|
+
export declare function updateButtonLabelAndContent(tr: Transaction, buttonPos: number, newLabel: string): boolean;
|