gridjs-spreadsheet 26.7.1 → 26.8.1

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/xspreadsheet.css CHANGED
@@ -18,6 +18,665 @@ body {
18
18
  position: relative;
19
19
  overflow: hidden;
20
20
  }
21
+ .x-spreadsheet-workspace {
22
+ display: grid;
23
+ width: 100%;
24
+ min-height: 0;
25
+ grid-template-columns: minmax(0, 1fr) 0;
26
+ align-items: stretch;
27
+ overflow: hidden;
28
+ }
29
+ .x-spreadsheet-workspace.x-spreadsheet-workspace-format-open {
30
+ grid-template-columns: minmax(0, 1fr) minmax(0, clamp(0px, 42%, 340px));
31
+ }
32
+ .x-spreadsheet-workspace-sheet-pane {
33
+ min-width: 0;
34
+ min-height: 0;
35
+ overflow: hidden;
36
+ }
37
+ .x-spreadsheet-workspace-sheet-pane > .x-spreadsheet-bottombar {
38
+ box-sizing: border-box;
39
+ width: 100%;
40
+ }
41
+ .x-spreadsheet-format-panel {
42
+ position: relative;
43
+ z-index: 90;
44
+ display: flex;
45
+ width: 100%;
46
+ min-width: 0;
47
+ min-height: 0;
48
+ flex-direction: column;
49
+ align-self: stretch;
50
+ box-sizing: border-box;
51
+ overflow: hidden;
52
+ color: #27313d;
53
+ background: #fff;
54
+ border-left: 1px solid #d9dee5;
55
+ box-shadow: -8px 0 24px rgba(31, 42, 55, 0.08);
56
+ opacity: 0;
57
+ visibility: hidden;
58
+ pointer-events: none;
59
+ transform: translate3d(100%, 0, 0);
60
+ transition: transform 240ms cubic-bezier(0.16, 1, 0.3, 1), opacity 180ms ease, visibility 0s linear 240ms;
61
+ }
62
+ .x-spreadsheet-format-panel.x-spreadsheet-format-panel-open {
63
+ opacity: 1;
64
+ visibility: visible;
65
+ pointer-events: auto;
66
+ transform: translate3d(0, 0, 0);
67
+ transition-delay: 0s;
68
+ }
69
+ .x-spreadsheet-format-panel-header {
70
+ display: flex;
71
+ flex: 0 0 52px;
72
+ min-height: 52px;
73
+ align-items: center;
74
+ justify-content: space-between;
75
+ box-sizing: border-box;
76
+ padding: 0 10px 0 16px;
77
+ border-bottom: 1px solid #e4e7eb;
78
+ }
79
+ .x-spreadsheet-format-panel-title {
80
+ overflow: hidden;
81
+ font-size: 15px;
82
+ font-weight: 600;
83
+ line-height: 20px;
84
+ text-overflow: ellipsis;
85
+ white-space: nowrap;
86
+ }
87
+ .x-spreadsheet-format-panel-close,
88
+ .x-spreadsheet-format-panel-tab {
89
+ display: inline-flex;
90
+ align-items: center;
91
+ justify-content: center;
92
+ box-sizing: border-box;
93
+ padding: 0;
94
+ color: inherit;
95
+ font: inherit;
96
+ background: transparent;
97
+ border: 0;
98
+ cursor: pointer;
99
+ }
100
+ .x-spreadsheet-format-panel-close .x-spreadsheet-icon,
101
+ .x-spreadsheet-format-panel-tab .x-spreadsheet-icon {
102
+ margin: 0;
103
+ }
104
+ .x-spreadsheet-format-panel-close {
105
+ width: 32px;
106
+ height: 32px;
107
+ border-radius: 4px;
108
+ }
109
+ .x-spreadsheet-format-panel-close:hover,
110
+ .x-spreadsheet-format-panel-close:focus-visible {
111
+ background: #f0f2f4;
112
+ outline: none;
113
+ }
114
+ .x-spreadsheet-format-panel-close:active {
115
+ transform: scale(0.96);
116
+ }
117
+ .x-spreadsheet-format-panel-tabs {
118
+ display: flex;
119
+ flex: 0 0 56px;
120
+ min-height: 56px;
121
+ align-items: stretch;
122
+ justify-content: center;
123
+ gap: 10px;
124
+ padding: 0 12px;
125
+ border-bottom: 1px solid #e4e7eb;
126
+ }
127
+ .x-spreadsheet-format-panel-tab {
128
+ position: relative;
129
+ width: 42px;
130
+ min-height: 56px;
131
+ cursor: default;
132
+ opacity: 0.56;
133
+ }
134
+ .x-spreadsheet-format-panel-tab:not(:disabled) {
135
+ cursor: pointer;
136
+ opacity: 0.76;
137
+ }
138
+ .x-spreadsheet-format-panel-tab:not(:disabled):hover,
139
+ .x-spreadsheet-format-panel-tab:not(:disabled):focus-visible {
140
+ color: #2f7d50;
141
+ background: #f2f7f4;
142
+ outline: none;
143
+ }
144
+ .x-spreadsheet-format-panel-tab:disabled {
145
+ cursor: not-allowed;
146
+ opacity: 0.32;
147
+ }
148
+ .x-spreadsheet-format-panel-tab.x-spreadsheet-format-panel-tab-active {
149
+ color: #2f7d50;
150
+ opacity: 1;
151
+ }
152
+ .x-spreadsheet-format-panel-tab.x-spreadsheet-format-panel-tab-active:after {
153
+ position: absolute;
154
+ right: 4px;
155
+ bottom: 0;
156
+ left: 4px;
157
+ height: 2px;
158
+ content: '';
159
+ background: #2f7d50;
160
+ }
161
+ .x-spreadsheet-format-panel-body {
162
+ flex: 1 1 0;
163
+ height: 0;
164
+ min-height: 0;
165
+ box-sizing: border-box;
166
+ padding-bottom: 24px;
167
+ overflow-x: hidden;
168
+ overflow-y: auto;
169
+ overscroll-behavior: contain;
170
+ scroll-padding-bottom: 24px;
171
+ scrollbar-color: #a7adb5 #f3f4f6;
172
+ scrollbar-gutter: stable;
173
+ scrollbar-width: thin;
174
+ -webkit-overflow-scrolling: touch;
175
+ background: #fff;
176
+ }
177
+ .x-spreadsheet-format-panel-body::-webkit-scrollbar {
178
+ width: 10px;
179
+ }
180
+ .x-spreadsheet-format-panel-body::-webkit-scrollbar-track {
181
+ background: #f3f4f6;
182
+ }
183
+ .x-spreadsheet-format-panel-body::-webkit-scrollbar-thumb {
184
+ background: #a7adb5;
185
+ background-clip: padding-box;
186
+ border: 2px solid #f3f4f6;
187
+ border-radius: 999px;
188
+ }
189
+ .x-spreadsheet-format-panel-body::-webkit-scrollbar-thumb:hover {
190
+ background: #858d97;
191
+ background-clip: padding-box;
192
+ }
193
+ .x-spreadsheet-format-panel-empty-title {
194
+ margin: 24px 20px 6px;
195
+ font-size: 14px;
196
+ font-weight: 600;
197
+ line-height: 20px;
198
+ }
199
+ .x-spreadsheet-format-panel-empty-description {
200
+ max-width: 250px;
201
+ margin: 0 20px;
202
+ color: #697586;
203
+ font-size: 13px;
204
+ line-height: 20px;
205
+ }
206
+ .x-spreadsheet-format-panel-target {
207
+ padding: 12px 16px;
208
+ background: #fafbfc;
209
+ border-bottom: 1px solid #e4e7eb;
210
+ }
211
+ .x-spreadsheet-format-panel-target-name {
212
+ overflow: hidden;
213
+ color: #27313d;
214
+ font-size: 13px;
215
+ font-weight: 600;
216
+ line-height: 18px;
217
+ text-overflow: ellipsis;
218
+ white-space: nowrap;
219
+ }
220
+ .x-spreadsheet-format-panel-target-type {
221
+ overflow: hidden;
222
+ margin-top: 2px;
223
+ color: #697586;
224
+ font-size: 12px;
225
+ line-height: 16px;
226
+ text-overflow: ellipsis;
227
+ white-space: nowrap;
228
+ }
229
+ .x-spreadsheet-format-panel-locked {
230
+ margin: 12px 16px 0;
231
+ padding: 10px 12px;
232
+ color: #714b00;
233
+ background: #fff8e6;
234
+ border: 1px solid #f0d99b;
235
+ border-radius: 4px;
236
+ }
237
+ .x-spreadsheet-format-panel-locked-title {
238
+ font-size: 13px;
239
+ font-weight: 600;
240
+ line-height: 18px;
241
+ }
242
+ .x-spreadsheet-format-panel-locked-description {
243
+ margin-top: 2px;
244
+ font-size: 12px;
245
+ line-height: 17px;
246
+ }
247
+ .x-spreadsheet-format-panel-sections {
248
+ display: flex;
249
+ flex-direction: column;
250
+ }
251
+ .x-spreadsheet-format-panel-section {
252
+ border-bottom: 1px solid #e4e7eb;
253
+ }
254
+ .x-spreadsheet-format-panel-section-heading {
255
+ margin: 0;
256
+ }
257
+ .x-spreadsheet-format-panel-section-toggle {
258
+ display: flex;
259
+ width: 100%;
260
+ min-height: 46px;
261
+ align-items: center;
262
+ box-sizing: border-box;
263
+ gap: 10px;
264
+ padding: 12px 16px;
265
+ color: #27313d;
266
+ font: inherit;
267
+ text-align: left;
268
+ background: transparent;
269
+ border: 0;
270
+ cursor: pointer;
271
+ }
272
+ .x-spreadsheet-format-panel-section-toggle:hover,
273
+ .x-spreadsheet-format-panel-section-toggle:focus-visible {
274
+ background: #f7f8f9;
275
+ outline: none;
276
+ }
277
+ .x-spreadsheet-format-panel-section-chevron {
278
+ width: 8px;
279
+ height: 8px;
280
+ flex: 0 0 auto;
281
+ border-right: 2px solid currentColor;
282
+ border-bottom: 2px solid currentColor;
283
+ transform: translateY(-2px) rotate(45deg);
284
+ transition: transform 160ms ease;
285
+ }
286
+ .x-spreadsheet-format-panel-section-collapsed .x-spreadsheet-format-panel-section-chevron {
287
+ transform: translate(-2px, 0) rotate(-45deg);
288
+ }
289
+ .x-spreadsheet-format-panel-section-title {
290
+ font-size: 14px;
291
+ font-weight: 600;
292
+ line-height: 20px;
293
+ }
294
+ .x-spreadsheet-format-panel-section-content {
295
+ padding: 0 18px 18px 42px;
296
+ }
297
+ .x-spreadsheet-format-panel-fields {
298
+ display: flex;
299
+ flex-direction: column;
300
+ gap: 10px;
301
+ }
302
+ .x-spreadsheet-format-panel-field {
303
+ display: grid;
304
+ min-width: 0;
305
+ grid-template-columns: minmax(0, 1fr) minmax(128px, 56%);
306
+ align-items: center;
307
+ column-gap: 12px;
308
+ }
309
+ .x-spreadsheet-format-panel-fill-content {
310
+ display: flex;
311
+ flex-direction: column;
312
+ }
313
+ .x-spreadsheet-format-panel-fill-options {
314
+ display: flex;
315
+ flex-direction: column;
316
+ gap: 10px;
317
+ }
318
+ .x-spreadsheet-format-panel-fill-option {
319
+ display: flex;
320
+ min-height: 24px;
321
+ align-items: center;
322
+ gap: 9px;
323
+ color: #3c4653;
324
+ font-size: 13px;
325
+ line-height: 20px;
326
+ cursor: pointer;
327
+ }
328
+ .x-spreadsheet-format-panel-fill-radio {
329
+ width: 17px;
330
+ height: 17px;
331
+ flex: 0 0 auto;
332
+ margin: 0;
333
+ accent-color: #217346;
334
+ }
335
+ .x-spreadsheet-format-panel-fill-divider {
336
+ height: 1px;
337
+ margin: 14px 0;
338
+ background: #d6d9dd;
339
+ }
340
+ .x-spreadsheet-format-panel-fill-editor {
341
+ display: flex;
342
+ flex-direction: column;
343
+ gap: 12px;
344
+ }
345
+ .x-spreadsheet-format-panel-select {
346
+ width: 100%;
347
+ min-width: 0;
348
+ height: 36px;
349
+ box-sizing: border-box;
350
+ padding: 0 30px 0 10px;
351
+ color: #27313d;
352
+ font: inherit;
353
+ font-size: 13px;
354
+ background: #fff;
355
+ border: 1px solid #9aa1a9;
356
+ border-radius: 5px;
357
+ }
358
+ .x-spreadsheet-format-panel-select:hover:not(:disabled),
359
+ .x-spreadsheet-format-panel-select:focus-visible {
360
+ border-color: #217346;
361
+ box-shadow: 0 0 0 2px rgba(33, 115, 70, 0.14);
362
+ outline: none;
363
+ }
364
+ .x-spreadsheet-format-panel-select:disabled {
365
+ color: #89939f;
366
+ background: #f1f3f5;
367
+ border-color: #d4d8dd;
368
+ cursor: not-allowed;
369
+ }
370
+ .x-spreadsheet-format-panel-texture-trigger {
371
+ display: inline-flex;
372
+ width: 82px;
373
+ height: 42px;
374
+ align-items: center;
375
+ justify-self: end;
376
+ justify-content: space-between;
377
+ box-sizing: border-box;
378
+ padding: 4px 10px 4px 5px;
379
+ color: #27313d;
380
+ background: #fff;
381
+ border: 1px solid #8f969e;
382
+ border-radius: 6px;
383
+ cursor: pointer;
384
+ }
385
+ .x-spreadsheet-format-panel-texture-trigger:hover:not(:disabled),
386
+ .x-spreadsheet-format-panel-texture-trigger:focus-visible {
387
+ border-color: #217346;
388
+ box-shadow: 0 0 0 2px rgba(33, 115, 70, 0.14);
389
+ outline: none;
390
+ }
391
+ .x-spreadsheet-format-panel-texture-trigger:disabled {
392
+ cursor: not-allowed;
393
+ opacity: 0.48;
394
+ }
395
+ .x-spreadsheet-format-panel-texture-trigger-preview,
396
+ .x-spreadsheet-format-panel-texture-preview {
397
+ display: block;
398
+ flex: 0 0 auto;
399
+ background-image: url(d022c86edc5b2d12a8d3d4890df3bebb.jpg);
400
+ background-repeat: no-repeat;
401
+ background-size: 500% 500%;
402
+ }
403
+ .x-spreadsheet-format-panel-texture-trigger-preview {
404
+ width: 32px;
405
+ height: 32px;
406
+ border: 1px solid #c5c9ce;
407
+ }
408
+ .x-spreadsheet-format-panel-texture-trigger-arrow {
409
+ width: 7px;
410
+ height: 7px;
411
+ border-right: 1.5px solid currentColor;
412
+ border-bottom: 1.5px solid currentColor;
413
+ transform: translateY(-2px) rotate(45deg);
414
+ }
415
+ .x-spreadsheet-format-panel-texture-gallery {
416
+ display: none;
417
+ grid-template-columns: repeat(5, 64px);
418
+ gap: 4px;
419
+ box-sizing: border-box;
420
+ padding: 8px;
421
+ background: #fff;
422
+ border: 1px solid #8f969e;
423
+ border-radius: 6px;
424
+ box-shadow: 0 10px 28px rgba(31, 42, 55, 0.24);
425
+ }
426
+ .x-spreadsheet-format-panel-texture-option {
427
+ width: 64px;
428
+ height: 64px;
429
+ box-sizing: border-box;
430
+ padding: 2px;
431
+ background: #fff;
432
+ border: 1px solid transparent;
433
+ border-radius: 2px;
434
+ cursor: pointer;
435
+ }
436
+ .x-spreadsheet-format-panel-texture-option:hover,
437
+ .x-spreadsheet-format-panel-texture-option:focus-visible {
438
+ border-color: #66707a;
439
+ outline: none;
440
+ }
441
+ .x-spreadsheet-format-panel-texture-option.x-spreadsheet-format-panel-texture-option-selected {
442
+ border-color: #217346;
443
+ box-shadow: inset 0 0 0 1px #217346;
444
+ }
445
+ .x-spreadsheet-format-panel-texture-preview {
446
+ width: 58px;
447
+ height: 58px;
448
+ }
449
+ .x-spreadsheet-format-panel-unsupported-fill {
450
+ padding: 9px 10px;
451
+ color: #5f6874;
452
+ font-size: 12px;
453
+ line-height: 18px;
454
+ background: #f6f7f8;
455
+ border-radius: 4px;
456
+ }
457
+ .x-spreadsheet-format-panel-label {
458
+ min-width: 0;
459
+ color: #374151;
460
+ font-size: 13px;
461
+ line-height: 18px;
462
+ }
463
+ .x-spreadsheet-format-panel-number-control {
464
+ display: flex;
465
+ min-width: 0;
466
+ height: 36px;
467
+ align-items: center;
468
+ box-sizing: border-box;
469
+ overflow: hidden;
470
+ background: #fff;
471
+ border: 1px solid #9aa1a9;
472
+ border-radius: 5px;
473
+ }
474
+ .x-spreadsheet-format-panel-number-control:hover:not(.x-spreadsheet-format-panel-number-control-disabled) {
475
+ border-color: #66707a;
476
+ }
477
+ .x-spreadsheet-format-panel-number-control:focus-within {
478
+ border-color: #217346;
479
+ box-shadow: 0 0 0 2px rgba(33, 115, 70, 0.14);
480
+ }
481
+ .x-spreadsheet-format-panel-number-control.x-spreadsheet-format-panel-control-invalid {
482
+ border-color: #c43d3d;
483
+ box-shadow: 0 0 0 2px rgba(196, 61, 61, 0.12);
484
+ }
485
+ .x-spreadsheet-format-panel-number-control-disabled {
486
+ background: #f1f3f5;
487
+ border-color: #d4d8dd;
488
+ }
489
+ .x-spreadsheet-format-panel-number-input {
490
+ width: 100%;
491
+ min-width: 0;
492
+ height: 34px;
493
+ box-sizing: border-box;
494
+ padding: 6px 4px 6px 10px;
495
+ color: #27313d;
496
+ font: inherit;
497
+ font-size: 13px;
498
+ background: transparent;
499
+ border: 0;
500
+ outline: none;
501
+ }
502
+ .x-spreadsheet-format-panel-number-input:focus {
503
+ outline: none;
504
+ }
505
+ .x-spreadsheet-format-panel-number-input:disabled {
506
+ color: #89939f;
507
+ background: transparent;
508
+ cursor: not-allowed;
509
+ }
510
+ .x-spreadsheet-format-panel-number-input.x-spreadsheet-format-panel-input-invalid {
511
+ color: #b42318;
512
+ }
513
+ .x-spreadsheet-format-panel-unit {
514
+ display: inline-flex;
515
+ min-width: 28px;
516
+ height: 34px;
517
+ align-items: center;
518
+ justify-content: center;
519
+ box-sizing: border-box;
520
+ flex: 0 0 auto;
521
+ padding: 0 8px 0 4px;
522
+ color: #697586;
523
+ font-size: 12px;
524
+ background: transparent;
525
+ }
526
+ .x-spreadsheet-format-panel-color-control {
527
+ justify-self: end;
528
+ }
529
+ .x-spreadsheet-format-panel-transparency-control {
530
+ display: grid;
531
+ min-width: 0;
532
+ grid-template-columns: minmax(58px, 1fr) 82px;
533
+ align-items: center;
534
+ gap: 8px;
535
+ }
536
+ .x-spreadsheet-format-panel-transparency-range {
537
+ width: 100%;
538
+ min-width: 0;
539
+ accent-color: #217346;
540
+ cursor: pointer;
541
+ }
542
+ .x-spreadsheet-format-panel-transparency-range:disabled {
543
+ cursor: not-allowed;
544
+ opacity: 0.5;
545
+ }
546
+ .x-spreadsheet-format-panel-percent-control {
547
+ width: 82px;
548
+ min-width: 0;
549
+ }
550
+ .x-spreadsheet-format-panel-pattern-label {
551
+ color: #374151;
552
+ font-size: 13px;
553
+ line-height: 18px;
554
+ }
555
+ .x-spreadsheet-format-panel-pattern-gallery {
556
+ display: grid;
557
+ grid-template-columns: repeat(6, 34px);
558
+ gap: 5px;
559
+ }
560
+ .x-spreadsheet-format-panel-pattern-button {
561
+ display: inline-flex;
562
+ width: 34px;
563
+ height: 30px;
564
+ align-items: center;
565
+ justify-content: center;
566
+ box-sizing: border-box;
567
+ padding: 1px;
568
+ overflow: hidden;
569
+ background: #fff;
570
+ border: 1px solid transparent;
571
+ border-radius: 2px;
572
+ cursor: pointer;
573
+ }
574
+ .x-spreadsheet-format-panel-pattern-button:hover:not(:disabled),
575
+ .x-spreadsheet-format-panel-pattern-button:focus-visible {
576
+ border-color: #7c8794;
577
+ outline: none;
578
+ }
579
+ .x-spreadsheet-format-panel-pattern-button:disabled {
580
+ cursor: not-allowed;
581
+ opacity: 0.48;
582
+ }
583
+ .x-spreadsheet-format-panel-pattern-button-selected {
584
+ border-color: #217346;
585
+ box-shadow: 0 0 0 1px #217346;
586
+ }
587
+ .x-spreadsheet-format-panel-pattern-preview {
588
+ display: block;
589
+ width: 30px;
590
+ height: 24px;
591
+ }
592
+ .x-spreadsheet-format-panel-color-button {
593
+ display: inline-flex;
594
+ width: 72px;
595
+ height: 40px;
596
+ align-items: center;
597
+ justify-content: space-between;
598
+ box-sizing: border-box;
599
+ padding: 0 10px;
600
+ color: #27313d;
601
+ background: #fff;
602
+ border: 1px solid #8f969e;
603
+ border-radius: 6px;
604
+ cursor: pointer;
605
+ }
606
+ .x-spreadsheet-format-panel-color-button:hover:not(:disabled),
607
+ .x-spreadsheet-format-panel-color-button:focus-visible {
608
+ border-color: #217346;
609
+ box-shadow: 0 0 0 2px rgba(33, 115, 70, 0.14);
610
+ outline: none;
611
+ }
612
+ .x-spreadsheet-format-panel-color-button:disabled {
613
+ cursor: not-allowed;
614
+ opacity: 0.48;
615
+ }
616
+ .x-spreadsheet-format-panel-color-button-icon {
617
+ position: relative;
618
+ display: inline-flex;
619
+ width: 28px;
620
+ height: 27px;
621
+ align-items: flex-start;
622
+ justify-content: center;
623
+ }
624
+ .x-spreadsheet-format-panel-color-button-icon .x-spreadsheet-icon {
625
+ margin: 0;
626
+ }
627
+ .x-spreadsheet-format-panel-color-swatch {
628
+ position: absolute;
629
+ right: 2px;
630
+ bottom: 0;
631
+ left: 2px;
632
+ height: 3px;
633
+ }
634
+ .x-spreadsheet-format-panel-color-button-arrow {
635
+ width: 7px;
636
+ height: 7px;
637
+ border-right: 1.5px solid currentColor;
638
+ border-bottom: 1.5px solid currentColor;
639
+ transform: translateY(-2px) rotate(45deg);
640
+ }
641
+ .x-spreadsheet-format-panel-color-palette-popup {
642
+ box-sizing: border-box;
643
+ padding: 4px;
644
+ background: #fff;
645
+ border: 1px solid #c8cdd3;
646
+ border-radius: 4px;
647
+ box-shadow: 0 8px 22px rgba(31, 42, 55, 0.2);
648
+ }
649
+ .x-spreadsheet-format-panel-error {
650
+ grid-column: 2;
651
+ margin-top: 4px;
652
+ color: #b42318;
653
+ font-size: 12px;
654
+ line-height: 16px;
655
+ }
656
+ @media (max-width: 720px) {
657
+ .x-spreadsheet-format-panel-section-content {
658
+ padding-right: 16px;
659
+ padding-left: 16px;
660
+ }
661
+ .x-spreadsheet-format-panel-field {
662
+ grid-template-columns: minmax(0, 1fr);
663
+ row-gap: 5px;
664
+ }
665
+ .x-spreadsheet-format-panel-color-control {
666
+ justify-self: start;
667
+ }
668
+ .x-spreadsheet-format-panel-transparency-control {
669
+ width: 100%;
670
+ }
671
+ .x-spreadsheet-format-panel-error {
672
+ grid-column: 1;
673
+ }
674
+ }
675
+ @media (prefers-reduced-motion: reduce) {
676
+ .x-spreadsheet-format-panel {
677
+ transition: none;
678
+ }
679
+ }
21
680
  .x-spreadsheet-table {
22
681
  vertical-align: bottom;
23
682
  }
