Sparkline.stories.tsx 987 B

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. import type { Meta, StoryObj } from '@storybook/react-vite';
  2. import Sparkline from './Sparkline';
  3. const wave = Array.from({ length: 48 }, (_, i) => 45 + Math.round(28 * Math.sin(i / 4) + (i % 5) * 3));
  4. const inverse = wave.map((v) => Math.max(0, 100 - v));
  5. const meta = {
  6. title: 'Viz/Sparkline',
  7. component: Sparkline,
  8. tags: ['autodocs'],
  9. parameters: { layout: 'padded' },
  10. } satisfies Meta<typeof Sparkline>;
  11. export default meta;
  12. type Story = StoryObj<typeof meta>;
  13. export const Default: Story = {
  14. args: { data: wave, height: 80 },
  15. };
  16. export const AxesAndGrid: Story = {
  17. args: { data: wave, height: 140, showAxes: true, showGrid: true, name1: 'CPU' },
  18. };
  19. export const Extrema: Story = {
  20. args: { data: wave, height: 140, name1: 'CPU', extrema: { show: true } },
  21. };
  22. export const MultiSeriesTooltip: Story = {
  23. args: {
  24. data: wave,
  25. data2: inverse,
  26. name1: 'Upload',
  27. name2: 'Download',
  28. height: 140,
  29. showTooltip: true,
  30. showAxes: true,
  31. },
  32. };