ct-rich-text-editor 1.3.6 → 1.3.8

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 (28) hide show
  1. package/dist/api/featureSuggestion.d.ts +21 -0
  2. package/dist/assets/style.css +294 -91
  3. package/dist/components/FeatureSuggestionDialog/index.d.ts +6 -0
  4. package/dist/components/ImageComparisonDialog/index.d.ts +11 -0
  5. package/dist/components/ImageGenerationDialog/ImageGenerationManager.d.ts +2 -1
  6. package/dist/components/ImageGenerationDialog/index.d.ts +2 -1
  7. package/dist/components/ImageView/index.d.ts +2 -1
  8. package/dist/editorConfig.d.ts +1 -1
  9. package/dist/{html2pdf.bundle-9236a762.js → html2pdf.bundle-6d32d085.js} +2 -2
  10. package/dist/{html2pdf.bundle-9236a762.js.map → html2pdf.bundle-6d32d085.js.map} +1 -1
  11. package/dist/{html2pdf.bundle.min-5e51c303.js → html2pdf.bundle.min-b3120e0c.js} +2 -2
  12. package/dist/{html2pdf.bundle.min-5e51c303.js.map → html2pdf.bundle.min-b3120e0c.js.map} +1 -1
  13. package/dist/{index-dbc626d0.js → index-158a9bd4.js} +2513 -1190
  14. package/dist/index-158a9bd4.js.map +1 -0
  15. package/dist/{index-4a68b444.js → index-42136c92.js} +255 -8
  16. package/dist/index-42136c92.js.map +1 -0
  17. package/dist/{index-984a0184.js → index-9548fdb4.js} +3 -3
  18. package/dist/{index-984a0184.js.map → index-9548fdb4.js.map} +1 -1
  19. package/dist/index.js +6 -6
  20. package/dist/nodes/ImageNode.d.ts +8 -2
  21. package/dist/plugins/LinkPreviewPlugin/index.d.ts +2 -0
  22. package/dist/plugins/TableActionMenuPlugin/index.d.ts +2 -2
  23. package/dist/plugins/TableHoverActionsPlugin/index.d.ts +2 -11
  24. package/dist/plugins/TableHoverActionsPlugin/index_old_backup.d.ts +17 -0
  25. package/dist/plugins/TablePlugin.d.ts +1 -1
  26. package/package.json +2 -1
  27. package/dist/index-4a68b444.js.map +0 -1
  28. package/dist/index-dbc626d0.js.map +0 -1
@@ -0,0 +1,21 @@
1
+ export interface FeatureSuggestion {
2
+ id: string;
3
+ title: string;
4
+ description: string;
5
+ status: string;
6
+ createdAt: string;
7
+ upvotes: number;
8
+ adminResponse?: string;
9
+ isImplemented: boolean;
10
+ reviewedAt?: string;
11
+ reviewedBy?: string;
12
+ tags?: string[];
13
+ }
14
+ export interface CreateSuggestionData {
15
+ title: string;
16
+ description: string;
17
+ tags?: string[];
18
+ }
19
+ export declare class FeatureSuggestionAPI {
20
+ static createSuggestion(data: CreateSuggestionData, apiKey?: string): Promise<FeatureSuggestion>;
21
+ }
@@ -624,6 +624,10 @@ video {
624
624
  bottom: 0px;
625
625
  }
626
626
 
627
+ .cteditor-bottom-2{
628
+ bottom: 0.5rem;
629
+ }
630
+
627
631
  .cteditor-bottom-3\/4{
628
632
  bottom: 75%;
629
633
  }
@@ -917,11 +921,6 @@ video {
917
921
  height: 1.5rem;
918
922
  }
919
923
 
920
- .cteditor-size-9{
921
- width: 2.25rem;
922
- height: 2.25rem;
923
- }
924
-
925
924
  .cteditor-size-\[18px\]{
926
925
  width: 18px;
927
926
  height: 18px;
@@ -1307,12 +1306,6 @@ video {
1307
1306
  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));
1308
1307
  }
1309
1308
 
