@dcrackel/meyersquaredui 1.0.110 → 1.0.112

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/package.json CHANGED
@@ -1,68 +1,68 @@
1
- {
2
- "name": "@dcrackel/meyersquaredui",
3
- "private": false,
4
- "version": "1.0.110",
5
- "type": "module",
6
- "main": "dist/meyersquaredui.cjs.js",
7
- "module": "dist/meyersquaredui.esm.js",
8
- "exports": {
9
- ".": {
10
- "import": "./dist/meyersquaredui.es.js",
11
- "require": "./dist/meyersquaredui.umd.js"
12
- }
13
- },
14
- "files": [
15
- "dist",
16
- "src"
17
- ],
18
- "scripts": {
19
- "dev": "vite",
20
- "build": "npm version patch && vite build",
21
- "publish:package": "npm publish",
22
- "preview": "vite preview",
23
- "build-storybook": "npm run build:tailwind && storybook build",
24
- "build:tailwind": "tailwindcss build ./tailwind/tailwind.css -o ../HemaTournamentPublic/src/ui-tailwind.css",
25
- "storybook": "concurrently \"npm run watch:tailwind\" \"npm run watch:storybook\"",
26
- "watch:storybook": "storybook dev -p 6006",
27
- "watch:tailwind": "tailwindcss build ./tailwind/tailwind.css -o ./tailwind/output.css --watch",
28
- "copy:css": "copy .\\dist\\ui-tailwind.css ..\\HemaTournamentPublic\\src\\ui-tailwind.css",
29
- "lint": "eslint --ext .ts,.vue .",
30
- "test": "vitest",
31
- "coverage": "vitest run --coverage"
32
- },
33
- "dependencies": {
34
- "concurrently": "^9.0.1",
35
- "font-awesome": "^4.7.0",
36
- "version": "^0.0.1",
37
- "vue": "^3.5.10",
38
- "vue3-google-map": "^0.21.0"
39
- },
40
- "devDependencies": {
41
- "@chromatic-com/storybook": "^2.0.2",
42
- "@storybook/addon-controls": "^8.3.0",
43
- "@storybook/addon-essentials": "^8.3.0",
44
- "@storybook/addon-interactions": "^8.3.0",
45
- "@storybook/addon-links": "^8.3.0",
46
- "@storybook/addon-mdx-gfm": "^8.3.0",
47
- "@storybook/addon-onboarding": "^8.3.0",
48
- "@storybook/blocks": "^8.3.0",
49
- "@storybook/test": "^8.3.0",
50
- "@storybook/vue3": "^8.3.0",
51
- "@storybook/vue3-vite": "^8.3.0",
52
- "@vitejs/plugin-vue": "^5.1.2",
53
- "autoprefixer": "^10.4.20",
54
- "postcss": "^8.4.45",
55
- "storybook": "^8.3.0",
56
- "tailwindcss": "^3.4.11",
57
- "vite": "^5.4.1"
58
- },
59
- "keywords": [
60
- "story",
61
- "hema",
62
- "tournament",
63
- "UI",
64
- "vue3"
65
- ],
66
- "author": "Meyer Squared",
67
- "license": "MIT"
68
- }
1
+ {
2
+ "name": "@dcrackel/meyersquaredui",
3
+ "private": false,
4
+ "version": "1.0.112",
5
+ "type": "module",
6
+ "main": "dist/meyersquaredui.cjs.js",
7
+ "module": "dist/meyersquaredui.esm.js",
8
+ "exports": {
9
+ ".": {
10
+ "import": "./dist/meyersquaredui.es.js",
11
+ "require": "./dist/meyersquaredui.umd.js"
12
+ }
13
+ },
14
+ "files": [
15
+ "dist",
16
+ "src"
17
+ ],
18
+ "scripts": {
19
+ "dev": "vite",
20
+ "build": "npm version patch && vite build",
21
+ "publish:package": "npm publish",
22
+ "preview": "vite preview",
23
+ "build-storybook": "npm run build:tailwind && storybook build",
24
+ "build:tailwind": "tailwindcss build ./tailwind/tailwind.css -o ../HemaTournamentPublic/src/ui-tailwind.css",
25
+ "storybook": "concurrently \"npm run watch:tailwind\" \"npm run watch:storybook\"",
26
+ "watch:storybook": "storybook dev -p 6006",
27
+ "watch:tailwind": "tailwindcss build ./tailwind/tailwind.css -o ./tailwind/output.css --watch",
28
+ "copy:css": "copy .\\dist\\ui-tailwind.css ..\\HemaTournamentPublic\\src\\ui-tailwind.css",
29
+ "lint": "eslint --ext .ts,.vue .",
30
+ "test": "vitest",
31
+ "coverage": "vitest run --coverage"
32
+ },
33
+ "dependencies": {
34
+ "concurrently": "^9.0.1",
35
+ "font-awesome": "^4.7.0",
36
+ "version": "^0.0.1",
37
+ "vue": "^3.5.10",
38
+ "vue3-google-map": "^0.21.0"
39
+ },
40
+ "devDependencies": {
41
+ "@chromatic-com/storybook": "^2.0.2",
42
+ "@storybook/addon-controls": "^8.3.5",
43
+ "@storybook/addon-essentials": "^8.3.5",
44
+ "@storybook/addon-interactions": "^8.3.5",
45
+ "@storybook/addon-links": "^8.3.5",
46
+ "@storybook/addon-mdx-gfm": "^8.3.5",
47
+ "@storybook/addon-onboarding": "^8.3.5",
48
+ "@storybook/blocks": "^8.3.5",
49
+ "@storybook/test": "^8.3.5",
50
+ "@storybook/vue3": "^8.3.5",
51
+ "@storybook/vue3-vite": "^8.3.5",
52
+ "@vitejs/plugin-vue": "^5.1.2",
53
+ "autoprefixer": "^10.4.20",
54
+ "postcss": "^8.4.45",
55
+ "storybook": "^8.3.5",
56
+ "tailwindcss": "^3.4.11",
57
+ "vite": "^5.4.1"
58
+ },
59
+ "keywords": [
60
+ "story",
61
+ "hema",
62
+ "tournament",
63
+ "UI",
64
+ "vue3"
65
+ ],
66
+ "author": "Meyer Squared",
67
+ "license": "MIT"
68
+ }
@@ -1,8 +1,13 @@
1
1
  import ProgressTracker from './ProgressTracker.vue';
