@netless/fastboard-ui 1.0.0-canary.9 → 1.0.1-beta.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 (65) hide show
  1. package/dist/full.d.ts +178 -0
  2. package/dist/index.d.ts +74 -75
  3. package/dist/index.js +4200 -3679
  4. package/dist/index.js.map +1 -0
  5. package/dist/index.mjs +4188 -3650
  6. package/dist/index.mjs.map +1 -0
  7. package/dist/index.svelte.mjs +6102 -6540
  8. package/dist/index.svelte.mjs.map +1 -0
  9. package/dist/lite.d.ts +178 -0
  10. package/full.d.ts +1 -0
  11. package/lite.d.ts +1 -0
  12. package/package.json +24 -10
  13. package/src/actions/tippy.ts +6 -11
  14. package/src/behaviors/apps.ts +38 -4
  15. package/src/components/Button/Button.svelte +1 -4
  16. package/src/components/Button/Button.svelte.d.ts +1 -2
  17. package/src/components/Fastboard/Fastboard.scss +14 -2
  18. package/src/components/Fastboard/Fastboard.svelte +15 -5
  19. package/src/components/Fastboard/Fastboard.svelte.d.ts +6 -2
  20. package/src/components/Fastboard/ReplayFastboard.svelte +2 -2
  21. package/src/components/Fastboard/ReplayFastboard.svelte.d.ts +3 -3
  22. package/src/components/Icon/Icon.svelte.d.ts +1 -1
  23. package/src/components/Icons/{PencilEraser.svelte → Drag.svelte} +2 -2
  24. package/src/components/Icons/{PencilEraserFilled.svelte → DragFilled.svelte} +1 -3
  25. package/src/components/Icons/Eraser.svelte +1 -35
  26. package/src/components/Icons/EraserFilled.svelte +2 -2
  27. package/src/components/Icons/Laser.svelte +21 -0
  28. package/src/components/Icons/LaserFilled.svelte +14 -0
  29. package/src/components/Icons/LaserPen.svelte +20 -0
  30. package/src/components/Icons/LaserPenFilled.svelte +20 -0
  31. package/src/components/Icons/index.ts +12 -11
  32. package/src/components/PageControl/PageControl.svelte +4 -3
  33. package/src/components/PageControl/PageControl.svelte.d.ts +1 -1
  34. package/src/components/PlayerControl/PlayerControl.svelte.d.ts +1 -1
  35. package/src/components/RedoUndo/RedoUndo.svelte +2 -1
  36. package/src/components/RedoUndo/RedoUndo.svelte.d.ts +1 -1
  37. package/src/components/Toolbar/Toolbar.scss +14 -4
  38. package/src/components/Toolbar/Toolbar.svelte +34 -27
  39. package/src/components/Toolbar/Toolbar.svelte.d.ts +2 -19
  40. package/src/components/Toolbar/components/Contents.scss +19 -14
  41. package/src/components/Toolbar/components/Contents.svelte +98 -235
  42. package/src/components/Toolbar/components/Slider.scss +3 -1
  43. package/src/components/Toolbar/components/StrokeColor.svelte +12 -7
  44. package/src/components/Toolbar/components/TextColor.svelte +12 -7
  45. package/src/components/Toolbar/components/constants.ts +22 -36
  46. package/src/components/Toolbar/components/helper.ts +24 -2
  47. package/src/components/Toolbar/definitions/Clear.svelte +13 -0
  48. package/src/components/Toolbar/definitions/Clicker.svelte +19 -0
  49. package/src/components/Toolbar/definitions/Eraser.svelte +19 -0
  50. package/src/components/Toolbar/definitions/Hand.svelte +19 -0
  51. package/src/components/Toolbar/definitions/Laser.svelte +19 -0
  52. package/src/components/Toolbar/definitions/Pencil.svelte +23 -0
  53. package/src/components/Toolbar/definitions/Selector.svelte +19 -0
  54. package/src/components/Toolbar/definitions/Shapes.svelte +41 -0
  55. package/src/components/Toolbar/definitions/Text.svelte +20 -0
  56. package/src/components/ZoomControl/ZoomControl.svelte +5 -6
  57. package/src/components/ZoomControl/ZoomControl.svelte.d.ts +1 -1
  58. package/src/components/theme.scss +4 -11
  59. package/src/helpers/index.ts +60 -64
  60. package/src/typings.ts +42 -25
  61. package/dist/index.css +0 -888
  62. package/src/components/Icons/Curve.svelte +0 -10
  63. package/src/components/Icons/CurveDashed.svelte +0 -16
  64. package/src/components/Toolbar/components/PencilEraserSize.svelte +0 -27
  65. /package/src/components/Toolbar/components/{Shapes.svelte → SelectShapes.svelte} +0 -0