1310
- .cteditor-scale-150{
1311
- --tw-scale-x: 1.5;
1312
- --tw-scale-y: 1.5;
1313
- 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));
1314
- }
1315
-
1316
1309
  @keyframes cteditor-pulse{
1317
1310
 
1318
1311
  50%{
@@ -1683,10 +1676,6 @@ video {
1683
1676
  border-color: hsl(var(--cteditorf47ac10b-background) / 0.1);
1684
1677
  }
1685
1678
 
1686
- .cteditor-border-background\/20{
1687
- border-color: hsl(var(--cteditorf47ac10b-background) / 0.2);
1688
- }
1689
-
1690
1679
  .cteditor-border-blue-200{
1691
1680
  --tw-border-opacity: 1;
1692
1681
  border-color: rgb(191 219 254 / var(--tw-border-opacity, 1));
@@ -1701,10 +1690,6 @@ video {
1701
1690
  border-color: hsl(var(--cteditorf47ac10b-border));
1702
1691
  }
1703
1692
 
1704
- .cteditor-border-border\/30{
1705
- border-color: hsl(var(--cteditorf47ac10b-border) / 0.3);
1706
- }
1707
-
1708
1693
  .cteditor-border-destructive{
1709
1694
  border-color: hsl(var(--cteditorf47ac10b-destructive));
1710
1695
  }
@@ -1829,6 +1814,10 @@ video {
1829
1814
  border-left-color: rgb(234 179 8 / var(--tw-border-opacity, 1));
1830
1815
  }
1831
1816
 
1817
+ .cteditor-border-t-transparent{
1818
+ border-top-color: transparent;
1819
+ }
1820
+
1832
1821
  .\!cteditor-bg-accent{
1833
1822
  background-color: hsl(var(--cteditorf47ac10b-accent)) !important;
1834
1823
  }
@@ -2019,6 +2008,11 @@ video {
2019
2008
  background-color: rgb(168 85 247 / 0.1);
2020
2009
  }
2021
2010
 
2011
+ .cteditor-bg-red-100{
2012
+ --tw-bg-opacity: 1;
2013
+ background-color: rgb(254 226 226 / var(--tw-bg-opacity, 1));
2014
+ }
2015
+
2022
2016
  .cteditor-bg-red-50{
2023
2017
  --tw-bg-opacity: 1;
2024
2018
  background-color: rgb(254 242 242 / var(--tw-bg-opacity, 1));
@@ -2517,6 +2511,11 @@ video {
2517
2511
  color: rgb(37 99 235 / var(--tw-text-opacity, 1));
2518
2512
  }
2519
2513
 
2514
+ .cteditor-text-blue-700{
2515
+ --tw-text-opacity: 1;
2516
+ color: rgb(29 78 216 / var(--tw-text-opacity, 1));
2517
+ }
2518
+
2520
2519
  .cteditor-text-blue-800{
2521
2520
  --tw-text-opacity: 1;
2522
2521
  color: rgb(30 64 175 / var(--tw-text-opacity, 1));
@@ -2792,10 +2791,6 @@ video {
2792
2791
  outline-width: 0px;
2793
2792
  }
2794
2793
 
2795
- .cteditor-outline-background\/30{
2796
- outline-color: hsl(var(--cteditorf47ac10b-background) / 0.3);
2797
- }
2798
-
2799
2794
  .cteditor-ring-1{
2800
2795
  --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);
2801
2796
  --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);
@@ -2988,23 +2983,32 @@ body {
2988
2983
 
2989
2984
  ::-webkit-scrollbar {
2990
2985
  width: 8px;
2986
+ height: 8px;
2991
2987
  }
2992
2988
 
2993
2989
  ::-webkit-scrollbar-track {
2994
- background: rgb(240, 240, 240);
2990
+ background: #f0f0f0;
2995
2991
  }
2996
2992
 
2997
2993
  ::-webkit-scrollbar-thumb {
2998
- background: rgb(180, 180, 180);
2999
- border-radius: 10px;
2994
+ background: #aaa;
2995
+ border-radius: 4px;
2996
+ }
2997
+
2998
+ ::-webkit-scrollbar-thumb:hover {
2999
+ background: #888;
3000
3000
  }
3001
3001
 
3002
3002
  body.dark ::-webkit-scrollbar-track {
3003
- background: rgb(30, 30, 35);
3003
+ background: #2a2a2a;
3004
3004
  }
3005
3005
 
3006
3006
  body.dark ::-webkit-scrollbar-thumb {
3007
- background: rgb(80, 80, 90);
3007
+ background: #777;
3008
+ }
3009
+
3010
+ body.dark ::-webkit-scrollbar-thumb:hover {
3011
+ background: #999;
3008
3012
  }
3009
3013
 
3010
3014
  /* Color Picker Style */
@@ -3048,7 +3052,6 @@ body.dark ::-webkit-scrollbar-thumb {
3048
3052
 
3049
3053
  .PlaygroundEditorTheme__table .PlaygroundEditorTheme__tableCell {
3050
3054
  border-color: hsla(var(--cteditorf47ac10b-foreground), 0.2);
3051
- background-color: transparent !important;
3052
3055
  }
3053
3056
 
3054
3057
  .PlaygroundEditorTheme__tableCellHeader,
@@ -3056,8 +3059,6 @@ body.dark ::-webkit-scrollbar-thumb {
3056
3059
  .PlaygroundEditorTheme__table td.PlaygroundEditorTheme__tableCellHeader {
3057
3060
  white-space: nowrap !important;
3058
3061
  overflow: hidden !important;
3059
- max-height: 40px !important;
3060
- line-height: 1.2 !important;
3061
3062
  }
3062
3063
 
3063
3064
  /* Prevent wrapping in all nested elements inside table headers */
@@ -3066,10 +3067,6 @@ body.dark ::-webkit-scrollbar-thumb {
3066
3067
  .PlaygroundEditorTheme__table th *,
3067
3068
  .PlaygroundEditorTheme__table td.PlaygroundEditorTheme__tableCellHeader * {
3068
3069
  white-space: nowrap !important;
3069
- display: inline !important;
3070
- margin: 0 !important;
3071
- padding: 0 !important;
3072
- line-height: 1.2 !important;
3073
3070
  }
3074
3071
 
3075
3072
  /* Force br tags to not create new lines in headers */
@@ -3095,6 +3092,26 @@ body.dark ::-webkit-scrollbar-thumb {
3095
3092
  height: auto;
3096
3093
  }
3097
3094
 
3095
+ /* Table Insert Dot Indicators */
3096
+
3097
+ .table-insert-dot {
3098
+ box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
3099
+ opacity: 0.6;
3100
+ transition: all 0.2s ease;
3101
+ }
3102
+
3103
+ .table-insert-dot:hover,
3104
+ .table-insert-dot.hovered {
3105
+ opacity: 1;
3106
+ box-shadow: 0 4px 8px rgba(59, 130, 246, 0.3);
3107
+ transform: scale(1.1);
3108
+ }
3109
+
3110
+ .table-insert-dot:focus {
3111
+ outline: 2px solid #3b82f6;
3112
+ outline-offset: 2px;
3113
+ }
3114
+
3098
3115
  .PlaygroundEditorTheme__hr {
3099
3116
  background-color: transparent;
3100
3117
  }
@@ -3222,12 +3239,14 @@ body .ai-chat-popup .ai-chat-input {
3222
3239
  color: hsl(var(--cteditorf47ac10b-foreground));
3223
3240
  }
3224
3241
 
3225
- .placeholder\:cteditor-text-background::-moz-placeholder{
3226
- color: hsl(var(--cteditorf47ac10b-background));
3242
+ .placeholder\:cteditor-text-gray-500::-moz-placeholder{
3243
+ --tw-text-opacity: 1;
3244
+ color: rgb(107 114 128 / var(--tw-text-opacity, 1));
3227
3245
  }
3228
3246
 
3229
- .placeholder\:cteditor-text-background::placeholder{
3230
- color: hsl(var(--cteditorf47ac10b-background));
3247
+ .placeholder\:cteditor-text-gray-500::placeholder{
3248
+ --tw-text-opacity: 1;
3249
+ color: rgb(107 114 128 / var(--tw-text-opacity, 1));
3231
3250
  }
3232
3251
 
3233
3252
  .placeholder\:cteditor-text-muted-foreground::-moz-placeholder{
@@ -3238,16 +3257,6 @@ body .ai-chat-popup .ai-chat-input {
3238
3257
  color: hsl(var(--cteditorf47ac10b-muted-foreground));
3239
3258
  }
3240
3259
 
3241
- .checked\:cteditor-border-blue-600:checked{
3242
- --tw-border-opacity: 1;
3243
- border-color: rgb(37 99 235 / var(--tw-border-opacity, 1));
3244
- }
3245
-
3246
- .checked\:cteditor-bg-blue-600:checked{
3247
- --tw-bg-opacity: 1;
3248
- background-color: rgb(37 99 235 / var(--tw-bg-opacity, 1));
3249
- }
3250
-
3251
3260
  .empty\:before\:cteditor-text-muted-foreground\/60:empty::before{
3252
3261
  content: var(--tw-content);
3253
3262
  color: hsl(var(--cteditorf47ac10b-muted-foreground) / 0.6);
@@ -3281,11 +3290,6 @@ body .ai-chat-popup .ai-chat-input {
3281
3290
  border-color: rgb(245 158 11 / var(--tw-border-opacity, 1));
3282
3291
  }
3283
3292
 
3284
- .hover\:cteditor-border-blue-500:hover{
3285
- --tw-border-opacity: 1;
3286
- border-color: rgb(59 130 246 / var(--tw-border-opacity, 1));
3287
- }
3288
-
3289
3293
  .hover\:cteditor-border-gray-500:hover{
3290
3294
  --tw-border-opacity: 1;
3291
3295
  border-color: rgb(107 114 128 / var(--tw-border-opacity, 1));
@@ -3399,6 +3403,11 @@ body .ai-chat-popup .ai-chat-input {
3399
3403
  background-color: rgb(147 51 234 / var(--tw-bg-opacity, 1));
3400
3404
  }
3401
3405
 
3406
+ .hover\:cteditor-bg-red-600:hover{
3407
+ --tw-bg-opacity: 1;
3408
+ background-color: rgb(220 38 38 / var(--tw-bg-opacity, 1));
3409
+ }
3410
+
3402
3411
  .hover\:cteditor-bg-rose-100:hover{
3403
3412
  --tw-bg-opacity: 1;
3404
3413
  background-color: rgb(255 228 230 / var(--tw-bg-opacity, 1));
@@ -3427,6 +3436,11 @@ body .ai-chat-popup .ai-chat-input {
3427
3436
  color: hsl(var(--cteditorf47ac10b-accent-foreground));
3428
3437
  }
3429
3438
 
3439
+ .hover\:cteditor-text-blue-800:hover{
3440
+ --tw-text-opacity: 1;
3441
+ color: rgb(30 64 175 / var(--tw-text-opacity, 1));
3442
+ }
3443
+
3430
3444
  .hover\:cteditor-text-destructive-foreground:hover{
3431
3445
  color: hsl(var(--cteditorf47ac10b-destructive-foreground));
3432
3446
  }
@@ -3452,8 +3466,9 @@ body .ai-chat-popup .ai-chat-input {
3452
3466
  color: hsl(var(--cteditorf47ac10b-primary-foreground));
3453
3467
  }
3454
3468
 
3455
- .hover\:cteditor-text-primary\/80:hover{
3456
- color: hsl(var(--cteditorf47ac10b-primary) / 0.8);
3469
+ .hover\:cteditor-text-white:hover{
3470
+ --tw-text-opacity: 1;
3471
+ color: rgb(255 255 255 / var(--tw-text-opacity, 1));
3457
3472
  }
3458
3473
 
3459
3474
  .hover\:cteditor-underline:hover{
@@ -3518,6 +3533,11 @@ body .ai-chat-popup .ai-chat-input {
3518
3533
  box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000);
3519
3534
  }
3520
3535
 
3536
+ .focus\:cteditor-ring-blue-500:focus{
3537
+ --tw-ring-opacity: 1;
3538
+ --tw-ring-color: rgb(59 130 246 / var(--tw-ring-opacity, 1));
3539
+ }
3540
+
3521
3541
  .focus\:cteditor-ring-primary\/20:focus{
3522
3542
  --tw-ring-color: hsl(var(--cteditorf47ac10b-primary) / 0.2);
3523
3543
  }
@@ -3557,6 +3577,11 @@ body .ai-chat-popup .ai-chat-input {
3557
3577
  box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000);
3558
3578
  }
3559
3579
 
3580
+ .focus-visible\:cteditor-ring-red-500:focus-visible{
3581
+ --tw-ring-opacity: 1;
3582
+ --tw-ring-color: rgb(239 68 68 / var(--tw-ring-opacity, 1));
3583
+ }
3584
+
3560
3585
  .focus-visible\:cteditor-ring-ring:focus-visible{
3561
3586
  --tw-ring-color: hsl(var(--cteditorf47ac10b-ring));
3562
3587
  }
@@ -3587,16 +3612,14 @@ body .ai-chat-popup .ai-chat-input {
3587
3612
  color: hsl(var(--cteditorf47ac10b-primary));
3588
3613
  }
3589
3614
 
3590
- .cteditor-group:hover .group-hover\:cteditor-text-foreground{
3591
- color: hsl(var(--cteditorf47ac10b-foreground));
3592
- }
3593
-
3594
- .cteditor-group:hover .group-hover\:cteditor-text-primary{
3595
- color: hsl(var(--cteditorf47ac10b-primary));
3615
+ .cteditor-group:hover .group-hover\:cteditor-text-blue-600{
3616
+ --tw-text-opacity: 1;
3617
+ color: rgb(37 99 235 / var(--tw-text-opacity, 1));
3596
3618
  }
3597
3619
 
3598
- .cteditor-peer:checked ~ .peer-checked\:cteditor-opacity-100{
3599
- opacity: 1;
3620
+ .cteditor-group:hover .group-hover\:cteditor-text-gray-700{
3621
+ --tw-text-opacity: 1;
3622
+ color: rgb(55 65 81 / var(--tw-text-opacity, 1));
3600
3623
  }
3601
3624
 
3602
3625
  .cteditor-peer:disabled ~ .peer-disabled\:cteditor-cursor-not-allowed{
@@ -4264,10 +4287,6 @@ body .ai-chat-popup .ai-chat-input {
4264
4287
  -webkit-line-clamp: 1;
4265
4288
  }
4266
4289
 
4267
- .\[\&\>span\]\:checked\:cteditor-opacity-100:checked>span{
4268
- opacity: 1;
4269
- }
4270
-
4271
4290
  .\[\&\>span\]\:hover\:cteditor-bottom-full:hover>span{
4272
4291
  bottom: 100%;
4273
4292
  }
@@ -4360,12 +4379,21 @@ body .ai-chat-popup .ai-chat-input {
4360
4379
  height: auto;
4361
4380
  }
4362
4381
 
4363
- /* Ensure tables are responsive */
4382
+ /* Table wrapper for hover menu space */
4383
+ .PlaygroundEditorTheme__table {
4384
+ position: relative;
4385
+ margin-left: 24px !important; /* Space for left hover dots */
4386
+ margin-top: 24px !important; /* Space for top hover dots */
4387
+ margin-bottom: 24px !important; /* Space for bottom hover dots */
4388
+ }
4389
+
4390
+ /* Ensure tables span full width within wrapper */
4364
4391
  .PlaygroundEditorTheme__table,
4365
4392
  .table {
4366
- max-width: 100%;
4393
+ width: calc(100% - 24px) !important;
4394
+ table-layout: fixed !important;
4367
4395
  overflow-x: auto;
4368
- display: block;
4396
+ display: table;
4369
4397
  }
4370
4398
 
4371
4399
  /* Prevent table header text wrapping */
@@ -4374,8 +4402,6 @@ body .ai-chat-popup .ai-chat-input {
4374
4402
  .PlaygroundEditorTheme__table td.PlaygroundEditorTheme__tableCellHeader {
4375
4403
  white-space: nowrap !important;
4376
4404
  overflow: hidden !important;
4377
- max-height: 40px !important;
4378
- line-height: 1.2 !important;
4379
4405
  }
4380
4406
 
4381
4407
  /* Prevent wrapping in all nested elements inside table headers */
@@ -4383,10 +4409,6 @@ body .ai-chat-popup .ai-chat-input {
4383
4409
  .PlaygroundEditorTheme__table th *,
4384
4410
  .PlaygroundEditorTheme__table td.PlaygroundEditorTheme__tableCellHeader * {
4385
4411
  white-space: nowrap !important;
4386
- display: inline !important;
4387
- margin: 0 !important;
4388
- padding: 0 !important;
4389
- line-height: 1.2 !important;
4390
4412
  }
4391
4413
 
4392
4414
  /* Force br tags to not create new lines in headers */
@@ -5190,11 +5212,14 @@ body .ai-chat-popup .ai-chat-input {
5190
5212
  border-collapse: collapse;
5191
5213
  border-spacing: 0;
5192
5214
  overflow-y: visible;
5193
- overflow-x: visible;
5215
+ overflow-x: auto;
5194
5216
  table-layout: fixed;
5195
- /* Remove width constraint - let inline styles control it */
5217
+ width: 100% !important; /* Full editor width like TinyMCE */
5196
5218
  margin-top: 25px;
5197
5219
  margin-bottom: 30px;
5220
+ margin-left: 0;
5221
+ margin-right: 0;
5222
+ display: block;
5198
5223
  }
5199
5224
 
5200
5225
  .PlaygroundEditorTheme__tableRowStriping tr:nth-child(even) {
@@ -5219,10 +5244,10 @@ body .ai-chat-popup .ai-chat-input {
5219
5244
 
5220
5245
  .PlaygroundEditorTheme__tableCell {
5221
5246
  border: 1px solid #bbb;
5222
- width: 75px;
5247
+ /* width removed - controlled by colgroup */
5223
5248
  vertical-align: top;
5224
5249
  text-align: start;
5225
- padding: 6px 8px;
5250
+ padding: 12px 12px 12px 16px;
5226
5251
  position: relative;
5227
5252
  outline: none;
5228
5253
  overflow: auto;
@@ -5250,11 +5275,61 @@ body .ai-chat-popup .ai-chat-input {
5250
5275
  text-align: start;
5251
5276
  white-space: nowrap;
5252
5277
  overflow: hidden;
5278
+ font-weight: 600;
5279
+ background-color: #323131;
5280
+ position: relative;
5281
+ }
5282
+
5283
+ /* Visual indicator for resizable columns - right bar on current cell */
5284
+ .PlaygroundEditorTheme__tableCellHeader::before {
5285
+ content: '';
5286
+ position: absolute;
5287
+ right: 0px;
5288
+ top: 50%;
5289
+ transform: translateY(-50%);
5290
+ width: 2px;
5291
+ height: 70%;
5292
+ background: linear-gradient(to bottom, transparent 0%, #475569 10%, #475569 90%, transparent 100%);
5293
+ opacity: 0.7;
5294
+ border-radius: 2px;
5295
+ pointer-events: none;
5296
+ transition: opacity 0.2s ease, height 0.2s ease;
5297
+ }
5298
+
5299
+ /* Visual indicator for resizable columns - left bar on next cell */
5300
+ .PlaygroundEditorTheme__tableCellHeader::after {
5301
+ content: '';
5302
+ position: absolute;
5303
+ left: 0px;
5304
+ top: 50%;
5305
+ transform: translateY(-50%);
5306
+ width: 2px;
5307
+ height: 70%;
5308
+ background: linear-gradient(to bottom, transparent 0%, #475569 10%, #475569 90%, transparent 100%);
5309
+ opacity: 0.7;
5310
+ border-radius: 2px;
5311
+ pointer-events: none;
5312
+ transition: opacity 0.2s ease, height 0.2s ease;
5313
+ }
5314
+
5315
+ /* Show indicator more prominently on hover */
5316
+ .PlaygroundEditorTheme__tableCellHeader:hover::before,
5317
+ .PlaygroundEditorTheme__tableCellHeader:hover::after {
5318
+ opacity: 1;
5319
+ height: 85%;
5320
+ background: linear-gradient(to bottom, transparent 0%, #334155 10%, #334155 90%, transparent 100%);
5321
+ }
5322
+
5323
+ /* Show indicator more prominently on hover */
5324
+ .PlaygroundEditorTheme__tableCellHeader:hover::before,
5325
+ .PlaygroundEditorTheme__tableCellHeader:hover::after {
5326
+ opacity: 1;
5327
+ height: 85%;
5328
+ background: linear-gradient(to bottom, transparent 0%, #334155 10%, #334155 90%, transparent 100%);
5253
5329
  }
5254
5330
 
5255
5331
  .PlaygroundEditorTheme__tableCellHeader * {
5256
5332
  white-space: nowrap;
5257
- display: inline;
5258
5333
  margin: 0;
5259
5334
  }
5260
5335
 
@@ -6746,6 +6821,105 @@ body .ai-chat-popup .ai-chat-input {
6746
6821
  display: none;
6747
6822
  }
6748
6823
  }
6824
+ /* Mentions Plugin Styles */
6825
+
6826
+ .typeahead-popover.mentions-menu {
6827
+ background: hsl(var(--cteditorf47ac10b-popover));
6828
+ border: 1px solid hsl(var(--cteditorf47ac10b-border));
6829
+ border-radius: 8px;
6830
+ box-shadow: 0 4px 12px hsla(var(--cteditorf47ac10b-foreground) / 0.1);
6831
+ padding: 8px;
6832
+ max-height: 300px;
6833
+ overflow-y: auto;
6834
+ min-width: 200px;
6835
+ z-index: 1000;
6836
+ }
6837
+
6838
+ .typeahead-popover.mentions-menu ul {
6839
+ list-style: none;
6840
+ margin: 0;
6841
+ padding: 0;
6842
+ }
6843
+
6844
+ .typeahead-popover.mentions-menu .item {
6845
+ display: flex;
6846
+ align-items: center;
6847
+ gap: 8px;
6848
+ padding: 8px 12px;
6849
+ border-radius: 6px;
6850
+ cursor: pointer;
6851
+ transition: all 0.15s ease;
6852
+ color: hsl(var(--cteditorf47ac10b-foreground));
6853
+ }
6854
+
6855
+ .typeahead-popover.mentions-menu .item:hover {
6856
+ background: hsl(var(--cteditorf47ac10b-accent));
6857
+ }
6858
+
6859
+ .typeahead-popover.mentions-menu .item.selected {
6860
+ background: hsl(var(--cteditorf47ac10b-primary));
6861
+ color: hsl(var(--cteditorf47ac10b-primary-foreground));
6862
+ }
6863
+
6864
+ .typeahead-popover.mentions-menu .item .icon.user {
6865
+ width: 20px;
6866
+ height: 20px;
6867
+ border-radius: 50%;
6868
+ background: hsl(var(--cteditorf47ac10b-muted));
6869
+ display: flex;
6870
+ align-items: center;
6871
+ justify-content: center;
6872
+ flex-shrink: 0;
6873
+ }
6874
+
6875
+ .typeahead-popover.mentions-menu .item .icon.user::before {
6876
+ content: '👤';
6877
+ font-size: 12px;
6878
+ font-style: normal;
6879
+ }
6880
+
6881
+ .typeahead-popover.mentions-menu .item.selected .icon.user {
6882
+ background: hsl(var(--cteditorf47ac10b-primary-foreground) / 0.2);
6883
+ }
6884
+
6885
+ .typeahead-popover.mentions-menu .item .text {
6886
+ flex: 1;
6887
+ font-size: 14px;
6888
+ font-weight: 400;
6889
+ overflow: hidden;
6890
+ text-overflow: ellipsis;
6891
+ white-space: nowrap;
6892
+ }
6893
+
6894
+ .typeahead-popover.mentions-menu .no-users-found {
6895
+ padding: 12px;
6896
+ text-align: center;
6897
+ color: hsl(var(--cteditorf47ac10b-muted-foreground));
6898
+ font-size: 14px;
6899
+ }
6900
+
6901
+ /* Scrollbar styling for mentions menu */
6902
+ .typeahead-popover.mentions-menu::-webkit-scrollbar {
6903
+ width: 6px;
6904
+ }
6905
+
6906
+ .typeahead-popover.mentions-menu::-webkit-scrollbar-track {
6907
+ background: transparent;
6908
+ }
6909
+
6910
+ .typeahead-popover.mentions-menu::-webkit-scrollbar-thumb {
6911
+ background: hsl(var(--cteditorf47ac10b-border));
6912
+ border-radius: 3px;
6913
+ }
6914
+
6915
+ .typeahead-popover.mentions-menu::-webkit-scrollbar-thumb:hover {
6916
+ background: hsl(var(--cteditorf47ac10b-foreground) / 0.3);
6917
+ }
6918
+
6919
+ /* Dark mode specific adjustments */
6920
+ .dark .typeahead-popover.mentions-menu {
6921
+ box-shadow: 0 4px 16px hsla(0, 0%, 0%, 0.4);
6922
+ }
6749
6923
  /* Table Cell Action Button Container and Button Styles */
6750
6924
  .table-cell-action-button-container {
6751
6925
  position: absolute !important;
@@ -6769,17 +6943,17 @@ body .ai-chat-popup .ai-chat-input {
6769
6943
  justify-content: center;
6770
6944
  align-items: center;
6771
6945
  border: 1px solid hsl(var(--cteditorf47ac10b-border));
6772
- width: 28px !important;
6773
- height: 28px !important;
6774
- border-radius: 6px;
6946
+ width: 20px !important;
6947
+ height: 20px !important;
6948
+ border-radius: 4px;
6775
6949
  background: hsl(var(--cteditorf47ac10b-popover)) !important;
6776
6950
  color: hsl(var(--cteditorf47ac10b-popover-foreground)) !important;
6777
6951
  cursor: pointer;
6778
6952
  box-shadow: 0 2px 8px hsl(var(--cteditorf47ac10b-foreground) / 0.1);
6779
6953
  transition: all 0.2s ease;
6780
6954
  padding: 0 !important;
6781
- min-width: 28px;
6782
- max-width: 28px;
6955
+ min-width: 20px;
6956
+ max-width: 20px;
6783
6957
  }
6784
6958
 
6785
6959
  .table-cell-action-button:hover {
@@ -6791,8 +6965,8 @@ body .ai-chat-popup .ai-chat-input {
6791
6965
  }
6792
6966
 
6793
6967
  .table-cell-action-button svg {
6794
- width: 16px;
6795
- height: 16px;
6968
+ width: 12px;
6969
+ height: 12px;
6796
6970
  stroke: currentColor;
6797
6971
  }
6798
6972
 
@@ -6800,8 +6974,8 @@ body .ai-chat-popup .ai-chat-input {
6800
6974
  background-color: transparent;
6801
6975
  background-size: contain;
6802
6976
  display: inline-block;
6803
- height: 8px;
6804
- width: 8px;
6977
+ height: 6px;
6978
+ width: 6px;
6805
6979
  background-image: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgaGVpZ2h0PSIxNiIgZmlsbD0iY3VycmVudENvbG9yIiBjbGFzcz0iYmkgYmktY2hldnJvbi1kb3duIj48cGF0aCBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0xLjY0NiA0LjY0NmEuNS41IDAgMCAxIC43MDggMEw4IDEwLjI5M2w1LjY0Ni01LjY0N2EuNS41IDAgMCAxIC43MDguNzA4bC02IDZhLjUuNSAwIDAgMS0uNzA4IDBsLTYtNmEuNS41IDAgMCAxIDAtLjcwOHoiLz48L3N2Zz4=);
6806
6980
  filter: invert(var(--icon-invert, 0));
6807
6981
  }
@@ -6815,6 +6989,8 @@ body .ai-chat-popup .ai-chat-input {
6815
6989
  min-height: 40px;
6816
6990
  min-width: 200px;
6817
6991
  padding: 6px;
6992
+ overflow-y: auto;
6993
+ overflow-x: hidden;
6818
6994
 
6819
6995
  /* Liquid glass effect */
6820
6996
  background: hsl(var(--cteditorf47ac10b-popover) / 0.85);
@@ -6834,6 +7010,33 @@ body .ai-chat-popup .ai-chat-input {
6834
7010
  animation: dropdownFadeIn 0.2s ease-out;
6835
7011
  }
6836
7012
 
7013
+ /* Custom scrollbar styling */
7014
+ .dropdown.table-drop::-webkit-scrollbar {
7015
+ width: 8px;
7016
+ }
7017
+
7018
+ .dropdown.table-drop::-webkit-scrollbar-track {
7019
+ background: transparent;
7020
+ border-radius: 4px;
7021
+ }
7022
+
7023
+ .dropdown.table-drop::-webkit-scrollbar-thumb {
7024
+ background: rgba(0, 0, 0, 0.2);
7025
+ border-radius: 4px;
7026
+ -webkit-transition: background 0.2s;
7027
+ transition: background 0.2s;
7028
+ }
7029
+
7030
+ .dropdown.table-drop::-webkit-scrollbar-thumb:hover {
7031
+ background: rgba(0, 0, 0, 0.3);
7032
+ }
7033
+
7034
+ /* Firefox scrollbar */
7035
+ .dropdown.table-drop {
7036
+ scrollbar-width: thin;
7037
+ scrollbar-color: rgba(0, 0, 0, 0.2) transparent;
7038
+ }
7039
+
6837
7040
  @keyframes dropdownFadeIn {
6838
7041
  from {
6839
7042
  opacity: 0;
@@ -0,0 +1,6 @@
1
+ interface FeatureSuggestionDialogProps {
2
+ open: boolean;
3
+ onOpenChange: (open: boolean) => void;
4
+ }
5
+ export declare function FeatureSuggestionDialog({ open, onOpenChange, }: FeatureSuggestionDialogProps): import("react/jsx-runtime").JSX.Element;
6
+ export {};
@@ -0,0 +1,11 @@
1
+ import { default as React } from 'react';
2
+ interface ImageComparisonDialogProps {
3
+ open: boolean;
4
+ onOpenChange: (open: boolean) => void;
5
+ oldImageUrl: string;
6
+ newImageUrl: string;
7
+ onReplace: () => void;
8
+ onCancel: () => void;
9
+ }
10
+ export declare const ImageComparisonDialog: React.FC<ImageComparisonDialogProps>;
11
+ export {};
@@ -4,7 +4,8 @@ export interface ImageGenerationManagerRef {
4
4
  setGenerating: (generating: boolean) => void;
5
5
  }
6
6
  interface ImageGenerationManagerProps {
7
- onGenerate: (prompt: string) => Promise<void>;
7
+ onGenerate: (prompt: string) => Promise<string>;
8
+ onInsertImage: (imageUrl: string, prompt: string) => void;
8
9
  }
9
10
  export declare const ImageGenerationManager: React.ForwardRefExoticComponent<ImageGenerationManagerProps & React.RefAttributes<ImageGenerationManagerRef>>;
10
11
  export {};