@seatlayer/js 0.10.0 → 0.10.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.cjs CHANGED
@@ -485,15 +485,28 @@ var CSS = `
485
485
  .sl-picker[data-layout="narrow"] .sl-zoom [data-ref="zin"],
486
486
  .sl-picker[data-layout="narrow"] .sl-zoom [data-ref="zout"]{display:none}
487
487
 
488
- /* bottom-sheet head: grab handle + one-line summary (narrow only) */
489
- .sl-sheet-head{display:none;flex-direction:column;padding:6px 16px 8px;cursor:grab;touch-action:none;
490
- user-select:none;-webkit-user-select:none;flex:none}
488
+ /* bottom-sheet head: grab handle + one-line summary (narrow only). The WHOLE
489
+ head is the tap/swipe toggle target (min 44px), so it reads as one control. */
490
+ .sl-sheet-head{display:none;flex-direction:column;justify-content:center;padding:6px 16px 8px;min-height:44px;
491
+ cursor:pointer;touch-action:none;user-select:none;-webkit-user-select:none;flex:none}
491
492
  .sl-picker[data-layout="narrow"] .sl-sheet-head{display:flex}
492
493
  .sl-sheet-grab{width:36px;height:4px;border-radius:999px;background:var(--sl-muted);opacity:.55;margin:2px auto 7px}
493
- .sl-sheet-peek{display:flex;align-items:center;gap:7px;font-size:13px;font-weight:700;color:var(--sl-text);
494
- white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-height:20px}
494
+ .sl-sheet-bar{display:flex;align-items:center;gap:10px;min-height:26px}
495
+ .sl-sheet-peek{display:flex;align-items:center;gap:7px;flex:1;min-width:0;font-size:13px;font-weight:700;color:var(--sl-text);
496
+ white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
495
497
  .sl-sheet-peek .sub{color:var(--sl-muted);font-weight:600}
496
- .sl-sheet-peek .go{margin-left:auto;color:var(--sl-accent);font-weight:800;flex:none}
498
+ /* collapsed-peek "Continue" affordance: a real accent pill, not plain text */
499
+ .sl-sheet-peek .go{margin-left:auto;flex:none;display:inline-flex;align-items:center;min-height:30px;
500
+ padding:6px 13px;border-radius:999px;background:var(--sl-accent);color:var(--sl-accent-ink);
501
+ font-weight:800;font-size:12.5px}
502
+ /* state chevron: points UP while peeking, rotates to point DOWN when open.
503
+ Base keeps an explicit rotate(0) \u2014 transitioning to/from a bare 'none' leaves
504
+ the value stuck in some engines, so both endpoints must be real transforms. */
505
+ .sl-sheet-chevron{flex:none;display:flex;align-items:center;justify-content:center;color:var(--sl-muted);
506
+ transform:rotate(0deg);transition:transform .22s ease}
507
+ .sl-sheet-chevron svg{width:18px;height:18px;stroke:currentColor;stroke-width:2.4;fill:none;
508
+ stroke-linecap:round;stroke-linejoin:round}
509
+ .sl-picker[data-sheet="open"] .sl-sheet-chevron{transform:rotate(180deg)}
497
510
 
498
511
  /* consolidated Filters row inside the sheet (a11y chips + colorblind toggle
499
512
  dock here on narrow; they live on the map / zoom column on wide) */
@@ -542,10 +555,18 @@ var CSS = `
542
555
  .sl-foot{padding:12px 16px 14px;border-top:1px solid var(--sl-line);flex:none}
543
556
  .sl-total{display:flex;justify-content:space-between;align-items:center;font-size:13px;margin-bottom:10px}
544
557
  .sl-total b{font-size:17px;font-variant-numeric:tabular-nums}
