tournament-brackets-ui 0.1.5 → 0.1.7
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/README.md +90 -2
- package/dist/esm/CollapsedLeft-B9_h6rGo.js +1516 -0
- package/dist/esm/CollapsedLeft-B9_h6rGo.js.map +1 -0
- package/dist/esm/{CollapsedLeft-B9WIyv4c.js → CollapsedLeft-BE2i8A2F.js} +2 -2
- package/dist/esm/{CollapsedLeft-B9WIyv4c.js.map → CollapsedLeft-BE2i8A2F.js.map} +1 -1
- package/dist/esm/{CollapsedLeft-x1JsKAhd.js → CollapsedLeft-BOaPSqPD.js} +2 -2
- package/dist/esm/{CollapsedLeft-x1JsKAhd.js.map → CollapsedLeft-BOaPSqPD.js.map} +1 -1
- package/dist/esm/{CollapsedLeft-DXsLQX-Z.js → CollapsedLeft-C3ozVdwo.js} +2 -2
- package/dist/esm/{CollapsedLeft-DXsLQX-Z.js.map → CollapsedLeft-C3ozVdwo.js.map} +1 -1
- package/dist/esm/{CollapsedLeft-LaxWYzz0.js → CollapsedLeft-C74r0m7e.js} +2 -2
- package/dist/esm/{CollapsedLeft-LaxWYzz0.js.map → CollapsedLeft-C74r0m7e.js.map} +1 -1
- package/dist/esm/{CollapsedLeft-B7d-wuKC.js → CollapsedLeft-C8i-uR2P.js} +2 -2
- package/dist/esm/{CollapsedLeft-B7d-wuKC.js.map → CollapsedLeft-C8i-uR2P.js.map} +1 -1
- package/dist/esm/{CollapsedLeft-Ddq9exRR.js → CollapsedLeft-CG17icM3.js} +2 -2
- package/dist/esm/{CollapsedLeft-Ddq9exRR.js.map → CollapsedLeft-CG17icM3.js.map} +1 -1
- package/dist/esm/{CollapsedLeft-CSZGQ5YM.js → CollapsedLeft-Cc7uvQjF.js} +2 -2
- package/dist/esm/{CollapsedLeft-CSZGQ5YM.js.map → CollapsedLeft-Cc7uvQjF.js.map} +1 -1
- package/dist/esm/{CollapsedLeft-CMx55fgx.js → CollapsedLeft-CfjDTFUH.js} +2 -2
- package/dist/esm/{CollapsedLeft-CMx55fgx.js.map → CollapsedLeft-CfjDTFUH.js.map} +1 -1
- package/dist/esm/{CollapsedLeft-DvUHjAoY.js → CollapsedLeft-CqhwYsaq.js} +2 -2
- package/dist/esm/{CollapsedLeft-DvUHjAoY.js.map → CollapsedLeft-CqhwYsaq.js.map} +1 -1
- package/dist/esm/{CollapsedLeft-96m0vUZi.js → CollapsedLeft-DM-9uRzJ.js} +2 -2
- package/dist/esm/{CollapsedLeft-96m0vUZi.js.map → CollapsedLeft-DM-9uRzJ.js.map} +1 -1
- package/dist/esm/{CollapsedLeft-Bw3A4g5m.js → CollapsedLeft-DUhBfJpw.js} +2 -2
- package/dist/esm/{CollapsedLeft-Bw3A4g5m.js.map → CollapsedLeft-DUhBfJpw.js.map} +1 -1
- package/dist/esm/{CollapsedLeft-zhmfDcrF.js → CollapsedLeft-DtVRWzk1.js} +2 -2
- package/dist/esm/{CollapsedLeft-zhmfDcrF.js.map → CollapsedLeft-DtVRWzk1.js.map} +1 -1
- package/dist/esm/{CollapsedLeft-B_F4rS1H.js → CollapsedLeft-eHpFi14v.js} +2 -2
- package/dist/esm/{CollapsedLeft-B_F4rS1H.js.map → CollapsedLeft-eHpFi14v.js.map} +1 -1
- package/dist/esm/{CollapsedLeft-BVPLIPmM.js → CollapsedLeft-p45iaXUR.js} +2 -2
- package/dist/esm/{CollapsedLeft-BVPLIPmM.js.map → CollapsedLeft-p45iaXUR.js.map} +1 -1
- package/dist/esm/{CollapsedLeft-rMDP8z0e.js → CollapsedLeft-sBTV9pEx.js} +2 -2
- package/dist/esm/{CollapsedLeft-rMDP8z0e.js.map → CollapsedLeft-sBTV9pEx.js.map} +1 -1
- package/dist/esm/{CollapsedLeft-DX-V2QCk.js → CollapsedLeft-xA-PqNHC.js} +2 -2
- package/dist/esm/{CollapsedLeft-DX-V2QCk.js.map → CollapsedLeft-xA-PqNHC.js.map} +1 -1
- package/dist/esm/{CollapsedRight-CR0NqwwL.js → CollapsedRight-6WYJgZMH.js} +2 -2
- package/dist/esm/{CollapsedRight-CR0NqwwL.js.map → CollapsedRight-6WYJgZMH.js.map} +1 -1
- package/dist/esm/{CollapsedRight-C_kUZYwq.js → CollapsedRight-7g2YBQLQ.js} +2 -2
- package/dist/esm/{CollapsedRight-C_kUZYwq.js.map → CollapsedRight-7g2YBQLQ.js.map} +1 -1
- package/dist/esm/{CollapsedRight-B6NPC1gA.js → CollapsedRight-BS7D0Jj2.js} +2 -2
- package/dist/esm/{CollapsedRight-B6NPC1gA.js.map → CollapsedRight-BS7D0Jj2.js.map} +1 -1
- package/dist/esm/{CollapsedRight-Cj57j0l1.js → CollapsedRight-BweQzl9J.js} +2 -2
- package/dist/esm/{CollapsedRight-Cj57j0l1.js.map → CollapsedRight-BweQzl9J.js.map} +1 -1
- package/dist/esm/{CollapsedRight-DwI2xoRE.js → CollapsedRight-CKCddpoX.js} +2 -2
- package/dist/esm/{CollapsedRight-DwI2xoRE.js.map → CollapsedRight-CKCddpoX.js.map} +1 -1
- package/dist/esm/{CollapsedRight-XSAfcdJQ.js → CollapsedRight-CNgsaPAg.js} +2 -2
- package/dist/esm/{CollapsedRight-XSAfcdJQ.js.map → CollapsedRight-CNgsaPAg.js.map} +1 -1
- package/dist/esm/{CollapsedRight-BzDjq-ih.js → CollapsedRight-Cd65Q1qw.js} +2 -2
- package/dist/esm/{CollapsedRight-BzDjq-ih.js.map → CollapsedRight-Cd65Q1qw.js.map} +1 -1
- package/dist/esm/{CollapsedRight-k9yOQkHd.js → CollapsedRight-CqL-z5FT.js} +2 -2
- package/dist/esm/{CollapsedRight-k9yOQkHd.js.map → CollapsedRight-CqL-z5FT.js.map} +1 -1
- package/dist/esm/{CollapsedRight-BNajXlk1.js → CollapsedRight-Cxf4KXWo.js} +2 -2
- package/dist/esm/{CollapsedRight-BNajXlk1.js.map → CollapsedRight-Cxf4KXWo.js.map} +1 -1
- package/dist/esm/{CollapsedRight-CDy7fPvB.js → CollapsedRight-D-7iTfcE.js} +2 -2
- package/dist/esm/{CollapsedRight-CDy7fPvB.js.map → CollapsedRight-D-7iTfcE.js.map} +1 -1
- package/dist/esm/CollapsedRight-D5n5VtJA.js +1644 -0
- package/dist/esm/CollapsedRight-D5n5VtJA.js.map +1 -0
- package/dist/esm/{CollapsedRight-z7Uo5oP2.js → CollapsedRight-DHRSdmIC.js} +2 -2
- package/dist/esm/{CollapsedRight-z7Uo5oP2.js.map → CollapsedRight-DHRSdmIC.js.map} +1 -1
- package/dist/esm/{CollapsedRight-VFFgVXb_.js → CollapsedRight-DIGvxO0r.js} +2 -2
- package/dist/esm/{CollapsedRight-VFFgVXb_.js.map → CollapsedRight-DIGvxO0r.js.map} +1 -1
- package/dist/esm/{CollapsedRight-BtXYv-cg.js → CollapsedRight-DIL_USIO.js} +2 -2
- package/dist/esm/{CollapsedRight-BtXYv-cg.js.map → CollapsedRight-DIL_USIO.js.map} +1 -1
- package/dist/esm/{CollapsedRight-DaSX7cBi.js → CollapsedRight-Dg1Mtuoi.js} +2 -2
- package/dist/esm/{CollapsedRight-DaSX7cBi.js.map → CollapsedRight-Dg1Mtuoi.js.map} +1 -1
- package/dist/esm/{CollapsedRight-CGLt6IHj.js → CollapsedRight-aJk7Rbyr.js} +2 -2
- package/dist/esm/{CollapsedRight-CGLt6IHj.js.map → CollapsedRight-aJk7Rbyr.js.map} +1 -1
- package/dist/esm/{CollapsedRight-CBAkRIGX.js → CollapsedRight-exLptRRB.js} +2 -2
- package/dist/esm/{CollapsedRight-CBAkRIGX.js.map → CollapsedRight-exLptRRB.js.map} +1 -1
- package/dist/esm/{Expanded-Cd2oJ2XI.js → Expanded-0RR9b000.js} +3 -3
- package/dist/esm/{Expanded-Cd2oJ2XI.js.map → Expanded-0RR9b000.js.map} +1 -1
- package/dist/esm/Expanded-BePnONHq.js +2293 -0
- package/dist/esm/Expanded-BePnONHq.js.map +1 -0
- package/dist/esm/{Expanded-B3EDaAob.js → Expanded-C7ILQwLN.js} +3 -3
- package/dist/esm/{Expanded-B3EDaAob.js.map → Expanded-C7ILQwLN.js.map} +1 -1
- package/dist/esm/{Expanded-K0EQVF84.js → Expanded-CDyyFRXd.js} +3 -3
- package/dist/esm/{Expanded-K0EQVF84.js.map → Expanded-CDyyFRXd.js.map} +1 -1
- package/dist/esm/{Expanded-CB6r992J.js → Expanded-CbxP7G0l.js} +3 -3
- package/dist/esm/{Expanded-CB6r992J.js.map → Expanded-CbxP7G0l.js.map} +1 -1
- package/dist/esm/{Expanded-CRhM9JX7.js → Expanded-CkBPD2-C.js} +3 -3
- package/dist/esm/{Expanded-CRhM9JX7.js.map → Expanded-CkBPD2-C.js.map} +1 -1
- package/dist/esm/{Expanded-BK3R6zwK.js → Expanded-D8rY9nTS.js} +3 -3
- package/dist/esm/{Expanded-BK3R6zwK.js.map → Expanded-D8rY9nTS.js.map} +1 -1
- package/dist/esm/{Expanded-CUyAwZQv.js → Expanded-DCH3j2Wz.js} +3 -3
- package/dist/esm/{Expanded-CUyAwZQv.js.map → Expanded-DCH3j2Wz.js.map} +1 -1
- package/dist/esm/{Expanded-DYSZ1Qt8.js → Expanded-DIn2x2Oc.js} +3 -3
- package/dist/esm/{Expanded-DYSZ1Qt8.js.map → Expanded-DIn2x2Oc.js.map} +1 -1
- package/dist/esm/{Expanded-B4grpycb.js → Expanded-DNu-6xRy.js} +3 -3
- package/dist/esm/{Expanded-B4grpycb.js.map → Expanded-DNu-6xRy.js.map} +1 -1
- package/dist/esm/{Expanded-DqoNxP4r.js → Expanded-DdtRfxpg.js} +3 -3
- package/dist/esm/{Expanded-DqoNxP4r.js.map → Expanded-DdtRfxpg.js.map} +1 -1
- package/dist/esm/{Expanded-mHlN79ZL.js → Expanded-DwoHLxfb.js} +3 -3
- package/dist/esm/{Expanded-mHlN79ZL.js.map → Expanded-DwoHLxfb.js.map} +1 -1
- package/dist/esm/{Expanded-jUjTPPuY.js → Expanded-DwxBeua_.js} +3 -3
- package/dist/esm/{Expanded-jUjTPPuY.js.map → Expanded-DwxBeua_.js.map} +1 -1
- package/dist/esm/{Expanded-BS3eGPBi.js → Expanded-EDNp8nEM.js} +3 -3
- package/dist/esm/{Expanded-BS3eGPBi.js.map → Expanded-EDNp8nEM.js.map} +1 -1
- package/dist/esm/{Expanded-DyU57gNh.js → Expanded-WkqEBTov.js} +3 -3
- package/dist/esm/{Expanded-DyU57gNh.js.map → Expanded-WkqEBTov.js.map} +1 -1
- package/dist/esm/{Expanded-BVRxocsH.js → Expanded-jXFvlGYp.js} +3 -3
- package/dist/esm/{Expanded-BVRxocsH.js.map → Expanded-jXFvlGYp.js.map} +1 -1
- package/dist/esm/{Expanded-C-VbpuVW.js → Expanded-vqIZ67MY.js} +3 -3
- package/dist/esm/{Expanded-C-VbpuVW.js.map → Expanded-vqIZ67MY.js.map} +1 -1
- package/dist/esm/{ExpandedBase-B9FhQxDC.js → ExpandedBase-De2clf7F.js} +1 -1
- package/dist/esm/{ExpandedBase-B9FhQxDC.js.map → ExpandedBase-De2clf7F.js.map} +1 -1
- package/dist/esm/{NameRow-Dt7XOpW_.js → NameRow-DVB0TyqE.js} +1 -1
- package/dist/esm/{NameRow-Dt7XOpW_.js.map → NameRow-DVB0TyqE.js.map} +1 -1
- package/dist/esm/{Team-C7UG2ll7.js → Team-CkZdkb4y.js} +1 -1
- package/dist/esm/{Team-C7UG2ll7.js.map → Team-CkZdkb4y.js.map} +1 -1
- package/dist/esm/{TeamsBase-CrjtCJN2.js → TeamsBase-D_E1TJLv.js} +1 -1
- package/dist/esm/{TeamsBase-CrjtCJN2.js.map → TeamsBase-D_E1TJLv.js.map} +1 -1
- package/dist/esm/index.css +1 -1
- package/dist/esm/index.js +51 -48
- package/dist/esm/index.js.map +1 -1
- package/dist/index.cjs +13985 -8531
- package/dist/index.cjs.map +1 -1
- package/dist/index.css +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -1,3 +1,91 @@
|
|
|
1
|
-
# tournament-brackets
|
|
1
|
+
# tournament-brackets-ui
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
A React component library for rendering tournament brackets. Supports both **team** and **individual** brackets in multiple sizes and three layout variants: expanded, collapsed-left, and collapsed-right.
|
|
4
|
+
|
|
5
|
+
## Installation
|
|
6
|
+
|
|
7
|
+
```bash
|
|
8
|
+
npm install tournament-brackets-ui
|
|
9
|
+
```
|
|
10
|
+
|
|
11
|
+
**Peer dependencies:** React 18 or 19, React DOM 18 or 19.
|
|
12
|
+
|
|
13
|
+
## Usage
|
|
14
|
+
|
|
15
|
+
Import the components and optional styles:
|
|
16
|
+
|
|
17
|
+
```jsx
|
|
18
|
+
import { Expanded, CollapsedLeft, CollapsedRight } from "tournament-brackets-ui";
|
|
19
|
+
import "tournament-brackets-ui/style.css";
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
### Components
|
|
23
|
+
|
|
24
|
+
- **`Expanded`** — Full bracket layout with all rounds visible.
|
|
25
|
+
- **`CollapsedLeft`** — Bracket with early rounds collapsed on the left.
|
|
26
|
+
- **`CollapsedRight`** — Bracket with early rounds collapsed on the right.
|
|
27
|
+
|
|
28
|
+
Each component can render either **teams** or **individuals**. Use the `entity` prop or the shorthand subcomponents:
|
|
29
|
+
|
|
30
|
+
```jsx
|
|
31
|
+
// Using entity prop
|
|
32
|
+
<Expanded entity="teams" size={8} teams={teams} />
|
|
33
|
+
<Expanded entity="individuals" size={8} players={players} />
|
|
34
|
+
|
|
35
|
+
// Using shorthand (entity is fixed)
|
|
36
|
+
<Expanded.Teams size={8} teams={teams} />
|
|
37
|
+
<Expanded.Individuals size={8} players={players} />
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
Same pattern for `CollapsedLeft` and `CollapsedRight`.
|
|
41
|
+
|
|
42
|
+
### Supported sizes
|
|
43
|
+
|
|
44
|
+
| Entity | Sizes |
|
|
45
|
+
|------------|---------------------------------|
|
|
46
|
+
| Teams | 8, 9, 10, 11, 12, 13, 14, 16 |
|
|
47
|
+
| Individuals| 8, 9, 10, 11, 12, 13, 14, 15, 16 |
|
|
48
|
+
|
|
49
|
+
You must pass a `size` that matches the length of your `teams` or `players` array.
|
|
50
|
+
|
|
51
|
+
### Data shape
|
|
52
|
+
|
|
53
|
+
**Teams:** an array of strings (e.g. team names or labels).
|
|
54
|
+
|
|
55
|
+
```jsx
|
|
56
|
+
const teams = ["Team A", "Team B", "Team C", "Team D", "Team E", "Team F", "Team G", "Team H"];
|
|
57
|
+
<Expanded.Teams size={8} teams={teams} />
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
**Individuals:** an array of objects with `id`, `name`, and optional `club`.
|
|
61
|
+
|
|
62
|
+
```jsx
|
|
63
|
+
const players = [
|
|
64
|
+
{ id: "E01", name: "Amira Hassan", club: "NFC" },
|
|
65
|
+
{ id: "E02", name: "Jinwoo Park", club: "SJU" },
|
|
66
|
+
// ... one entry per player, length must match size
|
|
67
|
+
];
|
|
68
|
+
<Expanded.Individuals size={8} players={players} />
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
### Styling (optional)
|
|
72
|
+
|
|
73
|
+
**Individuals** — Pass `textStyles` to customize player ID and name/club text:
|
|
74
|
+
|
|
75
|
+
```jsx
|
|
76
|
+
<Expanded.Individuals
|
|
77
|
+
size={8}
|
|
78
|
+
players={players}
|
|
79
|
+
textStyles={{
|
|
80
|
+
playerId: { fontFamily: "Arial", fontSize: 14, color: "#000" },
|
|
81
|
+
playerText: { fontFamily: "Arial", fontSize: 12, color: "#333" },
|
|
82
|
+
}}
|
|
83
|
+
/>
|
|
84
|
+
```
|
|
85
|
+
|
|
86
|
+
**Teams** — For expanded team brackets you can pass `teamIDFontFamily`, `teamIDColor`, and `teamIDFontSize` to style the team ID cell.
|
|
87
|
+
|
|
88
|
+
|
|
89
|
+
## License
|
|
90
|
+
|
|
91
|
+
MIT
|