import React from 'react'; import { storybookArgTypes, storybookExcludedControlParams, StoryMetaType, } from '@lg-tools/storybook-utils'; import { StoryFn, StoryObj } from '@storybook/react'; import { glyphs, Icon } from '@leafygreen-ui/icon'; import { InputOptionContent, InputOptionContentProps, } from '../InputOptionContent'; import { InputOption, type InputOptionProps } from '.'; export default { title: 'Internal/InputOption', component: InputOption, parameters: { default: 'Basic', controls: { exclude: [ ...storybookExcludedControlParams, 'setError', 'filteredOptions', 'initialValue', 'value', 'children', ], }, generate: { storyNames: ['Generated', 'WithContent'], combineArgs: { darkMode: [false, true], }, }, }, args: { children: 'Some text', showWedge: true, }, argTypes: { disabled: { control: 'boolean', }, highlighted: { control: 'boolean', }, checked: { control: 'boolean', }, showWedge: { description: 'Whether a wedge displays on the left side of the item when the element is highlighted or selected', control: 'boolean', }, leftGlyph: { options: Object.keys(glyphs), control: { type: 'select' }, }, rightGlyph: { options: Object.keys(glyphs), control: { type: 'select' }, }, description: { control: { type: 'text' }, }, as: storybookArgTypes.as, }, } satisfies StoryMetaType; export const LiveExample: StoryFn< InputOptionProps & InputOptionContentProps > = (props: InputOptionProps & InputOptionContentProps) => { const { leftGlyph, rightGlyph, description, ...rest } = props; return ( : undefined} rightGlyph={ rightGlyph ? : undefined } description={description} > Some text ); }; LiveExample.parameters = { chromatic: { disableSnapshot: true }, }; export const Generated = { render: () => <>, parameters: { generate: { combineArgs: { highlighted: [false, true], checked: [false, true], disabled: [false, true], }, }, }, } satisfies StoryObj;