import React from "react"; import TextField from "../TextField"; import { createStoryMetaSettingsDecorator } from "../../../storybook"; import { createComponentTemplate } from "vibe-storybook-components"; import { Check, CloseSmall, Email, Show, Duplicate } from "../../Icon/Icons"; import "./TextField.stories.scss"; import { Meta, StoryObj } from "@storybook/react"; import { Heading } from "../../../next/next"; type Story = StoryObj; const metaSettings = createStoryMetaSettingsDecorator({ component: TextField, enumPropNamesArray: ["type", "size"], iconPropNamesArray: ["secondaryIconName", "iconName", "labelIconName"] }); export default { title: "Inputs/TextField", component: TextField, argTypes: metaSettings.argTypes, decorators: metaSettings.decorators } satisfies Meta; const textFieldTemplate = createComponentTemplate(TextField); export const Overview: Story = { render: textFieldTemplate.bind({}), args: { title: "Name", iconName: Show, validation: { text: "Helper text" }, wrapperClassName: "monday-storybook-text-field_size", showCharCount: true, placeholder: "Placeholder text here" }, parameters: { controls: { // TODO: remove exclusion when prop is removed in next major exclude: ["withReadOnlyStyle"] }, docs: { liveEdit: { isEnabled: false } } } }; export const Sizes: Story = { render: () => (
) }; export const States: Story = { render: () => (
{}} size={TextField.sizes.MEDIUM} />
), parameters: { docs: { liveEdit: { scope: { Email, Check, CloseSmall } } } } }; export const Validation: Story = { render: () => (
) }; export const TextFieldInAForm: Story = { render: () => (
Dark Mode Feedback From
), name: "Text field in a form" }; export const InputFieldWithPlaceholderText: Story = { render: () => (
), parameters: { docs: { liveEdit: { scope: { Email } } } }, name: "Input field with placeholder text" }; export const RequiredInputField: Story = { render: () => (
), name: "Required input field" }; export const InputFieldWithDate: Story = { render: () => (
), name: "Input field with date" }; export const InputFieldWithDateAndTime: Story = { render: () => (
), name: "Input field with date and time" };