Rebuild bet sizing as a bottom sheet with situation-aware presets

Bet/Raise now opens a sheet whose presets follow the spot: open sizes
in BB (adjusted for limpers), 3bet/4bet multiples, postflop pot
fractions and raise multiples. Adds -/+ steppers with hold-to-repeat,
Min/All-in at the slider ends, and a square-curve slider so small sizes
stay precise with deep stacks. The hand view now exposes the street's
raise count so the client can tell a 3bet from a 4bet.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
agomizi1cmandClaude Opus 5.5 committed 2026-10-21 22:18:26 +09:00
1 parent ed5617a47a
commit b6ce648b5a
4 files changed
+412 -77

No files matched your search

+43 -23
View File
@@ -67,25 +67,6 @@
</main>
<section class="action-bar" id="action-bar" hidden>
<!-- レイズ額: レイズボタンから上に開く(すりガラスを重ねないよう .inner の外に置く) -->
<div class="raise-panel" id="raise-panel" hidden>
<div class="raise-head">
<div class="raise-value"><span class="cur" aria-hidden="true">$</span><input type="number" class="raise-amount" id="raise-amount" inputmode="numeric" aria-label="レイズ額"></div>
<span class="raise-meta" id="raise-meta"></span>
</div>
<div class="bet-slider" id="raise-range" role="slider" tabindex="0" aria-label="レイズ額">
<div class="bet-track"><div class="bet-fill"></div></div>
<div class="bet-thumb"></div>
</div>
<div class="presets" id="presets">
<button type="button" class="chip-btn" data-preset="min">Min</button>
<button type="button" class="chip-btn" data-preset="half">½ Pot</button>
<button type="button" class="chip-btn" data-preset="threeq">¾ Pot</button>
<button type="button" class="chip-btn" data-preset="pot">Pot</button>
<button type="button" class="chip-btn" data-preset="max">All-in</button>
</div>
</div>
<div class="inner">
<div class="me-row">
<div class="my-cards" id="my-cards" hidden></div>
@@ -108,10 +89,6 @@
<button class="btn act-call" id="act-call" disabled>Check</button>
<button class="btn act-raise" id="act-raise" disabled>Raise</button>
</div>
<div class="actions raising" id="raise-actions" hidden>
<button class="btn" id="raise-cancel">戻る</button>
<button class="btn act-raise" id="raise-confirm">Raise</button>
</div>
<div class="actions raising" id="review-actions" hidden>
<button class="btn" id="review-show">レビュー</button>
<button class="btn btn-tint" id="review-next">次のハンドへ</button>
@@ -130,6 +107,49 @@
<a class="btn btn-tint btn-lg" href="/">ロビーへ戻る</a>
</div>
<!-- ベット/レイズ額(Bet・Raise ボタンで下から出るシート。つまみを下へ払うと閉じる)。
候補はプリフロップのオープン・3bet・4bet、フロップ以降のベット・レイズで入れ替わる -->
<div class="sheet-backdrop bet-backdrop" id="bet-modal" hidden>
<div class="sheet bet-sheet" role="dialog" aria-modal="true" aria-labelledby="bet-title" tabindex="-1">
<div class="sheet-header bet-header" data-sheet-drag>
<span class="sheet-grabber" aria-hidden="true"></span>
<div class="bet-heading">
<h2 class="sheet-title" id="bet-title">Raise</h2>
<span class="bet-context" id="bet-context"></span>
</div>
</div>
<div class="bet-body">
<div class="bet-amount-row">
<label class="raise-value"><span class="cur" aria-hidden="true">$</span><input type="number" class="raise-amount" id="raise-amount" inputmode="numeric" aria-label="ベット額"></label>
<div class="raise-meta"><b id="raise-bb"></b><span id="raise-ratio"></span></div>
</div>
<div class="bet-presets" id="presets"></div>
<div class="bet-adjust">
<button type="button" class="step-btn" id="raise-minus" aria-label="1BB 減らす">
<svg class="i" viewBox="0 0 24 24" aria-hidden="true"><path d="M6 12h12"/></svg>
</button>
<div class="bet-slider" id="raise-range" role="slider" tabindex="0" aria-label="ベット額">
<div class="bet-track"><div class="bet-fill"></div></div>
<div class="bet-thumb"></div>
</div>
<button type="button" class="step-btn" id="raise-plus" aria-label="1BB 増やす">
<svg class="i" viewBox="0 0 24 24" aria-hidden="true"><path d="M12 6v12M6 12h12"/></svg>
</button>
</div>
<div class="bet-ends">
<button type="button" class="end-btn" id="raise-min">Min <span id="raise-min-amt"></span></button>
<button type="button" class="end-btn allin" id="raise-max">All-in <span id="raise-max-amt"></span></button>
</div>
</div>
<div class="sheet-footer">
<div class="btn-row">
<button type="button" class="btn btn-lg" id="raise-cancel">戻る</button>
<button type="button" class="btn btn-lg act-raise" id="raise-confirm">Raise</button>
</div>
</div>
</div>
</div>
<!-- 直前のハンドのレビュー(下から出るシート。つまみを下へ払うと閉じる) -->
<div class="sheet-backdrop" id="review-modal" hidden>
<div class="sheet review-sheet" role="dialog" aria-modal="true" aria-labelledby="review-title" tabindex="-1">