@dcrackel/hematournamentui 1.0.1 → 1.0.3

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.
@@ -1,10 +1,10 @@
1
- import { withDirectives as I, openBlock as s, createElementBlock as c, vModelText as Q, reactive as p, computed as m, normalizeClass as h, toDisplayString as k, resolveComponent as g, createCommentVNode as w, createVNode as d, createElementVNode as i, normalizeStyle as D, Fragment as B, renderList as x, createBlock as f, resolveDynamicComponent as E } from "vue";
1
+ import { withDirectives as I, openBlock as s, createElementBlock as c, vModelText as Q, reactive as b, computed as m, normalizeClass as h, toDisplayString as k, resolveComponent as g, createCommentVNode as w, createVNode as d, createElementVNode as i, normalizeStyle as D, Fragment as x, renderList as B, createBlock as f, resolveDynamicComponent as E } from "vue";
2
2
  const A = (e, t) => {
3
3
  const r = e.__vccOpts || e;
4
4
  for (const [o, u] of t)
5
5
  r[o] = u;
6
6
  return r;
7
- }, S = {
7
+ }, v = {
8
8
  name: "BaseInput",
9
9
  props: {
10
10
  placeholder: {
@@ -34,23 +34,24 @@ const A = (e, t) => {
34
34
  }, 300);
35
35
  }
36
36
  }
37
- }, Y = ["placeholder"];
38
- function v(e, t, r, o, u, n) {
37
+ }, S = ["placeholder"];
38
+ function Y(e, t, r, o, u, n) {
39
39
  return I((s(), c("input", {
40
40
  class: "appearance-none focus:outline-none w-full text-sm",
41
41
  placeholder: r.placeholder,
42
42
  "onUpdate:modelValue": t[0] || (t[0] = (a) => u.internalValue = a),
43
43
  onInput: t[1] || (t[1] = (...a) => n.onInput && n.onInput(...a))
44
- }, null, 40, Y)), [
44
+ }, null, 40, S)), [
45
45
  [Q, u.internalValue]
46
46
  ]);
47
47
  }
