// Mockup https://www.figma.com/design/zsq2ahat30acTnumyy9aqC/00.Small-System?node-id=1235-18586&m=dev
import { html, nothing } from "lit";
import type { Meta, StoryObj } from "@storybook/web-components";
import {
TemsInputField,
type TemsInputFieldProps,
} from "@components/forms/ui/tems-input-field";
import "~icons/heroicons-outline/selector";
const ICON_OPTION_SELECTOR = html``;
const meta: Meta = {
title: "components/forms/ui/tems-input-field",
tags: ["autodocs", "!dev", "Atoms"],
render: (args) => {
new TemsInputField();
return html``;
},
args: {
value: undefined,
label: undefined,
size: undefined,
icon: undefined,
disabled: false,
status: undefined,
},
argTypes: {
value: { control: "text" },
label: { control: "text", description: "Placeholder text" },
size: {
control: {
type: "select",
labels: { md: "Medium", sm: "Small", lg: "Large" },
},
table: {
defaultValue: { summary: "md" },
},
options: ["sm", "md", "lg"],
},
status: {
control: "text",
table: {
defaultValue: { summary: "undefined" },
},
description: "undefined/true/false/custom message",
},
icon: {
control: {
type: "select",
labels: { undefined: "Default icon", "[object Object]": "Sample icon" },
},
table: { defaultValue: { summary: "mingcute:search-3-line" } },
options: [undefined, ICON_OPTION_SELECTOR],
},
disabled: {
control: "boolean",
table: { defaultValue: { summary: "false" } },
},
},
};
export default meta;
export type TemsInputFieldStory = StoryObj;
export const Default: TemsInputFieldStory = {
args: {
label: "Label",
size: "md",
icon: undefined,
value: "",
},
};
export const Filled: TemsInputFieldStory = {
args: {
label: "Label",
size: "md",
icon: undefined,
value: "Some text",
},
};
export const Success: TemsInputFieldStory = {
args: {
label: "Label",
size: "md",
status: "true",
icon: undefined,
},
};
export const SuccessFilled: TemsInputFieldStory = {
args: {
label: "Label",
size: "md",
status: "true",
icon: undefined,
value: "Some text",
},
};
export const Errored: TemsInputFieldStory = {
args: {
label: "Label",
size: "md",
status: "false",
icon: undefined,
},
};
export const ErroredFilled: TemsInputFieldStory = {
args: {
label: "Label",
size: "md",
status: "false",
icon: undefined,
value: "Some text",
},
};