gardenjs 1.6.8 → 1.7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (47) hide show
  1. package/.prettierrc +16 -5
  2. package/README.md +1 -1
  3. package/dist/assets/frame-BOcgZVOc.js +9 -0
  4. package/dist/assets/index-BDdBNVTh.css +19 -0
  5. package/dist/assets/index-DFG9gkdS.js +46 -0
  6. package/dist/assets/props-COK33XqS.js +2 -0
  7. package/dist/frame.html +2 -2
  8. package/dist/index.html +3 -3
  9. package/eslint.config.js +14 -1
  10. package/package.json +3 -1
  11. package/src/client/GardenApp.svelte +105 -92
  12. package/src/client/GardenFrame.svelte +25 -3
  13. package/src/client/assets/scss/main.scss +0 -1
  14. package/src/client/components/panes/HorizontalSplitPane.svelte +28 -24
  15. package/src/client/components/panes/VerticalSplitPane.svelte +118 -0
  16. package/src/client/components/sidebar/Sidebar.svelte +8 -11
  17. package/src/client/components/stage/Stage.svelte +76 -1
  18. package/src/client/components/stage/panel/PanelCode.svelte +7 -1
  19. package/src/client/components/stage/panel/PanelComponent.svelte +0 -1
  20. package/src/client/components/stage/panel/PanelDescription.svelte +6 -0
  21. package/src/client/components/stage/panel/PanelExamplesNav.svelte +38 -12
  22. package/src/client/components/stage/panel/ParamsPane.svelte +201 -0
  23. package/src/client/components/stage/panel/controls/ArrayControl.svelte +242 -0
  24. package/src/client/components/stage/panel/controls/BooleanControl.svelte +142 -0
  25. package/src/client/components/stage/panel/controls/ColorPickerControl.svelte +185 -0
  26. package/src/client/components/stage/panel/controls/DateControl.svelte +64 -0
  27. package/src/client/components/stage/panel/controls/DatetimeControl.svelte +64 -0
  28. package/src/client/components/stage/panel/controls/JsonControl.svelte +29 -0
  29. package/src/client/components/stage/panel/controls/MultiselectControl.svelte +354 -0
  30. package/src/client/components/stage/panel/controls/NumberControl.svelte +31 -0
  31. package/src/client/components/stage/panel/controls/ObjectControl.svelte +148 -0
  32. package/src/client/components/stage/panel/controls/RangeControl.svelte +156 -0
  33. package/src/client/components/stage/panel/controls/SelectControl.svelte +233 -0
  34. package/src/client/components/stage/panel/controls/TextInputControl.svelte +85 -0
  35. package/src/client/components/stage/panel/controls/TimeControl.svelte +64 -0
  36. package/src/client/components/stage/panel/controls/button.scss +15 -0
  37. package/src/client/components/stage/panel/controls/button_unset.scss +35 -0
  38. package/src/client/components/stage/panel/controls/input.scss +15 -0
  39. package/src/client/components/topbar/Topbar.svelte +8 -0
  40. package/src/client/logic/localStore.js +23 -0
  41. package/src/client/logic/sidebar.svelte.js +55 -0
  42. package/src/client/logic/stage.js +2 -63
  43. package/dist/assets/frame-B7ff1vAd.js +0 -9
  44. package/dist/assets/index-DfGHKcnI.css +0 -19
  45. package/dist/assets/index-WI1a7nYK.js +0 -46
  46. package/dist/assets/props-DKVIKFn7.js +0 -2
  47. package/src/client/assets/scss/base/input-number.css +0 -11
@@ -0,0 +1,15 @@
1
+ .btn {
2
+ display: flex;
3
+ align-items: center;
4
+ justify-content: center;
5
+ padding: 0.375rem 0.75rem;
6
+ background-color: var(--c-basic-100);
7
+ border-radius: 0.375rem;
8
+ font-size: 0.875rem;
9
+ color: var(--c-basic-800);
10
+ }
11
+ .btn:hover,
12
+ .btn:focus-visible {
13
+ background-color: var(--c-primary-bg);
14
+ color: var(--c-primary);
15
+ }
@@ -0,0 +1,35 @@
1
+ .unset-area {
2
+ display: flex;
3
+ justify-content: flex-end;
4
+ align-self: start;
5
+ margin: 0.25rem 0 0;
6
+ }
7
+ .unset-info {
8
+ margin: 0 0 0 0.5rem;
9
+ padding: 0.25rem 0 0;
10
+ width: 4.25rem;
11
+ font-size: 0.75rem;
12
+ color: var(--c-basic-800);
13
+ text-align: right;
14
+ }
15
+ .btn_unset {
16
+ display: inline-flex;
17
+ align-items: center;
18
+ justify-content: space-between;
19
+ margin: 0 0 0 0.5rem;
20
+ padding: 0.25rem 0.5rem;
21
+ width: 4.25rem;
22
+ height: 1.25rem;
23
+ background-color: var(--c-basic-100);
24
+ border-radius: 0.375rem;
25
+ font-size: 0.75rem;
26
+ color: var(--c-basic-800);
27
+ }
28
+ .btn_unset:hover,
29
+ .btn_unset:focus-visible {
30
+ background-color: var(--c-primary-bg);
31
+ color: var(--c-primary);
32
+ }
33
+ .btn_unset .close {
34
+ margin-right: 0.25rem;
35
+ }
@@ -0,0 +1,15 @@
1
+ .input {
2
+ padding: 0.125rem 0.5rem;
3
+ width: 100%;
4
+ height: 1.5rem;
5
+ border: 1px solid var(--c-primary);
6
+ border-radius: 0.125rem;
7
+ background-color: var(--c-basic-0);
8
+ font-size: 0.938rem;
9
+ color: var(--c-basic-800);
10
+ }
11
+ .input:focus {
12
+ outline: none;
13
+ background-color: var(--c-primary-bg);
14
+ box-shadow: 0 0 0 1px var(--c-primary);
15
+ }
@@ -266,6 +266,14 @@
266
266
  background-color: transparent;
267
267
  border: 1px solid var(--c-primary);
268
268
  border-radius: 0.125rem;
269
+ -moz-appearance: textfield;
270
+ appearance: textfield;
271
+ margin: 0;
272
+ }
273
+ .stagesize-input::-webkit-inner-spin-button,
274
+ .stagesize-input::-webkit-outer-spin-button {
275
+ -webkit-appearance: none;
276
+ margin: 0;
269
277
  }
270
278
  /* same styles as the input in the sidebar: */
