botc-character-sheet 0.15.0-beta.3 → 0.15.2-beta.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -5,6 +5,6 @@ interface JinxesSectionProps {
5
5
  allCharacters: ResolvedCharacter[];
6
6
  fabledAndLoric: FabledOrLoric[];
7
7
  }
8
- export declare function JinxesAndSpecial({ jinxes, allCharacters, fabledAndLoric, }: JinxesSectionProps): import("preact").JSX.Element;
8
+ export declare function JinxesAndSpecial({ jinxes, allCharacters, fabledAndLoric, }: JinxesSectionProps): import("preact").JSX.Element | null;
9
9
  export {};
10
10
  //# sourceMappingURL=JinxesAndSpecial.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"JinxesAndSpecial.d.ts","sourceRoot":"","sources":["../../src/components/JinxesAndSpecial.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AACnD,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAEvD,UAAU,kBAAkB;IAC1B,MAAM,EAAE,IAAI,EAAE,CAAC;IACf,aAAa,EAAE,iBAAiB,EAAE,CAAC;IACnC,cAAc,EAAE,aAAa,EAAE,CAAC;CACjC;AAED,wBAAgB,gBAAgB,CAAC,EAC/B,MAAM,EACN,aAAa,EACb,cAAc,GACf,EAAE,kBAAkB,gCAoDpB"}
