@zhuweiyou/dsh-holdem 0.1.2 → 0.1.3
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/lib/client.js +331 -283
- package/lib/client.js.map +1 -1
- package/lib/index.js +32 -7
- package/lib/index.js.map +1 -1
- package/lib/types/client/ActionBar.d.ts +6 -1
- package/lib/types/client/ActionBar.d.ts.map +1 -1
- package/lib/types/client/Table.d.ts.map +1 -1
- package/lib/types/client/i18n.d.ts.map +1 -1
- package/lib/types/client/store.d.ts.map +1 -1
- package/lib/types/invariant.d.ts +2 -0
- package/lib/types/invariant.d.ts.map +1 -1
- package/lib/types/net/ws.d.ts.map +1 -1
- package/lib/types/room/RoomManager.d.ts +10 -0
- package/lib/types/room/RoomManager.d.ts.map +1 -1
- package/lib/worker.js +31 -6
- package/lib/worker.js.map +1 -1
- package/package.json +1 -1
package/lib/client.js
CHANGED
|
@@ -170,6 +170,7 @@ const ZH = {
|
|
|
170
170
|
"table.potBet": "一池",
|
|
171
171
|
"table.min": "最小",
|
|
172
172
|
"table.max": "最大",
|
|
173
|
+
"table.noRaise": "本轮不能加注",
|
|
173
174
|
"table.timer": "{s} 秒",
|
|
174
175
|
"table.spectatorHint": "观战模式:看不到任何未亮出的底牌,有人离座后可以补位。",
|
|
175
176
|
"table.noSeat": "你还没有入座",
|
|
@@ -331,6 +332,7 @@ const EN = {
|
|
|
331
332
|
"table.potBet": "Pot",
|
|
332
333
|
"table.min": "Min",
|
|
333
334
|
"table.max": "Max",
|
|
335
|
+
"table.noRaise": "No raise this round",
|
|
334
336
|
"table.timer": "{s}s",
|
|
335
337
|
"table.spectatorHint": "Spectating: hole cards stay hidden. You can take a freed seat.",
|
|
336
338
|
"table.noSeat": "You are not seated",
|
|
@@ -690,6 +692,13 @@ function clearToast() {
|
|
|
690
692
|
set({ toast: null });
|
|
691
693
|
}
|
|
692
694
|
const BASE_KEY = "holdem:api-base";
|
|
695
|
+
/**
|
|
696
|
+
* 实时通道地址。
|
|
697
|
+
*
|
|
698
|
+
* 故意不带子协议:Cloudflare Worker 的 Durable Object 没法在 101 响应里回
|
|
699
|
+
* `Sec-WebSocket-Protocol`,浏览器只要请求了子协议,握手就会以 1006 失败,
|
|
700
|
+
* 于是玩家明明能操作(HTTP 正常)却一直显示「离线」。服务端两种都收。
|
|
701
|
+
*/
|
|
693
702
|
function wsUrl(ticket) {
|
|
694
703
|
const base = getApiBase();
|
|
695
704
|
const url = base === "" ? new URL(location.href) : new URL(base);
|
|
@@ -751,7 +760,7 @@ function connectChannel(roomId, ticket) {
|
|
|
751
760
|
set({ connection: "connecting" });
|
|
752
761
|
let ws;
|
|
753
762
|
try {
|
|
754
|
-
ws = new WebSocket(wsUrl(ticket)
|
|
763
|
+
ws = new WebSocket(wsUrl(ticket));
|
|
755
764
|
} catch {
|
|
756
765
|
set({ connection: "polling" });
|
|
757
766
|
startPolling(roomId);
|
|
@@ -1079,7 +1088,7 @@ function downloadJson(filename, value) {
|
|
|
1079
1088
|
|
|
1080
1089
|
//#endregion
|
|
1081
1090
|
//#region \0dsh-css:/Users/yiyi/work/dsh-holdem/src/client/styles.module.css.mjs
|
|
1082
|
-
const css = ".XdMBba_panel{background:var(--dsw-alias-bg-base,#101418);height:100%;min-height:0;color:var(--dsw-alias-label-primary,#e9ecf2);flex-direction:column;font-size:13px;line-height:1.5;display:flex;position:relative;overflow:hidden}.XdMBba_panel *,.XdMBba_panel :before,.XdMBba_panel :after{box-sizing:border-box}.XdMBba_btn{border:1px solid var(--dsw-alias-border-l1,#7f7f7f47);background:var(--dsw-alias-bg-layer-2,#7f7f7f1a);color:var(--dsw-alias-label-primary,#111);font:inherit;cursor:pointer;border-radius:8px;justify-content:center;align-items:center;gap:6px;padding:7px 12px;font-size:12.5px;transition:background .12s,border-color .12s,opacity .12s;display:inline-flex}.XdMBba_btn:hover:not(:disabled){border-color:var(--dsw-alias-border-l2,#7f7f7f73);background:var(--dsw-alias-bg-layer-1,#7f7f7f29)}.XdMBba_btn:disabled{opacity:.45;cursor:default}.XdMBba_btn:focus-visible{outline:2px solid var(--dsw-alias-brand-primary,#2f9c76);outline-offset:1px}.XdMBba_btnPrimary{background:var(--dsw-alias-brand-primary,#2f9c76);color:var(--dsw-alias-bg-base,#06130f);border-color:#0000;font-weight:700}.XdMBba_btn.XdMBba_btnPrimary:hover:not(:disabled){background:var(--dsw-alias-brand-primary,#2f9c76);color:var(--dsw-alias-bg-base,#06130f);filter:brightness(1.08);border-color:#0000}.XdMBba_btnOutline{border-color:var(--dsw-alias-border-l2,#7f7f7f80);background:0 0}.XdMBba_btnGhost{color:var(--dsw-alias-label-secondary,#93a0b1);background:0 0;border-color:#0000}.XdMBba_btn.XdMBba_btnGhost:hover:not(:disabled){background:var(--dsw-alias-bg-layer-2,#7f7f7f1a);color:var(--dsw-alias-label-primary,#e9ecf2);border-color:#0000}.XdMBba_btnDanger{border-color:var(--dsw-alias-state-error-primary,#e06c75);color:var(--dsw-alias-state-error-primary,#e06c75);background:0 0}.XdMBba_btn.XdMBba_btnDanger:hover:not(:disabled){border-color:var(--dsw-alias-state-error-primary,#e06c75);background:color-mix(in srgb, var(--dsw-alias-state-error-primary,#e06c75) 10%, transparent);color:var(--dsw-alias-state-error-primary,#e06c75)}.XdMBba_btnChip{background:var(--dsw-alias-bg-layer-2,#7f7f7f1a);color:var(--dsw-alias-label-secondary,#93a0b1);border-radius:999px;padding:4px 9px;font-size:11.5px}.XdMBba_btnWide{width:100%}.XdMBba_netUp{color:var(--dsw-alias-state-success-primary,#4cc38a)}.XdMBba_netDown{color:var(--dsw-alias-state-error-primary,#e06c75)}.XdMBba_netFlat{color:var(--dsw-alias-label-secondary,#93a0b1)}.XdMBba_cfPanel{border:1px solid var(--dsw-alias-border-l1,#7f7f7f47);background:var(--dsw-alias-bg-layer-2,#7f7f7f14);border-radius:10px;flex-direction:column;gap:8px;padding:10px;display:flex}.XdMBba_cfRow{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.XdMBba_grow{flex:1}.XdMBba_cfBadge{border:1px solid var(--dsw-alias-border-l2,#7f7f7f73);color:var(--dsw-alias-label-secondary,#93a0b1);border-radius:999px;padding:2px 9px;font-size:11.5px}.XdMBba_cfBadgeOn{border-color:var(--dsw-alias-state-success-primary,#1f9d63);color:var(--dsw-alias-state-success-primary,#1f9d63)}.XdMBba_cfBadgeWait{border-color:var(--dsw-alias-state-warn-primary,#b7791f);color:var(--dsw-alias-state-warn-primary,#b7791f)}.XdMBba_cfWaiting{color:var(--dsw-alias-state-warn-primary,#b7791f);font-size:11.5px}.XdMBba_cfLabel{color:var(--dsw-alias-label-secondary,#93a0b1);flex:none;font-size:11.5px}.XdMBba_cfAuthBox{border:1px dashed var(--dsw-alias-brand-primary,#2f9c76);border-radius:8px;flex-direction:column;gap:6px;padding:8px;display:flex}.XdMBba_cfAuthHint{color:var(--dsw-alias-label-secondary,#93a0b1);margin:0;font-size:11.5px}.XdMBba_cfError{color:var(--dsw-alias-state-error-primary,#d64545);margin:0;font-size:11.5px}.XdMBba_cfLog{background:var(--dsw-alias-bg-base,#fff);max-height:96px;color:var(--dsw-alias-label-secondary,#666);white-space:pre-wrap;border-radius:8px;margin:0;padding:6px 8px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:10.5px;overflow:auto}.XdMBba_hostRow{flex-wrap:wrap;gap:6px;display:flex}.XdMBba_hostActive{border-color:var(--dsw-alias-brand-primary,#2f9c76);background:var(--dsw-alias-brand-primary,#2f9c76);color:var(--dsw-alias-bg-base,#fff);font-weight:700}.XdMBba_hintLink{color:var(--dsw-alias-brand-primary,#141414);text-underline-offset:2px;text-decoration:underline}.XdMBba_buildTag{text-align:center;color:var(--dsw-alias-label-secondary,#93a0b1);opacity:.75;margin:10px 0 0;font-size:10.5px}.XdMBba_hint{color:var(--dsw-alias-label-secondary,#93a0b1);margin:4px 0 0;font-size:11.5px}.XdMBba_railEmpty{color:var(--dsw-alias-label-secondary,#93a0b1);margin:4px 0;font-size:11.5px}.XdMBba_loading{text-align:center;color:var(--dsw-alias-label-secondary,#93a0b1);margin:auto}.XdMBba_loadingMark{border:3px solid var(--dsw-alias-border-l1,#7f7f7f47);border-top-color:var(--dsw-alias-brand-primary,#2f9c76);border-radius:50%;width:34px;height:34px;margin:0 auto 10px;animation:.9s linear infinite XdMBba_spin}@keyframes XdMBba_spin{to{transform:rotate(360deg)}}.XdMBba_toast{border:1px solid var(--dsw-alias-border-l2,#7f7f7f73);background:var(--dsw-alias-bg-overlay,#1b1b1c);max-width:min(420px,100% - 32px);color:var(--dsw-alias-label-primary,#e9ecf2);font:inherit;cursor:pointer;z-index:20;border-radius:999px;padding:9px 16px;font-size:12.5px;animation:.18s XdMBba_toastIn;position:absolute;bottom:18px;left:50%;transform:translate(-50%);box-shadow:0 10px 28px #00000059}.XdMBba_toastError{border-color:var(--dsw-alias-state-error-primary,#e06c75);color:var(--dsw-alias-state-error-primary,#e06c75)}@keyframes XdMBba_toastIn{0%{opacity:0;transform:translate(-50%,6px)}}.XdMBba_lobby{width:min(480px,100% - 32px);max-height:100%;margin:auto;padding:28px 4px;overflow-y:auto}.XdMBba_lobbyHead{text-align:center;margin-bottom:18px}.XdMBba_lobbyTitle{letter-spacing:.02em;margin:0;font-size:22px}.XdMBba_lobbySubtitle{color:var(--dsw-alias-label-secondary,#93a0b1);margin:4px 0 0;font-size:12px}.XdMBba_notice,.XdMBba_noticeError,.XdMBba_inviteBanner{border:1px solid var(--dsw-alias-border-l1,#7f7f7f47);background:var(--dsw-alias-bg-layer-2,#7f7f7f14);border-radius:10px;margin:0 0 12px;padding:9px 12px;font-size:12.5px}.XdMBba_noticeError{border-color:var(--dsw-alias-state-error-primary,#e06c75);color:var(--dsw-alias-state-error-primary,#e06c75)}.XdMBba_inviteBanner{border-color:var(--dsw-alias-brand-primary,#2f9c76);color:var(--dsw-alias-brand-primary,#2f9c76)}.XdMBba_tabs{background:var(--dsw-alias-bg-layer-2,#7f7f7f1a);border-radius:10px;gap:6px;margin-bottom:16px;padding:4px;display:flex}.XdMBba_tab{color:var(--dsw-alias-label-secondary,#93a0b1);font:inherit;cursor:pointer;background:0 0;border:none;border-radius:7px;flex:1;padding:8px 0}.XdMBba_tabActive{background:var(--dsw-alias-bg-layer-1,#232324);color:var(--dsw-alias-label-primary,#e9ecf2);box-shadow:0 1px 4px #0003}.XdMBba_lobbyBody{flex-direction:column;gap:12px;display:flex}.XdMBba_field{flex-direction:column;gap:5px;display:flex}.XdMBba_fieldLabel{color:var(--dsw-alias-label-secondary,#93a0b1);font-size:11.5px}.XdMBba_input{border:1px solid var(--dsw-alias-border-l2,#7f7f7f80);background:var(--dsw-alias-bg-base,#1b1b1c);width:100%;color:var(--dsw-alias-label-primary,#e9ecf2);font:inherit;border-radius:9px;padding:9px 11px}.XdMBba_input::placeholder{color:var(--dsw-alias-label-secondary,#93a0b1);opacity:1}.XdMBba_input:hover:not(:disabled){border-color:var(--dsw-alias-brand-primary,#2f9c76)}.XdMBba_input:focus{border-color:var(--dsw-alias-brand-primary,#2f9c76);box-shadow:0 0 0 2px color-mix(in srgb, var(--dsw-alias-brand-primary,#2f9c76) 28%, transparent);outline:none}.XdMBba_inputCode{letter-spacing:6px;text-align:center;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:20px}.XdMBba_previewCard{border:1px solid var(--dsw-alias-border-l1,#7f7f7f47);background:var(--dsw-alias-bg-layer-1,#1b1b1c);border-radius:12px;flex-direction:column;gap:10px;padding:14px;display:flex}.XdMBba_previewHead{justify-content:space-between;align-items:baseline;gap:8px;display:flex}.XdMBba_previewMeta{color:var(--dsw-alias-label-secondary,#93a0b1);font-size:11.5px}.XdMBba_previewSeats{grid-template-columns:repeat(3,1fr);gap:6px;display:grid}.XdMBba_previewSeat{border:1px dashed var(--dsw-alias-border-l1,#7f7f7f47);text-align:center;color:var(--dsw-alias-label-secondary,#93a0b1);text-overflow:ellipsis;white-space:nowrap;border-radius:7px;padding:6px;font-size:11.5px;overflow:hidden}.XdMBba_previewSeatFilled{color:var(--dsw-alias-label-primary,#e9ecf2);background:var(--dsw-alias-bg-layer-2,#7f7f7f1a);border-style:solid}.XdMBba_previewActions{gap:8px;display:flex}.XdMBba_previewActions>*{flex:1}.XdMBba_table{flex-direction:column;height:100%;min-height:0;display:flex}.XdMBba_header{border-bottom:1px solid var(--dsw-alias-border-l1,#7f7f7f33);flex:none;justify-content:space-between;align-items:flex-start;gap:12px;padding:10px 16px;display:flex}.XdMBba_headerMain{min-width:0}.XdMBba_titleRow{align-items:center;gap:8px;min-width:0;display:flex}.XdMBba_roomTitle{white-space:nowrap;text-overflow:ellipsis;max-width:260px;margin:0;font-size:15px;font-weight:700;overflow:hidden}.XdMBba_codeChip{border:1px solid var(--dsw-alias-border-l1,#7f7f7f47);color:var(--dsw-alias-label-secondary,#93a0b1);font:inherit;cursor:pointer;white-space:nowrap;background:0 0;border-radius:999px;align-items:center;gap:6px;padding:2px 9px;font-size:11px;display:inline-flex}.XdMBba_codeChip:hover{color:var(--dsw-alias-label-primary,#e9ecf2);border-color:var(--dsw-alias-border-l2,#7f7f7f80)}.XdMBba_copiedTag{color:var(--dsw-alias-state-success-primary,#4cc38a)}.XdMBba_phasePill{color:var(--dsw-alias-label-secondary,#93a0b1);border:1px solid;border-radius:999px;padding:1px 8px;font-size:10.5px}.XdMBba_phasePillHand{color:var(--dsw-alias-brand-primary,#2f9c76)}.XdMBba_phasePillLobby{color:var(--dsw-alias-label-secondary,#93a0b1)}.XdMBba_metaRow{color:var(--dsw-alias-label-secondary,#93a0b1);flex-wrap:wrap;align-items:center;gap:10px;margin-top:4px;font-size:11.5px;display:flex}.XdMBba_conn{font-size:10px}.XdMBba_connLive{color:var(--dsw-alias-state-success-primary,#4cc38a)}.XdMBba_connPolling{color:var(--dsw-alias-state-warn-primary,#c58a00)}.XdMBba_connOffline{color:var(--dsw-alias-state-error-primary,#e06c75)}.XdMBba_spectatorCount{white-space:nowrap}.XdMBba_headerActions{flex-wrap:wrap;flex:none;justify-content:flex-end;align-items:center;gap:6px;display:flex}.XdMBba_tableBody{flex:1;min-height:0;display:flex}.XdMBba_feltArea{flex-direction:column;flex:1;gap:8px;min-width:0;min-height:0;padding:10px 12px 12px;display:flex}.XdMBba_felt{--felt-ink:#fffffff0;--felt-ink-dim:#ffffffad;--felt-line:#ffffff4d;background:radial-gradient(at 50% 38%,#ffffff1f,#0000 58%),radial-gradient(at 50% 120%,#00000080,#0000 62%),linear-gradient(165deg,#1f6a4f 0%,#17553f 55%,#123f30 100%);border:1px solid #00000052;border-radius:26px;flex:1;min-height:300px;position:relative;overflow:hidden;box-shadow:inset 0 0 70px #0000006b,0 10px 26px #00000029}.XdMBba_seatsLayer{position:absolute;inset:0}.XdMBba_center{text-align:center;pointer-events:none;flex-direction:column;align-items:center;gap:6px;width:min(430px,70%);display:flex;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.XdMBba_center>*{pointer-events:auto}.XdMBba_streetLabel{letter-spacing:.18em;text-transform:uppercase;color:var(--felt-ink-dim,#93a0b1);font-size:10.5px}.XdMBba_boardRow{flex-wrap:nowrap;justify-content:center;align-items:center;gap:6px;display:flex}.XdMBba_potRow{flex-wrap:wrap;justify-content:center;align-items:center;gap:8px;display:flex}.XdMBba_potChips{background:radial-gradient(circle at 35% 30%,#f0d27a,#a67c1f 70%);border-radius:50%;width:14px;height:14px;box-shadow:0 0 0 2px #00000040}.XdMBba_potAmount{color:var(--felt-ink,#e9ecf2);text-shadow:0 1px 2px #00000059;font-size:13px;font-weight:700}.XdMBba_sidePots{flex-wrap:wrap;gap:6px;display:flex}.XdMBba_sidePot{color:var(--felt-ink-dim,#93a0b1);border:1px solid var(--felt-line,#7f7f7f47);border-radius:999px;padding:1px 7px;font-size:10.5px}.XdMBba_lobbyCenter{background:var(--dsw-alias-bg-overlay,#1b1b1c);border:1px solid var(--dsw-alias-border-l2,#7f7f7f73);border-radius:14px;flex-direction:column;align-items:center;gap:8px;padding:12px 16px;display:flex;box-shadow:0 12px 30px #00000047}.XdMBba_centerTitle{font-size:14px;font-weight:700}.XdMBba_centerHint{color:var(--dsw-alias-label-secondary,#93a0b1);min-height:16px;font-size:11.5px}.XdMBba_centerActions{gap:8px;display:flex}.XdMBba_handOverBanner{background:var(--dsw-alias-bg-overlay,#1b1b1c);border:1px solid var(--dsw-alias-border-l2,#7f7f7f73);white-space:nowrap;border-radius:12px;flex-direction:column;gap:4px;padding:9px 14px;display:flex;position:absolute;top:-8px;left:50%;transform:translate(-50%,-100%);box-shadow:0 12px 30px #00000059}.XdMBba_bannerTitle{font-size:13px;font-weight:700}.XdMBba_bannerDeltas{flex-wrap:wrap;justify-content:center;gap:10px;font-size:11.5px;display:flex}.XdMBba_bannerNext{color:var(--dsw-alias-label-secondary,#93a0b1);text-align:center;font-size:10.5px}.XdMBba_seat{border:1px solid var(--dsw-alias-border-l1,#7f7f7f47);background:color-mix(in srgb, var(--dsw-alias-bg-layer-1,#1b1b1c) 88%, transparent);backdrop-filter:blur(3px);border-radius:13px;flex-direction:column;gap:5px;width:172px;padding:8px 9px;transition:border-color .15s,box-shadow .15s,opacity .15s;display:flex;position:absolute}.XdMBba_seatYou{border-color:var(--dsw-alias-brand-primary,#2f9c76)}.XdMBba_seatActor{border-color:var(--dsw-alias-state-warn-primary,#e8c15a);box-shadow:0 0 0 1px var(--dsw-alias-state-warn-primary,#e8c15a), 0 0 22px #e8c15a33}.XdMBba_seatOut{opacity:.52}.XdMBba_seatOffline .XdMBba_nameText{text-decoration:line-through}.XdMBba_seatEmpty{border-style:dashed;border-color:var(--felt-line,#7f7f7f52);min-height:74px;color:var(--felt-ink-dim,#93a0b1);background:#ffffff0d;justify-content:center;align-items:center;gap:6px}.XdMBba_seatEmpty:hover{border-color:var(--felt-ink,#e9ecf2);background:#ffffff1a}.XdMBba_seatEmptyText{color:var(--felt-ink-dim,#93a0b1);font-size:11px}.XdMBba_pos0{bottom:10px;left:50%;transform:translate(-50%)}.XdMBba_pos1{bottom:104px;left:3%}.XdMBba_pos2{top:78px;left:2%}.XdMBba_pos3{top:8px;left:50%;transform:translate(-50%)}.XdMBba_pos4{top:78px;right:2%}.XdMBba_pos5{bottom:104px;right:3%}.XdMBba_seatTop{align-items:center;gap:8px;display:flex}.XdMBba_avatar{color:#fff;text-shadow:0 1px 2px #00000059;border-radius:50%;flex:none;place-items:center;width:34px;height:34px;font-size:13px;font-weight:700;display:grid;position:relative}.XdMBba_timerRing{background:conic-gradient(var(--dsw-alias-state-warn-primary,#e8c15a) var(--progress,360deg), transparent 0);pointer-events:none;border-radius:50%;position:absolute;inset:-3px;-webkit-mask:radial-gradient(farthest-side,#0000 calc(100% - 3px),#000 calc(100% - 2px));mask:radial-gradient(farthest-side,#0000 calc(100% - 3px),#000 calc(100% - 2px))}.XdMBba_seatMeta{flex:1;min-width:0}.XdMBba_seatName{flex-wrap:wrap;align-items:center;gap:4px;min-width:0;display:flex}.XdMBba_nameText{text-overflow:ellipsis;white-space:nowrap;max-width:82px;font-size:12px;font-weight:600;overflow:hidden}.XdMBba_badge{color:var(--dsw-alias-label-secondary,#93a0b1);border:1px solid;border-radius:4px;padding:2px 4px;font-size:9px;line-height:1}.XdMBba_badgeDealer{color:var(--dsw-alias-label-primary,#e9ecf2)}.XdMBba_badgeBlind{color:var(--dsw-alias-state-warn-primary,#c58a00)}.XdMBba_badgeYou,.XdMBba_badgeHost{color:var(--dsw-alias-brand-primary,#2f9c76)}.XdMBba_seatStack{font-variant-numeric:tabular-nums;color:var(--dsw-alias-label-primary,#e9ecf2);font-size:11.5px}.XdMBba_seatStatus{color:var(--dsw-alias-label-secondary,#93a0b1);flex-wrap:wrap;gap:6px;min-height:13px;font-size:10px;display:flex}.XdMBba_statusAllIn{color:var(--dsw-alias-state-warn-primary,#c58a00);font-weight:600}.XdMBba_statusFolded{color:var(--dsw-alias-state-idle-primary,#7d8794)}.XdMBba_statusMuted{color:var(--dsw-alias-state-error-primary,#e06c75)}.XdMBba_statusAction{color:var(--dsw-alias-label-secondary,#93a0b1);text-overflow:ellipsis;white-space:nowrap;max-width:100%;overflow:hidden}.XdMBba_seatCards{justify-content:center;align-items:center;gap:4px;min-height:54px;display:flex}.XdMBba_kickBtn{border:1px solid var(--dsw-alias-state-error-primary,#d64545);background:var(--dsw-alias-bg-base,#fff);height:17px;color:var(--dsw-alias-state-error-primary,#d64545);font:inherit;cursor:pointer;border-radius:999px;align-items:center;padding:0 6px;font-size:9.5px;line-height:1;display:inline-flex;position:absolute;top:6px;right:6px}.XdMBba_kickBtn:hover{background:var(--dsw-alias-state-error-primary,#d64545);color:#fff}.XdMBba_betChip{font-variant-numeric:tabular-nums;background:var(--dsw-alias-bg-overlay,#1b1b1c);border:1px solid var(--dsw-alias-state-warn-primary,#c58a00);color:var(--dsw-alias-state-warn-primary,#e8c15a);border-radius:999px;padding:1px 8px;font-size:10.5px;font-weight:700;position:absolute;top:-10px;right:8px}.XdMBba_handName{color:var(--dsw-alias-label-secondary,#93a0b1);font-size:10px}.XdMBba_card{color:#16171a;font-variant-numeric:tabular-nums;user-select:none;background:#fcfbf7;border:1px solid #e2e0d7;border-radius:8px;flex:none;align-self:center;font-family:ui-sans-serif,system-ui,-apple-system,Helvetica Neue,sans-serif;font-weight:750;line-height:1;display:block;position:relative;overflow:hidden;box-shadow:0 1px 2px #00000038,0 3px 8px #0000001f}.XdMBba_card_sm{--card-rank:13px;--card-suit:19px;border-radius:6px;width:38px;height:54px}.XdMBba_card_md{--card-rank:16px;--card-suit:27px;width:50px;height:70px}.XdMBba_card_lg{--card-rank:21px;--card-suit:35px;border-radius:9px;width:62px;height:87px}.XdMBba_cardRed{color:#d81b3c}.XdMBba_cardBlack{color:#16171a}.XdMBba_cardDim{opacity:.55}.XdMBba_cardRank{font-size:var(--card-rank,16px);line-height:1;position:absolute;top:4px;left:5px}.XdMBba_cardSuit{font-size:var(--card-suit,27px);line-height:1;position:absolute;top:60%;left:50%;transform:translate(-50%,-50%)}.XdMBba_cardBack{background:radial-gradient(circle,#2f6f5c 0 2.5px,#0000 2.6px) 0 0/9px 9px,#f6f3ea;border-color:#d9d6cb;box-shadow:inset 0 0 0 3px #f6f3ea,0 1px 2px #00000038}.XdMBba_cardSlot{box-shadow:none;background:0 0;border:1px dashed #ffffff52}.XdMBba_ownArea{border:1px solid var(--dsw-alias-border-l1,#7f7f7f38);background:var(--dsw-alias-bg-layer-1,#1b1b1c);border-radius:14px;flex:none;align-items:center;gap:14px;min-height:92px;padding:8px 10px;display:flex}.XdMBba_ownCards{flex:none;align-items:center;gap:6px;display:flex}.XdMBba_ownMeta{color:var(--dsw-alias-label-secondary,#93a0b1);flex-direction:column;gap:1px;margin-left:4px;font-size:11.5px;display:flex}.XdMBba_ownName{color:var(--dsw-alias-label-primary,#e9ecf2);font-weight:600}.XdMBba_ownStack{font-variant-numeric:tabular-nums}.XdMBba_ownHint{color:var(--dsw-alias-label-secondary,#93a0b1);flex:1;justify-content:space-between;align-items:center;gap:10px;font-size:12px;display:flex}.XdMBba_ownButtons{gap:6px;display:flex}.XdMBba_actionBar{flex-direction:column;flex:1;gap:6px;min-width:0;display:flex}.XdMBba_actionTimer{align-items:baseline;gap:8px;display:flex}.XdMBba_actionTimerLabel{color:var(--dsw-alias-state-warn-primary,#e8c15a);font-size:12px;font-weight:700}.XdMBba_actionTimerValue{color:var(--dsw-alias-label-secondary,#93a0b1);font-variant-numeric:tabular-nums;font-size:11px}.XdMBba_actionRow{flex-wrap:wrap;align-items:stretch;gap:8px;display:flex}.XdMBba_btnCall{border-color:var(--dsw-alias-brand-primary,#2f9c76);color:var(--dsw-alias-brand-primary,#2f9c76);background:0 0;font-weight:600}.XdMBba_btnRaise{background:var(--dsw-alias-brand-primary,#2f9c76);color:var(--dsw-alias-bg-base,#06130f);white-space:nowrap;border-color:#0000;font-weight:700}.XdMBba_btn.XdMBba_btnRaise:hover:not(:disabled){background:var(--dsw-alias-brand-primary,#2f9c76);color:var(--dsw-alias-bg-base,#06130f);filter:brightness(1.08);border-color:#0000}.XdMBba_raiseGroup{background:var(--dsw-alias-bg-layer-2,#7f7f7f14);border-radius:10px;flex-direction:column;flex:1;gap:4px;min-width:240px;padding:6px 10px;display:flex}.XdMBba_raiseHead{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;display:flex}.XdMBba_raiseValue{font-variant-numeric:tabular-nums;color:var(--dsw-alias-label-primary,#e9ecf2);font-size:13px;font-weight:700}.XdMBba_presetRow{flex-wrap:wrap;gap:4px;display:flex}.XdMBba_slider{width:100%;accent-color:var(--dsw-alias-brand-primary,#2f9c76)}.XdMBba_railWrap{border-left:1px solid var(--dsw-alias-border-l1,#7f7f7f33);flex:none;width:286px;min-height:0;display:flex}.XdMBba_rail{flex-direction:column;gap:14px;width:100%;min-height:0;padding:12px;display:flex;overflow-y:auto}.XdMBba_railSection{flex-direction:column;gap:6px;display:flex}.XdMBba_railTitle{letter-spacing:.12em;text-transform:uppercase;color:var(--dsw-alias-label-secondary,#93a0b1);margin:0;font-size:11px}.XdMBba_leaderList,.XdMBba_historyList,.XdMBba_chatList{flex-direction:column;gap:3px;display:flex}.XdMBba_leaderRow{border-radius:6px;grid-template-columns:16px 1fr auto auto;align-items:center;gap:6px;padding:4px 6px;font-size:11.5px;display:grid}.XdMBba_leaderRowYou{background:color-mix(in srgb, var(--dsw-alias-brand-primary,#2f9c76) 14%, transparent)}.XdMBba_leaderRank{color:var(--dsw-alias-label-secondary,#93a0b1);font-variant-numeric:tabular-nums}.XdMBba_leaderName{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.XdMBba_leaderHands{color:var(--dsw-alias-label-secondary,#93a0b1);white-space:nowrap;font-size:10px}.XdMBba_historyRow{color:var(--dsw-alias-label-secondary,#93a0b1);align-items:center;gap:6px;font-size:11px;display:flex}.XdMBba_historyNo{font-variant-numeric:tabular-nums}.XdMBba_historyBoard{flex:1;gap:2px;min-width:0;display:flex}.XdMBba_historyCard{background:var(--dsw-alias-bg-layer-2,#7f7f7f1f);border-radius:3px;padding:0 3px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:10px}.XdMBba_historyPot{font-variant-numeric:tabular-nums}.XdMBba_spectatorList{flex-wrap:wrap;gap:5px;display:flex}.XdMBba_spectatorChip{border:1px solid var(--dsw-alias-border-l1,#7f7f7f47);color:var(--dsw-alias-label-secondary,#93a0b1);border-radius:999px;align-items:center;gap:4px;padding:1px 8px;font-size:10.5px;display:inline-flex}.XdMBba_spectatorKick{color:var(--dsw-alias-state-error-primary,#d64545);font:inherit;cursor:pointer;background:0 0;border:none;padding:0;font-size:9.5px;line-height:1}.XdMBba_railChat{flex:1;min-height:140px}.XdMBba_chatList{flex:1;gap:5px;max-height:220px;overflow-y:auto}.XdMBba_chatLine{gap:6px;font-size:11.5px;line-height:1.4;display:flex}.XdMBba_chatName{color:var(--dsw-alias-brand-primary,#2f9c76);text-overflow:ellipsis;white-space:nowrap;flex:none;max-width:70px;overflow:hidden}.XdMBba_chatText{color:var(--dsw-alias-label-primary,#e9ecf2);word-break:break-word}.XdMBba_chatComposer{gap:6px;display:flex}.XdMBba_chatInput{border:1px solid var(--dsw-alias-border-l2,#7f7f7f80);background:var(--dsw-alias-bg-base,#1b1b1c);min-width:0;color:var(--dsw-alias-label-primary,#e9ecf2);font:inherit;border-radius:8px;flex:1;padding:5px 8px;font-size:11.5px}.XdMBba_railFooter{border-top:1px solid var(--dsw-alias-border-l1,#7f7f7f33);color:var(--dsw-alias-label-secondary,#93a0b1);margin-top:auto;padding-top:8px;font-size:11px}.XdMBba_narrowList{flex-direction:column;gap:4px;padding:12px;display:flex}.XdMBba_narrowRow{background:var(--dsw-alias-bg-layer-2,#7f7f7f1a);border-radius:8px;grid-template-columns:1fr auto auto auto;align-items:center;gap:8px;padding:6px 9px;font-size:12px;display:grid}.XdMBba_narrowRowYou{border:1px solid var(--dsw-alias-brand-primary,#2f9c76)}.XdMBba_narrowName{text-overflow:ellipsis;white-space:nowrap;font-weight:600;overflow:hidden}.XdMBba_narrowStack{font-variant-numeric:tabular-nums}.XdMBba_narrowCards{align-items:center;gap:2px;display:flex}.XdMBba_narrowEmpty{color:var(--felt-ink-dim,#93a0b1);padding:2px 4px;font-size:11.5px}.XdMBba_narrowStatus{color:var(--dsw-alias-label-secondary,#93a0b1);text-align:right;min-width:42px;font-size:10px}@media (width<=899px){.XdMBba_felt{flex-direction:column;gap:10px;min-height:0;padding:12px;display:flex;overflow-y:auto}.XdMBba_center{order:-1;width:100%;position:static;transform:none}.XdMBba_seatsLayer{position:static}.XdMBba_railWrap{display:none}.XdMBba_ownArea,.XdMBba_header{flex-direction:column;align-items:stretch}.XdMBba_handOverBanner{white-space:normal;margin-bottom:8px;position:static;transform:none}}@media (prefers-reduced-motion:reduce){.XdMBba_loadingMark,.XdMBba_toast{animation:none}.XdMBba_btn,.XdMBba_seat{transition:none}}.XdMBba_settle{flex-direction:column;gap:16px;height:100%;padding:22px;display:flex;overflow-y:auto}.XdMBba_settleHead{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:16px;display:flex}.XdMBba_settleTitle{margin:0;font-size:22px}.XdMBba_settleMeta{color:var(--dsw-alias-label-secondary,#93a0b1);margin:4px 0 0;font-size:12px}.XdMBba_settleActions{flex-wrap:wrap;gap:8px;display:flex}.XdMBba_settleTable{border:1px solid var(--dsw-alias-border-l1,#7f7f7f3d);background:var(--dsw-alias-bg-layer-1,#1b1b1c);border-radius:12px;overflow:hidden}.XdMBba_settleRow{font-variant-numeric:tabular-nums;border-top:1px solid var(--dsw-alias-border-l1,#7f7f7f24);grid-template-columns:46px minmax(120px,1.6fr) 60px 60px 100px 80px 80px;align-items:center;gap:8px;padding:9px 12px;font-size:12.5px;display:grid}.XdMBba_settleRow:first-child{border-top:none}.XdMBba_settleRowHead{color:var(--dsw-alias-label-secondary,#93a0b1);background:var(--dsw-alias-bg-layer-2,#7f7f7f14);font-size:11px}.XdMBba_settleRowFirst{background:color-mix(in srgb, var(--dsw-alias-state-warn-primary,#e8c15a) 12%, transparent)}.XdMBba_settleRank{font-size:14px}.XdMBba_settlePlayer{text-overflow:ellipsis;white-space:nowrap;font-weight:600;overflow:hidden}.XdMBba_settleHistory{flex-direction:column;gap:6px;display:flex}.XdMBba_historyScroll{border:1px solid var(--dsw-alias-border-l1,#7f7f7f3d);background:var(--dsw-alias-bg-layer-1,#1b1b1c);border-radius:10px;flex-direction:column;gap:5px;max-height:260px;padding:8px 10px;display:flex;overflow-y:auto}.XdMBba_settleHandRow{color:var(--dsw-alias-label-secondary,#93a0b1);grid-template-columns:44px 1fr 80px 1fr;align-items:center;gap:8px;font-size:11.5px;display:grid}.XdMBba_settleHandPot{text-align:right;font-variant-numeric:tabular-nums}.XdMBba_settleHandWinners{text-overflow:ellipsis;white-space:nowrap;color:var(--dsw-alias-label-primary,#e9ecf2);overflow:hidden}@media (width<=899px){.XdMBba_settleRow{grid-template-columns:40px 1fr 48px 48px 84px}.XdMBba_settleRow>:nth-child(6),.XdMBba_settleRow>:nth-child(7){display:none}}.XdMBba_inviteBtn{background:var(--dsw-alias-brand-primary,#2f9c76);color:var(--dsw-alias-bg-base,#fff);border-color:#0000;padding:5px 11px;font-weight:700}.XdMBba_btn.XdMBba_inviteBtn:hover:not(:disabled){background:var(--dsw-alias-brand-primary,#2f9c76);color:var(--dsw-alias-bg-base,#fff);filter:brightness(1.08);border-color:#0000}.XdMBba_sheetBackdrop{z-index:30;background:#00000061;place-items:center;padding:20px;display:grid;position:absolute;inset:0}.XdMBba_sheet{border:1px solid var(--dsw-alias-border-l2,#7f7f7f80);background:var(--dsw-alias-bg-overlay,#1b1b1c);border-radius:14px;flex-direction:column;gap:10px;width:min(560px,100%);max-height:100%;padding:16px;display:flex;overflow-y:auto;box-shadow:0 24px 60px #00000059}.XdMBba_sheetHead{justify-content:space-between;align-items:center;gap:12px;display:flex}.XdMBba_sheetTitle{margin:0;font-size:15px}.XdMBba_inviteWarn{border:1px solid var(--dsw-alias-state-warn-primary,#b7791f);background:color-mix(in srgb, var(--dsw-alias-state-warn-primary,#b7791f) 9%, transparent);border-radius:10px;flex-direction:column;gap:6px;padding:10px 12px;display:flex}.XdMBba_inviteWarnTitle{color:var(--dsw-alias-state-warn-primary,#b7791f);margin:0;font-size:12.5px;font-weight:600}.XdMBba_inviteWarnText{color:var(--dsw-alias-label-secondary,#93a0b1);margin:0;font-size:12px;line-height:1.6}.XdMBba_cmdBlock{background:var(--dsw-alias-bg-layer-2,#7f7f7f1f);white-space:pre;border-radius:8px;margin:0;padding:8px 10px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:11.5px;overflow-x:auto}.XdMBba_urlRow{align-items:center;gap:8px;display:flex}.XdMBba_urlLabel{width:60px;color:var(--dsw-alias-label-secondary,#93a0b1);flex:none;font-size:12px}.XdMBba_urlText{text-overflow:ellipsis;white-space:nowrap;border:1px solid var(--dsw-alias-border-l1,#7f7f7f47);background:var(--dsw-alias-bg-layer-2,#7f7f7f1f);min-width:0;color:var(--dsw-alias-label-primary,#e9ecf2);border-radius:8px;flex:1;padding:6px 8px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:11.5px;overflow:hidden}.XdMBba_row{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.XdMBba_inviteOk{border:1px solid var(--dsw-alias-state-success-primary,#1f9d63);background:color-mix(in srgb, var(--dsw-alias-state-success-primary,#1f9d63) 9%, transparent);color:var(--dsw-alias-state-success-primary,#1f9d63);border-radius:10px;flex-wrap:wrap;align-items:center;gap:8px;padding:10px 12px;font-size:12.5px;display:flex}.XdMBba_inviteError{color:var(--dsw-alias-state-error-primary,#d64545);font-size:11.5px}.XdMBba_sheetNote{color:var(--dsw-alias-label-secondary,#93a0b1);margin:0;font-size:11px;line-height:1.5}.XdMBba_codeLine{border-top:1px solid var(--dsw-alias-border-l1,#7f7f7f33);color:var(--dsw-alias-label-secondary,#93a0b1);justify-content:space-between;align-items:center;gap:10px;padding-top:10px;font-size:12px;display:flex}.XdMBba_inviteLinkRow{align-items:center;gap:8px;display:flex}.XdMBba_inviteLinkInput{border:1px solid var(--dsw-alias-border-l2,#7f7f7f80);background:var(--dsw-alias-bg-base,#fff);min-width:0;color:var(--dsw-alias-label-primary,#141414);border-radius:8px;flex:1;padding:9px 10px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:11.5px}";
|
|
1091
|
+
const css = ".XdMBba_panel{background:var(--dsw-alias-bg-base,#101418);height:100%;min-height:0;color:var(--dsw-alias-label-primary,#e9ecf2);flex-direction:column;font-size:13px;line-height:1.5;display:flex;position:relative;overflow:hidden}.XdMBba_panel *,.XdMBba_panel :before,.XdMBba_panel :after{box-sizing:border-box}.XdMBba_btn{border:1px solid var(--dsw-alias-border-l1,#7f7f7f47);background:var(--dsw-alias-bg-layer-2,#7f7f7f1a);color:var(--dsw-alias-label-primary,#111);font:inherit;cursor:pointer;border-radius:8px;justify-content:center;align-items:center;gap:6px;padding:7px 12px;font-size:12.5px;transition:background .12s,border-color .12s,opacity .12s;display:inline-flex}.XdMBba_btn:hover:not(:disabled){border-color:var(--dsw-alias-border-l2,#7f7f7f73);background:var(--dsw-alias-bg-layer-1,#7f7f7f29)}.XdMBba_btn:disabled{opacity:.45;cursor:default}.XdMBba_btn:focus-visible{outline:2px solid var(--dsw-alias-brand-primary,#2f9c76);outline-offset:1px}.XdMBba_btnPrimary{background:var(--dsw-alias-brand-primary,#2f9c76);color:var(--dsw-alias-bg-base,#06130f);border-color:#0000;font-weight:700}.XdMBba_btn.XdMBba_btnPrimary:hover:not(:disabled){background:var(--dsw-alias-brand-primary,#2f9c76);color:var(--dsw-alias-bg-base,#06130f);filter:brightness(1.08);border-color:#0000}.XdMBba_btnOutline{border-color:var(--dsw-alias-border-l2,#7f7f7f80);background:0 0}.XdMBba_btnGhost{color:var(--dsw-alias-label-secondary,#93a0b1);background:0 0;border-color:#0000}.XdMBba_btn.XdMBba_btnGhost:hover:not(:disabled){background:var(--dsw-alias-bg-layer-2,#7f7f7f1a);color:var(--dsw-alias-label-primary,#e9ecf2);border-color:#0000}.XdMBba_btnDanger{border-color:var(--dsw-alias-state-error-primary,#e06c75);color:var(--dsw-alias-state-error-primary,#e06c75);background:0 0}.XdMBba_btn.XdMBba_btnDanger:hover:not(:disabled){border-color:var(--dsw-alias-state-error-primary,#e06c75);background:color-mix(in srgb, var(--dsw-alias-state-error-primary,#e06c75) 10%, transparent);color:var(--dsw-alias-state-error-primary,#e06c75)}.XdMBba_btnChip{background:var(--dsw-alias-bg-layer-2,#7f7f7f1a);color:var(--dsw-alias-label-secondary,#93a0b1);border-radius:999px;padding:4px 9px;font-size:11.5px}.XdMBba_btnWide{width:100%}.XdMBba_netUp{color:var(--dsw-alias-state-success-primary,#4cc38a)}.XdMBba_netDown{color:var(--dsw-alias-state-error-primary,#e06c75)}.XdMBba_netFlat{color:var(--dsw-alias-label-secondary,#93a0b1)}.XdMBba_cfPanel{border:1px solid var(--dsw-alias-border-l1,#7f7f7f47);background:var(--dsw-alias-bg-layer-2,#7f7f7f14);border-radius:10px;flex-direction:column;gap:8px;padding:10px;display:flex}.XdMBba_cfRow{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.XdMBba_grow{flex:1}.XdMBba_cfBadge{border:1px solid var(--dsw-alias-border-l2,#7f7f7f73);color:var(--dsw-alias-label-secondary,#93a0b1);border-radius:999px;padding:2px 9px;font-size:11.5px}.XdMBba_cfBadgeOn{border-color:var(--dsw-alias-state-success-primary,#1f9d63);color:var(--dsw-alias-state-success-primary,#1f9d63)}.XdMBba_cfBadgeWait{border-color:var(--dsw-alias-state-warn-primary,#b7791f);color:var(--dsw-alias-state-warn-primary,#b7791f)}.XdMBba_cfWaiting{color:var(--dsw-alias-state-warn-primary,#b7791f);font-size:11.5px}.XdMBba_cfLabel{color:var(--dsw-alias-label-secondary,#93a0b1);flex:none;font-size:11.5px}.XdMBba_cfAuthBox{border:1px dashed var(--dsw-alias-brand-primary,#2f9c76);border-radius:8px;flex-direction:column;gap:6px;padding:8px;display:flex}.XdMBba_cfAuthHint{color:var(--dsw-alias-label-secondary,#93a0b1);margin:0;font-size:11.5px}.XdMBba_cfError{color:var(--dsw-alias-state-error-primary,#d64545);margin:0;font-size:11.5px}.XdMBba_cfLog{background:var(--dsw-alias-bg-base,#fff);max-height:96px;color:var(--dsw-alias-label-secondary,#666);white-space:pre-wrap;border-radius:8px;margin:0;padding:6px 8px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:10.5px;overflow:auto}.XdMBba_hostRow{flex-wrap:wrap;gap:6px;display:flex}.XdMBba_hostActive{border-color:var(--dsw-alias-brand-primary,#2f9c76);background:var(--dsw-alias-brand-primary,#2f9c76);color:var(--dsw-alias-bg-base,#fff);font-weight:700}.XdMBba_hintLink{color:var(--dsw-alias-brand-primary,#141414);text-underline-offset:2px;text-decoration:underline}.XdMBba_buildTag{text-align:center;color:var(--dsw-alias-label-secondary,#93a0b1);opacity:.75;margin:10px 0 0;font-size:10.5px}.XdMBba_hint{color:var(--dsw-alias-label-secondary,#93a0b1);margin:4px 0 0;font-size:11.5px}.XdMBba_railEmpty{color:var(--dsw-alias-label-secondary,#93a0b1);margin:4px 0;font-size:11.5px}.XdMBba_loading{text-align:center;color:var(--dsw-alias-label-secondary,#93a0b1);margin:auto}.XdMBba_loadingMark{border:3px solid var(--dsw-alias-border-l1,#7f7f7f47);border-top-color:var(--dsw-alias-brand-primary,#2f9c76);border-radius:50%;width:34px;height:34px;margin:0 auto 10px;animation:.9s linear infinite XdMBba_spin}@keyframes XdMBba_spin{to{transform:rotate(360deg)}}.XdMBba_toast{border:1px solid var(--dsw-alias-border-l2,#7f7f7f73);background:var(--dsw-alias-bg-overlay,#1b1b1c);max-width:min(420px,100% - 32px);color:var(--dsw-alias-label-primary,#e9ecf2);font:inherit;cursor:pointer;z-index:20;border-radius:999px;padding:9px 16px;font-size:12.5px;animation:.18s XdMBba_toastIn;position:absolute;bottom:18px;left:50%;transform:translate(-50%);box-shadow:0 10px 28px #00000059}.XdMBba_toastError{border-color:var(--dsw-alias-state-error-primary,#e06c75);color:var(--dsw-alias-state-error-primary,#e06c75)}@keyframes XdMBba_toastIn{0%{opacity:0;transform:translate(-50%,6px)}}.XdMBba_lobby{width:min(480px,100% - 32px);max-height:100%;margin:auto;padding:28px 4px;overflow-y:auto}.XdMBba_lobbyHead{text-align:center;margin-bottom:18px}.XdMBba_lobbyTitle{letter-spacing:.02em;margin:0;font-size:22px}.XdMBba_lobbySubtitle{color:var(--dsw-alias-label-secondary,#93a0b1);margin:4px 0 0;font-size:12px}.XdMBba_notice,.XdMBba_noticeError,.XdMBba_inviteBanner{border:1px solid var(--dsw-alias-border-l1,#7f7f7f47);background:var(--dsw-alias-bg-layer-2,#7f7f7f14);border-radius:10px;margin:0 0 12px;padding:9px 12px;font-size:12.5px}.XdMBba_noticeError{border-color:var(--dsw-alias-state-error-primary,#e06c75);color:var(--dsw-alias-state-error-primary,#e06c75)}.XdMBba_inviteBanner{border-color:var(--dsw-alias-brand-primary,#2f9c76);color:var(--dsw-alias-brand-primary,#2f9c76)}.XdMBba_tabs{background:var(--dsw-alias-bg-layer-2,#7f7f7f1a);border-radius:10px;gap:6px;margin-bottom:16px;padding:4px;display:flex}.XdMBba_tab{color:var(--dsw-alias-label-secondary,#93a0b1);font:inherit;cursor:pointer;background:0 0;border:none;border-radius:7px;flex:1;padding:8px 0}.XdMBba_tabActive{background:var(--dsw-alias-bg-layer-1,#232324);color:var(--dsw-alias-label-primary,#e9ecf2);box-shadow:0 1px 4px #0003}.XdMBba_lobbyBody{flex-direction:column;gap:12px;display:flex}.XdMBba_field{flex-direction:column;gap:5px;display:flex}.XdMBba_fieldLabel{color:var(--dsw-alias-label-secondary,#93a0b1);font-size:11.5px}.XdMBba_input{border:1px solid var(--dsw-alias-border-l2,#7f7f7f80);background:var(--dsw-alias-bg-base,#1b1b1c);width:100%;color:var(--dsw-alias-label-primary,#e9ecf2);font:inherit;border-radius:9px;padding:9px 11px}.XdMBba_input::placeholder{color:var(--dsw-alias-label-secondary,#93a0b1);opacity:1}.XdMBba_input:hover:not(:disabled){border-color:var(--dsw-alias-brand-primary,#2f9c76)}.XdMBba_input:focus{border-color:var(--dsw-alias-brand-primary,#2f9c76);box-shadow:0 0 0 2px color-mix(in srgb, var(--dsw-alias-brand-primary,#2f9c76) 28%, transparent);outline:none}.XdMBba_inputCode{letter-spacing:6px;text-align:center;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:20px}.XdMBba_previewCard{border:1px solid var(--dsw-alias-border-l1,#7f7f7f47);background:var(--dsw-alias-bg-layer-1,#1b1b1c);border-radius:12px;flex-direction:column;gap:10px;padding:14px;display:flex}.XdMBba_previewHead{justify-content:space-between;align-items:baseline;gap:8px;display:flex}.XdMBba_previewMeta{color:var(--dsw-alias-label-secondary,#93a0b1);font-size:11.5px}.XdMBba_previewSeats{grid-template-columns:repeat(3,1fr);gap:6px;display:grid}.XdMBba_previewSeat{border:1px dashed var(--dsw-alias-border-l1,#7f7f7f47);text-align:center;color:var(--dsw-alias-label-secondary,#93a0b1);text-overflow:ellipsis;white-space:nowrap;border-radius:7px;padding:6px;font-size:11.5px;overflow:hidden}.XdMBba_previewSeatFilled{color:var(--dsw-alias-label-primary,#e9ecf2);background:var(--dsw-alias-bg-layer-2,#7f7f7f1a);border-style:solid}.XdMBba_previewActions{gap:8px;display:flex}.XdMBba_previewActions>*{flex:1}.XdMBba_table{flex-direction:column;height:100%;min-height:0;display:flex}.XdMBba_header{border-bottom:1px solid var(--dsw-alias-border-l1,#7f7f7f33);flex:none;justify-content:space-between;align-items:flex-start;gap:12px;padding:10px 16px;display:flex}.XdMBba_headerMain{min-width:0}.XdMBba_titleRow{align-items:center;gap:8px;min-width:0;display:flex}.XdMBba_roomTitle{white-space:nowrap;text-overflow:ellipsis;max-width:260px;margin:0;font-size:15px;font-weight:700;overflow:hidden}.XdMBba_codeChip{border:1px solid var(--dsw-alias-border-l1,#7f7f7f47);color:var(--dsw-alias-label-secondary,#93a0b1);font:inherit;cursor:pointer;white-space:nowrap;background:0 0;border-radius:999px;align-items:center;gap:6px;padding:2px 9px;font-size:11px;display:inline-flex}.XdMBba_codeChip:hover{color:var(--dsw-alias-label-primary,#e9ecf2);border-color:var(--dsw-alias-border-l2,#7f7f7f80)}.XdMBba_copiedTag{color:var(--dsw-alias-state-success-primary,#4cc38a)}.XdMBba_phasePill{color:var(--dsw-alias-label-secondary,#93a0b1);border:1px solid;border-radius:999px;padding:1px 8px;font-size:10.5px}.XdMBba_phasePillHand{color:var(--dsw-alias-brand-primary,#2f9c76)}.XdMBba_phasePillLobby{color:var(--dsw-alias-label-secondary,#93a0b1)}.XdMBba_metaRow{color:var(--dsw-alias-label-secondary,#93a0b1);flex-wrap:wrap;align-items:center;gap:10px;margin-top:4px;font-size:11.5px;display:flex}.XdMBba_conn{font-size:10px}.XdMBba_connLive{color:var(--dsw-alias-state-success-primary,#4cc38a)}.XdMBba_connPolling{color:var(--dsw-alias-state-warn-primary,#c58a00)}.XdMBba_connOffline{color:var(--dsw-alias-state-error-primary,#e06c75)}.XdMBba_spectatorCount{white-space:nowrap}.XdMBba_headerActions{flex-wrap:wrap;flex:none;justify-content:flex-end;align-items:center;gap:6px;display:flex}.XdMBba_tableBody{flex:1;min-height:0;display:flex}.XdMBba_feltArea{flex-direction:column;flex:1;gap:8px;min-width:0;min-height:0;padding:10px 12px 12px;display:flex}.XdMBba_felt{--felt-ink:#fffffff0;--felt-ink-dim:#ffffffad;--felt-line:#ffffff4d;background:radial-gradient(at 50% 38%,#ffffff1f,#0000 58%),radial-gradient(at 50% 120%,#00000080,#0000 62%),linear-gradient(165deg,#1f6a4f 0%,#17553f 55%,#123f30 100%);border:1px solid #00000052;border-radius:26px;flex:1;min-height:300px;position:relative;overflow:hidden;box-shadow:inset 0 0 70px #0000006b,0 10px 26px #00000029}.XdMBba_seatsLayer{position:absolute;inset:0}.XdMBba_center{text-align:center;pointer-events:none;flex-direction:column;align-items:center;gap:6px;width:min(430px,70%);display:flex;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.XdMBba_center>*{pointer-events:auto}.XdMBba_streetLabel{letter-spacing:.18em;text-transform:uppercase;color:var(--felt-ink-dim,#93a0b1);font-size:10.5px}.XdMBba_boardRow{flex-wrap:nowrap;justify-content:center;align-items:center;gap:6px;display:flex}.XdMBba_potRow{flex-wrap:wrap;justify-content:center;align-items:center;gap:8px;display:flex}.XdMBba_potChips{background:radial-gradient(circle at 35% 30%,#f0d27a,#a67c1f 70%);border-radius:50%;width:14px;height:14px;box-shadow:0 0 0 2px #00000040}.XdMBba_potAmount{color:var(--felt-ink,#e9ecf2);text-shadow:0 1px 2px #00000059;font-size:13px;font-weight:700}.XdMBba_sidePots{flex-wrap:wrap;gap:6px;display:flex}.XdMBba_sidePot{color:var(--felt-ink-dim,#93a0b1);border:1px solid var(--felt-line,#7f7f7f47);border-radius:999px;padding:1px 7px;font-size:10.5px}.XdMBba_lobbyCenter{background:var(--dsw-alias-bg-overlay,#1b1b1c);border:1px solid var(--dsw-alias-border-l2,#7f7f7f73);border-radius:14px;flex-direction:column;align-items:center;gap:8px;padding:12px 16px;display:flex;box-shadow:0 12px 30px #00000047}.XdMBba_centerTitle{font-size:14px;font-weight:700}.XdMBba_centerHint{color:var(--dsw-alias-label-secondary,#93a0b1);min-height:16px;font-size:11.5px}.XdMBba_centerActions{gap:8px;display:flex}.XdMBba_handOverBanner{background:var(--dsw-alias-bg-overlay,#1b1b1c);border:1px solid var(--dsw-alias-border-l2,#7f7f7f73);white-space:nowrap;border-radius:12px;flex-direction:column;gap:4px;padding:9px 14px;display:flex;position:absolute;top:-8px;left:50%;transform:translate(-50%,-100%);box-shadow:0 12px 30px #00000059}.XdMBba_bannerTitle{font-size:13px;font-weight:700}.XdMBba_bannerDeltas{flex-wrap:wrap;justify-content:center;gap:10px;font-size:11.5px;display:flex}.XdMBba_bannerNext{color:var(--dsw-alias-label-secondary,#93a0b1);text-align:center;font-size:10.5px}.XdMBba_seat{border:1px solid var(--dsw-alias-border-l1,#7f7f7f47);background:color-mix(in srgb, var(--dsw-alias-bg-layer-1,#1b1b1c) 88%, transparent);backdrop-filter:blur(3px);border-radius:13px;flex-direction:column;gap:5px;width:172px;padding:8px 9px;transition:border-color .15s,box-shadow .15s,opacity .15s;display:flex;position:absolute}.XdMBba_seatYou{border-color:var(--dsw-alias-brand-primary,#2f9c76)}.XdMBba_seatActor{border-color:var(--dsw-alias-state-warn-primary,#e8c15a);box-shadow:0 0 0 1px var(--dsw-alias-state-warn-primary,#e8c15a), 0 0 22px #e8c15a33}.XdMBba_seatOut{opacity:.52}.XdMBba_seatOffline .XdMBba_nameText{text-decoration:line-through}.XdMBba_seatEmpty{border-style:dashed;border-color:var(--felt-line,#7f7f7f52);min-height:74px;color:var(--felt-ink-dim,#93a0b1);background:#ffffff0d;justify-content:center;align-items:center;gap:6px}.XdMBba_seatEmpty:hover{border-color:var(--felt-ink,#e9ecf2);background:#ffffff1a}.XdMBba_seatEmptyText{color:var(--felt-ink-dim,#93a0b1);font-size:11px}.XdMBba_pos0{bottom:10px;left:50%;transform:translate(-50%)}.XdMBba_pos1{bottom:104px;left:3%}.XdMBba_pos2{top:78px;left:2%}.XdMBba_pos3{top:8px;left:50%;transform:translate(-50%)}.XdMBba_pos4{top:78px;right:2%}.XdMBba_pos5{bottom:104px;right:3%}.XdMBba_seatTop{align-items:center;gap:8px;display:flex}.XdMBba_avatar{color:#fff;text-shadow:0 1px 2px #00000059;border-radius:50%;flex:none;place-items:center;width:34px;height:34px;font-size:13px;font-weight:700;display:grid;position:relative}.XdMBba_timerRing{background:conic-gradient(var(--dsw-alias-state-warn-primary,#e8c15a) var(--progress,360deg), transparent 0);pointer-events:none;border-radius:50%;position:absolute;inset:-3px;-webkit-mask:radial-gradient(farthest-side,#0000 calc(100% - 3px),#000 calc(100% - 2px));mask:radial-gradient(farthest-side,#0000 calc(100% - 3px),#000 calc(100% - 2px))}.XdMBba_seatMeta{flex:1;min-width:0}.XdMBba_seatName{flex-wrap:wrap;align-items:center;gap:4px;min-width:0;display:flex}.XdMBba_nameText{text-overflow:ellipsis;white-space:nowrap;max-width:82px;font-size:12px;font-weight:600;overflow:hidden}.XdMBba_badge{color:var(--dsw-alias-label-secondary,#93a0b1);border:1px solid;border-radius:4px;padding:2px 4px;font-size:9px;line-height:1}.XdMBba_badgeDealer{color:var(--dsw-alias-label-primary,#e9ecf2)}.XdMBba_badgeBlind{color:var(--dsw-alias-state-warn-primary,#c58a00)}.XdMBba_badgeYou,.XdMBba_badgeHost{color:var(--dsw-alias-brand-primary,#2f9c76)}.XdMBba_seatStack{font-variant-numeric:tabular-nums;color:var(--dsw-alias-label-primary,#e9ecf2);font-size:11.5px}.XdMBba_seatStatus{color:var(--dsw-alias-label-secondary,#93a0b1);flex-wrap:wrap;gap:6px;min-height:13px;font-size:10px;display:flex}.XdMBba_statusAllIn{color:var(--dsw-alias-state-warn-primary,#c58a00);font-weight:600}.XdMBba_statusFolded{color:var(--dsw-alias-state-idle-primary,#7d8794)}.XdMBba_statusMuted{color:var(--dsw-alias-state-error-primary,#e06c75)}.XdMBba_statusAction{color:var(--dsw-alias-label-secondary,#93a0b1);text-overflow:ellipsis;white-space:nowrap;max-width:100%;overflow:hidden}.XdMBba_seatCards{justify-content:center;align-items:center;gap:4px;min-height:54px;display:flex}.XdMBba_kickBtn{border:1px solid var(--dsw-alias-state-error-primary,#d64545);background:var(--dsw-alias-bg-base,#fff);height:17px;color:var(--dsw-alias-state-error-primary,#d64545);font:inherit;cursor:pointer;border-radius:999px;align-items:center;padding:0 6px;font-size:9.5px;line-height:1;display:inline-flex;position:absolute;top:6px;right:6px}.XdMBba_kickBtn:hover{background:var(--dsw-alias-state-error-primary,#d64545);color:#fff}.XdMBba_betChip{font-variant-numeric:tabular-nums;background:var(--dsw-alias-bg-overlay,#1b1b1c);border:1px solid var(--dsw-alias-state-warn-primary,#c58a00);color:var(--dsw-alias-state-warn-primary,#e8c15a);border-radius:999px;padding:1px 8px;font-size:10.5px;font-weight:700;position:absolute;top:-10px;right:8px}.XdMBba_handName{color:var(--dsw-alias-label-secondary,#93a0b1);font-size:10px}.XdMBba_card{color:#16171a;font-variant-numeric:tabular-nums;user-select:none;background:#fcfbf7;border:1px solid #e2e0d7;border-radius:8px;flex:none;align-self:center;font-family:ui-sans-serif,system-ui,-apple-system,Helvetica Neue,sans-serif;font-weight:750;line-height:1;display:block;position:relative;overflow:hidden;box-shadow:0 1px 2px #00000038,0 3px 8px #0000001f}.XdMBba_card_sm{--card-rank:13px;--card-suit:19px;border-radius:6px;width:38px;height:54px}.XdMBba_card_md{--card-rank:16px;--card-suit:27px;width:50px;height:70px}.XdMBba_card_lg{--card-rank:21px;--card-suit:35px;border-radius:9px;width:62px;height:87px}.XdMBba_cardRed{color:#d81b3c}.XdMBba_cardBlack{color:#16171a}.XdMBba_cardDim{opacity:.55}.XdMBba_cardRank{font-size:var(--card-rank,16px);line-height:1;position:absolute;top:4px;left:5px}.XdMBba_cardSuit{font-size:var(--card-suit,27px);line-height:1;position:absolute;top:60%;left:50%;transform:translate(-50%,-50%)}.XdMBba_cardBack{background:radial-gradient(circle,#2f6f5c 0 2.5px,#0000 2.6px) 0 0/9px 9px,#f6f3ea;border-color:#d9d6cb;box-shadow:inset 0 0 0 3px #f6f3ea,0 1px 2px #00000038}.XdMBba_cardSlot{box-shadow:none;background:0 0;border:1px dashed #ffffff52}.XdMBba_ownArea{border:1px solid var(--dsw-alias-border-l1,#7f7f7f38);background:var(--dsw-alias-bg-layer-1,#1b1b1c);border-radius:14px;flex:none;align-items:center;gap:14px;min-height:92px;padding:8px 10px;display:flex}.XdMBba_ownActions{flex:1;min-width:0;display:grid}.XdMBba_ownSlot{grid-area:1/1;align-items:center;min-width:0;display:flex}.XdMBba_ownSlotHidden{visibility:hidden;pointer-events:none}.XdMBba_ownCards{flex:none;align-items:center;gap:6px;display:flex}.XdMBba_ownMeta{color:var(--dsw-alias-label-secondary,#93a0b1);flex-direction:column;gap:1px;margin-left:4px;font-size:11.5px;display:flex}.XdMBba_ownName{color:var(--dsw-alias-label-primary,#e9ecf2);font-weight:600}.XdMBba_ownStack{font-variant-numeric:tabular-nums}.XdMBba_ownHint{color:var(--dsw-alias-label-secondary,#93a0b1);flex:1;justify-content:space-between;align-items:center;gap:10px;font-size:12px;display:flex}.XdMBba_ownButtons{gap:6px;display:flex}.XdMBba_actionBar{flex-direction:column;flex:1;gap:6px;min-width:0;display:flex}.XdMBba_actionTimer{align-items:baseline;gap:8px;display:flex}.XdMBba_actionTimerLabel{color:var(--dsw-alias-state-warn-primary,#e8c15a);font-size:12px;font-weight:700}.XdMBba_actionTimerValue{color:var(--dsw-alias-label-secondary,#93a0b1);font-variant-numeric:tabular-nums;font-size:11px}.XdMBba_actionRow{flex-wrap:wrap;align-items:stretch;gap:8px;display:flex}.XdMBba_actionRow>.XdMBba_btn{white-space:nowrap;flex:none}.XdMBba_btnCall{border-color:var(--dsw-alias-brand-primary,#2f9c76);color:var(--dsw-alias-brand-primary,#2f9c76);background:0 0;font-weight:600}.XdMBba_btnRaise{background:var(--dsw-alias-brand-primary,#2f9c76);color:var(--dsw-alias-bg-base,#06130f);white-space:nowrap;border-color:#0000;font-weight:700}.XdMBba_btn.XdMBba_btnRaise:hover:not(:disabled){background:var(--dsw-alias-brand-primary,#2f9c76);color:var(--dsw-alias-bg-base,#06130f);filter:brightness(1.08);border-color:#0000}.XdMBba_raiseGroup{background:var(--dsw-alias-bg-layer-2,#7f7f7f14);border-radius:10px;flex-direction:column;flex:1 1 0;gap:3px;min-width:200px;padding:4px 8px;display:flex}.XdMBba_raiseValue{font-variant-numeric:tabular-nums;white-space:nowrap;color:var(--dsw-alias-label-primary,#e9ecf2);font-size:13px;font-weight:700}.XdMBba_presetRow{flex-wrap:wrap;gap:4px;display:flex}.XdMBba_raiseSliderRow{flex-wrap:nowrap;align-items:center;gap:8px;min-width:0;display:flex}.XdMBba_raiseSliderRow .XdMBba_slider{flex:1;width:auto;min-width:80px}.XdMBba_slider{width:100%;accent-color:var(--dsw-alias-brand-primary,#2f9c76)}.XdMBba_railWrap{border-left:1px solid var(--dsw-alias-border-l1,#7f7f7f33);flex:none;width:286px;min-height:0;display:flex}.XdMBba_rail{flex-direction:column;gap:14px;width:100%;min-height:0;padding:12px;display:flex;overflow-y:auto}.XdMBba_railSection{flex-direction:column;gap:6px;display:flex}.XdMBba_railTitle{letter-spacing:.12em;text-transform:uppercase;color:var(--dsw-alias-label-secondary,#93a0b1);margin:0;font-size:11px}.XdMBba_leaderList,.XdMBba_historyList,.XdMBba_chatList{flex-direction:column;gap:3px;display:flex}.XdMBba_leaderRow{border-radius:6px;grid-template-columns:16px 1fr auto auto;align-items:center;gap:6px;padding:4px 6px;font-size:11.5px;display:grid}.XdMBba_leaderRowYou{background:color-mix(in srgb, var(--dsw-alias-brand-primary,#2f9c76) 14%, transparent)}.XdMBba_leaderRank{color:var(--dsw-alias-label-secondary,#93a0b1);font-variant-numeric:tabular-nums}.XdMBba_leaderName{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.XdMBba_leaderHands{color:var(--dsw-alias-label-secondary,#93a0b1);white-space:nowrap;font-size:10px}.XdMBba_historyRow{color:var(--dsw-alias-label-secondary,#93a0b1);align-items:center;gap:6px;font-size:11px;display:flex}.XdMBba_historyNo{font-variant-numeric:tabular-nums}.XdMBba_historyBoard{flex:1;gap:2px;min-width:0;display:flex}.XdMBba_historyCard{background:var(--dsw-alias-bg-layer-2,#7f7f7f1f);border-radius:3px;padding:0 3px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:10px}.XdMBba_historyPot{font-variant-numeric:tabular-nums}.XdMBba_spectatorList{flex-wrap:wrap;gap:5px;display:flex}.XdMBba_spectatorChip{border:1px solid var(--dsw-alias-border-l1,#7f7f7f47);color:var(--dsw-alias-label-secondary,#93a0b1);border-radius:999px;align-items:center;gap:4px;padding:1px 8px;font-size:10.5px;display:inline-flex}.XdMBba_spectatorKick{color:var(--dsw-alias-state-error-primary,#d64545);font:inherit;cursor:pointer;background:0 0;border:none;padding:0;font-size:9.5px;line-height:1}.XdMBba_railChat{flex:1;min-height:140px}.XdMBba_chatList{flex:1;gap:5px;max-height:220px;overflow-y:auto}.XdMBba_chatLine{gap:6px;font-size:11.5px;line-height:1.4;display:flex}.XdMBba_chatName{color:var(--dsw-alias-brand-primary,#2f9c76);text-overflow:ellipsis;white-space:nowrap;flex:none;max-width:70px;overflow:hidden}.XdMBba_chatText{color:var(--dsw-alias-label-primary,#e9ecf2);word-break:break-word}.XdMBba_chatComposer{gap:6px;display:flex}.XdMBba_chatInput{border:1px solid var(--dsw-alias-border-l2,#7f7f7f80);background:var(--dsw-alias-bg-base,#1b1b1c);min-width:0;color:var(--dsw-alias-label-primary,#e9ecf2);font:inherit;border-radius:8px;flex:1;padding:5px 8px;font-size:11.5px}.XdMBba_railFooter{border-top:1px solid var(--dsw-alias-border-l1,#7f7f7f33);color:var(--dsw-alias-label-secondary,#93a0b1);margin-top:auto;padding-top:8px;font-size:11px}.XdMBba_narrowList{flex-direction:column;gap:4px;padding:12px;display:flex}.XdMBba_narrowRow{background:var(--dsw-alias-bg-layer-2,#7f7f7f1a);border-radius:8px;grid-template-columns:1fr auto auto auto;align-items:center;gap:8px;padding:6px 9px;font-size:12px;display:grid}.XdMBba_narrowRowYou{border:1px solid var(--dsw-alias-brand-primary,#2f9c76)}.XdMBba_narrowName{text-overflow:ellipsis;white-space:nowrap;font-weight:600;overflow:hidden}.XdMBba_narrowStack{font-variant-numeric:tabular-nums}.XdMBba_narrowCards{align-items:center;gap:2px;display:flex}.XdMBba_narrowEmpty{color:var(--felt-ink-dim,#93a0b1);padding:2px 4px;font-size:11.5px}.XdMBba_narrowStatus{color:var(--dsw-alias-label-secondary,#93a0b1);text-align:right;min-width:42px;font-size:10px}@media (width<=899px){.XdMBba_felt{flex-direction:column;gap:10px;min-height:0;padding:12px;display:flex;overflow-y:auto}.XdMBba_center{order:-1;width:100%;position:static;transform:none}.XdMBba_seatsLayer{position:static}.XdMBba_railWrap{display:none}.XdMBba_ownArea,.XdMBba_header{flex-direction:column;align-items:stretch}.XdMBba_handOverBanner{white-space:normal;margin-bottom:8px;position:static;transform:none}}@media (prefers-reduced-motion:reduce){.XdMBba_loadingMark,.XdMBba_toast{animation:none}.XdMBba_btn,.XdMBba_seat{transition:none}}.XdMBba_settle{flex-direction:column;gap:16px;height:100%;padding:22px;display:flex;overflow-y:auto}.XdMBba_settleHead{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:16px;display:flex}.XdMBba_settleTitle{margin:0;font-size:22px}.XdMBba_settleMeta{color:var(--dsw-alias-label-secondary,#93a0b1);margin:4px 0 0;font-size:12px}.XdMBba_settleActions{flex-wrap:wrap;gap:8px;display:flex}.XdMBba_settleTable{border:1px solid var(--dsw-alias-border-l1,#7f7f7f3d);background:var(--dsw-alias-bg-layer-1,#1b1b1c);border-radius:12px;overflow:hidden}.XdMBba_settleRow{font-variant-numeric:tabular-nums;border-top:1px solid var(--dsw-alias-border-l1,#7f7f7f24);grid-template-columns:46px minmax(120px,1.6fr) 60px 60px 100px 80px 80px;align-items:center;gap:8px;padding:9px 12px;font-size:12.5px;display:grid}.XdMBba_settleRow:first-child{border-top:none}.XdMBba_settleRowHead{color:var(--dsw-alias-label-secondary,#93a0b1);background:var(--dsw-alias-bg-layer-2,#7f7f7f14);font-size:11px}.XdMBba_settleRowFirst{background:color-mix(in srgb, var(--dsw-alias-state-warn-primary,#e8c15a) 12%, transparent)}.XdMBba_settleRank{font-size:14px}.XdMBba_settlePlayer{text-overflow:ellipsis;white-space:nowrap;font-weight:600;overflow:hidden}.XdMBba_settleHistory{flex-direction:column;gap:6px;display:flex}.XdMBba_historyScroll{border:1px solid var(--dsw-alias-border-l1,#7f7f7f3d);background:var(--dsw-alias-bg-layer-1,#1b1b1c);border-radius:10px;flex-direction:column;gap:5px;max-height:260px;padding:8px 10px;display:flex;overflow-y:auto}.XdMBba_settleHandRow{color:var(--dsw-alias-label-secondary,#93a0b1);grid-template-columns:44px 1fr 80px 1fr;align-items:center;gap:8px;font-size:11.5px;display:grid}.XdMBba_settleHandPot{text-align:right;font-variant-numeric:tabular-nums}.XdMBba_settleHandWinners{text-overflow:ellipsis;white-space:nowrap;color:var(--dsw-alias-label-primary,#e9ecf2);overflow:hidden}@media (width<=899px){.XdMBba_settleRow{grid-template-columns:40px 1fr 48px 48px 84px}.XdMBba_settleRow>:nth-child(6),.XdMBba_settleRow>:nth-child(7){display:none}}.XdMBba_inviteBtn{background:var(--dsw-alias-brand-primary,#2f9c76);color:var(--dsw-alias-bg-base,#fff);border-color:#0000;padding:5px 11px;font-weight:700}.XdMBba_btn.XdMBba_inviteBtn:hover:not(:disabled){background:var(--dsw-alias-brand-primary,#2f9c76);color:var(--dsw-alias-bg-base,#fff);filter:brightness(1.08);border-color:#0000}.XdMBba_sheetBackdrop{z-index:30;background:#00000061;place-items:center;padding:20px;display:grid;position:absolute;inset:0}.XdMBba_sheet{border:1px solid var(--dsw-alias-border-l2,#7f7f7f80);background:var(--dsw-alias-bg-overlay,#1b1b1c);border-radius:14px;flex-direction:column;gap:10px;width:min(560px,100%);max-height:100%;padding:16px;display:flex;overflow-y:auto;box-shadow:0 24px 60px #00000059}.XdMBba_sheetHead{justify-content:space-between;align-items:center;gap:12px;display:flex}.XdMBba_sheetTitle{margin:0;font-size:15px}.XdMBba_inviteWarn{border:1px solid var(--dsw-alias-state-warn-primary,#b7791f);background:color-mix(in srgb, var(--dsw-alias-state-warn-primary,#b7791f) 9%, transparent);border-radius:10px;flex-direction:column;gap:6px;padding:10px 12px;display:flex}.XdMBba_inviteWarnTitle{color:var(--dsw-alias-state-warn-primary,#b7791f);margin:0;font-size:12.5px;font-weight:600}.XdMBba_inviteWarnText{color:var(--dsw-alias-label-secondary,#93a0b1);margin:0;font-size:12px;line-height:1.6}.XdMBba_cmdBlock{background:var(--dsw-alias-bg-layer-2,#7f7f7f1f);white-space:pre;border-radius:8px;margin:0;padding:8px 10px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:11.5px;overflow-x:auto}.XdMBba_urlRow{align-items:center;gap:8px;display:flex}.XdMBba_urlLabel{width:60px;color:var(--dsw-alias-label-secondary,#93a0b1);flex:none;font-size:12px}.XdMBba_urlText{text-overflow:ellipsis;white-space:nowrap;border:1px solid var(--dsw-alias-border-l1,#7f7f7f47);background:var(--dsw-alias-bg-layer-2,#7f7f7f1f);min-width:0;color:var(--dsw-alias-label-primary,#e9ecf2);border-radius:8px;flex:1;padding:6px 8px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:11.5px;overflow:hidden}.XdMBba_row{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.XdMBba_inviteOk{border:1px solid var(--dsw-alias-state-success-primary,#1f9d63);background:color-mix(in srgb, var(--dsw-alias-state-success-primary,#1f9d63) 9%, transparent);color:var(--dsw-alias-state-success-primary,#1f9d63);border-radius:10px;flex-wrap:wrap;align-items:center;gap:8px;padding:10px 12px;font-size:12.5px;display:flex}.XdMBba_inviteError{color:var(--dsw-alias-state-error-primary,#d64545);font-size:11.5px}.XdMBba_sheetNote{color:var(--dsw-alias-label-secondary,#93a0b1);margin:0;font-size:11px;line-height:1.5}.XdMBba_codeLine{border-top:1px solid var(--dsw-alias-border-l1,#7f7f7f33);color:var(--dsw-alias-label-secondary,#93a0b1);justify-content:space-between;align-items:center;gap:10px;padding-top:10px;font-size:12px;display:flex}.XdMBba_inviteLinkRow{align-items:center;gap:8px;display:flex}.XdMBba_inviteLinkInput{border:1px solid var(--dsw-alias-border-l2,#7f7f7f80);background:var(--dsw-alias-bg-base,#fff);min-width:0;color:var(--dsw-alias-label-primary,#141414);border-radius:8px;flex:1;padding:9px 10px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:11.5px}";
|
|
1083
1092
|
const tagId = "@zhuweiyou/dsh-holdem/styles.module.css";
|
|
1084
1093
|
if (typeof document !== "undefined" && document.querySelector("style[data-plugin-css=" + JSON.stringify(tagId) + "]") === null) {
|
|
1085
1094
|
const tag = document.createElement("style");
|
|
@@ -1089,234 +1098,237 @@ if (typeof document !== "undefined" && document.querySelector("style[data-plugin
|
|
|
1089
1098
|
document.head.appendChild(tag);
|
|
1090
1099
|
}
|
|
1091
1100
|
var styles_module_css_default = {
|
|
1101
|
+
"phasePillHand": "XdMBba_phasePillHand",
|
|
1102
|
+
"potRow": "XdMBba_potRow",
|
|
1103
|
+
"lobbyTitle": "XdMBba_lobbyTitle",
|
|
1104
|
+
"ownSlot": "XdMBba_ownSlot",
|
|
1105
|
+
"nameText": "XdMBba_nameText",
|
|
1106
|
+
"cfAuthHint": "XdMBba_cfAuthHint",
|
|
1107
|
+
"card_md": "XdMBba_card_md",
|
|
1108
|
+
"inviteBanner": "XdMBba_inviteBanner",
|
|
1109
|
+
"centerTitle": "XdMBba_centerTitle",
|
|
1092
1110
|
"settleRowFirst": "XdMBba_settleRowFirst",
|
|
1111
|
+
"potChips": "XdMBba_potChips",
|
|
1112
|
+
"lobbyCenter": "XdMBba_lobbyCenter",
|
|
1093
1113
|
"settleHandPot": "XdMBba_settleHandPot",
|
|
1094
|
-
"
|
|
1095
|
-
"
|
|
1096
|
-
"
|
|
1114
|
+
"seatEmpty": "XdMBba_seatEmpty",
|
|
1115
|
+
"center": "XdMBba_center",
|
|
1116
|
+
"connLive": "XdMBba_connLive",
|
|
1097
1117
|
"notice": "XdMBba_notice",
|
|
1098
|
-
"
|
|
1099
|
-
"
|
|
1100
|
-
"
|
|
1101
|
-
"
|
|
1102
|
-
"
|
|
1103
|
-
"
|
|
1104
|
-
"
|
|
1105
|
-
"
|
|
1106
|
-
"
|
|
1107
|
-
"
|
|
1108
|
-
"
|
|
1109
|
-
"
|
|
1110
|
-
"
|
|
1111
|
-
"
|
|
1112
|
-
"
|
|
1113
|
-
"handOverBanner": "XdMBba_handOverBanner",
|
|
1114
|
-
"hint": "XdMBba_hint",
|
|
1118
|
+
"tabs": "XdMBba_tabs",
|
|
1119
|
+
"railSection": "XdMBba_railSection",
|
|
1120
|
+
"potAmount": "XdMBba_potAmount",
|
|
1121
|
+
"leaderList": "XdMBba_leaderList",
|
|
1122
|
+
"toastError": "XdMBba_toastError",
|
|
1123
|
+
"cfBadge": "XdMBba_cfBadge",
|
|
1124
|
+
"urlText": "XdMBba_urlText",
|
|
1125
|
+
"sheetNote": "XdMBba_sheetNote",
|
|
1126
|
+
"roomTitle": "XdMBba_roomTitle",
|
|
1127
|
+
"seatOut": "XdMBba_seatOut",
|
|
1128
|
+
"historyList": "XdMBba_historyList",
|
|
1129
|
+
"tab": "XdMBba_tab",
|
|
1130
|
+
"copiedTag": "XdMBba_copiedTag",
|
|
1131
|
+
"railFooter": "XdMBba_railFooter",
|
|
1132
|
+
"feltArea": "XdMBba_feltArea",
|
|
1115
1133
|
"tableBody": "XdMBba_tableBody",
|
|
1116
|
-
"
|
|
1117
|
-
"
|
|
1118
|
-
"
|
|
1119
|
-
"
|
|
1120
|
-
"
|
|
1121
|
-
"
|
|
1122
|
-
"
|
|
1123
|
-
"leaderRank": "XdMBba_leaderRank",
|
|
1124
|
-
"lobbySubtitle": "XdMBba_lobbySubtitle",
|
|
1125
|
-
"cardRed": "XdMBba_cardRed",
|
|
1134
|
+
"seatOffline": "XdMBba_seatOffline",
|
|
1135
|
+
"chatComposer": "XdMBba_chatComposer",
|
|
1136
|
+
"seatMeta": "XdMBba_seatMeta",
|
|
1137
|
+
"bannerNext": "XdMBba_bannerNext",
|
|
1138
|
+
"badge": "XdMBba_badge",
|
|
1139
|
+
"settle": "XdMBba_settle",
|
|
1140
|
+
"cardBlack": "XdMBba_cardBlack",
|
|
1126
1141
|
"cardSuit": "XdMBba_cardSuit",
|
|
1127
|
-
"
|
|
1128
|
-
"
|
|
1129
|
-
"
|
|
1130
|
-
"
|
|
1131
|
-
"
|
|
1132
|
-
"
|
|
1133
|
-
"panel": "XdMBba_panel",
|
|
1134
|
-
"connLive": "XdMBba_connLive",
|
|
1135
|
-
"seatStack": "XdMBba_seatStack",
|
|
1142
|
+
"historyPot": "XdMBba_historyPot",
|
|
1143
|
+
"ownCards": "XdMBba_ownCards",
|
|
1144
|
+
"raiseSliderRow": "XdMBba_raiseSliderRow",
|
|
1145
|
+
"btnGhost": "XdMBba_btnGhost",
|
|
1146
|
+
"urlRow": "XdMBba_urlRow",
|
|
1147
|
+
"row": "XdMBba_row",
|
|
1136
1148
|
"railWrap": "XdMBba_railWrap",
|
|
1137
|
-
"
|
|
1149
|
+
"historyCard": "XdMBba_historyCard",
|
|
1150
|
+
"statusAction": "XdMBba_statusAction",
|
|
1151
|
+
"lobbyBody": "XdMBba_lobbyBody",
|
|
1152
|
+
"hint": "XdMBba_hint",
|
|
1153
|
+
"slider": "XdMBba_slider",
|
|
1154
|
+
"connPolling": "XdMBba_connPolling",
|
|
1155
|
+
"hostActive": "XdMBba_hostActive",
|
|
1156
|
+
"conn": "XdMBba_conn",
|
|
1157
|
+
"handOverBanner": "XdMBba_handOverBanner",
|
|
1158
|
+
"ownArea": "XdMBba_ownArea",
|
|
1159
|
+
"ownStack": "XdMBba_ownStack",
|
|
1160
|
+
"actionTimerLabel": "XdMBba_actionTimerLabel",
|
|
1161
|
+
"seatName": "XdMBba_seatName",
|
|
1162
|
+
"badgeYou": "XdMBba_badgeYou",
|
|
1163
|
+
"chatInput": "XdMBba_chatInput",
|
|
1164
|
+
"cfAuthBox": "XdMBba_cfAuthBox",
|
|
1165
|
+
"badgeBlind": "XdMBba_badgeBlind",
|
|
1138
1166
|
"headerActions": "XdMBba_headerActions",
|
|
1139
|
-
"
|
|
1140
|
-
"sheetBackdrop": "XdMBba_sheetBackdrop",
|
|
1141
|
-
"seatMeta": "XdMBba_seatMeta",
|
|
1142
|
-
"card_md": "XdMBba_card_md",
|
|
1143
|
-
"cmdBlock": "XdMBba_cmdBlock",
|
|
1144
|
-
"noticeError": "XdMBba_noticeError",
|
|
1145
|
-
"btnWide": "XdMBba_btnWide",
|
|
1146
|
-
"inviteBanner": "XdMBba_inviteBanner",
|
|
1147
|
-
"seatsLayer": "XdMBba_seatsLayer",
|
|
1148
|
-
"chatLine": "XdMBba_chatLine",
|
|
1149
|
-
"narrowList": "XdMBba_narrowList",
|
|
1150
|
-
"pos4": "XdMBba_pos4",
|
|
1151
|
-
"leaderRow": "XdMBba_leaderRow",
|
|
1152
|
-
"copiedTag": "XdMBba_copiedTag",
|
|
1153
|
-
"seatCards": "XdMBba_seatCards",
|
|
1154
|
-
"hostRow": "XdMBba_hostRow",
|
|
1155
|
-
"previewCard": "XdMBba_previewCard",
|
|
1167
|
+
"settleRow": "XdMBba_settleRow",
|
|
1156
1168
|
"settleHead": "XdMBba_settleHead",
|
|
1157
1169
|
"leaderName": "XdMBba_leaderName",
|
|
1158
|
-
"
|
|
1159
|
-
"
|
|
1160
|
-
"
|
|
1161
|
-
"
|
|
1162
|
-
"
|
|
1170
|
+
"lobbySubtitle": "XdMBba_lobbySubtitle",
|
|
1171
|
+
"card_lg": "XdMBba_card_lg",
|
|
1172
|
+
"seatsLayer": "XdMBba_seatsLayer",
|
|
1173
|
+
"handName": "XdMBba_handName",
|
|
1174
|
+
"noticeError": "XdMBba_noticeError",
|
|
1175
|
+
"cardBack": "XdMBba_cardBack",
|
|
1176
|
+
"pos1": "XdMBba_pos1",
|
|
1177
|
+
"pos0": "XdMBba_pos0",
|
|
1163
1178
|
"card": "XdMBba_card",
|
|
1164
|
-
"
|
|
1165
|
-
"chatName": "XdMBba_chatName",
|
|
1166
|
-
"metaRow": "XdMBba_metaRow",
|
|
1167
|
-
"inviteError": "XdMBba_inviteError",
|
|
1168
|
-
"lobby": "XdMBba_lobby",
|
|
1169
|
-
"badgeYou": "XdMBba_badgeYou",
|
|
1170
|
-
"settleRank": "XdMBba_settleRank",
|
|
1179
|
+
"cfWaiting": "XdMBba_cfWaiting",
|
|
1171
1180
|
"raiseValue": "XdMBba_raiseValue",
|
|
1172
|
-
"
|
|
1173
|
-
"
|
|
1174
|
-
"
|
|
1175
|
-
"
|
|
1176
|
-
"
|
|
1177
|
-
"card_sm": "XdMBba_card_sm",
|
|
1178
|
-
"phasePillHand": "XdMBba_phasePillHand",
|
|
1179
|
-
"cardBack": "XdMBba_cardBack",
|
|
1180
|
-
"chatInput": "XdMBba_chatInput",
|
|
1181
|
+
"seat": "XdMBba_seat",
|
|
1182
|
+
"felt": "XdMBba_felt",
|
|
1183
|
+
"inviteBtn": "XdMBba_inviteBtn",
|
|
1184
|
+
"cardRank": "XdMBba_cardRank",
|
|
1185
|
+
"inputCode": "XdMBba_inputCode",
|
|
1181
1186
|
"loadingMark": "XdMBba_loadingMark",
|
|
1182
|
-
"
|
|
1183
|
-
"
|
|
1184
|
-
"headerMain": "XdMBba_headerMain",
|
|
1185
|
-
"spectatorKick": "XdMBba_spectatorKick",
|
|
1186
|
-
"badgeDealer": "XdMBba_badgeDealer",
|
|
1187
|
-
"cfAuthHint": "XdMBba_cfAuthHint",
|
|
1187
|
+
"cfLabel": "XdMBba_cfLabel",
|
|
1188
|
+
"pos5": "XdMBba_pos5",
|
|
1188
1189
|
"settleHandWinners": "XdMBba_settleHandWinners",
|
|
1190
|
+
"previewSeatFilled": "XdMBba_previewSeatFilled",
|
|
1191
|
+
"btnChip": "XdMBba_btnChip",
|
|
1192
|
+
"seatActor": "XdMBba_seatActor",
|
|
1193
|
+
"leaderRow": "XdMBba_leaderRow",
|
|
1194
|
+
"chatName": "XdMBba_chatName",
|
|
1195
|
+
"previewMeta": "XdMBba_previewMeta",
|
|
1196
|
+
"seatEmptyText": "XdMBba_seatEmptyText",
|
|
1197
|
+
"tabActive": "XdMBba_tabActive",
|
|
1198
|
+
"buildTag": "XdMBba_buildTag",
|
|
1199
|
+
"previewActions": "XdMBba_previewActions",
|
|
1200
|
+
"netFlat": "XdMBba_netFlat",
|
|
1201
|
+
"centerHint": "XdMBba_centerHint",
|
|
1202
|
+
"pos2": "XdMBba_pos2",
|
|
1203
|
+
"leaderRank": "XdMBba_leaderRank",
|
|
1204
|
+
"inviteWarnTitle": "XdMBba_inviteWarnTitle",
|
|
1205
|
+
"cfBadgeOn": "XdMBba_cfBadgeOn",
|
|
1206
|
+
"chatList": "XdMBba_chatList",
|
|
1207
|
+
"cmdBlock": "XdMBba_cmdBlock",
|
|
1208
|
+
"netDown": "XdMBba_netDown",
|
|
1209
|
+
"spectatorCount": "XdMBba_spectatorCount",
|
|
1210
|
+
"seatYou": "XdMBba_seatYou",
|
|
1211
|
+
"settlePlayer": "XdMBba_settlePlayer",
|
|
1212
|
+
"cfBadgeWait": "XdMBba_cfBadgeWait",
|
|
1213
|
+
"statusFolded": "XdMBba_statusFolded",
|
|
1214
|
+
"narrowEmpty": "XdMBba_narrowEmpty",
|
|
1215
|
+
"btnWide": "XdMBba_btnWide",
|
|
1216
|
+
"ownHint": "XdMBba_ownHint",
|
|
1217
|
+
"cfError": "XdMBba_cfError",
|
|
1218
|
+
"narrowStack": "XdMBba_narrowStack",
|
|
1219
|
+
"header": "XdMBba_header",
|
|
1220
|
+
"pos4": "XdMBba_pos4",
|
|
1221
|
+
"streetLabel": "XdMBba_streetLabel",
|
|
1222
|
+
"cfLog": "XdMBba_cfLog",
|
|
1223
|
+
"avatar": "XdMBba_avatar",
|
|
1224
|
+
"previewSeats": "XdMBba_previewSeats",
|
|
1225
|
+
"raiseGroup": "XdMBba_raiseGroup",
|
|
1226
|
+
"panel": "XdMBba_panel",
|
|
1227
|
+
"narrowStatus": "XdMBba_narrowStatus",
|
|
1228
|
+
"sheetTitle": "XdMBba_sheetTitle",
|
|
1229
|
+
"titleRow": "XdMBba_titleRow",
|
|
1230
|
+
"btnPrimary": "XdMBba_btnPrimary",
|
|
1231
|
+
"inviteLinkRow": "XdMBba_inviteLinkRow",
|
|
1232
|
+
"field": "XdMBba_field",
|
|
1189
1233
|
"actionRow": "XdMBba_actionRow",
|
|
1234
|
+
"cardDim": "XdMBba_cardDim",
|
|
1235
|
+
"presetRow": "XdMBba_presetRow",
|
|
1236
|
+
"hintLink": "XdMBba_hintLink",
|
|
1190
1237
|
"railChat": "XdMBba_railChat",
|
|
1191
|
-
"
|
|
1192
|
-
"
|
|
1193
|
-
"
|
|
1194
|
-
"
|
|
1238
|
+
"spectatorChip": "XdMBba_spectatorChip",
|
|
1239
|
+
"betChip": "XdMBba_betChip",
|
|
1240
|
+
"cardSlot": "XdMBba_cardSlot",
|
|
1241
|
+
"grow": "XdMBba_grow",
|
|
1242
|
+
"spectatorList": "XdMBba_spectatorList",
|
|
1195
1243
|
"chatText": "XdMBba_chatText",
|
|
1196
|
-
"
|
|
1244
|
+
"ownSlotHidden": "XdMBba_ownSlotHidden",
|
|
1245
|
+
"cfRow": "XdMBba_cfRow",
|
|
1246
|
+
"settleHistory": "XdMBba_settleHistory",
|
|
1247
|
+
"card_sm": "XdMBba_card_sm",
|
|
1248
|
+
"inviteError": "XdMBba_inviteError",
|
|
1249
|
+
"urlLabel": "XdMBba_urlLabel",
|
|
1250
|
+
"pos3": "XdMBba_pos3",
|
|
1251
|
+
"leaderRowYou": "XdMBba_leaderRowYou",
|
|
1252
|
+
"seatCards": "XdMBba_seatCards",
|
|
1253
|
+
"settleHandRow": "XdMBba_settleHandRow",
|
|
1254
|
+
"inviteOk": "XdMBba_inviteOk",
|
|
1255
|
+
"settleRank": "XdMBba_settleRank",
|
|
1197
1256
|
"toastIn": "XdMBba_toastIn",
|
|
1198
|
-
"
|
|
1199
|
-
"
|
|
1200
|
-
"
|
|
1201
|
-
"lobbyBody": "XdMBba_lobbyBody",
|
|
1202
|
-
"loading": "XdMBba_loading",
|
|
1203
|
-
"tabs": "XdMBba_tabs",
|
|
1204
|
-
"sheet": "XdMBba_sheet",
|
|
1257
|
+
"lobby": "XdMBba_lobby",
|
|
1258
|
+
"ownActions": "XdMBba_ownActions",
|
|
1259
|
+
"badgeDealer": "XdMBba_badgeDealer",
|
|
1205
1260
|
"narrowRowYou": "XdMBba_narrowRowYou",
|
|
1206
|
-
"sidePot": "XdMBba_sidePot",
|
|
1207
|
-
"settleTitle": "XdMBba_settleTitle",
|
|
1208
|
-
"cfBadgeOn": "XdMBba_cfBadgeOn",
|
|
1209
|
-
"cfLabel": "XdMBba_cfLabel",
|
|
1210
|
-
"railTitle": "XdMBba_railTitle",
|
|
1211
|
-
"historyList": "XdMBba_historyList",
|
|
1212
|
-
"historyScroll": "XdMBba_historyScroll",
|
|
1213
|
-
"btnRaise": "XdMBba_btnRaise",
|
|
1214
|
-
"settleMeta": "XdMBba_settleMeta",
|
|
1215
|
-
"cfError": "XdMBba_cfError",
|
|
1216
|
-
"seatTop": "XdMBba_seatTop",
|
|
1217
|
-
"narrowStatus": "XdMBba_narrowStatus",
|
|
1218
|
-
"narrowEmpty": "XdMBba_narrowEmpty",
|
|
1219
|
-
"chatComposer": "XdMBba_chatComposer",
|
|
1220
|
-
"row": "XdMBba_row",
|
|
1221
1261
|
"phasePillLobby": "XdMBba_phasePillLobby",
|
|
1222
|
-
"
|
|
1223
|
-
"
|
|
1224
|
-
"
|
|
1225
|
-
"
|
|
1226
|
-
"
|
|
1227
|
-
"
|
|
1228
|
-
"center": "XdMBba_center",
|
|
1229
|
-
"ownArea": "XdMBba_ownArea",
|
|
1230
|
-
"cfRow": "XdMBba_cfRow",
|
|
1231
|
-
"previewHead": "XdMBba_previewHead",
|
|
1232
|
-
"seatOut": "XdMBba_seatOut",
|
|
1233
|
-
"spectatorList": "XdMBba_spectatorList",
|
|
1234
|
-
"historyPot": "XdMBba_historyPot",
|
|
1235
|
-
"inviteBtn": "XdMBba_inviteBtn",
|
|
1236
|
-
"connPolling": "XdMBba_connPolling",
|
|
1237
|
-
"btnPrimary": "XdMBba_btnPrimary",
|
|
1238
|
-
"centerHint": "XdMBba_centerHint",
|
|
1239
|
-
"seatName": "XdMBba_seatName",
|
|
1240
|
-
"connOffline": "XdMBba_connOffline",
|
|
1241
|
-
"streetLabel": "XdMBba_streetLabel",
|
|
1242
|
-
"historyCard": "XdMBba_historyCard",
|
|
1243
|
-
"inviteWarnTitle": "XdMBba_inviteWarnTitle",
|
|
1244
|
-
"lobbyHead": "XdMBba_lobbyHead",
|
|
1245
|
-
"card_lg": "XdMBba_card_lg",
|
|
1262
|
+
"historyRow": "XdMBba_historyRow",
|
|
1263
|
+
"seatTop": "XdMBba_seatTop",
|
|
1264
|
+
"btnOutline": "XdMBba_btnOutline",
|
|
1265
|
+
"kickBtn": "XdMBba_kickBtn",
|
|
1266
|
+
"historyScroll": "XdMBba_historyScroll",
|
|
1267
|
+
"spin": "XdMBba_spin",
|
|
1246
1268
|
"input": "XdMBba_input",
|
|
1247
|
-
"raiseHead": "XdMBba_raiseHead",
|
|
1248
|
-
"settleHandRow": "XdMBba_settleHandRow",
|
|
1249
1269
|
"leaderHands": "XdMBba_leaderHands",
|
|
1250
|
-
"
|
|
1251
|
-
"
|
|
1252
|
-
"sheetTitle": "XdMBba_sheetTitle",
|
|
1253
|
-
"statusMuted": "XdMBba_statusMuted",
|
|
1254
|
-
"lobbyCenter": "XdMBba_lobbyCenter",
|
|
1255
|
-
"tab": "XdMBba_tab",
|
|
1256
|
-
"previewActions": "XdMBba_previewActions",
|
|
1257
|
-
"ownMeta": "XdMBba_ownMeta",
|
|
1258
|
-
"pos1": "XdMBba_pos1",
|
|
1259
|
-
"titleRow": "XdMBba_titleRow",
|
|
1270
|
+
"sheetBackdrop": "XdMBba_sheetBackdrop",
|
|
1271
|
+
"codeLine": "XdMBba_codeLine",
|
|
1260
1272
|
"toast": "XdMBba_toast",
|
|
1261
1273
|
"phasePill": "XdMBba_phasePill",
|
|
1262
|
-
"
|
|
1263
|
-
"
|
|
1264
|
-
"
|
|
1265
|
-
"
|
|
1266
|
-
"
|
|
1267
|
-
"urlText": "XdMBba_urlText",
|
|
1268
|
-
"seatOffline": "XdMBba_seatOffline",
|
|
1269
|
-
"tabActive": "XdMBba_tabActive",
|
|
1270
|
-
"urlRow": "XdMBba_urlRow",
|
|
1271
|
-
"seatStatus": "XdMBba_seatStatus",
|
|
1272
|
-
"field": "XdMBba_field",
|
|
1273
|
-
"statusAllIn": "XdMBba_statusAllIn",
|
|
1274
|
-
"potChips": "XdMBba_potChips",
|
|
1275
|
-
"centerActions": "XdMBba_centerActions",
|
|
1276
|
-
"historyNo": "XdMBba_historyNo",
|
|
1277
|
-
"previewSeat": "XdMBba_previewSeat",
|
|
1278
|
-
"pos3": "XdMBba_pos3",
|
|
1279
|
-
"cardBlack": "XdMBba_cardBlack",
|
|
1280
|
-
"cardSlot": "XdMBba_cardSlot",
|
|
1281
|
-
"bannerTitle": "XdMBba_bannerTitle",
|
|
1282
|
-
"spin": "XdMBba_spin",
|
|
1283
|
-
"feltArea": "XdMBba_feltArea",
|
|
1284
|
-
"cfLog": "XdMBba_cfLog",
|
|
1285
|
-
"cfPanel": "XdMBba_cfPanel",
|
|
1286
|
-
"previewSeatFilled": "XdMBba_previewSeatFilled",
|
|
1287
|
-
"kickBtn": "XdMBba_kickBtn",
|
|
1288
|
-
"ownStack": "XdMBba_ownStack",
|
|
1289
|
-
"centerTitle": "XdMBba_centerTitle",
|
|
1290
|
-
"settle": "XdMBba_settle",
|
|
1291
|
-
"codeChip": "XdMBba_codeChip",
|
|
1292
|
-
"inviteOk": "XdMBba_inviteOk",
|
|
1293
|
-
"pos0": "XdMBba_pos0",
|
|
1294
|
-
"previewSeats": "XdMBba_previewSeats",
|
|
1295
|
-
"betChip": "XdMBba_betChip",
|
|
1296
|
-
"cardDim": "XdMBba_cardDim",
|
|
1274
|
+
"netUp": "XdMBba_netUp",
|
|
1275
|
+
"connOffline": "XdMBba_connOffline",
|
|
1276
|
+
"metaRow": "XdMBba_metaRow",
|
|
1277
|
+
"railTitle": "XdMBba_railTitle",
|
|
1278
|
+
"sheet": "XdMBba_sheet",
|
|
1297
1279
|
"inviteWarn": "XdMBba_inviteWarn",
|
|
1298
|
-
"
|
|
1299
|
-
"
|
|
1300
|
-
"
|
|
1280
|
+
"settleMeta": "XdMBba_settleMeta",
|
|
1281
|
+
"btn": "XdMBba_btn",
|
|
1282
|
+
"headerMain": "XdMBba_headerMain",
|
|
1283
|
+
"inviteWarnText": "XdMBba_inviteWarnText",
|
|
1301
1284
|
"btnCall": "XdMBba_btnCall",
|
|
1285
|
+
"loading": "XdMBba_loading",
|
|
1286
|
+
"historyBoard": "XdMBba_historyBoard",
|
|
1302
1287
|
"actionTimer": "XdMBba_actionTimer",
|
|
1303
|
-
"badgeBlind": "XdMBba_badgeBlind",
|
|
1304
|
-
"netFlat": "XdMBba_netFlat",
|
|
1305
|
-
"rail": "XdMBba_rail",
|
|
1306
|
-
"ownHint": "XdMBba_ownHint",
|
|
1307
|
-
"statusAction": "XdMBba_statusAction",
|
|
1308
|
-
"sidePots": "XdMBba_sidePots",
|
|
1309
|
-
"railSection": "XdMBba_railSection",
|
|
1310
|
-
"narrowCards": "XdMBba_narrowCards",
|
|
1311
|
-
"inviteLinkInput": "XdMBba_inviteLinkInput",
|
|
1312
|
-
"settleActions": "XdMBba_settleActions",
|
|
1313
1288
|
"bannerDeltas": "XdMBba_bannerDeltas",
|
|
1314
|
-
"
|
|
1315
|
-
"
|
|
1289
|
+
"settleActions": "XdMBba_settleActions",
|
|
1290
|
+
"cardRed": "XdMBba_cardRed",
|
|
1291
|
+
"timerRing": "XdMBba_timerRing",
|
|
1292
|
+
"chatLine": "XdMBba_chatLine",
|
|
1293
|
+
"narrowCards": "XdMBba_narrowCards",
|
|
1316
1294
|
"settleRowHead": "XdMBba_settleRowHead",
|
|
1317
|
-
"
|
|
1318
|
-
"
|
|
1319
|
-
"
|
|
1295
|
+
"statusAllIn": "XdMBba_statusAllIn",
|
|
1296
|
+
"settleTable": "XdMBba_settleTable",
|
|
1297
|
+
"sheetHead": "XdMBba_sheetHead",
|
|
1298
|
+
"table": "XdMBba_table",
|
|
1299
|
+
"sidePot": "XdMBba_sidePot",
|
|
1300
|
+
"actionBar": "XdMBba_actionBar",
|
|
1301
|
+
"seatStack": "XdMBba_seatStack",
|
|
1302
|
+
"inviteLinkInput": "XdMBba_inviteLinkInput",
|
|
1303
|
+
"rail": "XdMBba_rail",
|
|
1304
|
+
"badgeHost": "XdMBba_badgeHost",
|
|
1305
|
+
"statusMuted": "XdMBba_statusMuted",
|
|
1306
|
+
"historyNo": "XdMBba_historyNo",
|
|
1307
|
+
"lobbyHead": "XdMBba_lobbyHead",
|
|
1308
|
+
"cfPanel": "XdMBba_cfPanel",
|
|
1309
|
+
"narrowRow": "XdMBba_narrowRow",
|
|
1310
|
+
"actionTimerValue": "XdMBba_actionTimerValue",
|
|
1311
|
+
"settleTitle": "XdMBba_settleTitle",
|
|
1312
|
+
"fieldLabel": "XdMBba_fieldLabel",
|
|
1313
|
+
"ownName": "XdMBba_ownName",
|
|
1314
|
+
"btnDanger": "XdMBba_btnDanger",
|
|
1315
|
+
"btnRaise": "XdMBba_btnRaise",
|
|
1316
|
+
"previewHead": "XdMBba_previewHead",
|
|
1317
|
+
"previewCard": "XdMBba_previewCard",
|
|
1318
|
+
"railEmpty": "XdMBba_railEmpty",
|
|
1319
|
+
"sidePots": "XdMBba_sidePots",
|
|
1320
|
+
"narrowList": "XdMBba_narrowList",
|
|
1321
|
+
"codeChip": "XdMBba_codeChip",
|
|
1322
|
+
"ownButtons": "XdMBba_ownButtons",
|
|
1323
|
+
"centerActions": "XdMBba_centerActions",
|
|
1324
|
+
"hostRow": "XdMBba_hostRow",
|
|
1325
|
+
"ownMeta": "XdMBba_ownMeta",
|
|
1326
|
+
"bannerTitle": "XdMBba_bannerTitle",
|
|
1327
|
+
"spectatorKick": "XdMBba_spectatorKick",
|
|
1328
|
+
"previewSeat": "XdMBba_previewSeat",
|
|
1329
|
+
"boardRow": "XdMBba_boardRow",
|
|
1330
|
+
"narrowName": "XdMBba_narrowName",
|
|
1331
|
+
"seatStatus": "XdMBba_seatStatus"
|
|
1320
1332
|
};
|
|
1321
1333
|
|
|
1322
1334
|
//#endregion
|
|
@@ -1497,7 +1509,7 @@ function writePref(key, value) {
|
|
|
1497
1509
|
} catch {}
|
|
1498
1510
|
}
|
|
1499
1511
|
function buildLabel() {
|
|
1500
|
-
const date = new Date("2026-10-
|
|
1512
|
+
const date = new Date("2026-10-25T09:18:56.876Z");
|
|
1501
1513
|
const stamp = date && !Number.isNaN(date.getTime()) ? date.toLocaleTimeString(void 0, { hour12: false }).slice(0, 5) : "";
|
|
1502
1514
|
return stamp ? `@zhuweiyou/dsh-holdem · build ${stamp}` : "@zhuweiyou/dsh-holdem · dev";
|
|
1503
1515
|
}
|
|
@@ -1928,7 +1940,7 @@ function buildMarkdown(view) {
|
|
|
1928
1940
|
|
|
1929
1941
|
//#endregion
|
|
1930
1942
|
//#region src/client/ActionBar.tsx
|
|
1931
|
-
function ActionBar({ legal, potTotal, bigBlind, busy, secondsLeft, onAction }) {
|
|
1943
|
+
function ActionBar({ legal, potTotal, bigBlind, busy, active = true, secondsLeft, onAction }) {
|
|
1932
1944
|
const [raiseTo, setRaiseTo] = (0, react.useState)(legal.minRaiseTo);
|
|
1933
1945
|
const lastLegal = (0, react.useRef)(`${legal.minRaiseTo}:${legal.maxRaiseTo}:${legal.canRaise}`);
|
|
1934
1946
|
(0, react.useEffect)(() => {
|
|
@@ -1943,8 +1955,11 @@ function ActionBar({ legal, potTotal, bigBlind, busy, secondsLeft, onAction }) {
|
|
|
1943
1955
|
legal.canRaise
|
|
1944
1956
|
]);
|
|
1945
1957
|
const step = Math.max(1, Math.round(bigBlind / 2));
|
|
1946
|
-
const
|
|
1947
|
-
const
|
|
1958
|
+
const locked = busy || !active;
|
|
1959
|
+
const raiseDisabled = !legal.canRaise || locked;
|
|
1960
|
+
const minTo = legal.canRaise ? legal.minRaiseTo : 0;
|
|
1961
|
+
const maxTo = legal.canRaise ? legal.maxRaiseTo : 0;
|
|
1962
|
+
const presets = [
|
|
1948
1963
|
{
|
|
1949
1964
|
label: t("table.halfPot"),
|
|
1950
1965
|
value: presetTo(legal, potTotal, .5)
|
|
@@ -1957,8 +1972,9 @@ function ActionBar({ legal, potTotal, bigBlind, busy, secondsLeft, onAction }) {
|
|
|
1957
1972
|
label: t("table.potBet"),
|
|
1958
1973
|
value: presetTo(legal, potTotal, 1)
|
|
1959
1974
|
}
|
|
1960
|
-
]
|
|
1975
|
+
];
|
|
1961
1976
|
(0, react.useEffect)(() => {
|
|
1977
|
+
if (!active) return void 0;
|
|
1962
1978
|
const onKey = (event) => {
|
|
1963
1979
|
const target = event.target;
|
|
1964
1980
|
if (target && (target.tagName === "INPUT" || target.tagName === "TEXTAREA" || target.isContentEditable)) return;
|
|
@@ -1967,17 +1983,20 @@ function ActionBar({ legal, potTotal, bigBlind, busy, secondsLeft, onAction }) {
|
|
|
1967
1983
|
else if (key === "c" && (legal.canCheck || legal.canCall)) onAction(legal.canCheck ? { type: "check" } : { type: "call" });
|
|
1968
1984
|
else if (key === "r" && legal.canRaise) onAction({
|
|
1969
1985
|
type: "raise",
|
|
1970
|
-
to: clamp(raiseTo,
|
|
1986
|
+
to: clamp(raiseTo, minTo, maxTo)
|
|
1971
1987
|
});
|
|
1972
1988
|
};
|
|
1973
1989
|
window.addEventListener("keydown", onKey);
|
|
1974
1990
|
return () => window.removeEventListener("keydown", onKey);
|
|
1975
1991
|
}, [
|
|
1992
|
+
active,
|
|
1976
1993
|
legal,
|
|
1977
1994
|
onAction,
|
|
1978
|
-
raiseTo
|
|
1995
|
+
raiseTo,
|
|
1996
|
+
minTo,
|
|
1997
|
+
maxTo
|
|
1979
1998
|
]);
|
|
1980
|
-
const isAllIn = legal.canRaise && raiseTo >=
|
|
1999
|
+
const isAllIn = legal.canRaise && raiseTo >= maxTo;
|
|
1981
2000
|
return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
|
|
1982
2001
|
className: styles_module_css_default.actionBar,
|
|
1983
2002
|
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
|
|
@@ -1995,69 +2014,70 @@ function ActionBar({ legal, potTotal, bigBlind, busy, secondsLeft, onAction }) {
|
|
|
1995
2014
|
/* @__PURE__ */ (0, react_jsx_runtime.jsx)("button", {
|
|
1996
2015
|
type: "button",
|
|
1997
2016
|
className: cx(styles_module_css_default.btn, styles_module_css_default.btnGhost),
|
|
1998
|
-
disabled: !legal.canFold ||
|
|
2017
|
+
disabled: !legal.canFold || locked,
|
|
1999
2018
|
onClick: () => onAction({ type: "fold" }),
|
|
2000
2019
|
children: t("table.fold")
|
|
2001
2020
|
}),
|
|
2002
2021
|
/* @__PURE__ */ (0, react_jsx_runtime.jsx)("button", {
|
|
2003
2022
|
type: "button",
|
|
2004
2023
|
className: cx(styles_module_css_default.btn, styles_module_css_default.btnCall),
|
|
2005
|
-
disabled:
|
|
2024
|
+
disabled: locked || !legal.canCheck && !legal.canCall,
|
|
2006
2025
|
onClick: () => onAction(legal.canCheck ? { type: "check" } : { type: "call" }),
|
|
2007
2026
|
children: legal.canCheck ? t("table.check") : t("table.call", { amount: formatChips(legal.callAmount) })
|
|
2008
2027
|
}),
|
|
2009
|
-
|
|
2028
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
|
|
2010
2029
|
className: styles_module_css_default.raiseGroup,
|
|
2011
|
-
children: [
|
|
2012
|
-
|
|
2013
|
-
|
|
2014
|
-
|
|
2015
|
-
|
|
2016
|
-
children: isAllIn ? t("table.allinAction") : formatChips(raiseTo)
|
|
2017
|
-
}), /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
|
|
2018
|
-
className: styles_module_css_default.presetRow,
|
|
2019
|
-
children: [presets.map((preset) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)("button", {
|
|
2020
|
-
type: "button",
|
|
2021
|
-
className: cx(styles_module_css_default.btn, styles_module_css_default.btnChip),
|
|
2022
|
-
disabled: raiseDisabled,
|
|
2023
|
-
onClick: () => setRaiseTo(clamp(preset.value, legal.minRaiseTo, legal.maxRaiseTo)),
|
|
2024
|
-
children: preset.label
|
|
2025
|
-
}, preset.label)), /* @__PURE__ */ (0, react_jsx_runtime.jsx)("button", {
|
|
2026
|
-
type: "button",
|
|
2027
|
-
className: cx(styles_module_css_default.btn, styles_module_css_default.btnChip),
|
|
2028
|
-
disabled: raiseDisabled,
|
|
2029
|
-
onClick: () => setRaiseTo(legal.maxRaiseTo),
|
|
2030
|
-
children: t("table.max")
|
|
2031
|
-
})]
|
|
2032
|
-
})]
|
|
2033
|
-
}),
|
|
2034
|
-
/* @__PURE__ */ (0, react_jsx_runtime.jsx)("input", {
|
|
2035
|
-
className: styles_module_css_default.slider,
|
|
2036
|
-
type: "range",
|
|
2037
|
-
min: legal.minRaiseTo,
|
|
2038
|
-
max: legal.maxRaiseTo,
|
|
2039
|
-
step,
|
|
2040
|
-
value: clamp(raiseTo, legal.minRaiseTo, legal.maxRaiseTo),
|
|
2030
|
+
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
|
|
2031
|
+
className: styles_module_css_default.presetRow,
|
|
2032
|
+
children: [presets.map((preset) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)("button", {
|
|
2033
|
+
type: "button",
|
|
2034
|
+
className: cx(styles_module_css_default.btn, styles_module_css_default.btnChip),
|
|
2041
2035
|
disabled: raiseDisabled,
|
|
2042
|
-
|
|
2043
|
-
|
|
2044
|
-
/* @__PURE__ */ (0, react_jsx_runtime.jsx)("button", {
|
|
2036
|
+
onClick: () => setRaiseTo(clamp(preset.value, minTo, maxTo)),
|
|
2037
|
+
children: preset.label
|
|
2038
|
+
}, preset.label)), /* @__PURE__ */ (0, react_jsx_runtime.jsx)("button", {
|
|
2045
2039
|
type: "button",
|
|
2046
|
-
className: cx(styles_module_css_default.btn, styles_module_css_default.
|
|
2040
|
+
className: cx(styles_module_css_default.btn, styles_module_css_default.btnChip),
|
|
2047
2041
|
disabled: raiseDisabled,
|
|
2048
|
-
onClick: () =>
|
|
2049
|
-
|
|
2050
|
-
|
|
2042
|
+
onClick: () => setRaiseTo(maxTo),
|
|
2043
|
+
children: t("table.max")
|
|
2044
|
+
})]
|
|
2045
|
+
}), /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
|
|
2046
|
+
className: styles_module_css_default.raiseSliderRow,
|
|
2047
|
+
children: [
|
|
2048
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
|
|
2049
|
+
className: styles_module_css_default.raiseValue,
|
|
2050
|
+
children: legal.canRaise ? isAllIn ? t("table.allinAction") : formatChips(raiseTo) : "—"
|
|
2051
2051
|
}),
|
|
2052
|
-
|
|
2053
|
-
|
|
2054
|
-
|
|
2055
|
-
|
|
2052
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsx)("input", {
|
|
2053
|
+
className: styles_module_css_default.slider,
|
|
2054
|
+
type: "range",
|
|
2055
|
+
min: minTo,
|
|
2056
|
+
max: maxTo,
|
|
2057
|
+
step,
|
|
2058
|
+
value: clamp(raiseTo, minTo, maxTo),
|
|
2059
|
+
disabled: raiseDisabled,
|
|
2060
|
+
onChange: (event) => setRaiseTo(Number(event.target.value))
|
|
2061
|
+
}),
|
|
2062
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsx)("button", {
|
|
2063
|
+
type: "button",
|
|
2064
|
+
className: cx(styles_module_css_default.btn, styles_module_css_default.btnRaise),
|
|
2065
|
+
disabled: raiseDisabled,
|
|
2066
|
+
onClick: () => onAction({
|
|
2067
|
+
type: "raise",
|
|
2068
|
+
to: clamp(raiseTo, minTo, maxTo)
|
|
2069
|
+
}),
|
|
2070
|
+
children: !legal.canRaise ? t("table.noRaise") : isAllIn ? t("table.allinAction") : t("table.raiseTo", { amount: formatChips(clamp(raiseTo, minTo, maxTo)) })
|
|
2071
|
+
})
|
|
2072
|
+
]
|
|
2073
|
+
})]
|
|
2074
|
+
})
|
|
2056
2075
|
]
|
|
2057
2076
|
})]
|
|
2058
2077
|
});
|
|
2059
2078
|
}
|
|
2060
2079
|
function presetTo(legal, pot, fraction) {
|
|
2080
|
+
if (!legal.canRaise) return 0;
|
|
2061
2081
|
return clamp(legal.minRaiseTo + Math.round(Math.max(pot, legal.minRaiseTo) * fraction), legal.minRaiseTo, legal.maxRaiseTo);
|
|
2062
2082
|
}
|
|
2063
2083
|
|
|
@@ -2468,7 +2488,8 @@ function Table({ view }) {
|
|
|
2468
2488
|
const hand = view.hand;
|
|
2469
2489
|
const room = view.room;
|
|
2470
2490
|
const youSeat = view.you.seat;
|
|
2471
|
-
const
|
|
2491
|
+
const acting = view.you.canAct && view.you.legal !== null;
|
|
2492
|
+
const actor = acting ? t("table.yourTurn") : actorLabel(view);
|
|
2472
2493
|
const secondsLeft = useCountdown(hand?.deadlineAt ?? null);
|
|
2473
2494
|
const nextHandSeconds = useCountdown(room.nextHandAt);
|
|
2474
2495
|
const isHost = room.hostPlayerId === view.you.playerId;
|
|
@@ -2746,34 +2767,46 @@ function Table({ view }) {
|
|
|
2746
2767
|
})
|
|
2747
2768
|
]
|
|
2748
2769
|
})]
|
|
2749
|
-
}),
|
|
2750
|
-
|
|
2751
|
-
|
|
2752
|
-
|
|
2753
|
-
|
|
2754
|
-
|
|
2755
|
-
|
|
2756
|
-
|
|
2757
|
-
|
|
2758
|
-
|
|
2759
|
-
|
|
2760
|
-
|
|
2761
|
-
|
|
2762
|
-
|
|
2763
|
-
|
|
2764
|
-
|
|
2765
|
-
|
|
2766
|
-
|
|
2767
|
-
|
|
2768
|
-
children:
|
|
2769
|
-
|
|
2770
|
-
|
|
2771
|
-
|
|
2772
|
-
|
|
2773
|
-
|
|
2774
|
-
|
|
2775
|
-
|
|
2776
|
-
|
|
2770
|
+
}), /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
|
|
2771
|
+
className: styles_module_css_default.ownActions,
|
|
2772
|
+
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
|
|
2773
|
+
className: cx(styles_module_css_default.ownSlot, !acting && styles_module_css_default.ownSlotHidden),
|
|
2774
|
+
"aria-hidden": !acting,
|
|
2775
|
+
children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(ActionBar, {
|
|
2776
|
+
legal: view.you.legal ?? IDLE_LEGAL,
|
|
2777
|
+
potTotal: hand?.potTotal ?? 0,
|
|
2778
|
+
bigBlind: room.settings.bb,
|
|
2779
|
+
busy: state$1.busy,
|
|
2780
|
+
active: acting,
|
|
2781
|
+
secondsLeft: acting ? secondsLeft : null,
|
|
2782
|
+
onAction: act
|
|
2783
|
+
})
|
|
2784
|
+
}), /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
|
|
2785
|
+
className: cx(styles_module_css_default.ownSlot, acting && styles_module_css_default.ownSlotHidden),
|
|
2786
|
+
"aria-hidden": acting,
|
|
2787
|
+
children: /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
|
|
2788
|
+
className: styles_module_css_default.ownHint,
|
|
2789
|
+
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", { children: room.phase === "hand" && hand ? actor : room.phase === "handOver" ? t("table.paused") : t("table.waiting") }), room.phase === "lobby" ? /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
|
|
2790
|
+
className: styles_module_css_default.ownButtons,
|
|
2791
|
+
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("button", {
|
|
2792
|
+
type: "button",
|
|
2793
|
+
className: cx(styles_module_css_default.btn, styles_module_css_default.btnOutline),
|
|
2794
|
+
disabled: state$1.busy,
|
|
2795
|
+
onClick: () => void runCommand({
|
|
2796
|
+
type: "ready",
|
|
2797
|
+
ready: !view.you.ready
|
|
2798
|
+
}),
|
|
2799
|
+
children: view.you.ready ? t("table.unready") : t("table.ready")
|
|
2800
|
+
}), /* @__PURE__ */ (0, react_jsx_runtime.jsx)("button", {
|
|
2801
|
+
type: "button",
|
|
2802
|
+
className: cx(styles_module_css_default.btn, styles_module_css_default.btnGhost),
|
|
2803
|
+
disabled: state$1.busy,
|
|
2804
|
+
onClick: () => void runCommand({ type: "stand" }),
|
|
2805
|
+
children: t("table.stand")
|
|
2806
|
+
})]
|
|
2807
|
+
}) : null]
|
|
2808
|
+
})
|
|
2809
|
+
})]
|
|
2777
2810
|
})] })
|
|
2778
2811
|
})]
|
|
2779
2812
|
}),
|
|
@@ -2797,6 +2830,21 @@ function Table({ view }) {
|
|
|
2797
2830
|
});
|
|
2798
2831
|
}
|
|
2799
2832
|
const RAIL_KEY = "holdem:rail";
|
|
2833
|
+
/**
|
|
2834
|
+
* 轮不到你的时候行动条只是「占位」(`active: false`),这组数值只为撑住高度,
|
|
2835
|
+
* 真实操作一律以服务端下发的 `LegalActions` 为准。
|
|
2836
|
+
*/
|
|
2837
|
+
const IDLE_LEGAL = {
|
|
2838
|
+
canFold: false,
|
|
2839
|
+
canCheck: false,
|
|
2840
|
+
canCall: false,
|
|
2841
|
+
callAmount: 0,
|
|
2842
|
+
canRaise: true,
|
|
2843
|
+
minRaiseTo: 0,
|
|
2844
|
+
maxRaiseTo: 0,
|
|
2845
|
+
canAllIn: false,
|
|
2846
|
+
allInTo: 0
|
|
2847
|
+
};
|
|
2800
2848
|
function readRailPref() {
|
|
2801
2849
|
try {
|
|
2802
2850
|
return localStorage.getItem(RAIL_KEY) !== "closed";
|