@turnipxenon/pineapple 2.4.24 → 2.4.26

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 (57) hide show
  1. package/.idea/workspace.xml +55 -51
  2. package/.svelte-kit/__package__/components/overrideable_meta/OverridableMeta.svelte +51 -0
  3. package/.svelte-kit/__package__/components/overrideable_meta/OverridableMeta.svelte.d.ts +20 -0
  4. package/.svelte-kit/__package__/components/overrideable_meta/OverridableMetaProps.d.ts +7 -0
  5. package/.svelte-kit/__package__/components/overrideable_meta/OverridableMetaProps.js +1 -0
  6. package/.svelte-kit/__package__/components/overrideable_meta/index.d.ts +2 -0
  7. package/.svelte-kit/__package__/components/overrideable_meta/index.js +3 -0
  8. package/.svelte-kit/__package__/index.d.ts +1 -0
  9. package/.svelte-kit/__package__/index.js +2 -0
  10. package/.svelte-kit/__package__/template/Seaweed/GameSection.svelte +184 -184
  11. package/.svelte-kit/__package__/template/Seaweed/ProjectSection.svelte +268 -268
  12. package/.svelte-kit/__package__/template/Seaweed/SeaweedTemplate.svelte +135 -18
  13. package/.svelte-kit/__package__/template/Seaweed/SeaweedTemplate.svelte.d.ts +1 -0
  14. package/.svelte-kit/__package__/template/Seaweed/seaweed.postcss +133 -133
  15. package/.svelte-kit/__package__/util/util.d.ts +3 -0
  16. package/.svelte-kit/ambient.d.ts +0 -2
  17. package/.svelte-kit/generated/client/nodes/5.js +2 -0
  18. package/.svelte-kit/generated/client/nodes/6.js +2 -0
  19. package/.svelte-kit/generated/client/nodes/7.js +2 -0
  20. package/.svelte-kit/generated/client/nodes/8.js +1 -1
  21. package/.svelte-kit/generated/server/internal.js +1 -1
  22. package/.svelte-kit/types/route_meta_data.json +7 -2
  23. package/.svelte-kit/types/src/routes/(pineapple)/pineapple/$types.d.ts +3 -1
  24. package/.svelte-kit/types/src/routes/(seaweed)/portfolio/$types.d.ts +4 -2
  25. package/.svelte-kit/types/src/routes/(seaweed)/portfolio/actual/$types.d.ts +3 -1
  26. package/dist/components/overrideable_meta/OverridableMeta.svelte +51 -0
  27. package/dist/components/overrideable_meta/OverridableMeta.svelte.d.ts +20 -0
  28. package/dist/components/overrideable_meta/OverridableMetaProps.d.ts +7 -0
  29. package/dist/components/overrideable_meta/OverridableMetaProps.js +1 -0
  30. package/dist/components/overrideable_meta/index.d.ts +2 -0
  31. package/dist/components/overrideable_meta/index.js +3 -0
  32. package/dist/index.d.ts +1 -0
  33. package/dist/index.js +2 -0
  34. package/dist/template/Seaweed/GameSection.svelte +184 -184
  35. package/dist/template/Seaweed/ProjectSection.svelte +268 -268
  36. package/dist/template/Seaweed/SeaweedTemplate.svelte +135 -18
  37. package/dist/template/Seaweed/SeaweedTemplate.svelte.d.ts +1 -0
  38. package/dist/template/Seaweed/seaweed.postcss +133 -133
  39. package/dist/util/util.d.ts +3 -0
  40. package/package.json +1 -1
  41. package/src/lib/components/overrideable_meta/OverridableMeta.svelte +56 -0
  42. package/src/lib/components/overrideable_meta/OverridableMetaProps.ts +7 -0
  43. package/src/lib/components/overrideable_meta/index.ts +4 -0
  44. package/src/lib/index.ts +3 -0
  45. package/src/lib/template/Seaweed/GameSection.svelte +213 -213
  46. package/src/lib/template/Seaweed/ProjectSection.svelte +298 -298
  47. package/src/lib/template/Seaweed/SeaweedTemplate.svelte +180 -21
  48. package/src/lib/template/Seaweed/seaweed.postcss +133 -133
  49. package/src/lib/util/util.ts +38 -34
  50. package/src/routes/(pineapple)/+layout.svelte +0 -15
  51. package/src/routes/(pineapple)/+page.svelte +0 -12
  52. package/src/routes/(pineapple)/pineapple/+page.svelte +0 -10
  53. package/src/routes/(pineapple)/pineapple/+page.ts +8 -0
  54. package/src/routes/(seaweed)/portfolio/+page.svelte +0 -11
  55. package/src/routes/(seaweed)/portfolio/+page.ts +8 -0
  56. package/src/routes/(seaweed)/portfolio/actual/+page.ts +8 -0
  57. package/src/routes/+layout.svelte +21 -0
