@dcrackel/hematournamentui 1.0.2 → 1.0.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (30) hide show
  1. package/.eslintrc.js +18 -0
  2. package/.prettierignore +1 -0
  3. package/.storybook/main.js +1 -0
  4. package/.storybook/mockRoutes.js +9 -0
  5. package/dist/{my-library.es.js → HemaTouranmentUI-lib.es.js} +89 -111
  6. package/dist/HemaTouranmentUI-lib.umd.js +1 -0
  7. package/index.html +1 -1
  8. package/package.json +15 -8
  9. package/prettier.config.js +10 -0
  10. package/src/stories/Base/Button/BaseButton.test.js +146 -0
  11. package/src/stories/Base/Button/BaseButton.vue +28 -42
  12. package/src/stories/Base/Input/BaseInput.test.js +46 -0
  13. package/src/stories/Base/Tag/BaseTag.test.js +42 -0
  14. package/src/stories/Base/Text/BaseText.test.js +153 -0
  15. package/src/stories/Base/Text/BaseText.vue +4 -7
  16. package/src/stories/Breadcrumb/Admin/Breadcrumb.stories.js +41 -0
  17. package/src/stories/Breadcrumb/Admin/Breadcrumb.vue +31 -0
  18. package/src/stories/Cards/TournamentCard/Detail/TournamentCardDetail.vue +3 -3
  19. package/src/stories/Containers/Grid/GridContainer.vue +2 -2
  20. package/src/stories/Filters/FilterAndSortBar/FilterAndSortBar.vue +1 -1
  21. package/src/stories/Filters/FilterUpcomingPast/FilterUpcomingPast.stories.js +32 -0
  22. package/src/stories/Filters/FilterUpcomingPast/FilterUpcomingPast.vue +40 -0
  23. package/src/stories/Menu/Admin/AdminLeftMenu.stories.js +6 -1
  24. package/src/stories/Menu/Admin/AdminLeftMenu.vue +4 -4
  25. package/src/stories/Menu/DropDown/DropDownMenu.vue +2 -5
  26. package/tailwind/output.css +50 -26
  27. package/vite.config.js +5 -2
  28. package/dist/my-library.umd.js +0 -1
  29. /package/{HemaTournamentUI/.gitattributes → .gitattributes} +0 -0
  30. /package/{HemaTournamentUI/LICENSE → LICENSE} +0 -0
package/.eslintrc.js ADDED
@@ -0,0 +1,18 @@
1
+ module.exports = {
2
+ root: true,
3
+ env: {
4
+ node: true,
5
+ 'jest/globals': true
6
+ },
7
+ extends: ['plugin:vue/vue3-recommended', 'eslint:recommended', 'plugin:jest/recommended', 'prettier', 'plugin:storybook/recommended'],
8
+ parserOptions: {
9
+ parser: 'babel-eslint'
10
+ },
11
+ rules: {
12
+ 'no-console': process.env.NODE_ENV === 'production' ? 'warn' : 'off',
13
+ 'no-debugger': process.env.NODE_ENV === 'production' ? 'warn' : 'off'
14
+ },
15
+ plugins: [
16
+ 'jest'
17
+ ]
18
+ }
@@ -0,0 +1 @@
1
+ node_modules/
@@ -5,6 +5,7 @@ const config = {
5
5
  "@storybook/addon-links",
6
6
  "@storybook/addon-essentials",
7
7
  "@storybook/addon-interactions",
8
+ "@storybook/addon-mdx-gfm"
8
9
  ],
9
10
  framework: {
10
11
  name: "@storybook/vue3-vite",
@@ -0,0 +1,9 @@
1
+ // .storybook/mockRoutes.js
2
+ import config from "./main.js";
3
+
4
+ export const routes = [
5
+ { path: '/', component: { template: '<div>Home</div>' } },
6
+ { path: '/event', component: { template: '<div>Event</div>' } },
7
+ ];
8
+
9
+ export default routes;
@@ -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 x, renderList as B, createBlock as f, resolveDynamicComponent as E } from "vue";
1
+ import { withDirectives as I, openBlock as s, createElementBlock as c, vModelText as Q, reactive as p, computed as y, 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";
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
- }, v = {
7
+ }, S = {
8
8
  name: "BaseInput",
9
9
  props: {
10
10
  placeholder: {
@@ -34,18 +34,18 @@ const A = (e, t) => {
34
34
  }, 300);
35
35
  }
36
36
  }
