@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.mjs CHANGED
@@ -18,7 +18,7 @@ var __spreadValues = (a, b) => {
18
18
  };
19
19
  var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
20
20
 
21
- // ../../node_modules/.pnpm/svelte@3.46.4/node_modules/svelte/internal/index.mjs
21
+ // ../../node_modules/.pnpm/svelte@3.46.6/node_modules/svelte/internal/index.mjs
22
22
  function noop() {
23
23
  }
24
24
  function assign(tar, src) {
@@ -324,7 +324,7 @@ function outro_and_destroy_block(block, lookup) {
324
324
  lookup.delete(block.key);
325
325
  });
326
326
  }
327
- function update_keyed_each(old_blocks, dirty, get_key, dynamic, ctx, list, lookup, node, destroy, create_each_block5, next, get_context) {
327
+ function update_keyed_each(old_blocks, dirty, get_key, dynamic, ctx, list, lookup, node, destroy, create_each_block6, next, get_context) {
328
328
  let o = old_blocks.length;
329
329
  let n = list.length;
330
330
  let i = o;
@@ -340,7 +340,7 @@ function update_keyed_each(old_blocks, dirty, get_key, dynamic, ctx, list, looku
340
340
  const key = get_key(child_ctx);
341
341
  let block = lookup.get(key);
342
342
  if (!block) {
343
- block = create_each_block5(key, child_ctx);
343
+ block = create_each_block6(key, child_ctx);
344
344
  block.c();
345
345
  } else if (dynamic) {
346
346
  block.p(child_ctx, dirty);
@@ -462,7 +462,7 @@ function make_dirty(component, i) {
462
462
  }
463
463
  component.$$.dirty[i / 31 | 0] |= 1 << i % 31;
464
464
  }
465
- function init(component, options, instance59, create_fragment59, not_equal, props, append_styles, dirty = [-1]) {
465
+ function init(component, options, instance60, create_fragment60, not_equal, props, append_styles, dirty = [-1]) {
466
466
  const parent_component = current_component;
467
467
  set_current_component(component);
468
468
  const $$ = component.$$ = {
@@ -485,7 +485,7 @@ function init(component, options, instance59, create_fragment59, not_equal, prop
485
485
  };
486
486
  append_styles && append_styles($$.root);
487
487
  let ready = false;
488
- $$.ctx = instance59 ? instance59(component, options.props || {}, (i, ret, ...rest) => {
488
+ $$.ctx = instance60 ? instance60(component, options.props || {}, (i, ret, ...rest) => {
489
489
  const value = rest.length ? rest[0] : ret;
490
490
  if ($$.ctx && not_equal($$.ctx[i], $$.ctx[i] = value)) {
491
491
  if (!$$.skip_bound && $$.bound[i])
@@ -498,7 +498,7 @@ function init(component, options, instance59, create_fragment59, not_equal, prop
498
498
  $$.update();
499
499
  ready = true;
500
500
  run_all($$.before_update);
501
- $$.fragment = create_fragment59 ? create_fragment59($$.ctx) : false;
501
+ $$.fragment = create_fragment60 ? create_fragment60($$.ctx) : false;
502
502
  if (options.target) {
503
503
  if (options.hydrate) {
504
504
  start_hydrating();
@@ -3479,12 +3479,12 @@ if (is_client) {
3479
3479
  {
3480
3480
  name: "className",
3481
3481
  defaultValue: "",
3482
- fn(instance59) {
3482
+ fn(instance60) {
3483
3483
  function add() {
3484
- const el = instance59.popper.firstElementChild;
3484
+ const el = instance60.popper.firstElementChild;
3485
3485
  if (el) {
3486
3486
  el.classList.add("fastboard-tip");
3487
- const extra = (instance59.props.className || "").trim();
3487
+ const extra = (instance60.props.className || "").trim();
3488
3488
  if (extra) {
3489
3489
  el.classList.add(extra);
3490
3490
  }
@@ -3492,7 +3492,7 @@ if (is_client) {
3492
3492
  }
3493
3493
  function remove() {
3494
3494
  var _a;
3495
- (_a = instance59.popper.firstElementChild) == null ? void 0 : _a.classList.remove("fastboard-tip");
3495
+ (_a = instance60.popper.firstElementChild) == null ? void 0 : _a.classList.remove("fastboard-tip");
3496
3496
  }
3497
3497
  return {
3498
3498
  onCreate: add,
@@ -3505,21 +3505,21 @@ if (is_client) {
3505
3505
  });
3506
3506
  }
3507
3507
  var tippy = function(node, props) {
3508
- const instance59 = Tippy(node, props);
3508
+ const instance60 = Tippy(node, props);
3509
3509
  return {
3510
3510
  update(props2) {
3511
- instance59.setProps(props2);
3511
+ instance60.setProps(props2);
3512
3512
  },
3513
3513
  destroy() {
3514
- instance59.destroy();
3514
+ instance60.destroy();
3515
3515
  }
3516
3516
  };
3517
3517
  };
3518
3518
  function tippy_hide_all() {
3519
3519
  document.querySelectorAll("[data-tippy-root]").forEach((el) => {
3520
- const instance59 = el._tippy;
3521
- if (instance59)
3522
- instance59.hide();
3520
+ const instance60 = el._tippy;
3521
+ if (instance60)
3522
+ instance60.hide();
3523
3523
  });
3524
3524
  }
3525
3525
  var tippy_menu = {
@@ -5484,7 +5484,7 @@ var ZoomControl = class extends SvelteComponent {
5484
5484
  };
5485
5485
  var ZoomControl_default = ZoomControl;
5486
5486
 
5487
- // ../../node_modules/.pnpm/svelte@3.46.4/node_modules/svelte/store/index.mjs
5487
+ // ../../node_modules/.pnpm/svelte@3.46.6/node_modules/svelte/store/index.mjs
5488
5488
  var subscriber_queue = [];
5489
5489
  function writable(value, start = noop) {
5490
5490
  let stop;
@@ -5691,6 +5691,10 @@ var AppsInToolbar = class {
5691
5691
  this._data = this._data.filter((item) => !filter(item));
5692
5692
  this._listeners.forEach((fn) => fn(this._data));
5693
5693
  }
5694
+ clear() {
5695
+ this._data.length = 0;
5696
+ this._listeners.forEach((fn) => fn(this._data));
5697
+ }
5694
5698
  };
5695
5699
  var apps = new AppsInToolbar([
5696
5700
  {
@@ -6162,8 +6166,160 @@ var StrokeColor = class extends SvelteComponent {
6162
6166
  };
6163
6167
  var StrokeColor_default = StrokeColor;
6164
6168
 
6165
- // src/components/Toolbar/components/Shapes.svelte
6169
+ // src/components/Toolbar/components/TextColor.svelte
6166
6170
  function get_each_context2(ctx, list, i) {
6171
+ const child_ctx = ctx.slice();
6172
+ child_ctx[7] = list[i];
6173
+ return child_ctx;
6174
+ }
6175
+ function create_each_block2(key_1, ctx) {
6176
+ let button;
6177
+ let span;
6178
+ let t;
6179
+ let button_class_value;
6180
+ let button_data_color_key_value;
6181
+ return {
6182
+ key: key_1,
6183
+ first: null,
6184
+ c() {
6185
+ button = element("button");
6186
+ span = element("span");
6187
+ t = space();
6188
+ attr(span, "class", "fastboard-toolbar-color-item");
6189
+ set_style(span, "background-color", ctx[7], false);
6190
+ attr(button, "class", button_class_value = "fastboard-toolbar-btn fastboard-toolbar-color-btn " + ctx[0]);
6191
+ attr(button, "data-color-key", button_data_color_key_value = ctx[7]);
6192
+ button.disabled = ctx[1];
6193
+ toggle_class(button, "is-active", is_equal_color2(ctx[2], colors[ctx[7]]));
6194
+ this.first = button;
6195
+ },
6196
+ m(target, anchor) {
6197
+ insert(target, button, anchor);
6198
+ append(button, span);
6199
+ append(button, t);
6200
+ },
6201
+ p(new_ctx, dirty) {
6202
+ ctx = new_ctx;
6203
+ if (dirty & 1 && button_class_value !== (button_class_value = "fastboard-toolbar-btn fastboard-toolbar-color-btn " + ctx[0])) {
6204
+ attr(button, "class", button_class_value);
6205
+ }
6206
+ if (dirty & 2) {
6207
+ button.disabled = ctx[1];
6208
+ }
6209
+ if (dirty & 5) {
6210
+ toggle_class(button, "is-active", is_equal_color2(ctx[2], colors[ctx[7]]));
6211
+ }
6212
+ },
6213
+ d(detaching) {
6214
+ if (detaching)
6215
+ detach(button);
6216
+ }
6217
+ };
6218
+ }
6219
+ function create_fragment53(ctx) {
6220
+ let div;
6221
+ let each_blocks = [];
6222
+ let each_1_lookup = /* @__PURE__ */ new Map();
6223
+ let div_class_value;
6224
+ let mounted;
6225
+ let dispose;
6226
+ let each_value = colorKeys;
6227
+ const get_key = (ctx2) => ctx2[7];
6228
+ for (let i = 0; i < each_value.length; i += 1) {
6229
+ let child_ctx = get_each_context2(ctx, each_value, i);
6230
+ let key = get_key(child_ctx);
6231
+ each_1_lookup.set(key, each_blocks[i] = create_each_block2(key, child_ctx));
6232
+ }
6233
+ return {
6234
+ c() {
6235
+ div = element("div");
6236
+ for (let i = 0; i < each_blocks.length; i += 1) {
6237
+ each_blocks[i].c();
6238
+ }
6239
+ attr(div, "class", div_class_value = "fastboard-toolbar-colors " + ctx[0]);
6240
+ },
6241
+ m(target, anchor) {
6242
+ insert(target, div, anchor);
6243
+ for (let i = 0; i < each_blocks.length; i += 1) {
6244
+ each_blocks[i].m(div, null);
6245
+ }
6246
+ if (!mounted) {
6247
+ dispose = listen(div, "click", ctx[4]);
6248
+ mounted = true;
6249
+ }
6250
+ },
6251
+ p(ctx2, [dirty]) {
6252
+ if (dirty & 7) {
6253
+ each_value = colorKeys;
6254
+ 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);
6255
+ }
6256
+ if (dirty & 1 && div_class_value !== (div_class_value = "fastboard-toolbar-colors " + ctx2[0])) {
6257
+ attr(div, "class", div_class_value);
6258
+ }
6259
+ },
6260
+ i: noop,
6261
+ o: noop,
6262
+ d(detaching) {
6263
+ if (detaching)
6264
+ detach(div);
6265
+ for (let i = 0; i < each_blocks.length; i += 1) {
6266
+ each_blocks[i].d();
6267
+ }
6268
+ mounted = false;
6269
+ dispose();
6270
+ }
6271
+ };
6272
+ }
6273
+ function is_equal_color2(a, b) {
6274
+ return a && b && a.every((v, i) => v === b[i]);
6275
+ }
6276
+ function instance53($$self, $$props, $$invalidate) {
6277
+ let memberState;
6278
+ let textColor;
6279
+ let $memberState, $$unsubscribe_memberState = noop, $$subscribe_memberState = () => ($$unsubscribe_memberState(), $$unsubscribe_memberState = subscribe(memberState, ($$value) => $$invalidate(6, $memberState = $$value)), memberState);
6280
+ $$self.$$.on_destroy.push(() => $$unsubscribe_memberState());
6281
+ let { app = null } = $$props;
6282
+ let { theme = "light" } = $$props;
6283
+ let { disabled = false } = $$props;
6284
+ function set_stroke_color(ev) {
6285
+ let button = ev.target;
6286
+ if (button && button.dataset.colorKey) {
6287
+ let color = colors[button.dataset.colorKey];
6288
+ if (color && app) {
6289
+ app.setTextColor(color);
6290
+ }
6291
+ }
6292
+ }
6293
+ $$self.$$set = ($$props2) => {
6294
+ if ("app" in $$props2)
6295
+ $$invalidate(5, app = $$props2.app);
6296
+ if ("theme" in $$props2)
6297
+ $$invalidate(0, theme = $$props2.theme);
6298
+ if ("disabled" in $$props2)
6299
+ $$invalidate(1, disabled = $$props2.disabled);
6300
+ };
6301
+ $$self.$$.update = () => {
6302
+ if ($$self.$$.dirty & 32) {
6303
+ $:
6304
+ $$subscribe_memberState($$invalidate(3, memberState = app == null ? void 0 : app.memberState));
6305
+ }
6306
+ if ($$self.$$.dirty & 64) {
6307
+ $:
6308
+ $$invalidate(2, textColor = $memberState == null ? void 0 : $memberState.textColor);
6309
+ }
6310
+ };
6311
+ return [theme, disabled, textColor, memberState, set_stroke_color, app, $memberState];
6312
+ }
6313
+ var TextColor = class extends SvelteComponent {
6314
+ constructor(options) {
6315
+ super();
6316
+ init(this, options, instance53, create_fragment53, safe_not_equal, { app: 5, theme: 0, disabled: 1 });
6317
+ }
6318
+ };
6319
+ var TextColor_default = TextColor;
6320
+
6321
+ // src/components/Toolbar/components/Shapes.svelte
6322
+ function get_each_context3(ctx, list, i) {
6167
6323
  const child_ctx = ctx.slice();
6168
6324
  child_ctx[12] = list[i];
6169
6325
  const constants_0 = child_ctx[4] === "shape" ? child_ctx[3] === child_ctx[12] : child_ctx[4] === child_ctx[12];
@@ -6310,7 +6466,7 @@ function create_if_block5(ctx) {
6310
6466
  }
6311
6467
  };
6312
6468
  }
6313
- function create_each_block2(key_1, ctx) {
6469
+ function create_each_block3(key_1, ctx) {
6314
6470
  let button;
6315
6471
  let current_block_type_index;
6316
6472
  let if_block;
@@ -6412,7 +6568,7 @@ function create_each_block2(key_1, ctx) {
6412
6568
  }
6413
6569
  };
6414
6570
  }
6415
- function create_fragment53(ctx) {
6571
+ function create_fragment54(ctx) {
6416
6572
  let div;
6417
6573
  let each_blocks = [];
6418
6574
  let each_1_lookup = /* @__PURE__ */ new Map();
@@ -6423,9 +6579,9 @@ function create_fragment53(ctx) {
6423
6579
  let each_value = shapes;
6424
6580
  const get_key = (ctx2) => ctx2[12];
6425
6581
  for (let i = 0; i < each_value.length; i += 1) {
6426
- let child_ctx = get_each_context2(ctx, each_value, i);
6582
+ let child_ctx = get_each_context3(ctx, each_value, i);
6427
6583
  let key = get_key(child_ctx);
6428
- each_1_lookup.set(key, each_blocks[i] = create_each_block2(key, child_ctx));
6584
+ each_1_lookup.set(key, each_blocks[i] = create_each_block3(key, child_ctx));
6429
6585
  }
6430
6586
  return {
6431
6587
  c() {
@@ -6450,7 +6606,7 @@ function create_fragment53(ctx) {
6450
6606
  if (dirty & 95) {
6451
6607
  each_value = shapes;
6452
6608
  group_outros();
6453
- 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);
6609
+ 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);
6454
6610
  check_outros();
6455
6611
  }
6456
6612
  if (!current || dirty & 1 && div_class_value !== (div_class_value = "fastboard-toolbar-shapes " + ctx2[0])) {
@@ -6504,7 +6660,7 @@ var i18n5 = {
6504
6660
  speechBalloon: "\u6C14\u6CE1"
6505
6661
  }
6506
6662
  };
6507
- function instance53($$self, $$props, $$invalidate) {
6663
+ function instance54($$self, $$props, $$invalidate) {
6508
6664
  let t;
6509
6665
  let memberState;
6510
6666
  let appliance;
@@ -6589,7 +6745,7 @@ function instance53($$self, $$props, $$invalidate) {
6589
6745
  var Shapes = class extends SvelteComponent {
6590
6746
  constructor(options) {
6591
6747
  super();
6592
- init(this, options, instance53, create_fragment53, safe_not_equal, {
6748
+ init(this, options, instance54, create_fragment54, safe_not_equal, {
6593
6749
  app: 8,
6594
6750
  theme: 0,
6595
6751
  language: 9,
@@ -6600,22 +6756,22 @@ var Shapes = class extends SvelteComponent {
6600
6756
  var Shapes_default = Shapes;
6601
6757
 
6602
6758
  // src/components/Toolbar/components/Contents.svelte
6603
- function get_each_context3(ctx, list, i) {
6759
+ function get_each_context4(ctx, list, i) {
6604
6760
  const child_ctx = ctx.slice();
6605
- child_ctx[40] = list[i];
6606
- const constants_0 = child_ctx[40];
6607
- child_ctx[41] = constants_0.icon;
6608
- child_ctx[42] = constants_0.label;
6609
- child_ctx[43] = constants_0.kind;
6610
- child_ctx[44] = constants_0.onClick;
6611
- const constants_1 = child_ctx[19] && child_ctx[19][child_ctx[43]];
6612
- child_ctx[45] = constants_1;
6761
+ child_ctx[41] = list[i];
6762
+ const constants_0 = child_ctx[41];
6763
+ child_ctx[42] = constants_0.icon;
6764
+ child_ctx[43] = constants_0.label;
6765
+ child_ctx[44] = constants_0.kind;
6766
+ child_ctx[45] = constants_0.onClick;
6767
+ const constants_1 = child_ctx[20] && child_ctx[20][child_ctx[44]];
6768
+ child_ctx[46] = constants_1;
6613
6769
  return child_ctx;
6614
6770
  }
6615
- function create_if_block_7(ctx) {
6771
+ function create_if_block_8(ctx) {
6616
6772
  let button;
6617
6773
  let current;
6618
- const button_spread_levels = [{ class: "scroll-up" }, ctx[14]];
6774
+ const button_spread_levels = [{ class: "scroll-up" }, ctx[15]];
6619
6775
  let button_props = {
6620
6776
  $$slots: { default: [create_default_slot_9] },
6621
6777
  $$scope: { ctx }
@@ -6624,7 +6780,7 @@ function create_if_block_7(ctx) {
6624
6780
  button_props = assign(button_props, button_spread_levels[i]);
6625
6781
  }
6626
6782
  button = new Button_default({ props: button_props });
6627
- button.$on("click", ctx[21]);
6783
+ button.$on("click", ctx[22]);
6628
6784
  return {
6629
6785
  c() {
6630
6786
  create_component(button.$$.fragment);
@@ -6634,8 +6790,8 @@ function create_if_block_7(ctx) {
6634
6790
  current = true;
6635
6791
  },
6636
6792
  p(ctx2, dirty) {
6637
- const button_changes = dirty[0] & 16384 ? get_spread_update(button_spread_levels, [button_spread_levels[0], get_spread_object(ctx2[14])]) : {};
6638
- if (dirty[0] & 2 | dirty[1] & 131072) {
6793
+ const button_changes = dirty[0] & 32768 ? get_spread_update(button_spread_levels, [button_spread_levels[0], get_spread_object(ctx2[15])]) : {};
6794
+ if (dirty[0] & 2 | dirty[1] & 262144) {
6639
6795
  button_changes.$$scope = { dirty, ctx: ctx2 };
6640
6796
  }
6641
6797
  button.$set(button_changes);
@@ -6721,7 +6877,7 @@ function create_else_block_5(ctx) {
6721
6877
  }
6722
6878
  };
6723
6879
  }
6724
- function create_if_block_6(ctx) {
6880
+ function create_if_block_7(ctx) {
6725
6881
  let icons_clickfilled;
6726
6882
  let current;
6727
6883
  icons_clickfilled = new Icons_default.ClickFilled({
@@ -6761,10 +6917,10 @@ function create_default_slot_8(ctx) {
6761
6917
  let if_block;
6762
6918
  let if_block_anchor;
6763
6919
  let current;
6764
- const if_block_creators = [create_if_block_6, create_else_block_5];
6920
+ const if_block_creators = [create_if_block_7, create_else_block_5];
6765
6921
  const if_blocks = [];
6766
6922
  function select_block_type(ctx2, dirty) {
6767
- if (ctx2[7] === "clicker")
6923
+ if (ctx2[8] === "clicker")
6768
6924
  return 0;
6769
6925
  return 1;
6770
6926
  }
@@ -6852,7 +7008,7 @@ function create_else_block_4(ctx) {
6852
7008
  }
6853
7009
  };
6854
7010
  }
6855
- function create_if_block_5(ctx) {
7011
+ function create_if_block_6(ctx) {
6856
7012
  let icons_selectorfilled;
6857
7013
  let current;
6858
7014
  icons_selectorfilled = new Icons_default.SelectorFilled({
@@ -6892,10 +7048,10 @@ function create_default_slot_7(ctx) {
6892
7048
  let if_block;
6893
7049
  let if_block_anchor;
6894
7050
  let current;
6895
- const if_block_creators = [create_if_block_5, create_else_block_4];
7051
+ const if_block_creators = [create_if_block_6, create_else_block_4];
6896
7052
  const if_blocks = [];
6897
7053
  function select_block_type_1(ctx2, dirty) {
6898
- if (ctx2[7] === "selector")
7054
+ if (ctx2[8] === "selector")
6899
7055
  return 0;
6900
7056
  return 1;
6901
7057
  }
@@ -6983,7 +7139,7 @@ function create_else_block_3(ctx) {
6983
7139
  }
6984
7140
  };
6985
7141
  }
6986
- function create_if_block_4(ctx) {
7142
+ function create_if_block_5(ctx) {
6987
7143
  let icons_pencilfilled;
6988
7144
  let current;
6989
7145
  icons_pencilfilled = new Icons_default.PencilFilled({
@@ -7023,10 +7179,10 @@ function create_default_slot_6(ctx) {
7023
7179
  let if_block;
7024
7180
  let if_block_anchor;
7025
7181
  let current;
7026
- const if_block_creators = [create_if_block_4, create_else_block_3];
7182
+ const if_block_creators = [create_if_block_5, create_else_block_3];
7027
7183
  const if_blocks = [];
7028
7184
  function select_block_type_2(ctx2, dirty) {
7029
- if (ctx2[7] === "pencil")
7185
+ if (ctx2[8] === "pencil")
7030
7186
  return 0;
7031
7187
  return 1;
7032
7188
  }
@@ -7114,7 +7270,7 @@ function create_else_block_2(ctx) {
7114
7270
  }
7115
7271
  };
7116
7272
  }
7117
- function create_if_block_3(ctx) {
7273
+ function create_if_block_4(ctx) {
7118
7274
  let icons_textfilled;
7119
7275
  let current;
7120
7276
  icons_textfilled = new Icons_default.TextFilled({
@@ -7154,10 +7310,10 @@ function create_default_slot_53(ctx) {
7154
7310
  let if_block;
7155
7311
  let if_block_anchor;
7156
7312
  let current;
7157
- const if_block_creators = [create_if_block_3, create_else_block_2];
7313
+ const if_block_creators = [create_if_block_4, create_else_block_2];
7158
7314
  const if_blocks = [];
7159
7315
  function select_block_type_3(ctx2, dirty) {
7160
- if (ctx2[7] === "text")
7316
+ if (ctx2[8] === "text")
7161
7317
  return 0;
7162
7318
  return 1;
7163
7319
  }
@@ -7216,7 +7372,7 @@ function create_else_block_12(ctx) {
7216
7372
  let switch_instance;
7217
7373
  let switch_instance_anchor;
7218
7374
  let current;
7219
- var switch_value = shapesIcon[ctx[9]];
7375
+ var switch_value = shapesIcon[ctx[10]];
7220
7376
  function switch_props(ctx2) {
7221
7377
  return { props: { theme: ctx2[1] } };
7222
7378
  }
@@ -7240,7 +7396,7 @@ function create_else_block_12(ctx) {
7240
7396
  const switch_instance_changes = {};
7241
7397
  if (dirty[0] & 2)
7242
7398
  switch_instance_changes.theme = ctx2[1];
7243
- if (switch_value !== (switch_value = shapesIcon[ctx2[9]])) {
7399
+ if (switch_value !== (switch_value = shapesIcon[ctx2[10]])) {
7244
7400
  if (switch_instance) {
7245
7401
  group_outros();
7246
7402
  const old_component = switch_instance;
@@ -7281,11 +7437,11 @@ function create_else_block_12(ctx) {
7281
7437
  }
7282
7438
  };
7283
7439
  }
7284
- function create_if_block_2(ctx) {
7440
+ function create_if_block_3(ctx) {
7285
7441
  let switch_instance;
7286
7442
  let switch_instance_anchor;
7287
7443
  let current;
7288
- var switch_value = shapesIconActive[ctx[9]];
7444
+ var switch_value = shapesIconActive[ctx[10]];
7289
7445
  function switch_props(ctx2) {
7290
7446
  return {
7291
7447
  props: { theme: ctx2[1], active: true }
@@ -7311,7 +7467,7 @@ function create_if_block_2(ctx) {
7311
7467
  const switch_instance_changes = {};
7312
7468
  if (dirty[0] & 2)
7313
7469
  switch_instance_changes.theme = ctx2[1];
7314
- if (switch_value !== (switch_value = shapesIconActive[ctx2[9]])) {
7470
+ if (switch_value !== (switch_value = shapesIconActive[ctx2[10]])) {
7315
7471
  if (switch_instance) {
7316
7472
  group_outros();
7317
7473
  const old_component = switch_instance;
@@ -7357,10 +7513,10 @@ function create_default_slot_43(ctx) {
7357
7513
  let if_block;
7358
7514
  let if_block_anchor;
7359
7515
  let current;
7360
- const if_block_creators = [create_if_block_2, create_else_block_12];
7516
+ const if_block_creators = [create_if_block_3, create_else_block_12];
7361
7517
  const if_blocks = [];
7362
7518
  function select_block_type_4(ctx2, dirty) {
7363
- if (ctx2[7] === ctx2[9] || ctx2[7] === "shape" && ctx2[6] === ctx2[9])
7519
+ if (ctx2[8] === ctx2[10] || ctx2[8] === "shape" && ctx2[7] === ctx2[10])
7364
7520
  return 0;
7365
7521
  return 1;
7366
7522
  }
@@ -7448,7 +7604,7 @@ function create_else_block6(ctx) {
7448
7604
  }
7449
7605
  };
7450
7606
  }
7451
- function create_if_block_12(ctx) {
7607
+ function create_if_block_2(ctx) {
7452
7608
  let icons_eraserfilled;
7453
7609
  let current;
7454
7610
  icons_eraserfilled = new Icons_default.EraserFilled({
@@ -7488,10 +7644,10 @@ function create_default_slot_34(ctx) {
7488
7644
  let if_block;
7489
7645
  let if_block_anchor;
7490
7646
  let current;
7491
- const if_block_creators = [create_if_block_12, create_else_block6];
7647
+ const if_block_creators = [create_if_block_2, create_else_block6];
7492
7648
  const if_blocks = [];
7493
7649
  function select_block_type_5(ctx2, dirty) {
7494
- if (ctx2[7] === "eraser")
7650
+ if (ctx2[8] === "eraser")
7495
7651
  return 0;
7496
7652
  return 1;
7497
7653
  }
@@ -7579,6 +7735,60 @@ function create_default_slot_24(ctx) {
7579
7735
  }
7580
7736
  };
7581
7737
  }
7738
+ function create_if_block_12(ctx) {
7739
+ let button;
7740
+ let current;
7741
+ const button_spread_levels = [
7742
+ { class: "apps" },
7743
+ ctx[15],
7744
+ { content: ctx[9].apps },
7745
+ { menu: ctx[14] },
7746
+ { menu_placement: "right-end" }
7747
+ ];
7748
+ let button_props = {
7749
+ $$slots: { default: [create_default_slot_14] },
7750
+ $$scope: { ctx }
7751
+ };
7752
+ for (let i = 0; i < button_spread_levels.length; i += 1) {
7753
+ button_props = assign(button_props, button_spread_levels[i]);
7754
+ }
7755
+ button = new Button_default({ props: button_props });
7756
+ return {
7757
+ c() {
7758
+ create_component(button.$$.fragment);
7759
+ },
7760
+ m(target, anchor) {
7761
+ mount_component(button, target, anchor);
7762
+ current = true;
7763
+ },
7764
+ p(ctx2, dirty) {
7765
+ const button_changes = dirty[0] & 49664 ? get_spread_update(button_spread_levels, [
7766
+ button_spread_levels[0],
7767
+ dirty[0] & 32768 && get_spread_object(ctx2[15]),
7768
+ dirty[0] & 512 && { content: ctx2[9].apps },
7769
+ dirty[0] & 16384 && { menu: ctx2[14] },
7770
+ button_spread_levels[4]
7771
+ ]) : {};
7772
+ if (dirty[0] & 2 | dirty[1] & 262144) {
7773
+ button_changes.$$scope = { dirty, ctx: ctx2 };
7774
+ }
7775
+ button.$set(button_changes);
7776
+ },
7777
+ i(local) {
7778
+ if (current)
7779
+ return;
7780
+ transition_in(button.$$.fragment, local);
7781
+ current = true;
7782
+ },
7783
+ o(local) {
7784
+ transition_out(button.$$.fragment, local);
7785
+ current = false;
7786
+ },
7787
+ d(detaching) {
7788
+ destroy_component(button, detaching);
7789
+ }
7790
+ };
7791
+ }
7582
7792
  function create_default_slot_14(ctx) {
7583
7793
  let icons_apps;
7584
7794
  let current;
@@ -7625,7 +7835,7 @@ function create_if_block6(ctx) {
7625
7835
  $$scope: { ctx }
7626
7836
  }
7627
7837
  });
7628
- button.$on("click", ctx[22]);
7838
+ button.$on("click", ctx[23]);
7629
7839
  return {
7630
7840
  c() {
7631
7841
  create_component(button.$$.fragment);
@@ -7640,7 +7850,7 @@ function create_if_block6(ctx) {
7640
7850
  button_changes.theme = ctx2[1];
7641
7851
  if (dirty[0] & 8)
7642
7852
  button_changes.disabled = ctx2[3];
7643
- if (dirty[0] & 2 | dirty[1] & 131072) {
7853
+ if (dirty[0] & 2 | dirty[1] & 262144) {
7644
7854
  button_changes.$$scope = { dirty, ctx: ctx2 };
7645
7855
  }
7646
7856
  button.$set(button_changes);
@@ -7693,7 +7903,7 @@ function create_default_slot4(ctx) {
7693
7903
  }
7694
7904
  };
7695
7905
  }
7696
- function create_each_block3(ctx) {
7906
+ function create_each_block4(ctx) {
7697
7907
  let button;
7698
7908
  let img;
7699
7909
  let img_class_value;
@@ -7702,7 +7912,7 @@ function create_each_block3(ctx) {
7702
7912
  let img_title_value;
7703
7913
  let t0;
7704
7914
  let span;
7705
- let t1_value = ctx[42] + "";
7915
+ let t1_value = ctx[43] + "";
7706
7916
  let t1;
7707
7917
  let span_class_value;
7708
7918
  let t2;
@@ -7721,17 +7931,17 @@ function create_each_block3(ctx) {
7721
7931
  t1 = text(t1_value);
7722
7932
  t2 = space();
7723
7933
  attr(img, "class", img_class_value = name5 + "-app-btn-icon " + ctx[1]);
7724
- if (!src_url_equal(img.src, img_src_value = ctx[41]))
7934
+ if (!src_url_equal(img.src, img_src_value = ctx[42]))
7725
7935
  attr(img, "src", img_src_value);
7726
- attr(img, "alt", img_alt_value = ctx[43]);
7727
- attr(img, "title", img_title_value = ctx[42]);
7936
+ attr(img, "alt", img_alt_value = ctx[44]);
7937
+ attr(img, "title", img_title_value = ctx[43]);
7728
7938
  attr(span, "class", span_class_value = name5 + "-app-btn-text " + ctx[1]);
7729
- attr(button, "class", button_class_value = name5 + "-app-btn " + ctx[43] + " " + ctx[1]);
7730
- attr(button, "title", button_title_value = ctx[42] + (ctx[45] && ctx[45].reason ? ": " + ctx[45].reason : ""));
7731
- attr(button, "data-app-kind", button_data_app_kind_value = ctx[40].kind);
7732
- button.disabled = button_disabled_value = ctx[45] && ctx[45].status !== "idle";
7733
- toggle_class(button, "is-loading", ctx[45] && ctx[45].status === "loading");
7734
- toggle_class(button, "is-failed", ctx[45] && ctx[45].status === "failed");
7939
+ attr(button, "class", button_class_value = name5 + "-app-btn " + ctx[44] + " " + ctx[1]);
7940
+ attr(button, "title", button_title_value = ctx[43] + (ctx[46] && ctx[46].reason ? ": " + ctx[46].reason : ""));
7941
+ attr(button, "data-app-kind", button_data_app_kind_value = ctx[41].kind);
7942
+ button.disabled = button_disabled_value = ctx[46] && ctx[46].status !== "idle";
7943
+ toggle_class(button, "is-loading", ctx[46] && ctx[46].status === "loading");
7944
+ toggle_class(button, "is-failed", ctx[46] && ctx[46].status === "failed");
7735
7945
  },
7736
7946
  m(target, anchor) {
7737
7947
  insert(target, button, anchor);
@@ -7742,8 +7952,8 @@ function create_each_block3(ctx) {
7742
7952
  append(button, t2);
7743
7953
  if (!mounted) {
7744
7954
  dispose = listen(button, "click", function() {
7745
- if (is_function(ctx[0] && ctx[44].bind(null, ctx[0])))
7746
- (ctx[0] && ctx[44].bind(null, ctx[0])).apply(this, arguments);
7955
+ if (is_function(ctx[0] && ctx[45].bind(null, ctx[0])))
7956
+ (ctx[0] && ctx[45].bind(null, ctx[0])).apply(this, arguments);
7747
7957
  });
7748
7958
  mounted = true;
7749
7959
  }
@@ -7753,37 +7963,37 @@ function create_each_block3(ctx) {
7753
7963
  if (dirty[0] & 2 && img_class_value !== (img_class_value = name5 + "-app-btn-icon " + ctx[1])) {
7754
7964
  attr(img, "class", img_class_value);
7755
7965
  }
7756
- if (dirty[0] & 262144 && !src_url_equal(img.src, img_src_value = ctx[41])) {
7966
+ if (dirty[0] & 524288 && !src_url_equal(img.src, img_src_value = ctx[42])) {
7757
7967
  attr(img, "src", img_src_value);
7758
7968
  }
7759
- if (dirty[0] & 262144 && img_alt_value !== (img_alt_value = ctx[43])) {
7969
+ if (dirty[0] & 524288 && img_alt_value !== (img_alt_value = ctx[44])) {
7760
7970
  attr(img, "alt", img_alt_value);
7761
7971
  }
7762
- if (dirty[0] & 262144 && img_title_value !== (img_title_value = ctx[42])) {
7972
+ if (dirty[0] & 524288 && img_title_value !== (img_title_value = ctx[43])) {
7763
7973
  attr(img, "title", img_title_value);
7764
7974
  }
7765
- if (dirty[0] & 262144 && t1_value !== (t1_value = ctx[42] + ""))
7975
+ if (dirty[0] & 524288 && t1_value !== (t1_value = ctx[43] + ""))
7766
7976
  set_data(t1, t1_value);
7767
7977
  if (dirty[0] & 2 && span_class_value !== (span_class_value = name5 + "-app-btn-text " + ctx[1])) {
7768
7978
  attr(span, "class", span_class_value);
7769
7979
  }
7770
- if (dirty[0] & 262146 && button_class_value !== (button_class_value = name5 + "-app-btn " + ctx[43] + " " + ctx[1])) {
7980
+ if (dirty[0] & 524290 && button_class_value !== (button_class_value = name5 + "-app-btn " + ctx[44] + " " + ctx[1])) {
7771
7981
  attr(button, "class", button_class_value);
7772
7982
  }
7773
- if (dirty[0] & 786432 && button_title_value !== (button_title_value = ctx[42] + (ctx[45] && ctx[45].reason ? ": " + ctx[45].reason : ""))) {
7983
+ if (dirty[0] & 1572864 && button_title_value !== (button_title_value = ctx[43] + (ctx[46] && ctx[46].reason ? ": " + ctx[46].reason : ""))) {
7774
7984
  attr(button, "title", button_title_value);
7775
7985
  }
7776
- if (dirty[0] & 262144 && button_data_app_kind_value !== (button_data_app_kind_value = ctx[40].kind)) {
7986
+ if (dirty[0] & 524288 && button_data_app_kind_value !== (button_data_app_kind_value = ctx[41].kind)) {
7777
7987
  attr(button, "data-app-kind", button_data_app_kind_value);
7778
7988
  }
7779
- if (dirty[0] & 786432 && button_disabled_value !== (button_disabled_value = ctx[45] && ctx[45].status !== "idle")) {
7989
+ if (dirty[0] & 1572864 && button_disabled_value !== (button_disabled_value = ctx[46] && ctx[46].status !== "idle")) {
7780
7990
  button.disabled = button_disabled_value;
7781
7991
  }
7782
- if (dirty[0] & 786434) {
7783
- toggle_class(button, "is-loading", ctx[45] && ctx[45].status === "loading");
7992
+ if (dirty[0] & 1572866) {
7993
+ toggle_class(button, "is-loading", ctx[46] && ctx[46].status === "loading");
7784
7994
  }
7785
- if (dirty[0] & 786434) {
7786
- toggle_class(button, "is-failed", ctx[45] && ctx[45].status === "failed");
7995
+ if (dirty[0] & 1572866) {
7996
+ toggle_class(button, "is-failed", ctx[46] && ctx[46].status === "failed");
7787
7997
  }
7788
7998
  },
7789
7999
  d(detaching) {
@@ -7794,7 +8004,7 @@ function create_each_block3(ctx) {
7794
8004
  }
7795
8005
  };
7796
8006
  }
7797
- function create_fragment54(ctx) {
8007
+ function create_fragment55(ctx) {
7798
8008
  let t0;
7799
8009
  let div0;
7800
8010
  let button0;
@@ -7811,7 +8021,6 @@ function create_fragment54(ctx) {
7811
8021
  let t6;
7812
8022
  let button6;
7813
8023
  let t7;
7814
- let button7;
7815
8024
  let div0_class_value;
7816
8025
  let scrollHeight_action;
7817
8026
  let scrollTop_action;
@@ -7828,7 +8037,7 @@ function create_fragment54(ctx) {
7828
8037
  let div2_class_value;
7829
8038
  let t12;
7830
8039
  let div3;
7831
- let strokecolor1;
8040
+ let textcolor;
7832
8041
  let div3_class_value;
7833
8042
  let t13;
7834
8043
  let div6;
@@ -7842,7 +8051,7 @@ function create_fragment54(ctx) {
7842
8051
  let div5;
7843
8052
  let div5_class_value;
7844
8053
  let t17;
7845
- let strokecolor2;
8054
+ let strokecolor1;
7846
8055
  let div6_class_value;
7847
8056
  let t18;
7848
8057
  let div7;
@@ -7851,11 +8060,11 @@ function create_fragment54(ctx) {
7851
8060
  let current;
7852
8061
  let mounted;
7853
8062
  let dispose;
7854
- let if_block0 = ctx[5] && create_if_block_7(ctx);
8063
+ let if_block0 = ctx[5] && create_if_block_8(ctx);
7855
8064
  const button0_spread_levels = [
7856
8065
  { class: "clicker" },
7857
- ctx[14],
7858
- { content: ctx[17].clicker }
8066
+ ctx[15],
8067
+ { content: ctx[18].clicker }
7859
8068
  ];
7860
8069
  let button0_props = {
7861
8070
  $$slots: { default: [create_default_slot_8] },
@@ -7865,11 +8074,11 @@ function create_fragment54(ctx) {
7865
8074
  button0_props = assign(button0_props, button0_spread_levels[i]);
7866
8075
  }
7867
8076
  button0 = new Button_default({ props: button0_props });
7868
- button0.$on("click", ctx[23]);
8077
+ button0.$on("click", ctx[24]);
7869
8078
  const button1_spread_levels = [
7870
8079
  { class: "selector" },
7871
- ctx[14],
7872
- { content: ctx[17].selector }
8080
+ ctx[15],
8081
+ { content: ctx[18].selector }
7873
8082
  ];
7874
8083
  let button1_props = {
7875
8084
  $$slots: { default: [create_default_slot_7] },
@@ -7879,12 +8088,12 @@ function create_fragment54(ctx) {
7879
8088
  button1_props = assign(button1_props, button1_spread_levels[i]);
7880
8089
  }
7881
8090
  button1 = new Button_default({ props: button1_props });
7882
- button1.$on("click", ctx[24]);
8091
+ button1.$on("click", ctx[25]);
7883
8092
  const button2_spread_levels = [
7884
8093
  { class: "pencil" },
7885
- ctx[14],
7886
- { content: ctx[17].pencil },
7887
- { menu: ctx[10] }
8094
+ ctx[15],
8095
+ { content: ctx[18].pencil },
8096
+ { menu: ctx[11] }
7888
8097
  ];
7889
8098
  let button2_props = {
7890
8099
  $$slots: { default: [create_default_slot_6] },
@@ -7894,12 +8103,12 @@ function create_fragment54(ctx) {
7894
8103
  button2_props = assign(button2_props, button2_spread_levels[i]);
7895
8104
  }
7896
8105
  button2 = new Button_default({ props: button2_props });
7897
- button2.$on("click", ctx[25]);
8106
+ button2.$on("click", ctx[26]);
7898
8107
  const button3_spread_levels = [
7899
8108
  { class: "text" },
7900
- ctx[14],
7901
- { content: ctx[17].text },
7902
- { menu: ctx[11] }
8109
+ ctx[15],
8110
+ { content: ctx[18].text },
8111
+ { menu: ctx[12] }
7903
8112
  ];
7904
8113
  let button3_props = {
7905
8114
  $$slots: { default: [create_default_slot_53] },
@@ -7909,12 +8118,12 @@ function create_fragment54(ctx) {
7909
8118
  button3_props = assign(button3_props, button3_spread_levels[i]);
7910
8119
  }
7911
8120
  button3 = new Button_default({ props: button3_props });
7912
- button3.$on("click", ctx[26]);
8121
+ button3.$on("click", ctx[27]);
7913
8122
  const button4_spread_levels = [
7914
8123
  { class: "shapes" },
7915
- ctx[14],
7916
- { content: ctx[8].shapes },
7917
- { menu: ctx[12] }
8124
+ ctx[15],
8125
+ { content: ctx[9].shapes },
8126
+ { menu: ctx[13] }
7918
8127
  ];
7919
8128
  let button4_props = {
7920
8129
  $$slots: { default: [create_default_slot_43] },
@@ -7924,8 +8133,8 @@ function create_fragment54(ctx) {
7924
8133
  button4_props = assign(button4_props, button4_spread_levels[i]);
7925
8134
  }
7926
8135
  button4 = new Button_default({ props: button4_props });
7927
- button4.$on("click", ctx[27]);
7928
- const button5_spread_levels = [{ class: "eraser" }, ctx[14], { content: ctx[17].eraser }];
8136
+ button4.$on("click", ctx[28]);
8137
+ const button5_spread_levels = [{ class: "eraser" }, ctx[15], { content: ctx[18].eraser }];
7929
8138
  let button5_props = {
7930
8139
  $$slots: { default: [create_default_slot_34] },
7931
8140
  $$scope: { ctx }
@@ -7934,8 +8143,8 @@ function create_fragment54(ctx) {
7934
8143
  button5_props = assign(button5_props, button5_spread_levels[i]);
7935
8144
  }
7936
8145
  button5 = new Button_default({ props: button5_props });
7937
- button5.$on("click", ctx[28]);
7938
- const button6_spread_levels = [{ class: "clear" }, ctx[14], { content: ctx[8].clear }];
8146
+ button5.$on("click", ctx[29]);
8147
+ const button6_spread_levels = [{ class: "clear" }, ctx[15], { content: ctx[9].clear }];
7939
8148
  let button6_props = {
7940
8149
  $$slots: { default: [create_default_slot_24] },
7941
8150
  $$scope: { ctx }
@@ -7944,23 +8153,9 @@ function create_fragment54(ctx) {
7944
8153
  button6_props = assign(button6_props, button6_spread_levels[i]);
7945
8154
  }
7946
8155
  button6 = new Button_default({ props: button6_props });
7947
- button6.$on("click", ctx[29]);
7948
- const button7_spread_levels = [
7949
- { class: "apps" },
7950
- ctx[14],
7951
- { content: ctx[8].apps },
7952
- { menu: ctx[13] },
7953
- { menu_placement: "right-end" }
7954
- ];
7955
- let button7_props = {
7956
- $$slots: { default: [create_default_slot_14] },
7957
- $$scope: { ctx }
7958
- };
7959
- for (let i = 0; i < button7_spread_levels.length; i += 1) {
7960
- button7_props = assign(button7_props, button7_spread_levels[i]);
7961
- }
7962
- button7 = new Button_default({ props: button7_props });
7963
- let if_block1 = ctx[5] && create_if_block6(ctx);
8156
+ button6.$on("click", ctx[30]);
8157
+ let if_block1 = !ctx[6] && create_if_block_12(ctx);
8158
+ let if_block2 = ctx[5] && create_if_block6(ctx);
7964
8159
  strokewidth0 = new StrokeWidth_default({
7965
8160
  props: {
7966
8161
  app: ctx[0],
@@ -7975,7 +8170,7 @@ function create_fragment54(ctx) {
7975
8170
  disabled: ctx[3]
7976
8171
  }
7977
8172
  });
7978
- strokecolor1 = new StrokeColor_default({
8173
+ textcolor = new TextColor_default({
7979
8174
  props: {
7980
8175
  app: ctx[0],
7981
8176
  theme: ctx[1],
@@ -7997,17 +8192,17 @@ function create_fragment54(ctx) {
7997
8192
  disabled: ctx[3]
7998
8193
  }
7999
8194
  });
8000
- strokecolor2 = new StrokeColor_default({
8195
+ strokecolor1 = new StrokeColor_default({
8001
8196
  props: {
8002
8197
  app: ctx[0],
8003
8198
  theme: ctx[1],
8004
8199
  disabled: ctx[3]
8005
8200
  }
8006
8201
  });
8007
- let each_value = ctx[18];
8202
+ let each_value = ctx[19];
8008
8203
  let each_blocks = [];
8009
8204
  for (let i = 0; i < each_value.length; i += 1) {
8010
- each_blocks[i] = create_each_block3(get_each_context3(ctx, each_value, i));
8205
+ each_blocks[i] = create_each_block4(get_each_context4(ctx, each_value, i));
8011
8206
  }
8012
8207
  return {
8013
8208
  c() {
@@ -8029,10 +8224,11 @@ function create_fragment54(ctx) {
8029
8224
  t6 = space();
8030
8225
  create_component(button6.$$.fragment);
8031
8226
  t7 = space();
8032
- create_component(button7.$$.fragment);
8033
- t8 = space();
8034
8227
  if (if_block1)
8035
8228
  if_block1.c();
8229
+ t8 = space();
8230
+ if (if_block2)
8231
+ if_block2.c();
8036
8232
  t9 = space();
8037
8233
  div8 = element("div");
8038
8234
  div2 = element("div");
@@ -8043,7 +8239,7 @@ function create_fragment54(ctx) {
8043
8239
  create_component(strokecolor0.$$.fragment);
8044
8240
  t12 = space();
8045
8241
  div3 = element("div");
8046
- create_component(strokecolor1.$$.fragment);
8242
+ create_component(textcolor.$$.fragment);
8047
8243
  t13 = space();
8048
8244
  div6 = element("div");
8049
8245
  create_component(shapes2.$$.fragment);
@@ -8054,7 +8250,7 @@ function create_fragment54(ctx) {
8054
8250
  t16 = space();
8055
8251
  div5 = element("div");
8056
8252
  t17 = space();
8057
- create_component(strokecolor2.$$.fragment);
8253
+ create_component(strokecolor1.$$.fragment);
8058
8254
  t18 = space();
8059
8255
  div7 = element("div");
8060
8256
  for (let i = 0; i < each_blocks.length; i += 1) {
@@ -8069,7 +8265,7 @@ function create_fragment54(ctx) {
8069
8265
  attr(div5, "class", div5_class_value = name5 + "-panel-divider");
8070
8266
  attr(div6, "class", div6_class_value = name5 + "-panel shapes");
8071
8267
  attr(div7, "class", div7_class_value = name5 + "-panel apps");
8072
- set_style(div7, "--n", ctx[18].length);
8268
+ set_style(div7, "--n", ctx[19].length);
8073
8269
  attr(div8, "class", div8_class_value = name5 + "-panel-wrapper");
8074
8270
  set_style(div8, "display", "none");
8075
8271
  },
@@ -8092,10 +8288,11 @@ function create_fragment54(ctx) {
8092
8288
  append(div0, t6);
8093
8289
  mount_component(button6, div0, null);
8094
8290
  append(div0, t7);
8095
- mount_component(button7, div0, null);
8096
- insert(target, t8, anchor);
8097
8291
  if (if_block1)
8098
- if_block1.m(target, anchor);
8292
+ if_block1.m(div0, null);
8293
+ insert(target, t8, anchor);
8294
+ if (if_block2)
8295
+ if_block2.m(target, anchor);
8099
8296
  insert(target, t9, anchor);
8100
8297
  insert(target, div8, anchor);
8101
8298
  append(div8, div2);
@@ -8104,11 +8301,11 @@ function create_fragment54(ctx) {
8104
8301
  append(div2, div1);
8105
8302
  append(div2, t11);
8106
8303
  mount_component(strokecolor0, div2, null);
8107
- ctx[34](div2);
8304
+ ctx[35](div2);
8108
8305
  append(div8, t12);
8109
8306
  append(div8, div3);
8110
- mount_component(strokecolor1, div3, null);
8111
- ctx[35](div3);
8307
+ mount_component(textcolor, div3, null);
8308
+ ctx[36](div3);
8112
8309
  append(div8, t13);
8113
8310
  append(div8, div6);
8114
8311
  mount_component(shapes2, div6, null);
@@ -8119,19 +8316,19 @@ function create_fragment54(ctx) {
8119
8316
  append(div6, t16);
8120
8317
  append(div6, div5);
8121
8318
  append(div6, t17);
8122
- mount_component(strokecolor2, div6, null);
8123
- ctx[36](div6);
8319
+ mount_component(strokecolor1, div6, null);
8320
+ ctx[37](div6);
8124
8321
  append(div8, t18);
8125
8322
  append(div8, div7);
8126
8323
  for (let i = 0; i < each_blocks.length; i += 1) {
8127
8324
  each_blocks[i].m(div7, null);
8128
8325
  }
8129
- ctx[37](div7);
8326
+ ctx[38](div7);
8130
8327
  current = true;
8131
8328
  if (!mounted) {
8132
8329
  dispose = [
8133
8330
  action_destroyer(scrollHeight_action = scrollHeight.call(null, div0, ctx[4])),
8134
- action_destroyer(scrollTop_action = scrollTop.call(null, div0, ctx[20]))
8331
+ action_destroyer(scrollTop_action = scrollTop.call(null, div0, ctx[21]))
8135
8332
  ];
8136
8333
  mounted = true;
8137
8334
  }
@@ -8144,7 +8341,7 @@ function create_fragment54(ctx) {
8144
8341
  transition_in(if_block0, 1);
8145
8342
  }
8146
8343
  } else {
8147
- if_block0 = create_if_block_7(ctx2);
8344
+ if_block0 = create_if_block_8(ctx2);
8148
8345
  if_block0.c();
8149
8346
  transition_in(if_block0, 1);
8150
8347
  if_block0.m(t0.parentNode, t0);
@@ -8156,99 +8353,83 @@ function create_fragment54(ctx) {
8156
8353
  });
8157
8354
  check_outros();
8158
8355
  }
8159
- const button0_changes = dirty[0] & 147456 ? get_spread_update(button0_spread_levels, [
8356
+ const button0_changes = dirty[0] & 294912 ? get_spread_update(button0_spread_levels, [
8160
8357
  button0_spread_levels[0],
8161
- dirty[0] & 16384 && get_spread_object(ctx2[14]),
8162
- dirty[0] & 131072 && { content: ctx2[17].clicker }
8358
+ dirty[0] & 32768 && get_spread_object(ctx2[15]),
8359
+ dirty[0] & 262144 && { content: ctx2[18].clicker }
8163
8360
  ]) : {};
8164
- if (dirty[0] & 130 | dirty[1] & 131072) {
8361
+ if (dirty[0] & 258 | dirty[1] & 262144) {
8165
8362
  button0_changes.$$scope = { dirty, ctx: ctx2 };
8166
8363
  }
8167
8364
  button0.$set(button0_changes);
8168
- const button1_changes = dirty[0] & 147456 ? get_spread_update(button1_spread_levels, [
8365
+ const button1_changes = dirty[0] & 294912 ? get_spread_update(button1_spread_levels, [
8169
8366
  button1_spread_levels[0],
8170
- dirty[0] & 16384 && get_spread_object(ctx2[14]),
8171
- dirty[0] & 131072 && { content: ctx2[17].selector }
8367
+ dirty[0] & 32768 && get_spread_object(ctx2[15]),
8368
+ dirty[0] & 262144 && { content: ctx2[18].selector }
8172
8369
  ]) : {};
8173
- if (dirty[0] & 130 | dirty[1] & 131072) {
8370
+ if (dirty[0] & 258 | dirty[1] & 262144) {
8174
8371
  button1_changes.$$scope = { dirty, ctx: ctx2 };
8175
8372
  }
8176
8373
  button1.$set(button1_changes);
8177
- const button2_changes = dirty[0] & 148480 ? get_spread_update(button2_spread_levels, [
8374
+ const button2_changes = dirty[0] & 296960 ? get_spread_update(button2_spread_levels, [
8178
8375
  button2_spread_levels[0],
8179
- dirty[0] & 16384 && get_spread_object(ctx2[14]),
8180
- dirty[0] & 131072 && { content: ctx2[17].pencil },
8181
- dirty[0] & 1024 && { menu: ctx2[10] }
8376
+ dirty[0] & 32768 && get_spread_object(ctx2[15]),
8377
+ dirty[0] & 262144 && { content: ctx2[18].pencil },
8378
+ dirty[0] & 2048 && { menu: ctx2[11] }
8182
8379
  ]) : {};
8183
- if (dirty[0] & 130 | dirty[1] & 131072) {
8380
+ if (dirty[0] & 258 | dirty[1] & 262144) {
8184
8381
  button2_changes.$$scope = { dirty, ctx: ctx2 };
8185
8382
  }
8186
8383
  button2.$set(button2_changes);
8187
- const button3_changes = dirty[0] & 149504 ? get_spread_update(button3_spread_levels, [
8384
+ const button3_changes = dirty[0] & 299008 ? get_spread_update(button3_spread_levels, [
8188
8385
  button3_spread_levels[0],
8189
- dirty[0] & 16384 && get_spread_object(ctx2[14]),
8190
- dirty[0] & 131072 && { content: ctx2[17].text },
8191
- dirty[0] & 2048 && { menu: ctx2[11] }
8386
+ dirty[0] & 32768 && get_spread_object(ctx2[15]),
8387
+ dirty[0] & 262144 && { content: ctx2[18].text },
8388
+ dirty[0] & 4096 && { menu: ctx2[12] }
8192
8389
  ]) : {};
8193
- if (dirty[0] & 130 | dirty[1] & 131072) {
8390
+ if (dirty[0] & 258 | dirty[1] & 262144) {
8194
8391
  button3_changes.$$scope = { dirty, ctx: ctx2 };
8195
8392
  }
8196
8393
  button3.$set(button3_changes);
8197
- const button4_changes = dirty[0] & 20736 ? get_spread_update(button4_spread_levels, [
8394
+ const button4_changes = dirty[0] & 41472 ? get_spread_update(button4_spread_levels, [
8198
8395
  button4_spread_levels[0],
8199
- dirty[0] & 16384 && get_spread_object(ctx2[14]),
8200
- dirty[0] & 256 && { content: ctx2[8].shapes },
8201
- dirty[0] & 4096 && { menu: ctx2[12] }
8396
+ dirty[0] & 32768 && get_spread_object(ctx2[15]),
8397
+ dirty[0] & 512 && { content: ctx2[9].shapes },
8398
+ dirty[0] & 8192 && { menu: ctx2[13] }
8202
8399
  ]) : {};
8203
- if (dirty[0] & 706 | dirty[1] & 131072) {
8400
+ if (dirty[0] & 1410 | dirty[1] & 262144) {
8204
8401
  button4_changes.$$scope = { dirty, ctx: ctx2 };
8205
8402
  }
8206
8403
  button4.$set(button4_changes);
8207
- const button5_changes = dirty[0] & 147456 ? get_spread_update(button5_spread_levels, [
8404
+ const button5_changes = dirty[0] & 294912 ? get_spread_update(button5_spread_levels, [
8208
8405
  button5_spread_levels[0],
8209
- dirty[0] & 16384 && get_spread_object(ctx2[14]),
8210
- dirty[0] & 131072 && { content: ctx2[17].eraser }
8406
+ dirty[0] & 32768 && get_spread_object(ctx2[15]),
8407
+ dirty[0] & 262144 && { content: ctx2[18].eraser }
8211
8408
  ]) : {};
8212
- if (dirty[0] & 130 | dirty[1] & 131072) {
8409
+ if (dirty[0] & 258 | dirty[1] & 262144) {
8213
8410
  button5_changes.$$scope = { dirty, ctx: ctx2 };
8214
8411
  }
8215
8412
  button5.$set(button5_changes);
8216
- const button6_changes = dirty[0] & 16640 ? get_spread_update(button6_spread_levels, [
8413
+ const button6_changes = dirty[0] & 33280 ? get_spread_update(button6_spread_levels, [
8217
8414
  button6_spread_levels[0],
8218
- dirty[0] & 16384 && get_spread_object(ctx2[14]),
8219
- dirty[0] & 256 && { content: ctx2[8].clear }
8415
+ dirty[0] & 32768 && get_spread_object(ctx2[15]),
8416
+ dirty[0] & 512 && { content: ctx2[9].clear }
8220
8417
  ]) : {};
8221
- if (dirty[0] & 2 | dirty[1] & 131072) {
8418
+ if (dirty[0] & 2 | dirty[1] & 262144) {
8222
8419
  button6_changes.$$scope = { dirty, ctx: ctx2 };
8223
8420
  }
8224
8421
  button6.$set(button6_changes);
8225
- const button7_changes = dirty[0] & 24832 ? get_spread_update(button7_spread_levels, [
8226
- button7_spread_levels[0],
8227
- dirty[0] & 16384 && get_spread_object(ctx2[14]),
8228
- dirty[0] & 256 && { content: ctx2[8].apps },
8229
- dirty[0] & 8192 && { menu: ctx2[13] },
8230
- button7_spread_levels[4]
8231
- ]) : {};
8232
- if (dirty[0] & 2 | dirty[1] & 131072) {
8233
- button7_changes.$$scope = { dirty, ctx: ctx2 };
8234
- }
8235
- button7.$set(button7_changes);
8236
- if (scrollHeight_action && is_function(scrollHeight_action.update) && dirty[0] & 16)
8237
- scrollHeight_action.update.call(null, ctx2[4]);
8238
- if (dirty[0] & 32) {
8239
- toggle_class(div0, "scrollable", ctx2[5]);
8240
- }
8241
- if (ctx2[5]) {
8422
+ if (!ctx2[6]) {
8242
8423
  if (if_block1) {
8243
8424
  if_block1.p(ctx2, dirty);
8244
- if (dirty[0] & 32) {
8425
+ if (dirty[0] & 64) {
8245
8426
  transition_in(if_block1, 1);
8246
8427
  }
8247
8428
  } else {
8248
- if_block1 = create_if_block6(ctx2);
8429
+ if_block1 = create_if_block_12(ctx2);
8249
8430
  if_block1.c();
8250
8431
  transition_in(if_block1, 1);
8251
- if_block1.m(t9.parentNode, t9);
8432
+ if_block1.m(div0, null);
8252
8433
  }
8253
8434
  } else if (if_block1) {
8254
8435
  group_outros();
@@ -8257,14 +8438,38 @@ function create_fragment54(ctx) {
8257
8438
  });
8258
8439
  check_outros();
8259
8440
  }
8260
- const strokewidth0_changes = {};
8261
- if (dirty[0] & 1)
8262
- strokewidth0_changes.app = ctx2[0];
8263
- if (dirty[0] & 2)
8264
- strokewidth0_changes.theme = ctx2[1];
8265
- if (dirty[0] & 8)
8266
- strokewidth0_changes.disabled = ctx2[3];
8267
- strokewidth0.$set(strokewidth0_changes);
8441
+ if (scrollHeight_action && is_function(scrollHeight_action.update) && dirty[0] & 16)
8442
+ scrollHeight_action.update.call(null, ctx2[4]);
8443
+ if (dirty[0] & 32) {
8444
+ toggle_class(div0, "scrollable", ctx2[5]);
8445
+ }
8446
+ if (ctx2[5]) {
8447
+ if (if_block2) {
8448
+ if_block2.p(ctx2, dirty);
8449
+ if (dirty[0] & 32) {
8450
+ transition_in(if_block2, 1);
8451
+ }
8452
+ } else {
8453
+ if_block2 = create_if_block6(ctx2);
8454
+ if_block2.c();
8455
+ transition_in(if_block2, 1);
8456
+ if_block2.m(t9.parentNode, t9);
8457
+ }
8458
+ } else if (if_block2) {
8459
+ group_outros();
8460
+ transition_out(if_block2, 1, 1, () => {
8461
+ if_block2 = null;
8462
+ });
8463
+ check_outros();
8464
+ }
8465
+ const strokewidth0_changes = {};
8466
+ if (dirty[0] & 1)
8467
+ strokewidth0_changes.app = ctx2[0];
8468
+ if (dirty[0] & 2)
8469
+ strokewidth0_changes.theme = ctx2[1];
8470
+ if (dirty[0] & 8)
8471
+ strokewidth0_changes.disabled = ctx2[3];
8472
+ strokewidth0.$set(strokewidth0_changes);
8268
8473
  const strokecolor0_changes = {};
8269
8474
  if (dirty[0] & 1)
8270
8475
  strokecolor0_changes.app = ctx2[0];
@@ -8273,14 +8478,14 @@ function create_fragment54(ctx) {
8273
8478
  if (dirty[0] & 8)
8274
8479
  strokecolor0_changes.disabled = ctx2[3];
8275
8480
  strokecolor0.$set(strokecolor0_changes);
8276
- const strokecolor1_changes = {};
8481
+ const textcolor_changes = {};
8277
8482
  if (dirty[0] & 1)
8278
- strokecolor1_changes.app = ctx2[0];
8483
+ textcolor_changes.app = ctx2[0];
8279
8484
  if (dirty[0] & 2)
8280
- strokecolor1_changes.theme = ctx2[1];
8485
+ textcolor_changes.theme = ctx2[1];
8281
8486
  if (dirty[0] & 8)
8282
- strokecolor1_changes.disabled = ctx2[3];
8283
- strokecolor1.$set(strokecolor1_changes);
8487
+ textcolor_changes.disabled = ctx2[3];
8488
+ textcolor.$set(textcolor_changes);
8284
8489
  const shapes_changes = {};
8285
8490
  if (dirty[0] & 1)
8286
8491
  shapes_changes.app = ctx2[0];
@@ -8299,23 +8504,23 @@ function create_fragment54(ctx) {
8299
8504
  if (dirty[0] & 8)
8300
8505
  strokewidth1_changes.disabled = ctx2[3];
8301
8506
  strokewidth1.$set(strokewidth1_changes);
8302
- const strokecolor2_changes = {};
8507
+ const strokecolor1_changes = {};
8303
8508
  if (dirty[0] & 1)
8304
- strokecolor2_changes.app = ctx2[0];
8509
+ strokecolor1_changes.app = ctx2[0];
8305
8510
  if (dirty[0] & 2)
8306
- strokecolor2_changes.theme = ctx2[1];
8511
+ strokecolor1_changes.theme = ctx2[1];
8307
8512
  if (dirty[0] & 8)
8308
- strokecolor2_changes.disabled = ctx2[3];
8309
- strokecolor2.$set(strokecolor2_changes);
8310
- if (dirty[0] & 786435) {
8311
- each_value = ctx2[18];
8513
+ strokecolor1_changes.disabled = ctx2[3];
8514
+ strokecolor1.$set(strokecolor1_changes);
8515
+ if (dirty[0] & 1572867) {
8516
+ each_value = ctx2[19];
8312
8517
  let i;
8313
8518
  for (i = 0; i < each_value.length; i += 1) {
8314
- const child_ctx = get_each_context3(ctx2, each_value, i);
8519
+ const child_ctx = get_each_context4(ctx2, each_value, i);
8315
8520
  if (each_blocks[i]) {
8316
8521
  each_blocks[i].p(child_ctx, dirty);
8317
8522
  } else {
8318
- each_blocks[i] = create_each_block3(child_ctx);
8523
+ each_blocks[i] = create_each_block4(child_ctx);
8319
8524
  each_blocks[i].c();
8320
8525
  each_blocks[i].m(div7, null);
8321
8526
  }
@@ -8325,8 +8530,8 @@ function create_fragment54(ctx) {
8325
8530
  }
8326
8531
  each_blocks.length = each_value.length;
8327
8532
  }
8328
- if (!current || dirty[0] & 262144) {
8329
- set_style(div7, "--n", ctx2[18].length);
8533
+ if (!current || dirty[0] & 524288) {
8534
+ set_style(div7, "--n", ctx2[19].length);
8330
8535
  }
8331
8536
  },
8332
8537
  i(local) {
@@ -8340,14 +8545,14 @@ function create_fragment54(ctx) {
8340
8545
  transition_in(button4.$$.fragment, local);
8341
8546
  transition_in(button5.$$.fragment, local);
8342
8547
  transition_in(button6.$$.fragment, local);
8343
- transition_in(button7.$$.fragment, local);
8344
8548
  transition_in(if_block1);
8549
+ transition_in(if_block2);
8345
8550
  transition_in(strokewidth0.$$.fragment, local);
8346
8551
  transition_in(strokecolor0.$$.fragment, local);
8347
- transition_in(strokecolor1.$$.fragment, local);
8552
+ transition_in(textcolor.$$.fragment, local);
8348
8553
  transition_in(shapes2.$$.fragment, local);
8349
8554
  transition_in(strokewidth1.$$.fragment, local);
8350
- transition_in(strokecolor2.$$.fragment, local);
8555
+ transition_in(strokecolor1.$$.fragment, local);
8351
8556
  current = true;
8352
8557
  },
8353
8558
  o(local) {
@@ -8359,14 +8564,14 @@ function create_fragment54(ctx) {
8359
8564
  transition_out(button4.$$.fragment, local);
8360
8565
  transition_out(button5.$$.fragment, local);
8361
8566
  transition_out(button6.$$.fragment, local);
8362
- transition_out(button7.$$.fragment, local);
8363
8567
  transition_out(if_block1);
8568
+ transition_out(if_block2);
8364
8569
  transition_out(strokewidth0.$$.fragment, local);
8365
8570
  transition_out(strokecolor0.$$.fragment, local);
8366
- transition_out(strokecolor1.$$.fragment, local);
8571
+ transition_out(textcolor.$$.fragment, local);
8367
8572
  transition_out(shapes2.$$.fragment, local);
8368
8573
  transition_out(strokewidth1.$$.fragment, local);
8369
- transition_out(strokecolor2.$$.fragment, local);
8574
+ transition_out(strokecolor1.$$.fragment, local);
8370
8575
  current = false;
8371
8576
  },
8372
8577
  d(detaching) {
@@ -8383,33 +8588,34 @@ function create_fragment54(ctx) {
8383
8588
  destroy_component(button4);
8384
8589
  destroy_component(button5);
8385
8590
  destroy_component(button6);
8386
- destroy_component(button7);
8591
+ if (if_block1)
8592
+ if_block1.d();
8387
8593
  if (detaching)
8388
8594
  detach(t8);
8389
- if (if_block1)
8390
- if_block1.d(detaching);
8595
+ if (if_block2)
8596
+ if_block2.d(detaching);
8391
8597
  if (detaching)
8392
8598
  detach(t9);
8393
8599
  if (detaching)
8394
8600
  detach(div8);
8395
8601
  destroy_component(strokewidth0);
8396
8602
  destroy_component(strokecolor0);
8397
- ctx[34](null);
8398
- destroy_component(strokecolor1);
8399
8603
  ctx[35](null);
8604
+ destroy_component(textcolor);
8605
+ ctx[36](null);
8400
8606
  destroy_component(shapes2);
8401
8607
  destroy_component(strokewidth1);
8402
- destroy_component(strokecolor2);
8403
- ctx[36](null);
8404
- destroy_each(each_blocks, detaching);
8608
+ destroy_component(strokecolor1);
8405
8609
  ctx[37](null);
8610
+ destroy_each(each_blocks, detaching);
8611
+ ctx[38](null);
8406
8612
  mounted = false;
8407
8613
  run_all(dispose);
8408
8614
  }
8409
8615
  };
8410
8616
  }
8411
8617
  var name5 = "fastboard-toolbar";
8412
- function instance54($$self, $$props, $$invalidate) {
8618
+ function instance55($$self, $$props, $$invalidate) {
8413
8619
  let t;
8414
8620
  let hotkeys;
8415
8621
  let c;
@@ -8419,11 +8625,11 @@ function instance54($$self, $$props, $$invalidate) {
8419
8625
  let status;
8420
8626
  let max_scroll;
8421
8627
  let $top;
8422
- 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);
8423
- let $memberState, $$unsubscribe_memberState = noop, $$subscribe_memberState = () => ($$unsubscribe_memberState(), $$unsubscribe_memberState = subscribe(memberState, ($$value) => $$invalidate(33, $memberState = $$value)), memberState);
8628
+ 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);
8629
+ let $memberState, $$unsubscribe_memberState = noop, $$subscribe_memberState = () => ($$unsubscribe_memberState(), $$unsubscribe_memberState = subscribe(memberState, ($$value) => $$invalidate(34, $memberState = $$value)), memberState);
8424
8630
  let $apps;
8425
- let $status, $$unsubscribe_status = noop, $$subscribe_status = () => ($$unsubscribe_status(), $$unsubscribe_status = subscribe(status, ($$value) => $$invalidate(19, $status = $$value)), status);
8426
- component_subscribe($$self, apps, ($$value) => $$invalidate(18, $apps = $$value));
8631
+ let $status, $$unsubscribe_status = noop, $$subscribe_status = () => ($$unsubscribe_status(), $$unsubscribe_status = subscribe(status, ($$value) => $$invalidate(20, $status = $$value)), status);
8632
+ component_subscribe($$self, apps, ($$value) => $$invalidate(19, $apps = $$value));
8427
8633
  $$self.$$.on_destroy.push(() => $$unsubscribe_scroll_height());
8428
8634
  $$self.$$.on_destroy.push(() => $$unsubscribe_memberState());
8429
8635
  $$self.$$.on_destroy.push(() => $$unsubscribe_status());
@@ -8435,6 +8641,7 @@ function instance54($$self, $$props, $$invalidate) {
8435
8641
  $$subscribe_scroll_height();
8436
8642
  let { computed_height = 0 } = $$props;
8437
8643
  let { scrollable = false } = $$props;
8644
+ let { hide_apps = false } = $$props;
8438
8645
  let last_shape = "rectangle";
8439
8646
  let pencil_panel;
8440
8647
  let text_panel;
@@ -8442,7 +8649,7 @@ function instance54($$self, $$props, $$invalidate) {
8442
8649
  let apps_panel;
8443
8650
  let btn_props;
8444
8651
  let top = writable(0);
8445
- component_subscribe($$self, top, (value) => $$invalidate(39, $top = value));
8652
+ component_subscribe($$self, top, (value) => $$invalidate(40, $top = value));
8446
8653
  function scroll_up() {
8447
8654
  set_store_value(top, $top = clamp($top - 32 - 4, 0, max_scroll), $top);
8448
8655
  }
@@ -8477,25 +8684,25 @@ function instance54($$self, $$props, $$invalidate) {
8477
8684
  function div2_binding($$value) {
8478
8685
  binding_callbacks[$$value ? "unshift" : "push"](() => {
8479
8686
  pencil_panel = $$value;
8480
- $$invalidate(10, pencil_panel);
8687
+ $$invalidate(11, pencil_panel);
8481
8688
  });
8482
8689
  }
8483
8690
  function div3_binding($$value) {
8484
8691
  binding_callbacks[$$value ? "unshift" : "push"](() => {
8485
8692
  text_panel = $$value;
8486
- $$invalidate(11, text_panel);
8693
+ $$invalidate(12, text_panel);
8487
8694
  });
8488
8695
  }
8489
8696
  function div6_binding($$value) {
8490
8697
  binding_callbacks[$$value ? "unshift" : "push"](() => {
8491
8698
  shapes_panel = $$value;
8492
- $$invalidate(12, shapes_panel);
8699
+ $$invalidate(13, shapes_panel);
8493
8700
  });
8494
8701
  }
8495
8702
  function div7_binding($$value) {
8496
8703
  binding_callbacks[$$value ? "unshift" : "push"](() => {
8497
8704
  apps_panel = $$value;
8498
- $$invalidate(13, apps_panel);
8705
+ $$invalidate(14, apps_panel);
8499
8706
  });
8500
8707
  }
8501
8708
  $$self.$$set = ($$props2) => {
@@ -8510,14 +8717,16 @@ function instance54($$self, $$props, $$invalidate) {
8510
8717
  if ("scroll_height" in $$props2)
8511
8718
  $$subscribe_scroll_height($$invalidate(4, scroll_height = $$props2.scroll_height));
8512
8719
  if ("computed_height" in $$props2)
8513
- $$invalidate(30, computed_height = $$props2.computed_height);
8720
+ $$invalidate(31, computed_height = $$props2.computed_height);
8514
8721
  if ("scrollable" in $$props2)
8515
8722
  $$invalidate(5, scrollable = $$props2.scrollable);
8723
+ if ("hide_apps" in $$props2)
8724
+ $$invalidate(6, hide_apps = $$props2.hide_apps);
8516
8725
  };
8517
8726
  $$self.$$.update = () => {
8518
8727
  if ($$self.$$.dirty[0] & 10) {
8519
8728
  $:
8520
- $$invalidate(14, btn_props = {
8729
+ $$invalidate(15, btn_props = {
8521
8730
  name: name5,
8522
8731
  theme,
8523
8732
  disabled,
@@ -8526,15 +8735,15 @@ function instance54($$self, $$props, $$invalidate) {
8526
8735
  }
8527
8736
  if ($$self.$$.dirty[0] & 4) {
8528
8737
  $:
8529
- $$invalidate(8, t = i18n4[language]);
8738
+ $$invalidate(9, t = i18n4[language]);
8530
8739
  }
8531
8740
  if ($$self.$$.dirty[0] & 1) {
8532
8741
  $:
8533
- $$invalidate(31, hotkeys = app == null ? void 0 : app.hotKeys);
8742
+ $$invalidate(32, hotkeys = app == null ? void 0 : app.hotKeys);
8534
8743
  }
8535
- if ($$self.$$.dirty[0] & 256 | $$self.$$.dirty[1] & 1) {
8744
+ if ($$self.$$.dirty[0] & 512 | $$self.$$.dirty[1] & 2) {
8536
8745
  $:
8537
- $$invalidate(17, c = {
8746
+ $$invalidate(18, c = {
8538
8747
  clicker: tooltip(t.clicker, hotkeys == null ? void 0 : hotkeys.changeToClick),
8539
8748
  selector: tooltip(t.selector, hotkeys == null ? void 0 : hotkeys.changeToSelector),
8540
8749
  pencil: tooltip(t.pencil, hotkeys == null ? void 0 : hotkeys.changeToPencil),
@@ -8544,29 +8753,29 @@ function instance54($$self, $$props, $$invalidate) {
8544
8753
  }
8545
8754
  if ($$self.$$.dirty[0] & 1) {
8546
8755
  $:
8547
- $$subscribe_memberState($$invalidate(16, memberState = app == null ? void 0 : app.memberState));
8756
+ $$subscribe_memberState($$invalidate(17, memberState = app == null ? void 0 : app.memberState));
8548
8757
  }
8549
- if ($$self.$$.dirty[1] & 4) {
8758
+ if ($$self.$$.dirty[1] & 8) {
8550
8759
  $:
8551
- $$invalidate(7, appliance = $memberState == null ? void 0 : $memberState.currentApplianceName);
8760
+ $$invalidate(8, appliance = $memberState == null ? void 0 : $memberState.currentApplianceName);
8552
8761
  }
8553
- if ($$self.$$.dirty[1] & 4) {
8762
+ if ($$self.$$.dirty[1] & 8) {
8554
8763
  $:
8555
- $$invalidate(6, shape = $memberState == null ? void 0 : $memberState.shapeType);
8764
+ $$invalidate(7, shape = $memberState == null ? void 0 : $memberState.shapeType);
8556
8765
  }
8557
8766
  if ($$self.$$.dirty[0] & 1) {
8558
8767
  $:
8559
- $$subscribe_status($$invalidate(15, status = app == null ? void 0 : app.appsStatus));
8768
+ $$subscribe_status($$invalidate(16, status = app == null ? void 0 : app.appsStatus));
8560
8769
  }
8561
- if ($$self.$$.dirty[0] & 192) {
8770
+ if ($$self.$$.dirty[0] & 384) {
8562
8771
  $:
8563
8772
  if (applianceShapes.includes(appliance)) {
8564
- $$invalidate(9, last_shape = appliance);
8773
+ $$invalidate(10, last_shape = appliance);
8565
8774
  } else if (shape) {
8566
- $$invalidate(9, last_shape = shape);
8775
+ $$invalidate(10, last_shape = shape);
8567
8776
  }
8568
8777
  }
8569
- if ($$self.$$.dirty[0] & 1073741856 | $$self.$$.dirty[1] & 2) {
8778
+ if ($$self.$$.dirty[0] & 32 | $$self.$$.dirty[1] & 5) {
8570
8779
  $:
8571
8780
  max_scroll = scrollable ? $scroll_height + (32 + 8) * 2 - computed_height : 0;
8572
8781
  }
@@ -8578,6 +8787,7 @@ function instance54($$self, $$props, $$invalidate) {
8578
8787
  disabled,
8579
8788
  scroll_height,
8580
8789
  scrollable,
8790
+ hide_apps,
8581
8791
  shape,
8582
8792
  appliance,
8583
8793
  t,
@@ -8615,14 +8825,15 @@ function instance54($$self, $$props, $$invalidate) {
8615
8825
  var Contents = class extends SvelteComponent {
8616
8826
  constructor(options) {
8617
8827
  super();
8618
- init(this, options, instance54, create_fragment54, safe_not_equal, {
8828
+ init(this, options, instance55, create_fragment55, safe_not_equal, {
8619
8829
  app: 0,
8620
8830
  theme: 1,
8621
8831
  language: 2,
8622
8832
  disabled: 3,
8623
8833
  scroll_height: 4,
8624
- computed_height: 30,
8625
- scrollable: 5
8834
+ computed_height: 31,
8835
+ scrollable: 5,
8836
+ hide_apps: 6
8626
8837
  }, null, [-1, -1]);
8627
8838
  }
8628
8839
  };
@@ -8689,7 +8900,7 @@ function create_if_block7(ctx) {
8689
8900
  }
8690
8901
  };
8691
8902
  }
8692
- function create_fragment55(ctx) {
8903
+ function create_fragment56(ctx) {
8693
8904
  let div1;
8694
8905
  let div0;
8695
8906
  let contents;
@@ -8714,10 +8925,11 @@ function create_fragment55(ctx) {
8714
8925
  app: ctx[0],
8715
8926
  theme: ctx[1],
8716
8927
  language: ctx[2],
8717
- disabled: ctx[6],
8718
- scroll_height: ctx[9],
8719
- computed_height: ctx[5],
8720
- scrollable: ctx[4]
8928
+ disabled: ctx[7],
8929
+ scroll_height: ctx[10],
8930
+ computed_height: ctx[6],
8931
+ scrollable: ctx[5],
8932
+ hide_apps: ctx[4]
8721
8933
  }
8722
8934
  });
8723
8935
  function select_block_type(ctx2, dirty) {
@@ -8741,7 +8953,7 @@ function create_fragment55(ctx) {
8741
8953
  path1 = svg_element("path");
8742
8954
  if_block.c();
8743
8955
  attr(div0, "class", div0_class_value = name6 + "-contents " + ctx[1]);
8744
- set_style(div0, "height", ctx[4] ? ctx[5] + "px" : "auto", false);
8956
+ set_style(div0, "height", ctx[5] ? ctx[6] + "px" : "auto", false);
8745
8957
  attr(input, "type", "checkbox");
8746
8958
  attr(path0, "fill", "#fff");
8747
8959
  attr(path0, "stroke", "none");
@@ -8773,8 +8985,8 @@ function create_fragment55(ctx) {
8773
8985
  current = true;
8774
8986
  if (!mounted) {
8775
8987
  dispose = [
8776
- listen(input, "change", ctx[13]),
8777
- action_destroyer(height_action = height.call(null, div1, ctx[8]))
8988
+ listen(input, "change", ctx[15]),
8989
+ action_destroyer(height_action = height.call(null, div1, ctx[9]))
8778
8990
  ];
8779
8991
  mounted = true;
8780
8992
  }
@@ -8787,18 +8999,20 @@ function create_fragment55(ctx) {
8787
8999
  contents_changes.theme = ctx2[1];
8788
9000
  if (dirty & 4)
8789
9001
  contents_changes.language = ctx2[2];
9002
+ if (dirty & 128)
9003
+ contents_changes.disabled = ctx2[7];
8790
9004
  if (dirty & 64)
8791
- contents_changes.disabled = ctx2[6];
9005
+ contents_changes.computed_height = ctx2[6];
8792
9006
  if (dirty & 32)
8793
- contents_changes.computed_height = ctx2[5];
9007
+ contents_changes.scrollable = ctx2[5];
8794
9008
  if (dirty & 16)
8795
- contents_changes.scrollable = ctx2[4];
9009
+ contents_changes.hide_apps = ctx2[4];
8796
9010
  contents.$set(contents_changes);
8797
9011
  if (!current || dirty & 2 && div0_class_value !== (div0_class_value = name6 + "-contents " + ctx2[1])) {
8798
9012
  attr(div0, "class", div0_class_value);
8799
9013
  }
8800
- if (dirty & 48) {
8801
- set_style(div0, "height", ctx2[4] ? ctx2[5] + "px" : "auto", false);
9014
+ if (dirty & 96) {
9015
+ set_style(div0, "height", ctx2[5] ? ctx2[6] + "px" : "auto", false);
8802
9016
  }
8803
9017
  if (dirty & 8) {
8804
9018
  input.checked = ctx2[3];
@@ -8844,24 +9058,26 @@ function create_fragment55(ctx) {
8844
9058
  };
8845
9059
  }
8846
9060
  var name6 = "fastboard-toolbar";
8847
- function instance55($$self, $$props, $$invalidate) {
9061
+ function instance56($$self, $$props, $$invalidate) {
8848
9062
  let writable2;
8849
9063
  let disabled;
8850
9064
  let computed_height;
8851
9065
  let scrollable;
9066
+ let hide_apps;
8852
9067
  let $container_height;
8853
9068
  let $scroll_height;
8854
- let $writable, $$unsubscribe_writable = noop, $$subscribe_writable = () => ($$unsubscribe_writable(), $$unsubscribe_writable = subscribe(writable2, ($$value) => $$invalidate(12, $writable = $$value)), writable2);
9069
+ let $writable, $$unsubscribe_writable = noop, $$subscribe_writable = () => ($$unsubscribe_writable(), $$unsubscribe_writable = subscribe(writable2, ($$value) => $$invalidate(14, $writable = $$value)), writable2);
8855
9070
  $$self.$$.on_destroy.push(() => $$unsubscribe_writable());
8856
9071
  let { app = null } = $$props;
8857
9072
  let { theme = "light" } = $$props;
8858
9073
  let { language = "en" } = $$props;
9074
+ let { config = {} } = $$props;
8859
9075
  const extra_height = (32 + 4 + 4) * 2;
8860
9076
  let collapsed = false;
8861
9077
  let container_height = writable(0);
8862
- component_subscribe($$self, container_height, (value) => $$invalidate(10, $container_height = value));
9078
+ component_subscribe($$self, container_height, (value) => $$invalidate(12, $container_height = value));
8863
9079
  let scroll_height = writable(0);
8864
- component_subscribe($$self, scroll_height, (value) => $$invalidate(11, $scroll_height = value));
9080
+ component_subscribe($$self, scroll_height, (value) => $$invalidate(13, $scroll_height = value));
8865
9081
  function input_change_handler() {
8866
9082
  collapsed = this.checked;
8867
9083
  $$invalidate(3, collapsed);
@@ -8873,23 +9089,30 @@ function instance55($$self, $$props, $$invalidate) {
8873
9089
  $$invalidate(1, theme = $$props2.theme);
8874
9090
  if ("language" in $$props2)
8875
9091
  $$invalidate(2, language = $$props2.language);
9092
+ if ("config" in $$props2)
9093
+ $$invalidate(11, config = $$props2.config);
8876
9094
  };
8877
9095
  $$self.$$.update = () => {
9096
+ var _a;
8878
9097
  if ($$self.$$.dirty & 1) {
8879
9098
  $:
8880
- $$subscribe_writable($$invalidate(7, writable2 = app == null ? void 0 : app.writable));
9099
+ $$subscribe_writable($$invalidate(8, writable2 = app == null ? void 0 : app.writable));
8881
9100
  }
8882
- if ($$self.$$.dirty & 4096) {
9101
+ if ($$self.$$.dirty & 16384) {
9102
+ $:
9103
+ $$invalidate(7, disabled = !$writable);
9104
+ }
9105
+ if ($$self.$$.dirty & 12288) {
8883
9106
  $:
8884
- $$invalidate(6, disabled = !$writable);
9107
+ $$invalidate(6, computed_height = clamp($container_height, extra_height, $scroll_height + extra_height));
8885
9108
  }
8886
- if ($$self.$$.dirty & 3072) {
9109
+ if ($$self.$$.dirty & 12288) {
8887
9110
  $:
8888
- $$invalidate(5, computed_height = clamp($container_height, extra_height, $scroll_height + extra_height));
9111
+ $$invalidate(5, scrollable = $scroll_height + extra_height > $container_height);
8889
9112
  }
8890
- if ($$self.$$.dirty & 3072) {
9113
+ if ($$self.$$.dirty & 2048) {
8891
9114
  $:
8892
- $$invalidate(4, scrollable = $scroll_height + extra_height > $container_height);
9115
+ $$invalidate(4, hide_apps = ((_a = config.apps) == null ? void 0 : _a.enable) === false);
8893
9116
  }
8894
9117
  };
8895
9118
  return [
@@ -8897,12 +9120,14 @@ function instance55($$self, $$props, $$invalidate) {
8897
9120
  theme,
8898
9121
  language,
8899
9122
  collapsed,
9123
+ hide_apps,
8900
9124
  scrollable,
8901
9125
  computed_height,
8902
9126
  disabled,
8903
9127
  writable2,
8904
9128
  container_height,
8905
9129
  scroll_height,
9130
+ config,
8906
9131
  $container_height,
8907
9132
  $scroll_height,
8908
9133
  $writable,
@@ -8912,13 +9137,18 @@ function instance55($$self, $$props, $$invalidate) {
8912
9137
  var Toolbar = class extends SvelteComponent {
8913
9138
  constructor(options) {
8914
9139
  super();
8915
- init(this, options, instance55, create_fragment55, safe_not_equal, { app: 0, theme: 1, language: 2 });
9140
+ init(this, options, instance56, create_fragment56, safe_not_equal, {
9141
+ app: 0,
9142
+ theme: 1,
9143
+ language: 2,
9144
+ config: 11
9145
+ });
8916
9146
  }
8917
9147
  };
8918
9148
  var Toolbar_default = Toolbar;
8919
9149
 
8920
9150
  // src/components/PlayerControl/PlayerControl.svelte
8921
- function get_each_context4(ctx, list, i) {
9151
+ function get_each_context5(ctx, list, i) {
8922
9152
  const child_ctx = ctx.slice();
8923
9153
  child_ctx[25] = list[i];
8924
9154
  return child_ctx;
@@ -9399,7 +9629,7 @@ function create_default_slot5(ctx) {
9399
9629
  return {
9400
9630
  c() {
9401
9631
  t0 = text(t0_value);
9402
- t1 = text("x\n ");
9632
+ t1 = text("x\r\n ");
9403
9633
  },
9404
9634
  m(target, anchor) {
9405
9635
  insert(target, t0, anchor);
@@ -9414,7 +9644,7 @@ function create_default_slot5(ctx) {
9414
9644
  }
9415
9645
  };
9416
9646
  }
9417
- function create_each_block4(key_1, ctx) {
9647
+ function create_each_block5(key_1, ctx) {
9418
9648
  let first;
9419
9649
  let button;
9420
9650
  let current;
@@ -9476,7 +9706,7 @@ function create_each_block4(key_1, ctx) {
9476
9706
  }
9477
9707
  };
9478
9708
  }
9479
- function create_fragment56(ctx) {
9709
+ function create_fragment57(ctx) {
9480
9710
  let div0;
9481
9711
  let button0;
9482
9712
  let t0;
@@ -9529,9 +9759,9 @@ function create_fragment56(ctx) {
9529
9759
  let each_value = speeds;
9530
9760
  const get_key = (ctx2) => ctx2[25];
9531
9761
  for (let i = 0; i < each_value.length; i += 1) {
9532
- let child_ctx = get_each_context4(ctx, each_value, i);
9762
+ let child_ctx = get_each_context5(ctx, each_value, i);
9533
9763
  let key = get_key(child_ctx);
9534
- each_1_lookup.set(key, each_blocks[i] = create_each_block4(key, child_ctx));
9764
+ each_1_lookup.set(key, each_blocks[i] = create_each_block5(key, child_ctx));
9535
9765
  }
9536
9766
  return {
9537
9767
  c() {
@@ -9620,7 +9850,7 @@ function create_fragment56(ctx) {
9620
9850
  if (dirty & 294929) {
9621
9851
  each_value = speeds;
9622
9852
  group_outros();
9623
- 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);
9853
+ 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);
9624
9854
  check_outros();
9625
9855
  }
9626
9856
  },
@@ -9680,7 +9910,7 @@ function format(ms) {
9680
9910
  return String(m).padStart(2, "0") + ":" + String(s % 60).padStart(2, "0");
9681
9911
  }
9682
9912
  var name7 = "fastboard-player-control";
9683
- function instance56($$self, $$props, $$invalidate) {
9913
+ function instance57($$self, $$props, $$invalidate) {
9684
9914
  let t;
9685
9915
  let canPlay;
9686
9916
  let disabled;
@@ -9825,7 +10055,7 @@ function instance56($$self, $$props, $$invalidate) {
9825
10055
  var PlayerControl = class extends SvelteComponent {
9826
10056
  constructor(options) {
9827
10057
  super();
9828
- init(this, options, instance56, create_fragment56, safe_not_equal, {
10058
+ init(this, options, instance57, create_fragment57, safe_not_equal, {
9829
10059
  player: 19,
9830
10060
  theme: 0,
9831
10061
  language: 20,
@@ -9836,7 +10066,7 @@ var PlayerControl = class extends SvelteComponent {
9836
10066
  var PlayerControl_default = PlayerControl;
9837
10067
 
9838
10068
  // src/components/Fastboard/ReplayFastboard.svelte
9839
- function create_fragment57(ctx) {
10069
+ function create_fragment58(ctx) {
9840
10070
  let div2;
9841
10071
  let div0;
9842
10072
  let div0_class_value;
@@ -9914,7 +10144,7 @@ function create_fragment57(ctx) {
9914
10144
  };
9915
10145
  }
9916
10146
  var name8 = "fastboard";
9917
- function instance57($$self, $$props, $$invalidate) {
10147
+ function instance58($$self, $$props, $$invalidate) {
9918
10148
  let { player = null } = $$props;
9919
10149
  let { theme = "light" } = $$props;
9920
10150
  let { language = "en" } = $$props;
@@ -9968,7 +10198,7 @@ function instance57($$self, $$props, $$invalidate) {
9968
10198
  var ReplayFastboard = class extends SvelteComponent {
9969
10199
  constructor(options) {
9970
10200
  super();
9971
- init(this, options, instance57, create_fragment57, safe_not_equal, {
10201
+ init(this, options, instance58, create_fragment58, safe_not_equal, {
9972
10202
  player: 0,
9973
10203
  theme: 1,
9974
10204
  language: 2,
@@ -9979,35 +10209,55 @@ var ReplayFastboard = class extends SvelteComponent {
9979
10209
  var ReplayFastboard_default = ReplayFastboard;
9980
10210
 
9981
10211
  // src/components/Fastboard/Fastboard.svelte
9982
- function create_fragment58(ctx) {
9983
- let div4;
9984
- let div0;
9985
- let div0_class_value;
9986
- let t0;
9987
- let div1;
10212
+ function create_if_block_32(ctx) {
9988
10213
  let toolbar;
9989
- let div1_class_value;
9990
- let t1;
9991
- let div2;
9992
- let redoundo;
9993
- let t2;
9994
- let zoomcontrol;
9995
- let div2_class_value;
9996
- let t3;
9997
- let div3;
9998
- let pagecontrol;
9999
- let div3_class_value;
10000
- let div4_class_value;
10001
10214
  let current;
10002
- let mounted;
10003
- let dispose;
10004
10215
  toolbar = new Toolbar_default({
10005
10216
  props: {
10006
10217
  app: ctx[0],
10007
10218
  theme: ctx[1],
10008
- language: ctx[2]
10219
+ language: ctx[2],
10220
+ config: ctx[3].toolbar
10009
10221
  }
10010
10222
  });
10223
+ return {
10224
+ c() {
10225
+ create_component(toolbar.$$.fragment);
10226
+ },
10227
+ m(target, anchor) {
10228
+ mount_component(toolbar, target, anchor);
10229
+ current = true;
10230
+ },
10231
+ p(ctx2, dirty) {
10232
+ const toolbar_changes = {};
10233
+ if (dirty & 1)
10234
+ toolbar_changes.app = ctx2[0];
10235
+ if (dirty & 2)
10236
+ toolbar_changes.theme = ctx2[1];
10237
+ if (dirty & 4)
10238
+ toolbar_changes.language = ctx2[2];
10239
+ if (dirty & 8)
10240
+ toolbar_changes.config = ctx2[3].toolbar;
10241
+ toolbar.$set(toolbar_changes);
10242
+ },
10243
+ i(local) {
10244
+ if (current)
10245
+ return;
10246
+ transition_in(toolbar.$$.fragment, local);
10247
+ current = true;
10248
+ },
10249
+ o(local) {
10250
+ transition_out(toolbar.$$.fragment, local);
10251
+ current = false;
10252
+ },
10253
+ d(detaching) {
10254
+ destroy_component(toolbar, detaching);
10255
+ }
10256
+ };
10257
+ }
10258
+ function create_if_block_23(ctx) {
10259
+ let redoundo;
10260
+ let current;
10011
10261
  redoundo = new RedoUndo_default({
10012
10262
  props: {
10013
10263
  app: ctx[0],
@@ -10015,6 +10265,42 @@ function create_fragment58(ctx) {
10015
10265
  language: ctx[2]
10016
10266
  }
10017
10267
  });
10268
+ return {
10269
+ c() {
10270
+ create_component(redoundo.$$.fragment);
10271
+ },
10272
+ m(target, anchor) {
10273
+ mount_component(redoundo, target, anchor);
10274
+ current = true;
10275
+ },
10276
+ p(ctx2, dirty) {
10277
+ const redoundo_changes = {};
10278
+ if (dirty & 1)
10279
+ redoundo_changes.app = ctx2[0];
10280
+ if (dirty & 2)
10281
+ redoundo_changes.theme = ctx2[1];
10282
+ if (dirty & 4)
10283
+ redoundo_changes.language = ctx2[2];
10284
+ redoundo.$set(redoundo_changes);
10285
+ },
10286
+ i(local) {
10287
+ if (current)
10288
+ return;
10289
+ transition_in(redoundo.$$.fragment, local);
10290
+ current = true;
10291
+ },
10292
+ o(local) {
10293
+ transition_out(redoundo.$$.fragment, local);
10294
+ current = false;
10295
+ },
10296
+ d(detaching) {
10297
+ destroy_component(redoundo, detaching);
10298
+ }
10299
+ };
10300
+ }
10301
+ function create_if_block_14(ctx) {
10302
+ let zoomcontrol;
10303
+ let current;
10018
10304
  zoomcontrol = new ZoomControl_default({
10019
10305
  props: {
10020
10306
  app: ctx[0],
@@ -10022,6 +10308,42 @@ function create_fragment58(ctx) {
10022
10308
  language: ctx[2]
10023
10309
  }
10024
10310
  });
10311
+ return {
10312
+ c() {
10313
+ create_component(zoomcontrol.$$.fragment);
10314
+ },
10315
+ m(target, anchor) {
10316
+ mount_component(zoomcontrol, target, anchor);
10317
+ current = true;
10318
+ },
10319
+ p(ctx2, dirty) {
10320
+ const zoomcontrol_changes = {};
10321
+ if (dirty & 1)
10322
+ zoomcontrol_changes.app = ctx2[0];
10323
+ if (dirty & 2)
10324
+ zoomcontrol_changes.theme = ctx2[1];
10325
+ if (dirty & 4)
10326
+ zoomcontrol_changes.language = ctx2[2];
10327
+ zoomcontrol.$set(zoomcontrol_changes);
10328
+ },
10329
+ i(local) {
10330
+ if (current)
10331
+ return;
10332
+ transition_in(zoomcontrol.$$.fragment, local);
10333
+ current = true;
10334
+ },
10335
+ o(local) {
10336
+ transition_out(zoomcontrol.$$.fragment, local);
10337
+ current = false;
10338
+ },
10339
+ d(detaching) {
10340
+ destroy_component(zoomcontrol, detaching);
10341
+ }
10342
+ };
10343
+ }
10344
+ function create_if_block9(ctx) {
10345
+ let pagecontrol;
10346
+ let current;
10025
10347
  pagecontrol = new PageControl_default({
10026
10348
  props: {
10027
10349
  app: ctx[0],
@@ -10029,46 +10351,110 @@ function create_fragment58(ctx) {
10029
10351
  language: ctx[2]
10030
10352
  }
10031
10353
  });
10354
+ return {
10355
+ c() {
10356
+ create_component(pagecontrol.$$.fragment);
10357
+ },
10358
+ m(target, anchor) {
10359
+ mount_component(pagecontrol, target, anchor);
10360
+ current = true;
10361
+ },
10362
+ p(ctx2, dirty) {
10363
+ const pagecontrol_changes = {};
10364
+ if (dirty & 1)
10365
+ pagecontrol_changes.app = ctx2[0];
10366
+ if (dirty & 2)
10367
+ pagecontrol_changes.theme = ctx2[1];
10368
+ if (dirty & 4)
10369
+ pagecontrol_changes.language = ctx2[2];
10370
+ pagecontrol.$set(pagecontrol_changes);
10371
+ },
10372
+ i(local) {
10373
+ if (current)
10374
+ return;
10375
+ transition_in(pagecontrol.$$.fragment, local);
10376
+ current = true;
10377
+ },
10378
+ o(local) {
10379
+ transition_out(pagecontrol.$$.fragment, local);
10380
+ current = false;
10381
+ },
10382
+ d(detaching) {
10383
+ destroy_component(pagecontrol, detaching);
10384
+ }
10385
+ };
10386
+ }
10387
+ function create_fragment59(ctx) {
10388
+ var _a, _b, _c, _d;
10389
+ let div4;
10390
+ let div0;
10391
+ let div0_class_value;
10392
+ let t0;
10393
+ let div1;
10394
+ let div1_class_value;
10395
+ let t1;
10396
+ let div2;
10397
+ let t2;
10398
+ let div2_class_value;
10399
+ let t3;
10400
+ let div3;
10401
+ let div3_class_value;
10402
+ let div4_class_value;
10403
+ let current;
10404
+ let mounted;
10405
+ let dispose;
10406
+ let if_block0 = ((_a = ctx[3].toolbar) == null ? void 0 : _a.enable) !== false && create_if_block_32(ctx);
10407
+ let if_block1 = ((_b = ctx[3].redo_undo) == null ? void 0 : _b.enable) !== false && create_if_block_23(ctx);
10408
+ let if_block2 = ((_c = ctx[3].zoom_control) == null ? void 0 : _c.enable) !== false && create_if_block_14(ctx);
10409
+ let if_block3 = ((_d = ctx[3].page_control) == null ? void 0 : _d.enable) !== false && create_if_block9(ctx);
10032
10410
  return {
10033
10411
  c() {
10034
10412
  div4 = element("div");
10035
10413
  div0 = element("div");
10036
10414
  t0 = space();
10037
10415
  div1 = element("div");
10038
- create_component(toolbar.$$.fragment);
10416
+ if (if_block0)
10417
+ if_block0.c();
10039
10418
  t1 = space();
10040
10419
  div2 = element("div");
10041
- create_component(redoundo.$$.fragment);
10420
+ if (if_block1)
10421
+ if_block1.c();
10042
10422
  t2 = space();
10043
- create_component(zoomcontrol.$$.fragment);
10423
+ if (if_block2)
10424
+ if_block2.c();
10044
10425
  t3 = space();
10045
10426
  div3 = element("div");
10046
- create_component(pagecontrol.$$.fragment);
10427
+ if (if_block3)
10428
+ if_block3.c();
10047
10429
  attr(div0, "class", div0_class_value = name9 + "-view");
10048
10430
  attr(div1, "class", div1_class_value = name9 + "-left");
10049
- toggle_class(div1, "hidden", !(ctx[4] === "visible" || ctx[4] === "toolbar-only"));
10431
+ toggle_class(div1, "hidden", !(ctx[5] === "visible" || ctx[5] === "toolbar-only"));
10050
10432
  attr(div2, "class", div2_class_value = name9 + "-bottom-left");
10051
- toggle_class(div2, "hidden", ctx[4] !== "visible");
10433
+ toggle_class(div2, "hidden", ctx[5] !== "visible");
10052
10434
  attr(div3, "class", div3_class_value = name9 + "-bottom-right");
10053
- toggle_class(div3, "hidden", ctx[4] !== "visible");
10435
+ toggle_class(div3, "hidden", ctx[5] !== "visible");
10054
10436
  attr(div4, "class", div4_class_value = name9 + "-root");
10055
10437
  toggle_class(div4, "loading", !ctx[0]);
10056
10438
  },
10057
10439
  m(target, anchor) {
10058
10440
  insert(target, div4, anchor);
10059
10441
  append(div4, div0);
10060
- ctx[12](div0);
10442
+ ctx[13](div0);
10061
10443
  append(div4, t0);
10062
10444
  append(div4, div1);
10063
- mount_component(toolbar, div1, null);
10445
+ if (if_block0)
10446
+ if_block0.m(div1, null);
10064
10447
  append(div4, t1);
10065
10448
  append(div4, div2);
10066
- mount_component(redoundo, div2, null);
10449
+ if (if_block1)
10450
+ if_block1.m(div2, null);
10067
10451
  append(div2, t2);
10068
- mount_component(zoomcontrol, div2, null);
10452
+ if (if_block2)
10453
+ if_block2.m(div2, null);
10069
10454
  append(div4, t3);
10070
10455
  append(div4, div3);
10071
- mount_component(pagecontrol, div3, null);
10456
+ if (if_block3)
10457
+ if_block3.m(div3, null);
10072
10458
  current = true;
10073
10459
  if (!mounted) {
10074
10460
  dispose = listen(div0, "touchstart", tippy_hide_all, true);
@@ -10076,46 +10462,91 @@ function create_fragment58(ctx) {
10076
10462
  }
10077
10463
  },
10078
10464
  p(ctx2, [dirty]) {
10079
- const toolbar_changes = {};
10080
- if (dirty & 1)
10081
- toolbar_changes.app = ctx2[0];
10082
- if (dirty & 2)
10083
- toolbar_changes.theme = ctx2[1];
10084
- if (dirty & 4)
10085
- toolbar_changes.language = ctx2[2];
10086
- toolbar.$set(toolbar_changes);
10087
- if (dirty & 16) {
10088
- toggle_class(div1, "hidden", !(ctx2[4] === "visible" || ctx2[4] === "toolbar-only"));
10465
+ var _a2, _b2, _c2, _d2;
10466
+ if (((_a2 = ctx2[3].toolbar) == null ? void 0 : _a2.enable) !== false) {
10467
+ if (if_block0) {
10468
+ if_block0.p(ctx2, dirty);
10469
+ if (dirty & 8) {
10470
+ transition_in(if_block0, 1);
10471
+ }
10472
+ } else {
10473
+ if_block0 = create_if_block_32(ctx2);
10474
+ if_block0.c();
10475
+ transition_in(if_block0, 1);
10476
+ if_block0.m(div1, null);
10477
+ }
10478
+ } else if (if_block0) {
10479
+ group_outros();
10480
+ transition_out(if_block0, 1, 1, () => {
10481
+ if_block0 = null;
10482
+ });
10483
+ check_outros();
10089
10484
  }
10090
- const redoundo_changes = {};
10091
- if (dirty & 1)
10092
- redoundo_changes.app = ctx2[0];
10093
- if (dirty & 2)
10094
- redoundo_changes.theme = ctx2[1];
10095
- if (dirty & 4)
10096
- redoundo_changes.language = ctx2[2];
10097
- redoundo.$set(redoundo_changes);
10098
- const zoomcontrol_changes = {};
10099
- if (dirty & 1)
10100
- zoomcontrol_changes.app = ctx2[0];
10101
- if (dirty & 2)
10102
- zoomcontrol_changes.theme = ctx2[1];
10103
- if (dirty & 4)
10104
- zoomcontrol_changes.language = ctx2[2];
10105
- zoomcontrol.$set(zoomcontrol_changes);
10106
- if (dirty & 16) {
10107
- toggle_class(div2, "hidden", ctx2[4] !== "visible");
10485
+ if (dirty & 32) {
10486
+ toggle_class(div1, "hidden", !(ctx2[5] === "visible" || ctx2[5] === "toolbar-only"));
10108
10487
  }
10109
- const pagecontrol_changes = {};
10110
- if (dirty & 1)
10111
- pagecontrol_changes.app = ctx2[0];
10112
- if (dirty & 2)
10113
- pagecontrol_changes.theme = ctx2[1];
10114
- if (dirty & 4)
10115
- pagecontrol_changes.language = ctx2[2];
10116
- pagecontrol.$set(pagecontrol_changes);
10117
- if (dirty & 16) {
10118
- toggle_class(div3, "hidden", ctx2[4] !== "visible");
10488
+ if (((_b2 = ctx2[3].redo_undo) == null ? void 0 : _b2.enable) !== false) {
10489
+ if (if_block1) {
10490
+ if_block1.p(ctx2, dirty);
10491
+ if (dirty & 8) {
10492
+ transition_in(if_block1, 1);
10493
+ }
10494
+ } else {
10495
+ if_block1 = create_if_block_23(ctx2);
10496
+ if_block1.c();
10497
+ transition_in(if_block1, 1);
10498
+ if_block1.m(div2, t2);
10499
+ }
10500
+ } else if (if_block1) {
10501
+ group_outros();
10502
+ transition_out(if_block1, 1, 1, () => {
10503
+ if_block1 = null;
10504
+ });
10505
+ check_outros();
10506
+ }
10507
+ if (((_c2 = ctx2[3].zoom_control) == null ? void 0 : _c2.enable) !== false) {
10508
+ if (if_block2) {
10509
+ if_block2.p(ctx2, dirty);
10510
+ if (dirty & 8) {
10511
+ transition_in(if_block2, 1);
10512
+ }
10513
+ } else {
10514
+ if_block2 = create_if_block_14(ctx2);
10515
+ if_block2.c();
10516
+ transition_in(if_block2, 1);
10517
+ if_block2.m(div2, null);
10518
+ }
10519
+ } else if (if_block2) {
10520
+ group_outros();
10521
+ transition_out(if_block2, 1, 1, () => {
10522
+ if_block2 = null;
10523
+ });
10524
+ check_outros();
10525
+ }
10526
+ if (dirty & 32) {
10527
+ toggle_class(div2, "hidden", ctx2[5] !== "visible");
10528
+ }
10529
+ if (((_d2 = ctx2[3].page_control) == null ? void 0 : _d2.enable) !== false) {
10530
+ if (if_block3) {
10531
+ if_block3.p(ctx2, dirty);
10532
+ if (dirty & 8) {
10533
+ transition_in(if_block3, 1);
10534
+ }
10535
+ } else {
10536
+ if_block3 = create_if_block9(ctx2);
10537
+ if_block3.c();
10538
+ transition_in(if_block3, 1);
10539
+ if_block3.m(div3, null);
10540
+ }
10541
+ } else if (if_block3) {
10542
+ group_outros();
10543
+ transition_out(if_block3, 1, 1, () => {
10544
+ if_block3 = null;
10545
+ });
10546
+ check_outros();
10547
+ }
10548
+ if (dirty & 32) {
10549
+ toggle_class(div3, "hidden", ctx2[5] !== "visible");
10119
10550
  }
10120
10551
  if (dirty & 1) {
10121
10552
  toggle_class(div4, "loading", !ctx2[0]);
@@ -10124,40 +10555,44 @@ function create_fragment58(ctx) {
10124
10555
  i(local) {
10125
10556
  if (current)
10126
10557
  return;
10127
- transition_in(toolbar.$$.fragment, local);
10128
- transition_in(redoundo.$$.fragment, local);
10129
- transition_in(zoomcontrol.$$.fragment, local);
10130
- transition_in(pagecontrol.$$.fragment, local);
10558
+ transition_in(if_block0);
10559
+ transition_in(if_block1);
10560
+ transition_in(if_block2);
10561
+ transition_in(if_block3);
10131
10562
  current = true;
10132
10563
  },
10133
10564
  o(local) {
10134
- transition_out(toolbar.$$.fragment, local);
10135
- transition_out(redoundo.$$.fragment, local);
10136
- transition_out(zoomcontrol.$$.fragment, local);
10137
- transition_out(pagecontrol.$$.fragment, local);
10565
+ transition_out(if_block0);
10566
+ transition_out(if_block1);
10567
+ transition_out(if_block2);
10568
+ transition_out(if_block3);
10138
10569
  current = false;
10139
10570
  },
10140
10571
  d(detaching) {
10141
10572
  if (detaching)
10142
10573
  detach(div4);
10143
- ctx[12](null);
10144
- destroy_component(toolbar);
10145
- destroy_component(redoundo);
10146
- destroy_component(zoomcontrol);
10147
- destroy_component(pagecontrol);
10574
+ ctx[13](null);
10575
+ if (if_block0)
10576
+ if_block0.d();
10577
+ if (if_block1)
10578
+ if_block1.d();
10579
+ if (if_block2)
10580
+ if_block2.d();
10581
+ if (if_block3)
10582
+ if_block3.d();
10148
10583
  mounted = false;
10149
10584
  dispose();
10150
10585
  }
10151
10586
  };
10152
10587
  }
10153
10588
  var name9 = "fastboard";
10154
- function instance58($$self, $$props, $$invalidate) {
10589
+ function instance59($$self, $$props, $$invalidate) {
10155
10590
  let writable2;
10156
10591
  let boxState;
10157
10592
  let focusedApp;
10158
- let $focusedApp, $$unsubscribe_focusedApp = noop, $$subscribe_focusedApp = () => ($$unsubscribe_focusedApp(), $$unsubscribe_focusedApp = subscribe(focusedApp, ($$value) => $$invalidate(9, $focusedApp = $$value)), focusedApp);
10159
- let $boxState, $$unsubscribe_boxState = noop, $$subscribe_boxState = () => ($$unsubscribe_boxState(), $$unsubscribe_boxState = subscribe(boxState, ($$value) => $$invalidate(10, $boxState = $$value)), boxState);
10160
- let $writable, $$unsubscribe_writable = noop, $$subscribe_writable = () => ($$unsubscribe_writable(), $$unsubscribe_writable = subscribe(writable2, ($$value) => $$invalidate(11, $writable = $$value)), writable2);
10593
+ let $focusedApp, $$unsubscribe_focusedApp = noop, $$subscribe_focusedApp = () => ($$unsubscribe_focusedApp(), $$unsubscribe_focusedApp = subscribe(focusedApp, ($$value) => $$invalidate(10, $focusedApp = $$value)), focusedApp);
10594
+ let $boxState, $$unsubscribe_boxState = noop, $$subscribe_boxState = () => ($$unsubscribe_boxState(), $$unsubscribe_boxState = subscribe(boxState, ($$value) => $$invalidate(11, $boxState = $$value)), boxState);
10595
+ let $writable, $$unsubscribe_writable = noop, $$subscribe_writable = () => ($$unsubscribe_writable(), $$unsubscribe_writable = subscribe(writable2, ($$value) => $$invalidate(12, $writable = $$value)), writable2);
10161
10596
  $$self.$$.on_destroy.push(() => $$unsubscribe_focusedApp());
10162
10597
  $$self.$$.on_destroy.push(() => $$unsubscribe_boxState());
10163
10598
  $$self.$$.on_destroy.push(() => $$unsubscribe_writable());
@@ -10165,6 +10600,7 @@ function instance58($$self, $$props, $$invalidate) {
10165
10600
  let { theme = "light" } = $$props;
10166
10601
  let { language = "en" } = $$props;
10167
10602
  let { containerRef = void 0 } = $$props;
10603
+ let { config = {} } = $$props;
10168
10604
  const AppsShowToolbar = ["DocsViewer", "Slide"];
10169
10605
  let container;
10170
10606
  let layout = "hidden";
@@ -10180,7 +10616,7 @@ function instance58($$self, $$props, $$invalidate) {
10180
10616
  function div0_binding($$value) {
10181
10617
  binding_callbacks[$$value ? "unshift" : "push"](() => {
10182
10618
  container = $$value;
10183
- $$invalidate(3, container);
10619
+ $$invalidate(4, container);
10184
10620
  });
10185
10621
  }
10186
10622
  $$self.$$set = ($$props2) => {
@@ -10191,36 +10627,38 @@ function instance58($$self, $$props, $$invalidate) {
10191
10627
  if ("language" in $$props2)
10192
10628
  $$invalidate(2, language = $$props2.language);
10193
10629
  if ("containerRef" in $$props2)
10194
- $$invalidate(8, containerRef = $$props2.containerRef);
10630
+ $$invalidate(9, containerRef = $$props2.containerRef);
10631
+ if ("config" in $$props2)
10632
+ $$invalidate(3, config = $$props2.config);
10195
10633
  };
10196
10634
  $$self.$$.update = () => {
10197
10635
  if ($$self.$$.dirty & 1) {
10198
10636
  $:
10199
- $$subscribe_writable($$invalidate(7, writable2 = app == null ? void 0 : app.writable));
10637
+ $$subscribe_writable($$invalidate(8, writable2 = app == null ? void 0 : app.writable));
10200
10638
  }
10201
10639
  if ($$self.$$.dirty & 1) {
10202
10640
  $:
10203
- $$subscribe_boxState($$invalidate(6, boxState = app == null ? void 0 : app.boxState));
10641
+ $$subscribe_boxState($$invalidate(7, boxState = app == null ? void 0 : app.boxState));
10204
10642
  }
10205
10643
  if ($$self.$$.dirty & 1) {
10206
10644
  $:
10207
- $$subscribe_focusedApp($$invalidate(5, focusedApp = app == null ? void 0 : app.focusedApp));
10645
+ $$subscribe_focusedApp($$invalidate(6, focusedApp = app == null ? void 0 : app.focusedApp));
10208
10646
  }
10209
- if ($$self.$$.dirty & 3584) {
10647
+ if ($$self.$$.dirty & 7168) {
10210
10648
  $:
10211
10649
  if (!$writable) {
10212
- $$invalidate(4, layout = "hidden");
10650
+ $$invalidate(5, layout = "hidden");
10213
10651
  } else if ($boxState === "maximized") {
10214
10652
  if ($focusedApp && AppsShowToolbar.some((kind) => ($focusedApp || "").includes(kind))) {
10215
- $$invalidate(4, layout = "toolbar-only");
10653
+ $$invalidate(5, layout = "toolbar-only");
10216
10654
  } else {
10217
- $$invalidate(4, layout = "hidden");
10655
+ $$invalidate(5, layout = "hidden");
10218
10656
  }
10219
10657
  } else {
10220
- $$invalidate(4, layout = "visible");
10658
+ $$invalidate(5, layout = "visible");
10221
10659
  }
10222
10660
  }
10223
- if ($$self.$$.dirty & 9) {
10661
+ if ($$self.$$.dirty & 17) {
10224
10662
  $:
10225
10663
  try {
10226
10664
  if (app && container)
@@ -10241,6 +10679,7 @@ function instance58($$self, $$props, $$invalidate) {
10241
10679
  app,
10242
10680
  theme,
10243
10681
  language,
10682
+ config,
10244
10683
  container,
10245
10684
  layout,
10246
10685
  focusedApp,
@@ -10256,11 +10695,12 @@ function instance58($$self, $$props, $$invalidate) {
10256
10695
  var Fastboard = class extends SvelteComponent {
10257
10696
  constructor(options) {
10258
10697
  super();
10259
- init(this, options, instance58, create_fragment58, safe_not_equal, {
10698
+ init(this, options, instance59, create_fragment59, safe_not_equal, {
10260
10699
  app: 0,
10261
10700
  theme: 1,
10262
10701
  language: 2,
10263
- containerRef: 8
10702
+ containerRef: 9,
10703
+ config: 3
10264
10704
  });
10265
10705
  }
10266
10706
  };
@@ -10276,10 +10716,10 @@ function injectStyle(text2) {
10276
10716
  }
10277
10717
  }
10278
10718
 
10279
- // inline-sass-content:./src/style.scss
10280
- 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}';
10719
+ // inline-sass-content:.\src\style.scss
10720
+ 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}';
10281
10721
 
10282
- // inline-sass-stub:./src/style.scss
10722
+ // inline-sass-stub:.\src\style.scss
10283
10723
  injectStyle(style_default);
10284
10724
  export {
10285
10725
  Fastboard_default as Fastboard,