@odoo/o-spreadsheet 19.1.0-alpha.9 → 19.2.0-alpha.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.
@@ -0,0 +1,3293 @@
1
+
2
+ /*
3
+ * This file is generated by o-spreadsheet build tools. Do not edit it.
4
+ * @see https://github.com/odoo/o-spreadsheet
5
+ * @version 19.2.0-alpha.1
6
+ * @date 2025-12-26T10:21:24.024Z
7
+ * @hash 3296c7e
8
+ */
9
+ :root {
10
+ --os-gray-100: light-dark(#f9fafb, #1b1d26);
11
+ --os-gray-200: light-dark(#e7e9ed, #262a36); /* GRAY_200 */
12
+ --os-gray-300: light-dark(#d8dadd, #3c3e4b); /* GRAY_300 */
13
+ --os-gray-400: light-dark(#ced4da, #5a5e6b);
14
+ --os-gray-500: light-dark(#7c7f89, #6b707f);
15
+ --os-gray-600: light-dark(#5f636f, #7e8392);
16
+ --os-gray-700: light-dark(#374151, #b1b3bc);
17
+ --os-gray-800: light-dark(#1f2937, #d1d1d1);
18
+ --os-gray-900: light-dark(#111827, #e4e4e4); /* GRAY_900 */
19
+
20
+ --os-white: light-dark(#ffffff, #000000);
21
+ --os-black: light-dark(#000000, #ffffff);
22
+ --os-white-bg: light-dark(#ffffff, var(--os-gray-200));
23
+
24
+ --os-default-font: "Roboto", "Arial";
25
+ --os-default-font-size: 10px;
26
+ --os-link-color: light-dark(#017e84, #02c7b5);
27
+ --os-link-hover-color: light-dark(#01585c, #4ed8cb);
28
+ --os-text-body: light-dark(#374151, #e4e4e4); /* TEXT_BODY */
29
+ --os-text-body-muted: light-dark(#374151c2, #b1b3bcc2); /* TEXT_BODY_MUTED */
30
+ --os-disabled-text-color: light-dark(#cacaca, #ffffff80);
31
+
32
+ --os-button-bg: light-dark(var(--os-gray-200), var(--os-gray-300));
33
+ --os-button-hover-bg: light-dark(var(--os-gray-300), var(--os-gray-400));
34
+ --os-button-hover-text-color: var(--os-gray-900);
35
+ --os-button-active-bg: light-dark(#e6f2f3, #17373b);
36
+ --os-button-active-text-color: var(--os-gray-900);
37
+ --os-primary-button-bg: light-dark(#714b67, #6b3e66);
38
+ --os-primary-button-hover-bg: light-dark(#624159, #7b4775);
39
+ --os-primary-button-active-bg: light-dark(#f1edf0, #8b5185);
40
+ --os-primary-button-text-color: light-dark(#ffffff, #ffffff);
41
+ --os-action-color: var(--os-link-color); /* ACTION_COLOR */
42
+ --os-action-color-hover: var(--os-link-hover-color);
43
+ --os-border-color: light-dark(var(--os-gray-300), var(--os-gray-400));
44
+
45
+ --os-composer-placeholder-color: light-dark(#bdbdbd, #757a89);
46
+ --os-composer-assistant-color: #9b359b; /* COMPOSER_ASSISTANT_COLOR */
47
+ --os-composer-assistant-background: light-dark(#f2f2f2, var(--os-gray-200));
48
+ --os-composer-highlight-flag-color: #e6edf3;
49
+ --os-composer-selector-flag-color: #a9a9a9;
50
+
51
+ --os-selection-border-color: #3266ca; /* SELECTION_BORDER_COLOR */
52
+ --os-badge-selected-color: var(--os-button-active-bg);
53
+ --os-figure-border-color: var(--os-gray-400);
54
+ --os-background-gray-color: light-dark(#f5f5f5, var(--os-white-bg));
55
+ --os-background-gray-color-hover: light-dark(rgba(0, 0, 0, 0.08), #ffffff40);
56
+ --os-frozen-pane-header-border-color: #bcbcbc; /* FROZEN_PANE_HEADER_BORDER_COLOR */
57
+ --os-grid-border-color: light-dark(#e2e3e3, var(--os-gray-200));
58
+ --os-separator-color: var(--os-gray-300);
59
+ --os-green-arrow-color: #6aa84f; /* Same color as CF arrow icon */
60
+ --os-red-arrow-color: #e06666; /* Same color as CF arrow icon */
61
+ --os-active-sheet-bg: light-dark(#ffffff, var(--os-gray-300));
62
+
63
+ --os-alert-warning-bg: light-dark(#fbebcc, #3a2a05);
64
+ --os-alert-warning-border: light-dark(#f8e2b3, #5a420a);
65
+ --os-alert-warning-text-color: light-dark(#946d23, #f5d27b);
66
+ --os-alert-danger-bg: light-dark(#d44c591a, #3a0b0f);
67
+ --os-alert-danger-border: light-dark(#c34a41, #a23c36);
68
+ --os-alert-danger-text-color: light-dark(#c34a41, #ffb3a9);
69
+ --os-alert-info-bg: light-dark(#cdedf1, #18535e);
70
+ --os-alert-info-border: light-dark(#98dbe2, #22747e);
71
+ --os-alert-info-text-color: light-dark(#09414a, #9ee3ec);
72
+
73
+ --os-chart-preview-orange-line: light-dark(#eb6d00, #ff9d4d);
74
+ --os-chart-preview-orange-fill: light-dark(#ffe1c8, #734200);
75
+ --os-chart-preview-orange-light: light-dark(#ff9d4d, #eb6d00);
76
+ --os-chart-preview-orange-dark: light-dark(#a34c00, #c96a1e);
77
+ --os-chart-preview-blue-line: light-dark(#0074d9, #4cb3ff);
78
+ --os-chart-preview-blue-fill: light-dark(#c4e4ff, #003e73);
79
+
80
+ --os-header-height: 26px;
81
+ --os-header-width: 48px;
82
+ --os-desktop-topbar-toolbar-height: 34px;
83
+ --os-mobile-topbar-toolbar-height: 44px;
84
+ --os-desktop-bottombar-height: 36px;
85
+ --os-mobile-bottombar-height: 44px;
86
+ --os-scrollbar-width: 15px;
87
+ --os-autofill-edge-length: 8px;
88
+ --os-icon-edge-length: 18px;
89
+ --os-cf-icon-edge-length: 15px;
90
+ --os-error-tooltip-width: 180px;
91
+ --os-bubble-arrow-size: 7px;
92
+ --os-master-chart-height: 60px;
93
+ --os-link-tooltip-width: 220px;
94
+ --os-link-tooltip-height: 32px;
95
+ --os-desktop-menu-item-height: 26px;
96
+ --os-mobile-menu-item-height: 35px;
97
+ --os-menu-item-padding-vertical: 4px;
98
+ --os-menu-item-padding-horizontal: 11px;
99
+ --os-menu-vertical-padding: 6px;
100
+ --os-line-vertical-padding: 1px;
101
+ --os-picker-padding: 8px;
102
+ --os-item-border-width: 1px;
103
+ --os-item-edge-length: 18px;
104
+ --os-items-per-line: 10;
105
+ --os-magnifier-edge: 16px;
106
+ --os-item-gap: 2px;
107
+ --os-color-picker-width: calc(
108
+ (var(--os-items-per-line) * (var(--os-item-edge-length) + (2 * var(--os-item-border-width)))) +
109
+ ((var(--os-items-per-line) - 1) * var(--os-item-gap))
110
+ );
111
+ --os-inner-gradient-width: calc(var(--os-color-picker-width) - (2 * var(--os-item-border-width)));
112
+ --os-inner-gradient-height: calc(
113
+ var(--os-color-picker-width) - 30px - (2 * var(--os-item-border-width))
114
+ );
115
+ --os-container-width: calc(var(--os-color-picker-width) + (2 * var(--os-picker-padding)));
116
+ --os-menu-separator-padding: 5px;
117
+
118
+ --os-components-importance-grid: 0;
119
+ --os-components-importance-highlight: 5;
120
+ --os-components-importance-header-grouping-button: 6;
121
+ --os-components-importance-figure: 10;
122
+ --os-components-importance-figure-selected: 11;
123
+ --os-components-importance-scroll-bar: 15;
124
+ --os-components-importance-grid-popover: 19;
125
+ --os-components-importance-grid-composer: 20;
126
+ --os-components-importance-icon-picker: 25;
127
+ --os-components-importance-top-bar-composer: 30;
128
+ --os-components-importance-fullscreen-chart: 34;
129
+ --os-components-importance-popover: 35;
130
+ --os-components-importance-figure-anchor: 1000;
131
+ --os-components-importance-figure-snap-line: 1001;
132
+ --os-components-importance-figure-tooltip: 1002;
133
+ }
134
+
135
+ /* Originates from src/components/validation_messages/validation_messages.css */
136
+ .o-spreadsheet {
137
+ .o-validation {
138
+ border-radius: 4px;
139
+ border-width: 0 0 0 3px;
140
+ border-style: solid;
141
+ gap: 3px;
142
+
143
+ .o-icon {
144
+ margin-right: 5px;
145
+ height: 1.2em;
146
+ width: 1.2em;
147
+ }
148
+ }
149
+
150
+ .o-validation-warning {
151
+ border-color: var(--os-alert-warning-border);
152
+ color: var(--os-alert-warning-text-color);
153
+ background-color: var(--os-alert-warning-bg);
154
+ }
155
+
156
+ .o-validation-error {
157
+ border-color: var(--os-alert-danger-border);
158
+ color: var(--os-alert-danger-text-color);
159
+ background-color: var(--os-alert-danger-bg);
160
+ }
161
+
162
+ .o-validation-info {
163
+ border-color: var(--os-alert-info-border);
164
+ color: var(--os-alert-info-text-color);
165
+ background-color: var(--os-alert-info-bg);
166
+ }
167
+ }
168
+
169
+ /* Originates from src/components/top_bar/top_bar.css */
170
+ .o-spreadsheet {
171
+ @media (max-width: 1200px) {
172
+ .o-topbar-responsive {
173
+ flex-direction: column !important;
174
+ }
175
+ }
176
+
177
+ @media (max-width: 768px) {
178
+ .topbar-banner span {
179
+ overflow: auto;
180
+ align-items: normal !important;
181
+ }
182
+ }
183
+
184
+ .tool-container {
185
+ display: flex;
186
+ justify-content: center;
187
+ align-items: center;
188
+ }
189
+
190
+ .o-topbar-divider {
191
+ width: 0;
192
+ margin: 0 6px;
193
+ height: 30px;
194
+ }
195
+
196
+ .o-toolbar-button {
197
+ height: 30px;
198
+ }
199
+
200
+ .o-spreadsheet-topbar {
201
+ line-height: 1.2;
202
+ font-size: 14px;
203
+ font-weight: 500;
204
+
205
+ .o-topbar-top {
206
+ padding: 2px 10px;
207
+
208
+ /* Menus */
209
+ .o-topbar-topleft {
210
+ .o-topbar-menu {
211
+ padding: 4px 6px;
212
+ margin: 0 2px;
213
+
214
+ &.active {
215
+ background-color: var(--os-button-active-bg);
216
+ color: var(--os-button-active-text-color);
217
+ }
218
+ }
219
+ }
220
+ }
221
+
222
+ .topbar-banner {
223
+ height: var(--os-desktop-topbar-toolbar-height);
224
+
225
+ .alert-info {
226
+ border-left: 3px solid var(--os-alert-info-border);
227
+ }
228
+ }
229
+
230
+ .o-topbar-composer {
231
+ flex-grow: 1;
232
+ }
233
+
234
+ /* Toolbar */
235
+ .o-topbar-toolbar {
236
+ height: var(--os-desktop-topbar-toolbar-height);
237
+
238
+ .o-readonly-toolbar {
239
+ background-color: var(--os-gray-100);
240
+ padding-left: 18px;
241
+ padding-right: 18px;
242
+ }
243
+
244
+ /* Toolbar */
245
+ .o-toolbar-tools {
246
+ cursor: default;
247
+ }
248
+ }
249
+ }
250
+
251
+ &.o-spreadsheet-mobile {
252
+ .o-topbar-toolbar {
253
+ height: var(--os-mobile-topbar-toolbar-height);
254
+ }
255
+ .o-topbar-divider {
256
+ border-width: 2px !important;
257
+ border-radius: 4px;
258
+ }
259
+
260
+ .o-toolbar-button {
261
+ height: 35px;
262
+ width: 31px;
263
+ .o-toolbar-button.o-mobile-disabled * {
264
+ color: var(--os-disabled-text-color);
265
+ cursor: not-allowed;
266
+ }
267
+ }
268
+ }
269
+ }
270
+
271
+ /* Originates from src/components/top_bar/dropdown_action/dropdown_action.css */
272
+ .o-spreadsheet {
273
+ .o-dropdown {
274
+ position: relative;
275
+ display: flex;
276
+ align-items: center;
277
+ }
278
+
279
+ .o-dropdown-content {
280
+ .o-dropdown-line {
281
+ display: flex;
282
+
283
+ > span {
284
+ padding: 4px;
285
+ }
286
+ }
287
+ }
288
+ }
289
+
290
+ /* Originates from src/components/text_input/text_input.css */
291
+ .o-spreadsheet {
292
+ .os-input {
293
+ border-width: 0 0 1px 0;
294
+ border-color: transparent;
295
+ outline: none;
296
+ text-overflow: ellipsis;
297
+ color: var(--os-text-body);
298
+ }
299
+ .os-input:hover,
300
+ .os-input.o-input-border {
301
+ border-color: var(--os-border-color);
302
+ }
303
+ .os-input:focus {
304
+ border-color: var(--os-action-color);
305
+ }
306
+ .os-input.o-invalid {
307
+ background-color: var(--os-alert-danger-bg);
308
+ border-color: var(--os-alert-danger-border);
309
+ }
310
+ .os-input-error-icon {
311
+ right: 7px;
312
+ top: 4px;
313
+ }
314
+ }
315
+
316
+ /* Originates from src/components/tables/table_styles_popover/table_styles_popover.css */
317
+ .o-spreadsheet {
318
+ .o-table-style-popover {
319
+ /* 7 tables preview + padding by line */
320
+ width: calc((66px + 4px * 2) * 7 + 1.5rem * 2);
321
+ font-size: 14px;
322
+ user-select: none;
323
+
324
+ .o-notebook {
325
+ border-bottom: 1px solid var(--os-gray-300);
326
+
327
+ .o-notebook-tab {
328
+ padding: 5px 15px;
329
+ margin-bottom: -1px;
330
+ margin-left: -1px;
331
+ color: var(--os-text-body);
332
+ cursor: pointer;
333
+ transition: color 0.2s, border-color 0.2s;
334
+
335
+ &.selected {
336
+ border-bottom-color: var(--os-white-bg) !important;
337
+ border-top-color: var(--os-primary-button-bg) !important;
338
+ color: var(--os-button-active-text-color);
339
+ }
340
+ }
341
+ }
342
+
343
+ .o-table-style-list-item {
344
+ padding: 3px;
345
+ }
346
+
347
+ .o-table-style-popover-preview {
348
+ width: 66px;
349
+ height: 51px;
350
+ }
351
+
352
+ .o-new-table-style {
353
+ font-size: 36px;
354
+ color: var(--os-text-body-muted);
355
+ &:hover {
356
+ background: var(--os-button-hover-bg);
357
+ }
358
+ }
359
+ }
360
+ }
361
+
362
+ /* Originates from src/components/tables/table_style_preview/table_style_preview.css */
363
+ .o-spreadsheet {
364
+ .o-table-style-list-item {
365
+ border: 1px solid transparent;
366
+ border-radius: 4px;
367
+ &.selected {
368
+ border: 1px solid var(--os-action-color);
369
+ background: var(--os-badge-selected-color);
370
+ }
371
+
372
+ &:hover {
373
+ background: var(--os-button-hover-bg);
374
+ .o-table-style-edit-button {
375
+ display: block !important;
376
+ right: 0;
377
+ top: 0;
378
+ cursor: pointer;
379
+ padding: 1px 1px 1px 2px;
380
+ .o-icon {
381
+ font-size: 12px;
382
+ width: 12px;
383
+ height: 12px;
384
+ }
385
+ }
386
+ }
387
+ }
388
+ }
389
+
390
+ /* Originates from src/components/tables/table_style_picker/table_style_picker.css */
391
+ .o-spreadsheet {
392
+ .o-table-style-picker {
393
+ .o-table-style-picker-arrow {
394
+ &:hover {
395
+ background: var(--os-button-hover-bg);
396
+ cursor: pointer;
397
+ }
398
+ }
399
+
400
+ .o-table-style-list-item {
401
+ padding: 5px 6px;
402
+ margin: 5px 2px;
403
+
404
+ .o-table-style-picker-preview {
405
+ width: 51px;
406
+ height: 36px;
407
+ }
408
+ }
409
+ }
410
+ }
411
+
412
+ /* Originates from src/components/tables/table_resizer/table_resizer.css */
413
+ .o-spreadsheet {
414
+ .o-table-resizer {
415
+ width: 6px;
416
+ height: 6px;
417
+ border-bottom: 3px solid var(--os-gray-500);
418
+ border-right: 3px solid var(--os-gray-500);
419
+ cursor: nwse-resize;
420
+ }
421
+ }
422
+
423
+ /* Originates from src/components/spreadsheet/spreadsheet.css */
424
+ .o-spreadsheet {
425
+ .border {
426
+ border: 1px solid var(--os-border-color) !important;
427
+ }
428
+
429
+ .border-bottom {
430
+ border-bottom: 1px solid var(--os-border-color) !important;
431
+ }
432
+
433
+ .border-top {
434
+ border-top: 1px solid var(--os-border-color) !important;
435
+ }
436
+
437
+ .border-start {
438
+ border-left: 1px solid var(--os-border-color) !important;
439
+ }
440
+
441
+ .border-end {
442
+ border-right: 1px solid var(--os-border-color) !important;
443
+ }
444
+
445
+ color: var(--os-text-body);
446
+
447
+ .bg-white {
448
+ background-color: var(--os-white-bg) !important;
449
+ }
450
+
451
+ .bg-white-contrasted {
452
+ background-color: light-dark(var(--os-white), var(--os-gray-300));
453
+ }
454
+
455
+ select > option {
456
+ background-color: var(--os-white-bg);
457
+ }
458
+
459
+ input {
460
+ background-color: transparent;
461
+ }
462
+
463
+ &.o-spreadsheet-mobile .o-spreadsheet-topbar-wrapper,
464
+ .o-spreadsheet-bottombar-wrapper {
465
+ box-shadow: 0 0 3px 1px var(--os-gray-400);
466
+ }
467
+ .o-spreadsheet-bottombar-wrapper {
468
+ overscroll-behavior: none;
469
+ }
470
+ position: relative;
471
+ display: grid;
472
+ font-size: 14px;
473
+
474
+ .text-muted {
475
+ color: var(--os-text-body-muted) !important;
476
+ }
477
+ .o-disabled {
478
+ opacity: 0.4;
479
+ cursor: default;
480
+ pointer-events: none;
481
+ }
482
+
483
+ &,
484
+ *,
485
+ *:before,
486
+ *:after {
487
+ /* rtl not supported ATM */
488
+ direction: ltr;
489
+ }
490
+ .o-separator {
491
+ margin-top: var(--os-menu-separator-padding);
492
+ margin-bottom: var(--os-menu-separator-padding);
493
+ }
494
+ .o-hoverable-button {
495
+ border-radius: 2px;
496
+ cursor: pointer;
497
+ .o-icon {
498
+ color: var(--os-text-body);
499
+ }
500
+ &:not(.o-disabled):not(.active):hover {
501
+ background-color: var(--os-button-hover-bg);
502
+ color: var(--os-button-hover-text-color);
503
+ .o-icon {
504
+ color: var(--os-button-hover-text-color);
505
+ }
506
+ }
507
+ &.active {
508
+ background-color: var(--os-button-active-bg);
509
+ color: var(--os-button-active-text-color);
510
+ .o-icon {
511
+ color: var(--os-button-active-text-color);
512
+ }
513
+ }
514
+ }
515
+
516
+ .o-grid-container {
517
+ display: grid;
518
+ background-color: var(--os-header-grouping-background-color);
519
+
520
+ .o-top-left {
521
+ border: 1px solid var(--os-grid-border-color);
522
+ margin-bottom: -1px;
523
+ margin-right: -1px;
524
+ }
525
+
526
+ .o-column-groups {
527
+ grid-column-start: 2;
528
+ border-top: 1px solid var(--os-grid-border-color);
529
+ }
530
+
531
+ .o-row-groups {
532
+ grid-row-start: 2;
533
+ }
534
+
535
+ .o-group-grid {
536
+ border-top: 1px solid var(--os-grid-border-color);
537
+ border-left: 1px solid var(--os-grid-border-color);
538
+ }
539
+ }
540
+
541
+ .o-input {
542
+ min-width: 0px;
543
+ padding: 1px 0;
544
+ width: 100%;
545
+ outline: none;
546
+ border-color: var(--os-border-color);
547
+ color: var(--os-gray-900);
548
+
549
+ &::placeholder {
550
+ color: var(--os-composer-placeholder-color);
551
+ }
552
+ &:focus {
553
+ border-color: var(--os-action-color);
554
+ }
555
+ }
556
+
557
+ select.o-input {
558
+ cursor: pointer;
559
+ border-width: 0 0 1px 0;
560
+ padding: 1px 6px 1px 0px;
561
+
562
+ appearance: none;
563
+ -webkit-appearance: none;
564
+ -moz-appearance: none;
565
+ background: transparent
566
+ url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A//www.w3.org/2000/svg%27%20width%3D%277%27%20height%3D%274%27%20viewBox%3D%270%200%207%204%27%3E%3Cpolygon%20fill%3D%27%23374151%27%20points%3D%273.5%204%207%200%200%200%27/%3E%3C/svg%3E")
567
+ no-repeat right center;
568
+ text-overflow: ellipsis;
569
+
570
+ &:disabled {
571
+ color: var(--os-disabled-text-color);
572
+ opacity: 0.4;
573
+ cursor: default;
574
+ }
575
+ }
576
+
577
+ .o-input[type="text"] {
578
+ border-width: 0 0 1px 0;
579
+ }
580
+
581
+ .o-input[type="number"],
582
+ .o-number-input {
583
+ border-width: 0 0 1px 0;
584
+ /* Remove number input arrows */
585
+ appearance: textfield;
586
+ &::-webkit-outer-spin-button,
587
+ &::-webkit-inner-spin-button {
588
+ -webkit-appearance: none;
589
+ margin: 0;
590
+ }
591
+ }
592
+
593
+ .o-two-columns {
594
+ grid-column: 1 / 3;
595
+ }
596
+
597
+ .o-text-icon {
598
+ vertical-align: middle;
599
+ }
600
+
601
+ .o-grid {
602
+ position: relative;
603
+ overflow: hidden;
604
+ background-color: var(--os-background-gray-color);
605
+ &:focus {
606
+ outline: none;
607
+ }
608
+
609
+ > canvas {
610
+ box-sizing: content-box;
611
+ border-bottom: 1px solid var(--os-grid-border-color);
612
+ border-right: 1px solid var(--os-grid-border-color);
613
+ }
614
+
615
+ .o-grid-overlay {
616
+ position: absolute;
617
+ outline: none;
618
+ }
619
+ }
620
+
621
+ .o-button {
622
+ border-radius: 4px;
623
+ font-weight: 500;
624
+ font-size: 14px;
625
+ min-height: 32px;
626
+ line-height: 16px;
627
+ flex-grow: 1;
628
+ background-color: var(--os-button-bg);
629
+ border: 1px solid var(--os-button-bg);
630
+ color: var(--os-text-body);
631
+
632
+ &:disabled {
633
+ color: var(--os-disabled-text-color);
634
+ }
635
+
636
+ &.primary {
637
+ background-color: var(--os-primary-button-bg);
638
+ border-color: var(--os-primary-button-bg);
639
+ color: var(--os-primary-button-text-color);
640
+ &:hover:enabled {
641
+ color: var(--os-primary-button-text-color);
642
+ background-color: var(--os-primary-button-hover-bg);
643
+ }
644
+ &:active:enabled {
645
+ background-color: var(--os-primary-button-active-bg);
646
+ color: var(--os-primary-button-bg);
647
+ }
648
+ &.o-disabled,
649
+ &:disabled {
650
+ opacity: 0.5;
651
+ }
652
+ }
653
+
654
+ &:hover:enabled {
655
+ color: var(--os-button-hover-text-color);
656
+ background-color: var(--os-button-hover-bg);
657
+ }
658
+ &:active:enabled {
659
+ color: var(--os-button-active-text-color);
660
+ background-color: var(--os-button-active-bg);
661
+ }
662
+
663
+ &.o-disabled,
664
+ &:disabled {
665
+ opacity: 0.8;
666
+ }
667
+
668
+ &.o-button-danger:hover {
669
+ color: var(--os-white);
670
+ background: var(--os-alert-danger-border);
671
+ }
672
+ }
673
+
674
+ .o-button-link {
675
+ cursor: pointer;
676
+ text-decoration: none;
677
+ color: var(--os-action-color);
678
+ font-weight: 500;
679
+ &:hover,
680
+ &:active {
681
+ color: var(--os-action-color-hover);
682
+ }
683
+ }
684
+
685
+ .o-button-icon {
686
+ cursor: pointer;
687
+ color: var(--os-text-body-muted);
688
+ font-weight: 500;
689
+ &:hover,
690
+ &:active {
691
+ color: var(--os-text-body);
692
+ }
693
+ }
694
+
695
+ .o-spreadsheet-bottombar-wrapper {
696
+ z-index: calc(var(--os-components-importance-scroll-bar) + 1);
697
+ }
698
+
699
+ .o-checkers-background {
700
+ background-image: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20width%3D%2210%22%20height%3D%2210%22%3E%3Cpath%20fill%3D%22%23d9d9d9%22%20d%3D%22M5%205h5v5H5zH0V0h5%22/%3E%3C/svg%3E");
701
+ }
702
+ }
703
+
704
+ .o-spreadsheet.dark {
705
+ select.o-input {
706
+ background: transparent
707
+ url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A//www.w3.org/2000/svg%27%20width%3D%277%27%20height%3D%274%27%20viewBox%3D%270%200%207%204%27%3E%3Cpolygon%20fill%3D%27%23e4e4e4%27%20points%3D%273.5%204%207%200%200%200%27/%3E%3C/svg%3E")
708
+ no-repeat right center;
709
+ }
710
+ }
711
+
712
+ /* Originates from src/components/small_bottom_bar/small_bottom_bar.css */
713
+ .o-spreadsheet .o-spreadsheet-small-bottom-bar {
714
+ background-color: var(--os-background-gray-color);
715
+
716
+ .o-selection-button {
717
+ border-radius: 2px;
718
+ background-color: var(--os-gray-200);
719
+ .o-icon {
720
+ width: 24px;
721
+ height: 24px;
722
+ color: var(--os-green-arrow-color);
723
+ }
724
+ }
725
+
726
+ .o-small-composer {
727
+ line-height: 26px;
728
+ display: flex;
729
+ z-index: var(--os-components-importance-top-bar-composer);
730
+ }
731
+
732
+ .bottom-bar-menu {
733
+ background-color: var(--os-background-gray-color);
734
+ }
735
+
736
+ .o-spreadsheet-bottom-bar {
737
+ border: none;
738
+ }
739
+
740
+ .o-composer {
741
+ overscroll-behavior: contain;
742
+ }
743
+
744
+ .o-composer-assistant-container {
745
+ transform: translateY(calc(-26px - 100%));
746
+ }
747
+
748
+ .o-spreadsheet-editor-symbol {
749
+ height: 33px;
750
+ cursor: pointer;
751
+ user-select: none;
752
+ }
753
+ }
754
+
755
+ /* Originates from src/components/small_bottom_bar/ribbon_menu/ribbon_menu.css */
756
+ .o-spreadsheet .o-ribbon-menu {
757
+ height: 250px;
758
+
759
+ .o-ribbon-title {
760
+ background-color: color-mix(in srgb, var(--os-background-gray-color), white 5%);
761
+ border-bottom: 2px solid var(--os-gray-200);
762
+ }
763
+ .o-previous-button {
764
+ background-color: var(--os-background-gray-color);
765
+ }
766
+ .o-ribbon-menu-wrapper {
767
+ max-height: 100%;
768
+
769
+ &.scroll-top::before {
770
+ width: 100%;
771
+ height: 15px;
772
+ content: "";
773
+ background: linear-gradient(to bottom, rgba(0, 0, 0, 0.2), transparent);
774
+ position: absolute;
775
+ pointer-events: none;
776
+ }
777
+
778
+ &.scroll-bottom::after {
779
+ width: 100%;
780
+ height: 15px;
781
+ content: "";
782
+ background: linear-gradient(to top, rgba(0, 0, 0, 0.2), transparent);
783
+ position: absolute;
784
+ pointer-events: none;
785
+ z-index: 1;
786
+ bottom: 0;
787
+ }
788
+ }
789
+ .o-menu-item {
790
+ height: 40px;
791
+ }
792
+ }
793
+
794
+ /* Originates from src/components/side_panel/table_style_editor_panel/table_style_editor_panel.css */
795
+ .o-spreadsheet {
796
+ .o-table-style-editor-panel {
797
+ .o-table-style-list-item {
798
+ margin: 2px 7px;
799
+ padding: 6px 9px;
800
+ .o-table-style-edit-template-preview {
801
+ width: 71px;
802
+ height: 51px;
803
+ }
804
+ }
805
+ }
806
+ }
807
+
808
+ /* Originates from src/components/side_panel/table_panel/table_panel.css */
809
+ .o-spreadsheet {
810
+ .o-table-panel {
811
+ input.o-table-n-of-headers {
812
+ width: 14px;
813
+ text-align: center;
814
+ }
815
+ .o-info-icon {
816
+ width: 14px;
817
+ height: 14px;
818
+ }
819
+ }
820
+ }
821
+
822
+ /* Originates from src/components/side_panel/side_panel/side_panel.css */
823
+ .o-spreadsheet {
824
+ .o-sidePanel {
825
+ display: flex;
826
+ flex-direction: column;
827
+ overflow-x: hidden;
828
+ user-select: none;
829
+ color: var(--os-text-body);
830
+ &.collapsed {
831
+ padding: 8px;
832
+ cursor: pointer;
833
+ .o-sidePanelTitle {
834
+ writing-mode: vertical-rl;
835
+ text-orientation: mixed;
836
+ }
837
+ }
838
+ .o-sidePanelTitle {
839
+ line-height: 20px;
840
+ font-size: 16px;
841
+ }
842
+ .o-sidePanelHeader {
843
+ padding: 8px;
844
+ }
845
+ .o-sidePanelAction {
846
+ padding: 5px 10px;
847
+ cursor: pointer;
848
+ &.active {
849
+ background-color: var(--os-button-active-bg);
850
+ }
851
+ &:hover {
852
+ background-color: var(--os-button-hover-bg);
853
+ }
854
+ }
855
+ .o-sidePanelBody-container {
856
+ min-height: 0;
857
+ }
858
+ .o-sidePanelBody {
859
+ overflow: auto;
860
+ width: 100%;
861
+ height: 100%;
862
+ .o-section {
863
+ padding: 16px;
864
+ .o-section-title {
865
+ font-weight: 500;
866
+ margin-bottom: 5px;
867
+ }
868
+ .o-section-subtitle {
869
+ font-weight: 500;
870
+ font-size: 13px;
871
+ line-height: 14px;
872
+ margin: 8px 0 4px 0;
873
+ }
874
+ .o-subsection-left {
875
+ display: inline-block;
876
+ width: 47%;
877
+ margin-right: 3%;
878
+ }
879
+ .o-subsection-right {
880
+ display: inline-block;
881
+ width: 47%;
882
+ margin-left: 3%;
883
+ }
884
+ }
885
+
886
+ .o-sidePanel-composer {
887
+ color: var(--os-text-body);
888
+ }
889
+ }
890
+
891
+ .o-sidePanelButtons {
892
+ display: flex;
893
+ gap: 8px;
894
+ }
895
+
896
+ .o-sidePanel-handle-container {
897
+ width: 8px;
898
+ position: fixed;
899
+ top: 50%;
900
+ z-index: 1;
901
+ }
902
+ .o-sidePanel-handle {
903
+ cursor: col-resize;
904
+ color: var(--os-gray-500);
905
+ .o-icon {
906
+ height: 25px;
907
+ margin-left: -5px;
908
+ }
909
+ }
910
+
911
+ .o-sidePanel-tab {
912
+ padding: 8px 0px;
913
+ cursor: pointer;
914
+ border-right: 1px solid var(--os-border-color);
915
+
916
+ &.inactive {
917
+ color: var(--os-text-body);
918
+ background-color: var(--os-gray-100);
919
+ border-bottom: 1px solid var(--os-border-color);
920
+ }
921
+
922
+ &:not(.inactive) {
923
+ color: var(--os-button-active-text-color);
924
+ border-bottom: 1px solid transparent;
925
+ }
926
+ }
927
+ .o-sidePanel-tab:last-child {
928
+ border-right: none;
929
+ }
930
+ }
931
+
932
+ .o-fw-bold {
933
+ font-weight: 500;
934
+ }
935
+ }
936
+
937
+ /* Originates from src/components/side_panel/settings/settings_panel.css */
938
+ .o-spreadsheet {
939
+ .o-locale-preview {
940
+ background-color: light-dark(var(--os-gray-100), var(--os-gray-300));
941
+ }
942
+ }
943
+
944
+ /* Originates from src/components/side_panel/remove_duplicates/remove_duplicates.css */
945
+ .o-spreadsheet {
946
+ .o-checkbox-selection {
947
+ max-height: 300px;
948
+ }
949
+ }
950
+
951
+ /* Originates from src/components/side_panel/pivot/pivot_side_panel/pivot_design_panel/pivot_design_panel.css */
952
+ .o-spreadsheet {
953
+ .o-pivot-design {
954
+ .row {
955
+ height: 24px;
956
+ }
957
+ }
958
+ }
959
+
960
+ /* Originates from src/components/side_panel/pivot/pivot_measure_display_panel/pivot_measure_display_panel.css */
961
+ .o-spreadsheet {
962
+ .o-sidePanel {
963
+ .o-pivot-measure-display-field,
964
+ .o-pivot-measure-display-value {
965
+ border-radius: 3px;
966
+ }
967
+
968
+ .o-pivot-measure-display-description {
969
+ white-space: pre-wrap;
970
+ color: dimgray;
971
+ border-left-width: 2px !important;
972
+ }
973
+ }
974
+ }
975
+
976
+ /* Originates from src/components/side_panel/pivot/pivot_layout_configurator/pivot_layout_configurator.css */
977
+ .o-spreadsheet {
978
+ .add-calculated-measure {
979
+ cursor: pointer;
980
+ }
981
+ }
982
+
983
+ /* Originates from src/components/side_panel/pivot/pivot_layout_configurator/pivot_sort_section/pivot_sort_section.css */
984
+ .o-spreadsheet {
985
+ .o-pivot-sort {
986
+ .o-sort-card {
987
+ width: fit-content;
988
+ background-color: var(--os-gray-100);
989
+
990
+ .o-sort-value {
991
+ color: var(--os-primary-button-bg);
992
+ }
993
+ }
994
+ }
995
+ }
996
+
997
+ /* Originates from src/components/side_panel/pivot/pivot_layout_configurator/pivot_dimension/pivot_dimension.css */
998
+ .o-spreadsheet {
999
+ .pivot-dimension {
1000
+ background-color: light-dark(var(--os-white), var(--os-gray-300));
1001
+
1002
+ select.o-input {
1003
+ height: inherit;
1004
+ }
1005
+
1006
+ .pivot-dim-operator-label {
1007
+ min-width: 120px;
1008
+ }
1009
+
1010
+ &.pivot-dimension-invalid {
1011
+ background-color: var(--os-alert-danger-bg);
1012
+ border-color: var(--os-alert-danger-border) !important;
1013
+ input {
1014
+ background-color: transparent;
1015
+ }
1016
+ }
1017
+ }
1018
+ }
1019
+
1020
+ /* Originates from src/components/side_panel/pivot/pivot_layout_configurator/add_dimension_button/add_dimension_button.css */
1021
+ .o-spreadsheet {
1022
+ input.pivot-dimension-search-field:focus {
1023
+ outline: none;
1024
+ }
1025
+ .pivot-dimension-search-field-icon svg {
1026
+ width: 13px;
1027
+ height: 13px;
1028
+ }
1029
+ .add-dimension.o-button {
1030
+ padding: 2px 7px;
1031
+ font-weight: 400;
1032
+ font-size: 12px;
1033
+ flex-grow: 0;
1034
+ height: inherit;
1035
+ }
1036
+ }
1037
+
1038
+ /* Originates from src/components/side_panel/pivot/pivot_defer_update/pivot_defer_update.css */
1039
+ .o-spreadsheet {
1040
+ .pivot-defer-update {
1041
+ min-height: 40px;
1042
+ }
1043
+ }
1044
+
1045
+ /* Originates from src/components/side_panel/pivot/pivot_custom_groups_collapsible/pivot_custom_groups_collapsible.css */
1046
+ .o-spreadsheet .o-pivot-custom-groups {
1047
+ .o_side_panel_collapsible_title {
1048
+ font-size: 13px !important;
1049
+ padding: 4px 0 4px 0 !important;
1050
+
1051
+ .collapsor > div {
1052
+ padding-left: 2px !important;
1053
+ }
1054
+
1055
+ .collapsor-arrow {
1056
+ transform-origin: 5px 7px;
1057
+ .o-icon {
1058
+ width: 10px;
1059
+ height: 14px;
1060
+ }
1061
+ }
1062
+ }
1063
+
1064
+ .os-collapse > div {
1065
+ padding: 0 !important;
1066
+ }
1067
+ }
1068
+
1069
+ /* Originates from src/components/side_panel/more_formats/more_formats.css */
1070
+ .o-spreadsheet {
1071
+ .o-more-formats-panel {
1072
+ .o-format-proposals {
1073
+ max-height: 320px;
1074
+ font-size: 12px;
1075
+ }
1076
+
1077
+ .o-format-examples {
1078
+ background: light-dark(var(--os-gray-100), var(--os-gray-300));
1079
+ }
1080
+
1081
+ table {
1082
+ table-layout: fixed;
1083
+ }
1084
+
1085
+ .format-preview {
1086
+ height: 26px;
1087
+ cursor: pointer;
1088
+
1089
+ &.active,
1090
+ &:hover {
1091
+ background-color: var(--os-background-gray-color-hover) !important;
1092
+ }
1093
+
1094
+ &.active:hover {
1095
+ background-color: rgba(0, 0, 0, 0.12);
1096
+ }
1097
+ }
1098
+ }
1099
+ }
1100
+
1101
+ /* Originates from src/components/side_panel/find_and_replace/find_and_replace.css */
1102
+ .o-spreadsheet {
1103
+ .o-find-and-replace {
1104
+ outline: none;
1105
+ height: 100%;
1106
+ .o-input-search-container {
1107
+ display: flex;
1108
+ .o-input-with-count {
1109
+ flex-grow: 1;
1110
+ width: auto;
1111
+ }
1112
+ .o-input-without-count {
1113
+ width: 100%;
1114
+ }
1115
+ .o-input-count {
1116
+ width: fit-content;
1117
+ padding: 4px 0 4px 4px;
1118
+ white-space: nowrap;
1119
+ }
1120
+ }
1121
+ .o-result-buttons {
1122
+ .o-button {
1123
+ height: 19px;
1124
+ width: 19px;
1125
+ box-sizing: content-box;
1126
+ .o-icon {
1127
+ height: 14px;
1128
+ width: 14px;
1129
+ }
1130
+ }
1131
+ }
1132
+ }
1133
+ }
1134
+
1135
+ /* Originates from src/components/side_panel/data_validation/dv_preview/dv_preview.css */
1136
+ .o-spreadsheet {
1137
+ .o-sidePanel {
1138
+ .o-dv-preview {
1139
+ height: 70px;
1140
+ cursor: pointer;
1141
+
1142
+ .o-dv-container {
1143
+ min-width: 0; /* otherwise flex won't shrink correctly */
1144
+ }
1145
+
1146
+ .o-dv-preview-description {
1147
+ font-size: 13px;
1148
+ }
1149
+
1150
+ &:hover {
1151
+ background-color: var(--os-background-gray-color-hover);
1152
+ }
1153
+
1154
+ &:not(:hover) .o-dv-preview-delete {
1155
+ display: none !important;
1156
+ }
1157
+ }
1158
+ }
1159
+ }
1160
+
1161
+ /* Originates from src/components/side_panel/criterion_form/criterion_input/criterion_input.css */
1162
+ .o-spreadsheet {
1163
+ .o-dv-input {
1164
+ &.o-invalid {
1165
+ background-color: var(--os-alert-danger-bg);
1166
+ }
1167
+ .error-icon {
1168
+ right: 7px;
1169
+ top: 7px;
1170
+ }
1171
+ }
1172
+ }
1173
+
1174
+ /* Originates from src/components/side_panel/conditional_formatting/cf_preview/cf_preview.css */
1175
+ .o-spreadsheet {
1176
+ .o-cf-preview {
1177
+ &.o-cf-cursor-ptr {
1178
+ cursor: pointer;
1179
+ }
1180
+
1181
+ height: 80px;
1182
+ padding: 10px;
1183
+ position: relative;
1184
+ cursor: pointer;
1185
+ &:hover,
1186
+ &.o-cf-dragging {
1187
+ background-color: var(--os-gray-200);
1188
+ }
1189
+
1190
+ &:not(:hover) .o-cf-delete-button {
1191
+ display: none;
1192
+ }
1193
+ .o-cf-preview-icon {
1194
+ height: 50px;
1195
+ width: 50px;
1196
+ .o-icon {
1197
+ width: var(--os-cf-icon-edge-length);
1198
+ height: var(--os-cf-icon-edge-length);
1199
+ }
1200
+ }
1201
+ .o-cf-preview-description {
1202
+ .o-cf-preview-description-rule {
1203
+ margin-bottom: 4px;
1204
+ max-height: 2.8em;
1205
+ line-height: 1.4em;
1206
+ }
1207
+ .o-cf-preview-range {
1208
+ font-size: 12px;
1209
+ }
1210
+ }
1211
+ &:not(:hover):not(.o-cf-dragging) .o-cf-drag-handle {
1212
+ display: none !important;
1213
+ }
1214
+ .o-cf-drag-handle {
1215
+ left: 2px;
1216
+ cursor: move;
1217
+ .o-icon {
1218
+ width: 6px;
1219
+ height: 30px;
1220
+ }
1221
+ }
1222
+
1223
+ .o-icon.arrow-down {
1224
+ color: var(--os-red-arrow-color);
1225
+ }
1226
+ .o-icon.arrow-up {
1227
+ color: var(--os-green-arrow-color);
1228
+ }
1229
+ }
1230
+ }
1231
+
1232
+ /* Originates from src/components/side_panel/conditional_formatting/cf_editor/cf_editor.css */
1233
+ .o-spreadsheet {
1234
+ .o-cf-ruleEditor {
1235
+ .o-cf-preview-display {
1236
+ padding: 10px;
1237
+ }
1238
+
1239
+ .o-cf-cell-is-rule {
1240
+ .o-divider {
1241
+ margin: 4px 6px;
1242
+ }
1243
+ }
1244
+ .o-cf-color-scale-editor {
1245
+ .o-threshold {
1246
+ .o-select-with-input {
1247
+ max-width: 150px;
1248
+ }
1249
+ .o-threshold-value {
1250
+ flex-grow: 1;
1251
+ flex-basis: 60%;
1252
+ min-width: 0px; /* input overflows in Firefox otherwise */
1253
+ }
1254
+ }
1255
+ }
1256
+ .o-cf-iconset-rule {
1257
+ .o-cf-clickable-icon {
1258
+ cursor: pointer;
1259
+ &:hover {
1260
+ border-color: var(--os-action-color) !important;
1261
+ background-color: var(--os-badge-selected-color);
1262
+ }
1263
+ .o-icon {
1264
+ width: var(--os-cf-icon-edge-length);
1265
+ height: var(--os-cf-icon-edge-length);
1266
+ }
1267
+ }
1268
+ .o-cf-iconsets {
1269
+ gap: 11px;
1270
+ .o-cf-iconset {
1271
+ padding: 7px 8px;
1272
+ width: 95px;
1273
+ .o-icon {
1274
+ margin: 0 3px;
1275
+ }
1276
+ svg {
1277
+ vertical-align: baseline;
1278
+ }
1279
+ }
1280
+ }
1281
+ .o-inflection {
1282
+ .o-cf-icon-button {
1283
+ padding: 4px 10px;
1284
+ }
1285
+ table {
1286
+ font-size: 13px;
1287
+ td {
1288
+ padding: 6px 0;
1289
+ }
1290
+
1291
+ th.o-cf-iconset-icons {
1292
+ width: 25px;
1293
+ }
1294
+ th.o-cf-iconset-text {
1295
+ width: 82px;
1296
+ }
1297
+ th.o-cf-iconset-operator {
1298
+ width: 20px;
1299
+ }
1300
+ .o-cf-iconset-type {
1301
+ min-width: 80px;
1302
+ }
1303
+ }
1304
+ }
1305
+ }
1306
+
1307
+ .o-icon.arrow-down {
1308
+ color: var(--os-red-arrow-color);
1309
+ }
1310
+ .o-icon.arrow-up {
1311
+ color: var(--os-green-arrow-color);
1312
+ }
1313
+ }
1314
+ }
1315
+
1316
+ /* Originates from src/components/side_panel/components/round_color_picker/round_color_picker.css */
1317
+ .o-spreadsheet {
1318
+ .o-round-color-picker-button {
1319
+ width: 20px;
1320
+ height: 20px;
1321
+ cursor: pointer;
1322
+ background-position: 1px 1px;
1323
+ }
1324
+ }
1325
+
1326
+ /* Originates from src/components/side_panel/components/radio_selection/radio_selection.css */
1327
+ .o-spreadsheet {
1328
+ .o-radio {
1329
+ input {
1330
+ appearance: none;
1331
+ -webkit-appearance: none;
1332
+ -moz-appearance: none;
1333
+ width: 14px;
1334
+ height: 14px;
1335
+ outline: none;
1336
+ flex-shrink: 0;
1337
+
1338
+ &:checked {
1339
+ background: url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A//www.w3.org/2000/svg%27%20viewBox%3D%27-4%20-4%208%208%27%3E%3Ccircle%20r%3D%222%22%20fill%3D%22%23FFF%22/%3E%3C/svg%3E");
1340
+ background-color: var(--os-action-color);
1341
+ border-color: var(--os-action-color) !important;
1342
+ }
1343
+ }
1344
+ }
1345
+ }
1346
+
1347
+ .o-spreadsheet.dark {
1348
+ .o-radio input:checked {
1349
+ background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='2' fill='%23000'/%3e%3c/svg%3e");
1350
+ }
1351
+ }
1352
+
1353
+ /* Originates from src/components/side_panel/components/collapsible/side_panel_collapsible.css */
1354
+ .o-spreadsheet {
1355
+ .o_side_panel_collapsible_title {
1356
+ font-size: 16px;
1357
+ cursor: pointer;
1358
+ padding: 6px 0px 6px 6px !important;
1359
+ .collapsor-arrow {
1360
+ transform: rotate(-90deg);
1361
+ display: inline-block;
1362
+ transform-origin: 8px 11px;
1363
+ transition: transform 0.2s ease-in-out;
1364
+ .o-icon {
1365
+ width: 16px;
1366
+ height: 22px;
1367
+ }
1368
+ }
1369
+ .collapsor:not(.collapsed) .collapsor-arrow {
1370
+ transform: rotate(0);
1371
+ }
1372
+ .collapsor {
1373
+ width: 100%;
1374
+ transition-delay: 0.35s;
1375
+ transition-property: all;
1376
+ }
1377
+ }
1378
+ }
1379
+
1380
+ /* Originates from src/components/side_panel/components/checkbox/checkbox.css */
1381
+ .o-spreadsheet {
1382
+ label.o-checkbox {
1383
+ input {
1384
+ appearance: none;
1385
+ -webkit-appearance: none;
1386
+ -moz-appearance: none;
1387
+ border-radius: 0;
1388
+ width: 14px;
1389
+ height: 14px;
1390
+ vertical-align: top;
1391
+ outline: none;
1392
+ cursor: pointer;
1393
+
1394
+ &:hover {
1395
+ border-color: var(--os-action-color);
1396
+ }
1397
+
1398
+ &:checked {
1399
+ background: url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A//www.w3.org/2000/svg%27%20viewBox%3D%270%200%2020%2020%27%3E%3Cpath%20fill%3D%27none%27%20stroke%3D%27%23FFF%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%20stroke-width%3D%273%27%20d%3D%27m6%2010%203%203%206-6%27/%3E%3C/svg%3E");
1400
+ background-color: var(--os-action-color);
1401
+ border-color: var(--os-action-color);
1402
+ }
1403
+
1404
+ &:focus {
1405
+ outline: none;
1406
+ box-shadow: 0 0 0 0.25rem rgba(113, 75, 103, 0.25);
1407
+ border-color: var(--os-action-color);
1408
+ }
1409
+ }
1410
+ }
1411
+ }
1412
+
1413
+ .o-spreadsheet.dark {
1414
+ label.o-checkbox input:checked {
1415
+ background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3e%3cpath fill='none' stroke='%23000' stroke-linecap='round' stroke-linejoin='round' stroke-width='3' d='m6 10 3 3 6-6'/%3e%3c/svg%3e");
1416
+ }
1417
+ }
1418
+
1419
+ /* Originates from src/components/side_panel/components/badge_selection/badge_selection.css */
1420
+ .o-spreadsheet {
1421
+ .o-badge-selection {
1422
+ gap: 1px;
1423
+ button.o-button {
1424
+ border-radius: 0;
1425
+ &.selected {
1426
+ color: var(--os-gray-900);
1427
+ border-color: var(--os-action-color);
1428
+ background: var(--os-badge-selected-color);
1429
+ font-weight: 600;
1430
+ }
1431
+
1432
+ &:first-child {
1433
+ border-radius: 4px 0 0 4px;
1434
+ }
1435
+ &:last-child {
1436
+ border-radius: 0 4px 4px 0;
1437
+ }
1438
+ }
1439
+ }
1440
+ }
1441
+
1442
+ /* Originates from src/components/side_panel/chart/gauge_chart_panel/gauge_chart_design_panel.css */
1443
+ .o-spreadsheet {
1444
+ .o-gauge-color-set {
1445
+ table {
1446
+ table-layout: fixed;
1447
+ margin-top: 2%;
1448
+ display: table;
1449
+ text-align: left;
1450
+ font-size: 12px;
1451
+ line-height: 18px;
1452
+ width: 100%;
1453
+ font-size: 12px;
1454
+ }
1455
+
1456
+ td {
1457
+ height: 30px;
1458
+ padding: 6px 0;
1459
+ }
1460
+ th.o-gauge-color-set-colorPicker {
1461
+ width: 8%;
1462
+ }
1463
+ th.o-gauge-color-set-text {
1464
+ width: 25%;
1465
+ }
1466
+ th.o-gauge-color-set-operator {
1467
+ width: 10%;
1468
+ }
1469
+ th.o-gauge-color-set-value {
1470
+ width: 22%;
1471
+ }
1472
+ th.o-gauge-color-set-type {
1473
+ width: 30%;
1474
+ }
1475
+ input,
1476
+ select {
1477
+ width: 100%;
1478
+ height: 100%;
1479
+ }
1480
+ }
1481
+ }
1482
+
1483
+ /* Originates from src/components/side_panel/chart/chart_type_picker/chart_type_picker.css */
1484
+ .o-spreadsheet {
1485
+ .o-section .o-input.o-type-selector {
1486
+ height: 30px;
1487
+ padding-left: 35px;
1488
+ padding-top: 5px;
1489
+ }
1490
+ .o-type-selector-preview {
1491
+ left: 5px;
1492
+ top: 3px;
1493
+ .o-chart-preview {
1494
+ width: 24px;
1495
+ height: 24px;
1496
+ }
1497
+ }
1498
+
1499
+ .o-popover .o-chart-select-popover {
1500
+ .o-chart-type-item {
1501
+ cursor: pointer;
1502
+ padding: 3px 6px;
1503
+ margin: 1px 2px;
1504
+ &.selected,
1505
+ &:hover {
1506
+ border: 1px solid var(--os-action-color);
1507
+ background: var(--os-badge-selected-color);
1508
+ padding: 2px 5px;
1509
+ }
1510
+ .o-chart-preview {
1511
+ width: 48px;
1512
+ height: 48px;
1513
+ }
1514
+ }
1515
+ }
1516
+ }
1517
+
1518
+ /* Originates from src/components/side_panel/chart/building_blocks/text_styler/text_styler.css */
1519
+ .o-spreadsheet {
1520
+ .o-chart-title-designer {
1521
+ .o-hoverable-button {
1522
+ height: 30px;
1523
+ }
1524
+ .o-dropdown-content .o-hoverable-button {
1525
+ height: fit-content;
1526
+ }
1527
+
1528
+ .o-divider {
1529
+ margin: 0px 4px;
1530
+ height: 14px;
1531
+ }
1532
+
1533
+ .o-dropdown-content {
1534
+ overflow-y: auto;
1535
+ overflow-x: hidden;
1536
+ padding: 2px;
1537
+ z-index: 100;
1538
+ box-shadow: 1px 2px 5px 2px rgba(51, 51, 51, 0.15);
1539
+
1540
+ .o-dropdown-line {
1541
+ > span {
1542
+ padding: 4px;
1543
+ }
1544
+ }
1545
+ }
1546
+ }
1547
+ }
1548
+
1549
+ /* Originates from src/components/side_panel/chart/building_blocks/pie_hole_size/pie_hole_size.css */
1550
+ .o-spreadsheet .o-sidePanel {
1551
+ .o-pie-hole-size-input {
1552
+ width: 40px;
1553
+ }
1554
+ }
1555
+
1556
+ /* Originates from src/components/side_panel/chart/building_blocks/color_scale/color_scale_picker.css */
1557
+ .o-spreadsheet {
1558
+ .color-scale-container {
1559
+ margin: 0px;
1560
+ padding: 5px;
1561
+ cursor: pointer;
1562
+ }
1563
+ .color-scale-label {
1564
+ margin-right: 10px;
1565
+ }
1566
+ .color-scale-preview {
1567
+ height: 20px;
1568
+ border: 1px solid #d8dadd;
1569
+ }
1570
+ .custom-color-scale-container {
1571
+ padding-bottom: 5px;
1572
+ border-bottom: 1px solid #d8dadd;
1573
+ }
1574
+ .o-popover-content {
1575
+ .color-scale-container {
1576
+ &:hover {
1577
+ background-color: var(--os-badge-selected-color);
1578
+ }
1579
+ }
1580
+ }
1581
+ }
1582
+
1583
+ /* Originates from src/components/side_panel/chart/building_blocks/chart_title/chart_title.css */
1584
+ .o-spreadsheet {
1585
+ .o-chart-title-designer {
1586
+ > span {
1587
+ height: 30px;
1588
+ }
1589
+ }
1590
+ }
1591
+
1592
+ /* Originates from src/components/side_panel/carousel_panel/carousel_panel.css */
1593
+ .o-spreadsheet .o-carousel-panel {
1594
+ .o-carousel-preview {
1595
+ height: 60px;
1596
+ border-left: 5px solid transparent;
1597
+
1598
+ &:not(:hover):not(.o-dragging) .o-drag-handle {
1599
+ display: none !important;
1600
+ }
1601
+
1602
+ &.o-selected {
1603
+ border-color: var(--os-primary-button-bg);
1604
+ }
1605
+
1606
+ .o-drag-handle {
1607
+ cursor: move;
1608
+
1609
+ .o-icon {
1610
+ width: 6px;
1611
+ height: 30px;
1612
+ }
1613
+ }
1614
+
1615
+ .o-carousel-preview-icon {
1616
+ width: 48px;
1617
+ height: 48px;
1618
+
1619
+ .o-icon {
1620
+ width: 36px;
1621
+ height: 36px;
1622
+ }
1623
+ }
1624
+ }
1625
+ }
1626
+
1627
+ /* Originates from src/components/selection_input/selection_input.css */
1628
+ .o-spreadsheet {
1629
+ .o-selection {
1630
+ .o-selection-input {
1631
+ padding: 2px 0px;
1632
+
1633
+ input.o-invalid {
1634
+ background-color: var(--os-alert-danger-bg);
1635
+ }
1636
+ .input-icon {
1637
+ right: 7px;
1638
+ top: 4px;
1639
+ }
1640
+ .o-drag-handle {
1641
+ cursor: move;
1642
+ }
1643
+ }
1644
+ .o-disabled-ranges {
1645
+ color: var(--os-disabled-text-color) !important;
1646
+ }
1647
+ .o-button {
1648
+ flex-grow: 0;
1649
+ }
1650
+
1651
+ /* Make the character a bit bigger
1652
+ compared to its neighbor INPUT box */
1653
+ .o-remove-selection {
1654
+ font-size: calc(100% + 4px);
1655
+ }
1656
+ }
1657
+ }
1658
+
1659
+ /* Originates from src/components/scrollbar/scrollbar.css */
1660
+ .o-spreadsheet {
1661
+ .o-scrollbar {
1662
+ position: absolute;
1663
+ overflow: auto;
1664
+ z-index: var(--os-components-importance-scroll-bar);
1665
+ background-color: var(--os-background-gray-color);
1666
+ &.corner {
1667
+ box-sizing: content-box;
1668
+ right: 0px;
1669
+ bottom: 0px;
1670
+ height: var(--os-scrollbar-width);
1671
+ width: var(--os-scrollbar-width);
1672
+ }
1673
+ }
1674
+ }
1675
+
1676
+ /* Originates from src/components/popover/popover.css */
1677
+ .o-spreadsheet {
1678
+ .o-popover {
1679
+ position: absolute;
1680
+ z-index: var(--os-components-importance-popover);
1681
+ overflow: auto;
1682
+ box-shadow: 1px 2px 5px 2px rgba(51, 51, 51, 0.15);
1683
+ width: fit-content;
1684
+ height: fit-content;
1685
+ }
1686
+ }
1687
+
1688
+ .o-spreadsheet.dark {
1689
+ .o-popover {
1690
+ border: 1px solid var(--os-border-color);
1691
+ }
1692
+ }
1693
+
1694
+ /* Originates from src/components/pivot_html_renderer/pivot_html_renderer.css */
1695
+ .o-spreadsheet {
1696
+ .o_pivot_html_renderer {
1697
+ width: 100%;
1698
+ border-collapse: collapse;
1699
+
1700
+ &:hover {
1701
+ cursor: pointer;
1702
+ }
1703
+
1704
+ td,
1705
+ th {
1706
+ border: 1px solid var(--os-border-color);
1707
+ background-color: var(--os-white-bg);
1708
+ padding: 0.3rem;
1709
+ white-space: nowrap;
1710
+
1711
+ &:hover {
1712
+ filter: brightness(0.9);
1713
+ }
1714
+ }
1715
+
1716
+ td {
1717
+ text-align: right;
1718
+ }
1719
+
1720
+ th {
1721
+ background-color: var(--os-background-gray-color);
1722
+ font-weight: bold;
1723
+ color: var(--os-black);
1724
+ }
1725
+
1726
+ .o_missing_value {
1727
+ color: var(--os-gray-600);
1728
+ background: var(--os-button-active-bg);
1729
+ }
1730
+ }
1731
+ }
1732
+
1733
+ /* Originates from src/components/number_editor/number_editor.css */
1734
+ .o-spreadsheet {
1735
+ .o-number-editor {
1736
+ width: max-content !important;
1737
+
1738
+ input.o-font-size {
1739
+ outline: none;
1740
+ height: 20px;
1741
+ width: 31px;
1742
+ text-align: center;
1743
+ }
1744
+ }
1745
+ .o-text-options > div {
1746
+ cursor: pointer;
1747
+ line-height: 26px;
1748
+ padding: 3px 12px;
1749
+ &:hover {
1750
+ background-color: var(--os-background-gray-color-hover);
1751
+ }
1752
+ }
1753
+ }
1754
+
1755
+ /* Originates from src/components/menu_popover/menu_popover.css */
1756
+ .o-spreadsheet {
1757
+ .o-menu-wrapper {
1758
+ padding: var(--os-menu-vertical-padding) 0px;
1759
+ }
1760
+ }
1761
+
1762
+ /* Originates from src/components/menu/menu.css */
1763
+ .o-spreadsheet {
1764
+ .o-menu {
1765
+ user-select: none;
1766
+ .o-menu-item {
1767
+ cursor: pointer;
1768
+ user-select: none;
1769
+ height: var(--os-desktop-menu-item-height);
1770
+ padding: var(--os-menu-item-padding-vertical) var(--os-menu-item-padding-horizontal);
1771
+ .o-menu-item-icon {
1772
+ width: calc(var(--os-desktop-menu-item-height) - 2 * var(--os-menu-item-padding-vertical));
1773
+ line-height: calc(
1774
+ var(--os-desktop-menu-item-height) - 2 * var(--os-menu-item-padding-vertical)
1775
+ );
1776
+ }
1777
+ & {
1778
+ &:hover,
1779
+ &.o-menu-item-active {
1780
+ background-color: var(--os-button-active-bg);
1781
+ color: var(--os-button-active-text-color);
1782
+ }
1783
+ .o-menu-item-icon {
1784
+ .o-icon {
1785
+ color: var(--os-icons-color);
1786
+ }
1787
+ }
1788
+ .o-menu-item-description {
1789
+ color: grey;
1790
+ }
1791
+ }
1792
+ &.disabled {
1793
+ &,
1794
+ .o-menu-item-description {
1795
+ color: var(--os-disabled-text-color);
1796
+ }
1797
+ }
1798
+ .o-menu-item-name {
1799
+ min-width: 40%;
1800
+ }
1801
+ .o-menu-item-icon {
1802
+ display: inline-block;
1803
+ margin: 0px 8px 0px 0px;
1804
+ }
1805
+ }
1806
+ }
1807
+ &.o-spreadsheet-mobile {
1808
+ .o-menu-item {
1809
+ height: var(--os-mobile-menu-item-height);
1810
+ }
1811
+ }
1812
+ }
1813
+
1814
+ /* Originates from src/components/link/link_editor/link_editor.css */
1815
+ .o-spreadsheet {
1816
+ .o-link-editor {
1817
+ font-size: 13px;
1818
+ box-shadow: 0 1px 4px 3px rgba(60, 64, 67, 0.15);
1819
+ padding: 12px;
1820
+ display: flex;
1821
+ flex-direction: column;
1822
+ width: calc(340 + 2 * 12) px;
1823
+
1824
+ .o-section {
1825
+ .o-section-title {
1826
+ font-weight: bold;
1827
+ margin-bottom: 5px;
1828
+ }
1829
+ }
1830
+ .o-buttons {
1831
+ padding-left: 16px;
1832
+ padding-top: 16px;
1833
+ text-align: right;
1834
+ }
1835
+ input.o-input {
1836
+ width: 100%;
1837
+ padding: 0 23px 4px 0;
1838
+ }
1839
+ .o-link-url {
1840
+ position: relative;
1841
+ flex-grow: 1;
1842
+ button {
1843
+ position: absolute;
1844
+ right: 0px;
1845
+ top: 0px;
1846
+ border: none;
1847
+ height: 20px;
1848
+ width: 20px;
1849
+ background-color: var(--os-white-bg);
1850
+ margin: 2px 3px 1px 0px;
1851
+ padding: 0px 1px 0px 0px;
1852
+ }
1853
+ button:hover {
1854
+ cursor: pointer;
1855
+ }
1856
+ }
1857
+ }
1858
+ }
1859
+
1860
+ /* Originates from src/components/link/link_display/link_display.css */
1861
+ .o-spreadsheet {
1862
+ .o-link-tool {
1863
+ font-size: 13px;
1864
+ box-shadow: 0 1px 4px 3px rgba(60, 64, 67, 0.15);
1865
+ padding: 6px 12px;
1866
+ display: flex;
1867
+ justify-content: space-between;
1868
+ height: var(--os-link-tooltip-height);
1869
+ width: var(--os-link-tooltip-width);
1870
+
1871
+ img {
1872
+ margin-right: 3px;
1873
+ width: 16px;
1874
+ height: 16px;
1875
+ }
1876
+
1877
+ a.o-link {
1878
+ color: var(--os-link-color);
1879
+ text-decoration: none;
1880
+ flex-grow: 2;
1881
+ white-space: nowrap;
1882
+ overflow: hidden;
1883
+ text-overflow: ellipsis;
1884
+ }
1885
+ a.o-link:hover {
1886
+ text-decoration: none;
1887
+ color: var(--os-link-hover-color);
1888
+ cursor: pointer;
1889
+ }
1890
+ }
1891
+ .o-link-icon {
1892
+ float: right;
1893
+ padding-left: 5px;
1894
+ .o-icon {
1895
+ height: 16px;
1896
+ }
1897
+ }
1898
+ .o-link-icon .o-icon {
1899
+ height: 13px;
1900
+ }
1901
+ .o-link-icon:hover {
1902
+ cursor: pointer;
1903
+ color: var(--os-black);
1904
+ }
1905
+ }
1906
+
1907
+ /* Originates from src/components/icons/icons.css */
1908
+ .o-spreadsheet {
1909
+ .o-icon {
1910
+ display: flex;
1911
+ align-items: center;
1912
+ justify-content: center;
1913
+ vertical-align: middle;
1914
+ width: var(--os-icon-edge-length);
1915
+ height: var(--os-icon-edge-length);
1916
+ font-size: var(--os-icon-edge-length);
1917
+ .small-text {
1918
+ font: bold 9px sans-serif;
1919
+ }
1920
+ .heavy-text {
1921
+ font: bold 16px sans-serif;
1922
+ }
1923
+ }
1924
+ .fa-small {
1925
+ font-size: 14px;
1926
+ }
1927
+
1928
+ .o-icon.fx-icon {
1929
+ color: var(--os-composer-placeholder-color);
1930
+ }
1931
+ }
1932
+
1933
+ /* Originates from src/components/icon_picker/icon_picker.css */
1934
+ .o-spreadsheet {
1935
+ .o-icon-picker {
1936
+ position: absolute;
1937
+ box-shadow: 1px 2px 5px 2px rgba(51, 51, 51, 0.15);
1938
+ padding: 2px 1px;
1939
+ z-index: var(--os-components-importance-icon-picker);
1940
+ }
1941
+ .o-cf-icon-line {
1942
+ display: flex;
1943
+ padding: 0 6px;
1944
+ }
1945
+ .o-icon-picker-item {
1946
+ cursor: pointer;
1947
+ &:hover {
1948
+ background-color: var(--os-badge-selected-color);
1949
+ outline: var(--os-action-color) solid 1px;
1950
+ }
1951
+ }
1952
+ }
1953
+
1954
+ /* Originates from src/components/highlight/highlight/highlight.css */
1955
+ .o-spreadsheet {
1956
+ .o-highlight {
1957
+ z-index: var(--os-components-importance-highlight);
1958
+ }
1959
+ }
1960
+
1961
+ /* Originates from src/components/highlight/corner/corner.css */
1962
+ .o-spreadsheet {
1963
+ .o-corner {
1964
+ position: absolute;
1965
+ }
1966
+
1967
+ .o-corner-button {
1968
+ border: 1px solid white;
1969
+ height: var(--os-autofill-edge-length);
1970
+ width: var(--os-autofill-edge-length);
1971
+ }
1972
+ .o-corner-nw,
1973
+ .o-corner-se {
1974
+ &:hover {
1975
+ cursor: nwse-resize;
1976
+ }
1977
+ }
1978
+ .o-corner-ne,
1979
+ .o-corner-sw {
1980
+ &:hover {
1981
+ cursor: nesw-resize;
1982
+ }
1983
+ }
1984
+ .o-resizing {
1985
+ cursor: grabbing;
1986
+ }
1987
+ }
1988
+
1989
+ /* Originates from src/components/highlight/border/border.css */
1990
+ .o-spreadsheet {
1991
+ .o-border {
1992
+ position: absolute;
1993
+ &:hover {
1994
+ cursor: grab;
1995
+ }
1996
+ }
1997
+ .o-moving {
1998
+ cursor: grabbing;
1999
+ }
2000
+ }
2001
+
2002
+ /* Originates from src/components/headers_overlay/headers_overlay.css */
2003
+ .o-spreadsheet {
2004
+ .o-col-resizer {
2005
+ position: absolute;
2006
+ top: 0;
2007
+ left: var(--os-header-width);
2008
+ right: var(--os-scrollbar-width);
2009
+ height: var(--os-header-height);
2010
+ width: calc(100% - var(--os-header-width) + var(--os-scrollbar-width));
2011
+ &.o-dragging {
2012
+ cursor: grabbing;
2013
+ }
2014
+ &.o-grab {
2015
+ cursor: grab;
2016
+ }
2017
+ .dragging-col-line {
2018
+ top: var(--os-header-height);
2019
+ position: absolute;
2020
+ width: 2px;
2021
+ height: 10000px;
2022
+ background-color: black;
2023
+ }
2024
+ .dragging-col-shadow {
2025
+ top: var(--os-header-height);
2026
+ position: absolute;
2027
+ height: 10000px;
2028
+ background-color: black;
2029
+ opacity: 0.1;
2030
+ }
2031
+ .o-handle {
2032
+ position: absolute;
2033
+ height: var(--os-header-height);
2034
+ width: 4px;
2035
+ cursor: e-resize;
2036
+ background-color: var(--os-selection-border-color);
2037
+ }
2038
+ .dragging-resizer {
2039
+ top: var(--os-header-height);
2040
+ position: absolute;
2041
+ margin-left: 2px;
2042
+ width: 1px;
2043
+ height: 10000px;
2044
+ background-color: var(--os-selection-border-color);
2045
+ }
2046
+ .o-unhide:hover {
2047
+ z-index: calc(var(--os-components-importance-grid) + 1);
2048
+ background-color: var(--os-gray-400);
2049
+ }
2050
+ }
2051
+
2052
+ .o-row-resizer {
2053
+ position: absolute;
2054
+ top: var(--os-header-height);
2055
+ left: 0;
2056
+ bottom: var(--os-scrollbar-width);
2057
+ width: var(--os-header-width);
2058
+ &.o-dragging {
2059
+ cursor: grabbing;
2060
+ }
2061
+ &.o-grab {
2062
+ cursor: grab;
2063
+ }
2064
+ .dragging-row-line {
2065
+ left: var(--os-header-width);
2066
+ position: absolute;
2067
+ width: 10000px;
2068
+ height: 2px;
2069
+ background-color: black;
2070
+ }
2071
+ .dragging-row-shadow {
2072
+ left: var(--os-header-width);
2073
+ position: absolute;
2074
+ width: 10000px;
2075
+ background-color: black;
2076
+ opacity: 0.1;
2077
+ }
2078
+ .o-handle {
2079
+ position: absolute;
2080
+ height: 4px;
2081
+ width: var(--os-header-width);
2082
+ cursor: n-resize;
2083
+ background-color: var(--os-selection-border-color);
2084
+ }
2085
+ .dragging-resizer {
2086
+ left: var(--os-header-width);
2087
+ position: absolute;
2088
+ margin-top: 2px;
2089
+ width: 10000px;
2090
+ height: 1px;
2091
+ background-color: var(--os-selection-border-color);
2092
+ }
2093
+ .o-unhide:hover {
2094
+ z-index: calc(var(--os-components-importance-grid) + 1);
2095
+ background-color: var(--os-gray-400);
2096
+ }
2097
+ }
2098
+
2099
+ .o-overlay {
2100
+ .all {
2101
+ position: absolute;
2102
+ top: 0;
2103
+ left: 0;
2104
+ right: 0;
2105
+ width: var(--os-header-width);
2106
+ height: var(--os-header-height);
2107
+ }
2108
+ }
2109
+ }
2110
+
2111
+ /* Originates from src/components/header_group/header_group_container.css */
2112
+ .o-spreadsheet {
2113
+ .o-header-group-frozen-pane-border {
2114
+ &.o-group-rows {
2115
+ margin-top: -1px;
2116
+ border-bottom: 3px solid var(--os-frozen-pane-header-border-color);
2117
+ }
2118
+ &.o-group-columns {
2119
+ margin-left: -1px;
2120
+ border-right: 3px solid var(--os-frozen-pane-header-border-color);
2121
+ }
2122
+ }
2123
+
2124
+ .o-header-group-main-pane {
2125
+ &.o-group-rows {
2126
+ margin-top: -2px; /* Counteract o-header-group-frozen-pane-border offset */
2127
+ }
2128
+ &.o-group-columns {
2129
+ margin-left: -2px;
2130
+ }
2131
+ }
2132
+ }
2133
+
2134
+ /* Originates from src/components/header_group/header_group.css */
2135
+ .o-spreadsheet {
2136
+ .o-header-group {
2137
+ .o-header-group-header {
2138
+ z-index: var(--os-components-importance-header-grouping-button);
2139
+ .o-group-fold-button {
2140
+ cursor: pointer;
2141
+ width: 15px;
2142
+ height: 15px;
2143
+ border: 1px solid var(--os-gray-500);
2144
+ .o-icon {
2145
+ width: 7px;
2146
+ height: 7px;
2147
+ }
2148
+
2149
+ &:hover {
2150
+ border-color: var(--os-gray-600);
2151
+ }
2152
+ }
2153
+ }
2154
+
2155
+ .o-group-border {
2156
+ border-color: var(--os-background-gray-color);
2157
+ }
2158
+ }
2159
+ }
2160
+
2161
+ /* Originates from src/components/grid_popover/grid_popover.css */
2162
+ .o-spreadsheet {
2163
+ .o-popover {
2164
+ &.o-popover-grid-index {
2165
+ z-index: var(--os-components-importance-grid-popover);
2166
+ }
2167
+ }
2168
+ }
2169
+
2170
+ /* Originates from src/components/grid_overlay/grid_overlay.css */
2171
+ .o-spreadsheet {
2172
+ .o-paint-format-cursor {
2173
+ cursor: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' width='14' height='16'%3E%3Cpath d='M6.5.4c1.3-.8 2.9-.1 3.8 1.4l2.9 5.1c.2.4.9 1.6-.4 2.3l-1.6.9 1.8 3.1c.2.4.1 1-.2 1.2l-1.6 1c-.3.1-.9 0-1.1-.4l-1.8-3.1-1.6 1c-.6.4-1.7 0-2.2-.8L0 4.3'/%3E%3Cpath fill='#fff' d='M9.1 2a1.4 1.1 60 0 0-1.7-.6L5.5 2.5l.9 1.6-1 .6-.9-1.6-.6.4 1.8 3.1-1.3.7-1.8-3.1-1 .6 3.8 6.6 6.8-3.98M3.9 8.8 10.82 5l.795 1.4-6.81 3.96'/%3E%3C/svg%3E"),
2174
+ auto;
2175
+ }
2176
+ }
2177
+
2178
+ /* Originates from src/components/grid_add_rows_footer/grid_add_rows_footer.css */
2179
+ .o-spreadsheet {
2180
+ .o-grid-add-rows {
2181
+ color-scheme: light;
2182
+ color: var(--os-text-body);
2183
+ input.o-input {
2184
+ width: 60px;
2185
+ height: 30px;
2186
+ }
2187
+ .o-validation-error {
2188
+ display: inline-block !important;
2189
+ margin-top: 0;
2190
+ margin-left: 8px;
2191
+ }
2192
+ }
2193
+ }
2194
+
2195
+ /* Originates from src/components/full_screen_figure/full_screen_figure.css */
2196
+ .o-spreadsheet {
2197
+ .o-fullscreen-figure-overlay {
2198
+ z-index: var(--os-components-importance-fullscreen-chart);
2199
+ background-color: rgba(0, 0, 0, 0.4);
2200
+ padding: 60px;
2201
+
2202
+ .o-figure:not(:hover) .o-dashboard-chart-select {
2203
+ display: block !important;
2204
+ }
2205
+ }
2206
+ }
2207
+
2208
+ /* Originates from src/components/filters/filter_menu_value_list/filter_menu_value_list.css */
2209
+ .o-spreadsheet .o-filter-menu {
2210
+ .o-search-icon {
2211
+ right: 5px;
2212
+ top: 3px;
2213
+ opacity: 0.4;
2214
+
2215
+ svg {
2216
+ height: 16px;
2217
+ width: 16px;
2218
+ vertical-align: middle;
2219
+ }
2220
+ }
2221
+
2222
+ .o-filter-menu-actions {
2223
+ display: flex;
2224
+ flex-direction: row;
2225
+ margin-bottom: 4px;
2226
+ }
2227
+
2228
+ .o-filter-menu-list {
2229
+ flex: auto;
2230
+ overflow-y: auto;
2231
+ height: 130px;
2232
+ }
2233
+ }
2234
+
2235
+ /* Originates from src/components/filters/filter_menu/filter_menu.css */
2236
+ .o-spreadsheet {
2237
+ .o-filter-menu {
2238
+ width: 245px;
2239
+ padding: 8px 0;
2240
+ user-select: none;
2241
+
2242
+ .o-filter-menu-content {
2243
+ padding: 0 16px;
2244
+ }
2245
+
2246
+ .o-sort-item {
2247
+ padding-left: 34px;
2248
+ }
2249
+
2250
+ .o_side_panel_collapsible_title {
2251
+ font-size: inherit;
2252
+ padding: 0 0 4px 0 !important;
2253
+ font-weight: 400 !important;
2254
+
2255
+ .collapsor .o-icon {
2256
+ opacity: 0.8;
2257
+ }
2258
+
2259
+ .collapsor-arrow {
2260
+ transform-origin: 6px 8px;
2261
+
2262
+ .o-icon {
2263
+ width: 12px;
2264
+ height: 16px;
2265
+ }
2266
+ }
2267
+ }
2268
+
2269
+ .o-filter-menu-item {
2270
+ display: flex;
2271
+ cursor: pointer;
2272
+ user-select: none;
2273
+ line-height: 1;
2274
+
2275
+ &.selected,
2276
+ &:hover {
2277
+ background-color: var(--os-button-active-bg);
2278
+ }
2279
+ }
2280
+
2281
+ .o-filter-menu-buttons {
2282
+ margin-top: 9px;
2283
+
2284
+ .o-button {
2285
+ height: 26px;
2286
+ }
2287
+ }
2288
+ }
2289
+ }
2290
+
2291
+ /* Originates from src/components/figures/figure_container/figure_container.css */
2292
+ .o-spreadsheet {
2293
+ .o-figure-snap-line {
2294
+ position: relative;
2295
+ z-index: var(--os-components-importance-figure-snap-line);
2296
+ &.vertical {
2297
+ width: 0px;
2298
+ border-left: 1px dashed black;
2299
+ }
2300
+ &.horizontal {
2301
+ border-top: 1px dashed black;
2302
+ height: 0px;
2303
+ }
2304
+ }
2305
+ .o-figure-container {
2306
+ -webkit-user-select: none; /* safari */
2307
+ user-select: none;
2308
+ }
2309
+ .o-figure.o-add-to-carousel::before {
2310
+ content: "";
2311
+ position: absolute;
2312
+ top: 0;
2313
+ left: 0;
2314
+ width: 100%;
2315
+ height: 100%;
2316
+ background: rgba(255, 255, 255, 0.4);
2317
+ backdrop-filter: blur(2px);
2318
+ z-index: 5;
2319
+ pointer-events: none;
2320
+ }
2321
+
2322
+ .o-figure.o-add-to-carousel::after {
2323
+ content: "+";
2324
+ position: absolute;
2325
+ top: calc(50% - 15px);
2326
+ left: 50%;
2327
+ transform: translate(-50%, -50%);
2328
+ font-size: 120px;
2329
+ color: rgba(0, 0, 0, 0.5);
2330
+ text-shadow: 0 1px 3px rgba(0, 0, 0, 0.6);
2331
+ z-index: 10;
2332
+ pointer-events: none;
2333
+ font-weight: bold;
2334
+ }
2335
+ }
2336
+
2337
+ /* Originates from src/components/figures/figure_carousel/figure_carousel.css */
2338
+ .o-spreadsheet {
2339
+ .o-carousel-content {
2340
+ height: 0; /* To make flex-fill work */
2341
+ }
2342
+
2343
+ .o-carousel-empty {
2344
+ background-color: #ffffff;
2345
+
2346
+ .o-icon {
2347
+ width: 50%;
2348
+ height: 50%;
2349
+ color: var(--os-gray-400);
2350
+ }
2351
+ }
2352
+
2353
+ .o-carousel-header {
2354
+ z-index: 1;
2355
+
2356
+ overflow: hidden;
2357
+ padding-left: 4px; /* Align with MIN_CELL_TEXT_MARGIN */
2358
+
2359
+ border: 1px solid transparent;
2360
+
2361
+ &.o-carousel-header-floating {
2362
+ border: 1px solid var(--os-figure-border-color);
2363
+ box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
2364
+ }
2365
+
2366
+ .o-carousel-title {
2367
+ max-width: 60%;
2368
+ }
2369
+
2370
+ .o-carousel-tabs {
2371
+ width: 0; /* To make flex-fill work */
2372
+ }
2373
+
2374
+ .o-carousel-button {
2375
+ cursor: pointer;
2376
+
2377
+ &.o-carousel-tabs-dropdown {
2378
+ font-size: 16px;
2379
+ line-height: 16px;
2380
+ }
2381
+
2382
+ &.o-carousel-full-screen-button {
2383
+ margin: 1px;
2384
+ }
2385
+
2386
+ &.o-carousel-menu-button {
2387
+ padding: 3px 5px;
2388
+ }
2389
+
2390
+ &.active,
2391
+ &:hover {
2392
+ background-color: var(--os-button-hover-bg);
2393
+ color: var(--os-button-hover-text-color);
2394
+ }
2395
+ }
2396
+
2397
+ .o-carousel-tab {
2398
+ cursor: pointer;
2399
+ max-width: 150px;
2400
+ font-size: 14px;
2401
+
2402
+ &:hover {
2403
+ color: var(--os-primary-button-bg);
2404
+ }
2405
+
2406
+ &.selected {
2407
+ color: var(--os-primary-button-bg);
2408
+ font-weight: 600;
2409
+ }
2410
+ }
2411
+ }
2412
+ }
2413
+
2414
+ /* Originates from src/components/figures/figure/figure.css */
2415
+ .o-spreadsheet {
2416
+ div.o-figure {
2417
+ color-scheme: light;
2418
+ color: var(--os-text-body);
2419
+
2420
+ position: absolute;
2421
+ width: 100%;
2422
+ height: 100%;
2423
+ user-select: none;
2424
+
2425
+ &:focus {
2426
+ outline: none;
2427
+ }
2428
+ }
2429
+
2430
+ div.o-figure-border {
2431
+ z-index: 1;
2432
+ border: 0px solid var(--os-figure-border-color);
2433
+
2434
+ &.o-selected {
2435
+ border-color: var(--os-selection-border-color);
2436
+ }
2437
+ }
2438
+
2439
+ .o-figure-wrapper {
2440
+ position: absolute;
2441
+ box-sizing: content-box;
2442
+ pointer-events: auto;
2443
+ z-index: var(--os-components-importance-figure);
2444
+
2445
+ &.o-figure-selected {
2446
+ z-index: var(--os-components-importance-figure-selected);
2447
+ }
2448
+
2449
+ .o-fig-anchor {
2450
+ z-index: var(--os-components-importance-figure-anchor);
2451
+ position: absolute;
2452
+ width: 8px;
2453
+ height: 8px;
2454
+ background-color: var(--os-selection-border-color);
2455
+ outline: 1px solid white;
2456
+
2457
+ &.o-top {
2458
+ cursor: n-resize;
2459
+ }
2460
+ &.o-topRight {
2461
+ cursor: ne-resize;
2462
+ }
2463
+ &.o-right {
2464
+ cursor: e-resize;
2465
+ }
2466
+ &.o-bottomRight {
2467
+ cursor: se-resize;
2468
+ }
2469
+ &.o-bottom {
2470
+ cursor: s-resize;
2471
+ }
2472
+ &.o-bottomLeft {
2473
+ cursor: sw-resize;
2474
+ }
2475
+ &.o-left {
2476
+ cursor: w-resize;
2477
+ }
2478
+ &.o-topLeft {
2479
+ cursor: nw-resize;
2480
+ }
2481
+ }
2482
+
2483
+ .o-figure-menu {
2484
+ right: 0px;
2485
+ top: 0px;
2486
+ display: none;
2487
+ }
2488
+
2489
+ .o-figure-menu-item {
2490
+ cursor: pointer;
2491
+ }
2492
+
2493
+ .o-figure.active:focus,
2494
+ .o-figure:hover {
2495
+ .o-figure-menu {
2496
+ display: flex;
2497
+ }
2498
+ }
2499
+ }
2500
+ }
2501
+
2502
+ /* Originates from src/components/figures/chart/chart_dashboard_menu/chart_dashboard_menu.css */
2503
+ .o-spreadsheet .o-figure {
2504
+ &:not(:hover):not(:focus-within) .o-dashboard-chart-select {
2505
+ visibility: hidden;
2506
+ }
2507
+
2508
+ .o-dashboard-chart-select {
2509
+ cursor: default;
2510
+ > div {
2511
+ height: 28px;
2512
+ }
2513
+
2514
+ .o-chart-dashboard-item {
2515
+ &.active,
2516
+ &:hover,
2517
+ &:target {
2518
+ color: var(--os-gray-900) !important;
2519
+ background: var(--os-background-gray-color-hover);
2520
+ }
2521
+
2522
+ .o-chart-preview {
2523
+ stroke-width: 2px;
2524
+ transform: scale(1.1);
2525
+ width: 16px;
2526
+ height: 16px;
2527
+ }
2528
+ }
2529
+ }
2530
+ }
2531
+
2532
+ .o-spreadsheet {
2533
+ &.o-spreadsheet-mobile .o-figure {
2534
+ .o-dashboard-chart-select {
2535
+ display: block !important;
2536
+ }
2537
+ }
2538
+ }
2539
+
2540
+ /* Originates from src/components/figures/chart/chartJs/chartjs.css */
2541
+ .o-spreadsheet {
2542
+ .o-chart-custom-tooltip {
2543
+ font-size: 12px;
2544
+ background-color: #fff;
2545
+ z-index: var(--os-components-importance-figure-tooltip);
2546
+ }
2547
+ }
2548
+
2549
+ /* Originates from src/components/figures/chart/chartJs/zoomable_chart/zoomable_chartjs.css */
2550
+ .o-spreadsheet {
2551
+ .o-master-chart-container {
2552
+ height: var(--os-master-chart-height);
2553
+ }
2554
+ }
2555
+
2556
+ /* Originates from src/components/error_tooltip/error_tooltip.css */
2557
+ .o-spreadsheet {
2558
+ .o-error-tooltip {
2559
+ font-size: 13px;
2560
+ border-left: 3px solid red;
2561
+ padding: 10px;
2562
+ overflow-wrap: break-word;
2563
+ width: var(--os-error-tooltip-width);
2564
+ .o-error-tooltip-message {
2565
+ overflow: hidden;
2566
+ }
2567
+ }
2568
+ }
2569
+
2570
+ /* Originates from src/components/dashboard/dashboard.css */
2571
+ .o-spreadsheet {
2572
+ .o-dashboard-clickable-cell {
2573
+ position: absolute;
2574
+ cursor: pointer;
2575
+ }
2576
+ }
2577
+
2578
+ /* Originates from src/components/dashboard/clickable_cell_sort_icon/clickable_cell_sort_icon.css */
2579
+ .o-spreadsheet {
2580
+ .sorting-icon {
2581
+ margin: 1px;
2582
+
2583
+ .fa-sort-desc {
2584
+ transform: translateY(-2px);
2585
+ }
2586
+ .fa-sort-asc {
2587
+ transform: translateY(4px);
2588
+ }
2589
+ }
2590
+
2591
+ div:not(:hover) > .sorting-icon:has(> .fa-sort) {
2592
+ display: none;
2593
+ }
2594
+ }
2595
+
2596
+ /* Originates from src/components/composer/top_bar_composer/top_bar_composer.css */
2597
+ .o-spreadsheet {
2598
+ .o-topbar-composer-container {
2599
+ height: var(--os-desktop-topbar-toolbar-height);
2600
+ }
2601
+
2602
+ .o-topbar-composer {
2603
+ height: fit-content;
2604
+ margin-top: -1px;
2605
+ margin-bottom: -1px;
2606
+ font-family: var(--os-default-font);
2607
+
2608
+ &.o-topbar-composer-inactive {
2609
+ border-right: none !important;
2610
+ }
2611
+
2612
+ &.o-topbar-composer-active {
2613
+ border-color: var(--os-selection-border-color) !important;
2614
+ z-index: var(--os-components-importance-top-bar-composer);
2615
+ }
2616
+ }
2617
+
2618
+ .user-select-text {
2619
+ user-select: text;
2620
+ }
2621
+ }
2622
+
2623
+ /* Originates from src/components/composer/standalone_composer/standalone_composer.css */
2624
+ .o-spreadsheet {
2625
+ .o-standalone-composer {
2626
+ min-height: 24px;
2627
+
2628
+ &.active {
2629
+ border-color: var(--os-action-color) !important;
2630
+ }
2631
+
2632
+ &.o-invalid {
2633
+ border-bottom: 1px solid red !important;
2634
+ background-color: var(--os-alert-danger-bg);
2635
+ }
2636
+
2637
+ /* As the standalone composer is potentially very small (eg. in a side panel), we remove the scrollbar display */
2638
+ scrollbar-width: none; /* Firefox */
2639
+ &::-webkit-scrollbar {
2640
+ display: none;
2641
+ }
2642
+ }
2643
+ }
2644
+
2645
+ /* Originates from src/components/composer/speech_bubble/speech_bubble.css */
2646
+ .o-spreadsheet {
2647
+ .o-speech-bubble {
2648
+ background-color: var(--os-white-bg);
2649
+ box-sizing: border-box;
2650
+ box-shadow: 2px 2px 2px rgba(0, 0, 0, 0.15);
2651
+ z-index: var(--os-components-importance-popover);
2652
+
2653
+ &::after {
2654
+ content: "";
2655
+ position: absolute;
2656
+ top: 100%;
2657
+ left: 50%;
2658
+ background-color: var(--os-white-bg);
2659
+ height: var(--os-bubble-arrow-size);
2660
+ width: var(--os-bubble-arrow-size);
2661
+ transform-origin: top left;
2662
+ transform: translate(0, -67%) rotate(45deg);
2663
+ border-right: 1px solid var(--os-border-color);
2664
+ border-bottom: 1px solid var(--os-border-color);
2665
+ box-shadow: 2px 2px 2px rgba(0, 0, 0, 0.15);
2666
+ }
2667
+ }
2668
+ .o-speech-content {
2669
+ max-width: 300px;
2670
+ }
2671
+ }
2672
+
2673
+ /* Originates from src/components/composer/grid_composer/grid_composer.css */
2674
+ .o-spreadsheet {
2675
+ div.o-grid-composer {
2676
+ color-scheme: light;
2677
+ z-index: var(--os-components-importance-grid-composer);
2678
+ position: absolute;
2679
+ font-family: var(--os-default-font);
2680
+
2681
+ display: flex;
2682
+ align-items: center;
2683
+ }
2684
+
2685
+ div.o-cell-reference {
2686
+ position: absolute;
2687
+ z-index: var(--os-components-importance-grid-composer);
2688
+ background: var(--os-selection-border-color);
2689
+ color: white;
2690
+ font-size: 12px;
2691
+ line-height: 14px;
2692
+ padding: 6px 7px;
2693
+ }
2694
+ }
2695
+
2696
+ /* Originates from src/components/composer/formula_assistant/formula_assistant.css */
2697
+ .o-spreadsheet .o-formula-assistant {
2698
+ outline: unset;
2699
+ .o-formula-assistant-head {
2700
+ background-color: var(--os-composer-assistant-background);
2701
+ padding: 10px;
2702
+ }
2703
+ .o-formula-assistant-arg-description {
2704
+ font-size: 85%;
2705
+ }
2706
+ .o-formula-assistant-focus {
2707
+ color: var(--os-composer-assistant-color);
2708
+ text-shadow: 0px 0px 1px var(--os-composer-assistant-color);
2709
+ & + div {
2710
+ color: var(--os-black);
2711
+ }
2712
+ }
2713
+ .o-formula-assistant-gray {
2714
+ color: gray;
2715
+ }
2716
+ .collapsor {
2717
+ cursor: pointer;
2718
+ &:hover {
2719
+ background-color: var(--os-gray-400);
2720
+ color: var(--os-button-active-text-color);
2721
+ }
2722
+
2723
+ .collapsor-arrow {
2724
+ transform-origin: 6px 8px;
2725
+ transform: rotate(-180deg);
2726
+ transition: transform 0.2s ease-in-out;
2727
+
2728
+ .o-icon {
2729
+ width: 12px;
2730
+ height: 16px;
2731
+ }
2732
+ }
2733
+ &.collapsed .collapsor-arrow {
2734
+ transform: rotate(0deg);
2735
+ }
2736
+ }
2737
+ }
2738
+
2739
+ /* Originates from src/components/composer/composer/composer.css */
2740
+ .o-spreadsheet {
2741
+ .o-composer-container {
2742
+ .o-composer {
2743
+ overflow-y: auto;
2744
+ overflow-x: hidden;
2745
+ word-break: break-all;
2746
+ padding-right: 2px;
2747
+
2748
+ caret-color: var(--os-black);
2749
+ padding-left: 3px;
2750
+ padding-right: 3px;
2751
+ outline: none;
2752
+
2753
+ tab-size: 4;
2754
+
2755
+ p {
2756
+ margin-bottom: 0px;
2757
+
2758
+ span {
2759
+ white-space: pre-wrap;
2760
+ /* On some browsers (chromium ?) it is somehow possible to hover two of the composer's spans at the same time, leading to
2761
+ * flickering with a succession of onmouseenter/onmouseleave events. A small invisible padding seems to prevent the issue.*/
2762
+ padding-left: 0.01px;
2763
+
2764
+ &.selector-flag:after {
2765
+ content: "␣";
2766
+ color: var(--os-composer-selector-flag-color);
2767
+ }
2768
+
2769
+ &.highlight-parenthesis-flag:not(.highlight-flag) {
2770
+ border-radius: 5px;
2771
+ background-color: var(--os-gray-400);
2772
+ padding: 1.5px 0px 1.5px 0px;
2773
+ }
2774
+
2775
+ &.highlight-flag {
2776
+ background-color: var(--os-composer-highlight-flag-color);
2777
+ }
2778
+ }
2779
+ }
2780
+ }
2781
+
2782
+ .o-composer[placeholder]:empty:not(:focus):not(.active)::before {
2783
+ content: attr(placeholder);
2784
+ color: var(--os-composer-placeholder-color);
2785
+ position: relative;
2786
+ top: 0%;
2787
+ pointer-events: none;
2788
+ }
2789
+
2790
+ .fa-stack {
2791
+ /* reset stack size which is doubled by default */
2792
+ width: 18px;
2793
+ height: 18px;
2794
+ line-height: 18px;
2795
+ }
2796
+
2797
+ .force-open-assistant {
2798
+ left: -1px;
2799
+ top: -1px;
2800
+
2801
+ .fa-question-circle {
2802
+ color: var(--os-primary-button-bg);
2803
+ }
2804
+ }
2805
+
2806
+ .o-composer-assistant {
2807
+ margin-top: 1px;
2808
+
2809
+ .o-semi-bold {
2810
+ /* FIXME: to remove in favor of Bootstrap
2811
+ * 'fw-semibold' when we upgrade to Bootstrap 5.2
2812
+ */
2813
+ font-weight: 600 !important;
2814
+ }
2815
+ }
2816
+
2817
+ .o-composer-assistant-container {
2818
+ .fa-times-circle {
2819
+ color: var(--os-primary-button-bg);
2820
+ }
2821
+ }
2822
+ }
2823
+ }
2824
+
2825
+ /* Originates from src/components/composer/autocomplete_dropdown/autocomplete_dropdown.css */
2826
+ .o-spreadsheet {
2827
+ .o-autocomplete-dropdown {
2828
+ pointer-events: auto;
2829
+ cursor: pointer;
2830
+ max-width: 400px;
2831
+ z-index: 1;
2832
+ .o-autocomplete-value-focus {
2833
+ background-color: var(--os-composer-assistant-background);
2834
+ }
2835
+ & > div {
2836
+ padding: 1px 5px 5px 5px;
2837
+ .o-autocomplete-description {
2838
+ padding-left: 5px;
2839
+ font-size: 11px;
2840
+ }
2841
+ }
2842
+ }
2843
+ }
2844
+
2845
+ /* Originates from src/components/color_picker/color_picker_widget.css */
2846
+ .o-spreadsheet {
2847
+ .o-color-picker-widget {
2848
+ display: flex;
2849
+ position: relative;
2850
+ align-items: center;
2851
+ height: 30px;
2852
+
2853
+ .o-color-picker-button-style {
2854
+ display: flex;
2855
+ justify-content: center;
2856
+ align-items: center;
2857
+ margin: 2px;
2858
+ padding: 3px;
2859
+ border-radius: 2px;
2860
+ cursor: pointer;
2861
+ &:not([disabled]):hover {
2862
+ background-color: var(--os-background-gray-color-hover);
2863
+ }
2864
+ }
2865
+
2866
+ .o-color-picker-button {
2867
+ > span {
2868
+ border-bottom: 4px solid;
2869
+ height: 20px;
2870
+ margin-top: 2px;
2871
+ display: block;
2872
+ }
2873
+ &[disabled] {
2874
+ pointer-events: none;
2875
+ opacity: 0.3;
2876
+ }
2877
+ }
2878
+ }
2879
+ }
2880
+
2881
+ /* Originates from src/components/color_picker/color_picker.css */
2882
+ .o-spreadsheet {
2883
+ .o-color-picker {
2884
+ padding: var(--os-picker-padding) 0;
2885
+ /* FIXME: this is useless, overiden by the popover container */
2886
+ box-shadow: 1px 2px 5px 2px rgba(51, 51, 51, 0.15);
2887
+ line-height: 1.2;
2888
+ overflow-y: auto;
2889
+ overflow-x: hidden;
2890
+ width: var(--os-container-width);
2891
+
2892
+ .o-color-picker-section-name {
2893
+ margin: 0px var(--os-item-border-width);
2894
+ padding: 4px var(--os-picker-padding);
2895
+ }
2896
+ .colors-grid {
2897
+ display: grid;
2898
+ padding: var(--os-line-vertical-padding) var(--os-picker-padding);
2899
+ grid-template-columns: repeat(var(--os-items-per-line), 1fr);
2900
+ grid-gap: var(--os-item-gap);
2901
+ }
2902
+ .o-color-picker-toggler-button {
2903
+ display: flex;
2904
+ .o-color-picker-toggler-sign {
2905
+ display: flex;
2906
+ margin: auto auto;
2907
+ width: 55%;
2908
+ height: 55%;
2909
+ .o-icon {
2910
+ width: 100%;
2911
+ height: 100%;
2912
+ }
2913
+ }
2914
+ }
2915
+ .o-color-picker-line-item {
2916
+ width: calc(var(--os-item-edge-length) + (2 * var(--os-item-border-width)));
2917
+ height: calc(var(--os-item-edge-length) + (2 * var(--os-item-border-width)));
2918
+ margin: 0px;
2919
+ border-radius: 50px;
2920
+ border: var(--os-item-border-width) solid light-dark(var(--os-gray-600), transparent);
2921
+ padding: 0px;
2922
+ font-size: 16px;
2923
+ &:hover {
2924
+ background-color: var(--os-background-gray-color-hover);
2925
+ outline: 1px solid var(--os-gray-500);
2926
+ cursor: pointer;
2927
+ }
2928
+ }
2929
+ .o-buttons {
2930
+ padding: var(--os-picker-padding);
2931
+ display: flex;
2932
+ .o-cancel {
2933
+ width: 100%;
2934
+ padding: 5px;
2935
+ font-size: 14px;
2936
+ background-color: var(--os-white-bg);
2937
+ &:hover:enabled {
2938
+ background-color: var(--os-background-gray-color-hover);
2939
+ }
2940
+ }
2941
+ }
2942
+ .o-add-button {
2943
+ padding: 4px;
2944
+ background-color: var(--os-white-bg);
2945
+ &:hover:enabled {
2946
+ background-color: var(--os-background-gray-color-hover);
2947
+ }
2948
+ }
2949
+
2950
+ .o-custom-selector {
2951
+ padding: calc(var(--os-picker-padding) + 2px) var(--os-picker-padding);
2952
+ position: relative;
2953
+ .o-gradient {
2954
+ margin-bottom: calc(var(--os-magnifier-edge) / 2);
2955
+ border: var(--os-item-border-width) solid var(--os-gray-300);
2956
+ width: calc(var(--os-inner-gradient-width) + (2 * var(--os-item-border-width)));
2957
+ height: calc(var(--os-inner-gradient-height) + (2 * var(--os-item-border-width)));
2958
+ position: relative;
2959
+ }
2960
+
2961
+ .magnifier {
2962
+ height: var(--os-magnifier-edge);
2963
+ width: var(--os-magnifier-edge);
2964
+ border-radius: 50%;
2965
+ border: 2px solid var(--os-white);
2966
+ box-shadow: 0px 0px 3px var(--os-gray-300);
2967
+ position: absolute;
2968
+ z-index: 2;
2969
+ }
2970
+ .saturation {
2971
+ background: linear-gradient(to right, var(--os-white) 0%, transparent 100%);
2972
+ }
2973
+ .lightness {
2974
+ background: linear-gradient(to top, #000 0%, transparent 100%);
2975
+ }
2976
+ .o-hue-picker {
2977
+ width: 100%;
2978
+ height: 12px;
2979
+ background: linear-gradient(
2980
+ to right,
2981
+ hsl(0, 100%, 50%) 0%,
2982
+ hsl(0.2turn, 100%, 50%) 20%,
2983
+ hsl(0.3turn, 100%, 50%) 30%,
2984
+ hsl(0.4turn, 100%, 50%) 40%,
2985
+ hsl(0.5turn, 100%, 50%) 50%,
2986
+ hsl(0.6turn, 100%, 50%) 60%,
2987
+ hsl(0.7turn, 100%, 50%) 70%,
2988
+ hsl(0.8turn, 100%, 50%) 80%,
2989
+ hsl(0.9turn, 100%, 50%) 90%,
2990
+ hsl(1turn, 100%, 50%) 100%
2991
+ );
2992
+ position: relative;
2993
+ cursor: crosshair;
2994
+ }
2995
+ .o-hue-slider {
2996
+ margin-top: -3px;
2997
+ }
2998
+ .o-custom-input-preview {
2999
+ padding: 2px 0px;
3000
+ display: flex;
3001
+ input {
3002
+ width: 50%;
3003
+ padding: 4px 23px 4px 10px;
3004
+ height: 24px;
3005
+ margin-right: 2px;
3006
+ }
3007
+ .o-wrong-color {
3008
+ /* FIXME bootstrap class instead? */
3009
+ outline-color: red;
3010
+ border-color: red;
3011
+ &:focus {
3012
+ outline-style: solid;
3013
+ outline-width: 1px;
3014
+ }
3015
+ }
3016
+ }
3017
+ .o-custom-input-buttons {
3018
+ padding: 2px 0px;
3019
+ display: flex;
3020
+ justify-content: end;
3021
+ }
3022
+ .o-color-preview {
3023
+ width: 50%;
3024
+ }
3025
+ }
3026
+ }
3027
+ }
3028
+
3029
+ /* Originates from src/components/collaborative_client_tag/collaborative_client_tag.css */
3030
+ .o-spreadsheet {
3031
+ .o-client-tag {
3032
+ position: absolute;
3033
+ border-top-left-radius: 4px;
3034
+ border-top-right-radius: 4px;
3035
+ color: white;
3036
+ pointer-events: none;
3037
+ font-size: var(--os-default-font-size);
3038
+ }
3039
+ }
3040
+
3041
+ /* Originates from src/components/bottom_bar/bottom_bar.css */
3042
+ .o-spreadsheet {
3043
+ .o-spreadsheet-bottom-bar {
3044
+ font-size: 15px;
3045
+ background-color: var(--os-background-gray-color);
3046
+ padding-left: var(--os-header-width);
3047
+
3048
+ .o-sheet-item {
3049
+ cursor: pointer;
3050
+ &:hover {
3051
+ background-color: var(--os-background-gray-color-hover);
3052
+ }
3053
+ }
3054
+
3055
+ .o-all-sheets {
3056
+ max-width: 70%;
3057
+ .o-bottom-bar-fade-out {
3058
+ background-image: linear-gradient(-90deg, var(--os-gray-400), transparent 1%);
3059
+ }
3060
+ .o-bottom-bar-fade-in {
3061
+ z-index: 1;
3062
+ background-image: linear-gradient(90deg, var(--os-gray-400), transparent 1%);
3063
+ }
3064
+ .o-sheet-list {
3065
+ overflow-y: hidden;
3066
+ overflow-x: auto;
3067
+ &::-webkit-scrollbar {
3068
+ display: none; /* Chrome */
3069
+ }
3070
+ -ms-overflow-style: none; /* IE and Edge */
3071
+ scrollbar-width: none; /* Firefox */
3072
+ }
3073
+ }
3074
+
3075
+ .o-bottom-bar-arrows {
3076
+ .o-bottom-bar-arrow {
3077
+ cursor: pointer;
3078
+ &:hover:not([class*="o-disabled"]) {
3079
+ .o-icon {
3080
+ opacity: 0.9;
3081
+ }
3082
+ }
3083
+ .o-icon {
3084
+ height: 18px;
3085
+ width: 18px;
3086
+ font-size: 18px;
3087
+ }
3088
+ }
3089
+ }
3090
+ }
3091
+
3092
+ &.o-spreadsheet-mobile .o-spreadsheet-bottom-bar {
3093
+ padding-left: 0;
3094
+ .add-sheet-container {
3095
+ order: 2;
3096
+ }
3097
+ .o-add-sheet {
3098
+ margin-left: 0.5rem;
3099
+ }
3100
+ .o-all-sheets {
3101
+ max-width: none;
3102
+ }
3103
+ }
3104
+ }
3105
+
3106
+ /* Originates from src/components/bottom_bar/bottom_bar_statistic/bottom_bar_statistic.css */
3107
+ .o-spreadsheet {
3108
+ .o-selection-statistic {
3109
+ margin-right: 20px;
3110
+ padding: 4px 4px 4px 8px;
3111
+ cursor: pointer;
3112
+ &:hover {
3113
+ background-color: var(--os-background-gray-color-hover) !important;
3114
+ }
3115
+ }
3116
+ }
3117
+
3118
+ /* Originates from src/components/bottom_bar/bottom_bar_sheet/bottom_bar_sheet.css */
3119
+ .o-spreadsheet {
3120
+ .o-sheet {
3121
+ padding: 0 15px;
3122
+ padding-right: 10px;
3123
+ height: var(--os-desktop-bottombar-height);
3124
+ margin-left: -1px;
3125
+ cursor: pointer;
3126
+ &:hover {
3127
+ background-color: var(--os-background-gray-color-hover);
3128
+ }
3129
+
3130
+ &.active {
3131
+ color: var(--os-action-color);
3132
+ background-color: var(--os-active-sheet-bg);
3133
+ box-shadow: 0 1px 3px 1px rgba(60, 64, 67, 0.15);
3134
+ }
3135
+
3136
+ .o-sheet-icon {
3137
+ z-index: 1;
3138
+
3139
+ &:hover {
3140
+ background-color: var(--os-background-gray-color-hover);
3141
+ }
3142
+ }
3143
+
3144
+ .o-sheet-name {
3145
+ outline: none;
3146
+ padding: 2px 4px;
3147
+
3148
+ &.o-sheet-name-editable {
3149
+ border-radius: 2px;
3150
+ border: 2px solid mediumblue;
3151
+ /* negative margins so nothing moves when the border is added */
3152
+ margin-left: -2px;
3153
+ margin-right: -2px;
3154
+ }
3155
+ }
3156
+
3157
+ .o-sheet-color {
3158
+ bottom: 0;
3159
+ left: 0;
3160
+ height: 6px;
3161
+ z-index: 1;
3162
+ width: calc(100% - 1px);
3163
+ }
3164
+ }
3165
+
3166
+ .o-spreadshet-mobile .o-sheet {
3167
+ height: var(--os-mobile-bottombar-height);
3168
+ }
3169
+ }
3170
+
3171
+ /* Originates from src/components/border_editor/border_editor.css */
3172
+ .o-spreadsheet {
3173
+ .o-border-selector {
3174
+ padding: 4px;
3175
+
3176
+ .o-divider {
3177
+ margin: 0 6px;
3178
+ }
3179
+
3180
+ .o-border-selector-section {
3181
+ .o-dropdown-line {
3182
+ height: 30px;
3183
+ margin: 1px;
3184
+ .o-line-item {
3185
+ padding: 4px;
3186
+ width: 26px;
3187
+ height: 26px;
3188
+ &.active {
3189
+ background-color: var(--os-button-active-bg);
3190
+ }
3191
+ }
3192
+ }
3193
+ .o-border-style-tool {
3194
+ padding: 0px 3px;
3195
+ margin: 2px;
3196
+ height: 25px;
3197
+ }
3198
+ }
3199
+ }
3200
+
3201
+ .o-border-style-dropdown {
3202
+ padding: 4px;
3203
+ .o-style-preview {
3204
+ margin: 7px 5px 7px 5px;
3205
+ width: 60px;
3206
+ height: 5px;
3207
+ }
3208
+ .o-style-thin {
3209
+ border-bottom: 1px solid var(--os-black);
3210
+ }
3211
+ .o-style-medium {
3212
+ border-bottom: 2px solid var(--os-black);
3213
+ }
3214
+ .o-style-thick {
3215
+ border-bottom: 3px solid var(--os-black);
3216
+ }
3217
+ .o-style-dashed {
3218
+ border-bottom: 1px dashed var(--os-black);
3219
+ }
3220
+ .o-style-dotted {
3221
+ border-bottom: 1px dotted var(--os-black);
3222
+ }
3223
+ .o-dropdown-border-type {
3224
+ cursor: pointer;
3225
+ &:not(.o-disabled):not(.active):hover {
3226
+ background-color: var(--os-button-hover-bg);
3227
+ }
3228
+ }
3229
+ .o-dropdown-border-check {
3230
+ width: 20px;
3231
+ font-size: 12px;
3232
+ }
3233
+ .o-border-picker-button {
3234
+ padding: 0px !important;
3235
+ margin: 5px 0px 0px 0px !important;
3236
+ height: 25px !important;
3237
+ }
3238
+ }
3239
+ }
3240
+
3241
+ /* Originates from src/components/autofill/autofill.css */
3242
+ .o-spreadsheet {
3243
+ .o-autofill {
3244
+ position: absolute;
3245
+ border: 1px solid white;
3246
+ background-color: var(--os-selection-border-color);
3247
+ height: var(--os-autofill-edge-length);
3248
+ width: var(--os-autofill-edge-length);
3249
+ }
3250
+
3251
+ .o-autofill-handler {
3252
+ position: absolute;
3253
+ height: var(--os-autofill-edge-length);
3254
+ width: var(--os-autofill-edge-length);
3255
+ &:hover {
3256
+ cursor: crosshair;
3257
+ }
3258
+ }
3259
+
3260
+ .o-autofill-nextvalue {
3261
+ position: absolute;
3262
+ background-color: #ffffff;
3263
+ border: 1px solid black;
3264
+ padding: 5px;
3265
+ font-size: 12px;
3266
+ pointer-events: none;
3267
+ white-space: nowrap;
3268
+ }
3269
+ }
3270
+
3271
+ /* Originates from src/components/animation/ripple.css */
3272
+ .o-spreadsheet {
3273
+ .o-ripple {
3274
+ z-index: 1;
3275
+ }
3276
+ }
3277
+
3278
+ /* Originates from src/components/action_button/action_button.css */
3279
+ .o-spreadsheet {
3280
+ .o-menu-item-button {
3281
+ display: flex;
3282
+ justify-content: center;
3283
+ align-items: center;
3284
+ margin: 2px 1px;
3285
+ padding: 0px 1px;
3286
+ border-radius: 2px;
3287
+ min-width: 22px;
3288
+ }
3289
+ .o-disabled {
3290
+ opacity: 0.6;
3291
+ cursor: default;
3292
+ }
3293
+ }