@rufous/ui 0.2.55 → 0.2.56

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/main.css CHANGED
@@ -6595,9 +6595,12 @@ pre {
6595
6595
  }
6596
6596
  .rf-rte-wrapper.rf-rte-resizable {
6597
6597
  resize: vertical;
6598
- overflow: auto;
6598
+ overflow: visible;
6599
6599
  min-height: 200px;
6600
6600
  }
6601
+ .rf-rte-wrapper.rf-rte-resizable .editor-content-wrapper {
6602
+ overflow: auto;
6603
+ }
6601
6604
  .rf-rte-wrapper:focus-within,
6602
6605
  .rf-rte-wrapper:has(.dropdown-menu),
6603
6606
  .rf-rte-wrapper:has(.ai-commands-panel),
@@ -6639,7 +6642,7 @@ pre {
6639
6642
  padding: 4px 8px;
6640
6643
  flex-wrap: wrap;
6641
6644
  }
6642
- .rf-rte-wrapper .toolbar-row .with-close {
6645
+ .rf-rte-wrapper .toolbar-row.with-close {
6643
6646
  width: calc(100% - 32px);
6644
6647
  }
6645
6648
  .rf-rte-wrapper .toolbar-row + .toolbar-row,
@@ -6652,7 +6655,7 @@ pre {
6652
6655
  gap: 1px;
6653
6656
  padding: 4px 0px;
6654
6657
  position: absolute;
6655
- right: 0;
6658
+ right: 4px;
6656
6659
  top: 0;
6657
6660
  width: 32px;
6658
6661
  }
@@ -6761,12 +6764,12 @@ pre {
6761
6764
  flex-shrink: 0;
6762
6765
  }
6763
6766
  .rf-rte-wrapper .dropdown-item:hover {
6764
- background: #e8eaed;
6767
+ background: var(--hover-color, #fff5f5);
6765
6768
  color: #202124;
6766
6769
  }
6767
6770
  .rf-rte-wrapper .dropdown-item.is-active {
6768
- background: #d3e3fd;
6769
- color: #041e49;
6771
+ background: var(--selection-color, #fff5f5);
6772
+ color: #202124;
6770
6773
  font-weight: 500;
6771
6774
  }
6772
6775
  .rf-rte-wrapper .dropdown-item.heading-1 {
@@ -7017,13 +7020,14 @@ pre {
7017
7020
  justify-content: center;
7018
7021
  gap: 6px;
7019
7022
  transition: background 0.12s, color 0.12s;
7023
+ border-radius: 0;
7020
7024
  }
7021
7025
  .rf-rte-wrapper .insert-tab:hover {
7022
- background: #f9fafb;
7026
+ background: var(--hover-color, #fff5f5);
7023
7027
  }
7024
7028
  .rf-rte-wrapper .insert-tab.active {
7025
- background: #f3f4f6;
7026
- color: #111827;
7029
+ background: var(--selection-color, #fff5f5);
7030
+ color: var(--text-color);
7027
7031
  font-weight: 600;
7028
7032
  }
7029
7033
  .rf-rte-wrapper .insert-tab + .insert-tab {
@@ -7136,8 +7140,8 @@ pre {
7136
7140
  transition: background 0.1s;
7137
7141
  }
7138
7142
  .rf-rte-wrapper .char-btn:hover {
7139
- background: #eef2ff;
7140
- border-color: #6366f1;
7143
+ background: var(--hover-color, #fff5f5);
7144
+ border-color: var(--secondary-color, #7f1d1d);
7141
7145
  }
7142
7146
  .rf-rte-wrapper .task-status-item {
7143
7147
  gap: 8px;
@@ -7151,6 +7155,7 @@ pre {
7151
7155
  border-radius: 3px;
7152
7156
  font-size: 12px;
7153
7157
  line-height: 1;
7158
+ box-sizing: unset !important;
7154
7159
  }
7155
7160
  .rf-rte-wrapper .task-icon img {
7156
7161
  width: 18px;
@@ -7883,45 +7888,57 @@ pre {
7883
7888
  left: 0;
7884
7889
  right: 0;
7885
7890
  bottom: 0;
7886
- background: rgba(0, 0, 0, 0.4);
7891
+ background: rgba(0, 0, 0, 0.5);
7887
7892
  z-index: 99999;
7888
7893
  display: flex;
7889
7894
  align-items: center;
7890
7895
  justify-content: center;
7896
+ backdrop-filter: blur(2px);
7891
7897
  }
7892
7898
  .modal-content {
7893
- background: #fff;
7899
+ background: var(--surface-color, #fff);
7900
+ color: var(--text-color, #1f2937);
7894
7901
  border-radius: 12px;
7895
7902
  width: 680px;
7896
7903
  max-width: 95vw;
7897
7904
  max-height: 90vh;
7898
7905
  overflow-y: auto;
7899
- box-shadow: 0 20px 60px rgba(0, 0, 0, 0.2);
7906
+ box-shadow: 0 20px 25px -5px rgba(0, 0, 0, 0.15), 0 10px 10px -5px rgba(0, 0, 0, 0.08);
7900
7907
  }
7901
7908
  .modal-header {
7902
7909
  display: flex;
7903
7910
  justify-content: space-between;
7904
7911
  align-items: center;
7905
- padding: 16px 20px;
7906
- border-bottom: 1px solid #e5e7eb;
7912
+ padding: 15px 24px;
7913
+ border-bottom: 1px solid var(--border-color, #e5e7eb);
7907
7914
  }
7908
7915
  .modal-header h3 {
7909
7916
  margin: 0;
7910
- font-size: 18px;
7911
- font-weight: 600;
7912
- color: #1f2937;
7917
+ font-size: 1.1rem;
7918
+ font-weight: 700;
7919
+ color: var(--text-color, #1f2937);
7913
7920
  }
7914
7921
  .modal-close {
7915
- background: none;
7916
- border: none;
7917
- font-size: 24px;
7918
- color: #9ca3af;
7922
+ background: var(--surface-color, #fff);
7923
+ border: 1px solid var(--border-color, #e5e7eb);
7919
7924
  cursor: pointer;
7920
- padding: 0 4px;
7925
+ width: 36px;
7926
+ height: 36px;
7927
+ padding: 0;
7928
+ display: flex;
7929
+ align-items: center;
7930
+ justify-content: center;
7931
+ border-radius: 8px;
7932
+ font-size: 18px;
7933
+ color: var(--text-secondary, #6b7280);
7921
7934
  line-height: 1;
7935
+ transition: all 0.2s;
7936
+ flex-shrink: 0;
7922
7937
  }
7923
7938
  .modal-close:hover {
7924
- color: #1f2937;
7939
+ border-color: var(--primary-color, #991b1b);
7940
+ background: var(--hover-color, #fff5f5);
7941
+ color: var(--primary-color, #991b1b);
7925
7942
  }
7926
7943
  .modal-body {
7927
7944
  padding: 20px;
@@ -7989,10 +8006,11 @@ pre {
7989
8006
  font-size: 14px;
7990
8007
  cursor: pointer;
7991
8008
  transition: background 0.12s;
8009
+ border-radius: 0;
7992
8010
  }
7993
8011
  .modal-tab.active {
7994
- background: #f3f4f6;
7995
- color: #111827;
8012
+ background: var(--selection-color, #fff5f5);
8013
+ color: var(--text-color);
7996
8014
  font-weight: 600;
7997
8015
  }
7998
8016
  .modal-tab + .modal-tab {
@@ -8043,41 +8061,49 @@ pre {
8043
8061
  display: flex;
8044
8062
  gap: 12px;
8045
8063
  }
8046
- .modal-btn-cancel {
8047
- padding: 8px 16px;
8048
- border: none;
8049
- background: transparent;
8050
- color: #6b7280;
8051
- font-size: 14px;
8052
- cursor: pointer;
8053
- }
8054
- .modal-btn-cancel:hover {
8055
- color: #1f2937;
8056
- }
8064
+ .modal-btn-cancel,
8057
8065
  .modal-btn-delete {
8058
- padding: 8px 16px;
8059
- border: none;
8060
- background: transparent;
8061
- color: #6b7280;
8066
+ background-color: transparent;
8067
+ border: 1.5px solid var(--primary-color, #991b1b);
8068
+ color: var(--primary-color, #991b1b);
8069
+ border-radius: 34px;
8070
+ padding: 10px 24px;
8062
8071
  font-size: 14px;
8072
+ font-weight: 600;
8063
8073
  cursor: pointer;
8074
+ text-transform: uppercase;
8075
+ display: inline-flex;
8076
+ align-items: center;
8077
+ justify-content: center;
8078
+ font-family: inherit;
8079
+ transition: all 0.2s;
8080
+ outline: none;
8064
8081
  }
8082
+ .modal-btn-cancel:hover,
8065
8083
  .modal-btn-delete:hover {
8066
- color: #dc2626;
8084
+ border-color: var(--secondary-color, #7f1d1d);
8085
+ background-color: var(--hover-color, #fff5f5);
8067
8086
  }
8068
8087
  .modal-btn-apply {
8069
- padding: 8px 24px;
8088
+ background-color: var(--primary-color, #991b1b);
8089
+ color: #fff;
8070
8090
  border: none;
8071
8091
  border-radius: 6px;
8072
- background: #991b1b;
8073
- color: #fff;
8092
+ padding: 10px 32px;
8074
8093
  font-size: 14px;
8075
8094
  font-weight: 600;
8076
8095
  cursor: pointer;
8077
- transition: background 0.15s;
8096
+ text-transform: uppercase;
8097
+ display: inline-flex;
8098
+ align-items: center;
8099
+ justify-content: center;
8100
+ font-family: inherit;
8101
+ transition: all 0.2s;
8078
8102
  }
8079
- .modal-btn-apply:hover {
8080
- background: #7f1d1d;
8103
+ .modal-btn-apply:hover:not(:disabled) {
8104
+ background-color: var(--secondary-color, #7f1d1d);
8105
+ box-shadow: 0 4px 12px rgba(0, 0, 0, 0.2);
8106
+ transform: translateY(-1px);
8081
8107
  }
8082
8108
  .rf-rte-wrapper .translate-split-btn {
8083
8109
  display: inline-flex;
@@ -8402,45 +8428,57 @@ pre {
8402
8428
  left: 0;
8403
8429
  right: 0;
8404
8430
  bottom: 0;
8405
- background: rgba(0, 0, 0, 0.4);
8431
+ background: rgba(0, 0, 0, 0.5);
8406
8432
  z-index: 99998;
8407
8433
  display: flex;
8408
8434
  align-items: center;
8409
8435
  justify-content: center;
8436
+ backdrop-filter: blur(2px);
8410
8437
  }
8411
8438
  .ai-modal {
8412
- background: #fff;
8413
- border-radius: 8px;
8439
+ background: var(--surface-color, #fff);
8440
+ color: var(--text-color, #1f2937);
8441
+ border-radius: 12px;
8414
8442
  width: 620px;
8415
8443
  max-width: 90vw;
8416
8444
  max-height: 85vh;
8417
8445
  display: flex;
8418
8446
  flex-direction: column;
8419
- box-shadow: 0 20px 60px rgba(0, 0, 0, 0.2);
8447
+ box-shadow: 0 20px 25px -5px rgba(0, 0, 0, 0.15), 0 10px 10px -5px rgba(0, 0, 0, 0.08);
8420
8448
  }
8421
8449
  .ai-modal-header {
8422
8450
  display: flex;
8423
8451
  align-items: center;
8424
8452
  justify-content: space-between;
8425
- padding: 16px 20px 12px;
8426
- border-bottom: 1px solid #f3f4f6;
8453
+ padding: 15px 24px;
8454
+ border-bottom: 1px solid var(--border-color, #e5e7eb);
8427
8455
  }
8428
8456
  .ai-modal-title {
8429
- font-size: 18px;
8430
- font-weight: 600;
8431
- color: #1f2937;
8457
+ font-size: 1.1rem;
8458
+ font-weight: 700;
8459
+ color: var(--text-color, #1f2937);
8432
8460
  }
8433
8461
  .ai-modal-close {
8434
- background: none;
8435
- border: none;
8436
- font-size: 22px;
8437
- color: #9ca3af;
8462
+ background: var(--surface-color, #fff);
8463
+ border: 1px solid var(--border-color, #e5e7eb);
8438
8464
  cursor: pointer;
8439
- padding: 0 4px;
8465
+ width: 36px;
8466
+ height: 36px;
8467
+ padding: 0;
8468
+ display: flex;
8469
+ align-items: center;
8470
+ justify-content: center;
8471
+ border-radius: 8px;
8472
+ font-size: 18px;
8473
+ color: var(--text-secondary, #6b7280);
8440
8474
  line-height: 1;
8475
+ transition: all 0.2s;
8476
+ flex-shrink: 0;
8441
8477
  }
8442
8478
  .ai-modal-close:hover {
8443
- color: #1f2937;
8479
+ border-color: var(--primary-color, #991b1b);
8480
+ background: var(--hover-color, #fff5f5);
8481
+ color: var(--primary-color, #991b1b);
8444
8482
  }
8445
8483
  .ai-modal-prompt-section {
8446
8484
  padding: 16px 20px 12px;
@@ -8460,36 +8498,37 @@ pre {
8460
8498
  .ai-modal-prompt {
8461
8499
  flex: 1;
8462
8500
  padding: 10px 12px;
8463
- border: 2px solid #3b82f6;
8501
+ border: 1px solid var(--border-color, #e5e7eb);
8464
8502
  border-radius: 6px;
8465
8503
  font-size: 14px;
8466
8504
  font-family: inherit;
8467
- color: #1f2937;
8505
+ color: var(--text-color, #1f2937);
8468
8506
  resize: vertical;
8469
8507
  min-height: 60px;
8470
8508
  outline: none;
8509
+ transition: border-color 0.15s, box-shadow 0.15s;
8471
8510
  }
8472
8511
  .ai-modal-prompt:focus {
8473
- border-color: #2563eb;
8512
+ border-color: var(--primary-color, #991b1b);
8513
+ box-shadow: 0 0 0 2px rgba(153, 27, 27, 0.08);
8474
8514
  }
8475
8515
  .ai-modal-robot-btn {
8476
8516
  flex-shrink: 0;
8477
- width: 40px;
8478
- height: 40px;
8479
- border: 1px solid #e5e7eb;
8480
- border-radius: 6px;
8481
- background: #fff;
8517
+ width: 42px;
8518
+ height: 42px;
8519
+ border: 1px solid var(--border-color, #e5e7eb);
8520
+ border-radius: 8px;
8521
+ background: var(--surface-color, #fff);
8482
8522
  cursor: pointer;
8483
8523
  display: flex;
8484
8524
  align-items: center;
8485
8525
  justify-content: center;
8486
- color: #6b7280;
8526
+ color: var(--primary-color, #991b1b);
8487
8527
  transition: all 0.15s;
8488
8528
  }
8489
8529
  .ai-modal-robot-btn:hover {
8490
- background: #f9fafb;
8491
- color: #1f2937;
8492
- border-color: #d1d5db;
8530
+ background: var(--hover-color, #fff5f5);
8531
+ border-color: var(--primary-color, #991b1b);
8493
8532
  }
8494
8533
  .ai-modal-robot-btn:disabled {
8495
8534
  opacity: 0.4;
@@ -8573,24 +8612,28 @@ pre {
8573
8612
  .ai-modal-footer {
8574
8613
  display: flex;
8575
8614
  justify-content: flex-end;
8576
- padding: 12px 20px 16px;
8615
+ padding: 16px 24px;
8616
+ border-top: 1px solid var(--border-color, #e5e7eb);
8577
8617
  }
8578
8618
  .ai-modal-cancel-btn {
8579
- background: none;
8580
- border: 2px solid #991b1b;
8581
- color: #991b1b;
8582
- padding: 8px 24px;
8583
- border-radius: 6px;
8584
- font-size: 13px;
8585
- font-weight: 700;
8586
- letter-spacing: 0.5px;
8619
+ background-color: transparent;
8620
+ border: 1.5px solid var(--primary-color, #991b1b);
8621
+ color: var(--primary-color, #991b1b);
8622
+ border-radius: 34px;
8623
+ padding: 10px 24px;
8624
+ font-size: 14px;
8625
+ font-weight: 600;
8587
8626
  cursor: pointer;
8627
+ text-transform: uppercase;
8628
+ display: inline-flex;
8629
+ align-items: center;
8630
+ justify-content: center;
8631
+ gap: 8px;
8588
8632
  font-family: inherit;
8589
- transition: all 0.15s;
8633
+ transition: all 0.2s;
8590
8634
  }
8591
8635
  .ai-modal-cancel-btn:hover {
8592
- background: #991b1b;
8593
- color: #fff;
8636
+ background-color: var(--hover-color, #fff5f5);
8594
8637
  }
8595
8638
  .link-modal-overlay {
8596
8639
  position: fixed;
package/dist/main.d.cts CHANGED
@@ -1622,6 +1622,8 @@ interface PhoneFieldProps {
1622
1622
  }
1623
1623
  declare const PhoneField: React__default.ForwardRefExoticComponent<PhoneFieldProps & React__default.RefAttributes<HTMLDivElement>>;
1624
1624
 
1625
+ type ToolbarButton = 'undo' | 'redo' | 'ai' | 'paragraph' | 'fontsize' | 'font' | 'color' | 'bold' | 'italic' | 'strike' | 'link' | 'lineheight' | 'ul' | 'ol' | 'align' | 'indent' | 'outdent' | 'table' | 'image' | 'video' | 'cut' | 'copy' | 'paste' | 'specialchars' | 'code' | 'fullscreen' | 'tts' | 'stt' | 'translate' | 'todo' | '|';
1626
+ type EditorVariant = 'default' | 'basic';
1625
1627
  interface RufousTextEditorProps {
1626
1628
  content?: string;
1627
1629
  placeholder?: string;
@@ -1641,6 +1643,10 @@ interface RufousTextEditorProps {
1641
1643
  name: string;
1642
1644
  avatar?: string;
1643
1645
  }>;
1646
+ variant?: EditorVariant;
1647
+ buttons?: ToolbarButton[];
1648
+ hideButtons?: ToolbarButton[];
1649
+ width?: number | string;
1644
1650
  height?: number | string;
1645
1651
  resizable?: boolean;
1646
1652
  className?: string;
package/dist/main.d.ts CHANGED
@@ -1622,6 +1622,8 @@ interface PhoneFieldProps {
1622
1622
  }
1623
1623
  declare const PhoneField: React__default.ForwardRefExoticComponent<PhoneFieldProps & React__default.RefAttributes<HTMLDivElement>>;
1624
1624
 
1625
+ type ToolbarButton = 'undo' | 'redo' | 'ai' | 'paragraph' | 'fontsize' | 'font' | 'color' | 'bold' | 'italic' | 'strike' | 'link' | 'lineheight' | 'ul' | 'ol' | 'align' | 'indent' | 'outdent' | 'table' | 'image' | 'video' | 'cut' | 'copy' | 'paste' | 'specialchars' | 'code' | 'fullscreen' | 'tts' | 'stt' | 'translate' | 'todo' | '|';
1626
+ type EditorVariant = 'default' | 'basic';
1625
1627
  interface RufousTextEditorProps {
1626
1628
  content?: string;
1627
1629
  placeholder?: string;
@@ -1641,6 +1643,10 @@ interface RufousTextEditorProps {
1641
1643
  name: string;
1642
1644
  avatar?: string;
1643
1645
  }>;
1646
+ variant?: EditorVariant;
1647
+ buttons?: ToolbarButton[];
1648
+ hideButtons?: ToolbarButton[];
1649
+ width?: number | string;
1644
1650
  height?: number | string;
1645
1651
  resizable?: boolean;
1646
1652
  className?: string;