/**
* Online-only boards — the public "shop window".
*
* These boards are implemented by the hosted editor (velxio.com), where they
* are free to use; their emulation engines and board wiring are not part of
* the OSS tree. The OSS build knows only this list — name, art, a badge —
* and renders advertisement cards in the picker that link to the online
* editor.
*
* A build where a board actually exists (the hosted build registers the real
* BoardKind) must NOT show its ad. Callers filter with `id in
* BOARD_KIND_LABELS`: when the real kind is registered the ad disappears
* automatically, so this list needs no per-build switches.
*/
export interface OnlineOnlyBoardAd {
/** Stable id — matches the BoardKind the hosted build registers. */
id: string;
label: string;
description: string;
/** Inline SVG for the card thumbnail (rendered via innerHTML). */
thumbnailSvg: string;
}
/** Where the ad cards send the user. */
export const ONLINE_EDITOR_URL = 'https://velxio.com';
export const ONLINE_ONLY_BOARD_ADS: OnlineOnlyBoardAd[] = [
{
id: 'esp32-c6',
label: 'ESP32-C6-DevKitC-1',
description: 'RISC-V single-core, WiFi 6 + BLE + 802.15.4 — in-browser emulation',
thumbnailSvg:
'',
},
{
id: 'm5stack-core',
label: 'M5Stack Core Basic',
description: 'ESP32 all-in-one: 2" LCD, 3 buttons, speaker, microSD',
thumbnailSvg:
'',
},
{
id: 'cardputer-adv',
label: 'M5 Cardputer ADV',
description: 'ESP32-S3 card computer: ST7789 LCD + 56-key keyboard',
thumbnailSvg:
'',
},
{
id: 'pimoroni-pico-plus-2w',
label: 'Pimoroni Pico Plus 2W',
description: 'RP2350B dual-core RISC-V/ARM + WiFi, 16MB flash + 8MB PSRAM',
thumbnailSvg:
'',
},
{
id: 'galactic-unicorn',
label: 'Pimoroni Galactic Unicorn',
description: 'RP2350 53×11 RGB LED matrix panel',
thumbnailSvg:
'',
},
{
id: 'badger-2350',
label: 'Pimoroni Badger 2350',
description: 'RP2350 wearable badge with 2.7" e-ink display',
thumbnailSvg:
'',
},
{
id: 'xiao-esp32s3-sense',
label: 'XIAO ESP32S3 Sense',
description: 'Thumb-size ESP32-S3 with camera + mic (Seeed Studio) - in-browser emulation',
thumbnailSvg: '',
},
{
id: 'xiao-esp32c6',
label: 'XIAO ESP32C6',
description: 'Thumb-size ESP32-C6: WiFi 6, BLE, 802.15.4 (Seeed Studio) - in-browser emulation',
thumbnailSvg: '',
},
{
id: 'xiao-rp2040',
label: 'XIAO RP2040',
description: 'Thumb-size RP2040 (Seeed Studio) - in-browser emulation',
thumbnailSvg: '',
},
,
{
id: 'unihiker-m10',
label: 'UNIHIKER M10',
description: 'DFRobot IoT SBC: RK3308 Linux + 2.8" touchscreen (micro:bit edge) - available in the online editor',
thumbnailSvg:
'',
}
];
/** Advertisement entry for a hosted-editor-only COMPONENT (picker part).
* Same contract as the board ads above: the OSS build renders a card that
* links to the online editor, and any build where the real component exists
* in the ComponentRegistry (the hosted overlay merges it in) must hide the
* ad — callers filter with `registry.getById(ad.id)`, so the ad disappears
* automatically and this list needs no per-build switches. */
export interface OnlineOnlyComponentAd {
/** Stable id — matches the component metadata id the hosted build merges. */
id: string;
label: string;
description: string;
/** Picker category the ad card appears under (besides "all"). */
category: string;
/** Inline SVG for the card thumbnail (rendered via innerHTML). */
thumbnailSvg: string;
}
export const ONLINE_ONLY_COMPONENT_ADS: OnlineOnlyComponentAd[] = [
{
id: 'm5stack-chain-8x8',
label: 'M5Stack Chain RGB Matrix (8\u00d78)',
description: '64 RGB LEDs, daisy-chainable \u2014 in-browser emulation',
category: 'output',
thumbnailSvg: "",
},
{
id: 'm5stack-chain-mono-8x8',
label: 'M5Stack Chain Mono Matrix (8\u00d78, White)',
description: '64 white LEDs, daisy-chainable \u2014 in-browser emulation',
category: 'output',
thumbnailSvg: "",
},,
{
id: 'seeed-round-display',
label: 'Round Display for XIAO (1.28", GC9A01)',
description: 'Round GC9A01 240x240 touch LCD + RTC - available in the online editor',
category: 'displays',
thumbnailSvg: '',
},
{
id: 'grove-gesture-pag7660',
label: 'Grove Smart IR Gesture (PAG7661QN)',
description: 'IR camera gesture sensor on a XIAO carrier: seat a XIAO on its socket and read rotate/tap/grab/pinch/swipe over I2C - available in the online editor',
category: 'input',
thumbnailSvg: '',
},
{
id: 'respeaker-lite',
label: 'ReSpeaker Lite (XMOS XU316)',
description: 'Dual-mic array with a XIAO socket: live mic in, audio out, beamforming/AEC/NS model - online editor',
category: 'sensors',
thumbnailSvg: '',
}
];