src/form/form.stories.tsx (110 lines of code) (raw):

import '../input/input-legacy.css'; import './form.css'; import '../input-size/input-size.css'; import '../error-bubble/error-bubble-legacy.css'; import {type ReactNode} from 'react'; export default { title: 'Style-only/Form', parameters: { notes: 'Helps create forms with various types of controls.', }, }; declare module 'react' { namespace JSX { interface IntrinsicElements { 'rg-button': {children?: ReactNode; mode?: string}; } } } export const basic = () => ( <div style={{width: 700}}> <form className='ring-form'> <span className='ring-form__title'>Form Title</span> <div className='ring-form__group'> <label htmlFor='ring-form-1' className='ring-form__label'> Full-Width Input </label> <div className='ring-form__control'> <input className='ring-input' id='ring-form-1' type='text' /> </div> </div> <div className='ring-form__group'> <label htmlFor='ring-form-2' className='ring-form__label'> Medium Input </label> <div className='ring-form__control'> <input className='ring-input ring-input-size_m' id='ring-form-2' type='text' /> </div> </div> <div className='ring-form__group'> <label htmlFor='ring-form-3' className='ring-form__label'> Medium Input & Error </label> <div className='ring-form__control'> <input className='ring-input ring-input_error ring-input-size_m' id='ring-form-3' type='text' /> <div className='ring-error-bubble active'>Error bubble</div> </div> </div> <div className='ring-form__group'> <label htmlFor='ring-form-4' className='ring-form__label'> Long Input </label> <div className='ring-form__control'> <input className='ring-input ring-input-size_l' id='ring-form-4' type='text' /> <div className='ring-error-bubble active'>Error bubble for a long control</div> </div> </div> <div className='ring-form__group'> <label htmlFor='ring-form-5' className='ring-form__label'> Full-Width Control </label> <div className='ring-form__control'> <input className='ring-input' id='ring-form-5' type='text' /> <div className='ring-error-bubble active'>Error bubble for a full-width control</div> </div> </div> <div className='ring-form__group'> <label htmlFor='ring-form-7' className='ring-form__label'> Textarea </label> <div className='ring-form__control'> <textarea className='ring-input ring-input-size_m' id='ring-form-7' /> </div> </div> <div className='ring-form__group'> <label htmlFor='ring-form-8' className='ring-form__label'> Long Textarea </label> <div className='ring-form__control'> <textarea className='ring-input ring-input-size_l' id='ring-form-8' /> </div> </div> <div className='ring-form__group'> <label htmlFor='ring-form-9' className='ring-form__label'> Full-Width Textarea </label> <div className='ring-form__control'> <textarea className='ring-input' id='ring-form-9' /> </div> </div> <div className='ring-form__group'> <label htmlFor='ring-form-11' className='ring-form__label'> Input in a small container </label> <div className='ring-form__control ring-form__control_small'> <input className='ring-input ring-input-size_m' id='ring-form-11' type='text' /> </div> </div> <div className='ring-form__group'> <label htmlFor='ring-form-12' className='ring-form__label'> Textarea in a small container </label> <div className='ring-form__control ring-form__control_small'> <textarea className='ring-input ring-input-size_m' id='ring-form-12' /> </div> </div> <div className='ring-form__footer'> <rg-button mode='primary'>Save</rg-button> <rg-button>Cancel</rg-button> </div> </form> </div> ); basic.storyName = 'Form';