function OrderCard({ item }) {
const { Button, Badge, Card } = window.LittleOliveStreetDesignSystem_65d760;
const [flavorIdx, setFlavorIdx] = React.useState(0);
const [sizeIdx, setSizeIdx] = React.useState(0);
const [qty, setQty] = React.useState(1);
const price = item.sizes[sizeIdx].price;
const size = item.sizes[sizeIdx];
const flavor = item.flavors[flavorIdx];
// Include flavor + size in the id so different combos of the same dessert
// land as separate cart lines instead of merging into one.
const snipcartId = item.id + '-' + flavor.replace(/\s+/g, '-').toLowerCase() + '-' + size.label.replace(/\s+/g, '-').toLowerCase();
function Icon({ name, size = 16, color }) {
const pascal = name.split('-').map((w) => w.charAt(0).toUpperCase() + w.slice(1)).join('');
const node = window.lucide && window.lucide.icons[pascal];
if (!node) return null;
const el = window.lucide.createElement(node);
el.setAttribute('width', size);
el.setAttribute('height', size);
el.setAttribute('stroke', color || 'currentColor');
return ;
}
return (
{item.flavors.length > 1 && (
Flavor
{item.flavors.map((f, i) => (
setFlavorIdx(i)}
style={{
padding: '5px 12px', borderRadius: 'var(--radius-pill)', fontSize: 12.5, fontFamily: 'var(--font-body)',
fontWeight: 500, cursor: 'pointer',
background: flavorIdx === i ? 'var(--accent-primary)' : 'var(--tint-blush)',
color: flavorIdx === i ? '#fff' : 'var(--accent-primary)',
}}
>
{f}
))}
)}
{item.customFlavorNote && (
Want a custom flavor? Use custom order form.
)}
Size
{item.sizes.map((s, i) => (
setSizeIdx(i)}
style={{
padding: '5px 12px', borderRadius: 'var(--radius-pill)', fontSize: 12.5, fontFamily: 'var(--font-body)',
fontWeight: 500, cursor: 'pointer',
background: sizeIdx === i ? 'var(--accent-sage)' : 'var(--tint-sage)',
color: sizeIdx === i ? '#fff' : 'var(--accent-sage)',
}}
>
{s.label}
))}
Quantity
setQty((q) => Math.max(1, q - 1))}
style={{
width: 26, height: 26, borderRadius: '50%', display: 'flex', alignItems: 'center', justifyContent: 'center',
background: 'var(--tint-sage)', color: 'var(--accent-sage)', fontWeight: 600, cursor: 'pointer', userSelect: 'none',
}}
>
−
{qty}
setQty((q) => q + 1)}
style={{
width: 26, height: 26, borderRadius: '50%', display: 'flex', alignItems: 'center', justifyContent: 'center',
background: 'var(--tint-sage)', color: 'var(--accent-sage)', fontWeight: 600, cursor: 'pointer', userSelect: 'none',
}}
>
+
);
}
function OrderNowPage({ setPage }) {
const { Badge } = window.LittleOliveStreetDesignSystem_65d760;
const { RooflineDivider } = window.LittleOliveStreetDesignSystem_65d760;
return (
Order Now
Insanely delectable.
Every time.
Mix and match flavors and sizes!
All orders are available for pickup in Sugar Land, TX
within 24 hours after order confirmation.
{window.LOS_MENU.map((item) => )}
Planning something bigger?
Birthdays, showers, weddings, and office events get a custom order — themed, sized to your headcount, made to order.
setPage('custom')} style={{ font: 'var(--text-label)', color: 'var(--accent-primary)', cursor: 'pointer' }}>
Start a custom order →
);
}