ct-rich-text-editor 1.3.7 → 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 (26) hide show
  1. package/dist/api/featureSuggestion.d.ts +21 -0
  2. package/dist/assets/style.css +186 -81
  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/{html2pdf.bundle-40cc5697.js → html2pdf.bundle-6d32d085.js} +2 -2
  9. package/dist/{html2pdf.bundle-40cc5697.js.map → html2pdf.bundle-6d32d085.js.map} +1 -1
  10. package/dist/{html2pdf.bundle.min-bb81d5dc.js → html2pdf.bundle.min-b3120e0c.js} +2 -2
  11. package/dist/{html2pdf.bundle.min-bb81d5dc.js.map → html2pdf.bundle.min-b3120e0c.js.map} +1 -1
  12. package/dist/{index-a8476eee.js → index-158a9bd4.js} +2284 -1003
  13. package/dist/index-158a9bd4.js.map +1 -0
  14. package/dist/{index-308e13ae.js → index-42136c92.js} +254 -7
  15. package/dist/index-42136c92.js.map +1 -0
  16. package/dist/{index-f0d8f7a8.js → index-9548fdb4.js} +2 -2
  17. package/dist/{index-f0d8f7a8.js.map → index-9548fdb4.js.map} +1 -1
  18. package/dist/index.js +5 -5
  19. package/dist/nodes/ImageNode.d.ts +8 -2
  20. package/dist/plugins/LinkPreviewPlugin/index.d.ts +2 -0
  21. package/dist/plugins/TableHoverActionsPlugin/index.d.ts +2 -11
  22. package/dist/plugins/TableHoverActionsPlugin/index_old_backup.d.ts +17 -0
  23. package/dist/plugins/TablePlugin.d.ts +1 -1
  24. package/package.json +2 -1
  25. package/dist/index-308e13ae.js.map +0 -1
  26. package/dist/index-a8476eee.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 */
@@ -3055,8 +3059,6 @@ body.dark ::-webkit-scrollbar-thumb {
3055
3059
  .PlaygroundEditorTheme__table td.PlaygroundEditorTheme__tableCellHeader {
3056
3060
  white-space: nowrap !important;
3057
3061
  overflow: hidden !important;
3058
- max-height: 40px !important;
3059
- line-height: 1.2 !important;
3060
3062
  }
3061
3063
 
3062
3064
  /* Prevent wrapping in all nested elements inside table headers */
@@ -3065,10 +3067,6 @@ body.dark ::-webkit-scrollbar-thumb {
3065
3067
  .PlaygroundEditorTheme__table th *,
3066
3068
  .PlaygroundEditorTheme__table td.PlaygroundEditorTheme__tableCellHeader * {
3067
3069
  white-space: nowrap !important;
3068
- display: inline !important;
3069
- margin: 0 !important;
3070
- padding: 0 !important;
3071
- line-height: 1.2 !important;
3072
3070
  }
3073
3071
 
3074
3072
  /* Force br tags to not create new lines in headers */
@@ -3094,6 +3092,26 @@ body.dark ::-webkit-scrollbar-thumb {
3094
3092
  height: auto;
3095
3093
  }
3096
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
+
3097
3115
  .PlaygroundEditorTheme__hr {
3098
3116
  background-color: transparent;
3099
3117
  }
@@ -3221,12 +3239,14 @@ body .ai-chat-popup .ai-chat-input {
3221
3239
  color: hsl(var(--cteditorf47ac10b-foreground));
3222
3240
  }
3223
3241
 
3224
- .placeholder\:cteditor-text-background::-moz-placeholder{
3225
- 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));
3226
3245
  }
3227
3246
 
3228
- .placeholder\:cteditor-text-background::placeholder{
3229
- 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));
3230
3250
  }
3231
3251
 