2
2
 
3
3
  export default {
4
- title: 'Molecules/ProgressTracker/ProgressTracker',
4
+ title: 'Components/ProgressTracker',
5
5
  component: ProgressTracker,
6
+ argTypes: {
7
+ currentPhase: { control: { type: 'number', min: 0, max: 4 } },
8
+ highlightPhase: { control: { type: 'number', min: 0, max: 4 } },
9
+ isEventComplete: { control: 'boolean' },
10
+ },
6
11
  };
7
12
 
8
13
  const Template = (args) => ({
@@ -13,21 +18,44 @@ const Template = (args) => ({
13
18
  template: '<ProgressTracker v-bind="args" />',
14
19
  });
15
20
 
16
- export const ActiveEvent = Template.bind({});
17
- ActiveEvent.args = {
18
- currentPhase: 2, // Example: "Bracket" phase
21
+ export const Default = Template.bind({});
22
+ Default.args = {
23
+ currentPhase: 2, // Example: Pool Results
24
+ highlightPhase: 1, // Example: Pools (User viewing Pools page)
19
25
  isEventComplete: false,
26
+ phases: [
27
+ { label: 'Registration', icon: 'fa-solid fa-file-alt' },
28
+ { label: 'Pools', icon: 'fa-kit fa-longsword' },
29
+ { label: 'Pool Results', icon: 'fa-solid fa-clipboard-check' },
30
+ { label: 'Bracket', icon: 'fa-solid fa-sitemap' },
31
+ { label: 'Final Result', icon: 'fa-solid fa-trophy' },
32
+ ],
20
33
  };
21
34
 
22
- export const CompletedEvent = Template.bind({});
23
- CompletedEvent.args = {
24
- currentPhase: 3,
35
+ export const EventComplete = Template.bind({});
36
+ EventComplete.args = {
37
+ currentPhase: 4, // Event is complete
38
+ highlightPhase: 4, // User is viewing the final results
39
+ isEventComplete: true,
25
40
  phases: [
26
41
  { label: 'Registration', icon: 'fa-solid fa-file-alt' },
27
- { label: 'Demo Pools', icon: 'fa-kit fa-longsword' },
42
+ { label: 'Pools', icon: 'fa-kit fa-longsword' },
43
+ { label: 'Pool Results', icon: 'fa-solid fa-clipboard-check' },
44
+ { label: 'Bracket', icon: 'fa-solid fa-sitemap' },
45
+ { label: 'Final Result', icon: 'fa-solid fa-trophy' },
46
+ ],
47
+ };
48
+
49
+ export const EarlyPhase = Template.bind({});
50
+ EarlyPhase.args = {
51
+ currentPhase: 0, // Event hasn't started yet
52
+ highlightPhase: 0, // Viewing registration page
53
+ isEventComplete: false,
54
+ phases: [
55
+ { label: 'Registration', icon: 'fa-solid fa-file-alt' },
56
+ { label: 'Pools', icon: 'fa-kit fa-longsword' },
28
57
  { label: 'Pool Results', icon: 'fa-solid fa-clipboard-check' },
29
58
  { label: 'Bracket', icon: 'fa-solid fa-sitemap' },
30
59
  { label: 'Final Result', icon: 'fa-solid fa-trophy' },
31
60
  ],
32
- isEventComplete: true,
33
61
  };
@@ -29,11 +29,11 @@
29
29
  <BaseText
30
30
  tag="p"
31
31
  size="sm"
32
- :weight="currentPhase === index ? 'bold' : 'normal'"
32
+ :weight="highlightPhase === index ? 'bold' : 'normal'"
33
33
  class="mt-2 transition-all duration-300"
34
34
  :class="{
35
- 'font-bold text-accent': isPhaseActive(index),
36
- 'text-gray-600': !isPhaseActive(index),
35
+ 'font-bold text-accent': isPhaseActive(index) || highlightPhase === index,
36
+ 'text-gray-600': !isPhaseActive(index) && highlightPhase !== index,
37
37
  'hover:text-accent': hoveredPhase === index && index <= currentPhase,
38
38
  }"
39
39
  >
@@ -68,6 +68,10 @@ export default {
68
68
  required: true,
69
69
  default: 0,
70
70
  },
71
+ highlightPhase: {
72
+ type: Number,
73
+ default: null,
74
+ },
71
75
  isEventComplete: {
72
76
  type: Boolean,
73
77
  default: false,
@@ -81,4 +81,14 @@ ArticleGridLoading.args = {
81
81
  cardComponent: ArticleCard,
82
82
  items: mockArticles,
83
83
  isLoading: true
84
+ };
85
+
86
+ export const Empty = FencerTemplate.bind({});
87
+ Empty.args = {
88
+ title: 'Empty Set',
89
+ moreButtonLabel: '',
90
+ maxColumns: 1,
91
+ cardComponent: ArticleCard,
92
+ items: [],
93
+ isLoading: true
84
94
  };
@@ -7,6 +7,7 @@
7
7
  </div>
8
8
  <div :class="gridClasses">
9
9
  <component
10
+ v-if="items.length > 0"
10
11
  v-for="(item, index) in items"
11
12
  :is="cardComponent"
12
13
  :key="index"
@@ -15,6 +16,10 @@
15
16
  :isLoading="isLoading"
16
17
  @grid-card-click="handleTournamentCardClick"
17
18
  />
19
+ <div v-if="items.length === 0" class="w-full flex-col flex p-10">
20
+ <Icon :icon="noResultsIcon" color="primary" size="5xl" class="w-full flex justify-center"/>
21
+ <BaseText color="primary" size="lg" weight="normal" class="w-full flex justify-center mt-4">{{noResultsMsg}}</BaseText>
22
+ </div>
18
23
  </div>
19
24
  </div>
20
25
  <div v-if="!whiteStyle && moreButtonLabel" class="w-full flex justify-center pb-28 pt-10 md:pt-14">
@@ -36,10 +41,12 @@
36
41
  import BaseButton from "../../Atoms/BaseButton/BaseButton.vue";
37
42
  import BaseText from "../../Atoms/BaseText/BaseText.vue";
38
43
  import {markRaw} from "vue";
44
+ import Icon from "../../Atoms/Icon/Icon.vue";
39
45
 
40
46
  export default {
41
47
  name: 'GridLayout',
42
48
  components: {
49
+ Icon,
43
50
  BaseButton,
44
51
  BaseText,
45
52
  },
@@ -81,6 +88,14 @@ export default {
81
88
  type: String,
82
89
  default: 'w-full flex justify-center mx-auto',
83
90
  },
91
+ noResultsMsg: {
92
+ type: String,
93
+ default: 'No results found',
94
+ },
95
+ noResultsIcon: {
96
+ type: String,
97
+ default: 'fa-user-magnifying-glass',
98
+ },
84
99
  },
85
100
  emits: ['grid-click', 'grid-card-click'],
86
101
  computed: {
@@ -18,10 +18,11 @@
18
18
  />
19
19
  </div>
20
20
  <div class="w-full max-w-4xl mx-auto md:p-4 mb-20">
21
+ <!-- :items="tournament.Events"-->
21
22
  <GridLayout
22
23
  v-if="tournament.Events.length > 0"
23
24
  :cardComponent="EventListCard"
24
- :items="tournament.Events"
25
+ :items="[]"
25
26
  :maxColumns="1"
26
27
  :isLoading="false"
27
28
  :whiteStyle="true"