@dcrackel/meyersquaredui 1.0.37 → 1.0.39
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/meyersquaredui.es.js +1276 -209
- package/dist/meyersquaredui.umd.js +1 -1
- package/dist/style.css +1 -1
- package/package.json +2 -2
- package/src/assets/fonts/Raleway-Thin.ttf +0 -0
- package/src/assets/images/portrait1.png +0 -0
- package/src/index.js +7 -1
- package/src/mocks/getArticles.js +19 -0
- package/src/mocks/getTopFencers.js +157 -0
- package/src/mocks/getTournamentsMock.js +185 -0
- package/src/stories/Atoms/BaseButton/BaseButton.stories.js +35 -32
- package/src/stories/Atoms/BaseButton/BaseButton.vue +66 -4
- package/src/stories/Atoms/BaseText/BaseText.vue +25 -8
- package/src/stories/Atoms/Icon/Icon.vue +6 -1
- package/src/stories/Organisms/Cards/ArticleCard/ArticleCard.stories.js +25 -0
- package/src/stories/Organisms/Cards/ArticleCard/ArticleCard.vue +48 -0
- package/src/stories/Organisms/Cards/FencerCard/FencerCard.stories.js +48 -0
- package/src/stories/Organisms/Cards/FencerCard/FencerCard.vue +69 -0
- package/src/stories/Organisms/Cards/TournamentCard/TournamentCard.stories.js +24 -0
- package/src/stories/Organisms/Cards/TournamentCard/TournamentCard.vue +121 -0
- package/src/stories/Organisms/Footer/Foot.stories.js +11 -0
- package/src/stories/Organisms/Footer/Footer.vue +94 -0
- package/src/stories/Organisms/GridLayout/GridLayout.stories.js +148 -0
- package/src/stories/Organisms/GridLayout/GridLayout.vue +98 -0
- package/src/stories/Organisms/Headers/Header.stories.js +1 -1
- package/src/stories/Organisms/Headers/Header.vue +5 -6
- package/src/stories/Organisms/HeroBanners/HomePage/HeroBanner.vue +52 -25
- package/src/stories/Organisms/SectionBanners/DoubleButtonBanner/DoubleButtonBanner.stories.js +28 -0
- package/src/stories/Organisms/SectionBanners/DoubleButtonBanner/DoubleButtonBanner.vue +118 -0
- package/src/stories/Organisms/SectionBanners/SingleButtonBanner/SingleButtonBanner.stories.js +35 -0
- package/src/stories/Organisms/SectionBanners/SingleButtonBanner/SingleButtonBanner.vue +48 -0
- package/src/stories/Templates/HomePage/{TestPage.stories.js → HomePage.stories.js} +9 -4
- package/src/stories/Templates/HomePage/HomePage.vue +111 -0
- package/src/components/HelloWorld.vue +0 -43
- package/src/stories/Templates/HomePage/TestPage.vue +0 -39
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
<template>
|
|
2
|
+
<section class="relative bg-cover bg-center h-80 max-w-[1200px] mx-auto rounded-lg overflow-hidden mb-10" :style="{ backgroundImage: 'url(' + imageUrl + ')' }">
|
|
3
|
+
<div class="flex flex-col justify-center items-center md:items-start h-full w-full text-center md:text-left px-6 md:px-20">
|
|
4
|
+
<BaseText color="secondary" tag="h3" size="5xl" weight="normal" class="mb-8" v-html="description" />
|
|
5
|
+
<BaseButton
|
|
6
|
+
:label="buttonLabel"
|
|
7
|
+
size="xs"
|
|
8
|
+
color="secondary"
|
|
9
|
+
border="gradient1"
|
|
10
|
+
@click="onClick"
|
|
11
|
+
class="w-40"
|
|
12
|
+
/>
|
|
13
|
+
</div>
|
|
14
|
+
</section>
|
|
15
|
+
</template>
|
|
16
|
+
|
|
17
|
+
<script>
|
|
18
|
+
import BaseText from '../../../Atoms/BaseText/BaseText.vue';
|
|
19
|
+
import BaseButton from '../../../Atoms/BaseButton/BaseButton.vue';
|
|
20
|
+
|
|
21
|
+
export default {
|
|
22
|
+
name: 'SingleButtonBanner',
|
|
23
|
+
components: {
|
|
24
|
+
BaseText,
|
|
25
|
+
BaseButton,
|
|
26
|
+
},
|
|
27
|
+
props: {
|
|
28
|
+
imageUrl: {
|
|
29
|
+
type: String,
|
|
30
|
+
default: 'https://via.placeholder.com/1200x400', // Default background image
|
|
31
|
+
},
|
|
32
|
+
description: {
|
|
33
|
+
type: String,
|
|
34
|
+
default: 'Look for a Club? We can help.',
|
|
35
|
+
},
|
|
36
|
+
buttonLabel: {
|
|
37
|
+
type: String,
|
|
38
|
+
default: 'Learn More',
|
|
39
|
+
},
|
|
40
|
+
},
|
|
41
|
+
methods: {
|
|
42
|
+
onClick() {
|
|
43
|
+
this.$emit('button-click');
|
|
44
|
+
},
|
|
45
|
+
},
|
|
46
|
+
};
|
|
47
|
+
</script>
|
|
48
|
+
|
|
@@ -1,8 +1,10 @@
|
|
|
1
|
-
import
|
|
2
|
-
|
|
1
|
+
import HomePage from './HomePage.vue';
|
|
2
|
+
import mockTournaments from "../../../mocks/getTournamentsMock.js";
|
|
3
|
+
import mockTopFencers from "../../../mocks/getTopFencers.js";
|
|
4
|
+
import mockArticles from "../../../mocks/getArticles.js";
|
|
3
5
|
export default {
|
|
4
6
|
title: 'Templates/TestLayoutPage',
|
|
5
|
-
component:
|
|
7
|
+
component: HomePage,
|
|
6
8
|
argTypes: {
|
|
7
9
|
'button-click': { action: 'button-click' },
|
|
8
10
|
title: { control: 'text', description: 'Title for the HeroBanner' },
|
|
@@ -18,5 +20,8 @@ export const Default = {
|
|
|
18
20
|
description: 'Find tournaments, explore clubs, and track your progress.',
|
|
19
21
|
buttonLabel: 'Find Out More',
|
|
20
22
|
imageSrc: 'https://meyersquared.com/images/Banner2.png',
|
|
21
|
-
|
|
23
|
+
tournaments: mockTournaments,
|
|
24
|
+
topFencers: mockTopFencers,
|
|
25
|
+
articles: mockArticles,
|
|
26
|
+
},
|
|
22
27
|
};
|
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
<template>
|
|
2
|
+
<div class="m-0 w-full bg-secondary">
|
|
3
|
+
<Header />
|
|
4
|
+
<HeroBanner :title="title" :buttonLabel="buttonLabel" :description="description" :imageSrc="imageSrc" />
|
|
5
|
+
<GridLayout
|
|
6
|
+
:cardComponent="TournamentCard"
|
|
7
|
+
:items="limitedTournaments"
|
|
8
|
+
:maxColumns="3"
|
|
9
|
+
moreButtonLabel="See All Tournaments"
|
|
10
|
+
title="Upcoming"
|
|
11
|
+
/>
|
|
12
|
+
<SingleButtonBanner
|
|
13
|
+
buttonLabel="Learn More"
|
|
14
|
+
description="Look for a Club? <br> We can help."
|
|
15
|
+
imageUrl="https://via.placeholder.com/1200x400"
|
|
16
|
+
/>
|
|
17
|
+
<GridLayout
|
|
18
|
+
:cardComponent="FencerCard"
|
|
19
|
+
:items="topFencers"
|
|
20
|
+
:maxColumns="5"
|
|
21
|
+
:mobileHorizontal="true"
|
|
22
|
+
moreButtonLabel="Leaderboards"
|
|
23
|
+
title="Top Fencers"
|
|
24
|
+
/>
|
|
25
|
+
<DoubleButtonBanner title="How Does Meyer Squared work?" button-label-two="Run a tournament" button-label-one="Submit Results" image-src="" />
|
|
26
|
+
<GridLayout
|
|
27
|
+
:cardComponent="ArticleCard"
|
|
28
|
+
:items="articles"
|
|
29
|
+
:maxColumns="3"
|
|
30
|
+
:mobileHorizontal="true"
|
|
31
|
+
moreButtonLabel="See More"
|
|
32
|
+
title="Interesting Articles"
|
|
33
|
+
/>
|
|
34
|
+
<Footer />
|
|
35
|
+
</div>
|
|
36
|
+
</template>
|
|
37
|
+
|
|
38
|
+
|
|
39
|
+
<script>
|
|
40
|
+
import HeroBanner from "../../Organisms/HeroBanners/HomePage/HeroBanner.vue";
|
|
41
|
+
import Header from "../../Organisms/Headers/Header.vue";
|
|
42
|
+
import TournamentCard from "../../Organisms/Cards/TournamentCard/TournamentCard.vue";
|
|
43
|
+
import FencerCard from "../../Organisms/Cards/FencerCard/FencerCard.vue";
|
|
44
|
+
import ArticleCard from "../../Organisms/Cards/ArticleCard/ArticleCard.vue";
|
|
45
|
+
import GridLayout from "../../Organisms/GridLayout/GridLayout.vue";
|
|
46
|
+
import SingleButtonBanner from "../../Organisms/SectionBanners/SingleButtonBanner/SingleButtonBanner.vue";
|
|
47
|
+
import DoubleButtonBanner from "../../Organisms/SectionBanners/DoubleButtonBanner/DoubleButtonBanner.vue";
|
|
48
|
+
import Footer from "../../Organisms/Footer/Footer.vue";
|
|
49
|
+
|
|
50
|
+
export default {
|
|
51
|
+
name: 'HomePage',
|
|
52
|
+
components: {
|
|
53
|
+
Footer,
|
|
54
|
+
DoubleButtonBanner,
|
|
55
|
+
SingleButtonBanner,
|
|
56
|
+
GridLayout,
|
|
57
|
+
TournamentCard,
|
|
58
|
+
ArticleCard,
|
|
59
|
+
FencerCard,
|
|
60
|
+
Header,
|
|
61
|
+
HeroBanner,
|
|
62
|
+
},
|
|
63
|
+
props: {
|
|
64
|
+
title: {
|
|
65
|
+
type: String,
|
|
66
|
+
default: 'Hero Banner Title'
|
|
67
|
+
},
|
|
68
|
+
description: {
|
|
69
|
+
type: String,
|
|
70
|
+
default: 'This is the description that goes under the hero banner.'
|
|
71
|
+
},
|
|
72
|
+
buttonLabel: {
|
|
73
|
+
type: String,
|
|
74
|
+
default: 'Click Here'
|
|
75
|
+
},
|
|
76
|
+
imageSrc: {
|
|
77
|
+
type: String,
|
|
78
|
+
default: 'https://meyersquared.com/images/Banner2.png'
|
|
79
|
+
},
|
|
80
|
+
tournaments: {
|
|
81
|
+
type: Array,
|
|
82
|
+
default: () => []
|
|
83
|
+
},
|
|
84
|
+
articles: {
|
|
85
|
+
type: Array,
|
|
86
|
+
default: () => []
|
|
87
|
+
},
|
|
88
|
+
topFencers: {
|
|
89
|
+
type: Array,
|
|
90
|
+
default: () => []
|
|
91
|
+
}
|
|
92
|
+
},
|
|
93
|
+
computed: {
|
|
94
|
+
ArticleCard() {
|
|
95
|
+
return ArticleCard
|
|
96
|
+
},
|
|
97
|
+
FencerCard() {
|
|
98
|
+
return FencerCard
|
|
99
|
+
},
|
|
100
|
+
limitedTournaments() {
|
|
101
|
+
return this.tournaments.slice(0, 6);
|
|
102
|
+
}
|
|
103
|
+
},
|
|
104
|
+
data() {
|
|
105
|
+
return {
|
|
106
|
+
TournamentCard: TournamentCard
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
</script>
|
|
@@ -1,43 +0,0 @@
|
|
|
1
|
-
<script setup>
|
|
2
|
-
import { ref } from 'vue'
|
|
3
|
-
|
|
4
|
-
defineProps({
|
|
5
|
-
msg: String,
|
|
6
|
-
})
|
|
7
|
-
|
|
8
|
-
const count = ref(0)
|
|
9
|
-
</script>
|
|
10
|
-
|
|
11
|
-
<template>
|
|
12
|
-
<h1>{{ msg }}</h1>
|
|
13
|
-
|
|
14
|
-
<div class="card">
|
|
15
|
-
<button type="button" @click="count++">count is {{ count }}</button>
|
|
16
|
-
<p>
|
|
17
|
-
Edit
|
|
18
|
-
<code>components/HelloWorld.vue</code> to test HMR
|
|
19
|
-
</p>
|
|
20
|
-
</div>
|
|
21
|
-
|
|
22
|
-
<p>
|
|
23
|
-
Check out
|
|
24
|
-
<a href="https://vuejs.org/guide/quick-start.html#local" target="_blank"
|
|
25
|
-
>create-vue</a
|
|
26
|
-
>, the official Vue + Vite starter
|
|
27
|
-
</p>
|
|
28
|
-
<p>
|
|
29
|
-
Learn more about IDE Support for Vue in the
|
|
30
|
-
<a
|
|
31
|
-
href="https://vuejs.org/guide/scaling-up/tooling.html#ide-support"
|
|
32
|
-
target="_blank"
|
|
33
|
-
>Vue Docs Scaling up Guide</a
|
|
34
|
-
>.
|
|
35
|
-
</p>
|
|
36
|
-
<p class="read-the-docs">Click on the Vite and Vue logos to learn more</p>
|
|
37
|
-
</template>
|
|
38
|
-
|
|
39
|
-
<style scoped>
|
|
40
|
-
.read-the-docs {
|
|
41
|
-
color: #888;
|
|
42
|
-
}
|
|
43
|
-
</style>
|
|
@@ -1,39 +0,0 @@
|
|
|
1
|
-
<template>
|
|
2
|
-
<div class="m-0 w-full">
|
|
3
|
-
<Header />
|
|
4
|
-
<HeroBanner :title="title" :buttonLabel="buttonLabel" :description="description" :imageSrc="imageSrc" />
|
|
5
|
-
</div>
|
|
6
|
-
</template>
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
<script>
|
|
10
|
-
import HeroBanner from "../../Organisms/HeroBanners/HomePage/HeroBanner.vue";
|
|
11
|
-
import Header from "../../Organisms/Headers/Header.vue";
|
|
12
|
-
|
|
13
|
-
export default {
|
|
14
|
-
name: 'TestLayoutPage',
|
|
15
|
-
components: {
|
|
16
|
-
Header,
|
|
17
|
-
HeroBanner,
|
|
18
|
-
},
|
|
19
|
-
props: {
|
|
20
|
-
title: {
|
|
21
|
-
type: String,
|
|
22
|
-
default: 'Hero Banner Title'
|
|
23
|
-
},
|
|
24
|
-
description: {
|
|
25
|
-
type: String,
|
|
26
|
-
default: 'This is the description that goes under the hero banner.'
|
|
27
|
-
},
|
|
28
|
-
buttonLabel: {
|
|
29
|
-
type: String,
|
|
30
|
-
default: 'Click Here'
|
|
31
|
-
},
|
|
32
|
-
imageSrc: {
|
|
33
|
-
type: String,
|
|
34
|
-
default: 'https://meyersquared.com/images/Banner2.png'
|
|
35
|
-
}
|
|
36
|
-
}
|
|
37
|
-
}
|
|
38
|
-
|
|
39
|
-
</script>
|