271
279
  .stagesize-input:focus-visible {
@@ -0,0 +1,23 @@
1
+ import { writable } from 'svelte/store'
2
+
3
+ export function localStore(
4
+ name,
5
+ defaultValue,
6
+ parseString = (value) => value,
7
+ stringify = (value) => value
8
+ ) {
9
+ const store = writable(
10
+ parseString(localStorage.getItem(name)) ?? defaultValue
11
+ )
12
+ store.subscribe((value) => {
13
+ localStorage.setItem(name, stringify(value))
14
+ })
15
+ return store
16
+ }
17
+
18
+ export const textOrNumberParser = (value) => {
19
+ if (Number.isNaN(Number(value))) {
20
+ return value
21
+ }
22
+ return Number(value)
23
+ }
@@ -0,0 +1,55 @@
1
+ import { writable, get } from 'svelte/store'
2
+ import { localStore, textOrNumberParser } from './localStore'
3
+ import { innerWidth } from 'svelte/reactivity/window'
4
+
5
+ export const sidebarWidth = localStore('sidebarWidth', 260, textOrNumberParser)
6
+ export const sidebarMaxWidth = writable(260)
7
+ export const sidebarExpanded = localStore('sidebarExpanded', false)
8
+
9
+ let previousWidth = $state(260)
10
+ let desktopExpanded = $state(true)
11
+ let mobileExpanded = $state(false)
12
+ let showMobileNav = $state(true)
13
+
14
+ export const initSidebar = () => {
15
+ $effect(() => {
16
+ if (innerWidth.current < 840) {
17
+ mobileExpanded = false
18
+ showMobileNav = true
19
+ } else {
20
+ showMobileNav = false
21
+ }
22
+ })
23
+
24
+ $effect(() => {
25
+ sidebarExpanded.set(showMobileNav ? mobileExpanded : desktopExpanded)
26
+ })
27
+ }
28
+
29
+ export function toggleExpandSidebar() {
30
+ if (get(sidebarExpanded)) {
31
+ previousWidth = get(sidebarWidth)
32
+ sidebarWidth.set(0)
33
+ } else {
34
+ sidebarWidth.set(previousWidth ?? 260)
35
+ }
36
+ if (showMobileNav) {
37
+ mobileExpanded = !mobileExpanded
38
+ } else {
39
+ desktopExpanded = !desktopExpanded
40
+ }
41
+ }
42
+
43
+ export function collapseMobileNavIfVisible() {
44
+ if (showMobileNav) {
45
+ mobileExpanded = false
46
+ }
47
+ }
48
+
49
+ export function updateSidebarWidth(newWidth) {
50
+ sidebarWidth.set(newWidth)
51
+ }
52
+
53
+ export function updateSidebarMaxWidth(newMaxWidth) {
54
+ sidebarMaxWidth.set(newMaxWidth)
55
+ }
@@ -1,26 +1,5 @@
1
- import { writable, get, derived, readable } from 'svelte/store'
2
-
3
- function localStore(
4
- name,
5
- defaultValue,
6
- parseString = (value) => value,
7
- stringify = (value) => value
8
- ) {
9
- const store = writable(
10
- parseString(localStorage.getItem(name)) ?? defaultValue
11
- )
12
- store.subscribe((value) => {
13
- localStorage.setItem(name, stringify(value))
14
- })
15
- return store
16
- }
17
-
18
- const textOrNumberParser = (value) => {
19
- if (Number.isNaN(Number(value))) {
20
- return value
21
- }
22
- return Number(value)
23
- }
1
+ import { writable, get, derived } from 'svelte/store'
2
+ import { localStore, textOrNumberParser } from './localStore'
24
3
 
25
4
  export const themes = writable([])
26
5
  export const stageSizes = writable({
@@ -77,9 +56,6 @@ export const appTheme = localStore('appTheme', 'default')
77
56
 
78
57
  export const activeTheme = localStore('frameTheme')
79
58
 
80
- export const desktopSidebarExpanded = writable(true)
81
- export const mobileSidebarExpanded = writable(false)
82
-
83
59
  export const showInspector = writable(false)
84
60
  export const showGrid = writable(false)
85
61
 
@@ -244,14 +220,6 @@ export function toggleExpandPanel() {
244
220
  panelExpanded.set(!get(panelExpanded))
245
221
  }
246
222
 
247
- export function toggleExpandSidebar() {
248
- if (get(mobileNav)) {
249
- mobileSidebarExpanded.set(!get(mobileSidebarExpanded))
250
- } else {
251
- desktopSidebarExpanded.set(!get(desktopSidebarExpanded))
252
- }
253
- }
254
-
255
223
  export function toggleShowInspector() {
256
224
  showInspector.set(!get(showInspector))
257
225
  }
@@ -260,35 +228,6 @@ export function toggleShowGrid() {
260
228
  showGrid.set(!get(showGrid))
261
229
  }
262
230
 
263
- export const mobileNav = readable(window.innerWidth < 840, (set) => {
264
- // Funktion zum Aktualisieren der Fensterbreite
265
- const updateWidth = () => {
266
- set(window.innerWidth < 840)
267
- mobileSidebarExpanded.set(false)
268
- }
269
-
270
- // Event-Listener für das Resize-Event hinzufügen
271
- window.addEventListener('resize', updateWidth)
272
-
273
- // Cleanup-Funktion, um den Event-Listener zu entfernen, wenn der Store nicht mehr verwendet wird
274
- return () => {
275
- window.removeEventListener('resize', updateWidth)
276
- }
277
- })
278
-
279
- export const sidebarExpanded = derived(
280
- [desktopSidebarExpanded, mobileSidebarExpanded, mobileNav],
281
- ([$desktopSidebarExpanded, $mobileSidebarExpanded, $mobileNav]) => {
282
- return $mobileNav ? $mobileSidebarExpanded : $desktopSidebarExpanded
283
- }
284
- )
285
-
286
- export function handleSelectionChanged() {
287
- if (get(mobileNav)) {
288
- mobileSidebarExpanded.set(false)
289
- }
290
- }
291
-
292
231
  export function setStagesize(nStageSize) {
293
232
  stageSize.set(nStageSize)
294
233
  const oldStageSizes = get(stageSizes)
@@ -1,9 +0,0 @@
1
- import{p as fe,e as we,o as pe,x as ke,y as V,C as q,v as w,w as ge,I as ze,S as Be,T as Se,i as N,j as y,k as b,D as Le,t as M,m as Ne,L as Pe,J as z,g as e,H as Fe,s as u,B as me,h as Te,l as j,q as Re,r as Ee,f as d,F as D,U as Oe,u as De,z as je,A as qe}from"./props-DKVIKFn7.js";import{dasMap as Je}from"../das_import_map.js";import{componentMap as Ue}from"../component_import_map.js";import Ke from"../../garden.config.js";import"../gardenframe/cssimport.js";function Ce(k,o){fe(o,!0);let n=we(o,"afterRenderHook",3,()=>{});pe(async()=>{await n()()});var r=ke(),B=V(r);{var l=c=>{var i=ke(),s=V(i);ze(s,()=>o.component),w(c,i)};q(B,c=>{o.component&&c(l)})}w(k,r),ge()}async function Qe(k){try{let o=Be(Ce,{target:document.getElementById("garden_app"),props:{afterRenderHook:k}});return{destroy:()=>Se(o),updateComponent:n=>{Se(o),o=Be(Ce,{target:document.getElementById("garden_app"),props:{...n,afterRenderHook:k}})}}}catch(o){console.log("error",o)}}const _e={create:Qe};var Ve=Pe('<rect fill="black"></rect>'),Xe=Pe('<rect fill="hsla(210, 75%, 50%, 0.45)"></rect>'),Ye=N('<div class="mask svelte-11d34ym"><svg xmlns="http://www.w3.org/2000/svg" class="svelte-11d34ym"><defs><mask id="mask"><rect y="0" x="0" width="100%" height="100%" fill="white"></rect><!></mask></defs><rect y="0" x="0" width="100%" height="100%" fill="hsla(256, 55%, 45%, 0.45)" mask="url(#mask)"></rect><!></svg></div>');function Ze(k,o){var n=Ye();let r;var B=b(n),l=b(B),c=b(l),i=y(b(c));Le(i,17,()=>o.childElements,Fe,(x,p)=>{var h=Ve();M(()=>{z(h,"x",`${e(p).x??""}px`),z(h,"y",`${e(p).y??""}px`),z(h,"width",`${e(p).width??""}px`),z(h,"height",`${e(p).height??""}px`)}),w(x,h)});var s=y(l,2);Le(s,17,()=>o.childElements,Fe,(x,p)=>{var h=Xe();M(()=>{z(h,"x",`${e(p).x??""}px`),z(h,"y",`${e(p).y??""}px`),z(h,"width",`${e(p).width??""}px`),z(h,"height",`${e(p).height??""}px`)}),w(x,h)}),M(x=>r=Ne(n,"",r,x),[()=>({top:`${o.top??""}px`,left:`${o.left??""}px`,width:`${o.width??""}px`,height:`${o.height??""}px`})]),w(k,n)}var $e=N('<div class="contentBox svelte-1p90mmv"></div>'),et=N('<div class="info-item svelte-1p90mmv"><div class="attribute svelte-1p90mmv">Gap:</div> <div class="value"> </div></div>'),tt=N('<div class="value"> </div>'),ot=N('<div class="info-item svelte-1p90mmv"><div class="attribute svelte-1p90mmv">Width:</div> <div class="value"> </div></div> <div class="info-item svelte-1p90mmv"><div class="attribute svelte-1p90mmv">Height:</div> <div class="value"> </div></div> <!> <div class="info-item svelte-1p90mmv"><div class="attribute svelte-1p90mmv">Margin:</div> <div class="value"> </div></div> <div class="info-item svelte-1p90mmv"><div class="attribute svelte-1p90mmv">Padding:</div> <div class="value"> </div></div> <div class="info-item svelte-1p90mmv"><div class="attribute svelte-1p90mmv">Role:</div> <div class="value"> </div></div> <div class="info-item svelte-1p90mmv"><div class="attribute svelte-1p90mmv">Class Name:</div> <div class="info-classlist svelte-1p90mmv"></div></div>',1),at=N('<div class="overlay svelte-1p90mmv"><div class="borderBox svelte-1p90mmv"></div> <div class="marginBox svelte-1p90mmv"></div> <div class="paddingBox svelte-1p90mmv"></div> <!></div> <div><!></div>',1);function it(k,o){fe(o,!0);let n,r,B,l,c,i=u(void 0),s=u(void 0),x=u(void 0),p=u(void 0),h=u(!1),R=u(me([])),H=u(void 0),P=u(void 0),J=u(void 0),U=u(void 0),X=u(void 0),Y=u(void 0),K=u(void 0),I=u(void 0),T=u(void 0),G=u(void 0);function A(){if(!e(p)){r?.style&&(r.style.display="none"),n?.style&&(n.style.display="none"),d(i,null),d(s,null),d(x,null);return}n.style.display="block";const a=e(p).getBoundingClientRect(),m=getComputedStyle(e(p));d(T,document.body.scrollTop,!0),d(G,document.body.scrollLeft,!0),d(h,(m.display==="grid"||m.display==="flex")&&e(p).children.length>0,!0);const _=e(p).tagName,L=Array.from(e(p).classList);d(x,{tagName:_,classList:L,width:parseFloat(m.width),height:parseFloat(m.height),background:m.backgroundColor,gap:m.gap,rowGap:m.rowGap,columnGap:m.columnGap},!0),d(i,{top:parseFloat(m.marginTop),right:parseFloat(m.marginRight),bottom:parseFloat(m.marginBottom),left:parseFloat(m.marginLeft)},!0),d(s,{top:parseFloat(m.paddingTop),right:parseFloat(m.paddingRight),bottom:parseFloat(m.paddingBottom),left:parseFloat(m.paddingLeft)},!0),d(H,e(T)+a.top-e(i).top),d(J,a.height+e(i).top+e(i).bottom),d(U,a.width+e(i).left+e(i).right);const C=e(H)+e(J);d(P,e(G)+a.left-e(i).left);const E=e(P)+e(U);n.style.top=e(H)+"px",n.style.left=e(P)+"px",n.style.width=e(U)+"px",n.style.height=e(J)+"px",B.style.borderWidth=`${e(i).top}px ${e(i).right}px ${e(i).bottom}px ${e(i).left}px`,l.style.top=e(i).top+"px",l.style.left=e(i).left+"px",l.style.width=a.width+"px",l.style.height=a.height+"px",l.style.borderWidth=`${e(s).top}px ${e(s).right}px ${e(s).bottom}px ${e(s).left}px`,d(X,e(i).top+e(s).top),d(Y,e(i).left+e(s).left),d(K,a.width-e(s).left-e(s).right),d(I,a.height-e(s).top-e(s).bottom),e(h)?Z(e(p),e(T),e(G)):c&&(c.style.top=e(X)+"px",c.style.left=e(Y)+"px",c.style.width=e(K)+"px",c.style.height=e(I)+"px"),O(e(H),C,e(T),e(P),e(G),E,e(i))}function Z(a,m,_){d(R,Array.from(a.children).map(L=>{const{marginTop:C,marginLeft:E,marginRight:t,marginBottom:v}=getComputedStyle(L),g=L.getBoundingClientRect();return{y:m+g.top-e(H)-e(i).top-e(s).top-parseFloat(C),x:_+g.left-e(P)-e(i).left-e(s).left-parseFloat(E),width:g.width+parseFloat(E)+parseFloat(t),height:g.height+parseFloat(C)+parseFloat(v)}}),!0)}function O(a,m,_,L,C,E,t){if(!r)return;const v=document.body.getBoundingClientRect(),g=130+(e(h)?20:0)+e(x).classList.length*20,F=225,f=v.height,W=v.width,xe=a-_-g>0,de=m-_+g<f,ye=L-E+F<W;r.style.bottom="unset",de?(r.style.top=m+t.top+t.bottom+8+"px",r.classList.add("infobox-bottom"),r.classList.remove("infobox-top")):xe?(r.style.top=a+5-g+"px",r.classList.add("infobox-top"),r.classList.remove("infobox-bottom")):(r.style.top="unset",r.style.bottom=-_+"px",r.classList.remove("infobox-top"),r.classList.remove("infobox-bottom")),ye?(r.style.left=L+"px",r.style.right="unset",r.classList.add("infobox-left"),r.classList.remove("infobox-right")):(r.style.left="unset",r.style.right=W-C+"px",r.classList.add("infobox-right"),r.classList.remove("infobox-left")),r.style.display="block"}const Q=a=>{a.target&&a.target!==n&&!n?.contains(a.target)&&(d(p,a.target,!0),A())},ie=a=>{n&&!n.contains(a.relatedTarget)&&(d(i,null),d(s,null),d(x,null),d(p,null),n.style.display="none",r.style.display="none")};pe(()=>{o.contentPane&&(o.contentPane.addEventListener("mousemove",Q),o.contentPane.addEventListener("mouseout",ie),document.body.addEventListener("scroll",A,{passive:!0}))}),Te(()=>{o.contentPane.removeEventListener("mousemove",Q),o.contentPane.removeEventListener("mouseout",ie),document.body.removeEventListener("scroll",A)});var re=at(),$=V(re),S=y(b($),2);j(S,a=>B=a,()=>B);var ne=y(S,2);j(ne,a=>l=a,()=>l);var le=y(ne,2);{var ue=a=>{{let m=Re(()=>e(i)?.top+e(s)?.top),_=Re(()=>e(i)?.left+e(s)?.left);Ze(a,{get top(){return e(m)},get left(){return e(_)},get width(){return e(K)},get height(){return e(I)},get childElements(){return e(R)}})}},ee=a=>{var m=$e();j(m,_=>c=_,()=>c),w(a,m)};q(le,a=>{e(h)?a(ue):a(ee,!1)})}j($,a=>n=a,()=>n);var te=y($,2);let oe;var se=b(te);{var he=a=>{var m=ot(),_=V(m),L=y(b(_),2),C=b(L),E=y(_,2),t=y(b(E),2),v=b(t),g=y(E,2);{var F=ae=>{var ve=et(),ce=y(b(ve),2),be=b(ce);M(()=>D(be,`${e(x).gap??""}
2
- ${e(x).columnGap??""}
3
- ${e(x).rowGap??""}`)),w(ae,ve)};q(g,ae=>{e(h)&&ae(F)})}var f=y(g,2),W=y(b(f),2),xe=b(W),de=y(f,2),ye=y(b(de),2),Ge=b(ye),He=y(de,2),Ae=y(b(He),2),Me=b(Ae),Ie=y(He,2),We=y(b(Ie),2);Le(We,21,()=>e(x).classList,Fe,(ae,ve)=>{var ce=tt(),be=b(ce);M(()=>D(be,e(ve))),w(ae,ce)}),M(()=>{D(C,`${e(x).width??""}px`),D(v,`${e(x).height??""}px`),D(xe,`${e(i).top??""}${e(i).top!==0?"px":""}
4
- ${e(i).right??""}${e(i).right!==0?"px":""}
5
- ${e(i).bottom??""}${e(i).bottom!==0?"px":""}
6
- ${e(i).left??""}${e(i).left!==0?"px":""}`),D(Ge,`${e(s).top??""}${e(s).top!==0?"px":""}
7
- ${e(s).right??""}${e(s).right!==0?"px":""}
8
- ${e(s).bottom??""}${e(s).bottom!==0?"px":""}
9
- ${e(s).left??""}${e(s).left!==0?"px":""}`),D(Me,e(x).tagName)}),w(a,m)};q(se,a=>{e(x)&&e(i)&&e(s)&&e(p)&&a(he)})}j(te,a=>r=a,()=>r),M(a=>oe=Ee(te,1,"infobox infobox-left infobox-right infobox-bottom infobox-top svelte-1p90mmv",null,oe,a),[()=>({dark:o.appTheme==="dark"})]),w(k,re),ge()}var rt=N("<div></div>");function nt(k,o){fe(o,!0);let n,r;function B(){const c=document.getElementById("garden_app").getBoundingClientRect(),i=document.body.getBoundingClientRect(),s=Math.max(c.height,i.height),x=Math.max(c.width,i.width);n.style.margin=o.appMargin;const p=o.gridSettings.size,h=o.gridSettings.color;n.style.backgroundSize=`${p}px ${p}px`;const R=getComputedStyle(n);n.style.width=`calc(${x}px - ${R.marginLeft} - ${R.marginRight})`,n.style.height=`calc(${s}px - ${R.marginTop} - ${R.marginBottom})`,o.gridSettings.style==="lined"&&(n.style.backgroundImage=`linear-gradient(to right, ${h} 1px, transparent 1px), linear-gradient(to bottom, ${h} 1px, transparent 1px)`),o.gridSettings.style==="dotted"&&(n.style.top=`-${p/2}px`,n.style.left=`-${p/2}px`,n.style.backgroundImage=`radial-gradient(circle, ${h} 1px, transparent 1px)`)}pe(()=>{o.contentPane&&(B(),r=new ResizeObserver(()=>{B()}),r.observe(o.contentPane),r.observe(document.body))}),Te(()=>{r.disconnect()});var l=rt();j(l,c=>n=c,()=>n),M(()=>Ee(l,1,Oe({grid:!0,lined:o.gridSettings.style==="lined",dotted:o.gridSettings.style==="dotted"}),"svelte-17fzfog")),w(k,l),ge()}var lt=N('<!> <!> <div id="garden_app"><!></div>',1);function st(k,o){fe(o,!0);let n=we(o,"componentMap",19,()=>({})),r=we(o,"dasMap",19,()=>({})),B=o.config.hookTimeout|5e3,l=u(me({})),c=u(me({})),i,s=u(!1),x=u(void 0),p,h,R,H=u(void 0),P={},J,U,X=u(!1),Y=u(!1),K=u(me({})),I=[],T=[],G=[],A=[],Z=[],O=u(void 0),Q=u(!1);pe(()=>{d(Q,!0)}),window.addEventListener("message",t=>{if(o.config.themeHandler&&o.config.themeHandler(t.data.theme),d(s,t.data.stageSize==="full"),d(X,t.data.showInspector===!0),d(Y,t.data.showGrid===!0),d(K,t.data.gridSettings,!0),d(l,r()[t.data.componentName],!0),d(c,e(l)?.examples?.find(v=>v.title===t.data.selectedExample)??{},!0),J=R!==t.data.componentName,R=t.data.componentName||"Welcome",U=i!==t.data.selectedExample,i=t.data.selectedExample,d(x,t.data.appTheme,!0),d(H,n()?.[R],!0),o.config.devmodus){P={};return}else re(e(H),e(c),e(l))});async function ie(t){if(!t)return _e;for(const v in o.config.renderer)if(new RegExp(v+"$").test(t))return o.config.renderer[v];return _e}async function re(t,v,g){if(o.config.renderer){const F=await ie(g?.file);F!==p&&await le(F)}await ne();try{h?.updateComponent({component:t,selectedExample:v,das:g,decorators:g?.decorators,afterRenderHook:$})}catch(F){console.error(F)}}async function $(){await ee(Z)}let S=[];async function ne(){if(J){Z=[e(c)?.play],A=e(l)?.beforeAll?[e(l)?.beforeAll]:[];const t=e(l)?.hooks?S.filter(f=>!e(l)?.hooks.find(W=>W===f)):S,v=S.length>0?e(l)?.hooks.filter(f=>!S.find(W=>f===W)):e(l)?.hooks??[];S=e(l)?.hooks??[];const g=S.filter(f=>f.before).map(f=>f.before)??[];T=[...T,...t.filter(f=>f.afterAll).map(f=>f.afterAll)],A=[...v.filter(f=>f.beforeAll).map(f=>f.beforeAll),...A],G=[...g,e(l)?.before,e(c)?.before].filter(f=>!!f),await ee([...I,...T,...A,...G]);const F=S.filter(f=>f.after).map(f=>f.after)??[];T=e(l)?.afterAll?[e(l)?.afterAll]:[],I=[e(c)?.after,e(l)?.after,...F].filter(f=>!!f),A=[]}else U&&(Z=[e(c)?.play],G=[e(l)?.before,e(c)?.before],await ee([...I,...G]),I=[e(c)?.after,e(l)?.after])}async function le(t){try{await h?.destroy()}catch(v){console.error("Could not destroy current renderer",v)}h=await t.create()}De(()=>{o.config.devmodus||le(_e)});function ue(t){e(l).out&&e(l).out.forEach(v=>{if(t.detail[v.name]&&(console.log(t.detail[v.name]),e(c).redirect&&e(c).redirect[v.name])){const g=e(c).redirect[v.name];P[g]=t.detail[v.name]}})}async function ee(t){for(const v of t)if(v)try{await Promise.race([te(B),v()])}catch(g){console.error(g)}}function te(t){return new Promise((v,g)=>{setTimeout(()=>g(new Error("Timeout on")),t)})}var oe=lt(),se=V(oe);{var he=t=>{it(t,{get contentPane(){return e(O)},get appTheme(){return e(x)}})};q(se,t=>{e(Q)&&e(X)&&e(O)&&t(he)})}var a=y(se,2);{var m=t=>{{let v=Re(()=>e(s)?"0.5rem 0.5rem 0":0);nt(t,{get gridSettings(){return e(K)},get contentPane(){return e(O)},get appMargin(){return e(v)}})}};q(a,t=>{e(Q)&&e(Y)&&t(m)})}var _=y(a,2);let L;var C=b(_);{var E=t=>{var v=ke(),g=V(v);je(g,()=>e(H),(F,f)=>{f(F,qe(()=>e(c)?.input,()=>P,{$$events:{out:ue}}))}),w(t,v)};q(C,t=>{o.config.devmodus&&e(H)&&(e(l)?.file??"").indexOf(".svelte")>0&&t(E)})}j(_,t=>d(O,t),()=>e(O)),M(t=>L=Ee(_,1,"svelte-16w9tv2",null,L,t),[()=>({full:e(s)})]),w(k,oe),ge()}Be(st,{target:document.body,props:{componentMap:Ue,dasMap:Je,config:Ke}});
@@ -1,19 +0,0 @@
1
- .container.svelte-1pql0kc{display:flex;flex-direction:column;flex-wrap:nowrap;width:100%;height:100%;overflow-y:auto}.top.svelte-1pql0kc{flex-grow:0;flex-shrink:0;border-bottom:0;border-radius:.625rem .625rem 0 0;overflow:hidden}.dragbar.svelte-1pql0kc{flex-grow:0;flex-shrink:0;height:.188rem;background-color:var(--c-primary);cursor:row-resize;z-index:10}.dragging.svelte-1pql0kc,.dragbar.svelte-1pql0kc:hover{background-color:var(--c-primary);transform:scaleY(2)}.resizepane-container.svelte-mmou7f{display:grid;grid-template:min-content 1.25rem / min-content 1.25rem;width:100%;height:100%;overflow:auto}.dragbar.svelte-mmou7f{display:flex;flex-grow:0;flex-shrink:0;justify-content:center;align-items:center;height:100%;width:100%;background-color:var(--c-dragbar-bg);z-index:10}.dragbar.svelte-mmou7f:hover{background-color:var(--c-dragbar-bg-hover)}.vertical.svelte-mmou7f{width:1.25rem;border-top:1px solid var(--c-dragbar-bg);border-right:1px solid var(--c-dragbar-bg);border-radius:0 .625rem 0 0;cursor:ew-resize}.vertical.svelte-mmou7f .dragbar-icon:where(.svelte-mmou7f){width:.25rem;height:60%;max-height:3.75rem;background-color:var(--c-dragbar-icon);border-radius:1rem}.horizontal.svelte-mmou7f{height:1.25rem;border-bottom:1px solid var(--c-dragbar-bg);border-left:1px solid var(--c-dragbar-bg);cursor:ns-resize}.horizontal.svelte-mmou7f .dragbar-icon:where(.svelte-mmou7f){width:60%;max-width:3.75rem;height:.25rem;background-color:var(--c-dragbar-icon);border-radius:1rem}.corner.svelte-mmou7f{width:1.25rem;height:1.25rem;border-right:1px solid var(--c-dragbar-bg);border-bottom:1px solid var(--c-dragbar-bg);cursor:nwse-resize}.corner.svelte-mmou7f .dragbar-icon:where(.svelte-mmou7f){width:1rem;height:.25rem;transform:rotate(-45deg);background-color:var(--c-dragbar-icon);border-radius:1rem}.dragbar.disabled.svelte-mmou7f{display:none}.resizepane-container.disabled.svelte-mmou7f{display:flex;justify-content:center}:root{--h-panelnav: 2.375rem}.panel_container.svelte-1opzoal{position:relative;overflow:hidden;flex:1;height:100%}.panel_nav.svelte-1opzoal{position:sticky;top:0;display:flex;justify-content:space-between;align-items:center;width:100%;height:var(--h-panelnav);background-color:var(--c-basic-75);border-bottom:1px solid var(--c-bg-body);overflow-x:auto}.panel_nav.svelte-1opzoal nav:where(.svelte-1opzoal){margin:0 1.25rem 0 0}.panel_nav.svelte-1opzoal nav:where(.svelte-1opzoal) ul:where(.svelte-1opzoal){display:flex;overflow-x:auto}.panel_nav.svelte-1opzoal nav:where(.svelte-1opzoal) li:where(.svelte-1opzoal) button:where(.svelte-1opzoal){position:relative;display:flex;flex-direction:column;justify-content:center;align-items:center;padding:0 1.25rem;height:calc(var(--h-panelnav) - 1px);font-size:.875rem;color:var(--c-basic-700);white-space:nowrap;text-transform:capitalize;overflow:hidden}.panel_nav.svelte-1opzoal nav:where(.svelte-1opzoal) li:where(.svelte-1opzoal) button:where(.svelte-1opzoal) .dot:where(.svelte-1opzoal){display:block;width:.313rem;height:.313rem;background-color:transparent;border-radius:50%}.panel_nav.svelte-1opzoal nav:where(.svelte-1opzoal) li:where(.svelte-1opzoal) button.active:where(.svelte-1opzoal) .dot:where(.svelte-1opzoal){background-color:var(--c-primary)}.panel_nav.svelte-1opzoal nav:where(.svelte-1opzoal) li:where(.svelte-1opzoal) button:where(.svelte-1opzoal):hover,.panel_nav.svelte-1opzoal nav:where(.svelte-1opzoal) li:where(.svelte-1opzoal) button:where(.svelte-1opzoal):focus-visible{color:var(--c-primary);font-weight:500;background-color:var(--c-basic-100)}.panel_nav.svelte-1opzoal nav:where(.svelte-1opzoal) li:where(.svelte-1opzoal) button:where(.svelte-1opzoal):focus-visible{background-color:var(--c-basic-150)}.panel_nav.svelte-1opzoal nav:where(.svelte-1opzoal) li:where(.svelte-1opzoal) button.active:where(.svelte-1opzoal){color:var(--c-primary);font-weight:500;background-color:var(--c-primary-bg)}.panel_toggle.svelte-1opzoal{padding:0 .75rem;height:100%;background:none}.is-hidden.svelte-1opzoal{position:absolute!important;overflow:hidden;width:1px;height:1px;padding:0;border:0;clip:rect(1px,1px,1px,1px)}.panel_toggle.svelte-1opzoal svg:where(.svelte-1opzoal){margin-top:.188rem;height:1.375rem;color:var(--c-basic-700)}.panel_toggle.svelte-1opzoal:hover svg:where(.svelte-1opzoal),.panel_toggle.svelte-1opzoal:focus-visible svg:where(.svelte-1opzoal){color:var(--c-primary)}.panel_toggle.svelte-1opzoal:focus-visible{background-color:var(--c-basic-150)}.panel_pane.svelte-1opzoal{position:absolute;top:var(--h-panelnav);right:0;bottom:0;left:0;padding:1.25rem;width:100%;overflow-y:auto}.examples.svelte-uqxlqe{list-style:none;margin:0;padding:0}.examples.svelte-uqxlqe li:where(.svelte-uqxlqe) button:where(.svelte-uqxlqe){display:flex;align-items:center;justify-items:flex-start;margin:0;padding:.5rem .5rem .5rem 1.25rem;width:100%;font-size:.9rem;color:var(--c-basic-600);text-align:left}.examples.svelte-uqxlqe li:where(.svelte-uqxlqe) button:where(.svelte-uqxlqe) .dot:where(.svelte-uqxlqe){display:block;margin:0 .5rem 0 0;height:.375rem;width:.375rem;background-color:transparent;border-radius:50%}.examples.svelte-uqxlqe li.active:where(.svelte-uqxlqe) button:where(.svelte-uqxlqe) .dot:where(.svelte-uqxlqe){background-color:var(--c-primary)}.examples.svelte-uqxlqe li:where(.svelte-uqxlqe):nth-child(odd) button:where(.svelte-uqxlqe){background-color:var(--c-basic-50)}.examples.svelte-uqxlqe li:where(.svelte-uqxlqe) button:where(.svelte-uqxlqe):hover,.examples.svelte-uqxlqe li:where(.svelte-uqxlqe) button:where(.svelte-uqxlqe):focus-visible{color:var(--c-primary);font-weight:500;background-color:var(--c-basic-150)}.examples.svelte-uqxlqe li.active:where(.svelte-uqxlqe) button:where(.svelte-uqxlqe){color:var(--c-primary);font-weight:500;background-color:var(--c-primary-bg)}.examples.svelte-uqxlqe li.active:where(.svelte-uqxlqe) button:where(.svelte-uqxlqe):focus-visible{background-color:var(--c-basic-150)}.markdown-body{--color-prettylights-syntax-comment: #6e7781;--color-prettylights-syntax-constant: #0550ae;--color-prettylights-syntax-entity: #8250df;--color-prettylights-syntax-storage-modifier-import: #24292f;--color-prettylights-syntax-entity-tag: #116329;--color-prettylights-syntax-keyword: #cf222e;--color-prettylights-syntax-string: #0a3069;--color-prettylights-syntax-variable: #953800;--color-prettylights-syntax-brackethighlighter-unmatched: #82071e;--color-prettylights-syntax-invalid-illegal-text: #f6f8fa;--color-prettylights-syntax-invalid-illegal-bg: #82071e;--color-prettylights-syntax-carriage-return-text: #f6f8fa;--color-prettylights-syntax-carriage-return-bg: #cf222e;--color-prettylights-syntax-string-regexp: #116329;--color-prettylights-syntax-markup-list: #3b2300;--color-prettylights-syntax-markup-heading: #0550ae;--color-prettylights-syntax-markup-italic: #24292f;--color-prettylights-syntax-markup-bold: #24292f;--color-prettylights-syntax-markup-deleted-text: #82071e;--color-prettylights-syntax-markup-deleted-bg: #ffebe9;--color-prettylights-syntax-markup-inserted-text: #116329;--color-prettylights-syntax-markup-inserted-bg: #dafbe1;--color-prettylights-syntax-markup-changed-text: #953800;--color-prettylights-syntax-markup-changed-bg: #ffd8b5;--color-prettylights-syntax-markup-ignored-text: #eaeef2;--color-prettylights-syntax-markup-ignored-bg: #0550ae;--color-prettylights-syntax-meta-diff-range: #8250df;--color-prettylights-syntax-brackethighlighter-angle: #57606a;--color-prettylights-syntax-sublimelinter-gutter-mark: #8c959f;--color-prettylights-syntax-constant-other-reference-link: #0a3069;--color-fg-default: #24292f;--color-fg-muted: #57606a;--color-fg-subtle: #6e7781;--color-canvas-default: #ffffff;--color-canvas-subtle: hsl(168, 8%, 94%);--color-border-default: #d0d7de;--color-border-muted: hsla(210, 18%, 87%, 1);--color-neutral-muted: var(--c-basic-150);--color-accent-fg: #0969da;--color-accent-emphasis: #0969da;--color-attention-subtle: #fff8c5;--color-danger-fg: #cf222e}.dark .markdown-body{--color-prettylights-syntax-comment: #8b949e;--color-prettylights-syntax-constant: #79c0ff;--color-prettylights-syntax-entity: #d2a8ff;--color-prettylights-syntax-storage-modifier-import: #c9d1d9;--color-prettylights-syntax-entity-tag: #7ee787;--color-prettylights-syntax-keyword: #ff7b72;--color-prettylights-syntax-string: #a5d6ff;--color-prettylights-syntax-variable: #ffa657;--color-prettylights-syntax-brackethighlighter-unmatched: #f85149;--color-prettylights-syntax-invalid-illegal-text: #f0f6fc;--color-prettylights-syntax-invalid-illegal-bg: #8e1519;--color-prettylights-syntax-carriage-return-text: #f0f6fc;--color-prettylights-syntax-carriage-return-bg: #b62324;--color-prettylights-syntax-string-regexp: #7ee787;--color-prettylights-syntax-markup-list: #f2cc60;--color-prettylights-syntax-markup-heading: #1f6feb;--color-prettylights-syntax-markup-italic: #c9d1d9;--color-prettylights-syntax-markup-bold: #c9d1d9;--color-prettylights-syntax-markup-deleted-text: #ffdcd7;--color-prettylights-syntax-markup-deleted-bg: #67060c;--color-prettylights-syntax-markup-inserted-text: #aff5b4;--color-prettylights-syntax-markup-inserted-bg: #033a16;--color-prettylights-syntax-markup-changed-text: #ffdfb6;--color-prettylights-syntax-markup-changed-bg: #5a1e02;--color-prettylights-syntax-markup-ignored-text: #c9d1d9;--color-prettylights-syntax-markup-ignored-bg: #1158c7;--color-prettylights-syntax-meta-diff-range: #d2a8ff;--color-prettylights-syntax-brackethighlighter-angle: #8b949e;--color-prettylights-syntax-sublimelinter-gutter-mark: #484f58;--color-prettylights-syntax-constant-other-reference-link: #a5d6ff;--color-fg-default: #c9d1d9;--color-fg-muted: #8b949e;--color-fg-subtle: #6e7681;--color-canvas-default: #0d1117;--color-canvas-subtle: var(--c-basic-150);--color-border-default: #30363d;--color-border-muted: #21262d;--color-neutral-muted: var(--c-basic-150);--color-accent-fg: #58a6ff;--color-accent-emphasis: #1f6feb;--color-attention-subtle: rgba(187, 128, 9, .15);--color-danger-fg: #f85149}.markdown-body{-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%;margin:0;width:100%;max-width:900px;color:var(--color-fg-default);word-wrap:break-word}.markdown-body details,.markdown-body figcaption,.markdown-body figure{display:block}.markdown-body summary{display:list-item}.markdown-body [hidden]{display:none!important}.markdown-body a{background-color:transparent;color:var(--color-accent-fg);text-decoration:none}.markdown-body abbr[title]{border-bottom:none;text-decoration:underline dotted}.markdown-body b,.markdown-body strong{font-weight:var(--base-text-weight-semibold, 600)}.markdown-body dfn{font-style:italic}.markdown-body h1{margin:.67em 0;font-weight:var(--base-text-weight-semibold, 600);padding-bottom:.3em;font-size:1.75em;border-bottom:1px solid var(--color-border-muted)}.markdown-body mark{background-color:var(--color-attention-subtle);color:var(--color-fg-default)}.markdown-body small{font-size:90%}.markdown-body sub,.markdown-body sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}.markdown-body sub{bottom:-.25em}.markdown-body sup{top:-.5em}.markdown-body img{border-style:none;max-width:100%;box-sizing:content-box;background-color:var(--color-canvas-default)}.markdown-body code,.markdown-body kbd,.markdown-body pre,.markdown-body samp{font-family:monospace;font-size:1em}.markdown-body figure{margin:1em 40px}.markdown-body hr{box-sizing:content-box;overflow:hidden;background:transparent;border-bottom:1px solid var(--color-border-muted);height:.25em;padding:0;margin:24px 0;background-color:var(--color-border-default);border:0}.markdown-body input{font:inherit;margin:0;overflow:visible;font-family:inherit;font-size:inherit;line-height:inherit}.markdown-body [type=button],.markdown-body [type=reset],.markdown-body [type=submit]{-webkit-appearance:button}.markdown-body [type=checkbox],.markdown-body [type=radio]{box-sizing:border-box;padding:0}.markdown-body [type=number]::-webkit-inner-spin-button,.markdown-body [type=number]::-webkit-outer-spin-button{height:auto}.markdown-body [type=search]::-webkit-search-cancel-button,.markdown-body [type=search]::-webkit-search-decoration{-webkit-appearance:none}.markdown-body ::-webkit-input-placeholder{color:inherit;opacity:.54}.markdown-body ::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}.markdown-body a:hover{text-decoration:underline}.markdown-body ::placeholder{color:var(--color-fg-subtle);opacity:1}.markdown-body hr:before{display:table;content:""}.markdown-body hr:after{display:table;clear:both;content:""}.markdown-body table{border-spacing:0;border-collapse:collapse;display:block;width:max-content;max-width:100%;overflow:auto}.markdown-body td,.markdown-body th{padding:0}.markdown-body details summary{cursor:pointer}.markdown-body details:not([open])>*:not(summary){display:none!important}.markdown-body a:focus,.markdown-body [role=button]:focus,.markdown-body input[type=radio]:focus,.markdown-body input[type=checkbox]:focus{outline:2px solid var(--color-accent-fg);outline-offset:-2px;box-shadow:none}.markdown-body a:focus:not(:focus-visible),.markdown-body [role=button]:focus:not(:focus-visible),.markdown-body input[type=radio]:focus:not(:focus-visible),.markdown-body input[type=checkbox]:focus:not(:focus-visible){outline:solid 1px transparent}.markdown-body a:focus-visible,.markdown-body [role=button]:focus-visible,.markdown-body input[type=radio]:focus-visible,.markdown-body input[type=checkbox]:focus-visible{outline:2px solid var(--color-accent-fg);outline-offset:-2px;box-shadow:none}.markdown-body a:not([class]):focus,.markdown-body a:not([class]):focus-visible,.markdown-body input[type=radio]:focus,.markdown-body input[type=radio]:focus-visible,.markdown-body input[type=checkbox]:focus,.markdown-body input[type=checkbox]:focus-visible{outline-offset:0}.markdown-body kbd{display:inline-block;padding:3px 5px;font:11px ui-monospace,SFMono-Regular,SF Mono,Menlo,Consolas,Liberation Mono,monospace;line-height:10px;color:var(--color-fg-default);vertical-align:middle;background-color:var(--color-canvas-subtle);border:solid 1px var(--color-neutral-muted);border-bottom-color:var(--color-neutral-muted);border-radius:6px;box-shadow:inset 0 -1px 0 var(--color-neutral-muted)}.markdown-body h1,.markdown-body h2,.markdown-body h3,.markdown-body h4,.markdown-body h5,.markdown-body h6{margin-top:24px;margin-bottom:16px;font-weight:var(--base-text-weight-semibold, 600);line-height:1.25}.markdown-body h2{font-weight:var(--base-text-weight-semibold, 600);padding-bottom:.3em;font-size:1.375em;border-bottom:1px solid var(--color-border-muted)}.markdown-body h3{font-weight:var(--base-text-weight-semibold, 600);font-size:1.25em}.markdown-body h4{font-weight:var(--base-text-weight-semibold, 600);font-size:1.125em}.markdown-body h5{font-weight:var(--base-text-weight-semibold, 600);font-size:.875em}.markdown-body h6{font-weight:var(--base-text-weight-semibold, 600);font-size:.85em;color:var(--color-fg-muted)}.markdown-body p{margin-top:0;margin-bottom:10px}.markdown-body blockquote{margin:0;padding:0 1em;color:var(--color-fg-muted);border-left:.25em solid var(--color-border-default)}.markdown-body ul,.markdown-body ol{margin-top:0;margin-bottom:0;padding-left:2em}.markdown-body ol ol,.markdown-body ul ol{list-style-type:lower-roman}.markdown-body ul ul ol,.markdown-body ul ol ol,.markdown-body ol ul ol,.markdown-body ol ol ol{list-style-type:lower-alpha}.markdown-body dd{margin-left:0}.markdown-body tt,.markdown-body code,.markdown-body samp{font-family:ui-monospace,SFMono-Regular,SF Mono,Menlo,Consolas,Liberation Mono,monospace;font-size:.875rem}.markdown-body pre{margin-top:0;margin-bottom:0;font-family:ui-monospace,SFMono-Regular,SF Mono,Menlo,Consolas,Liberation Mono,monospace;font-size:.875rem;word-wrap:normal}.markdown-body input::-webkit-outer-spin-button,.markdown-body input::-webkit-inner-spin-button{margin:0;-webkit-appearance:none;appearance:none}.markdown-body:before{display:table;content:""}.markdown-body:after{display:table;clear:both;content:""}.markdown-body>*:first-child{margin-top:0!important}.markdown-body>*:last-child{margin-bottom:0!important}.markdown-body a:not([href]){color:inherit;text-decoration:none}.markdown-body p,.markdown-body blockquote,.markdown-body ul,.markdown-body ol,.markdown-body dl,.markdown-body table,.markdown-body pre,.markdown-body details{margin-top:0;margin-bottom:16px}.markdown-body blockquote>:first-child{margin-top:0}.markdown-body blockquote>:last-child{margin-bottom:0}.markdown-body h1 tt,.markdown-body h1 code,.markdown-body h2 tt,.markdown-body h2 code,.markdown-body h3 tt,.markdown-body h3 code,.markdown-body h4 tt,.markdown-body h4 code,.markdown-body h5 tt,.markdown-body h5 code,.markdown-body h6 tt,.markdown-body h6 code{padding:0 .2em;font-size:inherit}.markdown-body summary h1,.markdown-body summary h2,.markdown-body summary h3,.markdown-body summary h4,.markdown-body summary h5,.markdown-body summary h6{display:inline-block}.markdown-body summary h1,.markdown-body summary h2{padding-bottom:0;border-bottom:0}.markdown-body ul.no-list,.markdown-body ol.no-list{padding:0;list-style-type:none}.markdown-body ol[type=a]{list-style-type:lower-alpha}.markdown-body ol[type=A]{list-style-type:upper-alpha}.markdown-body ol[type=i]{list-style-type:lower-roman}.markdown-body ol[type=I]{list-style-type:upper-roman}.markdown-body ol[type="1"]{list-style-type:decimal}.markdown-body div>ol:not([type]){list-style-type:decimal}.markdown-body ul ul,.markdown-body ul ol,.markdown-body ol ol,.markdown-body ol ul{margin-top:0;margin-bottom:0}.markdown-body li>p{margin-top:16px}.markdown-body li+li{margin-top:.25em}.markdown-body dl{padding:0}.markdown-body dl dt{padding:0;margin-top:16px;font-size:.875rem;font-style:italic;font-weight:var(--base-text-weight-semibold, 600)}.markdown-body dl dd{padding:0 16px;margin-bottom:16px}.markdown-body table th{font-weight:var(--base-text-weight-semibold, 600)}.markdown-body table th,.markdown-body table td{padding:6px 13px;border:1px solid var(--color-border-default)}.markdown-body table tr{background-color:var(--color-canvas-default);border-top:1px solid var(--color-border-muted)}.markdown-body table tr:nth-child(2n){background-color:var(--color-canvas-subtle)}.markdown-body table img{background-color:transparent}.markdown-body img[align=right]{padding-left:20px}.markdown-body img[align=left]{padding-right:20px}.markdown-body code,.markdown-body tt{padding:.2em .4em;margin:0;font-size:85%;white-space:break-spaces;background-color:var(--color-neutral-muted);border-radius:6px}.markdown-body code br,.markdown-body tt br{display:none}.markdown-body del code{text-decoration:inherit}.markdown-body samp{font-size:85%}.markdown-body pre>code{padding:0;margin:0;word-break:normal;white-space:pre;background:transparent;border:0}.markdown-body pre{padding:16px;overflow:auto;font-size:85%;line-height:1.45;background-color:var(--color-canvas-subtle);border-radius:6px}.markdown-body pre code,.markdown-body pre tt{display:inline;max-width:auto;padding:0;margin:0;overflow:visible;line-height:inherit;word-wrap:normal;background-color:transparent;border:0}.markdown-body ::-webkit-calendar-picker-indicator{filter:invert(50%)}/*!
2
- Theme: GitHub
3
- Description: Light theme as seen on github.com
4
- Author: github.com
5
- Maintainer: @Hirse
6
- Updated: 2021-05-15
7
-
8
- Outdated base version: https://github.com/primer/github-syntax-light
9
- Current colors taken from GitHub's CSS
10
- */.hljs{color:#24292e}.hljs-doctag,.hljs-keyword,.hljs-meta .hljs-keyword,.hljs-template-tag,.hljs-template-variable,.hljs-type,.hljs-variable.language_{color:#d73a49}.hljs-title,.hljs-title.class_,.hljs-title.class_.inherited__,.hljs-title.function_{color:#6f42c1}.hljs-attr,.hljs-attribute,.hljs-literal,.hljs-meta,.hljs-number,.hljs-operator,.hljs-variable,.hljs-selector-attr,.hljs-selector-class,.hljs-selector-id{color:#005cc5}.hljs-regexp,.hljs-string,.hljs-meta .hljs-string{color:#032f62}.hljs-built_in,.hljs-symbol{color:#e36209}.hljs-comment,.hljs-code,.hljs-formula{color:#6a737d}.hljs-name,.hljs-quote,.hljs-selector-tag,.hljs-selector-pseudo{color:#22863a}.hljs-subst{color:#24292e}.hljs-section{color:#005cc5;font-weight:700}.hljs-bullet{color:#735c0f}.hljs-emphasis{color:#24292e;font-style:italic}.hljs-strong{color:#24292e;font-weight:700}.hljs-addition{color:#22863a;background-color:#f0fff4}.hljs-deletion{color:#b31d28;background-color:#ffeef0}/*!
11
- Theme: GitHub Dark
12
- Description: Dark theme as seen on github.com
13
- Author: github.com
14
- Maintainer: @Hirse
15
- Updated: 2021-05-15
16
-
17
- Outdated base version: https://github.com/primer/github-syntax-dark
18
- Current colors taken from GitHub's CSS
19
- */[data-theme=dark] .hljs{color:#c9d1d9}[data-theme=dark] .hljs-doctag,[data-theme=dark] .hljs-keyword,[data-theme=dark] .hljs-meta .hljs-keyword,[data-theme=dark] .hljs-template-tag,[data-theme=dark] .hljs-template-variable,[data-theme=dark] .hljs-type,[data-theme=dark] .hljs-variable.language_{color:#ff7b72}[data-theme=dark] .hljs-title,[data-theme=dark] .hljs-title.class_,[data-theme=dark] .hljs-title.class_.inherited__,[data-theme=dark] .hljs-title.function_{color:#d2a8ff}[data-theme=dark] .hljs-attr,[data-theme=dark] .hljs-attribute,[data-theme=dark] .hljs-literal,[data-theme=dark] .hljs-meta,[data-theme=dark] .hljs-number,[data-theme=dark] .hljs-operator,[data-theme=dark] .hljs-variable,[data-theme=dark] .hljs-selector-attr,[data-theme=dark] .hljs-selector-class,[data-theme=dark] .hljs-selector-id{color:#79c0ff}[data-theme=dark] .hljs-regexp,[data-theme=dark] .hljs-string,[data-theme=dark] .hljs-meta .hljs-string{color:#a5d6ff}[data-theme=dark] .hljs-built_in,[data-theme=dark] .hljs-symbol{color:#ffa657}[data-theme=dark] .hljs-comment,[data-theme=dark] .hljs-code,[data-theme=dark] .hljs-formula{color:#8b949e}[data-theme=dark] .hljs-name,[data-theme=dark] .hljs-quote,[data-theme=dark] .hljs-selector-tag,[data-theme=dark] .hljs-selector-pseudo{color:#7ee787}[data-theme=dark] .hljs-subst{color:#c9d1d9}[data-theme=dark] .hljs-section{color:#1f6feb;font-weight:700}[data-theme=dark] .hljs-bullet{color:#f2cc60}[data-theme=dark] .hljs-emphasis{color:#c9d1d9;font-style:italic}[data-theme=dark] .hljs-strong{color:#c9d1d9;font-weight:700}[data-theme=dark] .hljs-addition{color:#aff5b4;background-color:#033a16}[data-theme=dark] .hljs-deletion{color:#ffdcd7;background-color:#67060c}.stage_iframe.svelte-17n05ij{display:block;align-self:center;margin:auto;height:100%;width:100%;background-color:var(--c-basic-0)}.panel.svelte-17n05ij{display:flex;flex-direction:column;flex-wrap:nowrap;position:relative;margin-bottom:.375rem;height:100%;width:100%;background-color:var(--c-basic-0);border-top:0;border-radius:0 0 .625rem .625rem;overflow-y:auto}.component_link.svelte-1cnyrt6{display:flex;margin:0;padding:.188rem 0;width:100%;height:1.375rem;text-transform:initial;font-size:.813rem;color:var(--c-basic-600);line-height:1.2;font-weight:400}.component_link.svelte-1cnyrt6:hover,.component_link.svelte-1cnyrt6:focus-visible{color:var(--c-primary);font-weight:500;background-color:var(--c-basic-100)}.component_link-container.svelte-1cnyrt6{display:flex;align-items:center}.component_link.svelte-1cnyrt6 .component_dot:where(.svelte-1cnyrt6){margin:0 .5rem 0 -.219rem;height:.375rem;width:.375rem!important;background-color:transparent;border-radius:50%}.component_link.selected.svelte-1cnyrt6 .component_dot:where(.svelte-1cnyrt6){background-color:var(--c-primary)}.component_link.selected.svelte-1cnyrt6{margin-left:-1px;color:var(--c-primary);font-weight:600;background-color:var(--c-primary-bg);border-left:1px solid var(--c-primary)}.component_icon.svelte-1cnyrt6{display:flex;align-items:center;margin:0 .5rem 0 0;color:var(--c-basic-400)}.component_label.svelte-1cnyrt6{margin-right:.5rem;overflow:hidden;white-space:nowrap}.bookmarks.svelte-qxg2ml{display:none}@media (min-height: 500px) and (min-width: 500px){.bookmarks.svelte-qxg2ml{display:block}}.bookmarks_title.svelte-qxg2ml{display:flex;justify-content:flex-start;align-items:center;width:100%;margin:0;padding:.5rem .688rem .375rem}.bookmarks_title-icon.svelte-qxg2ml{display:flex;align-items:center;margin-right:.375rem;color:var(--c-primary)}.bookmarks_title-label.svelte-qxg2ml{display:flex;width:100%;font-size:.813rem;color:var(--c-basic-900);font-weight:600;text-transform:uppercase;overflow:hidden;white-space:nowrap}.border-btm.svelte-qxg2ml{margin:1rem 0 .5rem;height:1px;border-bottom:1px solid var(--c-bg-body)}.components.svelte-qxg2ml{margin-left:1.063rem;width:100%;border-left:1px solid var(--c-basic-250)}.component.svelte-qxg2ml{display:flex;height:1.375rem;width:100%;z-index:1}.close.svelte-qxg2ml{position:absolute;display:flex;justify-content:flex-end;align-items:center;right:0;width:1.75rem;height:1.375rem;z-index:9;background-color:var(--c-sidebar-bg)}.component:has(.component_link:hover) .close,.component:has(.component_link:focus-visible) .close{background-color:var(--c-basic-100)}.component:has(.close:hover) .component_link.selected,.component:has(.component_link.selected) .close{background-color:var(--c-primary-bg)!important}.component:has(.close:hover) .component_link,.close.svelte-qxg2ml:hover{background-color:var(--c-basic-100)}.close-icon.svelte-qxg2ml{display:block;color:var(--c-basic-600)}.close.svelte-qxg2ml:hover .close-icon:where(.svelte-qxg2ml),.close.svelte-qxg2ml:focus-visible .close-icon:where(.svelte-qxg2ml){color:var(--c-primary);stroke-width:4}.components.svelte-1nn9bvq{margin-left:1.063rem;border-left:1px solid var(--c-basic-250)}.component.svelte-1nn9bvq{height:1.375rem}.level-1.svelte-1nn9bvq{width:100%;margin:0;padding:0;border:none}.folder.svelte-1nn9bvq{display:block;margin:0}.folder_btn.svelte-1nn9bvq{display:flex;justify-content:flex-start;align-items:center;width:100%;margin:0;padding:.5rem .688rem .375rem}.folder_label.svelte-1nn9bvq{display:flex;width:100%;font-size:.813rem;color:var(--c-basic-900);font-weight:600;text-transform:uppercase;overflow:hidden;white-space:nowrap}.folder_btn.svelte-1nn9bvq:hover{background-color:var(--c-basic-100)}.folder_btn.svelte-1nn9bvq:hover .folder_label:where(.svelte-1nn9bvq){color:var(--c-primary)}.folder_btn.svelte-1nn9bvq:focus-visible{color:var(--c-primary);outline:none;background-color:var(--c-basic-100)}.folder_arrow.svelte-1nn9bvq{display:flex;align-items:center;width:.938rem;height:1.25rem;transition:.2s;margin-right:.375rem;color:var(--c-basic-900)}.folder_arrow.unfolded_icon.svelte-1nn9bvq{transform:rotate(180deg);transition:.2s}.folder_icon.svelte-1nn9bvq{display:flex;align-items:center;margin-right:.375rem;color:var(--c-primary)}.btn_level-3.svelte-1nn9bvq .folder_label:where(.svelte-1nn9bvq){font-size:.813rem}.filter_list.svelte-1nn9bvq .highlight{padding:0 .125rem;color:var(--c-primary);font-weight:700}.sidebar_container.svelte-1oee4bz{--w-sidebar: 260px;display:flex;flex-direction:column;position:relative;margin:.375rem 0;width:0;max-width:var(--w-sidebar);height:calc(100vh - .75rem);background-color:var(--c-sidebar-bg);border-radius:.625rem;transition:width .1s;overflow:hidden}.show-sidebar.svelte-1oee4bz{margin:.375rem .375rem .375rem 0;width:var(--w-sidebar);box-sizing:border-box}.project-identifier.svelte-1oee4bz{position:relative;display:flex;flex-shrink:0;flex-direction:row;justify-content:center;align-items:center;padding:.25rem .688rem;margin:0 0 .125rem;width:var(--w-sidebar);height:2.25rem;background-color:var(--c-sidebar);inline-size:var(--w-sidebar);overflow:hidden;white-space:nowrap;font-size:1.25rem;color:var(--c-primary);text-decoration:none;font-weight:900;line-height:1}.project-identifier.has-logo.svelte-1oee4bz{height:auto}.project-identifier.svelte-1oee4bz:focus-visible{color:var(--c-basic-500)}.project-identifier.svelte-1oee4bz span:where(.svelte-1oee4bz){overflow:hidden}.filter.svelte-1oee4bz{display:flex;flex-shrink:0;margin:0 0 .25rem;padding:.25rem .688rem;height:2.25rem}.filter_input.svelte-1oee4bz{padding:.125rem .125rem .125rem .688rem;width:100%;height:100%;color:var(--c-basic-900);background-color:var(--c-basic-0);border:1px solid var(--c-primary);border-radius:1.75rem}input.filter_input[type=search].svelte-1oee4bz{font-size:.813rem}input[type=search].svelte-1oee4bz::-webkit-search-cancel-button{-webkit-appearance:none}.filter_input.svelte-1oee4bz::placeholder{font-size:.813rem;color:var(--c-basic-500)}.filter_input.svelte-1oee4bz:focus-visible{background-color:var(--c-primary-bg)}.filter_zero-results.svelte-1oee4bz{width:var(--w-sidebar);padding:.5rem .688rem .375rem;text-transform:initial;font-size:.813rem;color:var(--c-basic-600);font-weight:400;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.components-nav.svelte-1oee4bz{display:flex;flex-shrink:1;overflow:hidden;visibility:visible;width:var(--w-sidebar);overflow-y:auto;margin:0 0 1rem}.controls.svelte-1oee4bz{display:none}@media (min-height: 35rem){.controls.svelte-1oee4bz{display:block;flex-shrink:0;width:var(--w-sidebar);height:103px;bottom:.375rem;padding:0;background-color:var(--c-sidebar);border-top:1px solid var(--c-bg-body);border-bottom-right-radius:.5rem;border-bottom-left-radius:.5rem;overflow:hidden}}.controls_btn.svelte-1oee4bz{display:flex;justify-content:flex-start;align-items:center;width:100%;height:2.125rem;margin:0;padding:0 .688rem;text-align:left}.controls_btn.svelte-1oee4bz:hover,.controls_btn.svelte-1oee4bz:focus-visible{background-color:var(--c-basic-100)}.controls_btn-icon.svelte-1oee4bz{margin:0;color:var(--c-basic-700)}.controls_btn-label.svelte-1oee4bz{position:relative;align-self:center;margin-left:.75rem;width:100%;color:var(--c-basic-900);font-size:.875rem;font-weight:400}.controls_btn.svelte-1oee4bz:hover .controls_btn-label:where(.svelte-1oee4bz),.controls_btn.svelte-1oee4bz:focus-visible .controls_btn-label:where(.svelte-1oee4bz),.controls_btn.svelte-1oee4bz:hover .controls_btn-icon:where(.svelte-1oee4bz),.controls_btn.svelte-1oee4bz:focus-visible .controls_btn-icon:where(.svelte-1oee4bz){color:var(--c-primary)}.dropdown.svelte-4algbe{position:relative;display:inline-block;z-index:99}.dropdown_items.svelte-4algbe{visibility:hidden;position:absolute;left:0;padding:.375rem 0 0;z-index:9}.dropdown_items-right.svelte-4algbe{left:unset;right:0}.dropdown_items.svelte-4algbe ul:where(.svelte-4algbe){margin:0;padding:0;background-color:var(--c-basic-50);filter:drop-shadow(0px 5px 5px rgba(0,0,0,.05)) drop-shadow(0 1px 3px rgba(0,0,0,.1));border-radius:.5rem;overflow:hidden}.dropdown_items.svelte-4algbe ul:where(.svelte-4algbe) li:where(.svelte-4algbe){display:block;list-style:none;margin:0;padding:0}.dropdown_items.svelte-4algbe ul:where(.svelte-4algbe) li:where(.svelte-4algbe) button:where(.svelte-4algbe){display:flex;align-items:center;justify-items:flex-start;width:100%;min-width:5rem;padding:.5rem;font-size:.75rem;color:var(--c-basic-900);font-weight:500;text-transform:capitalize;white-space:nowrap}.dropdown_items.svelte-4algbe ul:where(.svelte-4algbe) li:where(.svelte-4algbe) button:where(.svelte-4algbe) .dropdown_item-dot:where(.svelte-4algbe){display:block;margin:0 .5rem 0 0;height:.313rem;width:.313rem;background-color:transparent;border-radius:50%}.dropdown_items.svelte-4algbe ul:where(.svelte-4algbe) li:where(.svelte-4algbe) button.active:where(.svelte-4algbe) .dropdown_item-dot:where(.svelte-4algbe),.dropdown_items.svelte-4algbe ul:where(.svelte-4algbe) li:where(.svelte-4algbe) button.active:where(.svelte-4algbe):hover .dropdown_item-dot:where(.svelte-4algbe){background-color:var(--c-primary)}.dropdown_items.svelte-4algbe ul:where(.svelte-4algbe) li:where(.svelte-4algbe) button:where(.svelte-4algbe):hover,.dropdown_items.svelte-4algbe ul:where(.svelte-4algbe) li:where(.svelte-4algbe) button:where(.svelte-4algbe):focus-visible{color:var(--c-primary);background-color:var(--c-basic-100)}.dropdown_items.svelte-4algbe ul:where(.svelte-4algbe) li:where(.svelte-4algbe) button.active:where(.svelte-4algbe){color:var(--c-primary);font-weight:500;background-color:var(--c-primary-bg);border-color:var(--c-primary)}.dropdown.svelte-4algbe:hover>.dropdown_items:where(.svelte-4algbe),.dropdown.svelte-4algbe:focus-visible>.dropdown_items:where(.svelte-4algbe){display:block;visibility:visible}.topbar.svelte-y9l547{--h-topbar: 2.25rem;margin:.375rem 0;width:100%;height:var(--h-topbar);background-color:var(--c-topbar-bg);border-radius:.625rem}.topbar_container.svelte-y9l547{display:flex;justify-content:space-between;width:100%;height:100%;padding:0;z-index:999999}.topbar_nav.svelte-y9l547{display:flex;align-items:center}.topbar_btn.svelte-y9l547{display:flex;align-items:center;padding:0 .375rem;height:var(--h-topbar);background:none}.topbar_btn.svelte-y9l547:hover,.topbar_btn.svelte-y9l547:focus-visible{background-color:var(--c-basic-100)}.is-hidden.svelte-y9l547{position:absolute!important;overflow:hidden;width:1px;height:1px;padding:0;border:0;clip:rect(1px,1px,1px,1px)}.topbar_btn.svelte-y9l547 svg:where(.svelte-y9l547){height:1.125rem;color:var(--c-basic-700)}.topbar_btn.svelte-y9l547:hover svg:where(.svelte-y9l547),.topbar_btn.svelte-y9l547:focus-visible svg:where(.svelte-y9l547){color:var(--c-primary)}.is-first-btn.svelte-y9l547{border-radius:.5rem 0 0 .5rem}.is-last-btn.svelte-y9l547{border-radius:0 .5rem .5rem 0}@media (max-height: 499px){.bookmark_btn.svelte-y9l547,.reveal_btn.svelte-y9l547{display:none}}@media (max-width: 499px){.bookmark_btn.svelte-y9l547,.reveal_btn.svelte-y9l547,.openexternal_btn.svelte-y9l547{display:none}}.stagesize-value.svelte-y9l547{display:none}@media (min-width: 640px){.stagesize-value.svelte-y9l547{display:inline-flex;align-items:center;padding:0 1rem;font-size:.75rem}.stagesize-input.svelte-y9l547{padding:.25rem .375rem;width:42px;font-size:.75rem;font-family:ui-monospace,Menlo,Monaco,Cascadia Mono,Segoe UI Mono,Roboto Mono,Oxygen Mono,"Ubuntu Monospace",Source Code Pro,Fira Mono,Droid Sans Mono,Courier New,"monospace";color:var(--c-basic-600);text-align:right;background-color:transparent;border:1px solid var(--c-primary);border-radius:.125rem}.stagesize-input.svelte-y9l547:focus-visible{background-color:var(--c-primary-bg)}.stagesize-input.svelte-y9l547:disabled{border-color:transparent}.stagesize-value-multi_sign.svelte-y9l547{margin:0 .25rem;color:var(--c-basic-700)}}.stagesize-nav.svelte-y9l547{display:none}@media (min-width: 1280px){.stagesize-nav.svelte-y9l547{position:relative;display:inline-flex;background-color:var(--c-basic-100)}.stagesize-nav.svelte-y9l547 button:where(.svelte-y9l547){position:relative;display:flex;justify-content:center;flex-direction:column;align-self:center;height:var(--h-topbar);margin:0;padding:0 .25rem;background:none;overflow:hidden}.stagesize-nav.svelte-y9l547 button:where(.svelte-y9l547):hover,.stagesize-nav.svelte-y9l547 button:where(.svelte-y9l547):focus-visible{background-color:var(--c-basic-150)}.stagesize-nav.svelte-y9l547 svg:where(.svelte-y9l547){height:1.125rem;color:var(--c-basic-700);transition:.2s}.stagesize-nav.svelte-y9l547 button:where(.svelte-y9l547):hover svg:where(.svelte-y9l547),.stagesize-nav.svelte-y9l547 button:where(.svelte-y9l547):focus-visible svg:where(.svelte-y9l547),.stagesize-nav.svelte-y9l547 button.active:where(.svelte-y9l547) svg:where(.svelte-y9l547){color:var(--c-primary)}.stagesize-nav.svelte-y9l547 svg.landscape:where(.svelte-y9l547){transform:rotate(90deg);transition:.2s}.stagesize-nav.svelte-y9l547 .dot:where(.svelte-y9l547){display:block;position:absolute;left:50%;bottom:.125rem;transform:translate(-50%);height:.313rem;width:.313rem;background-color:transparent;border-radius:50%}.stagesize-nav.svelte-y9l547 button.active:where(.svelte-y9l547){background-color:var(--c-primary-bg)}.stagesize-nav.svelte-y9l547 button.active:where(.svelte-y9l547) .dot:where(.svelte-y9l547){background-color:var(--c-primary)}}button.topbar_btn.active.svelte-y9l547{background-color:var(--c-primary-bg)}button.topbar_btn.active.svelte-y9l547 .dot:where(.svelte-y9l547){background-color:var(--c-primary)}.sidebar.svelte-yh1ir7{flex-grow:0;flex-shrink:0}.garden.svelte-yh1ir7{display:flex;flex-direction:row;flex-wrap:nowrap;flex-grow:1;margin:0;padding:0 .375rem;width:100vw;height:100vh;overflow:hidden;background-color:var(--c-bg-body)}.main.svelte-yh1ir7{display:flex;flex-direction:column;width:100%;height:100vh;overflow-y:auto}.message.svelte-yh1ir7{display:inline-block;margin:1rem;padding:1rem;background-color:#fff;border-radius:.625rem}.click-completed.svelte-yh1ir7{margin:0 0 .75rem;font-size:120%;font-weight:500}.instruction.svelte-yh1ir7 button:where(.svelte-yh1ir7){padding:.125rem .75rem;background:var(--c-basic-150);border-radius:.375rem;font-size:90%;color:var(--c-basic-900);font-weight:600;text-transform:uppercase}*,:before,:after{box-sizing:border-box;border:0 solid #fff}*:focus,*:focus:not(:focus-visible){outline:none}html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;background-color:var(--c-bg-body)}body{margin:0;min-height:100vh;text-rendering:optimizeSpeed;line-height:1}blockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre{margin:0}a{text-decoration-skip-ink:auto}img,picture,embed,object,video{max-width:100%;width:auto;height:auto}img,video,canvas,audio,iframe,embed,object{display:block;border:none}input,button,textarea,select{font:inherit}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}:root{--c-primary: hsl(185, 80%, 40%);--c-primary-bg: hsl(185, 100%, 95%);--c-basic-0: hsl(216, 20%, 100%);--c-basic-50: hsl(216, 20%, 98%);--c-basic-75: hsl(216, 20%, 96%);--c-basic-100: hsl(216, 20%, 94%);--c-basic-150: hsl(216, 20%, 90%);--c-basic-200: hsl(216, 20%, 87%);--c-basic-250: hsl(216, 20%, 84%);--c-basic-300: hsl(216, 20%, 81%);--c-basic-400: hsl(216, 20%, 64%);--c-basic-500: hsl(216, 20%, 46%);--c-basic-600: hsl(216, 20%, 32%);--c-basic-700: hsl(216, 20%, 25%);--c-basic-800: hsl(216, 20%, 15%);--c-basic-900: hsl(216, 20%, 10%);--c-bg-body: var(--c-basic-200);--c-topbar-bg: var(--c-basic-0);--c-sidebar-bg: var(--c-basic-0);--c-dragbar-bg: var(--c-basic-100);--c-dragbar-bg-hover: var(--c-basic-200);--c-dragbar-icon: var(--c-basic-400)}[data-theme=dark]{--c-primary: hsl(185, 80%, 70%);--c-primary-bg: hsl(185, 80%, 17%);--c-basic-0: hsl(216, 30%, 5%);--c-basic-50: hsl(216, 30%, 10%);--c-basic-75: hsl(216, 30%, 14%);--c-basic-100: hsl(216, 30%, 18%);--c-basic-150: hsl(216, 30%, 22%);--c-basic-200: hsl(216, 30%, 25%);--c-basic-250: hsl(216, 30%, 30%);--c-basic-300: hsl(216, 30%, 33%);--c-basic-400: hsl(216, 30%, 46%);--c-basic-500: hsl(216, 30%, 64%);--c-basic-600: hsl(216, 30%, 83%);--c-basic-700: hsl(216, 30%, 90%);--c-basic-800: hsl(216, 30%, 96%);--c-basic-900: hsl(216, 30%, 98%);--c-bg-body: var(--c-basic-150);--c-topbar-bg: var(--c-basic-0);--c-sidebar-bg: var(--c-basic-0);--c-dragbar-bg: var(--c-basic-250);--c-dragbar-bg-hover: var(--c-basic-150);--c-dragbar-icon: var(--c-basic-500)}body{font-family:system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji";text-shadow:1px 1px 1px rgba(0,0,0,.004);-webkit-font-smoothing:antialiased;-moz-font-smoothing:antialiased}h1,h2,h3,h4,h5,h6{margin:0;color:var(--c-basic-600);line-height:1.2}p{margin:.5rem 0;font-size:.875rem;color:var(--c-basic-600);line-height:1.5}li{font-size:.875rem;color:var(--c-basic-600);line-height:1.5}a,a:visited{font-size:.875rem;color:var(--c-primary);line-height:1.5;text-decoration:underline;text-decoration-skip-ink:auto}nav ol,nav ul{margin:0;padding:0;list-style:none}nav li{display:block;margin:0;padding:0}nav a{display:block;margin:0;padding:0;text-decoration:none}button{cursor:pointer;background-color:transparent;border:none}input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}input[type=number]{-moz-appearance:textfield;appearance:textfield;margin:0}