@netless/fastboard-ui 0.3.0-canary.6 → 0.3.1

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.
package/dist/index.mjs CHANGED
@@ -130,6 +130,12 @@ function insert(target, node, anchor) {
130
130
  function detach(node) {
131
131
  node.parentNode.removeChild(node);
132
132
  }
133
+ function destroy_each(iterations, detaching) {
134
+ for (let i = 0; i < iterations.length; i += 1) {
135
+ if (iterations[i])
136
+ iterations[i].d(detaching);
137
+ }
138
+ }
133
139
  function element(name10) {
134
140
  return document.createElement(name10);
135
141
  }
@@ -3518,6 +3524,7 @@ function tippy_hide_all() {
3518
3524
  }
3519
3525
  var tippy_menu = {
3520
3526
  delay: 0,
3527
+ duration: [50, 300],
3521
3528
  placement: "right-start",
3522
3529
  interactive: true,
3523
3530
  trigger: "click"
@@ -4806,6 +4813,7 @@ function instance48($$self, $$props, $$invalidate) {
4806
4813
  }
4807
4814
  function addPage() {
4808
4815
  app == null ? void 0 : app.addPage({ after: true });
4816
+ app == null ? void 0 : app.nextPage();
4809
4817
  }
4810
4818
  $$self.$$set = ($$props2) => {
4811
4819
  if ("app" in $$props2)
@@ -5652,7 +5660,7 @@ var geogebra_default = "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy
5652
5660
  // src/behaviors/icons/countdown.svg
5653
5661
  var countdown_default = "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiBhcmlhLWhpZGRlbj0idHJ1ZSIgcm9sZT0iaW1nIiBjbGFzcz0iaWNvbmlmeSBpY29uaWZ5LS1yYWRpeC1pY29ucyIgd2lkdGg9IjMyIiBoZWlnaHQ9IjMyIiBwcmVzZXJ2ZUFzcGVjdFJhdGlvPSJ4TWlkWU1pZCBtZWV0IiB2aWV3Qm94PSIwIDAgMTUgMTUiPjxwYXRoIGZpbGw9ImdyZXkiIGZpbGwtcnVsZT0iZXZlbm9kZCIgZD0iTTEzLjE1IDcuNWMwLTIuODM1LTIuMjEtNS42NS01LjY1LTUuNjVjLTIuNzc4IDAtNC4xNTEgMi4wNTYtNC43MzcgMy4xNUg0LjVhLjUuNSAwIDAgMSAwIDFoLTNhLjUuNSAwIDAgMS0uNS0uNXYtM2EuNS41IDAgMCAxIDEgMHYxLjgxM0MyLjcwNSAzLjA3MSA0LjMzNC44NSA3LjUuODVjNC4wNjMgMCA2LjY1IDMuMzM1IDYuNjUgNi42NWMwIDMuMzE1LTIuNTg3IDYuNjUtNi42NSA2LjY1Yy0xLjk0NCAwLTMuNTYyLS43Ny00LjcxNS0xLjk0MmE2Ljc3MiA2Ljc3MiAwIDAgMS0xLjQyNy0yLjE2N2EuNS41IDAgMSAxIC45MjUtLjM4Yy4yOC42ODEuNjkyIDEuMzE0IDEuMjE2IDEuODQ2Yy45NzIuOTkgMi4zMzYgMS42NDMgNC4wMDEgMS42NDNjMy40NCAwIDUuNjUtMi44MTUgNS42NS01LjY1Wk03IDEwVjVoMXY1SDdaIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiPjwvcGF0aD48L3N2Zz4=";
5654
5662
 
5655
- // src/behaviors/index.ts
5663
+ // src/behaviors/apps.ts
5656
5664
  var AppsInToolbar = class {
5657
5665
  constructor(_data) {
5658
5666
  this._data = _data;
@@ -5671,8 +5679,8 @@ var AppsInToolbar = class {
5671
5679
  this._listeners = this._listeners.filter((item) => item !== fn);
5672
5680
  };
5673
5681
  }
5674
- push(data) {
5675
- this._data.push(data);
5682
+ push(...data) {
5683
+ this._data.push(...data);
5676
5684
  this._listeners.forEach((fn) => fn(this._data));
5677
5685
  }
5678
5686
  insert(data, index) {
@@ -6594,14 +6602,14 @@ var Shapes_default = Shapes;
6594
6602
  // src/components/Toolbar/components/Contents.svelte
6595
6603
  function get_each_context3(ctx, list, i) {
6596
6604
  const child_ctx = ctx.slice();
6597
- child_ctx[39] = list[i];
6598
- const constants_0 = child_ctx[39];
6599
- child_ctx[40] = constants_0.icon;
6600
- child_ctx[41] = constants_0.label;
6601
- child_ctx[42] = constants_0.kind;
6602
- child_ctx[43] = constants_0.onClick;
6603
- const constants_1 = child_ctx[18] && child_ctx[18][child_ctx[42]];
6604
- child_ctx[44] = constants_1;
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;
6605
6613
  return child_ctx;
6606
6614
  }
6607
6615
  function create_if_block_7(ctx) {
@@ -6616,7 +6624,7 @@ function create_if_block_7(ctx) {
6616
6624
  button_props = assign(button_props, button_spread_levels[i]);
6617
6625
  }
6618
6626
  button = new Button_default({ props: button_props });
6619
- button.$on("click", ctx[20]);
6627
+ button.$on("click", ctx[21]);
6620
6628
  return {
6621
6629
  c() {
6622
6630
  create_component(button.$$.fragment);
@@ -6627,7 +6635,7 @@ function create_if_block_7(ctx) {
6627
6635
  },
6628
6636
  p(ctx2, dirty) {
6629
6637
  const button_changes = dirty[0] & 16384 ? get_spread_update(button_spread_levels, [button_spread_levels[0], get_spread_object(ctx2[14])]) : {};
6630
- if (dirty[0] & 2 | dirty[1] & 65536) {
6638
+ if (dirty[0] & 2 | dirty[1] & 131072) {
6631
6639
  button_changes.$$scope = { dirty, ctx: ctx2 };
6632
6640
  }
6633
6641
  button.$set(button_changes);
@@ -7617,7 +7625,7 @@ function create_if_block6(ctx) {
7617
7625
  $$scope: { ctx }
7618
7626
  }
7619
7627
  });
7620
- button.$on("click", ctx[21]);
7628
+ button.$on("click", ctx[22]);
7621
7629
  return {
7622
7630
  c() {
7623
7631
  create_component(button.$$.fragment);
@@ -7632,7 +7640,7 @@ function create_if_block6(ctx) {
7632
7640
  button_changes.theme = ctx2[1];
7633
7641
  if (dirty[0] & 8)
7634
7642
  button_changes.disabled = ctx2[3];
7635
- if (dirty[0] & 2 | dirty[1] & 65536) {
7643
+ if (dirty[0] & 2 | dirty[1] & 131072) {
7636
7644
  button_changes.$$scope = { dirty, ctx: ctx2 };
7637
7645
  }
7638
7646
  button.$set(button_changes);
@@ -7685,7 +7693,7 @@ function create_default_slot4(ctx) {
7685
7693
  }
7686
7694
  };
7687
7695
  }
7688
- function create_each_block3(key_1, ctx) {
7696
+ function create_each_block3(ctx) {
7689
7697
  let button;
7690
7698
  let img;
7691
7699
  let img_class_value;
@@ -7694,7 +7702,7 @@ function create_each_block3(key_1, ctx) {
7694
7702
  let img_title_value;
7695
7703
  let t0;
7696
7704
  let span;
7697
- let t1_value = ctx[41] + "";
7705
+ let t1_value = ctx[42] + "";
7698
7706
  let t1;
7699
7707
  let span_class_value;
7700
7708
  let t2;
@@ -7705,8 +7713,6 @@ function create_each_block3(key_1, ctx) {
7705
7713
  let mounted;
7706
7714
  let dispose;
7707
7715
  return {
7708
- key: key_1,
7709
- first: null,
7710
7716
  c() {
7711
7717
  button = element("button");
7712
7718
  img = element("img");
@@ -7715,18 +7721,17 @@ function create_each_block3(key_1, ctx) {
7715
7721
  t1 = text(t1_value);
7716
7722
  t2 = space();
7717
7723
  attr(img, "class", img_class_value = name5 + "-app-btn-icon " + ctx[1]);
7718
- if (!src_url_equal(img.src, img_src_value = ctx[40]))
7724
+ if (!src_url_equal(img.src, img_src_value = ctx[41]))
7719
7725
  attr(img, "src", img_src_value);
7720
- attr(img, "alt", img_alt_value = ctx[42]);
7721
- attr(img, "title", img_title_value = ctx[41]);
7726
+ attr(img, "alt", img_alt_value = ctx[43]);
7727
+ attr(img, "title", img_title_value = ctx[42]);
7722
7728
  attr(span, "class", span_class_value = name5 + "-app-btn-text " + ctx[1]);
7723
- attr(button, "class", button_class_value = name5 + "-app-btn " + ctx[42] + " " + ctx[1]);
7724
- attr(button, "title", button_title_value = ctx[41] + (ctx[44] && ctx[44].reason ? ": " + ctx[44].reason : ""));
7725
- attr(button, "data-app-kind", button_data_app_kind_value = ctx[39].kind);
7726
- button.disabled = button_disabled_value = ctx[44] && ctx[44].status !== "idle";
7727
- toggle_class(button, "is-loading", ctx[44] && ctx[44].status === "loading");
7728
- toggle_class(button, "is-failed", ctx[44] && ctx[44].status === "failed");
7729
- this.first = button;
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");
7730
7735
  },
7731
7736
  m(target, anchor) {
7732
7737
  insert(target, button, anchor);
@@ -7737,8 +7742,8 @@ function create_each_block3(key_1, ctx) {
7737
7742
  append(button, t2);
7738
7743
  if (!mounted) {
7739
7744
  dispose = listen(button, "click", function() {
7740
- if (is_function(ctx[0] && ctx[43].bind(null, ctx[0])))
7741
- (ctx[0] && ctx[43].bind(null, ctx[0])).apply(this, arguments);
7745
+ if (is_function(ctx[0] && ctx[44].bind(null, ctx[0])))
7746
+ (ctx[0] && ctx[44].bind(null, ctx[0])).apply(this, arguments);
7742
7747
  });
7743
7748
  mounted = true;
7744
7749
  }
@@ -7748,23 +7753,37 @@ function create_each_block3(key_1, ctx) {
7748
7753
  if (dirty[0] & 2 && img_class_value !== (img_class_value = name5 + "-app-btn-icon " + ctx[1])) {
7749
7754
  attr(img, "class", img_class_value);
7750
7755
  }
7756
+ if (dirty[0] & 262144 && !src_url_equal(img.src, img_src_value = ctx[41])) {
7757
+ attr(img, "src", img_src_value);
7758
+ }
7759
+ if (dirty[0] & 262144 && img_alt_value !== (img_alt_value = ctx[43])) {
7760
+ attr(img, "alt", img_alt_value);
7761
+ }
7762
+ if (dirty[0] & 262144 && img_title_value !== (img_title_value = ctx[42])) {
7763
+ attr(img, "title", img_title_value);
7764
+ }
7765
+ if (dirty[0] & 262144 && t1_value !== (t1_value = ctx[42] + ""))
7766
+ set_data(t1, t1_value);
7751
7767
  if (dirty[0] & 2 && span_class_value !== (span_class_value = name5 + "-app-btn-text " + ctx[1])) {
7752
7768
  attr(span, "class", span_class_value);
7753
7769
  }
7754
- if (dirty[0] & 2 && button_class_value !== (button_class_value = name5 + "-app-btn " + ctx[42] + " " + ctx[1])) {
7770
+ if (dirty[0] & 262146 && button_class_value !== (button_class_value = name5 + "-app-btn " + ctx[43] + " " + ctx[1])) {
7755
7771
  attr(button, "class", button_class_value);
7756
7772
  }
7757
- if (dirty[0] & 262144 && button_title_value !== (button_title_value = ctx[41] + (ctx[44] && ctx[44].reason ? ": " + ctx[44].reason : ""))) {
7773
+ if (dirty[0] & 786432 && button_title_value !== (button_title_value = ctx[42] + (ctx[45] && ctx[45].reason ? ": " + ctx[45].reason : ""))) {
7758
7774
  attr(button, "title", button_title_value);
7759
7775
  }
7760
- if (dirty[0] & 262144 && button_disabled_value !== (button_disabled_value = ctx[44] && ctx[44].status !== "idle")) {
7776
+ if (dirty[0] & 262144 && button_data_app_kind_value !== (button_data_app_kind_value = ctx[40].kind)) {
7777
+ attr(button, "data-app-kind", button_data_app_kind_value);
7778
+ }
7779
+ if (dirty[0] & 786432 && button_disabled_value !== (button_disabled_value = ctx[45] && ctx[45].status !== "idle")) {
7761
7780
  button.disabled = button_disabled_value;
7762
7781
  }
7763
- if (dirty[0] & 262146) {
7764
- toggle_class(button, "is-loading", ctx[44] && ctx[44].status === "loading");
7782
+ if (dirty[0] & 786434) {
7783
+ toggle_class(button, "is-loading", ctx[45] && ctx[45].status === "loading");
7765
7784
  }
7766
- if (dirty[0] & 262146) {
7767
- toggle_class(button, "is-failed", ctx[44] && ctx[44].status === "failed");
7785
+ if (dirty[0] & 786434) {
7786
+ toggle_class(button, "is-failed", ctx[45] && ctx[45].status === "failed");
7768
7787
  }
7769
7788
  },
7770
7789
  d(detaching) {
@@ -7827,8 +7846,6 @@ function create_fragment54(ctx) {
7827
7846
  let div6_class_value;
7828
7847
  let t18;
7829
7848
  let div7;
7830
- let each_blocks = [];
7831
- let each_1_lookup = /* @__PURE__ */ new Map();
7832
7849
  let div7_class_value;
7833
7850
  let div8_class_value;
7834
7851
  let current;
@@ -7848,7 +7865,7 @@ function create_fragment54(ctx) {
7848
7865
  button0_props = assign(button0_props, button0_spread_levels[i]);
7849
7866
  }
7850
7867
  button0 = new Button_default({ props: button0_props });
7851
- button0.$on("click", ctx[22]);
7868
+ button0.$on("click", ctx[23]);
7852
7869
  const button1_spread_levels = [
7853
7870
  { class: "selector" },
7854
7871
  ctx[14],
@@ -7862,7 +7879,7 @@ function create_fragment54(ctx) {
7862
7879
  button1_props = assign(button1_props, button1_spread_levels[i]);
7863
7880
  }
7864
7881
  button1 = new Button_default({ props: button1_props });
7865
- button1.$on("click", ctx[23]);
7882
+ button1.$on("click", ctx[24]);
7866
7883
  const button2_spread_levels = [
7867
7884
  { class: "pencil" },
7868
7885
  ctx[14],
@@ -7877,7 +7894,7 @@ function create_fragment54(ctx) {
7877
7894
  button2_props = assign(button2_props, button2_spread_levels[i]);
7878
7895
  }
7879
7896
  button2 = new Button_default({ props: button2_props });
7880
- button2.$on("click", ctx[24]);
7897
+ button2.$on("click", ctx[25]);
7881
7898
  const button3_spread_levels = [
7882
7899
  { class: "text" },
7883
7900
  ctx[14],
@@ -7892,7 +7909,7 @@ function create_fragment54(ctx) {
7892
7909
  button3_props = assign(button3_props, button3_spread_levels[i]);
7893
7910
  }
7894
7911
  button3 = new Button_default({ props: button3_props });
7895
- button3.$on("click", ctx[25]);
7912
+ button3.$on("click", ctx[26]);
7896
7913
  const button4_spread_levels = [
7897
7914
  { class: "shapes" },
7898
7915
  ctx[14],
@@ -7907,7 +7924,7 @@ function create_fragment54(ctx) {
7907
7924
  button4_props = assign(button4_props, button4_spread_levels[i]);
7908
7925
  }
7909
7926
  button4 = new Button_default({ props: button4_props });
7910
- button4.$on("click", ctx[26]);
7927
+ button4.$on("click", ctx[27]);
7911
7928
  const button5_spread_levels = [{ class: "eraser" }, ctx[14], { content: ctx[17].eraser }];
7912
7929
  let button5_props = {
7913
7930
  $$slots: { default: [create_default_slot_34] },
@@ -7917,7 +7934,7 @@ function create_fragment54(ctx) {
7917
7934
  button5_props = assign(button5_props, button5_spread_levels[i]);
7918
7935
  }
7919
7936
  button5 = new Button_default({ props: button5_props });
7920
- button5.$on("click", ctx[27]);
7937
+ button5.$on("click", ctx[28]);
7921
7938
  const button6_spread_levels = [{ class: "clear" }, ctx[14], { content: ctx[8].clear }];
7922
7939
  let button6_props = {
7923
7940
  $$slots: { default: [create_default_slot_24] },
@@ -7927,7 +7944,7 @@ function create_fragment54(ctx) {
7927
7944
  button6_props = assign(button6_props, button6_spread_levels[i]);
7928
7945
  }
7929
7946
  button6 = new Button_default({ props: button6_props });
7930
- button6.$on("click", ctx[28]);
7947
+ button6.$on("click", ctx[29]);
7931
7948
  const button7_spread_levels = [
7932
7949
  { class: "apps" },
7933
7950
  ctx[14],
@@ -7987,12 +8004,10 @@ function create_fragment54(ctx) {
7987
8004
  disabled: ctx[3]
7988
8005
  }
7989
8006
  });
7990
- let each_value = apps.data;
7991
- const get_key = (ctx2) => ctx2[39].kind;
8007
+ let each_value = ctx[18];
8008
+ let each_blocks = [];
7992
8009
  for (let i = 0; i < each_value.length; i += 1) {
7993
- let child_ctx = get_each_context3(ctx, each_value, i);
7994
- let key = get_key(child_ctx);
7995
- each_1_lookup.set(key, each_blocks[i] = create_each_block3(key, child_ctx));
8010
+ each_blocks[i] = create_each_block3(get_each_context3(ctx, each_value, i));
7996
8011
  }
7997
8012
  return {
7998
8013
  c() {
@@ -8054,6 +8069,7 @@ function create_fragment54(ctx) {
8054
8069
  attr(div5, "class", div5_class_value = name5 + "-panel-divider");
8055
8070
  attr(div6, "class", div6_class_value = name5 + "-panel shapes");
8056
8071
  attr(div7, "class", div7_class_value = name5 + "-panel apps");
8072
+ set_style(div7, "--n", ctx[18].length);
8057
8073
  attr(div8, "class", div8_class_value = name5 + "-panel-wrapper");
8058
8074
  set_style(div8, "display", "none");
8059
8075
  },
@@ -8088,11 +8104,11 @@ function create_fragment54(ctx) {
8088
8104
  append(div2, div1);
8089
8105
  append(div2, t11);
8090
8106
  mount_component(strokecolor0, div2, null);
8091
- ctx[33](div2);
8107
+ ctx[34](div2);
8092
8108
  append(div8, t12);
8093
8109
  append(div8, div3);
8094
8110
  mount_component(strokecolor1, div3, null);
8095
- ctx[34](div3);
8111
+ ctx[35](div3);
8096
8112
  append(div8, t13);
8097
8113
  append(div8, div6);
8098
8114
  mount_component(shapes2, div6, null);
@@ -8104,18 +8120,18 @@ function create_fragment54(ctx) {
8104
8120
  append(div6, div5);
8105
8121
  append(div6, t17);
8106
8122
  mount_component(strokecolor2, div6, null);
8107
- ctx[35](div6);
8123
+ ctx[36](div6);
8108
8124
  append(div8, t18);
8109
8125
  append(div8, div7);
8110
8126
  for (let i = 0; i < each_blocks.length; i += 1) {
8111
8127
  each_blocks[i].m(div7, null);
8112
8128
  }
8113
- ctx[36](div7);
8129
+ ctx[37](div7);
8114
8130
  current = true;
8115
8131
  if (!mounted) {
8116
8132
  dispose = [
8117
8133
  action_destroyer(scrollHeight_action = scrollHeight.call(null, div0, ctx[4])),
8118
- action_destroyer(scrollTop_action = scrollTop.call(null, div0, ctx[19]))
8134
+ action_destroyer(scrollTop_action = scrollTop.call(null, div0, ctx[20]))
8119
8135
  ];
8120
8136
  mounted = true;
8121
8137
  }
@@ -8145,7 +8161,7 @@ function create_fragment54(ctx) {
8145
8161
  dirty[0] & 16384 && get_spread_object(ctx2[14]),
8146
8162
  dirty[0] & 131072 && { content: ctx2[17].clicker }
8147
8163
  ]) : {};
8148
- if (dirty[0] & 130 | dirty[1] & 65536) {
8164
+ if (dirty[0] & 130 | dirty[1] & 131072) {
8149
8165
  button0_changes.$$scope = { dirty, ctx: ctx2 };
8150
8166
  }
8151
8167
  button0.$set(button0_changes);
@@ -8154,7 +8170,7 @@ function create_fragment54(ctx) {
8154
8170
  dirty[0] & 16384 && get_spread_object(ctx2[14]),
8155
8171
  dirty[0] & 131072 && { content: ctx2[17].selector }
8156
8172
  ]) : {};
8157
- if (dirty[0] & 130 | dirty[1] & 65536) {
8173
+ if (dirty[0] & 130 | dirty[1] & 131072) {
8158
8174
  button1_changes.$$scope = { dirty, ctx: ctx2 };
8159
8175
  }
8160
8176
  button1.$set(button1_changes);
@@ -8164,7 +8180,7 @@ function create_fragment54(ctx) {
8164
8180
  dirty[0] & 131072 && { content: ctx2[17].pencil },
8165
8181
  dirty[0] & 1024 && { menu: ctx2[10] }
8166
8182
  ]) : {};
8167
- if (dirty[0] & 130 | dirty[1] & 65536) {
8183
+ if (dirty[0] & 130 | dirty[1] & 131072) {
8168
8184
  button2_changes.$$scope = { dirty, ctx: ctx2 };
8169
8185
  }
8170
8186
  button2.$set(button2_changes);
@@ -8174,7 +8190,7 @@ function create_fragment54(ctx) {
8174
8190
  dirty[0] & 131072 && { content: ctx2[17].text },
8175
8191
  dirty[0] & 2048 && { menu: ctx2[11] }
8176
8192
  ]) : {};
8177
- if (dirty[0] & 130 | dirty[1] & 65536) {
8193
+ if (dirty[0] & 130 | dirty[1] & 131072) {
8178
8194
  button3_changes.$$scope = { dirty, ctx: ctx2 };
8179
8195
  }
8180
8196
  button3.$set(button3_changes);
@@ -8184,7 +8200,7 @@ function create_fragment54(ctx) {
8184
8200
  dirty[0] & 256 && { content: ctx2[8].shapes },
8185
8201
  dirty[0] & 4096 && { menu: ctx2[12] }
8186
8202
  ]) : {};
8187
- if (dirty[0] & 706 | dirty[1] & 65536) {
8203
+ if (dirty[0] & 706 | dirty[1] & 131072) {
8188
8204
  button4_changes.$$scope = { dirty, ctx: ctx2 };
8189
8205
  }
8190
8206
  button4.$set(button4_changes);
@@ -8193,7 +8209,7 @@ function create_fragment54(ctx) {
8193
8209
  dirty[0] & 16384 && get_spread_object(ctx2[14]),
8194
8210
  dirty[0] & 131072 && { content: ctx2[17].eraser }
8195
8211
  ]) : {};
8196
- if (dirty[0] & 130 | dirty[1] & 65536) {
8212
+ if (dirty[0] & 130 | dirty[1] & 131072) {
8197
8213
  button5_changes.$$scope = { dirty, ctx: ctx2 };
8198
8214
  }
8199
8215
  button5.$set(button5_changes);
@@ -8202,7 +8218,7 @@ function create_fragment54(ctx) {
8202
8218
  dirty[0] & 16384 && get_spread_object(ctx2[14]),
8203
8219
  dirty[0] & 256 && { content: ctx2[8].clear }
8204
8220
  ]) : {};
8205
- if (dirty[0] & 2 | dirty[1] & 65536) {
8221
+ if (dirty[0] & 2 | dirty[1] & 131072) {
8206
8222
  button6_changes.$$scope = { dirty, ctx: ctx2 };
8207
8223
  }
8208
8224
  button6.$set(button6_changes);
@@ -8213,7 +8229,7 @@ function create_fragment54(ctx) {
8213
8229
  dirty[0] & 8192 && { menu: ctx2[13] },
8214
8230
  button7_spread_levels[4]
8215
8231
  ]) : {};
8216
- if (dirty[0] & 2 | dirty[1] & 65536) {
8232
+ if (dirty[0] & 2 | dirty[1] & 131072) {
8217
8233
  button7_changes.$$scope = { dirty, ctx: ctx2 };
8218
8234
  }
8219
8235
  button7.$set(button7_changes);
@@ -8291,9 +8307,26 @@ function create_fragment54(ctx) {
8291
8307
  if (dirty[0] & 8)
8292
8308
  strokecolor2_changes.disabled = ctx2[3];
8293
8309
  strokecolor2.$set(strokecolor2_changes);
8294
- if (dirty[0] & 262147) {
8295
- each_value = apps.data;
8296
- each_blocks = update_keyed_each(each_blocks, dirty, get_key, 1, ctx2, each_value, each_1_lookup, div7, destroy_block, create_each_block3, null, get_each_context3);
8310
+ if (dirty[0] & 786435) {
8311
+ each_value = ctx2[18];
8312
+ let i;
8313
+ for (i = 0; i < each_value.length; i += 1) {
8314
+ const child_ctx = get_each_context3(ctx2, each_value, i);
8315
+ if (each_blocks[i]) {
8316
+ each_blocks[i].p(child_ctx, dirty);
8317
+ } else {
8318
+ each_blocks[i] = create_each_block3(child_ctx);
8319
+ each_blocks[i].c();
8320
+ each_blocks[i].m(div7, null);
8321
+ }
8322
+ }
8323
+ for (; i < each_blocks.length; i += 1) {
8324
+ each_blocks[i].d(1);
8325
+ }
8326
+ each_blocks.length = each_value.length;
8327
+ }
8328
+ if (!current || dirty[0] & 262144) {
8329
+ set_style(div7, "--n", ctx2[18].length);
8297
8330
  }
8298
8331
  },
8299
8332
  i(local) {
@@ -8361,17 +8394,15 @@ function create_fragment54(ctx) {
8361
8394
  detach(div8);
8362
8395
  destroy_component(strokewidth0);
8363
8396
  destroy_component(strokecolor0);
8364
- ctx[33](null);
8365
- destroy_component(strokecolor1);
8366
8397
  ctx[34](null);
8398
+ destroy_component(strokecolor1);
8399
+ ctx[35](null);
8367
8400
  destroy_component(shapes2);
8368
8401
  destroy_component(strokewidth1);
8369
8402
  destroy_component(strokecolor2);
8370
- ctx[35](null);
8371
- for (let i = 0; i < each_blocks.length; i += 1) {
8372
- each_blocks[i].d();
8373
- }
8374
8403
  ctx[36](null);
8404
+ destroy_each(each_blocks, detaching);
8405
+ ctx[37](null);
8375
8406
  mounted = false;
8376
8407
  run_all(dispose);
8377
8408
  }
@@ -8388,9 +8419,11 @@ function instance54($$self, $$props, $$invalidate) {
8388
8419
  let status;
8389
8420
  let max_scroll;
8390
8421
  let $top;
8391
- let $scroll_height, $$unsubscribe_scroll_height = noop, $$subscribe_scroll_height = () => ($$unsubscribe_scroll_height(), $$unsubscribe_scroll_height = subscribe(scroll_height, ($$value) => $$invalidate(31, $scroll_height = $$value)), scroll_height);
8392
- let $memberState, $$unsubscribe_memberState = noop, $$subscribe_memberState = () => ($$unsubscribe_memberState(), $$unsubscribe_memberState = subscribe(memberState, ($$value) => $$invalidate(32, $memberState = $$value)), memberState);
8393
- let $status, $$unsubscribe_status = noop, $$subscribe_status = () => ($$unsubscribe_status(), $$unsubscribe_status = subscribe(status, ($$value) => $$invalidate(18, $status = $$value)), status);
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);
8424
+ 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));
8394
8427
  $$self.$$.on_destroy.push(() => $$unsubscribe_scroll_height());
8395
8428
  $$self.$$.on_destroy.push(() => $$unsubscribe_memberState());
8396
8429
  $$self.$$.on_destroy.push(() => $$unsubscribe_status());
@@ -8409,7 +8442,7 @@ function instance54($$self, $$props, $$invalidate) {
8409
8442
  let apps_panel;
8410
8443
  let btn_props;
8411
8444
  let top = writable(0);
8412
- component_subscribe($$self, top, (value) => $$invalidate(38, $top = value));
8445
+ component_subscribe($$self, top, (value) => $$invalidate(39, $top = value));
8413
8446
  function scroll_up() {
8414
8447
  set_store_value(top, $top = clamp($top - 32 - 4, 0, max_scroll), $top);
8415
8448
  }
@@ -8477,7 +8510,7 @@ function instance54($$self, $$props, $$invalidate) {
8477
8510
  if ("scroll_height" in $$props2)
8478
8511
  $$subscribe_scroll_height($$invalidate(4, scroll_height = $$props2.scroll_height));
8479
8512
  if ("computed_height" in $$props2)
8480
- $$invalidate(29, computed_height = $$props2.computed_height);
8513
+ $$invalidate(30, computed_height = $$props2.computed_height);
8481
8514
  if ("scrollable" in $$props2)
8482
8515
  $$invalidate(5, scrollable = $$props2.scrollable);
8483
8516
  };
@@ -8497,9 +8530,9 @@ function instance54($$self, $$props, $$invalidate) {
8497
8530
  }
8498
8531
  if ($$self.$$.dirty[0] & 1) {
8499
8532
  $:
8500
- $$invalidate(30, hotkeys = app == null ? void 0 : app.hotKeys);
8533
+ $$invalidate(31, hotkeys = app == null ? void 0 : app.hotKeys);
8501
8534
  }
8502
- if ($$self.$$.dirty[0] & 1073742080) {
8535
+ if ($$self.$$.dirty[0] & 256 | $$self.$$.dirty[1] & 1) {
8503
8536
  $:
8504
8537
  $$invalidate(17, c = {
8505
8538
  clicker: tooltip(t.clicker, hotkeys == null ? void 0 : hotkeys.changeToClick),
@@ -8513,11 +8546,11 @@ function instance54($$self, $$props, $$invalidate) {
8513
8546
  $:
8514
8547
  $$subscribe_memberState($$invalidate(16, memberState = app == null ? void 0 : app.memberState));
8515
8548
  }
8516
- if ($$self.$$.dirty[1] & 2) {
8549
+ if ($$self.$$.dirty[1] & 4) {
8517
8550
  $:
8518
8551
  $$invalidate(7, appliance = $memberState == null ? void 0 : $memberState.currentApplianceName);
8519
8552
  }
8520
- if ($$self.$$.dirty[1] & 2) {
8553
+ if ($$self.$$.dirty[1] & 4) {
8521
8554
  $:
8522
8555
  $$invalidate(6, shape = $memberState == null ? void 0 : $memberState.shapeType);
8523
8556
  }
@@ -8533,7 +8566,7 @@ function instance54($$self, $$props, $$invalidate) {
8533
8566
  $$invalidate(9, last_shape = shape);
8534
8567
  }
8535
8568
  }
8536
- if ($$self.$$.dirty[0] & 536870944 | $$self.$$.dirty[1] & 1) {
8569
+ if ($$self.$$.dirty[0] & 1073741856 | $$self.$$.dirty[1] & 2) {
8537
8570
  $:
8538
8571
  max_scroll = scrollable ? $scroll_height + (32 + 8) * 2 - computed_height : 0;
8539
8572
  }
@@ -8557,6 +8590,7 @@ function instance54($$self, $$props, $$invalidate) {
8557
8590
  status,
8558
8591
  memberState,
8559
8592
  c,
8593
+ $apps,
8560
8594
  $status,
8561
8595
  top,
8562
8596
  scroll_up,
@@ -8587,7 +8621,7 @@ var Contents = class extends SvelteComponent {
8587
8621
  language: 2,
8588
8622
  disabled: 3,
8589
8623
  scroll_height: 4,
8590
- computed_height: 29,
8624
+ computed_height: 30,
8591
8625
  scrollable: 5
8592
8626
  }, null, [-1, -1]);
8593
8627
  }
@@ -9332,13 +9366,14 @@ function create_if_block8(ctx) {
9332
9366
  }
9333
9367
  function create_default_slot_15(ctx) {
9334
9368
  let span;
9369
+ let t0_value = (ctx[15] || 1) + "";
9335
9370
  let t0;
9336
9371
  let t1;
9337
9372
  let span_class_value;
9338
9373
  return {
9339
9374
  c() {
9340
9375
  span = element("span");
9341
- t0 = text(ctx[15]);
9376
+ t0 = text(t0_value);
9342
9377
  t1 = text("x");
9343
9378
  attr(span, "class", span_class_value = name7 + "-speed-text");
9344
9379
  },
@@ -9348,8 +9383,8 @@ function create_default_slot_15(ctx) {
9348
9383
  append(span, t1);
9349
9384
  },
9350
9385
  p(ctx2, dirty) {
9351
- if (dirty & 32768)
9352
- set_data(t0, ctx2[15]);
9386
+ if (dirty & 32768 && t0_value !== (t0_value = (ctx2[15] || 1) + ""))
9387
+ set_data(t0, t0_value);
9353
9388
  },
9354
9389
  d(detaching) {
9355
9390
  if (detaching)
@@ -9651,7 +9686,7 @@ function instance56($$self, $$props, $$invalidate) {
9651
9686
  let disabled;
9652
9687
  let duration;
9653
9688
  let current;
9654
- let speed;
9689
+ let playbackRate;
9655
9690
  let phase;
9656
9691
  let loading;
9657
9692
  let playing;
@@ -9659,11 +9694,11 @@ function instance56($$self, $$props, $$invalidate) {
9659
9694
  let $phase, $$unsubscribe_phase = noop, $$subscribe_phase = () => ($$unsubscribe_phase(), $$unsubscribe_phase = subscribe(phase, ($$value) => $$invalidate(22, $phase = $$value)), phase);
9660
9695
  let $current, $$unsubscribe_current = noop, $$subscribe_current = () => ($$unsubscribe_current(), $$unsubscribe_current = subscribe(current, ($$value) => $$invalidate(13, $current = $$value)), current);
9661
9696
  let $duration, $$unsubscribe_duration = noop, $$subscribe_duration = () => ($$unsubscribe_duration(), $$unsubscribe_duration = subscribe(duration, ($$value) => $$invalidate(14, $duration = $$value)), duration);
9662
- let $speed, $$unsubscribe_speed = noop, $$subscribe_speed = () => ($$unsubscribe_speed(), $$unsubscribe_speed = subscribe(speed, ($$value) => $$invalidate(15, $speed = $$value)), speed);
9697
+ let $playbackRate, $$unsubscribe_playbackRate = noop, $$subscribe_playbackRate = () => ($$unsubscribe_playbackRate(), $$unsubscribe_playbackRate = subscribe(playbackRate, ($$value) => $$invalidate(15, $playbackRate = $$value)), playbackRate);
9663
9698
  $$self.$$.on_destroy.push(() => $$unsubscribe_phase());
9664
9699
  $$self.$$.on_destroy.push(() => $$unsubscribe_current());
9665
9700
  $$self.$$.on_destroy.push(() => $$unsubscribe_duration());
9666
- $$self.$$.on_destroy.push(() => $$unsubscribe_speed());
9701
+ $$self.$$.on_destroy.push(() => $$unsubscribe_playbackRate());
9667
9702
  let { player = null } = $$props;
9668
9703
  let { theme = "light" } = $$props;
9669
9704
  let { language = "en" } = $$props;
@@ -9691,12 +9726,12 @@ function instance56($$self, $$props, $$invalidate) {
9691
9726
  return;
9692
9727
  player.seek(seconds * 1e3);
9693
9728
  }
9694
- function setSpeed(speed2) {
9729
+ function setPlaybackRate(speed) {
9695
9730
  if (!player)
9696
9731
  return;
9697
- player.setSpeed(speed2);
9732
+ player.setPlaybackRate(speed);
9698
9733
  }
9699
- const click_handler = (s) => setSpeed(s);
9734
+ const click_handler = (s) => setPlaybackRate(s);
9700
9735
  function div1_binding($$value) {
9701
9736
  binding_callbacks[$$value ? "unshift" : "push"](() => {
9702
9737
  speed_panel = $$value;
@@ -9740,7 +9775,7 @@ function instance56($$self, $$props, $$invalidate) {
9740
9775
  }
9741
9776
  if ($$self.$$.dirty & 524288) {
9742
9777
  $:
9743
- $$subscribe_speed($$invalidate(9, speed = player == null ? void 0 : player.speed));
9778
+ $$subscribe_playbackRate($$invalidate(9, playbackRate = player == null ? void 0 : player.playbackRate));
9744
9779
  }
9745
9780
  if ($$self.$$.dirty & 524288) {
9746
9781
  $:
@@ -9769,16 +9804,16 @@ function instance56($$self, $$props, $$invalidate) {
9769
9804
  speed_panel,
9770
9805
  className,
9771
9806
  phase,
9772
- speed,
9807
+ playbackRate,
9773
9808
  current,
9774
9809
  duration,
9775
9810
  t,
9776
9811
  $current,
9777
9812
  $duration,
9778
- $speed,
9813
+ $playbackRate,
9779
9814
  toggle,
9780
9815
  seek,
9781
- setSpeed,
9816
+ setPlaybackRate,
9782
9817
  player,
9783
9818
  language,
9784
9819
  canPlay,
@@ -9921,6 +9956,12 @@ function instance57($$self, $$props, $$invalidate) {
9921
9956
  console.error(err);
9922
9957
  }
9923
9958
  }
9959
+ if ($$self.$$.dirty & 3) {
9960
+ $:
9961
+ if (player && theme) {
9962
+ player.manager.setPrefersColorScheme(theme);
9963
+ }
9964
+ }
9924
9965
  };
9925
9966
  return [player, theme, language, container, containerRef, div0_binding];
9926
9967
  }
@@ -10005,15 +10046,18 @@ function create_fragment58(ctx) {
10005
10046
  create_component(pagecontrol.$$.fragment);
10006
10047
  attr(div0, "class", div0_class_value = name9 + "-view");
10007
10048
  attr(div1, "class", div1_class_value = name9 + "-left");
10049
+ toggle_class(div1, "hidden", !(ctx[4] === "visible" || ctx[4] === "toolbar-only"));
10008
10050
  attr(div2, "class", div2_class_value = name9 + "-bottom-left");
10051
+ toggle_class(div2, "hidden", ctx[4] !== "visible");
10009
10052
  attr(div3, "class", div3_class_value = name9 + "-bottom-right");
10053
+ toggle_class(div3, "hidden", ctx[4] !== "visible");
10010
10054
  attr(div4, "class", div4_class_value = name9 + "-root");
10011
10055
  toggle_class(div4, "loading", !ctx[0]);
10012
10056
  },
10013
10057
  m(target, anchor) {
10014
10058
  insert(target, div4, anchor);
10015
10059
  append(div4, div0);
10016
- ctx[5](div0);
10060
+ ctx[12](div0);
10017
10061
  append(div4, t0);
10018
10062
  append(div4, div1);
10019
10063
  mount_component(toolbar, div1, null);
@@ -10040,6 +10084,9 @@ function create_fragment58(ctx) {
10040
10084
  if (dirty & 4)
10041
10085
  toolbar_changes.language = ctx2[2];
10042
10086
  toolbar.$set(toolbar_changes);
10087
+ if (dirty & 16) {
10088
+ toggle_class(div1, "hidden", !(ctx2[4] === "visible" || ctx2[4] === "toolbar-only"));
10089
+ }
10043
10090
  const redoundo_changes = {};
10044
10091
  if (dirty & 1)
10045
10092
  redoundo_changes.app = ctx2[0];
@@ -10056,6 +10103,9 @@ function create_fragment58(ctx) {
10056
10103
  if (dirty & 4)
10057
10104
  zoomcontrol_changes.language = ctx2[2];
10058
10105
  zoomcontrol.$set(zoomcontrol_changes);
10106
+ if (dirty & 16) {
10107
+ toggle_class(div2, "hidden", ctx2[4] !== "visible");
10108
+ }
10059
10109
  const pagecontrol_changes = {};
10060
10110
  if (dirty & 1)
10061
10111
  pagecontrol_changes.app = ctx2[0];
@@ -10064,6 +10114,9 @@ function create_fragment58(ctx) {
10064
10114
  if (dirty & 4)
10065
10115
  pagecontrol_changes.language = ctx2[2];
10066
10116
  pagecontrol.$set(pagecontrol_changes);
10117
+ if (dirty & 16) {
10118
+ toggle_class(div3, "hidden", ctx2[4] !== "visible");
10119
+ }
10067
10120
  if (dirty & 1) {
10068
10121
  toggle_class(div4, "loading", !ctx2[0]);
10069
10122
  }
@@ -10087,7 +10140,7 @@ function create_fragment58(ctx) {
10087
10140
  d(detaching) {
10088
10141
  if (detaching)
10089
10142
  detach(div4);
10090
- ctx[5](null);
10143
+ ctx[12](null);
10091
10144
  destroy_component(toolbar);
10092
10145
  destroy_component(redoundo);
10093
10146
  destroy_component(zoomcontrol);
@@ -10099,11 +10152,22 @@ function create_fragment58(ctx) {
10099
10152
  }
10100
10153
  var name9 = "fastboard";
10101
10154
  function instance58($$self, $$props, $$invalidate) {
10155
+ let writable2;
10156
+ let boxState;
10157
+ 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);
10161
+ $$self.$$.on_destroy.push(() => $$unsubscribe_focusedApp());
10162
+ $$self.$$.on_destroy.push(() => $$unsubscribe_boxState());
10163
+ $$self.$$.on_destroy.push(() => $$unsubscribe_writable());
10102
10164
  let { app = null } = $$props;
10103
10165
  let { theme = "light" } = $$props;
10104
10166
  let { language = "en" } = $$props;
10105
10167
  let { containerRef = void 0 } = $$props;
10168
+ const AppsShowToolbar = ["DocsViewer", "Slide"];
10106
10169
  let container;
10170
+ let layout = "hidden";
10107
10171
  onMount(() => {
10108
10172
  if (containerRef) {
10109
10173
  containerRef(container);
@@ -10127,9 +10191,35 @@ function instance58($$self, $$props, $$invalidate) {
10127
10191
  if ("language" in $$props2)
10128
10192
  $$invalidate(2, language = $$props2.language);
10129
10193
  if ("containerRef" in $$props2)
10130
- $$invalidate(4, containerRef = $$props2.containerRef);
10194
+ $$invalidate(8, containerRef = $$props2.containerRef);
10131
10195
  };
10132
10196
  $$self.$$.update = () => {
10197
+ if ($$self.$$.dirty & 1) {
10198
+ $:
10199
+ $$subscribe_writable($$invalidate(7, writable2 = app == null ? void 0 : app.writable));
10200
+ }
10201
+ if ($$self.$$.dirty & 1) {
10202
+ $:
10203
+ $$subscribe_boxState($$invalidate(6, boxState = app == null ? void 0 : app.boxState));
10204
+ }
10205
+ if ($$self.$$.dirty & 1) {
10206
+ $:
10207
+ $$subscribe_focusedApp($$invalidate(5, focusedApp = app == null ? void 0 : app.focusedApp));
10208
+ }
10209
+ if ($$self.$$.dirty & 3584) {
10210
+ $:
10211
+ if (!$writable) {
10212
+ $$invalidate(4, layout = "hidden");
10213
+ } else if ($boxState === "maximized") {
10214
+ if ($focusedApp && AppsShowToolbar.some((kind) => ($focusedApp || "").includes(kind))) {
10215
+ $$invalidate(4, layout = "toolbar-only");
10216
+ } else {
10217
+ $$invalidate(4, layout = "hidden");
10218
+ }
10219
+ } else {
10220
+ $$invalidate(4, layout = "visible");
10221
+ }
10222
+ }
10133
10223
  if ($$self.$$.dirty & 9) {
10134
10224
  $:
10135
10225
  try {
@@ -10140,8 +10230,28 @@ function instance58($$self, $$props, $$invalidate) {
10140
10230
  console.error(err);
10141
10231
  }
10142
10232
  }
10233
+ if ($$self.$$.dirty & 3) {
10234
+ $:
10235
+ if (app && theme) {
10236
+ app.manager.setPrefersColorScheme(theme);
10237
+ }
10238
+ }
10143
10239
  };
10144
- return [app, theme, language, container, containerRef, div0_binding];
10240
+ return [
10241
+ app,
10242
+ theme,
10243
+ language,
10244
+ container,
10245
+ layout,
10246
+ focusedApp,
10247
+ boxState,
10248
+ writable2,
10249
+ containerRef,
10250
+ $focusedApp,
10251
+ $boxState,
10252
+ $writable,
10253
+ div0_binding
10254
+ ];
10145
10255
  }
10146
10256
  var Fastboard = class extends SvelteComponent {
10147
10257
  constructor(options) {
@@ -10150,7 +10260,7 @@ var Fastboard = class extends SvelteComponent {
10150
10260
  app: 0,
10151
10261
  theme: 1,
10152
10262
  language: 2,
10153
- containerRef: 4
10263
+ containerRef: 8
10154
10264
  });
10155
10265
  }
10156
10266
  };
@@ -10167,7 +10277,7 @@ function injectStyle(text2) {
10167
10277
  }
10168
10278
 
10169
10279
  // inline-sass-content:./src/style.scss
10170
- 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;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;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;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;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)}.fastboard-toolbar.collapsed{transform:translate(-100%)}.fastboard-toolbar-handler{position:absolute;left:100%;width:17px;font-size:0;cursor:pointer}.fastboard-toolbar-handler input[type=checkbox]{position:absolute;top:0;left:0;appearance:none;margin:0;width:100%;height:100%;cursor:pointer}.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;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(3,1fr);gap:4px}.fastboard-toolbar-app-btn{margin:0;border:0;padding:4px;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;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}.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}.fastboard-bottom-right{left:auto;right:8px}.fastboard-bottom{right:8px}.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}';
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;cursor:pointer;pointer-events:auto}.fastboard-toolbar-handler input[type=checkbox]{position:absolute;top:0;left:0;appearance:none;margin:0;width:100%;height:100%;cursor:pointer}.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}';
10171
10281
 
10172
10282
  // inline-sass-stub:./src/style.scss
10173
10283
  injectStyle(style_default);