tecitheme 0.3.4 → 0.4.1

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 (89) hide show
  1. package/README.md +0 -1
  2. package/dist/components/CountrySelector.svelte +2 -2
  3. package/dist/index.d.ts +31 -0
  4. package/dist/index.js +31 -0
  5. package/dist/utils.d.ts +1 -1
  6. package/dist/utils.js +2 -1
  7. package/dist/variables.d.ts +3 -3
  8. package/dist/variables.js +3 -1
  9. package/package.json +28 -27
  10. package/.eslintrc.cjs +0 -24
  11. package/.frontmatter/content/mediaDb.json +0 -1
  12. package/.frontmatter/templates/article.md +0 -11
  13. package/.gitpod.yml +0 -19
  14. package/.vscode/ltex.dictionary.en-US.txt +0 -3
  15. package/.vscode/settings.json +0 -7
  16. package/frontmatter.json +0 -17
  17. package/mdsvex.config.js +0 -19
  18. package/netlify.toml +0 -7
  19. package/postcss.config.cjs +0 -13
  20. package/src/app.css +0 -49
  21. package/src/app.html +0 -22
  22. package/src/global.d.ts +0 -5
  23. package/src/lib/assets/TECi_logo.svelte +0 -177
  24. package/src/lib/assets/js/store.js +0 -4
  25. package/src/lib/components/Banner.svelte +0 -91
  26. package/src/lib/components/Button.svelte +0 -12
  27. package/src/lib/components/CTA.svelte +0 -36
  28. package/src/lib/components/CTABranded.svelte +0 -15
  29. package/src/lib/components/CTASplitImage.svelte +0 -27
  30. package/src/lib/components/Card.svelte +0 -93
  31. package/src/lib/components/ContentTwoColumns.svelte +0 -47
  32. package/src/lib/components/CountrySelector.svelte +0 -167
  33. package/src/lib/components/FeatureGrid.svelte +0 -40
  34. package/src/lib/components/Figure.svelte +0 -37
  35. package/src/lib/components/Footer.svelte +0 -270
  36. package/src/lib/components/Header.svelte +0 -1230
  37. package/src/lib/components/HeadingCentered.svelte +0 -33
  38. package/src/lib/components/Hero.svelte +0 -72
  39. package/src/lib/components/Icon.svelte +0 -138
  40. package/src/lib/components/LogoCloud.svelte +0 -25
  41. package/src/lib/components/Math.svelte +0 -24
  42. package/src/lib/components/MediaFeature.svelte +0 -66
  43. package/src/lib/components/Modal.svelte +0 -68
  44. package/src/lib/components/NewsGrid.svelte +0 -182
  45. package/src/lib/components/PricingTable.svelte +0 -92
  46. package/src/lib/components/SidebarContent.svelte +0 -122
  47. package/src/lib/components/Stats.svelte +0 -34
  48. package/src/lib/components/Subscribe.svelte +0 -24
  49. package/src/lib/components/Testimonial.svelte +0 -169
  50. package/src/lib/components/ThreeColumn.svelte +0 -19
  51. package/src/lib/components/TrialForm.svelte +0 -302
  52. package/src/lib/components/Video.svelte +0 -118
  53. package/src/lib/components/Wrap.svelte +0 -12
  54. package/src/lib/get-content.js +0 -98
  55. package/src/lib/layouts/blocks.svelte +0 -93
  56. package/src/lib/req_utils.js +0 -63
  57. package/src/lib/site_config.json +0 -11
  58. package/src/lib/utils.js +0 -92
  59. package/src/lib/variables.ts +0 -3
  60. package/src/routes/+layout.server.js +0 -20
  61. package/src/routes/+layout.svelte +0 -24
  62. package/src/routes/+page.md +0 -61
  63. package/src/routes/features/+page.md +0 -78
  64. package/src/routes/news/+page.md +0 -21
  65. package/src/routes/news/[slug]/+page.svelte +0 -33
  66. package/src/routes/news/[slug]/+page.ts +0 -16
  67. package/src/routes/news/filter/[tag]/+page.svelte +0 -36
  68. package/src/routes/news/filter/[tag]/+page.ts +0 -14
  69. package/src/routes/news/post1.md +0 -45
  70. package/src/routes/news/post2.md +0 -46
  71. package/src/routes/pathfinder/+page.md +0 -240
  72. package/src/routes/pathfinder/news/+page.md +0 -20
  73. package/src/routes/posts.json/+server.js +0 -9
  74. package/src/routes/product/+page.md +0 -240
  75. package/src/routes/product/news/+page.md +0 -20
  76. package/src/routes/product/trial/+page.svelte +0 -7
  77. package/src/routes/sidebar/+page.md +0 -357
  78. package/static/favicon.ico +0 -0
  79. package/static/uploads/company_pathfinder.png +0 -0
  80. package/static/uploads/company_petrasim.png +0 -0
  81. package/static/uploads/company_pyrosim.jpg +0 -0
  82. package/static/uploads/fire.jpg +0 -0
  83. package/static/uploads/pyrosim_libraries_386x395.png +0 -0
  84. package/static/uploads/rocks.jpg +0 -0
  85. package/static/uploads/water.jpg +0 -0
  86. package/svelte.config.js +0 -32
  87. package/tailwind.config.cjs +0 -26
  88. package/tsconfig.json +0 -32
  89. package/vite.config.js +0 -20
