@einfach-excel/spreadsheet-ui-styles 0.0.0-stage → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (73) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +37 -2
  3. package/features/comment-thread.css +169 -0
  4. package/features/comment-thread.css.d.ts +2 -0
  5. package/features/conditional-format-dialog.css +254 -0
  6. package/features/conditional-format-dialog.css.d.ts +7 -0
  7. package/features/conditional-format-fields.css +10 -0
  8. package/features/conditional-format-fields.css.d.ts +2 -0
  9. package/features/data-validation-dialog.css +197 -0
  10. package/features/data-validation-dialog.css.d.ts +7 -0
  11. package/features/filter-dropdown.css +177 -0
  12. package/features/filter-dropdown.css.d.ts +2 -0
  13. package/features/find-replace-actions.css +13 -0
  14. package/features/find-replace-actions.css.d.ts +2 -0
  15. package/features/find-replace-dialog.css +147 -0
  16. package/features/find-replace-dialog.css.d.ts +2 -0
  17. package/features/find-replace-status-messages.css +19 -0
  18. package/features/find-replace-status-messages.css.d.ts +2 -0
  19. package/features/format-cells-dialog.css +296 -0
  20. package/features/format-cells-dialog.css.d.ts +2 -0
  21. package/features/format-cells-panels.css +154 -0
  22. package/features/format-cells-panels.css.d.ts +2 -0
  23. package/features/go-to-dialog.css +205 -0
  24. package/features/go-to-dialog.css.d.ts +2 -0
  25. package/features/menu-help-dialog.css +82 -0
  26. package/features/name-manager-dialog.css +276 -0
  27. package/features/number-format-dialog.css +147 -0
  28. package/features/number-format-dialog.css.d.ts +2 -0
  29. package/features/page-setup-dialog.css +167 -0
  30. package/features/page-setup-dialog.css.d.ts +3 -0
  31. package/features/paste-special-dialog.css +126 -0
  32. package/features/paste-special-dialog.css.d.ts +7 -0
  33. package/features/print-preview-dialog.css +197 -0
  34. package/features/print-preview-dialog.css.d.ts +3 -0
  35. package/features/protection-unlock-dialog.css +127 -0
  36. package/features/remove-duplicates-dialog.css +165 -0
  37. package/features/remove-duplicates-dialog.css.d.ts +7 -0
  38. package/features/sheet-tab-delete-dialog.css +64 -0
  39. package/features/sheet-tab-delete-dialog.css.d.ts +3 -0
  40. package/features/sort-confirmation-dialog.css +157 -0
  41. package/features/sort-confirmation-dialog.css.d.ts +2 -0
  42. package/features/text-to-columns-dialog.css +246 -0
  43. package/features/text-to-columns-dialog.css.d.ts +2 -0
  44. package/features/toolbar-shell.css +46 -0
  45. package/features/toolbar-shell.css.d.ts +2 -0
  46. package/package.json +40 -3
  47. package/styles/button-states.css +45 -0
  48. package/styles/chrome-tokens.css +124 -0
  49. package/styles/demo-header.css +23 -0
  50. package/styles/demo-two-column.css +115 -0
  51. package/styles/diagnostics.css +127 -0
  52. package/styles/dialog-skin.css +143 -0
  53. package/styles/formula-autocomplete.css +87 -0
  54. package/styles/formula-bar-row.css +51 -0
  55. package/styles/grid-cells.css +254 -0
  56. package/styles/grid-frame.css +268 -0
  57. package/styles/grid-headers.css +99 -0
  58. package/styles/grid-overlays.css +160 -0
  59. package/styles/help-overlay.css +67 -0
  60. package/styles/history-panel.css +127 -0
  61. package/styles/index.css +26 -0
  62. package/styles/locked-edit-feedback.css +45 -0
  63. package/styles/marching-ants.css +18 -0
  64. package/styles/menu-bar.css +97 -0
  65. package/styles/name-box.css +89 -0
  66. package/styles/presence-overlay.css +36 -0
  67. package/styles/shared-context-menu.css +50 -0
  68. package/styles/shared-format-toolbar.css +82 -0
  69. package/styles/shared-sheet-tabs.css +138 -0
  70. package/styles/sheet-tabs.css +98 -0
  71. package/styles/status-bar.css +161 -0
  72. package/styles/toolbar-popovers.css +278 -0
  73. package/styles/toolbar.css +213 -0
