import { DemoStory } from '../demo/demo-types'; import { InputNumber, InputNumberProps, InputNumberSize } from './input-number'; import { HtmlVar } from 'lupine.components'; export const inputNumberDemo: DemoStory = { id: 'input-number-demo', text: 'Input Number', args: { value: 0, min: -10, max: 10, step: 1, size: InputNumberSize.Medium, shape: 'square', disabled: false, }, argTypes: { value: { control: 'number', description: 'Initial value' }, min: { control: 'number', description: 'Minimum allowed value' }, max: { control: 'number', description: 'Maximum allowed value' }, step: { control: 'number', description: 'Step amount per click' }, size: { control: 'select', options: Object.values(InputNumberSize), description: 'Size of the stepper', }, shape: { control: 'select', options: ['square', 'circle'], description: 'Shape of the buttons', }, disabled: { control: 'boolean', description: 'Disable interaction' }, }, render: (args: InputNumberProps) => { const InputNumberDemoContent = () => { const msg = new HtmlVar(''); return (
{ msg.value = `Value changed: ${v}`; }} />

Square Shape
(msg.value = `SmallSmall changed: ${v}`)} />
(msg.value = `Small changed: ${v}`)} />
(msg.value = `Medium changed: ${v}`)} />
(msg.value = `Large changed: ${v}`)} />
(msg.value = `LargeLarge changed: ${v}`)} />
Circle Shape
(msg.value = `SmallSmall (Circle) changed: ${v}`)} />
(msg.value = `Small (Circle) changed: ${v}`)} />
(msg.value = `Medium (Circle) changed: ${v}`)} />
(msg.value = `Large (Circle) changed: ${v}`)} />
(msg.value = `LargeLarge (Circle) changed: ${v}`)} />
{msg.node}
); }; return ; }, code: `import { InputNumber, InputNumberSize } from 'lupine.components/components/input-number'; // Basic usage console.log('Value:', v)} /> `, };