Bridge Training
Bridge React

Bid

Components for displaying and selecting bridge bids.

Import from @workspace/bridge-react/bid/bid-display, @workspace/bridge-react/bid/bid-button, @workspace/bridge-react/bid/bid-pad, or @workspace/bridge-react/bid/bid-suit-display.

BidDisplay

Renders a bid as text with suit icon. Handles special bids (Pass, X, XX, Alert) and regular bids (level + suit).

import { BidDisplay } from '@workspace/bridge-react/bid/bid-display';

<BidDisplay bid="1NT" />
<BidDisplay bid="4S" />
<BidDisplay bid="Pass" />

Demo

1NT

Props

Prop

Type

BidButton

Styled button for displaying or selecting a bid. Automatically applies colors based on bid type (pass = green, double = red, suits = colored, etc.).

import { BidButton } from '@workspace/bridge-react/bid/bid-button';

<BidButton bid="Pass" onClick={() => handleBid('Pass')} />
<BidButton bid="3H" compact />
<BidButton bid="X" disabled />

Demo

Props

Prop

Type

getBidVariant

Utility function to determine the style variant for a bid.

import { getBidVariant } from '@workspace/bridge-react/bid/bid-button';

getBidVariant('Pass');  // 'pass'
getBidVariant('3H');    // 'hearts'
getBidVariant('1NT');   // 'notrump'
getBidVariant('X');     // 'double'

BidPad

Controlled bid selection pad. Displays all possible bids in a grid with special bids (Pass, X, XX, Alert) on top.

import { BidPad } from '@workspace/bridge-react/bid/bid-pad';

<BidPad
  onBidSelect={(bid) => console.log(bid)}
  isBidValid={(bid) => true}
/>

Demo

Props

Prop

Type

BidSuitDisplay

Displays a bid suit — either a colored suit icon or "NT" text.

import { BidSuitDisplay } from '@workspace/bridge-react/bid/bid-suit-display';

<BidSuitDisplay bidSuit="S" />
<BidSuitDisplay bidSuit="NT" noTrumpLabel="SA" />

Demo

BidSequenceInput

Compound component for displaying a sequence of bid chips in a grid layout, with an optional undo button. Shows an empty message when the sequence is empty.

Import from @workspace/bridge-react/bid/bid-sequence-input.

import { BidSequenceInput } from '@workspace/bridge-react/bid/bid-sequence-input';

<BidSequenceInput isEmpty={bids.length === 0} emptyMessage="No bids yet" onUndo={handleUndo}>
  {bids.map((bid) => (
    <BidSequenceInput.Chip key={bid} bid={bid} />
  ))}
</BidSequenceInput>

Compound API

ComponentDescription
BidSequenceInputRoot container with grid layout, undo button, and empty state
BidSequenceInput.ChipDisplays a single bid as a compact, disabled BidButton

Props

PropTypeDescription
childrenReactNodeBid chips to display in the grid
onUndo() => voidOptional callback for the undo button (button hidden when omitted)
emptyMessagestringMessage shown when isEmpty is true
isEmptybooleanWhether the sequence is empty
classNamestringAdditional CSS classes

useBidPadFlags

Hook that computes bidding pad state flags from the current auction sequence and dealer.

Import from @workspace/bridge-react/bid/useBidPadFlags.

import { useBidPadFlags } from '@workspace/bridge-react/bid/useBidPadFlags';

const { isEmpty, isComplete, canDouble, canRedouble, lastContractBid } = useBidPadFlags(sequence, dealer);

Prop

Type

Constants

ExportDescription
BID_LEVELSReadonly array [1, 2, 3, 4, 5, 6, 7]
BID_SUITSReadonly array ['NT', 'S', 'H', 'D', 'C']
SPECIAL_BIDSReadonly array ['Pass', 'X', 'XX', 'Alert']
DEFAULT_BID_VARIANT_CLASSESDefault Tailwind classes per bid variant

On this page