@@ -1,92 +0,0 @@
1
- <script>
2
- export let data
3
- let toggleID = data.groups[0].id
4
-
5
- function toggleSelection(id) {
6
- toggleID = id
7
- }
8
- </script>
9
-
10
- <section class="overflow-hidden">
11
- <div class="sm:align-center sm:flex sm:flex-col">
12
- <h1 class="text-5xl font-bold tracking-tight text-gray-900 sm:text-center">{data.heading}</h1>
13
- <p class="mt-5 text-xl text-gray-500 sm:text-center">{data.subheading}</p>
14
- <div class="relative mt-6 max-w-xs w-full flex flex-row space-x-4 self-center justify-evenly rounded-lg bg-gray-100 p-0.5 sm:mt-8">
15
- {#each data.groups as group}
16
- <button type="button"
17
- on:click={toggleSelection(group.id)}
18
- id={group.id}
19
- class="relative w-full whitespace-nowrap rounded-md py-2 text-sm font-medium border focus:z-10 focus:outline-none focus:ring-2 focus:ring-teci-blue-light
20
- {toggleID == group.id ? "border-gray-200 bg-white text-gray-900 shadow-sm" : "border-transparent text-gray-700"}
21
- ">
22
- {group.label}
23
- </button>
24
- {/each}
25
- </div>
26
- <p class="mt-4 text-md max-w-xl mx-auto text-gray-500 sm:text-center">{data.groups.find(x => x.id === toggleID).description}</p>
27
- </div>
28
- <div class="mt-8 space-y-4 sm:grid sm:grid-cols-2 sm:gap-6 sm:space-y-0 lg:mx-auto lg:max-w-4xl xl:mx-0 xl:max-w-none xl:grid-cols-4">
29
- {#each data.groups as group}
30
- {#if (group.id == toggleID)}
31
- {#each group.options as option}
32
- <div class="max-w-xs mx-auto sm:odd:mr-0 sm:even:ml-0 divide-y divide-gray-200 border border-gray-200 {option.highlight ? "shadow-[inset_0_0_6px_0_rgb(0,43,127,1.0)]":"shadow-md"}">
33
- <div class="p-6">
34
- <h2 class="text-lg font-medium leading-6 text-gray-900">{option.label}</h2>
35
- <p class="mt-4 text-sm text-gray-500">{option.text}</p>
36
- <p class="mt-8">
37
- {#if option.unit}
38
- <span class="text-2xl align-super font-medium text-gray-500">{option.unit}</span>
39
- {/if}
40
- <span class="text-4xl font-bold tracking-tight text-gray-900">{option.price}</span>
41
- {#if option.divisor}
42
- <span class="text-base font-medium text-gray-500">{option.divisor}</span>
43
- {/if}
44
- </p>
45
- <a href={option.cta_url} class="mt-8 block w-full border {(option.cta_color == "pyrosim" ? "border-pyrosim bg-pyrosim" : (data.color == "pathfinder" ? "border-pathfinder bg-pathfinder" : "border-teci-blue-dark bg-teci-blue-dark"))} py-2 text-center text-sm font-semibold text-white hover:bg-teci-blue-dark">{option.cta_label}</a>
46
- </div>
47
- <div class="px-6 pt-6 pb-8">
48
- <h3 class="text-sm font-medium text-gray-900">{option.features_text}</h3>
49
- <ul class="mt-6 space-y-4">
50
- {#each option.features as feature}
51
- <li class="flex space-x-3">
52
- <!-- Heroicon name: mini/check -->
53
- <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">
54
- <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" />
55
- </svg>
56
- <span class="text-sm text-gray-500">{feature.text}</span>
57
- </li>
58
- {/each}
59
- </ul>
60
- </div>
61
- </div>
62
- {/each}
63
- {/if}
64
- {/each}
65
- </div>
66
- {#if data.footer}
67
- <div class="mt-8">
68
- {#if data.footer.heading}
69
- <div class="text-xl mb-4 text-gray-500 sm:text-center">
70
- <p>{data.footer.heading}</p>
71
- </div>
72
- {/if}
73
- {#if data.footer.text}
74
- <div class="text-md mb-4 max-w-4xl mx-auto text-gray-500 sm:text-center">
75
- <p>{@html data.footer.text}</p>
76
- </div>
77
- {/if}
78
- {#if data.footer.ctas}
79
- <div class="flex gap-x-8 py-2 sm:justify-center">
80
- {#each data.footer.ctas as cta}
81
- <a href={cta.url} class="inline-block whitespace-nowrap px-4 py-1.5 text-base font-semibold leading-7 shadow-sm ring-1 ring-gray-900/10 hover:ring-gray-900/20 hover:bg-teci-blue-dark
82
- {(cta.color == "pyrosim" ? "bg-pyrosim text-white" : (cta.color == "pathfinder" ? "bg-pathfinder text-white" : (cta.color == "white" ? "bg-white text-gray-600 hover:text-white" : "bg-teci-blue-dark text-white")))}
83
- ">
84
- {cta.text}
85
- <span class="hidden sm:inline {(cta.color == "white" ? "text-gray-600" : "text-white")}" aria-hidden="true">&rarr;</span>
86
- </a>
87
- {/each}
88
- </div>
89
- {/if}
90
- </div>
91
- {/if}
92
- </section>
@@ -1,122 +0,0 @@
1
- <script>
2
- import { onMount } from "svelte";
3
- import { buildToC } from "$lib/utils.js";
4
-
5
- export let data;
6
- export let title;
7
- export let date;
8
- export let lastmod;
9
-
10
- let formattedDate =
11
- date != undefined
12
- ? new Date(date).toLocaleDateString("en-us", {
13
- weekday: "short",
14
- year: "numeric",
15
- month: "short",
16
- day: "numeric",
17
- timeZone: "UTC",
18
- timeZoneName: "short",
19
- })
20
- : undefined;
21
- let formattedLastModDate =
22
- lastmod != undefined
23
- ? new Date(lastmod).toLocaleDateString("en-us", {
24
- weekday: "short",
25
- year: "numeric",
26
- month: "short",
27
- day: "numeric",
28
- timeZone: "UTC",
29
- timeZoneName: "short",
30
- })
31
- : undefined;
32
- let tocOpen = false;
33
- let tocBuilt = false;
34
- let w;
35
-
36
- $: if (w > 702 && tocOpen == false) {
37
- tocOpen = true;
38
- }
39
-
40
- onMount(async () => {
41
- if (data.toc) {
42
- tocBuilt = buildToC();
43
- }
44
- });
45
- </script>
46
-
47
- <section
48
- bind:clientWidth={w}
49
- class="relative flex flex-row {data.fullWidth
50
- ? 'mx-0'
51
- : 'mx-auto'} {data.toc || data.rightRail ? 'md:space-x-8' : 'space-x-0'}"
52
- >
53
- <div
54
- id="content"
55
- class="prose w-full {data.fullWidth ? 'max-w-none' : 'max-w-prose'}"
56
- >
57
- {#if !data.hideTitle}
58
- <h1>{title}</h1>
59
- {/if}
60
- <slot />
61
- {#if formattedDate && data.showDate}
62
- <p class="text-sm">
63
- Published: {formattedDate}{#if formattedLastModDate != formattedDate && formattedLastModDate}&nbsp;&nbsp;|&nbsp;&nbsp;Last
64
- Updated: {formattedLastModDate}{/if}
65
- </p>
66
- {/if}
67
- </div>
68
- <aside
69
- class="relative w-0 {data.toc || data.rightRail ? 'md:w-60' : 'hidden'}"
70
- >
71
- {#if data.toc}
72
- <div class="sticky top-8 flex shrink-0 flex-col">
73
- <button
74
- on:click={() => {
75
- tocOpen = !tocOpen;
76
- }}
77
- class="absolute -left-10 flex h-10 w-10 items-center justify-center border border-teci-blue-light bg-white text-teci-blue-light md:hidden
78
- {tocOpen
79
- ? 'border-opacity-100 bg-opacity-100 text-opacity-100'
80
- : 'border-opacity-60 bg-opacity-20 text-opacity-60 hover:border-opacity-100 hover:bg-opacity-100 hover:text-opacity-100'}"
81
- title="Table of Contents Toggle"
82
- alt="Table of Contents Toggle"
83
- >
84
- <span class="material-icons-outlined">menu_open</span>
85
- </button>
86
- {#if tocBuilt == false}
87
- <svg
88
- role="status"
89
- class="m-2 inline-block h-6 w-6 animate-spin fill-blue-600 text-gray-200 dark:text-gray-600"
90
- viewBox="0 0 100 101"
91
- fill="none"
92
- xmlns="http://www.w3.org/2000/svg"
93
- >
94
- <path
95
- d="M100 50.5908C100 78.2051 77.6142 100.591 50 100.591C22.3858 100.591 0 78.2051 0 50.5908C0 22.9766 22.3858 0.59082 50 0.59082C77.6142 0.59082 100 22.9766 100 50.5908ZM9.08144 50.5908C9.08144 73.1895 27.4013 91.5094 50 91.5094C72.5987 91.5094 90.9186 73.1895 90.9186 50.5908C90.9186 27.9921 72.5987 9.67226 50 9.67226C27.4013 9.67226 9.08144 27.9921 9.08144 50.5908Z"
96
- fill="currentColor"
97
- />
98
- <path
99
- d="M93.9676 39.0409C96.393 38.4038 97.8624 35.9116 97.0079 33.5539C95.2932 28.8227 92.871 24.3692 89.8167 20.348C85.8452 15.1192 80.8826 10.7238 75.2124 7.41289C69.5422 4.10194 63.2754 1.94025 56.7698 1.05124C51.7666 0.367541 46.6976 0.446843 41.7345 1.27873C39.2613 1.69328 37.813 4.19778 38.4501 6.62326C39.0873 9.04874 41.5694 10.4717 44.0505 10.1071C47.8511 9.54855 51.7191 9.52689 55.5402 10.0491C60.8642 10.7766 65.9928 12.5457 70.6331 15.2552C75.2735 17.9648 79.3347 21.5619 82.5849 25.841C84.9175 28.9121 86.7997 32.2913 88.1811 35.8758C89.083 38.2158 91.5421 39.6781 93.9676 39.0409Z"
100
- fill="currentFill"
101
- />
102
- </svg>
103
- {/if}
104
- <div
105
- id="ToC"
106
- class="absolute -left-[282px] border bg-white p-2 text-right font-medium shadow-md md:relative md:left-0 md:text-left {tocOpen
107
- ? 'mb-4 block w-60'
108
- : 'hidden'}"
109
- />
110
- </div>
111
- {/if}
112
- {#if data.rightRail}
113
- <div
114
- class="hidden bg-gray-200 p-2 md:block {data.toc || data.rightRail
115
- ? 'md:w-60'
116
- : 'w-0'}"
117
- >
118
- Dynamic Stuff
119
- </div>
120
- {/if}
121
- </aside>
122
- </section>
@@ -1,34 +0,0 @@
1
- <script>
2
- export let data
3
- </script>
4
-
5
- <section class="bg-gray-50">
6
- <div class="mx-auto max-w-7xl p-6 lg:p-8">
7
- <div class="mx-auto max-w-4xl text-center">
8
- <h2 class="text-3xl font-bold tracking-tight text-gray-900 sm:text-4xl">{data.heading}</h2>
9
- {#if data.subheading}
10
- <p class="mt-3 text-xl text-gray-500 sm:mt-4">{data.subheading}</p>
11
- {/if}
12
- </div>
13
- </div>
14
- <div class="bg-white">
15
- <div class="relative">
16
- <div class="absolute inset-0 bg-gray-50"></div>
17
- <div class="relative mx-auto max-w-7xl px-6 lg:px-8">
18
- <div class="mx-auto max-w-4xl">
19
- <dl class="bg-white shadow-lg sm:grid sm:grid-cols-3">
20
- {#each data.stats as stat, i}
21
- <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">
22
- <dt class="order-2 mt-2 text-lg font-medium leading-6 text-gray-500">{stat.label}</dt>
23
- <dd class="order-1 text-5xl font-bold tracking-tight {(data.color == "pyrosim" ? "text-pyrosim" : (data.color == "pathfinder" ? "text-pathfinder" : "text-teci-blue-dark"))}">{stat.value}</dd>
24
- </div>
25
- {/each}
26
- </dl>
27
- </div>
28
- <figure>
29
- <img class="w-full" alt="World map with colored countries for Thunderhead software customers." src="https://teci-files.imgix.net/www/images/{data.image}?auto=compress&auto=format">
30
- </figure>
31
- </div>
32
- </div>
33
- </div>
34
- </section>
@@ -1,24 +0,0 @@
1
- <script>
2
- export let classes;
3
- </script>
4
-
5
- <div class="not-prose w-32 {classes ? classes : ''}">
6
- <data
7
- id="mj-w-res-data"
8
- data-token="2a0fbbba6aa7f1398b091a6a5f5f2167"
9
- class="mj-w-data"
10
- data-apikey="3aOX"
11
- data-w-id="Fbu"
12
- data-lang="en_US"
13
- data-base="https://app.mailjet.com"
14
- data-width="640"
15
- data-height="480"
16
- data-statics="statics"
17
- />
18
- <button
19
- 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"
20
- data-token="2a0fbbba6aa7f1398b091a6a5f5f2167"
21
- onclick="mjOpenPopin(event, this)">Subscribe</button
22
- >
23
- </div>
24
- <div class="clear-both" />
@@ -1,169 +0,0 @@
1
- <script>
2
- import { slide } from 'svelte/transition';
3
- import { onMount } from 'svelte'
4
-
5
- export let data;
6
-
7
- let anchor;
8
- let index = 0;
9
- let interval = 12000;
10
- let auto = true;
11
- let slideInterval;
12
-
13
- onMount(() => {
14
- anchor = document.getElementById('slider');
15
- setSlideAutomation();
16
- })
17
-
18
- function setSlideAutomation() {
19
- if (auto) {
20
- clearInterval(slideInterval);
21
- slideInterval = setInterval(next, interval);
22
- }
23
- }
24
-
25
- const prev = () => {
26
- let amount;
27
- if (index == 0) {
28
- index = data.quotes.length - 1;
29
- } else if (index <= data.quotes.length) {
30
- index = (index - 1) % data.quotes.length;
31
- }
32
- setSlideAutomation();
33
- };
34
-
35
- const next = () => {
36
- index = (index + 1) % data.quotes.length;
37
- setSlideAutomation();
38
- };
39
-
40
- function fadeSlide(node, options) {
41
- const slideTrans = slide(node, options);
42
- return {
43
- duration: options.duration,
44
- css: (t) => `
45
- ${slideTrans.css(t)}
46
- opacity: ${t};
47
- `,
48
- };
49
- }
50
- </script>
51
-
52
- <section id="slider" class="overflow-hidden">
53
- <div class="relative mx-auto max-w-4xl lg:max-w-none mt-10 lg:px-4 lg:py-8 lg:mt-0">
54
- <svg
55
- class="absolute right-full top-1/2 hidden translate-x-1/2 -translate-y-1/2 transform lg:block"
56
- width="404"
57
- height="784"
58
- fill="none"
59
- viewBox="0 0 404 784"
60
- aria-hidden="true"
61
- >
62
- <defs>
63
- <pattern
64
- id="56409614-3d62-4985-9a10-7ca758a8f4f0"
65
- x="0"
66
- y="0"
67
- width="20"
68
- height="20"
69
- patternUnits="userSpaceOnUse"
70
- >
71
- <rect
72
- x="0"
73
- y="0"
74
- width="4"
75
- height="4"
76
- class="text-gray-200"
77
- fill="currentColor"></rect>
78
- </pattern>
79
- </defs>
80
- <rect
81
- width="404"
82
- height="784"
83
- fill="url(#56409614-3d62-4985-9a10-7ca758a8f4f0)"></rect>
84
- </svg>
85
- <div
86
- class="relative flex h-auto flex-col items-center justify-items-center"
87
- >
88
- {#each [data.quotes[index]] as quote (index)}
89
- <div
90
- transition:fadeSlide="{{ duration: 300 }}"
91
- class="relative mx-auto w-full lg:flex lg:items-center"
92
- >
93
- <div class="hidden lg:block lg:flex-shrink-0">
94
- <img
95
- class="h-64 w-64 rounded-full xl:h-80 xl:w-80"
96
- src="https://teci-files.imgix.net/www/images/{quote.image}?w=320&fit=facearea,crop&facepad=3&monochrome=9B9B9B&auto=compress&auto=format"
97
- alt="Image of {quote.fullname}"
98
- title="{quote.fullname}"
99
- />
100
- </div>
101
- <div class="relative w-full lg:ml-10">
102
- <svg
103
- class="absolute top-0 left-0 h-24 w-24 -translate-x-0 -translate-y-12 transform text-teci-blue-light opacity-10 lg:-translate-x-8 lg:-translate-y-10"
104
- stroke="currentColor"
105
- fill="none"
106
- viewBox="0 0 144 144"
107
- aria-hidden="true"
108
- >
109
- <path
110
- stroke-width="2"
111
- d="M41.485 15C17.753 31.753 1 59.208 1 89.455c0 24.664 14.891 39.09 32.109 39.09 16.287 0 28.386-13.03 28.386-28.387 0-15.356-10.703-26.524-24.663-26.524-2.792 0-6.515.465-7.446.93 2.327-15.821 17.218-34.435 32.11-43.742L41.485 15zm80.04 0c-23.268 16.753-40.02 44.208-40.02 74.455 0 24.664 14.891 39.09 32.109 39.09 15.822 0 28.386-13.03 28.386-28.387 0-15.356-11.168-26.524-25.129-26.524-2.792 0-6.049.465-6.98.93 2.327-15.821 16.753-34.435 31.644-43.742L121.525 15z"
112
- ></path>
113
- </svg>
114
- <blockquote class="relative block w-full min-w-full">
115
- <div class="relative w-full text-2xl font-medium leading-9 text-gray-700">
116
- <p>{@html quote.text}</p>
117
- <svg
118
- class="absolute bottom-0 right-0 h-24 w-24 translate-y-8 rotate-180 transform text-teci-blue-light opacity-10"
119
- stroke="currentColor"
120
- fill="none"
121
- viewBox="0 0 144 144"
122
- aria-hidden="true"
123
- >
124
- <path
125
- stroke-width="2"
126
- d="M41.485 15C17.753 31.753 1 59.208 1 89.455c0 24.664 14.891 39.09 32.109 39.09 16.287 0 28.386-13.03 28.386-28.387 0-15.356-10.703-26.524-24.663-26.524-2.792 0-6.515.465-7.446.93 2.327-15.821 17.218-34.435 32.11-43.742L41.485 15zm80.04 0c-23.268 16.753-40.02 44.208-40.02 74.455 0 24.664 14.891 39.09 32.109 39.09 15.822 0 28.386-13.03 28.386-28.387 0-15.356-11.168-26.524-25.129-26.524-2.792 0-6.049.465-6.98.93 2.327-15.821 16.753-34.435 31.644-43.742L121.525 15z"
127
- ></path>
128
- </svg>
129
- </div>
130
- <footer class="mt-8">
131
- <div class="flex">
132
- <div class="flex-shrink-0 lg:hidden">
133
- <img
134
- class="h-12 w-12 rounded-full"
135
- src="https://teci-files.imgix.net/www/images/{quote.image}?w=48&fit=clip&monochrome=9B9B9B&auto=compress&auto=format"
136
- alt="Thumbnail Image of {quote.fullname}"
137
- />
138
- </div>
139
- <div class="ml-4 lg:ml-0">
140
- <div class="text-base text-gray-900">
141
- {quote.fullname}
142
- </div>
143
- <div
144
- class="text-base font-medium {data.color == 'pyrosim'
145
- ? 'text-pyrosim'
146
- : data.color == 'pathfinder'
147
- ? 'text-pathfinder'
148
- : 'text-teci-blue-dark'}"
149
- >
150
- {quote.fulltitle}
151
- </div>
152
- </div>
153
- </div>
154
- </footer>
155
- </blockquote>
156
- </div>
157
- </div>
158
- {/each}
159
- <div class="bg-white relative w-half pt-6 md:pt-2 lg:pt-4 flex flex-row space-x-8 justify-center">
160
- <button type="button" title="Previous" on:click="{prev}">
161
- <Icon icon="icon-arrow_left" classes="text-4xl text-gray-400" />
162
- </button>
163
- <button type="button" title="Next" on:click="{next}">
164
- <Icon icon="icon-arrow_right" classes="text-4xl text-gray-400" />
165
- </button>
166
- </div>
167
- </div>
168
- </div>
169
- </section>
@@ -1,19 +0,0 @@
1
- <script>
2
- //Based on:
3
- //https://tailwindui.com/components/marketing/sections/feature-sections#component-c683653471044e6ffc32739e199dfbf2
4
- //https://tailwindui.com/components/marketing/sections/team-sections#component-0efa5ebc92e2aa72bc2332fcf5578869
5
- import Card from "$lib/components/Card.svelte";
6
- export let data;
7
- </script>
8
-
9
- <!-- This example requires Tailwind CSS v2.0+ -->
10
- <section class="mx-auto w-full">
11
- {#if data.title}
12
- <h2 class="sr-only">{data.title}</h2>
13
- {/if}
14
- <div class="grid grid-cols-1 gap-4 md:grid-cols-3">
15
- {#each data.cards as card}
16
- <Card bind:data={card} bind:halfHeight={data.halfHeight} />
17
- {/each}
18
- </div>
19
- </section>