package/dist/index.css DELETED
@@ -1,888 +0,0 @@
1
- /* sass:./style.scss */
2
- .tippy-box[data-animation=fade][data-state=hidden] {
3
- opacity: 0;
4
- }
5
- [data-tippy-root] {
6
- max-width: calc(100vw - 10px);
7
- }
8
- .tippy-box {
9
- position: relative;
10
- background-color: #333;
11
- color: #fff;
12
- border-radius: 4px;
13
- font-size: 14px;
14
- line-height: 1.4;
15
- white-space: normal;
16
- outline: 0;
17
- transition-property:
18
- transform,
19
- visibility,
20
- opacity;
21
- }
22
- .tippy-box[data-placement^=top] > .tippy-arrow {
23
- bottom: 0;
24
- }
25
- .tippy-box[data-placement^=top] > .tippy-arrow:before {
26
- bottom: -7px;
27
- left: 0;
28
- border-width: 8px 8px 0;
29
- border-top-color: initial;
30
- transform-origin: center top;
31
- }
32
- .tippy-box[data-placement^=bottom] > .tippy-arrow {
33
- top: 0;
34
- }
35
- .tippy-box[data-placement^=bottom] > .tippy-arrow:before {
36
- top: -7px;
37
- left: 0;
38
- border-width: 0 8px 8px;
39
- border-bottom-color: initial;
40
- transform-origin: center bottom;
41
- }
42
- .tippy-box[data-placement^=left] > .tippy-arrow {
43
- right: 0;
44
- }
45
- .tippy-box[data-placement^=left] > .tippy-arrow:before {
46
- border-width: 8px 0 8px 8px;
47
- border-left-color: initial;
48
- right: -7px;
49
- transform-origin: center left;
50
- }
51
- .tippy-box[data-placement^=right] > .tippy-arrow {
52
- left: 0;
53
- }
54
- .tippy-box[data-placement^=right] > .tippy-arrow:before {
55
- left: -7px;
56
- border-width: 8px 8px 8px 0;
57
- border-right-color: initial;
58
- transform-origin: center right;
59
- }
60
- .tippy-box[data-inertia][data-state=visible] {
61
- transition-timing-function: cubic-bezier(.54, 1.5, .38, 1.11);
62
- }
63
- .tippy-arrow {
64
- width: 16px;
65
- height: 16px;
66
- color: #333;
67
- }
68
- .tippy-arrow:before {
69
- content: "";
70
- position: absolute;
71
- border-color: transparent;
72
- border-style: solid;
73
- }
74
- .tippy-content {
75
- position: relative;
76
- padding: 5px 9px;
77
- z-index: 1;
78
- }
79
- .tippy-box[data-theme~=light] {
80
- color: #26323d;
81
- box-shadow:
82
- 0 0 20px 4px #9aa1b126,
83
- 0 4px 80px -8px #24282f40,
84
- 0 4px 4px -2px #5b5e6926;
85
- background-color: #fff;
86
- }
87
- .tippy-box[data-theme~=light][data-placement^=top] > .tippy-arrow:before {
88
- border-top-color: #fff;
89
- }
90
- .tippy-box[data-theme~=light][data-placement^=bottom] > .tippy-arrow:before {
91
- border-bottom-color: #fff;
92
- }
93
- .tippy-box[data-theme~=light][data-placement^=left] > .tippy-arrow:before {
94
- border-left-color: #fff;
95
- }
96
- .tippy-box[data-theme~=light][data-placement^=right] > .tippy-arrow:before {
97
- border-right-color: #fff;
98
- }
99
- .tippy-box[data-theme~=light] > .tippy-backdrop {
100
- background-color: #fff;
101
- }
102
- .tippy-box[data-theme~=light] > .tippy-svg-arrow {
103
- fill: #fff;
104
- }
105
- .fastboard-icon.light .fastboard-icon-stroke-color {
106
- stroke: var(--fastboard-color, #5d6066);
107
- }
108
- .fastboard-icon.light .fastboard-icon-fill-color {
109
- fill: var(--fastboard-color, #5d6066);
110
- }
111
- .fastboard-icon.light.is-active .fastboard-icon-stroke-color {
112
- stroke: var(--fastboard-active-color, #3381ff);
113
- }
114
- .fastboard-icon.light.is-active .fastboard-icon-fill-color {
115
- fill: var(--fastboard-active-color, #3381ff);
116
- }
117
- .fastboard-icon.dark .fastboard-icon-stroke-color {
118
- stroke: var(--fastboard-color, #7b7e84);
119
- }
120
- .fastboard-icon.dark .fastboard-icon-fill-color {
121
- fill: var(--fastboard-color, #7b7e84);
122
- }
123
- .fastboard-icon.dark.is-active .fastboard-icon-stroke-color {
124
- stroke: var(--fastboard-active-color, #2867cc);
125
- }
126
- .fastboard-icon.dark.is-active .fastboard-icon-fill-color {
127
- fill: var(--fastboard-active-color, #2867cc);
128
- }
129
- .fastboard-redo-undo {
130
- box-sizing: border-box;
131
- display: inline-flex;
132
- align-items: center;
133
- gap: 4px;
134
- padding: 4px;
135
- border: 1px solid;
136
- border-radius: 4px;
137
- font-size: 14px;
138
- font-family: system-ui;
139
- pointer-events: auto;
140
- backdrop-filter: blur(5px);
141
- -webkit-backdrop-filter: blur(5px);
142
- }
143
- .fastboard-redo-undo * {
144
- box-sizing: inherit;
145
- }
146
- .fastboard-redo-undo.light {
147
- color: var(--fastboard-color, #5d6066);
148
- background-color: var(--fastboard-bg-color, rgba(255, 255, 255, .9));
149
- border-color: var(--fastboard-border-color, #e5e8f0);
150
- }
151
- .fastboard-redo-undo.dark {
152
- color: var(--fastboard-color, #7b7e84);
153
- background-color: var(--fastboard-bg-color, rgba(20, 24, 30, .9));
154
- border-color: var(--fastboard-border-color, #383b42);
155
- }
156
- .fastboard-redo-undo-btn {
157
- appearance: none;
158
- cursor: pointer;
159
- margin: 0;
160
- border: 0;
161
- padding: 0;
162
- width: 24px;
163
- height: 24px;
164
- background-color: #0000;
165
- border-radius: 4px;
166
- font-size: 0;
167
- line-height: 1;
168
- flex-shrink: 0;
169
- }
170
- .fastboard-redo-undo-btn svg,
171
- .fastboard-redo-undo-btn img {
172
- width: 100%;
173
- height: 100%;
174
- pointer-events: none;
175
- }
176
- .fastboard-redo-undo-btn:disabled {
177
- opacity: .5;
178
- cursor: not-allowed;
179
- }
180
- .fastboard-redo-undo-btn.light:not(:disabled):hover {
181
- background-color: var(--fastboard-hover-bg-color, #ebf2ff);
182
- }
183
- .fastboard-redo-undo-btn.light:not(:disabled).is-active {
184
- background-color: var(--fastboard-active-bg-color, #ebf2ff);
185
- }
186
- .fastboard-redo-undo-btn.dark:not(:disabled):hover {
187
- background-color: var(--fastboard-hover-bg-color, #383b42);
188
- }
189
- .fastboard-redo-undo-btn.dark:not(:disabled).is-active {
190
- background-color: var(--fastboard-active-bg-color, #383b42);
191
- }
192
- .fastboard-zoom-control {
193
- box-sizing: border-box;
194
- display: inline-flex;
195
- align-items: center;
196
- gap: 4px;
197
- padding: 4px;
198
- border: 1px solid;
199
- border-radius: 4px;
200
- font-size: 14px;
201
- font-family: system-ui;
202
- pointer-events: auto;
203
- backdrop-filter: blur(5px);
204
- -webkit-backdrop-filter: blur(5px);
205
- }
206
- .fastboard-zoom-control * {
207
- box-sizing: inherit;
208
- }
209
- .fastboard-zoom-control.light {
210
- color: var(--fastboard-color, #5d6066);
211
- background-color: var(--fastboard-bg-color, rgba(255, 255, 255, .9));
212
- border-color: var(--fastboard-border-color, #e5e8f0);
213
- }
214
- .fastboard-zoom-control.dark {
215
- color: var(--fastboard-color, #7b7e84);
216
- background-color: var(--fastboard-bg-color, rgba(20, 24, 30, .9));
217
- border-color: var(--fastboard-border-color, #383b42);
218
- }
219
- .fastboard-zoom-control-btn {
220
- appearance: none;
221
- cursor: pointer;
222
- margin: 0;
223
- border: 0;
224
- padding: 0;
225
- width: 24px;
226
- height: 24px;
227
- background-color: #0000;
228
- border-radius: 4px;
229
- font-size: 0;
230
- line-height: 1;
231
- flex-shrink: 0;
232
- }
233
- .fastboard-zoom-control-btn svg,
234
- .fastboard-zoom-control-btn img {
235
- width: 100%;
236
- height: 100%;
237
- pointer-events: none;
238
- }
239
- .fastboard-zoom-control-btn:disabled {
240
- opacity: .5;
241
- cursor: not-allowed;
242
- }
243
- .fastboard-zoom-control-btn.light:not(:disabled):hover {
244
- background-color: var(--fastboard-hover-bg-color, #ebf2ff);
245
- }
246
- .fastboard-zoom-control-btn.light:not(:disabled).is-active {
247
- background-color: var(--fastboard-active-bg-color, #ebf2ff);
248
- }
249
- .fastboard-zoom-control-btn.dark:not(:disabled):hover {
250
- background-color: var(--fastboard-hover-bg-color, #383b42);
251
- }
252
- .fastboard-zoom-control-btn.dark:not(:disabled).is-active {
253
- background-color: var(--fastboard-active-bg-color, #383b42);
254
- }
255
- .fastboard-zoom-control-text {
256
- font-variant-numeric: tabular-nums;
257
- }
258
- .fastboard-page-control {
259
- box-sizing: border-box;
260
- display: inline-flex;
261
- align-items: center;
262
- gap: 4px;
263
- padding: 4px;
264
- border: 1px solid;
265
- border-radius: 4px;
266
- font-size: 14px;
267
- font-family: system-ui;
268
- pointer-events: auto;
269
- backdrop-filter: blur(5px);
270
- -webkit-backdrop-filter: blur(5px);
271
- }
272
- .fastboard-page-control * {
273
- box-sizing: inherit;
274
- }
275
- .fastboard-page-control.light {
276
- color: var(--fastboard-color, #5d6066);
277
- background-color: var(--fastboard-bg-color, rgba(255, 255, 255, .9));
278
- border-color: var(--fastboard-border-color, #e5e8f0);
279
- }
280
- .fastboard-page-control.dark {
281
- color: var(--fastboard-color, #7b7e84);
282
- background-color: var(--fastboard-bg-color, rgba(20, 24, 30, .9));
283
- border-color: var(--fastboard-border-color, #383b42);
284
- }
285
- .fastboard-page-control-btn {
286
- appearance: none;
287
- cursor: pointer;
288
- margin: 0;
289
- border: 0;
290
- padding: 0;
291
- width: 24px;
292
- height: 24px;
293
- background-color: #0000;
294
- border-radius: 4px;
295
- font-size: 0;
296
- line-height: 1;
297
- flex-shrink: 0;
298
- }
299
- .fastboard-page-control-btn svg,
300
- .fastboard-page-control-btn img {
301
- width: 100%;
302
- height: 100%;
303
- pointer-events: none;
304
- }
305
- .fastboard-page-control-btn:disabled {
306
- opacity: .5;
307
- cursor: not-allowed;
308
- }
309
- .fastboard-page-control-btn.light:not(:disabled):hover {
310
- background-color: var(--fastboard-hover-bg-color, #ebf2ff);
311
- }
312
- .fastboard-page-control-btn.light:not(:disabled).is-active {
313
- background-color: var(--fastboard-active-bg-color, #ebf2ff);
314
- }
315
- .fastboard-page-control-btn.dark:not(:disabled):hover {
316
- background-color: var(--fastboard-hover-bg-color, #383b42);
317
- }
318
- .fastboard-page-control-btn.dark:not(:disabled).is-active {
319
- background-color: var(--fastboard-active-bg-color, #383b42);
320
- }
321
- .fastboard-page-control-text {
322
- font-variant-numeric: tabular-nums;
323
- }
324
- .fastboard-player-control {
325
- box-sizing: border-box;
326
- display: inline-flex;
327
- align-items: center;
328
- gap: 4px;
329
- padding: 4px;
330
- border: 1px solid;
331
- border-radius: 4px;
332
- font-size: 14px;
333
- font-family: system-ui;
334
- pointer-events: auto;
335
- backdrop-filter: blur(5px);
336
- -webkit-backdrop-filter: blur(5px);
337
- width: 100%;
338
- }
339
- .fastboard-player-control * {
340
- box-sizing: inherit;
341
- }
342
- .fastboard-player-control.light {
343
- color: var(--fastboard-color, #5d6066);
344
- background-color: var(--fastboard-bg-color, rgba(255, 255, 255, .9));
345
- border-color: var(--fastboard-border-color, #e5e8f0);
346
- }
347
- .fastboard-player-control.dark {
348
- color: var(--fastboard-color, #7b7e84);
349
- background-color: var(--fastboard-bg-color, rgba(20, 24, 30, .9));
350
- border-color: var(--fastboard-border-color, #383b42);
351
- }
352
- .fastboard-player-control-btn {
353
- appearance: none;
354
- cursor: pointer;
355
- margin: 0;
356
- border: 0;
357
- padding: 0;
358
- width: 24px;
359
- height: 24px;
360
- background-color: #0000;
361
- border-radius: 4px;
362
- font-size: 0;
363
- line-height: 1;
364
- flex-shrink: 0;
365
- display: inline;
366
- }
367
- .fastboard-player-control-btn svg,
368
- .fastboard-player-control-btn img {
369
- width: 100%;
370
- height: 100%;
371
- pointer-events: none;
372
- }
373
- .fastboard-player-control-btn:disabled {
374
- opacity: .5;
375
- cursor: not-allowed;
376
- }
377
- .fastboard-player-control-btn.light:not(:disabled):hover {
378
- background-color: var(--fastboard-hover-bg-color, #ebf2ff);
379
- }
380
- .fastboard-player-control-btn.light:not(:disabled).is-active {
381
- background-color: var(--fastboard-active-bg-color, #ebf2ff);
382
- }
383
- .fastboard-player-control-btn.dark:not(:disabled):hover {
384
- background-color: var(--fastboard-hover-bg-color, #383b42);
385
- }
386
- .fastboard-player-control-btn.dark:not(:disabled).is-active {
387
- background-color: var(--fastboard-active-bg-color, #383b42);
388
- }
389
- .fastboard-player-control-btn.loading svg,
390
- .fastboard-player-control-btn.loading img {
391
- animation: fastboard-player-control-rotate .5s linear infinite;
392
- }
393
- @keyframes fastboard-player-control-rotate {
394
- to {
395
- transform: rotate(360deg);
396
- }
397
- }
398
- .fastboard-player-control-btn.speed {
399
- width: auto;
400
- padding: 4px;
401
- text-align: right;
402
- font-size: 14px;
403
- font-variant-numeric: tabular-nums;
404
- }
405
- .fastboard-player-control-btn.is-active.light {
406
- color: var(--fastboard-active-color, #3381ff);
407
- }
408
- .fastboard-player-control-btn.is-active.dark {
409
- color: var(--fastboard-active-color, #2867cc);
410
- }
411
- .fastboard-player-control-speed-text,
412
- .fastboard-player-control-progress {
413
- font-size: 14px;
414
- font-variant-numeric: tabular-nums;
415
- line-height: 16px;
416
- }
417
- .fastboard-player-control-progress {
418
- display: inline-flex;
419
- align-items: center;
420
- }
421
- .fastboard-player-control-panel.speed {
422
- display: flex;
423
- flex-direction: column;
424
- }
425
- .fastboard-toolbar {
426
- height: 100%;
427
- display: flex;
428
- align-items: center;
429
- position: relative;
430
- left: 0;
431
- transition: left .5s cubic-bezier(.34, 1.56, .64, 1);
432
- pointer-events: none;
433
- }
434
- .fastboard-toolbar.collapsed {
435
- left: -100%;
436
- }
437
- .fastboard-toolbar-handler {
438
- position: absolute;
439
- left: 100%;
440
- width: 17px;
441
- font-size: 0;
442
- border-radius: 3px;
443
- cursor: pointer;
444
- pointer-events: auto;
445
- }
446
- .fastboard-toolbar-handler:focus-visible {
447
- outline: 2px solid -webkit-focus-ring-color;
448
- }
449
- .fastboard-toolbar-handler input[type=checkbox] {
450
- position: absolute;
451
- top: 0;
452
- left: 0;
453
- appearance: none;
454
- margin: 0;
455
- width: 100%;
456
- height: 100%;
457
- cursor: pointer;
458
- opacity: 0;
459
- z-index: -1;
460
- }
461
- .fastboard-toolbar-handler svg {
462
- opacity: 0;
463
- transition: opacity .5s 1s;
464
- pointer-events: none;
465
- }
466
- .fastboard-toolbar-handler.light .fastboard-toolbar-handler-bg-color {
467
- fill: var(--fastboard-bg-color, rgba(255, 255, 255, .9));
468
- }
469
- .fastboard-toolbar-handler.light .fastboard-toolbar-handler-border-color {
470
- stroke: var(--fastboard-border-color, #e5e8f0);
471
- }
472
- .fastboard-toolbar-handler.light .fastboard-toolbar-handler-image-stroke-color {
473
- stroke: var(--fastboard-color, #5d6066);
474
- }
475
- .fastboard-toolbar-handler.light .fastboard-toolbar-handler-image-fill-color {
476
- fill: var(--fastboard-color, #5d6066);
477
- }
478
- .fastboard-toolbar-handler.dark .fastboard-toolbar-handler-bg-color {
479
- fill: var(--fastboard-bg-color, rgba(20, 24, 30, .9));
480
- }
481
- .fastboard-toolbar-handler.dark .fastboard-toolbar-handler-border-color {
482
- stroke: var(--fastboard-border-color, #383b42);
483
- }
484
- .fastboard-toolbar-handler.dark .fastboard-toolbar-handler-image-stroke-color {
485
- stroke: var(--fastboard-color, #7b7e84);
486
- }
487
- .fastboard-toolbar-handler.dark .fastboard-toolbar-handler-image-fill-color {
488
- fill: var(--fastboard-color, #7b7e84);
489
- }
490
- .fastboard-toolbar:hover .fastboard-toolbar-handler svg,
491
- .fastboard-toolbar.collapsed .fastboard-toolbar-handler svg {
492
- opacity: 1;
493
- transition: opacity .2s;
494
- }
495
- .fastboard-toolbar-btn {
496
- appearance: none;
497
- cursor: pointer;
498
- margin: 0;
499
- border: 0;
500
- padding: 4px;
501
- width: 32px;
502
- height: 32px;
503
- background-color: #0000;
504
- border-radius: 8px;
505
- font-size: 0;
506
- line-height: 1;
507
- flex-shrink: 0;
508
- }
509
- .fastboard-toolbar-btn svg,
510
- .fastboard-toolbar-btn img {
511
- width: 100%;
512
- height: 100%;
513
- pointer-events: none;
514
- }
515
- .fastboard-toolbar-btn:disabled {
516
- opacity: .5;
517
- cursor: not-allowed;
518
- }
519
- .fastboard-toolbar-btn.light:not(:disabled):hover {
520
- background-color: var(--fastboard-hover-bg-color, #ebf2ff);
521
- }
522
- .fastboard-toolbar-btn.light:not(:disabled).is-active {
523
- background-color: var(--fastboard-active-bg-color, #ebf2ff);
524
- }
525
- .fastboard-toolbar-btn.dark:not(:disabled):hover {
526
- background-color: var(--fastboard-hover-bg-color, #383b42);
527
- }
528
- .fastboard-toolbar-btn.dark:not(:disabled).is-active {
529
- background-color: var(--fastboard-active-bg-color, #383b42);
530
- }
531
- .fastboard-slider {
532
- box-sizing: border-box;
533
- position: relative;
534
- width: 100%;
535
- height: 100%;
536
- display: flex;
537
- align-items: center;
538
- }
539
- .fastboard-slider * {
540
- box-sizing: inherit;
541
- }
542
- .fastboard-slider-track {
543
- appearance: none;
544
- background: rgba(0, 0, 0, 0);
545
- border: 0;
546
- border-radius: 26px;
547
- flex: 1;
548
- display: block;
549
- height: 19px;
550
- margin: 0;
551
- width: 0;
552
- min-width: 0;
553
- padding: 0;
554
- transition: box-shadow .3s ease;
555
- cursor: pointer;
556
- touch-action: manipulation;
557
- }
558
- .fastboard-slider-track::-webkit-slider-runnable-track {
559
- border: 0;
560
- border-radius: 2.5px;
561
- height: 5px;
562
- transition: box-shadow .3s ease;
563
- user-select: none;
564
- background-color: #80808040;
565
- -webkit-user-select: none;
566
- background-image: linear-gradient(to right, currentColor var(--value, 0%), transparent var(--value, 0%));
567
- }
568
- .fastboard-slider-track::-webkit-slider-thumb {
569
- background: #fff;
570
- border: 0;
571
- border-radius: 100%;
572
- box-shadow: 0 1px 1px #23292f26, 0 0 0 1px #23292f33;
573
- width: 13px;
574
- height: 13px;
575
- position: relative;
576
- transition: all .2s ease;
577
- cursor: grab;
578
- appearance: none;
579
- margin-top: -4px;
580
- }
581
- .fastboard-slider-track::-moz-range-track {
582
- border: 0;
583
- border-radius: 2.5px;
584
- height: 5px;
585
- transition: box-shadow .3s ease;
586
- user-select: none;
587
- background-color: #80808040;
588
- -webkit-user-select: none;
589
- }
590
- .fastboard-slider-track::-moz-range-thumb {
591
- appearance: none;
592
- background: #fff;
593
- border: 0;
594
- border-radius: 100%;
595
- box-shadow: 0 1px 1px #23292f26, 0 0 0 1px #23292f33;
596
- width: 13px;
597
- height: 13px;
598
- position: relative;
599
- transition: all .2s ease;
600
- cursor: grab;
601
- }
602
- .fastboard-slider-track::-moz-range-progress {
603
- background: currentColor;
604
- border-radius: 2.5px;
605
- height: 5px;
606
- }
607
- .fastboard-slider-track::-ms-track {
608
- border: 0;
609
- border-radius: 2.5px;
610
- height: 5px;
611
- transition: box-shadow .3s ease;
612
- user-select: none;
613
- background-color: #80808040;
614
- -webkit-user-select: none;
615
- color: #0000;
616
- }
617
- .fastboard-slider-track::-ms-thumb {
618
- appearance: none;
619
- background: #fff;
620
- border: 0;
621
- border-radius: 100%;
622
- box-shadow: 0 1px 1px #23292f26, 0 0 0 1px #23292f33;
623
- width: 13px;
624
- height: 13px;
625
- position: relative;
626
- transition: all .2s ease;
627
- cursor: grab;
628
- margin-top: 0;
629
- }
630
- .fastboard-slider-track::-ms-tooltip {
631
- display: none;
632
- }
633
- .fastboard-slider-track::-moz-focus-outer {
634
- border: 0;
635
- }
636
- .fastboard-slider-track.grabbing::-webkit-slider-thumb {
637
- cursor: grabbing;
638
- }
639
- .fastboard-slider-track.light {
640
- color: var(--fastboard-active-color, #3381ff);
641
- }
642
- .fastboard-slider-track.dark {
643
- color: var(--fastboard-active-color, #2867cc);
644
- }
645
- .fastboard-toolbar-contents {
646
- box-sizing: border-box;
647
- display: inline-flex;
648
- align-items: center;
649
- gap: 4px;
650
- border: 1px solid;
651
- border-radius: 4px;
652
- font-size: 14px;
653
- font-family: system-ui;
654
- pointer-events: auto;
655
- backdrop-filter: blur(5px);
656
- -webkit-backdrop-filter: blur(5px);
657
- padding: 2px 0;
658
- gap: 0;
659
- flex-direction: column;
660
- }
661
- .fastboard-toolbar-contents * {
662
- box-sizing: inherit;
663
- }
664
- .fastboard-toolbar-contents.light {
665
- color: var(--fastboard-color, #5d6066);
666
- background-color: var(--fastboard-bg-color, rgba(255, 255, 255, .9));
667
- border-color: var(--fastboard-border-color, #e5e8f0);
668
- }
669
- .fastboard-toolbar-contents.dark {
670
- color: var(--fastboard-color, #7b7e84);
671
- background-color: var(--fastboard-bg-color, rgba(20, 24, 30, .9));
672
- border-color: var(--fastboard-border-color, #383b42);
673
- }
674
- .fastboard-toolbar-contents > .fastboard-toolbar-btn {
675
- margin: 2px 4px;
676
- }
677
- .fastboard-toolbar-btn-interactive {
678
- position: relative;
679
- }
680
- .fastboard-toolbar-triangle {
681
- width: 0px;
682
- height: 0px;
683
- border-bottom: 3px solid;
684
- border-left: 3px solid rgba(0, 0, 0, 0);
685
- position: absolute;
686
- bottom: 0;
687
- right: 0;
688
- }
689
- .fastboard-toolbar-btn:focus + .fastboard-toolbar-triangle {
690
- opacity: 0;
691
- }
692
- .fastboard-toolbar-scrollable {
693
- padding: 2px 4px;
694
- overflow: hidden;
695
- display: flex;
696
- flex-direction: column;
697
- gap: 0;
698
- }
699
- .fastboard-toolbar-tooltip {
700
- display: inline-flex;
701
- align-items: center;
702
- gap: 4px;
703
- }
704
- .fastboard-toolbar-hotkey {
705
- display: inline-flex;
706
- margin-right: -4px;
707
- width: 24px;
708
- height: 24px;
709
- align-items: center;
710
- justify-content: center;
711
- background-color: #ffffff1a;
712
- border-radius: 4px;
713
- }
714
- .fastboard-toolbar-panel-wrapper {
715
- display: none;
716
- }
717
- .fastboard-toolbar-panel {
718
- display: flex;
719
- flex-direction: column;
720
- }
721
- .fastboard-toolbar-panel-divider {
722
- height: .5px;
723
- width: 100%;
724
- margin: 4px 0;
725
- background-color: #ffffff26;
726
- }
727
- .fastboard-toolbar-slider.pencil-eraser-size {
728
- width: 136px;
729
- }
730
- .fastboard-toolbar-colors,
731
- .fastboard-toolbar-shapes {
732
- display: grid;
733
- align-self: center;
734
- grid-template: repeat(2, 1fr)/repeat(4, 1fr);
735
- align-items: center;
736
- justify-items: center;
737
- gap: 4px;
738
- }
739
- .fastboard-toolbar-shape-btn,
740
- .fastboard-toolbar-color-btn {
741
- width: 24px;
742
- height: 24px;
743
- padding: 0;
744
- display: inline-flex;
745
- align-items: center;
746
- justify-content: center;
747
- }
748
- .fastboard-toolbar-color-btn {
749
- border: 1px solid rgba(0, 0, 0, 0);
750
- }
751
- .fastboard-toolbar-color-btn.light.is-active {
752
- border-color: var(--fastboard-active-color, #3381ff);
753
- }
754
- .fastboard-toolbar-color-btn.dark.is-active {
755
- border-color: var(--fastboard-active-color, #2867cc);
756
- }
757
- .fastboard-toolbar-color-item {
758
- display: inline-block;
759
- width: 16px;
760
- height: 16px;
761
- border-radius: 4px;
762
- pointer-events: none;
763
- }
764
- .fastboard-toolbar-panel.apps {
765
- display: grid;
766
- grid-template-columns: repeat(min(var(--n, 3), 3), minmax(max-content, 1fr));
767
- gap: 4px;
768
- }
769
- .fastboard-toolbar-app-btn {
770
- margin: 0;
771
- border: 0;
772
- border-radius: 2px;
773
- padding: 4px 6px;
774
- background-color: #0000;
775
- display: inline-flex;
776
- flex-direction: column;
777
- align-items: center;
778
- gap: 4px;
779
- font-size: 0;
780
- }
781
- .fastboard-toolbar-app-btn:disabled {
782
- opacity: .8;
783
- }
784
- .fastboard-toolbar-app-btn-icon {
785
- width: 32px;
786
- height: 32px;
787
- pointer-events: none;
788
- }
789
- .fastboard-toolbar-app-btn-text {
790
- font-size: 14px;
791
- line-height: 1;
792
- max-width: 100%;
793
- overflow: hidden;
794
- text-overflow: ellipsis;
795
- }
796
- .fastboard-toolbar-app-btn.is-loading {
797
- cursor: progress;
798
- }
799
- .fastboard-toolbar-app-btn.is-failed {
800
- cursor: not-allowed;
801
- opacity: .5;
802
- }
803
- .fastboard-toolbar-app-btn:not(:disabled, .is-loading, .is-failed):hover.light {
804
- cursor: pointer;
805
- background-color: var(--fastboard-hover-bg-color, #ebf2ff);
806
- }
807
- .fastboard-toolbar-app-btn-text.light {
808
- color: var(--fastboard-color, #5d6066);
809
- }
810
- .fastboard-toolbar-app-btn:not(:disabled, .is-loading, .is-failed):hover.dark {
811
- cursor: pointer;
812
- background-color: var(--fastboard-hover-bg-color, #383b42);
813
- }
814
- .fastboard-toolbar-app-btn-text.dark {
815
- color: var(--fastboard-color, #7b7e84);
816
- }
817
- .fastboard-root {
818
- position: relative;
819
- width: 100%;
820
- height: 100%;
821
- overflow: hidden;
822
- }
823
- .fastboard-view {
824
- position: absolute;
825
- top: 0;
826
- left: 0;
827
- width: 100%;
828
- height: 100%;
829
- }
830
- .fastboard-left {
831
- display: flex;
832
- align-items: center;
833
- position: absolute;
834
- bottom: 50px;
835
- top: 8px;
836
- left: 0;
837
- z-index: 200;
838
- pointer-events: none;
839
- }
840
- .fastboard-left .fastboard-toolbar {
841
- padding-left: 8px;
842
- }
843
- .fastboard-bottom-left,
844
- .fastboard-bottom,
845
- .fastboard-bottom-right {
846
- display: flex;
847
- gap: 10px;
848
- position: absolute;
849
- bottom: 8px;
850
- left: 8px;
851
- z-index: 200;
852
- pointer-events: none;
853
- }
854
- .fastboard-bottom-right {
855
- left: auto;
856
- right: 8px;
857
- }
858
- .fastboard-bottom {
859
- right: 8px;
860
- }
861
- .fastboard-left.hidden *,
862
- .fastboard-bottom.hidden *,
863
- .fastboard-bottom-left.hidden *,
864
- .fastboard-bottom-right.hidden * {
865
- opacity: 0;
866
- pointer-events: none;
867
- }
868
- .fastboard-tip {
869
- font-family: inherit;
870
- color: #d5d9e0;
871
- background-color: #03060d;
872
- }
873
- .fastboard-tip[data-placement^=right] > .tippy-arrow:before {
874
- top: 4px;
875
- border-width: 4px;
876
- border-right-color: #03060d;
877
- }
878
- .fastboard-tip[data-placement^=top] > .tippy-arrow:before {
879
- left: 4px;
880
- border-width: 4px;
881
- border-top-color: #03060d;
882
- }
883
- .fastboard-panel .tippy-content {
884
- padding: 8px;
885
- }
886
- .netless-whiteboard:focus-visible {
887
- outline: none;
888
- }