@trycourier/react-designer 0.6.0 → 0.7.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 (31) hide show
  1. package/README.md +5 -3
  2. package/dist/cjs/index.js +58 -57
  3. package/dist/cjs/index.js.map +4 -4
  4. package/dist/cjs/styles.css +496 -235
  5. package/dist/components/BrandEditor/Editor/BrandFooter/BrandFooter.d.ts +3 -1
  6. package/dist/components/TemplateEditor/Channels/Inbox/Inbox.d.ts +3 -0
  7. package/dist/components/TemplateEditor/Layout/Layout.d.ts +1 -0
  8. package/dist/components/TemplateEditor/TemplateEditor.d.ts +2 -0
  9. package/dist/components/TemplateEditor/VariableViewModeSync.d.ts +3 -0
  10. package/dist/components/TemplateEditor/index.d.ts +1 -0
  11. package/dist/components/TemplateEditor/store.d.ts +3 -0
  12. package/dist/components/extensions/Blockquote/Blockquote.d.ts +4 -0
  13. package/dist/components/extensions/Button/Button.types.d.ts +8 -4
  14. package/dist/components/extensions/ImageBlock/components/ImageBlockView.d.ts +1 -3
  15. package/dist/components/extensions/MessagingChannelPaste/MessagingChannelPaste.d.ts +11 -0
  16. package/dist/components/extensions/MessagingChannelPaste/index.d.ts +2 -0
  17. package/dist/components/extensions/Variable/Variable.d.ts +5 -0
  18. package/dist/components/ui/TextMenu/components/ContentTypePicker.d.ts +1 -1
  19. package/dist/components/ui/TextMenu/hooks/useTextmenuStates.d.ts +1 -0
  20. package/dist/components/ui/VariableEditor/VariableChipBase.d.ts +8 -0
  21. package/dist/components/ui/VariableEditor/VariableInput.d.ts +18 -0
  22. package/dist/esm/index.js +58 -57
  23. package/dist/esm/index.js.map +4 -4
  24. package/dist/esm/styles.css +496 -235
  25. package/dist/index.d.ts +2 -0
  26. package/dist/lib/constants/block-defaults.d.ts +43 -0
  27. package/dist/lib/constants/email-editor-tiptap-styles.d.ts +62 -0
  28. package/dist/lib/index.d.ts +1 -0
  29. package/dist/styles.css +496 -235
  30. package/dist/types/elemental.types.d.ts +3 -2
  31. package/package.json +1 -1
