tecitheme 0.8.1 → 0.9.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.
- package/dist/assets/TECi_logo.svelte +177 -0
- package/dist/assets/TECi_logo.svelte.d.ts +23 -0
- package/dist/assets/js/store.d.ts +3 -0
- package/dist/assets/js/store.js +4 -0
- package/dist/components/Accordion.svelte +74 -0
- package/dist/components/Accordion.svelte.d.ts +27 -0
- package/dist/components/Banner.svelte +91 -0
- package/dist/components/Banner.svelte.d.ts +33 -0
- package/dist/components/Button.svelte +21 -0
- package/dist/components/Button.svelte.d.ts +37 -0
- package/dist/components/CTA.svelte +51 -0
- package/dist/components/CTA.svelte.d.ts +23 -0
- package/dist/components/CTASplitImage.svelte +34 -0
- package/dist/components/CTASplitImage.svelte.d.ts +23 -0
- package/dist/components/Card.svelte +91 -0
- package/dist/components/Card.svelte.d.ts +25 -0
- package/dist/components/CognitoForm.svelte +24 -0
- package/dist/components/CognitoForm.svelte.d.ts +27 -0
- package/dist/components/ContentTwoColumns.svelte +54 -0
- package/dist/components/ContentTwoColumns.svelte.d.ts +23 -0
- package/dist/components/CountrySelector.svelte +167 -0
- package/dist/components/CountrySelector.svelte.d.ts +27 -0
- package/dist/components/FeatureGrid.svelte +44 -0
- package/dist/components/FeatureGrid.svelte.d.ts +23 -0
- package/dist/components/Figure.svelte +40 -0
- package/dist/components/Figure.svelte.d.ts +29 -0
- package/dist/components/Footer.svelte +243 -0
- package/dist/components/Footer.svelte.d.ts +23 -0
- package/dist/components/Header.svelte +888 -0
- package/dist/components/Header.svelte.d.ts +30 -0
- package/dist/components/HeadingCentered.svelte +38 -0
- package/dist/components/HeadingCentered.svelte.d.ts +23 -0
- package/dist/components/Hero.svelte +82 -0
- package/dist/components/Hero.svelte.d.ts +23 -0
- package/dist/components/Icon.svelte +162 -0
- package/dist/components/Icon.svelte.d.ts +25 -0
- package/dist/components/LogoCloud.svelte +25 -0
- package/dist/components/LogoCloud.svelte.d.ts +23 -0
- package/dist/components/Math.svelte +24 -0
- package/dist/components/Math.svelte.d.ts +25 -0
- package/dist/components/MediaFeature.svelte +76 -0
- package/dist/components/MediaFeature.svelte.d.ts +23 -0
- package/dist/components/Modal.svelte +69 -0
- package/dist/components/Modal.svelte.d.ts +29 -0
- package/dist/components/NewsGrid.svelte +196 -0
- package/dist/components/NewsGrid.svelte.d.ts +23 -0
- package/dist/components/PageNav.svelte +243 -0
- package/dist/components/PageNav.svelte.d.ts +32 -0
- package/dist/components/PricingTable.svelte +100 -0
- package/dist/components/PricingTable.svelte.d.ts +23 -0
- package/dist/components/SidebarContent.svelte +124 -0
- package/dist/components/SidebarContent.svelte.d.ts +33 -0
- package/dist/components/Stats.svelte +40 -0
- package/dist/components/Stats.svelte.d.ts +23 -0
- package/dist/components/Testimonial.svelte +168 -0
- package/dist/components/Testimonial.svelte.d.ts +23 -0
- package/dist/components/ThreeColumn.svelte +20 -0
- package/dist/components/ThreeColumn.svelte.d.ts +23 -0
- package/dist/components/TrialForm.svelte +296 -0
- package/dist/components/TrialForm.svelte.d.ts +14 -0
- package/dist/components/Video.svelte +125 -0
- package/dist/components/Video.svelte.d.ts +27 -0
- package/dist/components/Wrap.svelte +12 -0
- package/dist/components/Wrap.svelte.d.ts +31 -0
- package/dist/get-content.d.ts +9 -0
- package/dist/get-content.js +98 -0
- package/dist/index.d.ts +31 -0
- package/dist/index.js +31 -0
- package/dist/layouts/blocks.svelte +108 -0
- package/dist/layouts/blocks.svelte.d.ts +47 -0
- package/dist/req_utils.d.ts +3 -0
- package/dist/req_utils.js +63 -0
- package/dist/site_config.json +13 -0
- package/dist/utils.d.ts +5 -0
- package/dist/utils.js +162 -0
- package/dist/variables.d.ts +1 -0
- package/dist/variables.js +2 -0
- package/package.json +1 -1
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
<script>
|
|
2
|
+
import Accordion from "../components/Accordion.svelte";
|
|
3
|
+
import CTA from "../components/CTA.svelte";
|
|
4
|
+
import HeadingCentered from "../components/HeadingCentered.svelte";
|
|
5
|
+
import MediaFeature from "../components/MediaFeature.svelte";
|
|
6
|
+
import Modal from "../components/Modal.svelte";
|
|
7
|
+
import NewsGrid from "../components/NewsGrid.svelte";
|
|
8
|
+
import SidebarContent from "../components/SidebarContent.svelte";
|
|
9
|
+
import ThreeColumn from "../components/ThreeColumn.svelte";
|
|
10
|
+
import TrialForm from "../components/TrialForm.svelte";
|
|
11
|
+
import Video from "../components/Video.svelte";
|
|
12
|
+
import Hero from "../components/Hero.svelte";
|
|
13
|
+
import FeatureGrid from "../components/FeatureGrid.svelte";
|
|
14
|
+
import LogoCloud from "../components/LogoCloud.svelte";
|
|
15
|
+
import CTASplitImage from "../components/CTASplitImage.svelte";
|
|
16
|
+
import ContentTwoColumns from "../components/ContentTwoColumns.svelte";
|
|
17
|
+
import PricingTable from "../components/PricingTable.svelte";
|
|
18
|
+
import Stats from "../components/Stats.svelte";
|
|
19
|
+
import PageNav from "../components/PageNav.svelte";
|
|
20
|
+
import Testimonial from "../components/Testimonial.svelte";
|
|
21
|
+
|
|
22
|
+
let blocks = [
|
|
23
|
+
{ ref: "accordion", component: Accordion},
|
|
24
|
+
{ ref: "cta", component: CTA },
|
|
25
|
+
{ ref: "heading-centered", component: HeadingCentered },
|
|
26
|
+
{ ref: "media-feature", component: MediaFeature },
|
|
27
|
+
{ ref: "modal", component: Modal },
|
|
28
|
+
{ ref: "news-grid", component: NewsGrid },
|
|
29
|
+
{ ref: "sidebar-content", component: SidebarContent },
|
|
30
|
+
{ ref: "three-column", component: ThreeColumn },
|
|
31
|
+
{ ref: "trial-form", component: TrialForm },
|
|
32
|
+
{ ref: "video", component: Video },
|
|
33
|
+
{ ref: "hero", component: Hero },
|
|
34
|
+
{ ref: "feature-grid", component: FeatureGrid },
|
|
35
|
+
{ ref: "logo-cloud", component: LogoCloud },
|
|
36
|
+
{ ref: "cta-split-image", component: CTASplitImage },
|
|
37
|
+
{ ref: "content-two-columns", component: ContentTwoColumns },
|
|
38
|
+
{ ref: "pricing-table", component: PricingTable },
|
|
39
|
+
{ ref: "stats", component: Stats },
|
|
40
|
+
{ ref: "pageNav", component: PageNav },
|
|
41
|
+
{ ref: "testimonial", component: Testimonial },
|
|
42
|
+
];
|
|
43
|
+
|
|
44
|
+
export let data = {};
|
|
45
|
+
export let form;
|
|
46
|
+
export let notIndexed = undefined;
|
|
47
|
+
export let type = undefined;
|
|
48
|
+
export let title = undefined;
|
|
49
|
+
export let date = undefined;
|
|
50
|
+
export let summary = undefined;
|
|
51
|
+
export let image = undefined;
|
|
52
|
+
export let lastmod = undefined;
|
|
53
|
+
export let layout = undefined;
|
|
54
|
+
export let page_sections = undefined;
|
|
55
|
+
|
|
56
|
+
let featuredImage;
|
|
57
|
+
|
|
58
|
+
if (image) {
|
|
59
|
+
featuredImage = "https://teci.imgix.net/www/images/" + image + "?w=1200&h=627&fit=crop&auto=compress&auto=format";
|
|
60
|
+
} else {
|
|
61
|
+
featuredImage = "https://teci.imgix.net/www/images/teci_icon_250.png";
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
let pageNav = page_sections ? page_sections.filter(sect => sect.fieldGroup === "pageNav")[0] : undefined;
|
|
65
|
+
</script>
|
|
66
|
+
|
|
67
|
+
<svelte:head>
|
|
68
|
+
<title>{title} | Thunderhead Engineering</title>
|
|
69
|
+
<meta data-key="description" name="description" content={summary}>
|
|
70
|
+
<meta property="og:type" content="article" />
|
|
71
|
+
<meta property="og:title" content={title} />
|
|
72
|
+
<meta name="twitter:title" content={title} />
|
|
73
|
+
<meta property="og:description" content={summary} />
|
|
74
|
+
<meta name="twitter:description" content={summary} />
|
|
75
|
+
<meta name="twitter:card" content="summary_large_image" />
|
|
76
|
+
<meta name="twitter:site" content="@thunderheadeng" />
|
|
77
|
+
<meta name="twitter:creator" content="@thunderheadeng" />
|
|
78
|
+
<meta property="og:image" content={featuredImage} />
|
|
79
|
+
<meta name="twitter:card" content={featuredImage} />
|
|
80
|
+
</svelte:head>
|
|
81
|
+
|
|
82
|
+
{#if pageNav}
|
|
83
|
+
<svelte:component
|
|
84
|
+
this={blocks.find((obj) => obj.ref === pageNav.fieldGroup).component}
|
|
85
|
+
data={pageNav}
|
|
86
|
+
/>
|
|
87
|
+
{/if}
|
|
88
|
+
|
|
89
|
+
<main class="relative my-0 mx-auto box-border flex w-full max-w-7xl flex-grow flex-col py-12 px-4 sm:px-6 lg:px-8">
|
|
90
|
+
<article class="flex flex-col space-y-16 {layout}">
|
|
91
|
+
{#each page_sections as section}
|
|
92
|
+
{#if section && section.fieldGroup === "sidebar-content"}
|
|
93
|
+
<svelte:component
|
|
94
|
+
this={blocks.find((obj) => obj.ref === section.fieldGroup).component}
|
|
95
|
+
data={section}
|
|
96
|
+
{title}
|
|
97
|
+
{date}
|
|
98
|
+
{lastmod}><slot /></svelte:component
|
|
99
|
+
>
|
|
100
|
+
{:else if section && section.fieldGroup != "sidebar-content" && section.fieldGroup != "pageNav"}
|
|
101
|
+
<svelte:component
|
|
102
|
+
this={blocks.find((obj) => obj.ref === section.fieldGroup).component}
|
|
103
|
+
data={section}
|
|
104
|
+
/>
|
|
105
|
+
{/if}
|
|
106
|
+
{/each}
|
|
107
|
+
</article>
|
|
108
|
+
</main>
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
/** @typedef {typeof __propDef.props} BlocksProps */
|
|
2
|
+
/** @typedef {typeof __propDef.events} BlocksEvents */
|
|
3
|
+
/** @typedef {typeof __propDef.slots} BlocksSlots */
|
|
4
|
+
export default class Blocks extends SvelteComponent<{
|
|
5
|
+
form: any;
|
|
6
|
+
data?: {};
|
|
7
|
+
summary?: any;
|
|
8
|
+
title?: any;
|
|
9
|
+
image?: any;
|
|
10
|
+
date?: any;
|
|
11
|
+
lastmod?: any;
|
|
12
|
+
notIndexed?: any;
|
|
13
|
+
type?: any;
|
|
14
|
+
layout?: any;
|
|
15
|
+
page_sections?: any;
|
|
16
|
+
}, {
|
|
17
|
+
[evt: string]: CustomEvent<any>;
|
|
18
|
+
}, {
|
|
19
|
+
default: {};
|
|
20
|
+
}> {
|
|
21
|
+
}
|
|
22
|
+
export type BlocksProps = typeof __propDef.props;
|
|
23
|
+
export type BlocksEvents = typeof __propDef.events;
|
|
24
|
+
export type BlocksSlots = typeof __propDef.slots;
|
|
25
|
+
import { SvelteComponent } from "svelte";
|
|
26
|
+
declare const __propDef: {
|
|
27
|
+
props: {
|
|
28
|
+
form: any;
|
|
29
|
+
data?: {};
|
|
30
|
+
summary?: any;
|
|
31
|
+
title?: any;
|
|
32
|
+
image?: any;
|
|
33
|
+
date?: any;
|
|
34
|
+
lastmod?: any;
|
|
35
|
+
notIndexed?: any;
|
|
36
|
+
type?: any;
|
|
37
|
+
layout?: any;
|
|
38
|
+
page_sections?: any;
|
|
39
|
+
};
|
|
40
|
+
events: {
|
|
41
|
+
[evt: string]: CustomEvent<any>;
|
|
42
|
+
};
|
|
43
|
+
slots: {
|
|
44
|
+
default: {};
|
|
45
|
+
};
|
|
46
|
+
};
|
|
47
|
+
export {};
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
import { browser } from "$app/environment";
|
|
2
|
+
|
|
3
|
+
export function browserGet(key) {
|
|
4
|
+
if (browser) {
|
|
5
|
+
const item = localStorage.getItem(key);
|
|
6
|
+
if (item) {
|
|
7
|
+
return JSON.parse(item);
|
|
8
|
+
}
|
|
9
|
+
}
|
|
10
|
+
return null;
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
export function browserSet(key, value) {
|
|
14
|
+
if (browser) {
|
|
15
|
+
localStorage.setItem(key, value);
|
|
16
|
+
}
|
|
17
|
+
return null;
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
export async function post(fetch, url, body) {
|
|
21
|
+
let customError = false;
|
|
22
|
+
try {
|
|
23
|
+
let headers = {};
|
|
24
|
+
if (!(body instanceof FormData)) {
|
|
25
|
+
headers["Content-Type"] = "application/json";
|
|
26
|
+
body = JSON.stringify(body);
|
|
27
|
+
}
|
|
28
|
+
const token = browserGet("token");
|
|
29
|
+
if (token) {
|
|
30
|
+
headers["X-UltraCart-Api-Version"] = "2017-03-01";
|
|
31
|
+
headers[Accept] = "application/json";
|
|
32
|
+
headers["x-ultracart-simple-key"] = token;
|
|
33
|
+
}
|
|
34
|
+
const res = await fetch(url, {
|
|
35
|
+
method: "POST",
|
|
36
|
+
body,
|
|
37
|
+
headers,
|
|
38
|
+
});
|
|
39
|
+
if (!res.ok) {
|
|
40
|
+
try {
|
|
41
|
+
const data = await res.json();
|
|
42
|
+
const error = data.message[0].messages[0];
|
|
43
|
+
customError = true;
|
|
44
|
+
throw { id: error.id, message: error.message };
|
|
45
|
+
} catch (err) {
|
|
46
|
+
console.log(err);
|
|
47
|
+
throw err;
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
try {
|
|
51
|
+
const json = await res.json();
|
|
52
|
+
return json;
|
|
53
|
+
} catch (err) {
|
|
54
|
+
console.log(err);
|
|
55
|
+
throw { id: "", message: "An unknown error has occured." };
|
|
56
|
+
}
|
|
57
|
+
} catch (err) {
|
|
58
|
+
console.log(err);
|
|
59
|
+
throw customError
|
|
60
|
+
? err
|
|
61
|
+
: { id: "", message: "An unknown error has occured" };
|
|
62
|
+
}
|
|
63
|
+
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "Thunderhead Engineering Design System",
|
|
3
|
+
"url": "https://tecitheme.netlify.app",
|
|
4
|
+
"showBanner": false,
|
|
5
|
+
"bannerData": {
|
|
6
|
+
"showCTA": true,
|
|
7
|
+
"shortText": "Short text in a few words to show how it works.",
|
|
8
|
+
"longText": "Long test text that goes on and on for a while with some information about something that people should know about.",
|
|
9
|
+
"ctaText": "Take Action",
|
|
10
|
+
"ctaLink": "https://www.thunderheadeng.com",
|
|
11
|
+
"allowClose": false
|
|
12
|
+
}
|
|
13
|
+
}
|
package/dist/utils.d.ts
ADDED
package/dist/utils.js
ADDED
|
@@ -0,0 +1,162 @@
|
|
|
1
|
+
export function scrollTo(anchor) {
|
|
2
|
+
document.querySelector("#" + anchor).scrollIntoView({
|
|
3
|
+
behavior: "smooth",
|
|
4
|
+
});
|
|
5
|
+
}
|
|
6
|
+
|
|
7
|
+
export function getColorStyles(type, color){
|
|
8
|
+
let classes = ""
|
|
9
|
+
switch (type) {
|
|
10
|
+
case 'text':
|
|
11
|
+
switch (color) {
|
|
12
|
+
case 'pyrosim':
|
|
13
|
+
classes = "text-pyrosim"
|
|
14
|
+
break;
|
|
15
|
+
case 'pathfinder':
|
|
16
|
+
classes = "text-pathfinder"
|
|
17
|
+
break;
|
|
18
|
+
case 'ventus':
|
|
19
|
+
classes = "text-ventus"
|
|
20
|
+
break;
|
|
21
|
+
case 'gray':
|
|
22
|
+
classes = "text-gray-300"
|
|
23
|
+
break;
|
|
24
|
+
case 'white':
|
|
25
|
+
classes = "text-white"
|
|
26
|
+
break;
|
|
27
|
+
default:
|
|
28
|
+
classes = "text-teci-blue-dark"
|
|
29
|
+
break;
|
|
30
|
+
}
|
|
31
|
+
break;
|
|
32
|
+
case 'button':
|
|
33
|
+
switch (color) {
|
|
34
|
+
case 'pyrosim':
|
|
35
|
+
classes = "bg-pyrosim hover:bg-pyrosim-dark text-white focus:ring-teci-blue-light border-pyrosim-dark"
|
|
36
|
+
break;
|
|
37
|
+
case 'pathfinder':
|
|
38
|
+
classes = "bg-pathfinder hover:bg-pathfinder-dark text-white focus:ring-teci-blue-light border-pathfinder-dark"
|
|
39
|
+
break;
|
|
40
|
+
case 'ventus':
|
|
41
|
+
classes = "bg-ventus hover:bg-ventus-dark text-white focus:ring-teci-blue-light border-ventus-dark"
|
|
42
|
+
break;
|
|
43
|
+
case 'white':
|
|
44
|
+
classes = "bg-white text-gray-600 hover:bg-gray-200 focus:ring-teci-blue-light border-gray-200"
|
|
45
|
+
break;
|
|
46
|
+
default:
|
|
47
|
+
classes = "bg-teci-blue-light hover:bg-teci-blue-dark text-white focus:ring-teci-blue-light border-teci-blue-dark"
|
|
48
|
+
break;
|
|
49
|
+
}
|
|
50
|
+
break;
|
|
51
|
+
case 'background':
|
|
52
|
+
switch (color) {
|
|
53
|
+
case 'pyrosim':
|
|
54
|
+
classes = "bg-pyrosim text-white"
|
|
55
|
+
break;
|
|
56
|
+
case 'pathfinder':
|
|
57
|
+
classes = "bg-pathfinder text-white"
|
|
58
|
+
break;
|
|
59
|
+
case 'ventus':
|
|
60
|
+
classes = "bg-ventus text-white"
|
|
61
|
+
break;
|
|
62
|
+
case 'teci':
|
|
63
|
+
classes = "bg-teci-blue-light text-white"
|
|
64
|
+
break;
|
|
65
|
+
default:
|
|
66
|
+
classes = "bg-white"
|
|
67
|
+
break;
|
|
68
|
+
}
|
|
69
|
+
break;
|
|
70
|
+
default:
|
|
71
|
+
break;
|
|
72
|
+
}
|
|
73
|
+
return classes;
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
export function validateEmail(email) {
|
|
77
|
+
const re =
|
|
78
|
+
/^(([^<>()[\]\\.,;:\s@"]+(\.[^<>()[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/;
|
|
79
|
+
return re.test(String(email).toLowerCase());
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
export function slugFromPath(path) {
|
|
83
|
+
path.match(/([\w-]+)\.(svelte\.md|md|svx)/i)?.[1] ?? null;
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
export function buildToC() {
|
|
87
|
+
// Based on https://projectcodeed.blogspot.com/2020/04/an-automatic-table-of-contents.html
|
|
88
|
+
|
|
89
|
+
// Get ToC div
|
|
90
|
+
let toc = document.getElementById("ToC");
|
|
91
|
+
|
|
92
|
+
//Add a header
|
|
93
|
+
var tocHeader = document.createElement("a");
|
|
94
|
+
tocHeader.classList.add(
|
|
95
|
+
"mb-2",
|
|
96
|
+
"inline-block",
|
|
97
|
+
"w-auto",
|
|
98
|
+
"text-center",
|
|
99
|
+
"bg-gray-50",
|
|
100
|
+
"hover:bg-gray-100",
|
|
101
|
+
"py-1",
|
|
102
|
+
"px-2",
|
|
103
|
+
"border"
|
|
104
|
+
);
|
|
105
|
+
tocHeader.innerHTML =
|
|
106
|
+
"<span class='material-icons-outlined text-sm font-bold text-gray-500 align-text-bottom'>vertical_align_top</span>";
|
|
107
|
+
tocHeader.setAttribute("href", "#top");
|
|
108
|
+
tocHeader.setAttribute("title", "To Top of Page");
|
|
109
|
+
toc.appendChild(tocHeader);
|
|
110
|
+
|
|
111
|
+
// Create a list for the ToC entries
|
|
112
|
+
let tocList = document.createElement("ul");
|
|
113
|
+
|
|
114
|
+
// Find the primary content section
|
|
115
|
+
let content = document.getElementById("content");
|
|
116
|
+
|
|
117
|
+
// Get the h2 tags - ToC entries
|
|
118
|
+
let headers = content.getElementsByTagName("h2");
|
|
119
|
+
|
|
120
|
+
if (headers.length == 0) {
|
|
121
|
+
console.log("There are not any H2 elements in the document.");
|
|
122
|
+
} else {
|
|
123
|
+
// For each h2
|
|
124
|
+
for (let i = 0; i < headers.length; i++) {
|
|
125
|
+
// Get Heading ID
|
|
126
|
+
let name = headers[i].id;
|
|
127
|
+
|
|
128
|
+
// list item for the entry
|
|
129
|
+
let tocListItem = document.createElement("li");
|
|
130
|
+
tocListItem.classList.add(
|
|
131
|
+
"text-teci-blue-light",
|
|
132
|
+
"hover:text-teci-blue-dark",
|
|
133
|
+
"text-sm",
|
|
134
|
+
"truncate"
|
|
135
|
+
);
|
|
136
|
+
|
|
137
|
+
// link for the h2
|
|
138
|
+
let tocEntry = document.createElement("a");
|
|
139
|
+
tocEntry.setAttribute("href", "#" + name);
|
|
140
|
+
tocEntry.innerText = headers[i].innerText;
|
|
141
|
+
|
|
142
|
+
// add link to list item list
|
|
143
|
+
tocListItem.appendChild(tocEntry);
|
|
144
|
+
|
|
145
|
+
// add list item to list
|
|
146
|
+
tocList.appendChild(tocListItem);
|
|
147
|
+
}
|
|
148
|
+
|
|
149
|
+
// add list to toc element
|
|
150
|
+
toc.appendChild(tocList);
|
|
151
|
+
|
|
152
|
+
//Add a footer
|
|
153
|
+
//var tocFooter = document.createElement("a");
|
|
154
|
+
//tocFooter.classList.add("mt-2", "inline-block", "w-auto", "text-center", "bg-gray-50", "hover:bg-gray-100", "py-1", "px-2", "border")
|
|
155
|
+
//tocFooter.innerHTML="<span class='material-icons-outlined text-sm font-bold text-gray-500 align-text-bottom'>vertical_align_bottom</span>";
|
|
156
|
+
//tocFooter.setAttribute("href","#bottom");
|
|
157
|
+
//tocFooter.setAttribute("title","To Bottom of Page");
|
|
158
|
+
//toc.appendChild(tocFooter);
|
|
159
|
+
|
|
160
|
+
return true;
|
|
161
|
+
}
|
|
162
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export const variables: {};
|