@@ -2,10 +2,11 @@
2
2
  export let name = "Turnip";
3
3
  export let email = "turnipxenon@gmail.com";
4
4
  export let linkedinSlug = "turnip-xenon";
5
+ export let domain = "http://localhost:5173/portfolio/actual/";
5
6
  import SocialSection from "../../components/SocialSection.svelte";
6
7
  import "./seaweed.postcss";
7
8
  import SeaweedBaseLayout from "../../components/layouts/SeaweedBaseLayout.svelte";
8
- import { Accordion, AccordionItem, SlideToggle } from "@skeletonlabs/skeleton";
9
+ import { Accordion, AccordionItem, CodeBlock, SlideToggle } from "@skeletonlabs/skeleton";
9
10
  import { page } from "$app/stores";
10
11
  import Card from "../../components/Card.svelte";
11
12
  import { onMount } from "svelte";
@@ -16,9 +17,49 @@ let isVisible = true;
16
17
  let isAdvanceSettingOn = false;
17
18
  $:
18
19
  isSocialsGone = !isVisible;
20
+ import gameContent from "./GameSection.svelte?raw";
21
+ import projectContent from "./ProjectSection.svelte?raw";
22
+ import selfContent from "./SeaweedTemplate.svelte?raw";
23
+ let qtMap = /* @__PURE__ */ new Map();
24
+ const paramQTSet = /* @__PURE__ */ new Set();
25
+ const syncQT = () => {
26
+ if (qtMap.size === 0 || paramQTSet.size === 0) {
27
+ return;
28
+ }
29
+ qtMap.forEach((_, k) => {
30
+ qtMap.set(k, paramQTSet.has(k));
31
+ });
32
+ qtMap = qtMap;
33
+ };
34
+ const parseQTTerms = async () => {
35
+ const qtSet = /* @__PURE__ */ new Set();
36
+ const rawTermList = [];
37
+ [gameContent, projectContent, selfContent].forEach((body) => {
38
+ rawTermList.push(
39
+ ...body.split('"').filter((s) => s.startsWith("qt-"))
40
+ // step 2: filter out texts that does not begin with "qt-"
41
+ );
42
+ });
43
+ rawTermList.forEach((t) => {
44
+ t.split(" ").forEach((nt) => {
45
+ if (["qt-1", "qt-2", "qt-*", "qt-"].includes(nt)) {
46
+ return;
47
+ }
48
+ qtSet.add(nt);
49
+ });
50
+ });
51
+ qtSet.forEach((t) => qtMap.set(t, true));
52
+ syncQT();
53
+ };
54
+ parseQTTerms();
55
+ let gameSectionFirst = true;
19
56
  let qtfontWeight = "normal";
20
57
  let additionalFontWeight = "";
21
58
  const filterSearchParams = (searchParams) => {
59
+ const gameSectionFirstParam = searchParams.get("game-section-first")?.trim();
60
+ if (gameSectionFirstParam === "false") {
61
+ gameSectionFirst = false;
62
+ }
22
63
  const qtValue = searchParams.get("qt")?.trim();
23
64
  if (qtValue === void 0) {
24
65
  qtfontWeight = "bold";
@@ -26,12 +67,14 @@ const filterSearchParams = (searchParams) => {
26
67
  }
27
68
  qtfontWeight = "normal";
28
69
  const dynamicStyle = qtValue.split(",").map((term) => {
70
+ paramQTSet.add(`qt-${term}`);
29
71
  return `span.qt-${term} { font-weight: bold !important; }`;
30
72
  }).join("\n");
31
73
  const style = document.createElement("style");
32
74
  style.type = "text/css";
33
75
  style.innerText = dynamicStyle;
34
76
  document.head.appendChild(style);
77
+ syncQT();
35
78
  };
36
79
  const chaoticWordBank = ["niko", "toba", "seal", "aquarium", "ojisan", "baikal"];
37
80
  let chaosDone = false;
@@ -69,6 +112,9 @@ const runChaos = (node) => {
69
112
  }
70
113
  }