3232
3252
  .placeholder\:cteditor-text-muted-foreground::-moz-placeholder{
@@ -3237,16 +3257,6 @@ body .ai-chat-popup .ai-chat-input {
3237
3257
  color: hsl(var(--cteditorf47ac10b-muted-foreground));
3238
3258
  }
3239
3259
 
3240
- .checked\:cteditor-border-blue-600:checked{
3241
- --tw-border-opacity: 1;
3242
- border-color: rgb(37 99 235 / var(--tw-border-opacity, 1));
3243
- }
3244
-
3245
- .checked\:cteditor-bg-blue-600:checked{
3246
- --tw-bg-opacity: 1;
3247
- background-color: rgb(37 99 235 / var(--tw-bg-opacity, 1));
3248
- }
3249
-
3250
3260
  .empty\:before\:cteditor-text-muted-foreground\/60:empty::before{
3251
3261
  content: var(--tw-content);
3252
3262
  color: hsl(var(--cteditorf47ac10b-muted-foreground) / 0.6);
@@ -3280,11 +3290,6 @@ body .ai-chat-popup .ai-chat-input {
3280
3290
  border-color: rgb(245 158 11 / var(--tw-border-opacity, 1));
3281
3291
  }
3282
3292
 
3283
- .hover\:cteditor-border-blue-500:hover{
3284
- --tw-border-opacity: 1;
3285
- border-color: rgb(59 130 246 / var(--tw-border-opacity, 1));
3286
- }
3287
-
3288
3293
  .hover\:cteditor-border-gray-500:hover{
3289
3294
  --tw-border-opacity: 1;
3290
3295
  border-color: rgb(107 114 128 / var(--tw-border-opacity, 1));
@@ -3398,6 +3403,11 @@ body .ai-chat-popup .ai-chat-input {
3398
3403
  background-color: rgb(147 51 234 / var(--tw-bg-opacity, 1));
3399
3404
  }
3400
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
+
3401
3411
  .hover\:cteditor-bg-rose-100:hover{
3402
3412
  --tw-bg-opacity: 1;
3403
3413
  background-color: rgb(255 228 230 / var(--tw-bg-opacity, 1));
@@ -3426,6 +3436,11 @@ body .ai-chat-popup .ai-chat-input {
3426
3436
  color: hsl(var(--cteditorf47ac10b-accent-foreground));
3427
3437
  }
3428
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
+
3429
3444
  .hover\:cteditor-text-destructive-foreground:hover{
3430
3445
  color: hsl(var(--cteditorf47ac10b-destructive-foreground));
3431
3446
  }
@@ -3451,8 +3466,9 @@ body .ai-chat-popup .ai-chat-input {
3451
3466
  color: hsl(var(--cteditorf47ac10b-primary-foreground));
3452
3467
  }
3453
3468
 
3454
- .hover\:cteditor-text-primary\/80:hover{
3455
- 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));
3456
3472
  }
3457
3473
 
3458
3474
  .hover\:cteditor-underline:hover{
@@ -3517,6 +3533,11 @@ body .ai-chat-popup .ai-chat-input {
3517
3533
  box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000);
3518
3534
  }
3519
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
+
3520
3541
  .focus\:cteditor-ring-primary\/20:focus{
3521
3542
  --tw-ring-color: hsl(var(--cteditorf47ac10b-primary) / 0.2);
3522
3543
  }
@@ -3556,6 +3577,11 @@ body .ai-chat-popup .ai-chat-input {
3556
3577
  box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000);
3557
3578
  }
3558
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
+
3559
3585
  .focus-visible\:cteditor-ring-ring:focus-visible{
3560
3586
  --tw-ring-color: hsl(var(--cteditorf47ac10b-ring));
3561
3587
  }
@@ -3586,16 +3612,14 @@ body .ai-chat-popup .ai-chat-input {
3586
3612
  color: hsl(var(--cteditorf47ac10b-primary));
3587
3613
  }
3588
3614
 
3589
- .cteditor-group:hover .group-hover\:cteditor-text-foreground{
3590
- color: hsl(var(--cteditorf47ac10b-foreground));
3591
- }
3592
-
3593
- .cteditor-group:hover .group-hover\:cteditor-text-primary{
3594
- 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));
3595
3618
  }
