@components-kit/open-workbook 0.1.3 → 0.1.4

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,572 @@
1
+ :root {
2
+ color-scheme: light;
3
+ font-family: "Instrument Sans", "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
4
+ --brand: oklch(62.31% 0.209 259.53);
5
+ --brand-ring: oklch(80.9% 0.105 251.81);
6
+ --neutral-0: oklch(100% 0 0);
7
+ --neutral-50: oklch(98.5% 0 0);
8
+ --neutral-100: oklch(96.5% 0 0);
9
+ --neutral-200: oklch(92.5% 0 0);
10
+ --neutral-300: oklch(87% 0 0);
11
+ --neutral-500: oklch(55.5% 0 0);
12
+ --neutral-600: oklch(44.5% 0 0);
13
+ --neutral-700: oklch(37% 0 0);
14
+ --neutral-950: oklch(14% 0 0);
15
+ --success: oklch(63% 0.18 145);
16
+ --warning: oklch(72% 0.17 78);
17
+ --error: oklch(61% 0.22 27);
18
+ }
19
+
20
+ @keyframes connection-border-race {
21
+ to {
22
+ transform: rotate(360deg);
23
+ }
24
+ }
25
+
26
+ @keyframes excel-hero-card-glow-a {
27
+ 0%,
28
+ 100% {
29
+ opacity: 0.58;
30
+ transform: translate3d(0, 0, 0) scale(1);
31
+ }
32
+
33
+ 45% {
34
+ opacity: 0.9;
35
+ transform: translate3d(-7%, 8%, 0) scale(1.14);
36
+ }
37
+
38
+ 72% {
39
+ opacity: 0.7;
40
+ transform: translate3d(4%, -4%, 0) scale(1.06);
41
+ }
42
+ }
43
+
44
+ @keyframes excel-hero-card-glow-b {
45
+ 0%,
46
+ 100% {
47
+ opacity: 0.46;
48
+ transform: translate3d(0, 0, 0) scale(1.08);
49
+ }
50
+
51
+ 38% {
52
+ opacity: 0.78;
53
+ transform: translate3d(6%, -7%, 0) scale(0.98);
54
+ }
55
+
56
+ 76% {
57
+ opacity: 0.62;
58
+ transform: translate3d(-4%, 5%, 0) scale(1.16);
59
+ }
60
+ }
61
+
62
+ * {
63
+ box-sizing: border-box;
64
+ }
65
+
66
+ html,
67
+ body,
68
+ #root {
69
+ min-height: 100%;
70
+ }
71
+
72
+ body {
73
+ margin: 0;
74
+ background: var(--neutral-0);
75
+ color: var(--neutral-600);
76
+ font-family: inherit;
77
+ font-feature-settings: "ss01", "cv11", "kern";
78
+ font-weight: 450;
79
+ }
80
+
81
+ button,
82
+ input,
83
+ textarea,
84
+ select {
85
+ font: inherit;
86
+ }
87
+
88
+ .taskpane-shell {
89
+ min-height: 100vh;
90
+ padding: 18px;
91
+ background: var(--neutral-0);
92
+ }
93
+
94
+ .landing-view,
95
+ .status-view {
96
+ display: flex;
97
+ min-height: calc(100vh - 36px);
98
+ flex-direction: column;
99
+ }
100
+
101
+ .landing-view {
102
+ align-items: center;
103
+ justify-content: space-between;
104
+ gap: 16px;
105
+ text-align: center;
106
+ }
107
+
108
+ .status-view {
109
+ gap: 18px;
110
+ }
111
+
112
+ .landing-content {
113
+ display: flex;
114
+ width: 100%;
115
+ flex: 1 1 auto;
116
+ flex-direction: column;
117
+ align-items: center;
118
+ justify-content: center;
119
+ gap: 18px;
120
+ }
121
+
122
+ .brand-lockup {
123
+ display: inline-flex;
124
+ max-width: 100%;
125
+ align-items: center;
126
+ gap: 8px;
127
+ color: var(--neutral-950);
128
+ }
129
+
130
+ .brand-logo {
131
+ width: 28px;
132
+ height: 28px;
133
+ flex: 0 0 auto;
134
+ image-rendering: auto;
135
+ }
136
+
137
+ .brand-divider {
138
+ color: var(--neutral-300);
139
+ font-size: 15px;
140
+ }
141
+
142
+ .brand-product {
143
+ min-width: 0;
144
+ overflow: hidden;
145
+ color: var(--neutral-950);
146
+ font-size: 14px;
147
+ font-weight: 550;
148
+ text-overflow: ellipsis;
149
+ white-space: nowrap;
150
+ }
151
+
152
+ .landing-copy {
153
+ max-width: 318px;
154
+ }
155
+
156
+ h1 {
157
+ margin: 0;
158
+ color: var(--neutral-950);
159
+ font-size: clamp(26px, 8.4vw, 32px);
160
+ font-weight: 500;
161
+ letter-spacing: 0;
162
+ line-height: 1.15;
163
+ }
164
+
165
+ p {
166
+ margin: 10px 0 0;
167
+ color: var(--neutral-600);
168
+ font-size: 14px;
169
+ font-weight: 400;
170
+ line-height: 1.48;
171
+ }
172
+
173
+ .connection-badge {
174
+ position: relative;
175
+ isolation: isolate;
176
+ overflow: hidden;
177
+ display: inline-flex;
178
+ align-items: center;
179
+ justify-content: center;
180
+ min-height: 28px;
181
+ max-width: min(100%, 318px);
182
+ border: 1px solid transparent;
183
+ border-radius: 999px;
184
+ background: transparent;
185
+ padding: 6px 11px;
186
+ color: var(--connection-fg, var(--neutral-600));
187
+ font-size: 12px;
188
+ font-weight: 500;
189
+ line-height: 1.15;
190
+ text-align: center;
191
+ box-shadow:
192
+ 0 1px 2px var(--connection-shadow, oklch(42% 0 0 / 0.08)),
193
+ inset 0 0 0 1px var(--connection-inset, oklch(72% 0 0 / 0.16));
194
+ }
195
+
196
+ .connection-badge::before {
197
+ position: absolute;
198
+ inset: -60%;
199
+ z-index: -2;
200
+ background: var(--connection-ring, oklch(74% 0 0 / 0.08));
201
+ animation: connection-border-race 4.2s linear infinite;
202
+ content: "";
203
+ }
204
+
205
+ .connection-badge::after {
206
+ position: absolute;
207
+ inset: 1px;
208
+ z-index: -1;
209
+ border-radius: inherit;
210
+ background: var(--connection-bg, var(--neutral-50));
211
+ content: "";
212
+ }
213
+
214
+ .connection-neutral {
215
+ --connection-fg: var(--neutral-600);
216
+ --connection-bg: linear-gradient(180deg, var(--neutral-0), var(--neutral-100));
217
+ --connection-ring: conic-gradient(
218
+ from 0deg,
219
+ oklch(74% 0 0 / 0.04),
220
+ oklch(74% 0 0 / 0.04) 22%,
221
+ oklch(70% 0 0 / 0.34) 48%,
222
+ oklch(82% 0 0 / 0.18) 68%,
223
+ oklch(74% 0 0 / 0.04)
224
+ );
225
+ --connection-inset: oklch(72% 0 0 / 0.14);
226
+ --connection-shadow: oklch(42% 0 0 / 0.08);
227
+ }
228
+
229
+ .connection-success {
230
+ --connection-fg: oklch(36% 0.14 155);
231
+ --connection-bg: linear-gradient(180deg, oklch(98% 0.028 155), oklch(95.5% 0.038 158));
232
+ --connection-ring: conic-gradient(
233
+ from 0deg,
234
+ oklch(74% 0.11 160 / 0.05),
235
+ oklch(74% 0.11 160 / 0.05) 18%,
236
+ oklch(76% 0.12 165 / 0.22) 32%,
237
+ oklch(72% 0.16 155 / 0.74) 48%,
238
+ oklch(84% 0.12 180 / 0.56) 62%,
239
+ oklch(78% 0.11 165 / 0.2) 76%,
240
+ oklch(74% 0.11 160 / 0.05)
241
+ );
242
+ --connection-inset: oklch(72% 0.1 155 / 0.16);
243
+ --connection-shadow: oklch(42% 0.12 155 / 0.08);
244
+ }
245
+
246
+ .connection-warning {
247
+ --connection-fg: oklch(43% 0.13 78);
248
+ --connection-bg: linear-gradient(180deg, oklch(98% 0.028 82), oklch(95.5% 0.045 82));
249
+ --connection-ring: conic-gradient(
250
+ from 0deg,
251
+ oklch(80% 0.12 82 / 0.06),
252
+ oklch(80% 0.12 82 / 0.06) 18%,
253
+ oklch(78% 0.16 78 / 0.26) 34%,
254
+ oklch(74% 0.18 72 / 0.76) 50%,
255
+ oklch(86% 0.14 88 / 0.48) 66%,
256
+ oklch(80% 0.12 82 / 0.06)
257
+ );
258
+ --connection-inset: oklch(72% 0.13 78 / 0.2);
259
+ --connection-shadow: oklch(48% 0.12 78 / 0.1);
260
+ }
261
+
262
+ .connection-error {
263
+ --connection-fg: oklch(42% 0.18 27);
264
+ --connection-bg: linear-gradient(180deg, oklch(98% 0.028 27), oklch(95.5% 0.04 27));
265
+ --connection-ring: conic-gradient(
266
+ from 0deg,
267
+ oklch(76% 0.14 27 / 0.06),
268
+ oklch(76% 0.14 27 / 0.06) 18%,
269
+ oklch(72% 0.18 27 / 0.28) 34%,
270
+ oklch(62% 0.22 27 / 0.8) 50%,
271
+ oklch(82% 0.14 42 / 0.48) 66%,
272
+ oklch(76% 0.14 27 / 0.06)
273
+ );
274
+ --connection-inset: oklch(70% 0.16 27 / 0.2);
275
+ --connection-shadow: oklch(44% 0.16 27 / 0.1);
276
+ }
277
+
278
+ .workbook-preview-card {
279
+ position: relative;
280
+ isolation: isolate;
281
+ overflow: hidden;
282
+ width: calc(100% + 36px);
283
+ min-height: 236px;
284
+ max-height: min(46vh, 320px);
285
+ flex: 0 1 320px;
286
+ margin-right: -18px;
287
+ margin-bottom: -18px;
288
+ margin-left: -18px;
289
+ border-radius: 0;
290
+ background: linear-gradient(
291
+ 135deg,
292
+ oklch(94% 0.032 155) 0%,
293
+ oklch(90% 0.048 205) 48%,
294
+ oklch(86% 0.062 245) 100%
295
+ );
296
+ }
297
+
298
+ .workbook-preview-card::before,
299
+ .workbook-preview-card::after {
300
+ position: absolute;
301
+ z-index: 0;
302
+ border-radius: 9999px;
303
+ content: "";
304
+ filter: blur(42px);
305
+ pointer-events: none;
306
+ }
307
+
308
+ .workbook-preview-card::before {
309
+ top: -58px;
310
+ right: -62px;
311
+ width: 168px;
312
+ height: 168px;
313
+ animation: excel-hero-card-glow-a 4.6s ease-in-out infinite;
314
+ background: oklch(78% 0.13 245 / 0.56);
315
+ }
316
+
317
+ .workbook-preview-card::after {
318
+ bottom: -72px;
319
+ left: -62px;
320
+ width: 190px;
321
+ height: 190px;
322
+ animation: excel-hero-card-glow-b 5.8s ease-in-out infinite;
323
+ background: oklch(84% 0.11 155 / 0.52);
324
+ }
325
+
326
+ .workbook-preview-window {
327
+ position: absolute;
328
+ top: 24px;
329
+ right: -72px;
330
+ bottom: -36px;
331
+ left: 16px;
332
+ z-index: 1;
333
+ overflow: hidden;
334
+ border: 1px solid oklch(86% 0 0 / 0.76);
335
+ border-radius: 0;
336
+ background: oklch(100% 0 0 / 0.94);
337
+ box-shadow: 0 20px 42px oklch(18% 0.04 245 / 0.22);
338
+ backdrop-filter: blur(14px);
339
+ text-align: left;
340
+ }
341
+
342
+ .workbook-preview-titlebar {
343
+ display: flex;
344
+ height: 32px;
345
+ align-items: center;
346
+ gap: 8px;
347
+ border-bottom: 1px solid var(--neutral-200);
348
+ background: oklch(98.5% 0 0 / 0.86);
349
+ padding: 0 10px;
350
+ color: var(--neutral-500);
351
+ font-size: 10px;
352
+ font-weight: 500;
353
+ }
354
+
355
+ .window-dots {
356
+ display: flex;
357
+ gap: 5px;
358
+ }
359
+
360
+ .window-dots span {
361
+ width: 8px;
362
+ height: 8px;
363
+ border-radius: 999px;
364
+ }
365
+
366
+ .dot-red {
367
+ background: #ff5f57;
368
+ }
369
+
370
+ .dot-yellow {
371
+ background: #ffbd2e;
372
+ }
373
+
374
+ .dot-green {
375
+ background: #28c840;
376
+ }
377
+
378
+ .autosave-label {
379
+ margin-left: 3px;
380
+ }
381
+
382
+ .autosave-toggle {
383
+ width: 23px;
384
+ height: 11px;
385
+ border-radius: 999px;
386
+ background: var(--neutral-300);
387
+ }
388
+
389
+ .preview-tool {
390
+ color: var(--neutral-700);
391
+ }
392
+
393
+ .preview-tool.muted {
394
+ color: var(--neutral-500);
395
+ }
396
+
397
+ .workbook-preview-ribbon {
398
+ display: flex;
399
+ height: 34px;
400
+ align-items: center;
401
+ gap: 8px;
402
+ overflow: hidden;
403
+ border-bottom: 1px solid var(--neutral-200);
404
+ background: var(--neutral-0);
405
+ padding: 0 10px;
406
+ }
407
+
408
+ .ribbon-button {
409
+ width: 42px;
410
+ height: 18px;
411
+ border: 1px solid var(--neutral-200);
412
+ border-radius: 4px;
413
+ background: var(--neutral-50);
414
+ }
415
+
416
+ .ribbon-button.wide {
417
+ width: 56px;
418
+ }
419
+
420
+ .ribbon-button.short {
421
+ width: 30px;
422
+ }
423
+
424
+ .ribbon-divider {
425
+ width: 1px;
426
+ height: 18px;
427
+ background: var(--neutral-200);
428
+ }
429
+
430
+ .ribbon-pill {
431
+ border-radius: 4px;
432
+ background: var(--neutral-200);
433
+ padding: 4px 8px;
434
+ color: var(--neutral-700);
435
+ font-size: 10px;
436
+ white-space: nowrap;
437
+ }
438
+
439
+ .workbook-preview-formula {
440
+ display: flex;
441
+ height: 32px;
442
+ align-items: center;
443
+ gap: 8px;
444
+ border-bottom: 1px solid var(--neutral-200);
445
+ background: var(--neutral-0);
446
+ padding: 0 8px;
447
+ color: var(--neutral-600);
448
+ font-size: 10px;
449
+ }
450
+
451
+ .name-box,
452
+ .formula-box {
453
+ height: 18px;
454
+ border: 1px solid var(--neutral-200);
455
+ border-radius: 4px;
456
+ background: var(--neutral-0);
457
+ line-height: 16px;
458
+ }
459
+
460
+ .name-box {
461
+ width: 42px;
462
+ text-align: center;
463
+ }
464
+
465
+ .formula-mark {
466
+ color: var(--neutral-500);
467
+ font-family: Georgia, serif;
468
+ font-size: 12px;
469
+ }
470
+
471
+ .formula-box {
472
+ min-width: 172px;
473
+ flex: 1;
474
+ padding: 0 7px;
475
+ color: var(--neutral-700);
476
+ }
477
+
478
+ .workbook-preview-sheet {
479
+ overflow: hidden;
480
+ background: var(--neutral-0);
481
+ }
482
+
483
+ .sheet-grid {
484
+ display: grid;
485
+ min-width: 560px;
486
+ grid-template-columns: 30px 104px 84px 88px 178px;
487
+ color: var(--neutral-700);
488
+ font-size: 11px;
489
+ }
490
+
491
+ .sheet-corner,
492
+ .sheet-column,
493
+ .sheet-row-number,
494
+ .sheet-cell {
495
+ border-right: 1px solid var(--neutral-200);
496
+ border-bottom: 1px solid var(--neutral-200);
497
+ }
498
+
499
+ .sheet-corner,
500
+ .sheet-column,
501
+ .sheet-row-number {
502
+ background: var(--neutral-100);
503
+ color: var(--neutral-500);
504
+ font-weight: 500;
505
+ text-align: center;
506
+ }
507
+
508
+ .sheet-corner,
509
+ .sheet-column {
510
+ height: 26px;
511
+ line-height: 25px;
512
+ }
513
+
514
+ .sheet-row-number {
515
+ height: 42px;
516
+ line-height: 41px;
517
+ }
518
+
519
+ .sheet-cell {
520
+ height: 42px;
521
+ overflow: hidden;
522
+ background: var(--neutral-0);
523
+ padding: 12px 9px;
524
+ }
525
+
526
+ .sheet-cell span {
527
+ display: block;
528
+ overflow: hidden;
529
+ text-overflow: ellipsis;
530
+ white-space: nowrap;
531
+ }
532
+
533
+ .sheet-header {
534
+ background: oklch(45% 0.14 158);
535
+ color: white;
536
+ font-weight: 600;
537
+ }
538
+
539
+ .sheet-selected {
540
+ position: relative;
541
+ z-index: 1;
542
+ box-shadow: inset 0 0 0 2px oklch(45% 0.14 158);
543
+ }
544
+
545
+ .sheet-agent-cell span {
546
+ color: oklch(37% 0.12 155);
547
+ }
548
+
549
+ @media (max-width: 320px) {
550
+ .taskpane-shell {
551
+ padding: 14px;
552
+ }
553
+
554
+ .landing-view {
555
+ gap: 14px;
556
+ }
557
+
558
+ .workbook-preview-card {
559
+ width: calc(100% + 28px);
560
+ min-height: 218px;
561
+ margin-right: -14px;
562
+ margin-bottom: -14px;
563
+ margin-left: -14px;
564
+ }
565
+
566
+ .workbook-preview-window {
567
+ top: 20px;
568
+ right: -118px;
569
+ bottom: -42px;
570
+ left: 12px;
571
+ }
572
+ }
@@ -1 +1 @@
1
- {"version":3,"file":"taskpane.d.ts","sourceRoot":"","sources":["../src/taskpane.ts"],"names":[],"mappings":""}
1
+ {"version":3,"file":"taskpane.d.ts","sourceRoot":"","sources":["../src/taskpane.tsx"],"names":[],"mappings":""}
@@ -0,0 +1,28 @@
1
+ <!doctype html>
2
+ <html lang="en">
3
+ <head>
4
+ <meta charset="utf-8" />
5
+ <meta name="viewport" content="width=device-width, initial-scale=1" />
6
+ <title>OpenWorkbook</title>
7
+ <link rel="preconnect" href="https://fonts.googleapis.com" />
8
+ <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin />
9
+ <link
10
+ href="https://fonts.googleapis.com/css2?family=Instrument+Sans:ital,wght@0,400..700;1,400..700&display=swap"
11
+ rel="stylesheet"
12
+ />
13
+ <link rel="stylesheet" href="/taskpane.css?v=20260613-2" />
14
+ <script src="https://appsforoffice.microsoft.com/lib/1/hosted/office.js"></script>
15
+ <script type="importmap">
16
+ {
17
+ "imports": {
18
+ "@components-kit/open-workbook-excel-core": "/workspace/excel-core/index.js",
19
+ "@components-kit/open-workbook-protocol": "/workspace/protocol/index.js"
20
+ }
21
+ }
22
+ </script>
23
+ </head>
24
+ <body>
25
+ <div id="root"></div>
26
+ <script type="module" src="/dist/taskpane.bundle.js?v=20260613-1"></script>
27
+ </body>
28
+ </html>