@@ -76,6 +735,87 @@ body {
76
735
  z-index: 1;
77
736
  box-shadow: 1px 1px 3px -1px rgba(255, 255, 0, 0.3);
78
737
  }
738
+ .x-spreadsheet-comment-tip.has-thread {
739
+ padding: 0;
740
+ background: #fff;
741
+ border: 1.5px solid #D0C4E8;
742
+ border-radius: 8px;
743
+ box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);
744
+ transition: border-color 0.2s, box-shadow 0.2s;
745
+ }
746
+ .x-spreadsheet-comment-tip.has-thread:before {
747
+ display: none;
748
+ }
749
+ .x-spreadsheet-comment-tip.has-thread:hover {
750
+ border-color: #7A5CFF;
751
+ box-shadow: 0 4px 16px rgba(122, 92, 255, 0.15);
752
+ }
753
+ .x-spreadsheet-comment-tip.has-thread .x-spreadsheet-comment-card {
754
+ width: max-content;
755
+ min-width: 260px;
756
+ max-width: 500px;
757
+ }
758
+ .x-spreadsheet-comment-tip .x-spreadsheet-comment-card {
759
+ background: #fff;
760
+ border-radius: 8px;
761
+ min-width: 280px;
762
+ max-width: 420px;
763
+ }
764
+ .x-spreadsheet-comment-tip .x-spreadsheet-comment-card-header {
765
+ display: flex;
766
+ align-items: center;
767
+ justify-content: space-between;
768
+ padding: 8px 14px;
769
+ border-bottom: 1px solid #EDE8F5;
770
+ }
771
+ .x-spreadsheet-comment-tip .x-spreadsheet-comment-cell-ref {
772
+ font-size: 13px;
773
+ font-weight: 600;
774
+ color: #444;
775
+ }
776
+ .x-spreadsheet-comment-tip .x-spreadsheet-comment-card-body {
777
+ padding: 10px 14px;
778
+ }
779
+ .x-spreadsheet-comment-tip .x-spreadsheet-comment-item {
780
+ padding: 6px 0;
781
+ }
782
+ .x-spreadsheet-comment-tip .x-spreadsheet-comment-item-header {
783
+ display: flex;
784
+ align-items: center;
785
+ gap: 7px;
786
+ margin-bottom: 4px;
787
+ }
788
+ .x-spreadsheet-comment-tip .x-spreadsheet-comment-dot {
789
+ width: 8px;
790
+ height: 8px;
791
+ min-width: 8px;
792
+ border-radius: 50%;
793
+ flex-shrink: 0;
794
+ }
795
+ .x-spreadsheet-comment-tip .x-spreadsheet-comment-author {
796
+ font-weight: 600;
797
+ font-size: 13px;
798
+ color: #222;
799
+ }
800
+ .x-spreadsheet-comment-tip .x-spreadsheet-comment-time {
801
+ font-size: 11px;
802
+ color: #999;
803
+ margin-left: auto;
804
+ white-space: nowrap;
805
+ }
806
+ .x-spreadsheet-comment-tip .x-spreadsheet-comment-item-body {
807
+ font-size: 13px;
808
+ color: #333;
809
+ line-height: 1.5;
810
+ padding-left: 15px;
811
+ overflow-wrap: anywhere;
812
+ word-break: break-word;
813
+ }
814
+ .x-spreadsheet-comment-tip .x-spreadsheet-comment-divider {
815
+ height: 1px;
816
+ background: #EDE8F5;
817
+ margin: 4px 0;
818
+ }
79
819
  .x-spreadsheet-html-tip {
80
820
  position: absolute;
81
821
  z-index: 997;
@@ -128,6 +868,13 @@ body {
128
868
  width: 16px;
129
869
  height: 16px;
130
870
  }
871
+ .x-spreadsheet-color-palette table td .x-spreadsheet-color-palette-cell:focus-visible {
872
+ outline: 2px solid #217346;
873
+ outline-offset: 1px;
874
+ }
875
+ .x-spreadsheet-color-palette table td .x-spreadsheet-color-palette-cell[aria-pressed='true'] {
876
+ box-shadow: inset 0 0 0 2px #fff, 0 0 0 1px #217346;
877
+ }
131
878
  .x-spreadsheet-banner {
132
879
  display: flex;
133
880
  width: 100%;
@@ -311,6 +1058,38 @@ body {
311
1058
  font-size: inherit;
312
1059
  color: inherit;
313
1060
  }
1061
+ .x-spreadsheet-batch-delete-menu {
1062
+ overflow: visible !important;
1063
+ }
1064
+ .x-spreadsheet-batch-delete-menu-item {
1065
+ min-width: max-content;
1066
+ cursor: pointer;
1067
+ overflow: visible;
1068
+ white-space: nowrap;
1069
+ }
1070
+ .x-spreadsheet-batch-delete-menu-item .x-spreadsheet-icon {
1071
+ flex-shrink: 0;
1072
+ }
1073
+ .x-spreadsheet-batch-delete-menu-label {
1074
+ flex: 1;
1075
+ }
1076
+ .x-spreadsheet-batch-delete-menu-arrow {
1077
+ margin-left: auto;
1078
+ font-size: 24px;
1079
+ font-weight: 300;
1080
+ line-height: 18px;
1081
+ }
1082
+ .x-spreadsheet-dropdown.x-spreadsheet-batch-delete-submenu {
1083
+ width: 100%;
1084
+ }
1085
+ .x-spreadsheet-dropdown.x-spreadsheet-batch-delete-submenu > .x-spreadsheet-dropdown-header {
1086
+ width: 100%;
1087
+ }
1088
+ .x-spreadsheet-dropdown.x-spreadsheet-batch-delete-submenu > .x-spreadsheet-dropdown-content {
1089
+ top: 0;
1090
+ left: calc(100% + 4px);
1091
+ overflow: visible;
1092
+ }
314
1093
  .x-spreadsheet-autofill-option-group {
315
1094
  background-color: white;
316
1095
  position: absolute;
@@ -523,6 +1302,20 @@ body {
523
1302
  width: 100%;
524
1303
  height: 100%;
525
1304
  }
1305
+ .x-spreadsheet-popup-root {
1306
+ position: fixed;
1307
+ top: 0;
1308
+ right: 0;
1309
+ bottom: 0;
1310
+ left: 0;
1311
+ z-index: 1000;
1312
+ overflow: visible;
1313
+ pointer-events: none;
1314
+ background: transparent;
1315
+ }
1316
+ .x-spreadsheet-popup-root > * {
1317
+ pointer-events: auto;
1318
+ }
526
1319
  .x-spreadsheet-batch-insert-row {
527
1320
  position: absolute;
528
1321
  display: flex;
@@ -1976,6 +2769,9 @@ form fieldset select {
1976
2769
  bottom: 0;
1977
2770
  z-index: 99999;
1978
2771
  }
2772
+ .x-spreadsheet-workspace.x-spreadsheet-workspace-format-open .x-spreadsheet-workspace-sheet-pane > .x-spreadsheet-bottombar {
2773
+ width: 58%;
2774
+ }
1979
2775
  input[type="range"].x-spreadsheet-zoom-slider {
1980
2776
  width: 80px;
1981
2777
  }
@@ -1999,11 +2795,27 @@ form fieldset select {
1999
2795
  display: inline-block;
2000
2796
  }
2001
2797
  .x-spreadsheet-icon .x-spreadsheet-icon-img {
2002
- background-image: url(1f345d060b26fa53bc9d78c36441afd6.svg);
2798
+ background-image: url(544d1ebaa4cddf566b9f3c24186b9873.svg);
2003
2799
  position: absolute;
2004
2800
  width: 262px;
2005
2801
  height: 444px;
2006
2802
  opacity: 0.86;
2803
+ /*
2804
+ // Search & Redact icon (text-based, no sprite dependency)
2805
+ &.searchRedact {
2806
+ background-image: none;
2807
+ width: auto;
2808
+ height: auto;
2809
+ &::before {
2810
+ content: '🔍';
2811
+ font-size: 14px;
2812
+ line-height: 18px;
2813
+ color: #555;
2814
+ display: block;
2815
+ text-align: center;
2816
+ }
2817
+ }
2818
+ */
2007
2819
  }
2008
2820
  .x-spreadsheet-icon .x-spreadsheet-icon-img.undo {
2009
2821
  left: 0;
@@ -2105,6 +2917,40 @@ form fieldset select {
2105
2917
  left: -108px;
2106
2918
  top: -126px;
2107
2919
  }
2920
+ .x-spreadsheet-icon .x-spreadsheet-icon-img.redactionEntire {
2921
+ left: -162px;
2922
+ top: -126px;
2923
+ }
2924
+ .x-spreadsheet-icon .x-spreadsheet-icon-img.redactionHighlightPrev {
2925
+ background-image: none;
2926
+ width: auto;
2927
+ height: auto;
2928
+ }
2929
+ .x-spreadsheet-icon .x-spreadsheet-icon-img.redactionHighlightPrev::before {
2930
+ content: '\25C0';
2931
+ font-size: 14px;
2932
+ line-height: 18px;
2933
+ color: #555;
2934
+ display: block;
2935
+ text-align: center;
2936
+ }
2937
+ .x-spreadsheet-icon .x-spreadsheet-icon-img.redactionHighlightNext {
2938
+ background-image: none;
2939
+ width: auto;
2940
+ height: auto;
2941
+ }
2942
+ .x-spreadsheet-icon .x-spreadsheet-icon-img.redactionHighlightNext::before {
2943
+ content: '\25B6';
2944
+ font-size: 14px;
2945
+ line-height: 18px;
2946
+ color: #555;
2947
+ display: block;
2948
+ text-align: center;
2949
+ }
2950
+ .x-spreadsheet-icon .x-spreadsheet-icon-img.searchRedact {
2951
+ left: -180px;
2952
+ top: -126px;
2953
+ }
2108
2954
  .x-spreadsheet-icon .x-spreadsheet-icon-img.autofilter {
2109
2955
  left: -90px;
2110
2956
  top: -18px;
@@ -2417,6 +3263,10 @@ form fieldset select {
2417
3263
  left: -126px;
2418
3264
  top: -126px;
2419
3265
  }
3266
+ .x-spreadsheet-icon .x-spreadsheet-icon-img.batch-delete {
3267
+ left: -144px;
3268
+ top: -126px;
3269
+ }
2420
3270
  .x-spreadsheet-formula-bar {
2421
3271
  height: 25px;
2422
3272
  line-height: 25px;
@@ -2554,6 +3404,142 @@ form fieldset select {
2554
3404
  .x-spreadsheet-modal-component-footer button.cancel:focus {
2555
3405
  box-shadow: 0 0 0 2px rgba(204, 204, 204, 0.5);
2556
3406
  }
3407
+ .x-spreadsheet-modal-component-batch-delete-confirm {
3408
+ width: min(560px, calc(100vw - 32px));
3409
+ border: 1px solid #cfcfcf;
3410
+ border-radius: 12px;
3411
+ }
3412
+ .x-spreadsheet-modal-component-batch-delete-confirm .x-spreadsheet-modal-component-header {
3413
+ padding: 26px 32px 18px;
3414
+ background: #fff;
3415
+ border-bottom: 0;
3416
+ font-size: 24px;
3417
+ }
3418
+ .x-spreadsheet-modal-component-batch-delete-confirm .x-spreadsheet-modal-component-content {
3419
+ min-height: 84px;
3420
+ padding: 12px 32px 22px;
3421
+ background: #fff;
3422
+ }
3423
+ .x-spreadsheet-modal-component-batch-delete-confirm .x-spreadsheet-modal-component-footer {
3424
+ gap: 10px;
3425
+ padding: 12px 28px 28px;
3426
+ background: #fff;
3427
+ border-top: 0;
3428
+ }
3429
+ .x-spreadsheet-batch-delete-confirm-close {
3430
+ width: 34px;
3431
+ height: 34px;
3432
+ padding: 0;
3433
+ color: #666;
3434
+ font-size: 32px;
3435
+ font-weight: 200;
3436
+ line-height: 28px;
3437
+ background: transparent;
3438
+ border: 0;
3439
+ cursor: pointer;
3440
+ }
3441
+ .x-spreadsheet-batch-delete-confirm-close:disabled {
3442
+ cursor: wait;
3443
+ opacity: 0.45;
3444
+ }
3445
+ .x-spreadsheet-batch-delete-confirm-message {
3446
+ color: #555;
3447
+ font-size: 18px;
3448
+ line-height: 1.6;
3449
+ }
3450
+ .x-spreadsheet-batch-delete-confirm-detail {
3451
+ margin-top: 8px;
3452
+ color: #8a5a00;
3453
+ font-size: 14px;
3454
+ white-space: pre-line;
3455
+ }
3456
+ .x-spreadsheet-modal-component-footer button.x-spreadsheet-batch-delete-confirm-delete {
3457
+ min-width: 108px;
3458
+ color: #fff;
3459
+ background: #108a45;
3460
+ border-color: #108a45;
3461
+ }
3462
+ .x-spreadsheet-modal-component-footer button.x-spreadsheet-batch-delete-confirm-delete:hover {
3463
+ color: #fff;
3464
+ background: #0d743a;
3465
+ border-color: #0d743a;
3466
+ }
3467
+ .x-spreadsheet-modal-component-footer button.x-spreadsheet-batch-delete-confirm-delete:disabled {
3468
+ cursor: wait;
3469
+ opacity: 0.65;
3470
+ }
3471
+ .x-spreadsheet-modal-component-batch-delete-text {
3472
+ width: min(620px, calc(100vw - 32px));
3473
+ border: 1px solid #cfcfcf;
3474
+ border-radius: 12px;
3475
+ }
3476
+ .x-spreadsheet-modal-component-batch-delete-text .x-spreadsheet-modal-component-header {
3477
+ align-items: center;
3478
+ justify-content: space-between;
3479
+ padding: 24px 30px 16px;
3480
+ background: #fff;
3481
+ border-bottom: 0;
3482
+ font-size: 24px;
3483
+ }
3484
+ .x-spreadsheet-modal-component-batch-delete-text .x-spreadsheet-modal-component-content {
3485
+ min-height: 94px;
3486
+ padding: 14px 30px 22px;
3487
+ background: #fff;
3488
+ }
3489
+ .x-spreadsheet-modal-component-batch-delete-text .x-spreadsheet-modal-component-footer {
3490
+ gap: 10px;
3491
+ padding: 12px 28px 28px;
3492
+ background: #fff;
3493
+ border-top: 0;
3494
+ }
3495
+ .x-spreadsheet-batch-delete-text-close {
3496
+ width: 34px;
3497
+ height: 34px;
3498
+ padding: 0;
3499
+ color: #666;
3500
+ font-size: 32px;
3501
+ font-weight: 200;
3502
+ line-height: 28px;
3503
+ background: transparent;
3504
+ border: 0;
3505
+ cursor: pointer;
3506
+ }
3507
+ .x-spreadsheet-batch-delete-text-row,
3508
+ .x-spreadsheet-batch-delete-text-range,
3509
+ .x-spreadsheet-batch-delete-text-radio {
3510
+ display: flex;
3511
+ align-items: center;
3512
+ gap: 10px;
3513
+ white-space: nowrap;
3514
+ }
3515
+ .x-spreadsheet-batch-delete-text-middle {
3516
+ display: flex;
3517
+ flex-direction: column;
3518
+ gap: 14px;
3519
+ }
3520
+ .x-spreadsheet-batch-delete-text-radio {
3521
+ cursor: pointer;
3522
+ }
3523
+ .x-spreadsheet-batch-delete-text-input {
3524
+ width: 84px;
3525
+ height: 40px;
3526
+ box-sizing: border-box;
3527
+ padding: 5px 10px;
3528
+ font-size: 18px;
3529
+ border: 1px solid #bbb;
3530
+ border-radius: 6px;
3531
+ }
3532
+ .x-spreadsheet-batch-delete-text-error {
3533
+ margin-top: 12px;
3534
+ color: #c62828;
3535
+ font-size: 14px;
3536
+ }
3537
+ .x-spreadsheet-modal-component-footer button.x-spreadsheet-batch-delete-text-delete {
3538
+ min-width: 108px;
3539
+ color: #fff;
3540
+ background: #108a45;
3541
+ border-color: #108a45;
3542
+ }
2557
3543
  .x-spreadsheet-modal-component-section-container {
2558
3544
  height: 100%;
2559
3545
  }