@netless/fastboard-ui 0.3.2-canary.2 → 0.3.2-canary.5

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 (110) hide show
  1. package/LICENSE.txt +21 -21
  2. package/README.md +7 -7
  3. package/dist/index.d.ts +103 -74
  4. package/dist/index.js +850 -410
  5. package/dist/index.js.map +1 -1
  6. package/dist/index.mjs +850 -410
  7. package/dist/index.mjs.map +1 -1
  8. package/dist/index.svelte.mjs +1237 -777
  9. package/dist/index.svelte.mjs.map +1 -1
  10. package/package.json +4 -4
  11. package/src/actions/height.ts +43 -43
  12. package/src/actions/scroll.ts +31 -31
  13. package/src/actions/tippy.ts +71 -71
  14. package/src/behaviors/apps.ts +74 -70
  15. package/src/behaviors/index.ts +1 -1
  16. package/src/components/Button/Button.svelte +51 -51
  17. package/src/components/Button/Button.svelte.d.ts +26 -26
  18. package/src/components/Button/index.ts +2 -2
  19. package/src/components/Fastboard/Fastboard.scss +61 -61
  20. package/src/components/Fastboard/Fastboard.svelte +80 -71
  21. package/src/components/Fastboard/Fastboard.svelte.ts +14 -13
  22. package/src/components/Fastboard/ReplayFastboard.svelte +43 -43
  23. package/src/components/Fastboard/ReplayFastboard.svelte.ts +13 -13
  24. package/src/components/Fastboard/index.ts +5 -5
  25. package/src/components/Icon/Icon.svelte +11 -11
  26. package/src/components/Icon/Icon.svelte.d.ts +10 -10
  27. package/src/components/Icon/index.ts +2 -2
  28. package/src/components/Icons/Apps.svelte +49 -49
  29. package/src/components/Icons/Arrow.svelte +16 -16
  30. package/src/components/Icons/ArrowBolded.svelte +17 -17
  31. package/src/components/Icons/Balloon.svelte +16 -16
  32. package/src/components/Icons/BalloonBolded.svelte +16 -16
  33. package/src/components/Icons/Circle.svelte +20 -20
  34. package/src/components/Icons/CircleBolded.svelte +20 -20
  35. package/src/components/Icons/Clean.svelte +14 -14
  36. package/src/components/Icons/Clear.svelte +16 -16
  37. package/src/components/Icons/Click.svelte +16 -16
  38. package/src/components/Icons/ClickFilled.svelte +10 -10
  39. package/src/components/Icons/Diamond.svelte +16 -16
  40. package/src/components/Icons/Down.svelte +16 -16
  41. package/src/components/Icons/Eraser.svelte +16 -16
  42. package/src/components/Icons/EraserFilled.svelte +16 -16
  43. package/src/components/Icons/Icons.scss +20 -20
  44. package/src/components/Icons/Left.svelte +16 -16
  45. package/src/components/Icons/Line.svelte +16 -16
  46. package/src/components/Icons/LineBolded.svelte +16 -16
  47. package/src/components/Icons/Loading.svelte +10 -10
  48. package/src/components/Icons/Minus.svelte +16 -16
  49. package/src/components/Icons/Pause.svelte +10 -10
  50. package/src/components/Icons/Pencil.svelte +29 -29
  51. package/src/components/Icons/PencilFilled.svelte +16 -16
  52. package/src/components/Icons/Play.svelte +10 -10
  53. package/src/components/Icons/Plus.svelte +16 -16
  54. package/src/components/Icons/Rectangle.svelte +16 -16
  55. package/src/components/Icons/RectangleBolded.svelte +16 -16
  56. package/src/components/Icons/Redo.svelte +15 -15
  57. package/src/components/Icons/Reset.svelte +26 -26
  58. package/src/components/Icons/Rhombus.svelte +16 -16
  59. package/src/components/Icons/RhombusBolded.svelte +16 -16
  60. package/src/components/Icons/Right.svelte +16 -16
  61. package/src/components/Icons/Selector.svelte +24 -24
  62. package/src/components/Icons/SelectorFilled.svelte +18 -18
  63. package/src/components/Icons/SpeechBalloon.svelte +16 -16
  64. package/src/components/Icons/Star.svelte +16 -16
  65. package/src/components/Icons/StarBolded.svelte +16 -16
  66. package/src/components/Icons/Text.svelte +16 -16
  67. package/src/components/Icons/TextFilled.svelte +17 -17
  68. package/src/components/Icons/Triangle.svelte +16 -16
  69. package/src/components/Icons/TriangleBolded.svelte +16 -16
  70. package/src/components/Icons/Undo.svelte +15 -15
  71. package/src/components/Icons/Up.svelte +16 -16
  72. package/src/components/Icons/WhiteboardAdd.svelte +34 -34
  73. package/src/components/Icons/index.ts +93 -93
  74. package/src/components/PageControl/PageControl.scss +15 -15
  75. package/src/components/PageControl/PageControl.svelte +79 -79
  76. package/src/components/PageControl/PageControl.svelte.d.ts +13 -13
  77. package/src/components/PageControl/index.ts +2 -2
  78. package/src/components/PlayerControl/PlayerControl.scss +57 -57
  79. package/src/components/PlayerControl/PlayerControl.svelte +153 -153
  80. package/src/components/PlayerControl/PlayerControl.svelte.d.ts +13 -13
  81. package/src/components/PlayerControl/index.ts +2 -2
  82. package/src/components/RedoUndo/RedoUndo.scss +11 -11
  83. package/src/components/RedoUndo/RedoUndo.svelte +60 -60
  84. package/src/components/RedoUndo/RedoUndo.svelte.d.ts +13 -13
  85. package/src/components/RedoUndo/index.ts +2 -2
  86. package/src/components/Toolbar/README.md +57 -57
  87. package/src/components/Toolbar/Toolbar.scss +78 -78
  88. package/src/components/Toolbar/Toolbar.svelte +62 -50
  89. package/src/components/Toolbar/Toolbar.svelte.d.ts +13 -12
  90. package/src/components/Toolbar/components/Contents.scss +168 -168
  91. package/src/components/Toolbar/components/Contents.svelte +197 -193
  92. package/src/components/Toolbar/components/Shapes.svelte +85 -85
  93. package/src/components/Toolbar/components/Slider.scss +119 -119
  94. package/src/components/Toolbar/components/Slider.svelte +54 -54
  95. package/src/components/Toolbar/components/StrokeColor.svelte +39 -39
  96. package/src/components/Toolbar/components/StrokeWidth.svelte +20 -20
  97. package/src/components/Toolbar/components/TextColor.svelte +39 -0
  98. package/src/components/Toolbar/components/constants.ts +80 -80
  99. package/src/components/Toolbar/components/helper.ts +24 -24
  100. package/src/components/Toolbar/index.ts +2 -2
  101. package/src/components/ZoomControl/ZoomControl.scss +15 -15
  102. package/src/components/ZoomControl/ZoomControl.svelte +99 -99
  103. package/src/components/ZoomControl/ZoomControl.svelte.d.ts +13 -13
  104. package/src/components/ZoomControl/index.ts +2 -2
  105. package/src/components/helpers.ts +3 -3
  106. package/src/components/theme.scss +92 -92
  107. package/src/components/variables.scss +69 -69
  108. package/src/index.ts +13 -13
  109. package/src/style.scss +36 -36
  110. package/src/typings.ts +38 -17
package/dist/index.js CHANGED
@@ -50,7 +50,7 @@ __export(src_exports, {
50
50
  });
51
51
  module.exports = __toCommonJS(src_exports);
52
52
 
53
- // ../../node_modules/.pnpm/svelte@3.46.4/node_modules/svelte/internal/index.mjs
53
+ // ../../node_modules/.pnpm/svelte@3.46.6/node_modules/svelte/internal/index.mjs
54
54
  function noop() {
55
55
  }
56
56
  function assign(tar, src) {
@@ -356,7 +356,7 @@ function outro_and_destroy_block(block, lookup) {
356
356
  lookup.delete(block.key);
357
357
  });
358
358
  }
