@deck.gl/widgets 9.2.11 → 9.3.0-alpha.2

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 (152) hide show
  1. package/dist/compass-widget.js +5 -5
  2. package/dist/compass-widget.js.map +1 -1
  3. package/dist/context-menu-widget.d.ts +27 -20
  4. package/dist/context-menu-widget.d.ts.map +1 -1
  5. package/dist/context-menu-widget.js +45 -48
  6. package/dist/context-menu-widget.js.map +1 -1
  7. package/dist/dist.dev.js +3114 -869
  8. package/dist/fullscreen-widget.js +1 -1
  9. package/dist/fullscreen-widget.js.map +1 -1
  10. package/dist/geocoder-widget.d.ts +2 -4
  11. package/dist/geocoder-widget.d.ts.map +1 -1
  12. package/dist/geocoder-widget.js +16 -20
  13. package/dist/geocoder-widget.js.map +1 -1
  14. package/dist/gimbal-widget.d.ts +0 -3
  15. package/dist/gimbal-widget.d.ts.map +1 -1
  16. package/dist/gimbal-widget.js +4 -22
  17. package/dist/gimbal-widget.js.map +1 -1
  18. package/dist/icon-widget.d.ts +28 -0
  19. package/dist/icon-widget.d.ts.map +1 -0
  20. package/dist/icon-widget.js +35 -0
  21. package/dist/icon-widget.js.map +1 -0
  22. package/dist/index.cjs +1271 -561
  23. package/dist/index.cjs.map +4 -4
  24. package/dist/index.d.ts +16 -12
  25. package/dist/index.d.ts.map +1 -1
  26. package/dist/index.js +11 -10
  27. package/dist/index.js.map +1 -1
  28. package/dist/info-widget.d.ts +39 -17
  29. package/dist/info-widget.d.ts.map +1 -1
  30. package/dist/info-widget.js +46 -130
  31. package/dist/info-widget.js.map +1 -1
  32. package/dist/lib/components/dropdown-menu.d.ts +12 -5
  33. package/dist/lib/components/dropdown-menu.d.ts.map +1 -1
  34. package/dist/lib/components/dropdown-menu.js +20 -11
  35. package/dist/lib/components/dropdown-menu.js.map +1 -1
  36. package/dist/lib/components/icon-button.d.ts +3 -0
  37. package/dist/lib/components/icon-button.d.ts.map +1 -1
  38. package/dist/lib/components/icon-button.js +10 -2
  39. package/dist/lib/components/icon-button.js.map +1 -1
  40. package/dist/lib/components/popover.d.ts +30 -0
  41. package/dist/lib/components/popover.d.ts.map +1 -0
  42. package/dist/lib/components/popover.js +93 -0
  43. package/dist/lib/components/popover.js.map +1 -0
  44. package/dist/lib/components/range-input.d.ts +26 -0
  45. package/dist/lib/components/range-input.d.ts.map +1 -0
  46. package/dist/lib/components/range-input.js +261 -0
  47. package/dist/lib/components/range-input.js.map +1 -0
  48. package/dist/lib/components/user-content.d.ts +8 -0
  49. package/dist/lib/components/user-content.d.ts.map +1 -0
  50. package/dist/lib/components/user-content.js +15 -0
  51. package/dist/lib/components/user-content.js.map +1 -0
  52. package/dist/lib/data-url.d.ts +5 -0
  53. package/dist/lib/data-url.d.ts.map +1 -0
  54. package/dist/lib/data-url.js +7 -0
  55. package/dist/lib/data-url.js.map +1 -0
  56. package/dist/popup-widget.d.ts +64 -0
  57. package/dist/popup-widget.d.ts.map +1 -0
  58. package/dist/popup-widget.js +76 -0
  59. package/dist/popup-widget.js.map +1 -0
  60. package/dist/reset-view-widget.d.ts +1 -1
  61. package/dist/reset-view-widget.d.ts.map +1 -1
  62. package/dist/reset-view-widget.js +12 -11
  63. package/dist/reset-view-widget.js.map +1 -1
  64. package/dist/scrollbar-widget.d.ts +68 -0
  65. package/dist/scrollbar-widget.d.ts.map +1 -0
  66. package/dist/scrollbar-widget.js +181 -0
  67. package/dist/scrollbar-widget.js.map +1 -0
  68. package/dist/selector-widget.d.ts +44 -0
  69. package/dist/selector-widget.d.ts.map +1 -0
  70. package/dist/selector-widget.js +64 -0
  71. package/dist/selector-widget.js.map +1 -0
  72. package/dist/splitter-widget.d.ts +52 -11
  73. package/dist/splitter-widget.d.ts.map +1 -1
  74. package/dist/splitter-widget.js +177 -76
  75. package/dist/splitter-widget.js.map +1 -1
  76. package/dist/stats-widget.d.ts +6 -1
  77. package/dist/stats-widget.d.ts.map +1 -1
  78. package/dist/stats-widget.js +39 -10
  79. package/dist/stats-widget.js.map +1 -1
  80. package/dist/stylesheet.css +291 -39
  81. package/dist/theme-widget.d.ts.map +1 -1
  82. package/dist/theme-widget.js +7 -5
  83. package/dist/theme-widget.js.map +1 -1
  84. package/dist/themes.d.ts +30 -0
  85. package/dist/themes.d.ts.map +1 -1
  86. package/dist/themes.js +28 -4
  87. package/dist/themes.js.map +1 -1
  88. package/dist/timeline-widget.d.ts +25 -6
  89. package/dist/timeline-widget.d.ts.map +1 -1
  90. package/dist/timeline-widget.js +51 -18
  91. package/dist/timeline-widget.js.map +1 -1
  92. package/dist/toggle-widget.d.ts +38 -0
  93. package/dist/toggle-widget.d.ts.map +1 -0
  94. package/dist/toggle-widget.js +47 -0
  95. package/dist/toggle-widget.js.map +1 -0
  96. package/dist/zoom-widget.d.ts +2 -8
  97. package/dist/zoom-widget.d.ts.map +1 -1
  98. package/dist/zoom-widget.js +23 -18
  99. package/dist/zoom-widget.js.map +1 -1
  100. package/dist.min.js +2 -2
  101. package/package.json +4 -3
  102. package/src/compass-widget.tsx +5 -5
  103. package/src/context-menu-widget.tsx +88 -78
  104. package/src/fullscreen-widget.tsx +1 -1
  105. package/src/geocoder-widget.tsx +17 -24
  106. package/src/gimbal-widget.tsx +4 -26
  107. package/src/icon-widget.tsx +69 -0
  108. package/src/index.ts +22 -15
  109. package/src/info-widget.tsx +100 -157
  110. package/src/lib/components/dropdown-menu.tsx +58 -29
  111. package/src/lib/components/icon-button.tsx +15 -3
  112. package/src/lib/components/popover.tsx +167 -0
  113. package/src/lib/components/range-input.tsx +432 -0
  114. package/src/lib/components/user-content.tsx +30 -0
  115. package/src/lib/data-url.ts +5 -0
  116. package/src/popup-widget.tsx +170 -0
  117. package/src/reset-view-widget.tsx +12 -11
  118. package/src/scrollbar-widget.tsx +288 -0
  119. package/src/selector-widget.tsx +111 -0
  120. package/src/splitter-widget.tsx +281 -96
  121. package/src/stats-widget.tsx +59 -12
  122. package/src/stylesheet.css +291 -39
  123. package/src/theme-widget.tsx +7 -5
  124. package/src/themes.ts +35 -4
  125. package/src/timeline-widget.tsx +103 -33
  126. package/src/toggle-widget.tsx +101 -0
  127. package/src/zoom-widget.tsx +25 -21
  128. package/dist/fps-widget.d.ts +0 -28
  129. package/dist/fps-widget.d.ts.map +0 -1
  130. package/dist/fps-widget.js +0 -51
  131. package/dist/fps-widget.js.map +0 -1
  132. package/dist/lib/components/grouped-icon-button.d.ts +0 -10
  133. package/dist/lib/components/grouped-icon-button.d.ts.map +0 -1
  134. package/dist/lib/components/grouped-icon-button.js +0 -7
  135. package/dist/lib/components/grouped-icon-button.js.map +0 -1
  136. package/dist/lib/components/icon-menu.d.ts +0 -16
  137. package/dist/lib/components/icon-menu.d.ts.map +0 -1
  138. package/dist/lib/components/icon-menu.js +0 -34
  139. package/dist/lib/components/icon-menu.js.map +0 -1
  140. package/dist/lib/components/simple-menu.d.ts +0 -16
  141. package/dist/lib/components/simple-menu.d.ts.map +0 -1
  142. package/dist/lib/components/simple-menu.js +0 -30
  143. package/dist/lib/components/simple-menu.js.map +0 -1
  144. package/dist/view-selector-widget.d.ts +0 -35
  145. package/dist/view-selector-widget.d.ts.map +0 -1
  146. package/dist/view-selector-widget.js +0 -63
  147. package/dist/view-selector-widget.js.map +0 -1
  148. package/src/fps-widget.tsx +0 -77
  149. package/src/lib/components/grouped-icon-button.tsx +0 -27
  150. package/src/lib/components/icon-menu.tsx +0 -71
  151. package/src/lib/components/simple-menu.tsx +0 -52
  152. package/src/view-selector-widget.tsx +0 -151
