@windoc/react 0.3.11 → 0.3.13

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@windoc/react",
3
- "version": "0.3.11",
3
+ "version": "0.3.13",
4
4
  "description": "React bindings for windoc editor",
5
5
  "homepage": "https://aliansyahfirdaus.github.io/windoc/",
6
6
  "repository": {
@@ -50,7 +50,7 @@
50
50
  "react-dom": ">=18"
51
51
  },
52
52
  "dependencies": {
53
- "@windoc/core": "^0.3.11"
53
+ "@windoc/core": "^0.3.13"
54
54
  },
55
55
  "devDependencies": {
56
56
  "@types/react": "^19",
@@ -130,21 +130,78 @@ ul {
130
130
  .menu-item .select {
131
131
  border: none;
132
132
  font-size: 12px;
133
- line-height: 28px;
133
+ display: flex;
134
+ align-items: center;
135
+ height: 100%;
134
136
  user-select: none;
135
137
  font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif;
136
138
  }
137
139
 
138
- .menu-item .select::after {
139
- position: absolute;
140
- content: "";
141
- top: 12px;
142
- width: 0;
143
- height: 0;
144
- right: 8px;
145
- border-color: #667085 transparent transparent;
146
- border-style: solid solid none;
147
- border-width: 3px 3px 0;
140
+ /* Shared split select group: label + arrow */
141
+ .menu-item > .menu-item__select-group {
142
+ width: auto;
143
+ height: 28px;
144
+ border: none;
145
+ background: transparent;
146
+ padding: 0;
147
+ margin: 0 2px;
148
+ display: inline-flex;
149
+ align-items: center;
150
+ justify-content: flex-start;
151
+ cursor: default;
152
+ position: relative;
153
+ }
154
+
155
+ .menu-item > .menu-item__select-group:hover {
156
+ background: transparent;
157
+ border-color: transparent;
158
+ }
159
+
160
+ .menu-item__select-text {
161
+ height: 28px;
162
+ display: inline-flex;
163
+ align-items: center;
164
+ padding: 0 8px;
165
+ border: 1px solid #d0d5dd;
166
+ border-right-color: #fff;
167
+ border-radius: 8px 0 0 8px;
168
+ background: #fff;
169
+ color: #344054;
170
+ font-size: 12px;
171
+ font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif;
172
+ cursor: pointer;
173
+ user-select: none;
174
+ white-space: nowrap;
175
+ transition: all 0.2s;
176
+ }
177
+
178
+ .menu-item__select-text:hover {
179
+ background: #f2f4f7;
180
+ border-color: #667085;
181
+ border-right-color: #fff;
182
+ }
183
+
184
+ .menu-item__select-arrow {
185
+ width: 14px;
186
+ height: 28px;
187
+ padding-right: 2px;
188
+ display: inline-flex;
189
+ align-items: center;
190
+ justify-content: center;
191
+ border: 1px solid #d0d5dd;
192
+ border-left-color: #fff;
193
+ border-radius: 0 8px 8px 0;
194
+ background: #fff;
195
+ color: #667085;
196
+ cursor: pointer;
197
+ position: relative;
198
+ transition: all 0.2s;
199
+ flex-shrink: 0;
200
+ }
201
+
202
+ .menu-item__select-arrow:hover {
203
+ background: #f2f4f7;
204
+ border-color: #667085;
148
205
  }
149
206
 
150
207
  .menu-item .options {
@@ -188,58 +245,6 @@ ul {
188
245
  color: #3b82f6;
189
246
  }
190
247
 
191
- .menu-item .menu-item__font {
192
- width: auto;
193
- min-width: 65px;
194
- height: 28px;
195
- position: relative;
196
- border: 1px solid #d0d5dd;
197
- border-radius: 8px;
198
- background: #fff;
199
- padding: 0 20px 0 8px;
200
- margin: 0 2px;
201
- cursor: pointer;
202
- transition: all 0.2s;
203
- }
204
-
205
- .menu-item .menu-item__font:hover {
206
- background: #f2f4f7;
207
- border-color: #667085;
208
- }
209
-
210
- .menu-item .menu-item__size {
211
- width: auto;
212
- min-width: 45px;
213
- height: 28px;
214
- text-align: center;
215
- position: relative;
216
- border: 1px solid #d0d5dd;
217
- border-radius: 8px;
218
- background: #fff;
219
- padding: 0 20px 0 8px;
220
- margin: 0 2px;
221
- cursor: pointer;
222
- transition: all 0.2s;
223
- }
224
-
225
- .menu-item .menu-item__size:hover {
226
- background: #f2f4f7;
227
- border-color: #667085;
228
- }
229
-
230
- .menu-item__font .select,
231
- .menu-item__size .select {
232
- width: 100%;
233
- height: 100%;
234
- }
235
-
236
- .menu-item .menu-item__font .options {
237
- width: 150px;
238
- }
239
-
240
- .menu-item .menu-item__size .options {
241
- width: 60px;
242
- }
243
248
 
244
249
  .menu-item__undo.no-allow,
245
250
  .menu-item__redo.no-allow,
@@ -283,71 +288,107 @@ ul {
283
288
  background-image: url("./images/italic.svg");
284
289
  }
285
290
 
286
- .menu-item .menu-item__underline {
291
+ /* Split underline button: icon + arrow as two connected buttons */
292
+ .menu-item > .menu-item__underline-group {
287
293
  width: auto;
288
- min-width: 38px;
289
294
  height: 28px;
290
- position: relative;
291
- border: 1px solid #d0d5dd;
292
- border-radius: 8px;
293
- background: #fff;
294
- padding: 0 18px 0 4px;
295
+ border: none;
296
+ border-radius: 0;
297
+ background: transparent;
298
+ padding: 0;
295
299
  margin: 0 2px;
296
300
  display: flex;
297
301
  align-items: center;
298
- transition: all 0.2s;
302
+ cursor: default;
303
+ position: relative;
299
304
  }
300
305
 
301
- .menu-item .menu-item__underline svg {
306
+ .menu-item > .menu-item__underline-group:hover {
307
+ background: transparent;
308
+ border-color: transparent;
309
+ }
310
+
311
+ .menu-item__underline-btn {
312
+ width: 28px;
313
+ height: 28px;
314
+ display: flex;
315
+ align-items: center;
316
+ justify-content: center;
317
+ border: 1px solid #d0d5dd;
318
+ border-right-color: #fff;
319
+ border-radius: 8px 0 0 8px;
320
+ background: #fff;
321
+ color: #475467;
322
+ cursor: pointer;
323
+ transition: all 0.2s;
302
324
  flex-shrink: 0;
303
- width: 16px;
304
- height: 16px;
305
325
  }
306
326
 
307
- .menu-item .menu-item__underline:hover {
327
+ .menu-item__underline-btn:hover {
308
328
  background: #f2f4f7;
309
329
  border-color: #667085;
310
330
  }
311
331
 
312
- .menu-item__underline > i {
332
+ .menu-item__underline-btn.active {
333
+ border-color: #3b82f6;
334
+ background: #eff6ff;
335
+ color: #3b82f6;
336
+ }
337
+
338
+ .menu-item__underline-arrow {
339
+ width: 14px;
340
+ padding-right: 2px;
341
+ height: 28px;
342
+ display: flex;
343
+ align-items: center;
344
+ justify-content: center;
345
+ border: 1px solid #d0d5dd;
346
+ border-left-color: #fff;
347
+ border-radius: 0 8px 8px 0;
348
+ background: #fff;
349
+ color: #667085;
350
+ cursor: pointer;
351
+ position: relative;
352
+ transition: all 0.2s;
313
353
  flex-shrink: 0;
314
- background-image: url("./images/underline.svg");
315
354
  }
316
355
 
317
- .menu-item__underline .select {
318
- width: 100%;
319
- height: 100%;
356
+ .menu-item__underline-arrow:hover {
357
+ background: #f2f4f7;
358
+ border-color: #667085;
320
359
  }
321
360
 
322
- .menu-item .menu-item__underline .options {
361
+ .menu-item__underline-arrow .options {
323
362
  width: 128px;
363
+ left: auto;
364
+ right: 0;
324
365
  }
325
366
 
326
- .menu-item .menu-item__underline li {
367
+ .menu-item__underline-arrow li {
327
368
  padding: 1px 5px;
328
369
  }
329
370
 
330
- .menu-item__underline li i {
371
+ .menu-item__underline-arrow li i {
331
372
  pointer-events: none;
332
373
  }
333
374
 
334
- .menu-item__underline li[data-decoration-style="solid"] {
375
+ .menu-item__underline-arrow li[data-decoration-style="solid"] {
335
376
  background-image: url("./images/line-single.svg");
336
377
  }
337
378
 
338
- .menu-item__underline li[data-decoration-style="double"] {
379
+ .menu-item__underline-arrow li[data-decoration-style="double"] {
339
380
  background-image: url("./images/line-double.svg");
340
381
  }
341
382
 
342
- .menu-item__underline li[data-decoration-style="dashed"] {
383
+ .menu-item__underline-arrow li[data-decoration-style="dashed"] {
343
384
  background-image: url("./images/line-dash-small-gap.svg");
344
385
  }
345
386
 
346
- .menu-item__underline li[data-decoration-style="dotted"] {
387
+ .menu-item__underline-arrow li[data-decoration-style="dotted"] {
347
388
  background-image: url("./images/line-dot.svg");
348
389
  }
349
390
 
350
- .menu-item__underline li[data-decoration-style="wavy"] {
391
+ .menu-item__underline-arrow li[data-decoration-style="wavy"] {
351
392
  background-image: url("./images/line-wavy.svg");
352
393
  }
353
394
 
@@ -364,7 +405,9 @@ ul {
364
405
  }
365
406
 
366
407
  .menu-item__color,
367
- .menu-item__highlight {
408
+ .menu-item__highlight,
409
+ .menu-item__td-bg-color,
410
+ .menu-item__td-border-color {
368
411
  display: flex;
369
412
  flex-direction: column;
370
413
  align-items: center;
@@ -382,7 +425,9 @@ ul {
382
425
  }
383
426
 
384
427
  .menu-item__color:hover,
385
- .menu-item__highlight:hover {
428
+ .menu-item__highlight:hover,
429
+ .menu-item__td-bg-color:hover,
430
+ .menu-item__td-border-color:hover {
386
431
  background: #f2f4f7;
387
432
  border-color: #667085;
388
433
  }
@@ -412,35 +457,15 @@ ul {
412
457
  background-color: #ffff00;
413
458
  }
414
459
 
415
- .menu-item .menu-item__title {
416
- width: auto;
417
- min-width: 60px;
418
- height: 28px;
419
- position: relative;
420
- border: 1px solid #d0d5dd;
421
- border-radius: 8px;
422
- background: #fff;
423
- padding: 0 20px 0 8px;
424
- margin: 0 2px;
425
- cursor: pointer;
426
- display: flex;
427
- align-items: center;
428
- transition: all 0.2s;
429
- }
430
-
431
- .menu-item .menu-item__title:hover {
432
- background: #f2f4f7;
433
- border-color: #667085;
460
+ .menu-item__td-bg-color span {
461
+ background-color: transparent;
462
+ border: 1px dashed #ccc;
434
463
  }
435
464
 
436
- .menu-item__title .select {
437
- width: 100%;
438
- height: 100%;
465
+ .menu-item__td-border-color span {
466
+ background-color: #000000;
439
467
  }
440
468
 
441
- .menu-item__title .options {
442
- width: 100px;
443
- }
444
469
 
445
470
  .menu-item__left i {
446
471
  background-image: url("./images/left.svg");
@@ -470,45 +495,74 @@ ul {
470
495
  background-image: url("./images/row-margin.svg");
471
496
  }
472
497
 
473
- .menu-item__list {
498
+ /* Split list button: icon + arrow */
499
+ .menu-item > .menu-item__list-group {
500
+ width: auto;
501
+ height: 28px;
502
+ border: none;
503
+ border-radius: 0;
504
+ background: transparent;
505
+ padding: 0;
506
+ margin: 0 2px;
507
+ display: flex;
508
+ align-items: center;
509
+ cursor: default;
474
510
  position: relative;
511
+ }
512
+
513
+ .menu-item > .menu-item__list-group:hover {
514
+ background: transparent;
515
+ border-color: transparent;
516
+ }
517
+
518
+ .menu-item__list-btn {
475
519
  width: 28px;
476
520
  height: 28px;
477
521
  display: flex;
478
522
  align-items: center;
479
523
  justify-content: center;
480
524
  border: 1px solid #d0d5dd;
481
- border-radius: 8px;
525
+ border-right-color: #fff;
526
+ border-radius: 8px 0 0 8px;
482
527
  background: #fff;
483
528
  color: #475467;
484
- margin: 0 2px;
485
529
  cursor: pointer;
486
530
  transition: all 0.2s;
531
+ flex-shrink: 0;
487
532
  }
488
533
 
489
- .menu-item__list:hover {
534
+ .menu-item__list-btn:hover {
490
535
  background: #f2f4f7;
491
536
  border-color: #667085;
492
537
  }
493
538
 
494
- .menu-item__list i {
495
- background-image: url("./images/list.svg");
496
- }
497
-
498
- .menu-item__list .options {
499
- width: 110px;
500
- }
501
-
502
- .menu-item__list .options > ul > li * {
503
- pointer-events: none;
539
+ .menu-item__list-btn.active {
540
+ border-color: #3b82f6;
541
+ background: #eff6ff;
542
+ color: #3b82f6;
504
543
  }
505
544
 
506
- .menu-item__list .options > ul > li li {
507
- margin-left: 18px;
545
+ .menu-item__list-arrow {
546
+ width: 14px;
547
+ padding-right: 2px;
548
+ height: 28px;
549
+ display: flex;
550
+ align-items: center;
551
+ justify-content: center;
552
+ border: 1px solid #d0d5dd;
553
+ border-left-color: #fff;
554
+ border-radius: 0 8px 8px 0;
555
+ background: #fff;
556
+ color: #667085;
557
+ cursor: pointer;
558
+ position: relative;
559
+ transition: all 0.2s;
560
+ flex-shrink: 0;
508
561
  }
509
562
 
510
- .menu-item__list .options > ul > li[data-list-style="checkbox"] li::marker {
511
- font-size: 11px;
563
+ .menu-item__list-arrow:hover {
564
+ background: #f2f4f7;
565
+ border-color: #667085;
512
566
  }
513
567
 
514
568
  .menu-item__image i {
@@ -892,36 +946,6 @@ ul {
892
946
  background-image: url("./images/print.svg");
893
947
  }
894
948
 
895
- .menu-item .menu-item__column {
896
- width: auto;
897
- min-width: 65px;
898
- height: 28px;
899
- position: relative;
900
- display: flex;
901
- align-items: center;
902
- border: 1px solid #d0d5dd;
903
- border-radius: 8px;
904
- background: #fff;
905
- color: #475467;
906
- padding: 0 20px 0 8px;
907
- margin: 0 2px;
908
- cursor: pointer;
909
- transition: all 0.2s;
910
- }
911
-
912
- .menu-item .menu-item__column:hover {
913
- background: #f2f4f7;
914
- border-color: #667085;
915
- }
916
-
917
- .menu-item__column .select {
918
- width: 100%;
919
- height: 100%;
920
- }
921
-
922
- .menu-item .menu-item__column .options {
923
- width: 130px;
924
- }
925
949
 
926
950
  .option-divider {
927
951
  height: 1px;
@@ -952,36 +976,6 @@ ul {
952
976
  text-align: center;
953
977
  }
954
978
 
955
- .menu-item__line-height {
956
- width: auto;
957
- min-width: 52px;
958
- height: 28px;
959
- position: relative;
960
- display: flex;
961
- align-items: center;
962
- border: 1px solid #d0d5dd;
963
- border-radius: 8px;
964
- background: #fff;
965
- color: #475467;
966
- padding: 0 20px 0 8px;
967
- margin: 0 2px;
968
- cursor: pointer;
969
- transition: all 0.2s;
970
- }
971
-
972
- .menu-item__line-height:hover {
973
- background: #f2f4f7;
974
- border-color: #667085;
975
- }
976
-
977
- .menu-item__line-height .select {
978
- width: 100%;
979
- height: 100%;
980
- }
981
-
982
- .menu-item__line-height .options {
983
- width: 60px;
984
- }
985
979
 
986
980
  .catalog {
987
981
  width: 250px;