@wral/hsot-data 0.1.8 → 0.1.9

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.
@@ -17,14 +17,14 @@ let Ft = class {
17
17
  return this.cssText;
18
18
  }
19
19
  };
20
- const ee = (a) => new Ft(typeof a == "string" ? a : a + "", void 0, lt), b = (a, ...t) => {
20
+ const se = (a) => new Ft(typeof a == "string" ? a : a + "", void 0, lt), b = (a, ...t) => {
21
21
  const e = a.length === 1 ? a[0] : t.reduce((s, r, o) => s + ((i) => {
22
22
  if (i._$cssResult$ === !0) return i.cssText;
23
23
  if (typeof i == "number") return i;
24
24
  throw Error("Value passed to 'css' function must be a 'css' function result: " + i + ". Use 'unsafeCSS' to pass non-literal values, but take care to ensure page security.");
25
25
  })(r) + a[o + 1], a[0]);
26
26
  return new Ft(e, a, lt);
27
- }, se = (a, t) => {
27
+ }, ae = (a, t) => {
28
28
  if (nt) a.adoptedStyleSheets = t.map((e) => e instanceof CSSStyleSheet ? e : e.styleSheet);
29
29
  else for (const e of t) {
30
30
  const s = document.createElement("style"), r = V.litNonce;
@@ -33,12 +33,12 @@ const ee = (a) => new Ft(typeof a == "string" ? a : a + "", void 0, lt), b = (a,
33
33
  }, xt = nt ? (a) => a : (a) => a instanceof CSSStyleSheet ? ((t) => {
34
34
  let e = "";
35
35
  for (const s of t.cssRules) e += s.cssText;
36
- return ee(e);
36
+ return se(e);
37
37
  })(a) : a;
38
- const { is: ae, defineProperty: re, getOwnPropertyDescriptor: oe, getOwnPropertyNames: ie, getOwnPropertySymbols: ne, getPrototypeOf: le } = Object, X = globalThis, kt = X.trustedTypes, ce = kt ? kt.emptyScript : "", he = X.reactiveElementPolyfillSupport, B = (a, t) => a, it = { toAttribute(a, t) {
38
+ const { is: re, defineProperty: oe, getOwnPropertyDescriptor: ie, getOwnPropertyNames: ne, getOwnPropertySymbols: le, getPrototypeOf: ce } = Object, X = globalThis, kt = X.trustedTypes, he = kt ? kt.emptyScript : "", de = X.reactiveElementPolyfillSupport, B = (a, t) => a, it = { toAttribute(a, t) {
39
39
  switch (t) {
40
40
  case Boolean:
41
- a = a ? ce : null;
41
+ a = a ? he : null;
42
42
  break;
43
43
  case Object:
44
44
  case Array:
@@ -63,7 +63,7 @@ const { is: ae, defineProperty: re, getOwnPropertyDescriptor: oe, getOwnProperty
63
63
  }
64
64
  }
65
65
  return e;
66
- } }, Nt = (a, t) => !ae(a, t), _t = { attribute: !0, type: String, converter: it, reflect: !1, useDefault: !1, hasChanged: Nt };
66
+ } }, Nt = (a, t) => !re(a, t), _t = { attribute: !0, type: String, converter: it, reflect: !1, useDefault: !1, hasChanged: Nt };
67
67
  Symbol.metadata ??= /* @__PURE__ */ Symbol("metadata"), X.litPropertyMetadata ??= /* @__PURE__ */ new WeakMap();
68
68
  let I = class extends HTMLElement {
69
69
  static addInitializer(t) {
@@ -75,11 +75,11 @@ let I = class extends HTMLElement {
75
75
  static createProperty(t, e = _t) {
76
76
  if (e.state && (e.attribute = !1), this._$Ei(), this.prototype.hasOwnProperty(t) && ((e = Object.create(e)).wrapped = !0), this.elementProperties.set(t, e), !e.noAccessor) {
77
77
  const s = /* @__PURE__ */ Symbol(), r = this.getPropertyDescriptor(t, s, e);
78
- r !== void 0 && re(this.prototype, t, r);
78
+ r !== void 0 && oe(this.prototype, t, r);
79
79
  }
80
80
  }
81
81
  static getPropertyDescriptor(t, e, s) {
82
- const { get: r, set: o } = oe(this.prototype, t) ?? { get() {
82
+ const { get: r, set: o } = ie(this.prototype, t) ?? { get() {
83
83
  return this[e];
84
84
  }, set(i) {
85
85
  this[e] = i;
@@ -94,13 +94,13 @@ let I = class extends HTMLElement {
94
94
  }
95
95
  static _$Ei() {
96
96
  if (this.hasOwnProperty(B("elementProperties"))) return;
97
- const t = le(this);
97
+ const t = ce(this);
98
98
  t.finalize(), t.l !== void 0 && (this.l = [...t.l]), this.elementProperties = new Map(t.elementProperties);
99
99
  }
100
100
  static finalize() {
101
101
  if (this.hasOwnProperty(B("finalized"))) return;
102
102
  if (this.finalized = !0, this._$Ei(), this.hasOwnProperty(B("properties"))) {
103
- const e = this.properties, s = [...ie(e), ...ne(e)];
103
+ const e = this.properties, s = [...ne(e), ...le(e)];
104
104
  for (const r of s) this.createProperty(r, e[r]);
105
105
  }
106
106
  const t = this[Symbol.metadata];
@@ -146,7 +146,7 @@ let I = class extends HTMLElement {
146
146
  }
147
147
  createRenderRoot() {
148
148
  const t = this.shadowRoot ?? this.attachShadow(this.constructor.shadowRootOptions);
149
- return se(t, this.constructor.elementStyles), t;
149
+ return ae(t, this.constructor.elementStyles), t;
150
150
  }
151
151
  connectedCallback() {
152
152
  this.renderRoot ??= this.createRenderRoot(), this.enableUpdating(!0), this._$EO?.forEach((t) => t.hostConnected?.());
@@ -246,41 +246,41 @@ let I = class extends HTMLElement {
246
246
  firstUpdated(t) {
247
247
  }
248
248
  };
249
- I.elementStyles = [], I.shadowRootOptions = { mode: "open" }, I[B("elementProperties")] = /* @__PURE__ */ new Map(), I[B("finalized")] = /* @__PURE__ */ new Map(), he?.({ ReactiveElement: I }), (X.reactiveElementVersions ??= []).push("2.1.2");
250
- const ct = globalThis, St = (a) => a, Y = ct.trustedTypes, At = Y ? Y.createPolicy("lit-html", { createHTML: (a) => a }) : void 0, Ot = "$lit$", k = `lit$${Math.random().toFixed(9).slice(2)}$`, Ut = "?" + k, de = `<${Ut}>`, T = document, F = () => T.createComment(""), N = (a) => a === null || typeof a != "object" && typeof a != "function", ht = Array.isArray, pe = (a) => ht(a) || typeof a?.[Symbol.iterator] == "function", rt = `[
249
+ I.elementStyles = [], I.shadowRootOptions = { mode: "open" }, I[B("elementProperties")] = /* @__PURE__ */ new Map(), I[B("finalized")] = /* @__PURE__ */ new Map(), de?.({ ReactiveElement: I }), (X.reactiveElementVersions ??= []).push("2.1.2");
250
+ const ct = globalThis, St = (a) => a, Y = ct.trustedTypes, At = Y ? Y.createPolicy("lit-html", { createHTML: (a) => a }) : void 0, Ut = "$lit$", k = `lit$${Math.random().toFixed(9).slice(2)}$`, Ot = "?" + k, pe = `<${Ot}>`, T = document, F = () => T.createComment(""), N = (a) => a === null || typeof a != "object" && typeof a != "function", ht = Array.isArray, me = (a) => ht(a) || typeof a?.[Symbol.iterator] == "function", rt = `[
251
251
  \f\r]`, R = /<(?:(!--|\/[^a-zA-Z])|(\/?[a-zA-Z][^>\s]*)|(\/?$))/g, Tt = /-->/g, It = />/g, S = RegExp(`>|${rt}(?:([^\\s"'>=/]+)(${rt}*=${rt}*(?:[^
252
- \f\r"'\`<>=]|("|')|))|$)`, "g"), Et = /'/g, Ct = /"/g, Ht = /^(?:script|style|textarea|title)$/i, Mt = (a) => (t, ...e) => ({ _$litType$: a, strings: t, values: e }), l = Mt(1), Pt = Mt(2), P = /* @__PURE__ */ Symbol.for("lit-noChange"), m = /* @__PURE__ */ Symbol.for("lit-nothing"), Dt = /* @__PURE__ */ new WeakMap(), A = T.createTreeWalker(T, 129);
252
+ \f\r"'\`<>=]|("|')|))|$)`, "g"), Ct = /'/g, Et = /"/g, Ht = /^(?:script|style|textarea|title)$/i, Mt = (a) => (t, ...e) => ({ _$litType$: a, strings: t, values: e }), l = Mt(1), Pt = Mt(2), P = /* @__PURE__ */ Symbol.for("lit-noChange"), m = /* @__PURE__ */ Symbol.for("lit-nothing"), Dt = /* @__PURE__ */ new WeakMap(), A = T.createTreeWalker(T, 129);
253
253
  function Lt(a, t) {
254
254
  if (!ht(a) || !a.hasOwnProperty("raw")) throw Error("invalid template strings array");
255
255
  return At !== void 0 ? At.createHTML(t) : t;
256
256
  }
257
- const me = (a, t) => {
257
+ const fe = (a, t) => {
258
258
  const e = a.length - 1, s = [];
259
259
  let r, o = t === 2 ? "<svg>" : t === 3 ? "<math>" : "", i = R;
260
260
  for (let n = 0; n < e; n++) {
261
261
  const d = a[n];
262
262
  let c, h, p = -1, f = 0;
263
- for (; f < d.length && (i.lastIndex = f, h = i.exec(d), h !== null); ) f = i.lastIndex, i === R ? h[1] === "!--" ? i = Tt : h[1] !== void 0 ? i = It : h[2] !== void 0 ? (Ht.test(h[2]) && (r = RegExp("</" + h[2], "g")), i = S) : h[3] !== void 0 && (i = S) : i === S ? h[0] === ">" ? (i = r ?? R, p = -1) : h[1] === void 0 ? p = -2 : (p = i.lastIndex - h[2].length, c = h[1], i = h[3] === void 0 ? S : h[3] === '"' ? Ct : Et) : i === Ct || i === Et ? i = S : i === Tt || i === It ? i = R : (i = S, r = void 0);
263
+ for (; f < d.length && (i.lastIndex = f, h = i.exec(d), h !== null); ) f = i.lastIndex, i === R ? h[1] === "!--" ? i = Tt : h[1] !== void 0 ? i = It : h[2] !== void 0 ? (Ht.test(h[2]) && (r = RegExp("</" + h[2], "g")), i = S) : h[3] !== void 0 && (i = S) : i === S ? h[0] === ">" ? (i = r ?? R, p = -1) : h[1] === void 0 ? p = -2 : (p = i.lastIndex - h[2].length, c = h[1], i = h[3] === void 0 ? S : h[3] === '"' ? Et : Ct) : i === Et || i === Ct ? i = S : i === Tt || i === It ? i = R : (i = S, r = void 0);
264
264
  const u = i === S && a[n + 1].startsWith("/>") ? " " : "";
265
- o += i === R ? d + de : p >= 0 ? (s.push(c), d.slice(0, p) + Ot + d.slice(p) + k + u) : d + k + (p === -2 ? n : u);
265
+ o += i === R ? d + pe : p >= 0 ? (s.push(c), d.slice(0, p) + Ut + d.slice(p) + k + u) : d + k + (p === -2 ? n : u);
266
266
  }
267
267
  return [Lt(a, o + (a[e] || "<?>") + (t === 2 ? "</svg>" : t === 3 ? "</math>" : "")), s];
268
268
  };
269
- class O {
269
+ class U {
270
270
  constructor({ strings: t, _$litType$: e }, s) {
271
271
  let r;
272
272
  this.parts = [];
273
273
  let o = 0, i = 0;
274
- const n = t.length - 1, d = this.parts, [c, h] = me(t, e);
275
- if (this.el = O.createElement(c, s), A.currentNode = this.el.content, e === 2 || e === 3) {
274
+ const n = t.length - 1, d = this.parts, [c, h] = fe(t, e);
275
+ if (this.el = U.createElement(c, s), A.currentNode = this.el.content, e === 2 || e === 3) {
276
276
  const p = this.el.content.firstChild;
277
277
  p.replaceWith(...p.childNodes);
278
278
  }
279
279
  for (; (r = A.nextNode()) !== null && d.length < n; ) {
280
280
  if (r.nodeType === 1) {
281
- if (r.hasAttributes()) for (const p of r.getAttributeNames()) if (p.endsWith(Ot)) {
281
+ if (r.hasAttributes()) for (const p of r.getAttributeNames()) if (p.endsWith(Ut)) {
282
282
  const f = h[i++], u = r.getAttribute(p).split(k), $ = /([.?@])?(.*)/.exec(f);
283
- d.push({ type: 1, index: o, name: $[2], strings: u, ctor: $[1] === "." ? ue : $[1] === "?" ? ge : $[1] === "@" ? ve : tt }), r.removeAttribute(p);
283
+ d.push({ type: 1, index: o, name: $[2], strings: u, ctor: $[1] === "." ? ge : $[1] === "?" ? ve : $[1] === "@" ? $e : tt }), r.removeAttribute(p);
284
284
  } else p.startsWith(k) && (d.push({ type: 6, index: o }), r.removeAttribute(p));
285
285
  if (Ht.test(r.tagName)) {
286
286
  const p = r.textContent.split(k), f = p.length - 1;
@@ -290,7 +290,7 @@ class O {
290
290
  r.append(p[f], F());
291
291
  }
292
292
  }
293
- } else if (r.nodeType === 8) if (r.data === Ut) d.push({ type: 2, index: o });
293
+ } else if (r.nodeType === 8) if (r.data === Ot) d.push({ type: 2, index: o });
294
294
  else {
295
295
  let p = -1;
296
296
  for (; (p = r.data.indexOf(k, p + 1)) !== -1; ) d.push({ type: 7, index: o }), p += k.length - 1;
@@ -309,7 +309,7 @@ function D(a, t, e = a, s) {
309
309
  const o = N(t) ? void 0 : t._$litDirective$;
310
310
  return r?.constructor !== o && (r?._$AO?.(!1), o === void 0 ? r = void 0 : (r = new o(a), r._$AT(a, e, s)), s !== void 0 ? (e._$Co ??= [])[s] = r : e._$Cl = r), r !== void 0 && (t = D(a, r._$AS(a, t.values), r, s)), t;
311
311
  }
312
- class fe {
312
+ class ue {
313
313
  constructor(t, e) {
314
314
  this._$AV = [], this._$AN = void 0, this._$AD = t, this._$AM = e;
315
315
  }
@@ -326,7 +326,7 @@ class fe {
326
326
  for (; d !== void 0; ) {
327
327
  if (i === d.index) {
328
328
  let c;
329
- d.type === 2 ? c = new M(o, o.nextSibling, this, t) : d.type === 1 ? c = new d.ctor(o, d.name, d.strings, this, t) : d.type === 6 && (c = new $e(o, this, t)), this._$AV.push(c), d = s[++n];
329
+ d.type === 2 ? c = new M(o, o.nextSibling, this, t) : d.type === 1 ? c = new d.ctor(o, d.name, d.strings, this, t) : d.type === 6 && (c = new be(o, this, t)), this._$AV.push(c), d = s[++n];
330
330
  }
331
331
  i !== d?.index && (o = A.nextNode(), i++);
332
332
  }
@@ -356,7 +356,7 @@ class M {
356
356
  return this._$AB;
357
357
  }
358
358
  _$AI(t, e = this) {
359
- t = D(this, t, e), N(t) ? t === m || t == null || t === "" ? (this._$AH !== m && this._$AR(), this._$AH = m) : t !== this._$AH && t !== P && this._(t) : t._$litType$ !== void 0 ? this.$(t) : t.nodeType !== void 0 ? this.T(t) : pe(t) ? this.k(t) : this._(t);
359
+ t = D(this, t, e), N(t) ? t === m || t == null || t === "" ? (this._$AH !== m && this._$AR(), this._$AH = m) : t !== this._$AH && t !== P && this._(t) : t._$litType$ !== void 0 ? this.$(t) : t.nodeType !== void 0 ? this.T(t) : me(t) ? this.k(t) : this._(t);
360
360
  }
361
361
  O(t) {
362
362
  return this._$AA.parentNode.insertBefore(t, this._$AB);
@@ -368,16 +368,16 @@ class M {
368
368
  this._$AH !== m && N(this._$AH) ? this._$AA.nextSibling.data = t : this.T(T.createTextNode(t)), this._$AH = t;
369
369
  }
370
370
  $(t) {
371
- const { values: e, _$litType$: s } = t, r = typeof s == "number" ? this._$AC(t) : (s.el === void 0 && (s.el = O.createElement(Lt(s.h, s.h[0]), this.options)), s);
371
+ const { values: e, _$litType$: s } = t, r = typeof s == "number" ? this._$AC(t) : (s.el === void 0 && (s.el = U.createElement(Lt(s.h, s.h[0]), this.options)), s);
372
372
  if (this._$AH?._$AD === r) this._$AH.p(e);
373
373
  else {
374
- const o = new fe(r, this), i = o.u(this.options);
374
+ const o = new ue(r, this), i = o.u(this.options);
375
375
  o.p(e), this.T(i), this._$AH = o;
376
376
  }
377
377
  }
378
378
  _$AC(t) {
379
379
  let e = Dt.get(t.strings);
380
- return e === void 0 && Dt.set(t.strings, e = new O(t)), e;
380
+ return e === void 0 && Dt.set(t.strings, e = new U(t)), e;
381
381
  }
382
382
  k(t) {
383
383
  ht(this._$AH) || (this._$AH = [], this._$AR());
@@ -421,7 +421,7 @@ class tt {
421
421
  t === m ? this.element.removeAttribute(this.name) : this.element.setAttribute(this.name, t ?? "");
422
422
  }
423
423
  }
424
- class ue extends tt {
424
+ class ge extends tt {
425
425
  constructor() {
426
426
  super(...arguments), this.type = 3;
427
427
  }
@@ -429,7 +429,7 @@ class ue extends tt {
429
429
  this.element[this.name] = t === m ? void 0 : t;
430
430
  }
431
431
  }
432
- class ge extends tt {
432
+ class ve extends tt {
433
433
  constructor() {
434
434
  super(...arguments), this.type = 4;
435
435
  }
@@ -437,7 +437,7 @@ class ge extends tt {
437
437
  this.element.toggleAttribute(this.name, !!t && t !== m);
438
438
  }
439
439
  }
440
- class ve extends tt {
440
+ class $e extends tt {
441
441
  constructor(t, e, s, r, o) {
442
442
  super(t, e, s, r, o), this.type = 5;
443
443
  }
@@ -450,7 +450,7 @@ class ve extends tt {
450
450
  typeof this._$AH == "function" ? this._$AH.call(this.options?.host ?? this.element, t) : this._$AH.handleEvent(t);
451
451
  }
452
452
  }
453
- class $e {
453
+ class be {
454
454
  constructor(t, e, s) {
455
455
  this.element = t, this.type = 6, this._$AN = void 0, this._$AM = e, this.options = s;
456
456
  }
@@ -461,9 +461,9 @@ class $e {
461
461
  D(this, t);
462
462
  }
463
463
  }
464
- const be = ct.litHtmlPolyfillSupport;
465
- be?.(O, M), (ct.litHtmlVersions ??= []).push("3.3.3");
466
- const ye = (a, t, e) => {
464
+ const ye = ct.litHtmlPolyfillSupport;
465
+ ye?.(U, M), (ct.litHtmlVersions ??= []).push("3.3.3");
466
+ const we = (a, t, e) => {
467
467
  const s = e?.renderBefore ?? t;
468
468
  let r = s._$litPart$;
469
469
  if (r === void 0) {
@@ -473,7 +473,7 @@ const ye = (a, t, e) => {
473
473
  return r._$AI(a), r;
474
474
  };
475
475
  const dt = globalThis;
476
- class C extends I {
476
+ class E extends I {
477
477
  constructor() {
478
478
  super(...arguments), this.renderOptions = { host: this }, this._$Do = void 0;
479
479
  }
@@ -483,7 +483,7 @@ class C extends I {
483
483
  }
484
484
  update(t) {
485
485
  const e = this.render();
486
- this.hasUpdated || (this.renderOptions.isConnected = this.isConnected), super.update(t), this._$Do = ye(e, this.renderRoot, this.renderOptions);
486
+ this.hasUpdated || (this.renderOptions.isConnected = this.isConnected), super.update(t), this._$Do = we(e, this.renderRoot, this.renderOptions);
487
487
  }
488
488
  connectedCallback() {
489
489
  super.connectedCallback(), this._$Do?.setConnected(!0);
@@ -495,18 +495,18 @@ class C extends I {
495
495
  return P;
496
496
  }
497
497
  }
498
- C._$litElement$ = !0, C.finalized = !0, dt.litElementHydrateSupport?.({ LitElement: C });
499
- const we = dt.litElementPolyfillSupport;
500
- we?.({ LitElement: C });
498
+ E._$litElement$ = !0, E.finalized = !0, dt.litElementHydrateSupport?.({ LitElement: E });
499
+ const xe = dt.litElementPolyfillSupport;
500
+ xe?.({ LitElement: E });
501
501
  (dt.litElementVersions ??= []).push("4.2.2");
502
- const xe = 50;
503
- function ke(a = {}) {
502
+ const ke = 50;
503
+ function _e(a = {}) {
504
504
  const t = Object.entries(a).filter(([, s]) => s != null && s !== "");
505
505
  if (!t.length) return "";
506
506
  const e = new URLSearchParams();
507
507
  return t.forEach(([s, r]) => e.set(s, String(r))), `?${e.toString()}`;
508
508
  }
509
- function _e({ baseUrl: a, token: t = "", fetchFn: e } = {}) {
509
+ function Se({ baseUrl: a, token: t = "", fetchFn: e } = {}) {
510
510
  if (!a) throw new Error("createClient requires a baseUrl");
511
511
  const s = a.replace(/\/+$/, ""), r = e || ((...n) => fetch(...n));
512
512
  async function o(n) {
@@ -522,8 +522,8 @@ function _e({ baseUrl: a, token: t = "", fetchFn: e } = {}) {
522
522
  async function i(n, d = {}) {
523
523
  const c = [];
524
524
  let h = null;
525
- for (let p = 0; p < xe; p += 1) {
526
- const f = ke(h ? { ...d, cursor: h } : d), u = await o(`${n}${f}`);
525
+ for (let p = 0; p < ke; p += 1) {
526
+ const f = _e(h ? { ...d, cursor: h } : d), u = await o(`${n}${f}`);
527
527
  if (c.push(...u.items || []), h = u.nextCursor || null, !h) break;
528
528
  }
529
529
  return { items: c, total: c.length, nextCursor: null };
@@ -572,7 +572,7 @@ function pt(a) {
572
572
  const s = t >= 12 ? "PM" : "AM";
573
573
  return `${(t + 11) % 12 + 1}:${String(e || 0).padStart(2, "0")} ${s}`;
574
574
  }
575
- function Se(a) {
575
+ function Ae(a) {
576
576
  return a ? `${Math.floor(a / 12)}-${a % 12}` : "·";
577
577
  }
578
578
  function et(a = /* @__PURE__ */ new Date()) {
@@ -583,7 +583,7 @@ function mt(a = /* @__PURE__ */ new Date()) {
583
583
  const t = (e) => String(e).padStart(2, "0");
584
584
  return `${a.getFullYear()}-${t(a.getMonth() + 1)}-${t(a.getDate())}`;
585
585
  }
586
- function Ae(a, t = mt()) {
586
+ function Te(a, t = mt()) {
587
587
  const e = [...new Set((a || []).filter(Boolean))].sort();
588
588
  if (!e.length || e.includes(t)) return t;
589
589
  const s = e.filter((r) => r < t);
@@ -597,7 +597,7 @@ function K(a) {
597
597
  const t = parseInt(a.slice(1), 16), e = t >> 16 & 255, s = t >> 8 & 255, r = t & 255;
598
598
  return 0.299 * e + 0.587 * s + 0.114 * r > 150 ? "#0F1B33" : "#FFFFFF";
599
599
  }
600
- const Te = (a) => {
600
+ const Ie = (a) => {
601
601
  const t = ["th", "st", "nd", "rd"], e = a % 100;
602
602
  return a + (t[(e - 20) % 10] || t[e] || t[0]);
603
603
  };
@@ -609,7 +609,7 @@ function jt(a) {
609
609
  }
610
610
  return a.state === "postponed" ? { kind: "warn", label: "Postponed" } : a.state === "canceled" ? { kind: "warn", label: "Canceled" } : { kind: "sched", label: `${y(a.date, { month: "short", day: "numeric" })} · ${pt(a.time)}`.replace(/ · $/, "") };
611
611
  }
612
- const Ie = /* @__PURE__ */ new Set(["game", "story", "page", "forum", "video", "gallery"]);
612
+ const Ce = /* @__PURE__ */ new Set(["game", "story", "page", "forum", "video", "gallery"]);
613
613
  function _(a) {
614
614
  let t = String(a || "").replace(/^[a-z][a-z0-9+.-]*:\/\/[^/#?]*/i, "");
615
615
  const e = t.indexOf("#");
@@ -634,9 +634,9 @@ function Ee(a, t, e) {
634
634
  if (s === i) return "";
635
635
  if (!s.startsWith(`${i}/`)) return null;
636
636
  const n = s.slice(i.length + 1), d = n.split("/");
637
- return d.length > 2 || d.some((c) => !/^[a-z][a-z-]*$/.test(c)) || Ie.has(d[0]) ? null : n;
637
+ return d.length > 2 || d.some((c) => !/^[a-z][a-z-]*$/.test(c)) || Ce.has(d[0]) ? null : n;
638
638
  }
639
- function Ce(a, t, e) {
639
+ function Pe(a, t, e) {
640
640
  const s = (i) => g(e.section, { sport: a, view: i }).replace(/([^:])\/{2,}/g, "$1/"), o = new Set((t || []).map((i) => i && i.gender).filter((i) => i === "boys" || i === "girls")).size === 2 ? [
641
641
  { label: "Boys Standings", href: s("boys/standings") },
642
642
  { label: "Girls Standings", href: s("girls/standings") }
@@ -649,12 +649,12 @@ function Ce(a, t, e) {
649
649
  { label: "Polls & Rankings", href: s("rankings") }
650
650
  ];
651
651
  }
652
- function Pe(a, t = Wt()) {
652
+ function De(a, t = Wt()) {
653
653
  const e = _(t);
654
654
  for (const s of a.querySelectorAll(':scope > a[slot="nav"]'))
655
655
  e && _(s.getAttribute("href")) === e ? s.setAttribute("aria-current", "page") : s.removeAttribute("aria-current");
656
656
  }
657
- class w extends C {
657
+ class w extends E {
658
658
  static properties = {
659
659
  api: { type: String },
660
660
  refreshInterval: { type: Number, attribute: "refresh-interval" },
@@ -673,7 +673,7 @@ class w extends C {
673
673
  this._client = t, this.isConnected && this.load();
674
674
  }
675
675
  get client() {
676
- return this._client ? this._client : this.api ? _e({ baseUrl: this.api }) : null;
676
+ return this._client ? this._client : this.api ? Se({ baseUrl: this.api }) : null;
677
677
  }
678
678
  connectedCallback() {
679
679
  super.connectedCallback(), this._setupInterval();
@@ -685,7 +685,7 @@ class w extends C {
685
685
  this.load();
686
686
  }
687
687
  updated(t) {
688
- t.has("api") && t.get("api") !== void 0 && t.get("api") !== this.api && this.load(), t.has("refreshInterval") && this._setupInterval(), Pe(this);
688
+ t.has("api") && t.get("api") !== void 0 && t.get("api") !== this.api && this.load(), t.has("refreshInterval") && this._setupInterval(), De(this);
689
689
  }
690
690
  async load() {
691
691
  const t = this.client;
@@ -720,7 +720,7 @@ class w extends C {
720
720
  return l``;
721
721
  }
722
722
  }
723
- const v = (a) => Object.fromEntries((a || []).map((t) => [t.id, t])), De = b`
723
+ const v = (a) => Object.fromEntries((a || []).map((t) => [t.id, t])), ze = b`
724
724
  :host {
725
725
  --hsot-red: var(--color-red, #D1232A);
726
726
  --hsot-red-deep: var(--color-red-dark, #951C21);
@@ -758,7 +758,7 @@ const v = (a) => Object.fromEntries((a || []).map((t) => [t.id, t])), De = b`
758
758
  outline-offset: 1px;
759
759
  }
760
760
  .mut { color: var(--hsot-gray-5); }
761
- `, ze = b`
761
+ `, Re = b`
762
762
  .band { background: var(--hsot-white); color: var(--hsot-black); }
763
763
  .band .inner { max-width: 1366px; margin: 0 auto; padding: 1.1rem 1.25rem 0; }
764
764
  .band h1, .band h2.bandtitle {
@@ -807,7 +807,7 @@ const v = (a) => Object.fromEntries((a || []).map((t) => [t.id, t])), De = b`
807
807
  @media (max-width: 720px) {
808
808
  .band h1, .band h2.bandtitle, .band.section h1, .band.section h2.bandtitle { font-size: 1.8rem; }
809
809
  }
810
- `, Re = b`
810
+ `, Be = b`
811
811
  .view { max-width: 1366px; margin: 0 auto; padding: 1.25rem; box-sizing: border-box; }
812
812
  /* Optional right rail (slot="rail" light-DOM children): a divided 300px
813
813
  column on desktop, stacked under the view content on smaller screens. */
@@ -871,7 +871,7 @@ const v = (a) => Object.fromEntries((a || []).map((t) => [t.id, t])), De = b`
871
871
  .error { padding: 1.2rem 1rem; color: var(--hsot-red-deep); font-size: 0.9rem; }
872
872
  .note { font-size: 0.8125rem; color: var(--hsot-gray-5); margin: 0.6rem 0 0; }
873
873
  .loading { padding: 1.2rem; color: var(--hsot-gray-5); font-family: var(--hsot-heading-font); }
874
- `, Be = b`
874
+ `, Fe = b`
875
875
  .pill {
876
876
  display: inline-block; font-family: var(--hsot-heading-font); font-weight: 700;
877
877
  font-size: 0.6875rem; text-transform: uppercase; letter-spacing: 0.04em;
@@ -886,7 +886,7 @@ const v = (a) => Object.fromEntries((a || []).map((t) => [t.id, t])), De = b`
886
886
  .pill.champ { background: var(--hsot-straw); color: #6b5900; }
887
887
  @keyframes hsot-pulse { 0%, 100% { opacity: 1; } 50% { opacity: 0.55; } }
888
888
  @media (prefers-reduced-motion: reduce) { .pill.live { animation: none; } }
889
- `, Fe = b`
889
+ `, Ne = b`
890
890
  .tablewrap { overflow-x: auto; }
891
891
  table.data { font-family: var(--hsot-heading-font); font-size: 14px; border-collapse: collapse; width: 100%; }
892
892
  table.data th {
@@ -904,7 +904,7 @@ const v = (a) => Object.fromEntries((a || []).map((t) => [t.id, t])), De = b`
904
904
  table.data tbody tr.rowlink:hover { background: var(--hsot-gray-1); }
905
905
  table.data td.teamcell a { color: inherit; text-decoration: none; font-weight: 500; }
906
906
  table.data td.teamcell a:hover { text-decoration: underline; }
907
- `, Ne = b`
907
+ `, Ue = b`
908
908
  .swatch {
909
909
  display: inline-flex; align-items: center; justify-content: center;
910
910
  width: 26px; height: 26px; border-radius: 50%;
@@ -978,11 +978,11 @@ const v = (a) => Object.fromEntries((a || []).map((t) => [t.id, t])), De = b`
978
978
  .gamelist .ff { color: var(--hsot-gray-5); font-size: 0.78rem; font-style: italic; }
979
979
  .gamelist .where { color: var(--hsot-gray-5); font-size: 0.78rem; }
980
980
  .gamelist a.box { font-size: 0.78rem; }
981
- `, j = [De, ze, Re, Be, Fe, Ne, Oe];
981
+ `, j = [ze, Re, Be, Fe, Ne, Ue, Oe];
982
982
  function ut(a) {
983
983
  return a.state !== "final" ? null : a.forfeit && a.forfeit !== "none" ? a.forfeit : a.homeScore > a.awayScore ? "home" : a.awayScore > a.homeScore ? "away" : a.tiebreakWinner && a.tiebreakWinner !== "none" ? a.tiebreakWinner : "tie";
984
984
  }
985
- function Ue(a) {
985
+ function He(a) {
986
986
  return !a || !a.forfeit || a.forfeit === "none" ? null : a.forfeit === "home" ? "away" : a.forfeit === "away" ? "home" : null;
987
987
  }
988
988
  function W(a, t) {
@@ -1045,7 +1045,7 @@ function vt(a, t, e, s, r) {
1045
1045
  }
1046
1046
  return n ? n.rank : null;
1047
1047
  }
1048
- function He(a, t, e) {
1048
+ function Me(a, t, e) {
1049
1049
  if (!a) return { kind: "none", delta: 0 };
1050
1050
  const s = (a.teamIds || []).indexOf(e) + 1;
1051
1051
  if (!s) return { kind: "none", delta: 0 };
@@ -1055,14 +1055,22 @@ function He(a, t, e) {
1055
1055
  const o = r - s;
1056
1056
  return o > 0 ? { kind: "up", delta: o } : o < 0 ? { kind: "down", delta: -o } : { kind: "same", delta: 0 };
1057
1057
  }
1058
- function Me(a) {
1058
+ function Le(a) {
1059
1059
  return /^https?:\/\//i.test(String(a || ""));
1060
1060
  }
1061
+ function Gt(a, { w: t, h: e } = {}) {
1062
+ if (!Le(a)) return "";
1063
+ const s = [];
1064
+ t && s.push(`w=${Math.max(1, Math.round(t))}`), e && s.push(`h=${Math.max(1, Math.round(e))}`), s.push("f=webp");
1065
+ const r = a.includes("?") ? "&" : "?";
1066
+ return `${a}${r}${s.join("&")}`;
1067
+ }
1061
1068
  function Q(a, t) {
1062
- const e = a?.logoAssetId;
1063
- if (!Me(e)) return "";
1064
- const s = Math.max(1, Math.round(t * 2)), r = e.includes("?") ? "&" : "?";
1065
- return `${e}${r}w=${s}&h=${s}&f=webp`;
1069
+ const e = t * 2;
1070
+ return Gt(a?.logoAssetId, { w: e, h: e });
1071
+ }
1072
+ function je(a, t) {
1073
+ return Gt(a?.photoAssetId, { w: t * 2 });
1066
1074
  }
1067
1075
  function $t(a, t, { title: e, sub: s, teams: r }) {
1068
1076
  const o = Wt(), n = !!a.querySelector(':scope > a[slot="nav"]') || Ee(o, t.hrefs, t.sport) !== null;
@@ -1076,7 +1084,7 @@ function $t(a, t, { title: e, sub: s, teams: r }) {
1076
1084
  <nav class="sectionnav" aria-label="${z(t.sport)} section">
1077
1085
  <div class="navrow">
1078
1086
  <slot name="nav">
1079
- ${Ce(t.sport, r, t.hrefs).map((d) => l`<a href=${d.href}
1087
+ ${Pe(t.sport, r, t.hrefs).map((d) => l`<a href=${d.href}
1080
1088
  aria-current=${o && _(d.href) === o ? "page" : m}>${d.label}</a>`)}
1081
1089
  </slot>
1082
1090
  </div>
@@ -1084,10 +1092,10 @@ function $t(a, t, { title: e, sub: s, teams: r }) {
1084
1092
  </div>
1085
1093
  `;
1086
1094
  }
1087
- const U = (a, t) => {
1095
+ const O = (a, t) => {
1088
1096
  const e = a.teamsById[t];
1089
1097
  return e ? a.schoolsById[e.schoolId] : null;
1090
- }, E = (a, t) => U(a, t)?.name || "TBD", Z = (a, t) => U(a, t)?.abbr || "TBD";
1098
+ }, C = (a, t) => O(a, t)?.name || "TBD", Z = (a, t) => O(a, t)?.abbr || "TBD";
1091
1099
  function H(a, t = 26) {
1092
1100
  if (!a) return m;
1093
1101
  const e = Q(a, t);
@@ -1103,8 +1111,8 @@ function bt(a, t, e) {
1103
1111
  const s = vt(a.rankings, a.teamsById, t, a.sport, e);
1104
1112
  return s ? l`<span class="rankbadge">#${s}</span>` : m;
1105
1113
  }
1106
- function Gt(a, t, e) {
1107
- const s = U(a, t);
1114
+ function Vt(a, t, e) {
1115
+ const s = O(a, t);
1108
1116
  return s ? l`${bt(a, t, e)}<a href=${g(a.hrefs.school, { id: s.id })}>${s.name}</a>` : l`<span class="mut">TBD</span>`;
1109
1117
  }
1110
1118
  function yt(a, t, e = 5) {
@@ -1113,7 +1121,7 @@ function yt(a, t, e = 5) {
1113
1121
  const r = s.results.slice(-1 * e);
1114
1122
  return l`<span class="dots" role="img" aria-label="last ${r.length} results">
1115
1123
  ${r.map((o) => l`<a class="dot ${o.mark}"
1116
- title="${o.mark} ${o.my}-${o.their} vs ${E(a, o.opp)}"
1124
+ title="${o.mark} ${o.my}-${o.their} vs ${C(a, o.opp)}"
1117
1125
  href=${g(a.hrefs.game, { sport: a.sport, id: o.gameId })}>${o.mark}</a>`)}
1118
1126
  </span>`;
1119
1127
  }
@@ -1132,12 +1140,12 @@ function J(a) {
1132
1140
  const t = jt(a);
1133
1141
  return l`<span class="pill ${t.kind}">${t.label}</span>`;
1134
1142
  }
1135
- function Vt(a, t, e) {
1143
+ function Yt(a, t, e) {
1136
1144
  if (!t) return l`<span class="mut">·</span>`;
1137
1145
  const s = t.homeTeamId === e ? t.awayTeamId : t.homeTeamId, r = t.homeTeamId === e ? "vs" : "at";
1138
1146
  return l`${t.state === "live" ? l`<span class="pill live">Live</span> ` : l`${y(t.date, { month: "numeric", day: "numeric" })} `}${r} ${Z(a, s)}`;
1139
1147
  }
1140
- class Yt extends w {
1148
+ class Kt extends w {
1141
1149
  static styles = j;
1142
1150
  static properties = {
1143
1151
  ...w.properties,
@@ -1163,7 +1171,7 @@ class Yt extends w {
1163
1171
  t.listGames({ sport: this.sport, season: e }),
1164
1172
  t.listRankings({ sport: this.sport })
1165
1173
  ]);
1166
- return this._datePinned || (this.date = Ae(i.items.map((d) => d.date)), this._datePinned = !0), {
1174
+ return this._datePinned || (this.date = Te(i.items.map((d) => d.date)), this._datePinned = !0), {
1167
1175
  season: e,
1168
1176
  schools: s.items,
1169
1177
  teams: r.items,
@@ -1234,12 +1242,12 @@ class Yt extends w {
1234
1242
  // a lone score column on the far right read as detached from the teams).
1235
1243
  // Scheduled games carry their start time on the status pill alone.
1236
1244
  renderGame(t, e) {
1237
- const s = e.state === "final" || e.state === "live", r = (i, n, d = m) => l`<span class="side">${Gt(t, i, e.date)}${s ? l`<span class="score">${n}</span>` : m}${d}</span>`, o = Ue(e);
1245
+ const s = e.state === "final" || e.state === "live", r = (i, n, d = m) => l`<span class="side">${Vt(t, i, e.date)}${s ? l`<span class="score">${n}</span>` : m}${d}</span>`, o = He(e);
1238
1246
  return l`
1239
1247
  <li>
1240
1248
  ${J(e)}
1241
1249
  <span class="opp matchup">${r(e.awayTeamId, e.awayScore, l`<span class="at">at</span>`)}${r(e.homeTeamId, e.homeScore)}</span>
1242
- ${o ? l`<span class="ff">${E(t, o === "home" ? e.homeTeamId : e.awayTeamId)} forfeited</span>` : m}
1250
+ ${o ? l`<span class="ff">${C(t, o === "home" ? e.homeTeamId : e.awayTeamId)} forfeited</span>` : m}
1243
1251
  <span class="where">${e.venue || ""}</span>
1244
1252
  ${e.broadcast ? l`<span class="pill class">${e.broadcast}</span>` : m}
1245
1253
  <a class="box" href=${g(t.hrefs.game, { sport: this.sport, id: e.id })}>Box score →</a>
@@ -1247,8 +1255,8 @@ class Yt extends w {
1247
1255
  `;
1248
1256
  }
1249
1257
  }
1250
- globalThis?.customElements && !globalThis.customElements.get("hsot-scores") && globalThis.customElements.define("hsot-scores", Yt);
1251
- class Kt extends w {
1258
+ globalThis?.customElements && !globalThis.customElements.get("hsot-scores") && globalThis.customElements.define("hsot-scores", Kt);
1259
+ class Qt extends w {
1252
1260
  static styles = j;
1253
1261
  static properties = {
1254
1262
  ...w.properties,
@@ -1364,13 +1372,13 @@ class Kt extends w {
1364
1372
  <td class="num" style="color:${n >= 0 ? "var(--hsot-win)" : "var(--hsot-loss)"}">${n > 0 ? "+" : ""}${n}</td>
1365
1373
  <td>${st(e.rec.results) || "·"}</td>
1366
1374
  <td>${yt(t, e.team.id)}</td>
1367
- <td>${Vt(t, d, e.team.id)}</td>
1375
+ <td>${Yt(t, d, e.team.id)}</td>
1368
1376
  </tr>
1369
1377
  `;
1370
1378
  }
1371
1379
  }
1372
- globalThis?.customElements && !globalThis.customElements.get("hsot-standings") && globalThis.customElements.define("hsot-standings", Kt);
1373
- const Le = b`
1380
+ globalThis?.customElements && !globalThis.customElements.get("hsot-standings") && globalThis.customElements.define("hsot-standings", Qt);
1381
+ const We = b`
1374
1382
  .hero1 {
1375
1383
  border-radius: var(--hsot-radius-md); color: var(--hsot-white);
1376
1384
  padding: 1.3rem 1.4rem; display: flex; align-items: center; gap: 1.2rem;
@@ -1387,8 +1395,8 @@ const Le = b`
1387
1395
  .delta.new { background: var(--hsot-straw); color: #6b5900; border-radius: var(--hsot-radius-xs); padding: 0.1rem 0.3rem; font-size: 0.7rem; }
1388
1396
  .sparkline { vertical-align: middle; }
1389
1397
  `;
1390
- class Qt extends w {
1391
- static styles = [...j, Le];
1398
+ class Zt extends w {
1399
+ static styles = [...j, We];
1392
1400
  static properties = {
1393
1401
  ...w.properties,
1394
1402
  sport: { type: String },
@@ -1450,13 +1458,13 @@ class Qt extends w {
1450
1458
  </svg>`;
1451
1459
  }
1452
1460
  movement(t, e, s) {
1453
- const r = He(t, e, s);
1461
+ const r = Me(t, e, s);
1454
1462
  return r.kind === "up" ? l`<span class="delta up">▲ ${r.delta}</span>` : r.kind === "down" ? l`<span class="delta down">▼ ${r.delta}</span>` : r.kind === "new" ? l`<span class="delta new">NEW</span>` : r.kind === "same" ? l`<span class="delta same">—</span>` : l`<span class="delta same">·</span>`;
1455
1463
  }
1456
1464
  renderView() {
1457
1465
  const t = this.ctx, e = this.data.polls;
1458
1466
  if (!e.length) return l`<div class="view"><p class="empty">No ${this.sport} polls published yet this season.</p></div>`;
1459
- const s = Math.max(0, e.findIndex((p) => p.effectiveDate === this.pollDate)), r = e[s] || e[0], o = e[s + 1] || null, i = e.slice().reverse(), n = i.indexOf(r), d = v(this.data.conferences), c = (r.teamIds || [])[0], h = c ? U(t, c) : null;
1467
+ const s = Math.max(0, e.findIndex((p) => p.effectiveDate === this.pollDate)), r = e[s] || e[0], o = e[s + 1] || null, i = e.slice().reverse(), n = i.indexOf(r), d = v(this.data.conferences), c = (r.teamIds || [])[0], h = c ? O(t, c) : null;
1460
1468
  return l`
1461
1469
  ${$t(this, t, {
1462
1470
  title: l`${z(this.sport)} Top 25`,
@@ -1518,7 +1526,7 @@ class Qt extends w {
1518
1526
  `;
1519
1527
  }
1520
1528
  renderRow(t, e, s, r, o, i, n, d) {
1521
- const c = U(t, n);
1529
+ const c = O(t, n);
1522
1530
  if (!c) return m;
1523
1531
  const h = t.records[n], p = Bt(t.records, n), f = gt(this.data.games, n), u = i[t.teamsById[n]?.conferenceId], $ = () => {
1524
1532
  location.href = g(t.hrefs.school, { id: c.id });
@@ -1536,14 +1544,14 @@ class Qt extends w {
1536
1544
  <td>${p ? l`<a class="box" style="text-decoration:none" href=${g(t.hrefs.game, { sport: this.sport, id: p.gameId })}>
1537
1545
  <b style="color:${p.mark === "W" ? "var(--hsot-win)" : p.mark === "L" ? "var(--hsot-loss)" : "var(--hsot-tie)"}">${p.mark}</b>
1538
1546
  ${p.my}-${p.their} vs ${Z(t, p.opp)}</a>` : l`<span class="mut">·</span>`}</td>
1539
- <td>${Vt(t, f, n)}</td>
1547
+ <td>${Yt(t, f, n)}</td>
1540
1548
  <td>${this.sparkline(n, r, o)}</td>
1541
1549
  </tr>
1542
1550
  `;
1543
1551
  }
1544
1552
  }
1545
- globalThis?.customElements && !globalThis.customElements.get("hsot-rankings") && globalThis.customElements.define("hsot-rankings", Qt);
1546
- const je = b`
1553
+ globalThis?.customElements && !globalThis.customElements.get("hsot-rankings") && globalThis.customElements.define("hsot-rankings", Zt);
1554
+ const qe = b`
1547
1555
  .schoolhero { color: var(--hsot-white); padding: 1.6rem 1.25rem 1.3rem; }
1548
1556
  .schoolhero .inner { max-width: 1366px; margin: 0 auto; display: flex; gap: 1.2rem; align-items: center; flex-wrap: wrap; }
1549
1557
  .schoolhero .crest {
@@ -1566,10 +1574,14 @@ const je = b`
1566
1574
  .tile .v { font-family: var(--hsot-heading-font); font-weight: 700; font-size: 1.7rem; line-height: 1.15; color: var(--hsot-black); }
1567
1575
  .tile .s { font-size: 0.78rem; color: var(--hsot-gray-5); }
1568
1576
  .cols { display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); gap: 1.25rem; }
1577
+ /* The season roster photo heads the roster card, above the table. Natural
1578
+ height: a team photo is never cropped to a box — the card's overflow
1579
+ rounds its top corners. */
1580
+ .rosterphoto { display: block; width: 100%; height: auto; background: var(--hsot-gray-1); border-bottom: 1px solid var(--hsot-gray-2); }
1569
1581
  @media (max-width: 900px) { .cols { grid-template-columns: 1fr; } .schoolhero h1 { font-size: 1.9rem; } }
1570
1582
  `;
1571
- class Zt extends w {
1572
- static styles = [...j, je];
1583
+ class Jt extends w {
1584
+ static styles = [...j, qe];
1573
1585
  static properties = {
1574
1586
  ...w.properties,
1575
1587
  schoolId: { type: String, attribute: "school-id" },
@@ -1664,7 +1676,7 @@ class Zt extends w {
1664
1676
  <div class="tiles">
1665
1677
  <div class="tile"><div class="k">Overall</div><div class="v">${x(o)}</div><div class="s">${i} games played</div></div>
1666
1678
  <div class="tile"><div class="k">${s?.name || "Conference"}</div><div class="v">${x(o, !0)}</div>
1667
- <div class="s">${d ? `${Te(d)} of ${n.length}` : "·"}</div></div>
1679
+ <div class="s">${d ? `${Ie(d)} of ${n.length}` : "·"}</div></div>
1668
1680
  <div class="tile"><div class="k">Points</div><div class="v">${i ? (o.pf / i).toFixed(1) : "0.0"}</div>
1669
1681
  <div class="s">scored per game · ${i ? (o.pa / i).toFixed(1) : "0.0"} allowed</div></div>
1670
1682
  <div class="tile"><div class="k">Streak</div><div class="v">${st(o.results) || "·"}</div>
@@ -1685,7 +1697,7 @@ class Zt extends w {
1685
1697
  </div>
1686
1698
  <div>
1687
1699
  <div class="section-title">Roster · ${r}</div>
1688
- <div class="card">${this.renderRoster(r)}</div>
1700
+ <div class="card">${this.renderRoster(e, r)}</div>
1689
1701
  </div>
1690
1702
  </div>
1691
1703
  `;
@@ -1703,7 +1715,7 @@ class Zt extends w {
1703
1715
  <span class="d">${y(s.date)}</span>
1704
1716
  ${jt(s).kind === "sched" ? m : J(s)}
1705
1717
  <span class="res">${d}</span>
1706
- <span class="opp">${r ? "vs" : "at"} ${Gt(t, o, s.date)}
1718
+ <span class="opp">${r ? "vs" : "at"} ${Vt(t, o, s.date)}
1707
1719
  <span class="pill type">${c}</span>
1708
1720
  ${s.broadcast ? l`<span class="pill class">${s.broadcast}</span>` : m}
1709
1721
  </span>
@@ -1712,24 +1724,27 @@ class Zt extends w {
1712
1724
  </li>
1713
1725
  `;
1714
1726
  }
1715
- renderRoster(t) {
1716
- const e = this.data.roster;
1717
- if (!e)
1718
- return l`<p class="empty">Roster not published for ${t}.</p>`;
1719
- const s = v(this.data.players), r = e.entries.slice().sort((o, i) => (o.number || 0) - (i.number || 0));
1727
+ renderRoster(t, e) {
1728
+ const s = this.data.roster;
1729
+ if (!s)
1730
+ return l`<p class="empty">Roster not published for ${e}.</p>`;
1731
+ const r = je(s, 560), o = this.data.school?.name || "", i = v(this.data.players), n = s.entries.slice().sort((c, h) => (c.number || 0) - (h.number || 0)), d = n.some((c) => i[c.playerId]?.college);
1720
1732
  return l`
1733
+ ${r ? l`<img class="rosterphoto" src=${r} loading="lazy" decoding="async"
1734
+ alt="${o} ${t.name} ${e} team photo" />` : m}
1721
1735
  <div class="tablewrap"><table class="data">
1722
- <thead><tr><th class="num">No.</th><th>Player</th><th>Pos</th><th>Class</th><th class="num">Ht</th><th class="num">Wt</th></tr></thead>
1736
+ <thead><tr><th class="num">No.</th><th>Player</th><th>Pos</th><th>Class</th><th class="num">Ht</th><th class="num">Wt</th>${d ? l`<th>College</th>` : m}</tr></thead>
1723
1737
  <tbody>
1724
- ${r.map((o) => {
1725
- const i = s[o.playerId];
1726
- return i ? l`<tr>
1727
- <td class="num mut">${o.number ?? "·"}</td>
1728
- <td style="font-weight:500">${i.firstName} ${i.lastName}</td>
1729
- <td>${o.position || "·"}</td>
1730
- <td class="mut">${i.classOf || "·"}</td>
1731
- <td class="num">${Se(i.heightIn)}</td>
1732
- <td class="num">${i.weightLb || "·"}</td>
1738
+ ${n.map((c) => {
1739
+ const h = i[c.playerId];
1740
+ return h ? l`<tr>
1741
+ <td class="num mut">${c.number ?? "·"}</td>
1742
+ <td style="font-weight:500">${h.firstName} ${h.lastName}</td>
1743
+ <td>${c.position || "·"}</td>
1744
+ <td class="mut">${h.classOf || "·"}</td>
1745
+ <td class="num">${Ae(h.heightIn)}</td>
1746
+ <td class="num">${h.weightLb || "·"}</td>
1747
+ ${d ? l`<td>${h.college || "·"}</td>` : m}
1733
1748
  </tr>` : m;
1734
1749
  })}
1735
1750
  </tbody>
@@ -1737,16 +1752,16 @@ class Zt extends w {
1737
1752
  `;
1738
1753
  }
1739
1754
  }
1740
- globalThis?.customElements && !globalThis.customElements.get("hsot-school") && globalThis.customElements.define("hsot-school", Zt);
1741
- const We = "https://api.wral.com/search";
1742
- function qe(a) {
1755
+ globalThis?.customElements && !globalThis.customElements.get("hsot-school") && globalThis.customElements.define("hsot-school", Jt);
1756
+ const Ge = "https://api.wral.com/search";
1757
+ function Ve(a) {
1743
1758
  return a.map((t) => `uri:"${t}"`).join(" OR ");
1744
1759
  }
1745
- function Ge(a, t) {
1746
- const e = String(a || We).replace(/\/+$/, ""), s = new URLSearchParams({ query: qe(t), sort: "score", lang: "en" });
1760
+ function Ye(a, t) {
1761
+ const e = String(a || Ge).replace(/\/+$/, ""), s = new URLSearchParams({ query: Ve(t), sort: "score", lang: "en" });
1747
1762
  return `${e}/v1/query?${s}`;
1748
1763
  }
1749
- function Jt(a) {
1764
+ function Xt(a) {
1750
1765
  try {
1751
1766
  const t = new URL(a);
1752
1767
  if (/(^|\.)smugmug\.com$/i.test(t.hostname)) {
@@ -1761,13 +1776,13 @@ function Jt(a) {
1761
1776
  }
1762
1777
  return { uri: a, title: a };
1763
1778
  }
1764
- async function Ve(a, t, e) {
1765
- const r = await ((...n) => fetch(...n))(Ge(a, t));
1779
+ async function Ke(a, t, e) {
1780
+ const r = await ((...n) => fetch(...n))(Ye(a, t));
1766
1781
  if (!r.ok) throw new Error(`search answered ${r.status}`);
1767
1782
  const o = await r.json(), i = new Map((o.items || []).map((n) => [n.uri, n]));
1768
- return t.map((n) => i.get(n) || Jt(n));
1783
+ return t.map((n) => i.get(n) || Xt(n));
1769
1784
  }
1770
- const Ye = b`
1785
+ const Qe = b`
1771
1786
  .breadcrumbs { font-size: 0.8125rem; margin: 0.9rem 0 0; color: var(--hsot-gray-5); }
1772
1787
  .breadcrumbs a { text-decoration: none; }
1773
1788
  .scorehead { display: grid; grid-template-columns: 1fr auto 1fr; gap: 1rem; align-items: center; padding: 1.4rem 1rem; }
@@ -1806,8 +1821,8 @@ const Ye = b`
1806
1821
  .cols { grid-template-columns: 1fr; }
1807
1822
  }
1808
1823
  `;
1809
- class Xt extends w {
1810
- static styles = [...j, Ye];
1824
+ class te extends w {
1825
+ static styles = [...j, Qe];
1811
1826
  static properties = {
1812
1827
  ...w.properties,
1813
1828
  gameId: { type: String, attribute: "game-id" },
@@ -1829,7 +1844,7 @@ class Xt extends w {
1829
1844
  t.listGames({ sport: e.sport, season: e.season }),
1830
1845
  // A search outage must not blank the box score — degrade to bare
1831
1846
  // links (fetchCoverage already degrades per-URL index misses).
1832
- s.length ? Ve(this.searchApi, s).catch(() => s.map(Jt)) : Promise.resolve([])
1847
+ s.length ? Ke(this.searchApi, s).catch(() => s.map(Xt)) : Promise.resolve([])
1833
1848
  ]);
1834
1849
  return {
1835
1850
  game: e,
@@ -1861,7 +1876,7 @@ class Xt extends w {
1861
1876
  <p class="breadcrumbs">
1862
1877
  <a href=${g(e.hrefs.section, { sport: t.sport, view: "scores" })}>${z(t.sport)}</a> /
1863
1878
  <a href=${g(e.hrefs.section, { sport: t.sport, view: "scores" })}>Scores/Schedules</a> /
1864
- ${E(e, t.awayTeamId)} at ${E(e, t.homeTeamId)}
1879
+ ${C(e, t.awayTeamId)} at ${C(e, t.homeTeamId)}
1865
1880
  </p>
1866
1881
  <div class="card">
1867
1882
  <div class="scorehead">
@@ -1911,7 +1926,7 @@ class Xt extends w {
1911
1926
  <div class="card"><ul class="gamelist">
1912
1927
  ${c.map((h) => l`<li>
1913
1928
  <span class="d">${y(h.date)}</span>${J(h)}
1914
- <span class="opp">${E(e, h.awayTeamId)} ${h.awayScore}, ${E(e, h.homeTeamId)} ${h.homeScore}</span>
1929
+ <span class="opp">${C(e, h.awayTeamId)} ${h.awayScore}, ${C(e, h.homeTeamId)} ${h.homeScore}</span>
1915
1930
  <a class="box" href=${g(e.hrefs.game, { sport: t.sport, id: h.id })}>Box score →</a>
1916
1931
  </li>`)}
1917
1932
  </ul></div>` : m}
@@ -1973,9 +1988,9 @@ class Xt extends w {
1973
1988
  `;
1974
1989
  }
1975
1990
  }
1976
- globalThis?.customElements && !globalThis.customElements.get("hsot-boxscore") && globalThis.customElements.define("hsot-boxscore", Xt);
1977
- const Ke = 250, Qe = 2;
1978
- class te extends C {
1991
+ globalThis?.customElements && !globalThis.customElements.get("hsot-boxscore") && globalThis.customElements.define("hsot-boxscore", te);
1992
+ const Ze = 250, Je = 2;
1993
+ class ee extends E {
1979
1994
  static properties = {
1980
1995
  api: { type: String },
1981
1996
  schoolHref: { type: String, attribute: "school-href" },
@@ -2055,11 +2070,11 @@ class te extends C {
2055
2070
  }
2056
2071
  onInput(t) {
2057
2072
  const e = t.target.value.trim();
2058
- if (clearTimeout(this.debounceTimer), e.length < Qe) {
2073
+ if (clearTimeout(this.debounceTimer), e.length < Je) {
2059
2074
  this.abortController?.abort(), this.results = [], this.open = !1, this.searched = !1;
2060
2075
  return;
2061
2076
  }
2062
- this.debounceTimer = setTimeout(() => this.search(e), Ke);
2077
+ this.debounceTimer = setTimeout(() => this.search(e), Ze);
2063
2078
  }
2064
2079
  async search(t) {
2065
2080
  this.abortController?.abort(), this.abortController = new AbortController();
@@ -2152,22 +2167,22 @@ class te extends C {
2152
2167
  `;
2153
2168
  }
2154
2169
  }
2155
- globalThis?.customElements && !globalThis.customElements.get("hsot-school-search") && globalThis.customElements.define("hsot-school-search", te);
2156
- const Ze = {
2157
- "hsot-scores": Yt,
2158
- "hsot-standings": Kt,
2159
- "hsot-rankings": Qt,
2160
- "hsot-school": Zt,
2161
- "hsot-boxscore": Xt,
2162
- "hsot-school-search": te
2170
+ globalThis?.customElements && !globalThis.customElements.get("hsot-school-search") && globalThis.customElements.define("hsot-school-search", ee);
2171
+ const Xe = {
2172
+ "hsot-scores": Kt,
2173
+ "hsot-standings": Qt,
2174
+ "hsot-rankings": Zt,
2175
+ "hsot-school": Jt,
2176
+ "hsot-boxscore": te,
2177
+ "hsot-school-search": ee
2163
2178
  };
2164
- function Je() {
2179
+ function ts() {
2165
2180
  const a = globalThis?.customElements;
2166
2181
  if (a)
2167
- for (const [t, e] of Object.entries(Ze))
2182
+ for (const [t, e] of Object.entries(Xe))
2168
2183
  a.get(t) || a.define(t, e);
2169
2184
  }
2170
- typeof window < "u" && globalThis.customElements && Je();
2185
+ typeof window < "u" && globalThis.customElements && ts();
2171
2186
  export {
2172
- Je as defineAll
2187
+ ts as defineAll
2173
2188
  };