@@ -1305,6 +1305,9 @@ body {
1305
1305
  .courier-max-h-\[88px\] {
1306
1306
  max-height: 88px;
1307
1307
  }
1308
+ .courier-min-h-0 {
1309
+ min-height: 0px;
1310
+ }
1308
1311
  .courier-min-h-\[1\.5rem\] {
1309
1312
  min-height: 1.5rem;
1310
1313
  }
@@ -1553,9 +1556,6 @@ body {
1553
1556
  .courier-flex-wrap {
1554
1557
  flex-wrap: wrap;
1555
1558
  }
1556
- .courier-flex-nowrap {
1557
- flex-wrap: nowrap;
1558
- }
1559
1559
  .courier-content-center {
1560
1560
  align-content: center;
1561
1561
  }
@@ -2116,9 +2116,6 @@ body {
2116
2116
  .courier-pb-0 {
2117
2117
  padding-bottom: 0px;
2118
2118
  }
2119
- .courier-pb-0\.5 {
2120
- padding-bottom: 0.125rem;
2121
- }
2122
2119
  .courier-pb-1 {
2123
2120
  padding-bottom: 0.25rem;
2124
2121
  }
@@ -2134,6 +2131,9 @@ body {
2134
2131
  .courier-pb-6 {
2135
2132
  padding-bottom: 1.5rem;
2136
2133
  }
2134
+ .courier-pb-\[3px\] {
2135
+ padding-bottom: 3px;
2136
+ }
2137
2137
  .courier-pl-0 {
2138
2138
  padding-left: 0px;
2139
2139
  }
@@ -2778,6 +2778,66 @@ body {
2778
2778
  .courier-editor-main > div {
2779
2779
  width: 100%;
2780
2780
  }
2781
+ /* Email-specific font styles: values come from CSS vars set on .courier-email-editor
2782
+ * by EmailEditorContainer (see getEmailEditorTiptapCssVars in lib/constants/email-editor-tiptap-styles.ts).
2783
+ * Edit constants there only; this block stays in sync via var(--email-editor-*).
2784
+ */
2785
+ .courier-email-editor .tiptap {
2786
+ font-family: var(--email-editor-font-family);
2787
+ -webkit-font-smoothing: auto;
2788
+ -moz-osx-font-smoothing: auto;
2789
+ }
2790
+ .courier-email-editor .tiptap p {
2791
+ color: var(--email-editor-p-color);
2792
+ font-size: var(--email-editor-p-font-size);
2793
+ line-height: var(--email-editor-p-line-height);
2794
+ }
2795
+ .courier-email-editor .tiptap h1 {
2796
+ color: var(--email-editor-h1-color);
2797
+ font-size: var(--email-editor-h1-font-size);
2798
+ font-weight: var(--email-editor-h1-font-weight);
2799
+ line-height: var(--email-editor-h1-line-height);
2800
+ }
2801
+ .courier-email-editor .tiptap h2 {
2802
+ color: var(--email-editor-h2-color);
2803
+ font-size: var(--email-editor-h2-font-size);
2804
+ font-weight: var(--email-editor-h2-font-weight);
2805
+ line-height: var(--email-editor-h2-line-height);
2806
+ }
2807
+ .courier-email-editor .tiptap h3 {
2808
+ color: var(--email-editor-h3-color);
2809
+ font-size: var(--email-editor-h3-font-size);
2810
+ font-weight: var(--email-editor-h3-font-weight);
2811
+ line-height: var(--email-editor-h3-line-height);
2812
+ }
2813
+ .courier-email-editor .tiptap blockquote p {
2814
+ color: var(--email-editor-blockquote-p-color);
2815
+ font-size: var(--email-editor-blockquote-p-font-size);
2816
+ line-height: var(--email-editor-blockquote-p-line-height);
2817
+ font-style: var(--email-editor-blockquote-p-font-style);
2818
+ font-weight: var(--email-editor-blockquote-p-font-weight);
2819
+ }
2820
+ .courier-email-editor .tiptap blockquote h1 {
2821
+ color: var(--email-editor-blockquote-h1-color);
2822
+ font-size: var(--email-editor-blockquote-h1-font-size);
2823
+ font-weight: var(--email-editor-blockquote-h1-font-weight);
2824
+ line-height: var(--email-editor-blockquote-h1-line-height);
2825
+ font-style: var(--email-editor-blockquote-h1-font-style);
2826
+ }
2827
+ .courier-email-editor .tiptap blockquote h2 {
2828
+ color: var(--email-editor-blockquote-h2-color);
2829
+ font-size: var(--email-editor-blockquote-h2-font-size);
2830
+ font-weight: var(--email-editor-blockquote-h2-font-weight);
2831
+ line-height: var(--email-editor-blockquote-h2-line-height);
2832
+ font-style: var(--email-editor-blockquote-h2-font-style);
2833
+ }
2834
+ .courier-email-editor .tiptap blockquote h3 {
2835
+ color: var(--email-editor-blockquote-h3-color);
2836
+ font-size: var(--email-editor-blockquote-h3-font-size);
2837
+ font-weight: var(--email-editor-blockquote-h3-font-weight);
2838
+ line-height: var(--email-editor-blockquote-h3-line-height);
2839
+ font-style: var(--email-editor-blockquote-h3-font-style);
2840
+ }
2781
2841
  .courier-editor-preview-mode.courier-editor-preview-mode-mobile .courier-editor-main, .courier-editor-readonly.courier-editor-preview-mode-mobile .courier-editor-main {
2782
2842
  max-width: 24rem;
2783
2843
  }
@@ -2850,6 +2910,7 @@ body {
2850
2910
  display: none;
2851
2911
  }
2852
2912
  .courier-sms-editor {
2913
+ --courier-variable-chip-max-width: 14ch;
2853
2914
  margin: 1.5rem;
2854
2915
  margin-right: 3.5rem;
2855
2916
  margin-top: 2.5rem;
@@ -2891,6 +2952,7 @@ body {
2891
2952
  display: none;
2892
2953
  }
2893
2954
  .courier-push-editor {
2955
+ --courier-variable-chip-max-width: 14ch;
2894
2956
  position: relative;
2895
2957
  margin: 1.5rem;
2896
2958
  word-break: break-all;
@@ -4357,13 +4419,302 @@ body {
4357
4419
  .ProseMirror .react-renderer.node-column [data-column-cell="true"] .draggable-content-wrapper {
4358
4420
  clip-path: inset(-15px);
4359
4421
  }
4360
- /* Slack Editor Styles */
4422
+ [data-theme="slash-command"] {
4423
+ width: 100%;
4424
+ }
4425
+ /* Basic editor styles */
4426
+ .tiptap {
4427
+ outline: none;
4428
+
4429
+ /* hr {
4430
+ border: none;
4431
+ border-top: 1px solid var(--gray-2);
4432
+ margin: 2rem 0;
4433
+ } */
4434
+ }
4435
+ .tiptap :first-child {
4436
+ margin-top: 0;
4437
+ }
4438
+ /* List styles */
4439
+ .tiptap ul,
4440
+ .tiptap ol {
4441
+ padding: 0 1rem;
4442
+ margin: 0;
4443
+ }
4444
+ .tiptap ul li p, .tiptap ol li p {
4445
+ margin-top: 0.25em;
4446
+ margin-bottom: 0.25em;
4447
+ }
4448
+ /* Heading styles */
4449
+ .tiptap h1,
4450
+ .tiptap h2,
4451
+ .tiptap h3,
4452
+ .tiptap h4,
4453
+ .tiptap h5,
4454
+ .tiptap h6 {
4455
+ line-height: 1.1;
4456
+ margin-top: 2.5rem;
4457
+ text-wrap: pretty;
4458
+ }
4459
+ .tiptap h1,
4460
+ .tiptap h2 {
4461
+ margin-top: 3.5rem;
4462
+ margin-bottom: 1.5rem;
4463
+ }
4464
+ .tiptap h1 {
4465
+ font-size: 1.4rem;
4466
+ }
4467
+ .tiptap h2 {
4468
+ font-size: 1.2rem;
4469
+ }
4470
+ .tiptap h3 {
4471
+ font-size: 1.1rem;
4472
+ }
4473
+ .tiptap h4,
4474
+ .tiptap h5,
4475
+ .tiptap h6 {
4476
+ font-size: 1rem;
4477
+ }
4478
+ /* Code and preformatted text styles */
4479
+ .tiptap code {
4480
+ background-color: var(--purple-light);
4481
+ border-radius: 0.4rem;
4482
+ color: var(--black);
4483
+ font-size: 0.85rem;
4484
+ padding: 0.25em 0.3em;
4485
+ }
4486
+ .tiptap pre {
4487
+ background: var(--black);
4488
+ border-radius: 0.5rem;
4489
+ color: var(--white);
4490
+ font-family: "JetBrainsMono", monospace;
4491
+ margin: 1.5rem 0;
4492
+ padding: 0.75rem 1rem;
4493
+ }
4494
+ .tiptap pre code {
4495
+ background: none;
4496
+ color: inherit;
4497
+ font-size: 0.8rem;
4498
+ padding: 0;
4499
+ }
4500
+ .courier-variable-chip {
4501
+ position: relative;
4502
+ margin-left: 0.125rem;
4503
+ margin-right: 0.125rem;
4504
+ display: inline-flex;
4505
+ max-width: 100%;
4506
+ align-items: center;
4507
+ padding-right: 0.375rem;
4508
+ padding-left: 1.5rem;
4509
+
4510
+ font-size: inherit;
4511
+ font-family: inherit;
4512
+ font-weight: inherit;
4513
+
4514
+ color: #92400e;
4515
+ }
4516
+ /* Default state - yellow/warning (no value) */
4517
+ .courier-variable-chip:before {
4518
+ content: "";
4519
+ }
4520
+ .courier-variable-chip:before {
4521
+ position: absolute;
4522
+ }
4523
+ .courier-variable-chip:before {
4524
+ left: 0px;
4525
+ }
4526
+ .courier-variable-chip:before {
4527
+ top: 1px;
4528
+ }
4529
+ .courier-variable-chip:before {
4530
+ height: 100%;
4531
+ }
4532
+ .courier-variable-chip:before {
4533
+ width: 100%;
4534
+ }
4535
+ .courier-variable-chip:before {
4536
+ border-radius: 0.25rem;
4537
+ }
4538
+ .courier-variable-chip:before {
4539
+ border-width: 1px;
4540
+ }
4541
+ .courier-variable-chip:before {
4542
+ background-color: #fffbeb;
4543
+ border-color: #fde68a;
4544
+ }
4545
+ /* Icon container - absolutely positioned */
4546
+ .courier-variable-chip > span:first-child {
4547
+ position: absolute;
4548
+ }
4549
+ .courier-variable-chip > span:first-child {
4550
+ left: 0.25rem;
4551
+ }
4552
+ .courier-variable-chip > span:first-child {
4553
+ top: 50%;
4554
+ }
4555
+ .courier-variable-chip > span:first-child {
4556
+ z-index: 10;
4557
+ }
4558
+ .courier-variable-chip > span:first-child {
4559
+ --tw-translate-y: -50%;
4560
+ transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
4561
+ }
4562
+ /* Text span */
4563
+ .courier-variable-chip > span:last-child {
4564
+ position: relative;
4565
+ }
4566
+ .courier-variable-chip > span:last-child {
4567
+ z-index: 10;
4568
+ }
4569
+ /* Has value state - blue */
4570
+ .courier-variable-chip.courier-variable-chip-has-value {
4571
+ color: #1e40af;
4572
+ }
4573
+ .courier-variable-chip.courier-variable-chip-has-value:before {
4574
+ background-color: #eff6ff;
4575
+ border-color: #bfdbfe;
4576
+ }
4577
+ /* Invalid state - reddish */
4578
+ .courier-variable-chip.courier-variable-chip-invalid {
4579
+ color: #991b1b;
4580
+ }
4581
+ .courier-variable-chip.courier-variable-chip-invalid:before {
4582
+ background-color: #fef2f2;
4583
+ border-color: #fecaca;
4584
+ }
4585
+ /* Selected state - matches native text selection highlight */
4586
+ .courier-variable-chip.courier-variable-chip-selected::before {
4587
+ border-color: currentColor;
4588
+ }
4589
+ .courier-variable-chip.courier-variable-chip-selected::after {
4590
+ content: "";
4591
+ }
4592
+ .courier-variable-chip.courier-variable-chip-selected::after {
4593
+ position: absolute;
4594
+ }
4595
+ .courier-variable-chip.courier-variable-chip-selected::after {
4596
+ left: 0px;
4597
+ }
4598
+ .courier-variable-chip.courier-variable-chip-selected::after {
4599
+ top: 1px;
4600
+ }
4601
+ .courier-variable-chip.courier-variable-chip-selected::after {
4602
+ height: 100%;
4603
+ }
4604
+ .courier-variable-chip.courier-variable-chip-selected::after {
4605
+ width: 100%;
4606
+ }
4607
+ .courier-variable-chip.courier-variable-chip-selected::after {
4608
+ border-radius: 0.25rem;
4609
+ }
4610
+ .courier-variable-chip.courier-variable-chip-selected::after {
4611
+ background-color: Highlight;
4612
+ opacity: 0.3;
4613
+ pointer-events: none;
4614
+ z-index: 20;
4615
+ }
4616
+ /* Variable Textarea placeholder styles */
4617
+ .variable-textarea-placeholder {
4618
+ cursor: text;
4619
+ }
4620
+ .variable-textarea-placeholder .ProseMirror p.is-editor-empty:first-child::before,
4621
+ .variable-textarea-placeholder .ProseMirror p.is-empty:first-child::before {
4622
+ content: attr(data-placeholder);
4623
+ float: left;
4624
+ color: var(--muted-foreground);
4625
+ pointer-events: none;
4626
+ height: 0;
4627
+ }
4628
+ /* Variable Input placeholder styles */
4629
+ .variable-input-placeholder {
4630
+ position: relative;
4631
+ cursor: text;
4632
+ padding-left: 1px;
4633
+
4634
+ /* Position placeholder absolutely so cursor appears at start */
4635
+ }
4636
+ .variable-input-placeholder .ProseMirror {
4637
+ width: 100%;
4638
+ }
4639
+ .variable-input-placeholder .ProseMirror {
4640
+ padding: 0px;
4641
+ }
4642
+ .variable-input-placeholder .ProseMirror p {
4643
+ margin: 0px;
4644
+ }
4645
+ .variable-input-placeholder .ProseMirror p {
4646
+ cursor: text;
4647
+ }
4648
+ .variable-input-placeholder .ProseMirror p {
4649
+ border-style: none;
4650
+ }
4651
+ .variable-input-placeholder .ProseMirror p {
4652
+ padding: 0px;
4653
+ }
4654
+ .variable-input-placeholder .ProseMirror p {
4655
+ outline: 2px solid transparent;
4656
+ outline-offset: 2px;
4657
+ }
4658
+ .variable-input-placeholder .ProseMirror .node-variable {
4659
+ vertical-align: middle;
4660
+ position: relative;
4661
+ top: -1px;
4662
+ }
4663
+ .variable-input-placeholder .ProseMirror p.is-editor-empty:first-child::before,
4664
+ .variable-input-placeholder .ProseMirror p.is-empty:first-child::before {
4665
+ content: attr(data-placeholder);
4666
+ color: var(--muted-foreground);
4667
+ pointer-events: none;
4668
+ position: absolute;
4669
+ left: 1px; /* Match the padding */
4670
+ top: 50%;
4671
+ transform: translateY(-50%);
4672
+ }
4673
+ /* Hide scrollbar for variable input while keeping scroll functionality */
4674
+ .variable-input-no-scrollbar::-webkit-scrollbar {
4675
+ display: none;
4676
+ }
4677
+ /* Slack Editor Styles — placed after .tiptap base so channel overrides win. */
4361
4678
  .courier-slack-editor .ProseMirror {
4362
4679
  padding: 0px;
4363
4680
  }
4364
4681
  .courier-slack-editor .ProseMirror:is(.courier-dark *) {
4365
4682
  color: var(--foreground);
4366
4683
  }
4684
+ .courier-slack-editor .ProseMirror {
4685
+ font-family:
4686
+ Lato,
4687
+ -apple-system,
4688
+ BlinkMacSystemFont,
4689
+ "Segoe UI",
4690
+ sans-serif;
4691
+ }
4692
+ .courier-slack-editor .ProseMirror p,
4693
+ .courier-slack-editor .ProseMirror h1 {
4694
+ word-break: normal !important;
4695
+ overflow-wrap: break-word !important;
4696
+ }
4697
+ .courier-slack-editor .ProseMirror p {
4698
+ font-size: 15px;
4699
+ line-height: 22px;
4700
+ }
4701
+ .courier-slack-editor .ProseMirror h1 {
4702
+ font-size: 18px;
4703
+ font-weight: 900;
4704
+ line-height: 1.33;
4705
+ margin-top: 0;
4706
+ margin-bottom: 0;
4707
+ }
4708
+ /* Override email-specific inline styles on the blockquote inner wrapper.
4709
+ * Slack quotes are NOT italic and use body text color. */
4710
+ .courier-slack-editor .ProseMirror blockquote .node-element > div {
4711
+ font-style: normal !important;
4712
+ color: inherit !important;
4713
+ font-size: 15px !important;
4714
+ line-height: 22px !important;
4715
+ word-break: normal !important;
4716
+ overflow-wrap: break-word !important;
4717
+ }
4367
4718
  .courier-slack-editor .ProseMirror > .react-renderer {
4368
4719
  margin-top: 0.5rem;
4369
4720
  margin-bottom: 0.5rem;
@@ -4413,23 +4764,110 @@ body {
4413
4764
  .courier-slack-editor .ProseMirror > .react-renderer.node-button.node-button .node-element > div, .courier-slack-editor .ProseMirror > .react-renderer.node-divider.node-button .node-element > div, .courier-slack-editor .ProseMirror > .react-renderer.node-paragraph.node-button .node-element > div, .courier-slack-editor .ProseMirror > .react-renderer.node-heading.node-button .node-element > div, .courier-slack-editor .ProseMirror > .react-renderer.node-blockquote.node-button .node-element > div, .courier-slack-editor .ProseMirror > .react-renderer.node-buttonRow.node-button .node-element > div, .courier-slack-editor .ProseMirror > .react-renderer.node-column.node-button .node-element > div {
4414
4765
  justify-content: flex-start !important;
4415
4766
  }
4416
- .courier-slack-editor .ProseMirror > .react-renderer.node-button.node-button .node-element > div > div, .courier-slack-editor .ProseMirror > .react-renderer.node-divider.node-button .node-element > div > div, .courier-slack-editor .ProseMirror > .react-renderer.node-paragraph.node-button .node-element > div > div, .courier-slack-editor .ProseMirror > .react-renderer.node-heading.node-button .node-element > div > div, .courier-slack-editor .ProseMirror > .react-renderer.node-blockquote.node-button .node-element > div > div, .courier-slack-editor .ProseMirror > .react-renderer.node-buttonRow.node-button .node-element > div > div, .courier-slack-editor .ProseMirror > .react-renderer.node-column.node-button .node-element > div > div {
4767
+ .courier-slack-editor .ProseMirror > .react-renderer.node-button.node-button .node-element > div > a, .courier-slack-editor .ProseMirror > .react-renderer.node-divider.node-button .node-element > div > a, .courier-slack-editor .ProseMirror > .react-renderer.node-paragraph.node-button .node-element > div > a, .courier-slack-editor .ProseMirror > .react-renderer.node-heading.node-button .node-element > div > a, .courier-slack-editor .ProseMirror > .react-renderer.node-blockquote.node-button .node-element > div > a, .courier-slack-editor .ProseMirror > .react-renderer.node-buttonRow.node-button .node-element > div > a, .courier-slack-editor .ProseMirror > .react-renderer.node-column.node-button .node-element > div > a {
4768
+ margin-right: auto !important;
4769
+ }
4770
+ .courier-slack-editor .ProseMirror > .react-renderer.node-button.node-button .node-element > div > a, .courier-slack-editor .ProseMirror > .react-renderer.node-divider.node-button .node-element > div > a, .courier-slack-editor .ProseMirror > .react-renderer.node-paragraph.node-button .node-element > div > a, .courier-slack-editor .ProseMirror > .react-renderer.node-heading.node-button .node-element > div > a, .courier-slack-editor .ProseMirror > .react-renderer.node-blockquote.node-button .node-element > div > a, .courier-slack-editor .ProseMirror > .react-renderer.node-buttonRow.node-button .node-element > div > a, .courier-slack-editor .ProseMirror > .react-renderer.node-column.node-button .node-element > div > a {
4771
+ margin-left: 0px !important;
4772
+ }
4773
+ .courier-slack-editor .ProseMirror > .react-renderer.node-button.node-button .node-element > div > a, .courier-slack-editor .ProseMirror > .react-renderer.node-divider.node-button .node-element > div > a, .courier-slack-editor .ProseMirror > .react-renderer.node-paragraph.node-button .node-element > div > a, .courier-slack-editor .ProseMirror > .react-renderer.node-heading.node-button .node-element > div > a, .courier-slack-editor .ProseMirror > .react-renderer.node-blockquote.node-button .node-element > div > a, .courier-slack-editor .ProseMirror > .react-renderer.node-buttonRow.node-button .node-element > div > a, .courier-slack-editor .ProseMirror > .react-renderer.node-column.node-button .node-element > div > a {
4774
+ text-decoration-line: none;
4775
+ }
4776
+ .courier-slack-editor .ProseMirror > .react-renderer.node-button.node-button .node-element > div > div,
4777
+ .courier-slack-editor .ProseMirror > .react-renderer.node-button.node-button .node-element > div > a > div,
4778
+ .courier-slack-editor .ProseMirror > .react-renderer.node-divider.node-button .node-element > div > div,
4779
+ .courier-slack-editor .ProseMirror > .react-renderer.node-divider.node-button .node-element > div > a > div,
4780
+ .courier-slack-editor .ProseMirror > .react-renderer.node-paragraph.node-button .node-element > div > div,
4781
+ .courier-slack-editor .ProseMirror > .react-renderer.node-paragraph.node-button .node-element > div > a > div,
4782
+ .courier-slack-editor .ProseMirror > .react-renderer.node-heading.node-button .node-element > div > div,
4783
+ .courier-slack-editor .ProseMirror > .react-renderer.node-heading.node-button .node-element > div > a > div,
4784
+ .courier-slack-editor .ProseMirror > .react-renderer.node-blockquote.node-button .node-element > div > div,
4785
+ .courier-slack-editor .ProseMirror > .react-renderer.node-blockquote.node-button .node-element > div > a > div,
4786
+ .courier-slack-editor .ProseMirror > .react-renderer.node-buttonRow.node-button .node-element > div > div,
4787
+ .courier-slack-editor .ProseMirror > .react-renderer.node-buttonRow.node-button .node-element > div > a > div,
4788
+ .courier-slack-editor .ProseMirror > .react-renderer.node-column.node-button .node-element > div > div,
4789
+ .courier-slack-editor .ProseMirror > .react-renderer.node-column.node-button .node-element > div > a > div {
4417
4790
  margin-right: auto !important;
4418
4791
  }
4419
- .courier-slack-editor .ProseMirror > .react-renderer.node-button.node-button .node-element > div > div, .courier-slack-editor .ProseMirror > .react-renderer.node-divider.node-button .node-element > div > div, .courier-slack-editor .ProseMirror > .react-renderer.node-paragraph.node-button .node-element > div > div, .courier-slack-editor .ProseMirror > .react-renderer.node-heading.node-button .node-element > div > div, .courier-slack-editor .ProseMirror > .react-renderer.node-blockquote.node-button .node-element > div > div, .courier-slack-editor .ProseMirror > .react-renderer.node-buttonRow.node-button .node-element > div > div, .courier-slack-editor .ProseMirror > .react-renderer.node-column.node-button .node-element > div > div {
4792
+ .courier-slack-editor .ProseMirror > .react-renderer.node-button.node-button .node-element > div > div,
4793
+ .courier-slack-editor .ProseMirror > .react-renderer.node-button.node-button .node-element > div > a > div,
4794
+ .courier-slack-editor .ProseMirror > .react-renderer.node-divider.node-button .node-element > div > div,
4795
+ .courier-slack-editor .ProseMirror > .react-renderer.node-divider.node-button .node-element > div > a > div,
4796
+ .courier-slack-editor .ProseMirror > .react-renderer.node-paragraph.node-button .node-element > div > div,
4797
+ .courier-slack-editor .ProseMirror > .react-renderer.node-paragraph.node-button .node-element > div > a > div,
4798
+ .courier-slack-editor .ProseMirror > .react-renderer.node-heading.node-button .node-element > div > div,
4799
+ .courier-slack-editor .ProseMirror > .react-renderer.node-heading.node-button .node-element > div > a > div,
4800
+ .courier-slack-editor .ProseMirror > .react-renderer.node-blockquote.node-button .node-element > div > div,
4801
+ .courier-slack-editor .ProseMirror > .react-renderer.node-blockquote.node-button .node-element > div > a > div,
4802
+ .courier-slack-editor .ProseMirror > .react-renderer.node-buttonRow.node-button .node-element > div > div,
4803
+ .courier-slack-editor .ProseMirror > .react-renderer.node-buttonRow.node-button .node-element > div > a > div,
4804
+ .courier-slack-editor .ProseMirror > .react-renderer.node-column.node-button .node-element > div > div,
4805
+ .courier-slack-editor .ProseMirror > .react-renderer.node-column.node-button .node-element > div > a > div {
4420
4806
  margin-left: 0px !important;
4421
4807
  }
4422
- .courier-slack-editor .ProseMirror > .react-renderer.node-button.node-button .node-element > div > div, .courier-slack-editor .ProseMirror > .react-renderer.node-divider.node-button .node-element > div > div, .courier-slack-editor .ProseMirror > .react-renderer.node-paragraph.node-button .node-element > div > div, .courier-slack-editor .ProseMirror > .react-renderer.node-heading.node-button .node-element > div > div, .courier-slack-editor .ProseMirror > .react-renderer.node-blockquote.node-button .node-element > div > div, .courier-slack-editor .ProseMirror > .react-renderer.node-buttonRow.node-button .node-element > div > div, .courier-slack-editor .ProseMirror > .react-renderer.node-column.node-button .node-element > div > div {
4808
+ .courier-slack-editor .ProseMirror > .react-renderer.node-button.node-button .node-element > div > div,
4809
+ .courier-slack-editor .ProseMirror > .react-renderer.node-button.node-button .node-element > div > a > div,
4810
+ .courier-slack-editor .ProseMirror > .react-renderer.node-divider.node-button .node-element > div > div,
4811
+ .courier-slack-editor .ProseMirror > .react-renderer.node-divider.node-button .node-element > div > a > div,
4812
+ .courier-slack-editor .ProseMirror > .react-renderer.node-paragraph.node-button .node-element > div > div,
4813
+ .courier-slack-editor .ProseMirror > .react-renderer.node-paragraph.node-button .node-element > div > a > div,
4814
+ .courier-slack-editor .ProseMirror > .react-renderer.node-heading.node-button .node-element > div > div,
4815
+ .courier-slack-editor .ProseMirror > .react-renderer.node-heading.node-button .node-element > div > a > div,
4816
+ .courier-slack-editor .ProseMirror > .react-renderer.node-blockquote.node-button .node-element > div > div,
4817
+ .courier-slack-editor .ProseMirror > .react-renderer.node-blockquote.node-button .node-element > div > a > div,
4818
+ .courier-slack-editor .ProseMirror > .react-renderer.node-buttonRow.node-button .node-element > div > div,
4819
+ .courier-slack-editor .ProseMirror > .react-renderer.node-buttonRow.node-button .node-element > div > a > div,
4820
+ .courier-slack-editor .ProseMirror > .react-renderer.node-column.node-button .node-element > div > div,
4821
+ .courier-slack-editor .ProseMirror > .react-renderer.node-column.node-button .node-element > div > a > div {
4423
4822
  background-color: transparent !important;
4424
4823
  }
4425
- .courier-slack-editor .ProseMirror > .react-renderer.node-button.node-button .node-element > div > div, .courier-slack-editor .ProseMirror > .react-renderer.node-divider.node-button .node-element > div > div, .courier-slack-editor .ProseMirror > .react-renderer.node-paragraph.node-button .node-element > div > div, .courier-slack-editor .ProseMirror > .react-renderer.node-heading.node-button .node-element > div > div, .courier-slack-editor .ProseMirror > .react-renderer.node-blockquote.node-button .node-element > div > div, .courier-slack-editor .ProseMirror > .react-renderer.node-buttonRow.node-button .node-element > div > div, .courier-slack-editor .ProseMirror > .react-renderer.node-column.node-button .node-element > div > div {
4824
+ .courier-slack-editor .ProseMirror > .react-renderer.node-button.node-button .node-element > div > div,
4825
+ .courier-slack-editor .ProseMirror > .react-renderer.node-button.node-button .node-element > div > a > div,
4826
+ .courier-slack-editor .ProseMirror > .react-renderer.node-divider.node-button .node-element > div > div,
4827
+ .courier-slack-editor .ProseMirror > .react-renderer.node-divider.node-button .node-element > div > a > div,
4828
+ .courier-slack-editor .ProseMirror > .react-renderer.node-paragraph.node-button .node-element > div > div,
4829
+ .courier-slack-editor .ProseMirror > .react-renderer.node-paragraph.node-button .node-element > div > a > div,
4830
+ .courier-slack-editor .ProseMirror > .react-renderer.node-heading.node-button .node-element > div > div,
4831
+ .courier-slack-editor .ProseMirror > .react-renderer.node-heading.node-button .node-element > div > a > div,
4832
+ .courier-slack-editor .ProseMirror > .react-renderer.node-blockquote.node-button .node-element > div > div,
4833
+ .courier-slack-editor .ProseMirror > .react-renderer.node-blockquote.node-button .node-element > div > a > div,
4834
+ .courier-slack-editor .ProseMirror > .react-renderer.node-buttonRow.node-button .node-element > div > div,
4835
+ .courier-slack-editor .ProseMirror > .react-renderer.node-buttonRow.node-button .node-element > div > a > div,
4836
+ .courier-slack-editor .ProseMirror > .react-renderer.node-column.node-button .node-element > div > div,
4837
+ .courier-slack-editor .ProseMirror > .react-renderer.node-column.node-button .node-element > div > a > div {
4426
4838
  --tw-text-opacity: 1 !important;
4427
4839
  color: rgb(23 23 23 / var(--tw-text-opacity, 1)) !important;
4428
4840
  }
4429
- .courier-slack-editor .ProseMirror > .react-renderer.node-button.node-button .node-element > div > div:is(.courier-dark *), .courier-slack-editor .ProseMirror > .react-renderer.node-divider.node-button .node-element > div > div:is(.courier-dark *), .courier-slack-editor .ProseMirror > .react-renderer.node-paragraph.node-button .node-element > div > div:is(.courier-dark *), .courier-slack-editor .ProseMirror > .react-renderer.node-heading.node-button .node-element > div > div:is(.courier-dark *), .courier-slack-editor .ProseMirror > .react-renderer.node-blockquote.node-button .node-element > div > div:is(.courier-dark *), .courier-slack-editor .ProseMirror > .react-renderer.node-buttonRow.node-button .node-element > div > div:is(.courier-dark *), .courier-slack-editor .ProseMirror > .react-renderer.node-column.node-button .node-element > div > div:is(.courier-dark *) {
4841
+ .courier-slack-editor .ProseMirror > .react-renderer.node-button.node-button .node-element > div > div:is(.courier-dark *),
4842
+ .courier-slack-editor .ProseMirror > .react-renderer.node-button.node-button .node-element > div > a > div:is(.courier-dark *),
4843
+ .courier-slack-editor .ProseMirror > .react-renderer.node-divider.node-button .node-element > div > div:is(.courier-dark *),
4844
+ .courier-slack-editor .ProseMirror > .react-renderer.node-divider.node-button .node-element > div > a > div:is(.courier-dark *),
4845
+ .courier-slack-editor .ProseMirror > .react-renderer.node-paragraph.node-button .node-element > div > div:is(.courier-dark *),
4846
+ .courier-slack-editor .ProseMirror > .react-renderer.node-paragraph.node-button .node-element > div > a > div:is(.courier-dark *),
4847
+ .courier-slack-editor .ProseMirror > .react-renderer.node-heading.node-button .node-element > div > div:is(.courier-dark *),
4848
+ .courier-slack-editor .ProseMirror > .react-renderer.node-heading.node-button .node-element > div > a > div:is(.courier-dark *),
4849
+ .courier-slack-editor .ProseMirror > .react-renderer.node-blockquote.node-button .node-element > div > div:is(.courier-dark *),
4850
+ .courier-slack-editor .ProseMirror > .react-renderer.node-blockquote.node-button .node-element > div > a > div:is(.courier-dark *),
4851
+ .courier-slack-editor .ProseMirror > .react-renderer.node-buttonRow.node-button .node-element > div > div:is(.courier-dark *),
4852
+ .courier-slack-editor .ProseMirror > .react-renderer.node-buttonRow.node-button .node-element > div > a > div:is(.courier-dark *),
4853
+ .courier-slack-editor .ProseMirror > .react-renderer.node-column.node-button .node-element > div > div:is(.courier-dark *),
4854
+ .courier-slack-editor .ProseMirror > .react-renderer.node-column.node-button .node-element > div > a > div:is(.courier-dark *) {
4430
4855
  color: var(--foreground) !important;
4431
4856
  }
4432
- .courier-slack-editor .ProseMirror > .react-renderer.node-button.node-button .node-element > div > div, .courier-slack-editor .ProseMirror > .react-renderer.node-divider.node-button .node-element > div > div, .courier-slack-editor .ProseMirror > .react-renderer.node-paragraph.node-button .node-element > div > div, .courier-slack-editor .ProseMirror > .react-renderer.node-heading.node-button .node-element > div > div, .courier-slack-editor .ProseMirror > .react-renderer.node-blockquote.node-button .node-element > div > div, .courier-slack-editor .ProseMirror > .react-renderer.node-buttonRow.node-button .node-element > div > div, .courier-slack-editor .ProseMirror > .react-renderer.node-column.node-button .node-element > div > div {
4857
+ .courier-slack-editor .ProseMirror > .react-renderer.node-button.node-button .node-element > div > div,
4858
+ .courier-slack-editor .ProseMirror > .react-renderer.node-button.node-button .node-element > div > a > div,
4859
+ .courier-slack-editor .ProseMirror > .react-renderer.node-divider.node-button .node-element > div > div,
4860
+ .courier-slack-editor .ProseMirror > .react-renderer.node-divider.node-button .node-element > div > a > div,
4861
+ .courier-slack-editor .ProseMirror > .react-renderer.node-paragraph.node-button .node-element > div > div,
4862
+ .courier-slack-editor .ProseMirror > .react-renderer.node-paragraph.node-button .node-element > div > a > div,
4863
+ .courier-slack-editor .ProseMirror > .react-renderer.node-heading.node-button .node-element > div > div,
4864
+ .courier-slack-editor .ProseMirror > .react-renderer.node-heading.node-button .node-element > div > a > div,
4865
+ .courier-slack-editor .ProseMirror > .react-renderer.node-blockquote.node-button .node-element > div > div,
4866
+ .courier-slack-editor .ProseMirror > .react-renderer.node-blockquote.node-button .node-element > div > a > div,
4867
+ .courier-slack-editor .ProseMirror > .react-renderer.node-buttonRow.node-button .node-element > div > div,
4868
+ .courier-slack-editor .ProseMirror > .react-renderer.node-buttonRow.node-button .node-element > div > a > div,
4869
+ .courier-slack-editor .ProseMirror > .react-renderer.node-column.node-button .node-element > div > div,
4870
+ .courier-slack-editor .ProseMirror > .react-renderer.node-column.node-button .node-element > div > a > div {
4433
4871
  border: 1px solid #e5e5e5 !important;
4434
4872
  border-radius: 6px !important;
4435
4873
  padding: 6px 9.6px !important;
@@ -4439,10 +4877,30 @@ body {
4439
4877
  line-height: 24px !important;
4440
4878
  box-shadow: 0 1px 2px 0 rgba(0, 0, 0, 0.06) !important;
4441
4879
  }
4442
- .courier-slack-editor .ProseMirror > .react-renderer.node-button.node-button .node-element > div > div:hover, .courier-slack-editor .ProseMirror > .react-renderer.node-divider.node-button .node-element > div > div:hover, .courier-slack-editor .ProseMirror > .react-renderer.node-paragraph.node-button .node-element > div > div:hover, .courier-slack-editor .ProseMirror > .react-renderer.node-heading.node-button .node-element > div > div:hover, .courier-slack-editor .ProseMirror > .react-renderer.node-blockquote.node-button .node-element > div > div:hover, .courier-slack-editor .ProseMirror > .react-renderer.node-buttonRow.node-button .node-element > div > div:hover, .courier-slack-editor .ProseMirror > .react-renderer.node-column.node-button .node-element > div > div:hover {
4880
+ .courier-slack-editor .ProseMirror > .react-renderer.node-button.node-button .node-element > div > div:hover, .courier-slack-editor .ProseMirror > .react-renderer.node-button.node-button .node-element > div > a > div:hover, .courier-slack-editor .ProseMirror > .react-renderer.node-divider.node-button .node-element > div > div:hover, .courier-slack-editor .ProseMirror > .react-renderer.node-divider.node-button .node-element > div > a > div:hover, .courier-slack-editor .ProseMirror > .react-renderer.node-paragraph.node-button .node-element > div > div:hover, .courier-slack-editor .ProseMirror > .react-renderer.node-paragraph.node-button .node-element > div > a > div:hover, .courier-slack-editor .ProseMirror > .react-renderer.node-heading.node-button .node-element > div > div:hover, .courier-slack-editor .ProseMirror > .react-renderer.node-heading.node-button .node-element > div > a > div:hover, .courier-slack-editor .ProseMirror > .react-renderer.node-blockquote.node-button .node-element > div > div:hover, .courier-slack-editor .ProseMirror > .react-renderer.node-blockquote.node-button .node-element > div > a > div:hover, .courier-slack-editor .ProseMirror > .react-renderer.node-buttonRow.node-button .node-element > div > div:hover, .courier-slack-editor .ProseMirror > .react-renderer.node-buttonRow.node-button .node-element > div > a > div:hover, .courier-slack-editor .ProseMirror > .react-renderer.node-column.node-button .node-element > div > div:hover, .courier-slack-editor .ProseMirror > .react-renderer.node-column.node-button .node-element > div > a > div:hover {
4443
4881
  --tw-bg-opacity: 1;
4444
4882
  background-color: rgb(249 250 251 / var(--tw-bg-opacity, 1));
4445
4883
  }
4884
+ :is(.dark .courier-slack-editor .ProseMirror > .react-renderer.node-button.node-button) .node-element > div > div,
4885
+ :is(.dark .courier-slack-editor .ProseMirror > .react-renderer.node-button.node-button) .node-element > div > a > div,
4886
+ :is(.dark .courier-slack-editor .ProseMirror > .react-renderer.node-divider.node-button) .node-element > div > div,
4887
+ :is(.dark .courier-slack-editor .ProseMirror > .react-renderer.node-divider.node-button) .node-element > div > a > div,
4888
+ :is(.dark .courier-slack-editor .ProseMirror > .react-renderer.node-paragraph.node-button) .node-element > div > div,
4889
+ :is(.dark .courier-slack-editor .ProseMirror > .react-renderer.node-paragraph.node-button) .node-element > div > a > div,
4890
+ :is(.dark .courier-slack-editor .ProseMirror > .react-renderer.node-heading.node-button) .node-element > div > div,
4891
+ :is(.dark .courier-slack-editor .ProseMirror > .react-renderer.node-heading.node-button) .node-element > div > a > div,
4892
+ :is(.dark .courier-slack-editor .ProseMirror > .react-renderer.node-blockquote.node-button) .node-element > div > div,
4893
+ :is(.dark .courier-slack-editor .ProseMirror > .react-renderer.node-blockquote.node-button) .node-element > div > a > div,
4894
+ :is(.dark .courier-slack-editor .ProseMirror > .react-renderer.node-buttonRow.node-button) .node-element > div > div,
4895
+ :is(.dark .courier-slack-editor .ProseMirror > .react-renderer.node-buttonRow.node-button) .node-element > div > a > div,
4896
+ :is(.dark .courier-slack-editor .ProseMirror > .react-renderer.node-column.node-button) .node-element > div > div,
4897
+ :is(.dark .courier-slack-editor .ProseMirror > .react-renderer.node-column.node-button) .node-element > div > a > div {
4898
+ border-color: #565856 !important;
4899
+ box-shadow: none !important;
4900
+ }
4901
+ :is(.dark .courier-slack-editor .ProseMirror > .react-renderer.node-button.node-button) .node-element > div > div:hover, :is(.dark .courier-slack-editor .ProseMirror > .react-renderer.node-button.node-button) .node-element > div > a > div:hover, :is(.dark .courier-slack-editor .ProseMirror > .react-renderer.node-divider.node-button) .node-element > div > div:hover, :is(.dark .courier-slack-editor .ProseMirror > .react-renderer.node-divider.node-button) .node-element > div > a > div:hover, :is(.dark .courier-slack-editor .ProseMirror > .react-renderer.node-paragraph.node-button) .node-element > div > div:hover, :is(.dark .courier-slack-editor .ProseMirror > .react-renderer.node-paragraph.node-button) .node-element > div > a > div:hover, :is(.dark .courier-slack-editor .ProseMirror > .react-renderer.node-heading.node-button) .node-element > div > div:hover, :is(.dark .courier-slack-editor .ProseMirror > .react-renderer.node-heading.node-button) .node-element > div > a > div:hover, :is(.dark .courier-slack-editor .ProseMirror > .react-renderer.node-blockquote.node-button) .node-element > div > div:hover, :is(.dark .courier-slack-editor .ProseMirror > .react-renderer.node-blockquote.node-button) .node-element > div > a > div:hover, :is(.dark .courier-slack-editor .ProseMirror > .react-renderer.node-buttonRow.node-button) .node-element > div > div:hover, :is(.dark .courier-slack-editor .ProseMirror > .react-renderer.node-buttonRow.node-button) .node-element > div > a > div:hover, :is(.dark .courier-slack-editor .ProseMirror > .react-renderer.node-column.node-button) .node-element > div > div:hover, :is(.dark .courier-slack-editor .ProseMirror > .react-renderer.node-column.node-button) .node-element > div > a > div:hover {
4902
+ background-color: rgba(255, 255, 255, 0.06) !important;
4903
+ }
4446
4904
  .courier-slack-editor .ProseMirror > .react-renderer.node-button [data-cypress="draggable-handle"], .courier-slack-editor .ProseMirror > .react-renderer.node-divider [data-cypress="draggable-handle"], .courier-slack-editor .ProseMirror > .react-renderer.node-paragraph [data-cypress="draggable-handle"], .courier-slack-editor .ProseMirror > .react-renderer.node-heading [data-cypress="draggable-handle"], .courier-slack-editor .ProseMirror > .react-renderer.node-blockquote [data-cypress="draggable-handle"], .courier-slack-editor .ProseMirror > .react-renderer.node-buttonRow [data-cypress="draggable-handle"], .courier-slack-editor .ProseMirror > .react-renderer.node-column [data-cypress="draggable-handle"] {
4447
4905
  visibility: hidden;
4448
4906
  }
@@ -4547,10 +5005,33 @@ body {
4547
5005
  .courier-slack-editor .ProseMirror > .react-renderer.node-button .selected-element .courier-actions-panel, .courier-slack-editor .ProseMirror > .react-renderer.node-divider .selected-element .courier-actions-panel, .courier-slack-editor .ProseMirror > .react-renderer.node-paragraph .selected-element .courier-actions-panel, .courier-slack-editor .ProseMirror > .react-renderer.node-heading .selected-element .courier-actions-panel, .courier-slack-editor .ProseMirror > .react-renderer.node-blockquote .selected-element .courier-actions-panel, .courier-slack-editor .ProseMirror > .react-renderer.node-buttonRow .selected-element .courier-actions-panel, .courier-slack-editor .ProseMirror > .react-renderer.node-column .selected-element .courier-actions-panel {
4548
5006
  display: block;
4549
5007
  }
4550
- /* MS Teams Editor Styles */
5008
+ /* MS Teams Editor Styles — placed after .tiptap base so channel overrides win. */
4551
5009
  .courier-msteams-editor .ProseMirror {
4552
5010
  padding: 0px;
4553
5011
  }
5012
+ .courier-msteams-editor .ProseMirror {
5013
+ font-family:
5014
+ "Segoe UI",
5015
+ system-ui,
5016
+ -apple-system,
5017
+ sans-serif;
5018
+ }
5019
+ .courier-msteams-editor .ProseMirror p {
5020
+ font-size: 14px;
5021
+ line-height: 20px;
5022
+ word-break: normal !important;
5023
+ overflow-wrap: break-word !important;
5024
+ }
5025
+ /* Override email-specific inline styles on the blockquote inner wrapper.
5026
+ * Teams quotes are NOT italic and use body text color. */
5027
+ .courier-msteams-editor .ProseMirror blockquote .node-element > div {
5028
+ font-style: normal !important;
5029
+ color: inherit !important;
5030
+ font-size: 14px !important;
5031
+ line-height: 20px !important;
5032
+ word-break: normal !important;
5033
+ overflow-wrap: break-word !important;
5034
+ }
4554
5035
  .courier-msteams-editor .ProseMirror > .react-renderer {
4555
5036
  margin-top: 0.5rem;
4556
5037
  margin-bottom: 0.5rem;
@@ -4701,226 +5182,6 @@ body {
4701
5182
  .courier-msteams-editor .ProseMirror > .react-renderer.node-button .selected-element .courier-actions-panel, .courier-msteams-editor .ProseMirror > .react-renderer.node-divider .selected-element .courier-actions-panel, .courier-msteams-editor .ProseMirror > .react-renderer.node-paragraph .selected-element .courier-actions-panel, .courier-msteams-editor .ProseMirror > .react-renderer.node-heading .selected-element .courier-actions-panel, .courier-msteams-editor .ProseMirror > .react-renderer.node-blockquote .selected-element .courier-actions-panel, .courier-msteams-editor .ProseMirror > .react-renderer.node-buttonRow .selected-element .courier-actions-panel, .courier-msteams-editor .ProseMirror > .react-renderer.node-column .selected-element .courier-actions-panel {
4702
5183
  display: block;
4703
5184
  }
4704
- [data-theme="slash-command"] {
4705
- width: 100%;
4706
- }
4707
- /* Basic editor styles */
4708
- .tiptap {
4709
- outline: none;
4710
-
4711
- /* hr {
4712
- border: none;
4713
- border-top: 1px solid var(--gray-2);
4714
- margin: 2rem 0;
4715
- } */
4716
- }
4717
- .tiptap :first-child {
4718
- margin-top: 0;
4719
- }
4720
- /* List styles */
4721
- .tiptap ul,
4722
- .tiptap ol {
4723
- padding: 0 1rem;
4724
- margin: 0;
4725
- }
4726
- .tiptap ul li p, .tiptap ol li p {
4727
- margin-top: 0.25em;
4728
- margin-bottom: 0.25em;
4729
- }
4730
- /* Heading styles */
4731
- .tiptap h1,
4732
- .tiptap h2,
4733
- .tiptap h3,
4734
- .tiptap h4,
4735
- .tiptap h5,
4736
- .tiptap h6 {
4737
- line-height: 1.1;
4738
- margin-top: 2.5rem;
4739
- text-wrap: pretty;
4740
- }
4741
- .tiptap h1,
4742
- .tiptap h2 {
4743
- margin-top: 3.5rem;
4744
- margin-bottom: 1.5rem;
4745
- }
4746
- .tiptap h1 {
4747
- font-size: 1.4rem;
4748
- }
4749
- .tiptap h2 {
4750
- font-size: 1.2rem;
4751
- }
4752
- .tiptap h3 {
4753
- font-size: 1.1rem;
4754
- }
4755
- .tiptap h4,
4756
- .tiptap h5,
4757
- .tiptap h6 {
4758
- font-size: 1rem;
4759
- }
4760
- /* Code and preformatted text styles */
4761
- .tiptap code {
4762
- background-color: var(--purple-light);
4763
- border-radius: 0.4rem;
4764
- color: var(--black);
4765
- font-size: 0.85rem;
4766
- padding: 0.25em 0.3em;
4767
- }
4768
- .tiptap pre {
4769
- background: var(--black);
4770
- border-radius: 0.5rem;
4771
- color: var(--white);
4772
- font-family: "JetBrainsMono", monospace;
4773
- margin: 1.5rem 0;
4774
- padding: 0.75rem 1rem;
4775
- }
4776
- .tiptap pre code {
4777
- background: none;
4778
- color: inherit;
4779
- font-size: 0.8rem;
4780
- padding: 0;
4781
- }
4782
- .courier-variable-chip {
4783
- position: relative;
4784
- margin-left: 0.125rem;
4785
- margin-right: 0.125rem;
4786
- display: inline-flex;
4787
- max-width: 100%;
4788
- align-items: center;
4789
- padding-right: 0.375rem;
4790
- padding-left: 1.5rem;
4791
-
4792
- font-size: inherit;
4793
- font-family: inherit;
4794
- font-weight: inherit;
4795
- }
4796
- /* Default state - yellow/warning (no value) */
4797
- .courier-variable-chip:before {
4798
- content: "";
4799
- }
4800
- .courier-variable-chip:before {
4801
- position: absolute;
4802
- }
4803
- .courier-variable-chip:before {
4804
- left: 0px;
4805
- }
4806
- .courier-variable-chip:before {
4807
- top: 1px;
4808
- }
4809
- .courier-variable-chip:before {
4810
- height: 100%;
4811
- }
4812
- .courier-variable-chip:before {
4813
- width: 100%;
4814
- }
4815
- .courier-variable-chip:before {
4816
- border-radius: 0.25rem;
4817
- }
4818
- .courier-variable-chip:before {
4819
- border-width: 1px;
4820
- }
4821
- .courier-variable-chip:before {
4822
- background-color: #fffbeb;
4823
- border-color: #fde68a;
4824
- }
4825
- /* Icon container - absolutely positioned */
4826
- .courier-variable-chip > span:first-child {
4827
- position: absolute;
4828
- }
4829
- .courier-variable-chip > span:first-child {
4830
- left: 0.25rem;
4831
- }
4832
- .courier-variable-chip > span:first-child {
4833
- top: 50%;
4834
- }
4835
- .courier-variable-chip > span:first-child {
4836
- z-index: 10;
4837
- }
4838
- .courier-variable-chip > span:first-child {
4839
- --tw-translate-y: -50%;
4840
- transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
4841
- }
4842
- /* Text span */
4843
- .courier-variable-chip > span:last-child {
4844
- position: relative;
4845
- }
4846
- .courier-variable-chip > span:last-child {
4847
- z-index: 10;
4848
- }
4849
- .courier-variable-chip > span:last-child {
4850
- color: #92400e;
4851
- }
4852
- /* Has value state - blue */
4853
- .courier-variable-chip.courier-variable-chip-has-value:before {
4854
- background-color: #eff6ff;
4855
- border-color: #bfdbfe;
4856
- }
4857
- .courier-variable-chip.courier-variable-chip-has-value > span:last-child {
4858
- color: #1e40af;
4859
- }
4860
- /* Invalid state - reddish */
4861
- .courier-variable-chip.courier-variable-chip-invalid:before {
4862
- background-color: #fef2f2;
4863
- border-color: #fecaca;
4864
- }
4865
- .courier-variable-chip.courier-variable-chip-invalid > span:last-child {
4866
- color: #991b1b;
4867
- }
4868
- /* Variable Textarea placeholder styles */
4869
- .variable-textarea-placeholder {
4870
- cursor: text;
4871
- }
4872
- .variable-textarea-placeholder .ProseMirror p.is-editor-empty:first-child::before,
4873
- .variable-textarea-placeholder .ProseMirror p.is-empty:first-child::before {
4874
- content: attr(data-placeholder);
4875
- float: left;
4876
- color: var(--muted-foreground);
4877
- pointer-events: none;
4878
- height: 0;
4879
- }
4880
- /* Variable Input placeholder styles */
4881
- .variable-input-placeholder {
4882
- position: relative;
4883
- cursor: text;
4884
- padding-left: 1px;
4885
-
4886
- /* Position placeholder absolutely so cursor appears at start */
4887
- }
4888
- .variable-input-placeholder .ProseMirror {
4889
- width: 100%;
4890
- }
4891
- .variable-input-placeholder .ProseMirror {
4892
- padding: 0px;
4893
- }
4894
- .variable-input-placeholder .ProseMirror p {
4895
- margin: 0px;
4896
- }
4897
- .variable-input-placeholder .ProseMirror p {
4898
- cursor: text;
4899
- }
4900
- .variable-input-placeholder .ProseMirror p {
4901
- border-style: none;
4902
- }
4903
- .variable-input-placeholder .ProseMirror p {
4904
- padding: 0px;
4905
- }
4906
- .variable-input-placeholder .ProseMirror p {
4907
- outline: 2px solid transparent;
4908
- outline-offset: 2px;
4909
- }
4910
- .variable-input-placeholder .ProseMirror p.is-editor-empty:first-child::before,
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
- }
4924
5185
  .file\:courier-border-0::file-selector-button {
4925
5186
  border-width: 0px;
4926
5187
  }