demo-inputs.ts (1581B)
1 // Curated presentation metadata, never signatures inferred from arbitrary bundles. 2 // The argument order comes from the published demos beside this site. 3 export function demoInputLabels(id: string, definition: string): readonly string[] { 4 switch (id) { 5 case 'functions': return definition === 'add' ? ['Left number', 'Right number'] : ['Number']; 6 case 'transform-list': return definition === 'double' ? ['Number'] : []; 7 case 'choices': return ['Number of items']; 8 case 'language-reference': 9 if (definition === 'first') return ['First value', 'Second value']; 10 if (definition === 'firstOr') return ['Fallback', 'List']; 11 return ['identity', 'addTwo', 'describe', 'keep', 'local', 'viaWhere', 'copy', 'localCopy', 'checked', 'sequenced'].includes(definition) ? ['Value'] : []; 12 case 'microscope': return definition === 'same' ? ['First tree', 'Second tree'] : ['Tree to inspect']; 13 case 'rgb': return ['RGB channels (0–255)']; 14 case 'shipping': return ['Destination', 'Cart subtotal (cents)', 'Package weight (grams)']; 15 case 'events': return definition === 'vendorB' ? ['Event [customer refunded totalCents]'] : ['Event [eventName customer totalCents]']; 16 case 'registration': return ['Name', 'Email', 'Age', 'Terms accepted (t = false, (t t) = true)']; 17 case 'lexer': return definition === 'scanWhitespace' ? ['Text with leading whitespace'] : ['Text with a lowercase prefix']; 18 case 'parser': return ['Comma-separated lowercase names']; 19 case 'migration': return ['Profile [name email]']; 20 default: return []; 21 } 22 }