@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.
Files changed (35) hide show
  1. package/dist/meyersquaredui.es.js +1276 -209
  2. package/dist/meyersquaredui.umd.js +1 -1
  3. package/dist/style.css +1 -1
  4. package/package.json +2 -2
  5. package/src/assets/fonts/Raleway-Thin.ttf +0 -0
  6. package/src/assets/images/portrait1.png +0 -0
  7. package/src/index.js +7 -1
  8. package/src/mocks/getArticles.js +19 -0
  9. package/src/mocks/getTopFencers.js +157 -0
  10. package/src/mocks/getTournamentsMock.js +185 -0
  11. package/src/stories/Atoms/BaseButton/BaseButton.stories.js +35 -32
  12. package/src/stories/Atoms/BaseButton/BaseButton.vue +66 -4
  13. package/src/stories/Atoms/BaseText/BaseText.vue +25 -8
  14. package/src/stories/Atoms/Icon/Icon.vue +6 -1
  15. package/src/stories/Organisms/Cards/ArticleCard/ArticleCard.stories.js +25 -0
  16. package/src/stories/Organisms/Cards/ArticleCard/ArticleCard.vue +48 -0
  17. package/src/stories/Organisms/Cards/FencerCard/FencerCard.stories.js +48 -0
  18. package/src/stories/Organisms/Cards/FencerCard/FencerCard.vue +69 -0
  19. package/src/stories/Organisms/Cards/TournamentCard/TournamentCard.stories.js +24 -0
  20. package/src/stories/Organisms/Cards/TournamentCard/TournamentCard.vue +121 -0
  21. package/src/stories/Organisms/Footer/Foot.stories.js +11 -0
  22. package/src/stories/Organisms/Footer/Footer.vue +94 -0
  23. package/src/stories/Organisms/GridLayout/GridLayout.stories.js +148 -0
  24. package/src/stories/Organisms/GridLayout/GridLayout.vue +98 -0
  25. package/src/stories/Organisms/Headers/Header.stories.js +1 -1
  26. package/src/stories/Organisms/Headers/Header.vue +5 -6
  27. package/src/stories/Organisms/HeroBanners/HomePage/HeroBanner.vue +52 -25
  28. package/src/stories/Organisms/SectionBanners/DoubleButtonBanner/DoubleButtonBanner.stories.js +28 -0
  29. package/src/stories/Organisms/SectionBanners/DoubleButtonBanner/DoubleButtonBanner.vue +118 -0
  30. package/src/stories/Organisms/SectionBanners/SingleButtonBanner/SingleButtonBanner.stories.js +35 -0
  31. package/src/stories/Organisms/SectionBanners/SingleButtonBanner/SingleButtonBanner.vue +48 -0
  32. package/src/stories/Templates/HomePage/{TestPage.stories.js → HomePage.stories.js} +9 -4
  33. package/src/stories/Templates/HomePage/HomePage.vue +111 -0
  34. package/src/components/HelloWorld.vue +0 -43
  35. 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 TestLayoutPage from './TestPage.vue';
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: TestLayoutPage,
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>