import type { CSSProperties } from 'react'; import React, { useCallback } from 'react'; import { VisuallyHidden } from 'react-aria'; import { Button as RACButton } from 'react-aria-components'; import type { Meta, StoryObj } from '@storybook/react-vite'; import { Button } from '../../Button/Button'; import { FormRow } from '../../FormRow/FormRow'; import { Grid } from '../../Grid/Grid'; import { PasswordInput } from '../../Inputs/PasswordInput/PasswordInput'; import { getTextInputClassName } from '../../Inputs/TextInput/TextInput'; import { Spacer } from '../../Spacer/Spacer'; import type { InputDialogProps } from './InputDialog'; import { InputDialog } from './InputDialog'; const meta: Meta = { title: 'UI kit/Form/Inputs/InputDialog', component: InputDialog, tags: ['autodocs'], argTypes: { children: { control: { disable: true } }, trigger: { control: { disable: true } }, }, }; export default meta; type Story = StoryObj; const triggerAsInputOverrideStyle: CSSProperties = { minWidth: '220px', textTransform: 'unset', textAlign: 'left', }; const triggerAsInputPlaceholderStyle: CSSProperties = { color: 'var(--colors-foregrounds-content-tertiary) !important', }; function ExampleDialogInput(args: InputDialogProps) { const [value, setValue] = React.useState(''); const [isOpen, setIsOpen] = React.useState(false); return ( setIsOpen(true)} className={getTextInputClassName({ error: undefined, warning: undefined, width: undefined })} style={{ ...triggerAsInputOverrideStyle, ...(value ? {} : triggerAsInputPlaceholderStyle), }} > {value.replaceAll(/\w/g, '•') || 'Enter value...'} } label={args.label} closeButtonLabel={args.closeButtonLabel} > ); } export const Default: Story = { args: { label: 'PIN', }, render: ExampleDialogInput, };