// RIFTR storefront — catalogue: product grid + product detail page. (() => { const { Card, Badge, Label, Button, Tabs, QtyStepper, SpecTable } = window.RIFTRDesignSystem_b64b32; function Grid({ cat, onProduct }) { const RM = window.RIFTR_RM; const list = cat === 'All' ? window.RIFTR_PRODUCTS : window.RIFTR_PRODUCTS.filter((p) => p.tag === cat); return ( {cat === 'All' ? 'The full kit' : cat} {list.length} products {list.map((p) => ( onProduct(p)}> {p.img ? : } {p.badge && {p.badge}} {p.tag} {p.name} {RM(p.price)} View → ))} ); } function ProductPage({ p, onBack, onAdd }) { const RM = window.RIFTR_RM; const Ic = window.Ic; const [tab, setTab] = React.useState('Overview'); const [qty, setQty] = React.useState(1); return ( } style={{ padding: '8px 0', marginBottom: 18 }}>Back {p.img ? : } {p.tag} · {p.specs[0][1]} {p.name} {RM(p.price)} {p.blurb} onAdd(p, qty)} iconLeft={}> Add to cart — {RM(p.price * qty)} {tab === 'Overview' && {p.blurb} Designed and printed small-batch in Malaysia — practical hardware for the table, nothing you don't need.} {tab === 'Specs' && } {tab === 'In the box' && {p.box.map((b, i) => ( {b} ))} } ); } Object.assign(window, { Grid, ProductPage }); })();
{p.blurb}
{p.blurb} Designed and printed small-batch in Malaysia — practical hardware for the table, nothing you don't need.