@trycourier/react-designer 0.0.10 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (29) hide show
  1. package/dist/cjs/index.css +1 -1
  2. package/dist/cjs/index.css.map +2 -2
  3. package/dist/cjs/index.js +46 -50
  4. package/dist/cjs/index.js.map +4 -4
  5. package/dist/cjs/styles.css +23 -23
  6. package/dist/components/Providers/store.d.ts +5 -0
  7. package/dist/components/Providers/useTemplateActions.d.ts +21 -1
  8. package/dist/components/TemplateEditor/Channels/Email/Email.d.ts +2 -0
  9. package/dist/components/TemplateEditor/Channels/MSTeams/MSTeamsEditor.d.ts +2 -1
  10. package/dist/components/TemplateEditor/Channels/Push/Push.d.ts +2 -6
  11. package/dist/components/TemplateEditor/Channels/SMS/SMS.d.ts +2 -5
  12. package/dist/components/TemplateEditor/Channels/Slack/SlackEditor.d.ts +2 -1
  13. package/dist/components/TemplateEditor/ReadOnlyEditorContent.d.ts +7 -0
  14. package/dist/components/TemplateEditor/store.d.ts +4 -2
  15. package/dist/components/extensions/Button/Button.types.d.ts +2 -2
  16. package/dist/components/extensions/ImageBlock/ImageBlock.types.d.ts +2 -2
  17. package/dist/components/extensions/TextBlock/TextBlock.types.d.ts +2 -2
  18. package/dist/components/extensions/Variable/VariableIcon.d.ts +2 -0
  19. package/dist/components/ui/PreviewPanel/PreviewPanel.d.ts +2 -1
  20. package/dist/esm/index.css +1 -1
  21. package/dist/esm/index.css.map +2 -2
  22. package/dist/esm/index.js +46 -50
  23. package/dist/esm/index.js.map +4 -4
  24. package/dist/esm/styles.css +23 -23
  25. package/dist/lib/utils/getTitle/index.d.ts +1 -1
  26. package/dist/lib/utils/getTitle/preserveStorageFormat.d.ts +9 -1
  27. package/dist/styles.css +23 -23
  28. package/dist/types/elemental.types.d.ts +2 -2
  29. package/package.json +1 -1
