tecitheme 0.5.2 → 0.6.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/README.md +315 -2
- package/dist/components/Accordion.svelte +1 -1
- package/dist/components/Button.svelte +14 -6
- package/dist/components/Button.svelte.d.ts +10 -0
- package/dist/components/CTA.svelte +22 -12
- package/dist/components/CTASplitImage.svelte +13 -11
- package/dist/components/Card.svelte +18 -19
- package/dist/components/ContentTwoColumns.svelte +12 -10
- package/dist/components/FeatureGrid.svelte +5 -8
- package/dist/components/Figure.svelte +1 -3
- package/dist/components/Footer.svelte +11 -30
- package/dist/components/Header.svelte +21 -21
- package/dist/components/Hero.svelte +10 -11
- package/dist/components/LogoCloud.svelte +1 -1
- package/dist/components/MediaFeature.svelte +4 -1
- package/dist/components/Modal.svelte +2 -1
- package/dist/components/NewsGrid.svelte +14 -19
- package/dist/components/PricingTable.svelte +5 -6
- package/dist/components/Stats.svelte +2 -1
- package/dist/components/Testimonial.svelte +3 -2
- package/dist/layouts/blocks.svelte +3 -5
- package/dist/utils.d.ts +1 -0
- package/dist/utils.js +69 -0
- package/package.json +24 -24
- package/dist/components/CTABranded.svelte +0 -20
- package/dist/components/CTABranded.svelte.d.ts +0 -23
- package/dist/components/Subscribe.svelte +0 -24
- package/dist/components/Subscribe.svelte.d.ts +0 -23
|
@@ -28,9 +28,7 @@
|
|
|
28
28
|
|
|
29
29
|
{#if image}
|
|
30
30
|
<section {id} class="not-prose mb-8 flex justify-center">
|
|
31
|
-
<figure
|
|
32
|
-
class="mx-auto w-auto border border-slate-100 bg-white p-2 shadow-lg"
|
|
33
|
-
>
|
|
31
|
+
<figure class="mx-auto w-auto border border-slate-100 p-2 shadow-lg">
|
|
34
32
|
<a class="inline-block w-full bg-slate-200 p-1" href={figureLink}>
|
|
35
33
|
<img class="mx-auto w-auto" src={figureImage} alt={title} {title} />
|
|
36
34
|
</a>
|
|
@@ -1,4 +1,6 @@
|
|
|
1
1
|
<script>
|
|
2
|
+
import Button from './Button.svelte'
|
|
3
|
+
|
|
2
4
|
let d = new Date();
|
|
3
5
|
</script>
|
|
4
6
|
|
|
@@ -168,48 +170,27 @@
|
|
|
168
170
|
</div>
|
|
169
171
|
</div>
|
|
170
172
|
</div>
|
|
171
|
-
<div class="mt-8 flex flex-col justify-between md:items-end xl:mt-0">
|
|
172
|
-
<h3
|
|
173
|
-
class="text-right text-sm font-bold uppercase tracking-wider text-gray-300"
|
|
174
|
-
>
|
|
173
|
+
<div class="mt-8 flex flex-col justify-between space-y-4 md:items-end xl:mt-0">
|
|
174
|
+
<h3 class="text-right text-sm font-bold uppercase tracking-wider text-gray-300">
|
|
175
175
|
Subscribe to Updates
|
|
176
176
|
</h3>
|
|
177
|
-
<p
|
|
178
|
-
class="xxl:text-lg mt-4 text-right text-base leading-6 text-gray-300"
|
|
179
|
-
>
|
|
177
|
+
<p class="xxl:text-lg text-right text-base leading-6 text-gray-300">
|
|
180
178
|
Receive information about new software releases, tutorials and major
|
|
181
179
|
announcements.
|
|
182
180
|
</p>
|
|
183
|
-
<
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
data-w-id="Fbu"
|
|
189
|
-
data-lang="en_US"
|
|
190
|
-
data-base="https://app.mailjet.com"
|
|
191
|
-
data-width="640"
|
|
192
|
-
data-height="480"
|
|
193
|
-
data-statics="statics"
|
|
181
|
+
<Button
|
|
182
|
+
url="https://www.thunderheadeng.com/subscribe"
|
|
183
|
+
text="Subscribe"
|
|
184
|
+
color="teci"
|
|
185
|
+
justify="right"
|
|
194
186
|
/>
|
|
195
|
-
<div
|
|
196
|
-
class="mj-w-button mj-w-btn mt-4 w-full md:max-w-xs"
|
|
197
|
-
data-token="c59142d82197a4f86bc30e8fa80e1ea8"
|
|
198
|
-
>
|
|
199
|
-
<div
|
|
200
|
-
class="mj-w-button-content flex w-full items-center justify-center border border-transparent bg-teci-blue-light px-4 py-2 text-base font-medium leading-6 text-white transition duration-150 ease-in-out hover:bg-teci-blue-dark focus:border-teci-blue-dark focus:outline-none"
|
|
201
|
-
>
|
|
202
|
-
Sign Up
|
|
203
|
-
</div>
|
|
204
|
-
</div>
|
|
205
187
|
</div>
|
|
206
188
|
</div>
|
|
207
189
|
<div
|
|
208
190
|
class="mt-8 border-t border-gray-700 pt-8 md:flex md:items-center md:justify-between"
|
|
209
191
|
>
|
|
210
192
|
<div class="flex space-x-6 md:order-3">
|
|
211
|
-
<a
|
|
212
|
-
href="https://www.linkedin.com/company/thunderheadeng"
|
|
193
|
+
<a href="https://www.linkedin.com/company/thunderheadeng"
|
|
213
194
|
class="text-gray-300 hover:text-gray-300"
|
|
214
195
|
>
|
|
215
196
|
<span class="sr-only">LinkedIn</span>
|
|
@@ -31,7 +31,7 @@
|
|
|
31
31
|
|
|
32
32
|
<svelte:window on:keyup={handleEscape} />
|
|
33
33
|
|
|
34
|
-
<header id="menu" class="relative
|
|
34
|
+
<header id="menu" class="relative">
|
|
35
35
|
<div
|
|
36
36
|
aria-hidden="true"
|
|
37
37
|
class="pointer-events-none absolute inset-0 z-30 shadow"
|
|
@@ -58,7 +58,7 @@
|
|
|
58
58
|
openMenu == "products"
|
|
59
59
|
? (openMenu = "")
|
|
60
60
|
: (openMenu = "products")}
|
|
61
|
-
class="group inline-flex items-center bg-white text-left text-base font-medium
|
|
61
|
+
class="group inline-flex items-center bg-white text-left text-base font-medium hover:text-gray-900 focus:outline-none focus:ring-2 focus:ring-teci-blue-light focus:ring-offset-2"
|
|
62
62
|
aria-expanded={openMenu == "products"}
|
|
63
63
|
>
|
|
64
64
|
<span class:text-gray-900={openMenu == "products"}>Products</span>
|
|
@@ -108,7 +108,7 @@
|
|
|
108
108
|
<p class="text-base font-medium text-gray-900">
|
|
109
109
|
PyroSim
|
|
110
110
|
</p>
|
|
111
|
-
<p class="mt-1 text-sm
|
|
111
|
+
<p class="mt-1 text-sm">
|
|
112
112
|
Analyze fire control and smoke dissipation in various
|
|
113
113
|
structures for fire protection and safety or
|
|
114
114
|
investigation.
|
|
@@ -138,7 +138,7 @@
|
|
|
138
138
|
<p class="text-base font-medium text-gray-900">
|
|
139
139
|
Pathfinder
|
|
140
140
|
</p>
|
|
141
|
-
<p class="mt-1 text-sm
|
|
141
|
+
<p class="mt-1 text-sm">
|
|
142
142
|
Understand pedestrian egress and congestion hazards
|
|
143
143
|
for fire protection and safety or urban planning.
|
|
144
144
|
</p>
|
|
@@ -167,7 +167,7 @@
|
|
|
167
167
|
<p class="text-base font-medium text-gray-900">
|
|
168
168
|
PetraSim
|
|
169
169
|
</p>
|
|
170
|
-
<p class="mt-1 text-sm
|
|
170
|
+
<p class="mt-1 text-sm">
|
|
171
171
|
Model nonisothermal multiphase flow and transport in
|
|
172
172
|
fractured and porous media for environmental
|
|
173
173
|
engineering.
|
|
@@ -269,7 +269,7 @@
|
|
|
269
269
|
type="button"
|
|
270
270
|
on:click={() =>
|
|
271
271
|
openMenu == "support" ? (openMenu = "") : (openMenu = "support")}
|
|
272
|
-
class="group inline-flex items-center bg-white text-base font-medium
|
|
272
|
+
class="group inline-flex items-center bg-white text-base font-medium hover:text-gray-900 focus:outline-none focus:ring-2 focus:ring-teci-blue-light focus:ring-offset-2"
|
|
273
273
|
aria-expanded={openMenu == "support"}
|
|
274
274
|
>
|
|
275
275
|
<span class:text-gray-900={openMenu == "support"}>Support</span>
|
|
@@ -325,7 +325,7 @@
|
|
|
325
325
|
<p class="text-base font-medium text-gray-900">
|
|
326
326
|
Documentation
|
|
327
327
|
</p>
|
|
328
|
-
<p class="mt-1 text-sm
|
|
328
|
+
<p class="mt-1 text-sm">
|
|
329
329
|
Manuals and Reference Documents for all products
|
|
330
330
|
</p>
|
|
331
331
|
</div>
|
|
@@ -351,7 +351,7 @@
|
|
|
351
351
|
</svg>
|
|
352
352
|
<div class="ml-4">
|
|
353
353
|
<p class="text-base font-medium text-gray-900">Tutorials</p>
|
|
354
|
-
<p class="mt-1 text-sm
|
|
354
|
+
<p class="mt-1 text-sm">
|
|
355
355
|
Getting Started, Applications and Feature Demos
|
|
356
356
|
</p>
|
|
357
357
|
</div>
|
|
@@ -379,7 +379,7 @@
|
|
|
379
379
|
<p class="text-base font-medium text-gray-900">
|
|
380
380
|
Release Notes
|
|
381
381
|
</p>
|
|
382
|
-
<p class="mt-1 text-sm
|
|
382
|
+
<p class="mt-1 text-sm">
|
|
383
383
|
Detailed changes each product release
|
|
384
384
|
</p>
|
|
385
385
|
</div>
|
|
@@ -405,7 +405,7 @@
|
|
|
405
405
|
</svg>
|
|
406
406
|
<div class="ml-4">
|
|
407
407
|
<p class="text-base font-medium text-gray-900">FAQs</p>
|
|
408
|
-
<p class="mt-1 text-sm
|
|
408
|
+
<p class="mt-1 text-sm">
|
|
409
409
|
Frequently Asked Questions (FAQs) and Answers
|
|
410
410
|
</p>
|
|
411
411
|
</div>
|
|
@@ -472,7 +472,7 @@
|
|
|
472
472
|
type="button"
|
|
473
473
|
on:click={() =>
|
|
474
474
|
openMenu == "events" ? (openMenu = "") : (openMenu = "events")}
|
|
475
|
-
class="group inline-flex items-center bg-white text-base font-medium
|
|
475
|
+
class="group inline-flex items-center bg-white text-base font-medium hover:text-gray-900 focus:outline-none focus:ring-2 focus:ring-teci-blue-light focus:ring-offset-2"
|
|
476
476
|
aria-expanded={openMenu == "events"}
|
|
477
477
|
>
|
|
478
478
|
<span class:text-gray-900={openMenu == "events"}>Events</span>
|
|
@@ -526,7 +526,7 @@
|
|
|
526
526
|
</svg>
|
|
527
527
|
<div class="ml-4">
|
|
528
528
|
<p class="text-base font-medium text-gray-900">Calendar</p>
|
|
529
|
-
<p class="mt-1 text-sm
|
|
529
|
+
<p class="mt-1 text-sm">
|
|
530
530
|
See upcoming events schedule.
|
|
531
531
|
</p>
|
|
532
532
|
</div>
|
|
@@ -552,7 +552,7 @@
|
|
|
552
552
|
</svg>
|
|
553
553
|
<div class="ml-4">
|
|
554
554
|
<p class="text-base font-medium text-gray-900">FEMTC</p>
|
|
555
|
-
<p class="mt-1 text-sm
|
|
555
|
+
<p class="mt-1 text-sm">
|
|
556
556
|
Fire and Evacuation Modeling Technical Conference
|
|
557
557
|
</p>
|
|
558
558
|
</div>
|
|
@@ -578,7 +578,7 @@
|
|
|
578
578
|
</svg>
|
|
579
579
|
<div class="ml-4">
|
|
580
580
|
<p class="text-base font-medium text-gray-900">Training</p>
|
|
581
|
-
<p class="mt-1 text-sm
|
|
581
|
+
<p class="mt-1 text-sm">
|
|
582
582
|
Both Online and In-person training options.
|
|
583
583
|
</p>
|
|
584
584
|
</div>
|
|
@@ -644,7 +644,7 @@
|
|
|
644
644
|
type="button"
|
|
645
645
|
on:click={() =>
|
|
646
646
|
openMenu == "company" ? (openMenu = "") : (openMenu = "company")}
|
|
647
|
-
class="group inline-flex items-center bg-white text-base font-medium
|
|
647
|
+
class="group inline-flex items-center bg-white text-base font-medium hover:text-gray-900 focus:outline-none focus:ring-2 focus:ring-teci-blue-light focus:ring-offset-2"
|
|
648
648
|
aria-expanded={openMenu == "company"}
|
|
649
649
|
>
|
|
650
650
|
<span class:text-gray-900={openMenu == "company"}>Company</span>
|
|
@@ -698,7 +698,7 @@
|
|
|
698
698
|
</svg>
|
|
699
699
|
<div class="ml-4">
|
|
700
700
|
<p class="text-base font-medium text-gray-900">About</p>
|
|
701
|
-
<p class="mt-1 text-sm
|
|
701
|
+
<p class="mt-1 text-sm">
|
|
702
702
|
Learn more about Thunderhead Engineering
|
|
703
703
|
</p>
|
|
704
704
|
</div>
|
|
@@ -724,7 +724,7 @@
|
|
|
724
724
|
</svg>
|
|
725
725
|
<div class="ml-4">
|
|
726
726
|
<p class="text-base font-medium text-gray-900">News</p>
|
|
727
|
-
<p class="mt-1 text-sm
|
|
727
|
+
<p class="mt-1 text-sm">
|
|
728
728
|
Announcements for our products and services
|
|
729
729
|
</p>
|
|
730
730
|
</div>
|
|
@@ -750,7 +750,7 @@
|
|
|
750
750
|
</svg>
|
|
751
751
|
<div class="ml-4">
|
|
752
752
|
<p class="text-base font-medium text-gray-900">Jobs</p>
|
|
753
|
-
<p class="mt-1 text-sm
|
|
753
|
+
<p class="mt-1 text-sm">
|
|
754
754
|
Become a part of the Thunderhead team
|
|
755
755
|
</p>
|
|
756
756
|
</div>
|
|
@@ -776,7 +776,7 @@
|
|
|
776
776
|
</svg>
|
|
777
777
|
<div class="ml-4">
|
|
778
778
|
<p class="text-base font-medium text-gray-900">Partners</p>
|
|
779
|
-
<p class="mt-1 text-sm
|
|
779
|
+
<p class="mt-1 text-sm">
|
|
780
780
|
International reseller and distributor network
|
|
781
781
|
</p>
|
|
782
782
|
</div>
|
|
@@ -839,7 +839,7 @@
|
|
|
839
839
|
>
|
|
840
840
|
<svg
|
|
841
841
|
xmlns="http://www.w3.org/2000/svg"
|
|
842
|
-
class="h-6 w-6 flex-shrink-0
|
|
842
|
+
class="h-6 w-6 flex-shrink-0 md:h-8 md:w-8"
|
|
843
843
|
fill="none"
|
|
844
844
|
viewBox="0 0 24 24"
|
|
845
845
|
stroke="currentColor"
|
|
@@ -860,7 +860,7 @@
|
|
|
860
860
|
>
|
|
861
861
|
<svg
|
|
862
862
|
xmlns="http://www.w3.org/2000/svg"
|
|
863
|
-
class="h-6 w-6 flex-shrink-0
|
|
863
|
+
class="h-6 w-6 flex-shrink-0 md:h-8 md:w-8"
|
|
864
864
|
fill="none"
|
|
865
865
|
viewBox="0 0 24 24"
|
|
866
866
|
stroke="currentColor"
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
<script>
|
|
2
2
|
import Icon from './Icon.svelte'
|
|
3
3
|
|
|
4
|
+
import { getColorStyles } from '../utils'
|
|
4
5
|
export let data
|
|
5
6
|
let id
|
|
6
7
|
|
|
@@ -9,7 +10,7 @@ import Icon from './Icon.svelte'
|
|
|
9
10
|
}
|
|
10
11
|
</script>
|
|
11
12
|
|
|
12
|
-
<section {id} class="relative
|
|
13
|
+
<section {id} class="relative">
|
|
13
14
|
<div class="mx-auto max-w-7xl md:grid md:grid-cols-12 md:gap-x-8 md:px-0">
|
|
14
15
|
<div class="pt-0 pb-0 md:col-span-8 lg:col-span-7 xl:col-span-6">
|
|
15
16
|
<div class="mx-auto">
|
|
@@ -24,15 +25,15 @@ import Icon from './Icon.svelte'
|
|
|
24
25
|
{#if data.banner_text}
|
|
25
26
|
<div class="mt-6 sm:mt-8 lg:mt-4 inline-flex space-x-6">
|
|
26
27
|
<a href={data.banner_url}>
|
|
27
|
-
<span class="rounded-full bg-gray-300/10 px-3 py-1 text-sm font-semibold leading-6 {(
|
|
28
|
+
<span class="rounded-full bg-gray-300/10 border px-3 py-1 text-sm font-semibold leading-6 {getColorStyles('text', data.color)}">
|
|
28
29
|
{data.banner_text}
|
|
29
30
|
</span>
|
|
30
31
|
</a>
|
|
31
32
|
<a href={data.banner_link_url}>
|
|
32
|
-
<span class="inline-flex items-center space-x-1 text-sm font-medium leading-6 text-gray-
|
|
33
|
+
<span class="inline-flex items-center space-x-1 text-sm font-medium leading-6 text-gray-500">
|
|
33
34
|
<span>{data.banner_link_text}</span>
|
|
34
35
|
<!-- Heroicon name: mini/chevron-right -->
|
|
35
|
-
<svg class="h-5 w-5 {(
|
|
36
|
+
<svg class="h-5 w-5 {getColorStyles('text', data.color)}" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20" fill="currentColor" aria-hidden="true">
|
|
36
37
|
<path fill-rule="evenodd" d="M7.21 14.77a.75.75 0 01.02-1.06L11.168 10 7.23 6.29a.75.75 0 111.04-1.08l4.5 4.25a.75.75 0 010 1.08l-4.5 4.25a.75.75 0 01-1.06-.02z" clip-rule="evenodd" />
|
|
37
38
|
</svg>
|
|
38
39
|
</span>
|
|
@@ -40,27 +41,25 @@ import Icon from './Icon.svelte'
|
|
|
40
41
|
</div>
|
|
41
42
|
{/if}
|
|
42
43
|
<h2 class="mt-10 text-4xl font-bold tracking-tight text-gray-900 sm:text-6xl">{data.tagline}</h2>
|
|
43
|
-
<p class="mt-6 text-lg leading-8
|
|
44
|
+
<p class="mt-6 text-lg leading-8">{data.text}</p>
|
|
44
45
|
{#if data.ctas}
|
|
45
46
|
<div class="mt-10 flex gap-x-8 sm:justify-left">
|
|
46
47
|
{#each data.ctas as cta}
|
|
47
|
-
<a href={cta.url} class="inline-block
|
|
48
|
-
{(cta.color == "pyrosim" ? "bg-pyrosim text-white" : (cta.color == "pathfinder" ? "bg-pathfinder text-white" : (cta.color == "ventus" ? "bg-ventus text-white" : (cta.color == "white" ? "bg-white text-gray-600 hover:text-white" : "bg-teci-blue-dark text-white"))))}
|
|
49
|
-
">
|
|
48
|
+
<a href={cta.url} class="inline-block btn {getColorStyles('button', cta.color)}">
|
|
50
49
|
{cta.text}
|
|
51
|
-
<span class="hidden sm:inline
|
|
50
|
+
<span class="hidden sm:inline" aria-hidden="true">→</span>
|
|
52
51
|
</a>
|
|
53
52
|
{/each}
|
|
54
53
|
</div>
|
|
55
54
|
{/if}
|
|
56
55
|
<div class="mt-16">
|
|
57
|
-
<section class="{(
|
|
56
|
+
<section class="{getColorStyles('background', data.color)}">
|
|
58
57
|
<div class="text-center mx-auto max-w-4xl py-10 px-6 sm:py-10 lg:px-8">
|
|
59
58
|
<h2 class="text-3xl font-bold tracking-tight text-white sm:text-2xl">
|
|
60
59
|
<span class="block">{@html data.heading}</span>
|
|
61
60
|
</h2>
|
|
62
61
|
<p class="mt-4 text-lg leading-6 text-gray-200">{@html data.body}</p>
|
|
63
|
-
<a href={data.cta_url} class="mt-8 inline-
|
|
62
|
+
<a href={data.cta_url} class="mt-8 inline-block btn {getColorStyles('button', data.cta_color)}">
|
|
64
63
|
{@html data.cta}
|
|
65
64
|
</a>
|
|
66
65
|
</div>
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
<div class="bg-white">
|
|
2
2
|
<div class="mx-auto max-w-7xl py-12 px-6 lg:py-16 lg:px-8">
|
|
3
|
-
<p class="text-center text-lg font-semibold
|
|
3
|
+
<p class="text-center text-lg font-semibold">Trusted by fire protection experts all over the world</p>
|
|
4
4
|
<div class="mt-6 grid grid-cols-2 gap-0.5 md:grid-cols-3 lg:mt-8">
|
|
5
5
|
<div class="col-span-1 flex justify-center bg-gray-50 py-8 px-8">
|
|
6
6
|
<img class="max-h-12" src="https://tailwindui.com/img/logos/transistor-logo-gray-400.svg" alt="Workcation">
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
<script>
|
|
2
2
|
import Video from './Video.svelte'
|
|
3
3
|
|
|
4
|
+
import { getColorStyles } from '../utils'
|
|
4
5
|
export let data;
|
|
5
6
|
|
|
6
7
|
let figureImage;
|
|
@@ -66,7 +67,9 @@ import Video from './Video.svelte'
|
|
|
66
67
|
</div>
|
|
67
68
|
{#if data.ctaText}
|
|
68
69
|
<div class="mt-4 text-right md:text-left">
|
|
69
|
-
<a class="btn
|
|
70
|
+
<a class="btn {getColorStyles('button', data.ctaColor)}" href={data.ctaURL}>
|
|
71
|
+
{data.ctaText}
|
|
72
|
+
</a>
|
|
70
73
|
</div>
|
|
71
74
|
{/if}
|
|
72
75
|
</div>
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
<script>
|
|
2
|
+
import Button from "./Button.svelte";
|
|
2
3
|
export let data;
|
|
3
4
|
let shown = false;
|
|
4
5
|
|
|
@@ -27,7 +28,7 @@
|
|
|
27
28
|
<p>{data.text}</p>
|
|
28
29
|
{/if}
|
|
29
30
|
{#if data.buttonText}
|
|
30
|
-
<
|
|
31
|
+
<Button on:click={show} action=true text={data.buttonText} color={data.buttonColor} justify='left' />
|
|
31
32
|
{/if}
|
|
32
33
|
</div>
|
|
33
34
|
{/if}
|
|
@@ -1,4 +1,6 @@
|
|
|
1
1
|
<script>
|
|
2
|
+
import Button from './Button.svelte'
|
|
3
|
+
|
|
2
4
|
import { page } from '$app/stores';
|
|
3
5
|
import { paginate, PaginationNav } from "svelte-paginate";
|
|
4
6
|
import Icon from "./Icon.svelte";
|
|
@@ -66,23 +68,12 @@
|
|
|
66
68
|
<p class="text-xl text-gray-500">{data.subtitle}</p>
|
|
67
69
|
</div>
|
|
68
70
|
<div class="w-32">
|
|
69
|
-
<
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
data-lang="en_US"
|
|
76
|
-
data-base="https://app.mailjet.com"
|
|
77
|
-
data-width="640"
|
|
78
|
-
data-height="480"
|
|
79
|
-
data-statics="statics"
|
|
80
|
-
/>
|
|
81
|
-
<button
|
|
82
|
-
class="flex w-full items-center justify-center border border-transparent bg-teci-blue-light px-4 py-2 text-base font-medium leading-6 text-white transition duration-150 ease-in-out hover:bg-teci-blue-dark focus:border-teci-blue-dark focus:outline-none"
|
|
83
|
-
data-token="f594659941689957f270ca278a80dc7d"
|
|
84
|
-
onclick="mjOpenPopin(event, this)">Subscribe</button
|
|
85
|
-
>
|
|
71
|
+
<Button
|
|
72
|
+
url="https://www.thunderheadeng.com/subscribe"
|
|
73
|
+
text="Subscribe"
|
|
74
|
+
color="teci"
|
|
75
|
+
justify="right"
|
|
76
|
+
/>
|
|
86
77
|
</div>
|
|
87
78
|
</div>
|
|
88
79
|
{#if items.length > 0}
|
|
@@ -173,8 +164,12 @@
|
|
|
173
164
|
{/if}
|
|
174
165
|
{#if !showPagination}
|
|
175
166
|
<div class="mt-8 w-full">
|
|
176
|
-
<
|
|
177
|
-
|
|
167
|
+
<Button
|
|
168
|
+
url="/news"
|
|
169
|
+
text="All News Posts"
|
|
170
|
+
color="teci"
|
|
171
|
+
justify="right"
|
|
172
|
+
/>
|
|
178
173
|
</div>
|
|
179
174
|
{/if}
|
|
180
175
|
{#if !postLimit}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
<script>
|
|
2
|
+
import { getColorStyles } from '../utils'
|
|
2
3
|
export let data
|
|
3
4
|
let toggleID = data.groups[0].id
|
|
4
5
|
let id
|
|
@@ -47,7 +48,7 @@
|
|
|
47
48
|
<span class="text-base font-medium text-gray-500">{option.divisor}</span>
|
|
48
49
|
{/if}
|
|
49
50
|
</p>
|
|
50
|
-
<a href={option.cta_url} class="mt-8 block w-full border
|
|
51
|
+
<a href={option.cta_url} class="btn mt-8 block w-full border py-2 text-center text-sm font-semibold {getColorStyles('button', data.color)}">{option.cta_label}</a>
|
|
51
52
|
</div>
|
|
52
53
|
<div class="px-6 pt-6 pb-8">
|
|
53
54
|
<h3 class="text-sm font-medium text-gray-900">{option.features_text}</h3>
|
|
@@ -58,7 +59,7 @@
|
|
|
58
59
|
<svg class="h-5 w-5 flex-shrink-0 text-green-500" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20" fill="currentColor" aria-hidden="true">
|
|
59
60
|
<path fill-rule="evenodd" d="M16.704 4.153a.75.75 0 01.143 1.052l-8 10.5a.75.75 0 01-1.127.075l-4.5-4.5a.75.75 0 011.06-1.06l3.894 3.893 7.48-9.817a.75.75 0 011.05-.143z" clip-rule="evenodd" />
|
|
60
61
|
</svg>
|
|
61
|
-
<span class="text-sm text
|
|
62
|
+
<span class="text-sm {getColorStyles('text', data.color)}">{feature.text}</span>
|
|
62
63
|
</li>
|
|
63
64
|
{/each}
|
|
64
65
|
</ul>
|
|
@@ -83,11 +84,9 @@
|
|
|
83
84
|
{#if data.footer.ctas}
|
|
84
85
|
<div class="flex gap-x-8 py-2 sm:justify-center">
|
|
85
86
|
{#each data.footer.ctas as cta}
|
|
86
|
-
<a href={cta.url} class="
|
|
87
|
-
{(cta.color == "pyrosim" ? "bg-pyrosim text-white" : (cta.color == "pathfinder" ? "bg-pathfinder text-white" : (cta.color == "ventus" ? "bg-ventus text-white" : (cta.color == "white" ? "bg-white text-gray-600 hover:text-white" : "bg-teci-blue-dark text-white"))))}
|
|
88
|
-
">
|
|
87
|
+
<a href={cta.url} class="btn {getColorStyles('button', cta.color)}">
|
|
89
88
|
{cta.text}
|
|
90
|
-
<span class="hidden sm:inline
|
|
89
|
+
<span class="hidden sm:inline" aria-hidden="true">→</span>
|
|
91
90
|
</a>
|
|
92
91
|
{/each}
|
|
93
92
|
</div>
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
<script>
|
|
2
|
+
import { getColorStyles } from '../utils'
|
|
2
3
|
export let data
|
|
3
4
|
let id
|
|
4
5
|
|
|
@@ -25,7 +26,7 @@
|
|
|
25
26
|
{#each data.stats as stat, i}
|
|
26
27
|
<div id="stat-{i}" class="flex flex-col border-b border-gray-100 p-6 text-center sm:border-0 sm:border-r sm:border-l">
|
|
27
28
|
<dt class="order-2 mt-2 text-lg font-medium leading-6 text-gray-500">{stat.label}</dt>
|
|
28
|
-
<dd class="order-1 text-5xl font-bold tracking-tight {(
|
|
29
|
+
<dd class="order-1 text-5xl font-bold tracking-tight {getColorStyles('text', data.color)}">{stat.value}</dd>
|
|
29
30
|
</div>
|
|
30
31
|
{/each}
|
|
31
32
|
</dl>
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
<script>
|
|
2
2
|
import Icon from './Icon.svelte'
|
|
3
3
|
|
|
4
|
+
import { getColorStyles } from '../utils'
|
|
4
5
|
import { slide } from 'svelte/transition';
|
|
5
6
|
import { onMount } from 'svelte'
|
|
6
7
|
|
|
@@ -78,7 +79,7 @@ import Icon from './Icon.svelte'
|
|
|
78
79
|
y="0"
|
|
79
80
|
width="4"
|
|
80
81
|
height="4"
|
|
81
|
-
class="text-
|
|
82
|
+
class="{getColorStyles('text', data.color)} opacity-20"
|
|
82
83
|
fill="currentColor"></rect>
|
|
83
84
|
</pattern>
|
|
84
85
|
</defs>
|
|
@@ -146,7 +147,7 @@ import Icon from './Icon.svelte'
|
|
|
146
147
|
{quote.fullname}
|
|
147
148
|
</div>
|
|
148
149
|
<div
|
|
149
|
-
class="text-base font-medium {(
|
|
150
|
+
class="text-base font-medium {getColorStyles('text', data.color)}"
|
|
150
151
|
>
|
|
151
152
|
{quote.fulltitle}
|
|
152
153
|
</div>
|
|
@@ -10,10 +10,9 @@
|
|
|
10
10
|
import TrialForm from "../components/TrialForm.svelte";
|
|
11
11
|
import Video from "../components/Video.svelte";
|
|
12
12
|
import Hero from "../components/Hero.svelte";
|
|
13
|
-
import CTABranded from "../components/CTABranded.svelte";
|
|
14
13
|
import FeatureGrid from "../components/FeatureGrid.svelte";
|
|
15
14
|
import LogoCloud from "../components/LogoCloud.svelte";
|
|
16
|
-
import
|
|
15
|
+
import CTASplitImage from "../components/CTASplitImage.svelte";
|
|
17
16
|
import ContentTwoColumns from "../components/ContentTwoColumns.svelte";
|
|
18
17
|
import PricingTable from "../components/PricingTable.svelte";
|
|
19
18
|
import Stats from "../components/Stats.svelte";
|
|
@@ -21,7 +20,7 @@
|
|
|
21
20
|
|
|
22
21
|
let blocks = [
|
|
23
22
|
{ ref: "accordion", component: Accordion},
|
|
24
|
-
{ ref: "cta
|
|
23
|
+
{ ref: "cta", component: CTA },
|
|
25
24
|
{ ref: "heading-centered", component: HeadingCentered },
|
|
26
25
|
{ ref: "media-feature", component: MediaFeature },
|
|
27
26
|
{ ref: "modal", component: Modal },
|
|
@@ -31,10 +30,9 @@
|
|
|
31
30
|
{ ref: "trial-form", component: TrialForm },
|
|
32
31
|
{ ref: "video", component: Video },
|
|
33
32
|
{ ref: "hero", component: Hero },
|
|
34
|
-
{ ref: "cta-branded", component: CTABranded },
|
|
35
33
|
{ ref: "feature-grid", component: FeatureGrid },
|
|
36
34
|
{ ref: "logo-cloud", component: LogoCloud },
|
|
37
|
-
{ ref: "cta-split-image", component:
|
|
35
|
+
{ ref: "cta-split-image", component: CTASplitImage },
|
|
38
36
|
{ ref: "content-two-columns", component: ContentTwoColumns },
|
|
39
37
|
{ ref: "pricing-table", component: PricingTable },
|
|
40
38
|
{ ref: "stats", component: Stats },
|
package/dist/utils.d.ts
CHANGED
package/dist/utils.js
CHANGED
|
@@ -4,6 +4,75 @@ export function scrollTo(anchor) {
|
|
|
4
4
|
});
|
|
5
5
|
}
|
|
6
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
|
+
|
|
7
76
|
export function validateEmail(email) {
|
|
8
77
|
const re =
|
|
9
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,}))$/;
|