359
- function update_keyed_each(old_blocks, dirty, get_key, dynamic, ctx, list, lookup, node, destroy, create_each_block5, next, get_context) {
359
+ function update_keyed_each(old_blocks, dirty, get_key, dynamic, ctx, list, lookup, node, destroy, create_each_block6, next, get_context) {
360
360
  let o = old_blocks.length;
361
361
  let n = list.length;
362
362
  let i = o;
@@ -372,7 +372,7 @@ function update_keyed_each(old_blocks, dirty, get_key, dynamic, ctx, list, looku
372
372
  const key = get_key(child_ctx);
373
373
  let block = lookup.get(key);
374
374
  if (!block) {
375
- block = create_each_block5(key, child_ctx);
375
+ block = create_each_block6(key, child_ctx);
376
376
  block.c();
377
377
  } else if (dynamic) {
378
378
  block.p(child_ctx, dirty);
@@ -494,7 +494,7 @@ function make_dirty(component, i) {
494
494
  }
495
495
  component.$$.dirty[i / 31 | 0] |= 1 << i % 31;
496
496
  }
497
- function init(component, options, instance59, create_fragment59, not_equal, props, append_styles, dirty = [-1]) {
497
+ function init(component, options, instance60, create_fragment60, not_equal, props, append_styles, dirty = [-1]) {
498
498
  const parent_component = current_component;
499
499
  set_current_component(component);
500
500
  const $$ = component.$$ = {
@@ -517,7 +517,7 @@ function init(component, options, instance59, create_fragment59, not_equal, prop
517
517
  };
518
518
  append_styles && append_styles($$.root);
519
519
  let ready = false;
520
- $$.ctx = instance59 ? instance59(component, options.props || {}, (i, ret, ...rest) => {
520
+ $$.ctx = instance60 ? instance60(component, options.props || {}, (i, ret, ...rest) => {
521
521
  const value = rest.length ? rest[0] : ret;
522
522
  if ($$.ctx && not_equal($$.ctx[i], $$.ctx[i] = value)) {
523
523
  if (!$$.skip_bound && $$.bound[i])
@@ -530,7 +530,7 @@ function init(component, options, instance59, create_fragment59, not_equal, prop
530
530
  $$.update();
531
531
  ready = true;
532
532
  run_all($$.before_update);
533
- $$.fragment = create_fragment59 ? create_fragment59($$.ctx) : false;
533
+ $$.fragment = create_fragment60 ? create_fragment60($$.ctx) : false;
534
534
  if (options.target) {
535
535
  if (options.hydrate) {
536
536
  start_hydrating();
@@ -3511,12 +3511,12 @@ if (is_client) {
3511
3511
  {
3512
3512
  name: "className",
3513
3513
  defaultValue: "",
3514
- fn(instance59) {
3514
+ fn(instance60) {
3515
3515
  function add() {
3516
- const el = instance59.popper.firstElementChild;
3516
+ const el = instance60.popper.firstElementChild;
3517
3517
  if (el) {
3518
3518
  el.classList.add("fastboard-tip");
3519
- const extra = (instance59.props.className || "").trim();
3519
+ const extra = (instance60.props.className || "").trim();
3520
3520
  if (extra) {
3521
3521
  el.classList.add(extra);
3522
3522
  }
@@ -3524,7 +3524,7 @@ if (is_client) {
3524
3524
  }
3525
3525
  function remove() {
3526
3526
  var _a;
3527
- (_a = instance59.popper.firstElementChild) == null ? void 0 : _a.classList.remove("fastboard-tip");
3527
+ (_a = instance60.popper.firstElementChild) == null ? void 0 : _a.classList.remove("fastboard-tip");
3528
3528
  }
3529
3529
  return {
3530
3530
  onCreate: add,
@@ -3537,21 +3537,21 @@ if (is_client) {
3537
3537
  });
3538
3538
  }
3539
3539
  var tippy = function(node, props) {
3540
- const instance59 = (0, import_tippy.default)(node, props);
3540
+ const instance60 = (0, import_tippy.default)(node, props);
3541
3541
  return {
3542
3542
  update(props2) {
3543
- instance59.setProps(props2);
3543
+ instance60.setProps(props2);
3544
3544
  },
3545
3545
  destroy() {
3546
- instance59.destroy();
3546
+ instance60.destroy();
3547
3547
  }
3548
3548
  };
3549
3549
  };
3550
3550
  function tippy_hide_all() {
3551
3551
  document.querySelectorAll("[data-tippy-root]").forEach((el) => {
3552
- const instance59 = el._tippy;
3553
- if (instance59)
3554
- instance59.hide();
3552
+ const instance60 = el._tippy;
3553
+ if (instance60)
3554
+ instance60.hide();
3555
3555
  });
3556
3556
  }
3557
3557
  var tippy_menu = {
@@ -5516,7 +5516,7 @@ var ZoomControl = class extends SvelteComponent {
5516
5516
  };
5517
5517
  var ZoomControl_default = ZoomControl;
5518
5518
 
5519
- // ../../node_modules/.pnpm/svelte@3.46.4/node_modules/svelte/store/index.mjs
5519
+ // ../../node_modules/.pnpm/svelte@3.46.6/node_modules/svelte/store/index.mjs
5520
5520
  var subscriber_queue = [];
5521
5521
  function writable(value, start = noop) {
5522
5522
  let stop;
@@ -5723,6 +5723,10 @@ var AppsInToolbar = class {
5723
5723
  this._data = this._data.filter((item) => !filter(item));
5724
5724
  this._listeners.forEach((fn) => fn(this._data));
5725
5725
  }
5726
+ clear() {
5727
+ this._data.length = 0;
5728
+ this._listeners.forEach((fn) => fn(this._data));
5729
+ }
5726
5730
  };
5727
5731
  var apps = new AppsInToolbar([
5728
5732
  {
@@ -6194,8 +6198,160 @@ var StrokeColor = class extends SvelteComponent {
6194
6198
  };
6195
6199
  var StrokeColor_default = StrokeColor;
6196
6200
 
6197
- // src/components/Toolbar/components/Shapes.svelte
6201
+ // src/components/Toolbar/components/TextColor.svelte
6198
6202
  function get_each_context2(ctx, list, i) {
6203
+ const child_ctx = ctx.slice();
6204
+ child_ctx[7] = list[i];
6205
+ return child_ctx;
6206
+ }
6207
+ function create_each_block2(key_1, ctx) {
6208
+ let button;
6209
+ let span;
6210
+ let t;
6211
+ let button_class_value;
6212
+ let button_data_color_key_value;
6213
+ return {
6214
+ key: key_1,
6215
+ first: null,
6216
+ c() {
6217
+ button = element("button");
6218
+ span = element("span");
6219
+ t = space();
6220
+ attr(span, "class", "fastboard-toolbar-color-item");
6221
+ set_style(span, "background-color", ctx[7], false);
6222
+ attr(button, "class", button_class_value = "fastboard-toolbar-btn fastboard-toolbar-color-btn " + ctx[0]);
6223
+ attr(button, "data-color-key", button_data_color_key_value = ctx[7]);
6224
+ button.disabled = ctx[1];
6225
+ toggle_class(button, "is-active", is_equal_color2(ctx[2], colors[ctx[7]]));
6226
+ this.first = button;
6227
+ },
6228
+ m(target, anchor) {
6229
+ insert(target, button, anchor);
6230
+ append(button, span);
6231
+ append(button, t);
6232
+ },
6233
+ p(new_ctx, dirty) {
6234
+ ctx = new_ctx;
6235
+ if (dirty & 1 && button_class_value !== (button_class_value = "fastboard-toolbar-btn fastboard-toolbar-color-btn " + ctx[0])) {
6236
+ attr(button, "class", button_class_value);
6237
+ }
6238
+ if (dirty & 2) {
6239
+ button.disabled = ctx[1];
6240
+ }
6241
+ if (dirty & 5) {
6242
+ toggle_class(button, "is-active", is_equal_color2(ctx[2], colors[ctx[7]]));
6243
+ }
6244
+ },
6245
+ d(detaching) {
6246
+ if (detaching)
6247
+ detach(button);
6248
+ }
6249
+ };
6250
+ }
6251
+ function create_fragment53(ctx) {
6252
+ let div;
6253
+ let each_blocks = [];
6254
+ let each_1_lookup = /* @__PURE__ */ new Map();
6255
+ let div_class_value;
6256
+ let mounted;
6257
+ let dispose;
6258
+ let each_value = colorKeys;
6259
+ const get_key = (ctx2) => ctx2[7];
6260
+ for (let i = 0; i < each_value.length; i += 1) {
6261
+ let child_ctx = get_each_context2(ctx, each_value, i);
6262
+ let key = get_key(child_ctx);
6263
+ each_1_lookup.set(key, each_blocks[i] = create_each_block2(key, child_ctx));
6264
+ }
6265
+ return {
6266
+ c() {
6267
+ div = element("div");
6268
+ for (let i = 0; i < each_blocks.length; i += 1) {
6269
+ each_blocks[i].c();
6270
+ }
6271
+ attr(div, "class", div_class_value = "fastboard-toolbar-colors " + ctx[0]);
6272
+ },
6273
+ m(target, anchor) {
6274
+ insert(target, div, anchor);
6275
+ for (let i = 0; i < each_blocks.length; i += 1) {
6276
+ each_blocks[i].m(div, null);
6277
+ }
6278
+ if (!mounted) {
6279
+ dispose = listen(div, "click", ctx[4]);
6280
+ mounted = true;
6281
+ }
6282
+ },
6283
+ p(ctx2, [dirty]) {
6284
+ if (dirty & 7) {
6285
+ each_value = colorKeys;
6286
+ each_blocks = update_keyed_each(each_blocks, dirty, get_key, 1, ctx2, each_value, each_1_lookup, div, destroy_block, create_each_block2, null, get_each_context2);
6287
+ }
6288
+ if (dirty & 1 && div_class_value !== (div_class_value = "fastboard-toolbar-colors " + ctx2[0])) {
6289
+ attr(div, "class", div_class_value);
6290
+ }
6291
+ },
6292
+ i: noop,
6293
+ o: noop,
6294
+ d(detaching) {
6295
+ if (detaching)
6296
+ detach(div);
6297
+ for (let i = 0; i < each_blocks.length; i += 1) {
6298
+ each_blocks[i].d();
6299
+ }
6300
+ mounted = false;
6301
+ dispose();
6302
+ }
6303
+ };
6304
+ }
6305
+ function is_equal_color2(a, b) {
6306
+ return a && b && a.every((v, i) => v === b[i]);
6307
+ }
6308
+ function instance53($$self, $$props, $$invalidate) {
6309
+ let memberState;
6310
+ let textColor;
6311
+ let $memberState, $$unsubscribe_memberState = noop, $$subscribe_memberState = () => ($$unsubscribe_memberState(), $$unsubscribe_memberState = subscribe(memberState, ($$value) => $$invalidate(6, $memberState = $$value)), memberState);
6312
+ $$self.$$.on_destroy.push(() => $$unsubscribe_memberState());
6313
+ let { app = null } = $$props;
6314
+ let { theme = "light" } = $$props;
6315
+ let { disabled = false } = $$props;
6316
+ function set_stroke_color(ev) {
6317
+ let button = ev.target;
6318
+ if (button && button.dataset.colorKey) {
6319
+ let color = colors[button.dataset.colorKey];
6320
+ if (color && app) {
6321
+ app.setTextColor(color);
6322
+ }
6323
+ }
6324
+ }
6325
+ $$self.$$set = ($$props2) => {
6326
+ if ("app" in $$props2)
6327
+ $$invalidate(5, app = $$props2.app);
6328
+ if ("theme" in $$props2)
6329
+ $$invalidate(0, theme = $$props2.theme);
6330
+ if ("disabled" in $$props2)
6331
+ $$invalidate(1, disabled = $$props2.disabled);
6332
+ };
6333
+ $$self.$$.update = () => {
6334
+ if ($$self.$$.dirty & 32) {
6335
+ $:
6336
+ $$subscribe_memberState($$invalidate(3, memberState = app == null ? void 0 : app.memberState));
6337
+ }
6338
+ if ($$self.$$.dirty & 64) {
6339
+ $:
6340
+ $$invalidate(2, textColor = $memberState == null ? void 0 : $memberState.textColor);
6341
+ }
6342
+ };
6343
+ return [theme, disabled, textColor, memberState, set_stroke_color, app, $memberState];
6344
+ }
6345
+ var TextColor = class extends SvelteComponent {
6346
+ constructor(options) {
6347
+ super();
6348
+ init(this, options, instance53, create_fragment53, safe_not_equal, { app: 5, theme: 0, disabled: 1 });
6349
+ }
6350
+ };
6351
+ var TextColor_default = TextColor;
6352
+
6353
+ // src/components/Toolbar/components/Shapes.svelte
6354
+ function get_each_context3(ctx, list, i) {
6199
6355
  const child_ctx = ctx.slice();
6200
6356
  child_ctx[12] = list[i];
6201
6357
  const constants_0 = child_ctx[4] === "shape" ? child_ctx[3] === child_ctx[12] : child_ctx[4] === child_ctx[12];
@@ -6342,7 +6498,7 @@ function create_if_block5(ctx) {
6342
6498
  }
6343
6499
  };
6344
6500
  }
6345
- function create_each_block2(key_1, ctx) {
6501
+ function create_each_block3(key_1, ctx) {
6346
6502
  let button;
6347
6503
  let current_block_type_index;
6348
6504
  let if_block;
@@ -6444,7 +6600,7 @@ function create_each_block2(key_1, ctx) {
6444
6600
  }
6445
6601
  };
6446
6602
  }
6447
- function create_fragment53(ctx) {
6603
+ function create_fragment54(ctx) {
6448
6604
  let div;
6449
6605
  let each_blocks = [];
6450
6606
  let each_1_lookup = /* @__PURE__ */ new Map();
@@ -6455,9 +6611,9 @@ function create_fragment53(ctx) {
6455
6611
  let each_value = shapes;
6456
6612
  const get_key = (ctx2) => ctx2[12];
6457
6613
  for (let i = 0; i < each_value.length; i += 1) {
6458
- let child_ctx = get_each_context2(ctx, each_value, i);
6614
+ let child_ctx = get_each_context3(ctx, each_value, i);
6459
6615
  let key = get_key(child_ctx);
6460
- each_1_lookup.set(key, each_blocks[i] = create_each_block2(key, child_ctx));
6616
+ each_1_lookup.set(key, each_blocks[i] = create_each_block3(key, child_ctx));
6461
6617
  }
6462
6618
  return {
6463
6619
  c() {
@@ -6482,7 +6638,7 @@ function create_fragment53(ctx) {
6482
6638
  if (dirty & 95) {
6483
6639
  each_value = shapes;
6484
6640
  group_outros();
6485
- each_blocks = update_keyed_each(each_blocks, dirty, get_key, 1, ctx2, each_value, each_1_lookup, div, outro_and_destroy_block, create_each_block2, null, get_each_context2);
6641
+ each_blocks = update_keyed_each(each_blocks, dirty, get_key, 1, ctx2, each_value, each_1_lookup, div, outro_and_destroy_block, create_each_block3, null, get_each_context3);
6486
6642
  check_outros();
6487
6643
  }
6488
6644
  if (!current || dirty & 1 && div_class_value !== (div_class_value = "fastboard-toolbar-shapes " + ctx2[0])) {
@@ -6536,7 +6692,7 @@ var i18n5 = {
6536
6692
  speechBalloon: "\u6C14\u6CE1"
6537
6693
  }
6538
6694
  };
6539
- function instance53($$self, $$props, $$invalidate) {
6695
+ function instance54($$self, $$props, $$invalidate) {
6540
6696
  let t;
6541
6697
  let memberState;
6542
6698
  let appliance;
@@ -6621,7 +6777,7 @@ function instance53($$self, $$props, $$invalidate) {
6621
6777
  var Shapes = class extends SvelteComponent {
6622
6778
  constructor(options) {
6623
6779
  super();
6624
- init(this, options, instance53, create_fragment53, safe_not_equal, {
6780
+ init(this, options, instance54, create_fragment54, safe_not_equal, {
6625
6781
  app: 8,
6626
6782
  theme: 0,
6627
6783
  language: 9,
@@ -6632,22 +6788,22 @@ var Shapes = class extends SvelteComponent {
6632
6788
  var Shapes_default = Shapes;
6633
6789
 
6634
6790
  // src/components/Toolbar/components/Contents.svelte
6635
- function get_each_context3(ctx, list, i) {
6791
+ function get_each_context4(ctx, list, i) {
6636
6792
  const child_ctx = ctx.slice();
6637
- child_ctx[40] = list[i];
6638
- const constants_0 = child_ctx[40];
6639
- child_ctx[41] = constants_0.icon;
6640
- child_ctx[42] = constants_0.label;
6641
- child_ctx[43] = constants_0.kind;
6642
- child_ctx[44] = constants_0.onClick;
6643
- const constants_1 = child_ctx[19] && child_ctx[19][child_ctx[43]];
6644
- child_ctx[45] = constants_1;
6793
+ child_ctx[41] = list[i];
6794
+ const constants_0 = child_ctx[41];
6795
+ child_ctx[42] = constants_0.icon;
6796
+ child_ctx[43] = constants_0.label;
6797
+ child_ctx[44] = constants_0.kind;
6798
+ child_ctx[45] = constants_0.onClick;
6799
+ const constants_1 = child_ctx[20] && child_ctx[20][child_ctx[44]];
6800
+ child_ctx[46] = constants_1;
6645
6801
  return child_ctx;
6646
6802
  }
6647
- function create_if_block_7(ctx) {
6803
+ function create_if_block_8(ctx) {
6648
6804
  let button;
6649
6805
  let current;
6650
- const button_spread_levels = [{ class: "scroll-up" }, ctx[14]];
6806
+ const button_spread_levels = [{ class: "scroll-up" }, ctx[15]];
6651
6807
  let button_props = {
6652
6808
  $$slots: { default: [create_default_slot_9] },
6653
6809
  $$scope: { ctx }
@@ -6656,7 +6812,7 @@ function create_if_block_7(ctx) {
6656
6812
  button_props = assign(button_props, button_spread_levels[i]);
6657
6813
  }
6658
6814
  button = new Button_default({ props: button_props });
6659
- button.$on("click", ctx[21]);
6815
+ button.$on("click", ctx[22]);
6660
6816
  return {
6661
6817
  c() {
6662
6818
  create_component(button.$$.fragment);
@@ -6666,8 +6822,8 @@ function create_if_block_7(ctx) {
6666
6822
  current = true;
6667
6823
  },
6668
6824
  p(ctx2, dirty) {
6669
- const button_changes = dirty[0] & 16384 ? get_spread_update(button_spread_levels, [button_spread_levels[0], get_spread_object(ctx2[14])]) : {};
6670
- if (dirty[0] & 2 | dirty[1] & 131072) {
6825
+ const button_changes = dirty[0] & 32768 ? get_spread_update(button_spread_levels, [button_spread_levels[0], get_spread_object(ctx2[15])]) : {};
6826
+ if (dirty[0] & 2 | dirty[1] & 262144) {
6671
6827
  button_changes.$$scope = { dirty, ctx: ctx2 };
6672
6828
  }
6673
6829
  button.$set(button_changes);
@@ -6753,7 +6909,7 @@ function create_else_block_5(ctx) {
6753
6909
  }
6754
6910
  };
6755
6911
  }
6756
- function create_if_block_6(ctx) {
6912
+ function create_if_block_7(ctx) {
6757
6913
  let icons_clickfilled;
6758
6914
  let current;
6759
6915
  icons_clickfilled = new Icons_default.ClickFilled({
@@ -6793,10 +6949,10 @@ function create_default_slot_8(ctx) {
6793
6949
  let if_block;
6794
6950
  let if_block_anchor;
6795
6951
  let current;
6796
- const if_block_creators = [create_if_block_6, create_else_block_5];
6952
+ const if_block_creators = [create_if_block_7, create_else_block_5];
6797
6953
  const if_blocks = [];
6798
6954
  function select_block_type(ctx2, dirty) {
6799
- if (ctx2[7] === "clicker")
6955
+ if (ctx2[8] === "clicker")
6800
6956
  return 0;
6801
6957
  return 1;
6802
6958
  }
@@ -6884,7 +7040,7 @@ function create_else_block_4(ctx) {
6884
7040
  }
6885
7041
  };
6886
7042
  }
6887
- function create_if_block_5(ctx) {
7043
+ function create_if_block_6(ctx) {
6888
7044
  let icons_selectorfilled;
6889
7045
  let current;
6890
7046
  icons_selectorfilled = new Icons_default.SelectorFilled({
@@ -6924,10 +7080,10 @@ function create_default_slot_7(ctx) {
6924
7080
  let if_block;
6925
7081
  let if_block_anchor;
6926
7082
  let current;
6927
- const if_block_creators = [create_if_block_5, create_else_block_4];
7083
+ const if_block_creators = [create_if_block_6, create_else_block_4];
6928
7084
  const if_blocks = [];
6929
7085
  function select_block_type_1(ctx2, dirty) {
6930
- if (ctx2[7] === "selector")
7086
+ if (ctx2[8] === "selector")
6931
7087
  return 0;
6932
7088
  return 1;
6933
7089
  }
@@ -7015,7 +7171,7 @@ function create_else_block_3(ctx) {
7015
7171
  }
7016
7172
  };
7017
7173
  }
7018
- function create_if_block_4(ctx) {
7174
+ function create_if_block_5(ctx) {
7019
7175
  let icons_pencilfilled;
7020
7176
  let current;
7021
7177
  icons_pencilfilled = new Icons_default.PencilFilled({
@@ -7055,10 +7211,10 @@ function create_default_slot_6(ctx) {
7055
7211
  let if_block;
7056
7212
  let if_block_anchor;
7057
7213
  let current;
7058
- const if_block_creators = [create_if_block_4, create_else_block_3];
7214
+ const if_block_creators = [create_if_block_5, create_else_block_3];
7059
7215
  const if_blocks = [];
7060
7216
  function select_block_type_2(ctx2, dirty) {
7061
- if (ctx2[7] === "pencil")
7217
+ if (ctx2[8] === "pencil")
7062
7218
  return 0;
7063
7219
  return 1;
7064
7220
  }
@@ -7146,7 +7302,7 @@ function create_else_block_2(ctx) {
7146
7302
  }
7147
7303
  };
7148
7304
  }
7149
- function create_if_block_3(ctx) {
7305
+ function create_if_block_4(ctx) {
7150
7306
  let icons_textfilled;
7151
7307
  let current;
7152
7308
  icons_textfilled = new Icons_default.TextFilled({
@@ -7186,10 +7342,10 @@ function create_default_slot_53(ctx) {
7186
7342
  let if_block;
7187
7343
  let if_block_anchor;
7188
7344
  let current;
7189
- const if_block_creators = [create_if_block_3, create_else_block_2];
7345
+ const if_block_creators = [create_if_block_4, create_else_block_2];
7190
7346
  const if_blocks = [];
7191
7347
  function select_block_type_3(ctx2, dirty) {
7192
- if (ctx2[7] === "text")
7348
+ if (ctx2[8] === "text")
7193
7349
  return 0;
7194
7350
  return 1;
7195
7351
  }
@@ -7248,7 +7404,7 @@ function create_else_block_12(ctx) {
7248
7404
  let switch_instance;
7249
7405
  let switch_instance_anchor;
7250
7406
  let current;
7251
- var switch_value = shapesIcon[ctx[9]];
7407
+ var switch_value = shapesIcon[ctx[10]];
7252
7408
  function switch_props(ctx2) {
7253
7409
  return { props: { theme: ctx2[1] } };
7254
7410
  }
@@ -7272,7 +7428,7 @@ function create_else_block_12(ctx) {
7272
7428
  const switch_instance_changes = {};
7273
7429
  if (dirty[0] & 2)
7274
7430
  switch_instance_changes.theme = ctx2[1];
7275
- if (switch_value !== (switch_value = shapesIcon[ctx2[9]])) {
7431
+ if (switch_value !== (switch_value = shapesIcon[ctx2[10]])) {
7276
7432
  if (switch_instance) {
7277
7433
  group_outros();
7278
7434
  const old_component = switch_instance;
@@ -7313,11 +7469,11 @@ function create_else_block_12(ctx) {
7313
7469
  }
7314
7470
  };
7315
7471
  }
7316
- function create_if_block_2(ctx) {
7472
+ function create_if_block_3(ctx) {
7317
7473
  let switch_instance;
7318
7474
  let switch_instance_anchor;
7319
7475
  let current;
7320
- var switch_value = shapesIconActive[ctx[9]];
7476
+ var switch_value = shapesIconActive[ctx[10]];
7321
7477
  function switch_props(ctx2) {
7322
7478
  return {
7323
7479
  props: { theme: ctx2[1], active: true }
@@ -7343,7 +7499,7 @@ function create_if_block_2(ctx) {
7343
7499
  const switch_instance_changes = {};
7344
7500
  if (dirty[0] & 2)
7345
7501
  switch_instance_changes.theme = ctx2[1];
7346
- if (switch_value !== (switch_value = shapesIconActive[ctx2[9]])) {
7502
+ if (switch_value !== (switch_value = shapesIconActive[ctx2[10]])) {
7347
7503
  if (switch_instance) {
7348
7504
  group_outros();
7349
7505
  const old_component = switch_instance;
@@ -7389,10 +7545,10 @@ function create_default_slot_43(ctx) {
7389
7545
  let if_block;
7390
7546
  let if_block_anchor;
7391
7547
  let current;
7392
- const if_block_creators = [create_if_block_2, create_else_block_12];
7548
+ const if_block_creators = [create_if_block_3, create_else_block_12];
7393
7549
  const if_blocks = [];
7394
7550
  function select_block_type_4(ctx2, dirty) {
7395
- if (ctx2[7] === ctx2[9] || ctx2[7] === "shape" && ctx2[6] === ctx2[9])
7551
+ if (ctx2[8] === ctx2[10] || ctx2[8] === "shape" && ctx2[7] === ctx2[10])
7396
7552
  return 0;
7397
7553
  return 1;
7398
7554
  }
@@ -7480,7 +7636,7 @@ function create_else_block6(ctx) {
7480
7636
  }
7481
7637
  };
7482
7638
  }
7483
- function create_if_block_12(ctx) {
7639
+ function create_if_block_2(ctx) {
7484
7640
  let icons_eraserfilled;
7485
7641
  let current;
7486
7642
  icons_eraserfilled = new Icons_default.EraserFilled({
@@ -7520,10 +7676,10 @@ function create_default_slot_34(ctx) {
7520
7676
  let if_block;
7521
7677
  let if_block_anchor;
7522
7678
  let current;
7523
- const if_block_creators = [create_if_block_12, create_else_block6];
7679
+ const if_block_creators = [create_if_block_2, create_else_block6];
7524
7680
  const if_blocks = [];
7525
7681
  function select_block_type_5(ctx2, dirty) {
7526
- if (ctx2[7] === "eraser")
7682
+ if (ctx2[8] === "eraser")
7527
7683
  return 0;
7528
7684
  return 1;
7529
7685
  }
@@ -7611,6 +7767,60 @@ function create_default_slot_24(ctx) {
7611
7767
  }
7612
7768
  };
7613
7769
  }
7770
+ function create_if_block_12(ctx) {
7771
+ let button;
7772
+ let current;
7773
+ const button_spread_levels = [
7774
+ { class: "apps" },
7775
+ ctx[15],
7776
+ { content: ctx[9].apps },
7777
+ { menu: ctx[14] },
7778
+ { menu_placement: "right-end" }
7779
+ ];
7780
+ let button_props = {
7781
+ $$slots: { default: [create_default_slot_14] },
7782
+ $$scope: { ctx }
7783
+ };
7784
+ for (let i = 0; i < button_spread_levels.length; i += 1) {
7785
+ button_props = assign(button_props, button_spread_levels[i]);
7786
+ }
7787
+ button = new Button_default({ props: button_props });
7788
+ return {
7789
+ c() {
7790
+ create_component(button.$$.fragment);
7791
+ },
7792
+ m(target, anchor) {
7793
+ mount_component(button, target, anchor);
7794
+ current = true;
7795
+ },
7796
+ p(ctx2, dirty) {
7797
+ const button_changes = dirty[0] & 49664 ? get_spread_update(button_spread_levels, [
7798
+ button_spread_levels[0],
7799
+ dirty[0] & 32768 && get_spread_object(ctx2[15]),
7800
+ dirty[0] & 512 && { content: ctx2[9].apps },
7801
+ dirty[0] & 16384 && { menu: ctx2[14] },
7802
+ button_spread_levels[4]
7803
+ ]) : {};
7804
+ if (dirty[0] & 2 | dirty[1] & 262144) {
7805
+ button_changes.$$scope = { dirty, ctx: ctx2 };
7806
+ }
7807
+ button.$set(button_changes);
7808
+ },
7809
+ i(local) {
7810
+ if (current)
7811
+ return;
7812
+ transition_in(button.$$.fragment, local);
7813
+ current = true;
7814
+ },
7815
+ o(local) {
7816
+ transition_out(button.$$.fragment, local);
7817
+ current = false;
7818
+ },
7819
+ d(detaching) {
7820
+ destroy_component(button, detaching);
7821
+ }
7822
+ };
7823
+ }
7614
7824
  function create_default_slot_14(ctx) {
7615
7825
  let icons_apps;
7616
7826
  let current;
@@ -7657,7 +7867,7 @@ function create_if_block6(ctx) {
7657
7867
  $$scope: { ctx }
7658
7868
  }
7659
7869
  });
7660
- button.$on("click", ctx[22]);
7870
+ button.$on("click", ctx[23]);
7661
7871
  return {
7662
7872
  c() {
7663
7873
  create_component(button.$$.fragment);
@@ -7672,7 +7882,7 @@ function create_if_block6(ctx) {
7672
7882
  button_changes.theme = ctx2[1];
7673
7883
  if (dirty[0] & 8)
7674
7884
  button_changes.disabled = ctx2[3];
7675
- if (dirty[0] & 2 | dirty[1] & 131072) {
7885
+ if (dirty[0] & 2 | dirty[1] & 262144) {
7676
7886
  button_changes.$$scope = { dirty, ctx: ctx2 };
7677
7887
  }
7678
7888
  button.$set(button_changes);
@@ -7725,7 +7935,7 @@ function create_default_slot4(ctx) {
7725
7935
  }
7726
7936
  };
7727
7937
  }
7728
- function create_each_block3(ctx) {
7938
+ function create_each_block4(ctx) {
7729
7939
  let button;
7730
7940
  let img;
7731
7941
  let img_class_value;
@@ -7734,7 +7944,7 @@ function create_each_block3(ctx) {
7734
7944
  let img_title_value;
7735
7945
  let t0;
7736
7946
  let span;
7737
- let t1_value = ctx[42] + "";
7947
+ let t1_value = ctx[43] + "";
7738
7948
  let t1;
7739
7949
  let span_class_value;
7740
7950
  let t2;
@@ -7753,17 +7963,17 @@ function create_each_block3(ctx) {
7753
7963
  t1 = text(t1_value);
7754
7964
  t2 = space();
7755
7965
  attr(img, "class", img_class_value = name5 + "-app-btn-icon " + ctx[1]);
7756
- if (!src_url_equal(img.src, img_src_value = ctx[41]))
7966
+ if (!src_url_equal(img.src, img_src_value = ctx[42]))
7757
7967
  attr(img, "src", img_src_value);
7758
- attr(img, "alt", img_alt_value = ctx[43]);
7759
- attr(img, "title", img_title_value = ctx[42]);
7968
+ attr(img, "alt", img_alt_value = ctx[44]);
7969
+ attr(img, "title", img_title_value = ctx[43]);
7760
7970
  attr(span, "class", span_class_value = name5 + "-app-btn-text " + ctx[1]);
7761
- attr(button, "class", button_class_value = name5 + "-app-btn " + ctx[43] + " " + ctx[1]);
7762
- attr(button, "title", button_title_value = ctx[42] + (ctx[45] && ctx[45].reason ? ": " + ctx[45].reason : ""));
7763
- attr(button, "data-app-kind", button_data_app_kind_value = ctx[40].kind);
7764
- button.disabled = button_disabled_value = ctx[45] && ctx[45].status !== "idle";
7765
- toggle_class(button, "is-loading", ctx[45] && ctx[45].status === "loading");
7766
- toggle_class(button, "is-failed", ctx[45] && ctx[45].status === "failed");
7971
+ attr(button, "class", button_class_value = name5 + "-app-btn " + ctx[44] + " " + ctx[1]);
7972
+ attr(button, "title", button_title_value = ctx[43] + (ctx[46] && ctx[46].reason ? ": " + ctx[46].reason : ""));
7973
+ attr(button, "data-app-kind", button_data_app_kind_value = ctx[41].kind);
7974
+ button.disabled = button_disabled_value = ctx[46] && ctx[46].status !== "idle";
7975
+ toggle_class(button, "is-loading", ctx[46] && ctx[46].status === "loading");
7976
+ toggle_class(button, "is-failed", ctx[46] && ctx[46].status === "failed");
7767
7977
  },
7768
7978
  m(target, anchor) {
7769
7979
  insert(target, button, anchor);
@@ -7774,8 +7984,8 @@ function create_each_block3(ctx) {
7774
7984
  append(button, t2);
7775
7985
  if (!mounted) {
7776
7986
  dispose = listen(button, "click", function() {
7777
- if (is_function(ctx[0] && ctx[44].bind(null, ctx[0])))
7778
- (ctx[0] && ctx[44].bind(null, ctx[0])).apply(this, arguments);
7987
+ if (is_function(ctx[0] && ctx[45].bind(null, ctx[0])))
7988
+ (ctx[0] && ctx[45].bind(null, ctx[0])).apply(this, arguments);
7779
7989
  });
7780
7990
  mounted = true;
7781
7991
  }
@@ -7785,37 +7995,37 @@ function create_each_block3(ctx) {
7785
7995
  if (dirty[0] & 2 && img_class_value !== (img_class_value = name5 + "-app-btn-icon " + ctx[1])) {
7786
7996
  attr(img, "class", img_class_value);
7787
7997
  }
7788
- if (dirty[0] & 262144 && !src_url_equal(img.src, img_src_value = ctx[41])) {
7998
+ if (dirty[0] & 524288 && !src_url_equal(img.src, img_src_value = ctx[42])) {
7789
7999
  attr(img, "src", img_src_value);
7790
8000
  }
7791
- if (dirty[0] & 262144 && img_alt_value !== (img_alt_value = ctx[43])) {
8001
+ if (dirty[0] & 524288 && img_alt_value !== (img_alt_value = ctx[44])) {
7792
8002
  attr(img, "alt", img_alt_value);
7793
8003
  }
7794
- if (dirty[0] & 262144 && img_title_value !== (img_title_value = ctx[42])) {
8004
+ if (dirty[0] & 524288 && img_title_value !== (img_title_value = ctx[43])) {
7795
8005
  attr(img, "title", img_title_value);
7796
8006
  }
7797
- if (dirty[0] & 262144 && t1_value !== (t1_value = ctx[42] + ""))
8007
+ if (dirty[0] & 524288 && t1_value !== (t1_value = ctx[43] + ""))
7798
8008
  set_data(t1, t1_value);
7799
8009
  if (dirty[0] & 2 && span_class_value !== (span_class_value = name5 + "-app-btn-text " + ctx[1])) {
7800
8010
  attr(span, "class", span_class_value);
7801
8011
  }
7802
- if (dirty[0] & 262146 && button_class_value !== (button_class_value = name5 + "-app-btn " + ctx[43] + " " + ctx[1])) {
8012
+ if (dirty[0] & 524290 && button_class_value !== (button_class_value = name5 + "-app-btn " + ctx[44] + " " + ctx[1])) {
7803
8013
  attr(button, "class", button_class_value);
7804
8014
  }
7805
- if (dirty[0] & 786432 && button_title_value !== (button_title_value = ctx[42] + (ctx[45] && ctx[45].reason ? ": " + ctx[45].reason : ""))) {
8015
+ if (dirty[0] & 1572864 && button_title_value !== (button_title_value = ctx[43] + (ctx[46] && ctx[46].reason ? ": " + ctx[46].reason : ""))) {
7806
8016
  attr(button, "title", button_title_value);
7807
8017
  }
7808
- if (dirty[0] & 262144 && button_data_app_kind_value !== (button_data_app_kind_value = ctx[40].kind)) {
8018
+ if (dirty[0] & 524288 && button_data_app_kind_value !== (button_data_app_kind_value = ctx[41].kind)) {
7809
8019
  attr(button, "data-app-kind", button_data_app_kind_value);
7810
8020
  }
7811
- if (dirty[0] & 786432 && button_disabled_value !== (button_disabled_value = ctx[45] && ctx[45].status !== "idle")) {
8021
+ if (dirty[0] & 1572864 && button_disabled_value !== (button_disabled_value = ctx[46] && ctx[46].status !== "idle")) {
7812
8022
  button.disabled = button_disabled_value;
7813
8023
  }
7814
- if (dirty[0] & 786434) {
7815
- toggle_class(button, "is-loading", ctx[45] && ctx[45].status === "loading");
8024
+ if (dirty[0] & 1572866) {
8025
+ toggle_class(button, "is-loading", ctx[46] && ctx[46].status === "loading");
7816
8026
  }
7817
- if (dirty[0] & 786434) {
7818
- toggle_class(button, "is-failed", ctx[45] && ctx[45].status === "failed");
8027
+ if (dirty[0] & 1572866) {
8028
+ toggle_class(button, "is-failed", ctx[46] && ctx[46].status === "failed");
7819
8029
  }
7820
8030
  },
7821
8031
  d(detaching) {
@@ -7826,7 +8036,7 @@ function create_each_block3(ctx) {
7826
8036
  }
7827
8037
  };
7828
8038
  }
7829
- function create_fragment54(ctx) {
8039
+ function create_fragment55(ctx) {
7830
8040
  let t0;
7831
8041
  let div0;
7832
8042
  let button0;
@@ -7843,7 +8053,6 @@ function create_fragment54(ctx) {
7843
8053
  let t6;
7844
8054
  let button6;
7845
8055
  let t7;
7846
- let button7;
7847
8056
  let div0_class_value;
7848
8057
  let scrollHeight_action;
7849
8058
  let scrollTop_action;
@@ -7860,7 +8069,7 @@ function create_fragment54(ctx) {
7860
8069
  let div2_class_value;
7861
8070
  let t12;
7862
8071
  let div3;
7863
- let strokecolor1;
8072
+ let textcolor;
7864
8073
  let div3_class_value;
7865
8074
  let t13;
7866
8075
  let div6;
@@ -7874,7 +8083,7 @@ function create_fragment54(ctx) {
7874
8083
  let div5;
7875
8084
  let div5_class_value;
7876
8085
  let t17;
7877
- let strokecolor2;
8086
+ let strokecolor1;
7878
8087
  let div6_class_value;
7879
8088
  let t18;
7880
8089
  let div7;
@@ -7883,11 +8092,11 @@ function create_fragment54(ctx) {
7883
8092
  let current;
7884
8093
  let mounted;
7885
8094
  let dispose;
7886
- let if_block0 = ctx[5] && create_if_block_7(ctx);
8095
+ let if_block0 = ctx[5] && create_if_block_8(ctx);
7887
8096
  const button0_spread_levels = [
7888
8097
  { class: "clicker" },
7889
- ctx[14],
7890
- { content: ctx[17].clicker }
8098
+ ctx[15],
8099
+ { content: ctx[18].clicker }
7891
8100
  ];
7892
8101
  let button0_props = {
7893
8102
  $$slots: { default: [create_default_slot_8] },
@@ -7897,11 +8106,11 @@ function create_fragment54(ctx) {
7897
8106
  button0_props = assign(button0_props, button0_spread_levels[i]);
7898
8107
  }
7899
8108
  button0 = new Button_default({ props: button0_props });
7900
- button0.$on("click", ctx[23]);
8109
+ button0.$on("click", ctx[24]);
7901
8110
  const button1_spread_levels = [
7902
8111
  { class: "selector" },
7903
- ctx[14],
7904
- { content: ctx[17].selector }
8112
+ ctx[15],
8113
+ { content: ctx[18].selector }
7905
8114
  ];
7906
8115
  let button1_props = {
7907
8116
  $$slots: { default: [create_default_slot_7] },
@@ -7911,12 +8120,12 @@ function create_fragment54(ctx) {
7911
8120
  button1_props = assign(button1_props, button1_spread_levels[i]);
7912
8121
  }
7913
8122
  button1 = new Button_default({ props: button1_props });
7914
- button1.$on("click", ctx[24]);
8123
+ button1.$on("click", ctx[25]);
7915
8124
  const button2_spread_levels = [
7916
8125
  { class: "pencil" },
7917
- ctx[14],
7918
- { content: ctx[17].pencil },
7919
- { menu: ctx[10] }
8126
+ ctx[15],
8127
+ { content: ctx[18].pencil },
8128
+ { menu: ctx[11] }
7920
8129
  ];
7921
8130
  let button2_props = {
7922
8131
  $$slots: { default: [create_default_slot_6] },
@@ -7926,12 +8135,12 @@ function create_fragment54(ctx) {
7926
8135
  button2_props = assign(button2_props, button2_spread_levels[i]);
7927
8136
  }
7928
8137
  button2 = new Button_default({ props: button2_props });
7929
- button2.$on("click", ctx[25]);
8138
+ button2.$on("click", ctx[26]);
7930
8139
  const button3_spread_levels = [
7931
8140
  { class: "text" },
7932
- ctx[14],
7933
- { content: ctx[17].text },
7934
- { menu: ctx[11] }
8141
+ ctx[15],
8142
+ { content: ctx[18].text },
8143
+ { menu: ctx[12] }
7935
8144
  ];
7936
8145
  let button3_props = {
7937
8146
  $$slots: { default: [create_default_slot_53] },
@@ -7941,12 +8150,12 @@ function create_fragment54(ctx) {
7941
8150
  button3_props = assign(button3_props, button3_spread_levels[i]);
7942
8151
  }
7943
8152
  button3 = new Button_default({ props: button3_props });
7944
- button3.$on("click", ctx[26]);
8153
+ button3.$on("click", ctx[27]);
7945
8154
  const button4_spread_levels = [
7946
8155
  { class: "shapes" },
7947
- ctx[14],
7948
- { content: ctx[8].shapes },
7949
- { menu: ctx[12] }
8156
+ ctx[15],
8157
+ { content: ctx[9].shapes },
8158
+ { menu: ctx[13] }
7950
8159
  ];
7951
8160
  let button4_props = {
7952
8161
  $$slots: { default: [create_default_slot_43] },
@@ -7956,8 +8165,8 @@ function create_fragment54(ctx) {
7956
8165
  button4_props = assign(button4_props, button4_spread_levels[i]);
7957
8166
  }
7958
8167
  button4 = new Button_default({ props: button4_props });
7959
- button4.$on("click", ctx[27]);
7960
- const button5_spread_levels = [{ class: "eraser" }, ctx[14], { content: ctx[17].eraser }];
8168
+ button4.$on("click", ctx[28]);
8169
+ const button5_spread_levels = [{ class: "eraser" }, ctx[15], { content: ctx[18].eraser }];
7961
8170
  let button5_props = {
7962
8171
  $$slots: { default: [create_default_slot_34] },
7963
8172
  $$scope: { ctx }
@@ -7966,8 +8175,8 @@ function create_fragment54(ctx) {
7966
8175
  button5_props = assign(button5_props, button5_spread_levels[i]);
7967
8176
  }
7968
8177
  button5 = new Button_default({ props: button5_props });
7969
- button5.$on("click", ctx[28]);
7970
- const button6_spread_levels = [{ class: "clear" }, ctx[14], { content: ctx[8].clear }];
8178
+ button5.$on("click", ctx[29]);
8179
+ const button6_spread_levels = [{ class: "clear" }, ctx[15], { content: ctx[9].clear }];
7971
8180
  let button6_props = {
7972
8181
  $$slots: { default: [create_default_slot_24] },
7973
8182
  $$scope: { ctx }
@@ -7976,23 +8185,9 @@ function create_fragment54(ctx) {
7976
8185
  button6_props = assign(button6_props, button6_spread_levels[i]);
7977
8186
  }
7978
8187
  button6 = new Button_default({ props: button6_props });
7979
- button6.$on("click", ctx[29]);
7980
- const button7_spread_levels = [
7981
- { class: "apps" },
7982
- ctx[14],
7983
- { content: ctx[8].apps },
7984
- { menu: ctx[13] },
7985
- { menu_placement: "right-end" }
7986
- ];
7987
- let button7_props = {
7988
- $$slots: { default: [create_default_slot_14] },
7989
- $$scope: { ctx }
7990
- };
7991
- for (let i = 0; i < button7_spread_levels.length; i += 1) {
7992
- button7_props = assign(button7_props, button7_spread_levels[i]);
7993
- }
7994
- button7 = new Button_default({ props: button7_props });
7995
- let if_block1 = ctx[5] && create_if_block6(ctx);
8188
+ button6.$on("click", ctx[30]);
8189
+ let if_block1 = !ctx[6] && create_if_block_12(ctx);
8190
+ let if_block2 = ctx[5] && create_if_block6(ctx);
7996
8191
  strokewidth0 = new StrokeWidth_default({
7997
8192
  props: {
7998
8193
  app: ctx[0],
@@ -8007,7 +8202,7 @@ function create_fragment54(ctx) {
8007
8202
  disabled: ctx[3]
8008
8203
  }
8009
8204
  });
8010
- strokecolor1 = new StrokeColor_default({
8205
+ textcolor = new TextColor_default({
8011
8206
  props: {
8012
8207
  app: ctx[0],
8013
8208
  theme: ctx[1],
@@ -8029,17 +8224,17 @@ function create_fragment54(ctx) {
8029
8224
  disabled: ctx[3]
8030
8225
  }
8031
8226
  });
8032
- strokecolor2 = new StrokeColor_default({
8227
+ strokecolor1 = new StrokeColor_default({
8033
8228
  props: {
8034
8229
  app: ctx[0],
8035
8230
  theme: ctx[1],
8036
8231
  disabled: ctx[3]
8037
8232
  }
8038
8233
  });
8039
- let each_value = ctx[18];
8234
+ let each_value = ctx[19];
8040
8235
  let each_blocks = [];
8041
8236
  for (let i = 0; i < each_value.length; i += 1) {
8042
- each_blocks[i] = create_each_block3(get_each_context3(ctx, each_value, i));
8237
+ each_blocks[i] = create_each_block4(get_each_context4(ctx, each_value, i));
8043
8238
  }
8044
8239
  return {
8045
8240
  c() {
@@ -8061,10 +8256,11 @@ function create_fragment54(ctx) {
8061
8256
  t6 = space();
8062
8257
  create_component(button6.$$.fragment);
8063
8258
  t7 = space();
8064
- create_component(button7.$$.fragment);
8065
- t8 = space();
8066
8259
  if (if_block1)
8067
8260
  if_block1.c();
8261
+ t8 = space();
8262
+ if (if_block2)
8263
+ if_block2.c();
8068
8264
  t9 = space();
8069
8265
  div8 = element("div");
8070
8266
  div2 = element("div");
@@ -8075,7 +8271,7 @@ function create_fragment54(ctx) {
8075
8271
  create_component(strokecolor0.$$.fragment);
8076
8272
  t12 = space();
8077
8273
  div3 = element("div");
8078
- create_component(strokecolor1.$$.fragment);
8274
+ create_component(textcolor.$$.fragment);
8079
8275
  t13 = space();
8080
8276
  div6 = element("div");
8081
8277
  create_component(shapes2.$$.fragment);
@@ -8086,7 +8282,7 @@ function create_fragment54(ctx) {
8086
8282
  t16 = space();
8087
8283
  div5 = element("div");
8088
8284
  t17 = space();
8089
- create_component(strokecolor2.$$.fragment);
8285
+ create_component(strokecolor1.$$.fragment);
8090
8286
  t18 = space();
8091
8287
  div7 = element("div");
8092
8288
  for (let i = 0; i < each_blocks.length; i += 1) {
@@ -8101,7 +8297,7 @@ function create_fragment54(ctx) {
8101
8297
  attr(div5, "class", div5_class_value = name5 + "-panel-divider");
8102
8298
  attr(div6, "class", div6_class_value = name5 + "-panel shapes");
8103
8299
  attr(div7, "class", div7_class_value = name5 + "-panel apps");
8104
- set_style(div7, "--n", ctx[18].length);
8300
+ set_style(div7, "--n", ctx[19].length);
8105
8301
  attr(div8, "class", div8_class_value = name5 + "-panel-wrapper");
8106
8302
  set_style(div8, "display", "none");
8107
8303
  },
@@ -8124,10 +8320,11 @@ function create_fragment54(ctx) {
8124
8320
  append(div0, t6);
8125
8321
  mount_component(button6, div0, null);
8126
8322
  append(div0, t7);
8127
- mount_component(button7, div0, null);
8128
- insert(target, t8, anchor);
8129
8323
  if (if_block1)
8130
- if_block1.m(target, anchor);
8324
+ if_block1.m(div0, null);
8325
+ insert(target, t8, anchor);
8326
+ if (if_block2)
8327
+ if_block2.m(target, anchor);
8131
8328
  insert(target, t9, anchor);
8132
8329
  insert(target, div8, anchor);
8133
8330
  append(div8, div2);
@@ -8136,11 +8333,11 @@ function create_fragment54(ctx) {
8136
8333
  append(div2, div1);
8137
8334
  append(div2, t11);
8138
8335
  mount_component(strokecolor0, div2, null);
8139
- ctx[34](div2);
8336
+ ctx[35](div2);
8140
8337
  append(div8, t12);
8141
8338
  append(div8, div3);
8142
- mount_component(strokecolor1, div3, null);
8143
- ctx[35](div3);
8339
+ mount_component(textcolor, div3, null);
8340
+ ctx[36](div3);
8144
8341
  append(div8, t13);
8145
8342
  append(div8, div6);
8146
8343
  mount_component(shapes2, div6, null);
@@ -8151,19 +8348,19 @@ function create_fragment54(ctx) {
8151
8348
  append(div6, t16);
8152
8349
  append(div6, div5);
8153
8350
  append(div6, t17);
8154
- mount_component(strokecolor2, div6, null);
8155
- ctx[36](div6);
8351
+ mount_component(strokecolor1, div6, null);
8352
+ ctx[37](div6);
8156
8353
  append(div8, t18);
8157
8354
  append(div8, div7);
8158
8355
  for (let i = 0; i < each_blocks.length; i += 1) {
8159
8356
  each_blocks[i].m(div7, null);
8160
8357
  }
8161
- ctx[37](div7);
8358
+ ctx[38](div7);
8162
8359
  current = true;
8163
8360
  if (!mounted) {
8164
8361
  dispose = [
8165
8362
  action_destroyer(scrollHeight_action = scrollHeight.call(null, div0, ctx[4])),
8166
- action_destroyer(scrollTop_action = scrollTop.call(null, div0, ctx[20]))
8363
+ action_destroyer(scrollTop_action = scrollTop.call(null, div0, ctx[21]))
8167
8364
  ];
8168
8365
  mounted = true;
8169
8366
  }
@@ -8176,7 +8373,7 @@ function create_fragment54(ctx) {
8176
8373
  transition_in(if_block0, 1);
8177
8374
  }
8178
8375
  } else {
8179
- if_block0 = create_if_block_7(ctx2);
8376
+ if_block0 = create_if_block_8(ctx2);
8180
8377
  if_block0.c();
8181
8378
  transition_in(if_block0, 1);
8182
8379
  if_block0.m(t0.parentNode, t0);
@@ -8188,99 +8385,83 @@ function create_fragment54(ctx) {
8188
8385
  });
8189
8386
  check_outros();
8190
8387
  }
8191
- const button0_changes = dirty[0] & 147456 ? get_spread_update(button0_spread_levels, [
8388
+ const button0_changes = dirty[0] & 294912 ? get_spread_update(button0_spread_levels, [
8192
8389
  button0_spread_levels[0],
8193
- dirty[0] & 16384 && get_spread_object(ctx2[14]),
8194
- dirty[0] & 131072 && { content: ctx2[17].clicker }
8390
+ dirty[0] & 32768 && get_spread_object(ctx2[15]),
8391
+ dirty[0] & 262144 && { content: ctx2[18].clicker }
8195
8392
  ]) : {};
8196
- if (dirty[0] & 130 | dirty[1] & 131072) {
8393
+ if (dirty[0] & 258 | dirty[1] & 262144) {
8197
8394
  button0_changes.$$scope = { dirty, ctx: ctx2 };
8198
8395
  }
8199
8396
  button0.$set(button0_changes);
8200
- const button1_changes = dirty[0] & 147456 ? get_spread_update(button1_spread_levels, [
8397
+ const button1_changes = dirty[0] & 294912 ? get_spread_update(button1_spread_levels, [
8201
8398
  button1_spread_levels[0],
8202
- dirty[0] & 16384 && get_spread_object(ctx2[14]),
8203
- dirty[0] & 131072 && { content: ctx2[17].selector }
8399
+ dirty[0] & 32768 && get_spread_object(ctx2[15]),
8400
+ dirty[0] & 262144 && { content: ctx2[18].selector }
8204
8401
  ]) : {};
8205
- if (dirty[0] & 130 | dirty[1] & 131072) {
8402
+ if (dirty[0] & 258 | dirty[1] & 262144) {
8206
8403
  button1_changes.$$scope = { dirty, ctx: ctx2 };
8207
8404
  }
8208
8405
  button1.$set(button1_changes);
8209
- const button2_changes = dirty[0] & 148480 ? get_spread_update(button2_spread_levels, [
8406
+ const button2_changes = dirty[0] & 296960 ? get_spread_update(button2_spread_levels, [
8210
8407
  button2_spread_levels[0],
8211
- dirty[0] & 16384 && get_spread_object(ctx2[14]),
8212
- dirty[0] & 131072 && { content: ctx2[17].pencil },
8213
- dirty[0] & 1024 && { menu: ctx2[10] }
8408
+ dirty[0] & 32768 && get_spread_object(ctx2[15]),
8409
+ dirty[0] & 262144 && { content: ctx2[18].pencil },
8410
+ dirty[0] & 2048 && { menu: ctx2[11] }
8214
8411
  ]) : {};
8215
- if (dirty[0] & 130 | dirty[1] & 131072) {
8412
+ if (dirty[0] & 258 | dirty[1] & 262144) {
8216
8413
  button2_changes.$$scope = { dirty, ctx: ctx2 };
8217
8414
  }
8218
8415
  button2.$set(button2_changes);
8219
- const button3_changes = dirty[0] & 149504 ? get_spread_update(button3_spread_levels, [
8416
+ const button3_changes = dirty[0] & 299008 ? get_spread_update(button3_spread_levels, [
8220
8417
  button3_spread_levels[0],
8221
- dirty[0] & 16384 && get_spread_object(ctx2[14]),
8222
- dirty[0] & 131072 && { content: ctx2[17].text },
8223
- dirty[0] & 2048 && { menu: ctx2[11] }
8418
+ dirty[0] & 32768 && get_spread_object(ctx2[15]),
8419
+ dirty[0] & 262144 && { content: ctx2[18].text },
8420
+ dirty[0] & 4096 && { menu: ctx2[12] }
8224
8421
  ]) : {};
8225
- if (dirty[0] & 130 | dirty[1] & 131072) {
8422
+ if (dirty[0] & 258 | dirty[1] & 262144) {
8226
8423
  button3_changes.$$scope = { dirty, ctx: ctx2 };
8227
8424
  }
8228
8425
  button3.$set(button3_changes);
8229
- const button4_changes = dirty[0] & 20736 ? get_spread_update(button4_spread_levels, [
8426
+ const button4_changes = dirty[0] & 41472 ? get_spread_update(button4_spread_levels, [
8230
8427
  button4_spread_levels[0],
8231
- dirty[0] & 16384 && get_spread_object(ctx2[14]),
8232
- dirty[0] & 256 && { content: ctx2[8].shapes },
8233
- dirty[0] & 4096 && { menu: ctx2[12] }
8428
+ dirty[0] & 32768 && get_spread_object(ctx2[15]),
8429
+ dirty[0] & 512 && { content: ctx2[9].shapes },
8430
+ dirty[0] & 8192 && { menu: ctx2[13] }
8234
8431
  ]) : {};
8235
- if (dirty[0] & 706 | dirty[1] & 131072) {
8432
+ if (dirty[0] & 1410 | dirty[1] & 262144) {
8236
8433
  button4_changes.$$scope = { dirty, ctx: ctx2 };
8237
8434
  }
8238
8435
  button4.$set(button4_changes);
8239
- const button5_changes = dirty[0] & 147456 ? get_spread_update(button5_spread_levels, [
8436
+ const button5_changes = dirty[0] & 294912 ? get_spread_update(button5_spread_levels, [
8240
8437
  button5_spread_levels[0],
8241
- dirty[0] & 16384 && get_spread_object(ctx2[14]),
8242
- dirty[0] & 131072 && { content: ctx2[17].eraser }
8438
+ dirty[0] & 32768 && get_spread_object(ctx2[15]),
8439
+ dirty[0] & 262144 && { content: ctx2[18].eraser }
8243
8440
  ]) : {};
8244
- if (dirty[0] & 130 | dirty[1] & 131072) {
8441
+ if (dirty[0] & 258 | dirty[1] & 262144) {
8245
8442
  button5_changes.$$scope = { dirty, ctx: ctx2 };
8246
8443
  }
8247
8444
  button5.$set(button5_changes);
8248
- const button6_changes = dirty[0] & 16640 ? get_spread_update(button6_spread_levels, [
8445
+ const button6_changes = dirty[0] & 33280 ? get_spread_update(button6_spread_levels, [
8249
8446
  button6_spread_levels[0],
8250
- dirty[0] & 16384 && get_spread_object(ctx2[14]),
8251
- dirty[0] & 256 && { content: ctx2[8].clear }
8447
+ dirty[0] & 32768 && get_spread_object(ctx2[15]),
8448
+ dirty[0] & 512 && { content: ctx2[9].clear }
8252
8449
  ]) : {};
8253
- if (dirty[0] & 2 | dirty[1] & 131072) {
8450
+ if (dirty[0] & 2 | dirty[1] & 262144) {
8254
8451
  button6_changes.$$scope = { dirty, ctx: ctx2 };
8255
8452
  }
8256
8453
  button6.$set(button6_changes);
8257
- const button7_changes = dirty[0] & 24832 ? get_spread_update(button7_spread_levels, [
8258
- button7_spread_levels[0],
8259
- dirty[0] & 16384 && get_spread_object(ctx2[14]),
8260
- dirty[0] & 256 && { content: ctx2[8].apps },
8261
- dirty[0] & 8192 && { menu: ctx2[13] },
8262
- button7_spread_levels[4]
8263
- ]) : {};
8264
- if (dirty[0] & 2 | dirty[1] & 131072) {
8265
- button7_changes.$$scope = { dirty, ctx: ctx2 };
8266
- }
8267
- button7.$set(button7_changes);
8268
- if (scrollHeight_action && is_function(scrollHeight_action.update) && dirty[0] & 16)
8269
- scrollHeight_action.update.call(null, ctx2[4]);
8270
- if (dirty[0] & 32) {
8271
- toggle_class(div0, "scrollable", ctx2[5]);
8272
- }
8273
- if (ctx2[5]) {
8454
+ if (!ctx2[6]) {
8274
8455
  if (if_block1) {
8275
8456
  if_block1.p(ctx2, dirty);
8276
- if (dirty[0] & 32) {
8457
+ if (dirty[0] & 64) {
8277
8458
  transition_in(if_block1, 1);
8278
8459
  }
8279
8460
  } else {
8280
- if_block1 = create_if_block6(ctx2);
8461
+ if_block1 = create_if_block_12(ctx2);
8281
8462
  if_block1.c();
8282
8463
  transition_in(if_block1, 1);
8283
- if_block1.m(t9.parentNode, t9);
8464
+ if_block1.m(div0, null);
8284
8465
  }
8285
8466
  } else if (if_block1) {
8286
8467
  group_outros();
@@ -8289,14 +8470,38 @@ function create_fragment54(ctx) {
8289
8470
  });
8290
8471
  check_outros();
8291
8472
  }
8292
- const strokewidth0_changes = {};
8293
- if (dirty[0] & 1)
8294
- strokewidth0_changes.app = ctx2[0];
8295
- if (dirty[0] & 2)
8296
- strokewidth0_changes.theme = ctx2[1];
8297
- if (dirty[0] & 8)
8298
- strokewidth0_changes.disabled = ctx2[3];
8299
- strokewidth0.$set(strokewidth0_changes);
8473
+ if (scrollHeight_action && is_function(scrollHeight_action.update) && dirty[0] & 16)
8474
+ scrollHeight_action.update.call(null, ctx2[4]);
8475
+ if (dirty[0] & 32) {
8476
+ toggle_class(div0, "scrollable", ctx2[5]);
8477
+ }
8478
+ if (ctx2[5]) {
8479
+ if (if_block2) {
8480
+ if_block2.p(ctx2, dirty);
8481
+ if (dirty[0] & 32) {
8482
+ transition_in(if_block2, 1);
8483
+ }
8484
+ } else {
8485
+ if_block2 = create_if_block6(ctx2);
8486
+ if_block2.c();
8487
+ transition_in(if_block2, 1);
8488
+ if_block2.m(t9.parentNode, t9);
8489
+ }
8490
+ } else if (if_block2) {
8491
+ group_outros();
8492
+ transition_out(if_block2, 1, 1, () => {
8493
+ if_block2 = null;
8494
+ });
8495
+ check_outros();
8496
+ }
8497
+ const strokewidth0_changes = {};
8498
+ if (dirty[0] & 1)
8499
+ strokewidth0_changes.app = ctx2[0];
8500
+ if (dirty[0] & 2)
8501
+ strokewidth0_changes.theme = ctx2[1];
8502
+ if (dirty[0] & 8)
8503
+ strokewidth0_changes.disabled = ctx2[3];
8504
+ strokewidth0.$set(strokewidth0_changes);
8300
8505
  const strokecolor0_changes = {};
8301
8506
  if (dirty[0] & 1)
8302
8507
  strokecolor0_changes.app = ctx2[0];
@@ -8305,14 +8510,14 @@ function create_fragment54(ctx) {
8305
8510
  if (dirty[0] & 8)
8306
8511
  strokecolor0_changes.disabled = ctx2[3];
8307
8512
  strokecolor0.$set(strokecolor0_changes);
8308
- const strokecolor1_changes = {};
8513
+ const textcolor_changes = {};
8309
8514
  if (dirty[0] & 1)
8310
- strokecolor1_changes.app = ctx2[0];
8515
+ textcolor_changes.app = ctx2[0];
8311
8516
  if (dirty[0] & 2)
8312
- strokecolor1_changes.theme = ctx2[1];
8517
+ textcolor_changes.theme = ctx2[1];
8313
8518
  if (dirty[0] & 8)
8314
- strokecolor1_changes.disabled = ctx2[3];
8315
- strokecolor1.$set(strokecolor1_changes);
8519
+ textcolor_changes.disabled = ctx2[3];
8520
+ textcolor.$set(textcolor_changes);
8316
8521
  const shapes_changes = {};
8317
8522
  if (dirty[0] & 1)
8318
8523
  shapes_changes.app = ctx2[0];
@@ -8331,23 +8536,23 @@ function create_fragment54(ctx) {
8331
8536
  if (dirty[0] & 8)
8332
8537
  strokewidth1_changes.disabled = ctx2[3];
8333
8538
  strokewidth1.$set(strokewidth1_changes);
8334
- const strokecolor2_changes = {};
8539
+ const strokecolor1_changes = {};
8335
8540
  if (dirty[0] & 1)
8336
- strokecolor2_changes.app = ctx2[0];
8541
+ strokecolor1_changes.app = ctx2[0];
8337
8542
  if (dirty[0] & 2)
8338
- strokecolor2_changes.theme = ctx2[1];
8543
+ strokecolor1_changes.theme = ctx2[1];
8339
8544
  if (dirty[0] & 8)
8340
- strokecolor2_changes.disabled = ctx2[3];
8341
- strokecolor2.$set(strokecolor2_changes);
8342
- if (dirty[0] & 786435) {
8343
- each_value = ctx2[18];
8545
+ strokecolor1_changes.disabled = ctx2[3];
8546
+ strokecolor1.$set(strokecolor1_changes);
8547
+ if (dirty[0] & 1572867) {
8548
+ each_value = ctx2[19];
8344
8549
  let i;
8345
8550
  for (i = 0; i < each_value.length; i += 1) {
8346
- const child_ctx = get_each_context3(ctx2, each_value, i);
8551
+ const child_ctx = get_each_context4(ctx2, each_value, i);
8347
8552
  if (each_blocks[i]) {
8348
8553
  each_blocks[i].p(child_ctx, dirty);
8349
8554
  } else {
8350
- each_blocks[i] = create_each_block3(child_ctx);
8555
+ each_blocks[i] = create_each_block4(child_ctx);
8351
8556
  each_blocks[i].c();
8352
8557
  each_blocks[i].m(div7, null);
8353
8558
  }
@@ -8357,8 +8562,8 @@ function create_fragment54(ctx) {
8357
8562
  }
8358
8563
  each_blocks.length = each_value.length;
8359
8564
  }
8360
- if (!current || dirty[0] & 262144) {
8361
- set_style(div7, "--n", ctx2[18].length);
8565
+ if (!current || dirty[0] & 524288) {
8566
+ set_style(div7, "--n", ctx2[19].length);
8362
8567
  }
8363
8568
  },
8364
8569
  i(local) {
@@ -8372,14 +8577,14 @@ function create_fragment54(ctx) {
8372
8577
  transition_in(button4.$$.fragment, local);
8373
8578
  transition_in(button5.$$.fragment, local);
8374
8579
  transition_in(button6.$$.fragment, local);
8375
- transition_in(button7.$$.fragment, local);
8376
8580
  transition_in(if_block1);
8581
+ transition_in(if_block2);
8377
8582
  transition_in(strokewidth0.$$.fragment, local);
8378
8583
  transition_in(strokecolor0.$$.fragment, local);
8379
- transition_in(strokecolor1.$$.fragment, local);
8584
+ transition_in(textcolor.$$.fragment, local);
8380
8585
  transition_in(shapes2.$$.fragment, local);
8381
8586
  transition_in(strokewidth1.$$.fragment, local);
8382
- transition_in(strokecolor2.$$.fragment, local);
8587
+ transition_in(strokecolor1.$$.fragment, local);
8383
8588
  current = true;
8384
8589
  },
8385
8590
  o(local) {
@@ -8391,14 +8596,14 @@ function create_fragment54(ctx) {
8391
8596
  transition_out(button4.$$.fragment, local);
8392
8597
  transition_out(button5.$$.fragment, local);
8393
8598
  transition_out(button6.$$.fragment, local);
8394
- transition_out(button7.$$.fragment, local);
8395
8599
  transition_out(if_block1);
8600
+ transition_out(if_block2);
8396
8601
  transition_out(strokewidth0.$$.fragment, local);
8397
8602
  transition_out(strokecolor0.$$.fragment, local);
8398
- transition_out(strokecolor1.$$.fragment, local);
8603
+ transition_out(textcolor.$$.fragment, local);
8399
8604
  transition_out(shapes2.$$.fragment, local);
8400
8605
  transition_out(strokewidth1.$$.fragment, local);
8401
- transition_out(strokecolor2.$$.fragment, local);
8606
+ transition_out(strokecolor1.$$.fragment, local);
8402
8607
  current = false;
8403
8608
  },
8404
8609
  d(detaching) {
@@ -8415,33 +8620,34 @@ function create_fragment54(ctx) {
8415
8620
  destroy_component(button4);
8416
8621
  destroy_component(button5);
8417
8622
  destroy_component(button6);
8418
- destroy_component(button7);
8623
+ if (if_block1)
8624
+ if_block1.d();
8419
8625
  if (detaching)
8420
8626
  detach(t8);
8421
- if (if_block1)
8422
- if_block1.d(detaching);
8627
+ if (if_block2)
8628
+ if_block2.d(detaching);
8423
8629
  if (detaching)
8424
8630
  detach(t9);
8425
8631
  if (detaching)
8426
8632
  detach(div8);
8427
8633
  destroy_component(strokewidth0);
8428
8634
  destroy_component(strokecolor0);
8429
- ctx[34](null);
8430
- destroy_component(strokecolor1);
8431
8635
  ctx[35](null);
8636
+ destroy_component(textcolor);
8637
+ ctx[36](null);
8432
8638
  destroy_component(shapes2);
8433
8639
  destroy_component(strokewidth1);
8434
- destroy_component(strokecolor2);
8435
- ctx[36](null);
8436
- destroy_each(each_blocks, detaching);
8640
+ destroy_component(strokecolor1);
8437
8641
  ctx[37](null);
8642
+ destroy_each(each_blocks, detaching);
8643
+ ctx[38](null);
8438
8644
  mounted = false;
8439
8645
  run_all(dispose);
8440
8646
  }
8441
8647
  };
8442
8648
  }
8443
8649
  var name5 = "fastboard-toolbar";
8444
- function instance54($$self, $$props, $$invalidate) {
8650
+ function instance55($$self, $$props, $$invalidate) {
8445
8651
  let t;
8446
8652
  let hotkeys;
8447
8653
  let c;
@@ -8451,11 +8657,11 @@ function instance54($$self, $$props, $$invalidate) {
8451
8657
  let status;
8452
8658
  let max_scroll;
8453
8659
  let $top;
8454
- let $scroll_height, $$unsubscribe_scroll_height = noop, $$subscribe_scroll_height = () => ($$unsubscribe_scroll_height(), $$unsubscribe_scroll_height = subscribe(scroll_height, ($$value) => $$invalidate(32, $scroll_height = $$value)), scroll_height);
8455
- let $memberState, $$unsubscribe_memberState = noop, $$subscribe_memberState = () => ($$unsubscribe_memberState(), $$unsubscribe_memberState = subscribe(memberState, ($$value) => $$invalidate(33, $memberState = $$value)), memberState);
8660
+ let $scroll_height, $$unsubscribe_scroll_height = noop, $$subscribe_scroll_height = () => ($$unsubscribe_scroll_height(), $$unsubscribe_scroll_height = subscribe(scroll_height, ($$value) => $$invalidate(33, $scroll_height = $$value)), scroll_height);
8661
+ let $memberState, $$unsubscribe_memberState = noop, $$subscribe_memberState = () => ($$unsubscribe_memberState(), $$unsubscribe_memberState = subscribe(memberState, ($$value) => $$invalidate(34, $memberState = $$value)), memberState);
8456
8662
  let $apps;
8457
- let $status, $$unsubscribe_status = noop, $$subscribe_status = () => ($$unsubscribe_status(), $$unsubscribe_status = subscribe(status, ($$value) => $$invalidate(19, $status = $$value)), status);
8458
- component_subscribe($$self, apps, ($$value) => $$invalidate(18, $apps = $$value));
8663
+ let $status, $$unsubscribe_status = noop, $$subscribe_status = () => ($$unsubscribe_status(), $$unsubscribe_status = subscribe(status, ($$value) => $$invalidate(20, $status = $$value)), status);
8664
+ component_subscribe($$self, apps, ($$value) => $$invalidate(19, $apps = $$value));
8459
8665
  $$self.$$.on_destroy.push(() => $$unsubscribe_scroll_height());
8460
8666
  $$self.$$.on_destroy.push(() => $$unsubscribe_memberState());
8461
8667
  $$self.$$.on_destroy.push(() => $$unsubscribe_status());
@@ -8467,6 +8673,7 @@ function instance54($$self, $$props, $$invalidate) {
8467
8673
  $$subscribe_scroll_height();
8468
8674
  let { computed_height = 0 } = $$props;
8469
8675
  let { scrollable = false } = $$props;
8676
+ let { hide_apps = false } = $$props;
8470
8677
  let last_shape = "rectangle";
8471
8678
  let pencil_panel;
8472
8679
  let text_panel;
@@ -8474,7 +8681,7 @@ function instance54($$self, $$props, $$invalidate) {
8474
8681
  let apps_panel;
8475
8682
  let btn_props;
8476
8683
  let top = writable(0);
8477
- component_subscribe($$self, top, (value) => $$invalidate(39, $top = value));
8684
+ component_subscribe($$self, top, (value) => $$invalidate(40, $top = value));
8478
8685
  function scroll_up() {
8479
8686
  set_store_value(top, $top = clamp($top - 32 - 4, 0, max_scroll), $top);
8480
8687
  }
@@ -8509,25 +8716,25 @@ function instance54($$self, $$props, $$invalidate) {
8509
8716
  function div2_binding($$value) {
8510
8717
  binding_callbacks[$$value ? "unshift" : "push"](() => {
8511
8718
  pencil_panel = $$value;
8512
- $$invalidate(10, pencil_panel);
8719
+ $$invalidate(11, pencil_panel);
8513
8720
  });
8514
8721
  }
8515
8722
  function div3_binding($$value) {
8516
8723
  binding_callbacks[$$value ? "unshift" : "push"](() => {
8517
8724
  text_panel = $$value;
8518
- $$invalidate(11, text_panel);
8725
+ $$invalidate(12, text_panel);
8519
8726
  });
8520
8727
  }
8521
8728
  function div6_binding($$value) {
8522
8729
  binding_callbacks[$$value ? "unshift" : "push"](() => {
8523
8730
  shapes_panel = $$value;
8524
- $$invalidate(12, shapes_panel);
8731
+ $$invalidate(13, shapes_panel);
8525
8732
  });
8526
8733
  }
8527
8734
  function div7_binding($$value) {
8528
8735
  binding_callbacks[$$value ? "unshift" : "push"](() => {
8529
8736
  apps_panel = $$value;
8530
- $$invalidate(13, apps_panel);
8737
+ $$invalidate(14, apps_panel);
8531
8738
  });
8532
8739
  }
8533
8740
  $$self.$$set = ($$props2) => {
@@ -8542,14 +8749,16 @@ function instance54($$self, $$props, $$invalidate) {
8542
8749
  if ("scroll_height" in $$props2)
8543
8750
  $$subscribe_scroll_height($$invalidate(4, scroll_height = $$props2.scroll_height));
8544
8751
  if ("computed_height" in $$props2)
8545
- $$invalidate(30, computed_height = $$props2.computed_height);
8752
+ $$invalidate(31, computed_height = $$props2.computed_height);
8546
8753
  if ("scrollable" in $$props2)
8547
8754
  $$invalidate(5, scrollable = $$props2.scrollable);
8755
+ if ("hide_apps" in $$props2)
8756
+ $$invalidate(6, hide_apps = $$props2.hide_apps);
8548
8757
  };
8549
8758
  $$self.$$.update = () => {
8550
8759
  if ($$self.$$.dirty[0] & 10) {
8551
8760
  $:
8552
- $$invalidate(14, btn_props = {
8761
+ $$invalidate(15, btn_props = {
8553
8762
  name: name5,
8554
8763
  theme,
8555
8764
  disabled,
@@ -8558,15 +8767,15 @@ function instance54($$self, $$props, $$invalidate) {
8558
8767
  }
8559
8768
  if ($$self.$$.dirty[0] & 4) {
8560
8769
  $:
8561
- $$invalidate(8, t = i18n4[language]);
8770
+ $$invalidate(9, t = i18n4[language]);
8562
8771
  }
8563
8772
  if ($$self.$$.dirty[0] & 1) {
8564
8773
  $:
8565
- $$invalidate(31, hotkeys = app == null ? void 0 : app.hotKeys);
8774
+ $$invalidate(32, hotkeys = app == null ? void 0 : app.hotKeys);
8566
8775
  }
8567
- if ($$self.$$.dirty[0] & 256 | $$self.$$.dirty[1] & 1) {
8776
+ if ($$self.$$.dirty[0] & 512 | $$self.$$.dirty[1] & 2) {
8568
8777
  $:
8569
- $$invalidate(17, c = {
8778
+ $$invalidate(18, c = {
8570
8779
  clicker: tooltip(t.clicker, hotkeys == null ? void 0 : hotkeys.changeToClick),
8571
8780
  selector: tooltip(t.selector, hotkeys == null ? void 0 : hotkeys.changeToSelector),
8572
8781
  pencil: tooltip(t.pencil, hotkeys == null ? void 0 : hotkeys.changeToPencil),
@@ -8576,29 +8785,29 @@ function instance54($$self, $$props, $$invalidate) {
8576
8785
  }
8577
8786
  if ($$self.$$.dirty[0] & 1) {
8578
8787
  $:
8579
- $$subscribe_memberState($$invalidate(16, memberState = app == null ? void 0 : app.memberState));
8788
+ $$subscribe_memberState($$invalidate(17, memberState = app == null ? void 0 : app.memberState));
8580
8789
  }
8581
- if ($$self.$$.dirty[1] & 4) {
8790
+ if ($$self.$$.dirty[1] & 8) {
8582
8791
  $:
8583
- $$invalidate(7, appliance = $memberState == null ? void 0 : $memberState.currentApplianceName);
8792
+ $$invalidate(8, appliance = $memberState == null ? void 0 : $memberState.currentApplianceName);
8584
8793
  }
8585
- if ($$self.$$.dirty[1] & 4) {
8794
+ if ($$self.$$.dirty[1] & 8) {
8586
8795
  $:
8587
- $$invalidate(6, shape = $memberState == null ? void 0 : $memberState.shapeType);
8796
+ $$invalidate(7, shape = $memberState == null ? void 0 : $memberState.shapeType);
8588
8797
  }
8589
8798
  if ($$self.$$.dirty[0] & 1) {
8590
8799
  $:
8591
- $$subscribe_status($$invalidate(15, status = app == null ? void 0 : app.appsStatus));
8800
+ $$subscribe_status($$invalidate(16, status = app == null ? void 0 : app.appsStatus));
8592
8801
  }
8593
- if ($$self.$$.dirty[0] & 192) {
8802
+ if ($$self.$$.dirty[0] & 384) {
8594
8803
  $:
8595
8804
  if (applianceShapes.includes(appliance)) {
8596
- $$invalidate(9, last_shape = appliance);
8805
+ $$invalidate(10, last_shape = appliance);
8597
8806
  } else if (shape) {
8598
- $$invalidate(9, last_shape = shape);
8807
+ $$invalidate(10, last_shape = shape);
8599
8808
  }
8600
8809
  }
8601
- if ($$self.$$.dirty[0] & 1073741856 | $$self.$$.dirty[1] & 2) {
8810
+ if ($$self.$$.dirty[0] & 32 | $$self.$$.dirty[1] & 5) {
8602
8811
  $:
8603
8812
  max_scroll = scrollable ? $scroll_height + (32 + 8) * 2 - computed_height : 0;
8604
8813
  }
@@ -8610,6 +8819,7 @@ function instance54($$self, $$props, $$invalidate) {
8610
8819
  disabled,
8611
8820
  scroll_height,
8612
8821
  scrollable,
8822
+ hide_apps,
8613
8823
  shape,
8614
8824
  appliance,
8615
8825
  t,
@@ -8647,14 +8857,15 @@ function instance54($$self, $$props, $$invalidate) {
8647
8857
  var Contents = class extends SvelteComponent {
8648
8858
  constructor(options) {
8649
8859
  super();
8650
- init(this, options, instance54, create_fragment54, safe_not_equal, {
8860
+ init(this, options, instance55, create_fragment55, safe_not_equal, {
8651
8861
  app: 0,
8652
8862
  theme: 1,
8653
8863
  language: 2,
8654
8864
  disabled: 3,
8655
8865
  scroll_height: 4,
8656
- computed_height: 30,
8657
- scrollable: 5
8866
+ computed_height: 31,
8867
+ scrollable: 5,
8868
+ hide_apps: 6
8658
8869
  }, null, [-1, -1]);
8659
8870
  }
8660
8871
  };
@@ -8721,7 +8932,7 @@ function create_if_block7(ctx) {
8721
8932
  }
8722
8933
  };
8723
8934
  }
8724
- function create_fragment55(ctx) {
8935
+ function create_fragment56(ctx) {
8725
8936
  let div1;
8726
8937
  let div0;
8727
8938
  let contents;
@@ -8746,10 +8957,11 @@ function create_fragment55(ctx) {
8746
8957
  app: ctx[0],
8747
8958
  theme: ctx[1],
8748
8959
  language: ctx[2],
8749
- disabled: ctx[6],
8750
- scroll_height: ctx[9],
8751
- computed_height: ctx[5],
8752
- scrollable: ctx[4]
8960
+ disabled: ctx[7],
8961
+ scroll_height: ctx[10],
8962
+ computed_height: ctx[6],
8963
+ scrollable: ctx[5],
8964
+ hide_apps: ctx[4]
8753
8965
  }
8754
8966
  });
8755
8967
  function select_block_type(ctx2, dirty) {
@@ -8773,7 +8985,7 @@ function create_fragment55(ctx) {
8773
8985
  path1 = svg_element("path");
8774
8986
  if_block.c();
8775
8987
  attr(div0, "class", div0_class_value = name6 + "-contents " + ctx[1]);
8776
- set_style(div0, "height", ctx[4] ? ctx[5] + "px" : "auto", false);
8988
+ set_style(div0, "height", ctx[5] ? ctx[6] + "px" : "auto", false);
8777
8989
  attr(input, "type", "checkbox");
8778
8990
  attr(path0, "fill", "#fff");
8779
8991
  attr(path0, "stroke", "none");
@@ -8805,8 +9017,8 @@ function create_fragment55(ctx) {
8805
9017
  current = true;
8806
9018
  if (!mounted) {
8807
9019
  dispose = [
8808
- listen(input, "change", ctx[13]),
8809
- action_destroyer(height_action = height.call(null, div1, ctx[8]))
9020
+ listen(input, "change", ctx[15]),
9021
+ action_destroyer(height_action = height.call(null, div1, ctx[9]))
8810
9022
  ];
8811
9023
  mounted = true;
8812
9024
  }
@@ -8819,18 +9031,20 @@ function create_fragment55(ctx) {
8819
9031
  contents_changes.theme = ctx2[1];
8820
9032
  if (dirty & 4)
8821
9033
  contents_changes.language = ctx2[2];
9034
+ if (dirty & 128)
9035
+ contents_changes.disabled = ctx2[7];
8822
9036
  if (dirty & 64)
8823
- contents_changes.disabled = ctx2[6];
9037
+ contents_changes.computed_height = ctx2[6];
8824
9038
  if (dirty & 32)
8825
- contents_changes.computed_height = ctx2[5];
9039
+ contents_changes.scrollable = ctx2[5];
8826
9040
  if (dirty & 16)
8827
- contents_changes.scrollable = ctx2[4];
9041
+ contents_changes.hide_apps = ctx2[4];
8828
9042
  contents.$set(contents_changes);
8829
9043
  if (!current || dirty & 2 && div0_class_value !== (div0_class_value = name6 + "-contents " + ctx2[1])) {
8830
9044
  attr(div0, "class", div0_class_value);
8831
9045
  }
8832
- if (dirty & 48) {
8833
- set_style(div0, "height", ctx2[4] ? ctx2[5] + "px" : "auto", false);
9046
+ if (dirty & 96) {
9047
+ set_style(div0, "height", ctx2[5] ? ctx2[6] + "px" : "auto", false);
8834
9048
  }
8835
9049
  if (dirty & 8) {
8836
9050
  input.checked = ctx2[3];
@@ -8876,24 +9090,26 @@ function create_fragment55(ctx) {
8876
9090
  };
8877
9091
  }
8878
9092
  var name6 = "fastboard-toolbar";
8879
- function instance55($$self, $$props, $$invalidate) {
9093
+ function instance56($$self, $$props, $$invalidate) {
8880
9094
  let writable2;
8881
9095
  let disabled;
8882
9096
  let computed_height;
8883
9097
  let scrollable;
9098
+ let hide_apps;
8884
9099
  let $container_height;
8885
9100
  let $scroll_height;
8886
- let $writable, $$unsubscribe_writable = noop, $$subscribe_writable = () => ($$unsubscribe_writable(), $$unsubscribe_writable = subscribe(writable2, ($$value) => $$invalidate(12, $writable = $$value)), writable2);
9101
+ let $writable, $$unsubscribe_writable = noop, $$subscribe_writable = () => ($$unsubscribe_writable(), $$unsubscribe_writable = subscribe(writable2, ($$value) => $$invalidate(14, $writable = $$value)), writable2);
8887
9102
  $$self.$$.on_destroy.push(() => $$unsubscribe_writable());
8888
9103
  let { app = null } = $$props;
8889
9104
  let { theme = "light" } = $$props;
8890
9105
  let { language = "en" } = $$props;
9106
+ let { config = {} } = $$props;
8891
9107
  const extra_height = (32 + 4 + 4) * 2;
8892
9108
  let collapsed = false;
8893
9109
  let container_height = writable(0);
8894
- component_subscribe($$self, container_height, (value) => $$invalidate(10, $container_height = value));
9110
+ component_subscribe($$self, container_height, (value) => $$invalidate(12, $container_height = value));
8895
9111
  let scroll_height = writable(0);
8896
- component_subscribe($$self, scroll_height, (value) => $$invalidate(11, $scroll_height = value));
9112
+ component_subscribe($$self, scroll_height, (value) => $$invalidate(13, $scroll_height = value));
8897
9113
  function input_change_handler() {
8898
9114
  collapsed = this.checked;
8899
9115
  $$invalidate(3, collapsed);
@@ -8905,23 +9121,30 @@ function instance55($$self, $$props, $$invalidate) {
8905
9121
  $$invalidate(1, theme = $$props2.theme);
8906
9122
  if ("language" in $$props2)
8907
9123
  $$invalidate(2, language = $$props2.language);
9124
+ if ("config" in $$props2)
9125
+ $$invalidate(11, config = $$props2.config);
8908
9126
  };
8909
9127
  $$self.$$.update = () => {
9128
+ var _a;
8910
9129
  if ($$self.$$.dirty & 1) {
8911
9130
  $:
8912
- $$subscribe_writable($$invalidate(7, writable2 = app == null ? void 0 : app.writable));
9131
+ $$subscribe_writable($$invalidate(8, writable2 = app == null ? void 0 : app.writable));
8913
9132
  }
8914
- if ($$self.$$.dirty & 4096) {
9133
+ if ($$self.$$.dirty & 16384) {
9134
+ $:
9135
+ $$invalidate(7, disabled = !$writable);
9136
+ }
9137
+ if ($$self.$$.dirty & 12288) {
8915
9138
  $:
8916
- $$invalidate(6, disabled = !$writable);
9139
+ $$invalidate(6, computed_height = clamp($container_height, extra_height, $scroll_height + extra_height));
8917
9140
  }
8918
- if ($$self.$$.dirty & 3072) {
9141
+ if ($$self.$$.dirty & 12288) {
8919
9142
  $:
8920
- $$invalidate(5, computed_height = clamp($container_height, extra_height, $scroll_height + extra_height));
9143
+ $$invalidate(5, scrollable = $scroll_height + extra_height > $container_height);
8921
9144
  }
8922
- if ($$self.$$.dirty & 3072) {
9145
+ if ($$self.$$.dirty & 2048) {
8923
9146
  $:
8924
- $$invalidate(4, scrollable = $scroll_height + extra_height > $container_height);
9147
+ $$invalidate(4, hide_apps = ((_a = config.apps) == null ? void 0 : _a.enable) === false);
8925
9148
  }
8926
9149
  };
8927
9150
  return [
@@ -8929,12 +9152,14 @@ function instance55($$self, $$props, $$invalidate) {
8929
9152
  theme,
8930
9153
  language,
8931
9154
  collapsed,
9155
+ hide_apps,
8932
9156
  scrollable,
8933
9157
  computed_height,
8934
9158
  disabled,
8935
9159
  writable2,
8936
9160
  container_height,
8937
9161
  scroll_height,
9162
+ config,
8938
9163
  $container_height,
8939
9164
  $scroll_height,
8940
9165
  $writable,
@@ -8944,13 +9169,18 @@ function instance55($$self, $$props, $$invalidate) {
8944
9169
  var Toolbar = class extends SvelteComponent {
8945
9170
  constructor(options) {
8946
9171
  super();
8947
- init(this, options, instance55, create_fragment55, safe_not_equal, { app: 0, theme: 1, language: 2 });
9172
+ init(this, options, instance56, create_fragment56, safe_not_equal, {
9173
+ app: 0,
9174
+ theme: 1,
9175
+ language: 2,
9176
+ config: 11
9177
+ });
8948
9178
  }
8949
9179
  };
8950
9180
  var Toolbar_default = Toolbar;
8951
9181
 
8952
9182
  // src/components/PlayerControl/PlayerControl.svelte
8953
- function get_each_context4(ctx, list, i) {
9183
+ function get_each_context5(ctx, list, i) {
8954
9184
  const child_ctx = ctx.slice();
8955
9185
  child_ctx[25] = list[i];
8956
9186
  return child_ctx;
@@ -9431,7 +9661,7 @@ function create_default_slot5(ctx) {
9431
9661
  return {
9432
9662
  c() {
9433
9663
  t0 = text(t0_value);
9434
- t1 = text("x\n ");
9664
+ t1 = text("x\r\n ");
9435
9665
  },
9436
9666
  m(target, anchor) {
9437
9667
  insert(target, t0, anchor);
@@ -9446,7 +9676,7 @@ function create_default_slot5(ctx) {
9446
9676
  }
9447
9677
  };
9448
9678
  }
9449
- function create_each_block4(key_1, ctx) {
9679
+ function create_each_block5(key_1, ctx) {
9450
9680
  let first;
9451
9681
  let button;
9452
9682
  let current;
@@ -9508,7 +9738,7 @@ function create_each_block4(key_1, ctx) {
9508
9738
  }
9509
9739
  };
9510
9740
  }
9511
- function create_fragment56(ctx) {
9741
+ function create_fragment57(ctx) {
9512
9742
  let div0;
9513
9743
  let button0;
9514
9744
  let t0;
@@ -9561,9 +9791,9 @@ function create_fragment56(ctx) {
9561
9791
  let each_value = speeds;
9562
9792
  const get_key = (ctx2) => ctx2[25];
9563
9793
  for (let i = 0; i < each_value.length; i += 1) {
9564
- let child_ctx = get_each_context4(ctx, each_value, i);
9794
+ let child_ctx = get_each_context5(ctx, each_value, i);
9565
9795
  let key = get_key(child_ctx);
9566
- each_1_lookup.set(key, each_blocks[i] = create_each_block4(key, child_ctx));
9796
+ each_1_lookup.set(key, each_blocks[i] = create_each_block5(key, child_ctx));
9567
9797
  }
9568
9798
  return {
9569
9799
  c() {
@@ -9652,7 +9882,7 @@ function create_fragment56(ctx) {
9652
9882
  if (dirty & 294929) {
9653
9883
  each_value = speeds;
9654
9884
  group_outros();
9655
- each_blocks = update_keyed_each(each_blocks, dirty, get_key, 1, ctx2, each_value, each_1_lookup, div1, outro_and_destroy_block, create_each_block4, null, get_each_context4);
9885
+ each_blocks = update_keyed_each(each_blocks, dirty, get_key, 1, ctx2, each_value, each_1_lookup, div1, outro_and_destroy_block, create_each_block5, null, get_each_context5);
9656
9886
  check_outros();
9657
9887
  }
9658
9888
  },
@@ -9712,7 +9942,7 @@ function format(ms) {
9712
9942
  return String(m).padStart(2, "0") + ":" + String(s % 60).padStart(2, "0");
9713
9943
  }
9714
9944
  var name7 = "fastboard-player-control";
9715
- function instance56($$self, $$props, $$invalidate) {
9945
+ function instance57($$self, $$props, $$invalidate) {
9716
9946
  let t;
9717
9947
  let canPlay;
9718
9948
  let disabled;
@@ -9857,7 +10087,7 @@ function instance56($$self, $$props, $$invalidate) {
9857
10087
  var PlayerControl = class extends SvelteComponent {
9858
10088
  constructor(options) {
9859
10089
  super();
9860
- init(this, options, instance56, create_fragment56, safe_not_equal, {
10090
+ init(this, options, instance57, create_fragment57, safe_not_equal, {
9861
10091
  player: 19,
9862
10092
  theme: 0,
9863
10093
  language: 20,
@@ -9868,7 +10098,7 @@ var PlayerControl = class extends SvelteComponent {
9868
10098
  var PlayerControl_default = PlayerControl;
9869
10099
 
9870
10100
  // src/components/Fastboard/ReplayFastboard.svelte
9871
- function create_fragment57(ctx) {
10101
+ function create_fragment58(ctx) {
9872
10102
  let div2;
9873
10103
  let div0;
9874
10104
  let div0_class_value;
@@ -9946,7 +10176,7 @@ function create_fragment57(ctx) {
9946
10176
  };
9947
10177
  }
9948
10178
  var name8 = "fastboard";
9949
- function instance57($$self, $$props, $$invalidate) {
10179
+ function instance58($$self, $$props, $$invalidate) {
9950
10180
  let { player = null } = $$props;
9951
10181
  let { theme = "light" } = $$props;
9952
10182
  let { language = "en" } = $$props;
@@ -10000,7 +10230,7 @@ function instance57($$self, $$props, $$invalidate) {
10000
10230
  var ReplayFastboard = class extends SvelteComponent {
10001
10231
  constructor(options) {
10002
10232
  super();
10003
- init(this, options, instance57, create_fragment57, safe_not_equal, {
10233
+ init(this, options, instance58, create_fragment58, safe_not_equal, {
10004
10234
  player: 0,
10005
10235
  theme: 1,
10006
10236
  language: 2,
@@ -10011,35 +10241,55 @@ var ReplayFastboard = class extends SvelteComponent {
10011
10241
  var ReplayFastboard_default = ReplayFastboard;
10012
10242
 
10013
10243
  // src/components/Fastboard/Fastboard.svelte
10014
- function create_fragment58(ctx) {
10015
- let div4;
10016
- let div0;
10017
- let div0_class_value;
10018
- let t0;
10019
- let div1;
10244
+ function create_if_block_32(ctx) {
10020
10245
  let toolbar;
10021
- let div1_class_value;
10022
- let t1;
10023
- let div2;
10024
- let redoundo;
10025
- let t2;
10026
- let zoomcontrol;
10027
- let div2_class_value;
10028
- let t3;
10029
- let div3;
10030
- let pagecontrol;
10031
- let div3_class_value;
10032
- let div4_class_value;
10033
10246
  let current;
10034
- let mounted;
10035
- let dispose;
10036
10247
  toolbar = new Toolbar_default({
10037
10248
  props: {
10038
10249
  app: ctx[0],
10039
10250
  theme: ctx[1],
10040
- language: ctx[2]
10251
+ language: ctx[2],
10252
+ config: ctx[3].toolbar
10041
10253
  }
10042
10254
  });
10255
+ return {
10256
+ c() {
10257
+ create_component(toolbar.$$.fragment);
10258
+ },
10259
+ m(target, anchor) {
10260
+ mount_component(toolbar, target, anchor);
10261
+ current = true;
10262
+ },
10263
+ p(ctx2, dirty) {
10264
+ const toolbar_changes = {};
10265
+ if (dirty & 1)
10266
+ toolbar_changes.app = ctx2[0];
10267
+ if (dirty & 2)
10268
+ toolbar_changes.theme = ctx2[1];
10269
+ if (dirty & 4)
10270
+ toolbar_changes.language = ctx2[2];
10271
+ if (dirty & 8)
10272
+ toolbar_changes.config = ctx2[3].toolbar;
10273
+ toolbar.$set(toolbar_changes);
10274
+ },
10275
+ i(local) {
10276
+ if (current)
10277
+ return;
10278
+ transition_in(toolbar.$$.fragment, local);
10279
+ current = true;
10280
+ },
10281
+ o(local) {
10282
+ transition_out(toolbar.$$.fragment, local);
10283
+ current = false;
10284
+ },
10285
+ d(detaching) {
10286
+ destroy_component(toolbar, detaching);
10287
+ }
10288
+ };
10289
+ }
10290
+ function create_if_block_23(ctx) {
10291
+ let redoundo;
10292
+ let current;
10043
10293
  redoundo = new RedoUndo_default({
10044
10294
  props: {
10045
10295
  app: ctx[0],
@@ -10047,6 +10297,42 @@ function create_fragment58(ctx) {
10047
10297
  language: ctx[2]
10048
10298
  }
10049
10299
  });
10300
+ return {
10301
+ c() {
10302
+ create_component(redoundo.$$.fragment);
10303
+ },
10304
+ m(target, anchor) {
10305
+ mount_component(redoundo, target, anchor);
10306
+ current = true;
10307
+ },
10308
+ p(ctx2, dirty) {
10309
+ const redoundo_changes = {};
10310
+ if (dirty & 1)
10311
+ redoundo_changes.app = ctx2[0];
10312
+ if (dirty & 2)
10313
+ redoundo_changes.theme = ctx2[1];
10314
+ if (dirty & 4)
10315
+ redoundo_changes.language = ctx2[2];
10316
+ redoundo.$set(redoundo_changes);
10317
+ },
10318
+ i(local) {
10319
+ if (current)
10320
+ return;
10321
+ transition_in(redoundo.$$.fragment, local);
10322
+ current = true;
10323
+ },
10324
+ o(local) {
10325
+ transition_out(redoundo.$$.fragment, local);
10326
+ current = false;
10327
+ },
10328
+ d(detaching) {
10329
+ destroy_component(redoundo, detaching);
10330
+ }
10331
+ };
10332
+ }
10333
+ function create_if_block_14(ctx) {
10334
+ let zoomcontrol;
10335
+ let current;
10050
10336
  zoomcontrol = new ZoomControl_default({
10051
10337
  props: {
10052
10338
  app: ctx[0],
@@ -10054,6 +10340,42 @@ function create_fragment58(ctx) {
10054
10340
  language: ctx[2]
10055
10341
  }
10056
10342
  });
10343
+ return {
10344
+ c() {
10345
+ create_component(zoomcontrol.$$.fragment);
10346
+ },
10347
+ m(target, anchor) {
10348
+ mount_component(zoomcontrol, target, anchor);
10349
+ current = true;
10350
+ },
10351
+ p(ctx2, dirty) {
10352
+ const zoomcontrol_changes = {};
10353
+ if (dirty & 1)
10354
+ zoomcontrol_changes.app = ctx2[0];
10355
+ if (dirty & 2)
10356
+ zoomcontrol_changes.theme = ctx2[1];
10357
+ if (dirty & 4)
10358
+ zoomcontrol_changes.language = ctx2[2];
10359
+ zoomcontrol.$set(zoomcontrol_changes);
10360
+ },
10361
+ i(local) {
10362
+ if (current)
10363
+ return;
10364
+ transition_in(zoomcontrol.$$.fragment, local);
10365
+ current = true;
10366
+ },
10367
+ o(local) {
10368
+ transition_out(zoomcontrol.$$.fragment, local);
10369
+ current = false;
10370
+ },
10371
+ d(detaching) {
10372
+ destroy_component(zoomcontrol, detaching);
10373
+ }
10374
+ };
10375
+ }
10376
+ function create_if_block9(ctx) {
10377
+ let pagecontrol;
10378
+ let current;
10057
10379
  pagecontrol = new PageControl_default({
10058
10380
  props: {
10059
10381
  app: ctx[0],
@@ -10061,46 +10383,110 @@ function create_fragment58(ctx) {
10061
10383
  language: ctx[2]
10062
10384
  }
10063
10385
  });
10386
+ return {
10387
+ c() {
10388
+ create_component(pagecontrol.$$.fragment);
10389
+ },
10390
+ m(target, anchor) {
10391
+ mount_component(pagecontrol, target, anchor);
10392
+ current = true;
10393
+ },
10394
+ p(ctx2, dirty) {
10395
+ const pagecontrol_changes = {};
10396
+ if (dirty & 1)
10397
+ pagecontrol_changes.app = ctx2[0];
10398
+ if (dirty & 2)
10399
+ pagecontrol_changes.theme = ctx2[1];
10400
+ if (dirty & 4)
10401
+ pagecontrol_changes.language = ctx2[2];
10402
+ pagecontrol.$set(pagecontrol_changes);
10403
+ },
10404
+ i(local) {
10405
+ if (current)
10406
+ return;
10407
+ transition_in(pagecontrol.$$.fragment, local);
10408
+ current = true;
10409
+ },
10410
+ o(local) {
10411
+ transition_out(pagecontrol.$$.fragment, local);
10412
+ current = false;
10413
+ },
10414
+ d(detaching) {
10415
+ destroy_component(pagecontrol, detaching);
10416
+ }
10417
+ };
10418
+ }
10419
+ function create_fragment59(ctx) {
10420
+ var _a, _b, _c, _d;
10421
+ let div4;
10422
+ let div0;
10423
+ let div0_class_value;
10424
+ let t0;
10425
+ let div1;
10426
+ let div1_class_value;
10427
+ let t1;
10428
+ let div2;
10429
+ let t2;
10430
+ let div2_class_value;
10431
+ let t3;
10432
+ let div3;
10433
+ let div3_class_value;
10434
+ let div4_class_value;
10435
+ let current;
10436
+ let mounted;
10437
+ let dispose;
10438
+ let if_block0 = ((_a = ctx[3].toolbar) == null ? void 0 : _a.enable) !== false && create_if_block_32(ctx);
10439
+ let if_block1 = ((_b = ctx[3].redo_undo) == null ? void 0 : _b.enable) !== false && create_if_block_23(ctx);
10440
+ let if_block2 = ((_c = ctx[3].zoom_control) == null ? void 0 : _c.enable) !== false && create_if_block_14(ctx);
10441
+ let if_block3 = ((_d = ctx[3].page_control) == null ? void 0 : _d.enable) !== false && create_if_block9(ctx);
10064
10442
  return {
10065
10443
  c() {
10066
10444
  div4 = element("div");
10067
10445
  div0 = element("div");
10068
10446
  t0 = space();
10069
10447
  div1 = element("div");
10070
- create_component(toolbar.$$.fragment);
10448
+ if (if_block0)
10449
+ if_block0.c();
10071
10450
  t1 = space();
10072
10451
  div2 = element("div");
10073
- create_component(redoundo.$$.fragment);
10452
+ if (if_block1)
10453
+ if_block1.c();
10074
10454
  t2 = space();
10075
- create_component(zoomcontrol.$$.fragment);
10455
+ if (if_block2)
10456
+ if_block2.c();
10076
10457
  t3 = space();
10077
10458
  div3 = element("div");
10078
- create_component(pagecontrol.$$.fragment);
10459
+ if (if_block3)
10460
+ if_block3.c();
10079
10461
  attr(div0, "class", div0_class_value = name9 + "-view");
10080
10462
  attr(div1, "class", div1_class_value = name9 + "-left");
10081
- toggle_class(div1, "hidden", !(ctx[4] === "visible" || ctx[4] === "toolbar-only"));
10463
+ toggle_class(div1, "hidden", !(ctx[5] === "visible" || ctx[5] === "toolbar-only"));
10082
10464
  attr(div2, "class", div2_class_value = name9 + "-bottom-left");
10083
- toggle_class(div2, "hidden", ctx[4] !== "visible");
10465
+ toggle_class(div2, "hidden", ctx[5] !== "visible");
10084
10466
  attr(div3, "class", div3_class_value = name9 + "-bottom-right");
10085
- toggle_class(div3, "hidden", ctx[4] !== "visible");
10467
+ toggle_class(div3, "hidden", ctx[5] !== "visible");
10086
10468
  attr(div4, "class", div4_class_value = name9 + "-root");
10087
10469
  toggle_class(div4, "loading", !ctx[0]);
10088
10470
  },
10089
10471
  m(target, anchor) {
10090
10472
  insert(target, div4, anchor);
10091
10473
  append(div4, div0);
10092
- ctx[12](div0);
10474
+ ctx[13](div0);
10093
10475
  append(div4, t0);
10094
10476
  append(div4, div1);
10095
- mount_component(toolbar, div1, null);
10477
+ if (if_block0)
10478
+ if_block0.m(div1, null);
10096
10479
  append(div4, t1);
10097
10480
  append(div4, div2);
10098
- mount_component(redoundo, div2, null);
10481
+ if (if_block1)
10482
+ if_block1.m(div2, null);
10099
10483
  append(div2, t2);
10100
- mount_component(zoomcontrol, div2, null);
10484
+ if (if_block2)
10485
+ if_block2.m(div2, null);
10101
10486
  append(div4, t3);
10102
10487
  append(div4, div3);
10103
- mount_component(pagecontrol, div3, null);
10488
+ if (if_block3)
10489
+ if_block3.m(div3, null);
10104
10490
  current = true;
10105
10491
  if (!mounted) {
10106
10492
  dispose = listen(div0, "touchstart", tippy_hide_all, true);
@@ -10108,46 +10494,91 @@ function create_fragment58(ctx) {
10108
10494
  }
10109
10495
  },
10110
10496
  p(ctx2, [dirty]) {
10111
- const toolbar_changes = {};
10112
- if (dirty & 1)
10113
- toolbar_changes.app = ctx2[0];
10114
- if (dirty & 2)
10115
- toolbar_changes.theme = ctx2[1];
10116
- if (dirty & 4)
10117
- toolbar_changes.language = ctx2[2];
10118
- toolbar.$set(toolbar_changes);
10119
- if (dirty & 16) {
10120
- toggle_class(div1, "hidden", !(ctx2[4] === "visible" || ctx2[4] === "toolbar-only"));
10497
+ var _a2, _b2, _c2, _d2;
10498
+ if (((_a2 = ctx2[3].toolbar) == null ? void 0 : _a2.enable) !== false) {
10499
+ if (if_block0) {
10500
+ if_block0.p(ctx2, dirty);
10501
+ if (dirty & 8) {
10502
+ transition_in(if_block0, 1);
10503
+ }
10504
+ } else {
10505
+ if_block0 = create_if_block_32(ctx2);
10506
+ if_block0.c();
10507
+ transition_in(if_block0, 1);
10508
+ if_block0.m(div1, null);
10509
+ }
10510
+ } else if (if_block0) {
10511
+ group_outros();
10512
+ transition_out(if_block0, 1, 1, () => {
10513
+ if_block0 = null;
10514
+ });
10515
+ check_outros();
10121
10516
  }
10122
- const redoundo_changes = {};
10123
- if (dirty & 1)
10124
- redoundo_changes.app = ctx2[0];
10125
- if (dirty & 2)
10126
- redoundo_changes.theme = ctx2[1];
10127
- if (dirty & 4)
10128
- redoundo_changes.language = ctx2[2];
10129
- redoundo.$set(redoundo_changes);
10130
- const zoomcontrol_changes = {};
10131
- if (dirty & 1)
10132
- zoomcontrol_changes.app = ctx2[0];
10133
- if (dirty & 2)
10134
- zoomcontrol_changes.theme = ctx2[1];
10135
- if (dirty & 4)
10136
- zoomcontrol_changes.language = ctx2[2];
10137
- zoomcontrol.$set(zoomcontrol_changes);
10138
- if (dirty & 16) {
10139
- toggle_class(div2, "hidden", ctx2[4] !== "visible");
10517
+ if (dirty & 32) {
10518
+ toggle_class(div1, "hidden", !(ctx2[5] === "visible" || ctx2[5] === "toolbar-only"));
10140
10519
  }
10141
- const pagecontrol_changes = {};
10142
- if (dirty & 1)
10143
- pagecontrol_changes.app = ctx2[0];
10144
- if (dirty & 2)
10145
- pagecontrol_changes.theme = ctx2[1];
10146
- if (dirty & 4)
10147
- pagecontrol_changes.language = ctx2[2];
10148
- pagecontrol.$set(pagecontrol_changes);
10149
- if (dirty & 16) {
10150
- toggle_class(div3, "hidden", ctx2[4] !== "visible");
10520
+ if (((_b2 = ctx2[3].redo_undo) == null ? void 0 : _b2.enable) !== false) {
10521
+ if (if_block1) {
10522
+ if_block1.p(ctx2, dirty);
10523
+ if (dirty & 8) {
10524
+ transition_in(if_block1, 1);
10525
+ }
10526
+ } else {
10527
+ if_block1 = create_if_block_23(ctx2);
10528
+ if_block1.c();
10529
+ transition_in(if_block1, 1);
10530
+ if_block1.m(div2, t2);
10531
+ }
10532
+ } else if (if_block1) {
10533
+ group_outros();
10534
+ transition_out(if_block1, 1, 1, () => {
10535
+ if_block1 = null;
10536
+ });
10537
+ check_outros();
10538
+ }
10539
+ if (((_c2 = ctx2[3].zoom_control) == null ? void 0 : _c2.enable) !== false) {
10540
+ if (if_block2) {
10541
+ if_block2.p(ctx2, dirty);
10542
+ if (dirty & 8) {
10543
+ transition_in(if_block2, 1);
10544
+ }
10545
+ } else {
10546
+ if_block2 = create_if_block_14(ctx2);
10547
+ if_block2.c();
10548
+ transition_in(if_block2, 1);
10549
+ if_block2.m(div2, null);
10550
+ }
10551
+ } else if (if_block2) {
10552
+ group_outros();
10553
+ transition_out(if_block2, 1, 1, () => {
10554
+ if_block2 = null;
10555
+ });
10556
+ check_outros();
10557
+ }
10558
+ if (dirty & 32) {
10559
+ toggle_class(div2, "hidden", ctx2[5] !== "visible");
10560
+ }
10561
+ if (((_d2 = ctx2[3].page_control) == null ? void 0 : _d2.enable) !== false) {
10562
+ if (if_block3) {
10563
+ if_block3.p(ctx2, dirty);
10564
+ if (dirty & 8) {
10565
+ transition_in(if_block3, 1);
10566
+ }
10567
+ } else {
10568
+ if_block3 = create_if_block9(ctx2);
10569
+ if_block3.c();
10570
+ transition_in(if_block3, 1);
10571
+ if_block3.m(div3, null);
10572
+ }
10573
+ } else if (if_block3) {
10574
+ group_outros();
10575
+ transition_out(if_block3, 1, 1, () => {
10576
+ if_block3 = null;
10577
+ });
10578
+ check_outros();
10579
+ }
10580
+ if (dirty & 32) {
10581
+ toggle_class(div3, "hidden", ctx2[5] !== "visible");
10151
10582
  }
10152
10583
  if (dirty & 1) {
10153
10584
  toggle_class(div4, "loading", !ctx2[0]);
@@ -10156,40 +10587,44 @@ function create_fragment58(ctx) {
10156
10587
  i(local) {
10157
10588
  if (current)
10158
10589
  return;
10159
- transition_in(toolbar.$$.fragment, local);
10160
- transition_in(redoundo.$$.fragment, local);
10161
- transition_in(zoomcontrol.$$.fragment, local);
10162
- transition_in(pagecontrol.$$.fragment, local);
10590
+ transition_in(if_block0);
10591
+ transition_in(if_block1);
10592
+ transition_in(if_block2);
10593
+ transition_in(if_block3);
10163
10594
  current = true;
10164
10595
  },
10165
10596
  o(local) {
10166
- transition_out(toolbar.$$.fragment, local);
10167
- transition_out(redoundo.$$.fragment, local);
10168
- transition_out(zoomcontrol.$$.fragment, local);
10169
- transition_out(pagecontrol.$$.fragment, local);
10597
+ transition_out(if_block0);
10598
+ transition_out(if_block1);
10599
+ transition_out(if_block2);
10600
+ transition_out(if_block3);
10170
10601
  current = false;
10171
10602
  },
10172
10603
  d(detaching) {
10173
10604
  if (detaching)
10174
10605
  detach(div4);
10175
- ctx[12](null);
10176
- destroy_component(toolbar);
10177
- destroy_component(redoundo);
10178
- destroy_component(zoomcontrol);
10179
- destroy_component(pagecontrol);
10606
+ ctx[13](null);
10607
+ if (if_block0)
10608
+ if_block0.d();
10609
+ if (if_block1)
10610
+ if_block1.d();
10611
+ if (if_block2)
10612
+ if_block2.d();
10613
+ if (if_block3)
10614
+ if_block3.d();
10180
10615
  mounted = false;
10181
10616
  dispose();
10182
10617
  }
10183
10618
  };
10184
10619
  }
10185
10620
  var name9 = "fastboard";
10186
- function instance58($$self, $$props, $$invalidate) {
10621
+ function instance59($$self, $$props, $$invalidate) {
10187
10622
  let writable2;
10188
10623
  let boxState;
10189
10624
  let focusedApp;
10190
- let $focusedApp, $$unsubscribe_focusedApp = noop, $$subscribe_focusedApp = () => ($$unsubscribe_focusedApp(), $$unsubscribe_focusedApp = subscribe(focusedApp, ($$value) => $$invalidate(9, $focusedApp = $$value)), focusedApp);
10191
- let $boxState, $$unsubscribe_boxState = noop, $$subscribe_boxState = () => ($$unsubscribe_boxState(), $$unsubscribe_boxState = subscribe(boxState, ($$value) => $$invalidate(10, $boxState = $$value)), boxState);
10192
- let $writable, $$unsubscribe_writable = noop, $$subscribe_writable = () => ($$unsubscribe_writable(), $$unsubscribe_writable = subscribe(writable2, ($$value) => $$invalidate(11, $writable = $$value)), writable2);
10625
+ let $focusedApp, $$unsubscribe_focusedApp = noop, $$subscribe_focusedApp = () => ($$unsubscribe_focusedApp(), $$unsubscribe_focusedApp = subscribe(focusedApp, ($$value) => $$invalidate(10, $focusedApp = $$value)), focusedApp);
10626
+ let $boxState, $$unsubscribe_boxState = noop, $$subscribe_boxState = () => ($$unsubscribe_boxState(), $$unsubscribe_boxState = subscribe(boxState, ($$value) => $$invalidate(11, $boxState = $$value)), boxState);
10627
+ let $writable, $$unsubscribe_writable = noop, $$subscribe_writable = () => ($$unsubscribe_writable(), $$unsubscribe_writable = subscribe(writable2, ($$value) => $$invalidate(12, $writable = $$value)), writable2);
10193
10628
  $$self.$$.on_destroy.push(() => $$unsubscribe_focusedApp());
10194
10629
  $$self.$$.on_destroy.push(() => $$unsubscribe_boxState());
10195
10630
  $$self.$$.on_destroy.push(() => $$unsubscribe_writable());
@@ -10197,6 +10632,7 @@ function instance58($$self, $$props, $$invalidate) {
10197
10632
  let { theme = "light" } = $$props;
10198
10633
  let { language = "en" } = $$props;
10199
10634
  let { containerRef = void 0 } = $$props;
10635
+ let { config = {} } = $$props;
10200
10636
  const AppsShowToolbar = ["DocsViewer", "Slide"];
10201
10637
  let container;
10202
10638
  let layout = "hidden";
@@ -10212,7 +10648,7 @@ function instance58($$self, $$props, $$invalidate) {
10212
10648
  function div0_binding($$value) {
10213
10649
  binding_callbacks[$$value ? "unshift" : "push"](() => {
10214
10650
  container = $$value;
10215
- $$invalidate(3, container);
10651
+ $$invalidate(4, container);
10216
10652
  });
10217
10653
  }
10218
10654
  $$self.$$set = ($$props2) => {
@@ -10223,36 +10659,38 @@ function instance58($$self, $$props, $$invalidate) {
10223
10659
  if ("language" in $$props2)
10224
10660
  $$invalidate(2, language = $$props2.language);
10225
10661
  if ("containerRef" in $$props2)
10226
- $$invalidate(8, containerRef = $$props2.containerRef);
10662
+ $$invalidate(9, containerRef = $$props2.containerRef);
10663
+ if ("config" in $$props2)
10664
+ $$invalidate(3, config = $$props2.config);
10227
10665
  };
10228
10666
  $$self.$$.update = () => {
10229
10667
  if ($$self.$$.dirty & 1) {
10230
10668
  $:
10231
- $$subscribe_writable($$invalidate(7, writable2 = app == null ? void 0 : app.writable));
10669
+ $$subscribe_writable($$invalidate(8, writable2 = app == null ? void 0 : app.writable));
10232
10670
  }
10233
10671
  if ($$self.$$.dirty & 1) {
10234
10672
  $:
10235
- $$subscribe_boxState($$invalidate(6, boxState = app == null ? void 0 : app.boxState));
10673
+ $$subscribe_boxState($$invalidate(7, boxState = app == null ? void 0 : app.boxState));
10236
10674
  }
10237
10675
  if ($$self.$$.dirty & 1) {
10238
10676
  $:
10239
- $$subscribe_focusedApp($$invalidate(5, focusedApp = app == null ? void 0 : app.focusedApp));
10677
+ $$subscribe_focusedApp($$invalidate(6, focusedApp = app == null ? void 0 : app.focusedApp));
10240
10678
  }
10241
- if ($$self.$$.dirty & 3584) {
10679
+ if ($$self.$$.dirty & 7168) {
10242
10680
  $:
10243
10681
  if (!$writable) {
10244
- $$invalidate(4, layout = "hidden");
10682
+ $$invalidate(5, layout = "hidden");
10245
10683
  } else if ($boxState === "maximized") {
10246
10684
  if ($focusedApp && AppsShowToolbar.some((kind) => ($focusedApp || "").includes(kind))) {
10247
- $$invalidate(4, layout = "toolbar-only");
10685
+ $$invalidate(5, layout = "toolbar-only");
10248
10686
  } else {
10249
- $$invalidate(4, layout = "hidden");
10687
+ $$invalidate(5, layout = "hidden");
10250
10688
  }
10251
10689
  } else {
10252
- $$invalidate(4, layout = "visible");
10690
+ $$invalidate(5, layout = "visible");
10253
10691
  }
10254
10692
  }
10255
- if ($$self.$$.dirty & 9) {
10693
+ if ($$self.$$.dirty & 17) {
10256
10694
  $:
10257
10695
  try {
10258
10696
  if (app && container)
@@ -10273,6 +10711,7 @@ function instance58($$self, $$props, $$invalidate) {
10273
10711
  app,
10274
10712
  theme,
10275
10713
  language,
10714
+ config,
10276
10715
  container,
10277
10716
  layout,
10278
10717
  focusedApp,
@@ -10288,11 +10727,12 @@ function instance58($$self, $$props, $$invalidate) {
10288
10727
  var Fastboard = class extends SvelteComponent {
10289
10728
  constructor(options) {
10290
10729
  super();
10291
- init(this, options, instance58, create_fragment58, safe_not_equal, {
10730
+ init(this, options, instance59, create_fragment59, safe_not_equal, {
10292
10731
  app: 0,
10293
10732
  theme: 1,
10294
10733
  language: 2,
10295
- containerRef: 8
10734
+ containerRef: 9,
10735
+ config: 3
10296
10736
  });
10297
10737
  }
10298
10738
  };
@@ -10308,9 +10748,9 @@ function injectStyle(text2) {
10308
10748
  }
10309
10749
  }
10310
10750
 
10311
- // inline-sass-content:./src/style.scss
10312
- var style_default = '.tippy-box[data-animation=fade][data-state=hidden]{opacity:0}[data-tippy-root]{max-width:calc(100vw - 10px)}.tippy-box{position:relative;background-color:#333;color:#fff;border-radius:4px;font-size:14px;line-height:1.4;white-space:normal;outline:0;transition-property:transform,visibility,opacity}.tippy-box[data-placement^=top]>.tippy-arrow{bottom:0}.tippy-box[data-placement^=top]>.tippy-arrow:before{bottom:-7px;left:0;border-width:8px 8px 0;border-top-color:initial;transform-origin:center top}.tippy-box[data-placement^=bottom]>.tippy-arrow{top:0}.tippy-box[data-placement^=bottom]>.tippy-arrow:before{top:-7px;left:0;border-width:0 8px 8px;border-bottom-color:initial;transform-origin:center bottom}.tippy-box[data-placement^=left]>.tippy-arrow{right:0}.tippy-box[data-placement^=left]>.tippy-arrow:before{border-width:8px 0 8px 8px;border-left-color:initial;right:-7px;transform-origin:center left}.tippy-box[data-placement^=right]>.tippy-arrow{left:0}.tippy-box[data-placement^=right]>.tippy-arrow:before{left:-7px;border-width:8px 8px 8px 0;border-right-color:initial;transform-origin:center right}.tippy-box[data-inertia][data-state=visible]{transition-timing-function:cubic-bezier(.54,1.5,.38,1.11)}.tippy-arrow{width:16px;height:16px;color:#333}.tippy-arrow:before{content:"";position:absolute;border-color:transparent;border-style:solid}.tippy-content{position:relative;padding:5px 9px;z-index:1}.tippy-box[data-theme~=light]{color:#26323d;box-shadow:0 0 20px 4px #9aa1b126,0 4px 80px -8px #24282f40,0 4px 4px -2px #5b5e6926;background-color:#fff}.tippy-box[data-theme~=light][data-placement^=top]>.tippy-arrow:before{border-top-color:#fff}.tippy-box[data-theme~=light][data-placement^=bottom]>.tippy-arrow:before{border-bottom-color:#fff}.tippy-box[data-theme~=light][data-placement^=left]>.tippy-arrow:before{border-left-color:#fff}.tippy-box[data-theme~=light][data-placement^=right]>.tippy-arrow:before{border-right-color:#fff}.tippy-box[data-theme~=light]>.tippy-backdrop{background-color:#fff}.tippy-box[data-theme~=light]>.tippy-svg-arrow{fill:#fff}.fastboard-icon.light .fastboard-icon-stroke-color{stroke:var(--fastboard-color, #5d6066)}.fastboard-icon.light .fastboard-icon-fill-color{fill:var(--fastboard-color, #5d6066)}.fastboard-icon.light.is-active .fastboard-icon-stroke-color{stroke:var(--fastboard-active-color, #3381ff)}.fastboard-icon.light.is-active .fastboard-icon-fill-color{fill:var(--fastboard-active-color, #3381ff)}.fastboard-icon.dark .fastboard-icon-stroke-color{stroke:var(--fastboard-color, #7b7e84)}.fastboard-icon.dark .fastboard-icon-fill-color{fill:var(--fastboard-color, #7b7e84)}.fastboard-icon.dark.is-active .fastboard-icon-stroke-color{stroke:var(--fastboard-active-color, #2867cc)}.fastboard-icon.dark.is-active .fastboard-icon-fill-color{fill:var(--fastboard-active-color, #2867cc)}.fastboard-redo-undo{box-sizing:border-box;display:inline-flex;align-items:center;gap:4px;padding:4px;border:1px solid;border-radius:4px;font-size:14px;font-family:system-ui;pointer-events:auto;backdrop-filter:blur(5px);-webkit-backdrop-filter:blur(5px)}.fastboard-redo-undo *{box-sizing:inherit}.fastboard-redo-undo.light{color:var(--fastboard-color, #5d6066);background-color:var(--fastboard-bg-color, rgba(255, 255, 255, .9));border-color:var(--fastboard-border-color, #e5e8f0)}.fastboard-redo-undo.dark{color:var(--fastboard-color, #7b7e84);background-color:var(--fastboard-bg-color, rgba(20, 24, 30, .9));border-color:var(--fastboard-border-color, #383b42)}.fastboard-redo-undo-btn{appearance:none;cursor:pointer;margin:0;border:0;padding:0;width:24px;height:24px;background-color:transparent;border-radius:4px;font-size:0;line-height:1;flex-shrink:0}.fastboard-redo-undo-btn svg,.fastboard-redo-undo-btn img{width:100%;height:100%;pointer-events:none}.fastboard-redo-undo-btn:disabled{opacity:.5;cursor:not-allowed}.fastboard-redo-undo-btn.light:not(:disabled):hover{background-color:var(--fastboard-hover-bg-color, #ebf2ff)}.fastboard-redo-undo-btn.dark:not(:disabled):hover{background-color:var(--fastboard-hover-bg-color, #383b42)}.fastboard-zoom-control{box-sizing:border-box;display:inline-flex;align-items:center;gap:4px;padding:4px;border:1px solid;border-radius:4px;font-size:14px;font-family:system-ui;pointer-events:auto;backdrop-filter:blur(5px);-webkit-backdrop-filter:blur(5px)}.fastboard-zoom-control *{box-sizing:inherit}.fastboard-zoom-control.light{color:var(--fastboard-color, #5d6066);background-color:var(--fastboard-bg-color, rgba(255, 255, 255, .9));border-color:var(--fastboard-border-color, #e5e8f0)}.fastboard-zoom-control.dark{color:var(--fastboard-color, #7b7e84);background-color:var(--fastboard-bg-color, rgba(20, 24, 30, .9));border-color:var(--fastboard-border-color, #383b42)}.fastboard-zoom-control-btn{appearance:none;cursor:pointer;margin:0;border:0;padding:0;width:24px;height:24px;background-color:transparent;border-radius:4px;font-size:0;line-height:1;flex-shrink:0}.fastboard-zoom-control-btn svg,.fastboard-zoom-control-btn img{width:100%;height:100%;pointer-events:none}.fastboard-zoom-control-btn:disabled{opacity:.5;cursor:not-allowed}.fastboard-zoom-control-btn.light:not(:disabled):hover{background-color:var(--fastboard-hover-bg-color, #ebf2ff)}.fastboard-zoom-control-btn.dark:not(:disabled):hover{background-color:var(--fastboard-hover-bg-color, #383b42)}.fastboard-zoom-control-text{font-variant-numeric:tabular-nums}.fastboard-page-control{box-sizing:border-box;display:inline-flex;align-items:center;gap:4px;padding:4px;border:1px solid;border-radius:4px;font-size:14px;font-family:system-ui;pointer-events:auto;backdrop-filter:blur(5px);-webkit-backdrop-filter:blur(5px)}.fastboard-page-control *{box-sizing:inherit}.fastboard-page-control.light{color:var(--fastboard-color, #5d6066);background-color:var(--fastboard-bg-color, rgba(255, 255, 255, .9));border-color:var(--fastboard-border-color, #e5e8f0)}.fastboard-page-control.dark{color:var(--fastboard-color, #7b7e84);background-color:var(--fastboard-bg-color, rgba(20, 24, 30, .9));border-color:var(--fastboard-border-color, #383b42)}.fastboard-page-control-btn{appearance:none;cursor:pointer;margin:0;border:0;padding:0;width:24px;height:24px;background-color:transparent;border-radius:4px;font-size:0;line-height:1;flex-shrink:0}.fastboard-page-control-btn svg,.fastboard-page-control-btn img{width:100%;height:100%;pointer-events:none}.fastboard-page-control-btn:disabled{opacity:.5;cursor:not-allowed}.fastboard-page-control-btn.light:not(:disabled):hover{background-color:var(--fastboard-hover-bg-color, #ebf2ff)}.fastboard-page-control-btn.dark:not(:disabled):hover{background-color:var(--fastboard-hover-bg-color, #383b42)}.fastboard-page-control-text{font-variant-numeric:tabular-nums}.fastboard-player-control{box-sizing:border-box;display:inline-flex;align-items:center;gap:4px;padding:4px;border:1px solid;border-radius:4px;font-size:14px;font-family:system-ui;pointer-events:auto;backdrop-filter:blur(5px);-webkit-backdrop-filter:blur(5px);width:100%}.fastboard-player-control *{box-sizing:inherit}.fastboard-player-control.light{color:var(--fastboard-color, #5d6066);background-color:var(--fastboard-bg-color, rgba(255, 255, 255, .9));border-color:var(--fastboard-border-color, #e5e8f0)}.fastboard-player-control.dark{color:var(--fastboard-color, #7b7e84);background-color:var(--fastboard-bg-color, rgba(20, 24, 30, .9));border-color:var(--fastboard-border-color, #383b42)}.fastboard-player-control-btn{appearance:none;cursor:pointer;margin:0;border:0;padding:0;width:24px;height:24px;background-color:transparent;border-radius:4px;font-size:0;line-height:1;flex-shrink:0;display:inline}.fastboard-player-control-btn svg,.fastboard-player-control-btn img{width:100%;height:100%;pointer-events:none}.fastboard-player-control-btn:disabled{opacity:.5;cursor:not-allowed}.fastboard-player-control-btn.light:not(:disabled):hover{background-color:var(--fastboard-hover-bg-color, #ebf2ff)}.fastboard-player-control-btn.dark:not(:disabled):hover{background-color:var(--fastboard-hover-bg-color, #383b42)}.fastboard-player-control-btn.loading svg,.fastboard-player-control-btn.loading img{animation:fastboard-player-control-rotate .5s linear infinite}@keyframes fastboard-player-control-rotate{to{transform:rotate(360deg)}}.fastboard-player-control-btn.speed{width:auto;padding:4px;text-align:right;font-size:14px;font-variant-numeric:tabular-nums}.fastboard-player-control-btn.is-active.light{color:var(--fastboard-active-color, #3381ff)}.fastboard-player-control-btn.is-active.dark{color:var(--fastboard-active-color, #2867cc)}.fastboard-player-control-speed-text,.fastboard-player-control-progress{font-size:14px;font-variant-numeric:tabular-nums;line-height:16px}.fastboard-player-control-progress{display:inline-flex;align-items:center}.fastboard-player-control-panel.speed{display:flex;flex-direction:column}.fastboard-toolbar{height:100%;display:flex;align-items:center;position:relative;transform:translate(0);transition:transform .5s cubic-bezier(.34,1.56,.64,1);pointer-events:none}.fastboard-toolbar.collapsed{transform:translate(-100%)}.fastboard-toolbar-handler{position:absolute;left:100%;width:17px;font-size:0;border-radius:3px;cursor:pointer;pointer-events:auto}.fastboard-toolbar-handler:focus-within{outline:2px solid -webkit-focus-ring-color}.fastboard-toolbar-handler input[type=checkbox]{position:absolute;top:0;left:0;appearance:none;margin:0;width:100%;height:100%;cursor:pointer;opacity:0;z-index:-1}.fastboard-toolbar-handler svg{opacity:0;transition:opacity .5s 1s;pointer-events:none}.fastboard-toolbar-handler.light .fastboard-toolbar-handler-bg-color{fill:var(--fastboard-bg-color, rgba(255, 255, 255, .9))}.fastboard-toolbar-handler.light .fastboard-toolbar-handler-border-color{stroke:var(--fastboard-border-color, #e5e8f0)}.fastboard-toolbar-handler.light .fastboard-toolbar-handler-image-stroke-color{stroke:var(--fastboard-color, #5d6066)}.fastboard-toolbar-handler.light .fastboard-toolbar-handler-image-fill-color{fill:var(--fastboard-color, #5d6066)}.fastboard-toolbar-handler.dark .fastboard-toolbar-handler-bg-color{fill:var(--fastboard-bg-color, rgba(20, 24, 30, .9))}.fastboard-toolbar-handler.dark .fastboard-toolbar-handler-border-color{stroke:var(--fastboard-border-color, #383b42)}.fastboard-toolbar-handler.dark .fastboard-toolbar-handler-image-stroke-color{stroke:var(--fastboard-color, #7b7e84)}.fastboard-toolbar-handler.dark .fastboard-toolbar-handler-image-fill-color{fill:var(--fastboard-color, #7b7e84)}.fastboard-toolbar:hover .fastboard-toolbar-handler svg,.fastboard-toolbar.collapsed .fastboard-toolbar-handler svg{opacity:1;transition:opacity .2s}.fastboard-toolbar-btn{appearance:none;cursor:pointer;margin:0;border:0;padding:4px;width:32px;height:32px;background-color:transparent;border-radius:4px;font-size:0;line-height:1;flex-shrink:0}.fastboard-toolbar-btn svg,.fastboard-toolbar-btn img{width:100%;height:100%;pointer-events:none}.fastboard-toolbar-btn:disabled{opacity:.5;cursor:not-allowed}.fastboard-toolbar-btn.light:not(:disabled):hover{background-color:var(--fastboard-hover-bg-color, #ebf2ff)}.fastboard-toolbar-btn.dark:not(:disabled):hover{background-color:var(--fastboard-hover-bg-color, #383b42)}.fastboard-slider{box-sizing:border-box;position:relative;width:100%;height:100%;display:flex;align-items:center}.fastboard-slider *{box-sizing:inherit}.fastboard-slider-track{appearance:none;background:transparent;border:0;border-radius:26px;flex:1;display:block;height:19px;margin:0;width:0;min-width:0;padding:0;transition:box-shadow .3s ease;cursor:pointer;touch-action:manipulation}.fastboard-slider-track::-webkit-slider-runnable-track{border:0;border-radius:2.5px;height:5px;transition:box-shadow .3s ease;user-select:none;background-color:#80808040;-webkit-user-select:none;background-image:linear-gradient(to right,currentColor var(--value, 0%),transparent var(--value, 0%))}.fastboard-slider-track::-webkit-slider-thumb{background:#fff;border:0;border-radius:100%;box-shadow:0 1px 1px #23292f26,0 0 0 1px #23292f33;width:13px;height:13px;position:relative;transition:all .2s ease;cursor:grab;appearance:none;margin-top:-4px}.fastboard-slider-track::-moz-range-track{border:0;border-radius:2.5px;height:5px;transition:box-shadow .3s ease;user-select:none;background-color:#80808040;-webkit-user-select:none}.fastboard-slider-track::-moz-range-thumb{appearance:none;background:#fff;border:0;border-radius:100%;box-shadow:0 1px 1px #23292f26,0 0 0 1px #23292f33;width:13px;height:13px;position:relative;transition:all .2s ease;cursor:grab}.fastboard-slider-track::-moz-range-progress{background:currentColor;border-radius:2.5px;height:5px}.fastboard-slider-track::-ms-track{border:0;border-radius:2.5px;height:5px;transition:box-shadow .3s ease;user-select:none;background-color:#80808040;-webkit-user-select:none;color:transparent}.fastboard-slider-track::-ms-thumb{appearance:none;background:#fff;border:0;border-radius:100%;box-shadow:0 1px 1px #23292f26,0 0 0 1px #23292f33;width:13px;height:13px;position:relative;transition:all .2s ease;cursor:grab;margin-top:0}.fastboard-slider-track::-ms-tooltip{display:none}.fastboard-slider-track::-moz-focus-outer{border:0}.fastboard-slider-track.grabbing::-webkit-slider-thumb{cursor:grabbing}.fastboard-slider-track.light{color:var(--fastboard-active-color, #3381ff)}.fastboard-slider-track.dark{color:var(--fastboard-active-color, #2867cc)}.fastboard-toolbar-contents{box-sizing:border-box;display:inline-flex;align-items:center;gap:4px;border:1px solid;border-radius:4px;font-size:14px;font-family:system-ui;pointer-events:auto;backdrop-filter:blur(5px);-webkit-backdrop-filter:blur(5px);padding:2px 0;gap:0;flex-direction:column}.fastboard-toolbar-contents *{box-sizing:inherit}.fastboard-toolbar-contents.light{color:var(--fastboard-color, #5d6066);background-color:var(--fastboard-bg-color, rgba(255, 255, 255, .9));border-color:var(--fastboard-border-color, #e5e8f0)}.fastboard-toolbar-contents.dark{color:var(--fastboard-color, #7b7e84);background-color:var(--fastboard-bg-color, rgba(20, 24, 30, .9));border-color:var(--fastboard-border-color, #383b42)}.fastboard-toolbar-contents>.fastboard-toolbar-btn{margin:2px 4px}.fastboard-toolbar-btn-interactive{position:relative}.fastboard-toolbar-triangle{width:0px;height:0px;border-bottom:4px solid;border-left:4px solid transparent;position:absolute;bottom:0;right:0}.fastboard-toolbar-btn:focus+.fastboard-toolbar-triangle{opacity:0}.fastboard-toolbar-scrollable{padding:2px 4px;overflow:hidden;display:flex;flex-direction:column;gap:4px}.fastboard-toolbar-tooltip{display:inline-flex;align-items:center;gap:4px}.fastboard-toolbar-hotkey{display:inline-flex;margin-right:-4px;width:24px;height:24px;align-items:center;justify-content:center;background-color:#ffffff1a;border-radius:4px}.fastboard-toolbar-panel-wrapper{display:none}.fastboard-toolbar-panel{display:flex;flex-direction:column}.fastboard-toolbar-panel-divider{height:.5px;width:100%;margin:4px 0;background-color:#ffffff26}.fastboard-toolbar-colors,.fastboard-toolbar-shapes{display:grid;align-self:center;grid-template:repeat(2,1fr)/repeat(4,1fr);align-items:center;justify-items:center;gap:4px}.fastboard-toolbar-shape-btn,.fastboard-toolbar-color-btn{width:24px;height:24px;padding:0;display:inline-flex;align-items:center;justify-content:center}.fastboard-toolbar-color-btn{border:1px solid transparent}.fastboard-toolbar-color-btn.light.is-active{border-color:var(--fastboard-active-color, #3381ff)}.fastboard-toolbar-color-btn.dark.is-active{border-color:var(--fastboard-active-color, #2867cc)}.fastboard-toolbar-color-item{display:inline-block;width:16px;height:16px;border-radius:4px;pointer-events:none}.fastboard-toolbar-panel.apps{display:grid;grid-template-columns:repeat(min(var(--n, 3),3),minmax(max-content,1fr));gap:4px}.fastboard-toolbar-app-btn{margin:0;border:0;border-radius:2px;padding:4px 6px;background-color:transparent;display:inline-flex;flex-direction:column;align-items:center;gap:4px;font-size:0}.fastboard-toolbar-app-btn:disabled{opacity:.8}.fastboard-toolbar-app-btn-icon{width:32px;height:32px;pointer-events:none}.fastboard-toolbar-app-btn-text{font-size:14px;line-height:1;max-width:100%;overflow:hidden;text-overflow:ellipsis}.fastboard-toolbar-app-btn.is-loading{cursor:progress}.fastboard-toolbar-app-btn.is-failed{cursor:not-allowed;opacity:.5}.fastboard-toolbar-app-btn:not(:disabled,.is-loading,.is-failed):hover.light{cursor:pointer;background-color:var(--fastboard-hover-bg-color, #ebf2ff)}.fastboard-toolbar-app-btn-text.light{color:var(--fastboard-color, #5d6066)}.fastboard-toolbar-app-btn:not(:disabled,.is-loading,.is-failed):hover.dark{cursor:pointer;background-color:var(--fastboard-hover-bg-color, #383b42)}.fastboard-toolbar-app-btn-text.dark{color:var(--fastboard-color, #7b7e84)}.fastboard-root{position:relative;width:100%;height:100%;overflow:hidden}.fastboard-view{position:absolute;top:0;left:0;width:100%;height:100%}.fastboard-left{display:flex;align-items:center;position:absolute;bottom:62px;top:8px;left:0;z-index:200;pointer-events:none}.fastboard-left .fastboard-toolbar{padding-left:16px}.fastboard-bottom-left,.fastboard-bottom,.fastboard-bottom-right{display:flex;gap:10px;position:absolute;bottom:8px;left:8px;padding:8px;z-index:200;pointer-events:none}.fastboard-bottom-right{left:auto;right:8px}.fastboard-bottom{right:8px}.fastboard-left.hidden *,.fastboard-bottom.hidden *,.fastboard-bottom-left.hidden *,.fastboard-bottom-right.hidden *{opacity:0;pointer-events:none}.fastboard-tip{font-family:inherit;color:#d5d9e0;background-color:#03060d}.fastboard-tip[data-placement^=right]>.tippy-arrow:before{top:4px;border-width:4px;border-right-color:#03060d}.fastboard-tip[data-placement^=top]>.tippy-arrow:before{left:4px;border-width:4px;border-top-color:#03060d}.fastboard-panel .tippy-content{padding:8px}';
10751
+ // inline-sass-content:.\src\style.scss
10752
+ var style_default = '.tippy-box[data-animation=fade][data-state=hidden]{opacity:0}[data-tippy-root]{max-width:calc(100vw - 10px)}.tippy-box{position:relative;background-color:#333;color:#fff;border-radius:4px;font-size:14px;line-height:1.4;white-space:normal;outline:0;transition-property:transform,visibility,opacity}.tippy-box[data-placement^=top]>.tippy-arrow{bottom:0}.tippy-box[data-placement^=top]>.tippy-arrow:before{bottom:-7px;left:0;border-width:8px 8px 0;border-top-color:initial;transform-origin:center top}.tippy-box[data-placement^=bottom]>.tippy-arrow{top:0}.tippy-box[data-placement^=bottom]>.tippy-arrow:before{top:-7px;left:0;border-width:0 8px 8px;border-bottom-color:initial;transform-origin:center bottom}.tippy-box[data-placement^=left]>.tippy-arrow{right:0}.tippy-box[data-placement^=left]>.tippy-arrow:before{border-width:8px 0 8px 8px;border-left-color:initial;right:-7px;transform-origin:center left}.tippy-box[data-placement^=right]>.tippy-arrow{left:0}.tippy-box[data-placement^=right]>.tippy-arrow:before{left:-7px;border-width:8px 8px 8px 0;border-right-color:initial;transform-origin:center right}.tippy-box[data-inertia][data-state=visible]{transition-timing-function:cubic-bezier(.54,1.5,.38,1.11)}.tippy-arrow{width:16px;height:16px;color:#333}.tippy-arrow:before{content:"";position:absolute;border-color:transparent;border-style:solid}.tippy-content{position:relative;padding:5px 9px;z-index:1}.tippy-box[data-theme~=light]{color:#26323d;box-shadow:0 0 20px 4px #9aa1b126,0 4px 80px -8px #24282f40,0 4px 4px -2px #5b5e6926;background-color:#fff}.tippy-box[data-theme~=light][data-placement^=top]>.tippy-arrow:before{border-top-color:#fff}.tippy-box[data-theme~=light][data-placement^=bottom]>.tippy-arrow:before{border-bottom-color:#fff}.tippy-box[data-theme~=light][data-placement^=left]>.tippy-arrow:before{border-left-color:#fff}.tippy-box[data-theme~=light][data-placement^=right]>.tippy-arrow:before{border-right-color:#fff}.tippy-box[data-theme~=light]>.tippy-backdrop{background-color:#fff}.tippy-box[data-theme~=light]>.tippy-svg-arrow{fill:#fff}.fastboard-icon.light .fastboard-icon-stroke-color{stroke:var(--fastboard-color, #5d6066)}.fastboard-icon.light .fastboard-icon-fill-color{fill:var(--fastboard-color, #5d6066)}.fastboard-icon.light.is-active .fastboard-icon-stroke-color{stroke:var(--fastboard-active-color, #3381ff)}.fastboard-icon.light.is-active .fastboard-icon-fill-color{fill:var(--fastboard-active-color, #3381ff)}.fastboard-icon.dark .fastboard-icon-stroke-color{stroke:var(--fastboard-color, #7b7e84)}.fastboard-icon.dark .fastboard-icon-fill-color{fill:var(--fastboard-color, #7b7e84)}.fastboard-icon.dark.is-active .fastboard-icon-stroke-color{stroke:var(--fastboard-active-color, #2867cc)}.fastboard-icon.dark.is-active .fastboard-icon-fill-color{fill:var(--fastboard-active-color, #2867cc)}.fastboard-redo-undo{box-sizing:border-box;display:inline-flex;align-items:center;gap:4px;padding:4px;border:1px solid;border-radius:4px;font-size:14px;font-family:system-ui;pointer-events:auto;backdrop-filter:blur(5px);-webkit-backdrop-filter:blur(5px)}.fastboard-redo-undo *{box-sizing:inherit}.fastboard-redo-undo.light{color:var(--fastboard-color, #5d6066);background-color:var(--fastboard-bg-color, rgba(255, 255, 255, .9));border-color:var(--fastboard-border-color, #e5e8f0)}.fastboard-redo-undo.dark{color:var(--fastboard-color, #7b7e84);background-color:var(--fastboard-bg-color, rgba(20, 24, 30, .9));border-color:var(--fastboard-border-color, #383b42)}.fastboard-redo-undo-btn{appearance:none;cursor:pointer;margin:0;border:0;padding:0;width:24px;height:24px;background-color:#0000;border-radius:4px;font-size:0;line-height:1;flex-shrink:0}.fastboard-redo-undo-btn svg,.fastboard-redo-undo-btn img{width:100%;height:100%;pointer-events:none}.fastboard-redo-undo-btn:disabled{opacity:.5;cursor:not-allowed}.fastboard-redo-undo-btn.light:not(:disabled):hover{background-color:var(--fastboard-hover-bg-color, #ebf2ff)}.fastboard-redo-undo-btn.dark:not(:disabled):hover{background-color:var(--fastboard-hover-bg-color, #383b42)}.fastboard-zoom-control{box-sizing:border-box;display:inline-flex;align-items:center;gap:4px;padding:4px;border:1px solid;border-radius:4px;font-size:14px;font-family:system-ui;pointer-events:auto;backdrop-filter:blur(5px);-webkit-backdrop-filter:blur(5px)}.fastboard-zoom-control *{box-sizing:inherit}.fastboard-zoom-control.light{color:var(--fastboard-color, #5d6066);background-color:var(--fastboard-bg-color, rgba(255, 255, 255, .9));border-color:var(--fastboard-border-color, #e5e8f0)}.fastboard-zoom-control.dark{color:var(--fastboard-color, #7b7e84);background-color:var(--fastboard-bg-color, rgba(20, 24, 30, .9));border-color:var(--fastboard-border-color, #383b42)}.fastboard-zoom-control-btn{appearance:none;cursor:pointer;margin:0;border:0;padding:0;width:24px;height:24px;background-color:#0000;border-radius:4px;font-size:0;line-height:1;flex-shrink:0}.fastboard-zoom-control-btn svg,.fastboard-zoom-control-btn img{width:100%;height:100%;pointer-events:none}.fastboard-zoom-control-btn:disabled{opacity:.5;cursor:not-allowed}.fastboard-zoom-control-btn.light:not(:disabled):hover{background-color:var(--fastboard-hover-bg-color, #ebf2ff)}.fastboard-zoom-control-btn.dark:not(:disabled):hover{background-color:var(--fastboard-hover-bg-color, #383b42)}.fastboard-zoom-control-text{font-variant-numeric:tabular-nums}.fastboard-page-control{box-sizing:border-box;display:inline-flex;align-items:center;gap:4px;padding:4px;border:1px solid;border-radius:4px;font-size:14px;font-family:system-ui;pointer-events:auto;backdrop-filter:blur(5px);-webkit-backdrop-filter:blur(5px)}.fastboard-page-control *{box-sizing:inherit}.fastboard-page-control.light{color:var(--fastboard-color, #5d6066);background-color:var(--fastboard-bg-color, rgba(255, 255, 255, .9));border-color:var(--fastboard-border-color, #e5e8f0)}.fastboard-page-control.dark{color:var(--fastboard-color, #7b7e84);background-color:var(--fastboard-bg-color, rgba(20, 24, 30, .9));border-color:var(--fastboard-border-color, #383b42)}.fastboard-page-control-btn{appearance:none;cursor:pointer;margin:0;border:0;padding:0;width:24px;height:24px;background-color:#0000;border-radius:4px;font-size:0;line-height:1;flex-shrink:0}.fastboard-page-control-btn svg,.fastboard-page-control-btn img{width:100%;height:100%;pointer-events:none}.fastboard-page-control-btn:disabled{opacity:.5;cursor:not-allowed}.fastboard-page-control-btn.light:not(:disabled):hover{background-color:var(--fastboard-hover-bg-color, #ebf2ff)}.fastboard-page-control-btn.dark:not(:disabled):hover{background-color:var(--fastboard-hover-bg-color, #383b42)}.fastboard-page-control-text{font-variant-numeric:tabular-nums}.fastboard-player-control{box-sizing:border-box;display:inline-flex;align-items:center;gap:4px;padding:4px;border:1px solid;border-radius:4px;font-size:14px;font-family:system-ui;pointer-events:auto;backdrop-filter:blur(5px);-webkit-backdrop-filter:blur(5px);width:100%}.fastboard-player-control *{box-sizing:inherit}.fastboard-player-control.light{color:var(--fastboard-color, #5d6066);background-color:var(--fastboard-bg-color, rgba(255, 255, 255, .9));border-color:var(--fastboard-border-color, #e5e8f0)}.fastboard-player-control.dark{color:var(--fastboard-color, #7b7e84);background-color:var(--fastboard-bg-color, rgba(20, 24, 30, .9));border-color:var(--fastboard-border-color, #383b42)}.fastboard-player-control-btn{appearance:none;cursor:pointer;margin:0;border:0;padding:0;width:24px;height:24px;background-color:#0000;border-radius:4px;font-size:0;line-height:1;flex-shrink:0;display:inline}.fastboard-player-control-btn svg,.fastboard-player-control-btn img{width:100%;height:100%;pointer-events:none}.fastboard-player-control-btn:disabled{opacity:.5;cursor:not-allowed}.fastboard-player-control-btn.light:not(:disabled):hover{background-color:var(--fastboard-hover-bg-color, #ebf2ff)}.fastboard-player-control-btn.dark:not(:disabled):hover{background-color:var(--fastboard-hover-bg-color, #383b42)}.fastboard-player-control-btn.loading svg,.fastboard-player-control-btn.loading img{animation:fastboard-player-control-rotate .5s linear infinite}@keyframes fastboard-player-control-rotate{to{transform:rotate(360deg)}}.fastboard-player-control-btn.speed{width:auto;padding:4px;text-align:right;font-size:14px;font-variant-numeric:tabular-nums}.fastboard-player-control-btn.is-active.light{color:var(--fastboard-active-color, #3381ff)}.fastboard-player-control-btn.is-active.dark{color:var(--fastboard-active-color, #2867cc)}.fastboard-player-control-speed-text,.fastboard-player-control-progress{font-size:14px;font-variant-numeric:tabular-nums;line-height:16px}.fastboard-player-control-progress{display:inline-flex;align-items:center}.fastboard-player-control-panel.speed{display:flex;flex-direction:column}.fastboard-toolbar{height:100%;display:flex;align-items:center;position:relative;transform:translate(0);transition:transform .5s cubic-bezier(.34,1.56,.64,1);pointer-events:none}.fastboard-toolbar.collapsed{transform:translate(-100%)}.fastboard-toolbar-handler{position:absolute;left:100%;width:17px;font-size:0;border-radius:3px;cursor:pointer;pointer-events:auto}.fastboard-toolbar-handler:focus-within{outline:2px solid -webkit-focus-ring-color}.fastboard-toolbar-handler input[type=checkbox]{position:absolute;top:0;left:0;appearance:none;margin:0;width:100%;height:100%;cursor:pointer;opacity:0;z-index:-1}.fastboard-toolbar-handler svg{opacity:0;transition:opacity .5s 1s;pointer-events:none}.fastboard-toolbar-handler.light .fastboard-toolbar-handler-bg-color{fill:var(--fastboard-bg-color, rgba(255, 255, 255, .9))}.fastboard-toolbar-handler.light .fastboard-toolbar-handler-border-color{stroke:var(--fastboard-border-color, #e5e8f0)}.fastboard-toolbar-handler.light .fastboard-toolbar-handler-image-stroke-color{stroke:var(--fastboard-color, #5d6066)}.fastboard-toolbar-handler.light .fastboard-toolbar-handler-image-fill-color{fill:var(--fastboard-color, #5d6066)}.fastboard-toolbar-handler.dark .fastboard-toolbar-handler-bg-color{fill:var(--fastboard-bg-color, rgba(20, 24, 30, .9))}.fastboard-toolbar-handler.dark .fastboard-toolbar-handler-border-color{stroke:var(--fastboard-border-color, #383b42)}.fastboard-toolbar-handler.dark .fastboard-toolbar-handler-image-stroke-color{stroke:var(--fastboard-color, #7b7e84)}.fastboard-toolbar-handler.dark .fastboard-toolbar-handler-image-fill-color{fill:var(--fastboard-color, #7b7e84)}.fastboard-toolbar:hover .fastboard-toolbar-handler svg,.fastboard-toolbar.collapsed .fastboard-toolbar-handler svg{opacity:1;transition:opacity .2s}.fastboard-toolbar-btn{appearance:none;cursor:pointer;margin:0;border:0;padding:4px;width:32px;height:32px;background-color:#0000;border-radius:4px;font-size:0;line-height:1;flex-shrink:0}.fastboard-toolbar-btn svg,.fastboard-toolbar-btn img{width:100%;height:100%;pointer-events:none}.fastboard-toolbar-btn:disabled{opacity:.5;cursor:not-allowed}.fastboard-toolbar-btn.light:not(:disabled):hover{background-color:var(--fastboard-hover-bg-color, #ebf2ff)}.fastboard-toolbar-btn.dark:not(:disabled):hover{background-color:var(--fastboard-hover-bg-color, #383b42)}.fastboard-slider{box-sizing:border-box;position:relative;width:100%;height:100%;display:flex;align-items:center}.fastboard-slider *{box-sizing:inherit}.fastboard-slider-track{appearance:none;background:rgba(0,0,0,0);border:0;border-radius:26px;flex:1;display:block;height:19px;margin:0;width:0;min-width:0;padding:0;transition:box-shadow .3s ease;cursor:pointer;touch-action:manipulation}.fastboard-slider-track::-webkit-slider-runnable-track{border:0;border-radius:2.5px;height:5px;transition:box-shadow .3s ease;user-select:none;background-color:#80808040;-webkit-user-select:none;background-image:linear-gradient(to right,currentColor var(--value, 0%),transparent var(--value, 0%))}.fastboard-slider-track::-webkit-slider-thumb{background:#fff;border:0;border-radius:100%;box-shadow:0 1px 1px #23292f26,0 0 0 1px #23292f33;width:13px;height:13px;position:relative;transition:all .2s ease;cursor:grab;appearance:none;margin-top:-4px}.fastboard-slider-track::-moz-range-track{border:0;border-radius:2.5px;height:5px;transition:box-shadow .3s ease;user-select:none;background-color:#80808040;-webkit-user-select:none}.fastboard-slider-track::-moz-range-thumb{appearance:none;background:#fff;border:0;border-radius:100%;box-shadow:0 1px 1px #23292f26,0 0 0 1px #23292f33;width:13px;height:13px;position:relative;transition:all .2s ease;cursor:grab}.fastboard-slider-track::-moz-range-progress{background:currentColor;border-radius:2.5px;height:5px}.fastboard-slider-track::-ms-track{border:0;border-radius:2.5px;height:5px;transition:box-shadow .3s ease;user-select:none;background-color:#80808040;-webkit-user-select:none;color:#0000}.fastboard-slider-track::-ms-thumb{appearance:none;background:#fff;border:0;border-radius:100%;box-shadow:0 1px 1px #23292f26,0 0 0 1px #23292f33;width:13px;height:13px;position:relative;transition:all .2s ease;cursor:grab;margin-top:0}.fastboard-slider-track::-ms-tooltip{display:none}.fastboard-slider-track::-moz-focus-outer{border:0}.fastboard-slider-track.grabbing::-webkit-slider-thumb{cursor:grabbing}.fastboard-slider-track.light{color:var(--fastboard-active-color, #3381ff)}.fastboard-slider-track.dark{color:var(--fastboard-active-color, #2867cc)}.fastboard-toolbar-contents{box-sizing:border-box;display:inline-flex;align-items:center;gap:4px;border:1px solid;border-radius:4px;font-size:14px;font-family:system-ui;pointer-events:auto;backdrop-filter:blur(5px);-webkit-backdrop-filter:blur(5px);padding:2px 0;gap:0;flex-direction:column}.fastboard-toolbar-contents *{box-sizing:inherit}.fastboard-toolbar-contents.light{color:var(--fastboard-color, #5d6066);background-color:var(--fastboard-bg-color, rgba(255, 255, 255, .9));border-color:var(--fastboard-border-color, #e5e8f0)}.fastboard-toolbar-contents.dark{color:var(--fastboard-color, #7b7e84);background-color:var(--fastboard-bg-color, rgba(20, 24, 30, .9));border-color:var(--fastboard-border-color, #383b42)}.fastboard-toolbar-contents>.fastboard-toolbar-btn{margin:2px 4px}.fastboard-toolbar-btn-interactive{position:relative}.fastboard-toolbar-triangle{width:0px;height:0px;border-bottom:4px solid;border-left:4px solid rgba(0,0,0,0);position:absolute;bottom:0;right:0}.fastboard-toolbar-btn:focus+.fastboard-toolbar-triangle{opacity:0}.fastboard-toolbar-scrollable{padding:2px 4px;overflow:hidden;display:flex;flex-direction:column;gap:4px}.fastboard-toolbar-tooltip{display:inline-flex;align-items:center;gap:4px}.fastboard-toolbar-hotkey{display:inline-flex;margin-right:-4px;width:24px;height:24px;align-items:center;justify-content:center;background-color:#ffffff1a;border-radius:4px}.fastboard-toolbar-panel-wrapper{display:none}.fastboard-toolbar-panel{display:flex;flex-direction:column}.fastboard-toolbar-panel-divider{height:.5px;width:100%;margin:4px 0;background-color:#ffffff26}.fastboard-toolbar-colors,.fastboard-toolbar-shapes{display:grid;align-self:center;grid-template:repeat(2,1fr)/repeat(4,1fr);align-items:center;justify-items:center;gap:4px}.fastboard-toolbar-shape-btn,.fastboard-toolbar-color-btn{width:24px;height:24px;padding:0;display:inline-flex;align-items:center;justify-content:center}.fastboard-toolbar-color-btn{border:1px solid rgba(0,0,0,0)}.fastboard-toolbar-color-btn.light.is-active{border-color:var(--fastboard-active-color, #3381ff)}.fastboard-toolbar-color-btn.dark.is-active{border-color:var(--fastboard-active-color, #2867cc)}.fastboard-toolbar-color-item{display:inline-block;width:16px;height:16px;border-radius:4px;pointer-events:none}.fastboard-toolbar-panel.apps{display:grid;grid-template-columns:repeat(min(var(--n, 3),3),minmax(max-content,1fr));gap:4px}.fastboard-toolbar-app-btn{margin:0;border:0;border-radius:2px;padding:4px 6px;background-color:#0000;display:inline-flex;flex-direction:column;align-items:center;gap:4px;font-size:0}.fastboard-toolbar-app-btn:disabled{opacity:.8}.fastboard-toolbar-app-btn-icon{width:32px;height:32px;pointer-events:none}.fastboard-toolbar-app-btn-text{font-size:14px;line-height:1;max-width:100%;overflow:hidden;text-overflow:ellipsis}.fastboard-toolbar-app-btn.is-loading{cursor:progress}.fastboard-toolbar-app-btn.is-failed{cursor:not-allowed;opacity:.5}.fastboard-toolbar-app-btn:not(:disabled,.is-loading,.is-failed):hover.light{cursor:pointer;background-color:var(--fastboard-hover-bg-color, #ebf2ff)}.fastboard-toolbar-app-btn-text.light{color:var(--fastboard-color, #5d6066)}.fastboard-toolbar-app-btn:not(:disabled,.is-loading,.is-failed):hover.dark{cursor:pointer;background-color:var(--fastboard-hover-bg-color, #383b42)}.fastboard-toolbar-app-btn-text.dark{color:var(--fastboard-color, #7b7e84)}.fastboard-root{position:relative;width:100%;height:100%;overflow:hidden}.fastboard-view{position:absolute;top:0;left:0;width:100%;height:100%}.fastboard-left{display:flex;align-items:center;position:absolute;bottom:62px;top:8px;left:0;z-index:200;pointer-events:none}.fastboard-left .fastboard-toolbar{padding-left:16px}.fastboard-bottom-left,.fastboard-bottom,.fastboard-bottom-right{display:flex;gap:10px;position:absolute;bottom:8px;left:8px;padding:8px;z-index:200;pointer-events:none}.fastboard-bottom-right{left:auto;right:8px}.fastboard-bottom{right:8px}.fastboard-left.hidden *,.fastboard-bottom.hidden *,.fastboard-bottom-left.hidden *,.fastboard-bottom-right.hidden *{opacity:0;pointer-events:none}.fastboard-tip{font-family:inherit;color:#d5d9e0;background-color:#03060d}.fastboard-tip[data-placement^=right]>.tippy-arrow:before{top:4px;border-width:4px;border-right-color:#03060d}.fastboard-tip[data-placement^=top]>.tippy-arrow:before{left:4px;border-width:4px;border-top-color:#03060d}.fastboard-panel .tippy-content{padding:8px}';
10313
10753
 
10314
- // inline-sass-stub:./src/style.scss
10754
+ // inline-sass-stub:.\src\style.scss
10315
10755
  injectStyle(style_default);
10316
10756
  //# sourceMappingURL=index.js.map