botc-character-sheet 0.13.0 → 0.14.0-beta.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"file":"FancyDoc.d.ts","sourceRoot":"","sources":["../src/FancyDoc.tsx"],"names":[],"mappings":"AAGA,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAInE,MAAM,MAAM,aAAa,GAAG;IAC1B,MAAM,EAAE,YAAY,CAAC;IACrB,OAAO,EAAE,aAAa,CAAC;IACvB,WAAW,EAAE,WAAW,CAAC;CAC1B,CAAC;AAEF,wBAAgB,QAAQ,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE,EAAE,aAAa,gCA0DvE"}
1
+ {"version":3,"file":"FancyDoc.d.ts","sourceRoot":"","sources":["../src/FancyDoc.tsx"],"names":[],"mappings":"AAGA,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAGnE,OAAO,gBAAgB,CAAC;AAExB,MAAM,MAAM,aAAa,GAAG;IAC1B,MAAM,EAAE,YAAY,CAAC;IACrB,OAAO,EAAE,aAAa,CAAC;IACvB,WAAW,EAAE,WAAW,CAAC;CAC1B,CAAC;AAEF,wBAAgB,QAAQ,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE,EAAE,aAAa,gCAyDvE"}
package/dist/index.js CHANGED
@@ -1,29 +1,29 @@
1
- import { options as w, Fragment as m } from "preact";
2
- var J = 0;
3
- function e(i, t, n, r, a, s) {
1
+ import { options as j, Fragment as m } from "preact";
2
+ var A = 0;
3
+ function e(i, t, a, r, n, s) {
4
4
  t || (t = {});
5
5
  var c, h, o = t;
6
6
  if ("ref" in o) for (h in o = {}, t) h == "ref" ? c = t[h] : o[h] = t[h];
7
- var l = { type: i, props: o, key: n, ref: c, __k: null, __: null, __b: 0, __e: null, __c: null, constructor: void 0, __v: --J, __i: -1, __u: 0, __source: a, __self: s };
7
+ var l = { type: i, props: o, key: a, ref: c, __k: null, __: null, __b: 0, __e: null, __c: null, constructor: void 0, __v: --A, __i: -1, __u: 0, __source: n, __self: s };
8
8
  if (typeof i == "function" && (c = i.defaultProps)) for (h in c) o[h] === void 0 && (o[h] = c[h]);
9
- return w.vnode && w.vnode(l), l;
9
+ return j.vnode && j.vnode(l), l;
10
10
  }
11
- function D(i) {
12
- if (i.startsWith("#") && (i = i.slice(1)), i.length === 3 && (i = i.split("").map((a) => a + a).join("")), i.length !== 6)
11
+ function P(i) {
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
- const t = parseInt(i.slice(0, 2), 16), n = parseInt(i.slice(2, 4), 16), r = parseInt(i.slice(4, 6), 16);
15
- return [t, n, r];
14
+ const t = parseInt(i.slice(0, 2), 16), a = parseInt(i.slice(2, 4), 16), r = parseInt(i.slice(4, 6), 16);
15
+ return [t, a, r];
16
16
  }
17
- function T(i, t, n) {
18
- const r = (a) => {
19
- const s = a.toString(16);
17
+ function W(i, t, a) {
18
+ const r = (n) => {
19
+ const s = n.toString(16);
20
20
  return s.length === 1 ? "0" + s : s;
21
21
  };
22
- return `#${r(i)}${r(t)}${r(n)}`;
22
+ return `#${r(i)}${r(t)}${r(a)}`;
23
23
  }
24
- function M(i, t) {
25
- const [n, r, a] = D(i), s = Math.round(n * t), c = Math.round(r * t), h = Math.round(a * t);
26
- return T(s, c, h);
24
+ function O(i, t) {
25
+ const [a, r, n] = P(i), s = Math.round(a * t), c = Math.round(r * t), h = Math.round(n * t);
26
+ return W(s, c, h);
27
27
  }
28
28
  const f = {
29
29
  townsfolk: "#00469e",
@@ -34,16 +34,42 @@ const f = {
34
34
  traveller: "#390758ff",
35
35
  loric: "#1f5807"
36
36
  };
37
- function A({
37
+ function w(i) {
38
+ return Array.isArray(i) ? i : [i];
39
+ }
40
+ function L(i, t = 20) {
41
+ if (i.length === 0)
42
+ return "transparent";
43
+ if (i.length === 1) {
44
+ const r = O(i[0], 0.4);
45
+ return `linear-gradient(${t}deg, ${i[0]} 50%, ${r})`;
46
+ }
47
+ const a = i.map((r, n) => {
48
+ const s = n / (i.length - 1) * 100;
49
+ return `${r} ${s}%`;
50
+ }).join(", ");
51
+ return `linear-gradient(${t}deg, ${a})`;
52
+ }
53
+ function I(i, t = 90) {
54
+ const a = w(i);
55
+ if (a.length === 1)
56
+ return a[0];
57
+ const r = a.map((n, s) => {
58
+ const c = s / (a.length - 1) * 100;
59
+ return `${n} ${c}%`;
60
+ }).join(", ");
61
+ return `linear-gradient(${t}deg, ${r})`;
62
+ }
63
+ function E({
38
64
  jinxes: i,
39
65
  allCharacters: t,
40
- fabledAndLoric: n
66
+ fabledAndLoric: a
41
67
  }) {
42
68
  const r = new Map(
43
69
  t.map((o) => [o.id.toLowerCase(), o])
44
- ), a = i.length > 4, s = a ? Math.ceil(i.length / 2) : i.length;
70
+ ), n = i.length > 4, s = n ? Math.ceil(i.length / 2) : i.length;
45
71
  let c, h;
46
- return n.length ? (c = i.map((o, l) => /* @__PURE__ */ e(p, { jinx: o, charMap: r }, `lc-${l}`)), h = n.map((o, l) => /* @__PURE__ */ e(P, { item: o }, `rc-${l}`))) : a ? (c = i.slice(0, s).map((o, l) => /* @__PURE__ */ e(p, { jinx: o, charMap: r }, `lc-${l}`)), h = i.slice(s).map((o, l) => /* @__PURE__ */ e(p, { jinx: o, charMap: r }, `rc-${l}`))) : c = i.map((o, l) => /* @__PURE__ */ e(p, { jinx: o, charMap: r }, `lc-${l}`)), /* @__PURE__ */ e("div", { className: "jinxes-section", children: [
72
+ return a.length ? (c = i.map((o, l) => /* @__PURE__ */ e(p, { jinx: o, charMap: r }, `lc-${l}`)), h = a.map((o, l) => /* @__PURE__ */ e(C, { item: o }, `rc-${l}`))) : n ? (c = i.slice(0, s).map((o, l) => /* @__PURE__ */ e(p, { jinx: o, charMap: r }, `lc-${l}`)), h = i.slice(s).map((o, l) => /* @__PURE__ */ e(p, { jinx: o, charMap: r }, `rc-${l}`))) : c = i.map((o, l) => /* @__PURE__ */ e(p, { jinx: o, charMap: r }, `lc-${l}`)), /* @__PURE__ */ e("div", { className: "jinxes-section", children: [
47
73
  /* @__PURE__ */ e("h2", { className: "section-title" }),
48
74
  h ? /* @__PURE__ */ e("div", { className: "jinxes-list jinxes-two-columns", children: [
49
75
  /* @__PURE__ */ e("div", { className: "jinx-column", children: [
@@ -58,17 +84,17 @@ function A({
58
84
  ] });
59
85
  }
60
86
  const p = ({ charMap: i, jinx: t }) => {
61
- const n = i.get(t.characters[0]), r = i.get(t.characters[1]);
87
+ const a = i.get(t.characters[0]), r = i.get(t.characters[1]);
62
88
  return /* @__PURE__ */ e("div", { className: "jinx-item", children: [
63
89
  /* @__PURE__ */ e("div", { className: "jinx-icons", children: [
64
- n && /* @__PURE__ */ e("div", { className: "jinx-icon-wrapper", children: b(n) ? /* @__PURE__ */ e(
90
+ a && /* @__PURE__ */ e("div", { className: "jinx-icon-wrapper", children: b(a) ? /* @__PURE__ */ e(
65
91
  "img",
66
92
  {
67
- src: b(n),
68
- alt: n.name,
93
+ src: b(a),
94
+ alt: a.name,
69
95
  className: "jinx-icon"
70
96
  }
71
- ) : /* @__PURE__ */ e("div", { className: "jinx-icon-placeholder", children: n.name.charAt(0) }) }),
97
+ ) : /* @__PURE__ */ e("div", { className: "jinx-icon-placeholder", children: a.name.charAt(0) }) }),
72
98
  /* @__PURE__ */ e("span", { className: "jinx-divider" }),
73
99
  r && /* @__PURE__ */ e("div", { className: "jinx-icon-wrapper", children: b(r) ? /* @__PURE__ */ e(
74
100
  "img",
@@ -82,7 +108,7 @@ const p = ({ charMap: i, jinx: t }) => {
82
108
  /* @__PURE__ */ e("p", { className: "jinx-text", children: t.jinx })
83
109
  ] });
84
110
  };
85
- function P({ item: i }) {
111
+ function C({ item: i }) {
86
112
  return /* @__PURE__ */ e("div", { className: "jinx-item loric", children: [
87
113
  /* @__PURE__ */ e("div", { className: "loric-spacer" }),
88
114
  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) }),
@@ -95,12 +121,12 @@ function P({ item: i }) {
95
121
  function b(i) {
96
122
  return i.wiki_image ? i.wiki_image : i.image ? typeof i.image == "string" ? i.image : i.image[0] : null;
97
123
  }
98
- function W({
124
+ function z({
99
125
  title: i,
100
126
  author: t,
101
- characters: n,
127
+ characters: a,
102
128
  color: r = "#4a5568",
103
- jinxes: a = [],
129
+ jinxes: n = [],
104
130
  showSwirls: s = !0,
105
131
  includeMargins: c = !1,
106
132
  solidTitle: h = !1,
@@ -108,40 +134,39 @@ function W({
108
134
  appearance: l = "normal",
109
135
  fabledOrLoric: d = []
110
136
  }) {
111
- const u = [
137
+ const g = [
112
138
  {
113
139
  key: "townsfolk",
114
140
  title: "Townsfolk",
115
- chars: n.townsfolk,
141
+ chars: a.townsfolk,
116
142
  color: f.townsfolk
117
143
  },
118
144
  {
119
145
  key: "outsider",
120
146
  title: "Outsiders",
121
- chars: n.outsider,
147
+ chars: a.outsider,
122
148
  color: f.outsider
123
149
  },
124
150
  {
125
151
  key: "minion",
126
152
  title: "Minions",
127
- chars: n.minion,
153
+ chars: a.minion,
128
154
  color: f.minion
129
155
  },
130
156
  {
131
157
  key: "demon",
132
158
  title: "Demons",
133
- chars: n.demon,
159
+ chars: a.demon,
134
160
  color: f.demon
135
161
  }
136
- ].filter((y) => y.chars.length > 0), g = M(r, 0.4), N = `character-sheet ${l !== "normal" ? `appearance-${l}` : ""}`.trim();
162
+ ].filter((u) => u.chars.length > 0), y = w(r), J = L(y, 20), D = ["character-sheet", l !== "normal" ? `appearance-${l}` : ""].filter(Boolean).join(" ");
137
163
  return /* @__PURE__ */ e(
138
164
  "div",
139
165
  {
140
- className: N,
166
+ className: D,
141
167
  id: "character-sheet",
142
168
  style: {
143
- "--header-color-light": r,
144
- "--header-color-dark": g,
169
+ "--header-gradient": J,
145
170
  transform: c ? "scale(0.952)" : void 0
146
171
  },
147
172
  children: [
@@ -152,10 +177,10 @@ function W({
152
177
  src: "/images/parchment_texture_a4_lightened.jpg"
153
178
  }
154
179
  ),
155
- /* @__PURE__ */ e(E, { color: r }),
180
+ /* @__PURE__ */ e(_, { color: r }),
156
181
  /* @__PURE__ */ e("div", { className: "sheet-content", children: [
157
182
  /* @__PURE__ */ e(
158
- O,
183
+ R,
159
184
  {
160
185
  showSwirls: s,
161
186
  title: i,
@@ -164,32 +189,31 @@ function W({
164
189
  }
165
190
  ),
166
191
  /* @__PURE__ */ e("div", { className: "characters-grid", children: [
167
- u.map((y, L) => /* @__PURE__ */ e(m, { children: [
192
+ g.map((u, T) => /* @__PURE__ */ e(m, { children: [
168
193
  /* @__PURE__ */ e(
169
- C,
194
+ H,
170
195
  {
171
- title: y.title.toUpperCase(),
172
- characters: y.chars,
173
- sidebarColor: r,
174
- charNameColor: y.color,
196
+ title: u.title.toUpperCase(),
197
+ characters: u.chars,
198
+ charNameColor: u.color,
175
199
  iconScale: o
176
200
  },
177
- y.key
201
+ u.key
178
202
  ),
179
- L < u.length - 1 && /* @__PURE__ */ e("img", { src: "/images/divider.png", className: "section-divider" })
203
+ T < g.length - 1 && /* @__PURE__ */ e("img", { src: "/images/divider.png", className: "section-divider" })
180
204
  ] })),
181
- (a.length > 0 || d.length > 0) && /* @__PURE__ */ e(m, { children: [
205
+ (n.length > 0 || d.length > 0) && /* @__PURE__ */ e(m, { children: [
182
206
  /* @__PURE__ */ e("img", { src: "/images/divider.png", className: "section-divider" }),
183
207
  /* @__PURE__ */ e(
184
- A,
208
+ E,
185
209
  {
186
210
  fabledAndLoric: d,
187
- jinxes: a,
211
+ jinxes: n,
188
212
  allCharacters: [
189
- ...n.townsfolk,
190
- ...n.outsider,
191
- ...n.minion,
192
- ...n.demon
213
+ ...a.townsfolk,
214
+ ...a.outsider,
215
+ ...a.minion,
216
+ ...a.demon
193
217
  ]
194
218
  }
195
219
  )
@@ -208,10 +232,10 @@ function W({
208
232
  }
209
233
  );
210
234
  }
211
- function O({
235
+ function R({
212
236
  showSwirls: i,
213
237
  title: t,
214
- author: n,
238
+ author: a,
215
239
  solidHeader: r = !1
216
240
  }) {
217
241
  return /* @__PURE__ */ e(m, { children: [
@@ -240,42 +264,49 @@ function O({
240
264
  }
241
265
  )
242
266
  ] }),
243
- n && /* @__PURE__ */ e("h2", { className: "sheet-author", children: [
267
+ a && /* @__PURE__ */ e("h2", { className: "sheet-author", children: [
244
268
  "by ",
245
- n
269
+ a
246
270
  ] })
247
271
  ] });
248
272
  }
249
- function E({ color: i }) {
273
+ function _({ color: i }) {
274
+ const t = I(i, 180);
250
275
  return /* @__PURE__ */ e("div", { className: "sidebar-container", children: [
251
276
  /* @__PURE__ */ e("div", { className: "sidebar-background" }),
252
- /* @__PURE__ */ e("div", { className: "sidebar-overlay", style: { backgroundColor: i } })
277
+ /* @__PURE__ */ e(
278
+ "div",
279
+ {
280
+ className: "sidebar-overlay",
281
+ style: { background: t }
282
+ }
283
+ )
253
284
  ] });
254
285
  }
255
- function C({
286
+ function H({
256
287
  title: i,
257
288
  characters: t,
258
- charNameColor: n,
289
+ charNameColor: a,
259
290
  iconScale: r
260
291
  }) {
261
- const a = t.length > 8 ? "space-between" : "flex-start";
292
+ const n = t.length > 8 ? "space-between" : "flex-start";
262
293
  return /* @__PURE__ */ e("div", { className: "character-section", children: [
263
294
  /* @__PURE__ */ e("h2", { className: "section-title", children: i }),
264
295
  /* @__PURE__ */ e("div", { className: "character-list", children: [
265
296
  /* @__PURE__ */ e("div", { className: "character-column", children: t.slice(0, Math.ceil(t.length / 2)).map((s) => /* @__PURE__ */ e(
266
- I,
297
+ k,
267
298
  {
268
299
  character: s,
269
- color: n,
300
+ color: a,
270
301
  iconScale: r
271
302
  },
272
303
  s.id
273
304
  )) }),
274
- /* @__PURE__ */ e("div", { className: "character-column", style: { justifyContent: a }, children: t.slice(Math.ceil(t.length / 2), t.length).map((s) => /* @__PURE__ */ e(
275
- I,
305
+ /* @__PURE__ */ e("div", { className: "character-column", style: { justifyContent: n }, children: t.slice(Math.ceil(t.length / 2), t.length).map((s) => /* @__PURE__ */ e(
306
+ k,
276
307
  {
277
308
  character: s,
278
- color: n,
309
+ color: a,
279
310
  iconScale: r
280
311
  },
281
312
  s.id
@@ -283,12 +314,8 @@ function C({
283
314
  ] })
284
315
  ] });
285
316
  }
286
- function I({
287
- character: i,
288
- color: t,
289
- iconScale: n
290
- }) {
291
- const r = () => i.wiki_image ? i.wiki_image : i.image ? typeof i.image == "string" ? i.image : i.image[0] : null, a = (c) => {
317
+ function k({ character: i, color: t, iconScale: a }) {
318
+ const r = () => i.wiki_image ? i.wiki_image : i.image ? typeof i.image == "string" ? i.image : i.image[0] : null, n = (c) => {
292
319
  const h = c.match(/^(.*?)(\[.*?\])$/);
293
320
  if (h) {
294
321
  const [, o, l] = h;
@@ -306,23 +333,23 @@ function I({
306
333
  src: s,
307
334
  alt: i.name,
308
335
  className: "character-icon",
309
- style: { scale: n.toString() }
336
+ style: { scale: a.toString() }
310
337
  }
311
338
  ) : /* @__PURE__ */ e(
312
339
  "div",
313
340
  {
314
341
  className: "character-icon-placeholder",
315
- style: { color: t, scale: n.toString() },
342
+ style: { color: t, scale: a.toString() },
316
343
  children: i.name.charAt(0)
317
344
  }
318
345
  ) }),
319
346
  /* @__PURE__ */ e("div", { className: "character-info", children: [
320
347
  /* @__PURE__ */ e("h3", { className: "character-name", style: { color: t }, children: i.name }),
321
- /* @__PURE__ */ e("p", { className: "character-ability", children: a(i.ability) })
348
+ /* @__PURE__ */ e("p", { className: "character-ability", children: n(i.ability) })
322
349
  ] })
323
350
  ] });
324
351
  }
325
- const j = /* @__PURE__ */ new Set([
352
+ const S = /* @__PURE__ */ new Set([
326
353
  "the",
327
354
  "of",
328
355
  "in",
@@ -342,12 +369,12 @@ const j = /* @__PURE__ */ new Set([
342
369
  "upon",
343
370
  "after",
344
371
  "before"
345
- ]), x = (i, t) => j.has(i) || t === 0 && j.has(i.toLowerCase()), z = (i) => i.split(/\s+/).reduce((t, n, r, a) => {
346
- const s = x(n, r), c = r > 0 && x(a[r - 1], r - 1);
372
+ ]), x = (i, t) => S.has(i) || t === 0 && S.has(i.toLowerCase()), G = (i) => i.split(/\s+/).reduce((t, a, r, n) => {
373
+ const s = x(a, r), c = r > 0 && x(n[r - 1], r - 1);
347
374
  if (r === 0 || s !== c) {
348
375
  const o = [];
349
- for (let d = r; d < a.length && x(a[d], d) === s; d++)
350
- o.push(a[d]);
376
+ for (let d = r; d < n.length && x(n[d], d) === s; d++)
377
+ o.push(n[d]);
351
378
  const l = t.length > 0;
352
379
  t.push(
353
380
  /* @__PURE__ */ e(
@@ -368,8 +395,8 @@ const j = /* @__PURE__ */ new Set([
368
395
  function v(i) {
369
396
  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;
370
397
  }
371
- const R = (i) => {
372
- const t = i.nightOrders.first, n = i.nightOrders.other;
398
+ const B = (i) => {
399
+ const t = i.nightOrders.first, a = i.nightOrders.other;
373
400
  return /* @__PURE__ */ e("div", { class: "night-orders-container", children: [
374
401
  /* @__PURE__ */ e("div", { class: "night-order", children: [
375
402
  /* @__PURE__ */ e("p", { children: "First Night:" }),
@@ -377,10 +404,10 @@ const R = (i) => {
377
404
  ] }),
378
405
  /* @__PURE__ */ e("div", { class: "night-order", children: [
379
406
  /* @__PURE__ */ e("p", { children: "Other Nights:" }),
380
- /* @__PURE__ */ e("div", { class: "icon-row", children: n.map((r) => /* @__PURE__ */ e("img", { src: v(r), class: "icon" })) })
407
+ /* @__PURE__ */ e("div", { class: "icon-row", children: a.map((r) => /* @__PURE__ */ e("img", { src: v(r), class: "icon" })) })
381
408
  ] })
382
409
  ] });
383
- }, H = {
410
+ }, V = {
384
411
  5: [3, 0, 1, 1],
385
412
  6: [3, 1, 1, 1],
386
413
  7: [5, 0, 1, 1],
@@ -392,7 +419,7 @@ const R = (i) => {
392
419
  13: [9, 0, 3, 1],
393
420
  14: [9, 1, 3, 1],
394
421
  "15+": [9, 2, 3, 1]
395
- }, _ = () => /* @__PURE__ */ e(m, { children: /* @__PURE__ */ e("div", { className: "player-count-container", children: [
422
+ }, $ = () => /* @__PURE__ */ e(m, { children: /* @__PURE__ */ e("div", { className: "player-count-container", children: [
396
423
  /* @__PURE__ */ e("div", { className: "count-column titles", children: [
397
424
  /* @__PURE__ */ e("div", { className: "row-title", children: "Players" }),
398
425
  /* @__PURE__ */ e("div", { className: "row-title good-count", children: "Townsfolk" }),
@@ -400,74 +427,76 @@ const R = (i) => {
400
427
  /* @__PURE__ */ e("div", { className: "row-title evil-count", children: "Minions" }),
401
428
  /* @__PURE__ */ e("div", { className: "row-title evil-count", children: "Demons" })
402
429
  ] }),
403
- Object.entries(H).map(([i, t]) => /* @__PURE__ */ e("div", { className: "count-column", children: [
430
+ Object.entries(V).map(([i, t]) => /* @__PURE__ */ e("div", { className: "count-column", children: [
404
431
  /* @__PURE__ */ e("div", { className: "player-count", children: i }),
405
432
  /* @__PURE__ */ e("div", { className: "good-count", children: t[0] }),
406
433
  /* @__PURE__ */ e("div", { className: "good-count", children: t[1] }),
407
434
  /* @__PURE__ */ e("div", { className: "evil-count", children: t[2] }),
408
435
  /* @__PURE__ */ e("div", { className: "evil-count", children: t[3] })
409
436
  ] }))
410
- ] }) }), G = ({
437
+ ] }) }), F = ({
411
438
  title: i,
412
439
  color: t,
413
- includeMargins: n,
440
+ includeMargins: a,
414
441
  formatMinorWords: r = !1,
415
- displayNightOrder: a = !1,
442
+ displayNightOrder: n = !1,
416
443
  nightOrders: s = { first: [], other: [] },
417
444
  displayPlayerCounts: c = !0
418
- }) => /* @__PURE__ */ e(
419
- "div",
420
- {
421
- className: "sheet-backing",
422
- style: {
423
- transform: n ? "scale(0.952)" : void 0
424
- },
425
- children: [
426
- /* @__PURE__ */ e("div", { className: "sheet-background", children: /* @__PURE__ */ e("div", { className: "title-container", children: /* @__PURE__ */ e("h1", { children: (() => {
427
- const o = i.split("&");
428
- return o.map((l, d) => /* @__PURE__ */ e(m, { children: [
429
- r ? z(l) : l,
430
- d < o.length - 1 && /* @__PURE__ */ e("span", { className: "ampersand", children: "&" })
431
- ] }));
432
- })() }) }) }),
433
- /* @__PURE__ */ e(
434
- "div",
435
- {
436
- className: "sheet-back-overlay",
437
- style: { backgroundColor: t }
438
- }
439
- ),
440
- /* @__PURE__ */ e("div", { className: "back-info-container", children: [
441
- c && /* @__PURE__ */ e(_, {}),
442
- a && /* @__PURE__ */ e(R, { nightOrders: s })
443
- ] })
444
- ]
445
- }
446
- ), B = (i) => /* @__PURE__ */ e(m, { children: [
447
- /* @__PURE__ */ e(k, { ...i, children: [
445
+ }) => {
446
+ const h = () => {
447
+ const l = i.split("&");
448
+ return l.map((d, g) => /* @__PURE__ */ e(m, { children: [
449
+ r ? G(d) : d,
450
+ g < l.length - 1 && /* @__PURE__ */ e("span", { className: "ampersand", children: "&" })
451
+ ] }));
452
+ }, o = I(t, 180);
453
+ return /* @__PURE__ */ e(
454
+ "div",
455
+ {
456
+ className: "sheet-backing",
457
+ style: {
458
+ transform: a ? "scale(0.952)" : void 0
459
+ },
460
+ children: [
461
+ /* @__PURE__ */ e("div", { className: "sheet-background", children: /* @__PURE__ */ e("div", { className: "title-container", children: /* @__PURE__ */ e("h1", { children: h() }) }) }),
462
+ /* @__PURE__ */ e(
463
+ "div",
464
+ {
465
+ className: "sheet-back-overlay",
466
+ style: { background: o }
467
+ }
468
+ ),
469
+ /* @__PURE__ */ e("div", { className: "back-info-container", children: [
470
+ c && /* @__PURE__ */ e($, {}),
471
+ n && /* @__PURE__ */ e(B, { nightOrders: s })
472
+ ] })
473
+ ]
474
+ }
475
+ );
476
+ }, U = (i) => /* @__PURE__ */ e(m, { children: [
477
+ /* @__PURE__ */ e(M, { ...i, children: [
448
478
  /* @__PURE__ */ e("div", { className: "night-sheet-heading", children: [
449
479
  /* @__PURE__ */ e("h3", { className: "night-title", children: "First Night" }),
450
480
  /* @__PURE__ */ e("h3", { className: "script-title", children: i.title })
451
481
  ] }),
452
- /* @__PURE__ */ e("div", { className: "night-sheet-order", children: i.firstNightOrder.map((t) => /* @__PURE__ */ e(S, { entry: t, night: "first" })) })
482
+ /* @__PURE__ */ e("div", { className: "night-sheet-order", children: i.firstNightOrder.map((t) => /* @__PURE__ */ e(N, { entry: t, night: "first" })) })
453
483
  ] }),
454
- /* @__PURE__ */ e(k, { ...i, children: [
484
+ /* @__PURE__ */ e(M, { ...i, children: [
455
485
  /* @__PURE__ */ e("div", { className: "night-sheet-heading", children: [
456
486
  /* @__PURE__ */ e("h3", { className: "night-title", children: "Other Nights" }),
457
487
  /* @__PURE__ */ e("h3", { className: "script-title", children: i.title })
458
488
  ] }),
459
- /* @__PURE__ */ e("div", { className: "night-sheet-order", children: i.otherNightOrder.map((t) => /* @__PURE__ */ e(S, { entry: t, night: "other" })) })
489
+ /* @__PURE__ */ e("div", { className: "night-sheet-order", children: i.otherNightOrder.map((t) => /* @__PURE__ */ e(N, { entry: t, night: "other" })) })
460
490
  ] })
461
- ] }), k = (i) => {
462
- const t = M(i.color, 0.4);
491
+ ] }), M = (i) => {
492
+ const t = w(i.color), a = L(t, 20), r = I(i.color, 180);
463
493
  return /* @__PURE__ */ e(m, { children: /* @__PURE__ */ e(
464
494
  "div",
465
495
  {
466
496
  className: "night-sheet",
467
497
  style: {
468
498
  transform: i.includeMargins ? "scale(0.952)" : void 0,
469
- "--header-color-light": i.color,
470
- "--header-color-dark": t
499
+ "--header-gradient": a
471
500
  },
472
501
  children: [
473
502
  /* @__PURE__ */ e(
@@ -479,47 +508,47 @@ const R = (i) => {
479
508
  ),
480
509
  /* @__PURE__ */ e("div", { className: "sheet-content", children: i.children }),
481
510
  /* @__PURE__ */ e("div", { className: "spacer" }),
482
- /* @__PURE__ */ e("div", { className: "info-author-credit", children: [
483
- /* @__PURE__ */ e("p", { children: "© Steven Medway bloodontheclocktower.com" }),
484
- /* @__PURE__ */ e("p", { children: "Script template by John Forster ravenswoodstudio.xyz" })
485
- ] }),
486
511
  /* @__PURE__ */ e("div", { className: "info-footer-container", children: [
512
+ /* @__PURE__ */ e("div", { className: "info-author-credit", children: [
513
+ /* @__PURE__ */ e("p", { children: "© Steven Medway bloodontheclocktower.com" }),
514
+ /* @__PURE__ */ e("p", { children: "Script template by John Forster ravenswoodstudio.xyz" })
515
+ ] }),
487
516
  /* @__PURE__ */ e("div", { className: "info-footer-background" }),
488
517
  /* @__PURE__ */ e(
489
518
  "div",
490
519
  {
491
520
  className: "info-footer-overlay",
492
- style: { backgroundColor: i.color }
521
+ style: { background: r }
493
522
  }
494
523
  )
495
524
  ] })
496
525
  ]
497
526
  }
498
527
  ) });
499
- }, V = () => /* @__PURE__ */ e("img", { className: "reminder-icon", src: "/images/reminder.png" }), S = (i) => {
500
- const t = v(i.entry), { reminderText: n, name: r } = F(i.entry, i.night), a = typeof i.entry == "string" ? "#222" : f[i.entry.team];
501
- if (!n)
528
+ }, Y = () => /* @__PURE__ */ e("img", { className: "reminder-icon", src: "/images/reminder.png" }), N = (i) => {
529
+ const t = v(i.entry), { reminderText: a, name: r } = Z(i.entry, i.night), n = typeof i.entry == "string" ? "#222" : f[i.entry.team];
530
+ if (!a)
502
531
  return console.warn("No reminder text found for:", i.entry), /* @__PURE__ */ e(m, {});
503
- const s = (h) => h.split(":reminder:").map((o, l) => l % 2 === 0 ? o : /* @__PURE__ */ e(V, {}));
532
+ const s = (h) => h.split(":reminder:").map((o, l) => l % 2 === 0 ? o : /* @__PURE__ */ e(Y, {}));
504
533
  return /* @__PURE__ */ e("div", { className: "night-sheet-entry", children: [
505
534
  /* @__PURE__ */ e("img", { src: t }),
506
535
  /* @__PURE__ */ e("div", { className: "night-sheet-entry-text", children: [
507
- /* @__PURE__ */ e("p", { className: "reminder-name", style: { color: a }, children: r }),
536
+ /* @__PURE__ */ e("p", { className: "reminder-name", style: { color: n }, children: r }),
508
537
  /* @__PURE__ */ e("p", { className: "reminder-text", children: ((h) => {
509
538
  const o = h.split("*").map((l, d) => d % 2 === 0 ? l : /* @__PURE__ */ e("strong", { children: l })).map((l) => typeof l == "string" ? s(l) : l);
510
539
  return /* @__PURE__ */ e(m, { children: o });
511
- })(n) })
540
+ })(a) })
512
541
  ] })
513
542
  ] });
514
- }, F = (i, t) => {
543
+ }, Z = (i, t) => {
515
544
  if (typeof i == "object") {
516
- const n = t === "first" ? i.firstNightReminder : i.otherNightReminder, r = i.name;
517
- return { reminderText: n, name: r };
545
+ const a = t === "first" ? i.firstNightReminder : i.otherNightReminder, r = i.name;
546
+ return { reminderText: a, name: r };
518
547
  } else {
519
- const n = $[i], r = t === "first" ? n.first : n.other ?? "", a = n.name;
520
- return { reminderText: r, name: a };
548
+ const a = K[i], r = t === "first" ? a.first : a.other ?? "", n = a.name;
549
+ return { reminderText: r, name: n };
521
550
  }
522
- }, $ = {
551
+ }, K = {
523
552
  dusk: {
524
553
  first: "Start the Night Phase.",
525
554
  name: "Dusk",
@@ -539,22 +568,22 @@ const R = (i) => {
539
568
  name: "Minion Info"
540
569
  }
541
570
  };
542
- function U(i) {
543
- const t = i.filter((a) => a.team === "fabled");
571
+ function q(i) {
572
+ const t = i.filter((n) => n.team === "fabled");
544
573
  return [
545
- ...i.filter((a) => a.team === "loric").map((a) => ({
546
- name: a.name,
547
- note: a.ability,
548
- image: a.wiki_image ?? (Array.isArray(a.image) ? a.image[0] : a.image)
574
+ ...i.filter((n) => n.team === "loric").map((n) => ({
575
+ name: n.name,
576
+ note: n.ability,
577
+ image: n.wiki_image ?? (Array.isArray(n.image) ? n.image[0] : n.image)
549
578
  })),
550
- ...t.map((a) => ({
551
- name: a.name,
552
- note: a.ability,
553
- image: a.wiki_image ?? (Array.isArray(a.image) ? a.image[0] : a.image)
579
+ ...t.map((n) => ({
580
+ name: n.name,
581
+ note: n.ability,
582
+ image: n.wiki_image ?? (Array.isArray(n.image) ? n.image[0] : n.image)
554
583
  }))
555
584
  ];
556
585
  }
557
- const Y = [
586
+ const X = [
558
587
  {
559
588
  characters: [
560
589
  "alchemist",
@@ -1526,7 +1555,7 @@ const Y = [
1526
1555
  oldJinx: "If the Exorcist chooses the Yaggababble, the Yaggababble ability does not kill tonight."
1527
1556
  }
1528
1557
  ];
1529
- function Z(i) {
1558
+ function Q(i) {
1530
1559
  const t = {
1531
1560
  townsfolk: [],
1532
1561
  outsider: [],
@@ -1536,39 +1565,39 @@ function Z(i) {
1536
1565
  fabled: [],
1537
1566
  loric: []
1538
1567
  };
1539
- for (const n of i)
1568
+ for (const a of i)
1540
1569
  try {
1541
- t[n.team].push(n);
1570
+ t[a.team].push(a);
1542
1571
  } catch {
1543
- console.error("Unknown team for:", n);
1572
+ console.error("Unknown team for:", a);
1544
1573
  }
1545
1574
  return t;
1546
1575
  }
1547
- function K(i, t = !1) {
1548
- const n = new Set(i.map((a) => a.id.toLowerCase())), r = [];
1549
- for (const a of Y) {
1550
- const [s, c] = a.characters;
1551
- n.has(s) && n.has(c) && (t && a.oldJinx ? r.push({
1552
- characters: a.characters,
1553
- jinx: a.oldJinx
1576
+ function ee(i, t = !1) {
1577
+ const a = new Set(i.map((n) => n.id.toLowerCase())), r = [];
1578
+ for (const n of X) {
1579
+ const [s, c] = n.characters;
1580
+ a.has(s) && a.has(c) && (t && n.oldJinx ? r.push({
1581
+ characters: n.characters,
1582
+ jinx: n.oldJinx
1554
1583
  }) : r.push({
1555
- characters: a.characters,
1556
- jinx: a.jinx
1584
+ characters: n.characters,
1585
+ jinx: n.jinx
1557
1586
  }));
1558
1587
  }
1559
- for (const a of i) {
1560
- const s = typeof a == "object" && a !== null, c = "jinxes" in a;
1588
+ for (const n of i) {
1589
+ const s = typeof n == "object" && n !== null, c = "jinxes" in n;
1561
1590
  if (!s || !c) continue;
1562
- console.log("char.jinxes:", a.jinxes);
1563
- const h = a, o = h.id.toLowerCase();
1564
- if (n.has(o) && h.jinxes)
1591
+ console.log("char.jinxes:", n.jinxes);
1592
+ const h = n, o = h.id.toLowerCase();
1593
+ if (a.has(o) && h.jinxes)
1565
1594
  for (const l of h.jinxes) {
1566
1595
  const d = l.id.toLowerCase();
1567
- if (console.log(`${a.id} is jinxed with ${d}`), n.has(d) || (console.log("characterIds doesnt contain charId", d), console.log("characterIds:", n)), n.has(d)) {
1568
- const u = r.some(
1569
- (g) => g.characters[0] === o && g.characters[1] === d || g.characters[0] === d && g.characters[1] === o
1596
+ 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)) {
1597
+ const g = r.some(
1598
+ (y) => y.characters[0] === o && y.characters[1] === d || y.characters[0] === d && y.characters[1] === o
1570
1599
  );
1571
- console.log("Jinx already exists:", u), u || r.push({
1600
+ console.log("Jinx already exists:", g), g || r.push({
1572
1601
  characters: [o, d],
1573
1602
  jinx: l.reason
1574
1603
  });
@@ -1577,21 +1606,21 @@ function K(i, t = !1) {
1577
1606
  }
1578
1607
  return r;
1579
1608
  }
1580
- function Q({ script: i, options: t, nightOrders: n }) {
1581
- var a, s;
1609
+ function ae({ script: i, options: t, nightOrders: a }) {
1610
+ var r;
1582
1611
  return /* @__PURE__ */ e("div", { className: "sheet-wrapper", children: [
1583
- Array(1).fill(!0).map(() => {
1584
- var c, h;
1585
- return /* @__PURE__ */ e(m, { children: [
1612
+ Array(t.numberOfCharacterSheets).fill(!0).map((n, s) => {
1613
+ var c, h, o;
1614
+ return /* @__PURE__ */ e("div", { className: s === 0 ? "" : "print-only", children: [
1586
1615
  /* @__PURE__ */ e(
1587
- W,
1616
+ z,
1588
1617
  {
1589
1618
  title: ((c = i.metadata) == null ? void 0 : c.name) || "Custom Script",
1590
1619
  author: t.showAuthor ? (h = i.metadata) == null ? void 0 : h.author : void 0,
1591
- characters: Z(i.characters),
1620
+ characters: Q(i.characters),
1592
1621
  color: t.color,
1593
- jinxes: t.showJinxes ? K(i.characters, t.useOldJinxes) : [],
1594
- fabledOrLoric: U(i.characters),
1622
+ jinxes: t.showJinxes ? ee(i.characters, t.useOldJinxes) : [],
1623
+ fabledOrLoric: q(i.characters),
1595
1624
  showSwirls: t.showSwirls,
1596
1625
  includeMargins: t.includeMargins,
1597
1626
  solidTitle: t.solidTitle,
@@ -1599,32 +1628,32 @@ function Q({ script: i, options: t, nightOrders: n }) {
1599
1628
  appearance: t.appearance
1600
1629
  }
1601
1630
  ),
1602
- /* @__PURE__ */ e("div", { style: "break-after:page;" })
1631
+ /* @__PURE__ */ e("div", { style: "break-after:page;" }),
1632
+ t.showBackingSheet && /* @__PURE__ */ e(m, { children: [
1633
+ /* @__PURE__ */ e(
1634
+ F,
1635
+ {
1636
+ title: ((o = i.metadata) == null ? void 0 : o.name) || "Custom Script",
1637
+ color: t.color,
1638
+ includeMargins: t.includeMargins,
1639
+ nightOrders: a,
1640
+ formatMinorWords: t.formatMinorWords,
1641
+ displayNightOrder: t.displayNightOrder,
1642
+ displayPlayerCounts: t.displayPlayerCounts
1643
+ }
1644
+ ),
1645
+ /* @__PURE__ */ e("div", { style: "break-after:page;" })
1646
+ ] })
1603
1647
  ] });
1604
1648
  }),
1605
- t.showBackingSheet && /* @__PURE__ */ e(m, { children: [
1606
- /* @__PURE__ */ e(
1607
- G,
1608
- {
1609
- title: ((a = i.metadata) == null ? void 0 : a.name) || "Custom Script",
1610
- color: t.color,
1611
- includeMargins: t.includeMargins,
1612
- nightOrders: n,
1613
- formatMinorWords: t.formatMinorWords,
1614
- displayNightOrder: t.displayNightOrder,
1615
- displayPlayerCounts: t.displayPlayerCounts
1616
- }
1617
- ),
1618
- /* @__PURE__ */ e("div", { style: "break-after:page;" })
1619
- ] }),
1620
1649
  t.showNightSheet && /* @__PURE__ */ e(m, { children: [
1621
1650
  /* @__PURE__ */ e(
1622
- B,
1651
+ U,
1623
1652
  {
1624
- firstNightOrder: n.first,
1625
- otherNightOrder: n.other,
1653
+ firstNightOrder: a.first,
1654
+ otherNightOrder: a.other,
1626
1655
  includeMargins: t.includeMargins,
1627
- title: ((s = i.metadata) == null ? void 0 : s.name) || "Custom Script",
1656
+ title: ((r = i.metadata) == null ? void 0 : r.name) || "Custom Script",
1628
1657
  color: t.color
1629
1658
  }
1630
1659
  ),
@@ -1633,11 +1662,11 @@ function Q({ script: i, options: t, nightOrders: n }) {
1633
1662
  ] });
1634
1663
  }
1635
1664
  export {
1636
- W as CharacterSheet,
1637
- Q as FancyDoc,
1638
- B as NightSheet,
1639
- G as SheetBack,
1640
- M as darken,
1641
- D as parseRgb,
1642
- T as rgbString
1665
+ z as CharacterSheet,
1666
+ ae as FancyDoc,
1667
+ U as NightSheet,
1668
+ F as SheetBack,
1669
+ O as darken,
1670
+ P as parseRgb,
1671
+ W as rgbString
1643
1672
  };
@@ -4,7 +4,7 @@ interface CharacterSheetProps {
4
4
  title: string;
5
5
  author?: string;
6
6
  characters: GroupedCharacters;
7
- color: string;
7
+ color: string | string[];
8
8
  jinxes: Jinx[];
9
9
  showSwirls?: boolean;
10
10
  includeMargins?: boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"CharacterSheet.d.ts","sourceRoot":"","sources":["../../src/pages/CharacterSheet.tsx"],"names":[],"mappings":"AAEA,OAAO,sBAAsB,CAAC;AAC9B,OAAO,EAAE,iBAAiB,EAAE,IAAI,EAAqB,MAAM,UAAU,CAAC;AACtE,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAGvD,UAAU,mBAAmB;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,iBAAiB,CAAC;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,IAAI,EAAE,CAAC;IACf,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,QAAQ,GAAG,SAAS,GAAG,eAAe,GAAG,cAAc,CAAC;IACrE,aAAa,CAAC,EAAE,aAAa,EAAE,CAAC;CACjC;AAED,wBAAgB,cAAc,CAAC,EAC7B,KAAK,EACL,MAAM,EACN,UAAU,EACV,KAAiB,EACjB,MAAW,EACX,UAAiB,EACjB,cAAsB,EACtB,UAAkB,EAClB,SAAe,EACf,UAAqB,EACrB,aAAkB,GACnB,EAAE,mBAAmB,gCAqGrB"}
1
+ {"version":3,"file":"CharacterSheet.d.ts","sourceRoot":"","sources":["../../src/pages/CharacterSheet.tsx"],"names":[],"mappings":"AAOA,OAAO,sBAAsB,CAAC;AAC9B,OAAO,EAAE,iBAAiB,EAAE,IAAI,EAAqB,MAAM,UAAU,CAAC;AACtE,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAGvD,UAAU,mBAAmB;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,iBAAiB,CAAC;IAC9B,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IACzB,MAAM,EAAE,IAAI,EAAE,CAAC;IACf,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,QAAQ,GAAG,SAAS,GAAG,eAAe,GAAG,cAAc,CAAC;IACrE,aAAa,CAAC,EAAE,aAAa,EAAE,CAAC;CACjC;AAED,wBAAgB,cAAc,CAAC,EAC7B,KAAK,EACL,MAAM,EACN,UAAU,EACV,KAAiB,EACjB,MAAW,EACX,UAAiB,EACjB,cAAsB,EACtB,UAAkB,EAClB,SAAe,EACf,UAAqB,EACrB,aAAkB,GACnB,EAAE,mBAAmB,gCAuGrB"}
@@ -5,12 +5,12 @@ export type NightSheetProps = {
5
5
  otherNightOrder: NightOrderEntry[];
6
6
  includeMargins: boolean;
7
7
  title: string;
8
- color: string;
8
+ color: string | string[];
9
9
  };
10
10
  export declare const NightSheet: (props: NightSheetProps) => import("preact").JSX.Element;
11
11
  export type InfoSheetProps = {
12
12
  includeMargins: boolean;
13
- color: string;
13
+ color: string | string[];
14
14
  children: ComponentChildren;
15
15
  };
16
16
  type NightSheetEntryProps = {
@@ -1 +1 @@
1
- {"version":3,"file":"NightSheet.d.ts","sourceRoot":"","sources":["../../src/pages/NightSheet.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAe,eAAe,EAAE,MAAM,UAAU,CAAC;AAExD,OAAO,kBAAkB,CAAC;AAE1B,OAAO,EAAE,iBAAiB,EAAE,MAAM,QAAQ,CAAC;AAE3C,MAAM,MAAM,eAAe,GAAG;IAC5B,eAAe,EAAE,eAAe,EAAE,CAAC;IACnC,eAAe,EAAE,eAAe,EAAE,CAAC;IACnC,cAAc,EAAE,OAAO,CAAC;IACxB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;CACf,CAAC;AAEF,eAAO,MAAM,UAAU,GAAI,OAAO,eAAe,iCA2BhD,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG;IAC3B,cAAc,EAAE,OAAO,CAAC;IACxB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,iBAAiB,CAAC;CAC7B,CAAC;AAoCF,KAAK,oBAAoB,GAAG;IAC1B,KAAK,EAAE,eAAe,CAAC;IACvB,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC;CAC1B,CAAC;AAMF,eAAO,MAAM,eAAe,GAAI,OAAO,oBAAoB,iCAgC1D,CAAC"}
1
+ {"version":3,"file":"NightSheet.d.ts","sourceRoot":"","sources":["../../src/pages/NightSheet.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAe,eAAe,EAAE,MAAM,UAAU,CAAC;AAExD,OAAO,kBAAkB,CAAC;AAO1B,OAAO,EAAE,iBAAiB,EAAE,MAAM,QAAQ,CAAC;AAE3C,MAAM,MAAM,eAAe,GAAG;IAC5B,eAAe,EAAE,eAAe,EAAE,CAAC;IACnC,eAAe,EAAE,eAAe,EAAE,CAAC;IACnC,cAAc,EAAE,OAAO,CAAC;IACxB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;CAC1B,CAAC;AAEF,eAAO,MAAM,UAAU,GAAI,OAAO,eAAe,iCA2BhD,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG;IAC3B,cAAc,EAAE,OAAO,CAAC;IACxB,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IACzB,QAAQ,EAAE,iBAAiB,CAAC;CAC7B,CAAC;AAsCF,KAAK,oBAAoB,GAAG;IAC1B,KAAK,EAAE,eAAe,CAAC;IACvB,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC;CAC1B,CAAC;AAMF,eAAO,MAAM,eAAe,GAAI,OAAO,oBAAoB,iCAgC1D,CAAC"}
@@ -1,7 +1,7 @@
1
1
  import { NightOrders } from "../types";
2
2
  type SheetBackProps = {
3
3
  title: string;
4
- color: string;
4
+ color: string | string[];
5
5
  includeMargins: boolean;
6
6
  formatMinorWords?: boolean;
7
7
  displayNightOrder?: boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"SheetBack.d.ts","sourceRoot":"","sources":["../../src/pages/SheetBack.tsx"],"names":[],"mappings":"AAAA,OAAO,iBAAiB,CAAC;AACzB,OAAO,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAKvC,KAAK,cAAc,GAAG;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,cAAc,EAAE,OAAO,CAAC;IACxB,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,WAAW,CAAC,EAAE,WAAW,CAAC;CAC3B,CAAC;AAEF,eAAO,MAAM,SAAS,GAAI,0GAQvB,cAAc,iCAoChB,CAAC"}
1
+ {"version":3,"file":"SheetBack.d.ts","sourceRoot":"","sources":["../../src/pages/SheetBack.tsx"],"names":[],"mappings":"AAAA,OAAO,iBAAiB,CAAC;AACzB,OAAO,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAMvC,KAAK,cAAc,GAAG;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IACzB,cAAc,EAAE,OAAO,CAAC;IACxB,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,WAAW,CAAC,EAAE,WAAW,CAAC;CAC3B,CAAC;AAEF,eAAO,MAAM,SAAS,GAAI,0GAQvB,cAAc,iCAsChB,CAAC"}
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:linear-gradient(-20deg,var(--header-color-light) 50%,var(--header-color-dark));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}.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}.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}.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:linear-gradient(-20deg,var(--header-color-light) 50%,var(--header-color-dark));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:-2px}.info-author-credit{font-family:Goudy Old Style,Goudy Oldstyle,Goudy,Georgia,serif;font-size:3.2mm;color:#222;opacity:.6;text-align:right;margin-bottom:3mm;margin-right:3mm}.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}
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}.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}.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}.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/dist/types.d.ts CHANGED
@@ -26,7 +26,7 @@ export interface NightOrders {
26
26
  other: NightOrderEntry[];
27
27
  }
28
28
  export interface ScriptOptions {
29
- color: string;
29
+ color: string | string[];
30
30
  showAuthor: boolean;
31
31
  showJinxes: boolean;
32
32
  useOldJinxes: boolean;
@@ -40,6 +40,7 @@ export interface ScriptOptions {
40
40
  formatMinorWords: boolean;
41
41
  displayNightOrder: boolean;
42
42
  displayPlayerCounts: boolean;
43
+ numberOfCharacterSheets: number;
43
44
  }
44
45
  export interface ParsedScript {
45
46
  metadata: ScriptMetadata | null;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAG3E,MAAM,MAAM,aAAa,GACrB,WAAW,GACX,UAAU,GACV,QAAQ,GACR,OAAO,GACP,WAAW,GACX,QAAQ,CAAC;AAEb,MAAM,MAAM,iBAAiB,GAAG,eAAe,GAAG;IAChD,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB,CAAC;AAEF,MAAM,WAAW,iBAAiB;IAChC,SAAS,EAAE,iBAAiB,EAAE,CAAC;IAC/B,QAAQ,EAAE,iBAAiB,EAAE,CAAC;IAC9B,MAAM,EAAE,iBAAiB,EAAE,CAAC;IAC5B,KAAK,EAAE,iBAAiB,EAAE,CAAC;IAC3B,SAAS,EAAE,iBAAiB,EAAE,CAAC;IAC/B,MAAM,EAAE,iBAAiB,EAAE,CAAC;IAC5B,KAAK,EAAE,iBAAiB,EAAE,CAAC;CAC5B;AAED,MAAM,WAAW,IAAI;IACnB,UAAU,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,MAAM,WAAW,GAAG,MAAM,GAAG,MAAM,GAAG,YAAY,GAAG,WAAW,CAAC;AACvE,MAAM,MAAM,eAAe,GAAG,iBAAiB,GAAG,WAAW,CAAC;AAE9D,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,eAAe,EAAE,CAAC;IACzB,KAAK,EAAE,eAAe,EAAE,CAAC;CAC1B;AAED,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,OAAO,CAAC;IACpB,UAAU,EAAE,OAAO,CAAC;IACpB,YAAY,EAAE,OAAO,CAAC;IACtB,UAAU,EAAE,OAAO,CAAC;IACpB,cAAc,EAAE,OAAO,CAAC;IACxB,UAAU,EAAE,OAAO,CAAC;IACpB,UAAU,EAAE,QAAQ,GAAG,SAAS,GAAG,eAAe,GAAG,cAAc,CAAC;IACpE,gBAAgB,EAAE,OAAO,CAAC;IAC1B,cAAc,EAAE,OAAO,CAAC;IACxB,SAAS,EAAE,MAAM,CAAC;IAClB,gBAAgB,EAAE,OAAO,CAAC;IAC1B,iBAAiB,EAAE,OAAO,CAAC;IAC3B,mBAAmB,EAAE,OAAO,CAAC;CAC9B;AAED,MAAM,WAAW,YAAY;IAC3B,QAAQ,EAAE,cAAc,GAAG,IAAI,CAAC;IAChC,UAAU,EAAE,eAAe,EAAE,CAAC;CAC/B;AAED,MAAM,MAAM,cAAc,GAAG;IAC3B,MAAM,EAAE,YAAY,CAAC;IACrB,OAAO,EAAE,aAAa,CAAC;IACvB,WAAW,EAAE,WAAW,CAAC;IACzB,QAAQ,EAAE,MAAM,CAAC;CAClB,CAAC"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAG3E,MAAM,MAAM,aAAa,GACrB,WAAW,GACX,UAAU,GACV,QAAQ,GACR,OAAO,GACP,WAAW,GACX,QAAQ,CAAC;AAEb,MAAM,MAAM,iBAAiB,GAAG,eAAe,GAAG;IAChD,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB,CAAC;AAEF,MAAM,WAAW,iBAAiB;IAChC,SAAS,EAAE,iBAAiB,EAAE,CAAC;IAC/B,QAAQ,EAAE,iBAAiB,EAAE,CAAC;IAC9B,MAAM,EAAE,iBAAiB,EAAE,CAAC;IAC5B,KAAK,EAAE,iBAAiB,EAAE,CAAC;IAC3B,SAAS,EAAE,iBAAiB,EAAE,CAAC;IAC/B,MAAM,EAAE,iBAAiB,EAAE,CAAC;IAC5B,KAAK,EAAE,iBAAiB,EAAE,CAAC;CAC5B;AAED,MAAM,WAAW,IAAI;IACnB,UAAU,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,MAAM,WAAW,GAAG,MAAM,GAAG,MAAM,GAAG,YAAY,GAAG,WAAW,CAAC;AACvE,MAAM,MAAM,eAAe,GAAG,iBAAiB,GAAG,WAAW,CAAC;AAE9D,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,eAAe,EAAE,CAAC;IACzB,KAAK,EAAE,eAAe,EAAE,CAAC;CAC1B;AAED,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IACzB,UAAU,EAAE,OAAO,CAAC;IACpB,UAAU,EAAE,OAAO,CAAC;IACpB,YAAY,EAAE,OAAO,CAAC;IACtB,UAAU,EAAE,OAAO,CAAC;IACpB,cAAc,EAAE,OAAO,CAAC;IACxB,UAAU,EAAE,OAAO,CAAC;IACpB,UAAU,EAAE,QAAQ,GAAG,SAAS,GAAG,eAAe,GAAG,cAAc,CAAC;IACpE,gBAAgB,EAAE,OAAO,CAAC;IAC1B,cAAc,EAAE,OAAO,CAAC;IACxB,SAAS,EAAE,MAAM,CAAC;IAClB,gBAAgB,EAAE,OAAO,CAAC;IAC1B,iBAAiB,EAAE,OAAO,CAAC;IAC3B,mBAAmB,EAAE,OAAO,CAAC;IAC7B,uBAAuB,EAAE,MAAM,CAAC;CACjC;AAED,MAAM,WAAW,YAAY;IAC3B,QAAQ,EAAE,cAAc,GAAG,IAAI,CAAC;IAChC,UAAU,EAAE,eAAe,EAAE,CAAC;CAC/B;AAED,MAAM,MAAM,cAAc,GAAG;IAC3B,MAAM,EAAE,YAAY,CAAC;IACrB,OAAO,EAAE,aAAa,CAAC;IACvB,WAAW,EAAE,WAAW,CAAC;IACzB,QAAQ,EAAE,MAAM,CAAC;CAClB,CAAC"}
@@ -3,4 +3,26 @@ export declare function parseRgb(hex: string): [number, number, number];
3
3
  export declare function rgbString(r: number, g: number, b: number): string;
4
4
  export declare function darken(color: string, darkenFactor: number): string;
5
5
  export declare const teamColours: Record<CharacterTeam, string>;
6
+ /**
7
+ * Normalizes color input to an array of colors
8
+ */
9
+ export declare function normalizeColors(color: string | string[]): string[];
10
+ /**
11
+ * Checks if we're in multi-color mode (2+ colors)
12
+ */
13
+ export declare function isMultiColor(color: string | string[]): boolean;
14
+ /**
15
+ * Creates a CSS linear gradient string from an array of colors
16
+ * @param colors Array of color strings
17
+ * @param angle Gradient angle in degrees (default: 20)
18
+ * @returns CSS linear-gradient string
19
+ */
20
+ export declare function createGradient(colors: string[], angle?: number): string;
21
+ /**
22
+ * Creates a CSS background value for overlays
23
+ * Single color returns solid color, multiple colors return gradient
24
+ * @param color Single color or array of colors
25
+ * @param angle Gradient angle in degrees (default: 90 for vertical)
26
+ */
27
+ export declare function createOverlayBackground(color: string | string[], angle?: number): string;
6
28
  //# sourceMappingURL=colours.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"colours.d.ts","sourceRoot":"","sources":["../../src/utils/colours.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEpD,wBAAgB,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAiB9D;AAED,wBAAgB,SAAS,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAMjE;AAED,wBAAgB,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,UAMzD;AAED,eAAO,MAAM,WAAW,EAAE,MAAM,CAAC,aAAa,EAAE,MAAM,CAQrD,CAAC"}
1
+ {"version":3,"file":"colours.d.ts","sourceRoot":"","sources":["../../src/utils/colours.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEpD,wBAAgB,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAiB9D;AAED,wBAAgB,SAAS,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAMjE;AAED,wBAAgB,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,UAMzD;AAED,eAAO,MAAM,WAAW,EAAE,MAAM,CAAC,aAAa,EAAE,MAAM,CAQrD,CAAC;AAEF;;GAEG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,MAAM,EAAE,CAKlE;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,OAAO,CAG9D;AAED;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,KAAK,GAAE,MAAW,GAAG,MAAM,CAoB3E;AAED;;;;;GAKG;AACH,wBAAgB,uBAAuB,CACrC,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,EACxB,KAAK,GAAE,MAAW,GACjB,MAAM,CAeR"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "botc-character-sheet",
3
- "version": "0.13.0",
3
+ "version": "0.14.0-beta.2",
4
4
  "type": "module",
5
5
  "main": "./dist/index.js",
6
6
  "module": "./dist/index.js",