37
- }, S = ["placeholder"];
38
- function Y(e, t, r, o, u, n) {
37
+ }, Y = ["placeholder"];
38
+ function v(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, S)), [
44
+ }, null, 40, Y)), [
45
45
  [Q, u.internalValue]
46
46
  ]);
47
47
  }
48
- const M = /* @__PURE__ */ A(v, [["render", Y]]), G = {
48
+ const M = /* @__PURE__ */ A(S, [["render", v]]), G = {
49
49
  name: "BaseText",
50
50
  props: {
51
51
  text: {
@@ -64,7 +64,7 @@ const M = /* @__PURE__ */ A(v, [["render", Y]]), G = {
64
64
  type: String,
65
65
  default: "small",
66
66
  validator: function(e) {
67
- return ["xs", "small", "medium", "large", "xl", "2xl", "3xl"].indexOf(e) !== -1;
67
+ return ["xs", "sm", "md", "lg", "xl", "2xl", "3xl"].indexOf(e) !== -1;
68
68
  }
69
69
  },
70
70
  color: {
@@ -92,7 +92,7 @@ const M = /* @__PURE__ */ A(v, [["render", Y]]), G = {
92
92
  },
93
93
  setup(e) {
94
94
  return e = p(e), {
95
- classes: m(() => {
95
+ classes: y(() => {
96
96
  let t = "inline-block font-sans";
97
97
  switch (e.color) {
98
98
  case "neutral":
@@ -159,21 +159,18 @@ const M = /* @__PURE__ */ A(v, [["render", Y]]), G = {
159
159
  case "extra-bold":
160
160
  t += " font-extrabold";
161
161
  break;
162
- default:
163
- t += " font-normal";
164
- break;
165
162
  }
166
163
  switch (e.size) {
167
164
  case "xs":
168
165
  t += " text-xs";
169
166
  break;
170
- case "small":
167
+ case "sm":
171
168
  t += " text-sm";
172
169
  break;
173
- case "medium":
170
+ case "md":
174
171
  t += " text-md";
175
172
  break;
176
- case "large":
173
+ case "lg":
177
174
  t += " text-lg";
178
175
  break;
179
176
  case "xl":
@@ -201,7 +198,7 @@ function q(e, t, r, o, u, n) {
201
198
  }
202
199
  const b = /* @__PURE__ */ A(G, [["render", q]]), U = {
203
200
  name: "base-button",
204
- components: { DefaultText: b },
201
+ components: { BaseText: b },
205
202
  props: {
206
203
  label: {
207
204
  type: String,
@@ -214,8 +211,9 @@ const b = /* @__PURE__ */ A(G, [["render", q]]), U = {
214
211
  size: {
215
212
  type: String,
216
213
  validator: function(e) {
217
- return ["xs", "small", "medium", "large", "xl"].indexOf(e) !== -1;
218
- }
214
+ return ["xs", "sm", "md", "lg", "xl"].indexOf(e) !== -1;
215
+ },
216
+ default: "sm"
219
217
  },
220
218
  type: {
221
219
  type: String,
@@ -223,12 +221,16 @@ const b = /* @__PURE__ */ A(G, [["render", q]]), U = {
223
221
  validator: function(e) {
224
222
  return ["primary", "secondary", "tertiary", "bright", "admin", "adminSecondary"].indexOf(e) !== -1;
225
223
  }
224
+ },
225
+ selected: {
226
+ type: Boolean,
227
+ default: !1
226
228
  }
227
229
  },
228
230
  emits: ["click"],
229
231
  setup(e, { emit: t }) {
230
232
  return e = p(e), {
231
- textColor: m(() => {
233
+ textColor: y(() => {
232
234
  switch (e.type) {
233
235
  case "primary":
234
236
  return "primary";
@@ -241,72 +243,47 @@ const b = /* @__PURE__ */ A(G, [["render", q]]), U = {
241
243
  case "admin":
242
244
  return "neutral";
243
245
  case "adminSecondary":
244
- return "secondary";
245
- default:
246
- return "primary";
247
- }
248
- }),
249
- hoverClass: m(() => {
250
- switch (e.type) {
251
- case "admin":
252
- return "hover:text-secondary";
253
- case "adminSecondary":
254
- return "hover:text-tertiary";
255
- default:
256
- return "";
257
- }
258
- }),
259
- hoverColor: m(() => {
260
- switch (e.type) {
261
- case "admin":
262
- return "text-secondary";
263
- case "adminSecondary":
264
- return "text-tertiary";
265
- default:
266
- return null;
246
+ return "neutral";
267
247
  }
268
248
  }),
269
- classes: m(() => {
270
- let r = "py-2 px-2.5 mx-2 inline-flex ";
249
+ classes: y(() => {
250
+ let r = "px-2.5 mx-1 inline-flex ";
271
251
  switch (e.type) {
272
252
  case "primary":
273
- r += " items-center gap-2.5 rounded-md text-center shadow border border-skeleton justify-center bg-neutral hover:bg-tertiary";
253
+ r += " py-0.5 items-center gap-2.5 rounded-md text-center shadow border border-dropdownSelect justify-center hover:bg-tertiary", e.selected ? r += " bg-dropdownSelect" : r += " bg-neutral";
274
254
  break;
275
255
  case "secondary":
276
- r += " items-center gap-2.5 rounded-md text-center shadow bg-secondary justify-center hover:bg-primary text-neutral";
256
+ r += " py-0.5 items-center gap-2.5 rounded-md text-center shadow justify-center hover:bg-primary text-neutral", e.selected ? r += " bg-dropdownSelect" : r += " bg-secondary";
277
257
  break;
278
258
  case "tertiary":
279
- r += " items-center gap-2.5 rounded-md text-center justify-center bg-tertiary hover:bg-primary text-primary";
259
+ r += " py-0.5 items-center gap-2.5 rounded-md text-center justify-center hover:bg-primary text-primary", e.selected ? r += " bg-primary" : r += " bg-tertiary";
280
260
  break;
281
261
  case "bright":
282
- r += " items-center gap-2.5 rounded-md text-center justify-center bg-bright hover:bg-primary text-neutral";
262
+ r += " py-0.5 items-center gap-2.5 rounded-md text-center justify-center hover:bg-primary text-neutral", e.selected ? r += " bg-primary" : r += " bg-bright";
283
263
  break;
284
264
  case "admin":
285
- r += " items-center rounded-md gap-2.5 text-center bg-primary hover:bg-primary my-1 text-neutral hover:bg-primaryHighlight";
265
+ r += " py-2 items-center rounded-md gap-2.5 text-center hover:bg-primary my-1 text-neutral hover:bg-primaryHighlight", e.selected, r += " bg-primary";
286
266
  break;
287
267
  case "adminSecondary":
288
- 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";
268
+ 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", e.selected ? r += " bg-primary" : r += " bg-tertiary";
289
269
  break;
290
270
  }
291
271
  switch (e.size) {
292
272
  case "xs":
293
273
  r += " text-xs";
294
274
  break;
295
- case "small":
275
+ case "sm":
296
276
  r += " text-sm";
297
277
  break;
298
- case "medium":
278
+ case "md":
299
279
  r += " text-md";
300
280
  break;
301
- case "large":
281
+ case "lg":
302
282
  r += " text-lg";
303
283
  break;
304
284
  case "xl":
305
285
  r += " text-xl";
306
286
  break;
307
- default:
308
- r += "";
309
- break;
310
287
  }
311
288
  return r;
312
289
  }),
@@ -317,8 +294,9 @@ const b = /* @__PURE__ */ A(G, [["render", q]]), U = {
317
294
  }
318
295
  };
319
296
  function V(e, t, r, o, u, n) {
320
- const a = g("DefaultText");
297
+ const a = g("BaseText");
321
298
  return s(), c("button", {
299
+ "data-testid": "base-button",
322
300
  class: h(o.classes),
323
301
  type: "button",
324
302
  onClick: t[0] || (t[0] = (...l) => o.onClick && o.onClick(...l))
@@ -328,6 +306,7 @@ function V(e, t, r, o, u, n) {
328
306
  class: h([r.iconClass, "mr-2 hover:text-highlightedClass"])
329
307
  }, null, 2)) : w("", !0),
330
308
  d(a, {
309
+ "data-testid": "base-text",
331
310
  color: o.textColor,
332
311
  size: r.size,
333
312
  text: r.label,
@@ -351,7 +330,7 @@ const _ = /* @__PURE__ */ A(U, [["render", V]]), $ = {
351
330
  },
352
331
  setup(e) {
353
332
  return e = p(e), {
354
- classes: m(() => {
333
+ classes: y(() => {
355
334
  let t = "cursor-pointer inline-block py-1 px-3 my-2 ml-3 text-xs font-normal rounded-full text-neutral";
356
335
  switch (e.backgroundColor) {
357
336
  case "primary":
@@ -413,7 +392,7 @@ function j(e, t, r, o, u, n) {
413
392
  class: "h-36 w-full flex flex-col justify-end rounded-t-xl bg-cover bg-no-repeat bg-center"
414
393
  }, [
415
394
  i("div", J, [
416
- (s(!0), c(x, null, B(r.tags, (l) => (s(), f(a, {
395
+ (s(!0), c(B, null, x(r.tags, (l) => (s(), f(a, {
417
396
  key: l,
418
397
  label: l
419
398
  }, null, 8, ["label"]))), 128))
@@ -452,20 +431,20 @@ function N(e, t, r, o, u, n) {
452
431
  d(a, {
453
432
  text: r.detail.location,
454
433
  color: "primary",
455
- size: "small",
434
+ size: "sm",
456
435
  weight: "normal"
457
436
  }, null, 8, ["text"]),
458
437
  i("div", z, [
459
438
  d(a, {
460
439
  text: `${r.detail.date}`,
461
440
  color: "primaryHighlight",
462
- size: "small",
441
+ size: "sm",
463
442
  weight: "light"
464
443
  }, null, 8, ["text"]),
465
444
  d(a, {
466
445
  text: `${r.detail.closes}`,
467
446
  color: "primaryHighlight",
468
- size: "small",
447
+ size: "sm",
469
448
  weight: "light"
470
449
  }, null, 8, ["text"])
471
450
  ]),
@@ -538,38 +517,36 @@ const te = /* @__PURE__ */ A(R, [["render", ee]]), re = {
538
517
  this.isDropDownOpen = !this.isDropDownOpen;
539
518
  }
540
519
  }
541
- }, ae = { class: "flex flex-row" }, ne = { class: "mr-2 pt-1" }, le = /* @__PURE__ */ i("i", { class: "fa-solid fa-chevron-down text-xs" }, null, -1), se = {
520
+ }, ae = { class: "flex flex-row" }, ne = /* @__PURE__ */ i("i", { class: "fa-solid fa-chevron-down text-xs" }, null, -1), le = {
542
521
  key: 0,
543
- class: "flex flex-col w-32 shadow mt-2 z-10 rounded-xl py-1 absolute bg-white"
544
- }, oe = ["onClick"];
545
- function ie(e, t, r, o, u, n) {
522
+ class: "flex flex-col w-32 shadow mt-2 z-10 rounded-xl py-1 absolute bg-neutral"
523
+ }, se = ["onClick"];
524
+ function oe(e, t, r, o, u, n) {
546
525
  const a = g("BaseText");
547
526
  return s(), c("div", ae, [
548
- i("span", ne, [
549
- d(a, {
550
- text: r.label,
551
- color: "quaternary",
552
- size: "small",
553
- weight: "normal"
554
- }, null, 8, ["text"])
555
- ]),
556
527
  i("span", null, [
557
528
  i("div", {
558
529
  class: "z-10 rounded-lg shadow px-2 py-2 w-32 flex flex-row justify-between",
559
530
  onClick: t[0] || (t[0] = (l) => n.handleDropDown())
560
531
  }, [
532
+ d(a, {
533
+ text: r.label,
534
+ color: "quaternary",
535
+ size: "sm",
536
+ weight: "normal"
537
+ }, null, 8, ["text"]),
561
538
  d(a, {
562
539
  text: r.selectedItem.text,
563
540
  color: "secondary",
564
541
  size: "sm",
565
542
  weight: "normal"
566
543
  }, null, 8, ["text"]),
567
- le
544
+ ne
568
545
  ]),
569
- e.isDropDownOpen ? (s(), c("div", se, [
570
- (s(!0), c(x, null, B(r.items, (l) => (s(), c("a", {
546
+ e.isDropDownOpen ? (s(), c("div", le, [
547
+ (s(!0), c(B, null, x(r.items, (l) => (s(), c("a", {
571
548
  key: l.id,
572
- onClick: (y) => n.handleClick(l),
549
+ onClick: (m) => n.handleClick(l),
573
550
  class: "hover:bg-dropdownSelect py-1 px-2 border-b border-dropdownSelect last:border-0"
574
551
  }, [
575
552
  d(a, {
@@ -578,15 +555,15 @@ function ie(e, t, r, o, u, n) {
578
555
  size: "xs",
579
556
  weight: "normal"
580
557
  }, null, 8, ["text"])
581
- ], 8, oe))), 128))
558
+ ], 8, se))), 128))
582
559
  ])) : w("", !0)
583
560
  ])
584
561
  ]);
585
562
  }
586
- const ce = /* @__PURE__ */ A(re, [["render", ie]]), de = {
563
+ const ie = /* @__PURE__ */ A(re, [["render", oe]]), ce = {
587
564
  name: "FilterAndSortBar",
588
565
  components: {
589
- DropDownMenu: ce,
566
+ DropDownMenu: ie,
590
567
  BaseInput: M
591
568
  },
592
569
  data() {
@@ -612,12 +589,12 @@ const ce = /* @__PURE__ */ A(re, [["render", ie]]), de = {
612
589
  this.$emit("sort", e), console.log("handleSelectedItem", e);
613
590
  }
614
591
  }
615
- }, ue = { class: "flex flex-row w-full justify-between" }, ge = { class: "rounded-lg shadow px-2 py-1 w-1/2 flex flex-row mt-0.5" }, Ae = /* @__PURE__ */ i("i", { class: "fa-solid fa-magnifying-glass text-primaryHighlight w-6 mt-1" }, null, -1);
616
- function me(e, t, r, o, u, n) {
592
+ }, de = { class: "flex flex-row w-full justify-between" }, ue = { class: "rounded-lg shadow px-2 py-1 w-full flex flex-row mt-0.5 mr-4" }, ge = /* @__PURE__ */ i("i", { class: "fa-solid fa-magnifying-glass text-primaryHighlight w-6 mt-1" }, null, -1);
593
+ function Ae(e, t, r, o, u, n) {
617
594
  const a = g("BaseInput"), l = g("DropDownMenu");
618
- return s(), c("section", ue, [
619
- i("div", ge, [
620
- Ae,
595
+ return s(), c("section", de, [
596
+ i("div", ue, [
597
+ ge,
621
598
  d(a, {
622
599
  placeholder: "Search on Name, Location, or Date",
623
600
  class: "text-quaternary",
@@ -635,10 +612,10 @@ function me(e, t, r, o, u, n) {
635
612
  ])
636
613
  ]);
637
614
  }
638
- const ye = /* @__PURE__ */ A(de, [["render", me]]), he = {
615
+ const me = /* @__PURE__ */ A(ce, [["render", Ae]]), ye = {
639
616
  name: "GridContainer",
640
617
  components: {
641
- FilterAndSortBar: ye,
618
+ FilterAndSortBar: me,
642
619
  BaseText: b,
643
620
  TournamentCard: te
644
621
  },
@@ -699,10 +676,10 @@ const ye = /* @__PURE__ */ A(de, [["render", me]]), he = {
699
676
  this.sortCriteria = e.text;
700
677
  }
701
678
  }
702
- }, xe = { class: "border border-dropdownSelect rounded-lg p-9 bg-white" }, Be = { 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" };
703
- function fe(e, t, r, o, u, n) {
679
+ }, he = { class: "border border-dropdownSelect rounded-lg p-9 bg-neutral" }, Be = { class: "w-full text-center mb-9" }, xe = { 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" };
680
+ function pe(e, t, r, o, u, n) {
704
681
  const a = g("BaseText"), l = g("FilterAndSortBar");
705
- return s(), c("div", xe, [
682
+ return s(), c("div", he, [
706
683
  i("h1", Be, [
707
684
  d(a, {
708
685
  color: "primaryHighlight",
@@ -711,7 +688,7 @@ function fe(e, t, r, o, u, n) {
711
688
  weight: "normal"
712
689
  })
713
690
  ]),
714
- i("div", be, [
691
+ i("div", xe, [
715
692
  d(l, {
716
693
  items: r.dropdownItems,
717
694
  label: r.label,
@@ -720,16 +697,16 @@ function fe(e, t, r, o, u, n) {
720
697
  onSort: n.handleSort
721
698
  }, null, 8, ["items", "label", "selectedItem", "onFilterbar", "onSort"])
722
699
  ]),
723
- i("div", pe, [
724
- (s(!0), c(x, null, B(n.filteredItems, (y) => (s(), c("div", {
725
- key: y.id
700
+ i("div", be, [
701
+ (s(!0), c(B, null, x(n.filteredItems, (m) => (s(), c("div", {
702
+ key: m.id
726
703
  }, [
727
- (s(), f(E(r.component), { detail: y }, null, 8, ["detail"]))
704
+ (s(), f(E(r.component), { detail: m }, null, 8, ["detail"]))
728
705
  ]))), 128))
729
706
  ])
730
707
  ]);
731
708
  }
732
- const ve = /* @__PURE__ */ A(he, [["render", fe]]), Ce = {
709
+ const Ee = /* @__PURE__ */ A(ye, [["render", pe]]), fe = {
733
710
  name: "AdminLeftMenu",
734
711
  components: { BaseButton: _ },
735
712
  props: {
@@ -743,31 +720,32 @@ const ve = /* @__PURE__ */ A(he, [["render", fe]]), Ce = {
743
720
  this.$emit("button-click", e);
744
721
  }
745
722
  }
746
- }, ke = { class: "bg-secondary w-64 h-screen flex flex-col justify-between" }, we = /* @__PURE__ */ i("section", { class: "h-28 border-b-2 border-neutral" }, [
723
+ }, Ce = { class: "bg-secondary w-64 h-screen flex flex-col justify-between" }, ke = /* @__PURE__ */ i("section", { class: "h-28 border-b border-neutral" }, [
747
724
  /* @__PURE__ */ i("div", { class: "flex flex-col justify-center h-28" }, [
748
725
  /* @__PURE__ */ i("div", { class: "ml-8" }, [
749
726
  /* @__PURE__ */ i("img", {
750
727
  class: "w-32",
751
- src: "https://ferrotas.com/assets/ferrotas-white-small-720502db.png"
728
+ src: "https://ferrotas.com/assets/ferrotas-white-small-720502db.png",
729
+ alt: "logo"
752
730
  })
753
731
  ])
754
732
  ])
755
- ], -1), _e = { class: "flex flex-col p-2 h-full" }, Ie = { class: "flex flex-col justify-end p-2 h-full" }, Qe = { class: "border-t-2 border-neutral pt-2" };
756
- function De(e, t, r, o, u, n) {
733
+ ], -1), we = { class: "flex flex-col p-2 h-full" }, _e = { class: "flex flex-col justify-end p-2 flex-grow" }, Ie = { class: "border-t border-neutral pt-2" };
734
+ function Qe(e, t, r, o, u, n) {
757
735
  const a = g("BaseButton");
758
- return s(), c("div", ke, [
759
- we,
760
- i("section", _e, [
761
- (s(!0), c(x, null, B(r.buttons, (l) => (s(), f(a, {
736
+ return s(), c("div", Ce, [
737
+ ke,
738
+ i("section", we, [
739
+ (s(!0), c(B, null, x(r.buttons, (l) => (s(), f(a, {
762
740
  label: l.label,
763
741
  iconClass: "fa-solid fa-trophy text-white",
764
742
  type: "admin",
765
743
  hover: "admin",
766
- onClick: (y) => n.handleButtonClick(l)
744
+ onClick: (m) => n.handleButtonClick(l)
767
745
  }, null, 8, ["label", "onClick"]))), 256))
768
746
  ]),
769
- i("section", Ie, [
770
- i("div", Qe, [
747
+ i("section", _e, [
748
+ i("div", Ie, [
771
749
  d(a, {
772
750
  iconClass: "fa-solid fa-circle-user text-textSecondary",
773
751
  label: "Account",
@@ -784,16 +762,16 @@ function De(e, t, r, o, u, n) {
784
762
  ])
785
763
  ]);
786
764
  }
787
- const Se = /* @__PURE__ */ A(Ce, [["render", De]]);
765
+ const Se = /* @__PURE__ */ A(fe, [["render", Qe]]);
788
766
  export {
789
767
  Se as AdminLeftMenu,
790
768
  _ as BaseButton,
791
769
  M as BaseInput,
792
770
  W as BaseTag,
793
771
  b as BaseText,
794
- ce as DropDownMenu,
795
- ye as FilterAndSortBar,
796
- ve as GridContainer,
772
+ ie as DropDownMenu,
773
+ me as FilterAndSortBar,
774
+ Ee as GridContainer,
797
775
  te as TournamentCard,
798
776
  Z as TournamentCardDetails,
799
777
  F as TournamentCardHeader
@@ -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.HemaTournamentUI={},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 B=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","sm","md","lg","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}switch(t.size){case"xs":r+=" text-xs";break;case"sm":r+=" text-sm";break;case"md":r+=" text-md";break;case"lg":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:{BaseText:m},props:{label:{type:String,required:!0},iconClass:{type:String,default:null},size:{type:String,validator:function(t){return["xs","sm","md","lg","xl"].indexOf(t)!==-1},default:"sm"},type:{type:String,default:"primary",validator:function(t){return["primary","secondary","tertiary","bright","admin","adminSecondary"].indexOf(t)!==-1}},selected:{type:Boolean,default:!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"}}),classes:e.computed(()=>{let a="px-2.5 mx-1 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 hover:bg-tertiary",t.selected?a+=" bg-dropdownSelect":a+=" bg-neutral";break;case"secondary":a+=" py-0.5 items-center gap-2.5 rounded-md text-center shadow justify-center hover:bg-primary text-neutral",t.selected?a+=" bg-dropdownSelect":a+=" bg-secondary";break;case"tertiary":a+=" py-0.5 items-center gap-2.5 rounded-md text-center justify-center hover:bg-primary text-primary",t.selected?a+=" bg-primary":a+=" bg-tertiary";break;case"bright":a+=" py-0.5 items-center gap-2.5 rounded-md text-center justify-center hover:bg-primary text-neutral",t.selected?a+=" bg-primary":a+=" bg-bright";break;case"admin":a+=" py-2 items-center rounded-md gap-2.5 text-center hover:bg-primary my-1 text-neutral hover:bg-primaryHighlight",t.selected,a+=" bg-primary";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",t.selected?a+=" bg-primary":a+=" bg-tertiary";break}switch(t.size){case"xs":a+=" text-xs";break;case"sm":a+=" text-sm";break;case"md":a+=" text-md";break;case"lg":a+=" text-lg";break;case"xl":a+=" text-xl";break}return a}),onClick(){console.log("Click!"),r("click")}}}};function Q(t,r,a,s,i,l){const n=e.resolveComponent("BaseText");return e.openBlock(),e.createElementBlock("button",{"data-testid":"base-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,{"data-testid":"base-text",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:"sm",weight:"normal"},null,8,["text"]),e.createElementVNode("div",N,[e.createVNode(n,{text:`${a.detail.date}`,color:"primaryHighlight",size:"sm",weight:"light"},null,8,["text"]),e.createVNode(n,{text:`${a.detail.closes}`,color:"primaryHighlight",size:"sm",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 b=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=e.createElementVNode("i",{class:"fa-solid fa-chevron-down text-xs"},null,-1),L={key:0,class:"flex flex-col w-32 shadow mt-2 z-10 rounded-xl py-1 absolute bg-neutral"},O=["onClick"];function P(t,r,a,s,i,l){const n=e.resolveComponent("BaseText");return e.openBlock(),e.createElementBlock("div",j,[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.label,color:"quaternary",size:"sm",weight:"normal"},null,8,["text"]),e.createVNode(n,{text:a.selectedItem.text,color:"secondary",size:"sm",weight:"normal"},null,8,["text"]),J]),t.isDropDownOpen?(e.openBlock(),e.createElementBlock("div",L,[(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,O))),128))])):e.createCommentVNode("",!0)])])}const x=d(F,[["render",P]]),z={name:"FilterAndSortBar",components:{DropDownMenu:x,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)}}},Z={class:"flex flex-row w-full justify-between"},R={class:"rounded-lg shadow px-2 py-1 w-full flex flex-row mt-0.5 mr-4"},X=e.createElementVNode("i",{class:"fa-solid fa-magnifying-glass text-primaryHighlight w-6 mt-1"},null,-1);function v(t,r,a,s,i,l){const n=e.resolveComponent("BaseInput"),o=e.resolveComponent("DropDownMenu");return e.openBlock(),e.createElementBlock("section",Z,[e.createElementVNode("div",R,[X,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 f=d(z,[["render",v]]),ee={name:"GridContainer",components:{FilterAndSortBar:f,BaseText:m,TournamentCard:b},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}}},te={class:"border border-dropdownSelect rounded-lg p-9 bg-neutral"},re={class:"w-full text-center mb-9"},ae={class:"my-4"},ne={class:"grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 3xl:grid-cols-4 gap-6 w-full"};function le(t,r,a,s,i,l){const n=e.resolveComponent("BaseText"),o=e.resolveComponent("FilterAndSortBar");return e.openBlock(),e.createElementBlock("div",te,[e.createElementVNode("h1",re,[e.createVNode(n,{color:"primaryHighlight",size:"2xl",text:"Upcoming Tournaments",weight:"normal"})]),e.createElementVNode("div",ae,[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",ne,[(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 oe=d(ee,[["render",le]]),se={name:"AdminLeftMenu",components:{BaseButton:A},props:{buttons:{type:Array,default:()=>[]}},methods:{handleButtonClick(t){this.$emit("button-click",t)}}},ce={class:"bg-secondary w-64 h-screen flex flex-col justify-between"},ie=e.createElementVNode("section",{class:"h-28 border-b 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),de={class:"flex flex-col p-2 h-full"},me={class:"flex flex-col justify-end p-2 flex-grow"},ge={class:"border-t border-neutral pt-2"};function Ae(t,r,a,s,i,l){const n=e.resolveComponent("BaseButton");return e.openBlock(),e.createElementBlock("div",ce,[ie,e.createElementVNode("section",de,[(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",me,[e.createElementVNode("div",ge,[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(se,[["render",Ae]]);c.AdminLeftMenu=Be,c.BaseButton=A,c.BaseInput=B,c.BaseTag=y,c.BaseText=m,c.DropDownMenu=x,c.FilterAndSortBar=f,c.GridContainer=oe,c.TournamentCard=b,c.TournamentCardDetails=u,c.TournamentCardHeader=p,Object.defineProperty(c,Symbol.toStringTag,{value:"Module"})});
package/index.html CHANGED
@@ -3,7 +3,7 @@
3
3
  <head>
4
4
  <meta charset="UTF-8" />
5
5
  <meta name="viewport" content="width=device-width, initial-scale=1.0" />
6
- <title>StoryBookLib</title>
6
+ <title>StoryBookLib !!!!!</title>
7
7
  </head>
8
8
  <body>
9
9
  <div id="app"></div>
package/package.json CHANGED
@@ -1,23 +1,28 @@
1
1
  {
2
2
  "name": "@dcrackel/hematournamentui",
3
3
  "private": false,
4
- "version": "1.0.2",
4
+ "version": "1.0.4",
5
5
  "type": "module",
6
6
  "main": "dist/my-library.umd.js",
7
7
  "module": "dist/my-library.es.js",
8
8
  "scripts": {
9
9
  "dev": "vite",
10
10
  "build": "vite build",
11
+ "publish:package": "npm publish",
11
12
  "preview": "vite preview",
12
13
  "build-storybook": "npm run build:tailwind && storybook build",
13
14
  "build:tailwind": "tailwindcss build ./tailwind/tailwind.css -o ./tailwind/output.css",
14
15
  "storybook": "concurrently \"npm run watch:tailwind\" \"npm run watch:storybook\"",
15
16
  "watch:storybook": "storybook dev -p 6006",
16
- "watch:tailwind": "tailwindcss build ./tailwind/tailwind.css -o ./tailwind/output.css --watch"
17
+ "watch:tailwind": "tailwindcss build ./tailwind/tailwind.css -o ./tailwind/output.css --watch",
18
+ "test": "vitest",
19
+ "coverage": "vitest run --coverage"
17
20
  },
18
21
  "dependencies": {
22
+ "@storybook/addon-actions": "^7.4.5",
19
23
  "concurrently": "^8.2.1",
20
24
  "font-awesome": "^4.7.0",
25
+ "happy-dom": "^12.8.0",
21
26
  "vue": "^3.3.4"
22
27
  },
23
28
  "devDependencies": {
@@ -25,18 +30,20 @@
25
30
  "@storybook/addon-essentials": "^7.4.5",
26
31
  "@storybook/addon-interactions": "^7.4.5",
27
32
  "@storybook/addon-links": "^7.4.5",
33
+ "@storybook/addon-mdx-gfm": "^7.4.5",
28
34
  "@storybook/blocks": "^7.4.5",
29
- "@storybook/testing-library": "^0.2.1",
35
+ "@storybook/testing-library": "^0.2.2",
30
36
  "@storybook/vue3": "^7.4.5",
31
37
  "@storybook/vue3-vite": "^7.4.5",
32
38
  "@vitejs/plugin-vue": "^4.2.3",
39
+ "@vitest/coverage-v8": "^0.34.6",
40
+ "@vue/cli-plugin-babel": "^5.0.8",
41
+ "@vue/test-utils": "^2.4.0-alpha.2",
33
42
  "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
43
  "storybook": "^7.4.5",
44
+ "storybook-vue3-router": "^4.0.1",
39
45
  "tailwindcss": "^3.3.3",
40
- "vite": "^4.4.5"
46
+ "vite": "^4.4.5",
47
+ "vitest": "^0.34.6"
41
48
  }
42
49
  }
@@ -0,0 +1,10 @@
1
+ module.exports = {
2
+ semi: true, // Remove semicolons
3
+ trailingComma: 'none', // No trailing commas
4
+ singleQuote: true, // Use single quotes instead of double quotes
5
+ printWidth: 120, // Wrap lines at 120 characters
6
+ tabWidth: 2, // Use 2 spaces for indentation
7
+ useTabs: false, // Use spaces instead of tabs
8
+ bracketSpacing: true, // Space between object literals
9
+ arrowParens: 'avoid' // Avoid parentheses around single arrow function parameters
10
+ };