import { DemoStory } from '../../demo/demo-types'; import { CopyButton, CopyButtonProps } from './copy-button'; export const copyButtonDemo: DemoStory = { id: 'copy-button', text: 'CopyButton', args: { text: () => 'npm install lupine.js', variant: 'outline', }, argTypes: { variant: { control: 'select', options: ['outline', 'solid', 'ghost'], description: 'Button style variant' }, timeoutMs: { control: 'number', description: 'Time (ms) before reverting from copied state (default: 2000)' }, }, render: (args) => { return (

Interactive Copy Button

Variants

'Copy me!'} variant='solid'> Solid 'Copy me!'} variant='outline'> Outline 'Copy me!'} variant='ghost' />

Inline with Code Block

npm install lupine.js 'npm install lupine.js'} variant='ghost' />
); }, code: `import { CopyButton } from 'lupine.components/component-pool'; // Default (outline) with auto icons — text is a function returning string 'npm install lupine.js'} /> // Solid variant 'hello world'} variant="solid">Copy // Ghost icon-only variant (shows copy icon by default) 'hello world'} variant="ghost" /> // Dynamic text — useful for copying from DOM at click time ref.$('input').value} /> `, };