// 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.map((p) => ( onProduct(p)}>
{p.img ? {p.name} : } {p.badge && {p.badge}}
{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 (
{p.img ? {p.name} : }

{p.name}

{RM(p.price)}

{p.blurb}

{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 }); })();