@dcrackel/hematournamentui 1.0.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/.storybook/main.js +17 -0
- package/.storybook/preview-head.html +1 -0
- package/.storybook/preview.js +17 -0
- package/HemaTournamentUI/.gitattributes +2 -0
- package/HemaTournamentUI/LICENSE +21 -0
- package/README.md +83 -0
- package/dist/my-library.es.js +723 -0
- package/dist/my-library.umd.js +1 -0
- package/index.html +12 -0
- package/package.json +42 -0
- package/postcss.config.js +6 -0
- package/src/assets/default-tournament.png +0 -0
- package/src/index.js +15 -0
- package/src/main.js +2 -0
- package/src/mocks/fileMock.js +1 -0
- package/src/mocks/tournamentMock.js +34 -0
- package/src/stories/Base/Button/BaseButton.stories.js +69 -0
- package/src/stories/Base/Button/BaseButton.vue +141 -0
- package/src/stories/Base/Input/BaseInput.stories.js +28 -0
- package/src/stories/Base/Input/BaseInput.vue +44 -0
- package/src/stories/Base/Tag/BaseTag.stories.js +29 -0
- package/src/stories/Base/Tag/BaseTag.vue +57 -0
- package/src/stories/Base/Text/BaseText.stories.js +77 -0
- package/src/stories/Base/Text/BaseText.vue +162 -0
- package/src/stories/Cards/TournamentCard/Detail/TournamentCardDetail.stories.js +33 -0
- package/src/stories/Cards/TournamentCard/Detail/TournamentCardDetail.vue +38 -0
- package/src/stories/Cards/TournamentCard/Header/TournamentCardHeader.stories.js +48 -0
- package/src/stories/Cards/TournamentCard/Header/TournamentCardHeader.vue +40 -0
- package/src/stories/Cards/TournamentCard/TournamentCard.stories.js +37 -0
- package/src/stories/Cards/TournamentCard/TournamentCard.vue +35 -0
- package/src/stories/Configure.mdx +320 -0
- package/src/stories/Containers/Grid/GridContainer.stories.js +27 -0
- package/src/stories/Containers/Grid/GridContainer.vue +36 -0
- package/src/stories/Filters/FilterAndSortBar/FilterAndSortBar.stories.js +36 -0
- package/src/stories/Filters/FilterAndSortBar/FilterAndSortBar.vue +39 -0
- package/src/stories/Menu/Admin/AdminLeftMenu.stories.js +23 -0
- package/src/stories/Menu/Admin/AdminLeftMenu.vue +57 -0
- package/src/stories/Menu/DropDown/DropDownMenu.stories.js +34 -0
- package/src/stories/Menu/DropDown/DropDownMenu.vue +49 -0
- package/tailwind/output.css +1047 -0
- package/tailwind/tailwind.css +4 -0
- package/tailwind.config.js +25 -0
- package/vite.config.js +20 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
(function(c,e){typeof exports=="object"&&typeof module<"u"?e(exports,require("vue")):typeof define=="function"&&define.amd?define(["exports","vue"],e):(c=typeof globalThis<"u"?globalThis:c||self,e(c.MyLibrary={},c.Vue))})(this,function(c,e){"use strict";const d=(r,t)=>{const n=r.__vccOpts||r;for(const[l,i]of t)n[l]=i;return n},k={name:"BaseInput",props:{placeholder:{type:String,default:""},value:{type:String,default:""}},data(){return{internalValue:this.value,timeout:null}},watch:{value(r){this.internalValue=r}},methods:{onInput(){clearTimeout(this.timeout),this.timeout=setTimeout(()=>{this.$emit("update:value",this.internalValue)},300)}}},b=["placeholder"];function f(r,t,n,l,i,s){return e.withDirectives((e.openBlock(),e.createElementBlock("input",{class:"appearance-none focus:outline-none w-full",placeholder:n.placeholder,"onUpdate:modelValue":t[0]||(t[0]=a=>i.internalValue=a),onInput:t[1]||(t[1]=(...a)=>s.onInput&&s.onInput(...a))},null,40,b)),[[e.vModelText,i.internalValue]])}const g=d(k,[["render",f]]),C={name:"BaseText",props:{text:{type:String,required:!0},weight:{type:String,default:"normal",validator:function(r){return["light","normal","medium","semi-bold","bold","extra-bold"].indexOf(r)!==-1}},size:{type:String,default:"small",validator:function(r){return["xs","small","medium","large","xl","2xl","3xl"].indexOf(r)!==-1}},color:{type:String,default:"primary",validator:function(r){return["neutral","quaternary","tertiary","secondary","primary","bright"].indexOf(r)!==-1}},hoverColor:{type:String,default:"none",validator:function(r){return["primary","secondary","tertiary","quaternary","neutral","bright","none"].indexOf(r)!==-1}}},setup(r){return r=e.reactive(r),{classes:e.computed(()=>{let t="inline-block font-sans";switch(r.color){case"neutral":t+=" text-neutral";break;case"tertiary":t+=" text-tertiary";break;case"secondary":t+=" text-secondary";break;case"quaternary":t+=" text-quaternary";break;case"primary":t+=" text-primary";break;case"bright":t+=" text-bright";break}switch(r.hoverColor){case"neutral":t+=" hover:text-neutral";break;case"tertiary":t+=" hover:text-tertiary";break;case"secondary":t+=" hover:text-secondary";break;case"quaternary":t+=" hover:text-quaternary";break;case"primary":t+=" hover:text-primary";break;case"bright":t+=" hover:text-bright";break;case"none":t+="";break}switch(r.weight){case"light":t+=" font-light";break;case"normal":t+=" font-normal";break;case"medium":t+=" font-medium";break;case"semi-bold":t+=" font-semibold";break;case"bold":t+=" font-bold";break;case"extra-bold":t+=" font-extrabold";break;default:t+=" font-normal";break}switch(r.size){case"xs":t+=" text-xs";break;case"small":t+=" text-sm";break;case"medium":t+=" text-md";break;case"large":t+=" text-lg";break;case"xl":t+=" text-xl";break;case"2xl":t+=" text-2xl";break;case"3xl":t+=" text-3xl";break;default:t+=" text-sm";break}return t})}}};function w(r,t,n,l,i,s){return e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(l.classes)},e.toDisplayString(n.text),3)}const m=d(C,[["render",w]]),_={name:"base-button",components:{DefaultText:m},props:{label:{type:String,required:!0},iconClass:{type:String,default:null},size:{type:String,validator:function(r){return["xs","small","medium","large","xl"].indexOf(r)!==-1}},type:{type:String,default:"primary",validator:function(r){return["primary","secondary","tertiary","bright","admin","adminSecondary"].indexOf(r)!==-1}}},emits:["click"],setup(r,{emit:t}){return r=e.reactive(r),{textColor:e.computed(()=>{switch(r.type){case"primary":return"text-primary";case"secondary":return"text-secondary";case"tertiary":return"text-tertiary";case"bright":return"text-bright";case"admin":return"text-neutral";case"adminSecondary":return"text-secondary";default:return"text-primary"}}),hoverClass:e.computed(()=>{switch(r.type){case"admin":return"hover:text-secondary";case"adminSecondary":return"hover:text-tertiary";default:return""}}),hoverColor:e.computed(()=>{switch(r.type){case"admin":return"text-secondary";case"adminSecondary":return"text-tertiary";default:return null}}),classes:e.computed(()=>{let n="py-2 px-2.5 mx-2 inline-flex ";switch(r.type){case"primary":n+=" items-center gap-2.5 rounded-md text-center shadow border border-skeleton justify-center bg-neutral hover:bg-tertiary";break;case"secondary":n+=" items-center gap-2.5 rounded-md text-center shadow bg-secondary justify-center hover:bg-primary text-neutral";break;case"tertiary":n+=" items-center gap-2.5 rounded-md text-center justify-center bg-tertiary hover:bg-primary text-primary";break;case"bright":n+=" items-center gap-2.5 rounded-md text-center justify-center bg-bright hover:bg-primary text-neutral";break;case"admin":n+=" items-center rounded-md gap-2.5 text-center bg-primary hover:bg-primary my-1 text-neutral hover:bg-primaryHighlight";break;case"adminSecondary":n+=" items-center gap-2.5 text-center my-1 border-b border-secondary hover:border-b hover:border-neutral w-11/12 text-neutral";break}switch(r.size){case"xs":n+=" text-xs";break;case"small":n+=" text-sm";break;case"medium":n+=" text-md";break;case"large":n+=" text-lg";break;case"xl":n+=" text-xl";break;default:n+="";break}return n}),onClick(){console.log("Click!"),t("click")}}}};function E(r,t,n,l,i,s){const a=e.resolveComponent("DefaultText");return e.openBlock(),e.createElementBlock("button",{class:e.normalizeClass(l.classes),type:"button",onClick:t[0]||(t[0]=(...o)=>l.onClick&&l.onClick(...o))},[n.iconClass?(e.openBlock(),e.createElementBlock("i",{key:0,class:e.normalizeClass([n.iconClass,"mr-2 hover:text-highlightedClass"])},null,2)):e.createCommentVNode("",!0),e.createVNode(a,{color:l.textColor,size:n.size,text:n.label,weight:"normal"},null,8,["color","size","text"])],2)}const A=d(_,[["render",E]]),Q={name:"base-tag",props:{label:{type:String,required:!0},backgroundColor:{type:String,validator:function(r){return["primary","secondary","tertiary","neutral","bright"].indexOf(r)!==-1}}},setup(r){return r=e.reactive(r),{classes:e.computed(()=>{let t="cursor-pointer inline-block py-1 px-3 my-2 ml-3 text-xs font-normal rounded-full text-neutral";switch(r.backgroundColor){case"primary":t+=" bg-primary";break;case"secondary":t+=" bg-secondary";break;case"tertiary":t+=" bg-tertiary";break;case"neutral":t+=" bg-neutral";break;case"bright":t+=" bg-bright";break;default:t+=" bg-primary";break}return t})}}};function I(r,t,n,l,i,s){return e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(l.classes)},e.toDisplayString(n.label),3)}const B=d(Q,[["render",I]]),y="data:image/png;base64,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",D={name:"tournament-card-header",components:{BaseTag:B},props:{artwork:{type:String,required:!0,default:y},tags:{type:Array,default:()=>[]}},computed:{backgroundStyle(){return`background-image: url('${this.artwork||y}');`}}},V={class:"rounded-t-xl w-full"},Y={class:"flex flex-row"};function M(r,t,n,l,i,s){const a=e.resolveComponent("BaseTag");return e.openBlock(),e.createElementBlock("div",V,[e.createElementVNode("div",{style:e.normalizeStyle(s.backgroundStyle),class:"h-36 w-full flex flex-col justify-end rounded-t-xl bg-cover bg-no-repeat bg-center"},[e.createElementVNode("div",Y,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(n.tags,o=>(e.openBlock(),e.createBlock(a,{key:o,label:o},null,8,["label"]))),128))])],4)])}const u=d(D,[["render",M]]),G={name:"tournament-card-details",components:{BaseButton:A,BaseText:m},props:{detail:{type:Object,required:!0,default:()=>({name:"",date:"",closes:"",location:""})}}},S={class:"flex flex-col w-full pt-4 pb-3 px-3"},q={class:"mt-4 flex flex-col"},U={class:"flex flex-row w-full justify-end"};function N(r,t,n,l,i,s){const a=e.resolveComponent("BaseText"),o=e.resolveComponent("BaseButton");return e.openBlock(),e.createElementBlock("div",S,[e.createVNode(a,{text:n.detail.name,color:"textPrimary",size:"xl",weight:"semi-bold"},null,8,["text"]),e.createVNode(a,{text:n.detail.location,color:"textPrimary",size:"small",weight:"normal"},null,8,["text"]),e.createElementVNode("div",q,[e.createVNode(a,{text:`${n.detail.date}`,color:"textPrimary",size:"small",weight:"light"},null,8,["text"]),e.createVNode(a,{text:`${n.detail.closes}`,color:"textPrimary",size:"small",weight:"light"},null,8,["text"])]),e.createElementVNode("div",U,[e.createVNode(o,{label:"Edit",class:"mt-2",primary:""})])])}const p=d(G,[["render",N]]),$={name:"TournamentCard",components:{TournamentHeader:u,TournamentDetail:p},props:{detail:{type:Object,required:!0,default:()=>({artwork:"",tags:[],name:"",description:"",date:"",closes:"",location:""})}}},T={class:"rounded-xl w-72 shadow"};function W(r,t,n,l,i,s){const a=e.resolveComponent("TournamentHeader"),o=e.resolveComponent("TournamentDetail");return e.openBlock(),e.createElementBlock("div",T,[e.createVNode(a,{artwork:n.detail.artwork,tags:n.detail.tags},null,8,["artwork","tags"]),e.createVNode(o,{detail:n.detail},null,8,["detail"])])}const x=d($,[["render",W]]),K={name:"GridContainer",components:{BaseText:m,TournamentCard:x},props:{items:{type:Array,default:()=>[]},component:{type:String,required:!0}}},H={class:"border border-cloudy rounded-lg p-9 bg-white"},P={class:"w-full text-center mb-9"},J={class:"grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 2xl:grid-cols-4 gap-6 w-full"};function j(r,t,n,l,i,s){const a=e.resolveComponent("BaseText");return e.openBlock(),e.createElementBlock("div",H,[e.createElementVNode("h1",P,[e.createVNode(a,{color:"primary",size:"2xl",text:"Upcoming Tournaments",weight:"normal"})]),e.createElementVNode("div",J,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(n.items,o=>(e.openBlock(),e.createElementBlock("div",{key:o.id},[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(n.component),{detail:o},null,8,["detail"]))]))),128))])])}const z=d(K,[["render",j]]),F={name:"DropDownMenu",components:{BaseText:m},props:{label:{type:String},items:{type:Array},selectedItem:null},data:()=>({isDropDownOpen:!1}),methods:{handleClick(r){this.isDropDownOpen=!1,console.log(`menu item clicked ${r}`)},handleDropDown(){this.isDropDownOpen=!this.isDropDownOpen}}},L={class:"flex flex-row"},O={class:"mr-2 pt-1"},Z=e.createElementVNode("i",{class:"fa-solid fa-chevron-down text-xs"},null,-1),R={key:0,class:"flex flex-col w-32 shadow mt-2 z-10 rounded-xl py-1 absolute"},X=["onClick"];function v(r,t,n,l,i,s){const a=e.resolveComponent("BaseText");return e.openBlock(),e.createElementBlock("div",L,[e.createElementVNode("span",O,[e.createVNode(a,{text:n.label,color:"quaternary",size:"small",weight:"normal"},null,8,["text"])]),e.createElementVNode("span",null,[e.createElementVNode("div",{class:"z-10 rounded-lg shadow px-2 py-2 w-32 flex flex-row justify-between",onClick:t[0]||(t[0]=o=>s.handleDropDown())},[e.createVNode(a,{text:n.selectedItem.text,color:"secondary",size:"xs",weight:"normal"},null,8,["text"]),Z]),r.isDropDownOpen?(e.openBlock(),e.createElementBlock("div",R,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(n.items,o=>(e.openBlock(),e.createElementBlock("a",{key:o.id,onClick:Be=>s.handleClick(o),class:"hover:bg-dropdownSelect py-1 px-2 border-b border-dropdownSelect last:border-0"},[e.createVNode(a,{text:o.text,color:"primary",size:"xs",weight:"normal"},null,8,["text"])],8,X))),128))])):e.createCommentVNode("",!0)])])}const h=d(F,[["render",v]]),ee={name:"FilterAndSortBar",components:{DropDownMenu:h,BaseInput:g},props:{label:{type:String},items:{type:Array,default:()=>[]},selectedItem:null},methods:{handleButtonClick(r){this.$emit("button-click",r)}}},te={class:"flex flex-row w-full justify-between"},re={class:"rounded-lg shadow px-2 py-1 w-1/2 flex flex-row mt-0.5"},ne=e.createElementVNode("i",{class:"fa-solid fa-magnifying-glass text-primaryHighlight w-6 mt-1"},null,-1);function ae(r,t,n,l,i,s){const a=e.resolveComponent("BaseInput"),o=e.resolveComponent("DropDownMenu");return e.openBlock(),e.createElementBlock("section",te,[e.createElementVNode("div",re,[ne,e.createVNode(a,{placeholder:"Search on Name, Location, or Date",class:"text-quaternary"})]),e.createElementVNode("div",null,[e.createVNode(o,{label:n.label,items:n.items,selectedItem:n.selectedItem},null,8,["label","items","selectedItem"])])])}const oe=d(ee,[["render",ae]]),le={name:"AdminLeftMenu",components:{BaseButton:A},props:{buttons:{type:Array,default:()=>[]}},methods:{handleButtonClick(r){this.$emit("button-click",r)}}},se={class:"bg-backgroundSecondary w-64 h-screen flex flex-col justify-between bg-secondary"},ce=e.createElementVNode("section",{class:"h-28 border-b-2 border-borderPrimary"},[e.createElementVNode("div",{class:"flex flex-col justify-center h-28"},[e.createElementVNode("div",{class:"ml-8"},[e.createElementVNode("img",{class:"w-32",src:"https://ferrotas.com/assets/ferrotas-white-small-720502db.png"})])])],-1),ie={class:"flex flex-col p-2 h-full"},de={class:"flex flex-col justify-end p-2 h-full"},me={class:"border-t-2 border-borderPrimary pt-2"};function Ae(r,t,n,l,i,s){const a=e.resolveComponent("BaseButton");return e.openBlock(),e.createElementBlock("div",se,[ce,e.createElementVNode("section",ie,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(n.buttons,o=>(e.openBlock(),e.createBlock(a,{label:o.label,iconClass:"fa-solid fa-trophy text-white",type:"admin",hover:"admin",onClick:Be=>s.handleButtonClick(o)},null,8,["label","onClick"]))),256))]),e.createElementVNode("section",de,[e.createElementVNode("div",me,[e.createVNode(a,{iconClass:"fa-solid fa-circle-user text-textSecondary",label:"Account",type:"adminSecondary",onClick:t[0]||(t[0]=o=>s.handleButtonClick(r.button))}),e.createVNode(a,{iconClass:"fa-solid fa-right-to-bracket fa-rotate-180 text-textSecondary",label:"Log Out",type:"adminSecondary",onClick:t[1]||(t[1]=o=>s.handleButtonClick(r.button))})])])])}const ge=d(le,[["render",Ae]]);c.AdminLeftMenu=ge,c.BaseButton=A,c.BaseInput=g,c.BaseTag=B,c.BaseText=m,c.DropDownMenu=h,c.FilterAndSortBar=oe,c.GridContainer=z,c.TournamentCard=x,c.TournamentCardDetails=p,c.TournamentCardHeader=u,Object.defineProperty(c,Symbol.toStringTag,{value:"Module"})});
|
package/index.html
ADDED
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
<!doctype html>
|
|
2
|
+
<html lang="en">
|
|
3
|
+
<head>
|
|
4
|
+
<meta charset="UTF-8" />
|
|
5
|
+
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
|
6
|
+
<title>StoryBookLib</title>
|
|
7
|
+
</head>
|
|
8
|
+
<body>
|
|
9
|
+
<div id="app"></div>
|
|
10
|
+
<script type="module" src="/src/main.js"></script>
|
|
11
|
+
</body>
|
|
12
|
+
</html>
|
package/package.json
ADDED
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@dcrackel/hematournamentui",
|
|
3
|
+
"private": false,
|
|
4
|
+
"version": "1.0.0",
|
|
5
|
+
"type": "module",
|
|
6
|
+
"main": "dist/my-library.umd.js",
|
|
7
|
+
"module": "dist/my-library.es.js",
|
|
8
|
+
"scripts": {
|
|
9
|
+
"dev": "vite",
|
|
10
|
+
"build": "vite build",
|
|
11
|
+
"preview": "vite preview",
|
|
12
|
+
"build-storybook": "npm run build:tailwind && storybook build",
|
|
13
|
+
"build:tailwind": "tailwindcss build ./tailwind/tailwind.css -o ./tailwind/output.css",
|
|
14
|
+
"storybook": "concurrently \"npm run watch:tailwind\" \"npm run watch:storybook\"",
|
|
15
|
+
"watch:storybook": "storybook dev -p 6006",
|
|
16
|
+
"watch:tailwind": "tailwindcss build ./tailwind/tailwind.css -o ./tailwind/output.css --watch"
|
|
17
|
+
},
|
|
18
|
+
"dependencies": {
|
|
19
|
+
"concurrently": "^8.2.1",
|
|
20
|
+
"font-awesome": "^4.7.0",
|
|
21
|
+
"vue": "^3.3.4"
|
|
22
|
+
},
|
|
23
|
+
"devDependencies": {
|
|
24
|
+
"@storybook/addon-docs": "^7.4.5",
|
|
25
|
+
"@storybook/addon-essentials": "^7.4.5",
|
|
26
|
+
"@storybook/addon-interactions": "^7.4.5",
|
|
27
|
+
"@storybook/addon-links": "^7.4.5",
|
|
28
|
+
"@storybook/blocks": "^7.4.5",
|
|
29
|
+
"@storybook/testing-library": "^0.2.1",
|
|
30
|
+
"@storybook/vue3": "^7.4.5",
|
|
31
|
+
"@storybook/vue3-vite": "^7.4.5",
|
|
32
|
+
"@vitejs/plugin-vue": "^4.2.3",
|
|
33
|
+
"autoprefixer": "^10.4.16",
|
|
34
|
+
"postcss": "^8.4.30",
|
|
35
|
+
"postcss-cli": "^10.1.0",
|
|
36
|
+
"react": "^18.2.0",
|
|
37
|
+
"react-dom": "^18.2.0",
|
|
38
|
+
"storybook": "^7.4.5",
|
|
39
|
+
"tailwindcss": "^3.3.3",
|
|
40
|
+
"vite": "^4.4.5"
|
|
41
|
+
}
|
|
42
|
+
}
|
|
Binary file
|
package/src/index.js
ADDED
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
export { default as BaseInput } from './stories/Base/Input/BaseInput.vue';
|
|
2
|
+
export { default as BaseButton } from './stories/Base/Button/BaseButton.vue';
|
|
3
|
+
export { default as BaseTag } from './stories/Base/Tag/BaseTag.vue';
|
|
4
|
+
export { default as BaseText } from './stories/Base/Text/BaseText.vue';
|
|
5
|
+
|
|
6
|
+
export { default as TournamentCard } from './stories/Cards/TournamentCard/TournamentCard.vue';
|
|
7
|
+
export { default as TournamentCardDetails } from './stories/Cards/TournamentCard/Detail/TournamentCardDetail.vue';
|
|
8
|
+
export { default as TournamentCardHeader } from './stories/Cards/TournamentCard/Header/TournamentCardHeader.vue';
|
|
9
|
+
|
|
10
|
+
export { default as GridContainer } from './stories/Containers/Grid/GridContainer.vue';
|
|
11
|
+
|
|
12
|
+
export { default as FilterAndSortBar } from './stories/Filters/FilterAndSortBar/FilterAndSortBar.vue';
|
|
13
|
+
export { default as AdminLeftMenu } from './stories/Menu/Admin/AdminLeftMenu.vue';
|
|
14
|
+
export { default as DropDownMenu } from './stories/Menu/DropDown/DropDownMenu.vue';
|
|
15
|
+
|
package/src/main.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
module.exports = 'test-file-stub';
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
const mockTournaments = [
|
|
2
|
+
{
|
|
3
|
+
id: 1,
|
|
4
|
+
artwork: 'https://node.ferrotas.com:5000/uploads/t-450.png',
|
|
5
|
+
tags: ['Tag1', 'Tag2'],
|
|
6
|
+
name: 'Summer Slam 2023',
|
|
7
|
+
description: 'Join us for the hottest tournament this summer!',
|
|
8
|
+
date: '15 June 2023',
|
|
9
|
+
closes: 'Status Line',
|
|
10
|
+
location: 'Beachside Arena, Miami, FL'
|
|
11
|
+
},
|
|
12
|
+
{
|
|
13
|
+
id: 2,
|
|
14
|
+
artwork: 'https://node.ferrotas.com:5000/uploads/t-196.png',
|
|
15
|
+
tags: ['Tag3', 'Tag4', 'Tag5'],
|
|
16
|
+
name: 'Winter Showdown 2023',
|
|
17
|
+
description: 'Cold weather, hot competition!',
|
|
18
|
+
date: '10 December 2023',
|
|
19
|
+
closes: 'Registration Closes 1 December 2023',
|
|
20
|
+
location: 'Snowy Mountain Stadium, Denver, CO'
|
|
21
|
+
},
|
|
22
|
+
{
|
|
23
|
+
id: 3,
|
|
24
|
+
artwork: 'https://usahema.org/img/tournaments/usahema-tournament-45.jpg',
|
|
25
|
+
tags: ['Tag6'],
|
|
26
|
+
name: 'Autumn Cup 2023',
|
|
27
|
+
description: 'Celebrate fall with intense matches!',
|
|
28
|
+
date: '20 October 2023',
|
|
29
|
+
closes: 'Registration Closes 18th October 2023',
|
|
30
|
+
location: 'Forest Field, Portland, OR'
|
|
31
|
+
}
|
|
32
|
+
];
|
|
33
|
+
|
|
34
|
+
export default mockTournaments;
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
import BaseButton from './BaseButton.vue';
|
|
2
|
+
|
|
3
|
+
export default {
|
|
4
|
+
title: 'Base/BaseButton',
|
|
5
|
+
component: BaseButton,
|
|
6
|
+
tags: ['autodocs'],
|
|
7
|
+
argTypes: {
|
|
8
|
+
onClick: {},
|
|
9
|
+
size: {
|
|
10
|
+
control: {
|
|
11
|
+
type: 'select'
|
|
12
|
+
},
|
|
13
|
+
options: ['small', 'medium', 'large']
|
|
14
|
+
},
|
|
15
|
+
iconClass: {
|
|
16
|
+
control: {
|
|
17
|
+
type: 'text'
|
|
18
|
+
},
|
|
19
|
+
defaultValue: ''
|
|
20
|
+
},
|
|
21
|
+
type: {
|
|
22
|
+
control: {
|
|
23
|
+
type: 'select'
|
|
24
|
+
},
|
|
25
|
+
options: ['primary', 'secondary', 'tertiary', 'bright', 'admin']
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
};
|
|
29
|
+
export const Primary = {
|
|
30
|
+
args: {
|
|
31
|
+
type: 'primary',
|
|
32
|
+
label: 'Button'
|
|
33
|
+
}
|
|
34
|
+
};
|
|
35
|
+
export const PrimaryButtonWithIcon = {
|
|
36
|
+
args: {
|
|
37
|
+
type: 'primary',
|
|
38
|
+
label: 'Button',
|
|
39
|
+
iconClass: 'fas fa-check'
|
|
40
|
+
}
|
|
41
|
+
};
|
|
42
|
+
export const Secondary = {
|
|
43
|
+
args: {
|
|
44
|
+
label: 'Button'
|
|
45
|
+
}
|
|
46
|
+
};
|
|
47
|
+
export const HighlightedButton = {
|
|
48
|
+
args: {
|
|
49
|
+
type: 'bright',
|
|
50
|
+
size: 'large',
|
|
51
|
+
label: 'Button'
|
|
52
|
+
}
|
|
53
|
+
};
|
|
54
|
+
export const SmallTertiary = {
|
|
55
|
+
args: {
|
|
56
|
+
type: 'tertiary',
|
|
57
|
+
size: 'small',
|
|
58
|
+
label: 'Button'
|
|
59
|
+
}
|
|
60
|
+
};
|
|
61
|
+
|
|
62
|
+
export const AdminMunuButton = {
|
|
63
|
+
args: {
|
|
64
|
+
type: 'admin',
|
|
65
|
+
size: 'small',
|
|
66
|
+
label: 'Admin Button',
|
|
67
|
+
hoverColor: 'highlightPrimary'
|
|
68
|
+
}
|
|
69
|
+
};
|
|
@@ -0,0 +1,141 @@
|
|
|
1
|
+
<template>
|
|
2
|
+
<button :class="classes" type="button" @click="onClick">
|
|
3
|
+
<i v-if="iconClass" :class="iconClass" class="mr-2 hover:text-highlightedClass"></i>
|
|
4
|
+
<DefaultText :color="textColor" :size="size" :text="label" weight="normal" />
|
|
5
|
+
</button>
|
|
6
|
+
</template>
|
|
7
|
+
|
|
8
|
+
<script>
|
|
9
|
+
import { computed, reactive } from 'vue';
|
|
10
|
+
import DefaultText from '../Text/BaseText.vue';
|
|
11
|
+
|
|
12
|
+
export default {
|
|
13
|
+
name: 'base-button',
|
|
14
|
+
components: { DefaultText },
|
|
15
|
+
props: {
|
|
16
|
+
label: {
|
|
17
|
+
type: String,
|
|
18
|
+
required: true
|
|
19
|
+
},
|
|
20
|
+
iconClass: {
|
|
21
|
+
type: String,
|
|
22
|
+
default: null
|
|
23
|
+
},
|
|
24
|
+
size: {
|
|
25
|
+
type: String,
|
|
26
|
+
validator: function (value) {
|
|
27
|
+
return ['xs', 'small', 'medium', 'large', 'xl'].indexOf(value) !== -1;
|
|
28
|
+
}
|
|
29
|
+
},
|
|
30
|
+
type: {
|
|
31
|
+
type: String,
|
|
32
|
+
default: 'primary',
|
|
33
|
+
validator: function (value) {
|
|
34
|
+
return ['primary', 'secondary', 'tertiary', 'bright', 'admin', 'adminSecondary'].indexOf(value) !== -1;
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
},
|
|
38
|
+
emits: ['click'],
|
|
39
|
+
|
|
40
|
+
setup(props, { emit }) {
|
|
41
|
+
props = reactive(props);
|
|
42
|
+
return {
|
|
43
|
+
textColor: computed(() => {
|
|
44
|
+
switch (props.type) {
|
|
45
|
+
case 'primary':
|
|
46
|
+
return 'text-primary';
|
|
47
|
+
case 'secondary':
|
|
48
|
+
return 'text-secondary';
|
|
49
|
+
case 'tertiary':
|
|
50
|
+
return 'text-tertiary';
|
|
51
|
+
case 'bright':
|
|
52
|
+
return 'text-bright';
|
|
53
|
+
case 'admin':
|
|
54
|
+
return 'text-neutral';
|
|
55
|
+
case 'adminSecondary':
|
|
56
|
+
return 'text-secondary';
|
|
57
|
+
default:
|
|
58
|
+
return 'text-primary';
|
|
59
|
+
}
|
|
60
|
+
}),
|
|
61
|
+
hoverClass: computed(() => {
|
|
62
|
+
switch (props.type) {
|
|
63
|
+
case 'admin':
|
|
64
|
+
return 'hover:text-secondary';
|
|
65
|
+
case 'adminSecondary':
|
|
66
|
+
return 'hover:text-tertiary';
|
|
67
|
+
default:
|
|
68
|
+
return '';
|
|
69
|
+
}
|
|
70
|
+
}),
|
|
71
|
+
hoverColor: computed(() => {
|
|
72
|
+
switch (props.type) {
|
|
73
|
+
case 'admin':
|
|
74
|
+
return 'text-secondary';
|
|
75
|
+
case 'adminSecondary':
|
|
76
|
+
return 'text-tertiary';
|
|
77
|
+
default:
|
|
78
|
+
return null;
|
|
79
|
+
}
|
|
80
|
+
}),
|
|
81
|
+
classes: computed(() => {
|
|
82
|
+
let baseClasses = 'py-2 px-2.5 mx-2 inline-flex ';
|
|
83
|
+
|
|
84
|
+
switch (props.type) {
|
|
85
|
+
case 'primary':
|
|
86
|
+
baseClasses +=
|
|
87
|
+
' items-center gap-2.5 rounded-md text-center shadow border border-skeleton justify-center bg-neutral hover:bg-tertiary';
|
|
88
|
+
break;
|
|
89
|
+
case 'secondary':
|
|
90
|
+
baseClasses +=
|
|
91
|
+
' items-center gap-2.5 rounded-md text-center shadow bg-secondary justify-center hover:bg-primary text-neutral';
|
|
92
|
+
break;
|
|
93
|
+
case 'tertiary':
|
|
94
|
+
baseClasses +=
|
|
95
|
+
' items-center gap-2.5 rounded-md text-center justify-center bg-tertiary hover:bg-primary text-primary';
|
|
96
|
+
break;
|
|
97
|
+
case 'bright':
|
|
98
|
+
baseClasses +=
|
|
99
|
+
' items-center gap-2.5 rounded-md text-center justify-center bg-bright hover:bg-primary text-neutral';
|
|
100
|
+
break;
|
|
101
|
+
case 'admin':
|
|
102
|
+
baseClasses +=
|
|
103
|
+
' items-center rounded-md gap-2.5 text-center bg-primary hover:bg-primary my-1 text-neutral hover:bg-primaryHighlight';
|
|
104
|
+
break;
|
|
105
|
+
case 'adminSecondary':
|
|
106
|
+
baseClasses +=
|
|
107
|
+
' items-center gap-2.5 text-center my-1 border-b border-secondary hover:border-b hover:border-neutral w-11/12 text-neutral';
|
|
108
|
+
break;
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
switch (props.size) {
|
|
112
|
+
case 'xs':
|
|
113
|
+
baseClasses += ' text-xs';
|
|
114
|
+
break;
|
|
115
|
+
case 'small':
|
|
116
|
+
baseClasses += ' text-sm';
|
|
117
|
+
break;
|
|
118
|
+
case 'medium':
|
|
119
|
+
baseClasses += ' text-md';
|
|
120
|
+
break;
|
|
121
|
+
case 'large':
|
|
122
|
+
baseClasses += ' text-lg';
|
|
123
|
+
break;
|
|
124
|
+
case 'xl':
|
|
125
|
+
baseClasses += ' text-xl';
|
|
126
|
+
break;
|
|
127
|
+
default:
|
|
128
|
+
baseClasses += '';
|
|
129
|
+
break;
|
|
130
|
+
}
|
|
131
|
+
|
|
132
|
+
return baseClasses;
|
|
133
|
+
}),
|
|
134
|
+
onClick() {
|
|
135
|
+
console.log('Click!');
|
|
136
|
+
emit('click');
|
|
137
|
+
}
|
|
138
|
+
};
|
|
139
|
+
}
|
|
140
|
+
};
|
|
141
|
+
</script>
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import BaseInput from './BaseInput.vue';
|
|
2
|
+
|
|
3
|
+
export default {
|
|
4
|
+
title: 'Base/Input',
|
|
5
|
+
component: BaseInput,
|
|
6
|
+
tags: ['autodocs'],
|
|
7
|
+
argTypes: {
|
|
8
|
+
placeholder: { control: 'text' },
|
|
9
|
+
value: { control: 'text' }
|
|
10
|
+
}
|
|
11
|
+
};
|
|
12
|
+
|
|
13
|
+
const Template = args => ({
|
|
14
|
+
components: { BaseInput },
|
|
15
|
+
props: Object.keys(args),
|
|
16
|
+
methods: {
|
|
17
|
+
onValueUpdate(newValue) {
|
|
18
|
+
console.log('Value updated:', newValue);
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
});
|
|
22
|
+
|
|
23
|
+
export const Default = {
|
|
24
|
+
args: {
|
|
25
|
+
placeholder: 'Enter text...',
|
|
26
|
+
value: ''
|
|
27
|
+
}
|
|
28
|
+
};
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
<template>
|
|
2
|
+
<input
|
|
3
|
+
class="appearance-none focus:outline-none w-full"
|
|
4
|
+
:placeholder="placeholder"
|
|
5
|
+
v-model="internalValue"
|
|
6
|
+
@input="onInput"
|
|
7
|
+
/>
|
|
8
|
+
</template>
|
|
9
|
+
|
|
10
|
+
<script>
|
|
11
|
+
export default {
|
|
12
|
+
name: 'BaseInput',
|
|
13
|
+
props: {
|
|
14
|
+
placeholder: {
|
|
15
|
+
type: String,
|
|
16
|
+
default: ''
|
|
17
|
+
},
|
|
18
|
+
value: {
|
|
19
|
+
type: String,
|
|
20
|
+
default: ''
|
|
21
|
+
}
|
|
22
|
+
},
|
|
23
|
+
data() {
|
|
24
|
+
return {
|
|
25
|
+
internalValue: this.value,
|
|
26
|
+
timeout: null
|
|
27
|
+
};
|
|
28
|
+
},
|
|
29
|
+
|
|
30
|
+
watch: {
|
|
31
|
+
value(newValue) {
|
|
32
|
+
this.internalValue = newValue;
|
|
33
|
+
}
|
|
34
|
+
},
|
|
35
|
+
methods: {
|
|
36
|
+
onInput() {
|
|
37
|
+
clearTimeout(this.timeout);
|
|
38
|
+
this.timeout = setTimeout(() => {
|
|
39
|
+
this.$emit('update:value', this.internalValue);
|
|
40
|
+
}, 300);
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
};
|
|
44
|
+
</script>
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import BaseTag from './BaseTag.vue';
|
|
2
|
+
|
|
3
|
+
export default {
|
|
4
|
+
title: 'Base/BaseTag',
|
|
5
|
+
component: BaseTag,
|
|
6
|
+
tags: ['autodocs'],
|
|
7
|
+
argTypes: {
|
|
8
|
+
label: {
|
|
9
|
+
control: {
|
|
10
|
+
type: 'text',
|
|
11
|
+
defaultValue: 'Default Label'
|
|
12
|
+
}
|
|
13
|
+
},
|
|
14
|
+
backgroundColor: {
|
|
15
|
+
control: {
|
|
16
|
+
type: 'select'
|
|
17
|
+
},
|
|
18
|
+
options: ['primary', 'secondary', 'tertiary', 'neutral', 'bright'],
|
|
19
|
+
defaultValue: 'primary'
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
};
|
|
23
|
+
|
|
24
|
+
export const Basic = {
|
|
25
|
+
args: {
|
|
26
|
+
label: 'default tag',
|
|
27
|
+
backgroundColor: 'primary'
|
|
28
|
+
}
|
|
29
|
+
};
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
<template>
|
|
2
|
+
<div :class="classes">{{ label }}</div>
|
|
3
|
+
</template>
|
|
4
|
+
|
|
5
|
+
<script>
|
|
6
|
+
import { computed, reactive } from 'vue';
|
|
7
|
+
|
|
8
|
+
export default {
|
|
9
|
+
name: 'base-tag',
|
|
10
|
+
|
|
11
|
+
props: {
|
|
12
|
+
label: {
|
|
13
|
+
type: String,
|
|
14
|
+
required: true
|
|
15
|
+
},
|
|
16
|
+
backgroundColor: {
|
|
17
|
+
type: String,
|
|
18
|
+
validator: function (value) {
|
|
19
|
+
return ['primary', 'secondary', 'tertiary', 'neutral', 'bright'].indexOf(value) !== -1;
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
},
|
|
23
|
+
|
|
24
|
+
setup(props) {
|
|
25
|
+
props = reactive(props);
|
|
26
|
+
|
|
27
|
+
return {
|
|
28
|
+
classes: computed(() => {
|
|
29
|
+
let baseClasses = 'cursor-pointer inline-block py-1 px-3 my-2 ml-3 text-xs font-normal rounded-full text-neutral';
|
|
30
|
+
|
|
31
|
+
switch (props.backgroundColor) {
|
|
32
|
+
case 'primary':
|
|
33
|
+
baseClasses += ' bg-primary';
|
|
34
|
+
break;
|
|
35
|
+
case 'secondary':
|
|
36
|
+
baseClasses += ' bg-secondary';
|
|
37
|
+
break;
|
|
38
|
+
case 'tertiary':
|
|
39
|
+
baseClasses += ' bg-tertiary';
|
|
40
|
+
break;
|
|
41
|
+
case 'neutral':
|
|
42
|
+
baseClasses += ' bg-neutral';
|
|
43
|
+
break;
|
|
44
|
+
case 'bright':
|
|
45
|
+
baseClasses += ' bg-bright';
|
|
46
|
+
break;
|
|
47
|
+
default:
|
|
48
|
+
baseClasses += ' bg-primary';
|
|
49
|
+
break;
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
return baseClasses;
|
|
53
|
+
})
|
|
54
|
+
};
|
|
55
|
+
}
|
|
56
|
+
};
|
|
57
|
+
</script>
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
import BaseText from './BaseText.vue';
|
|
2
|
+
export default {
|
|
3
|
+
title: 'Base/BaseText',
|
|
4
|
+
component: BaseText,
|
|
5
|
+
tags: ['autodocs'],
|
|
6
|
+
argTypes: {
|
|
7
|
+
text: {
|
|
8
|
+
control: {
|
|
9
|
+
type: 'text',
|
|
10
|
+
defaultValue: 'Default Text'
|
|
11
|
+
}
|
|
12
|
+
},
|
|
13
|
+
size: {
|
|
14
|
+
control: {
|
|
15
|
+
type: 'select'
|
|
16
|
+
},
|
|
17
|
+
options: ['xs', 'small', 'medium', 'large', 'xl', '2xl', '3xl'],
|
|
18
|
+
defaultValue: 'medium'
|
|
19
|
+
},
|
|
20
|
+
weight: {
|
|
21
|
+
control: {
|
|
22
|
+
type: 'select'
|
|
23
|
+
},
|
|
24
|
+
options: ['light', 'normal', 'medium', 'semi-bold', 'bold', 'extra-bold'],
|
|
25
|
+
defaultValue: 'normal'
|
|
26
|
+
},
|
|
27
|
+
color: {
|
|
28
|
+
control: {
|
|
29
|
+
type: 'select'
|
|
30
|
+
},
|
|
31
|
+
options: ['neutral', 'quaternary', 'tertiary', 'secondary', 'primary', 'bright'],
|
|
32
|
+
defaultValue: 'primary'
|
|
33
|
+
},
|
|
34
|
+
hoverColor: {
|
|
35
|
+
control: {
|
|
36
|
+
type: 'select'
|
|
37
|
+
},
|
|
38
|
+
options: [
|
|
39
|
+
'primary',
|
|
40
|
+
'quaternary',
|
|
41
|
+
'secondary',
|
|
42
|
+
'tertiary',
|
|
43
|
+
'neutral',
|
|
44
|
+
'bright',
|
|
45
|
+
'none'
|
|
46
|
+
],
|
|
47
|
+
defaultValue: 'none'
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
};
|
|
51
|
+
|
|
52
|
+
export const Large = {
|
|
53
|
+
args: {
|
|
54
|
+
size: 'large',
|
|
55
|
+
text: 'Large Text'
|
|
56
|
+
}
|
|
57
|
+
};
|
|
58
|
+
|
|
59
|
+
export const Medium = {
|
|
60
|
+
args: {
|
|
61
|
+
size: 'medium',
|
|
62
|
+
text: 'Medium Text'
|
|
63
|
+
}
|
|
64
|
+
};
|
|
65
|
+
export const Small = {
|
|
66
|
+
args: {
|
|
67
|
+
size: 'small',
|
|
68
|
+
text: 'Small Text'
|
|
69
|
+
}
|
|
70
|
+
};
|
|
71
|
+
|
|
72
|
+
export const TextWithHover = {
|
|
73
|
+
args: {
|
|
74
|
+
...Large.args,
|
|
75
|
+
hoverColor: 'bright'
|
|
76
|
+
}
|
|
77
|
+
};
|