@@ -1534,6 +1534,11 @@ body {
1534
1534
  .courier-overflow-y-auto {
1535
1535
  overflow-y: auto;
1536
1536
  }
1537
+ .courier-truncate {
1538
+ overflow: hidden;
1539
+ text-overflow: ellipsis;
1540
+ white-space: nowrap;
1541
+ }
1537
1542
  .courier-whitespace-nowrap {
1538
1543
  white-space: nowrap;
1539
1544
  }
@@ -1635,6 +1640,10 @@ body {
1635
1640
  --tw-border-opacity: 1;
1636
1641
  border-color: rgb(59 130 246 / var(--tw-border-opacity, 1));
1637
1642
  }
1643
+ .courier-border-\[\#BFDBFE\] {
1644
+ --tw-border-opacity: 1;
1645
+ border-color: rgb(191 219 254 / var(--tw-border-opacity, 1));
1646
+ }
1638
1647
  .courier-border-accent-foreground {
1639
1648
  border-color: var(--accent-foreground);
1640
1649
  }
@@ -1658,10 +1667,6 @@ body {
1658
1667
  --tw-border-opacity: 1;
1659
1668
  border-color: rgb(209 213 219 / var(--tw-border-opacity, 1));
1660
1669
  }
1661
- .courier-border-gray-400 {
1662
- --tw-border-opacity: 1;
1663
- border-color: rgb(156 163 175 / var(--tw-border-opacity, 1));
1664
- }
1665
1670
  .courier-border-input {
1666
1671
  border-color: var(--input);
1667
1672
  }
@@ -1738,6 +1743,10 @@ body {
1738
1743
  --tw-bg-opacity: 1;
1739
1744
  background-color: rgb(229 229 229 / var(--tw-bg-opacity, 1));
1740
1745
  }
1746
+ .courier-bg-\[\#EFF6FF\] {
1747
+ --tw-bg-opacity: 1;
1748
+ background-color: rgb(239 246 255 / var(--tw-bg-opacity, 1));
1749
+ }
1741
1750
  .courier-bg-\[\#F5F5F5\] {
1742
1751
  --tw-bg-opacity: 1;
1743
1752
  background-color: rgb(245 245 245 / var(--tw-bg-opacity, 1));
@@ -1995,6 +2004,9 @@ body {
1995
2004
  .courier-pb-6 {
1996
2005
  padding-bottom: 1.5rem;
1997
2006
  }
2007
+ .courier-pl-1 {
2008
+ padding-left: 0.25rem;
2009
+ }
1998
2010
  .courier-pl-2 {
1999
2011
  padding-left: 0.5rem;
2000
2012
  }
@@ -2013,9 +2025,6 @@ body {
2013
2025
  .courier-pr-2 {
2014
2026
  padding-right: 0.5rem;
2015
2027
  }
2016
- .courier-pr-3 {
2017
- padding-right: 0.75rem;
2018
- }
2019
2028
  .courier-pr-4 {
2020
2029
  padding-right: 1rem;
2021
2030
  }
@@ -2046,6 +2055,9 @@ body {
2046
2055
  .courier-text-center {
2047
2056
  text-align: center;
2048
2057
  }
2058
+ .courier-font-mono {
2059
+ font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
2060
+ }
2049
2061
  .courier-font-sans {
2050
2062
  font-family: ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
2051
2063
  }
@@ -2110,6 +2122,9 @@ body {
2110
2122
  .courier-leading-relaxed {
2111
2123
  line-height: 1.625;
2112
2124
  }
2125
+ .courier-tracking-\[0\.64px\] {
2126
+ letter-spacing: 0.64px;
2127
+ }
2113
2128
  .courier-tracking-widest {
2114
2129
  letter-spacing: 0.1em;
2115
2130
  }
@@ -2884,7 +2899,7 @@ body {
2884
2899
  color: rgb(163 163 163 / var(--tw-text-opacity, 1));
2885
2900
  }
2886
2901
  .ProseMirror>.react-renderer.node-paragraph .is-empty .courier-custom-code::after, .ProseMirror>.react-renderer.node-blockquote .is-empty .courier-custom-code::after, .ProseMirror>.react-renderer.node-customCode .is-empty .courier-custom-code::after {
2887
- content: 'Add custom HTML code...';
2902
+ content: 'Use the right panel to add custom HTML code...';
2888
2903
  }
2889
2904
  .ProseMirror>.react-renderer.node-paragraph .is-empty .courier-custom-code::after, .ProseMirror>.react-renderer.node-blockquote .is-empty .courier-custom-code::after, .ProseMirror>.react-renderer.node-customCode .is-empty .courier-custom-code::after {
2890
2905
  position: absolute;
@@ -3584,17 +3599,9 @@ body {
3584
3599
  .read-only\:courier-border-transparent:read-only {
3585
3600
  border-color: transparent;
3586
3601
  }
3587
- .hover\:courier-border-\[\#3B82F6\]:hover {
3588
- --tw-border-opacity: 1;
3589
- border-color: rgb(59 130 246 / var(--tw-border-opacity, 1));
3590
- }
3591
3602
  .hover\:courier-border-accent-foreground:hover {
3592
3603
  border-color: var(--accent-foreground);
3593
3604
  }
3594
- .hover\:courier-bg-\[\#3B82F6\]:hover {
3595
- --tw-bg-opacity: 1;
3596
- background-color: rgb(59 130 246 / var(--tw-bg-opacity, 1));
3597
- }
3598
3605
  .hover\:courier-bg-accent:hover {
3599
3606
  background-color: var(--accent);
3600
3607
  }
@@ -3633,10 +3640,6 @@ body {
3633
3640
  .hover\:courier-bg-opacity-20:hover {
3634
3641
  --tw-bg-opacity: 0.2;
3635
3642
  }
3636
- .hover\:courier-text-\[\#ffffff\]:hover {
3637
- --tw-text-opacity: 1;
3638
- color: rgb(255 255 255 / var(--tw-text-opacity, 1));
3639
- }
3640
3643
  .hover\:courier-text-accent-foreground:hover {
3641
3644
  color: var(--accent-foreground);
3642
3645
  }
@@ -3718,9 +3721,6 @@ body {
3718
3721
  .disabled\:courier-opacity-50:disabled {
3719
3722
  opacity: 0.5;
3720
3723
  }
3721
- .courier-group:hover .group-hover\:courier-stroke-primary {
3722
- stroke: var(--primary);
3723
- }
3724
3724
  .courier-group.toaster .group-\[\.toaster\]\:courier-border-border {
3725
3725
  border-color: var(--border);
3726
3726
  }
@@ -1,5 +1,6 @@
1
1
  import type { ElementalContent } from "@/types/elemental.types";
2
2
  import type { TemplateError } from "@/lib/utils/errors";
3
+ import type { ContentTransformer } from "../TemplateEditor/store";
3
4
  export type MessageRoutingMethod = "all" | "single";
4
5
  export type MessageRoutingChannel = string | MessageRouting;
5
6
  export interface MessageRouting {
@@ -122,4 +123,8 @@ export interface TemplateActions {
122
123
  setTemplateEditorContent: (content: ElementalContent | null) => void;
123
124
  createCustomError: (message: string, details?: Record<string, unknown>) => TemplateError;
124
125
  convertLegacyError: (error: string | TemplateError) => TemplateError;
126
+ /** @internal Experimental API - subject to change */
127
+ contentTransformer: ContentTransformer | null;
128
+ /** @internal Experimental API - subject to change */
129
+ setContentTransformer: (transformer: ContentTransformer | null) => void;
125
130
  }
@@ -1,4 +1,6 @@
1
+ import { type ContentTransformer } from "../TemplateEditor/store";
1
2
  import { type TemplateError } from "@/lib/utils/errors";
3
+ export type { ContentTransformer };
2
4
  export declare function useTemplateActions(): {
3
5
  getTemplate: (options?: {
4
6
  includeBrand?: boolean;
@@ -16,7 +18,25 @@ export declare function useTemplateActions(): {
16
18
  templateData: import("./store").TenantData | null;
17
19
  setTemplateData: (args_0: import("./store").TenantData | ((prev: import("./store").TenantData | null) => import("./store").TenantData | null) | null) => void;
18
20
  templateEditorContent: import("../TemplateEditor").ElementalContent | null | undefined;
19
- setTemplateEditorContent: (args_0: import("../TemplateEditor").ElementalContent | ((prev: import("../TemplateEditor").ElementalContent | null | undefined) => import("../TemplateEditor").ElementalContent | null | undefined) | null | undefined) => void;
21
+ setTemplateEditorContent: (content: import("../TemplateEditor").ElementalContent | null | undefined) => void;
20
22
  createCustomError: (message: string, toastProps?: import("sonner").ExternalToast) => TemplateError;
21
23
  convertLegacyError: (error: string | TemplateError) => TemplateError;
24
+ /**
25
+ * @internal Experimental API - subject to change
26
+ * Synchronous function to transform content before it's stored in the atom.
27
+ * Useful for adding metadata (e.g., locales) that shouldn't affect editor display.
28
+ *
29
+ * @example
30
+ * ```ts
31
+ * setContentTransformer((content) => ({
32
+ * ...content,
33
+ * elements: content.elements?.map(el => ({
34
+ * ...el,
35
+ * locales: { 'fr': { content: translateToFrench(el.content) } }
36
+ * }))
37
+ * }));
38
+ * ```
39
+ */
40
+ contentTransformer: ContentTransformer | null;
41
+ setContentTransformer: (args_0: ContentTransformer | ((prev: ContentTransformer | null) => ContentTransformer | null) | null) => void;
22
42
  };
@@ -28,6 +28,7 @@ export interface EmailProps extends Pick<TemplateEditorProps, "hidePublish" | "b
28
28
  channels?: ChannelType[];
29
29
  routing?: MessageRouting;
30
30
  }) => React.ReactNode;
31
+ hidePreviewPanelExitButton?: boolean;
31
32
  render?: ({ subject, handleSubjectChange, selectedNode, setSelectedNode, previewMode, templateEditor, ref, isBrandApply, brandSettings, items, content, strategy, syncEditorItems, brandEditorContent, templateData, togglePreviewMode, }: {
32
33
  subject: string | null;
33
34
  handleSubjectChange: (e: React.ChangeEvent<HTMLInputElement>) => void;
@@ -45,6 +46,7 @@ export interface EmailProps extends Pick<TemplateEditorProps, "hidePublish" | "b
45
46
  brandEditorContent: string | null;
46
47
  templateData: TenantData | null;
47
48
  togglePreviewMode: (mode: "desktop" | "mobile" | undefined) => void;
49
+ hidePreviewPanelExitButton?: boolean;
48
50
  }) => React.ReactNode;
49
51
  }
50
52
  interface Items {
@@ -1,4 +1,5 @@
1
1
  import type { MSTeamsRenderProps } from "./MSTeams";
2
2
  export interface MSTeamsEditorProps extends MSTeamsRenderProps {
3
+ readOnly?: boolean;
3
4
  }
4
- export declare const MSTeamsEditor: ({ content, extensions, editable, autofocus, onUpdate, items, }: MSTeamsEditorProps) => import("react/jsx-runtime").JSX.Element | null;
5
+ export declare const MSTeamsEditor: ({ content, extensions, editable, autofocus, onUpdate, items, readOnly, }: MSTeamsEditorProps) => import("react/jsx-runtime").JSX.Element | null;
@@ -2,6 +2,7 @@ import type { MessageRouting } from "@/components/Providers/store";
2
2
  import type { TextMenuConfig } from "@/components/ui/TextMenu/config";
3
3
  import type { TiptapDoc } from "@/lib/utils";
4
4
  import type { ChannelType } from "@/store";
5
+ import type { ElementalNode } from "@/types/elemental.types";
5
6
  import type { AnyExtension, Editor } from "@tiptap/react";
6
7
  import type { HTMLAttributes } from "react";
7
8
  import type { TemplateEditorProps } from "../../TemplateEditor";
@@ -26,11 +27,6 @@ export interface PushProps extends Pick<TemplateEditorProps, "hidePublish" | "th
26
27
  }) => React.ReactNode;
27
28
  render?: (props: PushRenderProps) => React.ReactNode;
28
29
  }
29
- export declare const defaultPushContent: {
30
- raw: {
31
- title: string;
32
- text: string;
33
- };
34
- };
30
+ export declare const defaultPushContent: ElementalNode[];
35
31
  export declare const PushConfig: TextMenuConfig;
36
32
  export declare const Push: import("react").MemoExoticComponent<import("react").ForwardRefExoticComponent<PushProps & import("react").RefAttributes<HTMLDivElement>>>;
@@ -1,15 +1,12 @@
1
1
  import type { TextMenuConfig } from "@/components/ui/TextMenu/config";
2
2
  import type { TiptapDoc } from "@/lib/utils";
3
+ import type { ElementalNode } from "@/types/elemental.types";
3
4
  import type { AnyExtension, Editor } from "@tiptap/react";
4
5
  import type { HTMLAttributes } from "react";
5
6
  import type { MessageRouting } from "../../../Providers/store";
6
7
  import type { ChannelType } from "@/store";
7
8
  import type { TemplateEditorProps } from "../../TemplateEditor";
8
- export declare const defaultSMSContent: {
9
- raw: {
10
- text: string;
11
- };
12
- };
9
+ export declare const defaultSMSContent: ElementalNode[];
13
10
  export declare const SMSEditorContent: ({ value }: {
14
11
  value?: TiptapDoc | null;
15
12
  }) => import("react/jsx-runtime").JSX.Element;
@@ -1,4 +1,5 @@
1
1
  import type { SlackRenderProps } from "./Slack";
2
2
  export interface SlackEditorProps extends SlackRenderProps {
3
+ readOnly?: boolean;
3
4
  }
4
- export declare const SlackEditor: ({ content, extensions, editable, autofocus, onUpdate, items, }: SlackEditorProps) => import("react/jsx-runtime").JSX.Element | null;
5
+ export declare const SlackEditor: ({ content, extensions, editable, autofocus, onUpdate, items, readOnly, }: SlackEditorProps) => import("react/jsx-runtime").JSX.Element | null;
@@ -0,0 +1,7 @@
1
+ import type { TiptapDoc } from "@/lib/utils";
2
+ import type { ElementalNode } from "@/types/elemental.types";
3
+ export interface ReadOnlyEditorContentProps {
4
+ value?: TiptapDoc;
5
+ defaultValue: ElementalNode[];
6
+ }
7
+ export declare const ReadOnlyEditorContent: ({ value, defaultValue }: ReadOnlyEditorContentProps) => null;
@@ -3,9 +3,11 @@ import type { Editor } from "@tiptap/react";
3
3
  export declare const subjectAtom: import("jotai").PrimitiveAtom<string | null> & {
4
4
  init: string | null;
5
5
  };
6
- export declare const templateEditorContentAtom: import("jotai").PrimitiveAtom<ElementalContent | null | undefined> & {
7
- init: ElementalContent | null | undefined;
6
+ export type ContentTransformer = (content: ElementalContent) => ElementalContent;
7
+ export declare const contentTransformerAtom: import("jotai").PrimitiveAtom<ContentTransformer | null> & {
8
+ init: ContentTransformer | null;
8
9
  };
10
+ export declare const templateEditorContentAtom: import("jotai").WritableAtom<ElementalContent | null | undefined, [content: ElementalContent | null | undefined], void>;
9
11
  export declare const templateEditorPublishedAtAtom: import("jotai").PrimitiveAtom<string | null | undefined> & {
10
12
  init: string | null | undefined;
11
13
  };
@@ -16,12 +16,12 @@ export declare const buttonSchema: z.ZodObject<{
16
16
  isStrike: z.ZodBoolean;
17
17
  }, "strip", z.ZodTypeAny, {
18
18
  padding: number;
19
- borderWidth: number;
20
19
  label: string;
21
20
  backgroundColor: string;
22
21
  textColor: string;
23
22
  borderColor: string;
24
23
  size: "full" | "default";
24
+ borderWidth: number;
25
25
  borderRadius: number;
26
26
  alignment: "left" | "center" | "right";
27
27
  fontStyle: "italic" | "normal";
@@ -31,12 +31,12 @@ export declare const buttonSchema: z.ZodObject<{
31
31
  link?: string | undefined;
32
32
  }, {
33
33
  padding: number;
34
- borderWidth: number;
35
34
  label: string;
36
35
  backgroundColor: string;
37
36
  textColor: string;
38
37
  borderColor: string;
39
38
  size: "full" | "default";
39
+ borderWidth: number;
40
40
  borderRadius: number;
41
41
  alignment: "left" | "center" | "right";
42
42
  fontStyle: "italic" | "normal";
@@ -12,8 +12,8 @@ export declare const imageBlockSchema: z.ZodObject<{
12
12
  imageNaturalWidth: z.ZodNumber;
13
13
  }, "strip", z.ZodTypeAny, {
14
14
  width: number;
15
- borderWidth: number;
16
15
  borderColor: string;
16
+ borderWidth: number;
17
17
  borderRadius: number;
18
18
  alignment: "left" | "center" | "right";
19
19
  sourcePath: string;
@@ -23,8 +23,8 @@ export declare const imageBlockSchema: z.ZodObject<{
23
23
  isUploading?: boolean | undefined;
24
24
  }, {
25
25
  width: number;
26
- borderWidth: number;
27
26
  borderColor: string;
27
+ borderWidth: number;
28
28
  borderRadius: number;
29
29
  alignment: "left" | "center" | "right";
30
30
  sourcePath: string;
@@ -11,23 +11,23 @@ export declare const textBlockSchema: z.ZodObject<{
11
11
  selected: z.ZodDefault<z.ZodBoolean>;
12
12
  id: z.ZodOptional<z.ZodString>;
13
13
  }, "strip", z.ZodTypeAny, {
14
- borderWidth: number;
15
14
  backgroundColor: string;
16
15
  textColor: string;
17
16
  paddingVertical: number;
18
17
  paddingHorizontal: number;
19
18
  borderColor: string;
19
+ borderWidth: number;
20
20
  borderRadius: number;
21
21
  textAlign: "left" | "center" | "right" | "justify";
22
22
  selected: boolean;
23
23
  id?: string | undefined;
24
24
  }, {
25
- borderWidth: number;
26
25
  backgroundColor: string;
27
26
  textColor: string;
28
27
  paddingVertical: number;
29
28
  paddingHorizontal: number;
30
29
  borderColor: string;
30
+ borderWidth: number;
31
31
  borderRadius: number;
32
32
  id?: string | undefined;
33
33
  textAlign?: "left" | "center" | "right" | "justify" | undefined;
@@ -0,0 +1,2 @@
1
+ import React from "react";
2
+ export declare const VariableIcon: React.FC;
@@ -3,6 +3,7 @@ interface PreviewPanelProps extends HTMLAttributes<HTMLDivElement> {
3
3
  previewMode: "desktop" | "mobile" | undefined;
4
4
  togglePreviewMode: (mode?: "desktop" | "mobile" | undefined) => void;
5
5
  hideMobileToggle?: boolean;
6
+ hideExitButton?: boolean;
6
7
  }
7
- export declare const PreviewPanel: ({ previewMode, togglePreviewMode, hideMobileToggle, ...props }: PreviewPanelProps) => import("react/jsx-runtime").JSX.Element;
8
+ export declare const PreviewPanel: ({ previewMode, togglePreviewMode, hideMobileToggle, hideExitButton, ...props }: PreviewPanelProps) => import("react/jsx-runtime").JSX.Element;
8
9
  export {};
@@ -1,2 +1,2 @@
1
- .ProseMirror{h1{@apply courier-text-3xl;}h2{@apply courier-text-2xl;}h3{@apply courier-text-xl;}h4{@apply courier-text-lg;}h5{@apply courier-text-base;}h6{@apply courier-text-sm;}h1,h2,h3,h4,h5,h6{@apply courier-font-bold first:courier-mt-0 last:courier-mb-0;}h1,h2,h3{@apply courier-mt-12;}h4,h5,h6{@apply courier-mt-8;}a.link{@apply courier-text-blue-700 courier-underline;}mark{@apply courier-bg-red-500 courier-rounded-sm courier-decoration-clone courier-text-inherit courier-py-1 courier-px-0 dark:courier-bg-red-400;}& img{@apply courier-h-auto courier-w-full courier-max-w-full;}[data-type=divider]{@apply courier-py-4 courier-transition-all courier-duration-100 courier-ease-in-out courier-cursor-pointer;&.ProseMirror-selectednode{@apply courier-bg-black/5 dark:courier-bg-white/10;hr{@apply courier-border-t-black/30 dark:courier-border-t-white/30;}}hr{@apply courier-border-0 courier-border-t courier-border-black/20 courier-bg-black/80 courier-m-0 courier-h-px;@apply dark:courier-border-white/20 dark:courier-bg-white/80;}}[data-type=emoji]{display:inline-block;img{width:1em;height:1em;object-fit:cover;display:block}}}.theme-container{--color-scheme: light;--background: #ffffff;--foreground: #404040;--muted: #D9D9D9;--muted-foreground: #A3A3A3;--popover: #ffffff;--popover-foreground: #292929;--border: #DCDEE4;--input: #DCDEE4;--card: #FAF9F8;--card-foreground: #292929;--primary: #ffffff;--primary-foreground: #696F8C;--secondary: #F5F5F5;--secondary-foreground: #171717;--accent: #E5F3FF;--accent-foreground: #1D4ED8;--destructive: #292929;--destructive-foreground: #FF3363;--ring: #80849D;--radius: 6px}.ProseMirror{>*:first-child,[data-type=column]>*{@apply first:courier-mt-0 last:courier-mb-0;}>*+*{margin-top:.75em}.node-imageUpload{@apply courier-rounded courier-border-2 courier-border-dotted courier-border-black courier-border-opacity-10 courier-p-2 dark:courier-border-neutral-500;transition:border .16s cubic-bezier(.45,.05,.55,.95);&:hover{@apply courier-border-opacity-30;}&:has(.is-active),&.has-focus{@apply courier-border-opacity-40;}}[data-type=columns]{&.has-focus [data-type=column],&:hover [data-type=column]{@apply courier-border-neutral-300 dark:courier-border-neutral-700;}[data-type=column].has-focus{@apply courier-border-neutral-400 dark:courier-border-neutral-600;}}[data-type=column]{@apply courier-rounded courier-border-2 courier-border-dotted courier-border-transparent courier-p-1;transition:border .16s cubic-bezier(.45,.05,.55,.95);&:hover{@apply courier-border-neutral-100 dark:courier-border-neutral-900;}&:has(.is-active),&.has-focus{@apply courier-border-neutral-100 dark:courier-border-neutral-900;}}.node-imageBlock{& img{@apply courier-border-2 courier-border-transparent courier-rounded-xl courier-overflow-hidden;}&:hover img{@apply courier-border-2 courier-border-neutral-100 dark:courier-border-neutral-900;}&:has(.is-active) img,&.has-focus img{@apply courier-border-2 courier-border-neutral-800 dark:courier-border-neutral-200;}}.node-aiWriter,.node-aiImage,.node-tableOfContentsNode{&.has-focus [data-node-view-wrapper]>*{@apply courier-shadow-[0_0_0_2px] courier-shadow-black/30 dark:courier-shadow-white/30 courier-transition-all courier-rounded-lg;}}.ProseMirror-gapcursor+.node-imageBlock,.ProseMirror-gapcursor+.node-imageUpload,.ProseMirror-gapcursor+.node-blockquote{@apply courier-outline-neutral-700 hover:courier-outline-neutral-600 dark:courier-outline-neutral-300 dark:hover:courier-outline-neutral-400;}}@tailwind base;@tailwind components;@tailwind utilities;@keyframes pop{0%{transform:scale(1);box-shadow:var(--box-shadow)}to{transform:scale(var(--scale));box-shadow:var(--box-shadow-picked-up)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@layer base{*{@apply courier-border-border courier-outline-ring;}body{@apply courier-font-sans courier-antialiased courier-bg-background courier-text-foreground;}}.courier-main-layout{@apply courier-relative courier-flex-grow courier-rounded-sm courier-border courier-border-border courier-bg-card courier-flex courier-flex-col courier-text-foreground courier-min-w-[812px] courier-h-[700px] courier-overflow-hidden courier-z-10;&:before{@apply courier-absolute courier-inset-0 -courier-z-10;content:"";background:radial-gradient(#0A0A0A32 1px,transparent 1px);background-size:15px 15px}}.courier-editor-container{@apply courier-relative courier-flex-1 courier-flex courier-flex-col courier-p-6 courier-overflow-y-auto courier-transition-all courier-duration-300 courier-ease-in-out;}.courier-editor-sidebar{@apply courier-rounded-br-sm courier-border-border courier-bg-white courier-border-l courier-overflow-y-auto courier-transition-all courier-duration-300 courier-ease-in-out dark:courier-bg-black;}.courier-editor-loading{@apply courier-w-full courier-h-full courier-flex courier-items-center courier-justify-center courier-grow courier-z-50 courier-absolute courier-top-0 courier-left-0 courier-right-0 courier-bottom-0 courier-bg-card;}.courier-brand-editor-readonly{@apply courier-pointer-events-none;.ProseMirror{@apply courier-cursor-default courier-p-0;.react-renderer{@apply courier-cursor-default;&.node-paragraph{p{@apply courier-text-sm;}.is-empty{p{&:after{content:""}}}}.draggable-item{@apply courier-p-0;}}}}.courier-theme-editor-main{@apply courier-bg-white courier-rounded-lg courier-border courier-border-border courier-shadow-sm courier-max-w-2xl courier-select-none courier-self-center courier-w-full;>div{@apply courier-w-full;.ProseMirror{@apply courier-p-0;.react-renderer{&.node-paragraph{.selected-element{.node-element{&:before{@apply courier-hidden;}}.courier-actions-panel{@apply courier-hidden;}}p{@apply courier-text-sm;}.is-empty{p{&:after{content:"Write footer text..."}}}&:hover{.draggable-item{>button{@apply courier-hidden;}}}.draggable-item{@apply courier-p-0;}}}}}}.courier-editor-main{@apply courier-relative courier-bg-white courier-rounded-lg courier-border courier-border-border courier-shadow-sm courier-max-w-2xl courier-select-none courier-self-center courier-w-full;>div{@apply courier-w-full;}}.courier-editor-preview-mode,.courier-editor-readonly{&.courier-editor-preview-mode-mobile{.courier-editor-main{@apply courier-max-w-sm;&:hover{>button{@apply courier-hidden;}}}}.ProseMirror{@apply courier-pointer-events-none;>.react-renderer{&.node-imageBlock,&.node-button,&.node-divider,&.node-paragraph,&.node-heading,&.node-blockquote,&.node-buttonRow,&.node-customCode{*{@apply courier-cursor-default courier-pointer-events-none;}[data-cypress=draggable-handle]{@apply courier-hidden;}.selected-element{.courier-actions-panel{@apply courier-hidden;}.node-element{&:before{@apply courier-hidden;}}}&:hover,&:active{[data-cypress=draggable-handle]{@apply courier-hidden;}.node-element{>div,>hr,&.courier-empty-image{&:before{@apply courier-hidden;}}}}}&.node-imageBlock{.courier-empty-image{@apply courier-hidden;}}&.node-paragraph,&.node-blockquote{.is-empty{p,blockquote{&:after{@apply courier-hidden;}}}}&.node-heading{.is-empty{h1,h2,h3{&:after{@apply courier-hidden;}}}}}}}.courier-sms-editor{@apply courier-flex courier-flex-col courier-py-2 courier-rounded-lg courier-bg-card courier-m-6 courier-mr-14 courier-mt-10;.ProseMirror{@apply courier-p-0;>.react-renderer{.draggable-item{@apply courier-px-4;}&.node-paragraph{.selected-element{.node-element{&:before{@apply courier-hidden;}}.courier-actions-panel{@apply courier-hidden;}}}&:hover{.draggable-item{@apply courier-px-4;}[data-cypress=draggable-handle]{@apply courier-hidden;}.node-element{>div{&:before{@apply courier-hidden;}}}}}}}.courier-push-editor{@apply courier-py-2 courier-pr-4 courier-rounded-lg courier-bg-card courier-m-6 courier-relative;&:before{content:"now";@apply courier-absolute courier-top-3 courier-right-3 courier-z-10 courier-text-xs courier-text-gray-500;}.ProseMirror{@apply courier-p-0 courier-gap-0.5 courier-flex courier-flex-col;>.react-renderer{.node-element{>div{@apply !courier-p-0;}h2,p{@apply courier-text-sm;}}.draggable-item{@apply courier-px-4;}&.node-paragraph,&.node-heading{.selected-element{.node-element{&:before{@apply courier-hidden;}}.courier-actions-panel{@apply courier-hidden;}}}&:hover{.draggable-item{@apply courier-px-4;}[data-cypress=draggable-handle]{@apply courier-hidden;}.node-element{>div{&:before{@apply courier-hidden;}}}}}}}.courier-inbox-editor{@apply courier-overflow-auto courier-flex-1 courier-border-y courier-border-border;max-height:calc(90% - 56px);.ProseMirror{@apply courier-p-4 courier-pr-10 courier-gap-0.5 courier-flex courier-flex-col;&:before{content:"now";@apply courier-absolute courier-top-4 courier-right-4 courier-z-10 courier-text-sm courier-text-gray-500;}>.react-renderer{.node-element{>div{@apply !courier-p-0;}h2,p{@apply courier-text-sm;}}&.node-button{@apply courier-mt-2;.node-element{>div{>div{@apply courier-py-1 courier-px-2 courier-text-sm;}}}}&.node-buttonRow{@apply courier-mt-2;.draggable-item{justify-content:flex-start!important}[data-cypress=draggable-handle]{@apply courier-hidden;}}.draggable-item{@apply courier-p-0;}&.node-paragraph,&.node-heading,&.node-buttonRow{.selected-element{.node-element{&:before{@apply courier-hidden;}}.courier-actions-panel{@apply courier-hidden;}}}&:hover{[data-cypress=draggable-handle]{@apply courier-hidden;}.node-element{>div{&:before{@apply courier-hidden;}}}}}}}.ProseMirror{@apply courier-caret-black dark:courier-caret-white courier-outline-0 courier-pr-10 courier-pl-4 courier-py-10 courier-z-0 lg:courier-pl-2 lg:courier-pr-10 courier-max-w-2xl courier-h-full;.selection{@apply courier-inline;}.selection,*::selection{@apply courier-bg-black/10 dark:courier-bg-white/20 courier-inline;}>.react-renderer{@apply courier-my-12 first:courier-mt-0 last:courier-mb-0;&.node-divider{@apply courier-flex courier-flex-col courier-justify-center;}&.node-variable{@apply courier-inline-block courier-m-0;}&.node-dragPlaceholder{@apply courier-m-0;}&.node-paragraph{@apply courier-m-0;&:focus,&:focus-visible{outline:none}}&.node-paragraph,&.node-blockquote,&.node-customCode{p{>div{@apply courier-block courier-relative courier-cursor-text;&[contenteditable=true]{outline:none;caret-color:currentColor}}}.is-empty{p,blockquote{position:relative;&:after{content:"Write body text...";@apply courier-absolute courier-top-0 courier-left-0 courier-text-neutral-500 dark:courier-text-neutral-400 -courier-z-10;}}.courier-custom-code{&:after{content:"Add custom HTML code...";@apply courier-absolute courier-left-0 courier-text-neutral-500 dark:courier-text-neutral-400 -courier-z-10;}}}}&.node-heading{h1,h2,h3{>div{@apply courier-block courier-relative courier-cursor-text;&[contenteditable=true]{outline:none;caret-color:currentColor}}}.is-empty{h1,h2,h3{position:relative;&:after{content:"Write heading...";@apply courier-absolute courier-top-0 courier-left-0 courier-text-neutral-500 dark:courier-text-neutral-400 -courier-z-10;}}}}&.node-imageBlock,&.node-button,&.node-divider,&.node-paragraph,&.node-heading,&.node-blockquote,&.node-customCode{@apply courier-m-0 courier-relative;[data-cypress=draggable-handle]{@apply courier-invisible;}&:hover,&:active{[data-cypress=draggable-handle]{@apply courier-visible;}.node-element{>div,>hr,&.courier-empty-image{&:before{@apply courier-left-[-12px] courier-right-[-12px] courier-top-0 courier-bottom-0 courier-rounded-md courier-border-2 courier-border-border courier-absolute courier-content-[""];}}}}.node-element{@apply courier-relative;&:focus,&:focus-visible{outline:none}}.selected-element{.node-element{@apply courier-relative courier-z-20;&:before{@apply courier-left-[-12px] courier-right-[-12px] courier-top-0 courier-bottom-0 courier-rounded-md courier-border courier-border-[#0085FF] courier-absolute courier-content-[""] -courier-z-10;}.node-element{&:before{@apply courier-hidden;}}}.courier-actions-panel{@apply courier-block;}}}&.node-blockquote{@apply courier-m-0;@apply courier-text-foreground;@apply dark:courier-text-white;&:hover,&:active{[data-cypress=draggable-handle]{@apply courier-visible;}.node-element{&:before{@apply courier-left-[-12px] courier-right-[-12px] courier-top-0 courier-bottom-0 courier-rounded-md !courier-border-2 !courier-border-border courier-absolute courier-content-[""] -courier-z-20;}>div{&:before{@apply courier-hidden;}}.node-element{&:before{@apply courier-hidden;}}}.selected-element{.node-element{.node-element{&:before{@apply courier-hidden -courier-z-20;}}}}}}}&.resize-cursor{@apply courier-cursor-col-resize;}.ProseMirror-gapcursor{@apply courier-relative courier-w-full courier-max-w-2xl courier-mx-auto;&:after{@apply courier-border-t-black/40 dark:courier-border-t-white/40 courier-w-full courier-top-[-1.5em] courier-max-w-2xl courier-mx-auto courier-left-0 courier-right-0;}}}.courier-slack-editor,.courier-msteams-editor{.ProseMirror{@apply courier-p-0;>.react-renderer{@apply courier-my-2 first:courier-mt-0 last:courier-mb-0;&.node-dragPlaceholder{@apply courier-m-0;}&.node-button,&.node-divider,&.node-paragraph,&.node-heading,&.node-blockquote,&.node-buttonRow{@apply courier-m-0 courier-relative;&.node-button{.node-element{>div{@apply !courier-justify-start;>div{@apply !courier-bg-transparent !courier-mr-auto !courier-ml-0;border:1px solid #E5E5E5!important;border-radius:6px!important;color:#171717!important;padding:6px 9.6px!important;font-weight:500!important;font-size:14px!important;font-style:normal!important;line-height:24px!important;box-shadow:0 1px 2px #0000000f!important;&:hover{@apply courier-bg-gray-50;}}}}}[data-cypress=draggable-handle]{@apply courier-invisible;}&:hover,&:active{[data-cypress=draggable-handle]{@apply courier-visible;}.node-element{>div,>hr{&:before{@apply courier-left-[-12px] courier-right-[-12px] courier-top-0 courier-bottom-0 courier-rounded-md courier-border-2 courier-border-border courier-absolute courier-content-[""];}}}}.node-element{@apply courier-relative;&:focus,&:focus-visible{outline:none}}.selected-element{.node-element{@apply courier-relative courier-z-20;&:before{@apply courier-left-[-12px] courier-right-[-12px] courier-top-0 courier-bottom-0 courier-rounded-md courier-border courier-border-[#0085FF] courier-absolute courier-content-[""] -courier-z-10;}.node-element{&:before{@apply courier-hidden;}}}.courier-actions-panel{@apply courier-block;}}}}}}[data-theme=slash-command]{@apply courier-w-full;}.tiptap{outline:none;:first-child{margin-top:0}ul,ol{padding:0 1rem;margin:1.25rem 1rem 1.25rem .4rem;li p{margin-top:.25em;margin-bottom:.25em}}h1,h2,h3,h4,h5,h6{line-height:1.1;margin-top:2.5rem;text-wrap:pretty}h1,h2{margin-top:3.5rem;margin-bottom:1.5rem}h1{font-size:1.4rem}h2{font-size:1.2rem}h3{font-size:1.1rem}h4,h5,h6{font-size:1rem}code{background-color:var(--purple-light);border-radius:.4rem;color:var(--black);font-size:.85rem;padding:.25em .3em}pre{background:var(--black);border-radius:.5rem;color:var(--white);font-family:JetBrainsMono,monospace;margin:1.5rem 0;padding:.75rem 1rem;code{background:none;color:inherit;font-size:.8rem;padding:0}}}@layer utilities{.animate-pop{animation:pop .2s cubic-bezier(.18,.67,.6,1.22)}.animate-fadeIn{animation:fadeIn .5s ease}.touch-transparent{-webkit-tap-highlight-color:transparent}.courier-editor-preview-mode{&.courier-main-content{flex-grow:1;width:100%}>div:last-child{width:0}}}
1
+ .ProseMirror{h1{@apply courier-text-3xl;}h2{@apply courier-text-2xl;}h3{@apply courier-text-xl;}h4{@apply courier-text-lg;}h5{@apply courier-text-base;}h6{@apply courier-text-sm;}h1,h2,h3,h4,h5,h6{@apply courier-font-bold first:courier-mt-0 last:courier-mb-0;}h1,h2,h3{@apply courier-mt-12;}h4,h5,h6{@apply courier-mt-8;}a.link{@apply courier-text-blue-700 courier-underline;}mark{@apply courier-bg-red-500 courier-rounded-sm courier-decoration-clone courier-text-inherit courier-py-1 courier-px-0 dark:courier-bg-red-400;}& img{@apply courier-h-auto courier-w-full courier-max-w-full;}[data-type=divider]{@apply courier-py-4 courier-transition-all courier-duration-100 courier-ease-in-out courier-cursor-pointer;&.ProseMirror-selectednode{@apply courier-bg-black/5 dark:courier-bg-white/10;hr{@apply courier-border-t-black/30 dark:courier-border-t-white/30;}}hr{@apply courier-border-0 courier-border-t courier-border-black/20 courier-bg-black/80 courier-m-0 courier-h-px;@apply dark:courier-border-white/20 dark:courier-bg-white/80;}}[data-type=emoji]{display:inline-block;img{width:1em;height:1em;object-fit:cover;display:block}}}.theme-container{--color-scheme: light;--background: #ffffff;--foreground: #404040;--muted: #D9D9D9;--muted-foreground: #A3A3A3;--popover: #ffffff;--popover-foreground: #292929;--border: #DCDEE4;--input: #DCDEE4;--card: #FAF9F8;--card-foreground: #292929;--primary: #ffffff;--primary-foreground: #696F8C;--secondary: #F5F5F5;--secondary-foreground: #171717;--accent: #E5F3FF;--accent-foreground: #1D4ED8;--destructive: #292929;--destructive-foreground: #FF3363;--ring: #80849D;--radius: 6px}.ProseMirror{>*:first-child,[data-type=column]>*{@apply first:courier-mt-0 last:courier-mb-0;}>*+*{margin-top:.75em}.node-imageUpload{@apply courier-rounded courier-border-2 courier-border-dotted courier-border-black courier-border-opacity-10 courier-p-2 dark:courier-border-neutral-500;transition:border .16s cubic-bezier(.45,.05,.55,.95);&:hover{@apply courier-border-opacity-30;}&:has(.is-active),&.has-focus{@apply courier-border-opacity-40;}}[data-type=columns]{&.has-focus [data-type=column],&:hover [data-type=column]{@apply courier-border-neutral-300 dark:courier-border-neutral-700;}[data-type=column].has-focus{@apply courier-border-neutral-400 dark:courier-border-neutral-600;}}[data-type=column]{@apply courier-rounded courier-border-2 courier-border-dotted courier-border-transparent courier-p-1;transition:border .16s cubic-bezier(.45,.05,.55,.95);&:hover{@apply courier-border-neutral-100 dark:courier-border-neutral-900;}&:has(.is-active),&.has-focus{@apply courier-border-neutral-100 dark:courier-border-neutral-900;}}.node-imageBlock{& img{@apply courier-border-2 courier-border-transparent courier-rounded-xl courier-overflow-hidden;}&:hover img{@apply courier-border-2 courier-border-neutral-100 dark:courier-border-neutral-900;}&:has(.is-active) img,&.has-focus img{@apply courier-border-2 courier-border-neutral-800 dark:courier-border-neutral-200;}}.node-aiWriter,.node-aiImage,.node-tableOfContentsNode{&.has-focus [data-node-view-wrapper]>*{@apply courier-shadow-[0_0_0_2px] courier-shadow-black/30 dark:courier-shadow-white/30 courier-transition-all courier-rounded-lg;}}.ProseMirror-gapcursor+.node-imageBlock,.ProseMirror-gapcursor+.node-imageUpload,.ProseMirror-gapcursor+.node-blockquote{@apply courier-outline-neutral-700 hover:courier-outline-neutral-600 dark:courier-outline-neutral-300 dark:hover:courier-outline-neutral-400;}}@tailwind base;@tailwind components;@tailwind utilities;@keyframes pop{0%{transform:scale(1);box-shadow:var(--box-shadow)}to{transform:scale(var(--scale));box-shadow:var(--box-shadow-picked-up)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@layer base{*{@apply courier-border-border courier-outline-ring;}body{@apply courier-font-sans courier-antialiased courier-bg-background courier-text-foreground;}}.courier-main-layout{@apply courier-relative courier-flex-grow courier-rounded-sm courier-border courier-border-border courier-bg-card courier-flex courier-flex-col courier-text-foreground courier-min-w-[812px] courier-h-[700px] courier-overflow-hidden courier-z-10;&:before{@apply courier-absolute courier-inset-0 -courier-z-10;content:"";background:radial-gradient(#0A0A0A32 1px,transparent 1px);background-size:15px 15px}}.courier-editor-container{@apply courier-relative courier-flex-1 courier-flex courier-flex-col courier-p-6 courier-overflow-y-auto courier-transition-all courier-duration-300 courier-ease-in-out;}.courier-editor-sidebar{@apply courier-rounded-br-sm courier-border-border courier-bg-white courier-border-l courier-overflow-y-auto courier-transition-all courier-duration-300 courier-ease-in-out dark:courier-bg-black;}.courier-editor-loading{@apply courier-w-full courier-h-full courier-flex courier-items-center courier-justify-center courier-grow courier-z-50 courier-absolute courier-top-0 courier-left-0 courier-right-0 courier-bottom-0 courier-bg-card;}.courier-brand-editor-readonly{@apply courier-pointer-events-none;.ProseMirror{@apply courier-cursor-default courier-p-0;.react-renderer{@apply courier-cursor-default;&.node-paragraph{p{@apply courier-text-sm;}.is-empty{p{&:after{content:""}}}}.draggable-item{@apply courier-p-0;}}}}.courier-theme-editor-main{@apply courier-bg-white courier-rounded-lg courier-border courier-border-border courier-shadow-sm courier-max-w-2xl courier-select-none courier-self-center courier-w-full;>div{@apply courier-w-full;.ProseMirror{@apply courier-p-0;.react-renderer{&.node-paragraph{.selected-element{.node-element{&:before{@apply courier-hidden;}}.courier-actions-panel{@apply courier-hidden;}}p{@apply courier-text-sm;}.is-empty{p{&:after{content:"Write footer text..."}}}&:hover{.draggable-item{>button{@apply courier-hidden;}}}.draggable-item{@apply courier-p-0;}}}}}}.courier-editor-main{@apply courier-relative courier-bg-white courier-rounded-lg courier-border courier-border-border courier-shadow-sm courier-max-w-2xl courier-select-none courier-self-center courier-w-full;>div{@apply courier-w-full;}}.courier-editor-preview-mode,.courier-editor-readonly{&.courier-editor-preview-mode-mobile{.courier-editor-main{@apply courier-max-w-sm;&:hover{>button{@apply courier-hidden;}}}}.ProseMirror{@apply courier-pointer-events-none;>.react-renderer{&.node-imageBlock,&.node-button,&.node-divider,&.node-paragraph,&.node-heading,&.node-blockquote,&.node-buttonRow,&.node-customCode{*{@apply courier-cursor-default courier-pointer-events-none;}[data-cypress=draggable-handle]{@apply courier-hidden;}.selected-element{.courier-actions-panel{@apply courier-hidden;}.node-element{&:before{@apply courier-hidden;}}}&:hover,&:active{[data-cypress=draggable-handle]{@apply courier-hidden;}.node-element{>div,>hr,&.courier-empty-image{&:before{@apply courier-hidden;}}}}}&.node-imageBlock{.courier-empty-image{@apply courier-hidden;}}&.node-paragraph,&.node-blockquote{.is-empty{p,blockquote{&:after{@apply courier-hidden;}}}}&.node-heading{.is-empty{h1,h2,h3{&:after{@apply courier-hidden;}}}}}}}.courier-sms-editor{@apply courier-flex courier-flex-col courier-py-2 courier-rounded-lg courier-bg-card courier-m-6 courier-mr-14 courier-mt-10;.ProseMirror{@apply courier-p-0;>.react-renderer{.draggable-item{@apply courier-px-4;}&.node-paragraph{.selected-element{.node-element{&:before{@apply courier-hidden;}}.courier-actions-panel{@apply courier-hidden;}}}&:hover{.draggable-item{@apply courier-px-4;}[data-cypress=draggable-handle]{@apply courier-hidden;}.node-element{>div{&:before{@apply courier-hidden;}}}}}}}.courier-push-editor{@apply courier-py-2 courier-pr-4 courier-rounded-lg courier-bg-card courier-m-6 courier-relative;&:before{content:"now";@apply courier-absolute courier-top-3 courier-right-3 courier-z-10 courier-text-xs courier-text-gray-500;}.ProseMirror{@apply courier-p-0 courier-gap-0.5 courier-flex courier-flex-col;>.react-renderer{.node-element{>div{@apply !courier-p-0;}h2,p{@apply courier-text-sm;}}.draggable-item{@apply courier-px-4;}&.node-paragraph,&.node-heading{.selected-element{.node-element{&:before{@apply courier-hidden;}}.courier-actions-panel{@apply courier-hidden;}}}&:hover{.draggable-item{@apply courier-px-4;}[data-cypress=draggable-handle]{@apply courier-hidden;}.node-element{>div{&:before{@apply courier-hidden;}}}}}}}.courier-inbox-editor{@apply courier-overflow-auto courier-flex-1 courier-border-y courier-border-border;max-height:calc(90% - 56px);.ProseMirror{@apply courier-p-4 courier-pr-10 courier-gap-0.5 courier-flex courier-flex-col;&:before{content:"now";@apply courier-absolute courier-top-4 courier-right-4 courier-z-10 courier-text-sm courier-text-gray-500;}>.react-renderer{.node-element{>div{@apply !courier-p-0;}h2,p{@apply courier-text-sm;}}&.node-button{@apply courier-mt-2;.node-element{>div{>div{@apply courier-py-1 courier-px-2 courier-text-sm;}}}}&.node-buttonRow{@apply courier-mt-2;.draggable-item{justify-content:flex-start!important}[data-cypress=draggable-handle]{@apply courier-hidden;}}.draggable-item{@apply courier-p-0;}&.node-paragraph,&.node-heading,&.node-buttonRow{.selected-element{.node-element{&:before{@apply courier-hidden;}}.courier-actions-panel{@apply courier-hidden;}}}&:hover{[data-cypress=draggable-handle]{@apply courier-hidden;}.node-element{>div{&:before{@apply courier-hidden;}}}}}}}.ProseMirror{@apply courier-caret-black dark:courier-caret-white courier-outline-0 courier-pr-10 courier-pl-4 courier-py-10 courier-z-0 lg:courier-pl-2 lg:courier-pr-10 courier-max-w-2xl courier-h-full;.selection{@apply courier-inline;}.selection,*::selection{@apply courier-bg-black/10 dark:courier-bg-white/20 courier-inline;}>.react-renderer{@apply courier-my-12 first:courier-mt-0 last:courier-mb-0;&.node-divider{@apply courier-flex courier-flex-col courier-justify-center;}&.node-variable{@apply courier-inline-block courier-m-0;}&.node-dragPlaceholder{@apply courier-m-0;}&.node-paragraph{@apply courier-m-0;&:focus,&:focus-visible{outline:none}}&.node-paragraph,&.node-blockquote,&.node-customCode{p{>div{@apply courier-block courier-relative courier-cursor-text;&[contenteditable=true]{outline:none;caret-color:currentColor}}}.is-empty{p,blockquote{position:relative;&:after{content:"Write body text...";@apply courier-absolute courier-top-0 courier-left-0 courier-text-neutral-500 dark:courier-text-neutral-400 -courier-z-10;}}.courier-custom-code{&:after{content:"Use the right panel to add custom HTML code...";@apply courier-absolute courier-left-0 courier-text-neutral-500 dark:courier-text-neutral-400 -courier-z-10;}}}}&.node-heading{h1,h2,h3{>div{@apply courier-block courier-relative courier-cursor-text;&[contenteditable=true]{outline:none;caret-color:currentColor}}}.is-empty{h1,h2,h3{position:relative;&:after{content:"Write heading...";@apply courier-absolute courier-top-0 courier-left-0 courier-text-neutral-500 dark:courier-text-neutral-400 -courier-z-10;}}}}&.node-imageBlock,&.node-button,&.node-divider,&.node-paragraph,&.node-heading,&.node-blockquote,&.node-customCode{@apply courier-m-0 courier-relative;[data-cypress=draggable-handle]{@apply courier-invisible;}&:hover,&:active{[data-cypress=draggable-handle]{@apply courier-visible;}.node-element{>div,>hr,&.courier-empty-image{&:before{@apply courier-left-[-12px] courier-right-[-12px] courier-top-0 courier-bottom-0 courier-rounded-md courier-border-2 courier-border-border courier-absolute courier-content-[""];}}}}.node-element{@apply courier-relative;&:focus,&:focus-visible{outline:none}}.selected-element{.node-element{@apply courier-relative courier-z-20;&:before{@apply courier-left-[-12px] courier-right-[-12px] courier-top-0 courier-bottom-0 courier-rounded-md courier-border courier-border-[#0085FF] courier-absolute courier-content-[""] -courier-z-10;}.node-element{&:before{@apply courier-hidden;}}}.courier-actions-panel{@apply courier-block;}}}&.node-blockquote{@apply courier-m-0;@apply courier-text-foreground;@apply dark:courier-text-white;&:hover,&:active{[data-cypress=draggable-handle]{@apply courier-visible;}.node-element{&:before{@apply courier-left-[-12px] courier-right-[-12px] courier-top-0 courier-bottom-0 courier-rounded-md !courier-border-2 !courier-border-border courier-absolute courier-content-[""] -courier-z-20;}>div{&:before{@apply courier-hidden;}}.node-element{&:before{@apply courier-hidden;}}}.selected-element{.node-element{.node-element{&:before{@apply courier-hidden -courier-z-20;}}}}}}}&.resize-cursor{@apply courier-cursor-col-resize;}.ProseMirror-gapcursor{@apply courier-relative courier-w-full courier-max-w-2xl courier-mx-auto;&:after{@apply courier-border-t-black/40 dark:courier-border-t-white/40 courier-w-full courier-top-[-1.5em] courier-max-w-2xl courier-mx-auto courier-left-0 courier-right-0;}}}.courier-slack-editor,.courier-msteams-editor{.ProseMirror{@apply courier-p-0;>.react-renderer{@apply courier-my-2 first:courier-mt-0 last:courier-mb-0;&.node-dragPlaceholder{@apply courier-m-0;}&.node-button,&.node-divider,&.node-paragraph,&.node-heading,&.node-blockquote,&.node-buttonRow{@apply courier-m-0 courier-relative;&.node-button{.node-element{>div{@apply !courier-justify-start;>div{@apply !courier-bg-transparent !courier-mr-auto !courier-ml-0;border:1px solid #E5E5E5!important;border-radius:6px!important;color:#171717!important;padding:6px 9.6px!important;font-weight:500!important;font-size:14px!important;font-style:normal!important;line-height:24px!important;box-shadow:0 1px 2px #0000000f!important;&:hover{@apply courier-bg-gray-50;}}}}}[data-cypress=draggable-handle]{@apply courier-invisible;}&:hover,&:active{[data-cypress=draggable-handle]{@apply courier-visible;}.node-element{>div,>hr{&:before{@apply courier-left-[-12px] courier-right-[-12px] courier-top-0 courier-bottom-0 courier-rounded-md courier-border-2 courier-border-border courier-absolute courier-content-[""];}}}}.node-element{@apply courier-relative;&:focus,&:focus-visible{outline:none}}.selected-element{.node-element{@apply courier-relative courier-z-20;&:before{@apply courier-left-[-12px] courier-right-[-12px] courier-top-0 courier-bottom-0 courier-rounded-md courier-border courier-border-[#0085FF] courier-absolute courier-content-[""] -courier-z-10;}.node-element{&:before{@apply courier-hidden;}}}.courier-actions-panel{@apply courier-block;}}}}}}[data-theme=slash-command]{@apply courier-w-full;}.tiptap{outline:none;:first-child{margin-top:0}ul,ol{padding:0 1rem;margin:1.25rem 1rem 1.25rem .4rem;li p{margin-top:.25em;margin-bottom:.25em}}h1,h2,h3,h4,h5,h6{line-height:1.1;margin-top:2.5rem;text-wrap:pretty}h1,h2{margin-top:3.5rem;margin-bottom:1.5rem}h1{font-size:1.4rem}h2{font-size:1.2rem}h3{font-size:1.1rem}h4,h5,h6{font-size:1rem}code{background-color:var(--purple-light);border-radius:.4rem;color:var(--black);font-size:.85rem;padding:.25em .3em}pre{background:var(--black);border-radius:.5rem;color:var(--white);font-family:JetBrainsMono,monospace;margin:1.5rem 0;padding:.75rem 1rem;code{background:none;color:inherit;font-size:.8rem;padding:0}}}@layer utilities{.animate-pop{animation:pop .2s cubic-bezier(.18,.67,.6,1.22)}.animate-fadeIn{animation:fadeIn .5s ease}.touch-transparent{-webkit-tap-highlight-color:transparent}.courier-editor-preview-mode{&.courier-main-content{flex-grow:1;width:100%}>div:last-child{width:0}}}
2
2
  /*# sourceMappingURL=index.css.map */