71
114
  };
115
+ let mainVisibility = "visible";
116
+ $:
117
+ mainVisibility = letChaos && !chaosDone ? "hidden" : "visible";
72
118
  onMount(() => {
73
119
  if (!letChaos && $page.url.searchParams) {
74
120
  filterSearchParams($page.url.searchParams);
@@ -78,9 +124,35 @@ onMount(() => {
78
124
  chaosDone = true;
79
125
  }
80
126
  });
81
- let mainVisibility = "visible";
127
+ const toggleTerm = (term) => {
128
+ qtMap.set(term, !qtMap.get(term));
129
+ qtMap = qtMap;
130
+ };
131
+ let advancedUrl = domain;
132
+ const updateUrl = () => {
133
+ const queryParams = [];
134
+ const qtList = [];
135
+ qtMap.forEach((shouldBold, term) => {
136
+ if (shouldBold) {
137
+ qtList.push(term);
138
+ }
139
+ });
140
+ if (qtList.length === 0) {
141
+ queryParams.push("qt=clear");
142
+ } else if (qtMap.size !== qtList.length) {
143
+ queryParams.push(`qt=${qtList.map((t) => t.slice(3, t.length)).join(",")}`);
144
+ }
145
+ if (!gameSectionFirst) {
146
+ queryParams.push("game-section-first=false");
147
+ }
148
+ if (queryParams.length > 0) {
149
+ advancedUrl = `${domain}?${queryParams.join("&")}`;
150
+ } else {
151
+ advancedUrl = domain;
152
+ }
153
+ };
82
154
  $:
83
- mainVisibility = letChaos && !chaosDone ? "hidden" : "visible";
155
+ gameSectionFirst, qtMap, updateUrl();
84
156
  </script>
85
157
 
86
158
  <SeaweedBaseLayout bind:shouldDisplayLeadingIcons={isSocialsGone}>
@@ -217,25 +289,51 @@ $:
217
289
 
218
290
  </div>
219
291
 
220
- <GameSection email={email}></GameSection>
292
+ {#if (gameSectionFirst)}
293
+ <GameSection email={email}></GameSection>
294
+ <ProjectSection email={email}></ProjectSection>
295
+ {:else }
296
+ <ProjectSection email={email}></ProjectSection>
297
+ <GameSection email={email}></GameSection>
298
+ {/if}
221
299
 
222
- <ProjectSection email={email}></ProjectSection>
300
+ {#if (!letChaos)}
301
+ <div aria-hidden="true" style="height: 25vh" />
223
302
 
224
- <div aria-hidden="true" style="height: 25vh" />
303
+ <Card>
304
+ <div slot="content" class="default-card advanced-setting">
305
+ <h1>Advanced settings</h1>
306
+ <p>This one is for those curious how I customize this page.</p>
307
+ <SlideToggle name="advanced-setting-slider" bind:checked={isAdvanceSettingOn}>
308
+ Advanced settings: {isAdvanceSettingOn ? "On" : "Off"}
309
+ </SlideToggle>
310
+ {#if (isAdvanceSettingOn)}
311
+ <SlideToggle name="game-section-slider" bind:checked={gameSectionFirst}>
312
+ Should game section appear first over projects: {gameSectionFirst ? "On" : "Off"}
313
+ </SlideToggle>
225
314
 
226
- <Card>
227
- <div slot="content" class="default-card">
228
- <h1>Advanced settings</h1>
229
- <p>This one is for those curious how I customize this page.</p>
230
- <SlideToggle name="slider-label" bind:checked={isAdvanceSettingOn}>
231
- Advanced settings: {isAdvanceSettingOn ? "On" : "Off"}
232
- </SlideToggle>
233
- {#if (isAdvanceSettingOn)}
234
- <br>
235
- {/if}
236
- </div>
237
- </Card>
315
+ <h3>Query terms to bold</h3>
316
+ <div class="query-term-grid">
317
+ {#each qtMap.entries() as [term, shouldBold]}
318
+ <!--{@const shouldBold = false}-->
319
+ <button
320
+ class="chip {shouldBold ? 'variant-filled-tertiary' : 'variant-soft-tertiary'}"
321
+ on:click={() => {toggleTerm(term)}}
322
+ >
323
+ <!-- todo: change shouldBold -->
324
+ {#if (shouldBold)}&check;{/if}
325
+ {term}
326
+ </button>
327
+ {/each}
328
+ </div>
238
329
 
330
+ <br>
331
+ <p>Copy the url below and open a new page with it</p>
332
+ <CodeBlock language="url" code={advancedUrl}></CodeBlock>
333
+ {/if}
334
+ </div>
335
+ </Card>
336
+ {/if}
239
337
  </main>
240
338
 
241
339
  <SocialSection slot="extraLeadingIcons"
@@ -244,3 +342,22 @@ $:
244
342
  linkedinSlug={linkedinSlug}
245
343
  isSmallVersion={true}></SocialSection>
246
344
  </SeaweedBaseLayout>
345
+
346
+ <style>
347
+ .advanced-setting {
348
+ display: flex;
349
+ flex-direction: column;
350
+ gap: 0.5lh;
351
+ }
352
+
353
+ h3 {
354
+ font-size: 1.5em;
355
+ line-height: 1.5lh;
356
+ }
357
+
358
+ .query-term-grid {
359
+ display: flex;
360
+ gap: 0.25em;
361
+ flex-wrap: wrap;
362
+ }
363
+ </style>
@@ -6,6 +6,7 @@ declare const __propDef: {
6
6
  name?: string | undefined;
7
7
  email?: string | undefined;
8
8
  linkedinSlug?: string | undefined;
9
+ domain?: string | undefined;
9
10
  };
10
11
  events: {
11
12
  [evt: string]: CustomEvent<any>;
@@ -1,133 +1,133 @@
1
- main {
2
- width: 100%;
3
- overflow: visible;
4
- display: flex;
5
- flex-direction: column;
6
- justify-content: center;
7
- align-items: center;
8
- }
9
-
10
- h1 {
11
- font-size: 2em;
12
- }
13
-
14
- h2 {
15
- font-size: 1.5em;
16
- }
17
-
18
- .section-card {
19
- padding: 3em;
20
- max-width: 800px;
21
- }
22
-
23
- .game-card, .project-card {
24
- width: 100vw;
25
- max-width: 36em;
26
- margin-bottom: 3em;
27
- }
28
-
29
- .game-card > video {
30
- border-top-left-radius: 1em;
31
- border-top-right-radius: 1em;
32
- max-height: 24em;
33
- width: 100%;
34
- object-fit: cover;
35
- }
36
-
37
- #migrante-alberta, .game-card > img, .project-card > img {
38
- border-top-left-radius: 1em;
39
- border-top-right-radius: 1em;
40
- }
41
-
42
- #migrante-alberta {
43
- width: 100%;
44
- object-fit: cover;
45
- }
46
-
47
- .game-button {
48
- @apply btn variant-filled-primary;
49
- }
50
-
51
- .game-button > img {
52
- max-height: 1lh;
53
- /* todo: consider night mode day mode */
54
- }
55
-
56
- .two-column-separated {
57
- display: flex;
58
- justify-content: space-between;
59
- }
60
-
61
- .more-section {
62
- padding: 1em;
63
- }
64
-
65
- .greater-about-div {
66
- display: flex;
67
- flex-direction: column;
68
- max-width: 36em;
69
- }
70
-
71
- .experience-and-about-div {
72
- display: flex;
73
- gap: 2em;
74
- flex-wrap: wrap;
75
- justify-content: center;
76
- align-items: flex-start;
77
- }
78
-
79
- .game-card-body, .project-card-body {
80
- padding: 1em;
81
- }
82
-
83
- .game-card-body > blockquote {
84
- margin-bottom: 0.7lh;
85
- }
86
-
87
- .game-card-body > h1, .project-card-body > h2 {
88
- text-align: center;
89
- }
90
-
91
- .game-link-section {
92
- display: flex;
93
- flex-direction: row;
94
- justify-content: center;
95
- gap: 1em;
96
- margin-top: 1em;
97
- }
98
-
99
- .games-section, .projects-section {
100
- display: flex;
101
- flex-wrap: wrap;
102
- gap: 2em;
103
- justify-content: center;
104
- }
105
-
106
- .projects-section {
107
- align-items: flex-start;
108
- /*justify-content: flex-start;*/
109
- }
110
-
111
- .long-btn-image {
112
- max-height: 1lh;
113
- }
114
-
115
- .itch-promo {
116
- padding: 4em;
117
- }
118
-
119
- #hepcat-video {
120
- object-position: 0 0;
121
- }
122
-
123
- .title-card {
124
- width: clamp(360px, 80vw, 800px);
125
- }
126
-
127
- [class*='qt-'] {
128
- font-weight: var(--qt-font-weight);
129
- }
130
-
131
- .accordion-header {
132
- margin-top: 0.25em;
133
- }
1
+ main {
2
+ width: 100%;
3
+ overflow: visible;
4
+ display: flex;
5
+ flex-direction: column;
6
+ justify-content: center;
7
+ align-items: center;
8
+ }
9
+
10
+ h1 {
11
+ font-size: 2em;
12
+ }
13
+
14
+ h2 {
15
+ font-size: 1.5em;
16
+ }
17
+
18
+ .section-card {
19
+ padding: 3em;
20
+ max-width: 800px;
21
+ }
22
+
23
+ .game-card, .project-card {
24
+ width: 100vw;
25
+ max-width: 36em;
26
+ margin-bottom: 3em;
27
+ }
28
+
29
+ .game-card > video {
30
+ border-top-left-radius: 1em;
31
+ border-top-right-radius: 1em;
32
+ max-height: 24em;
33
+ width: 100%;
34
+ object-fit: cover;
35
+ }
36
+
37
+ #migrante-alberta, .game-card > img, .project-card > img {
38
+ border-top-left-radius: 1em;
39
+ border-top-right-radius: 1em;
40
+ }
41
+
42
+ #migrante-alberta {
43
+ width: 100%;
44
+ object-fit: cover;
45
+ }
46
+
47
+ .game-button {
48
+ @apply btn variant-filled-primary;
49
+ }
50
+
51
+ .game-button > img {
52
+ max-height: 1lh;
53
+ /* todo: consider night mode day mode */
54
+ }
55
+
56
+ .two-column-separated {
57
+ display: flex;
58
+ justify-content: space-between;
59
+ }
60
+
61
+ .more-section {
62
+ padding: 1em;
63
+ }
64
+
65
+ .greater-about-div {
66
+ display: flex;
67
+ flex-direction: column;
68
+ max-width: 36em;
69
+ }
70
+
71
+ .experience-and-about-div {
72
+ display: flex;
73
+ gap: 2em;
74
+ flex-wrap: wrap;
75
+ justify-content: center;
76
+ align-items: flex-start;
77
+ }
78
+
79
+ .game-card-body, .project-card-body {
80
+ padding: 1em;
81
+ }
82
+
83
+ .game-card-body > blockquote {
84
+ margin-bottom: 0.7lh;
85
+ }
86
+
87
+ .game-card-body > h1, .project-card-body > h2 {
88
+ text-align: center;
89
+ }
90
+
91
+ .game-link-section {
92
+ display: flex;
93
+ flex-direction: row;
94
+ justify-content: center;
95
+ gap: 1em;
96
+ margin-top: 1em;
97
+ }
98
+
99
+ .games-section, .projects-section {
100
+ display: flex;
101
+ flex-wrap: wrap;
102
+ gap: 2em;
103
+ justify-content: center;
104
+ }
105
+
106
+ .projects-section {
107
+ align-items: flex-start;
108
+ /*justify-content: flex-start;*/
109
+ }
110
+
111
+ .long-btn-image {
112
+ max-height: 1lh;
113
+ }
114
+
115
+ .itch-promo {
116
+ padding: 4em;
117
+ }
118
+
119
+ #hepcat-video {
120
+ object-position: 0 0;
121
+ }
122
+
123
+ .title-card {
124
+ width: clamp(360px, 80vw, 800px);
125
+ }
126
+
127
+ [class*='qt-'] {
128
+ font-weight: var(--qt-font-weight);
129
+ }
130
+
131
+ .accordion-header {
132
+ margin-top: 0.25em;
133
+ }
@@ -5,3 +5,6 @@ export interface ExternalLinkWarningArgs {
5
5
  href: string;
6
6
  }
7
7
  export declare const createExternalLinkWarningFunction: (args: ExternalLinkWarningArgs) => (() => void);
8
+ export interface RawGlob {
9
+ default: string;
10
+ }
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@turnipxenon/pineapple",
3
3
  "description": "personal package for base styling for other personal projects",
4
- "version": "2.4.24",
4
+ "version": "2.4.26",
5
5
  "scripts": {
6
6
  "dev": "vite dev",
7
7
  "build": "npm run check-requirements && vite build && yarn package",
@@ -0,0 +1,56 @@
1
+ <!--
2
+ OverridableMeta is convenient Svelte component allowing each page to override the head meta values
3
+ based on their +page.ts.
4
+
5
+ For example:
6
+ <code>
7
+ // +page.ts
8
+
9
+ import type { OverridableMetaProps } from "$pkg";
10
+
11
+ export const load = async (): Promise<OverridableMetaProps> => {
12
+ return {
13
+ title: "CustomTitle",
14
+ };
15
+ };
16
+ </code>
17
+ -->
18
+
19
+ <script lang="ts">
20
+ import WebThumbnailImage from "$pkg/assets/placeholder/placeholder_circle.png";
21
+
22
+ export let rootUrl = "http://localhost:5173";
23
+ export let title = "Welcome to my portfolio";
24
+ export let ogTitle = "Turnip time!";
25
+ export let ogDescription = "Welcome to Turnip's test portfolio";
26
+ export let ogImage = WebThumbnailImage;
27
+
28
+ import { page } from "$app/stores";
29
+ import type { OverridableMetaProps } from "./OverridableMetaProps";
30
+
31
+ const data: OverridableMetaProps = {
32
+ title: "Welcome to my portfolio",
33
+ ogUrl: "https://www.crouton.net/",
34
+ ogTitle: "Turnip time!",
35
+ ogDescription: "Welcome to Turnip's test portfolio",
36
+ ogImage: WebThumbnailImage
37
+ };
38
+ page.subscribe(p => {
39
+ const pageData: OverridableMetaProps = p.data;
40
+ data.title = pageData.title ?? title;
41
+ data.ogUrl = `${rootUrl}${p.url.pathname}`;
42
+ data.ogTitle = pageData.ogTitle ?? ogTitle;
43
+ data.ogDescription = pageData.ogDescription ?? ogDescription;
44
+ data.ogImage = pageData.ogImage ?? ogImage;
45
+ });
46
+ </script>
47
+
48
+ <svelte:head>
49
+ <meta charset="utf-8" />
50
+ <title>{data.title}</title>
51
+ <meta name="twitter:card" content="summary" />
52
+ <meta property="og:url" content={data.ogUrl} />
53
+ <meta property="og:title" content={data.ogTitle} />
54
+ <meta property="og:description" content={data.ogDescription} />
55
+ <meta property="og:image" content={data.ogImage} />
56
+ </svelte:head>
@@ -0,0 +1,7 @@
1
+ export interface OverridableMetaProps {
2
+ title?: string;
3
+ ogUrl?: string;
4
+ ogTitle?: string;
5
+ ogDescription?: string;
6
+ ogImage?: string;
7
+ }
@@ -0,0 +1,4 @@
1
+ // noinspection JSUnusedGlobalSymbols
2
+
3
+ export { default as OverridableMeta } from "./OverridableMeta.svelte";
4
+ export * from "./OverridableMetaProps";
package/src/lib/index.ts CHANGED
@@ -1,8 +1,11 @@
1
+ // noinspection JSUnusedGlobalSymbols
2
+
1
3
  export { default as PineappleLayoutBase } from "./components/pineapple/PineappleBaseLayout.svelte";
2
4
  export { default as SeaweedTemplate } from "./template/Seaweed/SeaweedTemplate.svelte";
3
5
  export { default as LazyAsset } from "./components/LazyAsset.svelte";
4
6
  export { default as Card } from "./components/Card.svelte";
5
7
 
8
+ export * from "./components/overrideable_meta/index.ts";
6
9
  export * from "./components/dialog_manager/DialogManagerStore";
7
10
  export * from "./components/dialog_manager/DialogManager";
8
11
  export * from "./components/dialog_manager/DialogUtils";