1
+ {"version":3,"file":"JinxesAndSpecial.d.ts","sourceRoot":"","sources":["../../src/components/JinxesAndSpecial.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AACnD,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAEvD,UAAU,kBAAkB;IAC1B,MAAM,EAAE,IAAI,EAAE,CAAC;IACf,aAAa,EAAE,iBAAiB,EAAE,CAAC;IACnC,cAAc,EAAE,aAAa,EAAE,CAAC;CACjC;AAED,wBAAgB,gBAAgB,CAAC,EAC/B,MAAM,EACN,aAAa,EACb,cAAc,GACf,EAAE,kBAAkB,uCA4EpB"}
package/dist/index.js CHANGED
@@ -1,31 +1,31 @@
1
- import { options as j, Fragment as m } from "preact";
2
- var O = 0;
1
+ import { options as S, Fragment as u } from "preact";
2
+ var E = 0;
3
3
  function e(i, t, a, r, n, h) {
4
4
  t || (t = {});
5
- var l, s, o = t;
6
- if ("ref" in o) for (s in o = {}, t) s == "ref" ? l = t[s] : o[s] = t[s];
7
- var c = { type: i, props: o, key: a, ref: l, __k: null, __: null, __b: 0, __e: null, __c: null, constructor: void 0, __v: --O, __i: -1, __u: 0, __source: n, __self: h };
8
- if (typeof i == "function" && (l = i.defaultProps)) for (s in l) o[s] === void 0 && (o[s] = l[s]);
9
- return j.vnode && j.vnode(c), c;
5
+ var l, o, s = t;
6
+ if ("ref" in s) for (o in s = {}, t) o == "ref" ? l = t[o] : s[o] = t[o];
7
+ var d = { type: i, props: s, key: a, ref: l, __k: null, __: null, __b: 0, __e: null, __c: null, constructor: void 0, __v: --E, __i: -1, __u: 0, __source: n, __self: h };
8
+ if (typeof i == "function" && (l = i.defaultProps)) for (o in l) s[o] === void 0 && (s[o] = l[o]);
9
+ return S.vnode && S.vnode(d), d;
10
10
  }
11
- function E(i) {
11
+ function C(i) {
12
12
  if (i.startsWith("#") && (i = i.slice(1)), i.length === 3 && (i = i.split("").map((n) => n + n).join("")), i.length !== 6)
13
13
  throw new Error("Invalid HEX color.");
14
14
  const t = parseInt(i.slice(0, 2), 16), a = parseInt(i.slice(2, 4), 16), r = parseInt(i.slice(4, 6), 16);
15
15
  return [t, a, r];
16
16
  }
17
- function C(i, t, a) {
17
+ function z(i, t, a) {
18
18
  const r = (n) => {
19
19
  const h = n.toString(16);
20
20
  return h.length === 1 ? "0" + h : h;
21
21
  };
22
22
  return `#${r(i)}${r(t)}${r(a)}`;
23
23
  }
24
- function z(i, t) {
25
- const [a, r, n] = E(i), h = Math.round(a * t), l = Math.round(r * t), s = Math.round(n * t);
26
- return C(h, l, s);
24
+ function R(i, t) {
25
+ const [a, r, n] = C(i), h = Math.round(a * t), l = Math.round(r * t), o = Math.round(n * t);
26
+ return z(h, l, o);
27
27
  }
28
- const f = {
28
+ const p = {
29
29
  townsfolk: "#00469e",
30
30
  outsider: "#00469e",
31
31
  minion: "#580709",
@@ -34,14 +34,14 @@ const f = {
34
34
  traveller: "#390758ff",
35
35
  loric: "#1f5807"
36
36
  };
37
- function w(i) {
37
+ function k(i) {
38
38
  return Array.isArray(i) ? i : [i];
39
39
  }
40
- function D(i, t = 20) {
40
+ function A(i, t = 20) {
41
41
  if (i.length === 0)
42
42
  return "transparent";
43
43
  if (i.length === 1) {
44
- const r = z(i[0], 0.4);
44
+ const r = R(i[0], 0.4);
45
45
  return `linear-gradient(${t}deg, ${i[0]} 50%, ${r})`;
46
46
  }
47
47
  const a = i.map((r, n) => {
@@ -50,8 +50,8 @@ function D(i, t = 20) {
50
50
  }).join(", ");
51
51
  return `linear-gradient(${t}deg, ${a})`;
52
52
  }
53
- function I(i, t = 90) {
54
- const a = w(i);
53
+ function j(i, t = 90) {
54
+ const a = k(i);
55
55
  if (a.length === 1)
56
56
  return a[0];
57
57
  const r = a.map((n, h) => {
@@ -60,46 +60,58 @@ function I(i, t = 90) {
60
60
  }).join(", ");
61
61
  return `linear-gradient(${t}deg, ${r})`;
62
62
  }
63
- function R({
63
+ function H({
64
64
  jinxes: i,
65
65
  allCharacters: t,
66
66
  fabledAndLoric: a
67
67
  }) {
68
68
  const r = new Map(
69
- t.map((o) => [o.id.toLowerCase(), o])
70
- ), n = i.length > 4, h = n ? Math.ceil(i.length / 2) : i.length;
71
- let l, s;
72
- return a.length ? (l = i.map((o, c) => /* @__PURE__ */ e(p, { jinx: o, charMap: r }, `lc-${c}`)), s = a.map((o, c) => /* @__PURE__ */ e(_, { item: o }, `rc-${c}`))) : n ? (l = i.slice(0, h).map((o, c) => /* @__PURE__ */ e(p, { jinx: o, charMap: r }, `lc-${c}`)), s = i.slice(h).map((o, c) => /* @__PURE__ */ e(p, { jinx: o, charMap: r }, `rc-${c}`))) : l = i.map((o, c) => /* @__PURE__ */ e(p, { jinx: o, charMap: r }, `lc-${c}`)), /* @__PURE__ */ e("div", { className: "jinxes-section", children: [
69
+ t.map((m) => [m.id.toLowerCase(), m])
70
+ ), n = i.length > 0 && a.length > 0, h = i.length > 0 && a.length === 0, l = i.length === 0 && a.length > 0, o = [...i, ...a], s = n || i.length > 4 || a.length > 4, d = s ? Math.ceil(o.length / 2) : o.length;
71
+ let c, y;
72
+ if (n)
73
+ c = i.map((m, g) => /* @__PURE__ */ e(b, { jinx: m, charMap: r }, `lc-${g}`)), y = a.map((m, g) => /* @__PURE__ */ e(x, { item: m }, `rc-${g}`));
74
+ else if (h && s)
75
+ c = i.slice(0, d).map((m, g) => /* @__PURE__ */ e(b, { jinx: m, charMap: r }, `lc-${g}`)), y = i.slice(d).map((m, g) => /* @__PURE__ */ e(b, { jinx: m, charMap: r }, `rc-${g}`));
76
+ else if (l && s)
77
+ c = a.slice(0, d).map((m, g) => /* @__PURE__ */ e(x, { item: m }, `lc-${g}`)), y = a.slice(d).map((m, g) => /* @__PURE__ */ e(x, { item: m }, `rc-${g}`));
78
+ else if (h)
79
+ c = i.map((m, g) => /* @__PURE__ */ e(b, { jinx: m, charMap: r }, `lc-${g}`));
80
+ else if (l)
81
+ c = a.map((m, g) => /* @__PURE__ */ e(x, { item: m }, `lc-${g}`));
82
+ else
83
+ return null;
84
+ return /* @__PURE__ */ e("div", { className: "jinxes-section", children: [
73
85
  /* @__PURE__ */ e("h2", { className: "section-title" }),
74
- s ? /* @__PURE__ */ e("div", { className: "jinxes-list jinxes-two-columns", children: [
86
+ y ? /* @__PURE__ */ e("div", { className: "jinxes-list jinxes-two-columns", children: [
75
87
  /* @__PURE__ */ e("div", { className: "jinx-column", children: [
76
- ...l
88
+ ...c
77
89
  ] }),
78
90
  /* @__PURE__ */ e("div", { className: "jinx-column", children: [
79
- ...s
91
+ ...y
80
92
  ] })
81
93
  ] }) : /* @__PURE__ */ e("div", { className: "jinxes-list", children: [
82
- ...l
94
+ ...c
83
95
  ] })
84
96
  ] });
85
97
  }
86
- const p = ({ charMap: i, jinx: t }) => {
98
+ const b = ({ charMap: i, jinx: t }) => {
87
99
  const a = i.get(t.characters[0]), r = i.get(t.characters[1]);
88
100
  return /* @__PURE__ */ e("div", { className: "jinx-item", children: [
89
101
  /* @__PURE__ */ e("div", { className: "jinx-icons", children: [
90
- a && /* @__PURE__ */ e("div", { className: "jinx-icon-wrapper", children: b(a) ? /* @__PURE__ */ e(
102
+ a && /* @__PURE__ */ e("div", { className: "jinx-icon-wrapper", children: v(a) ? /* @__PURE__ */ e(
91
103
  "img",
92
104
  {
93
- src: b(a),
105
+ src: v(a),
94
106
  alt: a.name,
95
107
  className: "jinx-icon"
96
108
  }
97
109
  ) : /* @__PURE__ */ e("div", { className: "jinx-icon-placeholder", children: a.name.charAt(0) }) }),
98
110
  /* @__PURE__ */ e("span", { className: "jinx-divider" }),
99
- r && /* @__PURE__ */ e("div", { className: "jinx-icon-wrapper", children: b(r) ? /* @__PURE__ */ e(
111
+ r && /* @__PURE__ */ e("div", { className: "jinx-icon-wrapper", children: v(r) ? /* @__PURE__ */ e(
100
112
  "img",
101
113
  {
102
- src: b(r),
114
+ src: v(r),
103
115
  alt: r.name,
104
116
  className: "jinx-icon"
105
117
  }
@@ -108,7 +120,7 @@ const p = ({ charMap: i, jinx: t }) => {
108
120
  /* @__PURE__ */ e("p", { className: "jinx-text", children: t.jinx })
109
121
  ] });
110
122
  };
111
- function _({ item: i }) {
123
+ function x({ item: i }) {
112
124
  return /* @__PURE__ */ e("div", { className: "jinx-item loric", children: [
113
125
  /* @__PURE__ */ e("div", { className: "loric-spacer" }),
114
126
  i.image ? /* @__PURE__ */ e("img", { src: i.image, alt: i.name, className: "jinx-icon loric" }) : /* @__PURE__ */ e("div", { className: "jinx-icon-placeholder", children: i.name.charAt(0) }),
@@ -118,10 +130,10 @@ function _({ item: i }) {
118
130
  ] })
119
131
  ] });
120
132
  }
121
- function b(i) {
133
+ function v(i) {
122
134
  return i.wiki_image ? i.wiki_image : i.image ? typeof i.image == "string" ? i.image : i.image[0] : null;
123
135
  }
124
- const H = [
136
+ const _ = [
125
137
  {
126
138
  characters: [
127
139
  "alchemist",
@@ -190,6 +202,13 @@ const H = [
190
202
  jinx: "If the Princess nominated & executed a player on their 1st day, no one dies to the Al-Hadikhia tonight.",
191
203
  oldJinx: "If the Princess nominated & executed a player on their 1st day, no one dies to the Al-Hadikhia ability tonight."
192
204
  },
205
+ {
206
+ characters: [
207
+ "alhadikhia",
208
+ "mastermind"
209
+ ],
210
+ jinx: "If the Al-Hadikhia dies by execution, and the Mastermind is alive, the Al-Hadikhia chooses 3 good players tonight: if all 3 choose to live, evil wins. Otherwise, good wins."
211
+ },
193
212
  {
194
213
  characters: [
195
214
  "boffin",
@@ -1093,7 +1112,7 @@ const H = [
1093
1112
  oldJinx: "If the Exorcist chooses the Yaggababble, the Yaggababble ability does not kill tonight."
1094
1113
  }
1095
1114
  ];
1096
- function G(i) {
1115
+ function B(i) {
1097
1116
  const t = {
1098
1117
  townsfolk: [],
1099
1118
  outsider: [],
@@ -1111,9 +1130,9 @@ function G(i) {
1111
1130
  }
1112
1131
  return t;
1113
1132
  }
1114
- function B(i, t = !1) {
1133
+ function G(i, t = !1) {
1115
1134
  const a = new Set(i.map((n) => n.id.toLowerCase())), r = [];
1116
- for (const n of H) {
1135
+ for (const n of _) {
1117
1136
  const [h, l] = n.characters;
1118
1137
  a.has(h) && a.has(l) && (t && n.oldJinx ? r.push({
1119
1138
  characters: n.characters,
@@ -1127,25 +1146,25 @@ function B(i, t = !1) {
1127
1146
  const h = typeof n == "object" && n !== null, l = "jinxes" in n;
1128
1147
  if (!h || !l) continue;
1129
1148
  console.log("char.jinxes:", n.jinxes);
1130
- const s = n, o = s.id.toLowerCase();
1131
- if (a.has(o) && s.jinxes)
1132
- for (const c of s.jinxes) {
1133
- const d = c.id.toLowerCase();
1134
- if (console.log(`${n.id} is jinxed with ${d}`), a.has(d) || (console.log("characterIds doesnt contain charId", d), console.log("characterIds:", a)), a.has(d)) {
1149
+ const o = n, s = o.id.toLowerCase();
1150
+ if (a.has(s) && o.jinxes)
1151
+ for (const d of o.jinxes) {
1152
+ const c = d.id.toLowerCase();
1153
+ if (console.log(`${n.id} is jinxed with ${c}`), a.has(c) || (console.log("characterIds doesnt contain charId", c), console.log("characterIds:", a)), a.has(c)) {
1135
1154
  const y = r.some(
1136
- (g) => g.characters[0] === o && g.characters[1] === d || g.characters[0] === d && g.characters[1] === o
1155
+ (m) => m.characters[0] === s && m.characters[1] === c || m.characters[0] === c && m.characters[1] === s
1137
1156
  );
1138
1157
  console.log("Jinx already exists:", y), y || r.push({
1139
- characters: [o, d],
1140
- jinx: c.reason
1158
+ characters: [s, c],
1159
+ jinx: d.reason
1141
1160
  });
1142
1161
  }
1143
1162
  }
1144
1163
  }
1145
1164
  return r;
1146
1165
  }
1147
- const k = (i) => i.wiki_image ? i.wiki_image : i.image ? typeof i.image == "string" ? i.image : i.image[0] : null;
1148
- function S(i, t, a) {
1166
+ const N = (i) => i.wiki_image ? i.wiki_image : i.image ? typeof i.image == "string" ? i.image : i.image[0] : null;
1167
+ function M(i, t, a) {
1149
1168
  const r = [];
1150
1169
  return t.forEach((n) => {
1151
1170
  n.characters[0] === i.id ? r.push(n.characters[1]) : n.characters[1] === i.id && r.push(n.characters[0]);
@@ -1161,45 +1180,45 @@ function $({
1161
1180
  jinxes: n = [],
1162
1181
  showSwirls: h = !0,
1163
1182
  includeMargins: l = !1,
1164
- solidTitle: s = !1,
1165
- iconScale: o = 1.6,
1166
- appearance: c = "normal",
1167
- fabledOrLoric: d = [],
1183
+ solidTitle: o = !1,
1184
+ iconScale: s = 1.6,
1185
+ appearance: d = "normal",
1186
+ fabledOrLoric: c = [],
1168
1187
  inlineJinxIcons: y = !1
1169
1188
  }) {
1170
- const g = [
1189
+ const m = [
1171
1190
  {
1172
1191
  key: "townsfolk",
1173
1192
  title: "Townsfolk",
1174
1193
  chars: a.townsfolk,
1175
- color: f.townsfolk
1194
+ color: p.townsfolk
1176
1195
  },
1177
1196
  {
1178
1197
  key: "outsider",
1179
1198
  title: "Outsiders",
1180
1199
  chars: a.outsider,
1181
- color: f.outsider
1200
+ color: p.outsider
1182
1201
  },
1183
1202
  {
1184
1203
  key: "minion",
1185
1204
  title: "Minions",
1186
1205
  chars: a.minion,
1187
- color: f.minion
1206
+ color: p.minion
1188
1207
  },
1189
1208
  {
1190
1209
  key: "demon",
1191
1210
  title: "Demons",
1192
1211
  chars: a.demon,
1193
- color: f.demon
1212
+ color: p.demon
1194
1213
  }
1195
- ].filter((u) => u.chars.length > 0), T = w(r), A = D(T, 20), P = ["character-sheet", c !== "normal" ? `appearance-${c}` : ""].filter(Boolean).join(" ");
1214
+ ].filter((f) => f.chars.length > 0), g = k(r), O = A(g, 20), P = ["character-sheet", d !== "normal" ? `appearance-${d}` : ""].filter(Boolean).join(" ");
1196
1215
  return /* @__PURE__ */ e(
1197
1216
  "div",
1198
1217
  {
1199
1218
  className: P,
1200
1219
  id: "character-sheet",
1201
1220
  style: {
1202
- "--header-gradient": A,
1221
+ "--header-gradient": O,
1203
1222
  transform: l ? "scale(0.952)" : void 0
1204
1223
  },
1205
1224
  children: [
@@ -1218,18 +1237,18 @@ function $({
1218
1237
  showSwirls: h,
1219
1238
  title: i,
1220
1239
  author: t,
1221
- solidHeader: s
1240
+ solidHeader: o
1222
1241
  }
1223
1242
  ),
1224
1243
  /* @__PURE__ */ e("div", { className: "characters-grid", children: [
1225
- g.map((u, W) => /* @__PURE__ */ e(m, { children: [
1244
+ m.map((f, W) => /* @__PURE__ */ e(u, { children: [
1226
1245
  /* @__PURE__ */ e(
1227
1246
  U,
1228
1247
  {
1229
- title: u.title.toUpperCase(),
1230
- characters: u.chars,
1231
- charNameColor: u.color,
1232
- iconScale: o,
1248
+ title: f.title.toUpperCase(),
1249
+ characters: f.chars,
1250
+ charNameColor: f.color,
1251
+ iconScale: s,
1233
1252
  jinxes: n,
1234
1253
  allCharacters: [
1235
1254
  ...a.townsfolk,
@@ -1239,16 +1258,16 @@ function $({
1239
1258
  ],
1240
1259
  inlineJinxIcons: y
1241
1260
  },
1242
- u.key
1261
+ f.key
1243
1262
  ),
1244
- W < g.length - 1 && /* @__PURE__ */ e("img", { src: "/images/divider.png", className: "section-divider" })
1263
+ W < m.length - 1 && /* @__PURE__ */ e("img", { src: "/images/divider.png", className: "section-divider" })
1245
1264
  ] })),
1246
- (n.length > 0 || d.length > 0) && /* @__PURE__ */ e(m, { children: [
1265
+ (n.length > 0 || c.length > 0) && /* @__PURE__ */ e(u, { children: [
1247
1266
  /* @__PURE__ */ e("img", { src: "/images/divider.png", className: "section-divider" }),
1248
1267
  /* @__PURE__ */ e(
1249
- R,
1268
+ H,
1250
1269
  {
1251
- fabledAndLoric: d,
1270
+ fabledAndLoric: c,
1252
1271
  jinxes: n,
1253
1272
  allCharacters: [
1254
1273
  ...a.townsfolk,
@@ -1279,7 +1298,7 @@ function V({
1279
1298
  author: a,
1280
1299
  solidHeader: r = !1
1281
1300
  }) {
1282
- return /* @__PURE__ */ e(m, { children: [
1301
+ return /* @__PURE__ */ e(u, { children: [
1283
1302
  /* @__PURE__ */ e("h1", { className: "sheet-header", children: [
1284
1303
  i && /* @__PURE__ */ e(
1285
1304
  "img",
@@ -1312,7 +1331,7 @@ function V({
1312
1331
  ] });
1313
1332
  }
1314
1333
  function F({ color: i }) {
1315
- const t = I(i, 180);
1334
+ const t = j(i, 180);
1316
1335
  return /* @__PURE__ */ e("div", { className: "sidebar-container", children: [
1317
1336
  /* @__PURE__ */ e("div", { className: "sidebar-background" }),
1318
1337
  /* @__PURE__ */ e(
@@ -1333,53 +1352,53 @@ function U({
1333
1352
  allCharacters: h,
1334
1353
  inlineJinxIcons: l
1335
1354
  }) {
1336
- const s = t.length > 8 ? "space-between" : t.length % 2 === 0 ? "space-around" : "flex-start";
1355
+ const o = t.length > 8 ? "space-between" : t.length % 2 === 0 ? "space-around" : "flex-start";
1337
1356
  return /* @__PURE__ */ e("div", { className: "character-section", children: [
1338
1357
  /* @__PURE__ */ e("h2", { className: "section-title", children: i }),
1339
1358
  /* @__PURE__ */ e("div", { className: "character-list", children: [
1340
- /* @__PURE__ */ e("div", { className: "character-column", style: { justifyContent: s }, children: t.slice(0, Math.ceil(t.length / 2)).map((o) => /* @__PURE__ */ e(
1341
- N,
1359
+ /* @__PURE__ */ e("div", { className: "character-column", style: { justifyContent: o }, children: t.slice(0, Math.ceil(t.length / 2)).map((s) => /* @__PURE__ */ e(
1360
+ J,
1342
1361
  {
1343
- character: o,
1362
+ character: s,
1344
1363
  color: a,
1345
1364
  iconScale: r,
1346
- jinxedCharacters: S(o, n, h),
1365
+ jinxedCharacters: M(s, n, h),
1347
1366
  inlineJinxIcons: l
1348
1367
  },
1349
- o.id
1368
+ s.id
1350
1369
  )) }),
1351
- /* @__PURE__ */ e("div", { className: "character-column", style: { justifyContent: s }, children: t.slice(Math.ceil(t.length / 2), t.length).map((o) => /* @__PURE__ */ e(
1352
- N,
1370
+ /* @__PURE__ */ e("div", { className: "character-column", style: { justifyContent: o }, children: t.slice(Math.ceil(t.length / 2), t.length).map((s) => /* @__PURE__ */ e(
1371
+ J,
1353
1372
  {
1354
- character: o,
1373
+ character: s,
1355
1374
  color: a,
1356
1375
  iconScale: r,
1357
- jinxedCharacters: S(o, n, h),
1376
+ jinxedCharacters: M(s, n, h),
1358
1377
  inlineJinxIcons: l
1359
1378
  },
1360
- o.id
1379
+ s.id
1361
1380
  )) })
1362
1381
  ] })
1363
1382
  ] });
1364
1383
  }
1365
- function N({
1384
+ function J({
1366
1385
  character: i,
1367
1386
  color: t,
1368
1387
  iconScale: a,
1369
1388
  jinxedCharacters: r,
1370
1389
  inlineJinxIcons: n
1371
1390
  }) {
1372
- const h = (s) => {
1373
- const o = s.match(/^(.*?)(\[.*?\])$/);
1374
- if (o) {
1375
- const [, c, d] = o;
1376
- return /* @__PURE__ */ e(m, { children: [
1377
- c,
1378
- /* @__PURE__ */ e("strong", { className: "setup-ability", children: d })
1391
+ const h = (o) => {
1392
+ const s = o.match(/^(.*?)(\[.*?\])$/);
1393
+ if (s) {
1394
+ const [, d, c] = s;
1395
+ return /* @__PURE__ */ e(u, { children: [
1396
+ d,
1397
+ /* @__PURE__ */ e("strong", { className: "setup-ability", children: c })
1379
1398
  ] });
1380
1399
  }
1381
- return s;
1382
- }, l = k(i);
1400
+ return o;
1401
+ }, l = N(i);
1383
1402
  return /* @__PURE__ */ e("div", { className: "character-card", children: [
1384
1403
  /* @__PURE__ */ e("div", { className: "character-icon-wrapper", children: l ? /* @__PURE__ */ e(
1385
1404
  "img",
@@ -1400,25 +1419,25 @@ function N({
1400
1419
  /* @__PURE__ */ e("div", { className: "character-info", children: [
1401
1420
  /* @__PURE__ */ e("h3", { className: "character-name", style: { color: t }, children: [
1402
1421
  i.name,
1403
- n && r.length > 0 && /* @__PURE__ */ e("span", { className: "inline-jinx-icons", children: r.map((s) => {
1404
- const o = k(s);
1405
- return o ? /* @__PURE__ */ e(
1422
+ n && r.length > 0 && /* @__PURE__ */ e("span", { className: "inline-jinx-icons", children: r.map((o) => {
1423
+ const s = N(o);
1424
+ return s ? /* @__PURE__ */ e(
1406
1425
  "img",
1407
1426
  {
1408
- src: o,
1409
- alt: s.name,
1427
+ src: s,
1428
+ alt: o.name,
1410
1429
  className: "inline-jinx-icon",
1411
- title: `Jinxed with ${s.name}`
1430
+ title: `Jinxed with ${o.name}`
1412
1431
  },
1413
- s.id
1432
+ o.id
1414
1433
  ) : /* @__PURE__ */ e(
1415
1434
  "span",
1416
1435
  {
1417
1436
  className: "inline-jinx-icon-placeholder",
1418
- title: `Jinxed with ${s.name}`,
1419
- children: s.name.charAt(0)
1437
+ title: `Jinxed with ${o.name}`,
1438
+ children: o.name.charAt(0)
1420
1439
  },
1421
- s.id
1440
+ o.id
1422
1441
  );
1423
1442
  }) })
1424
1443
  ] }),
@@ -1426,7 +1445,7 @@ function N({
1426
1445
  ] })
1427
1446
  ] });
1428
1447
  }
1429
- const M = /* @__PURE__ */ new Set([
1448
+ const D = /* @__PURE__ */ new Set([
1430
1449
  "the",
1431
1450
  "of",
1432
1451
  "in",
@@ -1446,21 +1465,21 @@ const M = /* @__PURE__ */ new Set([
1446
1465
  "upon",
1447
1466
  "after",
1448
1467
  "before"
1449
- ]), x = (i, t) => M.has(i) || t === 0 && M.has(i.toLowerCase()), Y = (i) => i.split(/\s+/).reduce((t, a, r, n) => {
1450
- const h = x(a, r), l = r > 0 && x(n[r - 1], r - 1);
1468
+ ]), w = (i, t) => D.has(i) || t === 0 && D.has(i.toLowerCase()), Y = (i) => i.split(/\s+/).reduce((t, a, r, n) => {
1469
+ const h = w(a, r), l = r > 0 && w(n[r - 1], r - 1);
1451
1470
  if (r === 0 || h !== l) {
1452
- const o = [];
1453
- for (let d = r; d < n.length && x(n[d], d) === h; d++)
1454
- o.push(n[d]);
1455
- const c = t.length > 0;
1471
+ const s = [];
1472
+ for (let c = r; c < n.length && w(n[c], c) === h; c++)
1473
+ s.push(n[c]);
1474
+ const d = t.length > 0;
1456
1475
  t.push(
1457
1476
  /* @__PURE__ */ e(
1458
1477
  "span",
1459
1478
  {
1460
1479
  className: h ? "minor-word" : void 0,
1461
1480
  children: [
1462
- c && " ",
1463
- o.join(" ")
1481
+ d && " ",
1482
+ s.join(" ")
1464
1483
  ]
1465
1484
  },
1466
1485
  r
@@ -1469,7 +1488,7 @@ const M = /* @__PURE__ */ new Set([
1469
1488
  }
1470
1489
  return t;
1471
1490
  }, []);
1472
- function v(i) {
1491
+ function I(i) {
1473
1492
  return typeof i == "string" ? i === "dawn" ? "/images/dawn-icon.png" : i === "dusk" ? "/images/dusk-icon.png" : i === "minioninfo" ? "/images/minioninfo.png" : "/images/demoninfo.png" : typeof i.image == "string" ? i.image : Array.isArray(i.image) && i.image.length ? i.image[0] : i.wiki_image;
1474
1493
  }
1475
1494
  const Z = (i) => {
@@ -1477,11 +1496,11 @@ const Z = (i) => {
1477
1496
  return /* @__PURE__ */ e("div", { class: "night-orders-container", children: [
1478
1497
  /* @__PURE__ */ e("div", { class: "night-order", children: [
1479
1498
  /* @__PURE__ */ e("p", { children: "First Night:" }),
1480
- /* @__PURE__ */ e("div", { class: "icon-row", children: t.map((r) => /* @__PURE__ */ e("img", { src: v(r), class: "icon" })) })
1499
+ /* @__PURE__ */ e("div", { class: "icon-row", children: t.map((r) => /* @__PURE__ */ e("img", { src: I(r), class: "icon" })) })
1481
1500
  ] }),
1482
1501
  /* @__PURE__ */ e("div", { class: "night-order", children: [
1483
1502
  /* @__PURE__ */ e("p", { children: "Other Nights:" }),
1484
- /* @__PURE__ */ e("div", { class: "icon-row", children: a.map((r) => /* @__PURE__ */ e("img", { src: v(r), class: "icon" })) })
1503
+ /* @__PURE__ */ e("div", { class: "icon-row", children: a.map((r) => /* @__PURE__ */ e("img", { src: I(r), class: "icon" })) })
1485
1504
  ] })
1486
1505
  ] });
1487
1506
  }, K = {
@@ -1496,7 +1515,7 @@ const Z = (i) => {
1496
1515
  13: [9, 0, 3, 1],
1497
1516
  14: [9, 1, 3, 1],
1498
1517
  "15+": [9, 2, 3, 1]
1499
- }, q = () => /* @__PURE__ */ e(m, { children: /* @__PURE__ */ e("div", { className: "player-count-container", children: [
1518
+ }, q = () => /* @__PURE__ */ e(u, { children: /* @__PURE__ */ e("div", { className: "player-count-container", children: [
1500
1519
  /* @__PURE__ */ e("div", { className: "count-column titles", children: [
1501
1520
  /* @__PURE__ */ e("div", { className: "row-title", children: "Players" }),
1502
1521
  /* @__PURE__ */ e("div", { className: "row-title good-count", children: "Townsfolk" }),
@@ -1520,13 +1539,13 @@ const Z = (i) => {
1520
1539
  nightOrders: h = { first: [], other: [] },
1521
1540
  displayPlayerCounts: l = !0
1522
1541
  }) => {
1523
- const s = () => {
1524
- const c = i.split("&");
1525
- return c.map((d, y) => /* @__PURE__ */ e(m, { children: [
1526
- r ? Y(d) : d,
1527
- y < c.length - 1 && /* @__PURE__ */ e("span", { className: "ampersand", children: "&" })
1542
+ const o = () => {
1543
+ const d = i.split("&");
1544
+ return d.map((c, y) => /* @__PURE__ */ e(u, { children: [
1545
+ r ? Y(c) : c,
1546
+ y < d.length - 1 && /* @__PURE__ */ e("span", { className: "ampersand", children: "&" })
1528
1547
  ] }));
1529
- }, o = I(t, 180);
1548
+ }, s = j(t, 180);
1530
1549
  return /* @__PURE__ */ e(
1531
1550
  "div",
1532
1551
  {
@@ -1535,12 +1554,12 @@ const Z = (i) => {
1535
1554
  transform: a ? "scale(0.952)" : void 0
1536
1555
  },
1537
1556
  children: [
1538
- /* @__PURE__ */ e("div", { className: "sheet-background", children: /* @__PURE__ */ e("div", { className: "title-container", children: /* @__PURE__ */ e("h1", { children: s() }) }) }),
1557
+ /* @__PURE__ */ e("div", { className: "sheet-background", children: /* @__PURE__ */ e("div", { className: "title-container", children: /* @__PURE__ */ e("h1", { children: o() }) }) }),
1539
1558
  /* @__PURE__ */ e(
1540
1559
  "div",
1541
1560
  {
1542
1561
  className: "sheet-back-overlay",
1543
- style: { background: o }
1562
+ style: { background: s }
1544
1563
  }
1545
1564
  ),
1546
1565
  /* @__PURE__ */ e("div", { className: "back-info-container", children: [
@@ -1550,24 +1569,24 @@ const Z = (i) => {
1550
1569
  ]
1551
1570
  }
1552
1571
  );
1553
- }, Q = (i) => /* @__PURE__ */ e(m, { children: [
1554
- /* @__PURE__ */ e(J, { ...i, children: [
1572
+ }, Q = (i) => /* @__PURE__ */ e(u, { children: [
1573
+ /* @__PURE__ */ e(L, { ...i, children: [
1555
1574
  /* @__PURE__ */ e("div", { className: "night-sheet-heading", children: [
1556
1575
  /* @__PURE__ */ e("h3", { className: "night-title", children: "First Night" }),
1557
1576
  /* @__PURE__ */ e("h3", { className: "script-title", children: i.title })
1558
1577
  ] }),
1559
- /* @__PURE__ */ e("div", { className: "night-sheet-order", children: i.firstNightOrder.map((t) => /* @__PURE__ */ e(L, { entry: t, night: "first" })) })
1578
+ /* @__PURE__ */ e("div", { className: "night-sheet-order", children: i.firstNightOrder.map((t) => /* @__PURE__ */ e(T, { entry: t, night: "first" })) })
1560
1579
  ] }),
1561
- /* @__PURE__ */ e(J, { ...i, children: [
1580
+ /* @__PURE__ */ e(L, { ...i, children: [
1562
1581
  /* @__PURE__ */ e("div", { className: "night-sheet-heading", children: [
1563
1582
  /* @__PURE__ */ e("h3", { className: "night-title", children: "Other Nights" }),
1564
1583
  /* @__PURE__ */ e("h3", { className: "script-title", children: i.title })
1565
1584
  ] }),
1566
- /* @__PURE__ */ e("div", { className: "night-sheet-order", children: i.otherNightOrder.map((t) => /* @__PURE__ */ e(L, { entry: t, night: "other" })) })
1585
+ /* @__PURE__ */ e("div", { className: "night-sheet-order", children: i.otherNightOrder.map((t) => /* @__PURE__ */ e(T, { entry: t, night: "other" })) })
1567
1586
  ] })
1568
- ] }), J = (i) => {
1569
- const t = w(i.color), a = D(t, 20), r = I(i.color, 180);
1570
- return /* @__PURE__ */ e(m, { children: /* @__PURE__ */ e(
1587
+ ] }), L = (i) => {
1588
+ const t = k(i.color), a = A(t, 20), r = j(i.color, 180);
1589
+ return /* @__PURE__ */ e(u, { children: /* @__PURE__ */ e(
1571
1590
  "div",
1572
1591
  {
1573
1592
  className: "night-sheet",
@@ -1602,18 +1621,18 @@ const Z = (i) => {
1602
1621
  ]
1603
1622
  }
1604
1623
  ) });
1605
- }, ee = () => /* @__PURE__ */ e("img", { className: "reminder-icon", src: "/images/reminder.png" }), L = (i) => {
1606
- const t = v(i.entry), { reminderText: a, name: r } = ie(i.entry, i.night), n = typeof i.entry == "string" ? "#222" : f[i.entry.team];
1624
+ }, ee = () => /* @__PURE__ */ e("img", { className: "reminder-icon", src: "/images/reminder.png" }), T = (i) => {
1625
+ const t = I(i.entry), { reminderText: a, name: r } = ie(i.entry, i.night), n = typeof i.entry == "string" ? "#222" : p[i.entry.team];
1607
1626
  if (!a)
1608
- return console.warn("No reminder text found for:", i.entry), /* @__PURE__ */ e(m, {});
1609
- const h = (s) => s.split(":reminder:").map((o, c) => c % 2 === 0 ? o : /* @__PURE__ */ e(ee, {}));
1627
+ return console.warn("No reminder text found for:", i.entry), /* @__PURE__ */ e(u, {});
1628
+ const h = (o) => o.split(":reminder:").map((s, d) => d % 2 === 0 ? s : /* @__PURE__ */ e(ee, {}));
1610
1629
  return /* @__PURE__ */ e("div", { className: "night-sheet-entry", children: [
1611
1630
  /* @__PURE__ */ e("img", { src: t }),
1612
1631
  /* @__PURE__ */ e("div", { className: "night-sheet-entry-text", children: [
1613
1632
  /* @__PURE__ */ e("p", { className: "reminder-name", style: { color: n }, children: r }),
1614
- /* @__PURE__ */ e("p", { className: "reminder-text", children: ((s) => {
1615
- const o = s.split("*").map((c, d) => d % 2 === 0 ? c : /* @__PURE__ */ e("strong", { children: c })).map((c) => typeof c == "string" ? h(c) : c);
1616
- return /* @__PURE__ */ e(m, { children: o });
1633
+ /* @__PURE__ */ e("p", { className: "reminder-text", children: ((o) => {
1634
+ const s = o.split("*").map((d, c) => c % 2 === 0 ? d : /* @__PURE__ */ e("strong", { children: d })).map((d) => typeof d == "string" ? h(d) : d);
1635
+ return /* @__PURE__ */ e(u, { children: s });
1617
1636
  })(a) })
1618
1637
  ] })
1619
1638
  ] });
@@ -1664,16 +1683,16 @@ function oe({ script: i, options: t, nightOrders: a }) {
1664
1683
  var r;
1665
1684
  return /* @__PURE__ */ e("div", { className: "sheet-wrapper", children: [
1666
1685
  Array(t.numberOfCharacterSheets).fill(!0).map((n, h) => {
1667
- var l, s, o;
1686
+ var l, o, s;
1668
1687
  return /* @__PURE__ */ e("div", { className: h === 0 ? "" : "print-only", children: [
1669
1688
  /* @__PURE__ */ e(
1670
1689
  $,
1671
1690
  {
1672
1691
  title: ((l = i.metadata) == null ? void 0 : l.name) || "Custom Script",
1673
- author: t.showAuthor ? (s = i.metadata) == null ? void 0 : s.author : void 0,
1674
- characters: G(i.characters),
1692
+ author: t.showAuthor ? (o = i.metadata) == null ? void 0 : o.author : void 0,
1693
+ characters: B(i.characters),
1675
1694
  color: t.color,
1676
- jinxes: t.showJinxes ? B(i.characters, t.useOldJinxes) : [],
1695
+ jinxes: t.showJinxes ? G(i.characters, t.useOldJinxes) : [],
1677
1696
  fabledOrLoric: ae(i.characters),
1678
1697
  showSwirls: t.showSwirls,
1679
1698
  includeMargins: t.includeMargins,
@@ -1684,11 +1703,11 @@ function oe({ script: i, options: t, nightOrders: a }) {
1684
1703
  }
1685
1704
  ),
1686
1705
  /* @__PURE__ */ e("div", { style: "break-after:page;" }),
1687
- t.showBackingSheet && /* @__PURE__ */ e(m, { children: [
1706
+ t.showBackingSheet && /* @__PURE__ */ e(u, { children: [
1688
1707
  /* @__PURE__ */ e(
1689
1708
  X,
1690
1709
  {
1691
- title: ((o = i.metadata) == null ? void 0 : o.name) || "Custom Script",
1710
+ title: ((s = i.metadata) == null ? void 0 : s.name) || "Custom Script",
1692
1711
  color: t.color,
1693
1712
  includeMargins: t.includeMargins,
1694
1713
  nightOrders: a,
@@ -1701,7 +1720,7 @@ function oe({ script: i, options: t, nightOrders: a }) {
1701
1720
  ] })
1702
1721
  ] });
1703
1722
  }),
1704
- t.showNightSheet && /* @__PURE__ */ e(m, { children: [
1723
+ t.showNightSheet && /* @__PURE__ */ e(u, { children: [
1705
1724
  /* @__PURE__ */ e(
1706
1725
  Q,
1707
1726
  {
@@ -1721,7 +1740,7 @@ export {
1721
1740
  oe as FancyDoc,
1722
1741
  Q as NightSheet,
1723
1742
  X as SheetBack,
1724
- z as darken,
1725
- E as parseRgb,
1726
- C as rgbString
1743
+ R as darken,
1744
+ C as parseRgb,
1745
+ z as rgbString
1727
1746
  };
package/dist/style.css CHANGED
@@ -1 +1 @@
1
- .character-sheet{width:210mm;min-height:297mm;max-height:297mm;position:relative;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;color:#2d3748;display:flex;overflow:hidden;isolation:isolate}.character-sheet-background{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:cover;z-index:0}.sidebar-container{position:relative}.sidebar-background{background-image:url(/images/sidebar-desaturated-small.jpg);background-size:105mm;width:15mm;height:100%;flex-shrink:0}.sidebar-overlay{position:absolute;top:0;left:0;width:15mm;height:100%;background-color:#0003;pointer-events:none;mix-blend-mode:multiply}.sidebar-section{flex:1;display:flex;align-items:center;justify-content:center;writing-mode:vertical-rl;text-orientation:mixed;padding:3mm 0}.sidebar-label{font-size:3.5mm;font-weight:600;letter-spacing:.5mm;color:#eee;text-shadow:.3mm .3mm .5mm rgba(0,0,0,.3)}.sheet-content{position:relative;padding:5mm 0 3mm;display:flex;flex-direction:column;min-width:0}.character-column-spacer{min-height:13mm}.sheet-header-container{display:flex;align-items:center}.sheet-header{text-align:center;margin:0 0 4mm;padding:0 10mm;display:flex;align-items:center;justify-content:center}.sheet-header span{font-weight:lighter;letter-spacing:0mm;filter:drop-shadow(.2mm .1mm 0 #222d) drop-shadow(0mm 0mm .1mm #2228);word-spacing:-3mm;background:var(--header-gradient);background-clip:text;-webkit-background-clip:text;-webkit-text-fill-color:transparent;font-family:Unlovable,serif;font-weight:100;font-size:14mm;padding:2mm 8mm;margin:0 -8mm;mix-blend-mode:multiply}.swirl-divider{width:35mm;mix-blend-mode:soft-light}.flip{transform:scaleX(-1)}.sheet-author{font-family:Goudy Old Style,Goudy Oldstyle,Goudy,Georgia,serif;font-size:3.5mm;font-weight:700;text-align:center;margin:-5mm 0 3mm;color:#333}.characters-grid{display:flex;flex-direction:column;gap:2.5mm;flex:1;padding:0 10mm 0 0}.character-section{display:flex;break-inside:avoid;min-height:20mm}.section-title{font-family:Dumbledor,serif;font-weight:lighter;padding:0 3.5mm;color:#eee;margin:-2mm 0 -2mm -15mm;min-width:15mm;text-align:center;z-index:1;text-orientation:upright;writing-mode:vertical-lr;letter-spacing:-.6mm;font-size:4mm;line-height:2;filter:drop-shadow(.1mm .1mm .3mm #222a) drop-shadow(-.1mm .1mm .3mm #2228) drop-shadow(.1mm -.1mm .3mm #222a) drop-shadow(-.1mm -.1mm .3mm #222a)}.section-divider{height:.8mm;opacity:1;margin-left:-50%;width:150%;mix-blend-mode:soft-light}.character-list{display:flex;margin-left:8mm;gap:5mm}.character-column{flex:1 1 0px;display:flex;flex-direction:column;justify-content:space-between}.character-card{display:flex;align-items:center;gap:2.5mm;break-inside:avoid;margin-bottom:2.5mm}.character-info{padding-left:2mm;display:flex;flex-direction:column}.character-icon-wrapper{display:flex;flex-shrink:0}.character-icon,.character-icon-placeholder{width:13mm;max-height:13mm;object-fit:contain;filter:drop-shadow(1px 1px 2px #0004)}.character-icon-placeholder{display:flex;align-items:center;justify-content:center;color:#eee;font-weight:700;font-size:6mm}.character-name{font-family:Goudy Old Style,Goudy Oldstyle,Goudy,Georgia,serif;font-size:3.5mm;font-weight:700;margin:0 0 .5mm;color:#1a202c;display:flex;align-items:center;gap:1mm}.inline-jinx-icons{display:inline-flex;gap:.5mm;align-items:center;margin-left:1mm}.inline-jinx-icon,.inline-jinx-icon-placeholder{width:5mm;height:5mm;object-fit:contain;filter:drop-shadow(.5px .5px .5px #0004);scale:1.7;margin:-100% .5mm -100% 0}.inline-jinx-icon-placeholder{display:inline-flex;align-items:center;justify-content:center;color:#eee;font-weight:700;font-size:1.8mm;border-radius:50%;background-color:#666}.character-ability{font-family:Trade Gothic,Trade Gothic Next,Helvetica Neue,Arial,sans-serif;font-size:3.1mm;line-height:1.2;margin:0;color:#222;display:inline-block}.appearance-compact .character-card{margin-bottom:1mm}.appearance-compact .sheet-header span{font-size:13mm}.appearance-super-compact .character-ability{font-size:2.7mm}.appearance-super-compact .character-name{font-size:3.2mm}.appearance-super-compact .character-icon,.appearance-super-compact .character-icon-placeholder{width:12mm;max-height:12mm}.appearance-super-compact .character-card{margin-bottom:.5mm}.appearance-super-compact .sheet-header span{font-size:12mm}.appearance-mega-compact .character-ability{font-size:2.4mm}.appearance-mega-compact .character-name{font-size:2.8mm}.appearance-mega-compact .sheet-header span{font-size:11mm}.appearance-mega-compact .character-icon,.appearance-mega-compact .character-icon-placeholder{width:11mm;max-height:11mm}.appearance-mega-compact .character-card{margin-bottom:.3mm}.appearance-mega-compact .inline-jinx-icon,.appearance-mega-compact .inline-jinx-icon-placeholder{width:4mm;height:4mm;font-size:1.3mm}.sheet-footer{text-align:center;font-family:Goudy Old Style,Goudy Oldstyle,Goudy,Georgia,serif;font-size:3.5mm;color:#222;opacity:.7}.asterisk{font-size:5mm}.author-credit{position:absolute;bottom:3mm;right:3mm;font-family:Goudy Old Style,Goudy Oldstyle,Goudy,Georgia,serif;font-size:3.2mm;color:#222;opacity:.6;text-align:right}.author-credit p{font-size:2.5mm;margin:0}.setup-ability{display:inline-block;white-space:normal;font-family:Goudy Old Style,Goudy Oldstyle,Goudy,Georgia,serif}.jinxes-section{display:flex;break-inside:avoid;margin-top:1mm}.jinxes-list{margin-left:8mm;display:flex;flex-direction:column;width:100%}.jinxes-two-columns{flex-direction:row;gap:5mm}.jinx-column{flex:1;display:flex;flex-direction:column}.jinx-item{display:flex;gap:2.5mm;align-items:center;break-inside:avoid;margin-bottom:2mm}.jinx-icons{display:flex;gap:1mm;flex-shrink:0;align-items:center}.jinx-icon-wrapper{display:flex;flex-shrink:0;align-items:center}.jinx-icon,.jinx-icon-placeholder{width:3.5mm;height:3.5mm;object-fit:contain;scale:2.8}.jinx-icon-placeholder{display:flex;align-items:center;justify-content:center;color:#eee;font-weight:700;font-size:2mm}.jinx-divider{font-family:Dumbledor,serif;font-size:4.6mm;color:#1a202c;line-height:3.5mm;margin:0 .5mm}.jinx-text{font-family:Trade Gothic,Trade Gothic Next,Helvetica Neue,Arial,sans-serif;font-size:2.6mm;line-height:1.2;margin:0;color:#222;padding-top:.5mm}.jinx-text.loric-text{padding-top:0}.jinx-item.loric{margin-bottom:1mm}.loric-name{font-family:Goudy Old Style;font-size:3mm;padding-top:0}.loric-spacer{min-width:4mm}.sheet-backing{position:relative;width:210mm;min-height:297mm;max-height:297mm}.sheet-background{width:210mm;min-height:297mm;max-height:297mm;background-image:url(/images/sidebar-desaturated-small.jpg);background-repeat:repeat;background-size:105mm;display:flex;flex-direction:column;align-items:center;justify-content:center}.sheet-back-overlay{position:absolute;top:0;left:0;width:100%;height:100%;mix-blend-mode:multiply;pointer-events:none}.sheet-backing h1{font-family:Unlovable,serif;mix-blend-mode:normal;font-weight:100;font-size:30mm;color:#ae9d7f;text-wrap:wrap;z-index:1;flex-shrink:1;text-align:center;padding:10mm;background-image:url(/images/parchment_texture.jpg);background-clip:text;-webkit-background-clip:text;color:transparent;background-size:100mm;filter:drop-shadow(.5mm .5mm black) drop-shadow(0mm 0mm 1mm black);word-spacing:-10mm;flex:0 1 130mm;display:flex;flex-wrap:wrap;justify-content:center}.sheet-backing h1 .ampersand{font-size:45mm;line-height:30mm;vertical-align:-5mm}.back-info-container{position:absolute;display:flex;gap:10mm;align-items:center;bottom:0;flex-direction:column-reverse;justify-content:space-between;height:100%;width:100%;padding:20mm}.title-container{z-index:1;display:flex;justify-content:center}.minor-word{padding:0 8mm;font-size:15mm;word-spacing:-6mm;display:flex}.night-orders-container{background-image:url(/images/parchment_texture.jpg);background-position:0 -50%;font-family:Dumbledor;z-index:1;background-size:200mm;box-shadow:inset 0 0 5px #000;padding:2mm}.night-orders-container p{width:26mm;text-align:end;margin:0;flex-shrink:0;color:#222;font-size:5mm}.night-order:not(:last-child){margin-bottom:2mm}.night-order{padding:2mm;display:flex;align-items:center;gap:2mm}.icon-row{box-sizing:border-box;display:flex;flex-wrap:wrap;column-gap:2mm;row-gap:4mm}.icon{width:6mm;box-sizing:border-box;scale:2.1;filter:drop-shadow(0px 0px 2px #2224)}.player-count-container{background-image:url(/images/parchment_texture.jpg);background-position:0 -50%;font-family:Dumbledor;z-index:1;background-size:200mm;padding:4mm;box-shadow:inset 0 0 5px #000;display:flex;gap:5mm;max-width:130mm;flex-direction:row;color:#222;font-size:6mm}.count-column{display:flex;flex-direction:column;align-items:center}.count-column.titles{align-items:end}.good-count{color:#00469e}.evil-count{color:#580709}.night-sheet{width:210mm;min-height:297mm;max-height:297mm;display:flex;flex-direction:column;position:relative;overflow:hidden;color:#222}.night-sheet-heading{display:flex;align-items:center;justify-content:space-between}.night-sheet .night-title{font-family:Dumbledor;font-size:7mm;margin:0}.night-sheet .script-title{font-family:Unlovable,serif;font-weight:lighter;background:var(--header-gradient);background-clip:text;-webkit-background-clip:text;-webkit-text-fill-color:transparent;font-size:11mm;line-height:9mm;margin:-20mm -7mm;padding:7mm;max-width:50%;text-align:center;word-spacing:-4mm;filter:drop-shadow(.2mm .1mm 0 #222d) drop-shadow(0mm 0mm .1mm #2228)}.night-sheet .sheet-content{padding:10mm;gap:5mm}.night-sheet-order{display:flex;flex-direction:column;gap:1mm}.night-sheet-entry{display:flex;align-items:center;min-height:10mm}.reminder-name{font-family:Goudy Old Style,Goudy Oldstyle,Goudy,Georgia,serif;font-weight:700;font-size:3.3mm}.reminder-text{font-family:Trade Gothic;font-size:3mm}.night-sheet-entry p{margin:0}.night-sheet-entry p strong{font-family:Trade Gothic Bold}.night-sheet-entry>img{width:7mm;height:7mm;flex-shrink:0;scale:2;margin-right:3mm}.reminder-icon{width:10px;scale:1;opacity:.8;margin-right:4px;margin-bottom:-1px}.info-author-credit{font-family:Goudy Old Style,Goudy Oldstyle,Goudy,Georgia,serif;font-size:3.2mm;color:#222;opacity:.6;text-align:right;padding-bottom:3mm;padding-right:3mm;position:absolute;right:0;top:-50%}.info-author-credit p{font-size:2.5mm;margin:0}.info-footer-container{position:relative}.info-footer-background{background-image:url(/images/sidebar-desaturated-small.jpg);background-size:105mm;width:100%;height:20mm}.info-footer-overlay{position:absolute;top:0;left:0;width:100%;height:20mm;background-color:#0003;mix-blend-mode:multiply}.spacer{flex:1 0 0px}.print-only{visibility:hidden;display:none}@media print{.print-only{visibility:visible;display:block}}
1
+ .character-sheet{width:210mm;min-height:297mm;max-height:297mm;position:relative;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;color:#2d3748;display:flex;overflow:hidden;isolation:isolate}.character-sheet-background{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:cover;z-index:0}.sidebar-container{position:relative}.sidebar-background{background-image:url(/images/sidebar-desaturated-small.jpg);background-size:105mm;width:15mm;height:100%;flex-shrink:0}.sidebar-overlay{position:absolute;top:0;left:0;width:15mm;height:100%;background-color:#0003;pointer-events:none;mix-blend-mode:multiply}.sidebar-section{flex:1;display:flex;align-items:center;justify-content:center;writing-mode:vertical-rl;text-orientation:mixed;padding:3mm 0}.sidebar-label{font-size:3.5mm;font-weight:600;letter-spacing:.5mm;color:#eee;text-shadow:.3mm .3mm .5mm rgba(0,0,0,.3)}.sheet-content{position:relative;padding:5mm 0 3mm;display:flex;flex-direction:column;min-width:0}.character-column-spacer{min-height:13mm}.sheet-header-container{display:flex;align-items:center}.sheet-header{text-align:center;margin:0 0 4mm;padding:0 10mm;display:flex;align-items:center;justify-content:center}.sheet-header span{font-weight:lighter;letter-spacing:0mm;filter:drop-shadow(.2mm .1mm 0 #222d) drop-shadow(0mm 0mm .1mm #2228);word-spacing:-3mm;background:var(--header-gradient);background-clip:text;-webkit-background-clip:text;-webkit-text-fill-color:transparent;font-family:Unlovable,serif;font-weight:100;font-size:14mm;padding:2mm 8mm;margin:0 -8mm;mix-blend-mode:multiply}.swirl-divider{width:35mm;mix-blend-mode:soft-light}.flip{transform:scaleX(-1)}.sheet-author{font-family:Goudy Old Style,Goudy Oldstyle,Goudy,Georgia,serif;font-size:3.5mm;font-weight:700;text-align:center;margin:-5mm 0 3mm;color:#333}.characters-grid{display:flex;flex-direction:column;gap:2.5mm;flex:1;padding:0 10mm 0 0}.character-section{display:flex;break-inside:avoid;min-height:20mm}.section-title{font-family:Dumbledor,serif;font-weight:lighter;padding:0 3.5mm;color:#eee;margin:-2mm 0 -2mm -15mm;min-width:15mm;text-align:center;z-index:1;text-orientation:upright;writing-mode:vertical-lr;letter-spacing:-.6mm;font-size:4mm;line-height:2;filter:drop-shadow(.1mm .1mm .3mm #222a) drop-shadow(-.1mm .1mm .3mm #2228) drop-shadow(.1mm -.1mm .3mm #222a) drop-shadow(-.1mm -.1mm .3mm #222a)}.section-divider{height:.8mm;opacity:1;margin-left:-50%;width:150%;mix-blend-mode:soft-light}.character-list{display:flex;margin-left:8mm;gap:5mm}.character-column{flex:1 1 0px;display:flex;flex-direction:column;justify-content:space-between}.character-card{display:flex;align-items:center;gap:2.5mm;break-inside:avoid;margin-bottom:2.5mm}.character-info{padding-left:2mm;display:flex;flex-direction:column}.character-icon-wrapper{display:flex;flex-shrink:0}.character-icon,.character-icon-placeholder{width:13mm;max-height:13mm;object-fit:contain;filter:drop-shadow(1px 1px 2px #0004)}.character-icon-placeholder{display:flex;align-items:center;justify-content:center;color:#eee;font-weight:700;font-size:6mm}.character-name{font-family:Goudy Old Style,Goudy Oldstyle,Goudy,Georgia,serif;font-size:3.5mm;font-weight:700;margin:0 0 .5mm;color:#1a202c;display:flex;align-items:center;gap:1mm}.inline-jinx-icons{display:inline-flex;gap:.5mm;align-items:center;margin-left:1mm}.inline-jinx-icon,.inline-jinx-icon-placeholder{width:5mm;height:5mm;object-fit:contain;filter:drop-shadow(.5px .5px .5px #0004);scale:1.7}.inline-jinx-icon-placeholder{display:inline-flex;align-items:center;justify-content:center;color:#eee;font-weight:700;font-size:1.8mm;border-radius:50%;background-color:#666}.character-ability{font-family:Trade Gothic,Trade Gothic Next,Helvetica Neue,Arial,sans-serif;font-size:3.1mm;line-height:1.2;margin:0;color:#222;display:inline-block}.appearance-compact .character-card{margin-bottom:1mm}.appearance-compact .sheet-header span{font-size:13mm}.appearance-super-compact .character-ability{font-size:2.7mm}.appearance-super-compact .character-name{font-size:3.2mm}.appearance-super-compact .character-icon,.appearance-super-compact .character-icon-placeholder{width:12mm;max-height:12mm}.appearance-super-compact .character-card{margin-bottom:.5mm}.appearance-super-compact .sheet-header span{font-size:12mm}.appearance-mega-compact .character-ability{font-size:2.4mm}.appearance-mega-compact .character-name{font-size:2.8mm}.appearance-mega-compact .sheet-header span{font-size:11mm}.appearance-mega-compact .character-icon,.appearance-mega-compact .character-icon-placeholder{width:11mm;max-height:11mm}.appearance-mega-compact .character-card{margin-bottom:.3mm}.appearance-mega-compact .inline-jinx-icon,.appearance-mega-compact .inline-jinx-icon-placeholder{width:4mm;height:4mm;font-size:1.3mm}.sheet-footer{text-align:center;font-family:Goudy Old Style,Goudy Oldstyle,Goudy,Georgia,serif;font-size:3.5mm;color:#222;opacity:.7}.asterisk{font-size:5mm}.author-credit{position:absolute;bottom:3mm;right:3mm;font-family:Goudy Old Style,Goudy Oldstyle,Goudy,Georgia,serif;font-size:3.2mm;color:#222;opacity:.6;text-align:right}.author-credit p{font-size:2.5mm;margin:0}.setup-ability{display:inline-block;white-space:normal;font-family:Goudy Old Style,Goudy Oldstyle,Goudy,Georgia,serif}.jinxes-section{display:flex;break-inside:avoid;margin-top:1mm}.jinxes-list{margin-left:8mm;display:flex;flex-direction:column;width:100%}.jinxes-two-columns{flex-direction:row;gap:5mm}.jinx-column{flex:1;display:flex;flex-direction:column}.jinx-item{display:flex;gap:2.5mm;align-items:center;break-inside:avoid;margin-bottom:2mm}.jinx-icons{display:flex;gap:1mm;flex-shrink:0;align-items:center}.jinx-icon-wrapper{display:flex;flex-shrink:0;align-items:center}.jinx-icon,.jinx-icon-placeholder{width:3.5mm;height:3.5mm;object-fit:contain;scale:2.8}.jinx-icon-placeholder{display:flex;align-items:center;justify-content:center;color:#eee;font-weight:700;font-size:2mm}.jinx-divider{font-family:Dumbledor,serif;font-size:4.6mm;color:#1a202c;line-height:3.5mm;margin:0 .5mm}.jinx-text{font-family:Trade Gothic,Trade Gothic Next,Helvetica Neue,Arial,sans-serif;font-size:2.6mm;line-height:1.2;margin:0;color:#222;padding-top:.5mm}.jinx-text.loric-text{padding-top:0}.jinx-item.loric{margin-bottom:1mm}.loric-name{font-family:Goudy Old Style;font-size:3mm;padding-top:0}.loric-spacer{min-width:4mm}.sheet-backing{position:relative;width:210mm;min-height:297mm;max-height:297mm}.sheet-background{width:210mm;min-height:297mm;max-height:297mm;background-image:url(/images/sidebar-desaturated-small.jpg);background-repeat:repeat;background-size:105mm;display:flex;flex-direction:column;align-items:center;justify-content:center}.sheet-back-overlay{position:absolute;top:0;left:0;width:100%;height:100%;mix-blend-mode:multiply;pointer-events:none}.sheet-backing h1{font-family:Unlovable,serif;mix-blend-mode:normal;font-weight:100;font-size:30mm;color:#ae9d7f;text-wrap:wrap;z-index:1;flex-shrink:1;text-align:center;padding:10mm;background-image:url(/images/parchment_texture.jpg);background-clip:text;-webkit-background-clip:text;color:transparent;background-size:100mm;filter:drop-shadow(.5mm .5mm black) drop-shadow(0mm 0mm 1mm black);word-spacing:-10mm;flex:0 1 130mm;display:flex;flex-wrap:wrap;justify-content:center}.sheet-backing h1 .ampersand{font-size:45mm;line-height:30mm;vertical-align:-5mm}.back-info-container{position:absolute;display:flex;gap:10mm;align-items:center;bottom:0;flex-direction:column-reverse;justify-content:space-between;height:100%;width:100%;padding:20mm}.title-container{z-index:1;display:flex;justify-content:center}.minor-word{padding:0 8mm;font-size:15mm;word-spacing:-6mm;display:flex}.night-orders-container{background-image:url(/images/parchment_texture.jpg);background-position:0 -50%;font-family:Dumbledor;z-index:1;background-size:200mm;box-shadow:inset 0 0 5px #000;padding:2mm}.night-orders-container p{width:26mm;text-align:end;margin:0;flex-shrink:0;color:#222;font-size:5mm}.night-order:not(:last-child){margin-bottom:2mm}.night-order{padding:2mm;display:flex;align-items:center;gap:2mm}.icon-row{box-sizing:border-box;display:flex;flex-wrap:wrap;column-gap:2mm;row-gap:4mm}.icon{width:6mm;box-sizing:border-box;scale:2.1;filter:drop-shadow(0px 0px 2px #2224)}.player-count-container{background-image:url(/images/parchment_texture.jpg);background-position:0 -50%;font-family:Dumbledor;z-index:1;background-size:200mm;padding:4mm;box-shadow:inset 0 0 5px #000;display:flex;gap:5mm;max-width:130mm;flex-direction:row;color:#222;font-size:6mm}.count-column{display:flex;flex-direction:column;align-items:center}.count-column.titles{align-items:end}.good-count{color:#00469e}.evil-count{color:#580709}.night-sheet{width:210mm;min-height:297mm;max-height:297mm;display:flex;flex-direction:column;position:relative;overflow:hidden;color:#222}.night-sheet-heading{display:flex;align-items:center;justify-content:space-between}.night-sheet .night-title{font-family:Dumbledor;font-size:7mm;margin:0}.night-sheet .script-title{font-family:Unlovable,serif;font-weight:lighter;background:var(--header-gradient);background-clip:text;-webkit-background-clip:text;-webkit-text-fill-color:transparent;font-size:11mm;line-height:9mm;margin:-20mm -7mm;padding:7mm;max-width:50%;text-align:center;word-spacing:-4mm;filter:drop-shadow(.2mm .1mm 0 #222d) drop-shadow(0mm 0mm .1mm #2228)}.night-sheet .sheet-content{padding:10mm;gap:5mm}.night-sheet-order{display:flex;flex-direction:column;gap:1mm}.night-sheet-entry{display:flex;align-items:center;min-height:10mm}.reminder-name{font-family:Goudy Old Style,Goudy Oldstyle,Goudy,Georgia,serif;font-weight:700;font-size:3.3mm}.reminder-text{font-family:Trade Gothic;font-size:3mm}.night-sheet-entry p{margin:0}.night-sheet-entry p strong{font-family:Trade Gothic Bold}.night-sheet-entry>img{width:7mm;height:7mm;flex-shrink:0;scale:2;margin-right:3mm}.reminder-icon{width:10px;scale:1;opacity:.8;margin-right:4px;margin-bottom:-1px}.info-author-credit{font-family:Goudy Old Style,Goudy Oldstyle,Goudy,Georgia,serif;font-size:3.2mm;color:#222;opacity:.6;text-align:right;padding-bottom:3mm;padding-right:3mm;position:absolute;right:0;top:-50%}.info-author-credit p{font-size:2.5mm;margin:0}.info-footer-container{position:relative}.info-footer-background{background-image:url(/images/sidebar-desaturated-small.jpg);background-size:105mm;width:100%;height:20mm}.info-footer-overlay{position:absolute;top:0;left:0;width:100%;height:20mm;background-color:#0003;mix-blend-mode:multiply}.spacer{flex:1 0 0px}.print-only{visibility:hidden;display:none}@media print{.print-only{visibility:visible;display:block}}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "botc-character-sheet",
3
- "version": "0.15.0-beta.3",
3
+ "version": "0.15.2-beta.0",
4
4
  "type": "module",
5
5
  "main": "./dist/index.js",
6
6
  "module": "./dist/index.js",