@@ -1,5 +1,6 @@
1
1
  .deck-widget {
2
2
  margin: var(--widget-margin, 12px);
3
+ box-sizing: border-box;
3
4
  }
4
5
 
5
6
  /* Common button container styles */
@@ -29,6 +30,9 @@
29
30
  padding: 1px;
30
31
  gap: 1px;
31
32
  }
33
+ .deck-widget-button-group > .deck-widget-button {
34
+ display: contents;
35
+ }
32
36
 
33
37
  .deck-widget-button-group.vertical {
34
38
  display: inline-flex;
@@ -201,37 +205,56 @@
201
205
 
202
206
  /* Timeline widget styles */
203
207
  .deck-widget.deck-widget-timeline {
204
- display: flex;
205
- align-items: center;
206
- pointer-events: 'auto';
208
+ position: absolute;
209
+ margin: var(--widget-margin, 12px);
210
+ left: 0;
211
+ right: 0;
212
+ pointer-events: all;
207
213
  }
208
-
209
- .deck-widget.deck-widget-timeline .timeline-slider {
210
- margin: 0 8px;
211
- flex: 1;
212
- pointer-events: 'auto';
213
- cursor: pointer;
214
+ .deck-widget.deck-widget-timeline[data-placement^=top-] {
215
+ top: 0;
214
216
  }
215
-
216
- .deck-widget.deck-widget-timeline .text {
217
- color: var(--button-icon-idle, rgb(97, 97, 102));
217
+ .deck-widget.deck-widget-timeline[data-placement^=bottom-] {
218
+ bottom: 0;
218
219
  }
219
-
220
- .deck-widget.deck-widget-timeline .text:hover {
221
- color: var(--button-icon-hover, rgb(24, 24, 26));
220
+ .deck-widget.deck-widget-timeline .deck-widget-button-group {
221
+ box-sizing: border-box;
222
+ gap: var(--widget-margin, 12px);
223
+ padding: var(--widget-margin, 12px);
222
224
  }
223
-
224
- /* FPS widget styles */
225
-
226
- .deck-widget.deck-widget-fps button {
225
+ .deck-widget-timeline button.deck-widget-timeline-pause .deck-widget-icon {
226
+ mask-image: var(
227
+ --icon-pause,
228
+ url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 -960 960 960" fill="black"><path d="M560-200v-560h160v560H560Zm-320 0v-560h160v560H240Z"/></svg>')
229
+ );
230
+ -webkit-mask-image: var(
231
+ --icon-pause,
232
+ url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 -960 960 960" fill="black"><path d="M560-200v-560h160v560H560Zm-320 0v-560h160v560H240Z"/></svg>')
233
+ );
234
+ }
235
+ .deck-widget-timeline button.deck-widget-timeline-play .deck-widget-icon {
236
+ mask-image: var(
237
+ --icon-play,
238
+ url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 -960 960 960" fill="black"><path d="M320-200v-560l440 280-440 280Z"/></svg>')
239
+ );
240
+ -webkit-mask-image: var(
241
+ --icon-play,
242
+ url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 -960 960 960" fill="black"><path d="M320-200v-560l440 280-440 280Z"/></svg>')
243
+ );
244
+ }
245
+ .deck-widget-timeline-label {
246
+ position: relative;
227
247
  pointer-events: none;
248
+ width: fit-content;
249
+ font-size: 13px;
250
+ color: var(--menu-text, rgb(24, 24, 26));
251
+ white-space: nowrap;
228
252
  }
229
-
230
- .deck-widget.deck-widget-fps .text {
231
- color: var(--button-text, rgb(24, 24, 26));
232
- font-family: monospace;
233
- font-size: 8px;
234
- font-weight: 700;
253
+ .deck-widget-timeline-label--current {
254
+ transform: translate(-50%, -100%);
255
+ border-radius: var(--button-corner-radius, 8px);
256
+ background: var(--menu-background, #fff);
257
+ padding: 4px;
235
258
  }
236
259
 
237
260
  /* Loading styles */
@@ -370,7 +393,6 @@
370
393
  }
371
394
 
372
395
  .deck-widget .deck-widget-dropdown-menu {
373
- position: absolute;
374
396
  top: calc(100% + var(--menu-gap, 4px));
375
397
  left: 1px;
376
398
  right: 1px;
@@ -389,14 +411,16 @@
389
411
 
390
412
  .deck-widget .deck-widget-dropdown-item {
391
413
  padding: 8px 12px;
392
- cursor: pointer;
393
414
  white-space: nowrap;
394
415
  overflow: hidden;
416
+ cursor: default;
417
+ user-select: none;
395
418
  text-overflow: ellipsis;
396
419
  color: var(--menu-text, rgb(24, 24, 26));
397
420
  }
398
421
 
399
- .deck-widget .deck-widget-dropdown-item:hover {
422
+ .deck-widget .deck-widget-dropdown-item:not(.disabled):hover {
423
+ cursor: pointer;
400
424
  background: var(--menu-item-hover, rgba(128, 128, 128, 0.15));
401
425
  }
402
426
 
@@ -414,21 +438,249 @@
414
438
  }
415
439
 
416
440
  /* Stats styles */
441
+ .deck-widget.deck-widget-stats button .text {
442
+ color: var(--button-text, rgb(24, 24, 26));
443
+ font-family: monospace;
444
+ font-size: 8px;
445
+ font-weight: 700;
446
+ }
417
447
  .deck-widget-stats-container {
418
- border-radius: var(--button-corner-radius, 4px);
448
+ border-radius: var(--button-corner-radius, 8px);
419
449
  display: inline-flex;
420
450
  flex-direction: column;
421
- padding: 4px;
422
451
  font-size: 0.7rem;
423
452
  /* Approximately 14px */
424
453
  line-height: 1.6;
425
- font-family:
426
- 'SF Mono',
427
- /* macOS */ 'Menlo',
428
- /* macOS */ 'Consolas',
429
- /* Windows */ 'DejaVu Sans Mono',
430
- /* Linux */ 'Liberation Mono',
431
- /* Linux */ monospace;
432
- background-color: var(--button-background, #fff);
433
- color: var(--button-text, rgb(24, 24, 26));
454
+ font-family: monospace;
455
+ background-color: var(--menu-background, #fff);
456
+ color: var(--menu-text, rgb(24, 24, 26));
457
+ box-shadow: var(--menu-shadow, 0px 0px 8px 0px rgba(0, 0, 0, 0.25));
458
+ }
459
+ .deck-widget-stats-header {
460
+ color: var(--button-icon-idle, rgba(97, 97, 102, 1));
461
+ padding-left: 8px;
462
+ display: flex;
463
+ align-items: center;
464
+ gap: 4px;
465
+ }
466
+ .deck-widget-stats-header:hover {
467
+ color: var(--button-icon-hover, rgb(24, 24, 26));
468
+ }
469
+ .deck-widget-stats-header .deck-widget-dropdown-button {
470
+ background: none;
471
+ border: none;
472
+ }
473
+ .deck-widget-stats-content {
474
+ padding: 4px 8px 8px;
475
+ }
476
+
477
+ /* Popup styles */
478
+ .deck-widget.deck-widget-popover {
479
+ margin: 0 !important;
480
+ }
481
+ .deck-widget-popup-content {
482
+ border-radius: var(--button-corner-radius, 8px);
483
+ background: var(--menu-background, #fff);
484
+ color: var(--menu-text, rgb(24, 24, 26));
485
+ box-shadow: var(--menu-shadow, 0px 0px 8px 0px rgba(0, 0, 0, 0.25));
486
+ padding: 10px;
487
+ }
488
+ .deck-widget-popup-content .deck-widget-popup-controls {
489
+ --button-size: 20px;
490
+ }
491
+ .deck-widget-popup-content .deck-widget-popup-controls .deck-widget-button {
492
+ box-shadow: none;
493
+ }
494
+ .deck-widget-popup-content button.deck-widget-popup-close-button .deck-widget-icon {
495
+ mask-image: var(
496
+ --icon-close,
497
+ url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" width="100%" height="100%" viewBox="0 -120 120 120" fill="black"><path d="m32-25-7-7 28-28-28-28 7-7 28 28 28-28 7 7-28 28 28 28-7 7-28-28-28 28Z"/></svg>')
498
+ );
499
+ -webkit-mask-image: var(
500
+ --icon-close,
501
+ url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" width="100%" height="100%" viewBox="0 -120 120 120" fill="black"><path d="m32-25-7-7 28-28-28-28 7-7 28 28 28-28 7 7-28 28 28 28-7 7-28-28-28 28Z"/></svg>')
502
+ );
503
+ }
504
+
505
+ /** Range input */
506
+ .deck-widget-range {
507
+ position: relative;
508
+ pointer-events: all;
509
+ display: flex;
510
+ align-items: center;
511
+ user-select: none;
512
+ touch-action: none;
513
+ box-sizing: border-box;
514
+ margin: 0;
515
+ }
516
+ .deck-widget-range__track {
517
+ position: relative;
518
+ cursor: pointer;
519
+ flex: 1;
520
+ background: var(--range-track-color, #888);
521
+ border-radius: calc(var(--range-track-size, 16px) / 2);
522
+ }
523
+ .deck-widget-range__decorations {
524
+ position: absolute;
525
+ }
526
+ .deck-widget-range__decoration {
527
+ position: absolute;
528
+ }
529
+ .deck-widget-range__decoration:active {
530
+ background-color: var(--range-decoration-active-color, gold) !important;
531
+ }
532
+ .deck-widget-range__thumb {
533
+ position: relative;
534
+ box-sizing: content-box;
535
+ padding: calc(var(--range-thumb-size, 10px) / 2);
536
+ border-radius: calc(var(--range-thumb-size, 10px) / 2);
537
+ margin: calc(var(--range-thumb-size, 10px) * -0.5);
538
+ background: var(--range-thumb-color, #444);
539
+ }
540
+ .deck-widget-range__button {
541
+ cursor: pointer;
542
+ opacity: 0.4;
543
+ background-color: transparent;
544
+ width: var(--range-step-button-size, 24px);
545
+ height: var(--range-step-button-size, 24px);
546
+ background-size: cover;
547
+ border: none;
548
+ padding: 0;
549
+ }
550
+ .deck-widget-range__button:hover {
551
+ opacity: 1;
552
+ }
553
+ .deck-widget-range:not(.deck-widget-range--disabled) .deck-widget-range__button:disabled {
554
+ pointer-events: none;
555
+ opacity: 0.1;
556
+ }
557
+ .deck-widget-range--disabled {
558
+ display: none;
559
+ }
560
+ .deck-widget-range--vertical {
561
+ flex-direction: column;
562
+ height: 100%;
563
+ top: 0;
564
+ }
565
+ .deck-widget-range--horizontal {
566
+ flex-direction: row;
567
+ width: 100%;
568
+ left: 0;
569
+ }
570
+ .deck-widget-range--vertical .deck-widget-range__track {
571
+ width: var(--range-track-size, 16px);
572
+ padding-top: calc(var(--range-track-size, 16px) / 2);
573
+ padding-bottom: calc(var(--range-track-size, 16px) / 2);
574
+ height: 100%;
575
+ min-height: calc(var(--range-track-size, 16px) * 3);
576
+ }
577
+ .deck-widget-range--vertical .deck-widget-range__thumb {
578
+ width: 0;
579
+ left: 50%;
580
+ cursor: ns-resize;
581
+ }
582
+ .deck-widget-range--vertical .deck-widget-range__decorations {
583
+ top: calc(var(--range-track-size, 16px) / 2);
584
+ bottom: calc(var(--range-track-size, 16px) / 2);
585
+ left: 0;
586
+ right: 0;
587
+ }
588
+ .deck-widget-range--vertical .deck-widget-range__button--start .deck-widget-icon {
589
+ mask-image: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" width="100%" height="100%" viewBox="0 -960 960 960" fill="black"><path d="M480-528 296-344l-56-56 240-240 240 240-56 56-184-184Z"/></svg>');
590
+ }
591
+ .deck-widget-range--vertical .deck-widget-range__button--end .deck-widget-icon {
592
+ mask-image: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" width="100%" height="100%" viewBox="0 -960 960 960" fill="black"><path d="M480-344 240-584l56-56 184 184 184-184 56 56-240 240Z"/></svg>');
593
+ }
594
+ .deck-widget-range--horizontal .deck-widget-range__track {
595
+ height: var(--range-track-size, 16px);
596
+ padding-left: calc(var(--range-track-size, 16px) / 2);
597
+ padding-right: calc(var(--range-track-size, 16px) / 2);
598
+ width: 100%;
599
+ min-width: calc(var(--range-track-size, 16px) * 3);
600
+ }
601
+ .deck-widget-range--horizontal .deck-widget-range__thumb {
602
+ height: 0;
603
+ top: 50%;
604
+ cursor: ew-resize;
605
+ }
606
+ .deck-widget-range--horizontal .deck-widget-range__decorations {
607
+ left: calc(var(--range-track-size, 16px) / 2);
608
+ right: calc(var(--range-track-size, 16px) / 2);
609
+ top: 0;
610
+ bottom: 0;
611
+ }
612
+ .deck-widget-range--horizontal .deck-widget-range__button--start .deck-widget-icon {
613
+ mask-image: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" width="100%" height="100%" viewBox="0 -960 960 960" fill="black"><path d="M560-240 320-480l240-240 56 56-184 184 184 184-56 56Z"/></svg>');
614
+ }
615
+ .deck-widget-range--horizontal .deck-widget-range__button--end .deck-widget-icon {
616
+ mask-image: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" width="100%" height="100%" viewBox="0 -960 960 960" fill="black"><path d="M504-480 320-664l56-56 240 240-240 240-56-56 184-184Z"/></svg>');
617
+ }
618
+
619
+ /** Scrollbar */
620
+ .deck-widget-scrollbar .deck-widget-range {
621
+ position: absolute;
622
+ }
623
+ .deck-widget-scrollbar .deck-widget-range--vertical {
624
+ top: var(--range-step-button-size, 24px);
625
+ height: calc(100% - var(--range-step-button-size, 24px) * 2);
626
+ }
627
+ .deck-widget-scrollbar[data-placement$=-left] .deck-widget-range--vertical {
628
+ left: 0;
629
+ }
630
+ .deck-widget-scrollbar[data-placement$=-right] .deck-widget-range--vertical {
631
+ right: 0;
632
+ }
633
+ .deck-widget-scrollbar .deck-widget-range--horizontal {
634
+ left: var(--range-step-button-size, 24px);
635
+ width: calc(100% - var(--range-step-button-size, 24px) * 2);
636
+ }
637
+ .deck-widget-scrollbar[data-placement^=top-] .deck-widget-range--horizontal {
638
+ top: 0;
639
+ }
640
+ .deck-widget-scrollbar[data-placement^=bottom-] .deck-widget-range--horizontal {
641
+ bottom: 0;
642
+ }
643
+
644
+ /** Splitter */
645
+ .deck-widget.deck-widget-splitter {
646
+ position: absolute;
647
+ margin: 0;
648
+ left: 0;
649
+ right: 0;
650
+ top: 0;
651
+ bottom: 0;
652
+ }
653
+ .deck-widget-splitter-handle {
654
+ position: absolute;
655
+ background: var(--button-background, #fff);
656
+ z-index: 10;
657
+ pointer-events: auto;
658
+ box-shadow: inset 1px 1px 1px var(--button-icon-idle, #616166);
659
+ }
660
+ .deck-widget-splitter-handle.active {
661
+ box-shadow: var(--button-shadow, 0px 0px 8px 0px rgba(0, 0, 0, 0.25));
662
+ }
663
+ .deck-widget-splitter-handle:before {
664
+ content: ' ';
665
+ display: block;
666
+ position: absolute;
667
+ box-sizing: content-box;
668
+ width: 100%;
669
+ height: 100%;
670
+ padding: 4px;
671
+ margin: -4px;
672
+ }
673
+ .deck-widget-splitter-handle--horizontal {
674
+ top: 0;
675
+ bottom: 0;
676
+ width: 2px;
677
+ margin-left: -1px;
678
+ cursor: col-resize;
679
+ }
680
+ .deck-widget-splitter-handle--vertical {
681
+ left: 0;
682
+ right: 0;
683
+ height: 2px;
684
+ margin-top: -1px;
685
+ cursor: row-resize;
434
686
  }
@@ -116,10 +116,12 @@ export class ThemeWidget extends Widget<ThemeWidgetProps> {
116
116
  /** Read browser preference */
117
117
  _getInitialThemeMode(): 'light' | 'dark' {
118
118
  const {initialThemeMode} = this.props;
119
- return initialThemeMode === 'auto'
120
- ? window.matchMedia('(prefers-color-scheme: dark)').matches
121
- ? 'dark'
122
- : 'light'
123
- : initialThemeMode;
119
+ if (initialThemeMode !== 'auto') {
120
+ return initialThemeMode;
121
+ }
122
+ if (typeof window === 'undefined') {
123
+ return 'light';
124
+ }
125
+ return window.matchMedia('(prefers-color-scheme: dark)').matches ? 'dark' : 'light';
124
126
  }
125
127
  }
package/src/themes.ts CHANGED
@@ -30,6 +30,13 @@ export type DeckWidgetTheme = {
30
30
  '--menu-shadow'?: string;
31
31
  '--menu-text'?: string;
32
32
  '--menu-item-hover'?: string;
33
+ // scrollbar
34
+ '--range-step-button-size'?: string;
35
+ '--range-track-size'?: string;
36
+ '--range-thumb-size'?: string;
37
+ '--range-track-color'?: string;
38
+ '--range-thumb-color'?: string;
39
+ '--range-decoration-active-color'?: string;
33
40
  };
34
41
 
35
42
  export const LightTheme = {
@@ -52,7 +59,13 @@ export const LightTheme = {
52
59
  '--menu-border': 'unset',
53
60
  '--menu-shadow': '0px 0px 8px 0px rgba(0, 0, 0, 0.25)',
54
61
  '--menu-text': 'rgb(24, 24, 26, 1)',
55
- '--menu-item-hover': 'rgba(0, 0, 0, 0.08)'
62
+ '--menu-item-hover': 'rgba(0, 0, 0, 0.08)',
63
+ '--range-step-button-size': '24px',
64
+ '--range-track-size': '16px',
65
+ '--range-thumb-size': '10px',
66
+ '--range-track-color': '#d8d8e5',
67
+ '--range-thumb-color': '#616166',
68
+ '--range-decoration-active-color': '#f8dd50'
56
69
  } as const satisfies Required<DeckWidgetTheme>;
57
70
 
58
71
  export const DarkTheme = {
@@ -75,7 +88,13 @@ export const DarkTheme = {
75
88
  '--menu-border': 'unset',
76
89
  '--menu-shadow': '0px 0px 8px 0px rgba(0, 0, 0, 0.25)',
77
90
  '--menu-text': 'rgb(215, 214, 229, 1)',
78
- '--menu-item-hover': 'rgba(255, 255, 255, 0.1)'
91
+ '--menu-item-hover': 'rgba(255, 255, 255, 0.1)',
92
+ '--range-step-button-size': '24px',
93
+ '--range-track-size': '16px',
94
+ '--range-thumb-size': '10px',
95
+ '--range-track-color': '#2c2c30',
96
+ '--range-thumb-color': '#9e9da8',
97
+ '--range-decoration-active-color': '#dd7d2c'
79
98
  } as const satisfies Required<DeckWidgetTheme>;
80
99
 
81
100
  export const LightGlassTheme = {
@@ -99,7 +118,13 @@ export const LightGlassTheme = {
99
118
  '--menu-border': '1px solid rgba(255, 255, 255, 0.6)',
100
119
  '--menu-shadow': '0px 0px 8px 0px rgba(0, 0, 0, 0.25), 0px 0px 8px 0px rgba(0, 0, 0, 0.1) inset',
101
120
  '--menu-text': 'rgb(24, 24, 26, 1)',
102
- '--menu-item-hover': 'rgba(0, 0, 0, 0.08)'
121
+ '--menu-item-hover': 'rgba(0, 0, 0, 0.08)',
122
+ '--range-step-button-size': '24px',
123
+ '--range-track-size': '16px',
124
+ '--range-thumb-size': '10px',
125
+ '--range-track-color': 'rgba(215, 214, 229, 0.3)',
126
+ '--range-thumb-color': 'rgba(97, 97, 102, 1)',
127
+ '--range-decoration-active-color': 'rgba(255, 215, 0, 0.6)'
103
128
  } as const satisfies Required<DeckWidgetTheme>;
104
129
 
105
130
  export const DarkGlassTheme = {
@@ -123,5 +148,11 @@ export const DarkGlassTheme = {
123
148
  '--menu-border': '1px solid rgba(18, 18, 20, 0.75)',
124
149
  '--menu-shadow': '0px 0px 8px 0px rgba(0, 0, 0, 0.25), 0px 0px 8px 0px rgba(0, 0, 0, 0.1) inset',
125
150
  '--menu-text': 'rgb(215, 214, 229, 1)',
126
- '--menu-item-hover': 'rgba(255, 255, 255, 0.1)'
151
+ '--menu-item-hover': 'rgba(255, 255, 255, 0.1)',
152
+ '--range-step-button-size': '24px',
153
+ '--range-track-size': '16px',
154
+ '--range-thumb-size': '10px',
155
+ '--range-track-color': 'rgba(24, 24, 26, 0.3)',
156
+ '--range-thumb-color': 'rgba(158, 157, 168, 1)',
157
+ '--range-decoration-active-color': 'rgba(255, 145, 0, 0.6)'
127
158
  } as const satisfies Required<DeckWidgetTheme>;