@@ -0,0 +1,147 @@
1
+ .number-format-dialog {
2
+ width: 440px;
3
+ min-width: 440px;
4
+ max-width: min(440px, calc(100vw - 32px));
5
+ max-height: min(520px, calc(100vh - 32px));
6
+ }
7
+
8
+ .number-format-dialog-header {
9
+ justify-content: space-between;
10
+ }
11
+
12
+ .number-format-dialog-title {
13
+ margin: 0;
14
+ color: var(--text-default);
15
+ user-select: none;
16
+ }
17
+
18
+ .number-format-dialog-body {
19
+ display: flex;
20
+ flex: 1 1 auto;
21
+ flex-direction: column;
22
+ gap: 10px;
23
+ min-height: 0;
24
+ padding: 14px 16px 16px;
25
+ background: var(--bg-surface);
26
+ }
27
+
28
+ .number-format-dialog-decimals {
29
+ display: flex;
30
+ align-items: center;
31
+ gap: 10px;
32
+ min-height: 28px;
33
+ color: var(--text-default);
34
+ }
35
+
36
+ .number-format-dialog-decimals span {
37
+ flex: 0 0 auto;
38
+ }
39
+
40
+ .number-format-dialog-decimals input {
41
+ width: 72px;
42
+ padding: 0 6px;
43
+ font-variant-numeric: tabular-nums;
44
+ }
45
+
46
+ .number-format-dialog-list {
47
+ display: flex;
48
+ flex-direction: column;
49
+ min-height: 0;
50
+ max-height: 300px;
51
+ overflow: auto;
52
+ border: 1px solid var(--border);
53
+ border-radius: var(--control-radius);
54
+ background: var(--bg-surface);
55
+ }
56
+
57
+ .number-format-dialog-currency-list {
58
+ max-height: 288px;
59
+ }
60
+
61
+ .number-format-dialog-row {
62
+ display: grid;
63
+ grid-template-columns: minmax(0, 1fr) auto;
64
+ align-items: center;
65
+ gap: 16px;
66
+ min-height: 32px;
67
+ width: 100%;
68
+ padding: 5px 10px;
69
+ border: none;
70
+ border-bottom: 1px solid var(--gridline);
71
+ background: var(--bg-surface);
72
+ color: var(--text-default);
73
+ font: inherit;
74
+ text-align: left;
75
+ cursor: pointer;
76
+ }
77
+
78
+ .number-format-dialog-row:last-child {
79
+ border-bottom: none;
80
+ }
81
+
82
+ .number-format-dialog-row:hover {
83
+ background: var(--hover);
84
+ }
85
+
86
+ .number-format-dialog-row-selected {
87
+ background: var(--select-bg);
88
+ box-shadow: inset 3px 0 0 var(--excel-green);
89
+ }
90
+
91
+ .number-format-dialog-row-label {
92
+ min-width: 0;
93
+ overflow: hidden;
94
+ text-overflow: ellipsis;
95
+ white-space: nowrap;
96
+ }
97
+
98
+ .number-format-dialog-row-preview,
99
+ .number-format-dialog-row-pattern {
100
+ color: var(--text-muted);
101
+ font-variant-numeric: tabular-nums;
102
+ white-space: nowrap;
103
+ }
104
+
105
+ .number-format-dialog-row-pattern {
106
+ font-family: ui-monospace, SFMono-Regular, Consolas, 'Liberation Mono', monospace;
107
+ font-size: 12px;
108
+ }
109
+
110
+ .number-format-dialog-actions {
111
+ min-height: 48px;
112
+ }
113
+
114
+ .number-format-dialog-actions button {
115
+ min-width: 72px;
116
+ padding: 0 14px;
117
+ cursor: pointer;
118
+ }
119
+
120
+ .number-format-dialog-actions [role='alert'] {
121
+ margin-right: auto;
122
+ color: var(--error-text);
123
+ font-size: 12px;
124
+ }
125
+
126
+ .number-format-dialog-actions button:hover:not(:disabled) {
127
+ border-color: var(--border-strong);
128
+ background: var(--hover);
129
+ }
130
+
131
+ .number-format-dialog-actions button:disabled {
132
+ border-color: var(--border);
133
+ background: var(--bg-chrome);
134
+ color: var(--text-disabled);
135
+ cursor: default;
136
+ }
137
+
138
+ @media (max-width: 520px) {
139
+ .number-format-dialog {
140
+ width: calc(100vw - 32px);
141
+ min-width: 0;
142
+ }
143
+
144
+ .number-format-dialog-row {
145
+ gap: 10px;
146
+ }
147
+ }
@@ -0,0 +1,2 @@
1
+ declare const stylesheet: string
2
+ export default stylesheet
@@ -0,0 +1,167 @@
1
+ /* Page Setup owns its form layout; dialog-skin.css owns the Office web modal shell. */
2
+
3
+ .spreadsheet-page-setup-dialog {
4
+ width: min(440px, calc(100vw - 32px));
5
+ }
6
+
7
+ .spreadsheet-page-setup-dialog .page-setup-header {
8
+ justify-content: space-between;
9
+ }
10
+
11
+ .spreadsheet-page-setup-dialog .page-setup-body {
12
+ display: grid;
13
+ min-height: 0;
14
+ flex: 1 1 auto;
15
+ gap: 12px;
16
+ padding: 16px;
17
+ overflow-y: auto;
18
+ background: var(--bg-surface);
19
+ }
20
+
21
+ .spreadsheet-page-setup-dialog .page-setup-fieldset {
22
+ display: grid;
23
+ gap: 8px 16px;
24
+ min-width: 0;
25
+ margin: 0;
26
+ padding: 8px 12px 12px;
27
+ border: 1px solid var(--border);
28
+ border-radius: var(--radius);
29
+ background: var(--bg-surface);
30
+ }
31
+
32
+ .spreadsheet-page-setup-dialog .page-setup-orientation {
33
+ grid-template-columns: repeat(2, minmax(0, 1fr));
34
+ }
35
+
36
+ .spreadsheet-page-setup-dialog legend {
37
+ padding: 0 4px;
38
+ color: var(--text-muted);
39
+ font-size: 12px;
40
+ font-weight: 600;
41
+ }
42
+
43
+ .spreadsheet-page-setup-dialog label,
44
+ .spreadsheet-page-setup-dialog .page-setup-scale-choice {
45
+ display: flex;
46
+ align-items: center;
47
+ gap: 6px;
48
+ color: var(--text-default);
49
+ font-size: 13px;
50
+ }
51
+
52
+ .spreadsheet-page-setup-dialog .page-setup-scale-choice {
53
+ display: grid;
54
+ grid-template-columns: 72px 64px minmax(0, 1fr) 64px minmax(0, 1fr);
55
+ }
56
+
57
+ .spreadsheet-page-setup-dialog label {
58
+ cursor: pointer;
59
+ }
60
+
61
+ .spreadsheet-page-setup-dialog label:has(input:disabled) {
62
+ color: var(--text-disabled);
63
+ cursor: default;
64
+ }
65
+
66
+ .spreadsheet-page-setup-dialog input[type='radio'] {
67
+ accent-color: var(--excel-green);
68
+ }
69
+
70
+ .spreadsheet-page-setup-dialog input[type='number'] {
71
+ width: 64px;
72
+ padding: 0 6px;
73
+ }
74
+
75
+ .spreadsheet-page-setup-dialog input[type='number']:hover:not(:disabled) {
76
+ border-color: var(--border-strong);
77
+ }
78
+
79
+ .spreadsheet-page-setup-dialog input[type='number']:disabled {
80
+ background: var(--bg-chrome);
81
+ color: var(--text-disabled);
82
+ cursor: default;
83
+ }
84
+
85
+ .spreadsheet-page-setup-dialog output {
86
+ padding-top: 7px;
87
+ border-top: 1px solid var(--border);
88
+ color: var(--text-muted);
89
+ font-size: 12px;
90
+ }
91
+
92
+ .spreadsheet-page-setup-dialog .page-setup-error {
93
+ padding: 8px 10px;
94
+ border: 1px solid var(--error-text);
95
+ border-radius: var(--radius);
96
+ background: var(--error-bg);
97
+ color: var(--error-text);
98
+ font-size: 12px;
99
+ }
100
+
101
+ .spreadsheet-page-setup-dialog .page-setup-footer {
102
+ min-height: 48px;
103
+ }
104
+
105
+ .spreadsheet-page-setup-dialog .page-setup-button {
106
+ min-width: 72px;
107
+ cursor: pointer;
108
+ padding: 0 12px;
109
+ }
110
+
111
+ .spreadsheet-page-setup-dialog
112
+ .page-setup-button:hover:not(:disabled):not([data-variant='primary']) {
113
+ border-color: var(--border-strong);
114
+ background: var(--hover);
115
+ }
116
+
117
+ .spreadsheet-page-setup-dialog .page-setup-button:disabled {
118
+ border-color: var(--border);
119
+ background: var(--bg-chrome);
120
+ color: var(--text-disabled);
121
+ cursor: default;
122
+ }
123
+
124
+ .spreadsheet-page-setup-dialog[aria-busy='true'] .page-setup-body {
125
+ cursor: progress;
126
+ }
127
+
128
+ .spreadsheet-page-setup-dialog[aria-busy='true'] .page-setup-fieldset {
129
+ opacity: 0.72;
130
+ }
131
+
132
+ .spreadsheet-page-setup-dialog .page-setup-pending {
133
+ display: inline-flex;
134
+ flex: 1 1 auto;
135
+ align-items: center;
136
+ }
137
+
138
+ .spreadsheet-page-setup-dialog .page-setup-pending-indicator {
139
+ width: 10px;
140
+ height: 10px;
141
+ border: 2px solid var(--border);
142
+ border-top-color: var(--office-blue);
143
+ border-radius: 50%;
144
+ animation: page-setup-pending-spin 800ms linear infinite;
145
+ }
146
+
147
+ @keyframes page-setup-pending-spin {
148
+ to {
149
+ transform: rotate(360deg);
150
+ }
151
+ }
152
+
153
+ @media (max-width: 440px) {
154
+ .spreadsheet-page-setup-dialog .page-setup-scale-choice {
155
+ grid-template-columns: 72px 64px minmax(0, 1fr);
156
+ }
157
+
158
+ .spreadsheet-page-setup-dialog .page-setup-scale-choice > input:nth-of-type(2) {
159
+ grid-column: 2;
160
+ }
161
+ }
162
+
163
+ @media (prefers-reduced-motion: reduce) {
164
+ .spreadsheet-page-setup-dialog .page-setup-pending-indicator {
165
+ animation: none;
166
+ }
167
+ }
@@ -0,0 +1,3 @@
1
+ /** Allows the production-only dynamic stylesheet import to type-check. */
2
+ declare const stylesheet: string
3
+ export default stylesheet
@@ -0,0 +1,126 @@
1
+ /* Paste Special owns its interior; dialog-skin.css owns the modal shell. */
2
+
3
+ .paste-special-dialog {
4
+ width: 420px;
5
+ max-width: calc(100vw - 32px);
6
+ }
7
+
8
+ .paste-special-dialog .ps-header {
9
+ justify-content: space-between;
10
+ }
11
+
12
+ .paste-special-dialog .ps-title {
13
+ color: var(--text-default);
14
+ font-size: 14px;
15
+ font-weight: 600;
16
+ }
17
+
18
+ .paste-special-dialog .ps-body {
19
+ display: flex;
20
+ flex-direction: column;
21
+ gap: 12px;
22
+ padding: 16px;
23
+ background: var(--bg-surface);
24
+ }
25
+
26
+ .paste-special-dialog .ps-fieldset {
27
+ display: grid;
28
+ grid-template-columns: repeat(2, minmax(0, 1fr));
29
+ gap: 8px 16px;
30
+ margin: 0;
31
+ padding: 8px 12px 12px;
32
+ border: 1px solid var(--border);
33
+ border-radius: var(--radius);
34
+ }
35
+
36
+ .paste-special-dialog .ps-legend {
37
+ padding: 0 4px;
38
+ color: var(--text-muted);
39
+ font-size: 12px;
40
+ font-weight: 600;
41
+ }
42
+
43
+ .paste-special-dialog .ps-radio,
44
+ .paste-special-dialog .ps-option {
45
+ display: flex;
46
+ align-items: center;
47
+ gap: 6px;
48
+ color: var(--text-default);
49
+ cursor: pointer;
50
+ }
51
+
52
+ .paste-special-dialog .ps-radio:has(input:disabled),
53
+ .paste-special-dialog .ps-option:has(input:disabled) {
54
+ color: var(--text-disabled);
55
+ cursor: default;
56
+ }
57
+
58
+ .paste-special-dialog :is(.ps-radio, .ps-option) input {
59
+ accent-color: var(--excel-green);
60
+ }
61
+
62
+ .paste-special-dialog .ps-field {
63
+ display: grid;
64
+ grid-template-columns: 72px minmax(0, 1fr);
65
+ align-items: center;
66
+ gap: 8px;
67
+ }
68
+
69
+ .paste-special-dialog .ps-field-label {
70
+ color: var(--text-muted);
71
+ }
72
+
73
+ .paste-special-dialog .ps-select {
74
+ width: 100%;
75
+ padding: 0 8px;
76
+ }
77
+
78
+ .paste-special-dialog .ps-options {
79
+ display: flex;
80
+ flex-wrap: wrap;
81
+ gap: 8px 16px;
82
+ margin: 0;
83
+ padding: 0;
84
+ border: 0;
85
+ }
86
+
87
+ .paste-special-dialog .ps-footer {
88
+ min-height: 48px;
89
+ }
90
+
91
+ .paste-special-dialog .ps-btn {
92
+ min-width: 72px;
93
+ padding: 0 12px;
94
+ cursor: pointer;
95
+ }
96
+
97
+ .paste-special-dialog .ps-btn:hover:not(:disabled) {
98
+ background: var(--hover);
99
+ }
100
+
101
+ .paste-special-dialog .ps-btn:disabled,
102
+ .paste-special-dialog .ps-select:disabled {
103
+ border-color: var(--border);
104
+ background: var(--bg-chrome);
105
+ color: var(--text-disabled);
106
+ cursor: default;
107
+ }
108
+
109
+ .paste-special-dialog .ps-btn-primary:disabled {
110
+ background: var(--bg-chrome);
111
+ }
112
+
113
+ .paste-special-dialog [role='alert'] {
114
+ margin: 0;
115
+ padding: 8px 10px;
116
+ border: 1px solid var(--error-text);
117
+ border-radius: var(--radius);
118
+ background: var(--error-bg);
119
+ color: var(--error-text);
120
+ }
121
+
122
+ .paste-special-dialog [data-testid='paste-special-unsupported-explanation'] {
123
+ margin: -4px 0 0;
124
+ color: var(--text-muted);
125
+ font-size: 12px;
126
+ }
@@ -0,0 +1,7 @@
1
+ // Side-effect CSS module — the dialog `.tsx` pulls this in for its styles.
2
+ // Declaration is co-located so tsc is happy when the runtime-guarded
3
+ // `import('./paste-special-dialog.css')` is type-checked. The default
4
+ // export is `unknown` because nothing consumes the returned namespace; we
5
+ // only want the load side-effect.
6
+ declare const css: unknown
7
+ export default css
@@ -0,0 +1,197 @@
1
+ /* Print Preview owns its preview surface; dialog-skin.css owns the modal shell. */
2
+
3
+ .spreadsheet-print-preview {
4
+ width: min(680px, calc(100vw - 32px));
5
+ }
6
+
7
+ .spreadsheet-print-preview .print-preview-dialog-header {
8
+ justify-content: space-between;
9
+ }
10
+
11
+ .spreadsheet-print-preview .print-preview-dialog-body {
12
+ display: grid;
13
+ grid-template-columns: minmax(0, 1fr) minmax(156px, 0.42fr);
14
+ min-height: 300px;
15
+ gap: 20px;
16
+ padding: 20px;
17
+ overflow: auto;
18
+ background: var(--bg-chrome-light);
19
+ }
20
+
21
+ .spreadsheet-print-preview .print-preview-sheet {
22
+ display: grid;
23
+ place-items: center;
24
+ min-width: 0;
25
+ margin: 0;
26
+ gap: 8px;
27
+ }
28
+
29
+ .spreadsheet-print-preview .print-preview-paper {
30
+ display: grid;
31
+ grid-template-rows: auto minmax(180px, 1fr) auto;
32
+ width: min(100%, 336px);
33
+ min-height: 252px;
34
+ padding: 18px;
35
+ border: 1px solid var(--border-strong);
36
+ background: var(--bg-surface);
37
+ box-shadow: var(--shadow-popover);
38
+ }
39
+
40
+ .spreadsheet-print-preview .print-preview-page-header,
41
+ .spreadsheet-print-preview .print-preview-page-footer {
42
+ display: grid;
43
+ grid-template-columns: repeat(3, minmax(0, 1fr));
44
+ min-height: 20px;
45
+ padding: 4px 0;
46
+ color: var(--text-muted);
47
+ font-size: 11px;
48
+ line-height: 12px;
49
+ }
50
+
51
+ .spreadsheet-print-preview .print-preview-page-header {
52
+ border-bottom: 1px solid var(--gridline);
53
+ }
54
+
55
+ .spreadsheet-print-preview .print-preview-page-footer {
56
+ border-top: 1px solid var(--gridline);
57
+ }
58
+
59
+ .spreadsheet-print-preview :is(.print-preview-page-header, .print-preview-page-footer) span {
60
+ overflow: hidden;
61
+ text-overflow: ellipsis;
62
+ white-space: nowrap;
63
+ }
64
+
65
+ .spreadsheet-print-preview
66
+ :is(.print-preview-page-header, .print-preview-page-footer)
67
+ span:nth-child(2) {
68
+ text-align: center;
69
+ }
70
+
71
+ .spreadsheet-print-preview
72
+ :is(.print-preview-page-header, .print-preview-page-footer)
73
+ span:nth-child(3) {
74
+ text-align: right;
75
+ }
76
+
77
+ .spreadsheet-print-preview .print-preview-page-content {
78
+ display: grid;
79
+ grid-template-columns: repeat(3, minmax(0, 1fr));
80
+ align-content: start;
81
+ gap: 1px;
82
+ padding-top: 16px;
83
+ }
84
+
85
+ .spreadsheet-print-preview .print-preview-page-content span {
86
+ min-height: 32px;
87
+ border: 1px solid var(--gridline);
88
+ background: var(--bg-surface);
89
+ }
90
+
91
+ .spreadsheet-print-preview .print-preview-sheet figcaption {
92
+ color: var(--text-muted);
93
+ font-size: 12px;
94
+ }
95
+
96
+ .spreadsheet-print-preview .print-preview-summary {
97
+ display: grid;
98
+ align-content: center;
99
+ min-width: 0;
100
+ margin: 0;
101
+ border: 1px solid var(--border);
102
+ border-radius: var(--radius);
103
+ background: var(--bg-surface);
104
+ }
105
+
106
+ .spreadsheet-print-preview .print-preview-summary > div {
107
+ display: grid;
108
+ gap: 4px;
109
+ padding: 12px;
110
+ border-bottom: 1px solid var(--border);
111
+ }
112
+
113
+ .spreadsheet-print-preview .print-preview-summary > div:last-child {
114
+ border-bottom: 0;
115
+ }
116
+
117
+ .spreadsheet-print-preview .print-preview-summary dt {
118
+ color: var(--text-muted);
119
+ font-size: 12px;
120
+ font-weight: 600;
121
+ }
122
+
123
+ .spreadsheet-print-preview .print-preview-summary dd {
124
+ margin: 0;
125
+ color: var(--text-default);
126
+ font-size: 13px;
127
+ overflow-wrap: anywhere;
128
+ }
129
+
130
+ .spreadsheet-print-preview .print-preview-actions {
131
+ min-height: 48px;
132
+ }
133
+
134
+ .spreadsheet-print-preview .print-preview-button {
135
+ min-width: 92px;
136
+ padding: 0 12px;
137
+ cursor: pointer;
138
+ }
139
+
140
+ .spreadsheet-print-preview .print-preview-page-setup {
141
+ order: 1;
142
+ }
143
+
144
+ .spreadsheet-print-preview .print-preview-close {
145
+ order: 2;
146
+ }
147
+
148
+ .spreadsheet-print-preview .print-preview-primary {
149
+ order: 3;
150
+ }
151
+
152
+ .spreadsheet-print-preview
153
+ .print-preview-button:hover:not(:disabled):not([data-variant='primary']) {
154
+ border-color: var(--border-strong);
155
+ background: var(--hover);
156
+ }
157
+
158
+ .spreadsheet-print-preview .print-preview-primary:hover:not(:disabled) {
159
+ border-color: var(--dialog-primary-hover);
160
+ background: var(--dialog-primary-hover);
161
+ }
162
+
163
+ @media (max-width: 560px) {
164
+ .spreadsheet-print-preview .print-preview-dialog-body {
165
+ grid-template-columns: minmax(0, 1fr);
166
+ gap: 16px;
167
+ padding: 16px;
168
+ }
169
+
170
+ .spreadsheet-print-preview .print-preview-paper {
171
+ width: min(100%, 280px);
172
+ }
173
+
174
+ .spreadsheet-print-preview .print-preview-summary {
175
+ grid-template-columns: repeat(3, minmax(0, 1fr));
176
+ }
177
+
178
+ .spreadsheet-print-preview .print-preview-summary > div {
179
+ min-width: 0;
180
+ border-right: 1px solid var(--border);
181
+ border-bottom: 0;
182
+ }
183
+
184
+ .spreadsheet-print-preview .print-preview-summary > div:last-child {
185
+ border-right: 0;
186
+ }
187
+ }
188
+
189
+ @media (max-width: 400px) {
190
+ .spreadsheet-print-preview .print-preview-actions {
191
+ flex-wrap: wrap;
192
+ }
193
+
194
+ .spreadsheet-print-preview .print-preview-button {
195
+ flex: 1 1 auto;
196
+ }
197
+ }
@@ -0,0 +1,3 @@
1
+ /** Allows the production-only dynamic stylesheet import to type-check. */
2
+ declare const stylesheet: string
3
+ export default stylesheet