From d07d65b58eee32b1e68e2b7cd3517c51d5d915c7 Mon Sep 17 00:00:00 2001 From: Yanick Champoux Date: Thu, 13 Apr 2023 17:34:38 -0400 Subject: [PATCH] tasks --- .gitignore | 1 + .histoire/dist/__sandbox.html | 4 +- .../dist/assets/BaseEmpty.vue-045cbb89.js | 13 - .../assets/GenericMountStory.vue2-2bb5633d.js | 2893 -- .../dist/assets/HomeView.vue-2db017c5.js | 25 - .../assets/MobileOverlay.vue2-a3503848.js | 307 - .../dist/assets/SearchPane.vue-c31f94e5.js | 545 - .../dist/assets/StoryView.vue-e7ab65e8.js | 2653 -- ...propulsion-engine-story-svelte-42e8b729.js | 4 - ...it-propulsion-ftl-story-svelte-df90933e.js | 4 - .histoire/dist/assets/bundle-main-f9305308.js | 824 - .../dist/assets/bundle-sandbox-c5cd2a61.js | 82 - .histoire/dist/assets/events-ae5cec59.js | 31 - .../dist/assets/search-docs-data-9f078283.js | 9 - .histoire/dist/assets/state-4b1a79d2.js | 92 - .histoire/dist/assets/story-804dabc9.js | 44 - .histoire/dist/assets/style-622cf620.css | 2869 -- .histoire/dist/assets/vendor-3ab3e533.js | 39186 ---------------- .histoire/dist/global.css | 89 - .histoire/dist/histoire.json | 127 + .histoire/dist/index.html | 6 +- ...s-index-story-svelte-_default-1280x800.png | Bin 22106 -> 22106 bytes ...carrier-story-svelte-_default-1280x800.png | Bin 0 -> 28142 bytes ...ication-story-svelte-_default-1280x800.png | Bin 0 -> 36681 bytes ...-engine-story-svelte-_default-1280x800.png | Bin 29347 -> 26966 bytes ...ion-ftl-story-svelte-_default-1280x800.png | Bin 29073 -> 27499 bytes ...pulsion-story-svelte-_default-1280x800.png | Bin 44196 -> 40828 bytes ...hipedit-story-svelte-_default-1280x800.png | Bin 0 -> 128240 bytes ...eaponry-story-svelte-_default-1280x800.png | Bin 0 -> 71486 bytes ...on-arcs-story-svelte-_default-1280x800.png | Bin 0 -> 24157 bytes ...hipitem-story-svelte-_default-1280x800.png | Bin 23268 -> 23268 bytes src/histoire.setup.js | 3 +- 32 files changed, 134 insertions(+), 49677 deletions(-) delete mode 100644 .histoire/dist/assets/BaseEmpty.vue-045cbb89.js delete mode 100644 .histoire/dist/assets/GenericMountStory.vue2-2bb5633d.js delete mode 100644 .histoire/dist/assets/HomeView.vue-2db017c5.js delete mode 100644 .histoire/dist/assets/MobileOverlay.vue2-a3503848.js delete mode 100644 .histoire/dist/assets/SearchPane.vue-c31f94e5.js delete mode 100644 .histoire/dist/assets/StoryView.vue-e7ab65e8.js delete mode 100644 .histoire/dist/assets/__resolved__virtual_story-source_src-lib-components-shipedit-propulsion-engine-story-svelte-42e8b729.js delete mode 100644 .histoire/dist/assets/__resolved__virtual_story-source_src-lib-components-shipedit-propulsion-ftl-story-svelte-df90933e.js delete mode 100644 .histoire/dist/assets/bundle-main-f9305308.js delete mode 100644 .histoire/dist/assets/bundle-sandbox-c5cd2a61.js delete mode 100644 .histoire/dist/assets/events-ae5cec59.js delete mode 100644 .histoire/dist/assets/search-docs-data-9f078283.js delete mode 100644 .histoire/dist/assets/state-4b1a79d2.js delete mode 100644 .histoire/dist/assets/story-804dabc9.js delete mode 100644 .histoire/dist/assets/style-622cf620.css delete mode 100644 .histoire/dist/assets/vendor-3ab3e533.js delete mode 100644 .histoire/dist/global.css create mode 100644 .histoire/screenshots/src-lib-components-shipedit-carrier-story-svelte-_default-1280x800.png create mode 100644 .histoire/screenshots/src-lib-components-shipedit-identification-story-svelte-_default-1280x800.png create mode 100644 .histoire/screenshots/src-lib-components-shipedit-story-svelte-_default-1280x800.png create mode 100644 .histoire/screenshots/src-lib-components-shipedit-weaponry-story-svelte-_default-1280x800.png create mode 100644 .histoire/screenshots/src-lib-components-shipedit-weaponry-weapon-arcs-story-svelte-_default-1280x800.png diff --git a/.gitignore b/.gitignore index b530606..ae239dd 100644 --- a/.gitignore +++ b/.gitignore @@ -16,3 +16,4 @@ dist/yarn-error.log .task/ .histoire/dist dist +src/lib/components/__image_snapshots__/__diff_output__/ diff --git a/.histoire/dist/__sandbox.html b/.histoire/dist/__sandbox.html index 4c46836..d0b0be4 100644 --- a/.histoire/dist/__sandbox.html +++ b/.histoire/dist/__sandbox.html @@ -5,12 +5,12 @@ - +
- + \ No newline at end of file diff --git a/.histoire/dist/assets/BaseEmpty.vue-045cbb89.js b/.histoire/dist/assets/BaseEmpty.vue-045cbb89.js deleted file mode 100644 index 8334be9..0000000 --- a/.histoire/dist/assets/BaseEmpty.vue-045cbb89.js +++ /dev/null @@ -1,13 +0,0 @@ -import { _ as _export_sfc } from "./MobileOverlay.vue2-a3503848.js"; -import { o as openBlock, e as createElementBlock, aY as renderSlot } from "./vendor-3ab3e533.js"; -const _sfc_main = {}; -const _hoisted_1 = { class: "histoire-base-empty htw-base-empty htw-flex htw-flex-col htw-items-center htw-justify-center htw-space-y-4 htw-py-12 htw-h-full htw-text-center htw-text-gray-400 htw-text-lg" }; -function _sfc_render(_ctx, _cache) { - return openBlock(), createElementBlock("div", _hoisted_1, [ - renderSlot(_ctx.$slots, "default", {}, void 0, true) - ]); -} -const BaseEmpty = /* @__PURE__ */ _export_sfc(_sfc_main, [["render", _sfc_render], ["__scopeId", "data-v-c5ecfead"]]); -export { - BaseEmpty as B -}; diff --git a/.histoire/dist/assets/GenericMountStory.vue2-2bb5633d.js b/.histoire/dist/assets/GenericMountStory.vue2-2bb5633d.js deleted file mode 100644 index 4f1e353..0000000 --- a/.histoire/dist/assets/GenericMountStory.vue2-2bb5633d.js +++ /dev/null @@ -1,2893 +0,0 @@ -import { Y as SvelteComponentDev, Z as init, $ as safe_not_equal, a0 as dispatch_dev, a1 as create_slot, a2 as validate_slots, a3 as base$1, a4 as tick, a5 as element, a6 as space, a7 as text, a8 as claim_element, a9 as children, aa as detach_dev, ab as claim_space, ac as claim_text, ad as attr_dev, ae as add_location, af as src_url_equal, ag as insert_hydration_dev, ah as append_hydration_dev, ai as update_slot_base, aj as get_all_dirty_from_scope, ak as get_slot_changes, al as set_data_dev, am as transition_in, an as transition_out, ao as binding_callbacks, ap as bind, aq as create_component, ar as claim_component, as as mount_component, at as destroy_component, au as add_flush_callback, av as noop, aw as bubble, ax as set_input_value, ay as listen_dev, az as run_all, aA as assign, aB as getContext, aC as get_spread_update, aD as get_spread_object, aE as to_number, aF as validate_each_argument, aG as validate_each_keys, aH as empty, aI as update_keyed_each, aJ as destroy_block, aK as logEvent, _ as __vitePreload, aL as createRouter, v as histoireConfig, aM as createWebHistory, aN as createWebHashHistory, aO as markRaw, K as reactive, d as defineComponent, r as ref, aP as watchEffect, o as openBlock, q as createBlock, aQ as mergeProps, aR as resolveDynamicComponent, h as createCommentVNode } from "./vendor-3ab3e533.js"; -const ShipItem_svelte_svelte_type_style_lang = ""; -const file$5 = "src/lib/components/ShipItem.svelte"; -function create_fragment$b(ctx) { - let div4; - let div0; - let t0; - let div3; - let div1; - let t1; - let t2; - let img; - let img_src_value; - let t3; - let div2; - let t4; - let current; - const default_slot_template = ( - /*#slots*/ - ctx[5].default - ); - const default_slot = create_slot( - default_slot_template, - ctx, - /*$$scope*/ - ctx[4], - null - ); - const block = { - c: function create() { - div4 = element("div"); - div0 = element("div"); - if (default_slot) - default_slot.c(); - t0 = space(); - div3 = element("div"); - div1 = element("div"); - t1 = text( - /*mass*/ - ctx[0] - ); - t2 = space(); - img = element("img"); - t3 = space(); - div2 = element("div"); - t4 = text( - /*cost*/ - ctx[1] - ); - this.h(); - }, - l: function claim(nodes) { - div4 = claim_element(nodes, "DIV", { class: true }); - var div4_nodes = children(div4); - div0 = claim_element(div4_nodes, "DIV", { class: true }); - var div0_nodes = children(div0); - if (default_slot) - default_slot.l(div0_nodes); - div0_nodes.forEach(detach_dev); - t0 = claim_space(div4_nodes); - div3 = claim_element(div4_nodes, "DIV", { class: true }); - var div3_nodes = children(div3); - div1 = claim_element(div3_nodes, "DIV", { class: true }); - var div1_nodes = children(div1); - t1 = claim_text( - div1_nodes, - /*mass*/ - ctx[0] - ); - t2 = claim_space(div1_nodes); - img = claim_element(div1_nodes, "IMG", { src: true, alt: true, class: true }); - div1_nodes.forEach(detach_dev); - t3 = claim_space(div3_nodes); - div2 = claim_element(div3_nodes, "DIV", { class: true }); - var div2_nodes = children(div2); - t4 = claim_text( - div2_nodes, - /*cost*/ - ctx[1] - ); - div2_nodes.forEach(detach_dev); - div3_nodes.forEach(detach_dev); - div4_nodes.forEach(detach_dev); - this.h(); - }, - h: function hydrate() { - attr_dev(div0, "class", "s-Z06Qyz0SWBsp"); - add_location(div0, file$5, 1, 2, 26); - if (!src_url_equal(img.src, img_src_value = base$1 + "/mass.svg")) - attr_dev(img, "src", img_src_value); - attr_dev(img, "alt", "mass"); - attr_dev(img, "class", "s-Z06Qyz0SWBsp"); - add_location(img, file$5, 5, 13, 124); - attr_dev(div1, "class", "mass s-Z06Qyz0SWBsp"); - add_location(div1, file$5, 4, 4, 72); - attr_dev(div2, "class", "cost s-Z06Qyz0SWBsp"); - add_location(div2, file$5, 7, 4, 180); - attr_dev(div3, "class", "reqs s-Z06Qyz0SWBsp"); - add_location(div3, file$5, 3, 2, 49); - attr_dev(div4, "class", "ship-item s-Z06Qyz0SWBsp"); - add_location(div4, file$5, 0, 0, 0); - }, - m: function mount(target, anchor) { - insert_hydration_dev(target, div4, anchor); - append_hydration_dev(div4, div0); - if (default_slot) { - default_slot.m(div0, null); - } - append_hydration_dev(div4, t0); - append_hydration_dev(div4, div3); - append_hydration_dev(div3, div1); - append_hydration_dev(div1, t1); - append_hydration_dev(div1, t2); - append_hydration_dev(div1, img); - ctx[6](div1); - append_hydration_dev(div3, t3); - append_hydration_dev(div3, div2); - append_hydration_dev(div2, t4); - ctx[7](div2); - current = true; - }, - p: function update(ctx2, [dirty]) { - if (default_slot) { - if (default_slot.p && (!current || dirty & /*$$scope*/ - 16)) { - update_slot_base( - default_slot, - default_slot_template, - ctx2, - /*$$scope*/ - ctx2[4], - !current ? get_all_dirty_from_scope( - /*$$scope*/ - ctx2[4] - ) : get_slot_changes( - default_slot_template, - /*$$scope*/ - ctx2[4], - dirty, - null - ), - null - ); - } - } - if (!current || dirty & /*mass*/ - 1) - set_data_dev( - t1, - /*mass*/ - ctx2[0] - ); - if (!current || dirty & /*cost*/ - 2) - set_data_dev( - t4, - /*cost*/ - ctx2[1] - ); - }, - i: function intro(local) { - if (current) - return; - transition_in(default_slot, local); - current = true; - }, - o: function outro(local) { - transition_out(default_slot, local); - current = false; - }, - d: function destroy(detaching) { - if (detaching) - detach_dev(div4); - if (default_slot) - default_slot.d(detaching); - ctx[6](null); - ctx[7](null); - } - }; - dispatch_dev("SvelteRegisterBlock", { - block, - id: create_fragment$b.name, - type: "component", - source: "", - ctx - }); - return block; -} -function instance$b($$self, $$props, $$invalidate) { - let { $$slots: slots = {}, $$scope } = $$props; - validate_slots("ShipItem", slots, ["default"]); - let { mass } = $$props; - let { cost } = $$props; - let mass_el; - let cost_el; - const update_el = async (el) => { - if (!el) - return; - el.classList.remove("updated"); - void el.offsetWidth; - el.classList.add("updated"); - }; - $$self.$$.on_mount.push(function() { - if (mass === void 0 && !("mass" in $$props || $$self.$$.bound[$$self.$$.props["mass"]])) { - console.warn(" was created without expected prop 'mass'"); - } - if (cost === void 0 && !("cost" in $$props || $$self.$$.bound[$$self.$$.props["cost"]])) { - console.warn(" was created without expected prop 'cost'"); - } - }); - const writable_props = ["mass", "cost"]; - Object.keys($$props).forEach((key) => { - if (!~writable_props.indexOf(key) && key.slice(0, 2) !== "$$" && key !== "slot") - console.warn(` was created with unknown prop '${key}'`); - }); - function div1_binding($$value) { - binding_callbacks[$$value ? "unshift" : "push"](() => { - mass_el = $$value; - $$invalidate(2, mass_el); - }); - } - function div2_binding($$value) { - binding_callbacks[$$value ? "unshift" : "push"](() => { - cost_el = $$value; - $$invalidate(3, cost_el); - }); - } - $$self.$$set = ($$props2) => { - if ("mass" in $$props2) - $$invalidate(0, mass = $$props2.mass); - if ("cost" in $$props2) - $$invalidate(1, cost = $$props2.cost); - if ("$$scope" in $$props2) - $$invalidate(4, $$scope = $$props2.$$scope); - }; - $$self.$capture_state = () => ({ - base: base$1, - tick, - mass, - cost, - mass_el, - cost_el, - update_el - }); - $$self.$inject_state = ($$props2) => { - if ("mass" in $$props2) - $$invalidate(0, mass = $$props2.mass); - if ("cost" in $$props2) - $$invalidate(1, cost = $$props2.cost); - if ("mass_el" in $$props2) - $$invalidate(2, mass_el = $$props2.mass_el); - if ("cost_el" in $$props2) - $$invalidate(3, cost_el = $$props2.cost_el); - }; - if ($$props && "$$inject" in $$props) { - $$self.$inject_state($$props.$$inject); - } - $$self.$$.update = () => { - if ($$self.$$.dirty & /*mass_el, mass*/ - 5) { - update_el(mass_el); - } - if ($$self.$$.dirty & /*cost_el, cost*/ - 10) { - update_el(cost_el); - } - }; - return [mass, cost, mass_el, cost_el, $$scope, slots, div1_binding, div2_binding]; -} -class ShipItem extends SvelteComponentDev { - constructor(options) { - super(options); - init(this, options, instance$b, create_fragment$b, safe_not_equal, { mass: 0, cost: 1 }); - dispatch_dev("SvelteRegisterComponent", { - component: this, - tagName: "ShipItem", - options, - id: create_fragment$b.name - }); - } - get mass() { - throw new Error(": Props cannot be read directly from the component instance unless compiling with 'accessors: true' or ''"); - } - set mass(value) { - throw new Error(": Props cannot be set directly on the component instance unless compiling with 'accessors: true' or ''"); - } - get cost() { - throw new Error(": Props cannot be read directly from the component instance unless compiling with 'accessors: true' or ''"); - } - set cost(value) { - throw new Error(": Props cannot be set directly on the component instance unless compiling with 'accessors: true' or ''"); - } -} -function create_default_slot_1$2(ctx) { - let t; - const block = { - c: function create() { - t = text("Thingy"); - }, - l: function claim(nodes) { - t = claim_text(nodes, "Thingy"); - }, - m: function mount(target, anchor) { - insert_hydration_dev(target, t, anchor); - }, - d: function destroy(detaching) { - if (detaching) - detach_dev(t); - } - }; - dispatch_dev("SvelteRegisterBlock", { - block, - id: create_default_slot_1$2.name, - type: "slot", - source: "(2:2) ", - ctx - }); - return block; -} -function create_default_slot$7(ctx) { - let shipitem; - let current; - shipitem = new ShipItem({ - props: { - mass: ( - /*mass*/ - ctx[1] - ), - cost: ( - /*cost*/ - ctx[2] - ), - $$slots: { default: [create_default_slot_1$2] }, - $$scope: { ctx } - }, - $$inline: true - }); - const block = { - c: function create() { - create_component(shipitem.$$.fragment); - }, - l: function claim(nodes) { - claim_component(shipitem.$$.fragment, nodes); - }, - m: function mount(target, anchor) { - mount_component(shipitem, target, anchor); - current = true; - }, - p: function update(ctx2, dirty) { - const shipitem_changes = {}; - if (dirty & /*mass*/ - 2) - shipitem_changes.mass = /*mass*/ - ctx2[1]; - if (dirty & /*cost*/ - 4) - shipitem_changes.cost = /*cost*/ - ctx2[2]; - if (dirty & /*$$scope*/ - 32) { - shipitem_changes.$$scope = { dirty, ctx: ctx2 }; - } - shipitem.$set(shipitem_changes); - }, - i: function intro(local) { - if (current) - return; - transition_in(shipitem.$$.fragment, local); - current = true; - }, - o: function outro(local) { - transition_out(shipitem.$$.fragment, local); - current = false; - }, - d: function destroy(detaching) { - destroy_component(shipitem, detaching); - } - }; - dispatch_dev("SvelteRegisterBlock", { - block, - id: create_default_slot$7.name, - type: "slot", - source: "(1:0) ", - ctx - }); - return block; -} -function create_controls_slot(ctx) { - let hst_number0; - let updating_value; - let t; - let hst_number1; - let updating_value_1; - let current; - function hst_number0_value_binding(value) { - ctx[3](value); - } - let hst_number0_props = { title: "Mass" }; - if ( - /*mass*/ - ctx[1] !== void 0 - ) { - hst_number0_props.value = /*mass*/ - ctx[1]; - } - hst_number0 = new /*Hst*/ - ctx[0].Number({ props: hst_number0_props, $$inline: true }); - binding_callbacks.push(() => bind(hst_number0, "value", hst_number0_value_binding)); - function hst_number1_value_binding(value) { - ctx[4](value); - } - let hst_number1_props = { title: "Cost" }; - if ( - /*cost*/ - ctx[2] !== void 0 - ) { - hst_number1_props.value = /*cost*/ - ctx[2]; - } - hst_number1 = new /*Hst*/ - ctx[0].Number({ props: hst_number1_props, $$inline: true }); - binding_callbacks.push(() => bind(hst_number1, "value", hst_number1_value_binding)); - const block = { - c: function create() { - create_component(hst_number0.$$.fragment); - t = space(); - create_component(hst_number1.$$.fragment); - }, - l: function claim(nodes) { - claim_component(hst_number0.$$.fragment, nodes); - t = claim_space(nodes); - claim_component(hst_number1.$$.fragment, nodes); - }, - m: function mount(target, anchor) { - mount_component(hst_number0, target, anchor); - insert_hydration_dev(target, t, anchor); - mount_component(hst_number1, target, anchor); - current = true; - }, - p: function update(ctx2, dirty) { - const hst_number0_changes = {}; - if (!updating_value && dirty & /*mass*/ - 2) { - updating_value = true; - hst_number0_changes.value = /*mass*/ - ctx2[1]; - add_flush_callback(() => updating_value = false); - } - hst_number0.$set(hst_number0_changes); - const hst_number1_changes = {}; - if (!updating_value_1 && dirty & /*cost*/ - 4) { - updating_value_1 = true; - hst_number1_changes.value = /*cost*/ - ctx2[2]; - add_flush_callback(() => updating_value_1 = false); - } - hst_number1.$set(hst_number1_changes); - }, - i: function intro(local) { - if (current) - return; - transition_in(hst_number0.$$.fragment, local); - transition_in(hst_number1.$$.fragment, local); - current = true; - }, - o: function outro(local) { - transition_out(hst_number0.$$.fragment, local); - transition_out(hst_number1.$$.fragment, local); - current = false; - }, - d: function destroy(detaching) { - destroy_component(hst_number0, detaching); - if (detaching) - detach_dev(t); - destroy_component(hst_number1, detaching); - } - }; - dispatch_dev("SvelteRegisterBlock", { - block, - id: create_controls_slot.name, - type: "slot", - source: '(3:2) ', - ctx - }); - return block; -} -function create_fragment$a(ctx) { - let hst_story; - let current; - hst_story = new /*Hst*/ - ctx[0].Story({ - props: { - $$slots: { - controls: [create_controls_slot], - default: [create_default_slot$7] - }, - $$scope: { ctx } - }, - $$inline: true - }); - const block = { - c: function create() { - create_component(hst_story.$$.fragment); - }, - l: function claim(nodes) { - claim_component(hst_story.$$.fragment, nodes); - }, - m: function mount(target, anchor) { - mount_component(hst_story, target, anchor); - current = true; - }, - p: function update(ctx2, [dirty]) { - const hst_story_changes = {}; - if (dirty & /*$$scope, cost, mass*/ - 38) { - hst_story_changes.$$scope = { dirty, ctx: ctx2 }; - } - hst_story.$set(hst_story_changes); - }, - i: function intro(local) { - if (current) - return; - transition_in(hst_story.$$.fragment, local); - current = true; - }, - o: function outro(local) { - transition_out(hst_story.$$.fragment, local); - current = false; - }, - d: function destroy(detaching) { - destroy_component(hst_story, detaching); - } - }; - dispatch_dev("SvelteRegisterBlock", { - block, - id: create_fragment$a.name, - type: "component", - source: "", - ctx - }); - return block; -} -function instance$a($$self, $$props, $$invalidate) { - let { $$slots: slots = {}, $$scope } = $$props; - validate_slots("ShipItem_story", slots, []); - let { Hst } = $$props; - let mass = 1; - let cost = 3; - $$self.$$.on_mount.push(function() { - if (Hst === void 0 && !("Hst" in $$props || $$self.$$.bound[$$self.$$.props["Hst"]])) { - console.warn(" was created without expected prop 'Hst'"); - } - }); - const writable_props = ["Hst"]; - Object.keys($$props).forEach((key) => { - if (!~writable_props.indexOf(key) && key.slice(0, 2) !== "$$" && key !== "slot") - console.warn(` was created with unknown prop '${key}'`); - }); - function hst_number0_value_binding(value) { - mass = value; - $$invalidate(1, mass); - } - function hst_number1_value_binding(value) { - cost = value; - $$invalidate(2, cost); - } - $$self.$$set = ($$props2) => { - if ("Hst" in $$props2) - $$invalidate(0, Hst = $$props2.Hst); - }; - $$self.$capture_state = () => ({ Hst, ShipItem, mass, cost }); - $$self.$inject_state = ($$props2) => { - if ("Hst" in $$props2) - $$invalidate(0, Hst = $$props2.Hst); - if ("mass" in $$props2) - $$invalidate(1, mass = $$props2.mass); - if ("cost" in $$props2) - $$invalidate(2, cost = $$props2.cost); - }; - if ($$props && "$$inject" in $$props) { - $$self.$inject_state($$props.$$inject); - } - return [Hst, mass, cost, hst_number0_value_binding, hst_number1_value_binding]; -} -class ShipItem_story extends SvelteComponentDev { - constructor(options) { - super(options); - init(this, options, instance$a, create_fragment$a, safe_not_equal, { Hst: 0 }); - dispatch_dev("SvelteRegisterComponent", { - component: this, - tagName: "ShipItem_story", - options, - id: create_fragment$a.name - }); - } - get Hst() { - throw new Error(": Props cannot be read directly from the component instance unless compiling with 'accessors: true' or ''"); - } - set Hst(value) { - throw new Error(": Props cannot be set directly on the component instance unless compiling with 'accessors: true' or ''"); - } -} -const index_svelte_svelte_type_style_lang = ""; -const file$4 = "src/lib/components/CostMass/index.svelte"; -function create_fragment$9(ctx) { - let div0; - let t0; - let img; - let img_src_value; - let t1; - let div1; - let t2; - const block = { - c: function create() { - div0 = element("div"); - t0 = text( - /*mass*/ - ctx[0] - ); - img = element("img"); - t1 = space(); - div1 = element("div"); - t2 = text( - /*cost*/ - ctx[1] - ); - this.h(); - }, - l: function claim(nodes) { - div0 = claim_element(nodes, "DIV", { class: true }); - var div0_nodes = children(div0); - t0 = claim_text( - div0_nodes, - /*mass*/ - ctx[0] - ); - img = claim_element(div0_nodes, "IMG", { src: true, alt: true, class: true }); - div0_nodes.forEach(detach_dev); - t1 = claim_space(nodes); - div1 = claim_element(nodes, "DIV", { class: true }); - var div1_nodes = children(div1); - t2 = claim_text( - div1_nodes, - /*cost*/ - ctx[1] - ); - div1_nodes.forEach(detach_dev); - this.h(); - }, - h: function hydrate() { - if (!src_url_equal(img.src, img_src_value = base$1 + "/mass.svg")) - attr_dev(img, "src", img_src_value); - attr_dev(img, "alt", "mass"); - attr_dev(img, "class", "s-oaXyF42PwCjx"); - add_location(img, file$4, 0, 24, 24); - attr_dev(div0, "class", "mass s-oaXyF42PwCjx"); - add_location(div0, file$4, 0, 0, 0); - attr_dev(div1, "class", "cost s-oaXyF42PwCjx"); - add_location(div1, file$4, 1, 0, 71); - }, - m: function mount(target, anchor) { - insert_hydration_dev(target, div0, anchor); - append_hydration_dev(div0, t0); - append_hydration_dev(div0, img); - insert_hydration_dev(target, t1, anchor); - insert_hydration_dev(target, div1, anchor); - append_hydration_dev(div1, t2); - }, - p: function update(ctx2, [dirty]) { - if (dirty & /*mass*/ - 1) - set_data_dev( - t0, - /*mass*/ - ctx2[0] - ); - if (dirty & /*cost*/ - 2) - set_data_dev( - t2, - /*cost*/ - ctx2[1] - ); - }, - i: noop, - o: noop, - d: function destroy(detaching) { - if (detaching) - detach_dev(div0); - if (detaching) - detach_dev(t1); - if (detaching) - detach_dev(div1); - } - }; - dispatch_dev("SvelteRegisterBlock", { - block, - id: create_fragment$9.name, - type: "component", - source: "", - ctx - }); - return block; -} -function instance$9($$self, $$props, $$invalidate) { - let { $$slots: slots = {}, $$scope } = $$props; - validate_slots("CostMass", slots, []); - let { mass } = $$props; - let { cost } = $$props; - $$self.$$.on_mount.push(function() { - if (mass === void 0 && !("mass" in $$props || $$self.$$.bound[$$self.$$.props["mass"]])) { - console.warn(" was created without expected prop 'mass'"); - } - if (cost === void 0 && !("cost" in $$props || $$self.$$.bound[$$self.$$.props["cost"]])) { - console.warn(" was created without expected prop 'cost'"); - } - }); - const writable_props = ["mass", "cost"]; - Object.keys($$props).forEach((key) => { - if (!~writable_props.indexOf(key) && key.slice(0, 2) !== "$$" && key !== "slot") - console.warn(` was created with unknown prop '${key}'`); - }); - $$self.$$set = ($$props2) => { - if ("mass" in $$props2) - $$invalidate(0, mass = $$props2.mass); - if ("cost" in $$props2) - $$invalidate(1, cost = $$props2.cost); - }; - $$self.$capture_state = () => ({ base: base$1, mass, cost }); - $$self.$inject_state = ($$props2) => { - if ("mass" in $$props2) - $$invalidate(0, mass = $$props2.mass); - if ("cost" in $$props2) - $$invalidate(1, cost = $$props2.cost); - }; - if ($$props && "$$inject" in $$props) { - $$self.$inject_state($$props.$$inject); - } - return [mass, cost]; -} -class CostMass extends SvelteComponentDev { - constructor(options) { - super(options); - init(this, options, instance$9, create_fragment$9, safe_not_equal, { mass: 0, cost: 1 }); - dispatch_dev("SvelteRegisterComponent", { - component: this, - tagName: "CostMass", - options, - id: create_fragment$9.name - }); - } - get mass() { - throw new Error(": Props cannot be read directly from the component instance unless compiling with 'accessors: true' or ''"); - } - set mass(value) { - throw new Error(": Props cannot be set directly on the component instance unless compiling with 'accessors: true' or ''"); - } - get cost() { - throw new Error(": Props cannot be read directly from the component instance unless compiling with 'accessors: true' or ''"); - } - set cost(value) { - throw new Error(": Props cannot be set directly on the component instance unless compiling with 'accessors: true' or ''"); - } -} -function create_default_slot$6(ctx) { - let costmass; - let current; - costmass = new CostMass({ - props: { mass: 12, cost: 21 }, - $$inline: true - }); - const block = { - c: function create() { - create_component(costmass.$$.fragment); - }, - l: function claim(nodes) { - claim_component(costmass.$$.fragment, nodes); - }, - m: function mount(target, anchor) { - mount_component(costmass, target, anchor); - current = true; - }, - p: noop, - i: function intro(local) { - if (current) - return; - transition_in(costmass.$$.fragment, local); - current = true; - }, - o: function outro(local) { - transition_out(costmass.$$.fragment, local); - current = false; - }, - d: function destroy(detaching) { - destroy_component(costmass, detaching); - } - }; - dispatch_dev("SvelteRegisterBlock", { - block, - id: create_default_slot$6.name, - type: "slot", - source: '(1:0) ', - ctx - }); - return block; -} -function create_fragment$8(ctx) { - let hst_story; - let current; - hst_story = new /*Hst*/ - ctx[0].Story({ - props: { - title: "CostMass", - $$slots: { default: [create_default_slot$6] }, - $$scope: { ctx } - }, - $$inline: true - }); - const block = { - c: function create() { - create_component(hst_story.$$.fragment); - }, - l: function claim(nodes) { - claim_component(hst_story.$$.fragment, nodes); - }, - m: function mount(target, anchor) { - mount_component(hst_story, target, anchor); - current = true; - }, - p: function update(ctx2, [dirty]) { - const hst_story_changes = {}; - if (dirty & /*$$scope*/ - 2) { - hst_story_changes.$$scope = { dirty, ctx: ctx2 }; - } - hst_story.$set(hst_story_changes); - }, - i: function intro(local) { - if (current) - return; - transition_in(hst_story.$$.fragment, local); - current = true; - }, - o: function outro(local) { - transition_out(hst_story.$$.fragment, local); - current = false; - }, - d: function destroy(detaching) { - destroy_component(hst_story, detaching); - } - }; - dispatch_dev("SvelteRegisterBlock", { - block, - id: create_fragment$8.name, - type: "component", - source: "", - ctx - }); - return block; -} -function instance$8($$self, $$props, $$invalidate) { - let { $$slots: slots = {}, $$scope } = $$props; - validate_slots("CostMass", slots, []); - let { Hst } = $$props; - $$self.$$.on_mount.push(function() { - if (Hst === void 0 && !("Hst" in $$props || $$self.$$.bound[$$self.$$.props["Hst"]])) { - console.warn(" was created without expected prop 'Hst'"); - } - }); - const writable_props = ["Hst"]; - Object.keys($$props).forEach((key) => { - if (!~writable_props.indexOf(key) && key.slice(0, 2) !== "$$" && key !== "slot") - console.warn(` was created with unknown prop '${key}'`); - }); - $$self.$$set = ($$props2) => { - if ("Hst" in $$props2) - $$invalidate(0, Hst = $$props2.Hst); - }; - $$self.$capture_state = () => ({ Hst, CostMass }); - $$self.$inject_state = ($$props2) => { - if ("Hst" in $$props2) - $$invalidate(0, Hst = $$props2.Hst); - }; - if ($$props && "$$inject" in $$props) { - $$self.$inject_state($$props.$$inject); - } - return [Hst]; -} -class CostMass_1 extends SvelteComponentDev { - constructor(options) { - super(options); - init(this, options, instance$8, create_fragment$8, safe_not_equal, { Hst: 0 }); - dispatch_dev("SvelteRegisterComponent", { - component: this, - tagName: "CostMass_1", - options, - id: create_fragment$8.name - }); - } - get Hst() { - throw new Error(": Props cannot be read directly from the component instance unless compiling with 'accessors: true' or ''"); - } - set Hst(value) { - throw new Error(": Props cannot be set directly on the component instance unless compiling with 'accessors: true' or ''"); - } -} -const Section_svelte_svelte_type_style_lang = ""; -const file$3 = "src/lib/components/Section.svelte"; -function create_fragment$7(ctx) { - let div; - let h2; - let t0; - let t1; - let hr; - let t2; - let current; - const default_slot_template = ( - /*#slots*/ - ctx[2].default - ); - const default_slot = create_slot( - default_slot_template, - ctx, - /*$$scope*/ - ctx[1], - null - ); - const block = { - c: function create() { - div = element("div"); - h2 = element("h2"); - t0 = text( - /*label*/ - ctx[0] - ); - t1 = space(); - hr = element("hr"); - t2 = space(); - if (default_slot) - default_slot.c(); - this.h(); - }, - l: function claim(nodes) { - div = claim_element(nodes, "DIV", { class: true }); - var div_nodes = children(div); - h2 = claim_element(div_nodes, "H2", { class: true }); - var h2_nodes = children(h2); - t0 = claim_text( - h2_nodes, - /*label*/ - ctx[0] - ); - h2_nodes.forEach(detach_dev); - t1 = claim_space(div_nodes); - hr = claim_element(div_nodes, "HR", { class: true }); - div_nodes.forEach(detach_dev); - t2 = claim_space(nodes); - if (default_slot) - default_slot.l(nodes); - this.h(); - }, - h: function hydrate() { - attr_dev(h2, "class", "s-8Wn_PeFn3mR4"); - add_location(h2, file$3, 1, 2, 8); - attr_dev(hr, "class", "s-8Wn_PeFn3mR4"); - add_location(hr, file$3, 2, 2, 27); - attr_dev(div, "class", "s-8Wn_PeFn3mR4"); - add_location(div, file$3, 0, 0, 0); - }, - m: function mount(target, anchor) { - insert_hydration_dev(target, div, anchor); - append_hydration_dev(div, h2); - append_hydration_dev(h2, t0); - append_hydration_dev(div, t1); - append_hydration_dev(div, hr); - insert_hydration_dev(target, t2, anchor); - if (default_slot) { - default_slot.m(target, anchor); - } - current = true; - }, - p: function update(ctx2, [dirty]) { - if (!current || dirty & /*label*/ - 1) - set_data_dev( - t0, - /*label*/ - ctx2[0] - ); - if (default_slot) { - if (default_slot.p && (!current || dirty & /*$$scope*/ - 2)) { - update_slot_base( - default_slot, - default_slot_template, - ctx2, - /*$$scope*/ - ctx2[1], - !current ? get_all_dirty_from_scope( - /*$$scope*/ - ctx2[1] - ) : get_slot_changes( - default_slot_template, - /*$$scope*/ - ctx2[1], - dirty, - null - ), - null - ); - } - } - }, - i: function intro(local) { - if (current) - return; - transition_in(default_slot, local); - current = true; - }, - o: function outro(local) { - transition_out(default_slot, local); - current = false; - }, - d: function destroy(detaching) { - if (detaching) - detach_dev(div); - if (detaching) - detach_dev(t2); - if (default_slot) - default_slot.d(detaching); - } - }; - dispatch_dev("SvelteRegisterBlock", { - block, - id: create_fragment$7.name, - type: "component", - source: "", - ctx - }); - return block; -} -function instance$7($$self, $$props, $$invalidate) { - let { $$slots: slots = {}, $$scope } = $$props; - validate_slots("Section", slots, ["default"]); - let { label } = $$props; - $$self.$$.on_mount.push(function() { - if (label === void 0 && !("label" in $$props || $$self.$$.bound[$$self.$$.props["label"]])) { - console.warn("
was created without expected prop 'label'"); - } - }); - const writable_props = ["label"]; - Object.keys($$props).forEach((key) => { - if (!~writable_props.indexOf(key) && key.slice(0, 2) !== "$$" && key !== "slot") - console.warn(`
was created with unknown prop '${key}'`); - }); - $$self.$$set = ($$props2) => { - if ("label" in $$props2) - $$invalidate(0, label = $$props2.label); - if ("$$scope" in $$props2) - $$invalidate(1, $$scope = $$props2.$$scope); - }; - $$self.$capture_state = () => ({ label }); - $$self.$inject_state = ($$props2) => { - if ("label" in $$props2) - $$invalidate(0, label = $$props2.label); - }; - if ($$props && "$$inject" in $$props) { - $$self.$inject_state($$props.$$inject); - } - return [label, $$scope, slots]; -} -class Section extends SvelteComponentDev { - constructor(options) { - super(options); - init(this, options, instance$7, create_fragment$7, safe_not_equal, { label: 0 }); - dispatch_dev("SvelteRegisterComponent", { - component: this, - tagName: "Section", - options, - id: create_fragment$7.name - }); - } - get label() { - throw new Error("
: Props cannot be read directly from the component instance unless compiling with 'accessors: true' or ''"); - } - set label(value) { - throw new Error("
: Props cannot be set directly on the component instance unless compiling with 'accessors: true' or ''"); - } -} -const Field_svelte_svelte_type_style_lang = ""; -const file$2 = "src/lib/components/Field.svelte"; -function create_if_block(ctx) { - let label_1; - let t; - const block = { - c: function create() { - label_1 = element("label"); - t = text( - /*label*/ - ctx[1] - ); - this.h(); - }, - l: function claim(nodes) { - label_1 = claim_element(nodes, "LABEL", { class: true }); - var label_1_nodes = children(label_1); - t = claim_text( - label_1_nodes, - /*label*/ - ctx[1] - ); - label_1_nodes.forEach(detach_dev); - this.h(); - }, - h: function hydrate() { - attr_dev(label_1, "class", "s-Q6iX6IPZr4w0"); - add_location(label_1, file$2, 2, 4, 24); - }, - m: function mount(target, anchor) { - insert_hydration_dev(target, label_1, anchor); - append_hydration_dev(label_1, t); - }, - p: function update(ctx2, dirty) { - if (dirty & /*label*/ - 2) - set_data_dev( - t, - /*label*/ - ctx2[1] - ); - }, - d: function destroy(detaching) { - if (detaching) - detach_dev(label_1); - } - }; - dispatch_dev("SvelteRegisterBlock", { - block, - id: create_if_block.name, - type: "if", - source: "(2:2) {#if label}", - ctx - }); - return block; -} -function fallback_block(ctx) { - let input; - let mounted; - let dispose; - const block = { - c: function create() { - input = element("input"); - this.h(); - }, - l: function claim(nodes) { - input = claim_element(nodes, "INPUT", { type: true, placeholder: true }); - this.h(); - }, - h: function hydrate() { - attr_dev(input, "type", "text"); - attr_dev( - input, - "placeholder", - /*placeholder*/ - ctx[2] - ); - add_location(input, file$2, 5, 4, 68); - }, - m: function mount(target, anchor) { - insert_hydration_dev(target, input, anchor); - set_input_value( - input, - /*value*/ - ctx[0] - ); - if (!mounted) { - dispose = [ - listen_dev( - input, - "input", - /*input_input_handler*/ - ctx[6] - ), - listen_dev( - input, - "change", - /*change_handler*/ - ctx[5], - false, - false, - false - ) - ]; - mounted = true; - } - }, - p: function update(ctx2, dirty) { - if (dirty & /*placeholder*/ - 4) { - attr_dev( - input, - "placeholder", - /*placeholder*/ - ctx2[2] - ); - } - if (dirty & /*value*/ - 1 && input.value !== /*value*/ - ctx2[0]) { - set_input_value( - input, - /*value*/ - ctx2[0] - ); - } - }, - d: function destroy(detaching) { - if (detaching) - detach_dev(input); - mounted = false; - run_all(dispose); - } - }; - dispatch_dev("SvelteRegisterBlock", { - block, - id: fallback_block.name, - type: "fallback", - source: "(5:8) ", - ctx - }); - return block; -} -function create_fragment$6(ctx) { - let div; - let t; - let current; - let if_block = ( - /*label*/ - ctx[1] && create_if_block(ctx) - ); - const default_slot_template = ( - /*#slots*/ - ctx[4].default - ); - const default_slot = create_slot( - default_slot_template, - ctx, - /*$$scope*/ - ctx[3], - null - ); - const default_slot_or_fallback = default_slot || fallback_block(ctx); - const block = { - c: function create() { - div = element("div"); - if (if_block) - if_block.c(); - t = space(); - if (default_slot_or_fallback) - default_slot_or_fallback.c(); - this.h(); - }, - l: function claim(nodes) { - div = claim_element(nodes, "DIV", { class: true }); - var div_nodes = children(div); - if (if_block) - if_block.l(div_nodes); - t = claim_space(div_nodes); - if (default_slot_or_fallback) - default_slot_or_fallback.l(div_nodes); - div_nodes.forEach(detach_dev); - this.h(); - }, - h: function hydrate() { - attr_dev(div, "class", "s-Q6iX6IPZr4w0"); - add_location(div, file$2, 0, 0, 0); - }, - m: function mount(target, anchor) { - insert_hydration_dev(target, div, anchor); - if (if_block) - if_block.m(div, null); - append_hydration_dev(div, t); - if (default_slot_or_fallback) { - default_slot_or_fallback.m(div, null); - } - current = true; - }, - p: function update(ctx2, [dirty]) { - if ( - /*label*/ - ctx2[1] - ) { - if (if_block) { - if_block.p(ctx2, dirty); - } else { - if_block = create_if_block(ctx2); - if_block.c(); - if_block.m(div, t); - } - } else if (if_block) { - if_block.d(1); - if_block = null; - } - if (default_slot) { - if (default_slot.p && (!current || dirty & /*$$scope*/ - 8)) { - update_slot_base( - default_slot, - default_slot_template, - ctx2, - /*$$scope*/ - ctx2[3], - !current ? get_all_dirty_from_scope( - /*$$scope*/ - ctx2[3] - ) : get_slot_changes( - default_slot_template, - /*$$scope*/ - ctx2[3], - dirty, - null - ), - null - ); - } - } else { - if (default_slot_or_fallback && default_slot_or_fallback.p && (!current || dirty & /*placeholder, value*/ - 5)) { - default_slot_or_fallback.p(ctx2, !current ? -1 : dirty); - } - } - }, - i: function intro(local) { - if (current) - return; - transition_in(default_slot_or_fallback, local); - current = true; - }, - o: function outro(local) { - transition_out(default_slot_or_fallback, local); - current = false; - }, - d: function destroy(detaching) { - if (detaching) - detach_dev(div); - if (if_block) - if_block.d(); - if (default_slot_or_fallback) - default_slot_or_fallback.d(detaching); - } - }; - dispatch_dev("SvelteRegisterBlock", { - block, - id: create_fragment$6.name, - type: "component", - source: "", - ctx - }); - return block; -} -function instance$6($$self, $$props, $$invalidate) { - let { $$slots: slots = {}, $$scope } = $$props; - validate_slots("Field", slots, ["default"]); - let { label = "" } = $$props; - let { value = "" } = $$props; - let { placeholder = label } = $$props; - const writable_props = ["label", "value", "placeholder"]; - Object.keys($$props).forEach((key) => { - if (!~writable_props.indexOf(key) && key.slice(0, 2) !== "$$" && key !== "slot") - console.warn(` was created with unknown prop '${key}'`); - }); - function change_handler(event) { - bubble.call(this, $$self, event); - } - function input_input_handler() { - value = this.value; - $$invalidate(0, value); - } - $$self.$$set = ($$props2) => { - if ("label" in $$props2) - $$invalidate(1, label = $$props2.label); - if ("value" in $$props2) - $$invalidate(0, value = $$props2.value); - if ("placeholder" in $$props2) - $$invalidate(2, placeholder = $$props2.placeholder); - if ("$$scope" in $$props2) - $$invalidate(3, $$scope = $$props2.$$scope); - }; - $$self.$capture_state = () => ({ label, value, placeholder }); - $$self.$inject_state = ($$props2) => { - if ("label" in $$props2) - $$invalidate(1, label = $$props2.label); - if ("value" in $$props2) - $$invalidate(0, value = $$props2.value); - if ("placeholder" in $$props2) - $$invalidate(2, placeholder = $$props2.placeholder); - }; - if ($$props && "$$inject" in $$props) { - $$self.$inject_state($$props.$$inject); - } - return [value, label, placeholder, $$scope, slots, change_handler, input_input_handler]; -} -class Field extends SvelteComponentDev { - constructor(options) { - super(options); - init(this, options, instance$6, create_fragment$6, safe_not_equal, { label: 1, value: 0, placeholder: 2 }); - dispatch_dev("SvelteRegisterComponent", { - component: this, - tagName: "Field", - options, - id: create_fragment$6.name - }); - } - get label() { - throw new Error(": Props cannot be read directly from the component instance unless compiling with 'accessors: true' or ''"); - } - set label(value) { - throw new Error(": Props cannot be set directly on the component instance unless compiling with 'accessors: true' or ''"); - } - get value() { - throw new Error(": Props cannot be read directly from the component instance unless compiling with 'accessors: true' or ''"); - } - set value(value) { - throw new Error(": Props cannot be set directly on the component instance unless compiling with 'accessors: true' or ''"); - } - get placeholder() { - throw new Error(": Props cannot be read directly from the component instance unless compiling with 'accessors: true' or ''"); - } - set placeholder(value) { - throw new Error(": Props cannot be set directly on the component instance unless compiling with 'accessors: true' or ''"); - } -} -const Engine_svelte_svelte_type_style_lang = ""; -const file$1 = "src/lib/components/ShipEdit/Propulsion/Engine.svelte"; -function create_default_slot_1$1(ctx) { - let t; - let input; - let mounted; - let dispose; - const block = { - c: function create() { - t = text("Well then!\n "); - input = element("input"); - this.h(); - }, - l: function claim(nodes) { - t = claim_text(nodes, "Well then!\n "); - input = claim_element(nodes, "INPUT", { - class: true, - type: true, - min: true, - max: true, - step: true - }); - this.h(); - }, - h: function hydrate() { - attr_dev(input, "class", "short s-6wUMfpp2c9lR"); - attr_dev(input, "type", "number"); - attr_dev(input, "min", "0"); - attr_dev(input, "max", "20"); - attr_dev(input, "step", "1"); - add_location(input, file$1, 4, 6, 86); - }, - m: function mount(target, anchor) { - insert_hydration_dev(target, t, anchor); - insert_hydration_dev(target, input, anchor); - set_input_value( - input, - /*rating*/ - ctx[1] - ); - if (!mounted) { - dispose = listen_dev( - input, - "input", - /*input_input_handler*/ - ctx[4] - ); - mounted = true; - } - }, - p: function update(ctx2, dirty) { - if (dirty & /*rating*/ - 2 && to_number(input.value) !== /*rating*/ - ctx2[1]) { - set_input_value( - input, - /*rating*/ - ctx2[1] - ); - } - }, - d: function destroy(detaching) { - if (detaching) - detach_dev(t); - if (detaching) - detach_dev(input); - mounted = false; - dispose(); - } - }; - dispatch_dev("SvelteRegisterBlock", { - block, - id: create_default_slot_1$1.name, - type: "slot", - source: '(3:4) ', - ctx - }); - return block; -} -function create_default_slot$5(ctx) { - let div; - let field; - let t0; - let label; - let input; - let t1; - let current; - let mounted; - let dispose; - field = new Field({ - props: { - label: "thrust rating", - $$slots: { default: [create_default_slot_1$1] }, - $$scope: { ctx } - }, - $$inline: true - }); - const block = { - c: function create() { - div = element("div"); - create_component(field.$$.fragment); - t0 = space(); - label = element("label"); - input = element("input"); - t1 = text(" advanced"); - this.h(); - }, - l: function claim(nodes) { - div = claim_element(nodes, "DIV", { class: true }); - var div_nodes = children(div); - claim_component(field.$$.fragment, div_nodes); - t0 = claim_space(div_nodes); - label = claim_element(div_nodes, "LABEL", { class: true }); - var label_nodes = children(label); - input = claim_element(label_nodes, "INPUT", { type: true, class: true }); - t1 = claim_text(label_nodes, " advanced"); - label_nodes.forEach(detach_dev); - div_nodes.forEach(detach_dev); - this.h(); - }, - h: function hydrate() { - attr_dev(input, "type", "checkbox"); - attr_dev(input, "class", "s-6wUMfpp2c9lR"); - add_location(input, file$1, 14, 11, 249); - attr_dev(label, "class", "s-6wUMfpp2c9lR"); - add_location(label, file$1, 14, 4, 242); - attr_dev(div, "class", "s-6wUMfpp2c9lR"); - add_location(div, file$1, 1, 2, 23); - }, - m: function mount(target, anchor) { - insert_hydration_dev(target, div, anchor); - mount_component(field, div, null); - append_hydration_dev(div, t0); - append_hydration_dev(div, label); - append_hydration_dev(label, input); - input.checked = /*advanced*/ - ctx[0]; - append_hydration_dev(label, t1); - current = true; - if (!mounted) { - dispose = listen_dev( - input, - "change", - /*input_change_handler*/ - ctx[5] - ); - mounted = true; - } - }, - p: function update(ctx2, dirty) { - const field_changes = {}; - if (dirty & /*$$scope, rating*/ - 66) { - field_changes.$$scope = { dirty, ctx: ctx2 }; - } - field.$set(field_changes); - if (dirty & /*advanced*/ - 1) { - input.checked = /*advanced*/ - ctx2[0]; - } - }, - i: function intro(local) { - if (current) - return; - transition_in(field.$$.fragment, local); - current = true; - }, - o: function outro(local) { - transition_out(field.$$.fragment, local); - current = false; - }, - d: function destroy(detaching) { - if (detaching) - detach_dev(div); - destroy_component(field); - mounted = false; - dispose(); - } - }; - dispatch_dev("SvelteRegisterBlock", { - block, - id: create_default_slot$5.name, - type: "slot", - source: "(1:0) ", - ctx - }); - return block; -} -function create_fragment$5(ctx) { - let shipitem; - let current; - const shipitem_spread_levels = [ - /*reqs*/ - ctx[2] - ]; - let shipitem_props = { - $$slots: { default: [create_default_slot$5] }, - $$scope: { ctx } - }; - for (let i = 0; i < shipitem_spread_levels.length; i += 1) { - shipitem_props = assign(shipitem_props, shipitem_spread_levels[i]); - } - shipitem = new ShipItem({ props: shipitem_props, $$inline: true }); - const block = { - c: function create() { - create_component(shipitem.$$.fragment); - }, - l: function claim(nodes) { - claim_component(shipitem.$$.fragment, nodes); - }, - m: function mount(target, anchor) { - mount_component(shipitem, target, anchor); - current = true; - }, - p: function update(ctx2, [dirty]) { - const shipitem_changes = dirty & /*reqs*/ - 4 ? get_spread_update(shipitem_spread_levels, [get_spread_object( - /*reqs*/ - ctx2[2] - )]) : {}; - if (dirty & /*$$scope, advanced, rating*/ - 67) { - shipitem_changes.$$scope = { dirty, ctx: ctx2 }; - } - shipitem.$set(shipitem_changes); - }, - i: function intro(local) { - if (current) - return; - transition_in(shipitem.$$.fragment, local); - current = true; - }, - o: function outro(local) { - transition_out(shipitem.$$.fragment, local); - current = false; - }, - d: function destroy(detaching) { - destroy_component(shipitem, detaching); - } - }; - dispatch_dev("SvelteRegisterBlock", { - block, - id: create_fragment$5.name, - type: "component", - source: "", - ctx - }); - return block; -} -function instance$5($$self, $$props, $$invalidate) { - let { $$slots: slots = {}, $$scope } = $$props; - validate_slots("Engine", slots, []); - let { reqs = { cost: 0, mass: 0 } } = $$props; - let { advanced = false } = $$props; - let { rating = 0 } = $$props; - let { api = getContext("api") } = $$props; - const writable_props = ["reqs", "advanced", "rating", "api"]; - Object.keys($$props).forEach((key) => { - if (!~writable_props.indexOf(key) && key.slice(0, 2) !== "$$" && key !== "slot") - console.warn(` was created with unknown prop '${key}'`); - }); - function input_input_handler() { - rating = to_number(this.value); - $$invalidate(1, rating); - } - function input_change_handler() { - advanced = this.checked; - $$invalidate(0, advanced); - } - $$self.$$set = ($$props2) => { - if ("reqs" in $$props2) - $$invalidate(2, reqs = $$props2.reqs); - if ("advanced" in $$props2) - $$invalidate(0, advanced = $$props2.advanced); - if ("rating" in $$props2) - $$invalidate(1, rating = $$props2.rating); - if ("api" in $$props2) - $$invalidate(3, api = $$props2.api); - }; - $$self.$capture_state = () => ({ - getContext, - Field, - ShipItem, - reqs, - advanced, - rating, - api - }); - $$self.$inject_state = ($$props2) => { - if ("reqs" in $$props2) - $$invalidate(2, reqs = $$props2.reqs); - if ("advanced" in $$props2) - $$invalidate(0, advanced = $$props2.advanced); - if ("rating" in $$props2) - $$invalidate(1, rating = $$props2.rating); - if ("api" in $$props2) - $$invalidate(3, api = $$props2.api); - }; - if ($$props && "$$inject" in $$props) { - $$self.$inject_state($$props.$$inject); - } - $$self.$$.update = () => { - var _a; - if ($$self.$$.dirty & /*api, rating, advanced*/ - 11) { - (_a = api == null ? void 0 : api.dispatch) == null ? void 0 : _a.setEngine({ rating, advanced }); - } - }; - return [advanced, rating, reqs, api, input_input_handler, input_change_handler]; -} -class Engine extends SvelteComponentDev { - constructor(options) { - super(options); - init(this, options, instance$5, create_fragment$5, safe_not_equal, { reqs: 2, advanced: 0, rating: 1, api: 3 }); - dispatch_dev("SvelteRegisterComponent", { - component: this, - tagName: "Engine", - options, - id: create_fragment$5.name - }); - } - get reqs() { - throw new Error(": Props cannot be read directly from the component instance unless compiling with 'accessors: true' or ''"); - } - set reqs(value) { - throw new Error(": Props cannot be set directly on the component instance unless compiling with 'accessors: true' or ''"); - } - get advanced() { - throw new Error(": Props cannot be read directly from the component instance unless compiling with 'accessors: true' or ''"); - } - set advanced(value) { - throw new Error(": Props cannot be set directly on the component instance unless compiling with 'accessors: true' or ''"); - } - get rating() { - throw new Error(": Props cannot be read directly from the component instance unless compiling with 'accessors: true' or ''"); - } - set rating(value) { - throw new Error(": Props cannot be set directly on the component instance unless compiling with 'accessors: true' or ''"); - } - get api() { - throw new Error(": Props cannot be read directly from the component instance unless compiling with 'accessors: true' or ''"); - } - set api(value) { - throw new Error(": Props cannot be set directly on the component instance unless compiling with 'accessors: true' or ''"); - } -} -const Ftl_svelte_svelte_type_style_lang = ""; -const file = "src/lib/components/ShipEdit/Propulsion/Ftl.svelte"; -function get_each_context(ctx, list, i) { - const child_ctx = ctx.slice(); - child_ctx[6] = list[i]; - return child_ctx; -} -function create_each_block(key_1, ctx) { - let label; - let input; - let t0; - let t1_value = ( - /*t*/ - ctx[6] + "" - ); - let t1; - let t2; - let mounted; - let dispose; - const block = { - key: key_1, - first: null, - c: function create() { - label = element("label"); - input = element("input"); - t0 = space(); - t1 = text(t1_value); - t2 = space(); - this.h(); - }, - l: function claim(nodes) { - label = claim_element(nodes, "LABEL", { class: true }); - var label_nodes = children(label); - input = claim_element(label_nodes, "INPUT", { type: true }); - t0 = claim_space(label_nodes); - t1 = claim_text(label_nodes, t1_value); - t2 = claim_space(label_nodes); - label_nodes.forEach(detach_dev); - this.h(); - }, - h: function hydrate() { - attr_dev(input, "type", "radio"); - input.__value = /*t*/ - ctx[6]; - input.value = input.__value; - ctx[5][0].push(input); - add_location(input, file, 4, 9, 98); - attr_dev(label, "class", "s-bMEhkCgfZ263"); - add_location(label, file, 3, 6, 82); - this.first = label; - }, - m: function mount(target, anchor) { - insert_hydration_dev(target, label, anchor); - append_hydration_dev(label, input); - input.checked = input.__value === /*type*/ - ctx[0]; - append_hydration_dev(label, t0); - append_hydration_dev(label, t1); - append_hydration_dev(label, t2); - if (!mounted) { - dispose = listen_dev( - input, - "change", - /*input_change_handler*/ - ctx[4] - ); - mounted = true; - } - }, - p: function update(new_ctx, dirty) { - ctx = new_ctx; - if (dirty & /*type*/ - 1) { - input.checked = input.__value === /*type*/ - ctx[0]; - } - }, - d: function destroy(detaching) { - if (detaching) - detach_dev(label); - ctx[5][0].splice( - /*$$binding_groups*/ - ctx[5][0].indexOf(input), - 1 - ); - mounted = false; - dispose(); - } - }; - dispatch_dev("SvelteRegisterBlock", { - block, - id: create_each_block.name, - type: "each", - source: "(3:4) {#each types as t (t)}", - ctx - }); - return block; -} -function create_default_slot_1(ctx) { - let each_blocks = []; - let each_1_lookup = /* @__PURE__ */ new Map(); - let each_1_anchor; - let each_value = ( - /*types*/ - ctx[2] - ); - validate_each_argument(each_value); - const get_key = (ctx2) => ( - /*t*/ - ctx2[6] - ); - validate_each_keys(ctx, each_value, get_each_context, get_key); - for (let i = 0; i < each_value.length; i += 1) { - let child_ctx = get_each_context(ctx, each_value, i); - let key = get_key(child_ctx); - each_1_lookup.set(key, each_blocks[i] = create_each_block(key, child_ctx)); - } - const block = { - c: function create() { - for (let i = 0; i < each_blocks.length; i += 1) { - each_blocks[i].c(); - } - each_1_anchor = empty(); - }, - l: function claim(nodes) { - for (let i = 0; i < each_blocks.length; i += 1) { - each_blocks[i].l(nodes); - } - each_1_anchor = empty(); - }, - m: function mount(target, anchor) { - for (let i = 0; i < each_blocks.length; i += 1) { - each_blocks[i].m(target, anchor); - } - insert_hydration_dev(target, each_1_anchor, anchor); - }, - p: function update(ctx2, dirty) { - if (dirty & /*types, type*/ - 5) { - each_value = /*types*/ - ctx2[2]; - validate_each_argument(each_value); - validate_each_keys(ctx2, each_value, get_each_context, get_key); - each_blocks = update_keyed_each(each_blocks, dirty, get_key, 1, ctx2, each_value, each_1_lookup, each_1_anchor.parentNode, destroy_block, create_each_block, each_1_anchor, get_each_context); - } - }, - d: function destroy(detaching) { - for (let i = 0; i < each_blocks.length; i += 1) { - each_blocks[i].d(detaching); - } - if (detaching) - detach_dev(each_1_anchor); - } - }; - dispatch_dev("SvelteRegisterBlock", { - block, - id: create_default_slot_1.name, - type: "slot", - source: '(2:2) ', - ctx - }); - return block; -} -function create_default_slot$4(ctx) { - let field; - let current; - field = new Field({ - props: { - label: "FTL drive", - $$slots: { default: [create_default_slot_1] }, - $$scope: { ctx } - }, - $$inline: true - }); - const block = { - c: function create() { - create_component(field.$$.fragment); - }, - l: function claim(nodes) { - claim_component(field.$$.fragment, nodes); - }, - m: function mount(target, anchor) { - mount_component(field, target, anchor); - current = true; - }, - p: function update(ctx2, dirty) { - const field_changes = {}; - if (dirty & /*$$scope, type*/ - 513) { - field_changes.$$scope = { dirty, ctx: ctx2 }; - } - field.$set(field_changes); - }, - i: function intro(local) { - if (current) - return; - transition_in(field.$$.fragment, local); - current = true; - }, - o: function outro(local) { - transition_out(field.$$.fragment, local); - current = false; - }, - d: function destroy(detaching) { - destroy_component(field, detaching); - } - }; - dispatch_dev("SvelteRegisterBlock", { - block, - id: create_default_slot$4.name, - type: "slot", - source: "(1:0) ", - ctx - }); - return block; -} -function create_fragment$4(ctx) { - let shipitem; - let current; - const shipitem_spread_levels = [ - /*reqs*/ - ctx[1] - ]; - let shipitem_props = { - $$slots: { default: [create_default_slot$4] }, - $$scope: { ctx } - }; - for (let i = 0; i < shipitem_spread_levels.length; i += 1) { - shipitem_props = assign(shipitem_props, shipitem_spread_levels[i]); - } - shipitem = new ShipItem({ props: shipitem_props, $$inline: true }); - const block = { - c: function create() { - create_component(shipitem.$$.fragment); - }, - l: function claim(nodes) { - claim_component(shipitem.$$.fragment, nodes); - }, - m: function mount(target, anchor) { - mount_component(shipitem, target, anchor); - current = true; - }, - p: function update(ctx2, [dirty]) { - const shipitem_changes = dirty & /*reqs*/ - 2 ? get_spread_update(shipitem_spread_levels, [get_spread_object( - /*reqs*/ - ctx2[1] - )]) : {}; - if (dirty & /*$$scope, type*/ - 513) { - shipitem_changes.$$scope = { dirty, ctx: ctx2 }; - } - shipitem.$set(shipitem_changes); - }, - i: function intro(local) { - if (current) - return; - transition_in(shipitem.$$.fragment, local); - current = true; - }, - o: function outro(local) { - transition_out(shipitem.$$.fragment, local); - current = false; - }, - d: function destroy(detaching) { - destroy_component(shipitem, detaching); - } - }; - dispatch_dev("SvelteRegisterBlock", { - block, - id: create_fragment$4.name, - type: "component", - source: "", - ctx - }); - return block; -} -function instance$4($$self, $$props, $$invalidate) { - let { $$slots: slots = {}, $$scope } = $$props; - validate_slots("Ftl", slots, []); - let { type = "none" } = $$props; - let { reqs = { mass: 0, cost: 0 } } = $$props; - let { api = getContext("api") } = $$props; - const types = ["none", "standard", "advanced"]; - const writable_props = ["type", "reqs", "api"]; - Object.keys($$props).forEach((key) => { - if (!~writable_props.indexOf(key) && key.slice(0, 2) !== "$$" && key !== "slot") - console.warn(` was created with unknown prop '${key}'`); - }); - const $$binding_groups = [[]]; - function input_change_handler() { - type = this.__value; - $$invalidate(0, type); - } - $$self.$$set = ($$props2) => { - if ("type" in $$props2) - $$invalidate(0, type = $$props2.type); - if ("reqs" in $$props2) - $$invalidate(1, reqs = $$props2.reqs); - if ("api" in $$props2) - $$invalidate(3, api = $$props2.api); - }; - $$self.$capture_state = () => ({ - getContext, - ShipItem, - Field, - type, - reqs, - api, - types - }); - $$self.$inject_state = ($$props2) => { - if ("type" in $$props2) - $$invalidate(0, type = $$props2.type); - if ("reqs" in $$props2) - $$invalidate(1, reqs = $$props2.reqs); - if ("api" in $$props2) - $$invalidate(3, api = $$props2.api); - }; - if ($$props && "$$inject" in $$props) { - $$self.$inject_state($$props.$$inject); - } - $$self.$$.update = () => { - if ($$self.$$.dirty & /*api, type*/ - 9) { - api == null ? void 0 : api.dispatch.setFtl(type); - } - }; - return [type, reqs, types, api, input_change_handler, $$binding_groups]; -} -class Ftl extends SvelteComponentDev { - constructor(options) { - super(options); - init(this, options, instance$4, create_fragment$4, safe_not_equal, { type: 0, reqs: 1, api: 3 }); - dispatch_dev("SvelteRegisterComponent", { - component: this, - tagName: "Ftl", - options, - id: create_fragment$4.name - }); - } - get type() { - throw new Error(": Props cannot be read directly from the component instance unless compiling with 'accessors: true' or ''"); - } - set type(value) { - throw new Error(": Props cannot be set directly on the component instance unless compiling with 'accessors: true' or ''"); - } - get reqs() { - throw new Error(": Props cannot be read directly from the component instance unless compiling with 'accessors: true' or ''"); - } - set reqs(value) { - throw new Error(": Props cannot be set directly on the component instance unless compiling with 'accessors: true' or ''"); - } - get api() { - throw new Error(": Props cannot be read directly from the component instance unless compiling with 'accessors: true' or ''"); - } - set api(value) { - throw new Error(": Props cannot be set directly on the component instance unless compiling with 'accessors: true' or ''"); - } -} -function create_default_slot$3(ctx) { - let drive; - let t; - let ftl; - let current; - const drive_spread_levels = [ - /*propulsion*/ - ctx[0].drive - ]; - let drive_props = {}; - for (let i = 0; i < drive_spread_levels.length; i += 1) { - drive_props = assign(drive_props, drive_spread_levels[i]); - } - drive = new Engine({ props: drive_props, $$inline: true }); - const ftl_spread_levels = [ - /*propulsion*/ - ctx[0].ftl - ]; - let ftl_props = {}; - for (let i = 0; i < ftl_spread_levels.length; i += 1) { - ftl_props = assign(ftl_props, ftl_spread_levels[i]); - } - ftl = new Ftl({ props: ftl_props, $$inline: true }); - const block = { - c: function create() { - create_component(drive.$$.fragment); - t = space(); - create_component(ftl.$$.fragment); - }, - l: function claim(nodes) { - claim_component(drive.$$.fragment, nodes); - t = claim_space(nodes); - claim_component(ftl.$$.fragment, nodes); - }, - m: function mount(target, anchor) { - mount_component(drive, target, anchor); - insert_hydration_dev(target, t, anchor); - mount_component(ftl, target, anchor); - current = true; - }, - p: function update(ctx2, dirty) { - const drive_changes = dirty & /*propulsion*/ - 1 ? get_spread_update(drive_spread_levels, [get_spread_object( - /*propulsion*/ - ctx2[0].drive - )]) : {}; - drive.$set(drive_changes); - const ftl_changes = dirty & /*propulsion*/ - 1 ? get_spread_update(ftl_spread_levels, [get_spread_object( - /*propulsion*/ - ctx2[0].ftl - )]) : {}; - ftl.$set(ftl_changes); - }, - i: function intro(local) { - if (current) - return; - transition_in(drive.$$.fragment, local); - transition_in(ftl.$$.fragment, local); - current = true; - }, - o: function outro(local) { - transition_out(drive.$$.fragment, local); - transition_out(ftl.$$.fragment, local); - current = false; - }, - d: function destroy(detaching) { - destroy_component(drive, detaching); - if (detaching) - detach_dev(t); - destroy_component(ftl, detaching); - } - }; - dispatch_dev("SvelteRegisterBlock", { - block, - id: create_default_slot$3.name, - type: "slot", - source: '(1:0)
', - ctx - }); - return block; -} -function create_fragment$3(ctx) { - let section; - let current; - section = new Section({ - props: { - label: "propulsion", - $$slots: { default: [create_default_slot$3] }, - $$scope: { ctx } - }, - $$inline: true - }); - const block = { - c: function create() { - create_component(section.$$.fragment); - }, - l: function claim(nodes) { - claim_component(section.$$.fragment, nodes); - }, - m: function mount(target, anchor) { - mount_component(section, target, anchor); - current = true; - }, - p: function update(ctx2, [dirty]) { - const section_changes = {}; - if (dirty & /*$$scope, propulsion*/ - 3) { - section_changes.$$scope = { dirty, ctx: ctx2 }; - } - section.$set(section_changes); - }, - i: function intro(local) { - if (current) - return; - transition_in(section.$$.fragment, local); - current = true; - }, - o: function outro(local) { - transition_out(section.$$.fragment, local); - current = false; - }, - d: function destroy(detaching) { - destroy_component(section, detaching); - } - }; - dispatch_dev("SvelteRegisterBlock", { - block, - id: create_fragment$3.name, - type: "component", - source: "", - ctx - }); - return block; -} -function instance$3($$self, $$props, $$invalidate) { - let { $$slots: slots = {}, $$scope } = $$props; - validate_slots("Propulsion", slots, []); - let { propulsion = { drive: {}, ftl: {} } } = $$props; - const writable_props = ["propulsion"]; - Object.keys($$props).forEach((key) => { - if (!~writable_props.indexOf(key) && key.slice(0, 2) !== "$$" && key !== "slot") - console.warn(` was created with unknown prop '${key}'`); - }); - $$self.$$set = ($$props2) => { - if ("propulsion" in $$props2) - $$invalidate(0, propulsion = $$props2.propulsion); - }; - $$self.$capture_state = () => ({ Section, Drive: Engine, Ftl, propulsion }); - $$self.$inject_state = ($$props2) => { - if ("propulsion" in $$props2) - $$invalidate(0, propulsion = $$props2.propulsion); - }; - if ($$props && "$$inject" in $$props) { - $$self.$inject_state($$props.$$inject); - } - return [propulsion]; -} -class Propulsion extends SvelteComponentDev { - constructor(options) { - super(options); - init(this, options, instance$3, create_fragment$3, safe_not_equal, { propulsion: 0 }); - dispatch_dev("SvelteRegisterComponent", { - component: this, - tagName: "Propulsion", - options, - id: create_fragment$3.name - }); - } - get propulsion() { - throw new Error(": Props cannot be read directly from the component instance unless compiling with 'accessors: true' or ''"); - } - set propulsion(value) { - throw new Error(": Props cannot be set directly on the component instance unless compiling with 'accessors: true' or ''"); - } -} -function create_default_slot$2(ctx) { - let propulsion; - let current; - propulsion = new Propulsion({ $$inline: true }); - const block = { - c: function create() { - create_component(propulsion.$$.fragment); - }, - l: function claim(nodes) { - claim_component(propulsion.$$.fragment, nodes); - }, - m: function mount(target, anchor) { - mount_component(propulsion, target, anchor); - current = true; - }, - i: function intro(local) { - if (current) - return; - transition_in(propulsion.$$.fragment, local); - current = true; - }, - o: function outro(local) { - transition_out(propulsion.$$.fragment, local); - current = false; - }, - d: function destroy(detaching) { - destroy_component(propulsion, detaching); - } - }; - dispatch_dev("SvelteRegisterBlock", { - block, - id: create_default_slot$2.name, - type: "slot", - source: "(1:0) ", - ctx - }); - return block; -} -function create_fragment$2(ctx) { - let hst_story; - let current; - hst_story = new /*Hst*/ - ctx[0].Story({ - props: { - $$slots: { default: [create_default_slot$2] }, - $$scope: { ctx } - }, - $$inline: true - }); - const block = { - c: function create() { - create_component(hst_story.$$.fragment); - }, - l: function claim(nodes) { - claim_component(hst_story.$$.fragment, nodes); - }, - m: function mount(target, anchor) { - mount_component(hst_story, target, anchor); - current = true; - }, - p: function update(ctx2, [dirty]) { - const hst_story_changes = {}; - if (dirty & /*$$scope*/ - 2) { - hst_story_changes.$$scope = { dirty, ctx: ctx2 }; - } - hst_story.$set(hst_story_changes); - }, - i: function intro(local) { - if (current) - return; - transition_in(hst_story.$$.fragment, local); - current = true; - }, - o: function outro(local) { - transition_out(hst_story.$$.fragment, local); - current = false; - }, - d: function destroy(detaching) { - destroy_component(hst_story, detaching); - } - }; - dispatch_dev("SvelteRegisterBlock", { - block, - id: create_fragment$2.name, - type: "component", - source: "", - ctx - }); - return block; -} -function instance$2($$self, $$props, $$invalidate) { - let { $$slots: slots = {}, $$scope } = $$props; - validate_slots("Propulsion_story", slots, []); - let { Hst } = $$props; - $$self.$$.on_mount.push(function() { - if (Hst === void 0 && !("Hst" in $$props || $$self.$$.bound[$$self.$$.props["Hst"]])) { - console.warn(" was created without expected prop 'Hst'"); - } - }); - const writable_props = ["Hst"]; - Object.keys($$props).forEach((key) => { - if (!~writable_props.indexOf(key) && key.slice(0, 2) !== "$$" && key !== "slot") - console.warn(` was created with unknown prop '${key}'`); - }); - $$self.$$set = ($$props2) => { - if ("Hst" in $$props2) - $$invalidate(0, Hst = $$props2.Hst); - }; - $$self.$capture_state = () => ({ Hst, Propulsion }); - $$self.$inject_state = ($$props2) => { - if ("Hst" in $$props2) - $$invalidate(0, Hst = $$props2.Hst); - }; - if ($$props && "$$inject" in $$props) { - $$self.$inject_state($$props.$$inject); - } - return [Hst]; -} -class Propulsion_story extends SvelteComponentDev { - constructor(options) { - super(options); - init(this, options, instance$2, create_fragment$2, safe_not_equal, { Hst: 0 }); - dispatch_dev("SvelteRegisterComponent", { - component: this, - tagName: "Propulsion_story", - options, - id: create_fragment$2.name - }); - } - get Hst() { - throw new Error(": Props cannot be read directly from the component instance unless compiling with 'accessors: true' or ''"); - } - set Hst(value) { - throw new Error(": Props cannot be set directly on the component instance unless compiling with 'accessors: true' or ''"); - } -} -const GlobalStyle_svelte_svelte_type_style_lang = ""; -function create_default_slot$1(ctx) { - let engine; - let current; - engine = new Engine({ - props: { api: ( - /*api*/ - ctx[1] - ) }, - $$inline: true - }); - const block = { - c: function create() { - create_component(engine.$$.fragment); - }, - l: function claim(nodes) { - claim_component(engine.$$.fragment, nodes); - }, - m: function mount(target, anchor) { - mount_component(engine, target, anchor); - current = true; - }, - p: noop, - i: function intro(local) { - if (current) - return; - transition_in(engine.$$.fragment, local); - current = true; - }, - o: function outro(local) { - transition_out(engine.$$.fragment, local); - current = false; - }, - d: function destroy(detaching) { - destroy_component(engine, detaching); - } - }; - dispatch_dev("SvelteRegisterBlock", { - block, - id: create_default_slot$1.name, - type: "slot", - source: '(1:0) ', - ctx - }); - return block; -} -function create_fragment$1(ctx) { - let hst_story; - let current; - hst_story = new /*Hst*/ - ctx[0].Story({ - props: { - title: "ShipEdit/Propulsion/Engine", - $$slots: { default: [create_default_slot$1] }, - $$scope: { ctx } - }, - $$inline: true - }); - const block = { - c: function create() { - create_component(hst_story.$$.fragment); - }, - l: function claim(nodes) { - claim_component(hst_story.$$.fragment, nodes); - }, - m: function mount(target, anchor) { - mount_component(hst_story, target, anchor); - current = true; - }, - p: function update(ctx2, [dirty]) { - const hst_story_changes = {}; - if (dirty & /*$$scope*/ - 4) { - hst_story_changes.$$scope = { dirty, ctx: ctx2 }; - } - hst_story.$set(hst_story_changes); - }, - i: function intro(local) { - if (current) - return; - transition_in(hst_story.$$.fragment, local); - current = true; - }, - o: function outro(local) { - transition_out(hst_story.$$.fragment, local); - current = false; - }, - d: function destroy(detaching) { - destroy_component(hst_story, detaching); - } - }; - dispatch_dev("SvelteRegisterBlock", { - block, - id: create_fragment$1.name, - type: "component", - source: "", - ctx - }); - return block; -} -function instance$1($$self, $$props, $$invalidate) { - let { $$slots: slots = {}, $$scope } = $$props; - validate_slots("Engine_story", slots, []); - let { Hst } = $$props; - const api = { - dispatch: { - setEngine: (engine) => logEvent("setEngine", { engine }) - } - }; - $$self.$$.on_mount.push(function() { - if (Hst === void 0 && !("Hst" in $$props || $$self.$$.bound[$$self.$$.props["Hst"]])) { - console.warn(" was created without expected prop 'Hst'"); - } - }); - const writable_props = ["Hst"]; - Object.keys($$props).forEach((key) => { - if (!~writable_props.indexOf(key) && key.slice(0, 2) !== "$$" && key !== "slot") - console.warn(` was created with unknown prop '${key}'`); - }); - $$self.$$set = ($$props2) => { - if ("Hst" in $$props2) - $$invalidate(0, Hst = $$props2.Hst); - }; - $$self.$capture_state = () => ({ Hst, logEvent, api, Engine }); - $$self.$inject_state = ($$props2) => { - if ("Hst" in $$props2) - $$invalidate(0, Hst = $$props2.Hst); - }; - if ($$props && "$$inject" in $$props) { - $$self.$inject_state($$props.$$inject); - } - return [Hst, api]; -} -class Engine_story extends SvelteComponentDev { - constructor(options) { - super(options); - init(this, options, instance$1, create_fragment$1, safe_not_equal, { Hst: 0 }); - dispatch_dev("SvelteRegisterComponent", { - component: this, - tagName: "Engine_story", - options, - id: create_fragment$1.name - }); - } - get Hst() { - throw new Error(": Props cannot be read directly from the component instance unless compiling with 'accessors: true' or ''"); - } - set Hst(value) { - throw new Error(": Props cannot be set directly on the component instance unless compiling with 'accessors: true' or ''"); - } -} -function create_default_slot(ctx) { - let ftl; - let current; - ftl = new Ftl({ - props: { api: ( - /*api*/ - ctx[1] - ) }, - $$inline: true - }); - const block = { - c: function create() { - create_component(ftl.$$.fragment); - }, - l: function claim(nodes) { - claim_component(ftl.$$.fragment, nodes); - }, - m: function mount(target, anchor) { - mount_component(ftl, target, anchor); - current = true; - }, - p: noop, - i: function intro(local) { - if (current) - return; - transition_in(ftl.$$.fragment, local); - current = true; - }, - o: function outro(local) { - transition_out(ftl.$$.fragment, local); - current = false; - }, - d: function destroy(detaching) { - destroy_component(ftl, detaching); - } - }; - dispatch_dev("SvelteRegisterBlock", { - block, - id: create_default_slot.name, - type: "slot", - source: '(1:0) ', - ctx - }); - return block; -} -function create_fragment(ctx) { - let hst_story; - let current; - hst_story = new /*Hst*/ - ctx[0].Story({ - props: { - title: "ShipEdit/Propulsion/Ftl", - $$slots: { default: [create_default_slot] }, - $$scope: { ctx } - }, - $$inline: true - }); - const block = { - c: function create() { - create_component(hst_story.$$.fragment); - }, - l: function claim(nodes) { - claim_component(hst_story.$$.fragment, nodes); - }, - m: function mount(target, anchor) { - mount_component(hst_story, target, anchor); - current = true; - }, - p: function update(ctx2, [dirty]) { - const hst_story_changes = {}; - if (dirty & /*$$scope*/ - 4) { - hst_story_changes.$$scope = { dirty, ctx: ctx2 }; - } - hst_story.$set(hst_story_changes); - }, - i: function intro(local) { - if (current) - return; - transition_in(hst_story.$$.fragment, local); - current = true; - }, - o: function outro(local) { - transition_out(hst_story.$$.fragment, local); - current = false; - }, - d: function destroy(detaching) { - destroy_component(hst_story, detaching); - } - }; - dispatch_dev("SvelteRegisterBlock", { - block, - id: create_fragment.name, - type: "component", - source: "", - ctx - }); - return block; -} -function instance($$self, $$props, $$invalidate) { - let { $$slots: slots = {}, $$scope } = $$props; - validate_slots("Ftl_story", slots, []); - let { Hst } = $$props; - const api = { - dispatch: { - setFtl: (ftl) => logEvent("setFtl", { ftl }) - } - }; - $$self.$$.on_mount.push(function() { - if (Hst === void 0 && !("Hst" in $$props || $$self.$$.bound[$$self.$$.props["Hst"]])) { - console.warn(" was created without expected prop 'Hst'"); - } - }); - const writable_props = ["Hst"]; - Object.keys($$props).forEach((key) => { - if (!~writable_props.indexOf(key) && key.slice(0, 2) !== "$$" && key !== "slot") - console.warn(` was created with unknown prop '${key}'`); - }); - $$self.$$set = ($$props2) => { - if ("Hst" in $$props2) - $$invalidate(0, Hst = $$props2.Hst); - }; - $$self.$capture_state = () => ({ Hst, logEvent, api, Ftl }); - $$self.$inject_state = ($$props2) => { - if ("Hst" in $$props2) - $$invalidate(0, Hst = $$props2.Hst); - }; - if ($$props && "$$inject" in $$props) { - $$self.$inject_state($$props.$$inject); - } - return [Hst, api]; -} -class Ftl_story extends SvelteComponentDev { - constructor(options) { - super(options); - init(this, options, instance, create_fragment, safe_not_equal, { Hst: 0 }); - dispatch_dev("SvelteRegisterComponent", { - component: this, - tagName: "Ftl_story", - options, - id: create_fragment.name - }); - } - get Hst() { - throw new Error(": Props cannot be read directly from the component instance unless compiling with 'accessors: true' or ''"); - } - set Hst(value) { - throw new Error(": Props cannot be set directly on the component instance unless compiling with 'accessors: true' or ''"); - } -} -let files = [ - { "id": "src-lib-components-shipitem-story-svelte", "path": ["ShipItem"], "filePath": "src/lib/components/ShipItem.story.svelte", "story": { "id": "src-lib-components-shipitem-story-svelte", "title": "ShipItem", "group": null, "layout": { "type": "single", "iframe": true }, "icon": null, "iconColor": null, "docsOnly": false, "variants": [{ "id": "_default", "title": "default" }] }, "supportPluginId": "svelte3", "index": 0, component: ShipItem_story, source: () => __vitePreload(() => import("./__resolved__virtual_story-source_src-lib-components-shipitem-story-svelte-ec4622fc.js"), true ? [] : void 0) }, - { "id": "src-lib-components-costmass-index-story-svelte", "path": ["CostMass"], "filePath": "src/lib/components/CostMass/index.story.svelte", "story": { "id": "src-lib-components-costmass-index-story-svelte", "title": "CostMass", "group": null, "layout": { "type": "single", "iframe": true }, "icon": null, "iconColor": null, "docsOnly": false, "variants": [{ "id": "_default", "title": "default" }] }, "supportPluginId": "svelte3", "index": 1, component: CostMass_1, source: () => __vitePreload(() => import("./__resolved__virtual_story-source_src-lib-components-costmass-index-story-svelte-fa9c29ac.js"), true ? [] : void 0) }, - { "id": "src-lib-components-shipedit-propulsion-story-svelte", "path": ["Propulsion"], "filePath": "src/lib/components/ShipEdit/Propulsion.story.svelte", "story": { "id": "src-lib-components-shipedit-propulsion-story-svelte", "title": "Propulsion", "group": null, "layout": { "type": "single", "iframe": true }, "icon": null, "iconColor": null, "docsOnly": false, "variants": [{ "id": "_default", "title": "default" }] }, "supportPluginId": "svelte3", "index": 2, component: Propulsion_story, source: () => __vitePreload(() => import("./__resolved__virtual_story-source_src-lib-components-shipedit-propulsion-story-svelte-eabfe58a.js"), true ? [] : void 0) }, - { "id": "src-lib-components-shipedit-propulsion-engine-story-svelte", "path": ["ShipEdit", "Propulsion", "Engine"], "filePath": "src/lib/components/ShipEdit/Propulsion/Engine.story.svelte", "story": { "id": "src-lib-components-shipedit-propulsion-engine-story-svelte", "title": "Engine", "group": null, "layout": { "type": "single", "iframe": true }, "icon": null, "iconColor": null, "docsOnly": false, "variants": [{ "id": "_default", "title": "default" }] }, "supportPluginId": "svelte3", "index": 3, component: Engine_story, source: () => __vitePreload(() => import("./__resolved__virtual_story-source_src-lib-components-shipedit-propulsion-engine-story-svelte-42e8b729.js"), true ? [] : void 0) }, - { "id": "src-lib-components-shipedit-propulsion-ftl-story-svelte", "path": ["ShipEdit", "Propulsion", "Ftl"], "filePath": "src/lib/components/ShipEdit/Propulsion/Ftl.story.svelte", "story": { "id": "src-lib-components-shipedit-propulsion-ftl-story-svelte", "title": "Ftl", "group": null, "layout": { "type": "single", "iframe": true }, "icon": null, "iconColor": null, "docsOnly": false, "variants": [{ "id": "_default", "title": "default" }] }, "supportPluginId": "svelte3", "index": 4, component: Ftl_story, source: () => __vitePreload(() => import("./__resolved__virtual_story-source_src-lib-components-shipedit-propulsion-ftl-story-svelte-df90933e.js"), true ? [] : void 0) } -]; -let tree = [{ "title": "CostMass", "index": 1 }, { "title": "Propulsion", "index": 2 }, { "title": "ShipEdit", "children": [{ "title": "Propulsion", "children": [{ "title": "Engine", "index": 3 }, { "title": "Ftl", "index": 4 }] }] }, { "title": "ShipItem", "index": 0 }]; -const base = "/"; -function createRouterHistory() { - switch (histoireConfig.routerMode) { - case "hash": - return createWebHashHistory(base); - case "history": - default: - return createWebHistory(base); - } -} -const router = createRouter({ - history: createRouterHistory(), - routes: [ - { - path: "/", - name: "home", - component: () => __vitePreload(() => import("./HomeView.vue-2db017c5.js"), true ? ["assets/HomeView.vue-2db017c5.js","assets/vendor-3ab3e533.js"] : void 0) - }, - { - path: "/story/:storyId", - name: "story", - component: () => __vitePreload(() => import("./StoryView.vue-e7ab65e8.js"), true ? ["assets/StoryView.vue-e7ab65e8.js","assets/vendor-3ab3e533.js","assets/story-804dabc9.js","assets/MobileOverlay.vue2-a3503848.js","assets/BaseEmpty.vue-045cbb89.js","assets/state-4b1a79d2.js","assets/events-ae5cec59.js"] : void 0) - } - ] -}); -const copiedFromExistingVariant = [ - "state", - "slots", - "source", - "responsiveDisabled", - "autoPropsDisabled", - "setupApp", - "configReady", - "previewReady" -]; -function mapFile(file2, existingFile) { - let result; - if (existingFile) { - result = existingFile; - for (const key in file2) { - if (key === "story") { - result.story = { - ...result.story, - ...file2.story, - file: markRaw(result), - variants: file2.story.variants.map((v) => mapVariant(v, existingFile.story.variants.find((item) => item.id === v.id))) - }; - } else if (key !== "component") { - result[key] = file2[key]; - } - } - } else { - result = { - ...file2, - component: markRaw(file2.component), - story: { - ...file2.story, - title: file2.story.title, - file: markRaw(file2), - variants: file2.story.variants.map((v) => mapVariant(v)), - slots: () => ({}) - } - }; - } - return result; -} -function mapVariant(variant, existingVariant) { - let result; - if (existingVariant) { - result = existingVariant; - for (const key in variant) { - if (!copiedFromExistingVariant.includes(key)) { - result[key] = variant[key]; - } - } - } else { - result = { - ...variant, - state: reactive({ - _hPropState: {}, - _hPropDefs: {} - }), - setupApp: null, - slots: () => ({}), - previewReady: false - }; - } - return result; -} -const clientSupportPlugins = { - "vanilla": () => __vitePreload(() => import("./vendor-3ab3e533.js").then((n) => n.bl), true ? [] : void 0), - "svelte3": () => __vitePreload(() => import("./vendor-3ab3e533.js").then((n) => n.bm), true ? [] : void 0) -}; -const __default__ = { - inheritAttrs: false -}; -const _sfc_main = /* @__PURE__ */ defineComponent({ - ...__default__, - __name: "GenericMountStory", - props: { - story: null - }, - setup(__props) { - const props = __props; - const mountComponent = ref(null); - watchEffect(async () => { - var _a; - const clientPlugin = clientSupportPlugins[(_a = props.story.file) == null ? void 0 : _a.supportPluginId]; - if (clientPlugin) { - const pluginModule = await clientPlugin(); - mountComponent.value = markRaw(pluginModule.MountStory); - } - }); - return (_ctx, _cache) => { - return mountComponent.value ? (openBlock(), createBlock(resolveDynamicComponent(mountComponent.value), mergeProps({ - key: 0, - class: "histoire-generic-mount-story", - story: __props.story - }, _ctx.$attrs), null, 16, ["story"])) : createCommentVNode("", true); - }; - } -}); -export { - _sfc_main as _, - base as b, - clientSupportPlugins as c, - files as f, - mapFile as m, - router as r, - tree as t -}; diff --git a/.histoire/dist/assets/HomeView.vue-2db017c5.js b/.histoire/dist/assets/HomeView.vue-2db017c5.js deleted file mode 100644 index 07b0f9d..0000000 --- a/.histoire/dist/assets/HomeView.vue-2db017c5.js +++ /dev/null @@ -1,25 +0,0 @@ -import { d as defineComponent, c as computed, e as createElementBlock, g as createBaseVNode, a as unref, o as openBlock, v as histoireConfig, x as customLogos } from "./vendor-3ab3e533.js"; -const HistoireLogo = "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjwhLS0gQ3JlYXRlZCB3aXRoIElua3NjYXBlIChodHRwOi8vd3d3Lmlua3NjYXBlLm9yZy8pIC0tPgoKPHN2ZwogICB3aWR0aD0iNTEyIgogICBoZWlnaHQ9IjUxMiIKICAgdmlld0JveD0iMCAwIDUxMiA1MTIiCiAgIHZlcnNpb249IjEuMSIKICAgaWQ9InN2ZzUiCiAgIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIKICAgeG1sbnM6c3ZnPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CiAgPGRlZnMKICAgICBpZD0iZGVmczIiIC8+CiAgPGcKICAgICBpZD0ibGF5ZXIxIj4KICAgIDxyZWN0CiAgICAgICBzdHlsZT0ib3BhY2l0eTowLjU7ZmlsbDojMzRkMzk5O2ZpbGwtb3BhY2l0eToxO3N0cm9rZS13aWR0aDoxLjAwMzc1IgogICAgICAgaWQ9InJlY3QxMzcyIgogICAgICAgd2lkdGg9IjMxNC4zMDkyMyIKICAgICAgIGhlaWdodD0iNDA2LjYwOTAxIgogICAgICAgeD0iLTI2LjU2NTA2MyIKICAgICAgIHk9IjEzNC43NTA3OSIKICAgICAgIHRyYW5zZm9ybT0icm90YXRlKC0yMy44MjEyNjIpIgogICAgICAgcnk9IjgiIC8+CiAgICA8cmVjdAogICAgICAgc3R5bGU9ImZpbGw6IzM0ZDM5OTtmaWxsLW9wYWNpdHk6MTtzdHJva2Utd2lkdGg6MS4wMDM3NSIKICAgICAgIGlkPSJyZWN0ODUwIgogICAgICAgd2lkdGg9IjMxNC4zMDkyMyIKICAgICAgIGhlaWdodD0iNDA2LjYwOTAxIgogICAgICAgeD0iNzcuNTcxODM4IgogICAgICAgeT0iNzIuODA4NzA4IgogICAgICAgcnk9IjgiCiAgICAgICB0cmFuc2Zvcm09InJvdGF0ZSgtNC41NzQ0NTM0KSIgLz4KICA8L2c+CiAgPGcKICAgICBpZD0ibGF5ZXIzIj4KICAgIDxwYXRoCiAgICAgICBpZD0icGF0aDE2NTctMyIKICAgICAgIHN0eWxlPSJkaXNwbGF5OmlubGluZTtmaWxsOiNiNGZhZTI7ZmlsbC1vcGFjaXR5OjE7c3Ryb2tlOiNiNGZhZTI7c3Ryb2tlLXdpZHRoOjguMzQ5MjM7c3Ryb2tlLWxpbmVjYXA6YnV0dDtzdHJva2UtbGluZWpvaW46cm91bmQ7c3Ryb2tlLW1pdGVybGltaXQ6NDtzdHJva2UtZGFzaGFycmF5Om5vbmU7c3Ryb2tlLW9wYWNpdHk6MSIKICAgICAgIGQ9Ik0gMzU5LjM4OTQ3LDM1NS45NTEzNCAzMjAuNzI5MzUsMTc2LjUyOTQyIDIzOC4zNDYxMywyMzguOTQxMTggWiBNIDI3My42NDEyNCwyNzMuMDY2MDggMTUyLjU5Nzg4LDE1Ni4wNTU5MSAxOTEuMjU4MDQsMzM1LjQ3Nzg2IFoiIC8+CiAgPC9nPgogIDxnCiAgICAgaWQ9ImxheWVyMiIKICAgICBzdHlsZT0iZGlzcGxheTpub25lIj4KICAgIDxwYXRoCiAgICAgICBpZD0icGF0aDE2NTciCiAgICAgICBzdHlsZT0iZmlsbDojYjRmYWUyO2ZpbGwtb3BhY2l0eToxO3N0cm9rZTojYjRmYWUyO3N0cm9rZS13aWR0aDo4O3N0cm9rZS1saW5lY2FwOmJ1dHQ7c3Ryb2tlLWxpbmVqb2luOnJvdW5kO3N0cm9rZS1taXRlcmxpbWl0OjQ7c3Ryb2tlLWRhc2hhcnJheTpub25lO3N0cm9rZS1vcGFjaXR5OjEiCiAgICAgICBkPSJtIDI5NiwxMDMuOTgyNDIgLTEzNS41MzEyNSwxNzcuOTY2OCBoIDg4LjcwMTE3IHogTSAyNjIuODMwMDgsMjMwLjA1MDc4IDIxNiw0MDguMDE3NTggMzUxLjUzMTI1LDIzMC4wNTA3OCBaIgogICAgICAgdHJhbnNmb3JtPSJyb3RhdGUoLTQuMTU2NTUzLDI1NiwyNTYuMDA2OTEpIiAvPgogIDwvZz4KPC9zdmc+Cg=="; -const _hoisted_1 = { class: "histoire-home-view htw-flex htw-items-center htw-justify-center htw-h-full" }; -const _hoisted_2 = ["src"]; -const _sfc_main = /* @__PURE__ */ defineComponent({ - __name: "HomeView", - setup(__props) { - const logoUrl = computed(() => { - var _a, _b; - return ((_b = (_a = histoireConfig.theme) == null ? void 0 : _a.logo) == null ? void 0 : _b.square) ? customLogos.square : HistoireLogo; - }); - return (_ctx, _cache) => { - return openBlock(), createElementBlock("div", _hoisted_1, [ - createBaseVNode("img", { - src: unref(logoUrl), - alt: "Logo", - class: "htw-w-64 htw-h-64 htw-opacity-25" - }, null, 8, _hoisted_2) - ]); - }; - } -}); -export { - _sfc_main as default -}; diff --git a/.histoire/dist/assets/MobileOverlay.vue2-a3503848.js b/.histoire/dist/assets/MobileOverlay.vue2-a3503848.js deleted file mode 100644 index 5f48ba9..0000000 --- a/.histoire/dist/assets/MobileOverlay.vue2-a3503848.js +++ /dev/null @@ -1,307 +0,0 @@ -import { d as defineComponent, l as resolveComponent, o as openBlock, q as createBlock, w as withCtx, g as createBaseVNode, n as normalizeClass, m as withKeys, aY as renderSlot, aQ as mergeProps, k as watch, bg as scrollIntoView, N as onMounted, r as ref, c as computed, a_ as onUnmounted, e as createElementBlock, aX as withModifiers, L as normalizeStyle, a as unref, bh as useMediaQuery, t as toDisplayString, f as createVNode, I as Icon, h as createCommentVNode, T as Transition } from "./vendor-3ab3e533.js"; -const _sfc_main$2 = defineComponent({ - inheritAttrs: false, - props: { - isActive: { - type: Boolean, - default: void 0 - } - }, - emits: { - navigate: () => true - }, - setup(props, { emit }) { - function handleNavigate(event, navigate) { - emit("navigate"); - navigate(event); - } - return { - handleNavigate - }; - } -}); -const _export_sfc = (sfc, props) => { - const target = sfc.__vccOpts || sfc; - for (const [key, val] of props) { - target[key] = val; - } - return target; -}; -const _hoisted_1$2 = ["href", "onClick", "onKeyup"]; -function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) { - const _component_RouterLink = resolveComponent("RouterLink"); - return openBlock(), createBlock(_component_RouterLink, mergeProps({ class: "histoire-base-list-item-link" }, _ctx.$attrs, { custom: "" }), { - default: withCtx(({ isActive: linkIsActive, href, navigate }) => [ - createBaseVNode("a", { - href, - class: normalizeClass(["htw-flex htw-items-center htw-gap-2 htw-text-gray-900 dark:htw-text-gray-100", [ - _ctx.$attrs.class, - (_ctx.isActive != null ? _ctx.isActive : linkIsActive) ? "active htw-bg-primary-500 hover:htw-bg-primary-600 htw-text-white dark:htw-text-black" : "hover:htw-bg-primary-100 dark:hover:htw-bg-primary-900" - ]]), - onClick: ($event) => _ctx.handleNavigate($event, navigate), - onKeyup: [ - withKeys(($event) => _ctx.handleNavigate($event, navigate), ["enter"]), - withKeys(($event) => _ctx.handleNavigate($event, navigate), ["space"]) - ] - }, [ - renderSlot(_ctx.$slots, "default", { - active: _ctx.isActive != null ? _ctx.isActive : linkIsActive - }) - ], 42, _hoisted_1$2) - ]), - _: 3 - }, 16); -} -const BaseListItemLink = /* @__PURE__ */ _export_sfc(_sfc_main$2, [["render", _sfc_render]]); -function useScrollOnActive(active, el) { - watch(active, (value) => { - if (value) { - autoScroll(); - } - }); - function autoScroll() { - if (el.value) { - scrollIntoView(el.value, { - scrollMode: "if-needed", - block: "center", - inline: "nearest", - behavior: "smooth" - }); - } - } - onMounted(() => { - if (active.value) { - autoScroll(); - } - }); - return { - autoScroll - }; -} -const _hoisted_1$1 = ["onMousedown"]; -const _sfc_main$1 = /* @__PURE__ */ defineComponent({ - __name: "BaseSplitPane", - props: { - orientation: { - type: String, - default: "landscape", - validator: (value) => ["landscape", "portrait"].includes(value) - }, - defaultSplit: { - type: Number, - default: 50 - }, - split: { - type: Number, - default: void 0 - }, - min: { - type: Number, - default: 20 - }, - max: { - type: Number, - default: 80 - }, - draggerOffset: { - type: String, - default: "center", - validator: (value) => ["before", "center", "after"].includes(value) - }, - saveId: { - type: String, - default: null - }, - fixed: { - type: Boolean, - default: false - } - }, - emits: { - // eslint-disable-next-line @typescript-eslint/no-unused-vars - "update:split": (value) => true - }, - setup(__props, { emit }) { - const props = __props; - const SAVE_PREFIX = "__histoire"; - const currentSplit = ref(props.defaultSplit); - watch(() => props.split, (value) => { - if (value !== void 0) { - currentSplit.value = value; - } - }, { - immediate: true - }); - if (props.saveId) { - const storageKey = `${SAVE_PREFIX}-split-pane-${props.saveId}`; - const savedValue = localStorage.getItem(storageKey); - if (savedValue != null) { - let parsedValue; - try { - parsedValue = JSON.parse(savedValue); - } catch (e) { - console.error(e); - } - if (typeof parsedValue === "number") { - currentSplit.value = parsedValue; - } - } - watch(currentSplit, (value) => { - localStorage.setItem(storageKey, JSON.stringify(value)); - }); - watch(currentSplit, (value) => { - if (value !== props.split) { - emit("update:split", value); - } - }, { - immediate: true - }); - } - const boundSplit = computed(() => { - if (currentSplit.value < props.min) { - return props.min; - } else if (currentSplit.value > props.max) { - return props.max; - } else { - return currentSplit.value; - } - }); - const leftStyle = computed(() => ({ - [props.orientation === "landscape" ? "width" : "height"]: props.fixed ? `${boundSplit.value}px` : `${boundSplit.value}%` - })); - const rightStyle = computed(() => ({ - [props.orientation === "landscape" ? "width" : "height"]: props.fixed ? null : `${100 - boundSplit.value}%` - })); - const dragging = ref(false); - let startPosition = 0; - let startSplit = 0; - const el = ref(null); - function dragStart(e) { - dragging.value = true; - startPosition = props.orientation === "landscape" ? e.pageX : e.pageY; - startSplit = boundSplit.value; - window.addEventListener("mousemove", dragMove); - window.addEventListener("mouseup", dragEnd); - } - function dragMove(e) { - if (dragging.value) { - let position; - let totalSize; - if (props.orientation === "landscape") { - position = e.pageX; - totalSize = el.value.offsetWidth; - } else { - position = e.pageY; - totalSize = el.value.offsetHeight; - } - const dPosition = position - startPosition; - if (props.fixed) { - currentSplit.value = startSplit + dPosition; - } else { - currentSplit.value = startSplit + ~~(dPosition / totalSize * 200) / 2; - } - } - } - function dragEnd() { - dragging.value = false; - removeDragListeners(); - } - function removeDragListeners() { - window.removeEventListener("mousemove", dragMove); - window.removeEventListener("mouseup", dragEnd); - } - onUnmounted(() => { - removeDragListeners(); - }); - return (_ctx, _cache) => { - return openBlock(), createElementBlock("div", { - ref_key: "el", - ref: el, - class: normalizeClass(["histoire-base-split-pane htw-flex htw-h-full htw-isolate htw-overflow-auto", { - "htw-flex-col": __props.orientation === "portrait", - "htw-cursor-ew-resize": dragging.value && __props.orientation === "landscape", - "htw-cursor-ns-resize": dragging.value && __props.orientation === "portrait", - [__props.orientation]: true - }]) - }, [ - createBaseVNode("div", { - class: normalizeClass(["htw-relative htw-top-0 htw-left-0 htw-z-20", { - "htw-pointer-events-none": dragging.value, - "htw-border-r htw-border-gray-300/30 dark:htw-border-gray-800": __props.orientation === "landscape", - "htw-flex-none": __props.fixed - }]), - style: normalizeStyle(unref(leftStyle)) - }, [ - renderSlot(_ctx.$slots, "first", {}, void 0, true), - createBaseVNode("div", { - class: normalizeClass(["dragger htw-absolute htw-z-100 hover:htw-bg-primary-500/50 htw-transition-colors htw-duration-150 htw-delay-150", { - "htw-top-0 htw-bottom-0 htw-cursor-ew-resize": __props.orientation === "landscape", - "htw-left-0 htw-right-0 htw-cursor-ns-resize": __props.orientation === "portrait", - [`dragger-offset-${__props.draggerOffset}`]: true, - "htw-bg-primary-500/25": dragging.value - }]), - onMousedown: withModifiers(dragStart, ["prevent"]) - }, null, 42, _hoisted_1$1) - ], 6), - createBaseVNode("div", { - class: normalizeClass(["htw-relative htw-bottom-0 htw-right-0", { - "htw-pointer-events-none": dragging.value, - "htw-border-t htw-border-gray-300/30 dark:htw-border-gray-800": __props.orientation === "portrait", - "htw-flex-1": __props.fixed - }]), - style: normalizeStyle(unref(rightStyle)) - }, [ - renderSlot(_ctx.$slots, "last", {}, void 0, true) - ], 6) - ], 2); - }; - } -}); -const BaseSplitPane = /* @__PURE__ */ _export_sfc(_sfc_main$1, [["__scopeId", "data-v-ed925107"]]); -const isMobile = useMediaQuery("(max-width: 640px)"); -const _hoisted_1 = { - key: 0, - class: "histoire-mobile-overlay htw-absolute htw-z-10 htw-bg-white dark:htw-bg-gray-700 htw-w-screen htw-h-screen htw-inset-0 htw-overflow-hidden htw-flex htw-flex-col" -}; -const _hoisted_2 = { class: "htw-p-4 htw-h-16 htw-flex htw-border-b htw-border-gray-100 dark:htw-border-gray-800 htw-items-center htw-place-content-between" }; -const _hoisted_3 = { class: "htw-text-gray-500" }; -const _sfc_main = /* @__PURE__ */ defineComponent({ - __name: "MobileOverlay", - props: { - title: null, - opened: { type: Boolean } - }, - emits: ["close"], - setup(__props, { emit: emits }) { - return (_ctx, _cache) => { - return openBlock(), createBlock(Transition, { name: "__histoire-fade-bottom" }, { - default: withCtx(() => [ - __props.opened ? (openBlock(), createElementBlock("div", _hoisted_1, [ - createBaseVNode("div", _hoisted_2, [ - createBaseVNode("span", _hoisted_3, toDisplayString(__props.title), 1), - createBaseVNode("a", { - class: "htw-p-1 hover:htw-text-primary-500 dark:hover:htw-text-primary-400 htw-cursor-pointer", - onClick: _cache[0] || (_cache[0] = ($event) => emits("close")) - }, [ - createVNode(unref(Icon), { - icon: "carbon:close", - class: "htw-w-8 htw-h-8 htw-shrink-0" - }) - ]) - ]), - renderSlot(_ctx.$slots, "default") - ])) : createCommentVNode("", true) - ]), - _: 3 - }); - }; - } -}); -export { - BaseListItemLink as B, - _export_sfc as _, - _sfc_main as a, - BaseSplitPane as b, - isMobile as i, - useScrollOnActive as u -}; diff --git a/.histoire/dist/assets/SearchPane.vue-c31f94e5.js b/.histoire/dist/assets/SearchPane.vue-c31f94e5.js deleted file mode 100644 index 80ae8e3..0000000 --- a/.histoire/dist/assets/SearchPane.vue-c31f94e5.js +++ /dev/null @@ -1,545 +0,0 @@ -import { d as defineComponent, o as openBlock, e as createElementBlock, aY as renderSlot, n as normalizeClass, m as withKeys, c as computed, a as unref, q as createBlock, I as Icon, f as createVNode, g as createBaseVNode, D as createTextVNode, t as toDisplayString, F as Fragment, p as renderList, h as createCommentVNode, u as useCssVars, r as ref, aS as toRefs, aU as useRouter, w as withCtx, aO as markRaw, k as watch, bi as useFocus, bj as refDebounced, B as withDirectives, aZ as vModelText, aX as withModifiers, _ as __vitePreload, bk as flexsearch_bundleExports } from "./vendor-3ab3e533.js"; -import { u as useStoryStore } from "./story-804dabc9.js"; -import { B as BaseEmpty } from "./BaseEmpty.vue-045cbb89.js"; -import { o as onKeyboardShortcut, u as useCommandStore } from "./bundle-main-f9305308.js"; -import { _ as _export_sfc, u as useScrollOnActive, B as BaseListItemLink } from "./MobileOverlay.vue2-a3503848.js"; -import "./GenericMountStory.vue2-2bb5633d.js"; -function pipeline(a, b, c, d) { - if (a && (b && (a = replace(a, b)), this.matcher && (a = replace(a, this.matcher)), this.stemmer && 1 < a.length && (a = replace(a, this.stemmer)), d && 1 < a.length && (a = collapse(a)), c || "" === c)) { - const b2 = a.split(c); - return this.filter ? filter$1(b2, this.filter) : b2; - } - return a; -} -const regex_whitespace = /[\p{Z}\p{S}\p{P}\p{C}]+/u; -const regex_normalize = /[\u0300-\u036f]/g; -function normalize(a) { - return a.normalize && (a = a.normalize("NFD").replace(regex_normalize, "")), a; -} -function replace(a, b) { - for (let c = 0, d = b.length; c < d && (a = a.replace(b[c], b[c + 1]), !!a); c += 2) - ; - return a; -} -function regex(a) { - return new RegExp(a, "g"); -} -function collapse(a) { - let b = "", c = ""; - for (let d, e = 0, f = a.length; e < f; e++) - (d = a[e]) !== c && (b += c = d); - return b; -} -function filter$1(a, b) { - const c = a.length, d = []; - for (let e = 0, f = 0; e < c; e++) { - const c2 = a[e]; - c2 && !b[c2] && (d[f++] = c2); - } - return d; -} -const regex_a = regex("[àáâãäå]"), regex_e = regex("[èéêë]"), regex_i = regex("[ìíîï]"), regex_o = regex("[òóôõöő]"), regex_u = regex("[ùúûüű]"), regex_y = regex("[ýŷÿ]"), regex_n = regex("ñ"), regex_c = regex("[çc]"), regex_s = regex("ß"), regex_and = regex(" & "), pairs$1 = [regex_a, "a", regex_e, "e", regex_i, "i", regex_o, "o", regex_u, "u", regex_y, "y", regex_n, "n", regex_c, "k", regex_s, "s", regex_and, " and "]; -function encode$2(a) { - return a = "" + a, pipeline.call(this, normalize(a).toLowerCase(), !a.normalize && pairs$1, regex_whitespace, false); -} -const regex_strip = /[^a-z0-9]+/, soundex = { b: "p", v: "f", w: "f", z: "s", x: "s", ß: "s", d: "t", n: "m", c: "k", g: "k", j: "k", q: "k", i: "e", y: "e", u: "o" }; -function encode$1(a) { - a = encode$2.call(this, a).join(" "); - const b = []; - if (a) { - const c = a.split(regex_strip), d = c.length; - for (let e, f = 0, g = 0; f < d; f++) - if ((a = c[f]) && (!this.filter || !this.filter[a])) { - e = a[0]; - let c2 = soundex[e] || e, d2 = c2; - for (let b2 = 1; b2 < a.length; b2++) { - e = a[b2]; - const f2 = soundex[e] || e; - f2 && f2 !== d2 && (c2 += f2, d2 = f2); - } - b[g++] = c2; - } - } - return b; -} -const charset = { encode, rtl: false, tokenize: "" }; -const regex_ae = regex("ae"), regex_oe = regex("oe"), regex_sh = regex("sh"), regex_th = regex("th"), regex_ph = regex("ph"), regex_pf = regex("pf"), pairs = [regex_ae, "a", regex_oe, "o", regex_sh, "s", regex_th, "t", regex_ph, "f", regex_pf, "f", regex("(?![aeo])h(?![aeo])"), "", regex("(?!^[aeo])h(?!^[aeo])"), ""]; -function encode(a, b) { - return a && (a = encode$1.call(this, a).join(" "), 2 < a.length && (a = replace(a, pairs)), !b && (1 < a.length && (a = collapse(a)), a && (a = a.split(" ")))), a; -} -const filter = ["a", "about", "above", "after", "again", "against", "all", "also", "am", "an", "and", "any", "are", "aren't", "as", "at", "be", "because", "been", "before", "being", "below", "both", "but", "by", "can", "cannot", "can't", "come", "could", "couldn't", "did", "didn't", "do", "does", "doesn't", "doing", "dont", "down", "during", "each", "even", "few", "first", "for", "from", "further", "get", "go", "had", "hadn't", "has", "hasn't", "have", "haven't", "having", "he", "hed", "her", "here", "here's", "hers", "herself", "hes", "him", "himself", "his", "how", "how's", "i", "id", "if", "ill", "im", "in", "into", "is", "isn't", "it", "it's", "itself", "i've", "just", "know", "let's", "like", "make", "me", "more", "most", "mustn't", "my", "myself", "new", "no", "nor", "not", "now", "of", "off", "on", "once", "only", "or", "other", "ought", "our", "our's", "ourselves", "out", "over", "own", "same", "say", "see", "shan't", "she", "she'd", "shell", "shes", "should", "shouldn't", "so", "some", "such", "than", "that", "that's", "the", "their", "theirs", "them", "themselves", "then", "there", "there's", "these", "they", "they'd", "they'll", "they're", "they've", "this", "those", "through", "time", "to", "too", "until", "up", "us", "very", "want", "was", "wasn't", "way", "we", "wed", "well", "were", "weren't", "we've", "what", "what's", "when", "when's", "where", "where's", "which", "while", "who", "whom", "who's", "why", "why's", "will", "with", "won't", "would", "wouldn't", "you", "you'd", "you'll", "your", "you're", "your's", "yourself", "yourselves", "you've"]; -const stemmer = { ational: "ate", iveness: "ive", fulness: "ful", ousness: "ous", ization: "ize", tional: "tion", biliti: "ble", icate: "ic", ative: "", alize: "al", iciti: "ic", entli: "ent", ousli: "ous", alism: "al", ation: "ate", aliti: "al", iviti: "ive", ement: "", enci: "ence", anci: "ance", izer: "ize", alli: "al", ator: "ate", logi: "log", ical: "ic", ance: "", ence: "", ness: "", able: "", ible: "", ment: "", eli: "e", bli: "ble", ful: "", ant: "", ent: "", ism: "", ate: "", iti: "", ous: "", ive: "", ize: "", al: "", ou: "", er: "", ic: "" }; -const matcher = {}; -const language = { filter, stemmer, matcher }; -const _sfc_main$4 = /* @__PURE__ */ defineComponent({ - __name: "BaseListItem", - props: { - isActive: { type: Boolean } - }, - emits: ["navigate"], - setup(__props, { emit }) { - function handleNavigate() { - emit("navigate"); - } - return (_ctx, _cache) => { - return openBlock(), createElementBlock("a", { - class: normalizeClass(["istoire-base-list-ite htw-flex htw-items-center htw-gap-2 htw-text-gray-900 dark:htw-text-gray-100", [ - _ctx.$attrs.class, - __props.isActive ? "active htw-bg-primary-500 hover:htw-bg-primary-600 htw-text-white dark:htw-text-black" : "hover:htw-bg-primary-100 dark:hover:htw-bg-primary-900" - ]]), - onClick: _cache[0] || (_cache[0] = ($event) => handleNavigate()), - onKeyup: [ - _cache[1] || (_cache[1] = withKeys(($event) => handleNavigate(), ["enter"])), - _cache[2] || (_cache[2] = withKeys(($event) => handleNavigate(), ["space"])) - ] - }, [ - renderSlot(_ctx.$slots, "default") - ], 34); - }; - } -}); -const _hoisted_1$3 = ["src", "alt"]; -const _sfc_main$3 = /* @__PURE__ */ defineComponent({ - __name: "BaseIcon", - props: { - icon: null - }, - setup(__props) { - const props = __props; - const isUrl = computed(() => props.icon.startsWith("http") || props.icon.startsWith("data:image") || props.icon.startsWith(".") || props.icon.startsWith("/")); - return (_ctx, _cache) => { - return unref(isUrl) ? (openBlock(), createElementBlock("img", { - key: 0, - src: __props.icon, - alt: __props.icon, - class: "histoire-base-icon" - }, null, 8, _hoisted_1$3)) : (openBlock(), createBlock(unref(Icon), { - key: 1, - icon: __props.icon, - class: "histoire-base-icon" - }, null, 8, ["icon"])); - }; - } -}); -const BaseIcon = /* @__PURE__ */ _export_sfc(_sfc_main$3, [["__scopeId", "data-v-74182813"]]); -const _hoisted_1$2 = { class: "htw-flex-1" }; -const _hoisted_2 = { class: "htw-flex" }; -const _hoisted_3 = { class: "htw-ml-auto htw-opacity-40" }; -const _hoisted_4 = { - key: 0, - class: "htw-flex htw-items-center htw-gap-0.5 htw-opacity-60" -}; -const _sfc_main$2 = /* @__PURE__ */ defineComponent({ - __name: "SearchItemContent", - props: { - result: null, - selected: { type: Boolean } - }, - setup(__props) { - const defaultIcons = { - story: "carbon:cube", - variant: "carbon:cube" - }; - const kindLabels = { - story: "Story", - variant: "Variant", - command: "Command" - }; - return (_ctx, _cache) => { - var _a; - return openBlock(), createElementBlock(Fragment, null, [ - createVNode(BaseIcon, { - icon: __props.result.icon ?? defaultIcons[__props.result.kind], - class: normalizeClass(["htw-w-4 htw-h-4", [ - !__props.selected ? [ - __props.result.iconColor ? "bind-icon-color" : { - "htw-text-primary-500": __props.result.kind === "story", - "htw-text-gray-500": __props.result.kind === "variant" - } - ] : [], - { - "colorize-black": __props.selected - } - ]]) - }, null, 8, ["icon", "class"]), - createBaseVNode("div", _hoisted_1$2, [ - createBaseVNode("div", _hoisted_2, [ - createTextVNode(toDisplayString(__props.result.title) + " ", 1), - createBaseVNode("span", _hoisted_3, toDisplayString(kindLabels[__props.result.kind]), 1) - ]), - ((_a = __props.result.path) == null ? void 0 : _a.length) ? (openBlock(), createElementBlock("div", _hoisted_4, [ - (openBlock(true), createElementBlock(Fragment, null, renderList(__props.result.path, (p, index) => { - return openBlock(), createElementBlock("div", { - key: index, - class: "htw-flex htw-items-center htw-gap-0.5" - }, [ - index > 0 ? (openBlock(), createBlock(unref(Icon), { - key: 0, - icon: "carbon:chevron-right", - class: "htw-w-4 htw-h-4 htw-mt-0.5 htw-opacity-50" - })) : createCommentVNode("", true), - createBaseVNode("span", null, toDisplayString(p), 1) - ]); - }), 128)) - ])) : createCommentVNode("", true) - ]) - ], 64); - }; - } -}); -const _hoisted_1$1 = ["data-selected"]; -const _sfc_main$1 = /* @__PURE__ */ defineComponent({ - __name: "SearchItem", - props: { - result: { - type: Object, - required: true - }, - selected: { - type: Boolean, - default: false - } - }, - emits: { - close: () => true - }, - setup(__props, { emit }) { - const props = __props; - useCssVars((_ctx) => ({ - "a8c1277e": __props.result.iconColor - })); - const el = ref(); - const { selected } = toRefs(props); - useScrollOnActive(selected, el); - const router = useRouter(); - onKeyboardShortcut(["enter"], () => { - if (!props.selected) - return; - action(); - }); - function action(fromClick = false) { - if ("route" in props.result && !fromClick) { - router.push(props.result.route); - } - if ("onActivate" in props.result) { - props.result.onActivate(); - } - emit("close"); - } - return (_ctx, _cache) => { - return openBlock(), createElementBlock("div", { - ref_key: "el", - ref: el, - class: "histoire-search-item", - "data-test-id": "search-item", - "data-selected": unref(selected) ? "" : void 0 - }, [ - "route" in __props.result ? (openBlock(), createBlock(BaseListItemLink, { - key: 0, - to: __props.result.route, - "is-active": unref(selected), - class: "htw-px-6 htw-py-4 htw-gap-4", - onNavigate: _cache[0] || (_cache[0] = ($event) => action(true)) - }, { - default: withCtx(() => [ - createVNode(_sfc_main$2, { - result: __props.result, - selected: unref(selected) - }, null, 8, ["result", "selected"]) - ]), - _: 1 - }, 8, ["to", "is-active"])) : createCommentVNode("", true), - "onActivate" in __props.result ? (openBlock(), createBlock(_sfc_main$4, { - key: 1, - "is-active": unref(selected), - class: "htw-px-6 htw-py-4 htw-gap-4", - onNavigate: _cache[1] || (_cache[1] = ($event) => action(true)) - }, { - default: withCtx(() => [ - createVNode(_sfc_main$2, { - result: __props.result, - selected: unref(selected) - }, null, 8, ["result", "selected"]) - ]), - _: 1 - }, 8, ["is-active"])) : createCommentVNode("", true) - ], 8, _hoisted_1$1); - }; - } -}); -const SearchItem = /* @__PURE__ */ _export_sfc(_sfc_main$1, [["__scopeId", "data-v-6c8e9661"]]); -let searchData$1 = { "index": { "reg": '{"0":1,"1":1,"2":1,"3":1,"4":1,"5":1,"6":1,"7":1,"8":1,"9":1}', "text.cfg": '{"doc":0,"opt":1}', "text.map": '[{"s":[0,1],"se":[0,1],"sep":[0,1],"k":[2,3],"ko":[2,3],"kos":[2,3],"kost":[2,3],"p":[4,5],"pr":[4,5],"pro":[4,5],"prop":[4,5],"propo":[4,5],"propol":[4,5],"propols":[4,5],"propolse":[4,5],"propolseo":[4,5],"propolseom":[4,5],"e":[6,7],"em":[6,7],"emk":[6,7],"emke":[6,7],"emkem":[6,7],"emkeme":[6,7],"f":[8,9],"ft":[8,9],"ftl":[8,9]},{"e":[0,1],"et":[0,1],"ete":[0,1],"etem":[0,1],"m":[2,3],"ma":[2,3],"mas":[2,3],"t":[5,7,9],"te":[5,7,9],"tef":[5,7,9],"tefa":[5,7,9],"tefao":[5,7,9],"tefaol":[5,7,9],"tefaolt":[5,7,9]},{"t":[1,3],"te":[1,3],"tef":[1,3],"tefa":[1,3],"tefao":[1,3],"tefaol":[1,3],"tefaolt":[1,3]},{},{},{},{},{},{}]', "text.ctx": "[{}]" }, "idMap": { "0": { "id": "src-lib-components-shipitem-story-svelte", "kind": "story" }, "1": { "id": "src-lib-components-shipitem-story-svelte:_default", "kind": "variant" }, "2": { "id": "src-lib-components-costmass-index-story-svelte", "kind": "story" }, "3": { "id": "src-lib-components-costmass-index-story-svelte:_default", "kind": "variant" }, "4": { "id": "src-lib-components-shipedit-propulsion-story-svelte", "kind": "story" }, "5": { "id": "src-lib-components-shipedit-propulsion-story-svelte:_default", "kind": "variant" }, "6": { "id": "src-lib-components-shipedit-propulsion-engine-story-svelte", "kind": "story" }, "7": { "id": "src-lib-components-shipedit-propulsion-engine-story-svelte:_default", "kind": "variant" }, "8": { "id": "src-lib-components-shipedit-propulsion-ftl-story-svelte", "kind": "story" }, "9": { "id": "src-lib-components-shipedit-propulsion-ftl-story-svelte:_default", "kind": "variant" } } }; -const searchData = markRaw(searchData$1); -function useSelection(list) { - const selectedIndex = ref(0); - watch(list, () => { - selectedIndex.value = 0; - }); - function selectNext() { - selectedIndex.value++; - if (selectedIndex.value > list.value.length - 1) { - selectedIndex.value = 0; - } - } - function selectPrevious() { - selectedIndex.value--; - if (selectedIndex.value < 0) { - selectedIndex.value = list.value.length - 1; - } - } - return { - selectedIndex: computed(() => selectedIndex.value), - selectNext, - selectPrevious - }; -} -const _hoisted_1 = { - key: 1, - class: "htw-max-h-[400px] htw-overflow-y-auto htw-rounded-b-lg" -}; -const _sfc_main = /* @__PURE__ */ defineComponent({ - __name: "SearchPane", - props: { - shown: { - type: Boolean, - default: false - } - }, - emits: { - close: () => true - }, - setup(__props, { emit }) { - const props = __props; - const DocSearchData = () => __vitePreload(() => import("./search-docs-data-9f078283.js"), true ? ["assets/search-docs-data-9f078283.js","assets/vendor-3ab3e533.js"] : void 0); - function close() { - emit("close"); - } - const input = ref(); - const { focused } = useFocus(input, { - initialValue: true - }); - watch(() => props.shown, (value) => { - if (value) { - requestAnimationFrame(() => { - focused.value = true; - input.value.select(); - }); - } - }); - const searchInputText = ref(""); - const rateLimitedSearch = refDebounced(searchInputText, 50); - const storyStore = useStoryStore(); - let titleSearchIndex; - let titleIdMap; - function createIndex() { - return new flexsearch_bundleExports.Document({ - preset: "match", - document: { - id: "id", - index: [ - "text" - ] - }, - worker: true, - charset, - language, - tokenize: "forward" - }); - } - async function loadSearchIndex(data) { - titleSearchIndex = createIndex(); - for (const key of Object.keys(data.index)) { - await titleSearchIndex.import(key, data.index[key]); - } - titleIdMap = data.idMap; - } - loadSearchIndex(searchData); - let docSearchIndex; - let docIdMap; - async function loadDocSearchIndex() { - async function load(data) { - docSearchIndex = createIndex(); - for (const key of Object.keys(data.index)) { - await docSearchIndex.import(key, data.index[key]); - } - docIdMap = data.idMap; - if (rateLimitedSearch.value) { - searchOnDocField(rateLimitedSearch.value); - } - } - const searchDataModule = await DocSearchData(); - load(searchDataModule.searchData); - searchDataModule.onUpdate((searchData2) => { - load(searchData2); - }); - } - loadDocSearchIndex(); - const titleResults = ref([]); - watch(rateLimitedSearch, async (value) => { - const list = []; - const raw = await titleSearchIndex.search(value); - let rank = 0; - for (const field of raw) { - for (const id of field.result) { - const idMapData = titleIdMap[id]; - if (!idMapData) - continue; - switch (idMapData.kind) { - case "story": { - list.push(storyResultFactory(storyStore.getStoryById(idMapData.id), rank)); - rank++; - break; - } - case "variant": { - const [storyId] = idMapData.id.split(":"); - const story = storyStore.getStoryById(storyId); - const variant = storyStore.getVariantById(idMapData.id); - list.push(variantResultFactory(story, variant, rank)); - rank++; - break; - } - } - } - } - titleResults.value = list; - }); - const docsResults = ref([]); - async function searchOnDocField(query) { - if (docSearchIndex) { - const list = []; - const raw = await docSearchIndex.search(query); - let rank = 0; - for (const field of raw) { - for (const id of field.result) { - const idMapData = docIdMap[id]; - if (!idMapData) - continue; - switch (idMapData.kind) { - case "story": { - list.push(storyResultFactory(storyStore.getStoryById(idMapData.id), rank, "docs")); - rank++; - break; - } - } - } - } - docsResults.value = list; - } - } - watch(rateLimitedSearch, searchOnDocField); - function storyResultFactory(story, rank, type = "title") { - return { - kind: "story", - rank, - id: `story:${story.id}`, - title: story.title, - route: { - name: "story", - params: { - storyId: story.id - }, - query: { - ...type === "docs" ? { tab: "docs" } : {} - } - }, - path: story.file.path.slice(0, -1), - icon: story.icon, - iconColor: story.iconColor - }; - } - function variantResultFactory(story, variant, rank, type = "title") { - return { - kind: "variant", - rank, - id: `variant:${story.id}:${variant.id}`, - title: variant.title, - route: { - name: "story", - params: { - storyId: story.id - }, - query: { - variantId: variant.id, - ...type === "docs" ? { tab: "docs" } : {} - } - }, - path: [...story.file.path ?? [], story.title], - icon: variant.icon, - iconColor: variant.iconColor - }; - } - const commandResults = computed(() => { - return []; - }); - useCommandStore(); - const results = computed(() => { - const list = [ - ...commandResults.value, - ...titleResults.value - ]; - const seen = {}; - for (const r of titleResults.value) { - seen[r.id] = true; - } - for (const r of docsResults.value) { - if (!seen[r.id]) { - list.push(r); - } - } - return list; - }); - const { - selectedIndex, - selectNext, - selectPrevious - } = useSelection(results); - return (_ctx, _cache) => { - return openBlock(), createElementBlock(Fragment, null, [ - createBaseVNode("div", { - class: "histoire-search-pane htw-flex htw-items-center htw-gap-4 htw-pl-6 htw-border htw-border-transparent focus-visible:htw-border-primary-500", - onClick: _cache[4] || (_cache[4] = ($event) => focused.value = true) - }, [ - createVNode(unref(Icon), { - icon: "carbon:search", - class: "flex-none htw-w-4 htw-h-4" - }), - withDirectives(createBaseVNode("input", { - ref_key: "input", - ref: input, - "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => searchInputText.value = $event), - placeholder: "Search for stories, variants...", - class: "htw-bg-transparent htw-w-full htw-flex-1 htw-pl-0 htw-pr-6 htw-py-4 htw-outline-none", - onKeydown: [ - _cache[1] || (_cache[1] = withKeys(withModifiers(($event) => unref(selectNext)(), ["prevent"]), ["down"])), - _cache[2] || (_cache[2] = withKeys(withModifiers(($event) => unref(selectPrevious)(), ["prevent"]), ["up"])), - _cache[3] || (_cache[3] = withKeys(($event) => close(), ["escape"])) - ] - }, null, 544), [ - [vModelText, searchInputText.value] - ]) - ]), - unref(rateLimitedSearch) && !unref(results).length ? (openBlock(), createBlock(BaseEmpty, { - key: 0, - class: "no-animation" - }, { - default: withCtx(() => [ - createTextVNode(" No results ") - ]), - _: 1 - })) : unref(results).length ? (openBlock(), createElementBlock("div", _hoisted_1, [ - (openBlock(true), createElementBlock(Fragment, null, renderList(unref(results), (result, index) => { - return openBlock(), createBlock(SearchItem, { - key: result.id, - result, - selected: index === unref(selectedIndex), - onClose: _cache[5] || (_cache[5] = ($event) => close()) - }, null, 8, ["result", "selected"]); - }), 128)) - ])) : createCommentVNode("", true) - ], 64); - }; - } -}); -export { - _sfc_main as default -}; diff --git a/.histoire/dist/assets/StoryView.vue-e7ab65e8.js b/.histoire/dist/assets/StoryView.vue-e7ab65e8.js deleted file mode 100644 index 6bee380..0000000 --- a/.histoire/dist/assets/StoryView.vue-e7ab65e8.js +++ /dev/null @@ -1,2653 +0,0 @@ -import { b as useRoute, c as computed, d as defineComponent, u as useCssVars, a as unref, aS as toRefs, r as ref, o as openBlock, e as createElementBlock, f as createVNode, w as withCtx, I as Icon, n as normalizeClass, g as createBaseVNode, t as toDisplayString, i as defineStore, j as useStorage, aT as unindent, A as resolveDirective, B as withDirectives, aU as useRouter, aV as useResizeObserver, v as histoireConfig, l as resolveComponent, q as createBlock, aW as Xg, h as createCommentVNode, L as normalizeStyle, s as isDark, aX as withModifiers, E as pushScopeId, G as popScopeId, k as watch, aY as renderSlot, m as withKeys, D as createTextVNode, F as Fragment, p as renderList, N as onMounted, aZ as vModelText, a_ as onUnmounted, a$ as VTooltip, b0 as createStaticVNode, y as useEventListener, W as SANDBOX_READY, b1 as EVENT_SEND, S as STATE_SYNC, X as applyState, U as PREVIEW_SETTINGS_SYNC, b2 as toRaw, aQ as mergeProps, b3 as Dropdown, b4 as clone, b5 as omit, b6 as useTimeoutFn, b7 as onClickOutside, z as isRef, b8 as nextTick, b9 as Zg, ba as zg, bb as jg, bc as Wg, aR as resolveDynamicComponent, K as reactive, aP as watchEffect, aO as markRaw, bd as shallowRef, be as getHighlighter, T as Transition, V as h, bf as onBeforeUnmount } from "./vendor-3ab3e533.js"; -import { u as useStoryStore } from "./story-804dabc9.js"; -import { u as useScrollOnActive, B as BaseListItemLink, _ as _export_sfc, i as isMobile, b as BaseSplitPane, a as _sfc_main$y } from "./MobileOverlay.vue2-a3503848.js"; -import { B as BaseEmpty } from "./BaseEmpty.vue-045cbb89.js"; -import { g as getContrastColor, _ as _sfc_main$x, t as toRawDeep } from "./state-4b1a79d2.js"; -import { c as clientSupportPlugins, b as base } from "./GenericMountStory.vue2-2bb5633d.js"; -import { useEventsStore } from "./events-ae5cec59.js"; -function useCurrentVariantRoute(variant) { - const route = useRoute(); - const isActive = computed(() => route.query.variantId === variant.value.id); - const targetRoute = computed(() => ({ - ...route, - query: { - ...route.query, - variantId: variant.value.id - } - })); - return { - isActive, - targetRoute - }; -} -const _hoisted_1$s = { class: "htw-truncate" }; -const _sfc_main$w = /* @__PURE__ */ defineComponent({ - __name: "StoryVariantListItem", - props: { - variant: { - type: Object, - required: true - } - }, - setup(__props) { - const props = __props; - useCssVars((_ctx) => ({ - "89126aaa": unref(variant).iconColor - })); - const { variant } = toRefs(props); - const { isActive, targetRoute } = useCurrentVariantRoute(variant); - const el = ref(); - useScrollOnActive(isActive, el); - return (_ctx, _cache) => { - return openBlock(), createElementBlock("div", { - ref_key: "el", - ref: el, - class: "histoire-story-variant-list-item", - "data-test-id": "story-variant-list-item" - }, [ - createVNode(BaseListItemLink, { - to: unref(targetRoute), - "is-active": unref(isActive), - class: "htw-px-2 htw-py-2 md:htw-py-1.5 htw-m-1 htw-rounded-sm htw-flex htw-items-center htw-gap-2" - }, { - default: withCtx(({ active }) => [ - createVNode(unref(Icon), { - icon: unref(variant).icon ?? "carbon:cube", - class: normalizeClass(["htw-w-5 htw-h-5 sm:htw-w-4 sm:htw-h-4 htw-flex-none", { - "htw-text-gray-500": !active && !unref(variant).iconColor, - "bind-icon-color": !active && unref(variant).iconColor - }]) - }, null, 8, ["icon", "class"]), - createBaseVNode("span", _hoisted_1$s, toDisplayString(unref(variant).title), 1) - ]), - _: 1 - }, 8, ["to", "is-active"]) - ], 512); - }; - } -}); -const StoryVariantListItem = /* @__PURE__ */ _export_sfc(_sfc_main$w, [["__scopeId", "data-v-ab890d9c"]]); -const usePreviewSettingsStore = defineStore("preview-settings", () => { - const currentSettings = useStorage("_histoire-sandbox-settings-v3", { - responsiveWidth: 720, - responsiveHeight: null, - rotate: false, - backgroundColor: "transparent", - checkerboard: false, - textDirection: "ltr" - }); - return { - currentSettings - }; -}); -async function getSourceCode(story, variant) { - var _a, _b, _c, _d; - if (variant.source) { - return variant.source; - } else if ((_a = variant.slots) == null ? void 0 : _a.call(variant).source) { - const source = (_b = variant.slots) == null ? void 0 : _b.call(variant).source()[0].children; - if (source) { - return unindent(source); - } - } else { - const clientPlugin = clientSupportPlugins[(_c = story.file) == null ? void 0 : _c.supportPluginId]; - if (clientPlugin) { - const pluginModule = await clientPlugin(); - return pluginModule.generateSourceCode(variant); - } - } - const sourceLoader = (_d = story.file) == null ? void 0 : _d.source; - if (sourceLoader) { - return (await sourceLoader()).default; - } -} -function getSandboxUrl(story, variant) { - const url = new URLSearchParams(); - url.append("storyId", story.id); - url.append("variantId", variant.id); - return `${base}__sandbox.html?${url.toString()}`; -} -const _hoisted_1$r = ["href"]; -const _sfc_main$v = /* @__PURE__ */ defineComponent({ - __name: "ToolbarNewTab", - props: { - variant: null, - story: null - }, - setup(__props) { - const props = __props; - const sandboxUrl = computed(() => { - return getSandboxUrl(props.story, props.variant); - }); - return (_ctx, _cache) => { - const _directive_tooltip = resolveDirective("tooltip"); - return withDirectives((openBlock(), createElementBlock("a", { - href: unref(sandboxUrl), - target: "_blank", - class: "histoire-toolbar-new-tab htw-flex htw-items-center htw-gap-1 htw-h-full htw-px-2 hover:htw-text-primary-500 htw-opacity-50 hover:htw-opacity-100 dark:hover:htw-text-primary-400 htw-text-gray-900 dark:htw-text-gray-100" - }, [ - createVNode(unref(Icon), { - icon: "carbon:launch", - class: "htw-w-4 htw-h-4" - }) - ], 8, _hoisted_1$r)), [ - [_directive_tooltip, "Open variant in new tab"] - ]); - }; - } -}); -const _sfc_main$u = {}; -const _hoisted_1$q = { fill: "none" }; -const _hoisted_2$i = /* @__PURE__ */ createBaseVNode("pattern", { - id: "checkerboard", - width: "64", - height: "64", - patternUnits: "userSpaceOnUse" -}, [ - /* @__PURE__ */ createBaseVNode("rect", { - x: "0", - y: "0", - width: "32", - height: "32", - fill: "currentColor" - }), - /* @__PURE__ */ createBaseVNode("rect", { - x: "32", - y: "32", - width: "32", - height: "32", - fill: "currentColor" - }) -], -1); -const _hoisted_3$e = /* @__PURE__ */ createBaseVNode("rect", { - x: "0", - y: "0", - width: "100%", - height: "100%", - fill: "url(#checkerboard)" -}, null, -1); -const _hoisted_4$a = [ - _hoisted_2$i, - _hoisted_3$e -]; -function _sfc_render$4(_ctx, _cache) { - return openBlock(), createElementBlock("svg", _hoisted_1$q, _hoisted_4$a); -} -const CheckerboardPattern = /* @__PURE__ */ _export_sfc(_sfc_main$u, [["render", _sfc_render$4]]); -const _withScopeId$2 = (n) => (pushScopeId("data-v-cf76cd68"), n = n(), popScopeId(), n); -const _hoisted_1$p = { class: "htw-flex-none htw-flex htw-items-center" }; -const _hoisted_2$h = { class: "htw-truncate htw-flex-1" }; -const _hoisted_3$d = { class: "htw-flex-none htw-ml-auto htw-hidden group-hover:htw-flex htw-items-center" }; -const _hoisted_4$9 = /* @__PURE__ */ _withScopeId$2(() => /* @__PURE__ */ createBaseVNode("div", { - class: "htw-absolute htw-inset-0 htw-rounded bind-preview-bg", - "data-test-id": "responsive-preview-bg" -}, null, -1)); -const _sfc_main$t = /* @__PURE__ */ defineComponent({ - __name: "StoryVariantGridItem", - props: { - variant: { - type: Object, - required: true - }, - story: { - type: Object, - required: true - } - }, - emits: { - // eslint-disable-next-line @typescript-eslint/no-unused-vars - resize: (width, height) => true - }, - setup(__props, { emit }) { - const props = __props; - useCssVars((_ctx) => ({ - "29d8c174": unref(variant).iconColor, - "0eff7465": unref(settings).backgroundColor - })); - const { variant } = toRefs(props); - const { isActive, targetRoute } = useCurrentVariantRoute(variant); - Object.assign(props.variant, { - previewReady: false - }); - function onReady() { - Object.assign(props.variant, { - previewReady: true - }); - } - const router = useRouter(); - function selectVariant() { - router.push(targetRoute.value); - } - const el = ref(); - const { autoScroll } = useScrollOnActive(isActive, el); - useResizeObserver(el, () => { - if (props.variant.previewReady) { - emit("resize", el.value.clientWidth, el.value.clientHeight); - if (isActive.value) { - autoScroll(); - } - } - }); - const settings = usePreviewSettingsStore().currentSettings; - const contrastColor = computed(() => getContrastColor(settings)); - const autoApplyContrastColor = computed(() => !!histoireConfig.autoApplyContrastColor); - return (_ctx, _cache) => { - const _component_RouterLink = resolveComponent("RouterLink"); - const _directive_tooltip = resolveDirective("tooltip"); - return openBlock(), createElementBlock("div", { - ref_key: "el", - ref: el, - class: "histoire-story-variant-grid-item htw-cursor-default htw-flex htw-flex-col htw-gap-y-1 htw-group" - }, [ - createBaseVNode("div", _hoisted_1$p, [ - withDirectives((openBlock(), createBlock(_component_RouterLink, { - to: unref(targetRoute), - class: normalizeClass(["htw-rounded htw-w-max htw-px-2 htw-py-0.5 htw-min-w-16 htw-cursor-pointer htw-flex htw-items-center htw-gap-1 htw-flex-shrink", { - "hover:htw-bg-gray-200 htw-text-gray-500 dark:hover:htw-bg-gray-800": !unref(isActive), - "htw-bg-primary-200 hover:htw-bg-primary-300 htw-text-primary-800 dark:htw-bg-primary-700 dark:hover:htw-bg-primary-800 dark:htw-text-primary-200": unref(isActive) - }]) - }, { - default: withCtx(() => [ - createVNode(unref(Icon), { - icon: unref(variant).icon ?? "carbon:cube", - class: normalizeClass(["htw-w-4 htw-h-4 htw-opacity-50", { - "htw-text-gray-500": !unref(isActive) && !unref(variant).iconColor, - "bind-icon-color": !unref(isActive) && unref(variant).iconColor - }]) - }, null, 8, ["icon", "class"]), - createBaseVNode("span", _hoisted_2$h, toDisplayString(unref(variant).title), 1) - ]), - _: 1 - }, 8, ["to", "class"])), [ - [_directive_tooltip, unref(variant).title] - ]), - createBaseVNode("div", _hoisted_3$d, [ - createVNode(unref(Xg), { - content: () => unref(getSourceCode)(__props.story, unref(variant)) - }, null, 8, ["content"]), - createVNode(_sfc_main$v, { - variant: unref(variant), - story: __props.story - }, null, 8, ["variant", "story"]) - ]) - ]), - createBaseVNode("div", { - class: normalizeClass(["htw-border htw-bg-white dark:htw-bg-gray-700 htw-rounded htw-flex-1 htw-p-4 htw-relative", { - "htw-border-gray-100 dark:htw-border-gray-800": !unref(isActive), - "htw-border-primary-200 dark:htw-border-primary-900": unref(isActive) - }]), - "data-test-id": "sandbox-render", - onClick: _cache[0] || (_cache[0] = withModifiers(($event) => selectVariant(), ["stop"])), - onKeyup: _cache[1] || (_cache[1] = ($event) => selectVariant()) - }, [ - _hoisted_4$9, - unref(settings).checkerboard ? (openBlock(), createBlock(CheckerboardPattern, { - key: 0, - class: "htw-absolute htw-inset-0 htw-w-full htw-h-full htw-text-gray-500/20" - })) : createCommentVNode("", true), - createBaseVNode("div", { - class: "htw-relative htw-h-full", - style: normalizeStyle({ - "--histoire-contrast-color": unref(contrastColor), - color: unref(autoApplyContrastColor) ? unref(contrastColor) : void 0 - }) - }, [ - (openBlock(), createBlock(_sfc_main$x, { - key: `${__props.story.id}-${unref(variant).id}`, - variant: unref(variant), - story: __props.story, - dir: unref(settings).textDirection, - class: normalizeClass({ - [unref(histoireConfig).theme.darkClass]: unref(isDark) - }), - onReady - }, null, 8, ["variant", "story", "dir", "class"])) - ], 4) - ], 34) - ], 512); - }; - } -}); -const StoryVariantGridItem = /* @__PURE__ */ _export_sfc(_sfc_main$t, [["__scopeId", "data-v-cf76cd68"]]); -const _hoisted_1$o = { class: "htw-text-white htw-w-[16px] htw-h-[16px] htw-relative" }; -const _hoisted_2$g = { - width: "16", - height: "16", - viewBox: "0 0 24 24", - class: "htw-relative htw-z-10" -}; -const _hoisted_3$c = ["stroke-dasharray", "stroke-dashoffset"]; -const _sfc_main$s = /* @__PURE__ */ defineComponent({ - __name: "BaseCheckbox", - props: { - modelValue: { - type: Boolean, - default: false - } - }, - emits: { - // eslint-disable-next-line @typescript-eslint/no-unused-vars - "update:modelValue": (newValue) => true - }, - setup(__props, { emit }) { - const props = __props; - function toggle() { - emit("update:modelValue", !props.modelValue); - animationEnabled.value = true; - } - const path = ref(); - const dasharray = ref(0); - const progress = computed(() => props.modelValue ? 1 : 0); - const dashoffset = computed(() => (1 - progress.value) * dasharray.value); - const animationEnabled = ref(false); - watch(path, () => { - var _a, _b; - dasharray.value = ((_b = (_a = path.value).getTotalLength) == null ? void 0 : _b.call(_a)) ?? 21.21; - }); - return (_ctx, _cache) => { - return openBlock(), createElementBlock("div", { - role: "checkbox", - tabindex: "0", - class: "histoire-base-checkbox htw-flex htw-items-center htw-gap-2 htw-select-none htw-px-4 htw-py-3 htw-cursor-pointer hover:htw-bg-primary-100 dark:hover:htw-bg-primary-700", - onClick: _cache[0] || (_cache[0] = ($event) => toggle()), - onKeydown: [ - _cache[1] || (_cache[1] = withKeys(withModifiers(($event) => toggle(), ["prevent"]), ["enter"])), - _cache[2] || (_cache[2] = withKeys(withModifiers(($event) => toggle(), ["prevent"]), ["space"])) - ] - }, [ - createBaseVNode("div", _hoisted_1$o, [ - createBaseVNode("div", { - class: normalizeClass(["htw-border group-active:htw-bg-gray-500/20 htw-rounded-sm htw-box-border htw-absolute htw-inset-0 htw-transition-border htw-duration-150 htw-ease-out", [ - __props.modelValue ? "htw-border-primary-500 htw-border-8" : "htw-border-black/25 dark:htw-border-white/25 htw-delay-150" - ]]) - }, null, 2), - (openBlock(), createElementBlock("svg", _hoisted_2$g, [ - createBaseVNode("path", { - ref_key: "path", - ref: path, - d: "m 4 12 l 5 5 l 10 -10", - fill: "none", - class: normalizeClass(["htw-stroke-white htw-stroke-2 htw-duration-200 htw-ease-in-out", [ - animationEnabled.value ? "htw-transition-all" : "htw-transition-none", - { - "htw-delay-150": __props.modelValue - } - ]]), - "stroke-dasharray": dasharray.value, - "stroke-dashoffset": unref(dashoffset) - }, null, 10, _hoisted_3$c) - ])) - ]), - renderSlot(_ctx.$slots, "default") - ], 32); - }; - } -}); -const _hoisted_1$n = { class: "htw-cursor-pointer hover:htw-text-primary-500 htw-flex htw-items-center htw-gap-1 htw-h-full htw-px-2 htw-group" }; -const _hoisted_2$f = { class: "bind-preview-bg htw-w-4 htw-h-4 htw-rounded-full htw-border htw-border-black/50 dark:htw-border-white/50 htw-flex htw-items-center htw-justify-center htw-text-xs" }; -const _hoisted_3$b = { key: 0 }; -const _hoisted_4$8 = { - class: "htw-flex htw-flex-col htw-items-stretch", - "data-test-id": "background-popper" -}; -const _hoisted_5$5 = ["onClick"]; -const _hoisted_6$4 = { class: "htw-mr-auto" }; -const _hoisted_7$3 = { class: "htw-ml-auto htw-opacity-70" }; -const _hoisted_8$2 = { key: 0 }; -const _sfc_main$r = /* @__PURE__ */ defineComponent({ - __name: "ToolbarBackground", - setup(__props) { - useCssVars((_ctx) => ({ - "627bec82": unref(settings).backgroundColor, - "35068428": unref(contrastColor) - })); - const settings = usePreviewSettingsStore().currentSettings; - const contrastColor = computed(() => getContrastColor(settings)); - return (_ctx, _cache) => { - const _component_VDropdown = resolveComponent("VDropdown"); - const _directive_tooltip = resolveDirective("tooltip"); - return unref(histoireConfig).backgroundPresets.length ? (openBlock(), createBlock(_component_VDropdown, { - key: 0, - placement: "bottom-end", - skidding: 6, - class: "histoire-toolbar-background htw-h-full htw-flex-none", - "data-test-id": "toolbar-background" - }, { - popper: withCtx(({ hide }) => [ - createBaseVNode("div", _hoisted_4$8, [ - createVNode(_sfc_main$s, { - modelValue: unref(settings).checkerboard, - "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => unref(settings).checkerboard = $event) - }, { - default: withCtx(() => [ - createTextVNode(" Checkerboard ") - ]), - _: 1 - }, 8, ["modelValue"]), - (openBlock(true), createElementBlock(Fragment, null, renderList(unref(histoireConfig).backgroundPresets, (option, index) => { - return openBlock(), createElementBlock("button", { - key: index, - class: normalizeClass(["htw-px-4 htw-py-3 htw-cursor-pointer htw-text-left htw-flex htw-items-baseline htw-gap-4", [ - unref(settings).backgroundColor === option.color ? "htw-bg-primary-500 hover:htw-bg-primary-600 htw-text-white dark:htw-text-black" : "htw-bg-transparent hover:htw-bg-primary-100 dark:hover:htw-bg-primary-700" - ]]), - onClick: ($event) => { - unref(settings).backgroundColor = option.color; - hide(); - } - }, [ - createBaseVNode("span", _hoisted_6$4, toDisplayString(option.label), 1), - option.color !== "$checkerboard" ? (openBlock(), createElementBlock(Fragment, { key: 0 }, [ - createBaseVNode("span", _hoisted_7$3, toDisplayString(option.color), 1), - createBaseVNode("div", { - class: "htw-w-4 htw-h-4 htw-rounded-full htw-border htw-border-black/20 dark:htw-border-white/20 htw-flex htw-items-center htw-justify-center htw-text-xs", - style: normalizeStyle({ - backgroundColor: option.color, - color: option.contrastColor - }) - }, [ - option.contrastColor ? (openBlock(), createElementBlock("span", _hoisted_8$2, "a")) : createCommentVNode("", true) - ], 4) - ], 64)) : createCommentVNode("", true) - ], 10, _hoisted_5$5); - }), 128)) - ]) - ]), - default: withCtx(() => [ - withDirectives((openBlock(), createElementBlock("div", _hoisted_1$n, [ - createBaseVNode("div", _hoisted_2$f, [ - unref(contrastColor) ? (openBlock(), createElementBlock("span", _hoisted_3$b, "a")) : createCommentVNode("", true) - ]), - createVNode(unref(Icon), { - icon: "carbon:caret-down", - class: "htw-w-4 htw-h-4 htw-opacity-50 group-hover:htw-opacity-100" - }) - ])), [ - [_directive_tooltip, "Background color"] - ]) - ]), - _: 1 - })) : createCommentVNode("", true); - }; - } -}); -const ToolbarBackground = /* @__PURE__ */ _export_sfc(_sfc_main$r, [["__scopeId", "data-v-c48fb2b2"]]); -const _sfc_main$q = /* @__PURE__ */ defineComponent({ - __name: "ToolbarTextDirection", - setup(__props) { - const settings = usePreviewSettingsStore().currentSettings; - return (_ctx, _cache) => { - const _directive_tooltip = resolveDirective("tooltip"); - return withDirectives((openBlock(), createElementBlock("a", { - class: "histoire-toolbar-text-direction htw-flex htw-items-center htw-gap-1 htw-h-full htw-px-2 hover:htw-text-primary-500 htw-opacity-50 hover:htw-opacity-100 dark:hover:htw-text-primary-400 htw-text-gray-900 dark:htw-text-gray-100", - onClick: _cache[0] || (_cache[0] = ($event) => unref(settings).textDirection = unref(settings).textDirection === "ltr" ? "rtl" : "ltr") - }, [ - createVNode(unref(Icon), { - icon: unref(settings).textDirection === "ltr" ? "fluent:text-paragraph-direction-right-16-regular" : "fluent:text-paragraph-direction-left-16-regular", - class: "htw-w-4 htw-h-4" - }, null, 8, ["icon"]) - ])), [ - [_directive_tooltip, `Switch to text direction ${unref(settings).textDirection === "ltr" ? "Right to Left" : "Left to Right"}`] - ]); - }; - } -}); -const _hoisted_1$m = { class: "histoire-story-variant-grid htw-flex htw-flex-col htw-items-stretch htw-h-full __histoire-pane-shadow-from-right" }; -const _hoisted_2$e = { - key: 0, - class: "htw-flex-none htw-flex htw-items-center htw-justify-end htw-h-8 htw-mx-2 htw-mt-1" -}; -const _hoisted_3$a = { class: "htw-flex htw-w-0 htw-flex-1 htw-mx-4" }; -const _sfc_main$p = /* @__PURE__ */ defineComponent({ - __name: "StoryVariantGrid", - setup(__props) { - const storyStore = useStoryStore(); - const gridTemplateWidth = computed(() => { - if (storyStore.currentStory.layout.type !== "grid") { - return; - } - const layoutWidth = storyStore.currentStory.layout.width; - if (!layoutWidth) { - return "200px"; - } - if (typeof layoutWidth === "number") { - return layoutWidth + "px"; - } - return layoutWidth; - }); - const margin = 16; - const gap = 16; - const itemWidth = ref(16); - const maxItemHeight = ref(0); - const maxCount = ref(10); - const countPerRow = ref(0); - const visibleRows = ref(0); - const el = ref(null); - useResizeObserver(el, () => { - updateMaxCount(); - updateSize(); - }); - function updateMaxCount() { - if (!maxItemHeight.value) - return; - const width = el.value.clientWidth - margin * 2; - const height = el.value.clientHeight; - const scrollTop = el.value.scrollTop; - countPerRow.value = Math.floor((width + gap) / (itemWidth.value + gap)); - visibleRows.value = Math.ceil((height + scrollTop + gap) / (maxItemHeight.value + gap)); - const newMaxCount = countPerRow.value * visibleRows.value; - if (maxCount.value < newMaxCount) { - maxCount.value = newMaxCount; - } - if (storyStore.currentVariant) { - const index = storyStore.currentStory.variants.indexOf(storyStore.currentVariant); - if (index + 1 > maxCount.value) { - maxCount.value = index + 1; - } - } - } - function onItemResize(w, h2) { - itemWidth.value = w; - if (maxItemHeight.value < h2) { - maxItemHeight.value = h2; - updateMaxCount(); - } - } - watch(() => storyStore.currentVariant, () => { - maxItemHeight.value = 0; - updateMaxCount(); - }); - const gridEl = ref(null); - const gridColumnWidth = ref(1); - const viewWidth = ref(1); - function updateSize() { - if (!el.value) - return; - viewWidth.value = el.value.clientWidth; - if (!gridEl.value) - return; - if (gridTemplateWidth.value.endsWith("%")) { - gridColumnWidth.value = viewWidth.value * parseInt(gridTemplateWidth.value) / 100 - gap; - } else { - gridColumnWidth.value = parseInt(gridTemplateWidth.value); - } - } - onMounted(() => { - updateSize(); - }); - useResizeObserver(gridEl, () => { - updateSize(); - }); - const columnCount = computed(() => Math.min(storyStore.currentStory.variants.length, Math.floor((viewWidth.value + gap) / (gridColumnWidth.value + gap)))); - return (_ctx, _cache) => { - return openBlock(), createElementBlock("div", _hoisted_1$m, [ - !unref(isMobile) ? (openBlock(), createElementBlock("div", _hoisted_2$e, [ - createVNode(ToolbarBackground), - createVNode(_sfc_main$q), - createCommentVNode("", true) - ])) : createCommentVNode("", true), - createBaseVNode("div", { - ref_key: "el", - ref: el, - class: "htw-overflow-y-auto htw-flex htw-flex-1", - onScroll: _cache[0] || (_cache[0] = ($event) => updateMaxCount()) - }, [ - createBaseVNode("div", _hoisted_3$a, [ - createBaseVNode("div", { - class: "htw-m-auto", - style: normalizeStyle({ - minHeight: `${unref(storyStore).currentStory.variants.length / countPerRow.value * (maxItemHeight.value + gap) - gap}px` - }) - }, [ - createBaseVNode("div", { - ref_key: "gridEl", - ref: gridEl, - class: "htw-grid htw-gap-4 htw-my-4", - style: normalizeStyle({ - gridTemplateColumns: `repeat(${unref(columnCount)}, ${gridColumnWidth.value}px)` - }) - }, [ - (openBlock(true), createElementBlock(Fragment, null, renderList(unref(storyStore).currentStory.variants.slice(0, maxCount.value), (variant, index) => { - return openBlock(), createBlock(StoryVariantGridItem, { - key: index, - variant, - story: unref(storyStore).currentStory, - onResize: onItemResize - }, null, 8, ["variant", "story"]); - }), 128)) - ], 4) - ], 4) - ]) - ], 544) - ]); - }; - } -}); -const _hoisted_1$l = { class: "histoire-toolbar-title htw-flex htw-items-center htw-gap-1 htw-text-gray-500 htw-flex-1 htw-truncate htw-min-w-0" }; -const _sfc_main$o = /* @__PURE__ */ defineComponent({ - __name: "ToolbarTitle", - props: { - variant: null - }, - setup(__props) { - return (_ctx, _cache) => { - return openBlock(), createElementBlock("div", _hoisted_1$l, [ - createVNode(unref(Icon), { - icon: __props.variant.icon ?? "carbon:cube", - class: normalizeClass(["htw-w-4 htw-h-4 htw-opacity-50", [ - __props.variant.iconColor ? "bind-icon-color" : "htw-text-gray-500" - ]]) - }, null, 8, ["icon", "class"]), - createBaseVNode("span", null, toDisplayString(__props.variant.title), 1) - ]); - }; - } -}); -const _hoisted_1$k = { class: "htw-flex htw-flex-col htw-items-stretch" }; -const _hoisted_2$d = { class: "htw-flex htw-items-center htw-gap-2 htw-px-4 htw-py-3" }; -const _hoisted_3$9 = /* @__PURE__ */ createBaseVNode("span", { class: "htw-opacity-50" }, "×", -1); -const _hoisted_4$7 = ["onClick"]; -const _hoisted_5$4 = { class: "htw-ml-auto htw-opacity-70 htw-flex htw-gap-1" }; -const _hoisted_6$3 = { key: 0 }; -const _hoisted_7$2 = { key: 0 }; -const _hoisted_8$1 = { key: 1 }; -const _hoisted_9$1 = { key: 2 }; -const _hoisted_10 = { key: 0 }; -const _sfc_main$n = /* @__PURE__ */ defineComponent({ - __name: "ToolbarResponsiveSize", - setup(__props) { - const settings = usePreviewSettingsStore().currentSettings; - return (_ctx, _cache) => { - var _a; - const _component_VDropdown = resolveComponent("VDropdown"); - const _directive_tooltip = resolveDirective("tooltip"); - return openBlock(), createBlock(_component_VDropdown, { - placement: "bottom-end", - skidding: 6, - disabled: !((_a = unref(histoireConfig).responsivePresets) == null ? void 0 : _a.length), - class: "histoire-toolbar-responsive-size htw-h-full htw-flex-none" - }, { - popper: withCtx(({ hide }) => [ - createBaseVNode("div", _hoisted_1$k, [ - createVNode(_sfc_main$s, { - modelValue: unref(settings).rotate, - "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => unref(settings).rotate = $event) - }, { - default: withCtx(() => [ - createTextVNode(" Rotate ") - ]), - _: 1 - }, 8, ["modelValue"]), - createBaseVNode("div", _hoisted_2$d, [ - withDirectives(createBaseVNode("input", { - "onUpdate:modelValue": _cache[1] || (_cache[1] = ($event) => unref(settings).responsiveWidth = $event), - type: "number", - class: "htw-bg-transparent htw-border htw-border-gray-200 dark:htw-border-gray-850 htw-rounded htw-w-20 htw-opacity-50 focus:htw-opacity-100 htw-flex-1 htw-min-w-0", - step: "16", - placeholder: "Auto" - }, null, 512), [ - [ - vModelText, - unref(settings).responsiveWidth, - void 0, - { number: true } - ], - [_directive_tooltip, "Responsive width (px)"] - ]), - _hoisted_3$9, - withDirectives(createBaseVNode("input", { - "onUpdate:modelValue": _cache[2] || (_cache[2] = ($event) => unref(settings).responsiveHeight = $event), - type: "number", - class: "htw-bg-transparent htw-border htw-border-gray-200 dark:htw-border-gray-850 htw-rounded htw-w-20 htw-opacity-50 focus:htw-opacity-100 htw-flex-1 htw-min-w-0", - step: "16", - placeholder: "Auto" - }, null, 512), [ - [ - vModelText, - unref(settings).responsiveHeight, - void 0, - { number: true } - ], - [_directive_tooltip, "Responsive height (px)"] - ]) - ]), - (openBlock(true), createElementBlock(Fragment, null, renderList(unref(histoireConfig).responsivePresets, (preset, index) => { - return openBlock(), createElementBlock("button", { - key: index, - class: normalizeClass(["htw-px-4 htw-py-3 htw-cursor-pointer htw-text-left htw-flex htw-gap-4", [ - unref(settings).responsiveWidth === preset.width && unref(settings).responsiveHeight === preset.height ? "htw-bg-primary-500 hover:htw-bg-primary-600 htw-text-white dark:htw-text-black" : "htw-bg-transparent hover:htw-bg-primary-100 dark:hover:htw-bg-primary-700" - ]]), - onClick: ($event) => { - unref(settings).responsiveWidth = preset.width; - unref(settings).responsiveHeight = preset.height; - hide(); - } - }, [ - createTextVNode(toDisplayString(preset.label) + " ", 1), - createBaseVNode("span", _hoisted_5$4, [ - preset.width ? (openBlock(), createElementBlock("span", _hoisted_6$3, [ - createTextVNode(toDisplayString(preset.width), 1), - !preset.height ? (openBlock(), createElementBlock("span", _hoisted_7$2, "px")) : createCommentVNode("", true) - ])) : createCommentVNode("", true), - preset.width && preset.height ? (openBlock(), createElementBlock("span", _hoisted_8$1, "x")) : createCommentVNode("", true), - preset.height ? (openBlock(), createElementBlock("span", _hoisted_9$1, [ - createTextVNode(toDisplayString(preset.height), 1), - !preset.width ? (openBlock(), createElementBlock("span", _hoisted_10, "px")) : createCommentVNode("", true) - ])) : createCommentVNode("", true) - ]) - ], 10, _hoisted_4$7); - }), 128)) - ]) - ]), - default: withCtx(() => { - var _a2; - return [ - withDirectives((openBlock(), createElementBlock("div", { - class: normalizeClass(["htw-flex htw-items-center htw-gap-1 htw-h-full htw-px-2 htw-group", { - "htw-cursor-pointer hover:htw-text-primary-500": (_a2 = unref(histoireConfig).responsivePresets) == null ? void 0 : _a2.length - }]) - }, [ - createVNode(unref(Icon), { - icon: "carbon:devices", - class: "htw-w-4 htw-h-4 htw-opacity-50 group-hover:htw-opacity-100" - }), - createVNode(unref(Icon), { - icon: "carbon:caret-down", - class: "htw-w-4 htw-h-4 htw-opacity-50 group-hover:htw-opacity-100" - }) - ], 2)), [ - [_directive_tooltip, "Responsive sizes"] - ]) - ]; - }), - _: 1 - }, 8, ["disabled"]); - }; - } -}); -const _sfc_main$m = {}; -const _hoisted_1$j = { class: "__histoire-hatched-pattern" }; -function _sfc_render$3(_ctx, _cache) { - return openBlock(), createElementBlock("div", _hoisted_1$j); -} -const HatchedPattern = /* @__PURE__ */ _export_sfc(_sfc_main$m, [["render", _sfc_render$3], ["__scopeId", "data-v-91561117"]]); -const _withScopeId$1 = (n) => (pushScopeId("data-v-a83b1911"), n = n(), popScopeId(), n); -const _hoisted_1$i = { class: "histoire-story-responsive-preview htw-w-full htw-h-full htw-flex-1 htw-rounded-lg htw-relative htw-overflow-hidden" }; -const _hoisted_2$c = { - key: 0, - class: "htw-absolute htw-inset-0 htw-w-full htw-h-full htw-bg-gray-100 dark:htw-bg-gray-750 htw-rounded-r-lg htw-border-l-2 htw-border-gray-500/10 dark:htw-border-gray-700/30 htw-overflow-hidden" -}; -const _hoisted_3$8 = { - class: "bind-preview-bg htw-rounded-lg htw-h-full", - "data-test-id": "responsive-preview-bg" -}; -const _hoisted_4$6 = { class: "htw-p-8 htw-h-full htw-relative" }; -const _hoisted_5$3 = { class: "htw-w-full htw-h-full htw-relative" }; -const _hoisted_6$2 = /* @__PURE__ */ _withScopeId$1(() => /* @__PURE__ */ createBaseVNode("div", { class: "htw-absolute htw-inset-0" }, null, -1)); -const _hoisted_7$1 = /* @__PURE__ */ createStaticVNode('
', 8); -const _sfc_main$l = /* @__PURE__ */ defineComponent({ - __name: "StoryResponsivePreview", - props: { - variant: null - }, - setup(__props) { - const props = __props; - useCssVars((_ctx) => ({ - "03d1950e": unref(settings).backgroundColor - })); - const settings = usePreviewSettingsStore().currentSettings; - const resizing = ref(false); - const onUnmountedCleanupFns = []; - onUnmounted(() => { - onUnmountedCleanupFns.forEach((fn) => fn()); - }); - function addWindowListener(event, listener) { - window.addEventListener(event, listener); - const removeListener = () => window.removeEventListener(event, listener); - onUnmountedCleanupFns.push(removeListener); - return () => { - removeListener(); - onUnmountedCleanupFns.splice(onUnmountedCleanupFns.indexOf(removeListener), 1); - }; - } - function useDragger(el, value, min, max, axis) { - function onMouseDown(event) { - event.preventDefault(); - event.stopPropagation(); - const start = axis === "x" ? event.clientX : event.clientY; - const startValue = value.value ?? (axis === "x" ? previewWrapper.value.clientWidth - 67 : previewWrapper.value.clientHeight - 70); - resizing.value = true; - const removeListeners = [ - addWindowListener("mousemove", onMouseMove), - addWindowListener("mouseup", onMouseUp) - ]; - function onMouseMove(event2) { - const snapTarget = axis === "x" ? previewWrapper.value.clientWidth : previewWrapper.value.clientHeight; - const delta = (axis === "x" ? event2.clientX : event2.clientY) - start; - value.value = Math.max(min, Math.min(max, startValue + delta)); - if (Math.abs(value.value - (snapTarget - 67)) < 16) { - value.value = null; - } - } - function onMouseUp() { - removeListeners.forEach((fn) => fn()); - resizing.value = false; - } - } - useEventListener(el, "mousedown", onMouseDown); - function onTouchStart(event) { - event.preventDefault(); - event.stopPropagation(); - const start = axis === "x" ? event.touches[0].clientX : event.touches[0].clientY; - const startValue = value.value; - resizing.value = true; - const removeListeners = [ - addWindowListener("touchmove", onTouchMove), - addWindowListener("touchend", onTouchEnd), - addWindowListener("touchcancel", onTouchEnd) - ]; - function onTouchMove(event2) { - const delta = (axis === "x" ? event2.touches[0].clientX : event2.touches[0].clientY) - start; - value.value = Math.max(min, Math.min(max, startValue + delta)); - } - function onTouchEnd() { - removeListeners.forEach((fn) => fn()); - resizing.value = false; - } - } - useEventListener(el, "touchstart", onTouchStart); - } - const responsiveWidth = computed({ - get: () => settings[settings.rotate ? "responsiveHeight" : "responsiveWidth"], - set: (value) => { - settings[settings.rotate ? "responsiveHeight" : "responsiveWidth"] = value; - } - }); - const responsiveHeight = computed({ - get: () => settings[settings.rotate ? "responsiveWidth" : "responsiveHeight"], - set: (value) => { - settings[settings.rotate ? "responsiveWidth" : "responsiveHeight"] = value; - } - }); - const horizontalDragger = ref(); - const verticalDragger = ref(); - const cornerDragger = ref(); - const previewWrapper = ref(); - useDragger(horizontalDragger, responsiveWidth, 32, 2e4, "x"); - useDragger(verticalDragger, responsiveHeight, 32, 2e4, "y"); - useDragger(cornerDragger, responsiveWidth, 32, 2e4, "x"); - useDragger(cornerDragger, responsiveHeight, 32, 2e4, "y"); - const finalWidth = computed(() => settings.rotate ? settings.responsiveHeight : settings.responsiveWidth); - const finalHeight = computed(() => settings.rotate ? settings.responsiveWidth : settings.responsiveHeight); - const isResponsiveEnabled = computed(() => !props.variant.responsiveDisabled); - const sizeTooltip = computed(() => (responsiveWidth.value ?? "Auto") + " × " + (responsiveHeight.value ?? "Auto")); - return (_ctx, _cache) => { - return openBlock(), createElementBlock("div", _hoisted_1$i, [ - unref(isResponsiveEnabled) ? (openBlock(), createElementBlock("div", _hoisted_2$c, [ - createVNode(HatchedPattern, { class: "htw-w-full htw-h-full htw-text-black/[1%] dark:htw-text-white/[1%]" }) - ])) : createCommentVNode("", true), - createBaseVNode("div", { - ref_key: "previewWrapper", - ref: previewWrapper, - class: "htw-h-full htw-overflow-auto htw-relative" - }, [ - createBaseVNode("div", { - class: normalizeClass(["htw-h-full htw-overflow-hidden htw-bg-white dark:htw-bg-gray-700 htw-rounded-lg htw-relative", unref(isResponsiveEnabled) ? { - "htw-w-fit": !!unref(finalWidth), - "htw-h-fit": !!unref(finalHeight) - } : void 0]) - }, [ - createBaseVNode("div", _hoisted_3$8, [ - unref(settings).checkerboard ? (openBlock(), createBlock(CheckerboardPattern, { - key: 0, - class: "htw-absolute htw-inset-0 htw-w-full htw-h-full htw-text-gray-500/20" - })) : createCommentVNode("", true), - createBaseVNode("div", _hoisted_4$6, [ - createBaseVNode("div", _hoisted_5$3, [ - _hoisted_6$2, - renderSlot(_ctx.$slots, "default", { - isResponsiveEnabled: unref(isResponsiveEnabled), - finalWidth: unref(finalWidth), - finalHeight: unref(finalHeight), - resizing: resizing.value - }, void 0, true) - ]), - _hoisted_7$1 - ]), - unref(isResponsiveEnabled) ? (openBlock(), createElementBlock(Fragment, { key: 1 }, [ - withDirectives((openBlock(), createElementBlock("div", { - ref_key: "horizontalDragger", - ref: horizontalDragger, - class: "htw-absolute htw-w-4 htw-top-0 htw-bottom-4 htw-right-0 hover:htw-bg-primary-500/30 htw-flex htw-items-center htw-justify-center htw-cursor-ew-resize htw-group hover:htw-text-primary-500" - }, [ - createVNode(unref(Icon), { - icon: "mdi:drag-vertical-variant", - class: "htw-w-4 htw-h-4 htw-opacity-20 group-hover:htw-opacity-90" - }) - ])), [ - [ - unref(VTooltip), - unref(sizeTooltip), - void 0, - { right: true } - ] - ]), - withDirectives((openBlock(), createElementBlock("div", { - ref_key: "verticalDragger", - ref: verticalDragger, - class: "htw-absolute htw-h-4 htw-left-0 htw-right-4 htw-bottom-0 hover:htw-bg-primary-500/30 htw-flex htw-items-center htw-justify-center htw-cursor-ns-resize htw-group hover:htw-text-primary-500" - }, [ - createVNode(unref(Icon), { - icon: "mdi:drag-horizontal-variant", - class: "htw-w-4 htw-h-4 htw-opacity-20 group-hover:htw-opacity-90" - }) - ])), [ - [ - unref(VTooltip), - unref(sizeTooltip), - void 0, - { bottom: true } - ] - ]), - withDirectives(createBaseVNode("div", { - ref_key: "cornerDragger", - ref: cornerDragger, - class: "htw-absolute htw-w-4 htw-h-4 htw-right-0 htw-bottom-0 hover:htw-bg-primary-500/30 htw-flex htw-items-center htw-justify-center htw-cursor-nwse-resize htw-group hover:htw-text-primary-500" - }, null, 512), [ - [ - unref(VTooltip), - unref(sizeTooltip), - void 0, - { bottom: true } - ] - ]) - ], 64)) : createCommentVNode("", true) - ]) - ], 2) - ], 512) - ]); - }; - } -}); -const StoryResponsivePreview = /* @__PURE__ */ _export_sfc(_sfc_main$l, [["__scopeId", "data-v-a83b1911"]]); -const _sfc_main$k = /* @__PURE__ */ defineComponent({ - __name: "StoryVariantSinglePreviewNative", - props: { - story: null, - variant: null - }, - setup(__props) { - const props = __props; - Object.assign(props.variant, { - previewReady: false - }); - function onReady() { - Object.assign(props.variant, { - previewReady: true - }); - } - const settings = usePreviewSettingsStore().currentSettings; - const contrastColor = computed(() => getContrastColor(settings)); - const autoApplyContrastColor = computed(() => !!histoireConfig.autoApplyContrastColor); - return (_ctx, _cache) => { - return openBlock(), createBlock(StoryResponsivePreview, { - class: "histoire-story-variant-single-preview-native", - variant: __props.variant - }, { - default: withCtx(({ isResponsiveEnabled, finalWidth, finalHeight }) => [ - createBaseVNode("div", { - style: normalizeStyle([ - isResponsiveEnabled ? { - width: finalWidth ? `${finalWidth}px` : "100%", - height: finalHeight ? `${finalHeight}px` : "100%" - } : { width: "100%", height: "100%" }, - { - "--histoire-contrast-color": unref(contrastColor), - color: unref(autoApplyContrastColor) ? unref(contrastColor) : void 0 - } - ]), - class: "htw-relative", - "data-test-id": "sandbox-render" - }, [ - (openBlock(), createBlock(_sfc_main$x, { - key: `${__props.story.id}-${__props.variant.id}`, - variant: __props.variant, - story: __props.story, - class: normalizeClass(["htw-h-full", { - [unref(histoireConfig).sandboxDarkClass]: unref(isDark), - // @TODO remove - [unref(histoireConfig).theme.darkClass]: unref(isDark) - }]), - dir: unref(settings).textDirection, - onReady - }, null, 8, ["variant", "story", "class", "dir"])) - ], 4) - ]), - _: 1 - }, 8, ["variant"]); - }; - } -}); -const _hoisted_1$h = ["src"]; -const _sfc_main$j = /* @__PURE__ */ defineComponent({ - __name: "StoryVariantSinglePreviewRemote", - props: { - story: null, - variant: null - }, - setup(__props) { - const props = __props; - const settings = usePreviewSettingsStore().currentSettings; - const iframe = ref(); - function syncState() { - if (iframe.value && props.variant.previewReady) { - iframe.value.contentWindow.postMessage({ - type: STATE_SYNC, - state: toRawDeep(props.variant.state, true) - }); - } - } - let synced = false; - watch(() => props.variant.state, () => { - if (synced) { - synced = false; - return; - } - syncState(); - }, { - deep: true, - immediate: true - }); - Object.assign(props.variant, { - previewReady: false - }); - useEventListener(window, "message", (event) => { - switch (event.data.type) { - case STATE_SYNC: - updateVariantState(event.data.state); - break; - case EVENT_SEND: - logEvent(event.data.event); - break; - case SANDBOX_READY: - setPreviewReady(); - break; - } - }); - function updateVariantState(state) { - synced = true; - applyState(props.variant.state, state); - } - function logEvent(event) { - const eventsStore = useEventsStore(); - eventsStore.addEvent(event); - } - function setPreviewReady() { - Object.assign(props.variant, { - previewReady: true - }); - } - const sandboxUrl = computed(() => { - return getSandboxUrl(props.story, props.variant); - }); - const isIframeLoaded = ref(false); - watch(sandboxUrl, () => { - isIframeLoaded.value = false; - Object.assign(props.variant, { - previewReady: false - }); - }); - function syncSettings() { - if (iframe.value) { - iframe.value.contentWindow.postMessage({ - type: PREVIEW_SETTINGS_SYNC, - settings: toRaw(settings) - }); - } - } - watch(() => settings, () => { - syncSettings(); - }, { - deep: true, - immediate: true - }); - function onIframeLoad() { - isIframeLoaded.value = true; - syncState(); - syncSettings(); - } - return (_ctx, _cache) => { - return openBlock(), createBlock(StoryResponsivePreview, { - class: "histoire-story-variant-single-preview-remote", - variant: __props.variant - }, { - default: withCtx(({ isResponsiveEnabled, finalWidth, finalHeight, resizing }) => [ - createBaseVNode("iframe", { - ref_key: "iframe", - ref: iframe, - src: unref(sandboxUrl), - class: normalizeClass(["htw-w-full htw-h-full htw-relative", { - "htw-invisible": !isIframeLoaded.value, - "htw-pointer-events-none": resizing - }]), - style: normalizeStyle(isResponsiveEnabled ? { - width: finalWidth ? `${finalWidth}px` : null, - height: finalHeight ? `${finalHeight}px` : null - } : void 0), - "data-test-id": "preview-iframe", - onLoad: _cache[0] || (_cache[0] = ($event) => onIframeLoad()) - }, null, 46, _hoisted_1$h) - ]), - _: 1 - }, 8, ["variant"]); - }; - } -}); -const _hoisted_1$g = { - class: "histoire-story-variant-single-view htw-h-full htw-flex htw-flex-col", - "data-test-id": "story-variant-single-view" -}; -const _hoisted_2$b = { - key: 0, - class: "htw-flex-none htw-flex htw-items-center htw-h-8 -htw-mt-1" -}; -const _sfc_main$i = /* @__PURE__ */ defineComponent({ - __name: "StoryVariantSingleView", - props: { - variant: null, - story: null - }, - setup(__props) { - return (_ctx, _cache) => { - var _b; - return openBlock(), createElementBlock("div", _hoisted_1$g, [ - !unref(isMobile) ? (openBlock(), createElementBlock("div", _hoisted_2$b, [ - createVNode(_sfc_main$o, { variant: __props.variant }, null, 8, ["variant"]), - !__props.variant.responsiveDisabled ? (openBlock(), createBlock(_sfc_main$n, { key: 0 })) : createCommentVNode("", true), - createVNode(ToolbarBackground), - createVNode(_sfc_main$q), - createVNode(_sfc_main$v, { - variant: __props.variant, - story: __props.story - }, null, 8, ["variant", "story"]), - createCommentVNode("", true) - ])) : createCommentVNode("", true), - ((_b = __props.story.layout) == null ? void 0 : _b.iframe) === false ? (openBlock(), createBlock(_sfc_main$k, { - key: 1, - story: __props.story, - variant: __props.variant - }, null, 8, ["story", "variant"])) : (openBlock(), createBlock(_sfc_main$j, { - key: 2, - story: __props.story, - variant: __props.variant - }, null, 8, ["story", "variant"])) - ]); - }; - } -}); -const _hoisted_1$f = { - key: 0, - class: "histoire-story-variant-single htw-p-2 htw-h-full __histoire-pane-shadow-from-right" -}; -const _hoisted_2$a = { - key: 0, - class: "htw-divide-y htw-divide-gray-100 dark:htw-divide-gray-800 htw-h-full htw-flex htw-flex-col" -}; -const _hoisted_3$7 = { - key: 0, - class: "htw-p-2 htw-h-full" -}; -const _hoisted_4$5 = { class: "htw-h-full htw-overflow-y-auto" }; -const _hoisted_5$2 = { - key: 0, - class: "htw-p-2 htw-h-full __histoire-pane-shadow-from-right" -}; -const _sfc_main$h = /* @__PURE__ */ defineComponent({ - __name: "StoryVariantSingle", - emits: { - "open-variant-menu": () => true - }, - setup(__props) { - useCssVars((_ctx) => { - var _a; - return { - "4d25d048": (_a = unref(variant)) == null ? void 0 : _a.iconColor - }; - }); - const storyStore = useStoryStore(); - const hasSingleVariant = computed(() => { - var _a; - return ((_a = storyStore.currentStory) == null ? void 0 : _a.variants.length) === 1; - }); - const variant = computed(() => storyStore.currentVariant); - return (_ctx, _cache) => { - return unref(hasSingleVariant) && unref(variant) ? (openBlock(), createElementBlock("div", _hoisted_1$f, [ - createVNode(_sfc_main$i, { - variant: unref(variant), - story: unref(storyStore).currentStory - }, null, 8, ["variant", "story"]) - ])) : (openBlock(), createElementBlock(Fragment, { key: 1 }, [ - unref(isMobile) ? (openBlock(), createElementBlock("div", _hoisted_2$a, [ - createBaseVNode("a", { - class: "htw-px-6 htw-h-12 hover:htw-text-primary-500 dark:hover:htw-text-primary-400 htw-cursor-pointer htw-flex htw-gap-2 htw-flex-wrap htw-w-full htw-items-center htw-flex-none", - onClick: _cache[0] || (_cache[0] = ($event) => _ctx.$emit("open-variant-menu")) - }, [ - unref(variant) ? (openBlock(), createElementBlock(Fragment, { key: 0 }, [ - createVNode(unref(Icon), { - icon: unref(variant).icon ?? "carbon:cube", - class: normalizeClass(["htw-w-5 htw-h-5 htw-flex-none", { - "htw-text-gray-500": !unref(variant).iconColor, - "bind-icon-color": unref(variant).iconColor - }]) - }, null, 8, ["icon", "class"]), - createTextVNode(" " + toDisplayString(unref(variant).title), 1) - ], 64)) : (openBlock(), createElementBlock(Fragment, { key: 1 }, [ - createTextVNode(" Select a variant... ") - ], 64)), - createVNode(unref(Icon), { - icon: "carbon:chevron-sort", - class: "htw-w-5 htw-h-5 htw-shrink-0 htw-ml-auto" - }) - ]), - unref(storyStore).currentVariant ? (openBlock(), createElementBlock("div", _hoisted_3$7, [ - createVNode(_sfc_main$i, { - variant: unref(storyStore).currentVariant, - story: unref(storyStore).currentStory - }, null, 8, ["variant", "story"]) - ])) : createCommentVNode("", true) - ])) : (openBlock(), createBlock(BaseSplitPane, { - key: 1, - "save-id": "story-single-main-split", - min: 5, - max: 40, - "default-split": 17 - }, { - first: withCtx(() => [ - createBaseVNode("div", _hoisted_4$5, [ - (openBlock(true), createElementBlock(Fragment, null, renderList(unref(storyStore).currentStory.variants, (v, index) => { - return openBlock(), createBlock(StoryVariantListItem, { - key: index, - variant: v - }, null, 8, ["variant"]); - }), 128)) - ]) - ]), - last: withCtx(() => [ - unref(storyStore).currentVariant ? (openBlock(), createElementBlock("div", _hoisted_5$2, [ - createVNode(_sfc_main$i, { - variant: unref(storyStore).currentVariant, - story: unref(storyStore).currentStory - }, null, 8, ["variant", "story"]) - ])) : createCommentVNode("", true) - ]), - _: 1 - })) - ], 64)); - }; - } -}); -const StoryVariantSingle = /* @__PURE__ */ _export_sfc(_sfc_main$h, [["__scopeId", "data-v-ddfc5b4f"]]); -const _hoisted_1$e = { class: "histoire-story-viewer htw-bg-gray-50 htw-h-full dark:htw-bg-gray-750" }; -const _sfc_main$g = /* @__PURE__ */ defineComponent({ - __name: "StoryViewer", - setup(__props) { - useCssVars((_ctx) => { - var _a; - return { - "663732b6": (_a = unref(variant)) == null ? void 0 : _a.iconColor - }; - }); - const storyStore = useStoryStore(); - const variant = computed(() => storyStore.currentVariant); - const isMenuOpened = ref(false); - function closeMenu() { - isMenuOpened.value = false; - } - watch(variant, () => { - isMenuOpened.value = false; - }); - return (_ctx, _cache) => { - return openBlock(), createElementBlock(Fragment, null, [ - createBaseVNode("div", _hoisted_1$e, [ - unref(storyStore).currentStory.layout.type === "grid" ? (openBlock(), createBlock(_sfc_main$p, { key: 0 })) : unref(storyStore).currentStory.layout.type === "single" ? (openBlock(), createBlock(StoryVariantSingle, { - key: 1, - onOpenVariantMenu: _cache[0] || (_cache[0] = ($event) => isMenuOpened.value = true) - })) : createCommentVNode("", true) - ]), - createVNode(_sfc_main$y, { - title: "Select a variant", - opened: isMenuOpened.value, - onClose: closeMenu - }, { - default: withCtx(() => [ - (openBlock(true), createElementBlock(Fragment, null, renderList(unref(storyStore).currentStory.variants, (v, index) => { - return openBlock(), createBlock(StoryVariantListItem, { - key: index, - variant: v - }, null, 8, ["variant"]); - }), 128)) - ]), - _: 1 - }, 8, ["opened"]) - ], 64); - }; - } -}); -const StoryViewer = /* @__PURE__ */ _export_sfc(_sfc_main$g, [["__scopeId", "data-v-6046525f"]]); -const _hoisted_1$d = { class: "htw-cursor-pointer htw-w-full htw-outline-none htw-px-2 htw-h-[27px] -htw-my-1 htw-border htw-border-solid htw-border-black/25 dark:htw-border-white/25 hover:htw-border-primary-500 dark:hover:htw-border-primary-500 htw-rounded-sm htw-flex htw-gap-2 htw-items-center htw-leading-normal" }; -const _hoisted_2$9 = { class: "htw-flex-1 htw-truncate" }; -const _hoisted_3$6 = { class: "htw-flex htw-flex-col htw-bg-gray-50 dark:htw-bg-gray-700" }; -const _hoisted_4$4 = ["onClick"]; -const _sfc_main$f = /* @__PURE__ */ defineComponent({ - __name: "BaseSelect", - props: { - modelValue: null, - options: null - }, - emits: ["update:modelValue", "select"], - setup(__props, { emit: emits }) { - const props = __props; - const formattedOptions = computed(() => { - if (Array.isArray(props.options)) { - return Object.fromEntries(props.options.map((value) => [value, value])); - } - return props.options; - }); - const selectedLabel = computed(() => formattedOptions.value[props.modelValue]); - function selectValue(value, hide) { - emits("update:modelValue", value); - emits("select", value); - hide(); - } - return (_ctx, _cache) => { - return openBlock(), createBlock(unref(Dropdown), { - class: "histoire-base-select", - "auto-size": "", - "auto-boundary-max-size": "" - }, { - popper: withCtx(({ hide }) => [ - createBaseVNode("div", _hoisted_3$6, [ - (openBlock(true), createElementBlock(Fragment, null, renderList(unref(formattedOptions), (label, value) => { - return openBlock(), createElementBlock("div", mergeProps({ ..._ctx.$attrs, class: null, style: null }, { - key: label, - class: ["htw-px-2 htw-py-1 htw-cursor-pointer hover:htw-bg-primary-100 dark:hover:htw-bg-primary-700", { - "htw-bg-primary-200 dark:htw-bg-primary-800": props.modelValue === value - }], - onClick: ($event) => selectValue(value, hide) - }), [ - renderSlot(_ctx.$slots, "option", { - label, - value - }, () => [ - createTextVNode(toDisplayString(label), 1) - ]) - ], 16, _hoisted_4$4); - }), 128)) - ]) - ]), - default: withCtx(() => [ - createBaseVNode("div", _hoisted_1$d, [ - createBaseVNode("div", _hoisted_2$9, [ - renderSlot(_ctx.$slots, "default", { label: unref(selectedLabel) }, () => [ - createTextVNode(toDisplayString(unref(selectedLabel)), 1) - ]) - ]), - createVNode(unref(Icon), { - icon: "carbon:chevron-sort", - class: "htw-w-4 htw-h-4 htw-flex-none htw-ml-auto" - }) - ]) - ]), - _: 3 - }); - }; - } -}); -const _hoisted_1$c = { class: "histoire-state-presets htw-flex htw-gap-2 htw-w-full htw-items-center" }; -const _hoisted_2$8 = ["onUpdate:modelValue"]; -const _hoisted_3$5 = { - key: 1, - class: "htw-flex htw-items-center htw-gap-2" -}; -const _hoisted_4$3 = { class: "htw-flex-1 htw-truncate" }; -const _hoisted_5$1 = { class: "htw-flex htw-gap-2 htw-items-center" }; -const _hoisted_6$1 = { class: "htw-flex-1 htw-truncate" }; -const _sfc_main$e = /* @__PURE__ */ defineComponent({ - __name: "StatePresets", - props: { - story: null, - variant: null - }, - setup(__props) { - const props = __props; - const DEFAULT_ID = "default"; - const saveId = computed(() => `${props.story.id}:${props.variant.id}`); - const omitKeys = ["_hPropDefs"]; - const defaultState = clone(omit(toRawDeep(props.variant.state), omitKeys)); - const selectedOption = useStorage( - `_histoire-presets/${saveId.value}/selected`, - DEFAULT_ID - ); - const presetStates = useStorage( - `_histoire-presets/${saveId.value}/states`, - /* @__PURE__ */ new Map() - ); - const presetsOptions = computed(() => { - const options = { [DEFAULT_ID]: "Initial state" }; - presetStates.value.forEach((value, key) => { - options[key] = value.label; - }); - return options; - }); - function resetState() { - selectedOption.value = DEFAULT_ID; - applyState(props.variant.state, clone(defaultState)); - } - function applyPreset(id) { - if (id === DEFAULT_ID) { - resetState(); - } else if (presetStates.value.has(id)) { - applyState(props.variant.state, clone(toRawDeep(presetStates.value.get(id).state))); - } - } - onMounted(() => { - if (selectedOption.value !== DEFAULT_ID) { - applyPreset(selectedOption.value); - } - }); - const input = ref(); - const select = ref(); - const canEdit = computed(() => selectedOption.value !== DEFAULT_ID); - const isEditing = ref(false); - async function createPreset() { - const id = new Date().getTime().toString(); - presetStates.value.set(id, { state: clone(omit(toRawDeep(props.variant.state), omitKeys)), label: "New preset" }); - selectedOption.value = id; - isEditing.value = true; - await nextTick(); - input.value.select(); - } - const savedNotif = ref(false); - const savedTimeout = useTimeoutFn(() => { - savedNotif.value = false; - }, 1e3); - async function savePreset() { - if (!canEdit.value) - return; - const preset = presetStates.value.get(selectedOption.value); - preset.state = clone(omit(toRawDeep(props.variant.state), omitKeys)); - savedNotif.value = true; - savedTimeout.start(); - } - function deletePreset(id) { - if (!confirm("Are you sure you want to delete this preset?")) { - return; - } - if (selectedOption.value === id) { - resetState(); - } - presetStates.value.delete(id); - } - async function startEditing() { - if (!canEdit.value) { - return; - } - isEditing.value = true; - await nextTick(); - input.value.select(); - } - function stopEditing() { - isEditing.value = false; - } - onClickOutside(select, stopEditing); - return (_ctx, _cache) => { - const _directive_tooltip = resolveDirective("tooltip"); - return openBlock(), createElementBlock("div", _hoisted_1$c, [ - createBaseVNode("div", { - ref_key: "select", - ref: select, - class: "htw-flex-1 htw-min-w-0" - }, [ - createVNode(_sfc_main$f, { - modelValue: unref(selectedOption), - "onUpdate:modelValue": _cache[2] || (_cache[2] = ($event) => isRef(selectedOption) ? selectedOption.value = $event : null), - options: unref(presetsOptions), - onDblclick: _cache[3] || (_cache[3] = ($event) => startEditing()), - onKeydown: [ - _cache[4] || (_cache[4] = withKeys(($event) => stopEditing(), ["enter"])), - _cache[5] || (_cache[5] = withKeys(($event) => stopEditing(), ["escape"])) - ], - onSelect: _cache[6] || (_cache[6] = (id) => applyPreset(id)) - }, { - default: withCtx(({ label }) => [ - isEditing.value ? withDirectives((openBlock(), createElementBlock("input", { - key: 0, - ref_key: "input", - ref: input, - "onUpdate:modelValue": ($event) => unref(presetStates).get(unref(selectedOption)).label = $event, - type: "text", - class: "htw-text-inherit htw-bg-transparent htw-w-full htw-h-full htw-outline-none", - onClick: _cache[0] || (_cache[0] = withModifiers(() => { - }, ["stop", "prevent"])) - }, null, 8, _hoisted_2$8)), [ - [vModelText, unref(presetStates).get(unref(selectedOption)).label] - ]) : (openBlock(), createElementBlock("div", _hoisted_3$5, [ - createBaseVNode("span", _hoisted_4$3, toDisplayString(label), 1), - unref(canEdit) ? withDirectives((openBlock(), createBlock(unref(Icon), { - key: 0, - icon: "carbon:edit", - class: "htw-flex-none htw-cursor-pointer htw-w-4 htw-h-4 hover:htw-text-primary-500 htw-opacity-50 hover:htw-opacity-100 dark:hover:htw-text-primary-400 htw-text-gray-900 dark:htw-text-gray-100", - onClick: _cache[1] || (_cache[1] = withModifiers(($event) => startEditing(), ["stop"])) - }, null, 512)), [ - [_directive_tooltip, "Rename this preset"] - ]) : createCommentVNode("", true) - ])) - ]), - option: withCtx(({ label, value }) => [ - createBaseVNode("div", _hoisted_5$1, [ - createBaseVNode("span", _hoisted_6$1, toDisplayString(label), 1), - value !== DEFAULT_ID ? withDirectives((openBlock(), createBlock(unref(Icon), { - key: 0, - icon: "carbon:trash-can", - class: "htw-flex-none htw-cursor-pointer htw-w-4 htw-h-4 hover:htw-text-primary-500 htw-opacity-50 hover:htw-opacity-100 dark:hover:htw-text-primary-400 htw-text-gray-900 dark:htw-text-gray-100", - onClick: withModifiers(($event) => deletePreset(value), ["stop"]) - }, null, 8, ["onClick"])), [ - [_directive_tooltip, "Delete this preset"] - ]) : createCommentVNode("", true) - ]) - ]), - _: 1 - }, 8, ["modelValue", "options"]) - ], 512), - withDirectives(createVNode(unref(Icon), { - icon: savedNotif.value ? "carbon:checkmark" : "carbon:save", - class: normalizeClass(["htw-cursor-pointer htw-w-4 htw-h-4 hover:htw-text-primary-500 dark:hover:htw-text-primary-400 htw-text-gray-900 dark:htw-text-gray-100", [ - unref(canEdit) ? "htw-opacity-50 hover:htw-opacity-100" : "htw-opacity-25 htw-pointer-events-none" - ]]), - onClick: _cache[7] || (_cache[7] = ($event) => savePreset()) - }, null, 8, ["icon", "class"]), [ - [_directive_tooltip, savedNotif.value ? "Saved!" : unref(canEdit) ? "Save to preset" : null] - ]), - withDirectives(createVNode(unref(Icon), { - icon: "carbon:add-alt", - class: "htw-cursor-pointer htw-w-4 htw-h-4 hover:htw-text-primary-500 htw-opacity-50 hover:htw-opacity-100 dark:hover:htw-text-primary-400 htw-text-gray-900 dark:htw-text-gray-100", - onClick: _cache[8] || (_cache[8] = ($event) => createPreset()) - }, null, 512), [ - [_directive_tooltip, "Create new preset"] - ]), - withDirectives(createVNode(unref(Icon), { - icon: "carbon:reset", - class: "htw-cursor-pointer htw-w-4 htw-h-4 hover:htw-text-primary-500 htw-opacity-50 hover:htw-opacity-100 dark:hover:htw-text-primary-400 htw-text-gray-900 dark:htw-text-gray-100", - onClick: _cache[9] || (_cache[9] = ($event) => resetState()) - }, null, 512), [ - [_directive_tooltip, "Reset to initial state"] - ]) - ]); - }; - } -}); -const _sfc_main$d = /* @__PURE__ */ defineComponent({ - __name: "ControlsComponentPropItem", - props: { - variant: null, - component: null, - definition: null - }, - setup(__props) { - const props = __props; - const comp = computed(() => { - var _a; - switch ((_a = props.definition.types) == null ? void 0 : _a[0]) { - case "string": - return Wg; - case "number": - return jg; - case "boolean": - return zg; - case "object": - default: - return Zg; - } - }); - const model = computed({ - get: () => { - var _a; - return (_a = props.variant.state._hPropState[props.component.index]) == null ? void 0 : _a[props.definition.name]; - }, - set: (value) => { - if (!props.variant.state._hPropState[props.component.index]) { - props.variant.state._hPropState[props.component.index] = {}; - } - props.variant.state._hPropState[props.component.index][props.definition.name] = value; - } - }); - function reset() { - if (props.variant.state._hPropState[props.component.index]) { - delete props.variant.state._hPropState[props.component.index][props.definition.name]; - } - } - const canReset = computed(() => { - var _a, _b; - return ((_b = (_a = props.variant.state) == null ? void 0 : _a._hPropState) == null ? void 0 : _b[props.component.index]) && props.definition.name in props.variant.state._hPropState[props.component.index]; - }); - return (_ctx, _cache) => { - const _directive_tooltip = resolveDirective("tooltip"); - return unref(comp) ? (openBlock(), createBlock(resolveDynamicComponent(unref(comp)), { - key: 0, - modelValue: unref(model), - "onUpdate:modelValue": _cache[1] || (_cache[1] = ($event) => isRef(model) ? model.value = $event : null), - class: "histoire-controls-component-prop-item", - title: `${__props.definition.name}${unref(canReset) ? " *" : ""}` - }, { - actions: withCtx(() => [ - withDirectives(createVNode(unref(Icon), { - icon: "carbon:erase", - class: normalizeClass(["htw-cursor-pointer htw-w-4 htw-h-4 hover:htw-text-primary-500 dark:hover:htw-text-primary-400 htw-text-gray-900 dark:htw-text-gray-100", [ - unref(canReset) ? "htw-opacity-50 hover:htw-opacity-100" : "htw-opacity-25 htw-pointer-events-none" - ]]), - onClick: _cache[0] || (_cache[0] = withModifiers(($event) => reset(), ["stop"])) - }, null, 8, ["class"]), [ - [_directive_tooltip, "Remove override"] - ]) - ]), - _: 1 - }, 8, ["modelValue", "title"])) : createCommentVNode("", true); - }; - } -}); -const _hoisted_1$b = { class: "histoire-controls-component-props" }; -const _hoisted_2$7 = { class: "htw-font-mono htw-p-2 htw-flex htw-items-center htw-gap-1" }; -const _hoisted_3$4 = /* @__PURE__ */ createBaseVNode("span", { class: "htw-opacity-30" }, "<", -1); -const _hoisted_4$2 = /* @__PURE__ */ createBaseVNode("span", { class: "htw-opacity-30" }, ">", -1); -const _sfc_main$c = /* @__PURE__ */ defineComponent({ - __name: "ControlsComponentProps", - props: { - variant: null, - definition: null - }, - setup(__props) { - return (_ctx, _cache) => { - const _directive_tooltip = resolveDirective("tooltip"); - return openBlock(), createElementBlock("div", _hoisted_1$b, [ - createBaseVNode("div", _hoisted_2$7, [ - withDirectives(createVNode(unref(Icon), { - icon: "carbon:flash", - class: "htw-w-4 htw-h-4 htw-text-primary-500 htw-flex-none" - }, null, 512), [ - [_directive_tooltip, "Auto-detected props"] - ]), - createBaseVNode("div", null, [ - _hoisted_3$4, - createTextVNode(toDisplayString(__props.definition.name), 1), - _hoisted_4$2 - ]) - ]), - (openBlock(true), createElementBlock(Fragment, null, renderList(__props.definition.props, (prop) => { - return openBlock(), createBlock(_sfc_main$d, { - key: prop.name, - variant: __props.variant, - component: __props.definition, - definition: prop - }, null, 8, ["variant", "component", "definition"]); - }), 128)) - ]); - }; - } -}); -const _hoisted_1$a = { - "data-test-id": "story-controls", - class: "histoire-story-controls htw-flex htw-flex-col htw-divide-y htw-divide-gray-100 dark:htw-divide-gray-750" -}; -const _hoisted_2$6 = { class: "htw-h-9 htw-flex-none htw-px-2 htw-flex htw-items-center" }; -const _hoisted_3$3 = /* @__PURE__ */ createBaseVNode("span", null, "No controls available for this story", -1); -const _hoisted_4$1 = { key: 2 }; -const _sfc_main$b = /* @__PURE__ */ defineComponent({ - __name: "StoryControls", - props: { - variant: { - type: Object, - required: true - }, - story: { - type: Object, - required: true - } - }, - setup(__props) { - const props = __props; - const ready = ref(false); - watch(() => props.variant, () => { - ready.value = false; - }); - const hasCustomControls = computed(() => props.variant.slots().controls || props.story.slots().controls); - return (_ctx, _cache) => { - var _a, _b, _c, _d; - return openBlock(), createElementBlock("div", _hoisted_1$a, [ - createBaseVNode("div", _hoisted_2$6, [ - ready.value || !unref(hasCustomControls) ? (openBlock(), createBlock(_sfc_main$e, { - key: 0, - story: __props.story, - variant: __props.variant - }, null, 8, ["story", "variant"])) : createCommentVNode("", true) - ]), - unref(hasCustomControls) ? (openBlock(), createBlock(_sfc_main$x, { - key: `${__props.story.id}-${__props.variant.id}`, - "slot-name": "controls", - variant: __props.variant, - story: __props.story, - class: "__histoire-render-custom-controls htw-flex-none", - onReady: _cache[0] || (_cache[0] = ($event) => ready.value = true) - }, null, 8, ["variant", "story"])) : !((_b = (_a = __props.variant.state) == null ? void 0 : _a._hPropDefs) == null ? void 0 : _b.length) ? (openBlock(), createBlock(BaseEmpty, { key: 1 }, { - default: withCtx(() => [ - createVNode(unref(Icon), { - icon: "carbon:audio-console", - class: "htw-w-8 htw-h-8 htw-opacity-50 htw-mb-6" - }), - _hoisted_3$3 - ]), - _: 1 - })) : createCommentVNode("", true), - ((_d = (_c = __props.variant.state) == null ? void 0 : _c._hPropDefs) == null ? void 0 : _d.length) ? (openBlock(), createElementBlock("div", _hoisted_4$1, [ - (openBlock(true), createElementBlock(Fragment, null, renderList(__props.variant.state._hPropDefs, (def, index) => { - return openBlock(), createBlock(_sfc_main$c, { - key: index, - variant: __props.variant, - definition: def, - class: "htw-flex-none htw-my-2" - }, null, 8, ["variant", "definition"]); - }), 128)) - ])) : createCommentVNode("", true) - ]); - }; - } -}); -const markdownFiles = reactive({}); -const _hoisted_1$9 = ["innerHTML"]; -function useStoryDoc(story) { - const renderedDoc = ref(""); - watchEffect(async () => { - var _a; - const mdKey = story.value.file.filePath.replace(/\.(\w*?)$/, ".md"); - if (markdownFiles[mdKey]) { - const md = await markdownFiles[mdKey](); - renderedDoc.value = md.html; - return; - } - let comp = (_a = story.value.file) == null ? void 0 : _a.component; - if (comp) { - if (comp.__asyncResolved) { - comp = comp.__asyncResolved; - } else if (comp.__asyncLoader) { - comp = await comp.__asyncLoader(); - } else if (typeof comp === "function") { - try { - comp = await comp(); - } catch (e) { - } - } - if (comp == null ? void 0 : comp.default) { - comp = comp.default; - } - renderedDoc.value = comp.doc; - } - }); - return { - renderedDoc - }; -} -const _sfc_main$a = /* @__PURE__ */ defineComponent({ - __name: "StoryDocs", - props: { - story: { - type: Object, - required: true - }, - standalone: { - type: Boolean, - default: false - } - }, - emits: ["scroll-top"], - setup(__props, { emit }) { - const props = __props; - const { story } = toRefs(props); - const { renderedDoc } = useStoryDoc(story); - const router = useRouter(); - const fakeHost = `http://a.com`; - function onClick(e) { - const link = e.target.closest("a"); - if (link && link.getAttribute("data-route") && !e.ctrlKey && !e.shiftKey && !e.altKey && !e.metaKey && link.target !== `_blank`) { - e.preventDefault(); - const url = new URL(link.href, fakeHost); - const targetHref = url.pathname + url.search + url.hash; - router.push(targetHref); - } - } - function getHash() { - const hash = location.hash; - if (histoireConfig.routerMode === "hash") { - const index = hash.indexOf("#", 1); - if (index !== -1) { - return hash.slice(index); - } else { - return void 0; - } - } - return hash; - } - async function scrollToAnchor() { - await nextTick(); - const hash = getHash(); - if (hash) { - const anchor = document.querySelector(decodeURIComponent(hash)); - if (anchor) { - anchor.scrollIntoView(); - return; - } - } - emit("scroll-top"); - } - watch(renderedDoc, () => { - scrollToAnchor(); - }, { - immediate: true - }); - const renderedEl = ref(); - const route = useRoute(); - async function patchAnchorLinks() { - await nextTick(); - if (histoireConfig.routerMode === "hash" && renderedEl.value) { - const links = renderedEl.value.querySelectorAll("a.header-anchor"); - for (const link of links) { - const href = link.getAttribute("href"); - if (href) { - link.setAttribute("href", `#${route.path + href}`); - } - } - } - } - watch(renderedDoc, () => { - patchAnchorLinks(); - }, { - immediate: true - }); - computed(() => { - var _a, _b; - return ((_a = story.value.file) == null ? void 0 : _a.docsFilePath) ?? (props.standalone && ((_b = story.value.file) == null ? void 0 : _b.filePath)); - }); - return (_ctx, _cache) => { - return openBlock(), createElementBlock("div", { - class: "histoire-story-docs", - onClickCapture: onClick - }, [ - createCommentVNode("", true), - !unref(renderedDoc) ? (openBlock(), createBlock(BaseEmpty, { key: 1 }, { - default: withCtx(() => [ - createVNode(unref(Icon), { - icon: "carbon:document-unknown", - class: "htw-w-8 htw-h-8 htw-opacity-50 htw-mb-6" - }), - createTextVNode(" No documentation available ") - ]), - _: 1 - })) : (openBlock(), createElementBlock("div", { - key: 2, - ref_key: "renderedEl", - ref: renderedEl, - class: "htw-prose dark:htw-prose-invert htw-p-4 htw-max-w-none", - "data-test-id": "story-docs", - innerHTML: unref(renderedDoc) - }, null, 8, _hoisted_1$9)) - ], 32); - }; - } -}); -const _hoisted_1$8 = { - key: 0, - class: "htw-text-xs htw-opacity-50 htw-truncate" -}; -const _hoisted_2$5 = { class: "htw-overflow-auto htw-max-w-[400px] htw-max-h-[400px]" }; -const _hoisted_3$2 = { class: "htw-p-4" }; -const _sfc_main$9 = /* @__PURE__ */ defineComponent({ - __name: "StoryEvent", - props: { - event: null - }, - setup(__props) { - const props = __props; - const formattedArgument = computed(() => { - switch (typeof props.event.argument) { - case "string": - return `"${props.event.argument}"`; - case "object": - return `{ ${Object.keys(props.event.argument).map((key) => `${key}: ${props.event.argument[key]}`).join(", ")} }`; - default: - return props.event.argument; - } - }); - return (_ctx, _cache) => { - const _component_VDropdown = resolveComponent("VDropdown"); - return openBlock(), createBlock(_component_VDropdown, { - class: "histoire-story-event htw-group", - placement: "right", - "data-test-id": "event-item" - }, { - default: withCtx(({ shown }) => [ - createBaseVNode("div", { - class: normalizeClass(["group-hover:htw-bg-primary-100 dark:group-hover:htw-bg-primary-700 htw-cursor-pointer htw-py-2 htw-px-4 htw-flex htw-items-baseline htw-gap-1 htw-leading-normal", [ - shown ? "htw-bg-primary-50 dark:htw-bg-primary-600" : "group-odd:htw-bg-gray-100/50 dark:group-odd:htw-bg-gray-750/40" - ]]) - }, [ - createBaseVNode("span", { - class: normalizeClass({ - "htw-text-primary-500": shown - }) - }, toDisplayString(__props.event.name), 3), - __props.event.argument ? (openBlock(), createElementBlock("span", _hoisted_1$8, toDisplayString(unref(formattedArgument)), 1)) : createCommentVNode("", true) - ], 2) - ]), - popper: withCtx(() => [ - createBaseVNode("div", _hoisted_2$5, [ - createBaseVNode("pre", _hoisted_3$2, toDisplayString(__props.event.argument), 1) - ]) - ]), - _: 1 - }); - }; - } -}); -const _hoisted_1$7 = { key: 1 }; -const _sfc_main$8 = /* @__PURE__ */ defineComponent({ - __name: "StoryEvents", - setup(__props) { - const eventsStore = useEventsStore(); - const hasEvents = computed(() => eventsStore.events.length); - onMounted(resetUnseen); - watch(() => eventsStore.unseen, resetUnseen); - async function resetUnseen() { - if (eventsStore.unseen > 0) { - eventsStore.unseen = 0; - } - await nextTick(); - eventsElement.value.scrollTo({ top: eventsElement.value.scrollHeight }); - } - const eventsElement = ref(); - return (_ctx, _cache) => { - return openBlock(), createElementBlock("div", { - ref_key: "eventsElement", - ref: eventsElement, - class: "histoire-story-events" - }, [ - !unref(hasEvents) ? (openBlock(), createBlock(BaseEmpty, { key: 0 }, { - default: withCtx(() => [ - createVNode(unref(Icon), { - icon: "carbon:event-schedule", - class: "htw-w-8 htw-h-8 htw-opacity-50 htw-mb-6" - }), - createTextVNode(" No event fired ") - ]), - _: 1 - })) : (openBlock(), createElementBlock("div", _hoisted_1$7, [ - (openBlock(true), createElementBlock(Fragment, null, renderList(unref(eventsStore).events, (event, key) => { - return openBlock(), createBlock(_sfc_main$9, { - key, - event - }, null, 8, ["event"]); - }), 128)) - ])) - ], 512); - }; - } -}); -const _withScopeId = (n) => (pushScopeId("data-v-1bdf9905"), n = n(), popScopeId(), n); -const _hoisted_1$6 = { class: "histoire-story-source-code htw-bg-gray-50 dark:htw-bg-gray-750 htw-h-full htw-overflow-hidden htw-flex htw-flex-col" }; -const _hoisted_2$4 = { - key: 0, - class: "htw-h-10 htw-flex-none htw-border-b htw-border-solid htw-border-gray-500/5 htw-px-4 htw-flex htw-items-center htw-gap-2" -}; -const _hoisted_3$1 = /* @__PURE__ */ _withScopeId(() => /* @__PURE__ */ createBaseVNode("div", { class: "htw-text-gray-900 dark:htw-text-gray-100" }, " Source ", -1)); -const _hoisted_4 = /* @__PURE__ */ _withScopeId(() => /* @__PURE__ */ createBaseVNode("div", { class: "htw-flex-1" }, null, -1)); -const _hoisted_5 = { class: "htw-flex htw-flex-none htw-gap-px htw-h-full htw-py-2" }; -const _hoisted_6 = { - key: 1, - class: "htw-text-red-500 htw-h-full htw-p-2 htw-overflow-auto htw-font-mono htw-text-sm" -}; -const _hoisted_7 = /* @__PURE__ */ _withScopeId(() => /* @__PURE__ */ createBaseVNode("span", null, "Not available", -1)); -const _hoisted_8 = ["value"]; -const _hoisted_9 = ["innerHTML"]; -const _sfc_main$7 = /* @__PURE__ */ defineComponent({ - __name: "StorySourceCode", - props: { - story: null, - variant: null - }, - setup(__props) { - const props = __props; - const generateSourceCodeFn = ref(null); - watchEffect(async () => { - var _a; - const clientPlugin = clientSupportPlugins[(_a = props.story.file) == null ? void 0 : _a.supportPluginId]; - if (clientPlugin) { - const pluginModule = await clientPlugin(); - generateSourceCodeFn.value = markRaw(pluginModule.generateSourceCode); - } - }); - const highlighter = shallowRef(); - const dynamicSourceCode = ref(""); - const error = ref(null); - watch(() => [props.variant, generateSourceCodeFn.value], async () => { - var _a, _b, _c, _d; - if (!generateSourceCodeFn.value) - return; - error.value = null; - dynamicSourceCode.value = ""; - try { - if (props.variant.source) { - dynamicSourceCode.value = props.variant.source; - } else if ((_b = (_a = props.variant).slots) == null ? void 0 : _b.call(_a).source) { - const source = (_d = (_c = props.variant).slots) == null ? void 0 : _d.call(_c).source()[0].children; - if (source) { - dynamicSourceCode.value = await unindent(source); - } - } else { - dynamicSourceCode.value = await generateSourceCodeFn.value(props.variant); - } - } catch (e) { - console.error(e); - error.value = e.message; - } - if (!dynamicSourceCode.value) { - displayedSource.value = "static"; - } - }, { - deep: true, - immediate: true - }); - const staticSourceCode = ref(""); - watch(() => { - var _a, _b; - return [props.story, (_b = (_a = props.story) == null ? void 0 : _a.file) == null ? void 0 : _b.source]; - }, async () => { - var _a; - staticSourceCode.value = ""; - const sourceLoader = (_a = props.story.file) == null ? void 0 : _a.source; - if (sourceLoader) { - staticSourceCode.value = (await sourceLoader()).default; - } - }, { - immediate: true - }); - const displayedSource = ref("dynamic"); - const displayedSourceCode = computed(() => { - if (displayedSource.value === "dynamic") { - return dynamicSourceCode.value; - } - return staticSourceCode.value; - }); - onMounted(async () => { - highlighter.value = await getHighlighter({ - langs: [ - "html", - "jsx" - ], - themes: [ - "github-light", - "github-dark" - ] - }); - }); - const sourceHtml = computed(() => { - var _a; - return displayedSourceCode.value ? (_a = highlighter.value) == null ? void 0 : _a.codeToHtml(displayedSourceCode.value, { - lang: "html", - theme: isDark.value ? "github-dark" : "github-light" - }) : ""; - }); - let lastScroll = 0; - watch(() => props.variant, () => { - lastScroll = 0; - }); - const scroller = ref(); - function onScroll(event) { - if (sourceHtml.value) { - lastScroll = event.target.scrollTop; - } - } - watch(sourceHtml, async () => { - await nextTick(); - if (scroller.value) { - scroller.value.scrollTop = lastScroll; - } - }); - return (_ctx, _cache) => { - const _directive_tooltip = resolveDirective("tooltip"); - return openBlock(), createElementBlock("div", _hoisted_1$6, [ - !error.value ? (openBlock(), createElementBlock("div", _hoisted_2$4, [ - _hoisted_3$1, - _hoisted_4, - createBaseVNode("div", _hoisted_5, [ - withDirectives((openBlock(), createElementBlock("button", { - class: normalizeClass(["htw-flex htw-items-center htw-gap-1 htw-h-full htw-px-1 htw-bg-gray-500/10 htw-rounded-l htw-transition-all htw-ease-[cubic-bezier(0,1,.6,1)] htw-duration-300 htw-overflow-hidden", [ - displayedSource.value !== "dynamic" ? "htw-max-w-6 htw-opacity-70" : "htw-max-w-[82px] htw-text-primary-600 dark:htw-text-primary-400", - dynamicSourceCode.value ? "htw-cursor-pointer hover:htw-bg-gray-500/30 active:htw-bg-gray-600/50" : "htw-opacity-50" - ]]), - onClick: _cache[0] || (_cache[0] = ($event) => dynamicSourceCode.value && (displayedSource.value = "dynamic")) - }, [ - createVNode(unref(Icon), { - icon: "carbon:flash", - class: "htw-w-4 htw-h-4 htw-flex-none" - }), - createBaseVNode("span", { - class: normalizeClass(["transition-opacity duration-300", { - "opacity-0": displayedSource.value !== "dynamic" - }]) - }, " Dynamic ", 2) - ], 2)), [ - [_directive_tooltip, !dynamicSourceCode.value ? "Dynamic source code is not available" : displayedSource.value !== "dynamic" ? "Switch to dynamic source" : null] - ]), - withDirectives((openBlock(), createElementBlock("button", { - class: normalizeClass(["htw-flex htw-items-center htw-gap-1 htw-h-full htw-px-1 htw-bg-gray-500/10 htw-rounded-r htw-transition-all htw-ease-[cubic-bezier(0,1,.6,1)] htw-duration-300 htw-overflow-hidden", [ - displayedSource.value !== "static" ? "htw-max-w-6 htw-opacity-70" : "htw-max-w-[63px] htw-text-primary-600 dark:htw-text-primary-400", - staticSourceCode.value ? "htw-cursor-pointer hover:htw-bg-gray-500/30 active:htw-bg-gray-600/50" : "htw-opacity-50" - ]]), - onClick: _cache[1] || (_cache[1] = ($event) => staticSourceCode.value && (displayedSource.value = "static")) - }, [ - createVNode(unref(Icon), { - icon: "carbon:document", - class: "htw-w-4 htw-h-4 htw-flex-none" - }), - createBaseVNode("span", { - class: normalizeClass(["transition-opacity duration-300", { - "opacity-0": displayedSource.value !== "static" - }]) - }, " Static ", 2) - ], 2)), [ - [_directive_tooltip, !staticSourceCode.value ? "Static source code is not available" : displayedSource.value !== "static" ? "Switch to static source" : null] - ]) - ]), - createVNode(unref(Xg), { - content: unref(displayedSourceCode), - class: "htw-flex-none" - }, null, 8, ["content"]) - ])) : createCommentVNode("", true), - error.value ? (openBlock(), createElementBlock("div", _hoisted_6, " Error: " + toDisplayString(error.value), 1)) : !unref(displayedSourceCode) ? (openBlock(), createBlock(BaseEmpty, { key: 2 }, { - default: withCtx(() => [ - createVNode(unref(Icon), { - icon: "carbon:code-hide", - class: "htw-w-8 htw-h-8 htw-opacity-50 htw-mb-6" - }), - _hoisted_7 - ]), - _: 1 - })) : !unref(sourceHtml) ? (openBlock(), createElementBlock("textarea", { - key: 3, - ref_key: "scroller", - ref: scroller, - class: "__histoire-code-placeholder htw-w-full htw-h-full htw-p-4 htw-outline-none htw-bg-transparent htw-resize-none htw-m-0", - value: unref(displayedSourceCode), - readonly: "", - "data-test-id": "story-source-code", - onScroll - }, null, 40, _hoisted_8)) : (openBlock(), createElementBlock("div", { - key: 4, - ref_key: "scroller", - ref: scroller, - class: "htw-w-full htw-h-full htw-overflow-auto", - "data-test-id": "story-source-code", - onScroll - }, [ - createBaseVNode("div", { - class: "__histoire-code htw-p-4 htw-w-fit", - innerHTML: unref(sourceHtml) - }, null, 8, _hoisted_9) - ], 544)) - ]); - }; - } -}); -const StorySourceCode = /* @__PURE__ */ _export_sfc(_sfc_main$7, [["__scopeId", "data-v-1bdf9905"]]); -const _sfc_main$6 = defineComponent({ - inheritAttrs: false, - props: { - exact: { - type: Boolean, - default: false - }, - matched: { - type: Boolean, - default: null - } - } -}); -const _hoisted_1$5 = ["href", "onClick"]; -const _hoisted_2$3 = { - key: 0, - class: "htw-absolute htw-bottom-0 htw-left-0 htw-w-full htw-h-[2px] htw-bg-primary-500 dark:htw-bg-primary-400" -}; -function _sfc_render$2(_ctx, _cache, $props, $setup, $data, $options) { - const _component_router_link = resolveComponent("router-link"); - return openBlock(), createBlock(_component_router_link, mergeProps({ class: "histoire-base-tab" }, _ctx.$attrs, { custom: "" }), { - default: withCtx(({ isActive, isExactActive, href, navigate }) => [ - createBaseVNode("a", mergeProps(_ctx.$attrs, { - href, - class: ["htw-px-4 htw-h-full htw-inline-flex htw-items-center hover:htw-bg-primary-50 dark:hover:htw-bg-primary-900 htw-relative htw-text-gray-900 dark:htw-text-gray-100", { - "htw-text-primary-500 dark:htw-text-primary-400": _ctx.matched != null ? _ctx.matched : _ctx.exact && isExactActive || !_ctx.exact && isActive - }], - onClick: navigate - }), [ - renderSlot(_ctx.$slots, "default"), - createVNode(Transition, { name: "__histoire-scale-x" }, { - default: withCtx(() => [ - (_ctx.matched != null ? _ctx.matched : _ctx.exact && isExactActive || !_ctx.exact && isActive) ? (openBlock(), createElementBlock("div", _hoisted_2$3)) : createCommentVNode("", true) - ]), - _: 2 - }, 1024) - ], 16, _hoisted_1$5) - ]), - _: 3 - }, 16); -} -const BaseTab = /* @__PURE__ */ _export_sfc(_sfc_main$6, [["render", _sfc_render$2]]); -const _hoisted_1$4 = { - role: "button", - class: "htw-cursor-pointer hover:htw-bg-primary-50 dark:hover:htw-bg-primary-900 htw-w-8 htw-h-full htw-flex htw-items-center htw-justify-center htw-absolute htw-top-0 htw-right-0" -}; -const _hoisted_2$2 = { class: "htw-flex htw-flex-col htw-items-stretch" }; -const _sfc_main$5 = /* @__PURE__ */ defineComponent({ - __name: "BaseOverflowMenu", - setup(__props) { - const overflowButtonWidth = 32; - const el = ref(); - const availableWidth = ref(0); - useResizeObserver(el, (entries) => { - const containerWidth = entries[0].contentRect.width; - availableWidth.value = containerWidth - overflowButtonWidth; - }); - const children = ref(/* @__PURE__ */ new Map()); - const visibleChildrenCount = computed(() => { - let width = 0; - const c = [...children.value.values()].sort((a, b) => a.index - b.index); - for (let i = 0; i < c.length; i++) { - width += c[i].width; - if (width > availableWidth.value) { - return i; - } - } - return c.length; - }); - const ChildWrapper = { - name: "ChildWrapper", - props: ["index"], - setup(props, { slots }) { - const el2 = ref(); - const state = reactive({ width: 0, index: props.index }); - useResizeObserver(el2, (entries) => { - const width = entries[0].contentRect.width; - if (!children.value.has(el2.value)) { - children.value.set(el2.value, state); - } - state.width = width; - }); - onBeforeUnmount(() => { - children.value.delete(el2.value); - }); - const visible = computed(() => visibleChildrenCount.value > state.index); - return () => h("div", { ref: el2, style: { visibility: visible.value ? "visible" : "hidden" } }, slots.default()); - } - }; - const ChildrenRender = (props, { slots }) => { - const [fragment] = slots.default(); - return fragment.children.map((vnode, index) => h(ChildWrapper, { index }, () => [vnode])); - }; - const ChildrenSlice = (props, { slots }) => { - const [fragment] = slots.default(); - return fragment.children.slice(props.start, props.end); - }; - return (_ctx, _cache) => { - const _component_VDropdown = resolveComponent("VDropdown"); - return openBlock(), createElementBlock("div", { - ref_key: "el", - ref: el, - class: "histoire-base-overflow-menu htw-flex htw-overflow-hidden htw-relative" - }, [ - createVNode(ChildrenRender, null, { - default: withCtx(() => [ - renderSlot(_ctx.$slots, "default") - ]), - _: 3 - }), - unref(visibleChildrenCount) < children.value.size ? (openBlock(), createBlock(_component_VDropdown, { key: 0 }, { - popper: withCtx(() => [ - createBaseVNode("div", _hoisted_2$2, [ - createVNode(ChildrenSlice, { start: unref(visibleChildrenCount) }, { - default: withCtx(() => [ - renderSlot(_ctx.$slots, "overflow") - ]), - _: 3 - }, 8, ["start"]) - ]) - ]), - default: withCtx(() => [ - createBaseVNode("div", _hoisted_1$4, [ - createVNode(unref(Icon), { - icon: "carbon:caret-down", - class: "htw-w-4 htw-h-4 htw-opacity-50 group-hover:htw-opacity-100" - }) - ]) - ]), - _: 3 - })) : createCommentVNode("", true) - ], 512); - }; - } -}); -const _sfc_main$4 = defineComponent({ - inheritAttrs: false, - props: { - exact: { - type: Boolean, - default: false - }, - matched: { - type: Boolean, - default: null - } - } -}); -const _hoisted_1$3 = ["href", "onClick"]; -const _hoisted_2$1 = { - key: 0, - class: "htw-absolute htw-top-0 htw-left-0 htw-h-full htw-w-[2px] htw-bg-primary-500 dark:htw-bg-primary-400" -}; -function _sfc_render$1(_ctx, _cache, $props, $setup, $data, $options) { - const _component_router_link = resolveComponent("router-link"); - return openBlock(), createBlock(_component_router_link, mergeProps({ class: "histoire-base-overflow-tab" }, _ctx.$attrs, { custom: "" }), { - default: withCtx(({ isActive, isExactActive, href, navigate }) => [ - createBaseVNode("a", mergeProps(_ctx.$attrs, { - href, - class: ["htw-px-4 htw-h-10 htw-min-w-[150px] htw-inline-flex htw-items-center hover:htw-bg-primary-50 dark:hover:htw-bg-primary-900 htw-relative htw-text-gray-900 dark:htw-text-gray-100", { - "htw-text-primary-500 dark:htw-text-primary-400": _ctx.matched != null ? _ctx.matched : _ctx.exact && isExactActive || !_ctx.exact && isActive - }], - onClick: navigate - }), [ - renderSlot(_ctx.$slots, "default"), - createVNode(Transition, { name: "__histoire-scale-y" }, { - default: withCtx(() => [ - (_ctx.matched != null ? _ctx.matched : _ctx.exact && isExactActive || !_ctx.exact && isActive) ? (openBlock(), createElementBlock("div", _hoisted_2$1)) : createCommentVNode("", true) - ]), - _: 2 - }, 1024) - ], 16, _hoisted_1$3) - ]), - _: 3 - }, 16); -} -const BaseOverflowTab = /* @__PURE__ */ _export_sfc(_sfc_main$4, [["render", _sfc_render$1]]); -const _sfc_main$3 = {}; -const _hoisted_1$2 = { class: "histoire-base-tag htw-text-center htw-text-xs htw-mx-1 htw-px-0.5 htw-h-4 htw-uppercase htw-min-w-4 htw-rounded-full htw-bg-primary-500 htw-text-white dark:htw-text-black" }; -function _sfc_render(_ctx, _cache) { - return openBlock(), createElementBlock("span", _hoisted_1$2, [ - renderSlot(_ctx.$slots, "default") - ]); -} -const BaseTag = /* @__PURE__ */ _export_sfc(_sfc_main$3, [["render", _sfc_render]]); -const _sfc_main$2 = /* @__PURE__ */ defineComponent({ - __name: "PaneTabs", - props: { - story: null, - variant: null - }, - setup(__props) { - const props = __props; - const { story } = toRefs(props); - const { renderedDoc } = useStoryDoc(story); - const eventsStore = useEventsStore(); - const hasEvents = computed(() => eventsStore.events.length); - return (_ctx, _cache) => { - return openBlock(), createBlock(_sfc_main$5, { class: "histoire-pane-tabs htw-h-10 htw-flex-none htw-border-b htw-border-gray-100 dark:htw-border-gray-750" }, { - overflow: withCtx(() => [ - createVNode(BaseOverflowTab, { - to: { ..._ctx.$route, query: { ..._ctx.$route.query, tab: "" } }, - matched: !_ctx.$route.query.tab - }, { - default: withCtx(() => [ - createTextVNode(" Controls ") - ]), - _: 1 - }, 8, ["to", "matched"]), - createVNode(BaseOverflowTab, { - to: { ..._ctx.$route, query: { ..._ctx.$route.query, tab: "docs" } }, - matched: _ctx.$route.query.tab === "docs", - class: normalizeClass({ - "opacity-50": !unref(renderedDoc) - }) - }, { - default: withCtx(() => [ - createTextVNode(" Docs ") - ]), - _: 1 - }, 8, ["to", "matched", "class"]), - createVNode(BaseOverflowTab, { - to: { ..._ctx.$route, query: { ..._ctx.$route.query, tab: "events" } }, - matched: _ctx.$route.query.tab === "events", - class: normalizeClass({ - "htw-opacity-50": !unref(hasEvents) - }) - }, { - default: withCtx(() => [ - createTextVNode(" Events "), - unref(eventsStore).unseen ? (openBlock(), createBlock(BaseTag, { key: 0 }, { - default: withCtx(() => [ - createTextVNode(toDisplayString(unref(eventsStore).unseen <= 99 ? unref(eventsStore).unseen : "99+"), 1) - ]), - _: 1 - })) : createCommentVNode("", true) - ]), - _: 1 - }, 8, ["to", "matched", "class"]) - ]), - default: withCtx(() => [ - createVNode(BaseTab, { - to: { ..._ctx.$route, query: { ..._ctx.$route.query, tab: "" } }, - matched: !_ctx.$route.query.tab - }, { - default: withCtx(() => [ - createTextVNode(" Controls ") - ]), - _: 1 - }, 8, ["to", "matched"]), - createVNode(BaseTab, { - to: { ..._ctx.$route, query: { ..._ctx.$route.query, tab: "docs" } }, - matched: _ctx.$route.query.tab === "docs", - class: normalizeClass({ - "htw-opacity-50": !unref(renderedDoc) - }) - }, { - default: withCtx(() => [ - createTextVNode(" Docs ") - ]), - _: 1 - }, 8, ["to", "matched", "class"]), - createVNode(BaseTab, { - to: { ..._ctx.$route, query: { ..._ctx.$route.query, tab: "events" } }, - matched: _ctx.$route.query.tab === "events", - class: normalizeClass({ - "htw-opacity-50": !unref(hasEvents) - }) - }, { - default: withCtx(() => [ - createTextVNode(" Events "), - unref(eventsStore).unseen ? (openBlock(), createBlock(BaseTag, { key: 0 }, { - default: withCtx(() => [ - createTextVNode(toDisplayString(unref(eventsStore).unseen <= 99 ? unref(eventsStore).unseen : "99+"), 1) - ]), - _: 1 - })) : createCommentVNode("", true) - ]), - _: 1 - }, 8, ["to", "matched", "class"]) - ]), - _: 1 - }); - }; - } -}); -const _hoisted_1$1 = /* @__PURE__ */ createBaseVNode("span", null, "Select a variant", -1); -const _hoisted_2 = /* @__PURE__ */ createBaseVNode("span", null, "Loading...", -1); -const _hoisted_3 = { class: "htw-flex htw-flex-col htw-h-full" }; -const _sfc_main$1 = /* @__PURE__ */ defineComponent({ - __name: "StorySidePanel", - setup(__props) { - const storyStore = useStoryStore(); - const route = useRoute(); - const panelContentComponent = computed(() => { - switch (route.query.tab) { - case "docs": - return _sfc_main$a; - case "events": - return _sfc_main$8; - default: - return _sfc_main$b; - } - }); - return (_ctx, _cache) => { - return !unref(storyStore).currentVariant ? (openBlock(), createBlock(BaseEmpty, { - key: 0, - class: "histoire-story-side-panel histoire-selection" - }, { - default: withCtx(() => [ - _hoisted_1$1 - ]), - _: 1 - })) : !unref(storyStore).currentVariant.configReady || !unref(storyStore).currentVariant.previewReady ? (openBlock(), createBlock(BaseEmpty, { - key: 1, - class: "histoire-story-side-panel histoire-loading" - }, { - default: withCtx(() => [ - _hoisted_2 - ]), - _: 1 - })) : (openBlock(), createBlock(BaseSplitPane, { - key: 2, - "save-id": "story-sidepane", - orientation: "portrait", - class: "histoire-story-side-panel histoire-loaded htw-h-full", - "data-test-id": "story-side-panel" - }, { - first: withCtx(() => [ - createBaseVNode("div", _hoisted_3, [ - createVNode(_sfc_main$2, { - story: unref(storyStore).currentStory, - variant: unref(storyStore).currentVariant - }, null, 8, ["story", "variant"]), - (openBlock(), createBlock(resolveDynamicComponent(unref(panelContentComponent)), { - story: unref(storyStore).currentStory, - variant: unref(storyStore).currentVariant, - class: "htw-h-full htw-overflow-auto" - }, null, 8, ["story", "variant"])) - ]) - ]), - last: withCtx(() => [ - createVNode(StorySourceCode, { - story: unref(storyStore).currentStory, - variant: unref(storyStore).currentVariant, - class: "htw-h-full" - }, null, 8, ["story", "variant"]) - ]), - _: 1 - })); - }; - } -}); -const _hoisted_1 = { - key: 1, - class: "histoire-story-view histoire-with-story htw-h-full" -}; -const _sfc_main = /* @__PURE__ */ defineComponent({ - __name: "StoryView", - setup(__props) { - const storyStore = useStoryStore(); - const router = useRouter(); - const route = useRoute(); - watch(() => storyStore.currentVariant, (value) => { - if (value) { - storyStore.currentStory.lastSelectedVariant = value; - } - }, { - immediate: true - }); - watch(() => [storyStore.currentStory, storyStore.currentVariant], () => { - var _a, _b; - if (!storyStore.currentVariant) { - if ((_a = storyStore.currentStory) == null ? void 0 : _a.lastSelectedVariant) { - setVariant(storyStore.currentStory.lastSelectedVariant.id); - return; - } - if (((_b = storyStore.currentStory) == null ? void 0 : _b.variants.length) === 1) { - setVariant(storyStore.currentStory.variants[0].id); - } - } - }, { - immediate: true - }); - function setVariant(variantId) { - router.replace({ - ...route, - query: { - ...route.query, - variantId - } - }); - } - const docsOnlyScroller = ref(null); - function scrollDocsToTop() { - var _a; - (_a = docsOnlyScroller.value) == null ? void 0 : _a.scrollTo(0, 0); - } - return (_ctx, _cache) => { - return !unref(storyStore).currentStory ? (openBlock(), createBlock(BaseEmpty, { - key: 0, - class: "histoire-story-view histoire-no-story" - }, { - default: withCtx(() => [ - createVNode(unref(Icon), { - icon: "carbon:software-resource-resource", - class: "htw-w-16 htw-h-16 htw-opacity-50" - }) - ]), - _: 1 - })) : (openBlock(), createElementBlock("div", _hoisted_1, [ - unref(storyStore).currentStory.docsOnly ? (openBlock(), createElementBlock("div", { - key: 0, - ref_key: "docsOnlyScroller", - ref: docsOnlyScroller, - class: "htw-h-full htw-overflow-auto" - }, [ - createVNode(_sfc_main$a, { - story: unref(storyStore).currentStory, - standalone: "", - class: "md:htw-p-12 htw-w-full md:htw-max-w-[600px] lg:htw-max-w-[800px] xl:htw-max-w-[900px]", - onScrollTop: _cache[0] || (_cache[0] = ($event) => scrollDocsToTop()) - }, null, 8, ["story"]) - ], 512)) : unref(isMobile) ? (openBlock(), createBlock(StoryViewer, { key: 1 })) : (openBlock(), createBlock(BaseSplitPane, { - key: 2, - "save-id": "story-main", - min: 30, - max: 95, - "default-split": 75, - class: "htw-h-full" - }, { - first: withCtx(() => [ - createVNode(StoryViewer) - ]), - last: withCtx(() => [ - createVNode(_sfc_main$1) - ]), - _: 1 - })) - ])); - }; - } -}); -export { - _sfc_main as default -}; diff --git a/.histoire/dist/assets/__resolved__virtual_story-source_src-lib-components-shipedit-propulsion-engine-story-svelte-42e8b729.js b/.histoire/dist/assets/__resolved__virtual_story-source_src-lib-components-shipedit-propulsion-engine-story-svelte-42e8b729.js deleted file mode 100644 index 4bb3de4..0000000 --- a/.histoire/dist/assets/__resolved__virtual_story-source_src-lib-components-shipedit-propulsion-engine-story-svelte-42e8b729.js +++ /dev/null @@ -1,4 +0,0 @@ -const __resolved__virtual_storySource_srcLibComponentsShipeditPropulsionEngineStorySvelte = '\n \n\n\n + \ No newline at end of file diff --git a/.histoire/screenshots/src-lib-components-costmass-index-story-svelte-_default-1280x800.png b/.histoire/screenshots/src-lib-components-costmass-index-story-svelte-_default-1280x800.png index e55a852c92c0f6790bc942f7cef68fb87b24ee9a..1773dfc8047476630b4aeee5869cfa091c154ce0 100644 GIT binary patch delta 2801 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 delta 2795 zcmZWrdsLEX9{$WGcPB4r$DMI3m3A`QT`PCAG%piPHJPi)*&21iTjhmPQ&W=+;j?MV zlhG9fKmxxwf+Bi~|J#e?-1CR|-ziMvDVGvAMkLf6>M|?aQ7n7X)52l9aLUMFzUOe=LjScw)+(-3Fz~|a4M^eN)^<^udS`k3x)l7#T0f_ zAZc9{JND{_JrYEVOG$BENcZ-8JvBuUi^cv-RA69w!k+c&ptQc4GKc5s3*!~xP3}8U z#m%DeuH3Eki!)s)JRv>Z-LEEY^jR4#B}mse!6K~C9eal;-XzE2;bHs2&9EU1rDhgN z{#$HpY|8u2oTcSuUY@sj?rl+fd%HiZ!zvX?rlzLA;bVIgq+{%fXudzygcbaHee+oT zg-~CNg}Hh3@RQ@@wbo0*V3TbI`yJtADEZ8pzo3w7X%V=EI&(`){<~}#Ayy7-_sxs$ z&a)?LTh0$Z(Wu!>u`u*1fZygbzc>adCeStxxF9vEC_r8``_uc_x#;9aGiXHj!gUgb; zArYt4U#%NMFTb_7fFcPhUfQKgF$oE~Duc^Or9_QT-crTXs);Pm3|aJ0k>_yRQKO5k zJve_B#ha|);9P`nD*eHFQM)n^S(oS*I!_txYV$tH+PrzQACX3*1?Dyc{NMjE6o*A| zlZ1cU*FiOcLstd^G~T^>_3DnnI9VlrA-$=ZZix2qeC{V%e|r8;c)D{(?vSV zi290G9y0vBz|0zKO3I0kr}#LOrr2m3c+DYZ`?i zc=ENzGaRVllJL!EAMt>7;(ZUuKnrbyvo|tKw;6mU14w_eY=LVldOKn<82M{|moh+l zv9V6hA+!PYvXGu3=TE}AwUA7{XpF93mZL|H*2MJRb7C9ux-~e;WO`)e`*hLU+l`Hl zpt6cnbSJr7ex5M_-mz9ZuK4o%oc`hoMp7hT7&*T%$-VAVV-fJ;mOnyB^<1gX^2o^t zg@yey`N(2~X4*_of`Iad6B%^C_jUkxfO2dd99owq%d1)oa&mH$Dmb3m)q1JQ7%PfD%+5%!`j)MT3%M8aWFS9qq`~t}wQKLL2s=r%05iA*T&pxUX?B&XBLr7PP!Kw0x9yi- z_5dv+$P2mA0H2M5Vw|ka)M~G*m7!r8IkaH^?8wuTenc}w=HkyV+icUO6iJJMzrf%Q z%@0#ajx#ee=RpCNnenVuuwLP6>O_ z)TF1Y!`YTR0CaLV3`YHX^zquKr8vV}4^l7ff;7|DtX#dk3V@==cHFSY;6K24?fYPT z1&5Qfnc96w^{ae+dN5ecVuz1TBUg=95$;xH@|@@A=Np}xK8lv+2o)6+z4jg_fzbYfUtQr9yTTnxhF@t!HO$B46qTum%-HVIx0 zg%g=;E0ZbxOmw#dFTt@B5QY-x?f}M;3s?dHQkUW6ySnKyQr z8OVQ!i}C8F(d~-=@DR(zd*u7bdZ-+bvL>EQJ7;cgzIUH7b>ct$Eg`Z?WHF%XX8DkJ zhOm-xK(1A(R45H@`NJqU#@=x3RNY9BAtks~qQk<%nmPW4Pf!VKHydXJ?zG&Re#T<- kvyCzTVtUfOwwb&C`GRL(PEY5wgWkvQyTBu~L#KcIH%KNxod5s; diff --git a/.histoire/screenshots/src-lib-components-shipedit-carrier-story-svelte-_default-1280x800.png b/.histoire/screenshots/src-lib-components-shipedit-carrier-story-svelte-_default-1280x800.png new file mode 100644 index 0000000000000000000000000000000000000000..bb30599cb58dcd2a83984b5c282f802c2c6d5146 GIT binary patch literal 28142 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 GKmP{@h2z!$ literal 0 HcmV?d00001 diff --git a/.histoire/screenshots/src-lib-components-shipedit-identification-story-svelte-_default-1280x800.png b/.histoire/screenshots/src-lib-components-shipedit-identification-story-svelte-_default-1280x800.png new file mode 100644 index 0000000000000000000000000000000000000000..bbee9c69834a619bf16851832fd90984c99405a4 GIT binary patch literal 36681 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 Luf(s;{qVm4eaAn* literal 29347 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 Do$iY$ diff --git a/.histoire/screenshots/src-lib-components-shipedit-propulsion-ftl-story-svelte-_default-1280x800.png b/.histoire/screenshots/src-lib-components-shipedit-propulsion-ftl-story-svelte-_default-1280x800.png index 1bb20db1d7930ef0d173a29cb87d8c223523f7f7..e303a6b2dd620c6d97c7f8203eb03ed05c2a1119 100644 GIT binary patch literal 27499 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 J-=F{Ge*hSqqVfO$ literal 29073 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 PV8|2Jzmk8saP@xxp=Hw( diff --git a/.histoire/screenshots/src-lib-components-shipedit-propulsion-story-svelte-_default-1280x800.png b/.histoire/screenshots/src-lib-components-shipedit-propulsion-story-svelte-_default-1280x800.png index 1e97d833fc5e7c7dadd99bf16814947f838abfd2..2647d0e0437db23aabd7c626a749620e80816313 100644 GIT binary patch literal 40828 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 Qj}UWR`($CrBCj!~z8J9mMqC zmu^L7Elk?WHN{<(9}`3$Ua`}N}c{|*F!{Lf7Hx@gt~qM9@kGB?v8?b_L$u2uahYAOFR zKfJ3+aofPLDXEa}uB?-{_Uj79XkAM=Gz)Z%f4?4GIM3&PR@YajcW&Pbv9mf_3tnAK zUv|=dFTkYeGYEmt>lW+$nFDySMYZST`9s_HUiU*geAC)b!Cx=%U#wY3-k6`ncL!kH^%V?ANk`E6+CS8!OnOYFCpKlJ|fu|Is1wCC99;p{nz%dV*CCH zanJi0QoHI+D{H(1%N#20_u6z-D%&a z8Tq!g%?DzC)}8l#*jMMDDPUXMdu}+nRXcK4b(ymJ=3bQ_a-7WD388N=U^Xe25X)%r zr>ePY`*R@of?anV+`0O{M9}M^{Fk8{FDv25jm(8w$E1?#q2pmZ;|x9R@@AdW3KrRD z&!atkg>G>r_@U#40b`zpLkMuIjG?C=uVhlycXP?600qns-v81fN-XStc~0x-(W48! zrM^0o_wl!G-5Ssjw6wImis#z3C19U<_j~19F4;Mhns7FjCR9^WQWDCl2l$%IO{ix0 z_|`$^0#sv|Ls;S5HT2gSN!?q&AE_og`sR8it(qHB(B0WuDuIbInd=Oz?wSRyzGk@X zsI7fL1ZA)f@07NeqUE_fCZp>U8pWQ^-X)~^h03)Wac<oYQ6yKSvlO5&S+5Q+ikjWeoi<$!1sS+EjJf?w`0ai|_& z$09-oH=(nIUSj*Tkp!r-2LBN6CR@Z@^>(eD>GSdNVd52p7jVL*)jj_FXn0ZS2_||;gNE*J174D=Fq_%Cqsp^6^b>MY7*-*3*!sYd<40#*-cdW~Z-d%s_oXul%_Z4JS46nJ_U=T3Q z+JU9m6j=4oR_r+^w*z%paXjt(g_+cD)T1S8lF>PPmx%t)R9TxyyiJ@a_tGa~64eaN zSBN?fGrE62=chZS%(ZFj*{*%^+2V1|9bs5%BupN)IPzfSQ9y=M7Tu)Txk8u#rTGjP zJbH@sa%KzXf)Wmkl}Nw-p3KDb$Ibojl?}@k=Gh-W5rO9q=-Ve}BMga@5LA@+!xj`t zkh!13<9!X^AQi~kp4{HEieObANX2hy`}6DSbi81pq@P;?w6EM|9LNkrH?1PSGr@*N zy{8g%K0Hm=VwEz4_n+J2V{R65JnRh1drJ!oy$2ja=DJTASo=@Uacd+=Wj@)8GB(|& z(Qkk~{GlgZ3pZ7tk?{wgHb8fMN~5>uTV-aSw7Q^eZOr+pcWx*1cRJnJ9c%e%9P5&y zfFKjP-Gg(@?8ce=jD zv~qK%2{uv>I?kg!jr91W8iN~MW{r4{X`Hb=6hbF=MW7;AzY1F2OHoToN@MYdgg z`~kQpA4%kSvW1=5x^pxAtiIy%L3jYj77eqBC@!o$mdM;wF-BtaU3V$7G@3UigkE z=EA*QZJ{|%PEKG8g>=(vQd1Xic^q%0AjXIZH5IsD# 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 diff --git a/.histoire/screenshots/src-lib-components-shipedit-story-svelte-_default-1280x800.png b/.histoire/screenshots/src-lib-components-shipedit-story-svelte-_default-1280x800.png new file mode 100644 index 0000000000000000000000000000000000000000..719a58e7b21b1005459b48f77928539483d1be78 GIT binary patch literal 128240 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 literal 0 HcmV?d00001 diff --git a/.histoire/screenshots/src-lib-components-shipedit-weaponry-story-svelte-_default-1280x800.png b/.histoire/screenshots/src-lib-components-shipedit-weaponry-story-svelte-_default-1280x800.png new file mode 100644 index 0000000000000000000000000000000000000000..f40d65285b9e8eca8ca5686c889ba4c9dab2260f GIT binary patch literal 71486 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 literal 0 HcmV?d00001 diff --git a/.histoire/screenshots/src-lib-components-shipitem-story-svelte-_default-1280x800.png b/.histoire/screenshots/src-lib-components-shipitem-story-svelte-_default-1280x800.png index dda89faa95d35917ecc870f4c812f6e03aff6548..e85c75b1865fd35967bf538f7b57dd06943142a3 100644 GIT binary patch delta 3735 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 V