From 22e8fb8eebca4610426219823fafb25ba8b07472 Mon Sep 17 00:00:00 2001 From: "Zed A. Shaw" Date: Tue, 29 Dec 2020 17:20:43 -0500 Subject: [PATCH] All of the notes are written first draft. --- public/build/bundle.css | 6 +- public/build/bundle.js | 15349 +---------------------- public/build/bundle.js.map | 2 +- public/code/Calendar.notes.html | 14 + public/code/Cards.notes.html | 2 + public/code/GridOverGraphic.notes.html | 55 + public/code/Login.notes.html | 1 + public/code/Panels.notes.html | 23 + public/code/Tiles.notes.html | 19 + src/About.svelte | 1 - src/App.svelte | 7 +- src/demos/Calendar.svelte | 2 +- src/demos/Cards.svelte | 2 +- src/demos/GridOverGraphic.svelte | 2 +- src/demos/Login.svelte | 2 +- src/demos/Panels.svelte | 2 +- src/demos/Tiles.svelte | 2 +- src/routes.js | 2 - 18 files changed, 130 insertions(+), 15363 deletions(-) create mode 100644 public/code/Calendar.notes.html create mode 100644 public/code/Cards.notes.html create mode 100644 public/code/GridOverGraphic.notes.html create mode 100644 public/code/Login.notes.html create mode 100644 public/code/Panels.notes.html create mode 100644 public/code/Tiles.notes.html delete mode 100644 src/About.svelte diff --git a/public/build/bundle.css b/public/build/bundle.css index 2390a25..bafa775 100644 --- a/public/build/bundle.css +++ b/public/build/bundle.css @@ -1,5 +1,5 @@ -header.svelte-khlxmc.svelte-khlxmc{}main.svelte-khlxmc.svelte-khlxmc{}footer.svelte-khlxmc.svelte-khlxmc{display:flex;flex:flex-grow;flex-direction:row}footer.svelte-khlxmc nav.svelte-khlxmc{flex:1}@import 'sass/_variables';.inactive.svelte-1iby9by{stroke:var(--color-inactive);fill:var(--color-bg)}hero.svelte-3owcui.svelte-3owcui{display:block;padding:3rem;background-color:var(--color-bg-secondary)}hero.svelte-3owcui h1.svelte-3owcui{font-size:3rem}aside.svelte-3owcui a.svelte-3owcui{--text-decoration:underline}rationale.svelte-3owcui.svelte-3owcui{display:flex;flex-direction:column;font-size:1.5em;padding-left:4rem;padding-right:4rem}h1#faq.svelte-3owcui.svelte-3owcui{font-size:3em}:root{--pin-red:#e60023}content.svelte-8rhjm4.svelte-8rhjm4.svelte-8rhjm4{border:1px solid #ddd;display:flex;flex-direction:column;flex:flex-grow;flex-basis:100%;padding:1rem}header.svelte-8rhjm4.svelte-8rhjm4.svelte-8rhjm4{width:100%;flex-direction:row}header.svelte-8rhjm4 nav.svelte-8rhjm4.svelte-8rhjm4{flex:1}header.svelte-8rhjm4 nav input.svelte-8rhjm4.svelte-8rhjm4{width:100%}header.svelte-8rhjm4 nav button.svelte-8rhjm4.svelte-8rhjm4{border-radius:30px;background-color:var(--color-bg-secondary);border:unset;color:var(--color-text);padding-left:1rem;padding-right:1rem}header.svelte-8rhjm4 nav button#signup.svelte-8rhjm4.svelte-8rhjm4{background-color:var(--pin-red);color:var(--color-bg)}header.svelte-8rhjm4 nav a.svelte-8rhjm4.svelte-8rhjm4{color:var(--text-color)}header.svelte-8rhjm4 logo.svelte-8rhjm4.svelte-8rhjm4{color:var(--pin-red);display:flex;font-size:1.2em}header.svelte-8rhjm4 left.svelte-8rhjm4.svelte-8rhjm4{display:flex;justify-content:space-evenly;padding:1em;flex:2}header.svelte-8rhjm4 input.svelte-8rhjm4.svelte-8rhjm4{border-radius:30px;flex:3;padding:1rem}profile.svelte-8rhjm4.svelte-8rhjm4.svelte-8rhjm4{display:flex;flex-direction:row;width:100%;justify-content:center}profile.svelte-8rhjm4 info.svelte-8rhjm4.svelte-8rhjm4{margin-right:2em}profile.svelte-8rhjm4 h1.svelte-8rhjm4.svelte-8rhjm4{margin-bottom:unset;font-size:3em}profile.svelte-8rhjm4 p.svelte-8rhjm4.svelte-8rhjm4{margin-bottom:0.5rem;margin-top:0.5rem}pins.svelte-8rhjm4.svelte-8rhjm4.svelte-8rhjm4{display:flex;flex-direction:row}pins.svelte-8rhjm4 lane figure.svelte-8rhjm4.svelte-8rhjm4{margin:0.5rem}pins.svelte-8rhjm4 lane figure.svelte-8rhjm4 img.svelte-8rhjm4{border-radius:15px}pins.svelte-8rhjm4 lane.svelte-8rhjm4.svelte-8rhjm4{display:flex;flex-direction:column}images.svelte-1bny7ze.svelte-1bny7ze{display:grid;grid-template-columns:1fr 1fr}figure:hover content{filter:grayscale(1) blur(6px);background-color:var(--color-bg-secondary);cursor:pointer}figure.svelte-1bny7ze.svelte-1bny7ze{padding:0.5em;position:sticky}figure.svelte-1bny7ze figcaption.svelte-1bny7ze{display:none;color:var(--color-text);font-size:6em;filter:drop-shadow(10px 5px 5px var(--color-shadow-secondary));font-weight:bold}figure.svelte-1bny7ze:hover figcaption.svelte-1bny7ze{display:flex;padding-top:2em;width:100%;justify-content:center;position:absolute;top:0;left:0}content.svelte-yyzz8b.svelte-yyzz8b{border:1px solid #ddd;display:flex;flex-direction:column;padding:1rem}header.svelte-yyzz8b.svelte-yyzz8b{display:flex;width:100%;flex-direction:row;padding:0}nav.svelte-yyzz8b.svelte-yyzz8b{flex:1}figure.svelte-yyzz8b.svelte-yyzz8b{display:flex;justify-content:center;margin-top:4rem}search.svelte-yyzz8b.svelte-yyzz8b{display:flex;justify-content:center;flex-direction:column;margin-top:2rem}search.svelte-yyzz8b input.svelte-yyzz8b{align-self:center;width:50ch}search.svelte-yyzz8b buttons.svelte-yyzz8b{display:flex;justify-content:space-evenly}button.svelte-yyzz8b.svelte-yyzz8b{padding:0.5rem;background-color:#ddd;border:0px;color:#000;font-weight:unset}content.svelte-bnvc6y.svelte-bnvc6y.svelte-bnvc6y{border:1px solid #ddd;display:flex;flex-direction:row;flex:flex-grow;flex-basis:100%;grid-column:1/3;padding:0rem}left.svelte-bnvc6y.svelte-bnvc6y.svelte-bnvc6y{display:flex;flex-basis:200px;flex-direction:column;border-right:1px solid var(--color-bg-secondary);padding:1em;font-size:1.2em}middle.svelte-bnvc6y.svelte-bnvc6y.svelte-bnvc6y{display:flex;flex:2;flex-direction:column}right.svelte-bnvc6y.svelte-bnvc6y.svelte-bnvc6y{display:flex;flex-basis:300px;flex-direction:column;border-left:1px solid var(--color-bg-secondary)}header.svelte-bnvc6y.svelte-bnvc6y.svelte-bnvc6y{width:100%;text-align:unset}header.svelte-bnvc6y nav.svelte-bnvc6y.svelte-bnvc6y{justify-content:left}header.svelte-bnvc6y nav h4.svelte-bnvc6y.svelte-bnvc6y{}header.svelte-bnvc6y nav back.svelte-bnvc6y.svelte-bnvc6y{padding-left:1rem;padding-right:1rem}header.svelte-bnvc6y nav name h4.svelte-bnvc6y.svelte-bnvc6y{margin:unset;padding:unset}header.svelte-bnvc6y nav name span.svelte-bnvc6y.svelte-bnvc6y{font-size:0.8em;font-weight:normal}middle.svelte-bnvc6y images.svelte-bnvc6y.svelte-bnvc6y{display:grid;grid-template-columns:1fr min-content}middle.svelte-bnvc6y images figure#background.svelte-bnvc6y.svelte-bnvc6y{z-index:-1;grid-column:1/2;grid-row:1/ span 2}figure#background.svelte-bnvc6y img.svelte-bnvc6y.svelte-bnvc6y{height:200px;min-width:500px}middle.svelte-bnvc6y images figure#avatar.svelte-bnvc6y.svelte-bnvc6y{z-index:5;grid-column:1/1;grid-row:2/2}middle.svelte-bnvc6y images figure#avatar img.svelte-bnvc6y.svelte-bnvc6y{z-index:5;position:relative;top:90px;left:10px;width:128px}figure#avatar.svelte-bnvc6y img.svelte-bnvc6y.svelte-bnvc6y{border-radius:50%;border:5px white solid}button#follow.svelte-bnvc6y.svelte-bnvc6y.svelte-bnvc6y{padding:0.8rem;border-radius:30px;border:1px var(--color) solid;background:var(--color-bg);color:var(--color);position:relative;top:60px;left:220px}button#signup.svelte-bnvc6y.svelte-bnvc6y.svelte-bnvc6y{border-radius:30px;padding:0.5rem;width:100%;font-size:0.9em}aside#newperson.svelte-bnvc6y p.svelte-bnvc6y.svelte-bnvc6y{font-size:0.8em;color:var(--color-inactive)}recent-media.svelte-bnvc6y.svelte-bnvc6y.svelte-bnvc6y{display:grid;grid-template-columns:1fr 1fr 1fr;grid-gap:1px}profile.svelte-bnvc6y.svelte-bnvc6y.svelte-bnvc6y{margin-top:6rem;margin-left:1rem;margin-right:1rem}tweet.svelte-bnvc6y.svelte-bnvc6y.svelte-bnvc6y{display:flex;flex-direction:row}tweet.svelte-bnvc6y post.svelte-bnvc6y.svelte-bnvc6y{padding-left:1em;flex-grow:2;margin-bottom:1rem}tweet.svelte-bnvc6y figure#avatar.svelte-bnvc6y img.svelte-bnvc6y{min-width:64px;height:64px}tweet.svelte-bnvc6y post h4.svelte-bnvc6y.svelte-bnvc6y{margin:unset}tweet.svelte-bnvc6y post p.svelte-bnvc6y.svelte-bnvc6y{margin-bottom:0.5rem}tweet.svelte-bnvc6y post actions.svelte-bnvc6y.svelte-bnvc6y{display:flex;justify-content:space-evenly}hr.svelte-bnvc6y.svelte-bnvc6y.svelte-bnvc6y{margin-top:0.5em;margin-bottom:0.5em}aside#trending.svelte-bnvc6y.svelte-bnvc6y.svelte-bnvc6y{background-color:var(--color-bg-secondary);padding:0px}aside#trending.svelte-bnvc6y h3.svelte-bnvc6y.svelte-bnvc6y{margin-left:1em}aside#trending.svelte-bnvc6y a.svelte-bnvc6y.svelte-bnvc6y{margin-left:1em;color:var(--color)}aside#trending.svelte-bnvc6y li.svelte-bnvc6y.svelte-bnvc6y{border-top:1px var(--color-bg) solid;list-style-type:none;list-style-position:outside;padding:0.3rem}aside#trending.svelte-bnvc6y ul.svelte-bnvc6y.svelte-bnvc6y{padding-left:0px}content.svelte-87j0be.svelte-87j0be{border:1px solid #ddd;display:flex;flex-direction:column;flex:flex-grow;flex-basis:100%;grid-column:1/3;padding:1rem;--sub-color:#999;--title-color:#000}header.svelte-87j0be.svelte-87j0be{display:flex;width:100%;flex-direction:row}nav.svelte-87j0be.svelte-87j0be{flex:1}nav.svelte-87j0be input.svelte-87j0be{display:flex;flex-grow:2;margin:1rem}logo.svelte-87j0be.svelte-87j0be{font-weight:bold;font-size:1rem;color:black}button.svelte-87j0be.svelte-87j0be{background-color:var(--color-bg);color:var(--color);padding:0.5rem;border-radius:2px}hr.svelte-87j0be.svelte-87j0be{margin-top:0.5rem;margin-bottom:0.5rem}main.svelte-87j0be.svelte-87j0be{display:flex;flex-direction:row}right.svelte-87j0be.svelte-87j0be{margin-left:0.5rem}left.svelte-87j0be.svelte-87j0be{margin-right:0.5rem}figcaption.svelte-87j0be a.svelte-87j0be{color:var(--color-secondary);font-size:0.8em}figcaption.svelte-87j0be p.svelte-87j0be{font-weight:bold;margin-top:unset}figcaption.svelte-87j0be video-actions.svelte-87j0be{color:var(--sub-color);font-weight:unset;display:flex;flex-grow:1;justify-content:space-between}card.svelte-87j0be.svelte-87j0be{display:flex;margin-top:0.2rem;margin-bottom:0.2rem;--img-width:120px;--img-height:80px;--font-size:0.8em}card.svelte-87j0be img.svelte-87j0be{width:var(--img-width);height:var(--img-height)}card.svelte-87j0be info.svelte-87j0be{display:flex;flex-direction:column;padding:0.2rem;color:var(--sub-color);font-size:var(--font-size)}card.svelte-87j0be info h4.svelte-87j0be{font-weight:bold;color:var(--title-color);margin:0px}card.small.svelte-87j0be.svelte-87j0be{--img-width:100px;--img-height:70px;--font-size:0.6em}promotion.svelte-87j0be.svelte-87j0be{display:flex;flex-direction:column}promotion.svelte-87j0be nav button#subscribe.svelte-87j0be{background-color:red;color:#fff;border:unset}promotion.svelte-87j0be card.svelte-87j0be{--img-width:4rem;--img-height:4rem}promotion.svelte-87j0be content.svelte-87j0be{border:unset;padding-left:4rem}comments.svelte-87j0be nav.svelte-87j0be{justify-content:left;font-weight:unset}comments.svelte-87j0be nav sort.svelte-87j0be{color:var(--sub-color)}comments.svelte-87j0be card.svelte-87j0be{color:black;--img-width:4rem;--img-height:4rem;--font-size:1em}comments.svelte-87j0be card p.svelte-87j0be{color:black}comments.svelte-87j0be card reply.svelte-87j0be{color:var(--color)}a.svelte-cr3eg9.svelte-cr3eg9{color:var(--color)}content.svelte-cr3eg9.svelte-cr3eg9{border:1px solid #ddd;display:flex;flex-direction:column;flex:flex-grow;flex-basis:100%;padding:1rem}header.svelte-cr3eg9.svelte-cr3eg9{display:flex;width:100%;flex-direction:row}nav.svelte-cr3eg9.svelte-cr3eg9{flex:1}button.svelte-cr3eg9.svelte-cr3eg9{padding:0.5rem}profile.svelte-cr3eg9.svelte-cr3eg9{display:flex;flow-direction:row}profile.svelte-cr3eg9 figure.svelte-cr3eg9{padding-right:3rem;padding-left:3rem}profile.svelte-cr3eg9 info.svelte-cr3eg9{display:flex;flex-direction:column;width:100%}profile.svelte-cr3eg9 info p.svelte-cr3eg9{padding:0.5rem}tabs.svelte-cr3eg9 nav.svelte-cr3eg9{justify-content:center;border-top:1px black solid;border-color:var(--color-inactive)}posts.svelte-cr3eg9.svelte-cr3eg9{display:grid;grid-template-columns:1fr 1fr 1fr}pins.svelte-cr3eg9.svelte-cr3eg9{display:flex;flex-direction:row;justify-content:space-evenly;margin-top:1rem;margin-bottom:1rem}content.svelte-9c6eed.svelte-9c6eed.svelte-9c6eed{border:1px solid #ddd;display:flex;flex-direction:column;flex:flex-grow;flex-basis:100%;grid-column:1/3;--sub-color:#999;--title-color:#000}main.svelte-9c6eed.svelte-9c6eed.svelte-9c6eed{display:flex;flex-direction:column}header.svelte-9c6eed.svelte-9c6eed.svelte-9c6eed{display:flex;width:100%;flex-direction:row}header.svelte-9c6eed nav.svelte-9c6eed.svelte-9c6eed{flex:1;margin-left:1rem;margin-right:1rem}header.svelte-9c6eed nav input.svelte-9c6eed.svelte-9c6eed{display:flex;flex-grow:2;margin:1rem}header.svelte-9c6eed nav.svelte-9c6eed button.svelte-9c6eed{background-color:var(--color-bg);color:var(--color);padding:0.5rem}hr.svelte-9c6eed.svelte-9c6eed.svelte-9c6eed{margin-top:0.5rem;margin-bottom:0.5rem}figcaption.svelte-9c6eed.svelte-9c6eed.svelte-9c6eed{padding:1rem}figcaption.svelte-9c6eed a.svelte-9c6eed.svelte-9c6eed{color:var(--color-secondary);font-size:0.8em}figcaption.svelte-9c6eed p.svelte-9c6eed.svelte-9c6eed{font-weight:bold;margin-top:unset}figcaption.svelte-9c6eed video-actions.svelte-9c6eed.svelte-9c6eed{color:var(--sub-color);font-weight:unset;display:flex;flex-grow:1;justify-content:space-between}card.svelte-9c6eed.svelte-9c6eed.svelte-9c6eed{display:flex;margin-top:0.2rem;margin-bottom:0.2rem;--img-width:120px;--img-height:80px;--font-size:0.8em}card.svelte-9c6eed img.svelte-9c6eed.svelte-9c6eed{width:var(--img-width);height:var(--img-height)}card.svelte-9c6eed info.svelte-9c6eed.svelte-9c6eed{display:flex;flex-direction:column;padding:0.2rem;color:var(--sub-color);font-size:var(--font-size)}card.svelte-9c6eed info h4.svelte-9c6eed.svelte-9c6eed{font-weight:bold;color:var(--title-color);margin:0px}promotion.svelte-9c6eed.svelte-9c6eed.svelte-9c6eed{display:flex;flex-direction:column}promotion.svelte-9c6eed card.svelte-9c6eed.svelte-9c6eed{--img-width:4rem;--img-height:4rem}promotion.svelte-9c6eed content.svelte-9c6eed.svelte-9c6eed{border:unset;padding-left:4rem}comments.svelte-9c6eed nav.svelte-9c6eed.svelte-9c6eed{justify-content:left;font-weight:unset}comments.svelte-9c6eed nav sort.svelte-9c6eed.svelte-9c6eed{color:var(--sub-color)}comments.svelte-9c6eed card.svelte-9c6eed.svelte-9c6eed{color:black;--img-width:4rem;--img-height:4rem;--font-size:1em}comments.svelte-9c6eed card p.svelte-9c6eed.svelte-9c6eed{color:black}comments.svelte-9c6eed card reply.svelte-9c6eed.svelte-9c6eed{color:var(--color)}lower.svelte-9c6eed.svelte-9c6eed.svelte-9c6eed{padding:1rem}nav#vote-nav.svelte-9c6eed.svelte-9c6eed.svelte-9c6eed{justify-content:flex-end}nav.svelte-9c6eed a.svelte-9c6eed.svelte-9c6eed,a.svelte-9c6eed.svelte-9c6eed.svelte-9c6eed:visited,a.svelte-9c6eed.svelte-9c6eed.svelte-9c6eed:active{text-decoration:none;color:var(--color-text)}a.svelte-i1di9h.svelte-i1di9h{color:var(--color)}content.svelte-i1di9h.svelte-i1di9h{border:1px solid #ddd;display:flex;flex-direction:column;flex:flex-grow;flex-basis:100%;grid-column:1/3;padding:1rem;padding-top:0px}header.svelte-i1di9h.svelte-i1di9h{display:flex;width:100%;flex-direction:row}header.svelte-i1di9h nav.svelte-i1di9h{flex:1}header.svelte-i1di9h nav input.svelte-i1di9h{display:flex;flex-grow:2;margin:1rem}header.svelte-i1di9h nav button.svelte-i1di9h{background-color:var(--color-bg);color:var(--color);padding:0.5rem}profile.svelte-i1di9h.svelte-i1di9h{display:flex;flow-direction:row}profile.svelte-i1di9h figure.svelte-i1di9h{padding-right:3rem;padding-left:3rem}profile.svelte-i1di9h info.svelte-i1di9h{display:flex;flex-direction:column;width:100%}profile.svelte-i1di9h info p.svelte-i1di9h{padding:0.5rem}posts.svelte-i1di9h.svelte-i1di9h{display:grid;grid-template-columns:1fr 1fr 1fr}posts.svelte-i1di9h figure.svelte-i1di9h{}related.svelte-i1di9h.svelte-i1di9h{display:flex;flex-direction:row;justify-content:space-evenly;margin-top:1rem;margin-bottom:1rem}nav.svelte-i1di9h a.svelte-i1di9h,a.svelte-i1di9h.svelte-i1di9h:visited,a.svelte-i1di9h.svelte-i1di9h:active{text-decoration:none;color:var(--color-text)}content.svelte-fwzpwr.svelte-fwzpwr{display:flex;flex:flex-shrink;flex-grow:1;justify-content:center}tile.svelte-fwzpwr.svelte-fwzpwr{padding:0.5rem;display:flex;flex-direction:row;border:1px solid #eee;max-width:50vh}tile.svelte-fwzpwr middle.svelte-fwzpwr{padding-left:0.5rem;padding-right:0.5rem;display:flex;flex-direction:column;justify-content:flex-start;flex-shrink:3}tile.svelte-fwzpwr middle h4.svelte-fwzpwr{margin-top:0;margin-bottom:0}tile.svelte-fwzpwr right.svelte-fwzpwr{flex-shrink:0}tile.svelte-fwzpwr right button.svelte-fwzpwr{padding:0.2rem}content.svelte-12f1gxf.svelte-12f1gxf{display:flex;flex:flex-shrink;flex-grow:1;justify-content:center}card.svelte-12f1gxf.svelte-12f1gxf{display:flex;flex-direction:column;border:1px solid #eee;width:min-content}card.svelte-12f1gxf top img.svelte-12f1gxf{padding:0;margin:0;width:480px}card.svelte-12f1gxf middle.svelte-12f1gxf{padding-left:0.5rem;padding-right:0.5rem;display:flex;flex-direction:column;justify-content:flex-start}card.svelte-12f1gxf middle h4.svelte-12f1gxf{margin:0}card.svelte-12f1gxf bottom.svelte-12f1gxf{flex-shrink:0}card.svelte-12f1gxf bottom button.svelte-12f1gxf{padding:0.2rem}content.svelte-cwnhgy{display:flex;justify-content:center}button.svelte-cwnhgy{padding:5em}modal.svelte-cwnhgy{display:flex;position:fixed;align-items:center;justify-content:center;top:0;left:0;right:0;bottom:0;z-index:10;background:rgba(244,244,244,0.75);padding:0px}modal-content.svelte-cwnhgy{flex-direction:column;background:white;border:1px solid var(--color-accent);border-radius:5px;max-height:300px;min-height:300px;max-width:300px;width:100%;z-index:20;padding:0.5em}content.svelte-t7gl8c{display:flex;flex:flex-shrink;flex-grow:1;justify-content:center}content.svelte-1ofkzoq.svelte-1ofkzoq{display:flex;flex-direction:column}nav-bar.svelte-1ofkzoq.svelte-1ofkzoq{display:flex;flex-direction:row;width:100%;justify-content:space-evenly;padding:1em;border:1px solid var(--color-accent);margin-bottom:1em}nav-bar.svelte-1ofkzoq middle.svelte-1ofkzoq{display:flex;flex:2;justify-content:center;padding-left:1em;padding-right:1em}nav-bar.svelte-1ofkzoq middle input.svelte-1ofkzoq{width:100%}.alternate.svelte-1ofkzoq.svelte-1ofkzoq{background-color:#ddd}content.svelte-1lajyim.svelte-1lajyim{display:flex;flex:flex-shrink;flex-grow:1;justify-content:center}panel.svelte-1lajyim.svelte-1lajyim{display:flex;flex-direction:column;border:1px solid #eee;width:min-content}panel.svelte-1lajyim top.svelte-1lajyim{width:480px;padding:0.5rem}panel.svelte-1lajyim middle.svelte-1lajyim{padding-left:0.5rem;padding-right:0.5rem;display:flex;flex-direction:column;justify-content:flex-start}panel.svelte-1lajyim bottom.svelte-1lajyim{flex-shrink:0;display:flex;flex-direction:row;justify-content:space-evenly}panel.svelte-1lajyim bottom button.svelte-1lajyim{display:flex;margin:0;border-radius:unset;width:100%;justify-content:space-evenly}button.svelte-1lajyim.svelte-1lajyim:hover{filter:invert(20%)}button#cancel.svelte-1lajyim.svelte-1lajyim{background:unset;color:var(--color-text)}content.svelte-j1ijok.svelte-j1ijok{display:flex;flex-direction:column}tabs.svelte-j1ijok.svelte-j1ijok{margin-top:1em;display:flex;justify-content:space-evenly;border-bottom:var(--color-accent)}tabs.svelte-j1ijok a.svelte-j1ijok{text-decoration:none;color:var(--color-text);border-bottom:1px solid var(--color-accent);border-width:thin;width:100%;text-align:center;padding:2rem 0rem 0.5rem}tabs.svelte-j1ijok a.svelte-j1ijok:hover{box-shadow:-1px 0 black, 0 1px black, 1px 0 black, 0 -1px black}tabs.svelte-j1ijok a.active.svelte-j1ijok{background-color:var(--color-bg-secondary)}panel.svelte-j1ijok.svelte-j1ijok{display:none}panel.active.svelte-j1ijok.svelte-j1ijok{border:1px solid var(--color-accent);display:flex;flex-direction:column;padding:1em}content.svelte-1gt8gt4.svelte-1gt8gt4{display:flex;flex:flex-shrink;flex-grow:1;justify-content:center}calendar.svelte-1gt8gt4.svelte-1gt8gt4{display:grid;grid-template-columns:repeat(7, 1fr);grid-template-rows:auto;max-width:300px;outline:1px solid var(--color-accent)}calendar.svelte-1gt8gt4 day.svelte-1gt8gt4{background-color:var(--color-bg-secondary);font-weight:bold;padding-left:0.3rem;padding-right:0.3rem}calendar.svelte-1gt8gt4 month.svelte-1gt8gt4{grid-column:span 7;font-size:1.5em;font-weight:bold;text-align:center}calendar.svelte-1gt8gt4 date.svelte-1gt8gt4{padding:0.3rem}calendar.svelte-1gt8gt4 date.svelte-1gt8gt4:hover{background-color:var(--color-bg-secondary)}content.svelte-1c5ml3s.svelte-1c5ml3s{display:flex;flex-direction:column}icecream.svelte-1c5ml3s.svelte-1c5ml3s{position:relative}icecream.svelte-1c5ml3s background.svelte-1c5ml3s{position:absolute;top:0;bottom:0;left:0;right:0;z-index:-1}icecream.svelte-1c5ml3s background img.svelte-1c5ml3s{width:100vh}overlay.svelte-1c5ml3s.svelte-1c5ml3s{display:grid;grid-template-columns:repeat(2,1fr);grid-template-rows:auto;grid-template-areas:"topleft topright" +footer.svelte-khlxmc.svelte-khlxmc{display:flex;flex:flex-grow;flex-direction:row}footer.svelte-khlxmc nav.svelte-khlxmc{flex:1}@import 'sass/_variables';.inactive.svelte-1iby9by{stroke:var(--color-inactive);fill:var(--color-bg)}hero.svelte-3owcui.svelte-3owcui{display:block;padding:3rem;background-color:var(--color-bg-secondary)}hero.svelte-3owcui h1.svelte-3owcui{font-size:3rem}aside.svelte-3owcui a.svelte-3owcui{--text-decoration:underline}rationale.svelte-3owcui.svelte-3owcui{display:flex;flex-direction:column;font-size:1.5em;padding-left:4rem;padding-right:4rem}h1#faq.svelte-3owcui.svelte-3owcui{font-size:3em}images.svelte-1bny7ze.svelte-1bny7ze{display:grid;grid-template-columns:1fr 1fr}figure:hover content{filter:grayscale(1) blur(6px);background-color:var(--color-bg-secondary);cursor:pointer}figure.svelte-1bny7ze.svelte-1bny7ze{padding:0.5em;position:sticky}figure.svelte-1bny7ze figcaption.svelte-1bny7ze{display:none;color:var(--color-text);font-size:6em;filter:drop-shadow(10px 5px 5px var(--color-shadow-secondary));font-weight:bold}figure.svelte-1bny7ze:hover figcaption.svelte-1bny7ze{display:flex;padding-top:2em;width:100%;justify-content:center;position:absolute;top:0;left:0}content.svelte-yyzz8b.svelte-yyzz8b{border:1px solid #ddd;display:flex;flex-direction:column;padding:1rem}header.svelte-yyzz8b.svelte-yyzz8b{display:flex;width:100%;flex-direction:row;padding:0}nav.svelte-yyzz8b.svelte-yyzz8b{flex:1}figure.svelte-yyzz8b.svelte-yyzz8b{display:flex;justify-content:center;margin-top:4rem}search.svelte-yyzz8b.svelte-yyzz8b{display:flex;justify-content:center;flex-direction:column;margin-top:2rem}search.svelte-yyzz8b input.svelte-yyzz8b{align-self:center;width:50ch}search.svelte-yyzz8b buttons.svelte-yyzz8b{display:flex;justify-content:space-evenly}button.svelte-yyzz8b.svelte-yyzz8b{padding:0.5rem;background-color:#ddd;border:0px;color:#000;font-weight:unset}a.svelte-cr3eg9.svelte-cr3eg9{color:var(--color)}content.svelte-cr3eg9.svelte-cr3eg9{border:1px solid #ddd;display:flex;flex-direction:column;flex:flex-grow;flex-basis:100%;padding:1rem}header.svelte-cr3eg9.svelte-cr3eg9{display:flex;width:100%;flex-direction:row}nav.svelte-cr3eg9.svelte-cr3eg9{flex:1}button.svelte-cr3eg9.svelte-cr3eg9{padding:0.5rem}profile.svelte-cr3eg9.svelte-cr3eg9{display:flex;flow-direction:row}profile.svelte-cr3eg9 figure.svelte-cr3eg9{padding-right:3rem;padding-left:3rem}profile.svelte-cr3eg9 info.svelte-cr3eg9{display:flex;flex-direction:column;width:100%}profile.svelte-cr3eg9 info p.svelte-cr3eg9{padding:0.5rem}tabs.svelte-cr3eg9 nav.svelte-cr3eg9{justify-content:center;border-top:1px black solid;border-color:var(--color-inactive)}posts.svelte-cr3eg9.svelte-cr3eg9{display:grid;grid-template-columns:1fr 1fr 1fr}pins.svelte-cr3eg9.svelte-cr3eg9{display:flex;flex-direction:row;justify-content:space-evenly;margin-top:1rem;margin-bottom:1rem}content.svelte-87j0be.svelte-87j0be{border:1px solid #ddd;display:flex;flex-direction:column;flex:flex-grow;flex-basis:100%;grid-column:1/3;padding:1rem;--sub-color:#999;--title-color:#000}header.svelte-87j0be.svelte-87j0be{display:flex;width:100%;flex-direction:row}nav.svelte-87j0be.svelte-87j0be{flex:1}nav.svelte-87j0be input.svelte-87j0be{display:flex;flex-grow:2;margin:1rem}logo.svelte-87j0be.svelte-87j0be{font-weight:bold;font-size:1rem;color:black}button.svelte-87j0be.svelte-87j0be{background-color:var(--color-bg);color:var(--color);padding:0.5rem;border-radius:2px}hr.svelte-87j0be.svelte-87j0be{margin-top:0.5rem;margin-bottom:0.5rem}main.svelte-87j0be.svelte-87j0be{display:flex;flex-direction:row}right.svelte-87j0be.svelte-87j0be{margin-left:0.5rem}left.svelte-87j0be.svelte-87j0be{margin-right:0.5rem}figcaption.svelte-87j0be a.svelte-87j0be{color:var(--color-secondary);font-size:0.8em}figcaption.svelte-87j0be p.svelte-87j0be{font-weight:bold;margin-top:unset}figcaption.svelte-87j0be video-actions.svelte-87j0be{color:var(--sub-color);font-weight:unset;display:flex;flex-grow:1;justify-content:space-between}card.svelte-87j0be.svelte-87j0be{display:flex;margin-top:0.2rem;margin-bottom:0.2rem;--img-width:120px;--img-height:80px;--font-size:0.8em}card.svelte-87j0be img.svelte-87j0be{width:var(--img-width);height:var(--img-height)}card.svelte-87j0be info.svelte-87j0be{display:flex;flex-direction:column;padding:0.2rem;color:var(--sub-color);font-size:var(--font-size)}card.svelte-87j0be info h4.svelte-87j0be{font-weight:bold;color:var(--title-color);margin:0px}card.small.svelte-87j0be.svelte-87j0be{--img-width:100px;--img-height:70px;--font-size:0.6em}promotion.svelte-87j0be.svelte-87j0be{display:flex;flex-direction:column}promotion.svelte-87j0be nav button#subscribe.svelte-87j0be{background-color:red;color:#fff;border:unset}promotion.svelte-87j0be card.svelte-87j0be{--img-width:4rem;--img-height:4rem}promotion.svelte-87j0be content.svelte-87j0be{border:unset;padding-left:4rem}comments.svelte-87j0be nav.svelte-87j0be{justify-content:left;font-weight:unset}comments.svelte-87j0be nav sort.svelte-87j0be{color:var(--sub-color)}comments.svelte-87j0be card.svelte-87j0be{color:black;--img-width:4rem;--img-height:4rem;--font-size:1em}comments.svelte-87j0be card p.svelte-87j0be{color:black}comments.svelte-87j0be card reply.svelte-87j0be{color:var(--color)}content.svelte-bnvc6y.svelte-bnvc6y.svelte-bnvc6y{border:1px solid #ddd;display:flex;flex-direction:row;flex:flex-grow;flex-basis:100%;grid-column:1/3;padding:0rem}left.svelte-bnvc6y.svelte-bnvc6y.svelte-bnvc6y{display:flex;flex-basis:200px;flex-direction:column;border-right:1px solid var(--color-bg-secondary);padding:1em;font-size:1.2em}middle.svelte-bnvc6y.svelte-bnvc6y.svelte-bnvc6y{display:flex;flex:2;flex-direction:column}right.svelte-bnvc6y.svelte-bnvc6y.svelte-bnvc6y{display:flex;flex-basis:300px;flex-direction:column;border-left:1px solid var(--color-bg-secondary)}header.svelte-bnvc6y.svelte-bnvc6y.svelte-bnvc6y{width:100%;text-align:unset}header.svelte-bnvc6y nav.svelte-bnvc6y.svelte-bnvc6y{justify-content:left}header.svelte-bnvc6y nav back.svelte-bnvc6y.svelte-bnvc6y{padding-left:1rem;padding-right:1rem}header.svelte-bnvc6y nav name h4.svelte-bnvc6y.svelte-bnvc6y{margin:unset;padding:unset}header.svelte-bnvc6y nav name span.svelte-bnvc6y.svelte-bnvc6y{font-size:0.8em;font-weight:normal}middle.svelte-bnvc6y images.svelte-bnvc6y.svelte-bnvc6y{display:grid;grid-template-columns:1fr min-content}middle.svelte-bnvc6y images figure#background.svelte-bnvc6y.svelte-bnvc6y{z-index:-1;grid-column:1/2;grid-row:1/ span 2}figure#background.svelte-bnvc6y img.svelte-bnvc6y.svelte-bnvc6y{height:200px;min-width:500px}middle.svelte-bnvc6y images figure#avatar.svelte-bnvc6y.svelte-bnvc6y{z-index:5;grid-column:1/1;grid-row:2/2}middle.svelte-bnvc6y images figure#avatar img.svelte-bnvc6y.svelte-bnvc6y{z-index:5;position:relative;top:90px;left:10px;width:128px}figure#avatar.svelte-bnvc6y img.svelte-bnvc6y.svelte-bnvc6y{border-radius:50%;border:5px white solid}button#follow.svelte-bnvc6y.svelte-bnvc6y.svelte-bnvc6y{padding:0.8rem;border-radius:30px;border:1px var(--color) solid;background:var(--color-bg);color:var(--color);position:relative;top:60px;left:220px}button#signup.svelte-bnvc6y.svelte-bnvc6y.svelte-bnvc6y{border-radius:30px;padding:0.5rem;width:100%;font-size:0.9em}aside#newperson.svelte-bnvc6y p.svelte-bnvc6y.svelte-bnvc6y{font-size:0.8em;color:var(--color-inactive)}recent-media.svelte-bnvc6y.svelte-bnvc6y.svelte-bnvc6y{display:grid;grid-template-columns:1fr 1fr 1fr;grid-gap:1px}profile.svelte-bnvc6y.svelte-bnvc6y.svelte-bnvc6y{margin-top:6rem;margin-left:1rem;margin-right:1rem}tweet.svelte-bnvc6y.svelte-bnvc6y.svelte-bnvc6y{display:flex;flex-direction:row}tweet.svelte-bnvc6y post.svelte-bnvc6y.svelte-bnvc6y{padding-left:1em;flex-grow:2;margin-bottom:1rem}tweet.svelte-bnvc6y figure#avatar.svelte-bnvc6y img.svelte-bnvc6y{min-width:64px;height:64px}tweet.svelte-bnvc6y post h4.svelte-bnvc6y.svelte-bnvc6y{margin:unset}tweet.svelte-bnvc6y post p.svelte-bnvc6y.svelte-bnvc6y{margin-bottom:0.5rem}tweet.svelte-bnvc6y post actions.svelte-bnvc6y.svelte-bnvc6y{display:flex;justify-content:space-evenly}hr.svelte-bnvc6y.svelte-bnvc6y.svelte-bnvc6y{margin-top:0.5em;margin-bottom:0.5em}aside#trending.svelte-bnvc6y.svelte-bnvc6y.svelte-bnvc6y{background-color:var(--color-bg-secondary);padding:0px}aside#trending.svelte-bnvc6y h3.svelte-bnvc6y.svelte-bnvc6y{margin-left:1em}aside#trending.svelte-bnvc6y a.svelte-bnvc6y.svelte-bnvc6y{margin-left:1em;color:var(--color)}aside#trending.svelte-bnvc6y li.svelte-bnvc6y.svelte-bnvc6y{border-top:1px var(--color-bg) solid;list-style-type:none;list-style-position:outside;padding:0.3rem}aside#trending.svelte-bnvc6y ul.svelte-bnvc6y.svelte-bnvc6y{padding-left:0px}:root{--pin-red:#e60023}content.svelte-8rhjm4.svelte-8rhjm4.svelte-8rhjm4{border:1px solid #ddd;display:flex;flex-direction:column;flex:flex-grow;flex-basis:100%;padding:1rem}header.svelte-8rhjm4.svelte-8rhjm4.svelte-8rhjm4{width:100%;flex-direction:row}header.svelte-8rhjm4 nav.svelte-8rhjm4.svelte-8rhjm4{flex:1}header.svelte-8rhjm4 nav input.svelte-8rhjm4.svelte-8rhjm4{width:100%}header.svelte-8rhjm4 nav button.svelte-8rhjm4.svelte-8rhjm4{border-radius:30px;background-color:var(--color-bg-secondary);border:unset;color:var(--color-text);padding-left:1rem;padding-right:1rem}header.svelte-8rhjm4 nav button#signup.svelte-8rhjm4.svelte-8rhjm4{background-color:var(--pin-red);color:var(--color-bg)}header.svelte-8rhjm4 nav a.svelte-8rhjm4.svelte-8rhjm4{color:var(--text-color)}header.svelte-8rhjm4 logo.svelte-8rhjm4.svelte-8rhjm4{color:var(--pin-red);display:flex;font-size:1.2em}header.svelte-8rhjm4 left.svelte-8rhjm4.svelte-8rhjm4{display:flex;justify-content:space-evenly;padding:1em;flex:2}header.svelte-8rhjm4 input.svelte-8rhjm4.svelte-8rhjm4{border-radius:30px;flex:3;padding:1rem}profile.svelte-8rhjm4.svelte-8rhjm4.svelte-8rhjm4{display:flex;flex-direction:row;width:100%;justify-content:center}profile.svelte-8rhjm4 info.svelte-8rhjm4.svelte-8rhjm4{margin-right:2em}profile.svelte-8rhjm4 h1.svelte-8rhjm4.svelte-8rhjm4{margin-bottom:unset;font-size:3em}profile.svelte-8rhjm4 p.svelte-8rhjm4.svelte-8rhjm4{margin-bottom:0.5rem;margin-top:0.5rem}pins.svelte-8rhjm4.svelte-8rhjm4.svelte-8rhjm4{display:flex;flex-direction:row}pins.svelte-8rhjm4 lane figure.svelte-8rhjm4.svelte-8rhjm4{margin:0.5rem}pins.svelte-8rhjm4 lane figure.svelte-8rhjm4 img.svelte-8rhjm4{border-radius:15px}pins.svelte-8rhjm4 lane.svelte-8rhjm4.svelte-8rhjm4{display:flex;flex-direction:column}a.svelte-i1di9h.svelte-i1di9h{color:var(--color)}content.svelte-i1di9h.svelte-i1di9h{border:1px solid #ddd;display:flex;flex-direction:column;flex:flex-grow;flex-basis:100%;grid-column:1/3;padding:1rem;padding-top:0px}header.svelte-i1di9h.svelte-i1di9h{display:flex;width:100%;flex-direction:row}header.svelte-i1di9h nav.svelte-i1di9h{flex:1}header.svelte-i1di9h nav input.svelte-i1di9h{display:flex;flex-grow:2;margin:1rem}header.svelte-i1di9h nav button.svelte-i1di9h{background-color:var(--color-bg);color:var(--color);padding:0.5rem}profile.svelte-i1di9h.svelte-i1di9h{display:flex;flow-direction:row}profile.svelte-i1di9h figure.svelte-i1di9h{padding-right:3rem;padding-left:3rem}profile.svelte-i1di9h info.svelte-i1di9h{display:flex;flex-direction:column;width:100%}profile.svelte-i1di9h info p.svelte-i1di9h{padding:0.5rem}posts.svelte-i1di9h.svelte-i1di9h{display:grid;grid-template-columns:1fr 1fr 1fr}related.svelte-i1di9h.svelte-i1di9h{display:flex;flex-direction:row;justify-content:space-evenly;margin-top:1rem;margin-bottom:1rem}nav.svelte-i1di9h a.svelte-i1di9h,a.svelte-i1di9h.svelte-i1di9h:visited,a.svelte-i1di9h.svelte-i1di9h:active{text-decoration:none;color:var(--color-text)}content.svelte-t7gl8c{display:flex;flex:flex-shrink;flex-grow:1;justify-content:center}content.svelte-9c6eed.svelte-9c6eed.svelte-9c6eed{border:1px solid #ddd;display:flex;flex-direction:column;flex:flex-grow;flex-basis:100%;grid-column:1/3;--sub-color:#999;--title-color:#000}main.svelte-9c6eed.svelte-9c6eed.svelte-9c6eed{display:flex;flex-direction:column}header.svelte-9c6eed.svelte-9c6eed.svelte-9c6eed{display:flex;width:100%;flex-direction:row}header.svelte-9c6eed nav.svelte-9c6eed.svelte-9c6eed{flex:1;margin-left:1rem;margin-right:1rem}header.svelte-9c6eed nav input.svelte-9c6eed.svelte-9c6eed{display:flex;flex-grow:2;margin:1rem}header.svelte-9c6eed nav.svelte-9c6eed button.svelte-9c6eed{background-color:var(--color-bg);color:var(--color);padding:0.5rem}hr.svelte-9c6eed.svelte-9c6eed.svelte-9c6eed{margin-top:0.5rem;margin-bottom:0.5rem}figcaption.svelte-9c6eed.svelte-9c6eed.svelte-9c6eed{padding:1rem}figcaption.svelte-9c6eed a.svelte-9c6eed.svelte-9c6eed{color:var(--color-secondary);font-size:0.8em}figcaption.svelte-9c6eed p.svelte-9c6eed.svelte-9c6eed{font-weight:bold;margin-top:unset}figcaption.svelte-9c6eed video-actions.svelte-9c6eed.svelte-9c6eed{color:var(--sub-color);font-weight:unset;display:flex;flex-grow:1;justify-content:space-between}card.svelte-9c6eed.svelte-9c6eed.svelte-9c6eed{display:flex;margin-top:0.2rem;margin-bottom:0.2rem;--img-width:120px;--img-height:80px;--font-size:0.8em}card.svelte-9c6eed img.svelte-9c6eed.svelte-9c6eed{width:var(--img-width);height:var(--img-height)}card.svelte-9c6eed info.svelte-9c6eed.svelte-9c6eed{display:flex;flex-direction:column;padding:0.2rem;color:var(--sub-color);font-size:var(--font-size)}card.svelte-9c6eed info h4.svelte-9c6eed.svelte-9c6eed{font-weight:bold;color:var(--title-color);margin:0px}promotion.svelte-9c6eed.svelte-9c6eed.svelte-9c6eed{display:flex;flex-direction:column}promotion.svelte-9c6eed card.svelte-9c6eed.svelte-9c6eed{--img-width:4rem;--img-height:4rem}promotion.svelte-9c6eed content.svelte-9c6eed.svelte-9c6eed{border:unset;padding-left:4rem}comments.svelte-9c6eed nav.svelte-9c6eed.svelte-9c6eed{justify-content:left;font-weight:unset}comments.svelte-9c6eed nav sort.svelte-9c6eed.svelte-9c6eed{color:var(--sub-color)}comments.svelte-9c6eed card.svelte-9c6eed.svelte-9c6eed{color:black;--img-width:4rem;--img-height:4rem;--font-size:1em}comments.svelte-9c6eed card p.svelte-9c6eed.svelte-9c6eed{color:black}comments.svelte-9c6eed card reply.svelte-9c6eed.svelte-9c6eed{color:var(--color)}lower.svelte-9c6eed.svelte-9c6eed.svelte-9c6eed{padding:1rem}nav#vote-nav.svelte-9c6eed.svelte-9c6eed.svelte-9c6eed{justify-content:flex-end}nav.svelte-9c6eed a.svelte-9c6eed.svelte-9c6eed,a.svelte-9c6eed.svelte-9c6eed.svelte-9c6eed:visited,a.svelte-9c6eed.svelte-9c6eed.svelte-9c6eed:active{text-decoration:none;color:var(--color-text)}content.svelte-fwzpwr.svelte-fwzpwr{display:flex;flex:flex-shrink;flex-grow:1;justify-content:center}tile.svelte-fwzpwr.svelte-fwzpwr{padding:0.5rem;display:flex;flex-direction:row;border:1px solid #eee;max-width:50vh}tile.svelte-fwzpwr middle.svelte-fwzpwr{padding-left:0.5rem;padding-right:0.5rem;display:flex;flex-direction:column;justify-content:flex-start;flex-shrink:3}tile.svelte-fwzpwr middle h4.svelte-fwzpwr{margin-top:0;margin-bottom:0}tile.svelte-fwzpwr right.svelte-fwzpwr{flex-shrink:0}tile.svelte-fwzpwr right button.svelte-fwzpwr{padding:0.2rem}content.svelte-12f1gxf.svelte-12f1gxf{display:flex;flex:flex-shrink;flex-grow:1;justify-content:center}card.svelte-12f1gxf.svelte-12f1gxf{display:flex;flex-direction:column;border:1px solid #eee;width:min-content}card.svelte-12f1gxf top img.svelte-12f1gxf{padding:0;margin:0;width:480px}card.svelte-12f1gxf middle.svelte-12f1gxf{padding-left:0.5rem;padding-right:0.5rem;display:flex;flex-direction:column;justify-content:flex-start}card.svelte-12f1gxf middle h4.svelte-12f1gxf{margin:0}card.svelte-12f1gxf bottom.svelte-12f1gxf{flex-shrink:0}card.svelte-12f1gxf bottom button.svelte-12f1gxf{padding:0.2rem}content.svelte-cwnhgy{display:flex;justify-content:center}button.svelte-cwnhgy{padding:5em}modal.svelte-cwnhgy{display:flex;position:fixed;align-items:center;justify-content:center;top:0;left:0;right:0;bottom:0;z-index:10;background:rgba(244,244,244,0.75);padding:0px}modal-content.svelte-cwnhgy{flex-direction:column;background:white;border:1px solid var(--color-accent);border-radius:5px;max-height:300px;min-height:300px;max-width:300px;width:100%;z-index:20;padding:0.5em}content.svelte-1ofkzoq.svelte-1ofkzoq{display:flex;flex-direction:column}nav-bar.svelte-1ofkzoq.svelte-1ofkzoq{display:flex;flex-direction:row;width:100%;justify-content:space-evenly;padding:1em;border:1px solid var(--color-accent);margin-bottom:1em}nav-bar.svelte-1ofkzoq middle.svelte-1ofkzoq{display:flex;flex:2;justify-content:center;padding-left:1em;padding-right:1em}nav-bar.svelte-1ofkzoq middle input.svelte-1ofkzoq{width:100%}.alternate.svelte-1ofkzoq.svelte-1ofkzoq{background-color:#ddd}content.svelte-1lajyim.svelte-1lajyim{display:flex;flex:flex-shrink;flex-grow:1;justify-content:center}panel.svelte-1lajyim.svelte-1lajyim{display:flex;flex-direction:column;border:1px solid #eee;width:min-content}panel.svelte-1lajyim top.svelte-1lajyim{width:480px;padding:0.5rem}panel.svelte-1lajyim middle.svelte-1lajyim{padding-left:0.5rem;padding-right:0.5rem;display:flex;flex-direction:column;justify-content:flex-start}panel.svelte-1lajyim bottom.svelte-1lajyim{flex-shrink:0;display:flex;flex-direction:row;justify-content:space-evenly}panel.svelte-1lajyim bottom button.svelte-1lajyim{display:flex;margin:0;border-radius:unset;width:100%;justify-content:space-evenly}button.svelte-1lajyim.svelte-1lajyim:hover{filter:invert(20%)}button#cancel.svelte-1lajyim.svelte-1lajyim{background:unset;color:var(--color-text)}content.svelte-j1ijok.svelte-j1ijok{display:flex;flex-direction:column}tabs.svelte-j1ijok.svelte-j1ijok{margin-top:1em;display:flex;justify-content:space-evenly;border-bottom:var(--color-accent)}tabs.svelte-j1ijok a.svelte-j1ijok{text-decoration:none;color:var(--color-text);border-bottom:1px solid var(--color-accent);border-width:thin;width:100%;text-align:center;padding:2rem 0rem 0.5rem}tabs.svelte-j1ijok a.svelte-j1ijok:hover{box-shadow:-1px 0 black, 0 1px black, 1px 0 black, 0 -1px black}tabs.svelte-j1ijok a.active.svelte-j1ijok{background-color:var(--color-bg-secondary)}panel.svelte-j1ijok.svelte-j1ijok{display:none}panel.active.svelte-j1ijok.svelte-j1ijok{border:1px solid var(--color-accent);display:flex;flex-direction:column;padding:1em}content.svelte-1gt8gt4.svelte-1gt8gt4{display:flex;flex:flex-shrink;flex-grow:1;justify-content:center}calendar.svelte-1gt8gt4.svelte-1gt8gt4{display:grid;grid-template-columns:repeat(7, 1fr);grid-template-rows:auto;max-width:300px;outline:1px solid var(--color-accent)}calendar.svelte-1gt8gt4 day.svelte-1gt8gt4{background-color:var(--color-bg-secondary);font-weight:bold;padding-left:0.3rem;padding-right:0.3rem}calendar.svelte-1gt8gt4 month.svelte-1gt8gt4{grid-column:span 7;font-size:1.5em;font-weight:bold;text-align:center}calendar.svelte-1gt8gt4 date.svelte-1gt8gt4{padding:0.3rem}calendar.svelte-1gt8gt4 date.svelte-1gt8gt4:hover{background-color:var(--color-bg-secondary)}content.svelte-1c5ml3s.svelte-1c5ml3s{display:flex;flex-direction:column}icecream.svelte-1c5ml3s.svelte-1c5ml3s{position:relative}icecream.svelte-1c5ml3s background.svelte-1c5ml3s{position:absolute;top:0;bottom:0;left:0;right:0;z-index:-1}icecream.svelte-1c5ml3s background img.svelte-1c5ml3s{width:100vh}overlay.svelte-1c5ml3s.svelte-1c5ml3s{display:grid;grid-template-columns:repeat(2,1fr);grid-template-rows:auto;grid-template-areas:"topleft topright" "middle middle" - "bottomleft bottomright";height:100vh}one.svelte-1c5ml3s.svelte-1c5ml3s{grid-area:topright;background-color:var(--color-accent);border-radius:50% 0 0;font-size:2em;color:#fff;text-align:right}two.svelte-1c5ml3s.svelte-1c5ml3s{grid-area:middle;background-color:var(--color-accent);opacity:80%;font-size:2em;color:#fff;text-align:center;border-radius:20% 0 20% 0}three.svelte-1c5ml3s.svelte-1c5ml3s{grid-area:bottomleft;background-color:var(--color-accent);opacity:90%;font-size:2em;color:#fff;border-radius:0 0 10% 40%;padding:1rem}code-view.svelte-1qac1jo.svelte-1qac1jo{display:flex;flex-direction:row;justify-content:space-evenly}code-view.svelte-1qac1jo css-view.svelte-1qac1jo{flex:1}code-view.svelte-1qac1jo html-view.svelte-1qac1jo{flex:2;max-width:50%}content.svelte-1xw0xeo.svelte-1xw0xeo{border:1px solid #ddd;display:flex;flex-direction:column;flex:flex-grow;flex-basis:100%;grid-column:1/3;padding:1rem}header.svelte-1xw0xeo.svelte-1xw0xeo{display:flex;flex:flex-grow;width:100%;flex-direction:row;padding:unset}nav.svelte-1xw0xeo.svelte-1xw0xeo{flex:1}figure.svelte-1xw0xeo.svelte-1xw0xeo{display:flex;justify-content:center;margin-top:4rem}search.svelte-1xw0xeo.svelte-1xw0xeo{display:flex;justify-content:center;flex-direction:column;margin-top:2rem}search.svelte-1xw0xeo input.svelte-1xw0xeo{align-self:center;width:50ch}search.svelte-1xw0xeo buttons.svelte-1xw0xeo{display:flex;justify-content:space-evenly}button.svelte-1xw0xeo.svelte-1xw0xeo{padding:0.5rem;background-color:#ddd;border:unset;color:#000;font-weight:unset}nav.svelte-1xw0xeo.svelte-1xw0xeo{font-weight:normal}a.svelte-1xw0xeo.svelte-1xw0xeo{color:unset;font-weight:normal}content.svelte-oxwxiv.svelte-oxwxiv{border:1px solid #ddd;display:flex;flex-direction:column;flex:flex-grow;flex-basis:100%;grid-column:1/3;padding:1rem;--sub-color:#999;--title-color:#000}header.svelte-oxwxiv.svelte-oxwxiv{display:flex;width:100%;flex-direction:row}nav.svelte-oxwxiv.svelte-oxwxiv{flex:1}nav.svelte-oxwxiv input.svelte-oxwxiv{display:flex;flex-grow:2;margin:1rem}logo.svelte-oxwxiv.svelte-oxwxiv{font-weight:bold;font-size:1rem;color:black}button.svelte-oxwxiv.svelte-oxwxiv{background-color:var(--color-bg);color:var(--color);padding:0.5rem;border-radius:2px}main.svelte-oxwxiv.svelte-oxwxiv{display:flex;flex-direction:row}figcaption.svelte-oxwxiv a.svelte-oxwxiv{color:var(--color-secondary);font-size:0.8em}figcaption.svelte-oxwxiv p.svelte-oxwxiv{font-weight:bold;margin-top:unset}figcaption.svelte-oxwxiv video-actions.svelte-oxwxiv{color:var(--sub-color);font-weight:unset;display:flex;flex-grow:1;justify-content:space-between}content.svelte-1prpjq7.svelte-1prpjq7{border:1px solid #ddd;display:flex;flex-direction:row;flex:flex-grow;flex-basis:100%;grid-column:1/3;padding:0rem}middle.svelte-1prpjq7.svelte-1prpjq7{display:flex;flex:2;flex-direction:column}header.svelte-1prpjq7.svelte-1prpjq7{width:100%;text-align:unset}header.svelte-1prpjq7 nav.svelte-1prpjq7{justify-content:left}header.svelte-1prpjq7 nav back.svelte-1prpjq7{padding-left:1rem;padding-right:1rem}header.svelte-1prpjq7 nav name h4.svelte-1prpjq7{margin:unset;padding:unset}header.svelte-1prpjq7 nav name span.svelte-1prpjq7{font-size:0.8em;font-weight:normal}middle.svelte-1prpjq7 images.svelte-1prpjq7{display:grid;grid-template-columns:1fr min-content}middle.svelte-1prpjq7 images figure#background.svelte-1prpjq7{z-index:-1;grid-column:1/2;grid-row:1/ span 2}figure#background.svelte-1prpjq7 img.svelte-1prpjq7{height:200px;min-width:500px}middle.svelte-1prpjq7 images figure#avatar.svelte-1prpjq7{z-index:5;grid-column:1/1;grid-row:2/2}middle.svelte-1prpjq7 images figure#avatar img.svelte-1prpjq7{z-index:5;position:relative;top:90px;left:10px;width:128px}figure#avatar.svelte-1prpjq7 img.svelte-1prpjq7{border-radius:50%;border:5px white solid}button#follow.svelte-1prpjq7.svelte-1prpjq7{padding:0.8rem;border-radius:30px;border:1px var(--color) solid;background:var(--color-bg);color:var(--color);position:relative;top:60px;left:220px}profile.svelte-1prpjq7.svelte-1prpjq7{margin-top:6rem;margin-left:1rem;margin-right:1rem}a.svelte-oov5yx.svelte-oov5yx{color:var(--color)}content.svelte-oov5yx.svelte-oov5yx{border:1px solid #ddd;display:flex;flex-direction:column;flex:flex-grow;flex-basis:100%;grid-column:1/3;padding:1rem}header.svelte-oov5yx.svelte-oov5yx{display:flex;width:100%;flex-direction:row}nav.svelte-oov5yx.svelte-oov5yx{flex:1}button.svelte-oov5yx.svelte-oov5yx{padding:0.5rem}profile.svelte-oov5yx.svelte-oov5yx{display:flex;flow-direction:row}profile.svelte-oov5yx figure.svelte-oov5yx{padding-right:3rem;padding-left:3rem}profile.svelte-oov5yx info.svelte-oov5yx{display:flex;flex-direction:column;width:100%}profile.svelte-oov5yx info p.svelte-oov5yx{padding:0.5rem}pins.svelte-oov5yx.svelte-oov5yx{display:flex;flex-direction:row;justify-content:space-evenly;margin-top:1rem;margin-bottom:1rem}:root{--pin-red:#e60023}content.svelte-1w7ltga.svelte-1w7ltga{border:1px solid #ddd;display:flex;flex-direction:column;flex:flex-grow;flex-basis:100%;grid-column:1/3;padding:1rem}header.svelte-1w7ltga.svelte-1w7ltga{display:flex;width:100%;flex-direction:row}header.svelte-1w7ltga nav.svelte-1w7ltga{display:flex;flex:1}header.svelte-1w7ltga nav input.svelte-1w7ltga{width:100%}header.svelte-1w7ltga nav button.svelte-1w7ltga{border-radius:30px;background-color:var(--color-bg-secondary);border:unset;color:var(--color-text);padding-left:1rem;padding-right:1rem}header.svelte-1w7ltga nav button#signup.svelte-1w7ltga{background-color:var(--pin-red);color:var(--color-bg)}header.svelte-1w7ltga nav a.svelte-1w7ltga{color:var(--text-color)}header.svelte-1w7ltga logo.svelte-1w7ltga{color:var(--pin-red);display:flex;font-size:1.2em}header.svelte-1w7ltga left.svelte-1w7ltga{display:flex;justify-content:space-evenly;padding:1em;flex:2}header.svelte-1w7ltga input.svelte-1w7ltga{border-radius:30px;flex:3;padding:1rem}profile.svelte-1w7ltga.svelte-1w7ltga{display:flex;flex-direction:row;width:100%;justify-content:center}profile.svelte-1w7ltga info.svelte-1w7ltga{margin-right:2em}profile.svelte-1w7ltga h1.svelte-1w7ltga{margin-bottom:unset;font-size:3em}profile.svelte-1w7ltga p.svelte-1w7ltga{margin-bottom:0.5rem;margin-top:0.5rem}content.svelte-t7gl8c{display:flex;flex:flex-shrink;flex-grow:1;justify-content:center}content.svelte-1lajyim.svelte-1lajyim{display:flex;flex:flex-shrink;flex-grow:1;justify-content:center}panel.svelte-1lajyim.svelte-1lajyim{display:flex;flex-direction:column;border:1px solid #eee;width:min-content}panel.svelte-1lajyim top.svelte-1lajyim{width:480px;padding:0.5rem}panel.svelte-1lajyim middle.svelte-1lajyim{padding-left:0.5rem;padding-right:0.5rem;display:flex;flex-direction:column;justify-content:flex-start}panel.svelte-1lajyim bottom.svelte-1lajyim{flex-shrink:0;display:flex;flex-direction:row;justify-content:space-evenly}panel.svelte-1lajyim bottom button.svelte-1lajyim{display:flex;margin:0;border-radius:unset;width:100%;justify-content:space-evenly}button.svelte-1lajyim.svelte-1lajyim:hover{filter:invert(20%)}button#cancel.svelte-1lajyim.svelte-1lajyim{background:unset;color:var(--color-text)}content.svelte-tbrdkg.svelte-tbrdkg{display:flex;flex-direction:column}nav-bar.svelte-tbrdkg.svelte-tbrdkg{display:flex;flex-direction:row;width:100%;justify-content:space-evenly;padding:1em;border:1px solid var(--color-accent);margin-bottom:1em}nav-bar.svelte-tbrdkg middle.svelte-tbrdkg{display:flex;flex:2;justify-content:center;padding-left:1em;padding-right:1em}nav-bar.svelte-tbrdkg middle input.svelte-tbrdkg{width:100%}.alternate.svelte-tbrdkg.svelte-tbrdkg{background-color:#ddd}content.svelte-fwzpwr.svelte-fwzpwr{display:flex;flex:flex-shrink;flex-grow:1;justify-content:center}tile.svelte-fwzpwr.svelte-fwzpwr{padding:0.5rem;display:flex;flex-direction:row;border:1px solid #eee;max-width:50vh}tile.svelte-fwzpwr middle.svelte-fwzpwr{padding-left:0.5rem;padding-right:0.5rem;display:flex;flex-direction:column;justify-content:flex-start;flex-shrink:3}tile.svelte-fwzpwr middle h4.svelte-fwzpwr{margin-top:0;margin-bottom:0}tile.svelte-fwzpwr right.svelte-fwzpwr{flex-shrink:0}tile.svelte-fwzpwr right button.svelte-fwzpwr{padding:0.2rem}content.svelte-1rd3ni4.svelte-1rd3ni4{display:flex;flex:flex-shrink;flex-grow:1;justify-content:center}card.svelte-1rd3ni4.svelte-1rd3ni4{display:flex;flex-direction:column;border:1px solid #eee;width:min-content}card.svelte-1rd3ni4 top img.svelte-1rd3ni4{padding:0;margin:0;min-width:480px}card.svelte-1rd3ni4 middle.svelte-1rd3ni4{padding-left:0.5rem;padding-right:0.5rem;display:flex;flex-direction:column;justify-content:flex-start}card.svelte-1rd3ni4 middle h4.svelte-1rd3ni4{margin:0}card.svelte-1rd3ni4 bottom.svelte-1rd3ni4{flex-shrink:0}card.svelte-1rd3ni4 bottom button.svelte-1rd3ni4{padding:0.2rem}content.svelte-j1ijok.svelte-j1ijok{display:flex;flex-direction:column}tabs.svelte-j1ijok.svelte-j1ijok{margin-top:1em;display:flex;justify-content:space-evenly;border-bottom:var(--color-accent)}tabs.svelte-j1ijok a.svelte-j1ijok{text-decoration:none;color:var(--color-text);border-bottom:1px solid var(--color-accent);border-width:thin;width:100%;text-align:center;padding:2rem 0rem 0.5rem}tabs.svelte-j1ijok a.svelte-j1ijok:hover{box-shadow:-1px 0 black, 0 1px black, 1px 0 black, 0 -1px black}tabs.svelte-j1ijok a.active.svelte-j1ijok{background-color:var(--color-bg-secondary)}panel.svelte-j1ijok.svelte-j1ijok{display:none}panel.active.svelte-j1ijok.svelte-j1ijok{border:1px solid var(--color-accent);display:flex;flex-direction:column;padding:1em}content.svelte-1n9y415.svelte-1n9y415{display:flex;flex-direction:column}icecream.svelte-1n9y415.svelte-1n9y415{position:relative}icecream.svelte-1n9y415 background.svelte-1n9y415{position:absolute;top:0;bottom:0;left:0;right:0;z-index:-1}icecream.svelte-1n9y415 background img.svelte-1n9y415{width:100vh}overlay.svelte-1n9y415.svelte-1n9y415{display:grid;grid-template-columns:repeat(2,1fr);grid-template-rows:auto;grid-template-areas:"topleft topright" + "bottomleft bottomright";height:100vh}one.svelte-1c5ml3s.svelte-1c5ml3s{grid-area:topright;background-color:var(--color-accent);border-radius:50% 0 0;font-size:2em;color:#fff;text-align:right}two.svelte-1c5ml3s.svelte-1c5ml3s{grid-area:middle;background-color:var(--color-accent);opacity:80%;font-size:2em;color:#fff;text-align:center;border-radius:20% 0 20% 0}three.svelte-1c5ml3s.svelte-1c5ml3s{grid-area:bottomleft;background-color:var(--color-accent);opacity:90%;font-size:2em;color:#fff;border-radius:0 0 10% 40%;padding:1rem}code-view.svelte-1qac1jo.svelte-1qac1jo{display:flex;flex-direction:row;justify-content:space-evenly}code-view.svelte-1qac1jo css-view.svelte-1qac1jo{flex:1}code-view.svelte-1qac1jo html-view.svelte-1qac1jo{flex:2;max-width:50%}content.svelte-1xw0xeo.svelte-1xw0xeo{border:1px solid #ddd;display:flex;flex-direction:column;flex:flex-grow;flex-basis:100%;grid-column:1/3;padding:1rem}header.svelte-1xw0xeo.svelte-1xw0xeo{display:flex;flex:flex-grow;width:100%;flex-direction:row;padding:unset}nav.svelte-1xw0xeo.svelte-1xw0xeo{flex:1}figure.svelte-1xw0xeo.svelte-1xw0xeo{display:flex;justify-content:center;margin-top:4rem}search.svelte-1xw0xeo.svelte-1xw0xeo{display:flex;justify-content:center;flex-direction:column;margin-top:2rem}search.svelte-1xw0xeo input.svelte-1xw0xeo{align-self:center;width:50ch}search.svelte-1xw0xeo buttons.svelte-1xw0xeo{display:flex;justify-content:space-evenly}button.svelte-1xw0xeo.svelte-1xw0xeo{padding:0.5rem;background-color:#ddd;border:unset;color:#000;font-weight:unset}nav.svelte-1xw0xeo.svelte-1xw0xeo{font-weight:normal}a.svelte-1xw0xeo.svelte-1xw0xeo{color:unset;font-weight:normal}content.svelte-oxwxiv.svelte-oxwxiv{border:1px solid #ddd;display:flex;flex-direction:column;flex:flex-grow;flex-basis:100%;grid-column:1/3;padding:1rem;--sub-color:#999;--title-color:#000}header.svelte-oxwxiv.svelte-oxwxiv{display:flex;width:100%;flex-direction:row}nav.svelte-oxwxiv.svelte-oxwxiv{flex:1}nav.svelte-oxwxiv input.svelte-oxwxiv{display:flex;flex-grow:2;margin:1rem}logo.svelte-oxwxiv.svelte-oxwxiv{font-weight:bold;font-size:1rem;color:black}button.svelte-oxwxiv.svelte-oxwxiv{background-color:var(--color-bg);color:var(--color);padding:0.5rem;border-radius:2px}main.svelte-oxwxiv.svelte-oxwxiv{display:flex;flex-direction:row}figcaption.svelte-oxwxiv a.svelte-oxwxiv{color:var(--color-secondary);font-size:0.8em}figcaption.svelte-oxwxiv p.svelte-oxwxiv{font-weight:bold;margin-top:unset}figcaption.svelte-oxwxiv video-actions.svelte-oxwxiv{color:var(--sub-color);font-weight:unset;display:flex;flex-grow:1;justify-content:space-between}content.svelte-1prpjq7.svelte-1prpjq7{border:1px solid #ddd;display:flex;flex-direction:row;flex:flex-grow;flex-basis:100%;grid-column:1/3;padding:0rem}middle.svelte-1prpjq7.svelte-1prpjq7{display:flex;flex:2;flex-direction:column}header.svelte-1prpjq7.svelte-1prpjq7{width:100%;text-align:unset}header.svelte-1prpjq7 nav.svelte-1prpjq7{justify-content:left}header.svelte-1prpjq7 nav back.svelte-1prpjq7{padding-left:1rem;padding-right:1rem}header.svelte-1prpjq7 nav name h4.svelte-1prpjq7{margin:unset;padding:unset}header.svelte-1prpjq7 nav name span.svelte-1prpjq7{font-size:0.8em;font-weight:normal}middle.svelte-1prpjq7 images.svelte-1prpjq7{display:grid;grid-template-columns:1fr min-content}middle.svelte-1prpjq7 images figure#background.svelte-1prpjq7{z-index:-1;grid-column:1/2;grid-row:1/ span 2}figure#background.svelte-1prpjq7 img.svelte-1prpjq7{height:200px;min-width:500px}middle.svelte-1prpjq7 images figure#avatar.svelte-1prpjq7{z-index:5;grid-column:1/1;grid-row:2/2}middle.svelte-1prpjq7 images figure#avatar img.svelte-1prpjq7{z-index:5;position:relative;top:90px;left:10px;width:128px}figure#avatar.svelte-1prpjq7 img.svelte-1prpjq7{border-radius:50%;border:5px white solid}button#follow.svelte-1prpjq7.svelte-1prpjq7{padding:0.8rem;border-radius:30px;border:1px var(--color) solid;background:var(--color-bg);color:var(--color);position:relative;top:60px;left:220px}profile.svelte-1prpjq7.svelte-1prpjq7{margin-top:6rem;margin-left:1rem;margin-right:1rem}a.svelte-oov5yx.svelte-oov5yx{color:var(--color)}content.svelte-oov5yx.svelte-oov5yx{border:1px solid #ddd;display:flex;flex-direction:column;flex:flex-grow;flex-basis:100%;grid-column:1/3;padding:1rem}header.svelte-oov5yx.svelte-oov5yx{display:flex;width:100%;flex-direction:row}nav.svelte-oov5yx.svelte-oov5yx{flex:1}button.svelte-oov5yx.svelte-oov5yx{padding:0.5rem}profile.svelte-oov5yx.svelte-oov5yx{display:flex;flow-direction:row}profile.svelte-oov5yx figure.svelte-oov5yx{padding-right:3rem;padding-left:3rem}profile.svelte-oov5yx info.svelte-oov5yx{display:flex;flex-direction:column;width:100%}profile.svelte-oov5yx info p.svelte-oov5yx{padding:0.5rem}pins.svelte-oov5yx.svelte-oov5yx{display:flex;flex-direction:row;justify-content:space-evenly;margin-top:1rem;margin-bottom:1rem}:root{--pin-red:#e60023}content.svelte-1w7ltga.svelte-1w7ltga{border:1px solid #ddd;display:flex;flex-direction:column;flex:flex-grow;flex-basis:100%;grid-column:1/3;padding:1rem}header.svelte-1w7ltga.svelte-1w7ltga{display:flex;width:100%;flex-direction:row}header.svelte-1w7ltga nav.svelte-1w7ltga{display:flex;flex:1}header.svelte-1w7ltga nav input.svelte-1w7ltga{width:100%}header.svelte-1w7ltga nav button.svelte-1w7ltga{border-radius:30px;background-color:var(--color-bg-secondary);border:unset;color:var(--color-text);padding-left:1rem;padding-right:1rem}header.svelte-1w7ltga nav button#signup.svelte-1w7ltga{background-color:var(--pin-red);color:var(--color-bg)}header.svelte-1w7ltga nav a.svelte-1w7ltga{color:var(--text-color)}header.svelte-1w7ltga logo.svelte-1w7ltga{color:var(--pin-red);display:flex;font-size:1.2em}header.svelte-1w7ltga left.svelte-1w7ltga{display:flex;justify-content:space-evenly;padding:1em;flex:2}header.svelte-1w7ltga input.svelte-1w7ltga{border-radius:30px;flex:3;padding:1rem}profile.svelte-1w7ltga.svelte-1w7ltga{display:flex;flex-direction:row;width:100%;justify-content:center}profile.svelte-1w7ltga info.svelte-1w7ltga{margin-right:2em}profile.svelte-1w7ltga h1.svelte-1w7ltga{margin-bottom:unset;font-size:3em}profile.svelte-1w7ltga p.svelte-1w7ltga{margin-bottom:0.5rem;margin-top:0.5rem}content.svelte-t7gl8c{display:flex;flex:flex-shrink;flex-grow:1;justify-content:center}content.svelte-fwzpwr.svelte-fwzpwr{display:flex;flex:flex-shrink;flex-grow:1;justify-content:center}tile.svelte-fwzpwr.svelte-fwzpwr{padding:0.5rem;display:flex;flex-direction:row;border:1px solid #eee;max-width:50vh}tile.svelte-fwzpwr middle.svelte-fwzpwr{padding-left:0.5rem;padding-right:0.5rem;display:flex;flex-direction:column;justify-content:flex-start;flex-shrink:3}tile.svelte-fwzpwr middle h4.svelte-fwzpwr{margin-top:0;margin-bottom:0}tile.svelte-fwzpwr right.svelte-fwzpwr{flex-shrink:0}tile.svelte-fwzpwr right button.svelte-fwzpwr{padding:0.2rem}content.svelte-1lajyim.svelte-1lajyim{display:flex;flex:flex-shrink;flex-grow:1;justify-content:center}panel.svelte-1lajyim.svelte-1lajyim{display:flex;flex-direction:column;border:1px solid #eee;width:min-content}panel.svelte-1lajyim top.svelte-1lajyim{width:480px;padding:0.5rem}panel.svelte-1lajyim middle.svelte-1lajyim{padding-left:0.5rem;padding-right:0.5rem;display:flex;flex-direction:column;justify-content:flex-start}panel.svelte-1lajyim bottom.svelte-1lajyim{flex-shrink:0;display:flex;flex-direction:row;justify-content:space-evenly}panel.svelte-1lajyim bottom button.svelte-1lajyim{display:flex;margin:0;border-radius:unset;width:100%;justify-content:space-evenly}button.svelte-1lajyim.svelte-1lajyim:hover{filter:invert(20%)}button#cancel.svelte-1lajyim.svelte-1lajyim{background:unset;color:var(--color-text)}content.svelte-tbrdkg.svelte-tbrdkg{display:flex;flex-direction:column}nav-bar.svelte-tbrdkg.svelte-tbrdkg{display:flex;flex-direction:row;width:100%;justify-content:space-evenly;padding:1em;border:1px solid var(--color-accent);margin-bottom:1em}nav-bar.svelte-tbrdkg middle.svelte-tbrdkg{display:flex;flex:2;justify-content:center;padding-left:1em;padding-right:1em}nav-bar.svelte-tbrdkg middle input.svelte-tbrdkg{width:100%}.alternate.svelte-tbrdkg.svelte-tbrdkg{background-color:#ddd}content.svelte-1rd3ni4.svelte-1rd3ni4{display:flex;flex:flex-shrink;flex-grow:1;justify-content:center}card.svelte-1rd3ni4.svelte-1rd3ni4{display:flex;flex-direction:column;border:1px solid #eee;width:min-content}card.svelte-1rd3ni4 top img.svelte-1rd3ni4{padding:0;margin:0;min-width:480px}card.svelte-1rd3ni4 middle.svelte-1rd3ni4{padding-left:0.5rem;padding-right:0.5rem;display:flex;flex-direction:column;justify-content:flex-start}card.svelte-1rd3ni4 middle h4.svelte-1rd3ni4{margin:0}card.svelte-1rd3ni4 bottom.svelte-1rd3ni4{flex-shrink:0}card.svelte-1rd3ni4 bottom button.svelte-1rd3ni4{padding:0.2rem}content.svelte-j1ijok.svelte-j1ijok{display:flex;flex-direction:column}tabs.svelte-j1ijok.svelte-j1ijok{margin-top:1em;display:flex;justify-content:space-evenly;border-bottom:var(--color-accent)}tabs.svelte-j1ijok a.svelte-j1ijok{text-decoration:none;color:var(--color-text);border-bottom:1px solid var(--color-accent);border-width:thin;width:100%;text-align:center;padding:2rem 0rem 0.5rem}tabs.svelte-j1ijok a.svelte-j1ijok:hover{box-shadow:-1px 0 black, 0 1px black, 1px 0 black, 0 -1px black}tabs.svelte-j1ijok a.active.svelte-j1ijok{background-color:var(--color-bg-secondary)}panel.svelte-j1ijok.svelte-j1ijok{display:none}panel.active.svelte-j1ijok.svelte-j1ijok{border:1px solid var(--color-accent);display:flex;flex-direction:column;padding:1em}content.svelte-1gt8gt4.svelte-1gt8gt4{display:flex;flex:flex-shrink;flex-grow:1;justify-content:center}calendar.svelte-1gt8gt4.svelte-1gt8gt4{display:grid;grid-template-columns:repeat(7, 1fr);grid-template-rows:auto;max-width:300px;outline:1px solid var(--color-accent)}calendar.svelte-1gt8gt4 day.svelte-1gt8gt4{background-color:var(--color-bg-secondary);font-weight:bold;padding-left:0.3rem;padding-right:0.3rem}calendar.svelte-1gt8gt4 month.svelte-1gt8gt4{grid-column:span 7;font-size:1.5em;font-weight:bold;text-align:center}calendar.svelte-1gt8gt4 date.svelte-1gt8gt4{padding:0.3rem}calendar.svelte-1gt8gt4 date.svelte-1gt8gt4:hover{background-color:var(--color-bg-secondary)}content.svelte-1n9y415.svelte-1n9y415{display:flex;flex-direction:column}icecream.svelte-1n9y415.svelte-1n9y415{position:relative}icecream.svelte-1n9y415 background.svelte-1n9y415{position:absolute;top:0;bottom:0;left:0;right:0;z-index:-1}icecream.svelte-1n9y415 background img.svelte-1n9y415{width:100vh}overlay.svelte-1n9y415.svelte-1n9y415{display:grid;grid-template-columns:repeat(2,1fr);grid-template-rows:auto;grid-template-areas:"topleft topright" "middle middle" - "bottomleft bottomright"}one.svelte-1n9y415.svelte-1n9y415{grid-area:topright;background-color:var(--color-accent);border-radius:50% 0 0;font-size:0.8em;color:#fff;text-align:right}two.svelte-1n9y415.svelte-1n9y415{grid-area:middle;background-color:var(--color-accent);opacity:80%;font-size:0.8em;color:#fff;text-align:center;border-radius:20% 0 20% 0}three.svelte-1n9y415.svelte-1n9y415{grid-area:bottomleft;background-color:var(--color-accent);opacity:90%;font-size:0.8em;color:#fff;text-align:center;border-radius:0 0 10% 40%}content.svelte-1gt8gt4.svelte-1gt8gt4{display:flex;flex:flex-shrink;flex-grow:1;justify-content:center}calendar.svelte-1gt8gt4.svelte-1gt8gt4{display:grid;grid-template-columns:repeat(7, 1fr);grid-template-rows:auto;max-width:300px;outline:1px solid var(--color-accent)}calendar.svelte-1gt8gt4 day.svelte-1gt8gt4{background-color:var(--color-bg-secondary);font-weight:bold;padding-left:0.3rem;padding-right:0.3rem}calendar.svelte-1gt8gt4 month.svelte-1gt8gt4{grid-column:span 7;font-size:1.5em;font-weight:bold;text-align:center}calendar.svelte-1gt8gt4 date.svelte-1gt8gt4{padding:0.3rem}calendar.svelte-1gt8gt4 date.svelte-1gt8gt4:hover{background-color:var(--color-bg-secondary)} \ No newline at end of file + "bottomleft bottomright"}one.svelte-1n9y415.svelte-1n9y415{grid-area:topright;background-color:var(--color-accent);border-radius:50% 0 0;font-size:0.8em;color:#fff;text-align:right}two.svelte-1n9y415.svelte-1n9y415{grid-area:middle;background-color:var(--color-accent);opacity:80%;font-size:0.8em;color:#fff;text-align:center;border-radius:20% 0 20% 0}three.svelte-1n9y415.svelte-1n9y415{grid-area:bottomleft;background-color:var(--color-accent);opacity:90%;font-size:0.8em;color:#fff;text-align:center;border-radius:0 0 10% 40%} \ No newline at end of file diff --git a/public/build/bundle.js b/public/build/bundle.js index 5970ddb..24daa87 100644 --- a/public/build/bundle.js +++ b/public/build/bundle.js @@ -1,15353 +1,10 @@ - -(function(l, r) { if (l.getElementById('livereloadscript')) return; r = l.createElement('script'); r.async = 1; r.src = '//' + (window.location.host || 'localhost').split(':')[0] + ':35729/livereload.js?snipver=1'; r.id = 'livereloadscript'; l.getElementsByTagName('head')[0].appendChild(r) })(window.document); -var app = (function () { - 'use strict'; - - function noop() { } - const identity = x => x; - function assign(tar, src) { - // @ts-ignore - for (const k in src) - tar[k] = src[k]; - return tar; - } - function add_location(element, file, line, column, char) { - element.__svelte_meta = { - loc: { file, line, column, char } - }; - } - function run(fn) { - return fn(); - } - function blank_object() { - return Object.create(null); - } - function run_all(fns) { - fns.forEach(run); - } - function is_function(thing) { - return typeof thing === 'function'; - } - function safe_not_equal(a, b) { - return a != a ? b == b : a !== b || ((a && typeof a === 'object') || typeof a === 'function'); - } - function is_empty(obj) { - return Object.keys(obj).length === 0; - } - function subscribe(store, ...callbacks) { - if (store == null) { - return noop; - } - const unsub = store.subscribe(...callbacks); - return unsub.unsubscribe ? () => unsub.unsubscribe() : unsub; - } - function action_destroyer(action_result) { - return action_result && is_function(action_result.destroy) ? action_result.destroy : noop; - } - - function append(target, node) { - target.appendChild(node); - } - function insert(target, node, anchor) { - target.insertBefore(node, anchor || null); - } - function detach(node) { - node.parentNode.removeChild(node); - } - function destroy_each(iterations, detaching) { - for (let i = 0; i < iterations.length; i += 1) { - if (iterations[i]) - iterations[i].d(detaching); - } - } - function element(name) { - return document.createElement(name); - } - function svg_element(name) { - return document.createElementNS('http://www.w3.org/2000/svg', name); - } - function text(data) { - return document.createTextNode(data); - } - function space() { - return text(' '); - } - function empty() { - return text(''); - } - function listen(node, event, handler, options) { - node.addEventListener(event, handler, options); - return () => node.removeEventListener(event, handler, options); - } - function attr(node, attribute, value) { - if (value == null) - node.removeAttribute(attribute); - else if (node.getAttribute(attribute) !== value) - node.setAttribute(attribute, value); - } - function set_custom_element_data(node, prop, value) { - if (prop in node) { - node[prop] = value; - } - else { - attr(node, prop, value); - } - } - function xlink_attr(node, attribute, value) { - node.setAttributeNS('http://www.w3.org/1999/xlink', attribute, value); - } - function children(element) { - return Array.from(element.childNodes); - } - function toggle_class(element, name, toggle) { - element.classList[toggle ? 'add' : 'remove'](name); - } - function custom_event(type, detail) { - const e = document.createEvent('CustomEvent'); - e.initCustomEvent(type, false, false, detail); - return e; - } - class HtmlTag { - constructor(anchor = null) { - this.a = anchor; - this.e = this.n = null; - } - m(html, target, anchor = null) { - if (!this.e) { - this.e = element(target.nodeName); - this.t = target; - this.h(html); - } - this.i(anchor); - } - h(html) { - this.e.innerHTML = html; - this.n = Array.from(this.e.childNodes); - } - i(anchor) { - for (let i = 0; i < this.n.length; i += 1) { - insert(this.t, this.n[i], anchor); - } - } - p(html) { - this.d(); - this.h(html); - this.i(this.a); - } - d() { - this.n.forEach(detach); - } - } - - let current_component; - function set_current_component(component) { - current_component = component; - } - function get_current_component() { - if (!current_component) - throw new Error('Function called outside component initialization'); - return current_component; - } - function onMount(fn) { - get_current_component().$$.on_mount.push(fn); - } - function afterUpdate(fn) { - get_current_component().$$.after_update.push(fn); - } - function createEventDispatcher() { - const component = get_current_component(); - return (type, detail) => { - const callbacks = component.$$.callbacks[type]; - if (callbacks) { - // TODO are there situations where events could be dispatched - // in a server (non-DOM) environment? - const event = custom_event(type, detail); - callbacks.slice().forEach(fn => { - fn.call(component, event); - }); - } - }; - } - // TODO figure out if we still want to support - // shorthand events, or if we want to implement - // a real bubbling mechanism - function bubble(component, event) { - const callbacks = component.$$.callbacks[event.type]; - if (callbacks) { - callbacks.slice().forEach(fn => fn(event)); - } - } - - const dirty_components = []; - const binding_callbacks = []; - const render_callbacks = []; - const flush_callbacks = []; - const resolved_promise = Promise.resolve(); - let update_scheduled = false; - function schedule_update() { - if (!update_scheduled) { - update_scheduled = true; - resolved_promise.then(flush); - } - } - function tick() { - schedule_update(); - return resolved_promise; - } - function add_render_callback(fn) { - render_callbacks.push(fn); - } - let flushing = false; - const seen_callbacks = new Set(); - function flush() { - if (flushing) - return; - flushing = true; - do { - // first, call beforeUpdate functions - // and update components - for (let i = 0; i < dirty_components.length; i += 1) { - const component = dirty_components[i]; - set_current_component(component); - update(component.$$); - } - set_current_component(null); - dirty_components.length = 0; - while (binding_callbacks.length) - binding_callbacks.pop()(); - // then, once components are updated, call - // afterUpdate functions. This may cause - // subsequent updates... - for (let i = 0; i < render_callbacks.length; i += 1) { - const callback = render_callbacks[i]; - if (!seen_callbacks.has(callback)) { - // ...so guard against infinite loops - seen_callbacks.add(callback); - callback(); - } - } - render_callbacks.length = 0; - } while (dirty_components.length); - while (flush_callbacks.length) { - flush_callbacks.pop()(); - } - update_scheduled = false; - flushing = false; - seen_callbacks.clear(); - } - function update($$) { - if ($$.fragment !== null) { - $$.update(); - run_all($$.before_update); - const dirty = $$.dirty; - $$.dirty = [-1]; - $$.fragment && $$.fragment.p($$.ctx, dirty); - $$.after_update.forEach(add_render_callback); - } - } - const outroing = new Set(); - let outros; - function group_outros() { - outros = { - r: 0, - c: [], - p: outros // parent group - }; - } - function check_outros() { - if (!outros.r) { - run_all(outros.c); - } - outros = outros.p; - } - function transition_in(block, local) { - if (block && block.i) { - outroing.delete(block); - block.i(local); - } - } - function transition_out(block, local, detach, callback) { - if (block && block.o) { - if (outroing.has(block)) - return; - outroing.add(block); - outros.c.push(() => { - outroing.delete(block); - if (callback) { - if (detach) - block.d(1); - callback(); - } - }); - block.o(local); - } - } - - const globals = (typeof window !== 'undefined' - ? window - : typeof globalThis !== 'undefined' - ? globalThis - : global); - - function get_spread_update(levels, updates) { - const update = {}; - const to_null_out = {}; - const accounted_for = { $$scope: 1 }; - let i = levels.length; - while (i--) { - const o = levels[i]; - const n = updates[i]; - if (n) { - for (const key in o) { - if (!(key in n)) - to_null_out[key] = 1; - } - for (const key in n) { - if (!accounted_for[key]) { - update[key] = n[key]; - accounted_for[key] = 1; - } - } - levels[i] = n; - } - else { - for (const key in o) { - accounted_for[key] = 1; - } - } - } - for (const key in to_null_out) { - if (!(key in update)) - update[key] = undefined; - } - return update; - } - function get_spread_object(spread_props) { - return typeof spread_props === 'object' && spread_props !== null ? spread_props : {}; - } - function create_component(block) { - block && block.c(); - } - function mount_component(component, target, anchor) { - const { fragment, on_mount, on_destroy, after_update } = component.$$; - fragment && fragment.m(target, anchor); - // onMount happens before the initial afterUpdate - add_render_callback(() => { - const new_on_destroy = on_mount.map(run).filter(is_function); - if (on_destroy) { - on_destroy.push(...new_on_destroy); - } - else { - // Edge case - component was destroyed immediately, - // most likely as a result of a binding initialising - run_all(new_on_destroy); - } - component.$$.on_mount = []; - }); - after_update.forEach(add_render_callback); - } - function destroy_component(component, detaching) { - const $$ = component.$$; - if ($$.fragment !== null) { - run_all($$.on_destroy); - $$.fragment && $$.fragment.d(detaching); - // TODO null out other refs, including component.$$ (but need to - // preserve final state?) - $$.on_destroy = $$.fragment = null; - $$.ctx = []; - } - } - function make_dirty(component, i) { - if (component.$$.dirty[0] === -1) { - dirty_components.push(component); - schedule_update(); - component.$$.dirty.fill(0); - } - component.$$.dirty[(i / 31) | 0] |= (1 << (i % 31)); - } - function init(component, options, instance, create_fragment, not_equal, props, dirty = [-1]) { - const parent_component = current_component; - set_current_component(component); - const prop_values = options.props || {}; - const $$ = component.$$ = { - fragment: null, - ctx: null, - // state - props, - update: noop, - not_equal, - bound: blank_object(), - // lifecycle - on_mount: [], - on_destroy: [], - before_update: [], - after_update: [], - context: new Map(parent_component ? parent_component.$$.context : []), - // everything else - callbacks: blank_object(), - dirty, - skip_bound: false - }; - let ready = false; - $$.ctx = instance - ? instance(component, prop_values, (i, ret, ...rest) => { - const value = rest.length ? rest[0] : ret; - if ($$.ctx && not_equal($$.ctx[i], $$.ctx[i] = value)) { - if (!$$.skip_bound && $$.bound[i]) - $$.bound[i](value); - if (ready) - make_dirty(component, i); - } - return ret; - }) - : []; - $$.update(); - ready = true; - run_all($$.before_update); - // `false` as a special case of no DOM component - $$.fragment = create_fragment ? create_fragment($$.ctx) : false; - if (options.target) { - if (options.hydrate) { - const nodes = children(options.target); - // eslint-disable-next-line @typescript-eslint/no-non-null-assertion - $$.fragment && $$.fragment.l(nodes); - nodes.forEach(detach); - } - else { - // eslint-disable-next-line @typescript-eslint/no-non-null-assertion - $$.fragment && $$.fragment.c(); - } - if (options.intro) - transition_in(component.$$.fragment); - mount_component(component, options.target, options.anchor); - flush(); - } - set_current_component(parent_component); - } - class SvelteComponent { - $destroy() { - destroy_component(this, 1); - this.$destroy = noop; - } - $on(type, callback) { - const callbacks = (this.$$.callbacks[type] || (this.$$.callbacks[type] = [])); - callbacks.push(callback); - return () => { - const index = callbacks.indexOf(callback); - if (index !== -1) - callbacks.splice(index, 1); - }; - } - $set($$props) { - if (this.$$set && !is_empty($$props)) { - this.$$.skip_bound = true; - this.$$set($$props); - this.$$.skip_bound = false; - } - } - } - - function dispatch_dev(type, detail) { - document.dispatchEvent(custom_event(type, Object.assign({ version: '3.30.0' }, detail))); - } - function append_dev(target, node) { - dispatch_dev('SvelteDOMInsert', { target, node }); - append(target, node); - } - function insert_dev(target, node, anchor) { - dispatch_dev('SvelteDOMInsert', { target, node, anchor }); - insert(target, node, anchor); - } - function detach_dev(node) { - dispatch_dev('SvelteDOMRemove', { node }); - detach(node); - } - function listen_dev(node, event, handler, options, has_prevent_default, has_stop_propagation) { - const modifiers = options === true ? ['capture'] : options ? Array.from(Object.keys(options)) : []; - if (has_prevent_default) - modifiers.push('preventDefault'); - if (has_stop_propagation) - modifiers.push('stopPropagation'); - dispatch_dev('SvelteDOMAddEventListener', { node, event, handler, modifiers }); - const dispose = listen(node, event, handler, options); - return () => { - dispatch_dev('SvelteDOMRemoveEventListener', { node, event, handler, modifiers }); - dispose(); - }; - } - function attr_dev(node, attribute, value) { - attr(node, attribute, value); - if (value == null) - dispatch_dev('SvelteDOMRemoveAttribute', { node, attribute }); - else - dispatch_dev('SvelteDOMSetAttribute', { node, attribute, value }); - } - function set_data_dev(text, data) { - data = '' + data; - if (text.wholeText === data) - return; - dispatch_dev('SvelteDOMSetData', { node: text, data }); - text.data = data; - } - function validate_each_argument(arg) { - if (typeof arg !== 'string' && !(arg && typeof arg === 'object' && 'length' in arg)) { - let msg = '{#each} only iterates over array-like objects.'; - if (typeof Symbol === 'function' && arg && Symbol.iterator in arg) { - msg += ' You can use a spread to convert this iterable into an array.'; - } - throw new Error(msg); - } - } - function validate_slots(name, slot, keys) { - for (const slot_key of Object.keys(slot)) { - if (!~keys.indexOf(slot_key)) { - console.warn(`<${name}> received an unexpected slot "${slot_key}".`); - } - } - } - class SvelteComponentDev extends SvelteComponent { - constructor(options) { - if (!options || (!options.target && !options.$$inline)) { - throw new Error("'target' is a required option"); - } - super(); - } - $destroy() { - super.$destroy(); - this.$destroy = () => { - console.warn('Component was already destroyed'); // eslint-disable-line no-console - }; - } - $capture_state() { } - $inject_state() { } - } - - /** - * @typedef {Object} WrappedComponent Object returned by the `wrap` method - * @property {SvelteComponent} component - Component to load (this is always asynchronous) - * @property {RoutePrecondition[]} [conditions] - Route pre-conditions to validate - * @property {Object} [props] - Optional dictionary of static props - * @property {Object} [userData] - Optional user data dictionary - * @property {bool} _sveltesparouter - Internal flag; always set to true - */ - - /** - * @callback AsyncSvelteComponent - * @returns {Promise} Returns a Promise that resolves with a Svelte component - */ - - /** - * @callback RoutePrecondition - * @param {RouteDetail} detail - Route detail object - * @returns {boolean|Promise} If the callback returns a false-y value, it's interpreted as the precondition failed, so it aborts loading the component (and won't process other pre-condition callbacks) - */ - - /** - * @typedef {Object} WrapOptions Options object for the call to `wrap` - * @property {SvelteComponent} [component] - Svelte component to load (this is incompatible with `asyncComponent`) - * @property {AsyncSvelteComponent} [asyncComponent] - Function that returns a Promise that fulfills with a Svelte component (e.g. `{asyncComponent: () => import('Foo.svelte')}`) - * @property {SvelteComponent} [loadingComponent] - Svelte component to be displayed while the async route is loading (as a placeholder); when unset or false-y, no component is shown while component - * @property {object} [loadingParams] - Optional dictionary passed to the `loadingComponent` component as params (for an exported prop called `params`) - * @property {object} [userData] - Optional object that will be passed to events such as `routeLoading`, `routeLoaded`, `conditionsFailed` - * @property {object} [props] - Optional key-value dictionary of static props that will be passed to the component. The props are expanded with {...props}, so the key in the dictionary becomes the name of the prop. - * @property {RoutePrecondition[]|RoutePrecondition} [conditions] - Route pre-conditions to add, which will be executed in order - */ - - /** - * Wraps a component to enable multiple capabilities: - * 1. Using dynamically-imported component, with (e.g. `{asyncComponent: () => import('Foo.svelte')}`), which also allows bundlers to do code-splitting. - * 2. Adding route pre-conditions (e.g. `{conditions: [...]}`) - * 3. Adding static props that are passed to the component - * 4. Adding custom userData, which is passed to route events (e.g. route loaded events) or to route pre-conditions (e.g. `{userData: {foo: 'bar}}`) - * - * @param {WrapOptions} args - Arguments object - * @returns {WrappedComponent} Wrapped component - */ - function wrap(args) { - if (!args) { - throw Error('Parameter args is required') - } - - // We need to have one and only one of component and asyncComponent - // This does a "XNOR" - if (!args.component == !args.asyncComponent) { - throw Error('One and only one of component and asyncComponent is required') - } - - // If the component is not async, wrap it into a function returning a Promise - if (args.component) { - args.asyncComponent = () => Promise.resolve(args.component); - } - - // Parameter asyncComponent and each item of conditions must be functions - if (typeof args.asyncComponent != 'function') { - throw Error('Parameter asyncComponent must be a function') - } - if (args.conditions) { - // Ensure it's an array - if (!Array.isArray(args.conditions)) { - args.conditions = [args.conditions]; - } - for (let i = 0; i < args.conditions.length; i++) { - if (!args.conditions[i] || typeof args.conditions[i] != 'function') { - throw Error('Invalid parameter conditions[' + i + ']') - } - } - } - - // Check if we have a placeholder component - if (args.loadingComponent) { - args.asyncComponent.loading = args.loadingComponent; - args.asyncComponent.loadingParams = args.loadingParams || undefined; - } - - // Returns an object that contains all the functions to execute too - // The _sveltesparouter flag is to confirm the object was created by this router - const obj = { - component: args.asyncComponent, - userData: args.userData, - conditions: (args.conditions && args.conditions.length) ? args.conditions : undefined, - props: (args.props && Object.keys(args.props).length) ? args.props : {}, - _sveltesparouter: true - }; - - return obj - } - - const subscriber_queue = []; - /** - * Creates a `Readable` store that allows reading by subscription. - * @param value initial value - * @param {StartStopNotifier}start start and stop notifications for subscriptions - */ - function readable(value, start) { - return { - subscribe: writable(value, start).subscribe - }; - } - /** - * Create a `Writable` store that allows both updating and reading by subscription. - * @param {*=}value initial value - * @param {StartStopNotifier=}start start and stop notifications for subscriptions - */ - function writable(value, start = noop) { - let stop; - const subscribers = []; - function set(new_value) { - if (safe_not_equal(value, new_value)) { - value = new_value; - if (stop) { // store is ready - const run_queue = !subscriber_queue.length; - for (let i = 0; i < subscribers.length; i += 1) { - const s = subscribers[i]; - s[1](); - subscriber_queue.push(s, value); - } - if (run_queue) { - for (let i = 0; i < subscriber_queue.length; i += 2) { - subscriber_queue[i][0](subscriber_queue[i + 1]); - } - subscriber_queue.length = 0; - } - } - } - } - function update(fn) { - set(fn(value)); - } - function subscribe(run, invalidate = noop) { - const subscriber = [run, invalidate]; - subscribers.push(subscriber); - if (subscribers.length === 1) { - stop = start(set) || noop; - } - run(value); - return () => { - const index = subscribers.indexOf(subscriber); - if (index !== -1) { - subscribers.splice(index, 1); - } - if (subscribers.length === 0) { - stop(); - stop = null; - } - }; - } - return { set, update, subscribe }; - } - function derived(stores, fn, initial_value) { - const single = !Array.isArray(stores); - const stores_array = single - ? [stores] - : stores; - const auto = fn.length < 2; - return readable(initial_value, (set) => { - let inited = false; - const values = []; - let pending = 0; - let cleanup = noop; - const sync = () => { - if (pending) { - return; - } - cleanup(); - const result = fn(single ? values[0] : values, set); - if (auto) { - set(result); - } - else { - cleanup = is_function(result) ? result : noop; - } - }; - const unsubscribers = stores_array.map((store, i) => subscribe(store, (value) => { - values[i] = value; - pending &= ~(1 << i); - if (inited) { - sync(); - } - }, () => { - pending |= (1 << i); - })); - inited = true; - sync(); - return function stop() { - run_all(unsubscribers); - cleanup(); - }; - }); - } - - function regexparam (str, loose) { - if (str instanceof RegExp) return { keys:false, pattern:str }; - var c, o, tmp, ext, keys=[], pattern='', arr = str.split('/'); - arr[0] || arr.shift(); - - while (tmp = arr.shift()) { - c = tmp[0]; - if (c === '*') { - keys.push('wild'); - pattern += '/(.*)'; - } else if (c === ':') { - o = tmp.indexOf('?', 1); - ext = tmp.indexOf('.', 1); - keys.push( tmp.substring(1, !!~o ? o : !!~ext ? ext : tmp.length) ); - pattern += !!~o && !~ext ? '(?:/([^/]+?))?' : '/([^/]+?)'; - if (!!~ext) pattern += (!!~o ? '?' : '') + '\\' + tmp.substring(ext); - } else { - pattern += '/' + tmp; - } - } - - return { - keys: keys, - pattern: new RegExp('^' + pattern + (loose ? '(?=$|\/)' : '\/?$'), 'i') - }; - } - - /* node_modules/svelte-spa-router/Router.svelte generated by Svelte v3.30.0 */ - - const { Error: Error_1, Object: Object_1, console: console_1 } = globals; - - // (209:0) {:else} - function create_else_block(ctx) { - let switch_instance; - let switch_instance_anchor; - let current; - const switch_instance_spread_levels = [/*props*/ ctx[2]]; - var switch_value = /*component*/ ctx[0]; - - function switch_props(ctx) { - let switch_instance_props = {}; - - for (let i = 0; i < switch_instance_spread_levels.length; i += 1) { - switch_instance_props = assign(switch_instance_props, switch_instance_spread_levels[i]); - } - - return { - props: switch_instance_props, - $$inline: true - }; - } - - if (switch_value) { - switch_instance = new switch_value(switch_props()); - switch_instance.$on("routeEvent", /*routeEvent_handler_1*/ ctx[7]); - } - - const block = { - c: function create() { - if (switch_instance) create_component(switch_instance.$$.fragment); - switch_instance_anchor = empty(); - }, - m: function mount(target, anchor) { - if (switch_instance) { - mount_component(switch_instance, target, anchor); - } - - insert_dev(target, switch_instance_anchor, anchor); - current = true; - }, - p: function update(ctx, dirty) { - const switch_instance_changes = (dirty & /*props*/ 4) - ? get_spread_update(switch_instance_spread_levels, [get_spread_object(/*props*/ ctx[2])]) - : {}; - - if (switch_value !== (switch_value = /*component*/ ctx[0])) { - if (switch_instance) { - group_outros(); - const old_component = switch_instance; - - transition_out(old_component.$$.fragment, 1, 0, () => { - destroy_component(old_component, 1); - }); - - check_outros(); - } - - if (switch_value) { - switch_instance = new switch_value(switch_props()); - switch_instance.$on("routeEvent", /*routeEvent_handler_1*/ ctx[7]); - create_component(switch_instance.$$.fragment); - transition_in(switch_instance.$$.fragment, 1); - mount_component(switch_instance, switch_instance_anchor.parentNode, switch_instance_anchor); - } else { - switch_instance = null; - } - } else if (switch_value) { - switch_instance.$set(switch_instance_changes); - } - }, - i: function intro(local) { - if (current) return; - if (switch_instance) transition_in(switch_instance.$$.fragment, local); - current = true; - }, - o: function outro(local) { - if (switch_instance) transition_out(switch_instance.$$.fragment, local); - current = false; - }, - d: function destroy(detaching) { - if (detaching) detach_dev(switch_instance_anchor); - if (switch_instance) destroy_component(switch_instance, detaching); - } - }; - - dispatch_dev("SvelteRegisterBlock", { - block, - id: create_else_block.name, - type: "else", - source: "(209:0) {:else}", - ctx - }); - - return block; - } - - // (202:0) {#if componentParams} - function create_if_block(ctx) { - let switch_instance; - let switch_instance_anchor; - let current; - const switch_instance_spread_levels = [{ params: /*componentParams*/ ctx[1] }, /*props*/ ctx[2]]; - var switch_value = /*component*/ ctx[0]; - - function switch_props(ctx) { - let switch_instance_props = {}; - - for (let i = 0; i < switch_instance_spread_levels.length; i += 1) { - switch_instance_props = assign(switch_instance_props, switch_instance_spread_levels[i]); - } - - return { - props: switch_instance_props, - $$inline: true - }; - } - - if (switch_value) { - switch_instance = new switch_value(switch_props()); - switch_instance.$on("routeEvent", /*routeEvent_handler*/ ctx[6]); - } - - const block = { - c: function create() { - if (switch_instance) create_component(switch_instance.$$.fragment); - switch_instance_anchor = empty(); - }, - m: function mount(target, anchor) { - if (switch_instance) { - mount_component(switch_instance, target, anchor); - } - - insert_dev(target, switch_instance_anchor, anchor); - current = true; - }, - p: function update(ctx, dirty) { - const switch_instance_changes = (dirty & /*componentParams, props*/ 6) - ? get_spread_update(switch_instance_spread_levels, [ - dirty & /*componentParams*/ 2 && { params: /*componentParams*/ ctx[1] }, - dirty & /*props*/ 4 && get_spread_object(/*props*/ ctx[2]) - ]) - : {}; - - if (switch_value !== (switch_value = /*component*/ ctx[0])) { - if (switch_instance) { - group_outros(); - const old_component = switch_instance; - - transition_out(old_component.$$.fragment, 1, 0, () => { - destroy_component(old_component, 1); - }); - - check_outros(); - } - - if (switch_value) { - switch_instance = new switch_value(switch_props()); - switch_instance.$on("routeEvent", /*routeEvent_handler*/ ctx[6]); - create_component(switch_instance.$$.fragment); - transition_in(switch_instance.$$.fragment, 1); - mount_component(switch_instance, switch_instance_anchor.parentNode, switch_instance_anchor); - } else { - switch_instance = null; - } - } else if (switch_value) { - switch_instance.$set(switch_instance_changes); - } - }, - i: function intro(local) { - if (current) return; - if (switch_instance) transition_in(switch_instance.$$.fragment, local); - current = true; - }, - o: function outro(local) { - if (switch_instance) transition_out(switch_instance.$$.fragment, local); - current = false; - }, - d: function destroy(detaching) { - if (detaching) detach_dev(switch_instance_anchor); - if (switch_instance) destroy_component(switch_instance, detaching); - } - }; - - dispatch_dev("SvelteRegisterBlock", { - block, - id: create_if_block.name, - type: "if", - source: "(202:0) {#if componentParams}", - ctx - }); - - return block; - } - - function create_fragment(ctx) { - let current_block_type_index; - let if_block; - let if_block_anchor; - let current; - const if_block_creators = [create_if_block, create_else_block]; - const if_blocks = []; - - function select_block_type(ctx, dirty) { - if (/*componentParams*/ ctx[1]) return 0; - return 1; - } - - current_block_type_index = select_block_type(ctx); - if_block = if_blocks[current_block_type_index] = if_block_creators[current_block_type_index](ctx); - - const block = { - c: function create() { - if_block.c(); - if_block_anchor = empty(); - }, - l: function claim(nodes) { - throw new Error_1("options.hydrate only works if the component was compiled with the `hydratable: true` option"); - }, - m: function mount(target, anchor) { - if_blocks[current_block_type_index].m(target, anchor); - insert_dev(target, if_block_anchor, anchor); - current = true; - }, - p: function update(ctx, [dirty]) { - let previous_block_index = current_block_type_index; - current_block_type_index = select_block_type(ctx); - - if (current_block_type_index === previous_block_index) { - if_blocks[current_block_type_index].p(ctx, dirty); - } else { - group_outros(); - - transition_out(if_blocks[previous_block_index], 1, 1, () => { - if_blocks[previous_block_index] = null; - }); - - check_outros(); - if_block = if_blocks[current_block_type_index]; - - if (!if_block) { - if_block = if_blocks[current_block_type_index] = if_block_creators[current_block_type_index](ctx); - if_block.c(); - } else { - if_block.p(ctx, dirty); - } - - transition_in(if_block, 1); - if_block.m(if_block_anchor.parentNode, if_block_anchor); - } - }, - i: function intro(local) { - if (current) return; - transition_in(if_block); - current = true; - }, - o: function outro(local) { - transition_out(if_block); - current = false; - }, - d: function destroy(detaching) { - if_blocks[current_block_type_index].d(detaching); - if (detaching) detach_dev(if_block_anchor); - } - }; - - dispatch_dev("SvelteRegisterBlock", { - block, - id: create_fragment.name, - type: "component", - source: "", - ctx - }); - - return block; - } - - function wrap$1(component, userData, ...conditions) { - // Use the new wrap method and show a deprecation warning - // eslint-disable-next-line no-console - console.warn("Method `wrap` from `svelte-spa-router` is deprecated and will be removed in a future version. Please use `svelte-spa-router/wrap` instead. See http://bit.ly/svelte-spa-router-upgrading"); - - return wrap({ component, userData, conditions }); - } - - /** - * @typedef {Object} Location - * @property {string} location - Location (page/view), for example `/book` - * @property {string} [querystring] - Querystring from the hash, as a string not parsed - */ - /** - * Returns the current location from the hash. - * - * @returns {Location} Location object - * @private - */ - function getLocation() { - const hashPosition = window.location.href.indexOf("#/"); - - let location = hashPosition > -1 - ? window.location.href.substr(hashPosition + 1) - : "/"; - - // Check if there's a querystring - const qsPosition = location.indexOf("?"); - - let querystring = ""; - - if (qsPosition > -1) { - querystring = location.substr(qsPosition + 1); - location = location.substr(0, qsPosition); - } - - return { location, querystring }; - } - - const loc = readable(null, // eslint-disable-next-line prefer-arrow-callback - function start(set) { - set(getLocation()); - - const update = () => { - set(getLocation()); - }; - - window.addEventListener("hashchange", update, false); - - return function stop() { - window.removeEventListener("hashchange", update, false); - }; - }); - - const location = derived(loc, $loc => $loc.location); - const querystring = derived(loc, $loc => $loc.querystring); - - async function push(location) { - if (!location || location.length < 1 || location.charAt(0) != "/" && location.indexOf("#/") !== 0) { - throw Error("Invalid parameter location"); - } - - // Execute this code when the current call stack is complete - await tick(); - - // Note: this will include scroll state in history even when restoreScrollState is false - history.replaceState( - { - scrollX: window.scrollX, - scrollY: window.scrollY - }, - undefined, - undefined - ); - - window.location.hash = (location.charAt(0) == "#" ? "" : "#") + location; - } - - async function pop() { - // Execute this code when the current call stack is complete - await tick(); - - window.history.back(); - } - - async function replace(location) { - if (!location || location.length < 1 || location.charAt(0) != "/" && location.indexOf("#/") !== 0) { - throw Error("Invalid parameter location"); - } - - // Execute this code when the current call stack is complete - await tick(); - - const dest = (location.charAt(0) == "#" ? "" : "#") + location; - - try { - window.history.replaceState(undefined, undefined, dest); - } catch(e) { - // eslint-disable-next-line no-console - console.warn("Caught exception while replacing the current page. If you're running this in the Svelte REPL, please note that the `replace` method might not work in this environment."); - } - - // The method above doesn't trigger the hashchange event, so let's do that manually - window.dispatchEvent(new Event("hashchange")); - } - - function link(node, hrefVar) { - // Only apply to tags - if (!node || !node.tagName || node.tagName.toLowerCase() != "a") { - throw Error("Action \"link\" can only be used with tags"); - } - - updateLink(node, hrefVar || node.getAttribute("href")); - - return { - update(updated) { - updateLink(node, updated); - } - }; - } - - // Internal function used by the link function - function updateLink(node, href) { - // Destination must start with '/' - if (!href || href.length < 1 || href.charAt(0) != "/") { - throw Error("Invalid value for \"href\" attribute: " + href); - } - - // Add # to the href attribute - node.setAttribute("href", "#" + href); - - node.addEventListener("click", scrollstateHistoryHandler); - } - - /** - * The handler attached to an anchor tag responsible for updating the - * current history state with the current scroll state - * - * @param {HTMLElementEventMap} event - an onclick event attached to an anchor tag - */ - function scrollstateHistoryHandler(event) { - // Prevent default anchor onclick behaviour - event.preventDefault(); - - const href = event.currentTarget.getAttribute("href"); - - // Setting the url (3rd arg) to href will break clicking for reasons, so don't try to do that - history.replaceState( - { - scrollX: window.scrollX, - scrollY: window.scrollY - }, - undefined, - undefined - ); - - // This will force an update as desired, but this time our scroll state will be attached - window.location.hash = href; - } - - function instance($$self, $$props, $$invalidate) { - let { $$slots: slots = {}, $$scope } = $$props; - validate_slots("Router", slots, []); - let { routes = {} } = $$props; - let { prefix = "" } = $$props; - let { restoreScrollState = false } = $$props; - - /** - * Container for a route: path, component - */ - class RouteItem { - /** - * Initializes the object and creates a regular expression from the path, using regexparam. - * - * @param {string} path - Path to the route (must start with '/' or '*') - * @param {SvelteComponent|WrappedComponent} component - Svelte component for the route, optionally wrapped - */ - constructor(path, component) { - if (!component || typeof component != "function" && (typeof component != "object" || component._sveltesparouter !== true)) { - throw Error("Invalid component object"); - } - - // Path must be a regular or expression, or a string starting with '/' or '*' - if (!path || typeof path == "string" && (path.length < 1 || path.charAt(0) != "/" && path.charAt(0) != "*") || typeof path == "object" && !(path instanceof RegExp)) { - throw Error("Invalid value for \"path\" argument"); - } - - const { pattern, keys } = regexparam(path); - this.path = path; - - // Check if the component is wrapped and we have conditions - if (typeof component == "object" && component._sveltesparouter === true) { - this.component = component.component; - this.conditions = component.conditions || []; - this.userData = component.userData; - this.props = component.props || {}; - } else { - // Convert the component to a function that returns a Promise, to normalize it - this.component = () => Promise.resolve(component); - - this.conditions = []; - this.props = {}; - } - - this._pattern = pattern; - this._keys = keys; - } - - /** - * Checks if `path` matches the current route. - * If there's a match, will return the list of parameters from the URL (if any). - * In case of no match, the method will return `null`. - * - * @param {string} path - Path to test - * @returns {null|Object.} List of paramters from the URL if there's a match, or `null` otherwise. - */ - match(path) { - // If there's a prefix, remove it before we run the matching - if (prefix) { - if (typeof prefix == "string" && path.startsWith(prefix)) { - path = path.substr(prefix.length) || "/"; - } else if (prefix instanceof RegExp) { - const match = path.match(prefix); - - if (match && match[0]) { - path = path.substr(match[0].length) || "/"; - } - } - } - - // Check if the pattern matches - const matches = this._pattern.exec(path); - - if (matches === null) { - return null; - } - - // If the input was a regular expression, this._keys would be false, so return matches as is - if (this._keys === false) { - return matches; - } - - const out = {}; - let i = 0; - - while (i < this._keys.length) { - // In the match parameters, URL-decode all values - try { - out[this._keys[i]] = decodeURIComponent(matches[i + 1] || "") || null; - } catch(e) { - out[this._keys[i]] = null; - } - - i++; - } - - return out; - } - - /** - * Dictionary with route details passed to the pre-conditions functions, as well as the `routeLoading`, `routeLoaded` and `conditionsFailed` events - * @typedef {Object} RouteDetail - * @property {string|RegExp} route - Route matched as defined in the route definition (could be a string or a reguar expression object) - * @property {string} location - Location path - * @property {string} querystring - Querystring from the hash - * @property {object} [userData] - Custom data passed by the user - * @property {SvelteComponent} [component] - Svelte component (only in `routeLoaded` events) - * @property {string} [name] - Name of the Svelte component (only in `routeLoaded` events) - */ - /** - * Executes all conditions (if any) to control whether the route can be shown. Conditions are executed in the order they are defined, and if a condition fails, the following ones aren't executed. - * - * @param {RouteDetail} detail - Route detail - * @returns {bool} Returns true if all the conditions succeeded - */ - async checkConditions(detail) { - for (let i = 0; i < this.conditions.length; i++) { - if (!await this.conditions[i](detail)) { - return false; - } - } - - return true; - } - } - - // Set up all routes - const routesList = []; - - if (routes instanceof Map) { - // If it's a map, iterate on it right away - routes.forEach((route, path) => { - routesList.push(new RouteItem(path, route)); - }); - } else { - // We have an object, so iterate on its own properties - Object.keys(routes).forEach(path => { - routesList.push(new RouteItem(path, routes[path])); - }); - } - - // Props for the component to render - let component = null; - - let componentParams = null; - let props = {}; - - // Event dispatcher from Svelte - const dispatch = createEventDispatcher(); - - // Just like dispatch, but executes on the next iteration of the event loop - async function dispatchNextTick(name, detail) { - // Execute this code when the current call stack is complete - await tick(); - - dispatch(name, detail); - } - - // If this is set, then that means we have popped into this var the state of our last scroll position - let previousScrollState = null; - - if (restoreScrollState) { - window.addEventListener("popstate", event => { - // If this event was from our history.replaceState, event.state will contain - // our scroll history. Otherwise, event.state will be null (like on forward - // navigation) - if (event.state && event.state.scrollY) { - previousScrollState = event.state; - } else { - previousScrollState = null; - } - }); - - afterUpdate(() => { - // If this exists, then this is a back navigation: restore the scroll position - if (previousScrollState) { - window.scrollTo(previousScrollState.scrollX, previousScrollState.scrollY); - } else { - // Otherwise this is a forward navigation: scroll to top - window.scrollTo(0, 0); - } - }); - } - - // Always have the latest value of loc - let lastLoc = null; - - // Current object of the component loaded - let componentObj = null; - - // Handle hash change events - // Listen to changes in the $loc store and update the page - // Do not use the $: syntax because it gets triggered by too many things - loc.subscribe(async newLoc => { - lastLoc = newLoc; - - // Find a route matching the location - let i = 0; - - while (i < routesList.length) { - const match = routesList[i].match(newLoc.location); - - if (!match) { - i++; - continue; - } - - const detail = { - route: routesList[i].path, - location: newLoc.location, - querystring: newLoc.querystring, - userData: routesList[i].userData - }; - - // Check if the route can be loaded - if all conditions succeed - if (!await routesList[i].checkConditions(detail)) { - // Don't display anything - $$invalidate(0, component = null); - - componentObj = null; - - // Trigger an event to notify the user, then exit - dispatchNextTick("conditionsFailed", detail); - - return; - } - - // Trigger an event to alert that we're loading the route - // We need to clone the object on every event invocation so we don't risk the object to be modified in the next tick - dispatchNextTick("routeLoading", Object.assign({}, detail)); - - // If there's a component to show while we're loading the route, display it - const obj = routesList[i].component; - - // Do not replace the component if we're loading the same one as before, to avoid the route being unmounted and re-mounted - if (componentObj != obj) { - if (obj.loading) { - $$invalidate(0, component = obj.loading); - componentObj = obj; - $$invalidate(1, componentParams = obj.loadingParams); - $$invalidate(2, props = {}); - - // Trigger the routeLoaded event for the loading component - // Create a copy of detail so we don't modify the object for the dynamic route (and the dynamic route doesn't modify our object too) - dispatchNextTick("routeLoaded", Object.assign({}, detail, { component, name: component.name })); - } else { - $$invalidate(0, component = null); - componentObj = null; - } - - // Invoke the Promise - const loaded = await obj(); - - // Now that we're here, after the promise resolved, check if we still want this component, as the user might have navigated to another page in the meanwhile - if (newLoc != lastLoc) { - // Don't update the component, just exit - return; - } - - // If there is a "default" property, which is used by async routes, then pick that - $$invalidate(0, component = loaded && loaded.default || loaded); - - componentObj = obj; - } - - // Set componentParams only if we have a match, to avoid a warning similar to ` was created with unknown prop 'params'` - // Of course, this assumes that developers always add a "params" prop when they are expecting parameters - if (match && typeof match == "object" && Object.keys(match).length) { - $$invalidate(1, componentParams = match); - } else { - $$invalidate(1, componentParams = null); - } - - // Set static props, if any - $$invalidate(2, props = routesList[i].props); - - // Dispatch the routeLoaded event then exit - // We need to clone the object on every event invocation so we don't risk the object to be modified in the next tick - dispatchNextTick("routeLoaded", Object.assign({}, detail, { component, name: component.name })); - - return; - } - - // If we're still here, there was no match, so show the empty component - $$invalidate(0, component = null); - - componentObj = null; - }); - - const writable_props = ["routes", "prefix", "restoreScrollState"]; - - Object_1.keys($$props).forEach(key => { - if (!~writable_props.indexOf(key) && key.slice(0, 2) !== "$$") console_1.warn(` was created with unknown prop '${key}'`); - }); - - function routeEvent_handler(event) { - bubble($$self, event); - } - - function routeEvent_handler_1(event) { - bubble($$self, event); - } - - $$self.$$set = $$props => { - if ("routes" in $$props) $$invalidate(3, routes = $$props.routes); - if ("prefix" in $$props) $$invalidate(4, prefix = $$props.prefix); - if ("restoreScrollState" in $$props) $$invalidate(5, restoreScrollState = $$props.restoreScrollState); - }; - - $$self.$capture_state = () => ({ - readable, - derived, - tick, - _wrap: wrap, - wrap: wrap$1, - getLocation, - loc, - location, - querystring, - push, - pop, - replace, - link, - updateLink, - scrollstateHistoryHandler, - createEventDispatcher, - afterUpdate, - regexparam, - routes, - prefix, - restoreScrollState, - RouteItem, - routesList, - component, - componentParams, - props, - dispatch, - dispatchNextTick, - previousScrollState, - lastLoc, - componentObj - }); - - $$self.$inject_state = $$props => { - if ("routes" in $$props) $$invalidate(3, routes = $$props.routes); - if ("prefix" in $$props) $$invalidate(4, prefix = $$props.prefix); - if ("restoreScrollState" in $$props) $$invalidate(5, restoreScrollState = $$props.restoreScrollState); - if ("component" in $$props) $$invalidate(0, component = $$props.component); - if ("componentParams" in $$props) $$invalidate(1, componentParams = $$props.componentParams); - if ("props" in $$props) $$invalidate(2, props = $$props.props); - if ("previousScrollState" in $$props) previousScrollState = $$props.previousScrollState; - if ("lastLoc" in $$props) lastLoc = $$props.lastLoc; - if ("componentObj" in $$props) componentObj = $$props.componentObj; - }; - - if ($$props && "$$inject" in $$props) { - $$self.$inject_state($$props.$$inject); - } - - $$self.$$.update = () => { - if ($$self.$$.dirty & /*restoreScrollState*/ 32) { - // Update history.scrollRestoration depending on restoreScrollState - history.scrollRestoration = restoreScrollState ? "manual" : "auto"; - } - }; - - return [ - component, - componentParams, - props, - routes, - prefix, - restoreScrollState, - routeEvent_handler, - routeEvent_handler_1 - ]; - } - - class Router extends SvelteComponentDev { - constructor(options) { - super(options); - - init(this, options, instance, create_fragment, safe_not_equal, { - routes: 3, - prefix: 4, - restoreScrollState: 5 - }); - - dispatch_dev("SvelteRegisterComponent", { - component: this, - tagName: "Router", - options, - id: create_fragment.name - }); - } - - get routes() { - throw new Error_1(": Props cannot be read directly from the component instance unless compiling with 'accessors: true' or ''"); - } - - set routes(value) { - throw new Error_1(": Props cannot be set directly on the component instance unless compiling with 'accessors: true' or ''"); - } - - get prefix() { - throw new Error_1(": Props cannot be read directly from the component instance unless compiling with 'accessors: true' or ''"); - } - - set prefix(value) { - throw new Error_1(": Props cannot be set directly on the component instance unless compiling with 'accessors: true' or ''"); - } - - get restoreScrollState() { - throw new Error_1(": Props cannot be read directly from the component instance unless compiling with 'accessors: true' or ''"); - } - - set restoreScrollState(value) { - throw new Error_1(": Props cannot be set directly on the component instance unless compiling with 'accessors: true' or ''"); - } - } - - /* src/components/Icon.svelte generated by Svelte v3.30.0 */ - - const file = "src/components/Icon.svelte"; - - function create_fragment$1(ctx) { - let span; - let svg; - let use; - let use_xlink_href_value; - let svg_class_value; - let svg_stroke_value; - - const block = { - c: function create() { - span = element("span"); - svg = svg_element("svg"); - use = svg_element("use"); - xlink_attr(use, "xlink:href", use_xlink_href_value = "/icons/feather-sprite.svg#" + /*name*/ ctx[7]); - add_location(use, file, 32, 2, 670); - attr_dev(svg, "class", svg_class_value = "icon-" + /*name*/ ctx[7] + " svelte-1iby9by"); - attr_dev(svg, "width", /*size*/ ctx[0]); - attr_dev(svg, "height", /*size*/ ctx[0]); - attr_dev(svg, "fill", /*fill*/ ctx[1]); - - attr_dev(svg, "stroke", svg_stroke_value = /*light*/ ctx[3] - ? /*light_color*/ ctx[9] - : /*color*/ ctx[2]); - - attr_dev(svg, "stroke-width", /*width*/ ctx[4]); - attr_dev(svg, "stroke-linecap", /*linecap*/ ctx[5]); - attr_dev(svg, "stroke-linejoin", /*linejoin*/ ctx[6]); - toggle_class(svg, "inactive", /*inactive*/ ctx[8]); - add_location(svg, file, 23, 2, 436); - add_location(span, file, 22, 0, 427); - }, - l: function claim(nodes) { - throw new Error("options.hydrate only works if the component was compiled with the `hydratable: true` option"); - }, - m: function mount(target, anchor) { - insert_dev(target, span, anchor); - append_dev(span, svg); - append_dev(svg, use); - }, - p: function update(ctx, [dirty]) { - if (dirty & /*name*/ 128 && use_xlink_href_value !== (use_xlink_href_value = "/icons/feather-sprite.svg#" + /*name*/ ctx[7])) { - xlink_attr(use, "xlink:href", use_xlink_href_value); - } - - if (dirty & /*name*/ 128 && svg_class_value !== (svg_class_value = "icon-" + /*name*/ ctx[7] + " svelte-1iby9by")) { - attr_dev(svg, "class", svg_class_value); - } - - if (dirty & /*size*/ 1) { - attr_dev(svg, "width", /*size*/ ctx[0]); - } - - if (dirty & /*size*/ 1) { - attr_dev(svg, "height", /*size*/ ctx[0]); - } - - if (dirty & /*fill*/ 2) { - attr_dev(svg, "fill", /*fill*/ ctx[1]); - } - - if (dirty & /*light, light_color, color*/ 524 && svg_stroke_value !== (svg_stroke_value = /*light*/ ctx[3] - ? /*light_color*/ ctx[9] - : /*color*/ ctx[2])) { - attr_dev(svg, "stroke", svg_stroke_value); - } - - if (dirty & /*width*/ 16) { - attr_dev(svg, "stroke-width", /*width*/ ctx[4]); - } - - if (dirty & /*linecap*/ 32) { - attr_dev(svg, "stroke-linecap", /*linecap*/ ctx[5]); - } - - if (dirty & /*linejoin*/ 64) { - attr_dev(svg, "stroke-linejoin", /*linejoin*/ ctx[6]); - } - - if (dirty & /*name, inactive*/ 384) { - toggle_class(svg, "inactive", /*inactive*/ ctx[8]); - } - }, - i: noop, - o: noop, - d: function destroy(detaching) { - if (detaching) detach_dev(span); - } - }; - - 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("Icon", slots, []); - let { size = "24" } = $$props; - let { fill = "none" } = $$props; - let { color = "var(--color)" } = $$props; - let { light = false } = $$props; - let { width = "2" } = $$props; - let { linecap = "round" } = $$props; - let { linejoin = "round" } = $$props; - let { name } = $$props; - let { inactive = false } = $$props; - let { light_color = "var(--color)" } = $$props; - - const writable_props = [ - "size", - "fill", - "color", - "light", - "width", - "linecap", - "linejoin", - "name", - "inactive", - "light_color" - ]; - - Object.keys($$props).forEach(key => { - if (!~writable_props.indexOf(key) && key.slice(0, 2) !== "$$") console.warn(` was created with unknown prop '${key}'`); - }); - - $$self.$$set = $$props => { - if ("size" in $$props) $$invalidate(0, size = $$props.size); - if ("fill" in $$props) $$invalidate(1, fill = $$props.fill); - if ("color" in $$props) $$invalidate(2, color = $$props.color); - if ("light" in $$props) $$invalidate(3, light = $$props.light); - if ("width" in $$props) $$invalidate(4, width = $$props.width); - if ("linecap" in $$props) $$invalidate(5, linecap = $$props.linecap); - if ("linejoin" in $$props) $$invalidate(6, linejoin = $$props.linejoin); - if ("name" in $$props) $$invalidate(7, name = $$props.name); - if ("inactive" in $$props) $$invalidate(8, inactive = $$props.inactive); - if ("light_color" in $$props) $$invalidate(9, light_color = $$props.light_color); - }; - - $$self.$capture_state = () => ({ - size, - fill, - color, - light, - width, - linecap, - linejoin, - name, - inactive, - light_color - }); - - $$self.$inject_state = $$props => { - if ("size" in $$props) $$invalidate(0, size = $$props.size); - if ("fill" in $$props) $$invalidate(1, fill = $$props.fill); - if ("color" in $$props) $$invalidate(2, color = $$props.color); - if ("light" in $$props) $$invalidate(3, light = $$props.light); - if ("width" in $$props) $$invalidate(4, width = $$props.width); - if ("linecap" in $$props) $$invalidate(5, linecap = $$props.linecap); - if ("linejoin" in $$props) $$invalidate(6, linejoin = $$props.linejoin); - if ("name" in $$props) $$invalidate(7, name = $$props.name); - if ("inactive" in $$props) $$invalidate(8, inactive = $$props.inactive); - if ("light_color" in $$props) $$invalidate(9, light_color = $$props.light_color); - }; - - if ($$props && "$$inject" in $$props) { - $$self.$inject_state($$props.$$inject); - } - - return [ - size, - fill, - color, - light, - width, - linecap, - linejoin, - name, - inactive, - light_color - ]; - } - - class Icon extends SvelteComponentDev { - constructor(options) { - super(options); - - init(this, options, instance$1, create_fragment$1, safe_not_equal, { - size: 0, - fill: 1, - color: 2, - light: 3, - width: 4, - linecap: 5, - linejoin: 6, - name: 7, - inactive: 8, - light_color: 9 - }); - - dispatch_dev("SvelteRegisterComponent", { - component: this, - tagName: "Icon", - options, - id: create_fragment$1.name - }); - - const { ctx } = this.$$; - const props = options.props || {}; - - if (/*name*/ ctx[7] === undefined && !("name" in props)) { - console.warn(" was created without expected prop 'name'"); - } - } - - get size() { - throw new Error(": Props cannot be read directly from the component instance unless compiling with 'accessors: true' or ''"); - } - - set size(value) { - throw new Error(": Props cannot be set directly on the component instance unless compiling with 'accessors: true' or ''"); - } - - get fill() { - throw new Error(": Props cannot be read directly from the component instance unless compiling with 'accessors: true' or ''"); - } - - set fill(value) { - throw new Error(": Props cannot be set directly on the component instance unless compiling with 'accessors: true' or ''"); - } - - get color() { - throw new Error(": Props cannot be read directly from the component instance unless compiling with 'accessors: true' or ''"); - } - - set color(value) { - throw new Error(": Props cannot be set directly on the component instance unless compiling with 'accessors: true' or ''"); - } - - get light() { - throw new Error(": Props cannot be read directly from the component instance unless compiling with 'accessors: true' or ''"); - } - - set light(value) { - throw new Error(": Props cannot be set directly on the component instance unless compiling with 'accessors: true' or ''"); - } - - get width() { - throw new Error(": Props cannot be read directly from the component instance unless compiling with 'accessors: true' or ''"); - } - - set width(value) { - throw new Error(": Props cannot be set directly on the component instance unless compiling with 'accessors: true' or ''"); - } - - get linecap() { - throw new Error(": Props cannot be read directly from the component instance unless compiling with 'accessors: true' or ''"); - } - - set linecap(value) { - throw new Error(": Props cannot be set directly on the component instance unless compiling with 'accessors: true' or ''"); - } - - get linejoin() { - throw new Error(": Props cannot be read directly from the component instance unless compiling with 'accessors: true' or ''"); - } - - set linejoin(value) { - throw new Error(": Props cannot be set directly on the component instance unless compiling with 'accessors: true' or ''"); - } - - get name() { - throw new Error(": Props cannot be read directly from the component instance unless compiling with 'accessors: true' or ''"); - } - - set name(value) { - throw new Error(": Props cannot be set directly on the component instance unless compiling with 'accessors: true' or ''"); - } - - get inactive() { - throw new Error(": Props cannot be read directly from the component instance unless compiling with 'accessors: true' or ''"); - } - - set inactive(value) { - throw new Error(": Props cannot be set directly on the component instance unless compiling with 'accessors: true' or ''"); - } - - get light_color() { - throw new Error(": Props cannot be read directly from the component instance unless compiling with 'accessors: true' or ''"); - } - - set light_color(value) { - throw new Error(": Props cannot be set directly on the component instance unless compiling with 'accessors: true' or ''"); - } - } - - /* src/Home.svelte generated by Svelte v3.30.0 */ - const file$1 = "src/Home.svelte"; - - function create_fragment$2(ctx) { - let hero; - let h10; - let t1; - let p0; - let t2; - let b0; - let t4; - let b1; - let t6; - let t7; - let hr0; - let t8; - let section0; - let aside0; - let h30; - let t10; - let icon0; - let t11; - let p1; - let t12; - let a0; - let t14; - let t15; - let aside1; - let h31; - let t17; - let icon1; - let t18; - let p2; - let t19; - let a1; - let t21; - let a2; - let t23; - let t24; - let aside2; - let h32; - let t26; - let icon2; - let t27; - let p3; - let t29; - let rationale; - let section1; - let h11; - let t31; - let p4; - let t32; - let b2; - let t34; - let t35; - let p5; - let t37; - let section2; - let aside3; - let pre0; - let t39; - let p6; - let t41; - let section3; - let aside4; - let pre1; - let t43; - let hr1; - let t44; - let section4; - let p7; - let t45; - let a3; - let t47; - let t48; - let a4; - let button; - let link_action; - let t50; - let hr2; - let t51; - let section5; - let h12; - let t53; - let h13; - let t55; - let p8; - let t56; - let b3; - let t58; - let b4; - let t60; - let t61; - let p9; - let t62; - let b5; - let t64; - let b6; - let t66; - let b7; - let t68; - let b8; - let t70; - let t71; - let h14; - let t73; - let p10; - let t75; - let p11; - let t77; - let h15; - let t79; - let p12; - let t80; - let b9; - let t82; - let b10; - let t84; - let b11; - let t86; - let b12; - let t88; - let b13; - let t90; - let b14; - let t92; - let t93; - let p13; - let t94; - let b15; - let t96; - let b16; - let t98; - let b17; - let t100; - let b18; - let t102; - let b19; - let t104; - let t105; - let p14; - let t106; - let b20; - let t108; - let b21; - let t110; - let b22; - let t112; - let b23; - let t114; - let b24; - let t116; - let t117; - let h16; - let t119; - let p15; - let t120; - let b25; - let t122; - let b26; - let t124; - let b27; - let t126; - let t127; - let p16; - let t128; - let b28; - let t130; - let b29; - let t132; - let b30; - let t134; - let t135; - let h17; - let t137; - let p17; - let t139; - let h18; - let t141; - let p18; - let t142; - let a5; - let t144; - let current; - let mounted; - let dispose; - - icon0 = new Icon({ - props: { name: "code", size: "64" }, - $$inline: true - }); - - icon1 = new Icon({ - props: { name: "box", size: "64" }, - $$inline: true - }); - - icon2 = new Icon({ - props: { name: "sliders", size: "64" }, - $$inline: true - }); - - const block = { - c: function create() { - hero = element("hero"); - h10 = element("h1"); - h10.textContent = "fsck CSS"; - t1 = space(); - p0 = element("p"); - t2 = text("An experiment in cleaning up CSS and HTML with modern tools like "); - b0 = element("b"); - b0.textContent = "flexbox"; - t4 = text(" and "); - b1 = element("b"); - b1.textContent = "grids"; - t6 = text("."); - t7 = space(); - hr0 = element("hr"); - t8 = space(); - section0 = element("section"); - aside0 = element("aside"); - h30 = element("h3"); - h30.textContent = "Remove Classes"; - t10 = space(); - create_component(icon0.$$.fragment); - t11 = space(); - p1 = element("p"); - t12 = text("Using a classless style like "); - a0 = element("a"); - a0.textContent = "MVP.css"; - t14 = text(", you\n bring back CSS specificity to its original intent."); - t15 = space(); - aside1 = element("aside"); - h31 = element("h3"); - h31.textContent = "Add Flexbox + Grids"; - t17 = space(); - create_component(icon1.$$.fragment); - t18 = space(); - p2 = element("p"); - t19 = text("Using "); - a1 = element("a"); - a1.textContent = "flexbox"; - t21 = text(" and "); - a2 = element("a"); - a2.textContent = "CSS grids"; - t23 = text(" you can layout anything you want without structure divs."); - t24 = space(); - aside2 = element("aside"); - h32 = element("h3"); - h32.textContent = "Modify with Variables"; - t26 = space(); - create_component(icon2.$$.fragment); - t27 = space(); - p3 = element("p"); - p3.textContent = "Using CSS variables you can replace many uses of classes and ids, avoiding most specificity\n issues. Try the dark mode button below."; - t29 = space(); - rationale = element("rationale"); - section1 = element("section"); - h11 = element("h1"); - h11.textContent = "Cleaner CSS"; - t31 = space(); - p4 = element("p"); - t32 = text("This website is nothing more than a set of small demos for the idea of\n using flexbox and grids to clean up and simplify CSS. Most everything else\n about CSS stays. Filters, transforms, attributes, and everything that\n applies to the visual display of the components of a design. What gets\n removed is "); - b2 = element("b"); - b2.textContent = "div"; - t34 = text(" heavy, class heavy, not-semantic-at-all layout\n systems cluttering the real information available through simple HTML\n tags."); - t35 = space(); - p5 = element("p"); - p5.textContent = "In short, if you're writing this:"; - t37 = space(); - section2 = element("section"); - aside3 = element("aside"); - pre0 = element("pre"); - pre0.textContent = "
\n
\n ...\n
\n
"; - t39 = space(); - p6 = element("p"); - p6.textContent = "You could write this if you use flexbox, grids, and variables:"; - t41 = space(); - section3 = element("section"); - aside4 = element("aside"); - pre1 = element("pre"); - pre1.textContent = "\n ...\n"; - t43 = space(); - hr1 = element("hr"); - t44 = space(); - section4 = element("section"); - p7 = element("p"); - t45 = text("I demonstrate the idea with a series of copies of existing websites and other layout problems \n people frequently encounter. If you have a suggested layout challenge for me, then tell me on Twitter "); - a3 = element("a"); - a3.textContent = "@lzsthw"; - t47 = text(" and I'll give it a shot."); - t48 = space(); - a4 = element("a"); - button = element("button"); - button.textContent = "View The Demos"; - t50 = space(); - hr2 = element("hr"); - t51 = space(); - section5 = element("section"); - h12 = element("h1"); - h12.textContent = "FAQ"; - t53 = space(); - h13 = element("h1"); - h13.textContent = "Why did you do this?"; - t55 = space(); - p8 = element("p"); - t56 = text("It started as an attempt to relearn modern CSS for myself so I can teach others. As I did this I realized that most of the things I learned have been completely replaced with flexbox and grids, and if I just use those then CSS becomes much easier to understand. Specificity works as expected. When I change a component with "); - b3 = element("b"); - b3.textContent = "class"; - t58 = text(" or "); - b4 = element("b"); - b4.textContent = "id"; - t60 = text(" it actually changes. The layout flows correctly and is easier to create. Nearly everything works better and is easier to understand."); - t61 = space(); - p9 = element("p"); - t62 = text("This website became a demonstration to others that "); - b5 = element("b"); - b5.textContent = "layout"; - t64 = text(" doesn't need "); - b6 = element("b"); - b6.textContent = "div.class"; - t66 = text(" structure, subverting "); - b7 = element("b"); - b7.textContent = "ul/li"; - t68 = text(" tags, and other CSS hacks. You can use simple "); - b8 = element("b"); - b8.textContent = "truly semantic"; - t70 = text(" HTML and simple CSS to accomplish 90% of what you're doing today with more reliable results faster."); - t71 = space(); - h14 = element("h1"); - h14.textContent = "Why is this site in black and white?"; - t73 = space(); - p10 = element("p"); - p10.textContent = "I used an entirely monochrome simplified design because I'm not a designer, and I want people to focus on the visual structure of each demo, not whether my use of Cornflower Blue was appropriate for a button."; - t75 = space(); - p11 = element("p"); - p11.textContent = "I'm also an experienced oil painter and a fundamental teaching in realist art is that color does not matter for visual comprehension. What matters most is the \"drawing\", or monochrome aspects of visual experience. If you can't make something work in monochrome then no amount of color will help. Make it visually understandable in monochrome and any color scheme you choose should work (barring a few rules about color perception's relationship to monochrome values)."; - t77 = space(); - h15 = element("h1"); - h15.textContent = "What's wrong with classes?"; - t79 = space(); - p12 = element("p"); - t80 = text("There's nothing wrong with classes in CSS. How they're used in recent CSS frameworks subverts the normal specificity rules making CSS unnecessarily difficult. The original specificity rules put the base design of a component at the tag level, then a "); - b9 = element("b"); - b9.textContent = "class"; - t82 = text(" can be used to modify and extend the design, and an "); - b10 = element("b"); - b10.textContent = "id"; - t84 = text(" can make this even more specific. In today's use of "); - b11 = element("b"); - b11.textContent = "div.class"; - t86 = text(" heavy markup you lose this ability to alter the design as needed where its used, and instead you have to resort to "); - b12 = element("b"); - b12.textContent = "!important"; - t88 = text(" and specificity hacking to change how something looks, or add more "); - b13 = element("b"); - b13.textContent = "div"; - t90 = text(" with more "); - b14 = element("b"); - b14.textContent = "class"; - t92 = text("."); - t93 = space(); - p13 = element("p"); - t94 = text("The other problem with "); - b15 = element("b"); - b15.textContent = "div.class"; - t96 = text(" is it's more difficult to debug problems with the layout. There's the obvious problem of debugging failures in layout through a forest of divs, but you're also relying on specificity that can come from anywhere in the cascade. It's much more difficult to find exactly "); - b16 = element("b"); - b16.textContent = "what"; - t98 = text(" bit of CSS is overriding your local decisions. If you've ever had to open the inspector in your browser to troll through CSS locations looking for the culprit then that's why. If the base design decisions are at the tag level, then your local "); - b17 = element("b"); - b17.textContent = "class"; - t100 = text(" and "); - b18 = element("b"); - b18.textContent = "id"; - t102 = text(" specifics will work as expected. You can also replace many uses of class as design modifiers with scoped CSS variables and reduce the use of "); - b19 = element("b"); - b19.textContent = "div.class"; - t104 = text(" even further."); - t105 = space(); - p14 = element("p"); - t106 = text("Finally, using "); - b20 = element("b"); - b20.textContent = "div.class"; - t108 = text(" heavy layout systems pollutes your markup with structure that's difficult to analyze and maintain. When you focus on using "); - b21 = element("b"); - b21.textContent = "truly"; - t110 = text(" semantic named tags and follow specificity as intended then your HTML is lighter and easier to understand because it isn't full of "); - b22 = element("b"); - b22.textContent = "div.grid.col-1.col-mx-auto"; - t112 = text(" class rules that really have nothing to do with the actual meaning of that particular visual element. With "); - b23 = element("b"); - b23.textContent = "flexbox"; - t114 = text(" and "); - b24 = element("b"); - b24.textContent = "CSS grids"; - t116 = text(" you don't need any layout divs, and can keep the HTML clean and semantic. This also ends up being more flexible with less or the same effort as using a pre-made grid system full of divs."); - t117 = space(); - h16 = element("h1"); - h16.textContent = "Should we ban div.class?"; - t119 = space(); - p15 = element("p"); - t120 = text("Hell no. The current problem of "); - b25 = element("b"); - b25.textContent = "too much"; - t122 = text(" class based CSS is because of trends in recent years calling for everyone to irrationally ban some practice. Remember when everyone decided tables were evil? So then we banned tables and "); - b26 = element("b"); - b26.textContent = "grids"; - t124 = text(" completely? Then nobody could do a layout without crazy tricks and JavaScript? Nobody wants a repeat of the anti-tables \"semantic markup\" war, so please don't ban "); - b27 = element("b"); - b27.textContent = "div.class"; - t126 = text("."); - t127 = space(); - p16 = element("p"); - t128 = text("All this website does is demonstrate that you don't need "); - b28 = element("b"); - b28.textContent = "so much div.class"; - t130 = text(". You can scrap a lot of what you're using now to do layout and go with clean HTML with flatter structure, then judiciously use "); - b29 = element("b"); - b29.textContent = "div.class"; - t132 = text(" as needed. Treat "); - b30 = element("b"); - b30.textContent = "div.class"; - t134 = text(" like salt. Right now you're pouring a whole box of it on your HTML when a little bit makes it taste better."); - t135 = space(); - h17 = element("h1"); - h17.textContent = "Do these demos work on phones?"; - t137 = space(); - p17 = element("p"); - p17.textContent = "They could but I haven't taken the time to make them adapt. That may come in a later release. Try it anyway\n as you may be surprised how well the layouts still work on smaller screens."; - t139 = space(); - h18 = element("h1"); - h18.textContent = "Can I suggest a challenge?"; - t141 = space(); - p18 = element("p"); - t142 = text("Yes please. If you find an example of a layout that you think is impossible with flexbox and CSS grids then tell me on "); - a5 = element("a"); - a5.textContent = "Twitter at @lzsthw"; - t144 = text(" and I'll attempt a replica. My only requirement is that you also have to tell me what trick the challenge is using. This is an exercise in replicating layouts, not reverse engineering devious hidden CSS tricks. Also keep in mind that I am not invested in \"winning\" and only curious about the limits of flexbox and CSS grids. If you find something I can't do, that means I found a useful limit to avoid. It doesn't mean that we throw out all of flexbox and CSS grids so you can go back to the float-clear-div-class 1990s."); - attr_dev(h10, "class", "svelte-3owcui"); - add_location(h10, file$1, 34, 2, 499); - add_location(b0, file$1, 35, 70, 587); - add_location(b1, file$1, 35, 89, 606); - add_location(p0, file$1, 35, 2, 519); - attr_dev(hero, "class", "svelte-3owcui"); - add_location(hero, file$1, 33, 0, 490); - add_location(hr0, file$1, 38, 0, 633); - add_location(h30, file$1, 42, 4, 663); - attr_dev(a0, "href", "https://andybrewer.github.io/mvp/"); - attr_dev(a0, "class", "svelte-3owcui"); - add_location(a0, file$1, 44, 36, 758); - add_location(p1, file$1, 44, 4, 726); - attr_dev(aside0, "class", "svelte-3owcui"); - add_location(aside0, file$1, 41, 2, 651); - add_location(h31, file$1, 49, 4, 904); - attr_dev(a1, "href", "https://css-tricks.com/snippets/css/a-guide-to-flexbox/"); - attr_dev(a1, "class", "svelte-3owcui"); - add_location(a1, file$1, 51, 13, 980); - attr_dev(a2, "href", "https://css-tricks.com/snippets/css/complete-guide-grid/"); - attr_dev(a2, "class", "svelte-3owcui"); - add_location(a2, file$1, 51, 95, 1062); - add_location(p2, file$1, 51, 4, 971); - attr_dev(aside1, "class", "svelte-3owcui"); - add_location(aside1, file$1, 48, 2, 892); - add_location(h32, file$1, 55, 4, 1230); - add_location(p3, file$1, 57, 4, 1303); - add_location(aside2, file$1, 54, 2, 1218); - add_location(section0, file$1, 40, 0, 639); - add_location(h11, file$1, 66, 4, 1505); - add_location(section1, file$1, 65, 2, 1491); - add_location(b2, file$1, 73, 15, 1861); - add_location(p4, file$1, 69, 2, 1542); - add_location(p5, file$1, 77, 2, 2010); - add_location(pre0, file$1, 81, 2, 2076); - add_location(aside3, file$1, 80, 2, 2066); - add_location(section2, file$1, 79, 2, 2054); - add_location(p6, file$1, 91, 2, 2210); - add_location(pre1, file$1, 95, 2, 2305); - add_location(aside4, file$1, 94, 2, 2295); - add_location(section3, file$1, 93, 2, 2283); - add_location(hr1, file$1, 103, 2, 2380); - attr_dev(a3, "href", "https://twitter.com/lzsthw"); - add_location(a3, file$1, 106, 109, 2608); - add_location(p7, file$1, 105, 4, 2401); - add_location(button, file$1, 108, 30, 2721); - attr_dev(a4, "href", "/demos"); - add_location(a4, file$1, 108, 4, 2695); - add_location(section4, file$1, 104, 2, 2387); - add_location(hr2, file$1, 111, 2, 2773); - attr_dev(h12, "id", "faq"); - attr_dev(h12, "class", "svelte-3owcui"); - add_location(h12, file$1, 113, 4, 2794); - add_location(section5, file$1, 112, 2, 2780); - add_location(h13, file$1, 116, 2, 2832); - add_location(b3, file$1, 118, 331, 3194); - add_location(b4, file$1, 118, 347, 3210); - add_location(p8, file$1, 118, 2, 2865); - add_location(b5, file$1, 121, 56, 3419); - add_location(b6, file$1, 121, 83, 3446); - add_location(b7, file$1, 121, 122, 3485); - add_location(b8, file$1, 121, 182, 3545); - add_location(p9, file$1, 121, 2, 3365); - add_location(h14, file$1, 124, 2, 3677); - add_location(p10, file$1, 125, 2, 3725); - add_location(p11, file$1, 128, 2, 3949); - add_location(h15, file$1, 131, 2, 4432); - add_location(b9, file$1, 133, 256, 4725); - add_location(b10, file$1, 133, 321, 4790); - add_location(b11, file$1, 133, 384, 4853); - add_location(b12, file$1, 133, 516, 4985); - add_location(b13, file$1, 133, 601, 5070); - add_location(b14, file$1, 133, 622, 5091); - add_location(p12, file$1, 133, 2, 4471); - add_location(b15, file$1, 135, 28, 5138); - add_location(b16, file$1, 135, 314, 5424); - add_location(b17, file$1, 135, 571, 5681); - add_location(b18, file$1, 135, 588, 5698); - add_location(b19, file$1, 135, 740, 5850); - add_location(p13, file$1, 135, 2, 5112); - add_location(b20, file$1, 137, 20, 5906); - add_location(b21, file$1, 137, 161, 6047); - add_location(b22, file$1, 137, 305, 6191); - add_location(b23, file$1, 137, 447, 6333); - add_location(b24, file$1, 137, 466, 6352); - add_location(p14, file$1, 137, 2, 5888); - add_location(h16, file$1, 139, 2, 6564); - add_location(b25, file$1, 141, 38, 6637); - add_location(b26, file$1, 141, 243, 6842); - add_location(b27, file$1, 141, 421, 7020); - add_location(p15, file$1, 141, 2, 6601); - add_location(b28, file$1, 143, 62, 7105); - add_location(b29, file$1, 143, 215, 7258); - add_location(b30, file$1, 143, 250, 7293); - add_location(p16, file$1, 143, 2, 7045); - add_location(h17, file$1, 145, 2, 7425); - add_location(p17, file$1, 146, 2, 7467); - add_location(h18, file$1, 149, 2, 7667); - attr_dev(a5, "href", "https://twitter.com/lzsthw"); - add_location(a5, file$1, 150, 125, 7828); - add_location(p18, file$1, 150, 2, 7705); - attr_dev(rationale, "class", "svelte-3owcui"); - add_location(rationale, file$1, 64, 0, 1477); - }, - l: function claim(nodes) { - throw new Error("options.hydrate only works if the component was compiled with the `hydratable: true` option"); - }, - m: function mount(target, anchor) { - insert_dev(target, hero, anchor); - append_dev(hero, h10); - append_dev(hero, t1); - append_dev(hero, p0); - append_dev(p0, t2); - append_dev(p0, b0); - append_dev(p0, t4); - append_dev(p0, b1); - append_dev(p0, t6); - insert_dev(target, t7, anchor); - insert_dev(target, hr0, anchor); - insert_dev(target, t8, anchor); - insert_dev(target, section0, anchor); - append_dev(section0, aside0); - append_dev(aside0, h30); - append_dev(aside0, t10); - mount_component(icon0, aside0, null); - append_dev(aside0, t11); - append_dev(aside0, p1); - append_dev(p1, t12); - append_dev(p1, a0); - append_dev(p1, t14); - append_dev(section0, t15); - append_dev(section0, aside1); - append_dev(aside1, h31); - append_dev(aside1, t17); - mount_component(icon1, aside1, null); - append_dev(aside1, t18); - append_dev(aside1, p2); - append_dev(p2, t19); - append_dev(p2, a1); - append_dev(p2, t21); - append_dev(p2, a2); - append_dev(p2, t23); - append_dev(section0, t24); - append_dev(section0, aside2); - append_dev(aside2, h32); - append_dev(aside2, t26); - mount_component(icon2, aside2, null); - append_dev(aside2, t27); - append_dev(aside2, p3); - insert_dev(target, t29, anchor); - insert_dev(target, rationale, anchor); - append_dev(rationale, section1); - append_dev(section1, h11); - append_dev(rationale, t31); - append_dev(rationale, p4); - append_dev(p4, t32); - append_dev(p4, b2); - append_dev(p4, t34); - append_dev(rationale, t35); - append_dev(rationale, p5); - append_dev(rationale, t37); - append_dev(rationale, section2); - append_dev(section2, aside3); - append_dev(aside3, pre0); - append_dev(rationale, t39); - append_dev(rationale, p6); - append_dev(rationale, t41); - append_dev(rationale, section3); - append_dev(section3, aside4); - append_dev(aside4, pre1); - append_dev(rationale, t43); - append_dev(rationale, hr1); - append_dev(rationale, t44); - append_dev(rationale, section4); - append_dev(section4, p7); - append_dev(p7, t45); - append_dev(p7, a3); - append_dev(p7, t47); - append_dev(section4, t48); - append_dev(section4, a4); - append_dev(a4, button); - append_dev(rationale, t50); - append_dev(rationale, hr2); - append_dev(rationale, t51); - append_dev(rationale, section5); - append_dev(section5, h12); - append_dev(rationale, t53); - append_dev(rationale, h13); - append_dev(rationale, t55); - append_dev(rationale, p8); - append_dev(p8, t56); - append_dev(p8, b3); - append_dev(p8, t58); - append_dev(p8, b4); - append_dev(p8, t60); - append_dev(rationale, t61); - append_dev(rationale, p9); - append_dev(p9, t62); - append_dev(p9, b5); - append_dev(p9, t64); - append_dev(p9, b6); - append_dev(p9, t66); - append_dev(p9, b7); - append_dev(p9, t68); - append_dev(p9, b8); - append_dev(p9, t70); - append_dev(rationale, t71); - append_dev(rationale, h14); - append_dev(rationale, t73); - append_dev(rationale, p10); - append_dev(rationale, t75); - append_dev(rationale, p11); - append_dev(rationale, t77); - append_dev(rationale, h15); - append_dev(rationale, t79); - append_dev(rationale, p12); - append_dev(p12, t80); - append_dev(p12, b9); - append_dev(p12, t82); - append_dev(p12, b10); - append_dev(p12, t84); - append_dev(p12, b11); - append_dev(p12, t86); - append_dev(p12, b12); - append_dev(p12, t88); - append_dev(p12, b13); - append_dev(p12, t90); - append_dev(p12, b14); - append_dev(p12, t92); - append_dev(rationale, t93); - append_dev(rationale, p13); - append_dev(p13, t94); - append_dev(p13, b15); - append_dev(p13, t96); - append_dev(p13, b16); - append_dev(p13, t98); - append_dev(p13, b17); - append_dev(p13, t100); - append_dev(p13, b18); - append_dev(p13, t102); - append_dev(p13, b19); - append_dev(p13, t104); - append_dev(rationale, t105); - append_dev(rationale, p14); - append_dev(p14, t106); - append_dev(p14, b20); - append_dev(p14, t108); - append_dev(p14, b21); - append_dev(p14, t110); - append_dev(p14, b22); - append_dev(p14, t112); - append_dev(p14, b23); - append_dev(p14, t114); - append_dev(p14, b24); - append_dev(p14, t116); - append_dev(rationale, t117); - append_dev(rationale, h16); - append_dev(rationale, t119); - append_dev(rationale, p15); - append_dev(p15, t120); - append_dev(p15, b25); - append_dev(p15, t122); - append_dev(p15, b26); - append_dev(p15, t124); - append_dev(p15, b27); - append_dev(p15, t126); - append_dev(rationale, t127); - append_dev(rationale, p16); - append_dev(p16, t128); - append_dev(p16, b28); - append_dev(p16, t130); - append_dev(p16, b29); - append_dev(p16, t132); - append_dev(p16, b30); - append_dev(p16, t134); - append_dev(rationale, t135); - append_dev(rationale, h17); - append_dev(rationale, t137); - append_dev(rationale, p17); - append_dev(rationale, t139); - append_dev(rationale, h18); - append_dev(rationale, t141); - append_dev(rationale, p18); - append_dev(p18, t142); - append_dev(p18, a5); - append_dev(p18, t144); - current = true; - - if (!mounted) { - dispose = action_destroyer(link_action = link.call(null, a4)); - mounted = true; - } - }, - p: noop, - i: function intro(local) { - if (current) return; - transition_in(icon0.$$.fragment, local); - transition_in(icon1.$$.fragment, local); - transition_in(icon2.$$.fragment, local); - current = true; - }, - o: function outro(local) { - transition_out(icon0.$$.fragment, local); - transition_out(icon1.$$.fragment, local); - transition_out(icon2.$$.fragment, local); - current = false; - }, - d: function destroy(detaching) { - if (detaching) detach_dev(hero); - if (detaching) detach_dev(t7); - if (detaching) detach_dev(hr0); - if (detaching) detach_dev(t8); - if (detaching) detach_dev(section0); - destroy_component(icon0); - destroy_component(icon1); - destroy_component(icon2); - if (detaching) detach_dev(t29); - if (detaching) detach_dev(rationale); - mounted = false; - dispose(); - } - }; - - 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("Home", slots, []); - const writable_props = []; - - Object.keys($$props).forEach(key => { - if (!~writable_props.indexOf(key) && key.slice(0, 2) !== "$$") console.warn(` was created with unknown prop '${key}'`); - }); - - $$self.$capture_state = () => ({ link, Icon }); - return []; - } - - class Home extends SvelteComponentDev { - constructor(options) { - super(options); - init(this, options, instance$2, create_fragment$2, safe_not_equal, {}); - - dispatch_dev("SvelteRegisterComponent", { - component: this, - tagName: "Home", - options, - id: create_fragment$2.name - }); - } - } - - /* src/thumbs/Google.svelte generated by Svelte v3.30.0 */ - const file$2 = "src/thumbs/Google.svelte"; - - function create_fragment$3(ctx) { - let content; - let header; - let nav; - let nav_left; - let a0; - let t1; - let a1; - let t3; - let ul; - let li0; - let t5; - let li1; - let t7; - let li2; - let icon; - let t8; - let li3; - let button0; - let t10; - let figure; - let a2; - let img; - let img_src_value; - let link_action; - let t11; - let search; - let input; - let t12; - let buttons; - let button1; - let t14; - let button2; - let current; - let mounted; - let dispose; - - icon = new Icon({ - props: { name: "grid", color: "#000" }, - $$inline: true - }); - - const block = { - c: function create() { - content = element("content"); - header = element("header"); - nav = element("nav"); - nav_left = element("nav-left"); - a0 = element("a"); - a0.textContent = "About"; - t1 = space(); - a1 = element("a"); - a1.textContent = "Store"; - t3 = space(); - ul = element("ul"); - li0 = element("li"); - li0.textContent = "Gmail"; - t5 = space(); - li1 = element("li"); - li1.textContent = "Image"; - t7 = space(); - li2 = element("li"); - create_component(icon.$$.fragment); - t8 = space(); - li3 = element("li"); - button0 = element("button"); - button0.textContent = "Sign In"; - t10 = space(); - figure = element("figure"); - a2 = element("a"); - img = element("img"); - t11 = space(); - search = element("search"); - input = element("input"); - t12 = space(); - buttons = element("buttons"); - button1 = element("button"); - button1.textContent = "Google Search"; - t14 = space(); - button2 = element("button"); - button2.textContent = "I'm Feeling Lucky"; - attr_dev(a0, "class", "svelte-1xw0xeo"); - add_location(a0, file$2, 74, 8, 1064); - attr_dev(a1, "class", "svelte-1xw0xeo"); - add_location(a1, file$2, 75, 8, 1085); - add_location(nav_left, file$2, 73, 6, 1045); - add_location(li0, file$2, 78, 6, 1133); - add_location(li1, file$2, 79, 6, 1154); - add_location(li2, file$2, 80, 6, 1175); - attr_dev(button0, "class", "svelte-1xw0xeo"); - add_location(button0, file$2, 81, 10, 1228); - add_location(li3, file$2, 81, 6, 1224); - add_location(ul, file$2, 77, 6, 1122); - attr_dev(nav, "class", "svelte-1xw0xeo"); - add_location(nav, file$2, 72, 4, 1033); - attr_dev(header, "class", "svelte-1xw0xeo"); - add_location(header, file$2, 71, 2, 1020); - if (img.src !== (img_src_value = "http://via.placeholder.com/500x200?text=Google+Doodle")) attr_dev(img, "src", img_src_value); - add_location(img, file$2, 88, 6, 1349); - attr_dev(a2, "href", "/demos/google"); - attr_dev(a2, "class", "svelte-1xw0xeo"); - add_location(a2, file$2, 87, 4, 1309); - attr_dev(figure, "class", "svelte-1xw0xeo"); - add_location(figure, file$2, 86, 2, 1296); - attr_dev(input, "type", "text"); - attr_dev(input, "class", "svelte-1xw0xeo"); - add_location(input, file$2, 93, 2, 1450); - attr_dev(button1, "class", "svelte-1xw0xeo"); - add_location(button1, file$2, 95, 6, 1490); - attr_dev(button2, "class", "svelte-1xw0xeo"); - add_location(button2, file$2, 96, 6, 1527); - attr_dev(buttons, "class", "svelte-1xw0xeo"); - add_location(buttons, file$2, 94, 4, 1474); - attr_dev(search, "class", "svelte-1xw0xeo"); - add_location(search, file$2, 92, 2, 1439); - attr_dev(content, "class", "svelte-1xw0xeo"); - add_location(content, file$2, 70, 0, 1008); - }, - l: function claim(nodes) { - throw new Error("options.hydrate only works if the component was compiled with the `hydratable: true` option"); - }, - m: function mount(target, anchor) { - insert_dev(target, content, anchor); - append_dev(content, header); - append_dev(header, nav); - append_dev(nav, nav_left); - append_dev(nav_left, a0); - append_dev(nav_left, t1); - append_dev(nav_left, a1); - append_dev(nav, t3); - append_dev(nav, ul); - append_dev(ul, li0); - append_dev(ul, t5); - append_dev(ul, li1); - append_dev(ul, t7); - append_dev(ul, li2); - mount_component(icon, li2, null); - append_dev(ul, t8); - append_dev(ul, li3); - append_dev(li3, button0); - append_dev(content, t10); - append_dev(content, figure); - append_dev(figure, a2); - append_dev(a2, img); - append_dev(content, t11); - append_dev(content, search); - append_dev(search, input); - append_dev(search, t12); - append_dev(search, buttons); - append_dev(buttons, button1); - append_dev(buttons, t14); - append_dev(buttons, button2); - current = true; - - if (!mounted) { - dispose = action_destroyer(link_action = link.call(null, a2)); - mounted = true; - } - }, - p: noop, - i: function intro(local) { - if (current) return; - transition_in(icon.$$.fragment, local); - current = true; - }, - o: function outro(local) { - transition_out(icon.$$.fragment, local); - current = false; - }, - d: function destroy(detaching) { - if (detaching) detach_dev(content); - destroy_component(icon); - mounted = false; - dispose(); - } - }; - - 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("Google", slots, []); - const writable_props = []; - - Object.keys($$props).forEach(key => { - if (!~writable_props.indexOf(key) && key.slice(0, 2) !== "$$") console.warn(` was created with unknown prop '${key}'`); - }); - - $$self.$capture_state = () => ({ link, Icon }); - return []; - } - - class Google extends SvelteComponentDev { - constructor(options) { - super(options); - init(this, options, instance$3, create_fragment$3, safe_not_equal, {}); - - dispatch_dev("SvelteRegisterComponent", { - component: this, - tagName: "Google", - options, - id: create_fragment$3.name - }); - } - } - - /* src/thumbs/Twitter.svelte generated by Svelte v3.30.0 */ - const file$3 = "src/thumbs/Twitter.svelte"; - - function create_fragment$4(ctx) { - let content; - let middle; - let header; - let nav; - let back; - let icon0; - let t0; - let name; - let h4; - let t2; - let span; - let t4; - let images; - let figure0; - let img0; - let img0_src_value; - let t5; - let figure1; - let img1; - let img1_src_value; - let t6; - let button; - let t8; - let profile; - let h3; - let t10; - let p0; - let t12; - let p1; - let t14; - let p2; - let icon1; - let t15; - let icon2; - let t16; - let a; - let t18; - let icon3; - let t19; - let t20; - let p3; - let b0; - let t22; - let b1; - let t24; - let current; - - icon0 = new Icon({ - props: { name: "arrow-left" }, - $$inline: true - }); - - icon1 = new Icon({ - props: { - name: "map", - size: "24", - color: "var(--color-bg-secondary)" - }, - $$inline: true - }); - - icon2 = new Icon({ - props: { - name: "link", - size: "24", - color: "var(--color-bg-secondary)" - }, - $$inline: true - }); - - icon3 = new Icon({ - props: { - name: "calendar", - size: "24", - color: "var(--color-bg-secondary)" - }, - $$inline: true - }); - - const block = { - c: function create() { - content = element("content"); - middle = element("middle"); - header = element("header"); - nav = element("nav"); - back = element("back"); - create_component(icon0.$$.fragment); - t0 = space(); - name = element("name"); - h4 = element("h4"); - h4.textContent = "Zed A. Shaw, Writer"; - t2 = space(); - span = element("span"); - span.textContent = "7,754 Tweets"; - t4 = space(); - images = element("images"); - figure0 = element("figure"); - img0 = element("img"); - t5 = space(); - figure1 = element("figure"); - img1 = element("img"); - t6 = space(); - button = element("button"); - button.textContent = "Follow"; - t8 = space(); - profile = element("profile"); - h3 = element("h3"); - h3.textContent = "Zed A. Shaw, Writer"; - t10 = space(); - p0 = element("p"); - p0.textContent = "@lzsthw"; - t12 = space(); - p1 = element("p"); - p1.textContent = "The author of The Hard Way Series published by Addison/Wesley including Learn Python The Hard Way and many more. Follow me here for coding tips and book news."; - t14 = space(); - p2 = element("p"); - create_component(icon1.$$.fragment); - t15 = text(" Some Place, KY "); - create_component(icon2.$$.fragment); - t16 = space(); - a = element("a"); - a.textContent = "learnjsthehardway.org"; - t18 = space(); - create_component(icon3.$$.fragment); - t19 = text(" Joined Jan, 1999."); - t20 = space(); - p3 = element("p"); - b0 = element("b"); - b0.textContent = "167"; - t22 = text(" Following "); - b1 = element("b"); - b1.textContent = "10.4k"; - t24 = text(" Followers"); - attr_dev(back, "class", "svelte-1prpjq7"); - add_location(back, file$3, 103, 8, 1582); - attr_dev(h4, "class", "svelte-1prpjq7"); - add_location(h4, file$3, 105, 10, 1647); - attr_dev(span, "class", "svelte-1prpjq7"); - add_location(span, file$3, 106, 10, 1686); - add_location(name, file$3, 104, 8, 1630); - attr_dev(nav, "class", "svelte-1prpjq7"); - add_location(nav, file$3, 102, 6, 1568); - attr_dev(header, "class", "svelte-1prpjq7"); - add_location(header, file$3, 101, 4, 1553); - attr_dev(img0, "alt", "Profile background"); - if (img0.src !== (img0_src_value = "/header_pic.jpg")) attr_dev(img0, "src", img0_src_value); - attr_dev(img0, "class", "svelte-1prpjq7"); - add_location(img0, file$3, 113, 8, 1808); - attr_dev(figure0, "id", "background"); - attr_dev(figure0, "class", "svelte-1prpjq7"); - add_location(figure0, file$3, 112, 6, 1775); - attr_dev(img1, "alt", "Profile picture"); - if (img1.src !== (img1_src_value = "/profile_pic.jpg")) attr_dev(img1, "src", img1_src_value); - attr_dev(img1, "class", "svelte-1prpjq7"); - add_location(img1, file$3, 117, 8, 1913); - attr_dev(button, "id", "follow"); - attr_dev(button, "class", "svelte-1prpjq7"); - add_location(button, file$3, 118, 8, 1972); - attr_dev(figure1, "id", "avatar"); - attr_dev(figure1, "class", "svelte-1prpjq7"); - add_location(figure1, file$3, 116, 6, 1884); - attr_dev(images, "class", "svelte-1prpjq7"); - add_location(images, file$3, 111, 4, 1760); - add_location(h3, file$3, 123, 6, 2059); - add_location(p0, file$3, 124, 6, 2094); - add_location(p1, file$3, 125, 6, 2115); - add_location(a, file$3, 126, 153, 2434); - add_location(p2, file$3, 126, 6, 2287); - add_location(b0, file$3, 127, 9, 2564); - add_location(b1, file$3, 127, 30, 2585); - add_location(p3, file$3, 127, 6, 2561); - attr_dev(profile, "class", "svelte-1prpjq7"); - add_location(profile, file$3, 122, 4, 2043); - attr_dev(middle, "class", "svelte-1prpjq7"); - add_location(middle, file$3, 100, 2, 1540); - attr_dev(content, "class", "svelte-1prpjq7"); - add_location(content, file$3, 99, 0, 1528); - }, - l: function claim(nodes) { - throw new Error("options.hydrate only works if the component was compiled with the `hydratable: true` option"); - }, - m: function mount(target, anchor) { - insert_dev(target, content, anchor); - append_dev(content, middle); - append_dev(middle, header); - append_dev(header, nav); - append_dev(nav, back); - mount_component(icon0, back, null); - append_dev(nav, t0); - append_dev(nav, name); - append_dev(name, h4); - append_dev(name, t2); - append_dev(name, span); - append_dev(middle, t4); - append_dev(middle, images); - append_dev(images, figure0); - append_dev(figure0, img0); - append_dev(images, t5); - append_dev(images, figure1); - append_dev(figure1, img1); - append_dev(figure1, t6); - append_dev(figure1, button); - append_dev(middle, t8); - append_dev(middle, profile); - append_dev(profile, h3); - append_dev(profile, t10); - append_dev(profile, p0); - append_dev(profile, t12); - append_dev(profile, p1); - append_dev(profile, t14); - append_dev(profile, p2); - mount_component(icon1, p2, null); - append_dev(p2, t15); - mount_component(icon2, p2, null); - append_dev(p2, t16); - append_dev(p2, a); - append_dev(p2, t18); - mount_component(icon3, p2, null); - append_dev(p2, t19); - append_dev(profile, t20); - append_dev(profile, p3); - append_dev(p3, b0); - append_dev(p3, t22); - append_dev(p3, b1); - append_dev(p3, t24); - current = true; - }, - p: noop, - i: function intro(local) { - if (current) return; - transition_in(icon0.$$.fragment, local); - transition_in(icon1.$$.fragment, local); - transition_in(icon2.$$.fragment, local); - transition_in(icon3.$$.fragment, local); - current = true; - }, - o: function outro(local) { - transition_out(icon0.$$.fragment, local); - transition_out(icon1.$$.fragment, local); - transition_out(icon2.$$.fragment, local); - transition_out(icon3.$$.fragment, local); - current = false; - }, - d: function destroy(detaching) { - if (detaching) detach_dev(content); - destroy_component(icon0); - destroy_component(icon1); - destroy_component(icon2); - destroy_component(icon3); - } - }; - - 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("Twitter", slots, []); - const writable_props = []; - - Object.keys($$props).forEach(key => { - if (!~writable_props.indexOf(key) && key.slice(0, 2) !== "$$") console.warn(` was created with unknown prop '${key}'`); - }); - - $$self.$capture_state = () => ({ Icon }); - return []; - } - - class Twitter extends SvelteComponentDev { - constructor(options) { - super(options); - init(this, options, instance$4, create_fragment$4, safe_not_equal, {}); - - dispatch_dev("SvelteRegisterComponent", { - component: this, - tagName: "Twitter", - options, - id: create_fragment$4.name - }); - } - } - - /* src/thumbs/Youtube.svelte generated by Svelte v3.30.0 */ - const file$4 = "src/thumbs/Youtube.svelte"; - - function create_fragment$5(ctx) { - let content; - let header; - let nav; - let nav_left; - let a0; - let icon0; - let t0; - let icon1; - let t1; - let logo; - let t3; - let input; - let t4; - let ul; - let li0; - let icon2; - let t5; - let li1; - let icon3; - let t6; - let li2; - let icon4; - let t7; - let li3; - let button; - let icon5; - let t8; - let t9; - let main; - let left; - let figure; - let img; - let img_src_value; - let t10; - let figcaption; - let a1; - let t12; - let a2; - let t14; - let p; - let t16; - let video_actions; - let likes; - let t18; - let video_buttons; - let icon6; - let t19; - let icon7; - let t20; - let icon8; - let t21; - let icon9; - let t22; - let icon10; - let current; - icon0 = new Icon({ props: { name: "menu" }, $$inline: true }); - - icon1 = new Icon({ - props: { name: "youtube" }, - $$inline: true - }); - - icon2 = new Icon({ - props: { name: "camera", color: "#000" }, - $$inline: true - }); - - icon3 = new Icon({ - props: { name: "more-vertical", color: "#000" }, - $$inline: true - }); - - icon4 = new Icon({ - props: { name: "grid", color: "#000" }, - $$inline: true - }); - - icon5 = new Icon({ props: { name: "user" }, $$inline: true }); - - icon6 = new Icon({ - props: { name: "thumbs-up", color: "#999" }, - $$inline: true - }); - - icon7 = new Icon({ - props: { name: "thumbs-down", color: "#999" }, - $$inline: true - }); - - icon8 = new Icon({ - props: { name: "corner-up-right", color: "#999" }, - $$inline: true - }); - - icon9 = new Icon({ - props: { name: "menu", color: "#999" }, - $$inline: true - }); - - icon10 = new Icon({ - props: { name: "vertical-more" }, - $$inline: true - }); - - const block = { - c: function create() { - content = element("content"); - header = element("header"); - nav = element("nav"); - nav_left = element("nav-left"); - a0 = element("a"); - create_component(icon0.$$.fragment); - t0 = space(); - create_component(icon1.$$.fragment); - t1 = space(); - logo = element("logo"); - logo.textContent = "Youtube"; - t3 = space(); - input = element("input"); - t4 = space(); - ul = element("ul"); - li0 = element("li"); - create_component(icon2.$$.fragment); - t5 = space(); - li1 = element("li"); - create_component(icon3.$$.fragment); - t6 = space(); - li2 = element("li"); - create_component(icon4.$$.fragment); - t7 = space(); - li3 = element("li"); - button = element("button"); - create_component(icon5.$$.fragment); - t8 = text(" Sign In"); - t9 = space(); - main = element("main"); - left = element("left"); - figure = element("figure"); - img = element("img"); - t10 = space(); - figcaption = element("figcaption"); - a1 = element("a"); - a1.textContent = "#tag"; - t12 = space(); - a2 = element("a"); - a2.textContent = "#anothertag"; - t14 = space(); - p = element("p"); - p.textContent = "Title And Stuff"; - t16 = space(); - video_actions = element("video-actions"); - likes = element("likes"); - likes.textContent = "Stats Stats"; - t18 = space(); - video_buttons = element("video-buttons"); - create_component(icon6.$$.fragment); - t19 = text(" 1.1K\n "); - create_component(icon7.$$.fragment); - t20 = text(" 22\n "); - create_component(icon8.$$.fragment); - t21 = text(" SHARE\n "); - create_component(icon9.$$.fragment); - t22 = text(" SAVE\n "); - create_component(icon10.$$.fragment); - attr_dev(logo, "class", "svelte-oxwxiv"); - add_location(logo, file$4, 78, 56, 1184); - add_location(a0, file$4, 78, 8, 1136); - add_location(nav_left, file$4, 77, 6, 1117); - attr_dev(input, "id", "search"); - attr_dev(input, "placeholder", "Search"); - attr_dev(input, "name", "search"); - attr_dev(input, "class", "svelte-oxwxiv"); - add_location(input, file$4, 80, 6, 1233); - add_location(li0, file$4, 82, 8, 1307); - add_location(li1, file$4, 83, 8, 1360); - add_location(li2, file$4, 84, 8, 1420); - attr_dev(button, "class", "svelte-oxwxiv"); - add_location(button, file$4, 85, 12, 1475); - add_location(li3, file$4, 85, 8, 1471); - add_location(ul, file$4, 81, 6, 1294); - attr_dev(nav, "class", "svelte-oxwxiv"); - add_location(nav, file$4, 76, 4, 1105); - attr_dev(header, "class", "svelte-oxwxiv"); - add_location(header, file$4, 75, 2, 1092); - if (img.src !== (img_src_value = "http://via.placeholder.com/800x450?text=Video")) attr_dev(img, "src", img_src_value); - add_location(img, file$4, 92, 8, 1604); - attr_dev(a1, "class", "svelte-oxwxiv"); - add_location(a1, file$4, 94, 10, 1693); - attr_dev(a2, "class", "svelte-oxwxiv"); - add_location(a2, file$4, 94, 22, 1705); - attr_dev(p, "class", "svelte-oxwxiv"); - add_location(p, file$4, 95, 10, 1734); - add_location(likes, file$4, 97, 12, 1795); - add_location(video_buttons, file$4, 98, 12, 1834); - set_custom_element_data(video_actions, "class", "svelte-oxwxiv"); - add_location(video_actions, file$4, 96, 10, 1767); - attr_dev(figcaption, "class", "svelte-oxwxiv"); - add_location(figcaption, file$4, 93, 8, 1670); - add_location(figure, file$4, 91, 6, 1587); - add_location(left, file$4, 90, 4, 1574); - attr_dev(main, "class", "svelte-oxwxiv"); - add_location(main, file$4, 89, 2, 1563); - attr_dev(content, "class", "svelte-oxwxiv"); - add_location(content, file$4, 74, 0, 1080); - }, - l: function claim(nodes) { - throw new Error("options.hydrate only works if the component was compiled with the `hydratable: true` option"); - }, - m: function mount(target, anchor) { - insert_dev(target, content, anchor); - append_dev(content, header); - append_dev(header, nav); - append_dev(nav, nav_left); - append_dev(nav_left, a0); - mount_component(icon0, a0, null); - append_dev(a0, t0); - mount_component(icon1, a0, null); - append_dev(a0, t1); - append_dev(a0, logo); - append_dev(nav, t3); - append_dev(nav, input); - append_dev(nav, t4); - append_dev(nav, ul); - append_dev(ul, li0); - mount_component(icon2, li0, null); - append_dev(ul, t5); - append_dev(ul, li1); - mount_component(icon3, li1, null); - append_dev(ul, t6); - append_dev(ul, li2); - mount_component(icon4, li2, null); - append_dev(ul, t7); - append_dev(ul, li3); - append_dev(li3, button); - mount_component(icon5, button, null); - append_dev(button, t8); - append_dev(content, t9); - append_dev(content, main); - append_dev(main, left); - append_dev(left, figure); - append_dev(figure, img); - append_dev(figure, t10); - append_dev(figure, figcaption); - append_dev(figcaption, a1); - append_dev(figcaption, t12); - append_dev(figcaption, a2); - append_dev(figcaption, t14); - append_dev(figcaption, p); - append_dev(figcaption, t16); - append_dev(figcaption, video_actions); - append_dev(video_actions, likes); - append_dev(video_actions, t18); - append_dev(video_actions, video_buttons); - mount_component(icon6, video_buttons, null); - append_dev(video_buttons, t19); - mount_component(icon7, video_buttons, null); - append_dev(video_buttons, t20); - mount_component(icon8, video_buttons, null); - append_dev(video_buttons, t21); - mount_component(icon9, video_buttons, null); - append_dev(video_buttons, t22); - mount_component(icon10, video_buttons, null); - current = true; - }, - p: noop, - i: function intro(local) { - if (current) return; - transition_in(icon0.$$.fragment, local); - transition_in(icon1.$$.fragment, local); - transition_in(icon2.$$.fragment, local); - transition_in(icon3.$$.fragment, local); - transition_in(icon4.$$.fragment, local); - transition_in(icon5.$$.fragment, local); - transition_in(icon6.$$.fragment, local); - transition_in(icon7.$$.fragment, local); - transition_in(icon8.$$.fragment, local); - transition_in(icon9.$$.fragment, local); - transition_in(icon10.$$.fragment, local); - current = true; - }, - o: function outro(local) { - transition_out(icon0.$$.fragment, local); - transition_out(icon1.$$.fragment, local); - transition_out(icon2.$$.fragment, local); - transition_out(icon3.$$.fragment, local); - transition_out(icon4.$$.fragment, local); - transition_out(icon5.$$.fragment, local); - transition_out(icon6.$$.fragment, local); - transition_out(icon7.$$.fragment, local); - transition_out(icon8.$$.fragment, local); - transition_out(icon9.$$.fragment, local); - transition_out(icon10.$$.fragment, local); - current = false; - }, - d: function destroy(detaching) { - if (detaching) detach_dev(content); - destroy_component(icon0); - destroy_component(icon1); - destroy_component(icon2); - destroy_component(icon3); - destroy_component(icon4); - destroy_component(icon5); - destroy_component(icon6); - destroy_component(icon7); - destroy_component(icon8); - destroy_component(icon9); - destroy_component(icon10); - } - }; - - 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("Youtube", slots, []); - let cards = [1, 2, 3, 4]; - const writable_props = []; - - Object.keys($$props).forEach(key => { - if (!~writable_props.indexOf(key) && key.slice(0, 2) !== "$$") console.warn(` was created with unknown prop '${key}'`); - }); - - $$self.$capture_state = () => ({ Icon, cards }); - - $$self.$inject_state = $$props => { - if ("cards" in $$props) cards = $$props.cards; - }; - - if ($$props && "$$inject" in $$props) { - $$self.$inject_state($$props.$$inject); - } - - return []; - } - - class Youtube extends SvelteComponentDev { - constructor(options) { - super(options); - init(this, options, instance$5, create_fragment$5, safe_not_equal, {}); - - dispatch_dev("SvelteRegisterComponent", { - component: this, - tagName: "Youtube", - options, - id: create_fragment$5.name - }); - } - } - - /* src/thumbs/Instagram.svelte generated by Svelte v3.30.0 */ - const file$5 = "src/thumbs/Instagram.svelte"; - - function get_each_context(ctx, list, i) { - const child_ctx = ctx.slice(); - child_ctx[1] = list[i]; - return child_ctx; - } - - // (108:2) {#each pins as pin} - function create_each_block(ctx) { - let figure; - let img; - let img_src_value; - let t; - - const block = { - c: function create() { - figure = element("figure"); - img = element("img"); - t = space(); - attr_dev(img, "alt", "Stock photo"); - if (img.src !== (img_src_value = "http://via.placeholder.com/82x82?text=Story")) attr_dev(img, "src", img_src_value); - add_location(img, file$5, 109, 6, 1888); - add_location(figure, file$5, 108, 4, 1873); - }, - m: function mount(target, anchor) { - insert_dev(target, figure, anchor); - append_dev(figure, img); - append_dev(figure, t); - }, - d: function destroy(detaching) { - if (detaching) detach_dev(figure); - } - }; - - dispatch_dev("SvelteRegisterBlock", { - block, - id: create_each_block.name, - type: "each", - source: "(108:2) {#each pins as pin}", - ctx - }); - - return block; - } - - function create_fragment$6(ctx) { - let content; - let header; - let nav; - let b0; - let icon; - let t0; - let t1; - let input; - let t2; - let ul; - let li0; - let button0; - let t4; - let li1; - let a0; - let t6; - let profile; - let figure; - let img; - let img_src_value; - let t7; - let info; - let p0; - let b1; - let t9; - let button1; - let t11; - let p1; - let b2; - let t13; - let b3; - let t15; - let b4; - let t17; - let p2; - let b5; - let t19; - let p3; - let t20; - let br; - let t21; - let a1; - let t23; - let pins_1; - let current; - - icon = new Icon({ - props: { - name: "instagram", - color: "var(--color-text)" - }, - $$inline: true - }); - - let each_value = /*pins*/ ctx[0]; - validate_each_argument(each_value); - let each_blocks = []; - - for (let i = 0; i < each_value.length; i += 1) { - each_blocks[i] = create_each_block(get_each_context(ctx, each_value, i)); - } - - const block = { - c: function create() { - content = element("content"); - header = element("header"); - nav = element("nav"); - b0 = element("b"); - create_component(icon.$$.fragment); - t0 = text(" Instagram"); - t1 = space(); - input = element("input"); - t2 = space(); - ul = element("ul"); - li0 = element("li"); - button0 = element("button"); - button0.textContent = "Log In"; - t4 = space(); - li1 = element("li"); - a0 = element("a"); - a0.textContent = "Sign Up"; - t6 = space(); - profile = element("profile"); - figure = element("figure"); - img = element("img"); - t7 = space(); - info = element("info"); - p0 = element("p"); - b1 = element("b"); - b1.textContent = "zedshaw"; - t9 = space(); - button1 = element("button"); - button1.textContent = "follow"; - t11 = space(); - p1 = element("p"); - b2 = element("b"); - b2.textContent = "280"; - t13 = text(" posts "); - b3 = element("b"); - b3.textContent = "4,695 followers"; - t15 = space(); - b4 = element("b"); - b4.textContent = "1,778 following"; - t17 = space(); - p2 = element("p"); - b5 = element("b"); - b5.textContent = "Zed A. Shaw"; - t19 = space(); - p3 = element("p"); - t20 = text("Painter in oil, watercolor, and pastel. I’m doing live streams of little paintings on Twitch:"); - br = element("br"); - t21 = space(); - a1 = element("a"); - a1.textContent = "www.twitch.tv/zedashaw"; - t23 = space(); - pins_1 = element("pins"); - - for (let i = 0; i < each_blocks.length; i += 1) { - each_blocks[i].c(); - } - - add_location(b0, file$5, 76, 6, 1071); - attr_dev(input, "placeholder", "Search"); - add_location(input, file$5, 77, 6, 1146); - attr_dev(button0, "class", "svelte-oov5yx"); - add_location(button0, file$5, 79, 12, 1198); - add_location(li0, file$5, 79, 8, 1194); - attr_dev(a0, "class", "svelte-oov5yx"); - add_location(a0, file$5, 80, 12, 1239); - add_location(li1, file$5, 80, 8, 1235); - add_location(ul, file$5, 78, 6, 1181); - attr_dev(nav, "class", "svelte-oov5yx"); - add_location(nav, file$5, 75, 4, 1059); - attr_dev(header, "class", "svelte-oov5yx"); - add_location(header, file$5, 74, 2, 1046); - attr_dev(img, "alt", "Zed's Face"); - if (img.src !== (img_src_value = "http://via.placeholder.com/256x256?text=Zed's Face")) attr_dev(img, "src", img_src_value); - add_location(img, file$5, 87, 6, 1326); - attr_dev(figure, "class", "svelte-oov5yx"); - add_location(figure, file$5, 86, 4, 1311); - add_location(b1, file$5, 92, 8, 1450); - attr_dev(button1, "class", "svelte-oov5yx"); - add_location(button1, file$5, 92, 23, 1465); - attr_dev(p0, "class", "svelte-oov5yx"); - add_location(p0, file$5, 91, 6, 1438); - add_location(b2, file$5, 96, 8, 1519); - add_location(b3, file$5, 96, 25, 1536); - add_location(b4, file$5, 96, 48, 1559); - attr_dev(p1, "class", "svelte-oov5yx"); - add_location(p1, file$5, 95, 6, 1507); - add_location(b5, file$5, 99, 9, 1603); - attr_dev(p2, "class", "svelte-oov5yx"); - add_location(p2, file$5, 99, 6, 1600); - add_location(br, file$5, 100, 102, 1728); - attr_dev(a1, "href", "www.twitch.tv/zedashaw"); - attr_dev(a1, "class", "svelte-oov5yx"); - add_location(a1, file$5, 101, 8, 1741); - attr_dev(p3, "class", "svelte-oov5yx"); - add_location(p3, file$5, 100, 6, 1632); - attr_dev(info, "class", "svelte-oov5yx"); - add_location(info, file$5, 90, 4, 1425); - attr_dev(profile, "class", "svelte-oov5yx"); - add_location(profile, file$5, 85, 2, 1297); - attr_dev(pins_1, "class", "svelte-oov5yx"); - add_location(pins_1, file$5, 106, 2, 1840); - attr_dev(content, "class", "svelte-oov5yx"); - add_location(content, file$5, 73, 0, 1034); - }, - l: function claim(nodes) { - throw new Error("options.hydrate only works if the component was compiled with the `hydratable: true` option"); - }, - m: function mount(target, anchor) { - insert_dev(target, content, anchor); - append_dev(content, header); - append_dev(header, nav); - append_dev(nav, b0); - mount_component(icon, b0, null); - append_dev(b0, t0); - append_dev(nav, t1); - append_dev(nav, input); - append_dev(nav, t2); - append_dev(nav, ul); - append_dev(ul, li0); - append_dev(li0, button0); - append_dev(ul, t4); - append_dev(ul, li1); - append_dev(li1, a0); - append_dev(content, t6); - append_dev(content, profile); - append_dev(profile, figure); - append_dev(figure, img); - append_dev(profile, t7); - append_dev(profile, info); - append_dev(info, p0); - append_dev(p0, b1); - append_dev(p0, t9); - append_dev(p0, button1); - append_dev(info, t11); - append_dev(info, p1); - append_dev(p1, b2); - append_dev(p1, t13); - append_dev(p1, b3); - append_dev(p1, t15); - append_dev(p1, b4); - append_dev(info, t17); - append_dev(info, p2); - append_dev(p2, b5); - append_dev(info, t19); - append_dev(info, p3); - append_dev(p3, t20); - append_dev(p3, br); - append_dev(p3, t21); - append_dev(p3, a1); - append_dev(content, t23); - append_dev(content, pins_1); - - for (let i = 0; i < each_blocks.length; i += 1) { - each_blocks[i].m(pins_1, null); - } - - current = true; - }, - p: noop, - i: function intro(local) { - if (current) return; - transition_in(icon.$$.fragment, local); - current = true; - }, - o: function outro(local) { - transition_out(icon.$$.fragment, local); - current = false; - }, - d: function destroy(detaching) { - if (detaching) detach_dev(content); - destroy_component(icon); - destroy_each(each_blocks, 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("Instagram", slots, []); - let pins = [1, 2, 3, 4]; - const writable_props = []; - - Object.keys($$props).forEach(key => { - if (!~writable_props.indexOf(key) && key.slice(0, 2) !== "$$") console.warn(` was created with unknown prop '${key}'`); - }); - - $$self.$capture_state = () => ({ link, Icon, pins }); - - $$self.$inject_state = $$props => { - if ("pins" in $$props) $$invalidate(0, pins = $$props.pins); - }; - - if ($$props && "$$inject" in $$props) { - $$self.$inject_state($$props.$$inject); - } - - return [pins]; - } - - class Instagram extends SvelteComponentDev { - constructor(options) { - super(options); - init(this, options, instance$6, create_fragment$6, safe_not_equal, {}); - - dispatch_dev("SvelteRegisterComponent", { - component: this, - tagName: "Instagram", - options, - id: create_fragment$6.name - }); - } - } - - /* src/thumbs/Pinterest.svelte generated by Svelte v3.30.0 */ - const file$6 = "src/thumbs/Pinterest.svelte"; - - function create_fragment$7(ctx) { - let content; - let header; - let nav; - let left; - let logo; - let icon; - let t0; - let t1; - let a0; - let t3; - let a1; - let t5; - let input; - let t6; - let ul; - let li0; - let button0; - let t8; - let li1; - let button1; - let t10; - let profile; - let info; - let h1; - let t12; - let p0; - let t14; - let p1; - let b0; - let t16; - let b1; - let t18; - let t19; - let p2; - let t21; - let figure; - let img; - let img_src_value; - let current; - - icon = new Icon({ - props: { name: "pinterest", color: "var(--color)" }, - $$inline: true - }); - - const block = { - c: function create() { - content = element("content"); - header = element("header"); - nav = element("nav"); - left = element("left"); - logo = element("logo"); - create_component(icon.$$.fragment); - t0 = text(" Pinterest"); - t1 = space(); - a0 = element("a"); - a0.textContent = "Today"; - t3 = space(); - a1 = element("a"); - a1.textContent = "Explore"; - t5 = space(); - input = element("input"); - t6 = space(); - ul = element("ul"); - li0 = element("li"); - button0 = element("button"); - button0.textContent = "Log In"; - t8 = space(); - li1 = element("li"); - button1 = element("button"); - button1.textContent = "Sign Up"; - t10 = space(); - profile = element("profile"); - info = element("info"); - h1 = element("h1"); - h1.textContent = "Vincent van Gogh"; - t12 = space(); - p0 = element("p"); - p0.textContent = "Collection by A Person"; - t14 = space(); - p1 = element("p"); - b0 = element("b"); - b0.textContent = "420"; - t16 = text(" Pins • "); - b1 = element("b"); - b1.textContent = "3.59k"; - t18 = text(" Followers"); - t19 = space(); - p2 = element("p"); - p2.textContent = "\"I dream my painting and I paint my dream.\" ~ Vincent van Gogh"; - t21 = space(); - figure = element("figure"); - img = element("img"); - attr_dev(logo, "class", "svelte-1w7ltga"); - add_location(logo, file$6, 99, 6, 1437); - attr_dev(a0, "class", "svelte-1w7ltga"); - add_location(a0, file$6, 100, 8, 1515); - attr_dev(a1, "class", "svelte-1w7ltga"); - add_location(a1, file$6, 101, 8, 1536); - attr_dev(left, "class", "svelte-1w7ltga"); - add_location(left, file$6, 98, 6, 1424); - attr_dev(input, "placeholder", "Search"); - attr_dev(input, "class", "svelte-1w7ltga"); - add_location(input, file$6, 104, 6, 1572); - attr_dev(button0, "class", "svelte-1w7ltga"); - add_location(button0, file$6, 107, 12, 1625); - attr_dev(li0, "class", "svelte-1w7ltga"); - add_location(li0, file$6, 107, 8, 1621); - attr_dev(button1, "id", "signup"); - attr_dev(button1, "class", "svelte-1w7ltga"); - add_location(button1, file$6, 108, 12, 1666); - attr_dev(li1, "class", "svelte-1w7ltga"); - add_location(li1, file$6, 108, 8, 1662); - attr_dev(ul, "class", "svelte-1w7ltga"); - add_location(ul, file$6, 106, 6, 1608); - attr_dev(nav, "class", "svelte-1w7ltga"); - add_location(nav, file$6, 97, 4, 1412); - attr_dev(header, "class", "svelte-1w7ltga"); - add_location(header, file$6, 96, 2, 1399); - attr_dev(h1, "class", "svelte-1w7ltga"); - add_location(h1, file$6, 115, 2, 1767); - attr_dev(p0, "class", "svelte-1w7ltga"); - add_location(p0, file$6, 116, 2, 1795); - attr_dev(b0, "class", "svelte-1w7ltga"); - add_location(b0, file$6, 117, 5, 1830); - attr_dev(b1, "class", "svelte-1w7ltga"); - add_location(b1, file$6, 117, 23, 1848); - attr_dev(p1, "class", "svelte-1w7ltga"); - add_location(p1, file$6, 117, 2, 1827); - attr_dev(p2, "class", "svelte-1w7ltga"); - add_location(p2, file$6, 118, 2, 1877); - attr_dev(info, "class", "svelte-1w7ltga"); - add_location(info, file$6, 114, 2, 1758); - attr_dev(img, "alt", "Zed's Face"); - if (img.src !== (img_src_value = "http://via.placeholder.com/128x128?text=Zed's Face")) attr_dev(img, "src", img_src_value); - attr_dev(img, "class", "svelte-1w7ltga"); - add_location(img, file$6, 122, 4, 1969); - attr_dev(figure, "class", "svelte-1w7ltga"); - add_location(figure, file$6, 121, 2, 1956); - attr_dev(profile, "class", "svelte-1w7ltga"); - add_location(profile, file$6, 113, 2, 1746); - attr_dev(content, "class", "svelte-1w7ltga"); - add_location(content, file$6, 95, 0, 1387); - }, - l: function claim(nodes) { - throw new Error("options.hydrate only works if the component was compiled with the `hydratable: true` option"); - }, - m: function mount(target, anchor) { - insert_dev(target, content, anchor); - append_dev(content, header); - append_dev(header, nav); - append_dev(nav, left); - append_dev(left, logo); - mount_component(icon, logo, null); - append_dev(logo, t0); - append_dev(left, t1); - append_dev(left, a0); - append_dev(left, t3); - append_dev(left, a1); - append_dev(nav, t5); - append_dev(nav, input); - append_dev(nav, t6); - append_dev(nav, ul); - append_dev(ul, li0); - append_dev(li0, button0); - append_dev(ul, t8); - append_dev(ul, li1); - append_dev(li1, button1); - append_dev(content, t10); - append_dev(content, profile); - append_dev(profile, info); - append_dev(info, h1); - append_dev(info, t12); - append_dev(info, p0); - append_dev(info, t14); - append_dev(info, p1); - append_dev(p1, b0); - append_dev(p1, t16); - append_dev(p1, b1); - append_dev(p1, t18); - append_dev(info, t19); - append_dev(info, p2); - append_dev(profile, t21); - append_dev(profile, figure); - append_dev(figure, img); - current = true; - }, - p: noop, - i: function intro(local) { - if (current) return; - transition_in(icon.$$.fragment, local); - current = true; - }, - o: function outro(local) { - transition_out(icon.$$.fragment, local); - current = false; - }, - d: function destroy(detaching) { - if (detaching) detach_dev(content); - destroy_component(icon); - } - }; - - 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("Pinterest", slots, []); - const writable_props = []; - - Object.keys($$props).forEach(key => { - if (!~writable_props.indexOf(key) && key.slice(0, 2) !== "$$") console.warn(` was created with unknown prop '${key}'`); - }); - - $$self.$capture_state = () => ({ Icon }); - return []; - } - - class Pinterest extends SvelteComponentDev { - constructor(options) { - super(options); - init(this, options, instance$7, create_fragment$7, safe_not_equal, {}); - - dispatch_dev("SvelteRegisterComponent", { - component: this, - tagName: "Pinterest", - options, - id: create_fragment$7.name - }); - } - } - - /* src/thumbs/Login.svelte generated by Svelte v3.30.0 */ - - const file$7 = "src/thumbs/Login.svelte"; - - function create_fragment$8(ctx) { - let content; - let spacer0; - let t0; - let form; - let header; - let t2; - let label0; - let t4; - let input0; - let t5; - let label1; - let t7; - let input1; - let t8; - let br; - let t9; - let button; - let t11; - let spacer1; - - const block = { - c: function create() { - content = element("content"); - spacer0 = element("spacer"); - t0 = space(); - form = element("form"); - header = element("header"); - header.textContent = "Login"; - t2 = space(); - label0 = element("label"); - label0.textContent = "Username"; - t4 = space(); - input0 = element("input"); - t5 = space(); - label1 = element("label"); - label1.textContent = "Password"; - t7 = space(); - input1 = element("input"); - t8 = space(); - br = element("br"); - t9 = space(); - button = element("button"); - button.textContent = "Login"; - t11 = space(); - spacer1 = element("spacer"); - add_location(spacer0, file$7, 10, 2, 135); - add_location(header, file$7, 12, 4, 166); - attr_dev(label0, "for", "username"); - add_location(label0, file$7, 13, 4, 193); - attr_dev(input0, "type", "text"); - attr_dev(input0, "id", "username"); - attr_dev(input0, "name", "username"); - attr_dev(input0, "size", "32"); - attr_dev(input0, "placeholder", "Username"); - add_location(input0, file$7, 14, 4, 236); - attr_dev(label1, "for", "password"); - add_location(label1, file$7, 15, 4, 323); - attr_dev(input1, "type", "password"); - attr_dev(input1, "id", "password"); - attr_dev(input1, "name", "password"); - attr_dev(input1, "size", "32"); - attr_dev(input1, "placeholder", "Password"); - add_location(input1, file$7, 16, 4, 366); - add_location(br, file$7, 17, 4, 457); - attr_dev(button, "type", "submit"); - add_location(button, file$7, 18, 4, 466); - add_location(form, file$7, 11, 2, 155); - add_location(spacer1, file$7, 20, 2, 515); - attr_dev(content, "class", "svelte-t7gl8c"); - add_location(content, file$7, 9, 0, 123); - }, - l: function claim(nodes) { - throw new Error("options.hydrate only works if the component was compiled with the `hydratable: true` option"); - }, - m: function mount(target, anchor) { - insert_dev(target, content, anchor); - append_dev(content, spacer0); - append_dev(content, t0); - append_dev(content, form); - append_dev(form, header); - append_dev(form, t2); - append_dev(form, label0); - append_dev(form, t4); - append_dev(form, input0); - append_dev(form, t5); - append_dev(form, label1); - append_dev(form, t7); - append_dev(form, input1); - append_dev(form, t8); - append_dev(form, br); - append_dev(form, t9); - append_dev(form, button); - append_dev(content, t11); - append_dev(content, spacer1); - }, - p: noop, - i: noop, - o: noop, - d: function destroy(detaching) { - if (detaching) detach_dev(content); - } - }; - - dispatch_dev("SvelteRegisterBlock", { - block, - id: create_fragment$8.name, - type: "component", - source: "", - ctx - }); - - return block; - } - - function instance$8($$self, $$props) { - let { $$slots: slots = {}, $$scope } = $$props; - validate_slots("Login", slots, []); - const writable_props = []; - - Object.keys($$props).forEach(key => { - if (!~writable_props.indexOf(key) && key.slice(0, 2) !== "$$") console.warn(` was created with unknown prop '${key}'`); - }); - - return []; - } - - class Login extends SvelteComponentDev { - constructor(options) { - super(options); - init(this, options, instance$8, create_fragment$8, safe_not_equal, {}); - - dispatch_dev("SvelteRegisterComponent", { - component: this, - tagName: "Login", - options, - id: create_fragment$8.name - }); - } - } - - function simpleSvgPlaceholder({ - width = 300, - height = 150, - text = `${width}×${height}`, - fontFamily = 'sans-serif', - fontWeight = 'bold', - fontSize = Math.floor(Math.min(width, height) * 0.2), - dy = fontSize * 0.35, - bgColor = '#ddd', - textColor = 'rgba(0,0,0,0.5)', - dataUri = true, - charset = 'UTF-8' - } = {}) { - const str = ` - - ${text} - `; - - // Thanks to: filamentgroup/directory-encoder - const cleaned = str - .replace(/[\t\n\r]/gim, '') // Strip newlines and tabs - .replace(/\s\s+/g, ' ') // Condense multiple spaces - .replace(/'/gim, '\\i'); // Normalize quotes - - if (dataUri) { - const encoded = encodeURIComponent(cleaned) - .replace(/\(/g, '%28') // Encode brackets - .replace(/\)/g, '%29'); - - return `data:image/svg+xml;charset=${charset},${encoded}`; - } - - return cleaned; - } - - var simpleSvgPlaceholder_1 = simpleSvgPlaceholder; - - const defaults = { - bgColor: '#ccc', - textColor: '#888', - }; - - const holder = (x, y) => simpleSvgPlaceholder_1({...defaults, width: x, height: y}); - - /* src/thumbs/Tiles.svelte generated by Svelte v3.30.0 */ - const file$8 = "src/thumbs/Tiles.svelte"; - - function create_fragment$9(ctx) { - let content; - let tile; - let left; - let img; - let img_src_value; - let t0; - let middle; - let h4; - let t2; - let p; - let t4; - let right; - let button0; - let icon0; - let t5; - let button1; - let icon1; - let current; - - icon0 = new Icon({ - props: { - name: "check-circle", - color: "var(--color-bg)", - size: "24" - }, - $$inline: true - }); - - icon1 = new Icon({ - props: { - name: "x-circle", - color: "var(--color-bg)", - size: "24" - }, - $$inline: true - }); - - const block = { - c: function create() { - content = element("content"); - tile = element("tile"); - left = element("left"); - img = element("img"); - t0 = space(); - middle = element("middle"); - h4 = element("h4"); - h4.textContent = "Tile Example"; - t2 = space(); - p = element("p"); - p.textContent = "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua."; - t4 = space(); - right = element("right"); - button0 = element("button"); - create_component(icon0.$$.fragment); - t5 = space(); - button1 = element("button"); - create_component(icon1.$$.fragment); - if (img.src !== (img_src_value = holder(48, 48))) attr_dev(img, "src", img_src_value); - add_location(img, file$8, 46, 6, 779); - add_location(left, file$8, 45, 4, 766); - attr_dev(h4, "class", "svelte-fwzpwr"); - add_location(h4, file$8, 50, 6, 841); - add_location(p, file$8, 53, 6, 885); - attr_dev(middle, "class", "svelte-fwzpwr"); - add_location(middle, file$8, 49, 4, 826); - attr_dev(button0, "class", "svelte-fwzpwr"); - add_location(button0, file$8, 57, 4, 1047); - attr_dev(button1, "class", "svelte-fwzpwr"); - add_location(button1, file$8, 58, 4, 1131); - attr_dev(right, "class", "svelte-fwzpwr"); - add_location(right, file$8, 56, 4, 1035); - attr_dev(tile, "class", "svelte-fwzpwr"); - add_location(tile, file$8, 44, 2, 755); - attr_dev(content, "class", "svelte-fwzpwr"); - add_location(content, file$8, 43, 0, 743); - }, - l: function claim(nodes) { - throw new Error("options.hydrate only works if the component was compiled with the `hydratable: true` option"); - }, - m: function mount(target, anchor) { - insert_dev(target, content, anchor); - append_dev(content, tile); - append_dev(tile, left); - append_dev(left, img); - append_dev(tile, t0); - append_dev(tile, middle); - append_dev(middle, h4); - append_dev(middle, t2); - append_dev(middle, p); - append_dev(tile, t4); - append_dev(tile, right); - append_dev(right, button0); - mount_component(icon0, button0, null); - append_dev(right, t5); - append_dev(right, button1); - mount_component(icon1, button1, null); - current = true; - }, - p: noop, - i: function intro(local) { - if (current) return; - transition_in(icon0.$$.fragment, local); - transition_in(icon1.$$.fragment, local); - current = true; - }, - o: function outro(local) { - transition_out(icon0.$$.fragment, local); - transition_out(icon1.$$.fragment, local); - current = false; - }, - d: function destroy(detaching) { - if (detaching) detach_dev(content); - destroy_component(icon0); - destroy_component(icon1); - } - }; - - 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("Tiles", slots, []); - const writable_props = []; - - Object.keys($$props).forEach(key => { - if (!~writable_props.indexOf(key) && key.slice(0, 2) !== "$$") console.warn(` was created with unknown prop '${key}'`); - }); - - $$self.$capture_state = () => ({ Icon, holder }); - return []; - } - - class Tiles extends SvelteComponentDev { - constructor(options) { - super(options); - init(this, options, instance$9, create_fragment$9, safe_not_equal, {}); - - dispatch_dev("SvelteRegisterComponent", { - component: this, - tagName: "Tiles", - options, - id: create_fragment$9.name - }); - } - } - - var commonjsGlobal = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {}; - - function createCommonjsModule(fn, basedir, module) { - return module = { - path: basedir, - exports: {}, - require: function (path, base) { - return commonjsRequire(path, (base === undefined || base === null) ? module.path : base); - } - }, fn(module, module.exports), module.exports; - } - - function commonjsRequire () { - throw new Error('Dynamic requires are not currently supported by @rollup/plugin-commonjs'); - } - - var prism = createCommonjsModule(function (module) { - /* ********************************************** - Begin prism-core.js - ********************************************** */ - - /// - - var _self = (typeof window !== 'undefined') - ? window // if in browser - : ( - (typeof WorkerGlobalScope !== 'undefined' && self instanceof WorkerGlobalScope) - ? self // if in worker - : {} // if in node js - ); - - /** +var app=function(){"use strict";function e(){}function t(e,t){for(const n in t)e[n]=t[n];return e}function n(e){return e()}function s(){return Object.create(null)}function a(e){e.forEach(n)}function l(e){return"function"==typeof e}function r(e,t){return e!=e?t==t:e!==t||e&&"object"==typeof e||"function"==typeof e}function o(t){return t&&l(t.destroy)?t.destroy:e}function i(e,t){e.appendChild(t)}function c(e,t,n){e.insertBefore(t,n||null)}function u(e){e.parentNode.removeChild(e)}function g(e,t){for(let n=0;ne.removeEventListener(t,n,s)}function $(e,t,n){null==n?e.removeAttribute(t):e.getAttribute(t)!==n&&e.setAttribute(t,n)}function b(e,t,n){t in e?e[t]=n:$(e,t,n)}function w(e,t,n){e.setAttributeNS("http://www.w3.org/1999/xlink",t,n)}function y(e,t){t=""+t,e.wholeText!==t&&(e.data=t)}function x(e,t,n){e.classList[n?"add":"remove"](t)}class k{constructor(e=null){this.a=e,this.e=this.n=null}m(e,t,n=null){this.e||(this.e=m(t.nodeName),this.t=t,this.h(e)),this.i(n)}h(e){this.e.innerHTML=e,this.n=Array.from(this.e.childNodes)}i(e){for(let t=0;t{const s=e.$$.callbacks[t];if(s){const a=function(e,t){const n=document.createEvent("CustomEvent");return n.initCustomEvent(e,!1,!1,t),n}(t,n);s.slice().forEach((t=>{t.call(e,a)}))}}}function L(e,t){const n=e.$$.callbacks[t.type];n&&n.slice().forEach((e=>e(t)))}const A=[],q=[],F=[],M=[],H=Promise.resolve();let I=!1;function E(){I||(I=!0,H.then(D))}function P(){return E(),H}function _(e){F.push(e)}let N=!1;const O=new Set;function D(){if(!N){N=!0;do{for(let e=0;e{W.delete(e),s&&(n&&e.d(1),s())})),e.o(t)}}function V(e,t){const n={},s={},a={$$scope:1};let l=e.length;for(;l--;){const r=e[l],o=t[l];if(o){for(const e in r)e in o||(s[e]=1);for(const e in o)a[e]||(n[e]=o[e],a[e]=1);e[l]=o}else for(const e in r)a[e]=1}for(const e in s)e in n||(n[e]=void 0);return n}function X(e){return"object"==typeof e&&null!==e?e:{}}function J(e){e&&e.c()}function K(e,t,s){const{fragment:r,on_mount:o,on_destroy:i,after_update:c}=e.$$;r&&r.m(t,s),_((()=>{const t=o.map(n).filter(l);i?i.push(...t):a(t),e.$$.on_mount=[]})),c.forEach(_)}function Q(e,t){const n=e.$$;null!==n.fragment&&(a(n.on_destroy),n.fragment&&n.fragment.d(t),n.on_destroy=n.fragment=null,n.ctx=[])}function ee(t,n,l,r,o,i,c=[-1]){const g=S;j(t);const m=n.props||{},d=t.$$={fragment:null,ctx:null,props:i,update:e,not_equal:o,bound:s(),on_mount:[],on_destroy:[],before_update:[],after_update:[],context:new Map(g?g.$$.context:[]),callbacks:s(),dirty:c,skip_bound:!1};let f=!1;if(d.ctx=l?l(t,m,((e,n,...s)=>{const a=s.length?s[0]:n;return d.ctx&&o(d.ctx[e],d.ctx[e]=a)&&(!d.skip_bound&&d.bound[e]&&d.bound[e](a),f&&function(e,t){-1===e.$$.dirty[0]&&(A.push(e),E(),e.$$.dirty.fill(0)),e.$$.dirty[t/31|0]|=1<{const e=n.indexOf(t);-1!==e&&n.splice(e,1)}}$set(e){var t;this.$$set&&(t=e,0!==Object.keys(t).length)&&(this.$$.skip_bound=!0,this.$$set(e),this.$$.skip_bound=!1)}}const ne=[];function se(e,t){return{subscribe:ae(e,t).subscribe}}function ae(t,n=e){let s;const a=[];function l(e){if(r(t,e)&&(t=e,s)){const e=!ne.length;for(let e=0;e{const e=a.indexOf(i);-1!==e&&a.splice(e,1),0===a.length&&(s(),s=null)}}}}function le(t,n,s){const r=!Array.isArray(t),o=r?[t]:t,i=n.length<2;return se(s,(t=>{let s=!1;const c=[];let u=0,g=e;const m=()=>{if(u)return;g();const s=n(r?c[0]:c,t);i?t(s):g=l(s)?s:e},d=o.map(((t,n)=>function(t,...n){if(null==t)return e;const s=t.subscribe(...n);return s.unsubscribe?()=>s.unsubscribe():s}(t,(e=>{c[n]=e,u&=~(1<{u|=1<{Q(e,1)})),B()}r?(n=new r(o()),n.$on("routeEvent",e[7]),J(n.$$.fragment),Y(n.$$.fragment,1),K(n,s.parentNode,s)):n=null}else r&&n.$set(a)},i(e){a||(n&&Y(n.$$.fragment,e),a=!0)},o(e){n&&Z(n.$$.fragment,e),a=!1},d(e){e&&u(s),n&&Q(n,e)}}}function oe(e){let n,s,a;const l=[{params:e[1]},e[2]];var r=e[0];function o(e){let n={};for(let e=0;e{Q(e,1)})),B()}r?(n=new r(o()),n.$on("routeEvent",e[6]),J(n.$$.fragment),Y(n.$$.fragment,1),K(n,s.parentNode,s)):n=null}else r&&n.$set(a)},i(e){a||(n&&Y(n.$$.fragment,e),a=!0)},o(e){n&&Z(n.$$.fragment,e),a=!1},d(e){e&&u(s),n&&Q(n,e)}}}function ie(e){let t,n,s,a;const l=[oe,re],r=[];function o(e,t){return e[1]?0:1}return t=o(e),n=r[t]=l[t](e),{c(){n.c(),s=h()},m(e,n){r[t].m(e,n),c(e,s,n),a=!0},p(e,[a]){let i=t;t=o(e),t===i?r[t].p(e,a):(R(),Z(r[i],1,1,(()=>{r[i]=null})),B(),n=r[t],n?n.p(e,a):(n=r[t]=l[t](e),n.c()),Y(n,1),n.m(s.parentNode,s))},i(e){a||(Y(n),a=!0)},o(e){Z(n),a=!1},d(e){r[t].d(e),e&&u(s)}}}function ce(){const e=window.location.href.indexOf("#/");let t=e>-1?window.location.href.substr(e+1):"/";const n=t.indexOf("?");let s="";return n>-1&&(s=t.substr(n+1),t=t.substr(0,n)),{location:t,querystring:s}}const ue=se(null,(function(e){e(ce());const t=()=>{e(ce())};return window.addEventListener("hashchange",t,!1),function(){window.removeEventListener("hashchange",t,!1)}}));le(ue,(e=>e.location)),le(ue,(e=>e.querystring));async function ge(e){if(!e||e.length<1||"/"!=e.charAt(0)&&0!==e.indexOf("#/"))throw Error("Invalid parameter location");await P(),history.replaceState({scrollX:window.scrollX,scrollY:window.scrollY},void 0,void 0),window.location.hash=("#"==e.charAt(0)?"":"#")+e}function me(e,t){if(!e||!e.tagName||"a"!=e.tagName.toLowerCase())throw Error('Action "link" can only be used with
tags');return de(e,t||e.getAttribute("href")),{update(t){de(e,t)}}}function de(e,t){if(!t||t.length<1||"/"!=t.charAt(0))throw Error('Invalid value for "href" attribute: '+t);e.setAttribute("href","#"+t),e.addEventListener("click",fe)}function fe(e){e.preventDefault();const t=e.currentTarget.getAttribute("href");history.replaceState({scrollX:window.scrollX,scrollY:window.scrollY},void 0,void 0),window.location.hash=t}function pe(e,t,n){let{routes:s={}}=t,{prefix:a=""}=t,{restoreScrollState:l=!1}=t;class r{constructor(e,t){if(!t||"function"!=typeof t&&("object"!=typeof t||!0!==t._sveltesparouter))throw Error("Invalid component object");if(!e||"string"==typeof e&&(e.length<1||"/"!=e.charAt(0)&&"*"!=e.charAt(0))||"object"==typeof e&&!(e instanceof RegExp))throw Error('Invalid value for "path" argument');const{pattern:n,keys:s}=function(e,t){if(e instanceof RegExp)return{keys:!1,pattern:e};var n,s,a,l,r=[],o="",i=e.split("/");for(i[0]||i.shift();a=i.shift();)"*"===(n=a[0])?(r.push("wild"),o+="/(.*)"):":"===n?(s=a.indexOf("?",1),l=a.indexOf(".",1),r.push(a.substring(1,~s?s:~l?l:a.length)),o+=~s&&!~l?"(?:/([^/]+?))?":"/([^/]+?)",~l&&(o+=(~s?"?":"")+"\\"+a.substring(l))):o+="/"+a;return{keys:r,pattern:new RegExp("^"+o+(t?"(?=$|/)":"/?$"),"i")}}(e);this.path=e,"object"==typeof t&&!0===t._sveltesparouter?(this.component=t.component,this.conditions=t.conditions||[],this.userData=t.userData,this.props=t.props||{}):(this.component=()=>Promise.resolve(t),this.conditions=[],this.props={}),this._pattern=n,this._keys=s}match(e){if(a)if("string"==typeof a&&e.startsWith(a))e=e.substr(a.length)||"/";else if(a instanceof RegExp){const t=e.match(a);t&&t[0]&&(e=e.substr(t[0].length)||"/")}const t=this._pattern.exec(e);if(null===t)return null;if(!1===this._keys)return t;const n={};let s=0;for(;s{o.push(new r(t,e))})):Object.keys(s).forEach((e=>{o.push(new r(e,s[e]))}));let i=null,c=null,u={};const g=z();async function m(e,t){await P(),g(e,t)}let d=null;var f;l&&(window.addEventListener("popstate",(e=>{d=e.state&&e.state.scrollY?e.state:null})),f=()=>{d?window.scrollTo(d.scrollX,d.scrollY):window.scrollTo(0,0)},C().$$.after_update.push(f));let p=null,h=null;return ue.subscribe((async e=>{p=e;let t=0;for(;t{"routes"in e&&n(3,s=e.routes),"prefix"in e&&n(4,a=e.prefix),"restoreScrollState"in e&&n(5,l=e.restoreScrollState)},e.$$.update=()=>{32&e.$$.dirty&&(history.scrollRestoration=l?"manual":"auto")},[i,c,u,s,a,l,function(t){L(e,t)},function(t){L(e,t)}]}class he extends te{constructor(e){super(),ee(this,e,pe,ie,r,{routes:3,prefix:4,restoreScrollState:5})}}function ve(t){let n,s,a,l,r,o;return{c(){n=m("span"),s=d("svg"),a=d("use"),w(a,"xlink:href",l="/icons/feather-sprite.svg#"+t[7]),$(s,"class",r="icon-"+t[7]+" svelte-1iby9by"),$(s,"width",t[0]),$(s,"height",t[0]),$(s,"fill",t[1]),$(s,"stroke",o=t[3]?t[9]:t[2]),$(s,"stroke-width",t[4]),$(s,"stroke-linecap",t[5]),$(s,"stroke-linejoin",t[6]),x(s,"inactive",t[8])},m(e,t){c(e,n,t),i(n,s),i(s,a)},p(e,[t]){128&t&&l!==(l="/icons/feather-sprite.svg#"+e[7])&&w(a,"xlink:href",l),128&t&&r!==(r="icon-"+e[7]+" svelte-1iby9by")&&$(s,"class",r),1&t&&$(s,"width",e[0]),1&t&&$(s,"height",e[0]),2&t&&$(s,"fill",e[1]),524&t&&o!==(o=e[3]?e[9]:e[2])&&$(s,"stroke",o),16&t&&$(s,"stroke-width",e[4]),32&t&&$(s,"stroke-linecap",e[5]),64&t&&$(s,"stroke-linejoin",e[6]),384&t&&x(s,"inactive",e[8])},i:e,o:e,d(e){e&&u(n)}}}function $e(e,t,n){let{size:s="24"}=t,{fill:a="none"}=t,{color:l="var(--color)"}=t,{light:r=!1}=t,{width:o="2"}=t,{linecap:i="round"}=t,{linejoin:c="round"}=t,{name:u}=t,{inactive:g=!1}=t,{light_color:m="var(--color)"}=t;return e.$$set=e=>{"size"in e&&n(0,s=e.size),"fill"in e&&n(1,a=e.fill),"color"in e&&n(2,l=e.color),"light"in e&&n(3,r=e.light),"width"in e&&n(4,o=e.width),"linecap"in e&&n(5,i=e.linecap),"linejoin"in e&&n(6,c=e.linejoin),"name"in e&&n(7,u=e.name),"inactive"in e&&n(8,g=e.inactive),"light_color"in e&&n(9,m=e.light_color)},[s,a,l,r,o,i,c,u,g,m]}class be extends te{constructor(e){super(),ee(this,e,$e,ve,r,{size:0,fill:1,color:2,light:3,width:4,linecap:5,linejoin:6,name:7,inactive:8,light_color:9})}}function we(t){let n,s,a,l,r,g,d,f,h,v,b,w,y,x,k,S,j,C,T,z,L,A,q,F,M,H,I,E,P,_,N,O,D,G,W,U,R,B,V,X,ee,te,ne,se,ae,le,re,oe,ie,ce,ue,ge,de,fe,pe,he,ve,$e,we,ye,xe,ke,Se,je,Ce,Te,ze,Le,Ae,qe,Fe,Me,He,Ie,Ee,Pe,_e,Ne,Oe,De,Ge,We,Ue,Re,Be,Ye,Ze;return h=new be({props:{name:"code",size:"64"}}),S=new be({props:{name:"box",size:"64"}}),q=new be({props:{name:"sliders",size:"64"}}),{c(){n=m("hero"),n.innerHTML='

fsck CSS

\n

An experiment in cleaning up CSS and HTML with modern tools like flexbox and grids.

',s=p(),a=m("hr"),l=p(),r=m("section"),g=m("aside"),d=m("h3"),d.textContent="Remove Classes",f=p(),J(h.$$.fragment),v=p(),b=m("p"),b.innerHTML='Using a classless style like
MVP.css, you\n bring back CSS specificity to its original intent.',w=p(),y=m("aside"),x=m("h3"),x.textContent="Add Flexbox + Grids",k=p(),J(S.$$.fragment),j=p(),C=m("p"),C.innerHTML='Using flexbox and CSS grids you can layout anything you want without structure divs.',T=p(),z=m("aside"),L=m("h3"),L.textContent="Modify with Variables",A=p(),J(q.$$.fragment),F=p(),M=m("p"),M.textContent="Using CSS variables you can replace many uses of classes and ids, avoiding most specificity\n issues. Try the dark mode button below.",H=p(),I=m("rationale"),E=m("section"),E.innerHTML="

Cleaner CSS

",P=p(),_=m("p"),_.innerHTML="This website is nothing more than a set of small demos for the idea of\n using flexbox and grids to clean up and simplify CSS. Most everything else\n about CSS stays. Filters, transforms, attributes, and everything that\n applies to the visual display of the components of a design. What gets\n removed is div heavy, class heavy, not-semantic-at-all layout\n systems cluttering the real information available through simple HTML\n tags.",N=p(),O=m("p"),O.textContent="In short, if you're writing this:",D=p(),G=m("section"),G.innerHTML="",W=p(),U=m("p"),U.textContent="You could write this if you use flexbox, grids, and variables:",R=p(),B=m("section"),B.innerHTML="",V=p(),X=m("hr"),ee=p(),te=m("section"),ne=m("p"),ne.innerHTML='I demonstrate the idea with a series of copies of existing websites and other layout problems \n people frequently encounter. If you have a suggested layout challenge for me, then tell me on Twitter @lzsthw and I'll give it a shot.',se=p(),ae=m("a"),ae.innerHTML="",re=p(),oe=m("hr"),ie=p(),ce=m("section"),ce.innerHTML='

FAQ

',ue=p(),ge=m("h1"),ge.textContent="Why did you do this?",de=p(),fe=m("p"),fe.innerHTML="It started as an attempt to relearn modern CSS for myself so I can teach others. As I did this I realized that most of the things I learned have been completely replaced with flexbox and grids, and if I just use those then CSS becomes much easier to understand. Specificity works as expected. When I change a component with class or id it actually changes. The layout flows correctly and is easier to create. Nearly everything works better and is easier to understand.",pe=p(),he=m("p"),he.innerHTML="This website became a demonstration to others that layout doesn't need div.class structure, subverting ul/li tags, and other CSS hacks. You can use simple truly semantic HTML and simple CSS to accomplish 90% of what you're doing today with more reliable results faster.",ve=p(),$e=m("h1"),$e.textContent="Why is this site in black and white?",we=p(),ye=m("p"),ye.textContent="I used an entirely monochrome simplified design because I'm not a designer, and I want people to focus on the visual structure of each demo, not whether my use of Cornflower Blue was appropriate for a button.",xe=p(),ke=m("p"),ke.textContent="I'm also an experienced oil painter and a fundamental teaching in realist art is that color does not matter for visual comprehension. What matters most is the \"drawing\", or monochrome aspects of visual experience. If you can't make something work in monochrome then no amount of color will help. Make it visually understandable in monochrome and any color scheme you choose should work (barring a few rules about color perception's relationship to monochrome values).",Se=p(),je=m("h1"),je.textContent="What's wrong with classes?",Ce=p(),Te=m("p"),Te.innerHTML="There's nothing wrong with classes in CSS. How they're used in recent CSS frameworks subverts the normal specificity rules making CSS unnecessarily difficult. The original specificity rules put the base design of a component at the tag level, then a class can be used to modify and extend the design, and an id can make this even more specific. In today's use of div.class heavy markup you lose this ability to alter the design as needed where its used, and instead you have to resort to !important and specificity hacking to change how something looks, or add more div with more class.",ze=p(),Le=m("p"),Le.innerHTML="The other problem with div.class is it's more difficult to debug problems with the layout. There's the obvious problem of debugging failures in layout through a forest of divs, but you're also relying on specificity that can come from anywhere in the cascade. It's much more difficult to find exactly what bit of CSS is overriding your local decisions. If you've ever had to open the inspector in your browser to troll through CSS locations looking for the culprit then that's why. If the base design decisions are at the tag level, then your local class and id specifics will work as expected. You can also replace many uses of class as design modifiers with scoped CSS variables and reduce the use of div.class even further.",Ae=p(),qe=m("p"),qe.innerHTML="Finally, using div.class heavy layout systems pollutes your markup with structure that's difficult to analyze and maintain. When you focus on using truly semantic named tags and follow specificity as intended then your HTML is lighter and easier to understand because it isn't full of div.grid.col-1.col-mx-auto class rules that really have nothing to do with the actual meaning of that particular visual element. With flexbox and CSS grids you don't need any layout divs, and can keep the HTML clean and semantic. This also ends up being more flexible with less or the same effort as using a pre-made grid system full of divs.",Fe=p(),Me=m("h1"),Me.textContent="Should we ban div.class?",He=p(),Ie=m("p"),Ie.innerHTML="Hell no. The current problem of too much class based CSS is because of trends in recent years calling for everyone to irrationally ban some practice. Remember when everyone decided tables were evil? So then we banned tables and grids completely? Then nobody could do a layout without crazy tricks and JavaScript? Nobody wants a repeat of the anti-tables "semantic markup" war, so please don't ban div.class.",Ee=p(),Pe=m("p"),Pe.innerHTML="All this website does is demonstrate that you don't need so much div.class. You can scrap a lot of what you're using now to do layout and go with clean HTML with flatter structure, then judiciously use div.class as needed. Treat div.class like salt. Right now you're pouring a whole box of it on your HTML when a little bit makes it taste better.",_e=p(),Ne=m("h1"),Ne.textContent="Do these demos work on phones?",Oe=p(),De=m("p"),De.textContent="They could but I haven't taken the time to make them adapt. That may come in a later release. Try it anyway\n as you may be surprised how well the layouts still work on smaller screens.",Ge=p(),We=m("h1"),We.textContent="Can I suggest a challenge?",Ue=p(),Re=m("p"),Re.innerHTML='Yes please. If you find an example of a layout that you think is impossible with flexbox and CSS grids then tell me on Twitter at @lzsthw and I'll attempt a replica. My only requirement is that you also have to tell me what trick the challenge is using. This is an exercise in replicating layouts, not reverse engineering devious hidden CSS tricks. Also keep in mind that I am not invested in "winning" and only curious about the limits of flexbox and CSS grids. If you find something I can't do, that means I found a useful limit to avoid. It doesn't mean that we throw out all of flexbox and CSS grids so you can go back to the float-clear-div-class 1990s.',$(n,"class","svelte-3owcui"),$(g,"class","svelte-3owcui"),$(y,"class","svelte-3owcui"),$(ae,"href","/demos"),$(I,"class","svelte-3owcui")},m(e,t){c(e,n,t),c(e,s,t),c(e,a,t),c(e,l,t),c(e,r,t),i(r,g),i(g,d),i(g,f),K(h,g,null),i(g,v),i(g,b),i(r,w),i(r,y),i(y,x),i(y,k),K(S,y,null),i(y,j),i(y,C),i(r,T),i(r,z),i(z,L),i(z,A),K(q,z,null),i(z,F),i(z,M),c(e,H,t),c(e,I,t),i(I,E),i(I,P),i(I,_),i(I,N),i(I,O),i(I,D),i(I,G),i(I,W),i(I,U),i(I,R),i(I,B),i(I,V),i(I,X),i(I,ee),i(I,te),i(te,ne),i(te,se),i(te,ae),i(I,re),i(I,oe),i(I,ie),i(I,ce),i(I,ue),i(I,ge),i(I,de),i(I,fe),i(I,pe),i(I,he),i(I,ve),i(I,$e),i(I,we),i(I,ye),i(I,xe),i(I,ke),i(I,Se),i(I,je),i(I,Ce),i(I,Te),i(I,ze),i(I,Le),i(I,Ae),i(I,qe),i(I,Fe),i(I,Me),i(I,He),i(I,Ie),i(I,Ee),i(I,Pe),i(I,_e),i(I,Ne),i(I,Oe),i(I,De),i(I,Ge),i(I,We),i(I,Ue),i(I,Re),Be=!0,Ye||(Ze=o(le=me.call(null,ae)),Ye=!0)},p:e,i(e){Be||(Y(h.$$.fragment,e),Y(S.$$.fragment,e),Y(q.$$.fragment,e),Be=!0)},o(e){Z(h.$$.fragment,e),Z(S.$$.fragment,e),Z(q.$$.fragment,e),Be=!1},d(e){e&&u(n),e&&u(s),e&&u(a),e&&u(l),e&&u(r),Q(h),Q(S),Q(q),e&&u(H),e&&u(I),Ye=!1,Ze()}}}function ye(t){let n,s,a,l,r,g,d,f,h,v,b,w,y,x,k,S,j,C,T,z,L,A,q;return w=new be({props:{name:"grid",color:"#000"}}),{c(){n=m("content"),s=m("header"),a=m("nav"),l=m("nav-left"),l.innerHTML='About \n Store',r=p(),g=m("ul"),d=m("li"),d.textContent="Gmail",f=p(),h=m("li"),h.textContent="Image",v=p(),b=m("li"),J(w.$$.fragment),y=p(),x=m("li"),x.innerHTML='',k=p(),S=m("figure"),j=m("a"),j.innerHTML='',T=p(),z=m("search"),z.innerHTML=' \n \n ',$(a,"class","svelte-1xw0xeo"),$(s,"class","svelte-1xw0xeo"),$(j,"href","/demos/google"),$(j,"class","svelte-1xw0xeo"),$(S,"class","svelte-1xw0xeo"),$(z,"class","svelte-1xw0xeo"),$(n,"class","svelte-1xw0xeo")},m(e,t){c(e,n,t),i(n,s),i(s,a),i(a,l),i(a,r),i(a,g),i(g,d),i(g,f),i(g,h),i(g,v),i(g,b),K(w,b,null),i(g,y),i(g,x),i(n,k),i(n,S),i(S,j),i(n,T),i(n,z),L=!0,A||(q=o(C=me.call(null,j)),A=!0)},p:e,i(e){L||(Y(w.$$.fragment,e),L=!0)},o(e){Z(w.$$.fragment,e),L=!1},d(e){e&&u(n),Q(w),A=!1,q()}}}class xe extends te{constructor(e){super(),ee(this,e,null,ye,r,{})}}function ke(t){let n,s,a,l,r,o,g,d,h,v,b,w,y,x,k,S,j,C,T,z,L,A,q,F,M,H,I,E,P,_;return o=new be({props:{name:"arrow-left"}}),z=new be({props:{name:"map",size:"24",color:"var(--color-bg-secondary)"}}),A=new be({props:{name:"link",size:"24",color:"var(--color-bg-secondary)"}}),H=new be({props:{name:"calendar",size:"24",color:"var(--color-bg-secondary)"}}),{c(){n=m("content"),s=m("middle"),a=m("header"),l=m("nav"),r=m("back"),J(o.$$.fragment),g=p(),d=m("name"),d.innerHTML='

Zed A. Shaw, Writer

\n 7,754 Tweets',h=p(),v=m("images"),v.innerHTML='
Profile background
\n\n
Profile picture \n
',b=p(),w=m("profile"),y=m("h3"),y.textContent="Zed A. Shaw, Writer",x=p(),k=m("p"),k.textContent="@lzsthw",S=p(),j=m("p"),j.textContent="The author of The Hard Way Series published by Addison/Wesley including Learn Python The Hard Way and many more. Follow me here for coding tips and book news.",C=p(),T=m("p"),J(z.$$.fragment),L=f(" Some Place, KY "),J(A.$$.fragment),q=p(),F=m("a"),F.textContent="learnjsthehardway.org",M=p(),J(H.$$.fragment),I=f(" Joined Jan, 1999."),E=p(),P=m("p"),P.innerHTML="167 Following 10.4k Followers",$(r,"class","svelte-1prpjq7"),$(l,"class","svelte-1prpjq7"),$(a,"class","svelte-1prpjq7"),$(v,"class","svelte-1prpjq7"),$(w,"class","svelte-1prpjq7"),$(s,"class","svelte-1prpjq7"),$(n,"class","svelte-1prpjq7")},m(e,t){c(e,n,t),i(n,s),i(s,a),i(a,l),i(l,r),K(o,r,null),i(l,g),i(l,d),i(s,h),i(s,v),i(s,b),i(s,w),i(w,y),i(w,x),i(w,k),i(w,S),i(w,j),i(w,C),i(w,T),K(z,T,null),i(T,L),K(A,T,null),i(T,q),i(T,F),i(T,M),K(H,T,null),i(T,I),i(w,E),i(w,P),_=!0},p:e,i(e){_||(Y(o.$$.fragment,e),Y(z.$$.fragment,e),Y(A.$$.fragment,e),Y(H.$$.fragment,e),_=!0)},o(e){Z(o.$$.fragment,e),Z(z.$$.fragment,e),Z(A.$$.fragment,e),Z(H.$$.fragment,e),_=!1},d(e){e&&u(n),Q(o),Q(z),Q(A),Q(H)}}}class Se extends te{constructor(e){super(),ee(this,e,null,ke,r,{})}}function je(t){let n,s,a,l,r,o,g,d,h,v,w,y,x,k,S,j,C,T,z,L,A,q,F,M,H,I,E,P,_,N,O,D,G,W,U,R,B,V,X,ee,te,ne,se,ae,le,re,oe,ie,ce,ue,ge,me,de,fe,pe;return o=new be({props:{name:"menu"}}),d=new be({props:{name:"youtube"}}),j=new be({props:{name:"camera",color:"#000"}}),z=new be({props:{name:"more-vertical",color:"#000"}}),q=new be({props:{name:"grid",color:"#000"}}),I=new be({props:{name:"user"}}),re=new be({props:{name:"thumbs-up",color:"#999"}}),ie=new be({props:{name:"thumbs-down",color:"#999"}}),ue=new be({props:{name:"corner-up-right",color:"#999"}}),me=new be({props:{name:"menu",color:"#999"}}),fe=new be({props:{name:"vertical-more"}}),{c(){n=m("content"),s=m("header"),a=m("nav"),l=m("nav-left"),r=m("a"),J(o.$$.fragment),g=p(),J(d.$$.fragment),h=p(),v=m("logo"),v.textContent="Youtube",w=p(),y=m("input"),x=p(),k=m("ul"),S=m("li"),J(j.$$.fragment),C=p(),T=m("li"),J(z.$$.fragment),L=p(),A=m("li"),J(q.$$.fragment),F=p(),M=m("li"),H=m("button"),J(I.$$.fragment),E=f(" Sign In"),P=p(),_=m("main"),N=m("left"),O=m("figure"),D=m("img"),W=p(),U=m("figcaption"),R=m("a"),R.textContent="#tag",B=p(),V=m("a"),V.textContent="#anothertag",X=p(),ee=m("p"),ee.textContent="Title And Stuff",te=p(),ne=m("video-actions"),se=m("likes"),se.textContent="Stats Stats",ae=p(),le=m("video-buttons"),J(re.$$.fragment),oe=f(" 1.1K\n "),J(ie.$$.fragment),ce=f(" 22\n "),J(ue.$$.fragment),ge=f(" SHARE\n "),J(me.$$.fragment),de=f(" SAVE\n "),J(fe.$$.fragment),$(v,"class","svelte-oxwxiv"),$(y,"id","search"),$(y,"placeholder","Search"),$(y,"name","search"),$(y,"class","svelte-oxwxiv"),$(H,"class","svelte-oxwxiv"),$(a,"class","svelte-oxwxiv"),$(s,"class","svelte-oxwxiv"),D.src!==(G="http://via.placeholder.com/800x450?text=Video")&&$(D,"src","http://via.placeholder.com/800x450?text=Video"),$(R,"class","svelte-oxwxiv"),$(V,"class","svelte-oxwxiv"),$(ee,"class","svelte-oxwxiv"),b(ne,"class","svelte-oxwxiv"),$(U,"class","svelte-oxwxiv"),$(_,"class","svelte-oxwxiv"),$(n,"class","svelte-oxwxiv")},m(e,t){c(e,n,t),i(n,s),i(s,a),i(a,l),i(l,r),K(o,r,null),i(r,g),K(d,r,null),i(r,h),i(r,v),i(a,w),i(a,y),i(a,x),i(a,k),i(k,S),K(j,S,null),i(k,C),i(k,T),K(z,T,null),i(k,L),i(k,A),K(q,A,null),i(k,F),i(k,M),i(M,H),K(I,H,null),i(H,E),i(n,P),i(n,_),i(_,N),i(N,O),i(O,D),i(O,W),i(O,U),i(U,R),i(U,B),i(U,V),i(U,X),i(U,ee),i(U,te),i(U,ne),i(ne,se),i(ne,ae),i(ne,le),K(re,le,null),i(le,oe),K(ie,le,null),i(le,ce),K(ue,le,null),i(le,ge),K(me,le,null),i(le,de),K(fe,le,null),pe=!0},p:e,i(e){pe||(Y(o.$$.fragment,e),Y(d.$$.fragment,e),Y(j.$$.fragment,e),Y(z.$$.fragment,e),Y(q.$$.fragment,e),Y(I.$$.fragment,e),Y(re.$$.fragment,e),Y(ie.$$.fragment,e),Y(ue.$$.fragment,e),Y(me.$$.fragment,e),Y(fe.$$.fragment,e),pe=!0)},o(e){Z(o.$$.fragment,e),Z(d.$$.fragment,e),Z(j.$$.fragment,e),Z(z.$$.fragment,e),Z(q.$$.fragment,e),Z(I.$$.fragment,e),Z(re.$$.fragment,e),Z(ie.$$.fragment,e),Z(ue.$$.fragment,e),Z(me.$$.fragment,e),Z(fe.$$.fragment,e),pe=!1},d(e){e&&u(n),Q(o),Q(d),Q(j),Q(z),Q(q),Q(I),Q(re),Q(ie),Q(ue),Q(me),Q(fe)}}}function Ce(e){return[]}class Te extends te{constructor(e){super(),ee(this,e,Ce,je,r,{})}}function ze(e,t,n){const s=e.slice();return s[1]=t[n],s}function Le(e){let t;return{c(){t=m("figure"),t.innerHTML='Stock photo \n '},m(e,n){c(e,t,n)},d(e){e&&u(t)}}}function Ae(t){let n,s,a,l,r,o,d,h,v,b,w,y,x,k,S;r=new be({props:{name:"instagram",color:"var(--color-text)"}});let j=t[0],C=[];for(let e=0;e \n
  • Sign Up
  • ',w=p(),y=m("profile"),y.innerHTML='
    Zed's Face
    \n\n

    zedshaw

    \n\n

    280 posts 4,695 followers 1,778 following

    \n\n

    Zed A. Shaw

    \n

    Painter in oil, watercolor, and pastel. I’m doing live streams of little paintings on Twitch:
    \n www.twitch.tv/zedashaw

    ',x=p(),k=m("pins");for(let e=0;e \n
  • ',S=p(),j=m("profile"),j.innerHTML='

    Vincent van Gogh

    \n

    Collection by A Person

    \n

    420 Pins • 3.59k Followers

    \n

    "I dream my painting and I paint my dream." ~ Vincent van Gogh

    \n\n
    Zed's Face
    ',$(r,"class","svelte-1w7ltga"),$(h,"class","svelte-1w7ltga"),$(b,"class","svelte-1w7ltga"),$(l,"class","svelte-1w7ltga"),$(y,"placeholder","Search"),$(y,"class","svelte-1w7ltga"),$(k,"class","svelte-1w7ltga"),$(a,"class","svelte-1w7ltga"),$(s,"class","svelte-1w7ltga"),$(j,"class","svelte-1w7ltga"),$(n,"class","svelte-1w7ltga")},m(e,t){c(e,n,t),i(n,s),i(s,a),i(a,l),i(l,r),K(o,r,null),i(r,g),i(l,d),i(l,h),i(l,v),i(l,b),i(a,w),i(a,y),i(a,x),i(a,k),i(n,S),i(n,j),C=!0},p:e,i(e){C||(Y(o.$$.fragment,e),C=!0)},o(e){Z(o.$$.fragment,e),C=!1},d(e){e&&u(n),Q(o)}}}class He extends te{constructor(e){super(),ee(this,e,null,Me,r,{})}}function Ie(t){let n;return{c(){n=m("content"),n.innerHTML=' \n
    Login
    \n \n \n \n \n
    \n
    \n ',$(n,"class","svelte-t7gl8c")},m(e,t){c(e,n,t)},p:e,i:e,o:e,d(e){e&&u(n)}}}class Ee extends te{constructor(e){super(),ee(this,e,null,Ie,r,{})}}var Pe=function({width:e=300,height:t=150,text:n=`${e}×${t}`,fontFamily:s="sans-serif",fontWeight:a="bold",fontSize:l=Math.floor(.2*Math.min(e,t)),dy:r=.35*l,bgColor:o="#ddd",textColor:i="rgba(0,0,0,0.5)",dataUri:c=!0,charset:u="UTF-8"}={}){const g=`\n \n ${n}\n `.replace(/[\t\n\r]/gim,"").replace(/\s\s+/g," ").replace(/'/gim,"\\i");if(c){return`data:image/svg+xml;charset=${u},${encodeURIComponent(g).replace(/\(/g,"%28").replace(/\)/g,"%29")}`}return g};const _e={bgColor:"#ccc",textColor:"#888"},Ne=(e,t)=>Pe({..._e,width:e,height:t});function Oe(t){let n,s,a,l,r,o,g,d,f,h,v,b,w,y,x;return v=new be({props:{name:"check-circle",color:"var(--color-bg)",size:"24"}}),y=new be({props:{name:"x-circle",color:"var(--color-bg)",size:"24"}}),{c(){n=m("content"),s=m("tile"),a=m("left"),l=m("img"),o=p(),g=m("middle"),g.innerHTML='

    Tile Example

    \n

    Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

    ',d=p(),f=m("right"),h=m("button"),J(v.$$.fragment),b=p(),w=m("button"),J(y.$$.fragment),l.src!==(r=Ne(48,48))&&$(l,"src",r),$(g,"class","svelte-fwzpwr"),$(h,"class","svelte-fwzpwr"),$(w,"class","svelte-fwzpwr"),$(f,"class","svelte-fwzpwr"),$(s,"class","svelte-fwzpwr"),$(n,"class","svelte-fwzpwr")},m(e,t){c(e,n,t),i(n,s),i(s,a),i(a,l),i(s,o),i(s,g),i(s,d),i(s,f),i(f,h),K(v,h,null),i(f,b),i(f,w),K(y,w,null),x=!0},p:e,i(e){x||(Y(v.$$.fragment,e),Y(y.$$.fragment,e),x=!0)},o(e){Z(v.$$.fragment,e),Z(y.$$.fragment,e),x=!1},d(e){e&&u(n),Q(v),Q(y)}}}class De extends te{constructor(e){super(),ee(this,e,null,Oe,r,{})}}var Ge="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{};var We,Ue,Re=(function(e){var t=function(e){var t=/\blang(?:uage)?-([\w-]+)\b/i,n=0,s={manual:e.Prism&&e.Prism.manual,disableWorkerMessageHandler:e.Prism&&e.Prism.disableWorkerMessageHandler,util:{encode:function e(t){return t instanceof a?new a(t.type,e(t.content),t.alias):Array.isArray(t)?t.map(e):t.replace(/&/g,"&").replace(/=u.reach);k+=x.value.length,x=x.next){var S=x.value;if(t.length>e.length)return;if(!(S instanceof a)){var j=1;if(v&&x!=t.tail.prev){if(y.lastIndex=k,!(A=y.exec(e)))break;var C=A.index+(h&&A[1]?A[1].length:0),T=A.index+A[0].length,z=k;for(z+=x.value.length;C>=z;)z+=(x=x.next).value.length;if(k=z-=x.value.length,x.value instanceof a)continue;for(var L=x;L!==t.tail&&(zu.reach&&(u.reach=H);var I=x.prev;F&&(I=o(t,I,F),k+=F.length),i(t,I,j),x=o(t,I,new a(g,p?s.tokenize(q,p):q,b,q)),M&&o(t,x,M),j>1&&l(e,t,n,x.prev,k,{cause:g+","+d,reach:H})}}}}}}function r(){var e={value:null,prev:null,next:null},t={value:null,prev:e,next:null};e.next=t,this.head=e,this.tail=t,this.length=0}function o(e,t,n){var s=t.next,a={value:n,prev:t,next:s};return t.next=a,s.prev=a,e.length++,a}function i(e,t,n){for(var s=t.next,a=0;a"+l.content+""},!e.document)return e.addEventListener?(s.disableWorkerMessageHandler||e.addEventListener("message",(function(t){var n=JSON.parse(t.data),a=n.language,l=n.code,r=n.immediateClose;e.postMessage(s.highlight(l,s.languages[a],a)),r&&e.close()}),!1),s):s;var c=s.util.currentScript();function u(){s.manual||s.highlightAll()}if(c&&(s.filename=c.src,c.hasAttribute("data-manual")&&(s.manual=!0)),!s.manual){var g=document.readyState;"loading"===g||"interactive"===g&&c&&c.defer?document.addEventListener("DOMContentLoaded",u):window.requestAnimationFrame?window.requestAnimationFrame(u):window.setTimeout(u,16)}return s}("undefined"!=typeof window?window:"undefined"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope?self:{}); +/** * Prism: Lightweight, robust, elegant syntax highlighting * * @license MIT * @author Lea Verou * @namespace * @public - */ - var Prism = (function (_self){ - - // Private helper vars - var lang = /\blang(?:uage)?-([\w-]+)\b/i; - var uniqueId = 0; - - - var _ = { - /** - * By default, Prism will attempt to highlight all code elements (by calling {@link Prism.highlightAll}) on the - * current page after the page finished loading. This might be a problem if e.g. you wanted to asynchronously load - * additional languages or plugins yourself. - * - * By setting this value to `true`, Prism will not automatically highlight all code elements on the page. - * - * You obviously have to change this value before the automatic highlighting started. To do this, you can add an - * empty Prism object into the global scope before loading the Prism script like this: - * - * ```js - * window.Prism = window.Prism || {}; - * Prism.manual = true; - * // add a new \";\n unsubscribe = listen(window, 'message', (event) => {\n if (event.source === iframe.contentWindow)\n fn();\n });\n }\n else {\n iframe.src = 'about:blank';\n iframe.onload = () => {\n unsubscribe = listen(iframe.contentWindow, 'resize', fn);\n };\n }\n append(node, iframe);\n return () => {\n if (crossorigin) {\n unsubscribe();\n }\n else if (unsubscribe && iframe.contentWindow) {\n unsubscribe();\n }\n detach(iframe);\n };\n}\nfunction toggle_class(element, name, toggle) {\n element.classList[toggle ? 'add' : 'remove'](name);\n}\nfunction custom_event(type, detail) {\n const e = document.createEvent('CustomEvent');\n e.initCustomEvent(type, false, false, detail);\n return e;\n}\nfunction query_selector_all(selector, parent = document.body) {\n return Array.from(parent.querySelectorAll(selector));\n}\nclass HtmlTag {\n constructor(anchor = null) {\n this.a = anchor;\n this.e = this.n = null;\n }\n m(html, target, anchor = null) {\n if (!this.e) {\n this.e = element(target.nodeName);\n this.t = target;\n this.h(html);\n }\n this.i(anchor);\n }\n h(html) {\n this.e.innerHTML = html;\n this.n = Array.from(this.e.childNodes);\n }\n i(anchor) {\n for (let i = 0; i < this.n.length; i += 1) {\n insert(this.t, this.n[i], anchor);\n }\n }\n p(html) {\n this.d();\n this.h(html);\n this.i(this.a);\n }\n d() {\n this.n.forEach(detach);\n }\n}\nfunction attribute_to_object(attributes) {\n const result = {};\n for (const attribute of attributes) {\n result[attribute.name] = attribute.value;\n }\n return result;\n}\nfunction get_custom_elements_slots(element) {\n const result = {};\n element.childNodes.forEach((node) => {\n result[node.slot || 'default'] = true;\n });\n return result;\n}\n\nconst active_docs = new Set();\nlet active = 0;\n// https://github.com/darkskyapp/string-hash/blob/master/index.js\nfunction hash(str) {\n let hash = 5381;\n let i = str.length;\n while (i--)\n hash = ((hash << 5) - hash) ^ str.charCodeAt(i);\n return hash >>> 0;\n}\nfunction create_rule(node, a, b, duration, delay, ease, fn, uid = 0) {\n const step = 16.666 / duration;\n let keyframes = '{\\n';\n for (let p = 0; p <= 1; p += step) {\n const t = a + (b - a) * ease(p);\n keyframes += p * 100 + `%{${fn(t, 1 - t)}}\\n`;\n }\n const rule = keyframes + `100% {${fn(b, 1 - b)}}\\n}`;\n const name = `__svelte_${hash(rule)}_${uid}`;\n const doc = node.ownerDocument;\n active_docs.add(doc);\n const stylesheet = doc.__svelte_stylesheet || (doc.__svelte_stylesheet = doc.head.appendChild(element('style')).sheet);\n const current_rules = doc.__svelte_rules || (doc.__svelte_rules = {});\n if (!current_rules[name]) {\n current_rules[name] = true;\n stylesheet.insertRule(`@keyframes ${name} ${rule}`, stylesheet.cssRules.length);\n }\n const animation = node.style.animation || '';\n node.style.animation = `${animation ? `${animation}, ` : ''}${name} ${duration}ms linear ${delay}ms 1 both`;\n active += 1;\n return name;\n}\nfunction delete_rule(node, name) {\n const previous = (node.style.animation || '').split(', ');\n const next = previous.filter(name\n ? anim => anim.indexOf(name) < 0 // remove specific animation\n : anim => anim.indexOf('__svelte') === -1 // remove all Svelte animations\n );\n const deleted = previous.length - next.length;\n if (deleted) {\n node.style.animation = next.join(', ');\n active -= deleted;\n if (!active)\n clear_rules();\n }\n}\nfunction clear_rules() {\n raf(() => {\n if (active)\n return;\n active_docs.forEach(doc => {\n const stylesheet = doc.__svelte_stylesheet;\n let i = stylesheet.cssRules.length;\n while (i--)\n stylesheet.deleteRule(i);\n doc.__svelte_rules = {};\n });\n active_docs.clear();\n });\n}\n\nfunction create_animation(node, from, fn, params) {\n if (!from)\n return noop;\n const to = node.getBoundingClientRect();\n if (from.left === to.left && from.right === to.right && from.top === to.top && from.bottom === to.bottom)\n return noop;\n const { delay = 0, duration = 300, easing = identity, \n // @ts-ignore todo: should this be separated from destructuring? Or start/end added to public api and documentation?\n start: start_time = now() + delay, \n // @ts-ignore todo:\n end = start_time + duration, tick = noop, css } = fn(node, { from, to }, params);\n let running = true;\n let started = false;\n let name;\n function start() {\n if (css) {\n name = create_rule(node, 0, 1, duration, delay, easing, css);\n }\n if (!delay) {\n started = true;\n }\n }\n function stop() {\n if (css)\n delete_rule(node, name);\n running = false;\n }\n loop(now => {\n if (!started && now >= start_time) {\n started = true;\n }\n if (started && now >= end) {\n tick(1, 0);\n stop();\n }\n if (!running) {\n return false;\n }\n if (started) {\n const p = now - start_time;\n const t = 0 + 1 * easing(p / duration);\n tick(t, 1 - t);\n }\n return true;\n });\n start();\n tick(0, 1);\n return stop;\n}\nfunction fix_position(node) {\n const style = getComputedStyle(node);\n if (style.position !== 'absolute' && style.position !== 'fixed') {\n const { width, height } = style;\n const a = node.getBoundingClientRect();\n node.style.position = 'absolute';\n node.style.width = width;\n node.style.height = height;\n add_transform(node, a);\n }\n}\nfunction add_transform(node, a) {\n const b = node.getBoundingClientRect();\n if (a.left !== b.left || a.top !== b.top) {\n const style = getComputedStyle(node);\n const transform = style.transform === 'none' ? '' : style.transform;\n node.style.transform = `${transform} translate(${a.left - b.left}px, ${a.top - b.top}px)`;\n }\n}\n\nlet current_component;\nfunction set_current_component(component) {\n current_component = component;\n}\nfunction get_current_component() {\n if (!current_component)\n throw new Error('Function called outside component initialization');\n return current_component;\n}\nfunction beforeUpdate(fn) {\n get_current_component().$$.before_update.push(fn);\n}\nfunction onMount(fn) {\n get_current_component().$$.on_mount.push(fn);\n}\nfunction afterUpdate(fn) {\n get_current_component().$$.after_update.push(fn);\n}\nfunction onDestroy(fn) {\n get_current_component().$$.on_destroy.push(fn);\n}\nfunction createEventDispatcher() {\n const component = get_current_component();\n return (type, detail) => {\n const callbacks = component.$$.callbacks[type];\n if (callbacks) {\n // TODO are there situations where events could be dispatched\n // in a server (non-DOM) environment?\n const event = custom_event(type, detail);\n callbacks.slice().forEach(fn => {\n fn.call(component, event);\n });\n }\n };\n}\nfunction setContext(key, context) {\n get_current_component().$$.context.set(key, context);\n}\nfunction getContext(key) {\n return get_current_component().$$.context.get(key);\n}\nfunction hasContext(key) {\n return get_current_component().$$.context.has(key);\n}\n// TODO figure out if we still want to support\n// shorthand events, or if we want to implement\n// a real bubbling mechanism\nfunction bubble(component, event) {\n const callbacks = component.$$.callbacks[event.type];\n if (callbacks) {\n callbacks.slice().forEach(fn => fn(event));\n }\n}\n\nconst dirty_components = [];\nconst intros = { enabled: false };\nconst binding_callbacks = [];\nconst render_callbacks = [];\nconst flush_callbacks = [];\nconst resolved_promise = Promise.resolve();\nlet update_scheduled = false;\nfunction schedule_update() {\n if (!update_scheduled) {\n update_scheduled = true;\n resolved_promise.then(flush);\n }\n}\nfunction tick() {\n schedule_update();\n return resolved_promise;\n}\nfunction add_render_callback(fn) {\n render_callbacks.push(fn);\n}\nfunction add_flush_callback(fn) {\n flush_callbacks.push(fn);\n}\nlet flushing = false;\nconst seen_callbacks = new Set();\nfunction flush() {\n if (flushing)\n return;\n flushing = true;\n do {\n // first, call beforeUpdate functions\n // and update components\n for (let i = 0; i < dirty_components.length; i += 1) {\n const component = dirty_components[i];\n set_current_component(component);\n update(component.$$);\n }\n set_current_component(null);\n dirty_components.length = 0;\n while (binding_callbacks.length)\n binding_callbacks.pop()();\n // then, once components are updated, call\n // afterUpdate functions. This may cause\n // subsequent updates...\n for (let i = 0; i < render_callbacks.length; i += 1) {\n const callback = render_callbacks[i];\n if (!seen_callbacks.has(callback)) {\n // ...so guard against infinite loops\n seen_callbacks.add(callback);\n callback();\n }\n }\n render_callbacks.length = 0;\n } while (dirty_components.length);\n while (flush_callbacks.length) {\n flush_callbacks.pop()();\n }\n update_scheduled = false;\n flushing = false;\n seen_callbacks.clear();\n}\nfunction update($$) {\n if ($$.fragment !== null) {\n $$.update();\n run_all($$.before_update);\n const dirty = $$.dirty;\n $$.dirty = [-1];\n $$.fragment && $$.fragment.p($$.ctx, dirty);\n $$.after_update.forEach(add_render_callback);\n }\n}\n\nlet promise;\nfunction wait() {\n if (!promise) {\n promise = Promise.resolve();\n promise.then(() => {\n promise = null;\n });\n }\n return promise;\n}\nfunction dispatch(node, direction, kind) {\n node.dispatchEvent(custom_event(`${direction ? 'intro' : 'outro'}${kind}`));\n}\nconst outroing = new Set();\nlet outros;\nfunction group_outros() {\n outros = {\n r: 0,\n c: [],\n p: outros // parent group\n };\n}\nfunction check_outros() {\n if (!outros.r) {\n run_all(outros.c);\n }\n outros = outros.p;\n}\nfunction transition_in(block, local) {\n if (block && block.i) {\n outroing.delete(block);\n block.i(local);\n }\n}\nfunction transition_out(block, local, detach, callback) {\n if (block && block.o) {\n if (outroing.has(block))\n return;\n outroing.add(block);\n outros.c.push(() => {\n outroing.delete(block);\n if (callback) {\n if (detach)\n block.d(1);\n callback();\n }\n });\n block.o(local);\n }\n}\nconst null_transition = { duration: 0 };\nfunction create_in_transition(node, fn, params) {\n let config = fn(node, params);\n let running = false;\n let animation_name;\n let task;\n let uid = 0;\n function cleanup() {\n if (animation_name)\n delete_rule(node, animation_name);\n }\n function go() {\n const { delay = 0, duration = 300, easing = identity, tick = noop, css } = config || null_transition;\n if (css)\n animation_name = create_rule(node, 0, 1, duration, delay, easing, css, uid++);\n tick(0, 1);\n const start_time = now() + delay;\n const end_time = start_time + duration;\n if (task)\n task.abort();\n running = true;\n add_render_callback(() => dispatch(node, true, 'start'));\n task = loop(now => {\n if (running) {\n if (now >= end_time) {\n tick(1, 0);\n dispatch(node, true, 'end');\n cleanup();\n return running = false;\n }\n if (now >= start_time) {\n const t = easing((now - start_time) / duration);\n tick(t, 1 - t);\n }\n }\n return running;\n });\n }\n let started = false;\n return {\n start() {\n if (started)\n return;\n delete_rule(node);\n if (is_function(config)) {\n config = config();\n wait().then(go);\n }\n else {\n go();\n }\n },\n invalidate() {\n started = false;\n },\n end() {\n if (running) {\n cleanup();\n running = false;\n }\n }\n };\n}\nfunction create_out_transition(node, fn, params) {\n let config = fn(node, params);\n let running = true;\n let animation_name;\n const group = outros;\n group.r += 1;\n function go() {\n const { delay = 0, duration = 300, easing = identity, tick = noop, css } = config || null_transition;\n if (css)\n animation_name = create_rule(node, 1, 0, duration, delay, easing, css);\n const start_time = now() + delay;\n const end_time = start_time + duration;\n add_render_callback(() => dispatch(node, false, 'start'));\n loop(now => {\n if (running) {\n if (now >= end_time) {\n tick(0, 1);\n dispatch(node, false, 'end');\n if (!--group.r) {\n // this will result in `end()` being called,\n // so we don't need to clean up here\n run_all(group.c);\n }\n return false;\n }\n if (now >= start_time) {\n const t = easing((now - start_time) / duration);\n tick(1 - t, t);\n }\n }\n return running;\n });\n }\n if (is_function(config)) {\n wait().then(() => {\n // @ts-ignore\n config = config();\n go();\n });\n }\n else {\n go();\n }\n return {\n end(reset) {\n if (reset && config.tick) {\n config.tick(1, 0);\n }\n if (running) {\n if (animation_name)\n delete_rule(node, animation_name);\n running = false;\n }\n }\n };\n}\nfunction create_bidirectional_transition(node, fn, params, intro) {\n let config = fn(node, params);\n let t = intro ? 0 : 1;\n let running_program = null;\n let pending_program = null;\n let animation_name = null;\n function clear_animation() {\n if (animation_name)\n delete_rule(node, animation_name);\n }\n function init(program, duration) {\n const d = program.b - t;\n duration *= Math.abs(d);\n return {\n a: t,\n b: program.b,\n d,\n duration,\n start: program.start,\n end: program.start + duration,\n group: program.group\n };\n }\n function go(b) {\n const { delay = 0, duration = 300, easing = identity, tick = noop, css } = config || null_transition;\n const program = {\n start: now() + delay,\n b\n };\n if (!b) {\n // @ts-ignore todo: improve typings\n program.group = outros;\n outros.r += 1;\n }\n if (running_program || pending_program) {\n pending_program = program;\n }\n else {\n // if this is an intro, and there's a delay, we need to do\n // an initial tick and/or apply CSS animation immediately\n if (css) {\n clear_animation();\n animation_name = create_rule(node, t, b, duration, delay, easing, css);\n }\n if (b)\n tick(0, 1);\n running_program = init(program, duration);\n add_render_callback(() => dispatch(node, b, 'start'));\n loop(now => {\n if (pending_program && now > pending_program.start) {\n running_program = init(pending_program, duration);\n pending_program = null;\n dispatch(node, running_program.b, 'start');\n if (css) {\n clear_animation();\n animation_name = create_rule(node, t, running_program.b, running_program.duration, 0, easing, config.css);\n }\n }\n if (running_program) {\n if (now >= running_program.end) {\n tick(t = running_program.b, 1 - t);\n dispatch(node, running_program.b, 'end');\n if (!pending_program) {\n // we're done\n if (running_program.b) {\n // intro — we can tidy up immediately\n clear_animation();\n }\n else {\n // outro — needs to be coordinated\n if (!--running_program.group.r)\n run_all(running_program.group.c);\n }\n }\n running_program = null;\n }\n else if (now >= running_program.start) {\n const p = now - running_program.start;\n t = running_program.a + running_program.d * easing(p / running_program.duration);\n tick(t, 1 - t);\n }\n }\n return !!(running_program || pending_program);\n });\n }\n }\n return {\n run(b) {\n if (is_function(config)) {\n wait().then(() => {\n // @ts-ignore\n config = config();\n go(b);\n });\n }\n else {\n go(b);\n }\n },\n end() {\n clear_animation();\n running_program = pending_program = null;\n }\n };\n}\n\nfunction handle_promise(promise, info) {\n const token = info.token = {};\n function update(type, index, key, value) {\n if (info.token !== token)\n return;\n info.resolved = value;\n let child_ctx = info.ctx;\n if (key !== undefined) {\n child_ctx = child_ctx.slice();\n child_ctx[key] = value;\n }\n const block = type && (info.current = type)(child_ctx);\n let needs_flush = false;\n if (info.block) {\n if (info.blocks) {\n info.blocks.forEach((block, i) => {\n if (i !== index && block) {\n group_outros();\n transition_out(block, 1, 1, () => {\n info.blocks[i] = null;\n });\n check_outros();\n }\n });\n }\n else {\n info.block.d(1);\n }\n block.c();\n transition_in(block, 1);\n block.m(info.mount(), info.anchor);\n needs_flush = true;\n }\n info.block = block;\n if (info.blocks)\n info.blocks[index] = block;\n if (needs_flush) {\n flush();\n }\n }\n if (is_promise(promise)) {\n const current_component = get_current_component();\n promise.then(value => {\n set_current_component(current_component);\n update(info.then, 1, info.value, value);\n set_current_component(null);\n }, error => {\n set_current_component(current_component);\n update(info.catch, 2, info.error, error);\n set_current_component(null);\n if (!info.hasCatch) {\n throw error;\n }\n });\n // if we previously had a then/catch block, destroy it\n if (info.current !== info.pending) {\n update(info.pending, 0);\n return true;\n }\n }\n else {\n if (info.current !== info.then) {\n update(info.then, 1, info.value, promise);\n return true;\n }\n info.resolved = promise;\n }\n}\n\nconst globals = (typeof window !== 'undefined'\n ? window\n : typeof globalThis !== 'undefined'\n ? globalThis\n : global);\n\nfunction destroy_block(block, lookup) {\n block.d(1);\n lookup.delete(block.key);\n}\nfunction outro_and_destroy_block(block, lookup) {\n transition_out(block, 1, 1, () => {\n lookup.delete(block.key);\n });\n}\nfunction fix_and_destroy_block(block, lookup) {\n block.f();\n destroy_block(block, lookup);\n}\nfunction fix_and_outro_and_destroy_block(block, lookup) {\n block.f();\n outro_and_destroy_block(block, lookup);\n}\nfunction update_keyed_each(old_blocks, dirty, get_key, dynamic, ctx, list, lookup, node, destroy, create_each_block, next, get_context) {\n let o = old_blocks.length;\n let n = list.length;\n let i = o;\n const old_indexes = {};\n while (i--)\n old_indexes[old_blocks[i].key] = i;\n const new_blocks = [];\n const new_lookup = new Map();\n const deltas = new Map();\n i = n;\n while (i--) {\n const child_ctx = get_context(ctx, list, i);\n const key = get_key(child_ctx);\n let block = lookup.get(key);\n if (!block) {\n block = create_each_block(key, child_ctx);\n block.c();\n }\n else if (dynamic) {\n block.p(child_ctx, dirty);\n }\n new_lookup.set(key, new_blocks[i] = block);\n if (key in old_indexes)\n deltas.set(key, Math.abs(i - old_indexes[key]));\n }\n const will_move = new Set();\n const did_move = new Set();\n function insert(block) {\n transition_in(block, 1);\n block.m(node, next);\n lookup.set(block.key, block);\n next = block.first;\n n--;\n }\n while (o && n) {\n const new_block = new_blocks[n - 1];\n const old_block = old_blocks[o - 1];\n const new_key = new_block.key;\n const old_key = old_block.key;\n if (new_block === old_block) {\n // do nothing\n next = new_block.first;\n o--;\n n--;\n }\n else if (!new_lookup.has(old_key)) {\n // remove old block\n destroy(old_block, lookup);\n o--;\n }\n else if (!lookup.has(new_key) || will_move.has(new_key)) {\n insert(new_block);\n }\n else if (did_move.has(old_key)) {\n o--;\n }\n else if (deltas.get(new_key) > deltas.get(old_key)) {\n did_move.add(new_key);\n insert(new_block);\n }\n else {\n will_move.add(old_key);\n o--;\n }\n }\n while (o--) {\n const old_block = old_blocks[o];\n if (!new_lookup.has(old_block.key))\n destroy(old_block, lookup);\n }\n while (n)\n insert(new_blocks[n - 1]);\n return new_blocks;\n}\nfunction validate_each_keys(ctx, list, get_context, get_key) {\n const keys = new Set();\n for (let i = 0; i < list.length; i++) {\n const key = get_key(get_context(ctx, list, i));\n if (keys.has(key)) {\n throw new Error('Cannot have duplicate keys in a keyed each');\n }\n keys.add(key);\n }\n}\n\nfunction get_spread_update(levels, updates) {\n const update = {};\n const to_null_out = {};\n const accounted_for = { $$scope: 1 };\n let i = levels.length;\n while (i--) {\n const o = levels[i];\n const n = updates[i];\n if (n) {\n for (const key in o) {\n if (!(key in n))\n to_null_out[key] = 1;\n }\n for (const key in n) {\n if (!accounted_for[key]) {\n update[key] = n[key];\n accounted_for[key] = 1;\n }\n }\n levels[i] = n;\n }\n else {\n for (const key in o) {\n accounted_for[key] = 1;\n }\n }\n }\n for (const key in to_null_out) {\n if (!(key in update))\n update[key] = undefined;\n }\n return update;\n}\nfunction get_spread_object(spread_props) {\n return typeof spread_props === 'object' && spread_props !== null ? spread_props : {};\n}\n\n// source: https://html.spec.whatwg.org/multipage/indices.html\nconst boolean_attributes = new Set([\n 'allowfullscreen',\n 'allowpaymentrequest',\n 'async',\n 'autofocus',\n 'autoplay',\n 'checked',\n 'controls',\n 'default',\n 'defer',\n 'disabled',\n 'formnovalidate',\n 'hidden',\n 'ismap',\n 'loop',\n 'multiple',\n 'muted',\n 'nomodule',\n 'novalidate',\n 'open',\n 'playsinline',\n 'readonly',\n 'required',\n 'reversed',\n 'selected'\n]);\n\nconst invalid_attribute_name_character = /[\\s'\">/=\\u{FDD0}-\\u{FDEF}\\u{FFFE}\\u{FFFF}\\u{1FFFE}\\u{1FFFF}\\u{2FFFE}\\u{2FFFF}\\u{3FFFE}\\u{3FFFF}\\u{4FFFE}\\u{4FFFF}\\u{5FFFE}\\u{5FFFF}\\u{6FFFE}\\u{6FFFF}\\u{7FFFE}\\u{7FFFF}\\u{8FFFE}\\u{8FFFF}\\u{9FFFE}\\u{9FFFF}\\u{AFFFE}\\u{AFFFF}\\u{BFFFE}\\u{BFFFF}\\u{CFFFE}\\u{CFFFF}\\u{DFFFE}\\u{DFFFF}\\u{EFFFE}\\u{EFFFF}\\u{FFFFE}\\u{FFFFF}\\u{10FFFE}\\u{10FFFF}]/u;\n// https://html.spec.whatwg.org/multipage/syntax.html#attributes-2\n// https://infra.spec.whatwg.org/#noncharacter\nfunction spread(args, classes_to_add) {\n const attributes = Object.assign({}, ...args);\n if (classes_to_add) {\n if (attributes.class == null) {\n attributes.class = classes_to_add;\n }\n else {\n attributes.class += ' ' + classes_to_add;\n }\n }\n let str = '';\n Object.keys(attributes).forEach(name => {\n if (invalid_attribute_name_character.test(name))\n return;\n const value = attributes[name];\n if (value === true)\n str += ' ' + name;\n else if (boolean_attributes.has(name.toLowerCase())) {\n if (value)\n str += ' ' + name;\n }\n else if (value != null) {\n str += ` ${name}=\"${String(value).replace(/\"/g, '"').replace(/'/g, ''')}\"`;\n }\n });\n return str;\n}\nconst escaped = {\n '\"': '"',\n \"'\": ''',\n '&': '&',\n '<': '<',\n '>': '>'\n};\nfunction escape(html) {\n return String(html).replace(/[\"'&<>]/g, match => escaped[match]);\n}\nfunction each(items, fn) {\n let str = '';\n for (let i = 0; i < items.length; i += 1) {\n str += fn(items[i], i);\n }\n return str;\n}\nconst missing_component = {\n $$render: () => ''\n};\nfunction validate_component(component, name) {\n if (!component || !component.$$render) {\n if (name === 'svelte:component')\n name += ' this={...}';\n throw new Error(`<${name}> is not a valid SSR component. You may need to review your build config to ensure that dependencies are compiled, rather than imported as pre-compiled modules`);\n }\n return component;\n}\nfunction debug(file, line, column, values) {\n console.log(`{@debug} ${file ? file + ' ' : ''}(${line}:${column})`); // eslint-disable-line no-console\n console.log(values); // eslint-disable-line no-console\n return '';\n}\nlet on_destroy;\nfunction create_ssr_component(fn) {\n function $$render(result, props, bindings, slots) {\n const parent_component = current_component;\n const $$ = {\n on_destroy,\n context: new Map(parent_component ? parent_component.$$.context : []),\n // these will be immediately discarded\n on_mount: [],\n before_update: [],\n after_update: [],\n callbacks: blank_object()\n };\n set_current_component({ $$ });\n const html = fn(result, props, bindings, slots);\n set_current_component(parent_component);\n return html;\n }\n return {\n render: (props = {}, options = {}) => {\n on_destroy = [];\n const result = { title: '', head: '', css: new Set() };\n const html = $$render(result, props, {}, options);\n run_all(on_destroy);\n return {\n html,\n css: {\n code: Array.from(result.css).map(css => css.code).join('\\n'),\n map: null // TODO\n },\n head: result.title + result.head\n };\n },\n $$render\n };\n}\nfunction add_attribute(name, value, boolean) {\n if (value == null || (boolean && !value))\n return '';\n return ` ${name}${value === true ? '' : `=${typeof value === 'string' ? JSON.stringify(escape(value)) : `\"${value}\"`}`}`;\n}\nfunction add_classes(classes) {\n return classes ? ` class=\"${classes}\"` : '';\n}\n\nfunction bind(component, name, callback) {\n const index = component.$$.props[name];\n if (index !== undefined) {\n component.$$.bound[index] = callback;\n callback(component.$$.ctx[index]);\n }\n}\nfunction create_component(block) {\n block && block.c();\n}\nfunction claim_component(block, parent_nodes) {\n block && block.l(parent_nodes);\n}\nfunction mount_component(component, target, anchor) {\n const { fragment, on_mount, on_destroy, after_update } = component.$$;\n fragment && fragment.m(target, anchor);\n // onMount happens before the initial afterUpdate\n add_render_callback(() => {\n const new_on_destroy = on_mount.map(run).filter(is_function);\n if (on_destroy) {\n on_destroy.push(...new_on_destroy);\n }\n else {\n // Edge case - component was destroyed immediately,\n // most likely as a result of a binding initialising\n run_all(new_on_destroy);\n }\n component.$$.on_mount = [];\n });\n after_update.forEach(add_render_callback);\n}\nfunction destroy_component(component, detaching) {\n const $$ = component.$$;\n if ($$.fragment !== null) {\n run_all($$.on_destroy);\n $$.fragment && $$.fragment.d(detaching);\n // TODO null out other refs, including component.$$ (but need to\n // preserve final state?)\n $$.on_destroy = $$.fragment = null;\n $$.ctx = [];\n }\n}\nfunction make_dirty(component, i) {\n if (component.$$.dirty[0] === -1) {\n dirty_components.push(component);\n schedule_update();\n component.$$.dirty.fill(0);\n }\n component.$$.dirty[(i / 31) | 0] |= (1 << (i % 31));\n}\nfunction init(component, options, instance, create_fragment, not_equal, props, dirty = [-1]) {\n const parent_component = current_component;\n set_current_component(component);\n const prop_values = options.props || {};\n const $$ = component.$$ = {\n fragment: null,\n ctx: null,\n // state\n props,\n update: noop,\n not_equal,\n bound: blank_object(),\n // lifecycle\n on_mount: [],\n on_destroy: [],\n before_update: [],\n after_update: [],\n context: new Map(parent_component ? parent_component.$$.context : []),\n // everything else\n callbacks: blank_object(),\n dirty,\n skip_bound: false\n };\n let ready = false;\n $$.ctx = instance\n ? instance(component, prop_values, (i, ret, ...rest) => {\n const value = rest.length ? rest[0] : ret;\n if ($$.ctx && not_equal($$.ctx[i], $$.ctx[i] = value)) {\n if (!$$.skip_bound && $$.bound[i])\n $$.bound[i](value);\n if (ready)\n make_dirty(component, i);\n }\n return ret;\n })\n : [];\n $$.update();\n ready = true;\n run_all($$.before_update);\n // `false` as a special case of no DOM component\n $$.fragment = create_fragment ? create_fragment($$.ctx) : false;\n if (options.target) {\n if (options.hydrate) {\n const nodes = children(options.target);\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n $$.fragment && $$.fragment.l(nodes);\n nodes.forEach(detach);\n }\n else {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n $$.fragment && $$.fragment.c();\n }\n if (options.intro)\n transition_in(component.$$.fragment);\n mount_component(component, options.target, options.anchor);\n flush();\n }\n set_current_component(parent_component);\n}\nlet SvelteElement;\nif (typeof HTMLElement === 'function') {\n SvelteElement = class extends HTMLElement {\n constructor() {\n super();\n this.attachShadow({ mode: 'open' });\n }\n connectedCallback() {\n // @ts-ignore todo: improve typings\n for (const key in this.$$.slotted) {\n // @ts-ignore todo: improve typings\n this.appendChild(this.$$.slotted[key]);\n }\n }\n attributeChangedCallback(attr, _oldValue, newValue) {\n this[attr] = newValue;\n }\n $destroy() {\n destroy_component(this, 1);\n this.$destroy = noop;\n }\n $on(type, callback) {\n // TODO should this delegate to addEventListener?\n const callbacks = (this.$$.callbacks[type] || (this.$$.callbacks[type] = []));\n callbacks.push(callback);\n return () => {\n const index = callbacks.indexOf(callback);\n if (index !== -1)\n callbacks.splice(index, 1);\n };\n }\n $set($$props) {\n if (this.$$set && !is_empty($$props)) {\n this.$$.skip_bound = true;\n this.$$set($$props);\n this.$$.skip_bound = false;\n }\n }\n };\n}\nclass SvelteComponent {\n $destroy() {\n destroy_component(this, 1);\n this.$destroy = noop;\n }\n $on(type, callback) {\n const callbacks = (this.$$.callbacks[type] || (this.$$.callbacks[type] = []));\n callbacks.push(callback);\n return () => {\n const index = callbacks.indexOf(callback);\n if (index !== -1)\n callbacks.splice(index, 1);\n };\n }\n $set($$props) {\n if (this.$$set && !is_empty($$props)) {\n this.$$.skip_bound = true;\n this.$$set($$props);\n this.$$.skip_bound = false;\n }\n }\n}\n\nfunction dispatch_dev(type, detail) {\n document.dispatchEvent(custom_event(type, Object.assign({ version: '3.30.0' }, detail)));\n}\nfunction append_dev(target, node) {\n dispatch_dev('SvelteDOMInsert', { target, node });\n append(target, node);\n}\nfunction insert_dev(target, node, anchor) {\n dispatch_dev('SvelteDOMInsert', { target, node, anchor });\n insert(target, node, anchor);\n}\nfunction detach_dev(node) {\n dispatch_dev('SvelteDOMRemove', { node });\n detach(node);\n}\nfunction detach_between_dev(before, after) {\n while (before.nextSibling && before.nextSibling !== after) {\n detach_dev(before.nextSibling);\n }\n}\nfunction detach_before_dev(after) {\n while (after.previousSibling) {\n detach_dev(after.previousSibling);\n }\n}\nfunction detach_after_dev(before) {\n while (before.nextSibling) {\n detach_dev(before.nextSibling);\n }\n}\nfunction listen_dev(node, event, handler, options, has_prevent_default, has_stop_propagation) {\n const modifiers = options === true ? ['capture'] : options ? Array.from(Object.keys(options)) : [];\n if (has_prevent_default)\n modifiers.push('preventDefault');\n if (has_stop_propagation)\n modifiers.push('stopPropagation');\n dispatch_dev('SvelteDOMAddEventListener', { node, event, handler, modifiers });\n const dispose = listen(node, event, handler, options);\n return () => {\n dispatch_dev('SvelteDOMRemoveEventListener', { node, event, handler, modifiers });\n dispose();\n };\n}\nfunction attr_dev(node, attribute, value) {\n attr(node, attribute, value);\n if (value == null)\n dispatch_dev('SvelteDOMRemoveAttribute', { node, attribute });\n else\n dispatch_dev('SvelteDOMSetAttribute', { node, attribute, value });\n}\nfunction prop_dev(node, property, value) {\n node[property] = value;\n dispatch_dev('SvelteDOMSetProperty', { node, property, value });\n}\nfunction dataset_dev(node, property, value) {\n node.dataset[property] = value;\n dispatch_dev('SvelteDOMSetDataset', { node, property, value });\n}\nfunction set_data_dev(text, data) {\n data = '' + data;\n if (text.wholeText === data)\n return;\n dispatch_dev('SvelteDOMSetData', { node: text, data });\n text.data = data;\n}\nfunction validate_each_argument(arg) {\n if (typeof arg !== 'string' && !(arg && typeof arg === 'object' && 'length' in arg)) {\n let msg = '{#each} only iterates over array-like objects.';\n if (typeof Symbol === 'function' && arg && Symbol.iterator in arg) {\n msg += ' You can use a spread to convert this iterable into an array.';\n }\n throw new Error(msg);\n }\n}\nfunction validate_slots(name, slot, keys) {\n for (const slot_key of Object.keys(slot)) {\n if (!~keys.indexOf(slot_key)) {\n console.warn(`<${name}> received an unexpected slot \"${slot_key}\".`);\n }\n }\n}\nclass SvelteComponentDev extends SvelteComponent {\n constructor(options) {\n if (!options || (!options.target && !options.$$inline)) {\n throw new Error(\"'target' is a required option\");\n }\n super();\n }\n $destroy() {\n super.$destroy();\n this.$destroy = () => {\n console.warn('Component was already destroyed'); // eslint-disable-line no-console\n };\n }\n $capture_state() { }\n $inject_state() { }\n}\nfunction loop_guard(timeout) {\n const start = Date.now();\n return () => {\n if (Date.now() - start > timeout) {\n throw new Error('Infinite loop detected');\n }\n };\n}\n\nexport { HtmlTag, SvelteComponent, SvelteComponentDev, SvelteElement, action_destroyer, add_attribute, add_classes, add_flush_callback, add_location, add_render_callback, add_resize_listener, add_transform, afterUpdate, append, append_dev, assign, attr, attr_dev, attribute_to_object, beforeUpdate, bind, binding_callbacks, blank_object, bubble, check_outros, children, claim_component, claim_element, claim_space, claim_text, clear_loops, component_subscribe, compute_rest_props, compute_slots, createEventDispatcher, create_animation, create_bidirectional_transition, create_component, create_in_transition, create_out_transition, create_slot, create_ssr_component, current_component, custom_event, dataset_dev, debug, destroy_block, destroy_component, destroy_each, detach, detach_after_dev, detach_before_dev, detach_between_dev, detach_dev, dirty_components, dispatch_dev, each, element, element_is, empty, escape, escaped, exclude_internal_props, fix_and_destroy_block, fix_and_outro_and_destroy_block, fix_position, flush, getContext, get_binding_group_value, get_current_component, get_custom_elements_slots, get_slot_changes, get_slot_context, get_spread_object, get_spread_update, get_store_value, globals, group_outros, handle_promise, hasContext, has_prop, identity, init, insert, insert_dev, intros, invalid_attribute_name_character, is_client, is_crossorigin, is_empty, is_function, is_promise, listen, listen_dev, loop, loop_guard, missing_component, mount_component, noop, not_equal, now, null_to_empty, object_without_properties, onDestroy, onMount, once, outro_and_destroy_block, prevent_default, prop_dev, query_selector_all, raf, run, run_all, safe_not_equal, schedule_update, select_multiple_value, select_option, select_options, select_value, self, setContext, set_attributes, set_current_component, set_custom_element_data, set_data, set_data_dev, set_input_type, set_input_value, set_now, set_raf, set_store_value, set_style, set_svg_attributes, space, spread, stop_propagation, subscribe, svg_element, text, tick, time_ranges_to_array, to_number, toggle_class, transition_in, transition_out, update_keyed_each, update_slot, update_slot_spread, validate_component, validate_each_argument, validate_each_keys, validate_slots, validate_store, xlink_attr };\n","/**\n * @typedef {Object} WrappedComponent Object returned by the `wrap` method\n * @property {SvelteComponent} component - Component to load (this is always asynchronous)\n * @property {RoutePrecondition[]} [conditions] - Route pre-conditions to validate\n * @property {Object} [props] - Optional dictionary of static props\n * @property {Object} [userData] - Optional user data dictionary\n * @property {bool} _sveltesparouter - Internal flag; always set to true\n */\n\n/**\n * @callback AsyncSvelteComponent\n * @returns {Promise} Returns a Promise that resolves with a Svelte component\n */\n\n/**\n * @callback RoutePrecondition\n * @param {RouteDetail} detail - Route detail object\n * @returns {boolean|Promise} If the callback returns a false-y value, it's interpreted as the precondition failed, so it aborts loading the component (and won't process other pre-condition callbacks)\n */\n\n/**\n * @typedef {Object} WrapOptions Options object for the call to `wrap`\n * @property {SvelteComponent} [component] - Svelte component to load (this is incompatible with `asyncComponent`)\n * @property {AsyncSvelteComponent} [asyncComponent] - Function that returns a Promise that fulfills with a Svelte component (e.g. `{asyncComponent: () => import('Foo.svelte')}`)\n * @property {SvelteComponent} [loadingComponent] - Svelte component to be displayed while the async route is loading (as a placeholder); when unset or false-y, no component is shown while component\n * @property {object} [loadingParams] - Optional dictionary passed to the `loadingComponent` component as params (for an exported prop called `params`)\n * @property {object} [userData] - Optional object that will be passed to events such as `routeLoading`, `routeLoaded`, `conditionsFailed`\n * @property {object} [props] - Optional key-value dictionary of static props that will be passed to the component. The props are expanded with {...props}, so the key in the dictionary becomes the name of the prop.\n * @property {RoutePrecondition[]|RoutePrecondition} [conditions] - Route pre-conditions to add, which will be executed in order\n */\n\n/**\n * Wraps a component to enable multiple capabilities:\n * 1. Using dynamically-imported component, with (e.g. `{asyncComponent: () => import('Foo.svelte')}`), which also allows bundlers to do code-splitting.\n * 2. Adding route pre-conditions (e.g. `{conditions: [...]}`)\n * 3. Adding static props that are passed to the component\n * 4. Adding custom userData, which is passed to route events (e.g. route loaded events) or to route pre-conditions (e.g. `{userData: {foo: 'bar}}`)\n * \n * @param {WrapOptions} args - Arguments object\n * @returns {WrappedComponent} Wrapped component\n */\nexport function wrap(args) {\n if (!args) {\n throw Error('Parameter args is required')\n }\n\n // We need to have one and only one of component and asyncComponent\n // This does a \"XNOR\"\n if (!args.component == !args.asyncComponent) {\n throw Error('One and only one of component and asyncComponent is required')\n }\n\n // If the component is not async, wrap it into a function returning a Promise\n if (args.component) {\n args.asyncComponent = () => Promise.resolve(args.component)\n }\n\n // Parameter asyncComponent and each item of conditions must be functions\n if (typeof args.asyncComponent != 'function') {\n throw Error('Parameter asyncComponent must be a function')\n }\n if (args.conditions) {\n // Ensure it's an array\n if (!Array.isArray(args.conditions)) {\n args.conditions = [args.conditions]\n }\n for (let i = 0; i < args.conditions.length; i++) {\n if (!args.conditions[i] || typeof args.conditions[i] != 'function') {\n throw Error('Invalid parameter conditions[' + i + ']')\n }\n }\n }\n\n // Check if we have a placeholder component\n if (args.loadingComponent) {\n args.asyncComponent.loading = args.loadingComponent\n args.asyncComponent.loadingParams = args.loadingParams || undefined\n }\n\n // Returns an object that contains all the functions to execute too\n // The _sveltesparouter flag is to confirm the object was created by this router\n const obj = {\n component: args.asyncComponent,\n userData: args.userData,\n conditions: (args.conditions && args.conditions.length) ? args.conditions : undefined,\n props: (args.props && Object.keys(args.props).length) ? args.props : {},\n _sveltesparouter: true\n }\n\n return obj\n}\n\nexport default wrap\n","import { noop, safe_not_equal, subscribe, run_all, is_function } from '../internal/index.mjs';\nexport { get_store_value as get } from '../internal/index.mjs';\n\nconst subscriber_queue = [];\n/**\n * Creates a `Readable` store that allows reading by subscription.\n * @param value initial value\n * @param {StartStopNotifier}start start and stop notifications for subscriptions\n */\nfunction readable(value, start) {\n return {\n subscribe: writable(value, start).subscribe\n };\n}\n/**\n * Create a `Writable` store that allows both updating and reading by subscription.\n * @param {*=}value initial value\n * @param {StartStopNotifier=}start start and stop notifications for subscriptions\n */\nfunction writable(value, start = noop) {\n let stop;\n const subscribers = [];\n function set(new_value) {\n if (safe_not_equal(value, new_value)) {\n value = new_value;\n if (stop) { // store is ready\n const run_queue = !subscriber_queue.length;\n for (let i = 0; i < subscribers.length; i += 1) {\n const s = subscribers[i];\n s[1]();\n subscriber_queue.push(s, value);\n }\n if (run_queue) {\n for (let i = 0; i < subscriber_queue.length; i += 2) {\n subscriber_queue[i][0](subscriber_queue[i + 1]);\n }\n subscriber_queue.length = 0;\n }\n }\n }\n }\n function update(fn) {\n set(fn(value));\n }\n function subscribe(run, invalidate = noop) {\n const subscriber = [run, invalidate];\n subscribers.push(subscriber);\n if (subscribers.length === 1) {\n stop = start(set) || noop;\n }\n run(value);\n return () => {\n const index = subscribers.indexOf(subscriber);\n if (index !== -1) {\n subscribers.splice(index, 1);\n }\n if (subscribers.length === 0) {\n stop();\n stop = null;\n }\n };\n }\n return { set, update, subscribe };\n}\nfunction derived(stores, fn, initial_value) {\n const single = !Array.isArray(stores);\n const stores_array = single\n ? [stores]\n : stores;\n const auto = fn.length < 2;\n return readable(initial_value, (set) => {\n let inited = false;\n const values = [];\n let pending = 0;\n let cleanup = noop;\n const sync = () => {\n if (pending) {\n return;\n }\n cleanup();\n const result = fn(single ? values[0] : values, set);\n if (auto) {\n set(result);\n }\n else {\n cleanup = is_function(result) ? result : noop;\n }\n };\n const unsubscribers = stores_array.map((store, i) => subscribe(store, (value) => {\n values[i] = value;\n pending &= ~(1 << i);\n if (inited) {\n sync();\n }\n }, () => {\n pending |= (1 << i);\n }));\n inited = true;\n sync();\n return function stop() {\n run_all(unsubscribers);\n cleanup();\n };\n });\n}\n\nexport { derived, readable, writable };\n","export default function (str, loose) {\n\tif (str instanceof RegExp) return { keys:false, pattern:str };\n\tvar c, o, tmp, ext, keys=[], pattern='', arr = str.split('/');\n\tarr[0] || arr.shift();\n\n\twhile (tmp = arr.shift()) {\n\t\tc = tmp[0];\n\t\tif (c === '*') {\n\t\t\tkeys.push('wild');\n\t\t\tpattern += '/(.*)';\n\t\t} else if (c === ':') {\n\t\t\to = tmp.indexOf('?', 1);\n\t\t\text = tmp.indexOf('.', 1);\n\t\t\tkeys.push( tmp.substring(1, !!~o ? o : !!~ext ? ext : tmp.length) );\n\t\t\tpattern += !!~o && !~ext ? '(?:/([^/]+?))?' : '/([^/]+?)';\n\t\t\tif (!!~ext) pattern += (!!~o ? '?' : '') + '\\\\' + tmp.substring(ext);\n\t\t} else {\n\t\t\tpattern += '/' + tmp;\n\t\t}\n\t}\n\n\treturn {\n\t\tkeys: keys,\n\t\tpattern: new RegExp('^' + pattern + (loose ? '(?=$|\\/)' : '\\/?$'), 'i')\n\t};\n}\n","\n\n{#if componentParams}\n \n{:else}\n \n{/if}\n\n\n","\n\n\n\n\n \n \n\n\n","\n\n\n\n\n\n
    \n \n
    \n
    \n \n
    \n \n
    \n #tag #anothertag\n

    Title And Stuff

    \n \n Stats Stats\n \n 1.1K\n 22\n SHARE\n SAVE\n \n \n \n
    \n
    \n
    \n
    \n","\n\n\n\n\n\n
    \n \n
    \n\n \n
    \n \"Zed's\n
    \n\n \n

    \n zedshaw \n

    \n\n

    \n 280 posts 4,695 followers 1,778 following\n

    \n\n

    Zed A. Shaw

    \n

    Painter in oil, watercolor, and pastel. I’m doing live streams of little paintings on Twitch:
    \n www.twitch.tv/zedashaw\n

    \n
    \n
    \n\n \n {#each pins as pin}\n
    \n \"Stock\n
    \n {/each}\n
    \n
    \n","function simpleSvgPlaceholder({\n width = 300,\n height = 150,\n text = `${width}×${height}`,\n fontFamily = 'sans-serif',\n fontWeight = 'bold',\n fontSize = Math.floor(Math.min(width, height) * 0.2),\n dy = fontSize * 0.35,\n bgColor = '#ddd',\n textColor = 'rgba(0,0,0,0.5)',\n dataUri = true,\n charset = 'UTF-8'\n} = {}) {\n const str = `\n \n ${text}\n `;\n\n // Thanks to: filamentgroup/directory-encoder\n const cleaned = str\n .replace(/[\\t\\n\\r]/gim, '') // Strip newlines and tabs\n .replace(/\\s\\s+/g, ' ') // Condense multiple spaces\n .replace(/'/gim, '\\\\i'); // Normalize quotes\n\n if (dataUri) {\n const encoded = encodeURIComponent(cleaned)\n .replace(/\\(/g, '%28') // Encode brackets\n .replace(/\\)/g, '%29');\n\n return `data:image/svg+xml;charset=${charset},${encoded}`;\n }\n\n return cleaned;\n}\n\nmodule.exports = simpleSvgPlaceholder;\n","import simpleSvgPlaceholder from '@cloudfour/simple-svg-placeholder';\n\nconst defaults = {\n bgColor: '#ccc',\n textColor: '#888',\n}\n\nexport const holder = (x, y) => simpleSvgPlaceholder({...defaults, width: x, height: y});\n","\n\n\n\n \n \n \n \n\n \n

    \n Tile Example\n

    \n

    Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

    \n
    \n\n \n \n \n \n
    \n
    \n\n","\n/* **********************************************\n Begin prism-core.js\n********************************************** */\n\n/// \n\nvar _self = (typeof window !== 'undefined')\n\t? window // if in browser\n\t: (\n\t\t(typeof WorkerGlobalScope !== 'undefined' && self instanceof WorkerGlobalScope)\n\t\t? self // if in worker\n\t\t: {} // if in node js\n\t);\n\n/**\n * Prism: Lightweight, robust, elegant syntax highlighting\n *\n * @license MIT \n * @author Lea Verou \n * @namespace\n * @public\n */\nvar Prism = (function (_self){\n\n// Private helper vars\nvar lang = /\\blang(?:uage)?-([\\w-]+)\\b/i;\nvar uniqueId = 0;\n\n\nvar _ = {\n\t/**\n\t * By default, Prism will attempt to highlight all code elements (by calling {@link Prism.highlightAll}) on the\n\t * current page after the page finished loading. This might be a problem if e.g. you wanted to asynchronously load\n\t * additional languages or plugins yourself.\n\t *\n\t * By setting this value to `true`, Prism will not automatically highlight all code elements on the page.\n\t *\n\t * You obviously have to change this value before the automatic highlighting started. To do this, you can add an\n\t * empty Prism object into the global scope before loading the Prism script like this:\n\t *\n\t * ```js\n\t * window.Prism = window.Prism || {};\n\t * Prism.manual = true;\n\t * // add a new \n\n\n\n\n \n

    CSS

    \n
    \n      \n    {css_code}\n      \n    
    \n
    \n\n \n

    HTML

    \n
    \n      \n    {html_code}\n      \n    
    \n
    \n
    \n\n{#if notes}\n
    \n

    Notes

    \n {@html notes_html}\n{/if}\n","\n\n\n\n \n \n \n \n\n \n

    \n Card Example\n

    \n

    Lorem ipsum dolor sit amet, consectetur\n adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

    \n
    \n\n \n \n \n \n
    \n
    \n\n","\n\n\n\n\n

    Basic Tabs

    \n\n \n Tab1\n Tab2\n Tab3\n \n\n

    Interactive Demo

    \n \n {#each panels as panel, i}\n activate(i) }>{panel.title}\n {/each}\n \n \n {#each panels as panel, i}\n \n

    { panel.title }

    \n

    \n Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod\n tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim\n veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea\n commodo consequat. Duis aute irure dolor in reprehenderit in voluptate\n velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat\n cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est\n laborum.\n

    \n
    \n {/each}\n
    \n
    \n\n","\n\n\n\n \n December\n SunMonTueWedThuFriSat\n {#each make_dates() as date}\n {date}\n {/each}\n \n\n\n","\n\n\n\n

    Full Websites

    \n\n\n\n
    push('/demos/google') }>\n \n
    Google
    \n
    \n\n
    push('/demos/twitter') }>\n \n
    Twitter
    \n
    \n\n
    push('/demos/youtube') }>\n \n
    Youtube
    \n
    \n\n
    push('/demos/instagram') }>\n \n
    Instagram
    \n
    \n\n
    push('/demos/pinterest') }>\n \n
    Pinterest
    \n
    \n
    \n\n
    \n

    Common UI Patterns

    \n\n\n\n
    push('/demos/login') }>\n \n
    Basic Login
    \n
    \n\n\n
    push('/demos/tiles') }>\n \n
    Tiles
    \n
    \n\n
    push('/demos/cards') }>\n \n
    Cards
    \n
    \n\n
    push('/demos/panels') }>\n \n
    Panels
    \n
    \n\n
    push('/demos/tabs') }>\n \n
    Tabs
    \n
    \n\n
    push('/demos/gridovergraphic') }>\n \n
    Grid Over Graphic
    \n
    \n\n
    push('/demos/calendar') }>\n \n
    Calendar
    \n
    \n\n
    \n\n\n","\n\n\n\n\n\n\n
    \n \n
    \n\n
    \n \n \n \n
    \n\n \n \n \n \n \n \n \n\n
    \n\n\n","\n\n\n\n\n\n \n \n

    # Explore

    \n

    Settings

    \n
    \n\n \n
    \n \n
    \n\n \n
    \n \n
    \n\n
    \n \n \n
    \n
    \n\n \n

    Zed A. Shaw, Writer

    \n

    @lzsthw

    \n

    The author of The Hard Way Series published by Addison/Wesley including Learn Python The Hard Way and many more. Follow me here for coding tips and book news.

    \n

    Some Place, KY learnjsthehardway.org Joined Jan, 1999.

    \n

    167 Following 10.4k Followers

    \n
    \n\n
    \n\n \n {#each tweets as tweet}\n \n
    \n \"Stock\n
    \n \n

    Zed A. Shaw, Writer

    \n

    Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam:
    \n\n quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

    \n \n 2\n 1\n 12\n \n \n
    \n \n
    \n {/each}\n
    \n
    \n\n \n \n\n
    \n \n\n \n\n \n\n \n
    \n
    \n
    \n\n\n","\n\n\n\n\n\n
    \n \n
    \n
    \n \n
    \n \n \n \n
    \n #tag #anothertag\n

    Title And Stuff

    \n \n Stats Stats\n \n 1.1K\n 22\n SHARE\n SAVE\n \n \n \n
    \n
    \n
    \n \n \n\n \n Sed ut perspiciatis unde omnis iste natus error sit voluptatem accusantium doloremque laudantium, totam rem aperiam, eaque ipsa quae ab illo inventore veritatis et quasi architecto beatae vitae dicta sunt explicabo. Nemo enim ipsam voluptatem quia voluptas sit aspernatur aut odit aut fugit, sed quia consequuntur magni dolores eos qui ratione voluptatem sequi nesciunt. Neque porro quisquam est, qui dolorem ipsum quia dolor sit amet, consectetur, adipisci velit, sed quia non numquam eius modi tempora incidunt ut labore et dolore magnam aliquam quaerat voluptatem. Ut enim ad minima veniam, quis nostrum exercitationem ullam corporis suscipit laboriosam, nisi ut aliquid ex ea commodi consequatur? Quis autem vel eum iure reprehenderit qui in ea voluptate velit esse quam nihil molestiae consequatur, vel illum qui dolorem eum fugiat quo voluptas nulla pariatur\n \n \n
    \n\n \n \n\n {#each cards as card}\n \n \n \n

    Guys

    \n

    Sed ut perspiciatis unde omnis iste natus error sit voluptatem accusantium doloremque laudantium, totam rem aperiam, eaque

    \n \n View replies\n
    \n
    \n {/each}\n
    \n
    \n\n \n {#each cards as card}\n \n \n \n

    Video Thumb Title

    \n Zed\n 1.1M views\n 2 years ago\n
    \n
    \n {/each}\n\n
    \n \n \n \n
    \n\n {#each cards as card}\n \n \n \n

    Video Thumb Title

    \n Zed\n 1.1M views\n 2 years ago\n
    \n
    \n {/each}\n
    \n
    \n
    \n\n\n","\n\n\n\n\n\n
    \n \n
    \n\n \n
    \n \"Zed's\n
    \n\n \n

    \n zedshaw \n

    \n\n

    \n 280 posts 4,695 followers 1,778 following\n

    \n\n

    Zed A. Shaw

    \n

    Painter in oil, watercolor, and pastel. I’m doing live streams of little paintings on Twitch:
    \n www.twitch.tv/zedashaw\n

    \n
    \n
    \n\n \n {#each pins as pin}\n
    \n \"Stock\n
    \n {/each}\n
    \n\n \n \n \n\n \n {#each posts as post}\n
    \n \"Stock\n
    \n {/each}\n
    \n
    \n\n\n","\n\n\n\n\n\n\n
    \n \n
    \n\n {#if !thumbnail}\n \n \n

    Vincent van Gogh

    \n

    Collection by A Person

    \n

    420 Pins • 3.59k Followers

    \n

    \"I dream my painting and I paint my dream.\" ~ Vincent van Gogh\n \n\n

    \n \"Zed's\n
    \n
    \n\n \n {#each lanes as lane}\n \n {#each random_sample(pin_sizes, 10) as height}\n
    \n \"Van\n
    Something about Van Gogh {height} high.
    \n
    \n {/each}\n
    \n {/each}\n
    \n {/if}\n
    \n\n\n","\n\n\n\n\n\n\n
    \n \n
    \n\n \n
    \n \"Module\n
    \n\n \n

    \n \n

    \n\n

    \n 10 videos 4,695 followers\n

    \n\n

    Drawing Level 1

    \n

    The first module you should take. It covers the basics of drawing and how to get started\n making drawing a habit.\n

    \n
    \n
    \n\n \n {#each related as pin}\n
    \n \"Stock\n
    \n {/each}\n
    \n\n \n {#each posts as post}\n
    \n \n \"Placeholder\"\n \n
    \n {/each}\n
    \n
    \n\n\n","\n\n\n\n\n\n\n
    \n \n
    \n
    \n
    \n \n
    \n #tag #anothertag\n

    Title And Stuff

    \n \n Likes Other Stats\n \n 1.1K\n 22\n SHARE\n SAVE\n \n \n \n
    \n
    \n \n \n \n\n \n Sed ut perspiciatis unde omnis iste natus error sit voluptatem accusantium doloremque laudantium, totam rem aperiam, eaque ipsa quae ab illo inventore veritatis et quasi architecto beatae vitae dicta sunt explicabo. Nemo enim ipsam voluptatem quia voluptas sit aspernatur aut odit aut fugit, sed quia consequuntur magni dolores eos qui ratione voluptatem sequi nesciunt. Neque porro quisquam est, qui dolorem ipsum quia dolor sit amet, consectetur, adipisci velit, sed quia non numquam eius modi tempora incidunt ut labore et dolore magnam aliquam quaerat voluptatem. Ut enim ad minima veniam, quis nostrum exercitationem ullam corporis suscipit laboriosam, nisi ut aliquid ex ea commodi consequatur? Quis autem vel eum iure reprehenderit qui in ea voluptate velit esse quam nihil molestiae consequatur, vel illum qui dolorem eum fugiat quo voluptas nulla pariatur\n \n \n
    \n\n \n \n\n {#each cards as card}\n \n \n \n

    Guys

    \n

    Sed ut perspiciatis unde omnis iste natus error sit voluptatem accusantium doloremque laudantium, totam rem aperiam, eaque

    \n \n View replies\n
    \n
    \n {/each}\n
    \n
    \n
    \n
    \n\n\n","\n\n\n\n \n \n \n \n\n \n

    \n Tile Example\n

    \n

    Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

    \n
    \n\n \n \n \n \n
    \n
    \n\n\n","\n\n\n\n \n \n \n \n\n \n

    \n Card Example\n

    \n

    Lorem ipsum dolor sit amet, consectetur\n adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

    \n
    \n\n \n \n \n \n
    \n
    \n\n\n","import { cubicInOut, linear, cubicOut } from '../easing/index.mjs';\nimport { is_function, assign } from '../internal/index.mjs';\n\n/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation. All rights reserved.\r\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\r\nthis file except in compliance with the License. You may obtain a copy of the\r\nLicense at http://www.apache.org/licenses/LICENSE-2.0\r\n\r\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\r\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\r\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\r\nMERCHANTABLITY OR NON-INFRINGEMENT.\r\n\r\nSee the Apache Version 2.0 License for specific language governing permissions\r\nand limitations under the License.\r\n***************************************************************************** */\r\n\r\nfunction __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\n\nfunction blur(node, { delay = 0, duration = 400, easing = cubicInOut, amount = 5, opacity = 0 }) {\n const style = getComputedStyle(node);\n const target_opacity = +style.opacity;\n const f = style.filter === 'none' ? '' : style.filter;\n const od = target_opacity * (1 - opacity);\n return {\n delay,\n duration,\n easing,\n css: (_t, u) => `opacity: ${target_opacity - (od * u)}; filter: ${f} blur(${u * amount}px);`\n };\n}\nfunction fade(node, { delay = 0, duration = 400, easing = linear }) {\n const o = +getComputedStyle(node).opacity;\n return {\n delay,\n duration,\n easing,\n css: t => `opacity: ${t * o}`\n };\n}\nfunction fly(node, { delay = 0, duration = 400, easing = cubicOut, x = 0, y = 0, opacity = 0 }) {\n const style = getComputedStyle(node);\n const target_opacity = +style.opacity;\n const transform = style.transform === 'none' ? '' : style.transform;\n const od = target_opacity * (1 - opacity);\n return {\n delay,\n duration,\n easing,\n css: (t, u) => `\n\t\t\ttransform: ${transform} translate(${(1 - t) * x}px, ${(1 - t) * y}px);\n\t\t\topacity: ${target_opacity - (od * u)}`\n };\n}\nfunction slide(node, { delay = 0, duration = 400, easing = cubicOut }) {\n const style = getComputedStyle(node);\n const opacity = +style.opacity;\n const height = parseFloat(style.height);\n const padding_top = parseFloat(style.paddingTop);\n const padding_bottom = parseFloat(style.paddingBottom);\n const margin_top = parseFloat(style.marginTop);\n const margin_bottom = parseFloat(style.marginBottom);\n const border_top_width = parseFloat(style.borderTopWidth);\n const border_bottom_width = parseFloat(style.borderBottomWidth);\n return {\n delay,\n duration,\n easing,\n css: t => 'overflow: hidden;' +\n `opacity: ${Math.min(t * 20, 1) * opacity};` +\n `height: ${t * height}px;` +\n `padding-top: ${t * padding_top}px;` +\n `padding-bottom: ${t * padding_bottom}px;` +\n `margin-top: ${t * margin_top}px;` +\n `margin-bottom: ${t * margin_bottom}px;` +\n `border-top-width: ${t * border_top_width}px;` +\n `border-bottom-width: ${t * border_bottom_width}px;`\n };\n}\nfunction scale(node, { delay = 0, duration = 400, easing = cubicOut, start = 0, opacity = 0 }) {\n const style = getComputedStyle(node);\n const target_opacity = +style.opacity;\n const transform = style.transform === 'none' ? '' : style.transform;\n const sd = 1 - start;\n const od = target_opacity * (1 - opacity);\n return {\n delay,\n duration,\n easing,\n css: (_t, u) => `\n\t\t\ttransform: ${transform} scale(${1 - (sd * u)});\n\t\t\topacity: ${target_opacity - (od * u)}\n\t\t`\n };\n}\nfunction draw(node, { delay = 0, speed, duration, easing = cubicInOut }) {\n const len = node.getTotalLength();\n if (duration === undefined) {\n if (speed === undefined) {\n duration = 800;\n }\n else {\n duration = len / speed;\n }\n }\n else if (typeof duration === 'function') {\n duration = duration(len);\n }\n return {\n delay,\n duration,\n easing,\n css: (t, u) => `stroke-dasharray: ${t * len} ${u * len}`\n };\n}\nfunction crossfade(_a) {\n var { fallback } = _a, defaults = __rest(_a, [\"fallback\"]);\n const to_receive = new Map();\n const to_send = new Map();\n function crossfade(from, node, params) {\n const { delay = 0, duration = d => Math.sqrt(d) * 30, easing = cubicOut } = assign(assign({}, defaults), params);\n const to = node.getBoundingClientRect();\n const dx = from.left - to.left;\n const dy = from.top - to.top;\n const dw = from.width / to.width;\n const dh = from.height / to.height;\n const d = Math.sqrt(dx * dx + dy * dy);\n const style = getComputedStyle(node);\n const transform = style.transform === 'none' ? '' : style.transform;\n const opacity = +style.opacity;\n return {\n delay,\n duration: is_function(duration) ? duration(d) : duration,\n easing,\n css: (t, u) => `\n\t\t\t\topacity: ${t * opacity};\n\t\t\t\ttransform-origin: top left;\n\t\t\t\ttransform: ${transform} translate(${u * dx}px,${u * dy}px) scale(${t + (1 - t) * dw}, ${t + (1 - t) * dh});\n\t\t\t`\n };\n }\n function transition(items, counterparts, intro) {\n return (node, params) => {\n items.set(params.key, {\n rect: node.getBoundingClientRect()\n });\n return () => {\n if (counterparts.has(params.key)) {\n const { rect } = counterparts.get(params.key);\n counterparts.delete(params.key);\n return crossfade(rect, node, params);\n }\n // if the node is disappearing altogether\n // (i.e. wasn't claimed by the other list)\n // then we need to supply an outro\n items.delete(params.key);\n return fallback && fallback(node, params, intro);\n };\n };\n }\n return [\n transition(to_send, to_receive, false),\n transition(to_receive, to_send, true)\n ];\n}\n\nexport { blur, crossfade, draw, fade, fly, scale, slide };\n","\n\n\n\n\n \n\n\n{#if visible}\n visible = false }>\n \n

    This Is A Modal

    \n

    Designers love modals. Click anywhere to close this.

    \n
    \n
    \n{/if}\n\n\n\n","\n\n\n\n\n

    Basic Tabs

    \n\n \n Tab1\n Tab2\n Tab3\n \n\n

    Interactive Demo

    \n \n {#each panels as panel, i}\n activate(i) }>{panel.title}\n {/each}\n \n \n {#each panels as panel, i}\n \n

    { panel.title }

    \n

    \n Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod\n tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim\n veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea\n commodo consequat. Duis aute irure dolor in reprehenderit in voluptate\n velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat\n cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est\n laborum.\n

    \n
    \n {/each}\n
    \n
    \n\n\n","\n\n\n\n \n December\n SunMonTueWedThuFriSat\n {#each make_dates() as date}\n {date}\n {/each}\n \n\n\n\n","import Home from \"./Home.svelte\";\nimport Demos from \"./demos/index.svelte\";\nimport About from \"./About.svelte\";\nimport NotFound from \"./NotFound.svelte\";\nimport Google from \"./demos/Google.svelte\";\nimport Twitter from \"./demos/Twitter.svelte\";\nimport Youtube from \"./demos/Youtube.svelte\";\nimport Instagram from \"./demos/Instagram.svelte\";\nimport Pinterest from \"./demos/Pinterest.svelte\";\nimport XorAcademy from \"./demos/XorAcademy.svelte\";\nimport XorAcademyWatch from \"./demos/XorAcademyWatch.svelte\";\nimport Login from \"./demos/Login.svelte\";\nimport Tiles from \"./demos/Tiles.svelte\";\nimport Cards from \"./demos/Cards.svelte\";\nimport Panels from \"./demos/Panels.svelte\";\nimport Modal from \"./demos/Modal.svelte\";\nimport NavBar from \"./demos/NavBar.svelte\";\nimport Tabs from \"./demos/Tabs.svelte\";\nimport Calendar from \"./demos/Calendar.svelte\";\nimport GridOverGraphic from \"./demos/GridOverGraphic.svelte\";\n\nexport default {\n \"/\": Home,\n \"/about\": About,\n \"/demos\": Demos,\n \"/demos/login\": Login,\n \"/demos/tiles\": Tiles,\n \"/demos/modal\": Modal,\n \"/demos/cards\": Cards,\n \"/demos/panels\": Panels,\n \"/demos/google\": Google,\n \"/demos/twitter\": Twitter,\n \"/demos/youtube\": Youtube,\n \"/demos/instagram\": Instagram,\n \"/demos/pinterest\": Pinterest,\n \"/demos/navbar\": NavBar,\n \"/demos/tabs\": Tabs,\n \"/demos/calendar\": Calendar,\n \"/demos/gridovergraphic\": GridOverGraphic,\n \"/demos/xoracademy\": XorAcademy,\n \"/demos/xoracademy/watch\": XorAcademyWatch,\n \"*\": NotFound,\n}\n","\n\n{#if theme == 'dark'}\n toggle() }>\n \n \n{:else}\n toggle() }>\n \n \n{/if}\n\n","\n\n\n\n
    \n \n
    \n\n
    \n \n
    \n\n
    \n\n","import App from './App.svelte';\n\nconst app = new App({\n\ttarget: document.body,\n\tprops: {\n\t\tname: 'world'\n\t}\n});\n\nexport default app;"],"names":["wrap","_wrap","simpleSvgPlaceholder","global","Prism","linear","Login","Tiles","Cards","Panels","Google","Twitter","Youtube","Instagram","Pinterest","NavBar","Tabs","Calendar","GridOverGraphic"],"mappings":"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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;SCPjC,KAAK,IAAI,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+BCwGb,GAAI;;;;oCAAT,MAAI;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;SAvGF,IAAI,IAAI,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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"} \ No newline at end of file +{"version":3,"file":"bundle.js","sources":["../../node_modules/svelte/internal/index.mjs","../../node_modules/svelte/store/index.mjs","../../node_modules/svelte-spa-router/Router.svelte","../../node_modules/regexparam/dist/regexparam.mjs","../../src/components/Icon.svelte","../../src/thumbs/Instagram.svelte","../../node_modules/@cloudfour/simple-svg-placeholder/index.js","../../lib/imgholder.js","../../src/thumbs/Tiles.svelte","../../node_modules/prismjs/prism.js","../../node_modules/prism-svelte/index.js","../../src/components/CodeView.svelte","../../src/thumbs/Cards.svelte","../../src/thumbs/Tabs.svelte","../../src/thumbs/Calendar.svelte","../../src/demos/index.svelte","../../src/demos/Google.svelte","../../src/demos/Twitter.svelte","../../src/demos/Youtube.svelte","../../src/demos/Instagram.svelte","../../src/demos/Pinterest.svelte","../../src/demos/XorAcademy.svelte","../../src/demos/XorAcademyWatch.svelte","../../src/demos/Tiles.svelte","../../src/demos/Cards.svelte","../../src/demos/Modal.svelte","../../src/demos/Tabs.svelte","../../src/demos/Calendar.svelte","../../src/routes.js","../../src/components/Darkmode.svelte","../../src/App.svelte","../../src/main.js"],"sourcesContent":["function noop() { }\nconst identity = x => x;\nfunction assign(tar, src) {\n // @ts-ignore\n for (const k in src)\n tar[k] = src[k];\n return tar;\n}\nfunction is_promise(value) {\n return value && typeof value === 'object' && typeof value.then === 'function';\n}\nfunction add_location(element, file, line, column, char) {\n element.__svelte_meta = {\n loc: { file, line, column, char }\n };\n}\nfunction run(fn) {\n return fn();\n}\nfunction blank_object() {\n return Object.create(null);\n}\nfunction run_all(fns) {\n fns.forEach(run);\n}\nfunction is_function(thing) {\n return typeof thing === 'function';\n}\nfunction safe_not_equal(a, b) {\n return a != a ? b == b : a !== b || ((a && typeof a === 'object') || typeof a === 'function');\n}\nfunction not_equal(a, b) {\n return a != a ? b == b : a !== b;\n}\nfunction is_empty(obj) {\n return Object.keys(obj).length === 0;\n}\nfunction validate_store(store, name) {\n if (store != null && typeof store.subscribe !== 'function') {\n throw new Error(`'${name}' is not a store with a 'subscribe' method`);\n }\n}\nfunction subscribe(store, ...callbacks) {\n if (store == null) {\n return noop;\n }\n const unsub = store.subscribe(...callbacks);\n return unsub.unsubscribe ? () => unsub.unsubscribe() : unsub;\n}\nfunction get_store_value(store) {\n let value;\n subscribe(store, _ => value = _)();\n return value;\n}\nfunction component_subscribe(component, store, callback) {\n component.$$.on_destroy.push(subscribe(store, callback));\n}\nfunction create_slot(definition, ctx, $$scope, fn) {\n if (definition) {\n const slot_ctx = get_slot_context(definition, ctx, $$scope, fn);\n return definition[0](slot_ctx);\n }\n}\nfunction get_slot_context(definition, ctx, $$scope, fn) {\n return definition[1] && fn\n ? assign($$scope.ctx.slice(), definition[1](fn(ctx)))\n : $$scope.ctx;\n}\nfunction get_slot_changes(definition, $$scope, dirty, fn) {\n if (definition[2] && fn) {\n const lets = definition[2](fn(dirty));\n if ($$scope.dirty === undefined) {\n return lets;\n }\n if (typeof lets === 'object') {\n const merged = [];\n const len = Math.max($$scope.dirty.length, lets.length);\n for (let i = 0; i < len; i += 1) {\n merged[i] = $$scope.dirty[i] | lets[i];\n }\n return merged;\n }\n return $$scope.dirty | lets;\n }\n return $$scope.dirty;\n}\nfunction update_slot(slot, slot_definition, ctx, $$scope, dirty, get_slot_changes_fn, get_slot_context_fn) {\n const slot_changes = get_slot_changes(slot_definition, $$scope, dirty, get_slot_changes_fn);\n if (slot_changes) {\n const slot_context = get_slot_context(slot_definition, ctx, $$scope, get_slot_context_fn);\n slot.p(slot_context, slot_changes);\n }\n}\nfunction update_slot_spread(slot, slot_definition, ctx, $$scope, dirty, get_slot_changes_fn, get_slot_spread_changes_fn, get_slot_context_fn) {\n const slot_changes = get_slot_spread_changes_fn(dirty) | get_slot_changes(slot_definition, $$scope, dirty, get_slot_changes_fn);\n if (slot_changes) {\n const slot_context = get_slot_context(slot_definition, ctx, $$scope, get_slot_context_fn);\n slot.p(slot_context, slot_changes);\n }\n}\nfunction exclude_internal_props(props) {\n const result = {};\n for (const k in props)\n if (k[0] !== '$')\n result[k] = props[k];\n return result;\n}\nfunction compute_rest_props(props, keys) {\n const rest = {};\n keys = new Set(keys);\n for (const k in props)\n if (!keys.has(k) && k[0] !== '$')\n rest[k] = props[k];\n return rest;\n}\nfunction compute_slots(slots) {\n const result = {};\n for (const key in slots) {\n result[key] = true;\n }\n return result;\n}\nfunction once(fn) {\n let ran = false;\n return function (...args) {\n if (ran)\n return;\n ran = true;\n fn.call(this, ...args);\n };\n}\nfunction null_to_empty(value) {\n return value == null ? '' : value;\n}\nfunction set_store_value(store, ret, value = ret) {\n store.set(value);\n return ret;\n}\nconst has_prop = (obj, prop) => Object.prototype.hasOwnProperty.call(obj, prop);\nfunction action_destroyer(action_result) {\n return action_result && is_function(action_result.destroy) ? action_result.destroy : noop;\n}\n\nconst is_client = typeof window !== 'undefined';\nlet now = is_client\n ? () => window.performance.now()\n : () => Date.now();\nlet raf = is_client ? cb => requestAnimationFrame(cb) : noop;\n// used internally for testing\nfunction set_now(fn) {\n now = fn;\n}\nfunction set_raf(fn) {\n raf = fn;\n}\n\nconst tasks = new Set();\nfunction run_tasks(now) {\n tasks.forEach(task => {\n if (!task.c(now)) {\n tasks.delete(task);\n task.f();\n }\n });\n if (tasks.size !== 0)\n raf(run_tasks);\n}\n/**\n * For testing purposes only!\n */\nfunction clear_loops() {\n tasks.clear();\n}\n/**\n * Creates a new task that runs on each raf frame\n * until it returns a falsy value or is aborted\n */\nfunction loop(callback) {\n let task;\n if (tasks.size === 0)\n raf(run_tasks);\n return {\n promise: new Promise(fulfill => {\n tasks.add(task = { c: callback, f: fulfill });\n }),\n abort() {\n tasks.delete(task);\n }\n };\n}\n\nfunction append(target, node) {\n target.appendChild(node);\n}\nfunction insert(target, node, anchor) {\n target.insertBefore(node, anchor || null);\n}\nfunction detach(node) {\n node.parentNode.removeChild(node);\n}\nfunction destroy_each(iterations, detaching) {\n for (let i = 0; i < iterations.length; i += 1) {\n if (iterations[i])\n iterations[i].d(detaching);\n }\n}\nfunction element(name) {\n return document.createElement(name);\n}\nfunction element_is(name, is) {\n return document.createElement(name, { is });\n}\nfunction object_without_properties(obj, exclude) {\n const target = {};\n for (const k in obj) {\n if (has_prop(obj, k)\n // @ts-ignore\n && exclude.indexOf(k) === -1) {\n // @ts-ignore\n target[k] = obj[k];\n }\n }\n return target;\n}\nfunction svg_element(name) {\n return document.createElementNS('http://www.w3.org/2000/svg', name);\n}\nfunction text(data) {\n return document.createTextNode(data);\n}\nfunction space() {\n return text(' ');\n}\nfunction empty() {\n return text('');\n}\nfunction listen(node, event, handler, options) {\n node.addEventListener(event, handler, options);\n return () => node.removeEventListener(event, handler, options);\n}\nfunction prevent_default(fn) {\n return function (event) {\n event.preventDefault();\n // @ts-ignore\n return fn.call(this, event);\n };\n}\nfunction stop_propagation(fn) {\n return function (event) {\n event.stopPropagation();\n // @ts-ignore\n return fn.call(this, event);\n };\n}\nfunction self(fn) {\n return function (event) {\n // @ts-ignore\n if (event.target === this)\n fn.call(this, event);\n };\n}\nfunction attr(node, attribute, value) {\n if (value == null)\n node.removeAttribute(attribute);\n else if (node.getAttribute(attribute) !== value)\n node.setAttribute(attribute, value);\n}\nfunction set_attributes(node, attributes) {\n // @ts-ignore\n const descriptors = Object.getOwnPropertyDescriptors(node.__proto__);\n for (const key in attributes) {\n if (attributes[key] == null) {\n node.removeAttribute(key);\n }\n else if (key === 'style') {\n node.style.cssText = attributes[key];\n }\n else if (key === '__value') {\n node.value = node[key] = attributes[key];\n }\n else if (descriptors[key] && descriptors[key].set) {\n node[key] = attributes[key];\n }\n else {\n attr(node, key, attributes[key]);\n }\n }\n}\nfunction set_svg_attributes(node, attributes) {\n for (const key in attributes) {\n attr(node, key, attributes[key]);\n }\n}\nfunction set_custom_element_data(node, prop, value) {\n if (prop in node) {\n node[prop] = value;\n }\n else {\n attr(node, prop, value);\n }\n}\nfunction xlink_attr(node, attribute, value) {\n node.setAttributeNS('http://www.w3.org/1999/xlink', attribute, value);\n}\nfunction get_binding_group_value(group, __value, checked) {\n const value = new Set();\n for (let i = 0; i < group.length; i += 1) {\n if (group[i].checked)\n value.add(group[i].__value);\n }\n if (!checked) {\n value.delete(__value);\n }\n return Array.from(value);\n}\nfunction to_number(value) {\n return value === '' ? null : +value;\n}\nfunction time_ranges_to_array(ranges) {\n const array = [];\n for (let i = 0; i < ranges.length; i += 1) {\n array.push({ start: ranges.start(i), end: ranges.end(i) });\n }\n return array;\n}\nfunction children(element) {\n return Array.from(element.childNodes);\n}\nfunction claim_element(nodes, name, attributes, svg) {\n for (let i = 0; i < nodes.length; i += 1) {\n const node = nodes[i];\n if (node.nodeName === name) {\n let j = 0;\n const remove = [];\n while (j < node.attributes.length) {\n const attribute = node.attributes[j++];\n if (!attributes[attribute.name]) {\n remove.push(attribute.name);\n }\n }\n for (let k = 0; k < remove.length; k++) {\n node.removeAttribute(remove[k]);\n }\n return nodes.splice(i, 1)[0];\n }\n }\n return svg ? svg_element(name) : element(name);\n}\nfunction claim_text(nodes, data) {\n for (let i = 0; i < nodes.length; i += 1) {\n const node = nodes[i];\n if (node.nodeType === 3) {\n node.data = '' + data;\n return nodes.splice(i, 1)[0];\n }\n }\n return text(data);\n}\nfunction claim_space(nodes) {\n return claim_text(nodes, ' ');\n}\nfunction set_data(text, data) {\n data = '' + data;\n if (text.wholeText !== data)\n text.data = data;\n}\nfunction set_input_value(input, value) {\n input.value = value == null ? '' : value;\n}\nfunction set_input_type(input, type) {\n try {\n input.type = type;\n }\n catch (e) {\n // do nothing\n }\n}\nfunction set_style(node, key, value, important) {\n node.style.setProperty(key, value, important ? 'important' : '');\n}\nfunction select_option(select, value) {\n for (let i = 0; i < select.options.length; i += 1) {\n const option = select.options[i];\n if (option.__value === value) {\n option.selected = true;\n return;\n }\n }\n}\nfunction select_options(select, value) {\n for (let i = 0; i < select.options.length; i += 1) {\n const option = select.options[i];\n option.selected = ~value.indexOf(option.__value);\n }\n}\nfunction select_value(select) {\n const selected_option = select.querySelector(':checked') || select.options[0];\n return selected_option && selected_option.__value;\n}\nfunction select_multiple_value(select) {\n return [].map.call(select.querySelectorAll(':checked'), option => option.__value);\n}\n// unfortunately this can't be a constant as that wouldn't be tree-shakeable\n// so we cache the result instead\nlet crossorigin;\nfunction is_crossorigin() {\n if (crossorigin === undefined) {\n crossorigin = false;\n try {\n if (typeof window !== 'undefined' && window.parent) {\n void window.parent.document;\n }\n }\n catch (error) {\n crossorigin = true;\n }\n }\n return crossorigin;\n}\nfunction add_resize_listener(node, fn) {\n const computed_style = getComputedStyle(node);\n const z_index = (parseInt(computed_style.zIndex) || 0) - 1;\n if (computed_style.position === 'static') {\n node.style.position = 'relative';\n }\n const iframe = element('iframe');\n iframe.setAttribute('style', 'display: block; position: absolute; top: 0; left: 0; width: 100%; height: 100%; ' +\n `overflow: hidden; border: 0; opacity: 0; pointer-events: none; z-index: ${z_index};`);\n iframe.setAttribute('aria-hidden', 'true');\n iframe.tabIndex = -1;\n const crossorigin = is_crossorigin();\n let unsubscribe;\n if (crossorigin) {\n iframe.src = \"data:text/html,\";\n unsubscribe = listen(window, 'message', (event) => {\n if (event.source === iframe.contentWindow)\n fn();\n });\n }\n else {\n iframe.src = 'about:blank';\n iframe.onload = () => {\n unsubscribe = listen(iframe.contentWindow, 'resize', fn);\n };\n }\n append(node, iframe);\n return () => {\n if (crossorigin) {\n unsubscribe();\n }\n else if (unsubscribe && iframe.contentWindow) {\n unsubscribe();\n }\n detach(iframe);\n };\n}\nfunction toggle_class(element, name, toggle) {\n element.classList[toggle ? 'add' : 'remove'](name);\n}\nfunction custom_event(type, detail) {\n const e = document.createEvent('CustomEvent');\n e.initCustomEvent(type, false, false, detail);\n return e;\n}\nfunction query_selector_all(selector, parent = document.body) {\n return Array.from(parent.querySelectorAll(selector));\n}\nclass HtmlTag {\n constructor(anchor = null) {\n this.a = anchor;\n this.e = this.n = null;\n }\n m(html, target, anchor = null) {\n if (!this.e) {\n this.e = element(target.nodeName);\n this.t = target;\n this.h(html);\n }\n this.i(anchor);\n }\n h(html) {\n this.e.innerHTML = html;\n this.n = Array.from(this.e.childNodes);\n }\n i(anchor) {\n for (let i = 0; i < this.n.length; i += 1) {\n insert(this.t, this.n[i], anchor);\n }\n }\n p(html) {\n this.d();\n this.h(html);\n this.i(this.a);\n }\n d() {\n this.n.forEach(detach);\n }\n}\nfunction attribute_to_object(attributes) {\n const result = {};\n for (const attribute of attributes) {\n result[attribute.name] = attribute.value;\n }\n return result;\n}\nfunction get_custom_elements_slots(element) {\n const result = {};\n element.childNodes.forEach((node) => {\n result[node.slot || 'default'] = true;\n });\n return result;\n}\n\nconst active_docs = new Set();\nlet active = 0;\n// https://github.com/darkskyapp/string-hash/blob/master/index.js\nfunction hash(str) {\n let hash = 5381;\n let i = str.length;\n while (i--)\n hash = ((hash << 5) - hash) ^ str.charCodeAt(i);\n return hash >>> 0;\n}\nfunction create_rule(node, a, b, duration, delay, ease, fn, uid = 0) {\n const step = 16.666 / duration;\n let keyframes = '{\\n';\n for (let p = 0; p <= 1; p += step) {\n const t = a + (b - a) * ease(p);\n keyframes += p * 100 + `%{${fn(t, 1 - t)}}\\n`;\n }\n const rule = keyframes + `100% {${fn(b, 1 - b)}}\\n}`;\n const name = `__svelte_${hash(rule)}_${uid}`;\n const doc = node.ownerDocument;\n active_docs.add(doc);\n const stylesheet = doc.__svelte_stylesheet || (doc.__svelte_stylesheet = doc.head.appendChild(element('style')).sheet);\n const current_rules = doc.__svelte_rules || (doc.__svelte_rules = {});\n if (!current_rules[name]) {\n current_rules[name] = true;\n stylesheet.insertRule(`@keyframes ${name} ${rule}`, stylesheet.cssRules.length);\n }\n const animation = node.style.animation || '';\n node.style.animation = `${animation ? `${animation}, ` : ''}${name} ${duration}ms linear ${delay}ms 1 both`;\n active += 1;\n return name;\n}\nfunction delete_rule(node, name) {\n const previous = (node.style.animation || '').split(', ');\n const next = previous.filter(name\n ? anim => anim.indexOf(name) < 0 // remove specific animation\n : anim => anim.indexOf('__svelte') === -1 // remove all Svelte animations\n );\n const deleted = previous.length - next.length;\n if (deleted) {\n node.style.animation = next.join(', ');\n active -= deleted;\n if (!active)\n clear_rules();\n }\n}\nfunction clear_rules() {\n raf(() => {\n if (active)\n return;\n active_docs.forEach(doc => {\n const stylesheet = doc.__svelte_stylesheet;\n let i = stylesheet.cssRules.length;\n while (i--)\n stylesheet.deleteRule(i);\n doc.__svelte_rules = {};\n });\n active_docs.clear();\n });\n}\n\nfunction create_animation(node, from, fn, params) {\n if (!from)\n return noop;\n const to = node.getBoundingClientRect();\n if (from.left === to.left && from.right === to.right && from.top === to.top && from.bottom === to.bottom)\n return noop;\n const { delay = 0, duration = 300, easing = identity, \n // @ts-ignore todo: should this be separated from destructuring? Or start/end added to public api and documentation?\n start: start_time = now() + delay, \n // @ts-ignore todo:\n end = start_time + duration, tick = noop, css } = fn(node, { from, to }, params);\n let running = true;\n let started = false;\n let name;\n function start() {\n if (css) {\n name = create_rule(node, 0, 1, duration, delay, easing, css);\n }\n if (!delay) {\n started = true;\n }\n }\n function stop() {\n if (css)\n delete_rule(node, name);\n running = false;\n }\n loop(now => {\n if (!started && now >= start_time) {\n started = true;\n }\n if (started && now >= end) {\n tick(1, 0);\n stop();\n }\n if (!running) {\n return false;\n }\n if (started) {\n const p = now - start_time;\n const t = 0 + 1 * easing(p / duration);\n tick(t, 1 - t);\n }\n return true;\n });\n start();\n tick(0, 1);\n return stop;\n}\nfunction fix_position(node) {\n const style = getComputedStyle(node);\n if (style.position !== 'absolute' && style.position !== 'fixed') {\n const { width, height } = style;\n const a = node.getBoundingClientRect();\n node.style.position = 'absolute';\n node.style.width = width;\n node.style.height = height;\n add_transform(node, a);\n }\n}\nfunction add_transform(node, a) {\n const b = node.getBoundingClientRect();\n if (a.left !== b.left || a.top !== b.top) {\n const style = getComputedStyle(node);\n const transform = style.transform === 'none' ? '' : style.transform;\n node.style.transform = `${transform} translate(${a.left - b.left}px, ${a.top - b.top}px)`;\n }\n}\n\nlet current_component;\nfunction set_current_component(component) {\n current_component = component;\n}\nfunction get_current_component() {\n if (!current_component)\n throw new Error('Function called outside component initialization');\n return current_component;\n}\nfunction beforeUpdate(fn) {\n get_current_component().$$.before_update.push(fn);\n}\nfunction onMount(fn) {\n get_current_component().$$.on_mount.push(fn);\n}\nfunction afterUpdate(fn) {\n get_current_component().$$.after_update.push(fn);\n}\nfunction onDestroy(fn) {\n get_current_component().$$.on_destroy.push(fn);\n}\nfunction createEventDispatcher() {\n const component = get_current_component();\n return (type, detail) => {\n const callbacks = component.$$.callbacks[type];\n if (callbacks) {\n // TODO are there situations where events could be dispatched\n // in a server (non-DOM) environment?\n const event = custom_event(type, detail);\n callbacks.slice().forEach(fn => {\n fn.call(component, event);\n });\n }\n };\n}\nfunction setContext(key, context) {\n get_current_component().$$.context.set(key, context);\n}\nfunction getContext(key) {\n return get_current_component().$$.context.get(key);\n}\nfunction hasContext(key) {\n return get_current_component().$$.context.has(key);\n}\n// TODO figure out if we still want to support\n// shorthand events, or if we want to implement\n// a real bubbling mechanism\nfunction bubble(component, event) {\n const callbacks = component.$$.callbacks[event.type];\n if (callbacks) {\n callbacks.slice().forEach(fn => fn(event));\n }\n}\n\nconst dirty_components = [];\nconst intros = { enabled: false };\nconst binding_callbacks = [];\nconst render_callbacks = [];\nconst flush_callbacks = [];\nconst resolved_promise = Promise.resolve();\nlet update_scheduled = false;\nfunction schedule_update() {\n if (!update_scheduled) {\n update_scheduled = true;\n resolved_promise.then(flush);\n }\n}\nfunction tick() {\n schedule_update();\n return resolved_promise;\n}\nfunction add_render_callback(fn) {\n render_callbacks.push(fn);\n}\nfunction add_flush_callback(fn) {\n flush_callbacks.push(fn);\n}\nlet flushing = false;\nconst seen_callbacks = new Set();\nfunction flush() {\n if (flushing)\n return;\n flushing = true;\n do {\n // first, call beforeUpdate functions\n // and update components\n for (let i = 0; i < dirty_components.length; i += 1) {\n const component = dirty_components[i];\n set_current_component(component);\n update(component.$$);\n }\n set_current_component(null);\n dirty_components.length = 0;\n while (binding_callbacks.length)\n binding_callbacks.pop()();\n // then, once components are updated, call\n // afterUpdate functions. This may cause\n // subsequent updates...\n for (let i = 0; i < render_callbacks.length; i += 1) {\n const callback = render_callbacks[i];\n if (!seen_callbacks.has(callback)) {\n // ...so guard against infinite loops\n seen_callbacks.add(callback);\n callback();\n }\n }\n render_callbacks.length = 0;\n } while (dirty_components.length);\n while (flush_callbacks.length) {\n flush_callbacks.pop()();\n }\n update_scheduled = false;\n flushing = false;\n seen_callbacks.clear();\n}\nfunction update($$) {\n if ($$.fragment !== null) {\n $$.update();\n run_all($$.before_update);\n const dirty = $$.dirty;\n $$.dirty = [-1];\n $$.fragment && $$.fragment.p($$.ctx, dirty);\n $$.after_update.forEach(add_render_callback);\n }\n}\n\nlet promise;\nfunction wait() {\n if (!promise) {\n promise = Promise.resolve();\n promise.then(() => {\n promise = null;\n });\n }\n return promise;\n}\nfunction dispatch(node, direction, kind) {\n node.dispatchEvent(custom_event(`${direction ? 'intro' : 'outro'}${kind}`));\n}\nconst outroing = new Set();\nlet outros;\nfunction group_outros() {\n outros = {\n r: 0,\n c: [],\n p: outros // parent group\n };\n}\nfunction check_outros() {\n if (!outros.r) {\n run_all(outros.c);\n }\n outros = outros.p;\n}\nfunction transition_in(block, local) {\n if (block && block.i) {\n outroing.delete(block);\n block.i(local);\n }\n}\nfunction transition_out(block, local, detach, callback) {\n if (block && block.o) {\n if (outroing.has(block))\n return;\n outroing.add(block);\n outros.c.push(() => {\n outroing.delete(block);\n if (callback) {\n if (detach)\n block.d(1);\n callback();\n }\n });\n block.o(local);\n }\n}\nconst null_transition = { duration: 0 };\nfunction create_in_transition(node, fn, params) {\n let config = fn(node, params);\n let running = false;\n let animation_name;\n let task;\n let uid = 0;\n function cleanup() {\n if (animation_name)\n delete_rule(node, animation_name);\n }\n function go() {\n const { delay = 0, duration = 300, easing = identity, tick = noop, css } = config || null_transition;\n if (css)\n animation_name = create_rule(node, 0, 1, duration, delay, easing, css, uid++);\n tick(0, 1);\n const start_time = now() + delay;\n const end_time = start_time + duration;\n if (task)\n task.abort();\n running = true;\n add_render_callback(() => dispatch(node, true, 'start'));\n task = loop(now => {\n if (running) {\n if (now >= end_time) {\n tick(1, 0);\n dispatch(node, true, 'end');\n cleanup();\n return running = false;\n }\n if (now >= start_time) {\n const t = easing((now - start_time) / duration);\n tick(t, 1 - t);\n }\n }\n return running;\n });\n }\n let started = false;\n return {\n start() {\n if (started)\n return;\n delete_rule(node);\n if (is_function(config)) {\n config = config();\n wait().then(go);\n }\n else {\n go();\n }\n },\n invalidate() {\n started = false;\n },\n end() {\n if (running) {\n cleanup();\n running = false;\n }\n }\n };\n}\nfunction create_out_transition(node, fn, params) {\n let config = fn(node, params);\n let running = true;\n let animation_name;\n const group = outros;\n group.r += 1;\n function go() {\n const { delay = 0, duration = 300, easing = identity, tick = noop, css } = config || null_transition;\n if (css)\n animation_name = create_rule(node, 1, 0, duration, delay, easing, css);\n const start_time = now() + delay;\n const end_time = start_time + duration;\n add_render_callback(() => dispatch(node, false, 'start'));\n loop(now => {\n if (running) {\n if (now >= end_time) {\n tick(0, 1);\n dispatch(node, false, 'end');\n if (!--group.r) {\n // this will result in `end()` being called,\n // so we don't need to clean up here\n run_all(group.c);\n }\n return false;\n }\n if (now >= start_time) {\n const t = easing((now - start_time) / duration);\n tick(1 - t, t);\n }\n }\n return running;\n });\n }\n if (is_function(config)) {\n wait().then(() => {\n // @ts-ignore\n config = config();\n go();\n });\n }\n else {\n go();\n }\n return {\n end(reset) {\n if (reset && config.tick) {\n config.tick(1, 0);\n }\n if (running) {\n if (animation_name)\n delete_rule(node, animation_name);\n running = false;\n }\n }\n };\n}\nfunction create_bidirectional_transition(node, fn, params, intro) {\n let config = fn(node, params);\n let t = intro ? 0 : 1;\n let running_program = null;\n let pending_program = null;\n let animation_name = null;\n function clear_animation() {\n if (animation_name)\n delete_rule(node, animation_name);\n }\n function init(program, duration) {\n const d = program.b - t;\n duration *= Math.abs(d);\n return {\n a: t,\n b: program.b,\n d,\n duration,\n start: program.start,\n end: program.start + duration,\n group: program.group\n };\n }\n function go(b) {\n const { delay = 0, duration = 300, easing = identity, tick = noop, css } = config || null_transition;\n const program = {\n start: now() + delay,\n b\n };\n if (!b) {\n // @ts-ignore todo: improve typings\n program.group = outros;\n outros.r += 1;\n }\n if (running_program || pending_program) {\n pending_program = program;\n }\n else {\n // if this is an intro, and there's a delay, we need to do\n // an initial tick and/or apply CSS animation immediately\n if (css) {\n clear_animation();\n animation_name = create_rule(node, t, b, duration, delay, easing, css);\n }\n if (b)\n tick(0, 1);\n running_program = init(program, duration);\n add_render_callback(() => dispatch(node, b, 'start'));\n loop(now => {\n if (pending_program && now > pending_program.start) {\n running_program = init(pending_program, duration);\n pending_program = null;\n dispatch(node, running_program.b, 'start');\n if (css) {\n clear_animation();\n animation_name = create_rule(node, t, running_program.b, running_program.duration, 0, easing, config.css);\n }\n }\n if (running_program) {\n if (now >= running_program.end) {\n tick(t = running_program.b, 1 - t);\n dispatch(node, running_program.b, 'end');\n if (!pending_program) {\n // we're done\n if (running_program.b) {\n // intro — we can tidy up immediately\n clear_animation();\n }\n else {\n // outro — needs to be coordinated\n if (!--running_program.group.r)\n run_all(running_program.group.c);\n }\n }\n running_program = null;\n }\n else if (now >= running_program.start) {\n const p = now - running_program.start;\n t = running_program.a + running_program.d * easing(p / running_program.duration);\n tick(t, 1 - t);\n }\n }\n return !!(running_program || pending_program);\n });\n }\n }\n return {\n run(b) {\n if (is_function(config)) {\n wait().then(() => {\n // @ts-ignore\n config = config();\n go(b);\n });\n }\n else {\n go(b);\n }\n },\n end() {\n clear_animation();\n running_program = pending_program = null;\n }\n };\n}\n\nfunction handle_promise(promise, info) {\n const token = info.token = {};\n function update(type, index, key, value) {\n if (info.token !== token)\n return;\n info.resolved = value;\n let child_ctx = info.ctx;\n if (key !== undefined) {\n child_ctx = child_ctx.slice();\n child_ctx[key] = value;\n }\n const block = type && (info.current = type)(child_ctx);\n let needs_flush = false;\n if (info.block) {\n if (info.blocks) {\n info.blocks.forEach((block, i) => {\n if (i !== index && block) {\n group_outros();\n transition_out(block, 1, 1, () => {\n info.blocks[i] = null;\n });\n check_outros();\n }\n });\n }\n else {\n info.block.d(1);\n }\n block.c();\n transition_in(block, 1);\n block.m(info.mount(), info.anchor);\n needs_flush = true;\n }\n info.block = block;\n if (info.blocks)\n info.blocks[index] = block;\n if (needs_flush) {\n flush();\n }\n }\n if (is_promise(promise)) {\n const current_component = get_current_component();\n promise.then(value => {\n set_current_component(current_component);\n update(info.then, 1, info.value, value);\n set_current_component(null);\n }, error => {\n set_current_component(current_component);\n update(info.catch, 2, info.error, error);\n set_current_component(null);\n if (!info.hasCatch) {\n throw error;\n }\n });\n // if we previously had a then/catch block, destroy it\n if (info.current !== info.pending) {\n update(info.pending, 0);\n return true;\n }\n }\n else {\n if (info.current !== info.then) {\n update(info.then, 1, info.value, promise);\n return true;\n }\n info.resolved = promise;\n }\n}\n\nconst globals = (typeof window !== 'undefined'\n ? window\n : typeof globalThis !== 'undefined'\n ? globalThis\n : global);\n\nfunction destroy_block(block, lookup) {\n block.d(1);\n lookup.delete(block.key);\n}\nfunction outro_and_destroy_block(block, lookup) {\n transition_out(block, 1, 1, () => {\n lookup.delete(block.key);\n });\n}\nfunction fix_and_destroy_block(block, lookup) {\n block.f();\n destroy_block(block, lookup);\n}\nfunction fix_and_outro_and_destroy_block(block, lookup) {\n block.f();\n outro_and_destroy_block(block, lookup);\n}\nfunction update_keyed_each(old_blocks, dirty, get_key, dynamic, ctx, list, lookup, node, destroy, create_each_block, next, get_context) {\n let o = old_blocks.length;\n let n = list.length;\n let i = o;\n const old_indexes = {};\n while (i--)\n old_indexes[old_blocks[i].key] = i;\n const new_blocks = [];\n const new_lookup = new Map();\n const deltas = new Map();\n i = n;\n while (i--) {\n const child_ctx = get_context(ctx, list, i);\n const key = get_key(child_ctx);\n let block = lookup.get(key);\n if (!block) {\n block = create_each_block(key, child_ctx);\n block.c();\n }\n else if (dynamic) {\n block.p(child_ctx, dirty);\n }\n new_lookup.set(key, new_blocks[i] = block);\n if (key in old_indexes)\n deltas.set(key, Math.abs(i - old_indexes[key]));\n }\n const will_move = new Set();\n const did_move = new Set();\n function insert(block) {\n transition_in(block, 1);\n block.m(node, next);\n lookup.set(block.key, block);\n next = block.first;\n n--;\n }\n while (o && n) {\n const new_block = new_blocks[n - 1];\n const old_block = old_blocks[o - 1];\n const new_key = new_block.key;\n const old_key = old_block.key;\n if (new_block === old_block) {\n // do nothing\n next = new_block.first;\n o--;\n n--;\n }\n else if (!new_lookup.has(old_key)) {\n // remove old block\n destroy(old_block, lookup);\n o--;\n }\n else if (!lookup.has(new_key) || will_move.has(new_key)) {\n insert(new_block);\n }\n else if (did_move.has(old_key)) {\n o--;\n }\n else if (deltas.get(new_key) > deltas.get(old_key)) {\n did_move.add(new_key);\n insert(new_block);\n }\n else {\n will_move.add(old_key);\n o--;\n }\n }\n while (o--) {\n const old_block = old_blocks[o];\n if (!new_lookup.has(old_block.key))\n destroy(old_block, lookup);\n }\n while (n)\n insert(new_blocks[n - 1]);\n return new_blocks;\n}\nfunction validate_each_keys(ctx, list, get_context, get_key) {\n const keys = new Set();\n for (let i = 0; i < list.length; i++) {\n const key = get_key(get_context(ctx, list, i));\n if (keys.has(key)) {\n throw new Error('Cannot have duplicate keys in a keyed each');\n }\n keys.add(key);\n }\n}\n\nfunction get_spread_update(levels, updates) {\n const update = {};\n const to_null_out = {};\n const accounted_for = { $$scope: 1 };\n let i = levels.length;\n while (i--) {\n const o = levels[i];\n const n = updates[i];\n if (n) {\n for (const key in o) {\n if (!(key in n))\n to_null_out[key] = 1;\n }\n for (const key in n) {\n if (!accounted_for[key]) {\n update[key] = n[key];\n accounted_for[key] = 1;\n }\n }\n levels[i] = n;\n }\n else {\n for (const key in o) {\n accounted_for[key] = 1;\n }\n }\n }\n for (const key in to_null_out) {\n if (!(key in update))\n update[key] = undefined;\n }\n return update;\n}\nfunction get_spread_object(spread_props) {\n return typeof spread_props === 'object' && spread_props !== null ? spread_props : {};\n}\n\n// source: https://html.spec.whatwg.org/multipage/indices.html\nconst boolean_attributes = new Set([\n 'allowfullscreen',\n 'allowpaymentrequest',\n 'async',\n 'autofocus',\n 'autoplay',\n 'checked',\n 'controls',\n 'default',\n 'defer',\n 'disabled',\n 'formnovalidate',\n 'hidden',\n 'ismap',\n 'loop',\n 'multiple',\n 'muted',\n 'nomodule',\n 'novalidate',\n 'open',\n 'playsinline',\n 'readonly',\n 'required',\n 'reversed',\n 'selected'\n]);\n\nconst invalid_attribute_name_character = /[\\s'\">/=\\u{FDD0}-\\u{FDEF}\\u{FFFE}\\u{FFFF}\\u{1FFFE}\\u{1FFFF}\\u{2FFFE}\\u{2FFFF}\\u{3FFFE}\\u{3FFFF}\\u{4FFFE}\\u{4FFFF}\\u{5FFFE}\\u{5FFFF}\\u{6FFFE}\\u{6FFFF}\\u{7FFFE}\\u{7FFFF}\\u{8FFFE}\\u{8FFFF}\\u{9FFFE}\\u{9FFFF}\\u{AFFFE}\\u{AFFFF}\\u{BFFFE}\\u{BFFFF}\\u{CFFFE}\\u{CFFFF}\\u{DFFFE}\\u{DFFFF}\\u{EFFFE}\\u{EFFFF}\\u{FFFFE}\\u{FFFFF}\\u{10FFFE}\\u{10FFFF}]/u;\n// https://html.spec.whatwg.org/multipage/syntax.html#attributes-2\n// https://infra.spec.whatwg.org/#noncharacter\nfunction spread(args, classes_to_add) {\n const attributes = Object.assign({}, ...args);\n if (classes_to_add) {\n if (attributes.class == null) {\n attributes.class = classes_to_add;\n }\n else {\n attributes.class += ' ' + classes_to_add;\n }\n }\n let str = '';\n Object.keys(attributes).forEach(name => {\n if (invalid_attribute_name_character.test(name))\n return;\n const value = attributes[name];\n if (value === true)\n str += ' ' + name;\n else if (boolean_attributes.has(name.toLowerCase())) {\n if (value)\n str += ' ' + name;\n }\n else if (value != null) {\n str += ` ${name}=\"${String(value).replace(/\"/g, '"').replace(/'/g, ''')}\"`;\n }\n });\n return str;\n}\nconst escaped = {\n '\"': '"',\n \"'\": ''',\n '&': '&',\n '<': '<',\n '>': '>'\n};\nfunction escape(html) {\n return String(html).replace(/[\"'&<>]/g, match => escaped[match]);\n}\nfunction each(items, fn) {\n let str = '';\n for (let i = 0; i < items.length; i += 1) {\n str += fn(items[i], i);\n }\n return str;\n}\nconst missing_component = {\n $$render: () => ''\n};\nfunction validate_component(component, name) {\n if (!component || !component.$$render) {\n if (name === 'svelte:component')\n name += ' this={...}';\n throw new Error(`<${name}> is not a valid SSR component. You may need to review your build config to ensure that dependencies are compiled, rather than imported as pre-compiled modules`);\n }\n return component;\n}\nfunction debug(file, line, column, values) {\n console.log(`{@debug} ${file ? file + ' ' : ''}(${line}:${column})`); // eslint-disable-line no-console\n console.log(values); // eslint-disable-line no-console\n return '';\n}\nlet on_destroy;\nfunction create_ssr_component(fn) {\n function $$render(result, props, bindings, slots) {\n const parent_component = current_component;\n const $$ = {\n on_destroy,\n context: new Map(parent_component ? parent_component.$$.context : []),\n // these will be immediately discarded\n on_mount: [],\n before_update: [],\n after_update: [],\n callbacks: blank_object()\n };\n set_current_component({ $$ });\n const html = fn(result, props, bindings, slots);\n set_current_component(parent_component);\n return html;\n }\n return {\n render: (props = {}, options = {}) => {\n on_destroy = [];\n const result = { title: '', head: '', css: new Set() };\n const html = $$render(result, props, {}, options);\n run_all(on_destroy);\n return {\n html,\n css: {\n code: Array.from(result.css).map(css => css.code).join('\\n'),\n map: null // TODO\n },\n head: result.title + result.head\n };\n },\n $$render\n };\n}\nfunction add_attribute(name, value, boolean) {\n if (value == null || (boolean && !value))\n return '';\n return ` ${name}${value === true ? '' : `=${typeof value === 'string' ? JSON.stringify(escape(value)) : `\"${value}\"`}`}`;\n}\nfunction add_classes(classes) {\n return classes ? ` class=\"${classes}\"` : '';\n}\n\nfunction bind(component, name, callback) {\n const index = component.$$.props[name];\n if (index !== undefined) {\n component.$$.bound[index] = callback;\n callback(component.$$.ctx[index]);\n }\n}\nfunction create_component(block) {\n block && block.c();\n}\nfunction claim_component(block, parent_nodes) {\n block && block.l(parent_nodes);\n}\nfunction mount_component(component, target, anchor) {\n const { fragment, on_mount, on_destroy, after_update } = component.$$;\n fragment && fragment.m(target, anchor);\n // onMount happens before the initial afterUpdate\n add_render_callback(() => {\n const new_on_destroy = on_mount.map(run).filter(is_function);\n if (on_destroy) {\n on_destroy.push(...new_on_destroy);\n }\n else {\n // Edge case - component was destroyed immediately,\n // most likely as a result of a binding initialising\n run_all(new_on_destroy);\n }\n component.$$.on_mount = [];\n });\n after_update.forEach(add_render_callback);\n}\nfunction destroy_component(component, detaching) {\n const $$ = component.$$;\n if ($$.fragment !== null) {\n run_all($$.on_destroy);\n $$.fragment && $$.fragment.d(detaching);\n // TODO null out other refs, including component.$$ (but need to\n // preserve final state?)\n $$.on_destroy = $$.fragment = null;\n $$.ctx = [];\n }\n}\nfunction make_dirty(component, i) {\n if (component.$$.dirty[0] === -1) {\n dirty_components.push(component);\n schedule_update();\n component.$$.dirty.fill(0);\n }\n component.$$.dirty[(i / 31) | 0] |= (1 << (i % 31));\n}\nfunction init(component, options, instance, create_fragment, not_equal, props, dirty = [-1]) {\n const parent_component = current_component;\n set_current_component(component);\n const prop_values = options.props || {};\n const $$ = component.$$ = {\n fragment: null,\n ctx: null,\n // state\n props,\n update: noop,\n not_equal,\n bound: blank_object(),\n // lifecycle\n on_mount: [],\n on_destroy: [],\n before_update: [],\n after_update: [],\n context: new Map(parent_component ? parent_component.$$.context : []),\n // everything else\n callbacks: blank_object(),\n dirty,\n skip_bound: false\n };\n let ready = false;\n $$.ctx = instance\n ? instance(component, prop_values, (i, ret, ...rest) => {\n const value = rest.length ? rest[0] : ret;\n if ($$.ctx && not_equal($$.ctx[i], $$.ctx[i] = value)) {\n if (!$$.skip_bound && $$.bound[i])\n $$.bound[i](value);\n if (ready)\n make_dirty(component, i);\n }\n return ret;\n })\n : [];\n $$.update();\n ready = true;\n run_all($$.before_update);\n // `false` as a special case of no DOM component\n $$.fragment = create_fragment ? create_fragment($$.ctx) : false;\n if (options.target) {\n if (options.hydrate) {\n const nodes = children(options.target);\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n $$.fragment && $$.fragment.l(nodes);\n nodes.forEach(detach);\n }\n else {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n $$.fragment && $$.fragment.c();\n }\n if (options.intro)\n transition_in(component.$$.fragment);\n mount_component(component, options.target, options.anchor);\n flush();\n }\n set_current_component(parent_component);\n}\nlet SvelteElement;\nif (typeof HTMLElement === 'function') {\n SvelteElement = class extends HTMLElement {\n constructor() {\n super();\n this.attachShadow({ mode: 'open' });\n }\n connectedCallback() {\n // @ts-ignore todo: improve typings\n for (const key in this.$$.slotted) {\n // @ts-ignore todo: improve typings\n this.appendChild(this.$$.slotted[key]);\n }\n }\n attributeChangedCallback(attr, _oldValue, newValue) {\n this[attr] = newValue;\n }\n $destroy() {\n destroy_component(this, 1);\n this.$destroy = noop;\n }\n $on(type, callback) {\n // TODO should this delegate to addEventListener?\n const callbacks = (this.$$.callbacks[type] || (this.$$.callbacks[type] = []));\n callbacks.push(callback);\n return () => {\n const index = callbacks.indexOf(callback);\n if (index !== -1)\n callbacks.splice(index, 1);\n };\n }\n $set($$props) {\n if (this.$$set && !is_empty($$props)) {\n this.$$.skip_bound = true;\n this.$$set($$props);\n this.$$.skip_bound = false;\n }\n }\n };\n}\nclass SvelteComponent {\n $destroy() {\n destroy_component(this, 1);\n this.$destroy = noop;\n }\n $on(type, callback) {\n const callbacks = (this.$$.callbacks[type] || (this.$$.callbacks[type] = []));\n callbacks.push(callback);\n return () => {\n const index = callbacks.indexOf(callback);\n if (index !== -1)\n callbacks.splice(index, 1);\n };\n }\n $set($$props) {\n if (this.$$set && !is_empty($$props)) {\n this.$$.skip_bound = true;\n this.$$set($$props);\n this.$$.skip_bound = false;\n }\n }\n}\n\nfunction dispatch_dev(type, detail) {\n document.dispatchEvent(custom_event(type, Object.assign({ version: '3.30.0' }, detail)));\n}\nfunction append_dev(target, node) {\n dispatch_dev('SvelteDOMInsert', { target, node });\n append(target, node);\n}\nfunction insert_dev(target, node, anchor) {\n dispatch_dev('SvelteDOMInsert', { target, node, anchor });\n insert(target, node, anchor);\n}\nfunction detach_dev(node) {\n dispatch_dev('SvelteDOMRemove', { node });\n detach(node);\n}\nfunction detach_between_dev(before, after) {\n while (before.nextSibling && before.nextSibling !== after) {\n detach_dev(before.nextSibling);\n }\n}\nfunction detach_before_dev(after) {\n while (after.previousSibling) {\n detach_dev(after.previousSibling);\n }\n}\nfunction detach_after_dev(before) {\n while (before.nextSibling) {\n detach_dev(before.nextSibling);\n }\n}\nfunction listen_dev(node, event, handler, options, has_prevent_default, has_stop_propagation) {\n const modifiers = options === true ? ['capture'] : options ? Array.from(Object.keys(options)) : [];\n if (has_prevent_default)\n modifiers.push('preventDefault');\n if (has_stop_propagation)\n modifiers.push('stopPropagation');\n dispatch_dev('SvelteDOMAddEventListener', { node, event, handler, modifiers });\n const dispose = listen(node, event, handler, options);\n return () => {\n dispatch_dev('SvelteDOMRemoveEventListener', { node, event, handler, modifiers });\n dispose();\n };\n}\nfunction attr_dev(node, attribute, value) {\n attr(node, attribute, value);\n if (value == null)\n dispatch_dev('SvelteDOMRemoveAttribute', { node, attribute });\n else\n dispatch_dev('SvelteDOMSetAttribute', { node, attribute, value });\n}\nfunction prop_dev(node, property, value) {\n node[property] = value;\n dispatch_dev('SvelteDOMSetProperty', { node, property, value });\n}\nfunction dataset_dev(node, property, value) {\n node.dataset[property] = value;\n dispatch_dev('SvelteDOMSetDataset', { node, property, value });\n}\nfunction set_data_dev(text, data) {\n data = '' + data;\n if (text.wholeText === data)\n return;\n dispatch_dev('SvelteDOMSetData', { node: text, data });\n text.data = data;\n}\nfunction validate_each_argument(arg) {\n if (typeof arg !== 'string' && !(arg && typeof arg === 'object' && 'length' in arg)) {\n let msg = '{#each} only iterates over array-like objects.';\n if (typeof Symbol === 'function' && arg && Symbol.iterator in arg) {\n msg += ' You can use a spread to convert this iterable into an array.';\n }\n throw new Error(msg);\n }\n}\nfunction validate_slots(name, slot, keys) {\n for (const slot_key of Object.keys(slot)) {\n if (!~keys.indexOf(slot_key)) {\n console.warn(`<${name}> received an unexpected slot \"${slot_key}\".`);\n }\n }\n}\nclass SvelteComponentDev extends SvelteComponent {\n constructor(options) {\n if (!options || (!options.target && !options.$$inline)) {\n throw new Error(\"'target' is a required option\");\n }\n super();\n }\n $destroy() {\n super.$destroy();\n this.$destroy = () => {\n console.warn('Component was already destroyed'); // eslint-disable-line no-console\n };\n }\n $capture_state() { }\n $inject_state() { }\n}\nfunction loop_guard(timeout) {\n const start = Date.now();\n return () => {\n if (Date.now() - start > timeout) {\n throw new Error('Infinite loop detected');\n }\n };\n}\n\nexport { HtmlTag, SvelteComponent, SvelteComponentDev, SvelteElement, action_destroyer, add_attribute, add_classes, add_flush_callback, add_location, add_render_callback, add_resize_listener, add_transform, afterUpdate, append, append_dev, assign, attr, attr_dev, attribute_to_object, beforeUpdate, bind, binding_callbacks, blank_object, bubble, check_outros, children, claim_component, claim_element, claim_space, claim_text, clear_loops, component_subscribe, compute_rest_props, compute_slots, createEventDispatcher, create_animation, create_bidirectional_transition, create_component, create_in_transition, create_out_transition, create_slot, create_ssr_component, current_component, custom_event, dataset_dev, debug, destroy_block, destroy_component, destroy_each, detach, detach_after_dev, detach_before_dev, detach_between_dev, detach_dev, dirty_components, dispatch_dev, each, element, element_is, empty, escape, escaped, exclude_internal_props, fix_and_destroy_block, fix_and_outro_and_destroy_block, fix_position, flush, getContext, get_binding_group_value, get_current_component, get_custom_elements_slots, get_slot_changes, get_slot_context, get_spread_object, get_spread_update, get_store_value, globals, group_outros, handle_promise, hasContext, has_prop, identity, init, insert, insert_dev, intros, invalid_attribute_name_character, is_client, is_crossorigin, is_empty, is_function, is_promise, listen, listen_dev, loop, loop_guard, missing_component, mount_component, noop, not_equal, now, null_to_empty, object_without_properties, onDestroy, onMount, once, outro_and_destroy_block, prevent_default, prop_dev, query_selector_all, raf, run, run_all, safe_not_equal, schedule_update, select_multiple_value, select_option, select_options, select_value, self, setContext, set_attributes, set_current_component, set_custom_element_data, set_data, set_data_dev, set_input_type, set_input_value, set_now, set_raf, set_store_value, set_style, set_svg_attributes, space, spread, stop_propagation, subscribe, svg_element, text, tick, time_ranges_to_array, to_number, toggle_class, transition_in, transition_out, update_keyed_each, update_slot, update_slot_spread, validate_component, validate_each_argument, validate_each_keys, validate_slots, validate_store, xlink_attr };\n","import { noop, safe_not_equal, subscribe, run_all, is_function } from '../internal/index.mjs';\nexport { get_store_value as get } from '../internal/index.mjs';\n\nconst subscriber_queue = [];\n/**\n * Creates a `Readable` store that allows reading by subscription.\n * @param value initial value\n * @param {StartStopNotifier}start start and stop notifications for subscriptions\n */\nfunction readable(value, start) {\n return {\n subscribe: writable(value, start).subscribe\n };\n}\n/**\n * Create a `Writable` store that allows both updating and reading by subscription.\n * @param {*=}value initial value\n * @param {StartStopNotifier=}start start and stop notifications for subscriptions\n */\nfunction writable(value, start = noop) {\n let stop;\n const subscribers = [];\n function set(new_value) {\n if (safe_not_equal(value, new_value)) {\n value = new_value;\n if (stop) { // store is ready\n const run_queue = !subscriber_queue.length;\n for (let i = 0; i < subscribers.length; i += 1) {\n const s = subscribers[i];\n s[1]();\n subscriber_queue.push(s, value);\n }\n if (run_queue) {\n for (let i = 0; i < subscriber_queue.length; i += 2) {\n subscriber_queue[i][0](subscriber_queue[i + 1]);\n }\n subscriber_queue.length = 0;\n }\n }\n }\n }\n function update(fn) {\n set(fn(value));\n }\n function subscribe(run, invalidate = noop) {\n const subscriber = [run, invalidate];\n subscribers.push(subscriber);\n if (subscribers.length === 1) {\n stop = start(set) || noop;\n }\n run(value);\n return () => {\n const index = subscribers.indexOf(subscriber);\n if (index !== -1) {\n subscribers.splice(index, 1);\n }\n if (subscribers.length === 0) {\n stop();\n stop = null;\n }\n };\n }\n return { set, update, subscribe };\n}\nfunction derived(stores, fn, initial_value) {\n const single = !Array.isArray(stores);\n const stores_array = single\n ? [stores]\n : stores;\n const auto = fn.length < 2;\n return readable(initial_value, (set) => {\n let inited = false;\n const values = [];\n let pending = 0;\n let cleanup = noop;\n const sync = () => {\n if (pending) {\n return;\n }\n cleanup();\n const result = fn(single ? values[0] : values, set);\n if (auto) {\n set(result);\n }\n else {\n cleanup = is_function(result) ? result : noop;\n }\n };\n const unsubscribers = stores_array.map((store, i) => subscribe(store, (value) => {\n values[i] = value;\n pending &= ~(1 << i);\n if (inited) {\n sync();\n }\n }, () => {\n pending |= (1 << i);\n }));\n inited = true;\n sync();\n return function stop() {\n run_all(unsubscribers);\n cleanup();\n };\n });\n}\n\nexport { derived, readable, writable };\n","\n\n{#if componentParams}\n \n{:else}\n \n{/if}\n\n\n","export default function (str, loose) {\n\tif (str instanceof RegExp) return { keys:false, pattern:str };\n\tvar c, o, tmp, ext, keys=[], pattern='', arr = str.split('/');\n\tarr[0] || arr.shift();\n\n\twhile (tmp = arr.shift()) {\n\t\tc = tmp[0];\n\t\tif (c === '*') {\n\t\t\tkeys.push('wild');\n\t\t\tpattern += '/(.*)';\n\t\t} else if (c === ':') {\n\t\t\to = tmp.indexOf('?', 1);\n\t\t\text = tmp.indexOf('.', 1);\n\t\t\tkeys.push( tmp.substring(1, !!~o ? o : !!~ext ? ext : tmp.length) );\n\t\t\tpattern += !!~o && !~ext ? '(?:/([^/]+?))?' : '/([^/]+?)';\n\t\t\tif (!!~ext) pattern += (!!~o ? '?' : '') + '\\\\' + tmp.substring(ext);\n\t\t} else {\n\t\t\tpattern += '/' + tmp;\n\t\t}\n\t}\n\n\treturn {\n\t\tkeys: keys,\n\t\tpattern: new RegExp('^' + pattern + (loose ? '(?=$|\\/)' : '\\/?$'), 'i')\n\t};\n}\n","\n\n\n\n\n \n \n\n\n","\n\n\n\n\n\n
    \n \n
    \n\n \n
    \n \"Zed's\n
    \n\n \n

    \n zedshaw \n

    \n\n

    \n 280 posts 4,695 followers 1,778 following\n

    \n\n

    Zed A. Shaw

    \n

    Painter in oil, watercolor, and pastel. I’m doing live streams of little paintings on Twitch:
    \n www.twitch.tv/zedashaw\n

    \n
    \n
    \n\n \n {#each pins as pin}\n
    \n \"Stock\n
    \n {/each}\n
    \n
    \n","function simpleSvgPlaceholder({\n width = 300,\n height = 150,\n text = `${width}×${height}`,\n fontFamily = 'sans-serif',\n fontWeight = 'bold',\n fontSize = Math.floor(Math.min(width, height) * 0.2),\n dy = fontSize * 0.35,\n bgColor = '#ddd',\n textColor = 'rgba(0,0,0,0.5)',\n dataUri = true,\n charset = 'UTF-8'\n} = {}) {\n const str = `\n \n ${text}\n `;\n\n // Thanks to: filamentgroup/directory-encoder\n const cleaned = str\n .replace(/[\\t\\n\\r]/gim, '') // Strip newlines and tabs\n .replace(/\\s\\s+/g, ' ') // Condense multiple spaces\n .replace(/'/gim, '\\\\i'); // Normalize quotes\n\n if (dataUri) {\n const encoded = encodeURIComponent(cleaned)\n .replace(/\\(/g, '%28') // Encode brackets\n .replace(/\\)/g, '%29');\n\n return `data:image/svg+xml;charset=${charset},${encoded}`;\n }\n\n return cleaned;\n}\n\nmodule.exports = simpleSvgPlaceholder;\n","import simpleSvgPlaceholder from '@cloudfour/simple-svg-placeholder';\n\nconst defaults = {\n bgColor: '#ccc',\n textColor: '#888',\n}\n\nexport const holder = (x, y) => simpleSvgPlaceholder({...defaults, width: x, height: y});\n","\n\n\n\n \n \n \n \n\n \n

    \n Tile Example\n

    \n

    Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

    \n
    \n\n \n \n \n \n
    \n
    \n\n","\n/* **********************************************\n Begin prism-core.js\n********************************************** */\n\n/// \n\nvar _self = (typeof window !== 'undefined')\n\t? window // if in browser\n\t: (\n\t\t(typeof WorkerGlobalScope !== 'undefined' && self instanceof WorkerGlobalScope)\n\t\t? self // if in worker\n\t\t: {} // if in node js\n\t);\n\n/**\n * Prism: Lightweight, robust, elegant syntax highlighting\n *\n * @license MIT \n * @author Lea Verou \n * @namespace\n * @public\n */\nvar Prism = (function (_self){\n\n// Private helper vars\nvar lang = /\\blang(?:uage)?-([\\w-]+)\\b/i;\nvar uniqueId = 0;\n\n\nvar _ = {\n\t/**\n\t * By default, Prism will attempt to highlight all code elements (by calling {@link Prism.highlightAll}) on the\n\t * current page after the page finished loading. This might be a problem if e.g. you wanted to asynchronously load\n\t * additional languages or plugins yourself.\n\t *\n\t * By setting this value to `true`, Prism will not automatically highlight all code elements on the page.\n\t *\n\t * You obviously have to change this value before the automatic highlighting started. To do this, you can add an\n\t * empty Prism object into the global scope before loading the Prism script like this:\n\t *\n\t * ```js\n\t * window.Prism = window.Prism || {};\n\t * Prism.manual = true;\n\t * // add a new \n\n\n\n\n \n

    CSS

    \n
    \n      \n    {css_code}\n      \n    
    \n
    \n\n \n

    HTML

    \n
    \n      \n    {html_code}\n      \n    
    \n
    \n
    \n\n{#if notes}\n
    \n

    Notes

    \n {@html notes_html}\n{/if}\n","\n\n\n\n \n \n \n \n\n \n

    \n Card Example\n

    \n

    Lorem ipsum dolor sit amet, consectetur\n adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

    \n
    \n\n \n \n \n \n
    \n
    \n\n","\n\n\n\n\n

    Basic Tabs

    \n\n \n Tab1\n Tab2\n Tab3\n \n\n

    Interactive Demo

    \n \n {#each panels as panel, i}\n activate(i) }>{panel.title}\n {/each}\n \n \n {#each panels as panel, i}\n \n

    { panel.title }

    \n

    \n Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod\n tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim\n veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea\n commodo consequat. Duis aute irure dolor in reprehenderit in voluptate\n velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat\n cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est\n laborum.\n

    \n
    \n {/each}\n
    \n
    \n\n","\n\n\n\n \n December\n SunMonTueWedThuFriSat\n {#each make_dates() as date}\n {date}\n {/each}\n \n\n\n","\n\n\n\n

    Full Websites

    \n\n\n\n
    push('/demos/google') }>\n \n
    Google
    \n
    \n\n
    push('/demos/twitter') }>\n \n
    Twitter
    \n
    \n\n
    push('/demos/youtube') }>\n \n
    Youtube
    \n
    \n\n
    push('/demos/instagram') }>\n \n
    Instagram
    \n
    \n\n
    push('/demos/pinterest') }>\n \n
    Pinterest
    \n
    \n
    \n\n
    \n

    Common UI Patterns

    \n\n\n\n
    push('/demos/login') }>\n \n
    Basic Login
    \n
    \n\n\n
    push('/demos/tiles') }>\n \n
    Tiles
    \n
    \n\n
    push('/demos/cards') }>\n \n
    Cards
    \n
    \n\n
    push('/demos/panels') }>\n \n
    Panels
    \n
    \n\n
    push('/demos/tabs') }>\n \n
    Tabs
    \n
    \n\n
    push('/demos/gridovergraphic') }>\n \n
    Grid Over Graphic
    \n
    \n\n
    push('/demos/calendar') }>\n \n
    Calendar
    \n
    \n\n
    \n\n\n","\n\n\n\n\n\n\n
    \n \n
    \n\n
    \n \n \n \n
    \n\n \n \n \n \n \n \n \n\n
    \n\n\n","\n\n\n\n\n\n \n \n

    # Explore

    \n

    Settings

    \n
    \n\n \n
    \n \n
    \n\n \n
    \n \n
    \n\n
    \n \n \n
    \n
    \n\n \n

    Zed A. Shaw, Writer

    \n

    @lzsthw

    \n

    The author of The Hard Way Series published by Addison/Wesley including Learn Python The Hard Way and many more. Follow me here for coding tips and book news.

    \n

    Some Place, KY learnjsthehardway.org Joined Jan, 1999.

    \n

    167 Following 10.4k Followers

    \n
    \n\n
    \n\n \n {#each tweets as tweet}\n \n
    \n \"Stock\n
    \n \n

    Zed A. Shaw, Writer

    \n

    Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam:
    \n\n quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

    \n \n 2\n 1\n 12\n \n \n
    \n \n
    \n {/each}\n
    \n
    \n\n \n \n\n
    \n \n\n \n\n \n\n \n
    \n
    \n
    \n\n\n","\n\n\n\n\n\n
    \n \n
    \n
    \n \n
    \n \n \n \n
    \n #tag #anothertag\n

    Title And Stuff

    \n \n Stats Stats\n \n 1.1K\n 22\n SHARE\n SAVE\n \n \n \n
    \n
    \n
    \n \n \n\n \n Sed ut perspiciatis unde omnis iste natus error sit voluptatem accusantium doloremque laudantium, totam rem aperiam, eaque ipsa quae ab illo inventore veritatis et quasi architecto beatae vitae dicta sunt explicabo. Nemo enim ipsam voluptatem quia voluptas sit aspernatur aut odit aut fugit, sed quia consequuntur magni dolores eos qui ratione voluptatem sequi nesciunt. Neque porro quisquam est, qui dolorem ipsum quia dolor sit amet, consectetur, adipisci velit, sed quia non numquam eius modi tempora incidunt ut labore et dolore magnam aliquam quaerat voluptatem. Ut enim ad minima veniam, quis nostrum exercitationem ullam corporis suscipit laboriosam, nisi ut aliquid ex ea commodi consequatur? Quis autem vel eum iure reprehenderit qui in ea voluptate velit esse quam nihil molestiae consequatur, vel illum qui dolorem eum fugiat quo voluptas nulla pariatur\n \n \n
    \n\n \n \n\n {#each cards as card}\n \n \n \n

    Guys

    \n

    Sed ut perspiciatis unde omnis iste natus error sit voluptatem accusantium doloremque laudantium, totam rem aperiam, eaque

    \n \n View replies\n
    \n
    \n {/each}\n
    \n
    \n\n \n {#each cards as card}\n \n \n \n

    Video Thumb Title

    \n Zed\n 1.1M views\n 2 years ago\n
    \n
    \n {/each}\n\n
    \n \n \n \n
    \n\n {#each cards as card}\n \n \n \n

    Video Thumb Title

    \n Zed\n 1.1M views\n 2 years ago\n
    \n
    \n {/each}\n
    \n
    \n
    \n\n\n","\n\n\n\n\n\n
    \n \n
    \n\n \n
    \n \"Zed's\n
    \n\n \n

    \n zedshaw \n

    \n\n

    \n 280 posts 4,695 followers 1,778 following\n

    \n\n

    Zed A. Shaw

    \n

    Painter in oil, watercolor, and pastel. I’m doing live streams of little paintings on Twitch:
    \n www.twitch.tv/zedashaw\n

    \n
    \n
    \n\n \n {#each pins as pin}\n
    \n \"Stock\n
    \n {/each}\n
    \n\n \n \n \n\n \n {#each posts as post}\n
    \n \"Stock\n
    \n {/each}\n
    \n
    \n\n\n","\n\n\n\n\n\n\n
    \n \n
    \n\n {#if !thumbnail}\n \n \n

    Vincent van Gogh

    \n

    Collection by A Person

    \n

    420 Pins • 3.59k Followers

    \n

    \"I dream my painting and I paint my dream.\" ~ Vincent van Gogh\n \n\n

    \n \"Zed's\n
    \n
    \n\n \n {#each lanes as lane}\n \n {#each random_sample(pin_sizes, 10) as height}\n
    \n \"Van\n
    Something about Van Gogh {height} high.
    \n
    \n {/each}\n
    \n {/each}\n
    \n {/if}\n
    \n\n\n","\n\n\n\n\n\n\n
    \n \n
    \n\n \n
    \n \"Module\n
    \n\n \n

    \n \n

    \n\n

    \n 10 videos 4,695 followers\n

    \n\n

    Drawing Level 1

    \n

    The first module you should take. It covers the basics of drawing and how to get started\n making drawing a habit.\n

    \n
    \n
    \n\n \n {#each related as pin}\n
    \n \"Stock\n
    \n {/each}\n
    \n\n \n {#each posts as post}\n
    \n \n \"Placeholder\"\n \n
    \n {/each}\n
    \n
    \n\n\n","\n\n\n\n\n\n\n
    \n \n
    \n
    \n
    \n \n
    \n #tag #anothertag\n

    Title And Stuff

    \n \n Likes Other Stats\n \n 1.1K\n 22\n SHARE\n SAVE\n \n \n \n
    \n
    \n \n \n \n\n \n Sed ut perspiciatis unde omnis iste natus error sit voluptatem accusantium doloremque laudantium, totam rem aperiam, eaque ipsa quae ab illo inventore veritatis et quasi architecto beatae vitae dicta sunt explicabo. Nemo enim ipsam voluptatem quia voluptas sit aspernatur aut odit aut fugit, sed quia consequuntur magni dolores eos qui ratione voluptatem sequi nesciunt. Neque porro quisquam est, qui dolorem ipsum quia dolor sit amet, consectetur, adipisci velit, sed quia non numquam eius modi tempora incidunt ut labore et dolore magnam aliquam quaerat voluptatem. Ut enim ad minima veniam, quis nostrum exercitationem ullam corporis suscipit laboriosam, nisi ut aliquid ex ea commodi consequatur? Quis autem vel eum iure reprehenderit qui in ea voluptate velit esse quam nihil molestiae consequatur, vel illum qui dolorem eum fugiat quo voluptas nulla pariatur\n \n \n
    \n\n \n \n\n {#each cards as card}\n \n \n \n

    Guys

    \n

    Sed ut perspiciatis unde omnis iste natus error sit voluptatem accusantium doloremque laudantium, totam rem aperiam, eaque

    \n \n View replies\n
    \n
    \n {/each}\n
    \n
    \n
    \n
    \n\n\n","\n\n\n\n \n \n \n \n\n \n

    \n Tile Example\n

    \n

    Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

    \n
    \n\n \n \n \n \n
    \n
    \n\n\n","\n\n\n\n \n \n \n \n\n \n

    \n Card Example\n

    \n

    Lorem ipsum dolor sit amet, consectetur\n adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

    \n
    \n\n \n \n \n \n
    \n
    \n\n\n","\n\n\n\n\n \n\n\n{#if visible}\n visible = false }>\n \n

    This Is A Modal

    \n

    Designers love modals. Click anywhere to close this.

    \n
    \n
    \n{/if}\n\n\n\n","\n\n\n\n\n

    Basic Tabs

    \n\n \n Tab1\n Tab2\n Tab3\n \n\n

    Interactive Demo

    \n \n {#each panels as panel, i}\n activate(i) }>{panel.title}\n {/each}\n \n \n {#each panels as panel, i}\n \n

    { panel.title }

    \n

    \n Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod\n tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim\n veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea\n commodo consequat. Duis aute irure dolor in reprehenderit in voluptate\n velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat\n cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est\n laborum.\n

    \n
    \n {/each}\n
    \n
    \n\n\n","\n\n\n\n \n December\n SunMonTueWedThuFriSat\n {#each make_dates() as date}\n {date}\n {/each}\n \n\n\n\n","import Home from \"./Home.svelte\";\nimport Demos from \"./demos/index.svelte\";\nimport NotFound from \"./NotFound.svelte\";\nimport Google from \"./demos/Google.svelte\";\nimport Twitter from \"./demos/Twitter.svelte\";\nimport Youtube from \"./demos/Youtube.svelte\";\nimport Instagram from \"./demos/Instagram.svelte\";\nimport Pinterest from \"./demos/Pinterest.svelte\";\nimport XorAcademy from \"./demos/XorAcademy.svelte\";\nimport XorAcademyWatch from \"./demos/XorAcademyWatch.svelte\";\nimport Login from \"./demos/Login.svelte\";\nimport Tiles from \"./demos/Tiles.svelte\";\nimport Cards from \"./demos/Cards.svelte\";\nimport Panels from \"./demos/Panels.svelte\";\nimport Modal from \"./demos/Modal.svelte\";\nimport NavBar from \"./demos/NavBar.svelte\";\nimport Tabs from \"./demos/Tabs.svelte\";\nimport Calendar from \"./demos/Calendar.svelte\";\nimport GridOverGraphic from \"./demos/GridOverGraphic.svelte\";\n\nexport default {\n \"/\": Home,\n \"/demos\": Demos,\n \"/demos/login\": Login,\n \"/demos/tiles\": Tiles,\n \"/demos/modal\": Modal,\n \"/demos/cards\": Cards,\n \"/demos/panels\": Panels,\n \"/demos/google\": Google,\n \"/demos/twitter\": Twitter,\n \"/demos/youtube\": Youtube,\n \"/demos/instagram\": Instagram,\n \"/demos/pinterest\": Pinterest,\n \"/demos/navbar\": NavBar,\n \"/demos/tabs\": Tabs,\n \"/demos/calendar\": Calendar,\n \"/demos/gridovergraphic\": GridOverGraphic,\n \"/demos/xoracademy\": XorAcademy,\n \"/demos/xoracademy/watch\": XorAcademyWatch,\n \"*\": NotFound,\n}\n","\n\n{#if theme == 'dark'}\n toggle() }>\n \n \n{:else}\n toggle() }>\n \n \n{/if}\n\n","\n\n\n\n
    \n \n
    \n\n
    \n \n
    \n\n
    \n\n","import App from './App.svelte';\n\nconst app = new App({\n\ttarget: document.body,\n\tprops: {\n\t\tname: 'world'\n\t}\n});\n\nexport default app;"],"names":["noop","assign","tar","src","k","run","fn","blank_object","Object","create","run_all","fns","forEach","is_function","thing","safe_not_equal","a","b","action_destroyer","action_result","destroy","append","target","node","appendChild","insert","anchor","insertBefore","detach","parentNode","removeChild","destroy_each","iterations","detaching","i","length","d","element","name","document","createElement","svg_element","createElementNS","text","data","createTextNode","space","empty","listen","event","handler","options","addEventListener","removeEventListener","attr","attribute","value","removeAttribute","getAttribute","setAttribute","set_custom_element_data","prop","xlink_attr","setAttributeNS","set_data","wholeText","toggle_class","toggle","classList","HtmlTag","[object Object]","this","e","n","html","nodeName","t","h","innerHTML","Array","from","childNodes","current_component","set_current_component","component","get_current_component","Error","onMount","$$","on_mount","push","createEventDispatcher","type","detail","callbacks","createEvent","initCustomEvent","custom_event","slice","call","bubble","dirty_components","binding_callbacks","render_callbacks","flush_callbacks","resolved_promise","Promise","resolve","update_scheduled","schedule_update","then","flush","tick","add_render_callback","flushing","seen_callbacks","Set","update","pop","callback","has","add","clear","fragment","before_update","dirty","p","ctx","after_update","outroing","outros","group_outros","r","c","check_outros","transition_in","block","local","delete","transition_out","o","get_spread_update","levels","updates","to_null_out","accounted_for","$$scope","key","undefined","get_spread_object","spread_props","create_component","mount_component","on_destroy","m","new_on_destroy","map","filter","destroy_component","init","instance","create_fragment","not_equal","props","parent_component","prop_values","bound","context","Map","skip_bound","ready","ret","rest","fill","make_dirty","hydrate","nodes","children","l","intro","SvelteComponent","$destroy","index","indexOf","splice","$$props","obj","$$set","keys","subscriber_queue","readable","start","subscribe","writable","stop","subscribers","set","new_value","run_queue","s","invalidate","subscriber","derived","stores","initial_value","single","isArray","stores_array","auto","inited","values","pending","cleanup","sync","result","unsubscribers","store","unsub","unsubscribe","getLocation","hashPosition","window","location","href","substr","qsPosition","querystring","loc","$loc","charAt","history","replaceState","scrollX","scrollY","hash","link","hrefVar","tagName","toLowerCase","updateLink","updated","scrollstateHistoryHandler","preventDefault","currentTarget","routes","prefix","restoreScrollState","RouteItem","path","_sveltesparouter","RegExp","pattern","str","loose","tmp","ext","arr","split","shift","substring","regexparam","conditions","userData","_pattern","_keys","startsWith","match","matches","exec","out","decodeURIComponent","routesList","route","componentParams","dispatch","dispatchNextTick","previousScrollState","state","scrollTo","lastLoc","componentObj","newLoc","checkConditions","loading","loadingParams","loaded","default","scrollRestoration","size","color","light","width","linecap","linejoin","inactive","light_color","height","fontFamily","fontWeight","fontSize","Math","floor","min","dy","bgColor","textColor","dataUri","charset","cleaned","replace","encodeURIComponent","defaults","holder","x","y","simpleSvgPlaceholder","Prism","_self","lang","uniqueId","_","manual","disableWorkerMessageHandler","util","encode","tokens","Token","content","alias","prototype","toString","objId","defineProperty","clone","deepClone","visited","id","hasOwnProperty","v","getLanguage","test","className","parentElement","currentScript","err","stack","scripts","getElementsByTagName","isActive","defaultActivation","no","contains","languages","extend","redef","inside","before","root","grammar","token","newToken","old","DFS","property","propertyType","plugins","highlightAll","async","highlightAllUnder","container","env","selector","hooks","elements","apply","querySelectorAll","highlightElement","language","parent","code","textContent","insertHighlightedCode","highlightedCode","Worker","worker","filename","onmessage","evt","postMessage","JSON","stringify","immediateClose","highlight","tokenize","tokenList","LinkedList","addAfter","head","matchGrammar","list","array","next","tail","toArray","all","matchedStr","startNode","startPos","rematch","patterns","j","cause","patternObj","lookbehind","greedy","lookbehindLength","global","flags","source","currentNode","pos","reach","removeCount","prev","lastIndex","to","matchStr","after","removeFrom","removeRange","newNode","count","tag","classes","attributes","aliases","join","message","parse","close","script","highlightAutomaticallyCallback","hasAttribute","readyState","defer","requestAnimationFrame","setTimeout","WorkerGlobalScope","self","module","exports","markup","comment","prolog","doctype","internal-subset","string","punctuation","doctype-tag","cdata","namespace","attr-value","attr-name","entity","includedCdataInside","included-cdata","def","mathml","svg","xml","ssml","atom","rss","css","atrule","rule","selector-function-argument","keyword","url","function","important","addInlined","style-attr","clike","class-name","boolean","number","operator","javascript","regex","regex-source","regex-flags","regex-delimiter","function-variable","parameter","constant","template-string","template-punctuation","interpolation","interpolation-punctuation","js","EXTENSIONS","py","rb","ps1","psm1","sh","bat","tex","STATUS_ATTR","STATUS_LOADING","STATUS_LOADED","SELECTOR","pre","extension","setLanguageClass","autoloader","loadLanguages","xhr","XMLHttpRequest","open","onreadystatechange","status","responseText","statusText","send","fileHighlight","logged","console","warn","arguments","trim","blocks","css_code","html_code","notes_html","notes","fetch","resource","svelte","each","language-javascript","title","active","panels","activate","panel","days","thumbnail","random_select","from_array","ceil","max","random","visible","/","/demos","/demos/login","/demos/tiles","/demos/modal","/demos/cards","/demos/panels","/demos/google","/demos/twitter","/demos/youtube","/demos/instagram","/demos/pinterest","/demos/navbar","/demos/tabs","/demos/calendar","/demos/gridovergraphic","/demos/xoracademy","/demos/xoracademy/watch","*","theme","localStorage","getItem","set_theme","documentElement","setItem","body"],"mappings":"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"} \ No newline at end of file diff --git a/public/code/Calendar.notes.html b/public/code/Calendar.notes.html new file mode 100644 index 0000000..d8eab99 --- /dev/null +++ b/public/code/Calendar.notes.html @@ -0,0 +1,14 @@ +

    The HTML in this demo is using the Svelte templating system to generate a bunch of fake dates. This makes it easier for you to see the essential HTML, but might confuse you if you don't know the syntax.

    + +

    This CSS demo uses the grid system to create a 7 column grid, but auto rows. You then just write each date as a tag and the grid does the rest for you. You should also notice how I did the month display on the top:

    + +
    +
    +calendar month {
    +  grid-column: span 7;
    +}
    +
    +
    + +

    When you're dealing with a regular grid like this it's easier to use numeric indexes, but I think for more complex layouts it's better to use the method in GridOverGraphic where you name the grid cells instead of using numbers.

    + diff --git a/public/code/Cards.notes.html b/public/code/Cards.notes.html new file mode 100644 index 0000000..7707d40 --- /dev/null +++ b/public/code/Cards.notes.html @@ -0,0 +1,2 @@ +

    A card is another container similar to a Tiles but vertical. You'll also notice the main image takes over the entire space so its main focus is on displaying an image with text and buttons. There's various ways to organize a card, but I chose just one that was common.

    +

    diff --git a/public/code/GridOverGraphic.notes.html b/public/code/GridOverGraphic.notes.html new file mode 100644 index 0000000..54c8563 --- /dev/null +++ b/public/code/GridOverGraphic.notes.html @@ -0,0 +1,55 @@ +

    When you use Photoshop--or any visual editing software--you have the concept of "layers". If your page is A4 size, and you create 10 layers, then it has 10 A4 sized invisible sheets stacked on top of each other. It's a simple concept that's so simple it's weird to explain it, and yet the browser does not have this essential concept needed for advanced compositing.

    + +

    To accomplish the same thing in CSS you have to follow this process:

    + +
      +
    1. Create an outer box that is set to position: relative or any position that's not static.
    2. +
    3. Create an inner box that's set to position: absolute.
    4. +
    5. Set this inner box (the bottom layer) to top, bottom, left, right all to 0, which sticks the layer's dimensions to the same as the outer box.
    6. +
    7. Place your next layer on this like normal by putting it inside the outerbox.
    8. +
    9. Use the z-index: to alter the layers' ordering if the natural ordering isn't correct.
    10. +
    + +

    The secret that nobody tells you is position:absolute has a footgun which makes it behave differently depending on its outer box. If your outer box doesn't have a position set then your attempt to use position:absolute will cover the entire browser window, but if the outer box is given any other position setting then the position:absolute will cover the outer box.

    + +

    So the next time a CSS guru says to you, "just use position:absolute", you can fire back a strategically placed sniper shot of, "Don't you mean use position:absolute inside another box set to position:relative or did you not know that?"

    + +

    Using Named Grid Cells

    +

    The most important thing about this demo is using named grid cells using grid-template-areas: in the grid, and then using grid-area: in each element you want in the cell. First, I set the overlay: + +

    +
    +overlay {
    +  display: grid;
    +  grid-template-columns: repeat(2,1fr);
    +  grid-template-rows: auto;
    +  grid-template-areas:
    +  "topleft topright"
    +  "middle middle"
    +  "bottomleft bottomright";
    +}
    +
    +
    + +

    You name the areas using "name name name" for each column, and you can set a cell empty using the dot (.) as a name. In the above example I have "topleft topright" for the first row, "middle middle" for the second row, and "bottomleft bottomright" for the last row. You'll also notice I used "middle middle" so that when I use that name it will cover both grid cells.

    + +

    Once I have this setup I just have to give each cell a name. Here's the relevant part of the code from the demo:

    + +
    +
    +one {
    +  grid-area: topright;
    +}
    +
    +two {
    +  grid-area: middle;
    +}
    +
    +three {
    +  grid-area: bottomleft;
    +}
    +
    +
    + +

    Make sure you see how these are mapping from the original source so you know that it works. A very nice feature of this is you can change the positions of these tags without changing the HTML. You just give them a new grid-area: name and it will be put in that cell (or cells).

    + diff --git a/public/code/Login.notes.html b/public/code/Login.notes.html new file mode 100644 index 0000000..e973e0e --- /dev/null +++ b/public/code/Login.notes.html @@ -0,0 +1 @@ +

    Most of this demo is done for me with mvp.css and all I'm doing is placing it in a standard flexbox content block. I may redo this using flexbox to demonstrate how to do it better.

    diff --git a/public/code/Panels.notes.html b/public/code/Panels.notes.html new file mode 100644 index 0000000..a1f796e --- /dev/null +++ b/public/code/Panels.notes.html @@ -0,0 +1,23 @@ +

    Once again we have the common "panel/card/tile" container theme. There's not much new here except for the way I made the buttons take up an entire strip on the bottom:

    + +
    +
    +panel bottom {
    +  flex-shrink: 0;
    +  display: flex;
    +  flex-direction: row;
    +  justify-content: space-evenly;
    +}
    +
    +panel bottom button {
    +  display: flex;
    +  margin: 0;
    +  border-radius: unset;
    +  width: 100%;
    +  justify-content: space-evenly;
    +}
    +
    +
    + +

    The key to this is setting justify-content: space-evenly on the containing panel bottom, then set the width of each button to 100% with width: 100%. There are other ways to force the buttons to max width, but I've found width:100% is the most reliable method. +

    diff --git a/public/code/Tiles.notes.html b/public/code/Tiles.notes.html new file mode 100644 index 0000000..e4724bd --- /dev/null +++ b/public/code/Tiles.notes.html @@ -0,0 +1,19 @@ +

    Tiles, Cards, Panels, and Sheets all seem to be similar containers with slightly different directional organization. There isn't any official terminology so I went with this being the kind of panel you'd find in Youtube's UI, especially in the comments section and related videos. I've added a couple buttons in the top right to demonstrate how that works, which also means this can function as a toast pattern too if you wanted. +

    + +

    The key to this UI realizing that it's actually 3 columns, not 2 rows. The first column has the 48x48 image, then the title/content, then the buttons. Since the main tile component already uses a flex-direction: row the 48x48 image will automatically be on the left, and we only need to have CSS for the middle and right. You should also look at this little bit:

    + +
    +
    +tile middle {
    +  /* ... */
    +  flex-shrink: 3;
    +}
    +
    +tile right {
    +  flex-shrink: 0;
    +}
    +
    +
    + +

    Setting flex-shrink: 0 sets that column to not shrink (collapse) when it gets small. Without this the buttons would go vertical when the UI is shrunk down. I also found I had to put flex-shrink: 3 on the middle component or it would expand as the amount of text increased. This forces it to shrink significantly when possible while keeping the buttons on the right solid.

    diff --git a/src/About.svelte b/src/About.svelte deleted file mode 100644 index 8eb36c1..0000000 --- a/src/About.svelte +++ /dev/null @@ -1 +0,0 @@ -

    About Page

    diff --git a/src/App.svelte b/src/App.svelte index 7574946..08f8453 100644 --- a/src/App.svelte +++ b/src/App.svelte @@ -31,7 +31,6 @@ @@ -44,11 +43,11 @@