gardenjs 0.9.1-alpha.8 → 1.0.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 (71) hide show
  1. package/.github/ISSUE_TEMPLATE/bug_report.md +25 -0
  2. package/.github/ISSUE_TEMPLATE/feature_request.md +19 -0
  3. package/CODE_OF_CONDUCT.md +132 -0
  4. package/LICENSE.md +1 -1
  5. package/README.md +43 -65
  6. package/bin/servegarden.js +237 -39
  7. package/dist/assets/frame-RnYSvR22.js +1 -0
  8. package/dist/assets/index-3qYjjQWR.css +19 -0
  9. package/dist/assets/index-CQErw-Lc.js +1 -0
  10. package/dist/assets/index-D8Rq1txs.js +48 -0
  11. package/dist/assets/index-DLbPO8Sw.js +9 -0
  12. package/dist/frame.html +4 -6
  13. package/dist/index.html +4 -5
  14. package/examples/garden_button.react.das.js +16 -0
  15. package/examples/garden_button.react.jsx +5 -0
  16. package/examples/garden_button.react.md +3 -0
  17. package/examples/garden_button.svelte.das.js +2 -2
  18. package/examples/garden_button.vue.das.js +2 -2
  19. package/frame.html +2 -2
  20. package/index.html +1 -1
  21. package/package.json +27 -18
  22. package/src/client/GardenApp.svelte +91 -41
  23. package/src/client/GardenFrame.svelte +145 -27
  24. package/src/client/assets/icons/logo.svg +1 -1
  25. package/src/client/assets/icons/logo_neg.svg +1 -0
  26. package/src/client/assets/icons/vegetables.svg +1 -0
  27. package/src/client/assets/scss/abstracts/root.css +24 -22
  28. package/src/client/assets/scss/base/general.css +5 -0
  29. package/src/client/assets/scss/base/typography.css +1 -1
  30. package/src/client/components/highlight/Highlight.js +7 -9
  31. package/src/client/components/sidebar/Sidebar.svelte +60 -124
  32. package/src/client/components/sidebar/SidebarNav.svelte +17 -36
  33. package/src/client/components/sidebar/SidebarNavLinks.svelte +7 -25
  34. package/src/client/components/splitpanes/HorizontalSplitPane.svelte +8 -2
  35. package/src/client/components/stage/Stage.svelte +12 -6
  36. package/src/client/components/stage/panel/PanelCode.svelte +17 -3
  37. package/src/client/components/stage/panel/PanelComponent.svelte +25 -34
  38. package/src/client/components/stage/panel/PanelStoriesNav.svelte +6 -3
  39. package/src/client/components/stage/raw_component_import_map.js +2 -0
  40. package/src/client/components/topbar/Topbar.svelte +55 -228
  41. package/src/client/gardenapp.js +1 -2
  42. package/src/client/logic/routing.js +7 -7
  43. package/src/client/logic/stage.js +53 -10
  44. package/src/client/router.js +15 -19
  45. package/src/codegenerator/base_generator.js +134 -43
  46. package/src/codegenerator/copy_base_classes.js +22 -25
  47. package/src/codegenerator/das_file_finder.js +97 -9
  48. package/src/codegenerator/shapes/assets/favicon.svg +1 -1
  49. package/src/codegenerator/shapes/frame.html +1 -1
  50. package/src/codegenerator/shapes/gardenframe/index.html +1 -1
  51. package/src/codegenerator/shapes/index.html +1 -1
  52. package/src/codegenerator/shapes/screenshottests/screenshottest.base.js +3 -3
  53. package/src/codegenerator/watchcl.js +1 -1
  54. package/src/config.js +3 -1
  55. package/src/renderer/HtmlRenderer.js +23 -0
  56. package/src/renderer/HtmlRenderer.svelte +14 -0
  57. package/src/server.js +49 -3
  58. package/vite.config.js +3 -7
  59. package/.babelrc +0 -3
  60. package/dist/assets/SvelteRenderer-ce389f35.js +0 -1
  61. package/dist/assets/frame-f3b8b4d1.js +0 -1
  62. package/dist/assets/index-25a31add.js +0 -54
  63. package/dist/assets/index-6f699dee.css +0 -19
  64. package/dist/assets/index-f4621b5a.js +0 -1
  65. package/src/renderer/SvelteRenderer.js +0 -16
  66. package/src/renderer/SvelteRenderer.svelte +0 -79
  67. package/src/renderer/VueRenderer.js +0 -20
  68. package/src/renderer/VueRenderer.vue +0 -20
  69. package/src/renderer/state.js +0 -10
  70. /package/dist/assets/{frame-1cd873e1.css → frame-BXMwehsH.css} +0 -0
  71. /package/src/codegenerator/shapes/{Hellogarden.svelte → Hellogarden.html} +0 -0
@@ -1,24 +1,26 @@
1
1
  #!/usr/bin/env node
2
2
 
3
- import { init } from '../src/codegenerator/watchcl.js'
4
- import { input, confirm } from '@inquirer/prompts'
5
3
  import checkbox from '@inquirer/checkbox'
6
- import { createServer } from '../src/server.js'
4
+ import { confirm, input } from '@inquirer/prompts'
5
+ import select from '@inquirer/select'
6
+ import { exec } from 'node:child_process'
7
7
  import fs from 'node:fs'
8
+ import { promisify } from 'node:util'
8
9
  import path, { dirname } from 'path'
9
10
  import { fileURLToPath } from 'url'
11
+ import { createServer } from '../src/server.js'
10
12
  const __filename = fileURLToPath(import.meta.url)
11
13
  const __dirname = dirname(__filename)
12
14
  const exampleSourceFolder = path.resolve(__dirname, '../examples') + '/'
15
+ const execAsync = promisify(exec)
13
16
 
14
17
  if (fs.existsSync('./garden.config.js')) {
15
- initAndCreateServer()
18
+ createNodeViteServer()
16
19
  } else {
17
20
  runSetupScript()
18
21
  }
19
22
 