48
- const M = /* @__PURE__ */ A(S, [["render", v]]), G = {
48
+ const M = /* @__PURE__ */ A(v, [["render", Y]]), G = {
49
49
  name: "BaseText",
50
50
  props: {
51
51
  text: {
52
52
  type: String,
53
- required: !0
53
+ required: !0,
54
+ default: ""
54
55
  },
55
56
  weight: {
56
57
  type: String,
@@ -90,7 +91,7 @@ const M = /* @__PURE__ */ A(S, [["render", v]]), G = {
90
91
  }
91
92
  },
92
93
  setup(e) {
93
- return e = p(e), {
94
+ return e = b(e), {
94
95
  classes: m(() => {
95
96
  let t = "inline-block font-sans";
96
97
  switch (e.color) {
@@ -198,9 +199,9 @@ function q(e, t, r, o, u, n) {
198
199
  class: h(o.classes)
199
200
  }, k(r.text), 3);
200
201
  }
201
- const b = /* @__PURE__ */ A(G, [["render", q]]), U = {
202
+ const p = /* @__PURE__ */ A(G, [["render", q]]), U = {
202
203
  name: "base-button",
203
- components: { DefaultText: b },
204
+ components: { DefaultText: p },
204
205
  props: {
205
206
  label: {
206
207
  type: String,
@@ -226,7 +227,7 @@ const b = /* @__PURE__ */ A(G, [["render", q]]), U = {
226
227
  },
227
228
  emits: ["click"],
228
229
  setup(e, { emit: t }) {
229
- return e = p(e), {
230
+ return e = b(e), {
230
231
  textColor: m(() => {
231
232
  switch (e.type) {
232
233
  case "primary":
@@ -240,7 +241,7 @@ const b = /* @__PURE__ */ A(G, [["render", q]]), U = {
240
241
  case "admin":
241
242
  return "neutral";
242
243
  case "adminSecondary":
243
- return "secondary";
244
+ return "neutral";
244
245
  default:
245
246
  return "primary";
246
247
  }
@@ -266,25 +267,25 @@ const b = /* @__PURE__ */ A(G, [["render", q]]), U = {
266
267
  }
267
268
  }),
268
269
  classes: m(() => {
269
- let r = "py-2 px-2.5 mx-2 inline-flex ";
270
+ let r = "px-2.5 mx-2 inline-flex ";
270
271
  switch (e.type) {
271
272
  case "primary":
272
- r += " items-center gap-2.5 rounded-md text-center shadow border border-skeleton justify-center bg-neutral hover:bg-tertiary";
273
+ r += " py-0.5 items-center gap-2.5 rounded-md text-center shadow border border-dropdownSelect justify-center bg-neutral hover:bg-tertiary";
273
274
  break;
274
275
  case "secondary":
275
- r += " items-center gap-2.5 rounded-md text-center shadow bg-secondary justify-center hover:bg-primary text-neutral";
276
+ r += " py-0.5 items-center gap-2.5 rounded-md text-center shadow bg-secondary justify-center hover:bg-primary text-neutral";
276
277
  break;
277
278
  case "tertiary":
278
- r += " items-center gap-2.5 rounded-md text-center justify-center bg-tertiary hover:bg-primary text-primary";
279
+ r += " py-0.5 items-center gap-2.5 rounded-md text-center justify-center bg-tertiary hover:bg-primary text-primary";
279
280
  break;
280
281
  case "bright":
281
- r += " items-center gap-2.5 rounded-md text-center justify-center bg-bright hover:bg-primary text-neutral";
282
+ r += " py-0.5 items-center gap-2.5 rounded-md text-center justify-center bg-bright hover:bg-primary text-neutral";
282
283
  break;
283
284
  case "admin":
284
- r += " items-center rounded-md gap-2.5 text-center bg-primary hover:bg-primary my-1 text-neutral hover:bg-primaryHighlight";
285
+ r += " py-2 items-center rounded-md gap-2.5 text-center bg-primary hover:bg-primary my-1 text-neutral hover:bg-primaryHighlight";
285
286
  break;
286
287
  case "adminSecondary":
287
- r += " items-center gap-2.5 text-center my-1 border-b border-secondary hover:border-b hover:border-neutral w-11/12 text-neutral";
288
+ r += " py-0.5 items-center gap-2.5 text-center my-1 pb-0.5 border-b border-secondary hover:border-b hover:border-neutral w-11/12 text-neutral";
288
289
  break;
289
290
  }
290
291
  switch (e.size) {
@@ -349,7 +350,7 @@ const _ = /* @__PURE__ */ A(U, [["render", V]]), $ = {
349
350
  }
350
351
  },
351
352
  setup(e) {
352
- return e = p(e), {
353
+ return e = b(e), {
353
354
  classes: m(() => {
354
355
  let t = "cursor-pointer inline-block py-1 px-3 my-2 ml-3 text-xs font-normal rounded-full text-neutral";
355
356
  switch (e.backgroundColor) {
@@ -404,7 +405,7 @@ const W = /* @__PURE__ */ A($, [["render", T]]), C = "data:image/png;base64,iVBO
404
405
  }
405
406
  }
406
407
  }, H = { class: "rounded-t-xl w-full" }, J = { class: "flex flex-row" };
407
- function F(e, t, r, o, u, n) {
408
+ function j(e, t, r, o, u, n) {
408
409
  const a = g("BaseTag");
409
410
  return s(), c("div", H, [
410
411
  i("div", {
@@ -412,7 +413,7 @@ function F(e, t, r, o, u, n) {
412
413
  class: "h-36 w-full flex flex-col justify-end rounded-t-xl bg-cover bg-no-repeat bg-center"
413
414
  }, [
414
415
  i("div", J, [
415
- (s(!0), c(B, null, x(r.tags, (l) => (s(), f(a, {
416
+ (s(!0), c(x, null, B(r.tags, (l) => (s(), f(a, {
416
417
  key: l,
417
418
  label: l
418
419
  }, null, 8, ["label"]))), 128))
@@ -420,11 +421,11 @@ function F(e, t, r, o, u, n) {
420
421
  ], 4)
421
422
  ]);
422
423
  }
423
- const j = /* @__PURE__ */ A(K, [["render", F]]), P = {
424
+ const F = /* @__PURE__ */ A(K, [["render", j]]), O = {
424
425
  name: "tournament-card-details",
425
426
  components: {
426
427
  BaseButton: _,
427
- BaseText: b
428
+ BaseText: p
428
429
  },
429
430
  props: {
430
431
  detail: {
@@ -438,10 +439,10 @@ const j = /* @__PURE__ */ A(K, [["render", F]]), P = {
438
439
  })
439
440
  }
440
441
  }
441
- }, O = { class: "flex flex-col w-full pt-4 pb-3 px-3" }, z = { class: "mt-4 flex flex-col" }, L = { class: "flex flex-row w-full justify-end" };
442
+ }, P = { class: "flex flex-col w-full pt-4 pb-3 px-3" }, z = { class: "mt-4 flex flex-col" }, L = { class: "flex flex-row w-full justify-end" };
442
443
  function N(e, t, r, o, u, n) {
443
444
  const a = g("BaseText"), l = g("BaseButton");
444
- return s(), c("div", O, [
445
+ return s(), c("div", P, [
445
446
  d(a, {
446
447
  text: r.detail.name,
447
448
  color: "primary",
@@ -477,10 +478,10 @@ function N(e, t, r, o, u, n) {
477
478
  ])
478
479
  ]);
479
480
  }
480
- const Z = /* @__PURE__ */ A(P, [["render", N]]), R = {
481
+ const Z = /* @__PURE__ */ A(O, [["render", N]]), R = {
481
482
  name: "TournamentCard",
482
483
  components: {
483
- TournamentHeader: j,
484
+ TournamentHeader: F,
484
485
  TournamentDetail: Z
485
486
  },
486
487
  props: {
@@ -511,15 +512,20 @@ function ee(e, t, r, o, u, n) {
511
512
  }
512
513
  const te = /* @__PURE__ */ A(R, [["render", ee]]), re = {
513
514
  name: "DropDownMenu",
514
- components: { BaseText: b },
515
+ components: { BaseText: p },
515
516
  props: {
516
517
  label: {
517
518
  type: String
518
519
  },
519
520
  items: {
520
- type: Array
521
+ type: Array,
522
+ validator: (e) => e.every((t) => typeof t.text == "string")
521
523
  },
522
- selectedItem: null
524
+ selectedItem: {
525
+ type: Object,
526
+ default: () => ({ text: "" }),
527
+ validator: (e) => typeof e.text == "string"
528
+ }
523
529
  },
524
530
  data: () => ({
525
531
  isDropDownOpen: !1
@@ -561,7 +567,7 @@ function ie(e, t, r, o, u, n) {
561
567
  le
562
568
  ]),
563
569
  e.isDropDownOpen ? (s(), c("div", se, [
564
- (s(!0), c(B, null, x(r.items, (l) => (s(), c("a", {
570
+ (s(!0), c(x, null, B(r.items, (l) => (s(), c("a", {
565
571
  key: l.id,
566
572
  onClick: (y) => n.handleClick(l),
567
573
  class: "hover:bg-dropdownSelect py-1 px-2 border-b border-dropdownSelect last:border-0"
@@ -633,7 +639,7 @@ const ye = /* @__PURE__ */ A(de, [["render", me]]), he = {
633
639
  name: "GridContainer",
634
640
  components: {
635
641
  FilterAndSortBar: ye,
636
- BaseText: b,
642
+ BaseText: p,
637
643
  TournamentCard: te
638
644
  },
639
645
  props: {
@@ -693,11 +699,11 @@ const ye = /* @__PURE__ */ A(de, [["render", me]]), he = {
693
699
  this.sortCriteria = e.text;
694
700
  }
695
701
  }
696
- }, Be = { class: "border border-dropdownSelect rounded-lg p-9 bg-white" }, xe = { class: "w-full text-center mb-9" }, be = { class: "my-4" }, pe = { class: "grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 2xl:grid-cols-4 gap-6 w-full" };
702
+ }, xe = { class: "border border-dropdownSelect rounded-lg p-9 bg-neutral" }, Be = { class: "w-full text-center mb-9" }, pe = { class: "my-4" }, be = { class: "grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 3xl:grid-cols-4 gap-6 w-full" };
697
703
  function fe(e, t, r, o, u, n) {
698
704
  const a = g("BaseText"), l = g("FilterAndSortBar");
699
- return s(), c("div", Be, [
700
- i("h1", xe, [
705
+ return s(), c("div", xe, [
706
+ i("h1", Be, [
701
707
  d(a, {
702
708
  color: "primaryHighlight",
703
709
  size: "2xl",
@@ -705,7 +711,7 @@ function fe(e, t, r, o, u, n) {
705
711
  weight: "normal"
706
712
  })
707
713
  ]),
708
- i("div", be, [
714
+ i("div", pe, [
709
715
  d(l, {
710
716
  items: r.dropdownItems,
711
717
  label: r.label,
@@ -714,8 +720,8 @@ function fe(e, t, r, o, u, n) {
714
720
  onSort: n.handleSort
715
721
  }, null, 8, ["items", "label", "selectedItem", "onFilterbar", "onSort"])
716
722
  ]),
717
- i("div", pe, [
718
- (s(!0), c(B, null, x(n.filteredItems, (y) => (s(), c("div", {
723
+ i("div", be, [
724
+ (s(!0), c(x, null, B(n.filteredItems, (y) => (s(), c("div", {
719
725
  key: y.id
720
726
  }, [
721
727
  (s(), f(E(r.component), { detail: y }, null, 8, ["detail"]))
@@ -723,7 +729,7 @@ function fe(e, t, r, o, u, n) {
723
729
  ])
724
730
  ]);
725
731
  }
726
- const Se = /* @__PURE__ */ A(he, [["render", fe]]), Ce = {
732
+ const ve = /* @__PURE__ */ A(he, [["render", fe]]), Ce = {
727
733
  name: "AdminLeftMenu",
728
734
  components: { BaseButton: _ },
729
735
  props: {
@@ -742,7 +748,8 @@ const Se = /* @__PURE__ */ A(he, [["render", fe]]), Ce = {
742
748
  /* @__PURE__ */ i("div", { class: "ml-8" }, [
743
749
  /* @__PURE__ */ i("img", {
744
750
  class: "w-32",
745
- src: "https://ferrotas.com/assets/ferrotas-white-small-720502db.png"
751
+ src: "https://ferrotas.com/assets/ferrotas-white-small-720502db.png",
752
+ alt: "logo"
746
753
  })
747
754
  ])
748
755
  ])
@@ -752,7 +759,7 @@ function De(e, t, r, o, u, n) {
752
759
  return s(), c("div", ke, [
753
760
  we,
754
761
  i("section", _e, [
755
- (s(!0), c(B, null, x(r.buttons, (l) => (s(), f(a, {
762
+ (s(!0), c(x, null, B(r.buttons, (l) => (s(), f(a, {
756
763
  label: l.label,
757
764
  iconClass: "fa-solid fa-trophy text-white",
758
765
  type: "admin",
@@ -778,17 +785,17 @@ function De(e, t, r, o, u, n) {
778
785
  ])
779
786
  ]);
780
787
  }
781
- const Ye = /* @__PURE__ */ A(Ce, [["render", De]]);
788
+ const Se = /* @__PURE__ */ A(Ce, [["render", De]]);
782
789
  export {
783
- Ye as AdminLeftMenu,
790
+ Se as AdminLeftMenu,
784
791
  _ as BaseButton,
785
792
  M as BaseInput,
786
793
  W as BaseTag,
787
- b as BaseText,
794
+ p as BaseText,
788
795
  ce as DropDownMenu,
789
796
  ye as FilterAndSortBar,
790
- Se as GridContainer,
797
+ ve as GridContainer,
791
798
  te as TournamentCard,
792
799
  Z as TournamentCardDetails,
793
- j as TournamentCardHeader
800
+ F as TournamentCardHeader
794
801
  };
@@ -1 +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=(t,r)=>{const a=t.__vccOpts||t;for(const[s,i]of r)a[s]=i;return a},b={name:"BaseInput",props:{placeholder:{type:String,default:""},value:{type:String,default:""}},data(){return{internalValue:this.value,timeout:null}},watch:{value(t){this.internalValue=t}},methods:{onInput(){clearTimeout(this.timeout),this.timeout=setTimeout(()=>{console.log("this.internalValue",this.internalValue),this.$emit("update:value",this.internalValue)},300)}}},C=["placeholder"];function w(t,r,a,s,i,l){return e.withDirectives((e.openBlock(),e.createElementBlock("input",{class:"appearance-none focus:outline-none w-full text-sm",placeholder:a.placeholder,"onUpdate:modelValue":r[0]||(r[0]=n=>i.internalValue=n),onInput:r[1]||(r[1]=(...n)=>l.onInput&&l.onInput(...n))},null,40,C)),[[e.vModelText,i.internalValue]])}const B=d(b,[["render",w]]),_={name:"BaseText",props:{text:{type:String,required:!0},weight:{type:String,default:"normal",validator:function(t){return["light","normal","medium","semi-bold","bold","extra-bold"].indexOf(t)!==-1}},size:{type:String,default:"small",validator:function(t){return["xs","small","medium","large","xl","2xl","3xl"].indexOf(t)!==-1}},color:{type:String,default:"primary",validator:function(t){return["neutral","quaternary","tertiary","secondary","primary","bright","primaryHighlight"].indexOf(t)!==-1}},hoverColor:{type:String,default:"none",validator:function(t){return["primary","secondary","tertiary","quaternary","neutral","bright","none"].indexOf(t)!==-1}}},setup(t){return t=e.reactive(t),{classes:e.computed(()=>{let r="inline-block font-sans";switch(t.color){case"neutral":r+=" text-neutral";break;case"tertiary":r+=" text-tertiary";break;case"secondary":r+=" text-secondary";break;case"quaternary":r+=" text-quaternary";break;case"primary":r+=" text-primary";break;case"primaryHighlight":r+=" text-primaryHighlight";break;case"bright":r+=" text-bright";break}switch(t.hoverColor){case"neutral":r+=" hover:text-neutral";break;case"tertiary":r+=" hover:text-tertiary";break;case"secondary":r+=" hover:text-secondary";break;case"quaternary":r+=" hover:text-quaternary";break;case"primary":r+=" hover:text-primary";break;case"bright":r+=" hover:text-bright";break;case"none":r+="";break}switch(t.weight){case"light":r+=" font-light";break;case"normal":r+=" font-normal";break;case"medium":r+=" font-medium";break;case"semi-bold":r+=" font-semibold";break;case"bold":r+=" font-bold";break;case"extra-bold":r+=" font-extrabold";break;default:r+=" font-normal";break}switch(t.size){case"xs":r+=" text-xs";break;case"small":r+=" text-sm";break;case"medium":r+=" text-md";break;case"large":r+=" text-lg";break;case"xl":r+=" text-xl";break;case"2xl":r+=" text-2xl";break;case"3xl":r+=" text-3xl";break;default:r+=" text-sm";break}return r})}}};function I(t,r,a,s,i,l){return e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(s.classes)},e.toDisplayString(a.text),3)}const m=d(_,[["render",I]]),E={name:"base-button",components:{DefaultText:m},props:{label:{type:String,required:!0},iconClass:{type:String,default:null},size:{type:String,validator:function(t){return["xs","small","medium","large","xl"].indexOf(t)!==-1}},type:{type:String,default:"primary",validator:function(t){return["primary","secondary","tertiary","bright","admin","adminSecondary"].indexOf(t)!==-1}}},emits:["click"],setup(t,{emit:r}){return t=e.reactive(t),{textColor:e.computed(()=>{switch(t.type){case"primary":return"primary";case"secondary":return"secondary";case"tertiary":return"tertiary";case"bright":return"bright";case"admin":return"neutral";case"adminSecondary":return"secondary";default:return"primary"}}),hoverClass:e.computed(()=>{switch(t.type){case"admin":return"hover:text-secondary";case"adminSecondary":return"hover:text-tertiary";default:return""}}),hoverColor:e.computed(()=>{switch(t.type){case"admin":return"text-secondary";case"adminSecondary":return"text-tertiary";default:return null}}),classes:e.computed(()=>{let a="py-2 px-2.5 mx-2 inline-flex ";switch(t.type){case"primary":a+=" items-center gap-2.5 rounded-md text-center shadow border border-skeleton justify-center bg-neutral hover:bg-tertiary";break;case"secondary":a+=" items-center gap-2.5 rounded-md text-center shadow bg-secondary justify-center hover:bg-primary text-neutral";break;case"tertiary":a+=" items-center gap-2.5 rounded-md text-center justify-center bg-tertiary hover:bg-primary text-primary";break;case"bright":a+=" items-center gap-2.5 rounded-md text-center justify-center bg-bright hover:bg-primary text-neutral";break;case"admin":a+=" items-center rounded-md gap-2.5 text-center bg-primary hover:bg-primary my-1 text-neutral hover:bg-primaryHighlight";break;case"adminSecondary":a+=" 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(t.size){case"xs":a+=" text-xs";break;case"small":a+=" text-sm";break;case"medium":a+=" text-md";break;case"large":a+=" text-lg";break;case"xl":a+=" text-xl";break;default:a+="";break}return a}),onClick(){console.log("Click!"),r("click")}}}};function Q(t,r,a,s,i,l){const n=e.resolveComponent("DefaultText");return e.openBlock(),e.createElementBlock("button",{class:e.normalizeClass(s.classes),type:"button",onClick:r[0]||(r[0]=(...o)=>s.onClick&&s.onClick(...o))},[a.iconClass?(e.openBlock(),e.createElementBlock("i",{key:0,class:e.normalizeClass([a.iconClass,"mr-2 hover:text-highlightedClass"])},null,2)):e.createCommentVNode("",!0),e.createVNode(n,{color:s.textColor,size:a.size,text:a.label,weight:"normal"},null,8,["color","size","text"])],2)}const A=d(E,[["render",Q]]),D={name:"base-tag",props:{label:{type:String,required:!0},backgroundColor:{type:String,validator:function(t){return["primary","secondary","tertiary","neutral","bright"].indexOf(t)!==-1}}},setup(t){return t=e.reactive(t),{classes:e.computed(()=>{let r="cursor-pointer inline-block py-1 px-3 my-2 ml-3 text-xs font-normal rounded-full text-neutral";switch(t.backgroundColor){case"primary":r+=" bg-primary";break;case"secondary":r+=" bg-secondary";break;case"tertiary":r+=" bg-tertiary";break;case"neutral":r+=" bg-neutral";break;case"bright":r+=" bg-bright";break;default:r+=" bg-primary";break}return r})}}};function V(t,r,a,s,i,l){return e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(s.classes)},e.toDisplayString(a.label),3)}const y=d(D,[["render",V]]),h="data:image/png;base64,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",S={name:"tournament-card-header",components:{BaseTag:y},props:{artwork:{type:String,required:!0,default:h},tags:{type:Array,default:()=>[]}},computed:{backgroundStyle(){return`background-image: url('${this.artwork||h}');`}}},Y={class:"rounded-t-xl w-full"},M={class:"flex flex-row"};function G(t,r,a,s,i,l){const n=e.resolveComponent("BaseTag");return e.openBlock(),e.createElementBlock("div",Y,[e.createElementVNode("div",{style:e.normalizeStyle(l.backgroundStyle),class:"h-36 w-full flex flex-col justify-end rounded-t-xl bg-cover bg-no-repeat bg-center"},[e.createElementVNode("div",M,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(a.tags,o=>(e.openBlock(),e.createBlock(n,{key:o,label:o},null,8,["label"]))),128))])],4)])}const p=d(S,[["render",G]]),q={name:"tournament-card-details",components:{BaseButton:A,BaseText:m},props:{detail:{type:Object,required:!0,default:()=>({name:"",date:"",closes:"",location:""})}}},U={class:"flex flex-col w-full pt-4 pb-3 px-3"},N={class:"mt-4 flex flex-col"},T={class:"flex flex-row w-full justify-end"};function $(t,r,a,s,i,l){const n=e.resolveComponent("BaseText"),o=e.resolveComponent("BaseButton");return e.openBlock(),e.createElementBlock("div",U,[e.createVNode(n,{text:a.detail.name,color:"primary",size:"xl",weight:"semi-bold"},null,8,["text"]),e.createVNode(n,{text:a.detail.location,color:"primary",size:"small",weight:"normal"},null,8,["text"]),e.createElementVNode("div",N,[e.createVNode(n,{text:`${a.detail.date}`,color:"primaryHighlight",size:"small",weight:"light"},null,8,["text"]),e.createVNode(n,{text:`${a.detail.closes}`,color:"primaryHighlight",size:"small",weight:"light"},null,8,["text"])]),e.createElementVNode("div",T,[e.createVNode(o,{label:"Edit",class:"mt-2",primary:""})])])}const u=d(q,[["render",$]]),W={name:"TournamentCard",components:{TournamentHeader:p,TournamentDetail:u},props:{detail:{type:Object,required:!0,default:()=>({artwork:"",tags:[],name:"",description:"",date:"",closes:"",location:""})}}},K={class:"rounded-xl w-72 shadow"};function H(t,r,a,s,i,l){const n=e.resolveComponent("TournamentHeader"),o=e.resolveComponent("TournamentDetail");return e.openBlock(),e.createElementBlock("div",K,[e.createVNode(n,{artwork:a.detail.artwork,tags:a.detail.tags},null,8,["artwork","tags"]),e.createVNode(o,{detail:a.detail},null,8,["detail"])])}const x=d(W,[["render",H]]),F={name:"DropDownMenu",components:{BaseText:m},props:{label:{type:String},items:{type:Array},selectedItem:null},data:()=>({isDropDownOpen:!1}),methods:{handleClick(t){this.isDropDownOpen=!1,this.$emit("update:selectedItem",t)},handleDropDown(){this.isDropDownOpen=!this.isDropDownOpen}}},j={class:"flex flex-row"},J={class:"mr-2 pt-1"},L=e.createElementVNode("i",{class:"fa-solid fa-chevron-down text-xs"},null,-1),P={key:0,class:"flex flex-col w-32 shadow mt-2 z-10 rounded-xl py-1 absolute bg-white"},z=["onClick"];function O(t,r,a,s,i,l){const n=e.resolveComponent("BaseText");return e.openBlock(),e.createElementBlock("div",j,[e.createElementVNode("span",J,[e.createVNode(n,{text:a.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:r[0]||(r[0]=o=>l.handleDropDown())},[e.createVNode(n,{text:a.selectedItem.text,color:"secondary",size:"sm",weight:"normal"},null,8,["text"]),L]),t.isDropDownOpen?(e.openBlock(),e.createElementBlock("div",P,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(a.items,o=>(e.openBlock(),e.createElementBlock("a",{key:o.id,onClick:g=>l.handleClick(o),class:"hover:bg-dropdownSelect py-1 px-2 border-b border-dropdownSelect last:border-0"},[e.createVNode(n,{text:o.text,color:"primary",size:"xs",weight:"normal"},null,8,["text"])],8,z))),128))])):e.createCommentVNode("",!0)])])}const f=d(F,[["render",O]]),Z={name:"FilterAndSortBar",components:{DropDownMenu:f,BaseInput:B},data(){return{filterText:""}},props:{label:{type:String},items:{type:Array,default:()=>[]},selectedItem:null},methods:{handleFilter(t){this.$emit("filterbar",t)},handleSelectedItem(t){this.$emit("sort",t),console.log("handleSelectedItem",t)}}},R={class:"flex flex-row w-full justify-between"},X={class:"rounded-lg shadow px-2 py-1 w-1/2 flex flex-row mt-0.5"},v=e.createElementVNode("i",{class:"fa-solid fa-magnifying-glass text-primaryHighlight w-6 mt-1"},null,-1);function ee(t,r,a,s,i,l){const n=e.resolveComponent("BaseInput"),o=e.resolveComponent("DropDownMenu");return e.openBlock(),e.createElementBlock("section",R,[e.createElementVNode("div",X,[v,e.createVNode(n,{placeholder:"Search on Name, Location, or Date",class:"text-quaternary",value:i.filterText,"onUpdate:value":l.handleFilter},null,8,["value","onUpdate:value"])]),e.createElementVNode("div",null,[e.createVNode(o,{label:a.label,items:a.items,selectedItem:a.selectedItem,"onUpdate:selectedItem":l.handleSelectedItem},null,8,["label","items","selectedItem","onUpdate:selectedItem"])])])}const k=d(Z,[["render",ee]]),te={name:"GridContainer",components:{FilterAndSortBar:k,BaseText:m,TournamentCard:x},props:{items:{type:Array,default:()=>[]},component:{type:String,required:!0},label:{type:String},dropdownItems:{type:Array,default:()=>[]},selectedItem:null},data(){return{filterOn:"",sortCriteria:"Date"}},computed:{filteredItems(){let t=this.items;if(this.filterOn.trim()){const r=this.filterOn.toLowerCase();t=t.filter(a=>Object.values(a).some(s=>typeof s=="string"&&s.toLowerCase().includes(r)))}switch(this.sortCriteria){case"Date":t=[...t].sort((r,a)=>new Date(r.date)-new Date(a.date));break;case"Name":t=[...t].sort((r,a)=>r.name.localeCompare(a.name));break;case"Location":t=[...t].sort((r,a)=>r.location.localeCompare(a.location));break}return t}},methods:{handleFilter(t){this.filterOn=t},handleSort(t){this.sortCriteria=t.text}}},re={class:"border border-dropdownSelect rounded-lg p-9 bg-white"},ae={class:"w-full text-center mb-9"},ne={class:"my-4"},le={class:"grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 2xl:grid-cols-4 gap-6 w-full"};function oe(t,r,a,s,i,l){const n=e.resolveComponent("BaseText"),o=e.resolveComponent("FilterAndSortBar");return e.openBlock(),e.createElementBlock("div",re,[e.createElementVNode("h1",ae,[e.createVNode(n,{color:"primaryHighlight",size:"2xl",text:"Upcoming Tournaments",weight:"normal"})]),e.createElementVNode("div",ne,[e.createVNode(o,{items:a.dropdownItems,label:a.label,selectedItem:a.selectedItem,onFilterbar:l.handleFilter,onSort:l.handleSort},null,8,["items","label","selectedItem","onFilterbar","onSort"])]),e.createElementVNode("div",le,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(l.filteredItems,g=>(e.openBlock(),e.createElementBlock("div",{key:g.id},[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(a.component),{detail:g},null,8,["detail"]))]))),128))])])}const se=d(te,[["render",oe]]),ce={name:"AdminLeftMenu",components:{BaseButton:A},props:{buttons:{type:Array,default:()=>[]}},methods:{handleButtonClick(t){this.$emit("button-click",t)}}},ie={class:"bg-secondary w-64 h-screen flex flex-col justify-between"},de=e.createElementVNode("section",{class:"h-28 border-b-2 border-neutral"},[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),me={class:"flex flex-col p-2 h-full"},ge={class:"flex flex-col justify-end p-2 h-full"},Ae={class:"border-t-2 border-neutral pt-2"};function Be(t,r,a,s,i,l){const n=e.resolveComponent("BaseButton");return e.openBlock(),e.createElementBlock("div",ie,[de,e.createElementVNode("section",me,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(a.buttons,o=>(e.openBlock(),e.createBlock(n,{label:o.label,iconClass:"fa-solid fa-trophy text-white",type:"admin",hover:"admin",onClick:g=>l.handleButtonClick(o)},null,8,["label","onClick"]))),256))]),e.createElementVNode("section",ge,[e.createElementVNode("div",Ae,[e.createVNode(n,{iconClass:"fa-solid fa-circle-user text-textSecondary",label:"Account",type:"adminSecondary",onClick:r[0]||(r[0]=o=>l.handleButtonClick(t.button))}),e.createVNode(n,{iconClass:"fa-solid fa-right-to-bracket fa-rotate-180 text-textSecondary",label:"Log Out",type:"adminSecondary",onClick:r[1]||(r[1]=o=>l.handleButtonClick(t.button))})])])])}const ye=d(ce,[["render",Be]]);c.AdminLeftMenu=ye,c.BaseButton=A,c.BaseInput=B,c.BaseTag=y,c.BaseText=m,c.DropDownMenu=f,c.FilterAndSortBar=k,c.GridContainer=se,c.TournamentCard=x,c.TournamentCardDetails=u,c.TournamentCardHeader=p,Object.defineProperty(c,Symbol.toStringTag,{value:"Module"})});
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=(t,r)=>{const a=t.__vccOpts||t;for(const[s,i]of r)a[s]=i;return a},k={name:"BaseInput",props:{placeholder:{type:String,default:""},value:{type:String,default:""}},data(){return{internalValue:this.value,timeout:null}},watch:{value(t){this.internalValue=t}},methods:{onInput(){clearTimeout(this.timeout),this.timeout=setTimeout(()=>{console.log("this.internalValue",this.internalValue),this.$emit("update:value",this.internalValue)},300)}}},C=["placeholder"];function w(t,r,a,s,i,l){return e.withDirectives((e.openBlock(),e.createElementBlock("input",{class:"appearance-none focus:outline-none w-full text-sm",placeholder:a.placeholder,"onUpdate:modelValue":r[0]||(r[0]=n=>i.internalValue=n),onInput:r[1]||(r[1]=(...n)=>l.onInput&&l.onInput(...n))},null,40,C)),[[e.vModelText,i.internalValue]])}const y=d(k,[["render",w]]),_={name:"BaseText",props:{text:{type:String,required:!0,default:""},weight:{type:String,default:"normal",validator:function(t){return["light","normal","medium","semi-bold","bold","extra-bold"].indexOf(t)!==-1}},size:{type:String,default:"small",validator:function(t){return["xs","small","medium","large","xl","2xl","3xl"].indexOf(t)!==-1}},color:{type:String,default:"primary",validator:function(t){return["neutral","quaternary","tertiary","secondary","primary","bright","primaryHighlight"].indexOf(t)!==-1}},hoverColor:{type:String,default:"none",validator:function(t){return["primary","secondary","tertiary","quaternary","neutral","bright","none"].indexOf(t)!==-1}}},setup(t){return t=e.reactive(t),{classes:e.computed(()=>{let r="inline-block font-sans";switch(t.color){case"neutral":r+=" text-neutral";break;case"tertiary":r+=" text-tertiary";break;case"secondary":r+=" text-secondary";break;case"quaternary":r+=" text-quaternary";break;case"primary":r+=" text-primary";break;case"primaryHighlight":r+=" text-primaryHighlight";break;case"bright":r+=" text-bright";break}switch(t.hoverColor){case"neutral":r+=" hover:text-neutral";break;case"tertiary":r+=" hover:text-tertiary";break;case"secondary":r+=" hover:text-secondary";break;case"quaternary":r+=" hover:text-quaternary";break;case"primary":r+=" hover:text-primary";break;case"bright":r+=" hover:text-bright";break;case"none":r+="";break}switch(t.weight){case"light":r+=" font-light";break;case"normal":r+=" font-normal";break;case"medium":r+=" font-medium";break;case"semi-bold":r+=" font-semibold";break;case"bold":r+=" font-bold";break;case"extra-bold":r+=" font-extrabold";break;default:r+=" font-normal";break}switch(t.size){case"xs":r+=" text-xs";break;case"small":r+=" text-sm";break;case"medium":r+=" text-md";break;case"large":r+=" text-lg";break;case"xl":r+=" text-xl";break;case"2xl":r+=" text-2xl";break;case"3xl":r+=" text-3xl";break;default:r+=" text-sm";break}return r})}}};function I(t,r,a,s,i,l){return e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(s.classes)},e.toDisplayString(a.text),3)}const m=d(_,[["render",I]]),E={name:"base-button",components:{DefaultText:m},props:{label:{type:String,required:!0},iconClass:{type:String,default:null},size:{type:String,validator:function(t){return["xs","small","medium","large","xl"].indexOf(t)!==-1}},type:{type:String,default:"primary",validator:function(t){return["primary","secondary","tertiary","bright","admin","adminSecondary"].indexOf(t)!==-1}}},emits:["click"],setup(t,{emit:r}){return t=e.reactive(t),{textColor:e.computed(()=>{switch(t.type){case"primary":return"primary";case"secondary":return"secondary";case"tertiary":return"tertiary";case"bright":return"bright";case"admin":return"neutral";case"adminSecondary":return"neutral";default:return"primary"}}),hoverClass:e.computed(()=>{switch(t.type){case"admin":return"hover:text-secondary";case"adminSecondary":return"hover:text-tertiary";default:return""}}),hoverColor:e.computed(()=>{switch(t.type){case"admin":return"text-secondary";case"adminSecondary":return"text-tertiary";default:return null}}),classes:e.computed(()=>{let a="px-2.5 mx-2 inline-flex ";switch(t.type){case"primary":a+=" py-0.5 items-center gap-2.5 rounded-md text-center shadow border border-dropdownSelect justify-center bg-neutral hover:bg-tertiary";break;case"secondary":a+=" py-0.5 items-center gap-2.5 rounded-md text-center shadow bg-secondary justify-center hover:bg-primary text-neutral";break;case"tertiary":a+=" py-0.5 items-center gap-2.5 rounded-md text-center justify-center bg-tertiary hover:bg-primary text-primary";break;case"bright":a+=" py-0.5 items-center gap-2.5 rounded-md text-center justify-center bg-bright hover:bg-primary text-neutral";break;case"admin":a+=" py-2 items-center rounded-md gap-2.5 text-center bg-primary hover:bg-primary my-1 text-neutral hover:bg-primaryHighlight";break;case"adminSecondary":a+=" py-0.5 items-center gap-2.5 text-center my-1 pb-0.5 border-b border-secondary hover:border-b hover:border-neutral w-11/12 text-neutral";break}switch(t.size){case"xs":a+=" text-xs";break;case"small":a+=" text-sm";break;case"medium":a+=" text-md";break;case"large":a+=" text-lg";break;case"xl":a+=" text-xl";break;default:a+="";break}return a}),onClick(){console.log("Click!"),r("click")}}}};function Q(t,r,a,s,i,l){const n=e.resolveComponent("DefaultText");return e.openBlock(),e.createElementBlock("button",{class:e.normalizeClass(s.classes),type:"button",onClick:r[0]||(r[0]=(...o)=>s.onClick&&s.onClick(...o))},[a.iconClass?(e.openBlock(),e.createElementBlock("i",{key:0,class:e.normalizeClass([a.iconClass,"mr-2 hover:text-highlightedClass"])},null,2)):e.createCommentVNode("",!0),e.createVNode(n,{color:s.textColor,size:a.size,text:a.label,weight:"normal"},null,8,["color","size","text"])],2)}const A=d(E,[["render",Q]]),D={name:"base-tag",props:{label:{type:String,required:!0},backgroundColor:{type:String,validator:function(t){return["primary","secondary","tertiary","neutral","bright"].indexOf(t)!==-1}}},setup(t){return t=e.reactive(t),{classes:e.computed(()=>{let r="cursor-pointer inline-block py-1 px-3 my-2 ml-3 text-xs font-normal rounded-full text-neutral";switch(t.backgroundColor){case"primary":r+=" bg-primary";break;case"secondary":r+=" bg-secondary";break;case"tertiary":r+=" bg-tertiary";break;case"neutral":r+=" bg-neutral";break;case"bright":r+=" bg-bright";break;default:r+=" bg-primary";break}return r})}}};function V(t,r,a,s,i,l){return e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(s.classes)},e.toDisplayString(a.label),3)}const B=d(D,[["render",V]]),h="data:image/png;base64,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",S={name:"tournament-card-header",components:{BaseTag:B},props:{artwork:{type:String,required:!0,default:h},tags:{type:Array,default:()=>[]}},computed:{backgroundStyle(){return`background-image: url('${this.artwork||h}');`}}},Y={class:"rounded-t-xl w-full"},M={class:"flex flex-row"};function G(t,r,a,s,i,l){const n=e.resolveComponent("BaseTag");return e.openBlock(),e.createElementBlock("div",Y,[e.createElementVNode("div",{style:e.normalizeStyle(l.backgroundStyle),class:"h-36 w-full flex flex-col justify-end rounded-t-xl bg-cover bg-no-repeat bg-center"},[e.createElementVNode("div",M,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(a.tags,o=>(e.openBlock(),e.createBlock(n,{key:o,label:o},null,8,["label"]))),128))])],4)])}const p=d(S,[["render",G]]),q={name:"tournament-card-details",components:{BaseButton:A,BaseText:m},props:{detail:{type:Object,required:!0,default:()=>({name:"",date:"",closes:"",location:""})}}},U={class:"flex flex-col w-full pt-4 pb-3 px-3"},N={class:"mt-4 flex flex-col"},T={class:"flex flex-row w-full justify-end"};function $(t,r,a,s,i,l){const n=e.resolveComponent("BaseText"),o=e.resolveComponent("BaseButton");return e.openBlock(),e.createElementBlock("div",U,[e.createVNode(n,{text:a.detail.name,color:"primary",size:"xl",weight:"semi-bold"},null,8,["text"]),e.createVNode(n,{text:a.detail.location,color:"primary",size:"small",weight:"normal"},null,8,["text"]),e.createElementVNode("div",N,[e.createVNode(n,{text:`${a.detail.date}`,color:"primaryHighlight",size:"small",weight:"light"},null,8,["text"]),e.createVNode(n,{text:`${a.detail.closes}`,color:"primaryHighlight",size:"small",weight:"light"},null,8,["text"])]),e.createElementVNode("div",T,[e.createVNode(o,{label:"Edit",class:"mt-2",primary:""})])])}const u=d(q,[["render",$]]),W={name:"TournamentCard",components:{TournamentHeader:p,TournamentDetail:u},props:{detail:{type:Object,required:!0,default:()=>({artwork:"",tags:[],name:"",description:"",date:"",closes:"",location:""})}}},K={class:"rounded-xl w-72 shadow"};function H(t,r,a,s,i,l){const n=e.resolveComponent("TournamentHeader"),o=e.resolveComponent("TournamentDetail");return e.openBlock(),e.createElementBlock("div",K,[e.createVNode(n,{artwork:a.detail.artwork,tags:a.detail.tags},null,8,["artwork","tags"]),e.createVNode(o,{detail:a.detail},null,8,["detail"])])}const x=d(W,[["render",H]]),F={name:"DropDownMenu",components:{BaseText:m},props:{label:{type:String},items:{type:Array,validator:t=>t.every(r=>typeof r.text=="string")},selectedItem:{type:Object,default:()=>({text:""}),validator:t=>typeof t.text=="string"}},data:()=>({isDropDownOpen:!1}),methods:{handleClick(t){this.isDropDownOpen=!1,this.$emit("update:selectedItem",t)},handleDropDown(){this.isDropDownOpen=!this.isDropDownOpen}}},j={class:"flex flex-row"},J={class:"mr-2 pt-1"},L=e.createElementVNode("i",{class:"fa-solid fa-chevron-down text-xs"},null,-1),O={key:0,class:"flex flex-col w-32 shadow mt-2 z-10 rounded-xl py-1 absolute bg-white"},P=["onClick"];function z(t,r,a,s,i,l){const n=e.resolveComponent("BaseText");return e.openBlock(),e.createElementBlock("div",j,[e.createElementVNode("span",J,[e.createVNode(n,{text:a.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:r[0]||(r[0]=o=>l.handleDropDown())},[e.createVNode(n,{text:a.selectedItem.text,color:"secondary",size:"sm",weight:"normal"},null,8,["text"]),L]),t.isDropDownOpen?(e.openBlock(),e.createElementBlock("div",O,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(a.items,o=>(e.openBlock(),e.createElementBlock("a",{key:o.id,onClick:g=>l.handleClick(o),class:"hover:bg-dropdownSelect py-1 px-2 border-b border-dropdownSelect last:border-0"},[e.createVNode(n,{text:o.text,color:"primary",size:"xs",weight:"normal"},null,8,["text"])],8,P))),128))])):e.createCommentVNode("",!0)])])}const f=d(F,[["render",z]]),Z={name:"FilterAndSortBar",components:{DropDownMenu:f,BaseInput:y},data(){return{filterText:""}},props:{label:{type:String},items:{type:Array,default:()=>[]},selectedItem:null},methods:{handleFilter(t){this.$emit("filterbar",t)},handleSelectedItem(t){this.$emit("sort",t),console.log("handleSelectedItem",t)}}},R={class:"flex flex-row w-full justify-between"},X={class:"rounded-lg shadow px-2 py-1 w-1/2 flex flex-row mt-0.5"},v=e.createElementVNode("i",{class:"fa-solid fa-magnifying-glass text-primaryHighlight w-6 mt-1"},null,-1);function ee(t,r,a,s,i,l){const n=e.resolveComponent("BaseInput"),o=e.resolveComponent("DropDownMenu");return e.openBlock(),e.createElementBlock("section",R,[e.createElementVNode("div",X,[v,e.createVNode(n,{placeholder:"Search on Name, Location, or Date",class:"text-quaternary",value:i.filterText,"onUpdate:value":l.handleFilter},null,8,["value","onUpdate:value"])]),e.createElementVNode("div",null,[e.createVNode(o,{label:a.label,items:a.items,selectedItem:a.selectedItem,"onUpdate:selectedItem":l.handleSelectedItem},null,8,["label","items","selectedItem","onUpdate:selectedItem"])])])}const b=d(Z,[["render",ee]]),te={name:"GridContainer",components:{FilterAndSortBar:b,BaseText:m,TournamentCard:x},props:{items:{type:Array,default:()=>[]},component:{type:String,required:!0},label:{type:String},dropdownItems:{type:Array,default:()=>[]},selectedItem:null},data(){return{filterOn:"",sortCriteria:"Date"}},computed:{filteredItems(){let t=this.items;if(this.filterOn.trim()){const r=this.filterOn.toLowerCase();t=t.filter(a=>Object.values(a).some(s=>typeof s=="string"&&s.toLowerCase().includes(r)))}switch(this.sortCriteria){case"Date":t=[...t].sort((r,a)=>new Date(r.date)-new Date(a.date));break;case"Name":t=[...t].sort((r,a)=>r.name.localeCompare(a.name));break;case"Location":t=[...t].sort((r,a)=>r.location.localeCompare(a.location));break}return t}},methods:{handleFilter(t){this.filterOn=t},handleSort(t){this.sortCriteria=t.text}}},re={class:"border border-dropdownSelect rounded-lg p-9 bg-neutral"},ae={class:"w-full text-center mb-9"},ne={class:"my-4"},le={class:"grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 3xl:grid-cols-4 gap-6 w-full"};function oe(t,r,a,s,i,l){const n=e.resolveComponent("BaseText"),o=e.resolveComponent("FilterAndSortBar");return e.openBlock(),e.createElementBlock("div",re,[e.createElementVNode("h1",ae,[e.createVNode(n,{color:"primaryHighlight",size:"2xl",text:"Upcoming Tournaments",weight:"normal"})]),e.createElementVNode("div",ne,[e.createVNode(o,{items:a.dropdownItems,label:a.label,selectedItem:a.selectedItem,onFilterbar:l.handleFilter,onSort:l.handleSort},null,8,["items","label","selectedItem","onFilterbar","onSort"])]),e.createElementVNode("div",le,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(l.filteredItems,g=>(e.openBlock(),e.createElementBlock("div",{key:g.id},[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(a.component),{detail:g},null,8,["detail"]))]))),128))])])}const se=d(te,[["render",oe]]),ce={name:"AdminLeftMenu",components:{BaseButton:A},props:{buttons:{type:Array,default:()=>[]}},methods:{handleButtonClick(t){this.$emit("button-click",t)}}},ie={class:"bg-secondary w-64 h-screen flex flex-col justify-between"},de=e.createElementVNode("section",{class:"h-28 border-b-2 border-neutral"},[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",alt:"logo"})])])],-1),me={class:"flex flex-col p-2 h-full"},ge={class:"flex flex-col justify-end p-2 h-full"},Ae={class:"border-t-2 border-neutral pt-2"};function ye(t,r,a,s,i,l){const n=e.resolveComponent("BaseButton");return e.openBlock(),e.createElementBlock("div",ie,[de,e.createElementVNode("section",me,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(a.buttons,o=>(e.openBlock(),e.createBlock(n,{label:o.label,iconClass:"fa-solid fa-trophy text-white",type:"admin",hover:"admin",onClick:g=>l.handleButtonClick(o)},null,8,["label","onClick"]))),256))]),e.createElementVNode("section",ge,[e.createElementVNode("div",Ae,[e.createVNode(n,{iconClass:"fa-solid fa-circle-user text-textSecondary",label:"Account",type:"adminSecondary",onClick:r[0]||(r[0]=o=>l.handleButtonClick(t.button))}),e.createVNode(n,{iconClass:"fa-solid fa-right-to-bracket fa-rotate-180 text-textSecondary",label:"Log Out",type:"adminSecondary",onClick:r[1]||(r[1]=o=>l.handleButtonClick(t.button))})])])])}const Be=d(ce,[["render",ye]]);c.AdminLeftMenu=Be,c.BaseButton=A,c.BaseInput=y,c.BaseTag=B,c.BaseText=m,c.DropDownMenu=f,c.FilterAndSortBar=b,c.GridContainer=se,c.TournamentCard=x,c.TournamentCardDetails=u,c.TournamentCardHeader=p,Object.defineProperty(c,Symbol.toStringTag,{value:"Module"})});
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@dcrackel/hematournamentui",
3
3
  "private": false,
4
- "version": "1.0.1",
4
+ "version": "1.0.3",
5
5
  "type": "module",
6
6
  "main": "dist/my-library.umd.js",
7
7
  "module": "dist/my-library.es.js",
@@ -53,7 +53,7 @@ export default {
53
53
  case 'admin':
54
54
  return 'neutral';
55
55
  case 'adminSecondary':
56
- return 'secondary';
56
+ return 'neutral';
57
57
  default:
58
58
  return 'primary';
59
59
  }
@@ -79,32 +79,32 @@ export default {
79
79
  }
80
80
  }),
81
81
  classes: computed(() => {
82
- let baseClasses = 'py-2 px-2.5 mx-2 inline-flex ';
82
+ let baseClasses = 'px-2.5 mx-2 inline-flex ';
83
83
 
84
84
  switch (props.type) {
85
85
  case 'primary':
86
86
  baseClasses +=
87
- ' items-center gap-2.5 rounded-md text-center shadow border border-skeleton justify-center bg-neutral hover:bg-tertiary';
87
+ ' py-0.5 items-center gap-2.5 rounded-md text-center shadow border border-dropdownSelect justify-center bg-neutral hover:bg-tertiary';
88
88
  break;
89
89
  case 'secondary':
90
90
  baseClasses +=
91
- ' items-center gap-2.5 rounded-md text-center shadow bg-secondary justify-center hover:bg-primary text-neutral';
91
+ ' py-0.5 items-center gap-2.5 rounded-md text-center shadow bg-secondary justify-center hover:bg-primary text-neutral';
92
92
  break;
93
93
  case 'tertiary':
94
94
  baseClasses +=
95
- ' items-center gap-2.5 rounded-md text-center justify-center bg-tertiary hover:bg-primary text-primary';
95
+ ' py-0.5 items-center gap-2.5 rounded-md text-center justify-center bg-tertiary hover:bg-primary text-primary';
96
96
  break;
97
97
  case 'bright':
98
98
  baseClasses +=
99
- ' items-center gap-2.5 rounded-md text-center justify-center bg-bright hover:bg-primary text-neutral';
99
+ ' py-0.5 items-center gap-2.5 rounded-md text-center justify-center bg-bright hover:bg-primary text-neutral';
100
100
  break;
101
101
  case 'admin':
102
102
  baseClasses +=
103
- ' items-center rounded-md gap-2.5 text-center bg-primary hover:bg-primary my-1 text-neutral hover:bg-primaryHighlight';
103
+ ' py-2 items-center rounded-md gap-2.5 text-center bg-primary hover:bg-primary my-1 text-neutral hover:bg-primaryHighlight';
104
104
  break;
105
105
  case 'adminSecondary':
106
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';
107
+ ' py-0.5 items-center gap-2.5 text-center my-1 pb-0.5 border-b border-secondary hover:border-b hover:border-neutral w-11/12 text-neutral';
108
108
  break;
109
109
  }
110
110
 
@@ -11,7 +11,8 @@ export default {
11
11
  props: {
12
12
  text: {
13
13
  type: String,
14
- required: true
14
+ required: true,
15
+ default: ''
15
16
  },
16
17
  weight: {
17
18
  type: String,
@@ -1,12 +1,12 @@
1
1
  <template>
2
- <div class="border border-dropdownSelect rounded-lg p-9 bg-white">
2
+ <div class="border border-dropdownSelect rounded-lg p-9 bg-neutral">
3
3
  <h1 class="w-full text-center mb-9">
4
4
  <BaseText color="primaryHighlight" size="2xl" text="Upcoming Tournaments" weight="normal" />
5
5
  </h1>
6
6
  <div class="my-4">
7
7
  <FilterAndSortBar :items="dropdownItems" :label="label" :selectedItem="selectedItem" @filterbar="handleFilter" @sort="handleSort"/>
8
8
  </div>
9
- <div class="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 2xl:grid-cols-4 gap-6 w-full">
9
+ <div class="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 3xl:grid-cols-4 gap-6 w-full">
10
10
  <div v-for="item in filteredItems" :key="item.id">
11
11
  <component :is="component" :detail="item" />
12
12
  </div>
@@ -3,7 +3,7 @@
3
3
  <section class="h-28 border-b-2 border-neutral">
4
4
  <div class="flex flex-col justify-center h-28">
5
5
  <div class="ml-8">
6
- <img class="w-32" src="https://ferrotas.com/assets/ferrotas-white-small-720502db.png" />
6
+ <img class="w-32" src="https://ferrotas.com/assets/ferrotas-white-small-720502db.png" alt="logo"/>
7
7
  </div>
8
8
  </div>
9
9
  </section>
@@ -29,9 +29,14 @@ export default {
29
29
  type: String,
30
30
  },
31
31
  items: {
32
- type: Array
32
+ type: Array,
33
+ validator: (itemsArray) => itemsArray.every(item => typeof item.text === 'string')
33
34
  },
34
- selectedItem: null
35
+ selectedItem: {
36
+ type: Object,
37
+ default: () => ({ text: '' }),
38
+ validator: (obj) => typeof obj.text === 'string'
39
+ }
35
40
  },
36
41
  data: () => ({
37
42
  isDropDownOpen: false
@@ -837,6 +837,16 @@ video {
837
837
  padding-bottom: 0.5rem;
838
838
  }
839
839
 
840
+ .py-0{
841
+ padding-top: 0px;
842
+ padding-bottom: 0px;
843
+ }
844
+
845
+ .py-0\.5{
846
+ padding-top: 0.125rem;
847
+ padding-bottom: 0.125rem;
848
+ }
849
+
840
850
  .pb-3{
841
851
  padding-bottom: 0.75rem;
842
852
  }
@@ -853,6 +863,18 @@ video {
853
863
  padding-top: 1rem;
854
864
  }
855
865
 
866
+ .pb-1{
867
+ padding-bottom: 0.25rem;
868
+ }
869
+
870
+ .pb-0{
871
+ padding-bottom: 0px;
872
+ }
873
+
874
+ .pb-0\.5{
875
+ padding-bottom: 0.125rem;
876
+ }
877
+
856
878
  .text-center{
857
879
  text-align: center;
858
880
  }