3596
3619
 
3597
- .cteditor-peer:checked ~ .peer-checked\:cteditor-opacity-100{
3598
- 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));
3599
3623
  }
3600
3624
 
3601
3625
  .cteditor-peer:disabled ~ .peer-disabled\:cteditor-cursor-not-allowed{
@@ -4263,10 +4287,6 @@ body .ai-chat-popup .ai-chat-input {
4263
4287
  -webkit-line-clamp: 1;
4264
4288
  }
4265
4289
 
4266
- .\[\&\>span\]\:checked\:cteditor-opacity-100:checked>span{
4267
- opacity: 1;
4268
- }
4269
-
4270
4290
  .\[\&\>span\]\:hover\:cteditor-bottom-full:hover>span{
4271
4291
  bottom: 100%;
4272
4292
  }
@@ -4359,12 +4379,21 @@ body .ai-chat-popup .ai-chat-input {
4359
4379
  height: auto;
4360
4380
  }
4361
4381
 
4362
- /* 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 */
4363
4391
  .PlaygroundEditorTheme__table,
4364
4392
  .table {
4365
- max-width: 100%;
4393
+ width: calc(100% - 24px) !important;
4394
+ table-layout: fixed !important;
4366
4395
  overflow-x: auto;
4367
- display: block;
4396
+ display: table;
4368
4397
  }
4369
4398
 
4370
4399
  /* Prevent table header text wrapping */
@@ -4373,8 +4402,6 @@ body .ai-chat-popup .ai-chat-input {
4373
4402
  .PlaygroundEditorTheme__table td.PlaygroundEditorTheme__tableCellHeader {
4374
4403
  white-space: nowrap !important;
4375
4404
  overflow: hidden !important;
4376
- max-height: 40px !important;
4377
- line-height: 1.2 !important;
4378
4405
  }
4379
4406
 
4380
4407
  /* Prevent wrapping in all nested elements inside table headers */
@@ -4382,10 +4409,6 @@ body .ai-chat-popup .ai-chat-input {
4382
4409
  .PlaygroundEditorTheme__table th *,
4383
4410
  .PlaygroundEditorTheme__table td.PlaygroundEditorTheme__tableCellHeader * {
4384
4411
  white-space: nowrap !important;
4385
- display: inline !important;
4386
- margin: 0 !important;
4387
- padding: 0 !important;
4388
- line-height: 1.2 !important;
4389
4412
  }
4390
4413
 
4391
4414
  /* Force br tags to not create new lines in headers */
@@ -5189,11 +5212,14 @@ body .ai-chat-popup .ai-chat-input {
5189
5212
  border-collapse: collapse;
5190
5213
  border-spacing: 0;
5191
5214
  overflow-y: visible;
5192
- overflow-x: visible;
5215
+ overflow-x: auto;
5193
5216
  table-layout: fixed;
5194
- /* Remove width constraint - let inline styles control it */
5217
+ width: 100% !important; /* Full editor width like TinyMCE */
5195
5218
  margin-top: 25px;
5196
5219
  margin-bottom: 30px;
5220
+ margin-left: 0;
5221
+ margin-right: 0;
5222
+ display: block;
5197
5223
  }
5198
5224
 
5199
5225
  .PlaygroundEditorTheme__tableRowStriping tr:nth-child(even) {
@@ -5218,10 +5244,10 @@ body .ai-chat-popup .ai-chat-input {
5218
5244
 
5219
5245
  .PlaygroundEditorTheme__tableCell {
5220
5246
  border: 1px solid #bbb;
5221
- width: 75px;
5247
+ /* width removed - controlled by colgroup */
5222
5248
  vertical-align: top;
5223
5249
  text-align: start;
5224
- padding: 6px 8px;
5250
+ padding: 12px 12px 12px 16px;
5225
5251
  position: relative;
5226
5252
  outline: none;
5227
5253
  overflow: auto;
@@ -5249,11 +5275,61 @@ body .ai-chat-popup .ai-chat-input {
5249
5275
  text-align: start;
5250
5276
  white-space: nowrap;
5251
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%);
5252
5329
  }
5253
5330
 
5254
5331
  .PlaygroundEditorTheme__tableCellHeader * {
5255
5332
  white-space: nowrap;
5256
- display: inline;
5257
5333
  margin: 0;
5258
5334
  }
5259
5335
 
@@ -6913,6 +6989,8 @@ body .ai-chat-popup .ai-chat-input {
6913
6989
  min-height: 40px;
6914
6990
  min-width: 200px;
6915
6991
  padding: 6px;
6992
+ overflow-y: auto;
6993
+ overflow-x: hidden;
6916
6994
 
6917
6995
  /* Liquid glass effect */
6918
6996
  background: hsl(var(--cteditorf47ac10b-popover) / 0.85);
@@ -6932,6 +7010,33 @@ body .ai-chat-popup .ai-chat-input {
6932
7010
  animation: dropdownFadeIn 0.2s ease-out;
6933
7011
  }
6934
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
+
6935
7040
  @keyframes dropdownFadeIn {
6936
7041
  from {
6937
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 {};
@@ -2,7 +2,8 @@ import { default as React } from 'react';
2
2
  interface ImageGenerationDialogProps {
3
3
  open: boolean;
4
4
  onOpenChange: (open: boolean) => void;
5
- onGenerate: (prompt: string) => Promise<void>;
5
+ onGenerate: (prompt: string) => Promise<string>;
6
+ onInsertImage: (imageUrl: string, prompt: string) => void;
6
7
  isGenerating: boolean;
7
8
  initialText?: string;
8
9
  }
@@ -1,6 +1,6 @@
1
1
  import { LexicalCommand, LexicalEditor, NodeKey } from '../../../node_modules/lexical';
2
2
  export declare const RIGHT_CLICK_IMAGE_COMMAND: LexicalCommand<MouseEvent>;
3
- export default function ImageComponent({ src, altText, nodeKey, width, height, maxWidth, resizable, showCaption, caption, captionsEnabled, }: {
3
+ export default function ImageComponent({ src, altText, nodeKey, width, height, maxWidth, resizable, showCaption, caption, captionsEnabled, originalPrompt, }: {
4
4
  altText: string;
5
5
  caption: LexicalEditor;
6
6
  height: "inherit" | number;
@@ -11,4 +11,5 @@ export default function ImageComponent({ src, altText, nodeKey, width, height, m
11
11
  src: string;
12
12
  width: "inherit" | number;
13
13
  captionsEnabled: boolean;
14
+ originalPrompt?: string;
14
15
  }): JSX.Element;
@@ -4,7 +4,7 @@ var __publicField = (obj, key, value) => {
4
4
  __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
5
5
  return value;
6
6
  };
7
- import { g as getDefaultExportFromCjs, c as commonjsGlobal } from "./index-a8476eee.js";
7
+ import { g as getDefaultExportFromCjs, c as commonjsGlobal } from "./index-158a9bd4.js";
8
8
  function _mergeNamespaces(n, m) {
9
9
  for (var i = 0; i < m.length; i++) {
10
10
  const e = m[i];
@@ -46125,4 +46125,4 @@ const html2pdf_bundle$1 = /* @__PURE__ */ _mergeNamespaces({
46125
46125
  export {
46126
46126
  html2pdf_bundle$1 as h
46127
46127
  };
46128
- //# sourceMappingURL=html2pdf.bundle-40cc5697.js.map
46128
+ //# sourceMappingURL=html2pdf.bundle-6d32d085.js.map