20
- async function initAndCreateServer() {
21
- await init()
23
+ async function createNodeViteServer() {
22
24
  await createServer()
23
25
  }
24
26
 
@@ -31,53 +33,164 @@ async function runSetupScript() {
31
33
 
32
34
  const title = await input({ message: 'Enter your project title:' })
33
35
 
34
- const libraries = await checkbox({
35
- message: 'UI Library',
36
+ let libraries = await checkbox({
37
+ message: 'UI Library:',
38
+ required: true,
39
+ validate: (items) => {
40
+ if (items.length > 1 && items.some((item) => item.value === 'None')) {
41
+ return "'No Library' cannot be used in combination with another value"
42
+ }
43
+ return true
44
+ },
36
45
  choices: [
46
+ { name: 'No Library', value: 'None' },
37
47
  { name: 'Svelte', value: 'Svelte' },
38
48
  { name: 'Vue', value: 'Vue' },
39
49
  { name: 'React', value: 'React' },
40
50
  ],
41
51
  })
42
52
 
53
+ if (libraries.includes('None')) {
54
+ libraries = []
55
+ }
56
+
43
57
  const componentFolder = await input({
44
58
  message: 'Enter your component source folder:',
45
- default: 'src/',
59
+ default: './src/',
46
60
  })
47
61
 
48
62
  const shallCreateExample = await confirm({
49
63
  message: 'Should garden create an example component?',
50
64
  })
51
65
 
66
+ if (shallCreateExample) {
67
+ createExample({ libraries, componentFolder })
68
+ }
69
+
52
70
  separator()
53
71
  console.log('')
54
- console.log('Creating garden config file...:')
55
- console.log('')
72
+ if (libraries.length > 0) {
73
+ console.log(
74
+ 'For rendering the components for the selected libraries, you have to install the appropriate plugins.'
75
+ )
76
+ const shallInstallPlugins = await confirm({
77
+ message: 'Shall gardenjs install the necessary plugins?',
78
+ })
79
+ if (!shallInstallPlugins) {
80
+ console.log('If not yet installed, run the following commands')
81
+ for (const library of libraries) {
82
+ console.log('')
83
+ console.log(
84
+ `npm install @gardenjs/render-plugin-${library.toLowerCase()}`
85
+ )
86
+ }
87
+ } else {
88
+ const packman = await select({
89
+ message: 'Package manager:',
90
+ choices: [
91
+ { name: 'npm', value: 'npm', checked: true },
92
+ { name: 'pnpm', value: 'pnpm' },
93
+ { name: 'yarn', value: 'yarn' },
94
+ ],
95
+ })
96
+ packman && (await installPlugins(packman, libraries))
97
+ }
98
+ }
99
+ separator()
56
100
 
57
- createConfigFile({ title, libraries, componentFolder })
58
- if (shallCreateExample) {
59
- createExample({ libraries, componentFolder })
101
+ const shallCreateViteConfig = await confirm({
102
+ message:
103
+ 'You need a vite configuration file for gardenjs. Shall we create the file?',
104
+ })
105
+ if (shallCreateViteConfig) {
106
+ separator()
107
+ console.log('')
108
+ console.log('Creating garden.vite.config.js ...:')
109
+ console.log('')
110
+ createViteConfig(libraries)
111
+ } else {
112
+ if (libraries.some((library) => library === 'React')) {
113
+ console.log('')
114
+ console.log(
115
+ 'For using gardenjs with react, we have to tell vite to optimize the dependencies.'
116
+ )
117
+ console.log('Please add the following code to your vite config.')
118
+ console.log('')
119
+ console.log('...')
120
+ console.log('optimizeDeps: {')
121
+ console.log(' include: ["react-dom/client"],')
122
+ console.log('},')
123
+ console.log('...')
124
+ console.log('')
125
+ }
60
126
  }
61
127
 
62
128
  separator()
129
+ console.log('')
130
+ console.log('Creating garden.config.js ...:')
131
+ console.log('')
132
+
133
+ createConfigFile({ title, libraries, componentFolder })
134
+
63
135
  console.log('')
64
136
  console.log('Done. Edit garden.config.js file according to your needs.')
137
+ console.log('Run npm run garden again, to start gardenjs.')
138
+ separator()
65
139
  console.log('Happy gardening!')
140
+ separator()
66
141
  }
67
142
 
68
143
  function separator() {
69
144
  console.log('===================================')
70
145
  }
71
146
 
147
+ async function installPlugins(packman, libraries) {
148
+ const cmdStart = {
149
+ npm: 'npm install --save-dev ',
150
+ pnpm: 'pnpm add -D ',
151
+ yarn: 'yarn add -D ',
152
+ }[packman]
153
+ const cmd =
154
+ cmdStart +
155
+ libraries
156
+ .map((library) => {
157
+ return `@gardenjs/render-plugin-${library.toLowerCase()}`
158
+ })
159
+ .join(' ')
160
+ await runCommand(cmd)
161
+ }
162
+
163
+ async function runCommand(cmd) {
164
+ try {
165
+ console.log('Run:', cmd)
166
+ const { stdout, stderr } = await execAsync(cmd)
167
+
168
+ if (stderr) {
169
+ console.error(`Fehlerausgabe des Befehls: ${stderr}`)
170
+ return
171
+ }
172
+
173
+ console.log(`\n${stdout}`)
174
+ } catch (error) {
175
+ console.error(`Fehler beim Ausführen des Befehls: ${error.message}`)
176
+ }
177
+ }
178
+
179
+ const lib2FileExtension = {
180
+ React: '"[tj]sx"',
181
+ Svelte: '"svelte"',
182
+ Vue: '"vue"',
183
+ }
184
+
72
185
  function createConfigFile({ title, componentFolder, libraries }) {
73
186
  const importStmts = libraries
74
187
  .map((lib) => {
75
- return `import ${lib}RendererBuilder from "gardenjs/${lib.toLowerCase()}"`
188
+ return `import ${lib}RendererBuilder from "@gardenjs/render-plugin-${lib.toLowerCase()}"`
76
189
  })
77
190
  .join('\n')
78
191
  const renderer = libraries
79
192
  .map((lib) => {
80
- return `${lib.toLowerCase()}: ${lib}RendererBuilder,`
193
+ return `${lib2FileExtension[lib]}: ${lib}RendererBuilder,`
81
194
  })
82
195
  .join('\n ')
83
196
 
@@ -95,25 +208,36 @@ export default {
95
208
  serverport: 3010,
96
209
 
97
210
  // Stop auto opening Gardenjs on start:
98
- // "no_open_browser": true,
211
+ // no_open_browser: true,
212
+
213
+ // For garden development purposes only !!!
214
+ // If this option is set to true, the "Code" tab is not displayed in the panel. An empty stage is displayed instead of the custom welcome_page.
215
+ // devmodus: true,
99
216
 
100
217
  // This title is displayed above the navigation:
101
- project_title: "${title}",
218
+ // If the path to a logo is specified, "project_title" is used as the alt tag. Additional darkmode logo can be added.
219
+ project_title: '${title}',
220
+ // project_logo: './src/assets/logo.svg',
221
+ // project_logo_darkmode: './src/assets/logo_neg.svg',
102
222
 
103
- // Here you can set a path to your own start page:
104
- // "welcome_page": "/src/custom_welcome_page.${libraries[0]}",
223
+ // Here you can set a path to your own start page.
224
+ // The HTML file may only contain the body part, i.e. without the doctype, head and body tag:
225
+ // welcome_page: './src/custom_welcome_page.html',
226
+
227
+ // Show/hide the link to the docs in the sidebar:
228
+ docs_link: true,
105
229
 
106
230
  // vite config file:
107
- // vite_config: "./garden.vite.config.js",
231
+ vite_config: './garden.vite.config.js',
108
232
 
109
233
  // Each entry is output with its subpages in the page tree:
110
234
  structure: {
111
- components: "/${componentFolder}",
235
+ components: '${componentFolder}',
112
236
  },
113
237
 
114
238
  watch: {
115
- directories: ["./${componentFolder}"],
116
- include: [${watchLibFiles}, ".das.json", ".scss", ".css", ".less", ".js", ".ts"],
239
+ directories: ['${componentFolder}'],
240
+ include: [${watchLibFiles}, '.scss', '.css', '.less', '.js', '.ts'],
117
241
  },
118
242
 
119
243
  renderer: {
@@ -121,19 +245,19 @@ export default {
121
245
  },
122
246
 
123
247
  // Add global style files needed for your project:
124
- // "additional_style_files": [
248
+ // additional_style_files: [
125
249
  // 'src/assets/scss/main.scss'
126
250
  // ],
127
251
 
128
252
  // Edit or disable "Themes" depending on whether your app uses themes.
129
253
  // According to your requirements, you may also need to adjust the
130
254
  // "onThemeChange" function below accordingly.
131
- // "themes": [
255
+ // themes: [
132
256
  // {name: 'default', stageBg: 'white'},
133
257
  // {name: 'dark', stageBg: '#101010'}, // manually set default active theme on start {active: true, name: 'dark', stageBg: '#101010'},
134
258
  // {name: 'light', stageBg: '#eee'}
135
259
  // ],
136
- // "themeHandler": onThemeChange
260
+ // themeHandler: onThemeChange
137
261
  }
138
262
 
139
263
  //// Edit or disable the function "onThemeChange" according to your project (see also "themes" above):
@@ -148,6 +272,83 @@ export default {
148
272
  fs.writeFileSync('garden.config.js', content)
149
273
  }
150
274
 
275
+ function createViteConfig(libraries) {
276
+ const viteLibs = getViteImports(libraries)
277
+ const optionalPathImport = libraries.includes('Svelte')
278
+ ? 'import { join, resolve } from "node:path";'
279
+ : ''
280
+ const sveltekit_alias = libraries.includes('Svelte')
281
+ ? `
282
+ resolve: {
283
+ alias: [
284
+ {
285
+ find: /\\$app\\/(.*)/,
286
+ replacement: join(resolve(__dirname, "node_modules/@gardenjs/render-plugin-svelte/src/sveltekit_mocks/"), "$1"),
287
+ },
288
+ ],
289
+ },
290
+ `
291
+ : ''
292
+
293
+ const optimizeDeps = libraries.includes('React')
294
+ ? `optimizeDeps: {
295
+ include: ["react-dom/client"],
296
+ },
297
+ `
298
+ : ''
299
+
300
+ const content = `
301
+ import { defineConfig } from "vite"
302
+ ${optionalPathImport}
303
+ ${viteLibs.importStmts.join('\n')}
304
+
305
+ // https://vitejs.dev/config/
306
+ export default defineConfig(({ command, mode }) => {
307
+ return {
308
+ plugins: [${viteLibs.pluginStmts.join(', ')}],
309
+ root: ".garden",
310
+ assetsInclude: ['**/*.md'],
311
+ publicDir: "../public",
312
+ ${sveltekit_alias}
313
+ ${optimizeDeps}
314
+ build: {
315
+ rollupOptions: {
316
+ input: {
317
+ app: ".garden/index.html",
318
+ frame: ".garden/frame.html",
319
+ },
320
+ },
321
+ },
322
+ };
323
+ });
324
+ `
325
+ fs.writeFileSync('garden.vite.config.js', content)
326
+ }
327
+
328
+ const lib2ViteImport = {
329
+ Svelte:
330
+ 'import { svelte, vitePreprocess } from "@sveltejs/vite-plugin-svelte"',
331
+ React: 'import react from "@vitejs/plugin-react"',
332
+ Vue: 'import vue from "@vitejs/plugin-vue"',
333
+ }
334
+
335
+ const lib2VitePluginStmt = {
336
+ Svelte: 'svelte({preprocess: vitePreprocess()})',
337
+ React: 'react()',
338
+ Vue: 'vue()',
339
+ }
340
+
341
+ function getViteImports(libraries) {
342
+ return libraries.reduce(
343
+ (acc, cur) => {
344
+ acc.importStmts.push(lib2ViteImport[cur])
345
+ acc.pluginStmts.push(lib2VitePluginStmt[cur])
346
+ return acc
347
+ },
348
+ { importStmts: [], pluginStmts: [] }
349
+ )
350
+ }
351
+
151
352
  function createExample({ libraries, componentFolder }) {
152
353
  for (const library of libraries) {
153
354
  console.log('Create example for library', library)
@@ -157,16 +358,13 @@ function createExample({ libraries, componentFolder }) {
157
358
 
158
359
  function copyExampleFiles(library, componentFolder) {
159
360
  fs.mkdirSync(`${componentFolder}/garden_example/`, { recursive: true })
160
- fs.copyFileSync(
161
- `${exampleSourceFolder}garden_button.${library}.das.js`,
162
- `${componentFolder}/garden_example/garden_button.${library}.das.js`
163
- )
164
- fs.copyFileSync(
165
- `${exampleSourceFolder}garden_button.${library}`,
166
- `${componentFolder}/garden_example/garden_button.${library}`
167
- )
168
- fs.copyFileSync(
169
- `${exampleSourceFolder}garden_button.${library}.md`,
170
- `${componentFolder}/garden_example/garden_button.${library}.md`
171
- )
361
+ const files = fs
362
+ .readdirSync(`${exampleSourceFolder}`)
363
+ .filter((filename) => filename.includes(`.${library}`))
364
+ for (const filename of files) {
365
+ fs.copyFileSync(
366
+ `${exampleSourceFolder}/${filename}`,
367
+ `${componentFolder}/garden_example/${filename}`
368
+ )
369
+ }
172
370
  }
@@ -0,0 +1 @@
1
+ import{S as Z,i as $,s as x,A as k,k as M,Q as P,f as H,v as ae,R as le,T as ce,e as se,b as ue,d as me,h as q,t as z,p as b,q as C,F as ee,y as j,z as L,B as de,C as Q,D as te,E as U,G as V,H as W,I as J}from"./index-CQErw-Lc.js";import{dasMap as _e}from"../das_import_map.js";import{componentMap as he}from"../component_import_map.js";import pe from"../../garden.config.js";import"../gardenframe/cssimport.js";function K(a){let e,n;return{c(){e=new le(!1),n=k(),this.h()},l(r){e=ce(r,!1),n=k(),this.h()},h(){e.a=n},m(r,i){e.m(a[0],r,i),M(r,n,i)},p(r,i){i&1&&e.p(r[0])},d(r){r&&(H(n),e.d())}}}function ge(a){let e,n=a[0]&&K(a);return{c(){n&&n.c(),e=k()},l(r){n&&n.l(r),e=k()},m(r,i){n&&n.m(r,i),M(r,e,i)},p(r,[i]){r[0]?n?n.p(r,i):(n=K(r),n.c(),n.m(e.parentNode,e)):n&&(n.d(1),n=null)},i:P,o:P,d(r){r&&H(e),n&&n.d(r)}}}function we(a,e,n){let{component:r}=e,{afterRenderHook:i=()=>{}}=e;return ae(async()=>{await i()}),a.$$set=l=>{"component"in l&&n(0,r=l.component),"afterRenderHook"in l&&n(1,i=l.afterRenderHook)},[r,i]}class X extends Z{constructor(e){super(),$(this,e,we,ge,x,{component:0,afterRenderHook:1})}}async function ke(a){try{let e=new X({target:document.getElementById("garden_app"),props:{afterRenderHook:a}});return{destroy:()=>{var n;return(n=e==null?void 0:e.$destroy)==null?void 0:n.call(e)},updateComponent:n=>{var r;(r=e==null?void 0:e.$destroy)==null||r.call(e),e=new X({target:document.getElementById("garden_app"),props:{...n,afterRenderHook:a}})}}}catch(e){console.log("DEBUG","error",e)}}const S={create:ke};function Y(a){var t;let e,n,r;const i=[(t=a[2])==null?void 0:t.input];var l=a[4];function u(o,d){var p;let _={};for(let h=0;h<i.length;h+=1)_=J(_,i[h]);return d!==void 0&&d&4&&(_=J(_,V(i,[W((p=o[2])==null?void 0:p.input)]))),{props:_}}return l&&(e=j(l,u(a)),e.$on("out",a[5])),{c(){e&&L(e.$$.fragment),n=k()},l(o){e&&de(e.$$.fragment,o),n=k()},m(o,d){e&&Q(e,o,d),M(o,n,d),r=!0},p(o,d){var _;if(d&16&&l!==(l=o[4])){if(e){te();const p=e;C(p.$$.fragment,1,0,()=>{U(p,1)}),ee()}l?(e=j(l,u(o,d)),e.$on("out",o[5]),L(e.$$.fragment),b(e.$$.fragment,1),Q(e,n.parentNode,n)):e=null}else if(l){const p=d&4?V(i,[W((_=o[2])==null?void 0:_.input)]):{};e.$set(p)}},i(o){r||(e&&b(e.$$.fragment,o),r=!0)},o(o){e&&C(e.$$.fragment,o),r=!1},d(o){o&&H(n),e&&U(e,o)}}}function ye(a){var l;let e,n=a[0].devmodus&&a[4]&&(((l=a[1])==null?void 0:l.file)??"").indexOf(".svelte")>0,r,i=n&&Y(a);return{c(){e=se("div"),i&&i.c(),this.h()},l(u){e=ue(u,"DIV",{id:!0,class:!0});var t=me(e);i&&i.l(t),t.forEach(H),this.h()},h(){q(e,"id","garden_app"),q(e,"class","svelte-16w9tv2"),z(e,"full",a[3])},m(u,t){M(u,e,t),i&&i.m(e,null),r=!0},p(u,[t]){var o;t&19&&(n=u[0].devmodus&&u[4]&&(((o=u[1])==null?void 0:o.file)??"").indexOf(".svelte")>0),n?i?(i.p(u,t),t&19&&b(i,1)):(i=Y(u),i.c(),b(i,1),i.m(e,null)):i&&(te(),C(i,1,1,()=>{i=null}),ee()),(!r||t&8)&&z(e,"full",u[3])},i(u){r||(b(i),r=!0)},o(u){C(i),r=!1},d(u){u&&H(e),i&&i.d()}}}function be(a){return new Promise((e,n)=>{setTimeout(()=>n(new Error("Timeout on")),a)})}function He(a,e,n){let{componentMap:r={}}=e,{dasMap:i={}}=e,{config:l}=e,u=l.hookTimeout|5e3,t={},o={},d,_=!1,p,h,F,T,v={},E,G,A=[],R=[],B=[],y=[],N=[];window.addEventListener("message",f=>{var s;if(l.themeHandler&&l.themeHandler(f.data.theme),n(3,_=f.data.stageSize==="full"),n(1,t=i[f.data.componentName]),n(2,o=((s=t==null?void 0:t.examples)==null?void 0:s.find(m=>m.title===f.data.selectedExample))??{}),E=F!==f.data.componentName,F=f.data.componentName||"Welcome",G=d!==f.data.selectedExample,d=f.data.selectedExample,n(4,T=r==null?void 0:r[F]),l.devmodus){v={};return}else oe(T,o,t)});async function ne(f){if(!f)return S;for(const s in l.renderer)if(new RegExp(s+"$").test(f))return l.renderer[s];return S}async function oe(f,s,m){if(l.renderer){const w=await ne(m==null?void 0:m.file);w!==p&&await O(w)}await ie();try{h==null||h.updateComponent({component:f,selectedExample:s,das:m,decorators:m==null?void 0:m.decorators,afterRenderHook:re})}catch(w){console.error(w)}}async function re(){await D(N)}let g=[];async function ie(){if(E){N=[o==null?void 0:o.play],y=t!=null&&t.beforeAll?[t==null?void 0:t.beforeAll]:[];const f=t!=null&&t.hooks?g.filter(c=>!(t!=null&&t.hooks.find(I=>I===c))):g,s=g.length>0?t==null?void 0:t.hooks.filter(c=>!g.find(I=>c===I)):(t==null?void 0:t.hooks)??[];g=(t==null?void 0:t.hooks)??[];const m=g.filter(c=>c.before).map(c=>c.before)??[];R=[...R,...f.filter(c=>c.afterAll).map(c=>c.afterAll)],y=[...s.filter(c=>c.beforeAll).map(c=>c.beforeAll),...y],B=[...m,t==null?void 0:t.before,o==null?void 0:o.before].filter(c=>!!c),await D([...A,...R,...y,...B]);const w=g.filter(c=>c.after).map(c=>c.after)??[];R=t!=null&&t.afterAll?[t==null?void 0:t.afterAll]:[],A=[o==null?void 0:o.after,t==null?void 0:t.after,...w].filter(c=>!!c),y=[]}else G&&(N=[o==null?void 0:o.play],B=[t==null?void 0:t.before,o==null?void 0:o.before],await D([...A,...B]),A=[o==null?void 0:o.after,t==null?void 0:t.after])}async function O(f){try{await(h==null?void 0:h.destroy())}catch(s){console.error("Could not destroy current renderer",s)}h=await f.create()}function fe(f){t.out&&t.out.forEach(s=>{if(f.detail[s.name]&&(console.log(f.detail[s.name]),o.redirect&&o.redirect[s.name])){const m=o.redirect[s.name];v[m]=f.detail[s.name]}})}async function D(f){for(const s of f)if(s)try{await Promise.race([be(u),s()])}catch(m){console.error(m)}}return a.$$set=f=>{"componentMap"in f&&n(6,r=f.componentMap),"dasMap"in f&&n(7,i=f.dasMap),"config"in f&&n(0,l=f.config)},a.$$.update=()=>{a.$$.dirty&1&&(l.devmodus||O(S))},[l,t,o,_,T,fe,r,i]}class Ae extends Z{constructor(e){super(),$(this,e,He,ye,x,{componentMap:6,dasMap:7,config:0})}}new Ae({target:document.body,props:{componentMap:he,dasMap:_e,config:pe}});
@@ -0,0 +1,19 @@
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)}:root{--h-panelnav:2.375rem}.panel_container.svelte-19zoa7t.svelte-19zoa7t{background-color:var(--c-basic-75)}.panel_nav.svelte-19zoa7t.svelte-19zoa7t{position:sticky;top:0;display:flex;flex-shrink:0;justify-content:space-between;align-items:center;height:var(--h-panelnav);border-bottom:1px solid var(--c-bg-body)}.panel_nav.svelte-19zoa7t nav.svelte-19zoa7t{margin:0 1.25rem 0 0}.panel_nav.svelte-19zoa7t nav ul.svelte-19zoa7t{display:flex;overflow-x:auto}.panel_nav.svelte-19zoa7t nav li button.svelte-19zoa7t{position:relative;display:flex;flex-direction:column;justify-content:space-between;justify-content:center;align-items:center;padding:.563rem 1.25rem .188rem;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-19zoa7t nav li button .dot.svelte-19zoa7t{display:block;height:.313rem;width:.313rem;background-color:transparent;border-radius:50%}.panel_nav.svelte-19zoa7t nav li button.active .dot.svelte-19zoa7t{background-color:var(--c-primary)}.panel_nav.svelte-19zoa7t nav li button.svelte-19zoa7t:hover,.panel_nav.svelte-19zoa7t nav li button.svelte-19zoa7t:focus-visible{color:var(--c-primary);font-weight:500;background-color:var(--c-basic-100)}.panel_nav.svelte-19zoa7t nav li button.svelte-19zoa7t:focus-visible{background-color:var(--c-basic-150)}.panel_nav.svelte-19zoa7t nav li button.active.svelte-19zoa7t{color:var(--c-primary);font-weight:500;background-color:var(--c-primary-bg)}.panel_toggle.svelte-19zoa7t.svelte-19zoa7t{padding:0 .75rem;height:100%;background:none}.panel_toggle.svelte-19zoa7t svg.svelte-19zoa7t{margin-top:.188rem;height:1.375rem;color:var(--c-basic-700)}.panel_toggle.svelte-19zoa7t:hover svg.svelte-19zoa7t,.panel_toggle.svelte-19zoa7t:focus-visible svg.svelte-19zoa7t{color:var(--c-primary)}.panel_toggle.svelte-19zoa7t.svelte-19zoa7t:focus-visible{background-color:var(--c-basic-150)}.panel_pane.svelte-19zoa7t.svelte-19zoa7t{position:absolute;left:0;right:0;bottom:0;top:var(--h-panelnav);padding:1.25rem;overflow-y:auto}.stories.svelte-9ikz8y.svelte-9ikz8y{list-style:none;margin:0;padding:0}.stories.svelte-9ikz8y li button.svelte-9ikz8y{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}.stories.svelte-9ikz8y li button .dot.svelte-9ikz8y{display:block;margin:0 .5rem 0 0;height:.375rem;width:.375rem;background-color:transparent;border-radius:50%}.stories.svelte-9ikz8y li.active button .dot.svelte-9ikz8y{background-color:var(--c-primary)}.stories.svelte-9ikz8y li:nth-child(odd) button.svelte-9ikz8y{background-color:var(--c-basic-50)}.stories.svelte-9ikz8y li button.svelte-9ikz8y:hover,.stories.svelte-9ikz8y li button.svelte-9ikz8y:focus-visible{color:var(--c-primary);font-weight:500;background-color:var(--c-basic-150)}.stories.svelte-9ikz8y li.active button.svelte-9ikz8y{color:var(--c-primary);font-weight:500;background-color:var(--c-primary-bg)}.stories.svelte-9ikz8y li.active button.svelte-9ikz8y: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;-moz-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
+ */.dark .hljs{color:#c9d1d9}.dark .hljs-doctag,.dark .hljs-keyword,.dark .hljs-meta .hljs-keyword,.dark .hljs-template-tag,.dark .hljs-template-variable,.dark .hljs-type,.dark .hljs-variable.language_{color:#ff7b72}.dark .hljs-title,.dark .hljs-title.class_,.dark .hljs-title.class_.inherited__,.dark .hljs-title.function_{color:#d2a8ff}.dark .hljs-attr,.dark .hljs-attribute,.dark .hljs-literal,.dark .hljs-meta,.dark .hljs-number,.dark .hljs-operator,.dark .hljs-variable,.dark .hljs-selector-attr,.dark .hljs-selector-class,.dark .hljs-selector-id{color:#79c0ff}.dark .hljs-regexp,.dark .hljs-string,.dark .hljs-meta .hljs-string{color:#a5d6ff}.dark .hljs-built_in,.dark .hljs-symbol{color:#ffa657}.dark .hljs-comment,.dark .hljs-code,.dark .hljs-formula{color:#8b949e}.dark .hljs-name,.dark .hljs-quote,.dark .hljs-selector-tag,.dark .hljs-selector-pseudo{color:#7ee787}.dark .hljs-subst{color:#c9d1d9}.dark .hljs-section{color:#1f6feb;font-weight:700}.dark .hljs-bullet{color:#f2cc60}.dark .hljs-emphasis{color:#c9d1d9;font-style:italic}.dark .hljs-strong{color:#c9d1d9;font-weight:700}.dark .hljs-addition{color:#aff5b4;background-color:#033a16}.dark .hljs-deletion{color:#ffdcd7;background-color:#67060c}.stage_container.svelte-11hsumc{height:100%;width:auto}.stage_iframe.svelte-11hsumc{display:block;align-self:center;margin:auto;height:100%;width:100%;background-color:var(--c-basic-0)}.panel.svelte-11hsumc{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-1tjv5dj.svelte-1tjv5dj{display:flex;justify-content:flex-start;align-items:center;margin:0;padding:.188rem 0;text-transform:initial;font-size:.813rem;color:var(--c-basic-600);line-height:1.2;font-weight:400}.component_link.svelte-1tjv5dj.svelte-1tjv5dj:hover,.component_link.svelte-1tjv5dj.svelte-1tjv5dj:focus-visible{color:var(--c-primary);font-weight:500;background-color:var(--c-basic-100)}.component_link.svelte-1tjv5dj .component_dot.svelte-1tjv5dj{display:block;margin:0 .5rem 0 -.219rem;height:.375rem;width:.375rem;background-color:transparent;border-radius:50%}.component_link.selected.svelte-1tjv5dj .component_dot.svelte-1tjv5dj{background-color:var(--c-primary)}.component_link.selected.svelte-1tjv5dj.svelte-1tjv5dj{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-1tjv5dj.svelte-1tjv5dj{display:flex;align-items:center;margin-right:.438rem;color:var(--c-basic-400)}.component_label.svelte-1tjv5dj.svelte-1tjv5dj{margin-right:.5rem;overflow:hidden;white-space:nowrap}.items.svelte-4ombcb.svelte-4ombcb{margin-left:1.063rem;border-left:1px solid var(--c-basic-250)}.level-1.svelte-4ombcb.svelte-4ombcb{width:100%;margin:0;padding:0;border:none}.folder.svelte-4ombcb.svelte-4ombcb{display:block;margin:0}.folder_btn.svelte-4ombcb.svelte-4ombcb{display:flex;justify-content:flex-start;align-items:center;width:100%;margin:0;padding:.5rem .688rem .375rem}.folder_label.svelte-4ombcb.svelte-4ombcb{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-4ombcb.svelte-4ombcb:hover{background-color:var(--c-basic-100)}.folder_btn.svelte-4ombcb:hover .folder_label.svelte-4ombcb{color:var(--c-primary)}.folder_btn.svelte-4ombcb.svelte-4ombcb:focus-visible{color:var(--c-primary);outline:none;background-color:var(--c-basic-100)}.folder_arrow.svelte-4ombcb.svelte-4ombcb{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-4ombcb.svelte-4ombcb{transform:rotate(180deg);transition:.2s}.folder_icon.svelte-4ombcb.svelte-4ombcb{display:flex;align-items:center;margin-right:.375rem;color:var(--c-primary)}.btn_level-3.svelte-4ombcb .folder_label.svelte-4ombcb{font-size:.813rem}.filter_list.svelte-4ombcb .highlight{padding:0 .125rem;color:var(--c-primary);font-weight:700}.sidebar_container.svelte-1m8srel.svelte-1m8srel{--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-1m8srel.svelte-1m8srel{margin:.375rem .375rem .375rem 0;width:var(--w-sidebar);box-sizing:border-box}.project-identifier.svelte-1m8srel.svelte-1m8srel{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);z-index:9;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-1m8srel.svelte-1m8srel{height:auto}.project-identifier.svelte-1m8srel.svelte-1m8srel:focus-visible{color:var(--c-basic-500)}.project-identifier.svelte-1m8srel span.svelte-1m8srel{overflow:hidden}.filter.svelte-1m8srel.svelte-1m8srel{display:flex;flex-shrink:0;margin:0 0 .25rem;padding:.25rem .688rem;height:2.25rem}.filter_input.svelte-1m8srel.svelte-1m8srel{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-1m8srel.svelte-1m8srel{font-size:.813rem}.filter_input.svelte-1m8srel.svelte-1m8srel::placeholder{font-size:.813rem;color:var(--c-basic-500)}.filter_input.svelte-1m8srel.svelte-1m8srel:focus-visible{background-color:var(--c-basic-100);border:1px solid var(--c-basic-500)}.filter_zero-results.svelte-1m8srel.svelte-1m8srel{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.svelte-1m8srel.svelte-1m8srel{display:flex;flex-shrink:1;overflow:hidden;visibility:visible;width:var(--w-sidebar);overflow-y:auto;z-index:1;margin:0 0 1rem}.controls.svelte-1m8srel.svelte-1m8srel{display:none}@media (min-height: 35rem){.controls.svelte-1m8srel.svelte-1m8srel{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-1m8srel.svelte-1m8srel{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-1m8srel.svelte-1m8srel:hover,.controls_btn.svelte-1m8srel.svelte-1m8srel:focus-visible{background-color:var(--c-basic-100)}.controls_btn-icon.svelte-1m8srel.svelte-1m8srel{margin:0;color:var(--c-basic-700)}.controls_btn-label.svelte-1m8srel.svelte-1m8srel{position:relative;align-self:center;margin-left:.75rem;width:100%;color:var(--c-basic-900);font-size:.875rem;font-weight:400}.controls_btn.svelte-1m8srel:hover .controls_btn-label.svelte-1m8srel,.controls_btn.svelte-1m8srel:hover .controls_btn-icon.svelte-1m8srel,.controls_btn.svelte-1m8srel:focus-visible .controls_btn-label.svelte-1m8srel,.controls_btn.svelte-1m8srel:focus-visible .controls_btn-icon.svelte-1m8srel{color:var(--c-primary)}.topbar.svelte-1od1c7u.svelte-1od1c7u.svelte-1od1c7u{--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-1od1c7u.svelte-1od1c7u.svelte-1od1c7u{display:flex;justify-content:space-between;width:100%;height:100%;padding:0}.topbar_nav.svelte-1od1c7u.svelte-1od1c7u.svelte-1od1c7u{display:flex;align-items:center}.topbar_btn.svelte-1od1c7u.svelte-1od1c7u.svelte-1od1c7u{display:flex;align-items:center;padding:0 .375rem;height:var(--h-topbar);background:none}.topbar_btn.svelte-1od1c7u.svelte-1od1c7u.svelte-1od1c7u:hover{background-color:var(--c-basic-100)}.topbar_btn.svelte-1od1c7u svg.svelte-1od1c7u.svelte-1od1c7u{height:1.125rem;color:var(--c-basic-700)}.topbar_btn.svelte-1od1c7u:hover svg.svelte-1od1c7u.svelte-1od1c7u,.topbar_btn.svelte-1od1c7u:focus-visible svg.svelte-1od1c7u.svelte-1od1c7u{color:var(--c-primary)}.topbar_btn.svelte-1od1c7u.svelte-1od1c7u.svelte-1od1c7u:focus-visible{background-color:var(--c-basic-150)}.is-first-btn.svelte-1od1c7u.svelte-1od1c7u.svelte-1od1c7u{border-radius:.5rem 0 0 .5rem}.is-last-btn.svelte-1od1c7u.svelte-1od1c7u.svelte-1od1c7u{border-radius:0 .5rem .5rem 0}.stagesize-value.svelte-1od1c7u.svelte-1od1c7u.svelte-1od1c7u{display:none}@media (min-width: 640px){.stagesize-value.svelte-1od1c7u.svelte-1od1c7u.svelte-1od1c7u{display:inline-flex;align-items:center;font-size:.75rem;padding:0 1rem;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)}.stagesize-value-multi_sign.svelte-1od1c7u.svelte-1od1c7u.svelte-1od1c7u{margin:0 .25rem;font-size:.813rem}}.stagesize-nav.svelte-1od1c7u.svelte-1od1c7u.svelte-1od1c7u{display:none}@media (min-width: 1280px){.stagesize-nav.svelte-1od1c7u.svelte-1od1c7u.svelte-1od1c7u{position:relative;display:inline-flex;margin:0 .75rem;background-color:var(--c-basic-100)}.stagesize-nav.svelte-1od1c7u button.svelte-1od1c7u.svelte-1od1c7u{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-1od1c7u button.svelte-1od1c7u.svelte-1od1c7u:hover,.stagesize-nav.svelte-1od1c7u button.svelte-1od1c7u.svelte-1od1c7u:focus-visible{background-color:var(--c-basic-150)}.stagesize-nav.svelte-1od1c7u button.svelte-1od1c7u svg.svelte-1od1c7u{height:1.125rem;color:var(--c-basic-700);transition:.2s}.stagesize-nav.svelte-1od1c7u button.svelte-1od1c7u:hover svg.svelte-1od1c7u,.stagesize-nav.svelte-1od1c7u button.svelte-1od1c7u:focus-visible svg.svelte-1od1c7u,.stagesize-nav.svelte-1od1c7u button.active svg.svelte-1od1c7u.svelte-1od1c7u{color:var(--c-primary)}.stagesize-nav.svelte-1od1c7u button svg.landscape.svelte-1od1c7u.svelte-1od1c7u{transform:rotate(90deg);transition:.2s}.stagesize-nav.svelte-1od1c7u button .dot.svelte-1od1c7u.svelte-1od1c7u{display:block;position:absolute;left:50%;bottom:.125rem;transform:translate(-50%);height:.313rem;width:.313rem;background-color:transparent;border-radius:50%}.stagesize-nav.svelte-1od1c7u button.active.svelte-1od1c7u.svelte-1od1c7u{background-color:var(--c-primary-bg)}.stagesize-nav.svelte-1od1c7u button.active .dot.svelte-1od1c7u.svelte-1od1c7u{background-color:var(--c-primary)}}.dropdown.svelte-1od1c7u.svelte-1od1c7u.svelte-1od1c7u{position:relative;display:inline-block}.dropdown_items.svelte-1od1c7u.svelte-1od1c7u.svelte-1od1c7u{visibility:hidden;position:absolute;left:-.75rem;padding:.375rem 0 0;z-index:9}.dropdown_items.svelte-1od1c7u ul.svelte-1od1c7u.svelte-1od1c7u{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-1od1c7u ul li.svelte-1od1c7u.svelte-1od1c7u{display:block;list-style:none;margin:0;padding:0}.dropdown_items.svelte-1od1c7u ul li button.svelte-1od1c7u.svelte-1od1c7u{display:flex;align-items:center;justify-items:flex-start;width:100%;min-width:113px;padding:.5rem;font-size:.75rem;color:var(--c-basic-900);text-transform:capitalize;white-space:nowrap}.dropdown_items.svelte-1od1c7u ul li button .dropdown_item-dot.svelte-1od1c7u.svelte-1od1c7u{display:block;margin:0 .5rem 0 0;height:.313rem;width:.313rem;background-color:transparent;border-radius:50%}.dropdown_items.svelte-1od1c7u ul li button.active .dropdown_item-dot.svelte-1od1c7u.svelte-1od1c7u,.dropdown_items.svelte-1od1c7u ul li button.active:hover .dropdown_item-dot.svelte-1od1c7u.svelte-1od1c7u{background-color:var(--c-primary)}.dropdown_items.svelte-1od1c7u ul li button.svelte-1od1c7u.svelte-1od1c7u:hover,.dropdown_items.svelte-1od1c7u ul li button.svelte-1od1c7u.svelte-1od1c7u:focus-visible{color:var(--c-primary);font-weight:500;background-color:var(--c-basic-100)}.dropdown_items.svelte-1od1c7u ul li button.active.svelte-1od1c7u.svelte-1od1c7u{color:var(--c-primary);font-weight:500;background-color:var(--c-primary-bg);border-color:var(--c-primary)}.dropdown.svelte-1od1c7u:hover>.dropdown_items.svelte-1od1c7u.svelte-1od1c7u,.dropdown.svelte-1od1c7u:focus-visible>.dropdown_items.svelte-1od1c7u.svelte-1od1c7u{display:block;visibility:visible}.sidebar.svelte-yh1ir7.svelte-yh1ir7{flex-grow:0;flex-shrink:0}.garden.svelte-yh1ir7.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.svelte-yh1ir7{display:flex;flex-direction:column;width:100%;height:100vh;overflow-y:auto}.message.svelte-yh1ir7.svelte-yh1ir7{display:inline-block;margin:1rem;padding:1rem;background-color:#fff;border-radius:.625rem}.click-completed.svelte-yh1ir7.svelte-yh1ir7{margin:0 0 .75rem;font-size:120%;font-weight:500}.instruction.svelte-yh1ir7 button.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}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%, 93%);--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)}[data-theme=dark]{--c-primary: hsl(185, 80%, 75%);--c-primary-bg: hsl(185, 80%, 20%);--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)}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;line-height:1.5}a,a:visited{font-size:.875rem;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}
@@ -0,0 +1 @@
1
+ var W=Object.defineProperty;var J=(t,e,n)=>e in t?W(t,e,{enumerable:!0,configurable:!0,writable:!0,value:n}):t[e]=n;var d=(t,e,n)=>J(t,typeof e!="symbol"?e+"":e,n);(function(){const e=document.createElement("link").relList;if(e&&e.supports&&e.supports("modulepreload"))return;for(const r of document.querySelectorAll('link[rel="modulepreload"]'))i(r);new MutationObserver(r=>{for(const c of r)if(c.type==="childList")for(const s of c.addedNodes)s.tagName==="LINK"&&s.rel==="modulepreload"&&i(s)}).observe(document,{childList:!0,subtree:!0});function n(r){const c={};return r.integrity&&(c.integrity=r.integrity),r.referrerPolicy&&(c.referrerPolicy=r.referrerPolicy),r.crossOrigin==="use-credentials"?c.credentials="include":r.crossOrigin==="anonymous"?c.credentials="omit":c.credentials="same-origin",c}function i(r){if(r.ep)return;r.ep=!0;const c=n(r);fetch(r.href,c)}})();function v(){}function Q(t,e){for(const n in e)t[n]=e[n];return t}function D(t){return t()}function H(){return Object.create(null)}function b(t){t.forEach(D)}function I(t){return typeof t=="function"}function bt(t,e){return t!=t?e==e:t!==e||t&&typeof t=="object"||typeof t=="function"}let $;function xt(t,e){return t===e?!0:($||($=document.createElement("a")),$.href=e,t===$.href)}function X(t){return Object.keys(t).length===0}function q(t,...e){if(t==null){for(const i of e)i(void 0);return v}const n=t.subscribe(...e);return n.unsubscribe?()=>n.unsubscribe():n}function $t(t){let e;return q(t,n=>e=n)(),e}function wt(t,e,n){t.$$.on_destroy.push(q(e,n))}function vt(t,e,n,i){if(t){const r=F(t,e,n,i);return t[0](r)}}function F(t,e,n,i){return t[1]&&i?Q(n.ctx.slice(),t[1](i(e))):n.ctx}function Et(t,e,n,i){if(t[2]&&i){const r=t[2](i(n));if(e.dirty===void 0)return r;if(typeof r=="object"){const c=[],s=Math.max(e.dirty.length,r.length);for(let l=0;l<s;l+=1)c[l]=e.dirty[l]|r[l];return c}return e.dirty|r}return e.dirty}function Nt(t,e,n,i,r,c){if(r){const s=F(e,n,i,c);t.p(s,r)}}function Tt(t){if(t.ctx.length>32){const e=[],n=t.ctx.length/32;for(let i=0;i<n;i++)e[i]=-1;return e}return-1}let N=!1;function Y(){N=!0}function Z(){N=!1}function tt(t,e,n,i){for(;t<e;){const r=t+(e-t>>1);n(r)<=i?t=r+1:e=r}return t}function et(t){if(t.hydrate_init)return;t.hydrate_init=!0;let e=t.childNodes;if(t.nodeName==="HEAD"){const o=[];for(let u=0;u<e.length;u++){const a=e[u];a.claim_order!==void 0&&o.push(a)}e=o}const n=new Int32Array(e.length+1),i=new Int32Array(e.length);n[0]=-1;let r=0;for(let o=0;o<e.length;o++){const u=e[o].claim_order,a=(r>0&&e[n[r]].claim_order<=u?r+1:tt(1,r,x=>e[n[x]].claim_order,u))-1;i[o]=n[a]+1;const f=a+1;n[f]=o,r=Math.max(f,r)}const c=[],s=[];let l=e.length-1;for(let o=n[r]+1;o!=0;o=i[o-1]){for(c.push(e[o-1]);l>=o;l--)s.push(e[l]);l--}for(;l>=0;l--)s.push(e[l]);c.reverse(),s.sort((o,u)=>o.claim_order-u.claim_order);for(let o=0,u=0;o<s.length;o++){for(;u<c.length&&s[o].claim_order>=c[u].claim_order;)u++;const a=u<c.length?c[u]:null;t.insertBefore(s[o],a)}}function nt(t,e){if(N){for(et(t),(t.actual_end_child===void 0||t.actual_end_child!==null&&t.actual_end_child.parentNode!==t)&&(t.actual_end_child=t.firstChild);t.actual_end_child!==null&&t.actual_end_child.claim_order===void 0;)t.actual_end_child=t.actual_end_child.nextSibling;e!==t.actual_end_child?(e.claim_order!==void 0||e.parentNode!==t)&&t.insertBefore(e,t.actual_end_child):t.actual_end_child=e.nextSibling}else(e.parentNode!==t||e.nextSibling!==null)&&t.appendChild(e)}function it(t,e,n){t.insertBefore(e,n||null)}function rt(t,e,n){N&&!n?nt(t,e):(e.parentNode!==t||e.nextSibling!=n)&&t.insertBefore(e,n||null)}function E(t){t.parentNode&&t.parentNode.removeChild(t)}function At(t,e){for(let n=0;n<t.length;n+=1)t[n]&&t[n].d(e)}function G(t){return document.createElement(t)}function R(t){return document.createElementNS("http://www.w3.org/2000/svg",t)}function S(t){return document.createTextNode(t)}function Lt(){return S(" ")}function Pt(){return S("")}function St(t,e,n,i){return t.addEventListener(e,n,i),()=>t.removeEventListener(e,n,i)}function Mt(t){return function(e){return e.preventDefault(),t.call(this,e)}}function Ot(t,e,n){n==null?t.removeAttribute(e):t.getAttribute(e)!==n&&t.setAttribute(e,n)}function jt(t){return t.dataset.svelteH}function st(t){return Array.from(t.childNodes)}function z(t){t.claim_info===void 0&&(t.claim_info={last_index:0,total_claimed:0})}function K(t,e,n,i,r=!1){z(t);const c=(()=>{for(let s=t.claim_info.last_index;s<t.length;s++){const l=t[s];if(e(l)){const o=n(l);return o===void 0?t.splice(s,1):t[s]=o,r||(t.claim_info.last_index=s),l}}for(let s=t.claim_info.last_index-1;s>=0;s--){const l=t[s];if(e(l)){const o=n(l);return o===void 0?t.splice(s,1):t[s]=o,r?o===void 0&&t.claim_info.last_index--:t.claim_info.last_index=s,l}}return i()})();return c.claim_order=t.claim_info.total_claimed,t.claim_info.total_claimed+=1,c}function U(t,e,n,i){return K(t,r=>r.nodeName===e,r=>{const c=[];for(let s=0;s<r.attributes.length;s++){const l=r.attributes[s];n[l.name]||c.push(l.name)}c.forEach(s=>r.removeAttribute(s))},()=>i(e))}function Ht(t,e,n){return U(t,e,n,G)}function Ct(t,e,n){return U(t,e,n,R)}function ct(t,e){return K(t,n=>n.nodeType===3,n=>{const i=""+e;if(n.data.startsWith(i)){if(n.data.length!==i.length)return n.splitText(i.length)}else n.data=i},()=>S(e),!0)}function kt(t){return ct(t," ")}function C(t,e,n){for(let i=n;i<t.length;i+=1){const r=t[i];if(r.nodeType===8&&r.textContent.trim()===e)return i}return-1}function Bt(t,e){const n=C(t,"HTML_TAG_START",0),i=C(t,"HTML_TAG_END",n+1);if(n===-1||i===-1)return new T(e);z(t);const r=t.splice(n,i-n+1);E(r[0]),E(r[r.length-1]);const c=r.slice(1,r.length-1);if(c.length===0)return new T(e);for(const s of c)s.claim_order=t.claim_info.total_claimed,t.claim_info.total_claimed+=1;return new T(e,c)}function Dt(t,e){e=""+e,t.data!==e&&(t.data=e)}function It(t,e,n,i){n==null?t.style.removeProperty(e):t.style.setProperty(e,n,"")}function qt(t,e,n){t.classList.toggle(e,!!n)}function ot(t,e,{bubbles:n=!1,cancelable:i=!1}={}){return new CustomEvent(t,{detail:e,bubbles:n,cancelable:i})}class lt{constructor(e=!1){d(this,"is_svg",!1);d(this,"e");d(this,"n");d(this,"t");d(this,"a");this.is_svg=e,this.e=this.n=null}c(e){this.h(e)}m(e,n,i=null){this.e||(this.is_svg?this.e=R(n.nodeName):this.e=G(n.nodeType===11?"TEMPLATE":n.nodeName),this.t=n.tagName!=="TEMPLATE"?n:n.content,this.c(e)),this.i(i)}h(e){this.e.innerHTML=e,this.n=Array.from(this.e.nodeName==="TEMPLATE"?this.e.content.childNodes:this.e.childNodes)}i(e){for(let n=0;n<this.n.length;n+=1)it(this.t,this.n[n],e)}p(e){this.d(),this.h(e),this.i(this.a)}d(){this.n.forEach(E)}}class T extends lt{constructor(n=!1,i){super(n);d(this,"l");this.e=this.n=null,this.l=i}c(n){this.l?this.n=this.l:super.c(n)}i(n){for(let i=0;i<this.n.length;i+=1)rt(this.t,this.n[i],n)}}function Ft(t,e){return new t(e)}let g;function y(t){g=t}function M(){if(!g)throw new Error("Function called outside component initialization");return g}function Gt(t){M().$$.on_mount.push(t)}function Rt(t){M().$$.on_destroy.push(t)}function zt(){const t=M();return(e,n,{cancelable:i=!1}={})=>{const r=t.$$.callbacks[e];if(r){const c=ot(e,n,{cancelable:i});return r.slice().forEach(s=>{s.call(t,c)}),!c.defaultPrevented}return!0}}function Kt(t,e){const n=t.$$.callbacks[e.type];n&&n.slice().forEach(i=>i.call(this,e))}const m=[],k=[];let p=[];const B=[],ut=Promise.resolve();let L=!1;function ft(){L||(L=!0,ut.then(V))}function P(t){p.push(t)}const A=new Set;let h=0;function V(){if(h!==0)return;const t=g;do{try{for(;h<m.length;){const e=m[h];h++,y(e),at(e.$$)}}catch(e){throw m.length=0,h=0,e}for(y(null),m.length=0,h=0;k.length;)k.pop()();for(let e=0;e<p.length;e+=1){const n=p[e];A.has(n)||(A.add(n),n())}p.length=0}while(m.length);for(;B.length;)B.pop()();L=!1,A.clear(),y(t)}function at(t){if(t.fragment!==null){t.update(),b(t.before_update);const e=t.dirty;t.dirty=[-1],t.fragment&&t.fragment.p(t.ctx,e),t.after_update.forEach(P)}}function dt(t){const e=[],n=[];p.forEach(i=>t.indexOf(i)===-1?e.push(i):n.push(i)),n.forEach(i=>i()),p=e}const w=new Set;let _;function Ut(){_={r:0,c:[],p:_}}function Vt(){_.r||b(_.c),_=_.p}function _t(t,e){t&&t.i&&(w.delete(t),t.i(e))}function Wt(t,e,n,i){if(t&&t.o){if(w.has(t))return;w.add(t),_.c.push(()=>{w.delete(t),i&&(n&&t.d(1),i())}),t.o(e)}else i&&i()}function Jt(t,e){const n={},i={},r={$$scope:1};let c=t.length;for(;c--;){const s=t[c],l=e[c];if(l){for(const o in s)o in l||(i[o]=1);for(const o in l)r[o]||(n[o]=l[o],r[o]=1);t[c]=l}else for(const o in s)r[o]=1}for(const s in i)s in n||(n[s]=void 0);return n}function Qt(t){return typeof t=="object"&&t!==null?t:{}}function Xt(t){t&&t.c()}function Yt(t,e){t&&t.l(e)}function ht(t,e,n){const{fragment:i,after_update:r}=t.$$;i&&i.m(e,n),P(()=>{const c=t.$$.on_mount.map(D).filter(I);t.$$.on_destroy?t.$$.on_destroy.push(...c):b(c),t.$$.on_mount=[]}),r.forEach(P)}function mt(t,e){const n=t.$$;n.fragment!==null&&(dt(n.after_update),b(n.on_destroy),n.fragment&&n.fragment.d(e),n.on_destroy=n.fragment=null,n.ctx=[])}function pt(t,e){t.$$.dirty[0]===-1&&(m.push(t),ft(),t.$$.dirty.fill(0)),t.$$.dirty[e/31|0]|=1<<e%31}function Zt(t,e,n,i,r,c,s=null,l=[-1]){const o=g;y(t);const u=t.$$={fragment:null,ctx:[],props:c,update:v,not_equal:r,bound:H(),on_mount:[],on_destroy:[],on_disconnect:[],before_update:[],after_update:[],context:new Map(e.context||(o?o.$$.context:[])),callbacks:H(),dirty:l,skip_bound:!1,root:e.target||o.$$.root};s&&s(u.root);let a=!1;if(u.ctx=n?n(t,e.props||{},(f,x,...O)=>{const j=O.length?O[0]:x;return u.ctx&&r(u.ctx[f],u.ctx[f]=j)&&(!u.skip_bound&&u.bound[f]&&u.bound[f](j),a&&pt(t,f)),x}):[],u.update(),a=!0,b(u.before_update),u.fragment=i?i(u.ctx):!1,e.target){if(e.hydrate){Y();const f=st(e.target);u.fragment&&u.fragment.l(f),f.forEach(E)}else u.fragment&&u.fragment.c();e.intro&&_t(t.$$.fragment),ht(t,e.target,e.anchor),Z(),V()}y(o)}class te{constructor(){d(this,"$$");d(this,"$$set")}$destroy(){mt(this,1),this.$destroy=v}$on(e,n){if(!I(n))return v;const i=this.$$.callbacks[e]||(this.$$.callbacks[e]=[]);return i.push(n),()=>{const r=i.indexOf(n);r!==-1&&i.splice(r,1)}}$set(e){this.$$set&&!X(e)&&(this.$$.skip_bound=!0,this.$$set(e),this.$$.skip_bound=!1)}}const yt="4";typeof window<"u"&&(window.__svelte||(window.__svelte={v:new Set})).v.add(yt);export{Pt as A,Yt as B,ht as C,Ut as D,mt as E,Vt as F,Jt as G,Qt as H,Q as I,Kt as J,jt as K,At as L,S as M,ct as N,I as O,Dt as P,v as Q,T as R,te as S,Bt as T,xt as U,Mt as V,b as W,R as X,Ct as Y,$t as Z,wt as _,Lt as a,Ht as b,vt as c,st as d,G as e,E as f,kt as g,Ot as h,Zt as i,It as j,rt as k,nt as l,St as m,Tt as n,Et as o,_t as p,Wt as q,zt as r,bt as s,qt as t,Nt as u,Gt as v,Rt as w,k as x,Ft as y,Xt as z};