545
- .sl-cta{width:100%;padding:13px;border-radius:var(--sl-r-sm);font-weight:800;font-size:14px;
546
- background:var(--sl-accent);color:var(--sl-accent-ink);transition:filter .15s,opacity .15s}
547
- .sl-cta:hover{filter:brightness(1.08)}
548
- .sl-cta:disabled{opacity:.45;cursor:not-allowed}
558
+ /* Primary checkout CTA. Scoped under .sl-picker so it OUTWEIGHS the
559
+ '.sl-picker button' reset (0,1,1) \u2014 an unscoped '.sl-cta' (0,1,0) loses to it
560
+ and the button renders as plain text with no accent fill. */
561
+ .sl-picker .sl-cta{display:flex;align-items:center;justify-content:center;width:100%;min-height:44px;
562
+ padding:12px 16px;border-radius:var(--sl-r-sm);font-weight:800;font-size:14px;line-height:1.1;
563
+ background:var(--sl-accent);color:var(--sl-accent-ink);
564
+ transition:filter .15s,background .15s,color .15s,transform .06s}
565
+ .sl-picker .sl-cta:hover{filter:brightness(1.08)}
566
+ .sl-picker .sl-cta:active{transform:translateY(1px);filter:brightness(.94)}
567
+ /* Disabled ("Select seats"): quieter, but still a full-width button shape. */
568
+ .sl-picker .sl-cta:disabled{background:var(--sl-surface);color:var(--sl-muted);opacity:1;
569
+ cursor:not-allowed;filter:none;transform:none}
549
570
 
550
571
  /* Chrome anchor regions (Feature 6) \u2014 every persistent map overlay is APPENDED
551
572
  INTO one of these positioned flex containers and flows/stacks within it, so no
@@ -977,7 +998,12 @@ var SeatPicker = class _SeatPicker {
977
998
  <div class="sl-side" data-ref="side">
978
999
  <div class="sl-sheet-head" data-ref="sheetHead">
979
1000
  <div class="sl-sheet-grab"></div>
980
- <div class="sl-sheet-peek" data-ref="peek"></div>
1001
+ <div class="sl-sheet-bar">
1002
+ <div class="sl-sheet-peek" data-ref="peek"></div>
1003
+ <span class="sl-sheet-chevron" aria-hidden="true">
1004
+ <svg viewBox="0 0 24 24"><path d="M6 15l6-6 6 6"/></svg>
1005
+ </span>
1006
+ </div>
981
1007
  </div>
982
1008
  <div class="sl-sec sl-filtersec" data-ref="filtersSec">Filters</div>
983
1009
  <div class="sl-filters" data-ref="filters"></div>
@@ -1895,10 +1921,10 @@ var SeatPicker = class _SeatPicker {
1895
1921
  cta.textContent = this.hold ? "Continue to checkout" : count ? "Hold seats & checkout" : "Select seats";
1896
1922
  if (this.els.peek) {
1897
1923
  if (count) {
1898
- this.els.peek.innerHTML = `<span>${count} ${count === 1 ? "ticket" : "tickets"} \xB7 ${this.money(total)}</span><span class="go">${this.hold ? "Continue \u2192" : "Review \u2192"}</span>`;
1924
+ this.els.peek.innerHTML = `<span>${count} ${count === 1 ? "ticket" : "tickets"} \xB7 ${this.money(total)}</span><span class="go">${this.hold ? "Continue" : "Review"}</span>`;
1899
1925
  } else {
1900
1926
  const prices = (this.controller.doc?.categories ?? []).map((c) => this.catPrice(c)).filter((p) => p != null);
1901
- this.els.peek.innerHTML = (prices.length ? `<span>From ${this.money(Math.min(...prices))}</span>` : "<span>Pick your seats</span>") + `<span class="sub">\xB7 Best available</span><span class="go">\u2191</span>`;
1927
+ this.els.peek.innerHTML = (prices.length ? `<span>From ${this.money(Math.min(...prices))}</span>` : "<span>Pick your seats</span>") + `<span class="sub">\xB7 Best available</span>`;
1902
1928
  }
1903
1929
  }
1904
1930
  if (this.root?.dataset.layout === "narrow" && count > 0 && this.lastTrayCount === 0) {