aural-ui 2.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +456 -0
- package/dist/components/aspect-ratio/AspectRatio.stories.tsx +1327 -0
- package/dist/components/aspect-ratio/index.tsx +10 -0
- package/dist/components/aspect-ratio/meta.ts +8 -0
- package/dist/components/avatar/Avatar.stories.tsx +645 -0
- package/dist/components/avatar/index.tsx +50 -0
- package/dist/components/avatar/meta.ts +8 -0
- package/dist/components/badge/Badge.stories.tsx +169 -0
- package/dist/components/badge/index.tsx +28 -0
- package/dist/components/badge/meta.ts +6 -0
- package/dist/components/banner/Banner.stories.tsx +475 -0
- package/dist/components/banner/index.tsx +256 -0
- package/dist/components/banner/meta.ts +36 -0
- package/dist/components/button/Button.stories.tsx +74 -0
- package/dist/components/button/index.tsx +158 -0
- package/dist/components/button/meta.ts +33 -0
- package/dist/components/card/Card.stories.tsx +377 -0
- package/dist/components/card/index.tsx +85 -0
- package/dist/components/card/meta.ts +14 -0
- package/dist/components/char-count/CharCount.stories.tsx +334 -0
- package/dist/components/char-count/index.tsx +51 -0
- package/dist/components/char-count/meta.ts +13 -0
- package/dist/components/checkbox/Checkbox.stories.tsx +209 -0
- package/dist/components/checkbox/index.tsx +34 -0
- package/dist/components/checkbox/meta.ts +19 -0
- package/dist/components/chip/Chip.stories.tsx +207 -0
- package/dist/components/chip/index.tsx +92 -0
- package/dist/components/chip/meta.ts +17 -0
- package/dist/components/circular-loader/CircularLoader.stories.tsx +741 -0
- package/dist/components/circular-loader/index.tsx +138 -0
- package/dist/components/circular-loader/meta.ts +11 -0
- package/dist/components/collapsible/Collapsible.stories.tsx +319 -0
- package/dist/components/collapsible/index.tsx +158 -0
- package/dist/components/collapsible/meta.ts +22 -0
- package/dist/components/command/Command.stories.tsx +996 -0
- package/dist/components/command/index.tsx +324 -0
- package/dist/components/command/meta.ts +18 -0
- package/dist/components/dialog/Dialog.stories.tsx +963 -0
- package/dist/components/dialog/index.tsx +250 -0
- package/dist/components/dialog/meta.ts +28 -0
- package/dist/components/divider/Divider.stories.tsx +633 -0
- package/dist/components/divider/index.tsx +181 -0
- package/dist/components/divider/meta.ts +12 -0
- package/dist/components/dot-loader/DotLoader.stories.tsx +352 -0
- package/dist/components/dot-loader/index.tsx +78 -0
- package/dist/components/dot-loader/meta.ts +14 -0
- package/dist/components/dropdown/Dropdown.stories.tsx +1210 -0
- package/dist/components/dropdown/index.tsx +479 -0
- package/dist/components/dropdown/meta.ts +21 -0
- package/dist/components/form/Form.stories.tsx +320 -0
- package/dist/components/form/index.tsx +183 -0
- package/dist/components/form/meta.ts +11 -0
- package/dist/components/helper-text/HelperText.stories.tsx +254 -0
- package/dist/components/helper-text/index.tsx +102 -0
- package/dist/components/helper-text/meta.ts +18 -0
- package/dist/components/hover-card/HoverCard.stories.tsx +1328 -0
- package/dist/components/hover-card/index.tsx +42 -0
- package/dist/components/hover-card/meta.ts +12 -0
- package/dist/components/icon-button/IconButton.stories.tsx +252 -0
- package/dist/components/icon-button/index.tsx +130 -0
- package/dist/components/icon-button/meta.ts +20 -0
- package/dist/components/if-else/if-else.stories.tsx +100 -0
- package/dist/components/if-else/index.tsx +56 -0
- package/dist/components/if-else/meta.ts +6 -0
- package/dist/components/index.ts +70 -0
- package/dist/components/input/Input.stories.tsx +431 -0
- package/dist/components/input/index.tsx +487 -0
- package/dist/components/input/meta.ts +28 -0
- package/dist/components/label/Label.stories.tsx +200 -0
- package/dist/components/label/index.tsx +43 -0
- package/dist/components/label/meta.ts +14 -0
- package/dist/components/list/List.stories.tsx +963 -0
- package/dist/components/list/index.tsx +567 -0
- package/dist/components/list/meta.ts +24 -0
- package/dist/components/marquee/Marquee.stories.tsx +819 -0
- package/dist/components/marquee/index.tsx +107 -0
- package/dist/components/marquee/meta.ts +6 -0
- package/dist/components/overlay/Overlay.stories.tsx +954 -0
- package/dist/components/overlay/index.tsx +58 -0
- package/dist/components/overlay/meta.ts +10 -0
- package/dist/components/pagination/Pagination.stories.tsx +354 -0
- package/dist/components/pagination/index.tsx +455 -0
- package/dist/components/pagination/meta.ts +29 -0
- package/dist/components/popover/Popover.stories.tsx +1037 -0
- package/dist/components/popover/index.tsx +67 -0
- package/dist/components/popover/meta.ts +12 -0
- package/dist/components/radio/Radio.stories.tsx +146 -0
- package/dist/components/radio/index.tsx +41 -0
- package/dist/components/radio/meta.ts +19 -0
- package/dist/components/resizable/Resizable.stories.tsx +866 -0
- package/dist/components/resizable/index.tsx +55 -0
- package/dist/components/resizable/meta.ts +12 -0
- package/dist/components/scroll-area/ScrollArea.stories.tsx +1104 -0
- package/dist/components/scroll-area/index.tsx +55 -0
- package/dist/components/scroll-area/meta.ts +8 -0
- package/dist/components/search/Search.stories.tsx +678 -0
- package/dist/components/search/index.tsx +141 -0
- package/dist/components/search/meta.ts +6 -0
- package/dist/components/select/Select.stories.tsx +962 -0
- package/dist/components/select/index.tsx +512 -0
- package/dist/components/select/meta.ts +40 -0
- package/dist/components/sheet/Sheet.stories.tsx +1060 -0
- package/dist/components/sheet/index.tsx +440 -0
- package/dist/components/sheet/meta.ts +38 -0
- package/dist/components/skelton/Skelton.stories.tsx +859 -0
- package/dist/components/skelton/index.tsx +17 -0
- package/dist/components/skelton/meta.ts +6 -0
- package/dist/components/slider/Slider.stories.tsx +876 -0
- package/dist/components/slider/index.tsx +156 -0
- package/dist/components/slider/meta.ts +29 -0
- package/dist/components/stepper/Stepper.stories.tsx +639 -0
- package/dist/components/stepper/index.tsx +650 -0
- package/dist/components/stepper/meta.ts +19 -0
- package/dist/components/switch/Switch.stories.tsx +85 -0
- package/dist/components/switch/index.tsx +37 -0
- package/dist/components/switch/meta.ts +24 -0
- package/dist/components/switch-case/SwitchCase.stories.tsx +209 -0
- package/dist/components/switch-case/index.tsx +89 -0
- package/dist/components/switch-case/meta.ts +6 -0
- package/dist/components/table/Table.stories.tsx +1095 -0
- package/dist/components/table/index.tsx +113 -0
- package/dist/components/table/meta.ts +20 -0
- package/dist/components/tabs/Tabs.stories.tsx +1379 -0
- package/dist/components/tabs/index.tsx +186 -0
- package/dist/components/tabs/meta.ts +25 -0
- package/dist/components/tag/Tag.stories.tsx +625 -0
- package/dist/components/tag/index.tsx +320 -0
- package/dist/components/tag/meta.ts +52 -0
- package/dist/components/textarea/TextArea.stories.tsx +723 -0
- package/dist/components/textarea/index.tsx +480 -0
- package/dist/components/textarea/meta.ts +23 -0
- package/dist/components/toast/Toast.stories.tsx +1427 -0
- package/dist/components/toast/index.tsx +26 -0
- package/dist/components/toast/meta.ts +19 -0
- package/dist/components/toggle/Toggle.stories.tsx +1093 -0
- package/dist/components/toggle/index.tsx +44 -0
- package/dist/components/toggle/meta.ts +19 -0
- package/dist/components/tooltip/Tooltip.stories.tsx +1548 -0
- package/dist/components/tooltip/index.tsx +304 -0
- package/dist/components/tooltip/meta.ts +21 -0
- package/dist/components/typography/Typography.stories.tsx +197 -0
- package/dist/components/typography/index.tsx +184 -0
- package/dist/components/typography/meta.ts +38 -0
- package/dist/fonts/LabGrotesque-Regular.ttf +0 -0
- package/dist/fonts/LabGrotesqueTRIAL-Bold.otf +0 -0
- package/dist/fonts/LabGrotesqueTRIAL-Light.otf +0 -0
- package/dist/fonts/LabGrotesqueTRIAL-Medium.otf +0 -0
- package/dist/fonts/LabGrotesqueTRIAL-Regular.otf +0 -0
- package/dist/fonts/PPSupplySans-Regular (1).otf +0 -0
- package/dist/fonts/PPSupplySans-Regular.otf +0 -0
- package/dist/fonts/PPSupplySans-Ultralight.otf +0 -0
- package/dist/hooks/index.ts +3 -0
- package/dist/hooks/use-previous/UsePrevious.stories.tsx +997 -0
- package/dist/hooks/use-previous/index.ts +15 -0
- package/dist/hooks/use-previous/meta.ts +6 -0
- package/dist/hooks/use-standalone-pagination/UseStandalonePagination.stories.tsx +983 -0
- package/dist/hooks/use-standalone-pagination/index.ts +146 -0
- package/dist/hooks/use-standalone-pagination/meta.ts +6 -0
- package/dist/icons/Icons.stories.tsx +29 -0
- package/dist/icons/alert-icon/AlertIcon.stories.tsx +991 -0
- package/dist/icons/alert-icon/index.tsx +48 -0
- package/dist/icons/alert-icon/meta.ts +8 -0
- package/dist/icons/all-icons.tsx +738 -0
- package/dist/icons/angle-down-icon/AngleDownIcon.stories.tsx +1031 -0
- package/dist/icons/angle-down-icon/index.tsx +25 -0
- package/dist/icons/angle-down-icon/meta.ts +8 -0
- package/dist/icons/arrow-box-left-icon/ArrowBoxLeftIcon.stories.tsx +1080 -0
- package/dist/icons/arrow-box-left-icon/index.tsx +24 -0
- package/dist/icons/arrow-box-left-icon/meta.ts +8 -0
- package/dist/icons/arrow-right-icon/ArrowRightIcon.stories.tsx +1151 -0
- package/dist/icons/arrow-right-icon/index.tsx +26 -0
- package/dist/icons/arrow-right-icon/meta.ts +8 -0
- package/dist/icons/arrow-right-up-icon/ArrowRightUpIcon.stories.tsx +1273 -0
- package/dist/icons/arrow-right-up-icon/index.tsx +24 -0
- package/dist/icons/arrow-right-up-icon/meta.ts +8 -0
- package/dist/icons/art-board-icon/ArtBoardIcon.stories.tsx +670 -0
- package/dist/icons/art-board-icon/index.tsx +24 -0
- package/dist/icons/art-board-icon/meta.ts +7 -0
- package/dist/icons/audio-bar-icon/AudioBarIcon.stories.tsx +1244 -0
- package/dist/icons/audio-bar-icon/index.tsx +19 -0
- package/dist/icons/audio-bar-icon/meta.ts +8 -0
- package/dist/icons/bubble-check-icon/BubbleCheckIcon.stories.tsx +1239 -0
- package/dist/icons/bubble-check-icon/index.tsx +24 -0
- package/dist/icons/bubble-check-icon/meta.ts +8 -0
- package/dist/icons/bubble-crossed-icon/BubbleCrossedIcon.stories.tsx +1228 -0
- package/dist/icons/bubble-crossed-icon/index.tsx +24 -0
- package/dist/icons/bubble-crossed-icon/meta.ts +8 -0
- package/dist/icons/bubble-sparkle-icon/BubbleSparkleIcon.stories.tsx +912 -0
- package/dist/icons/bubble-sparkle-icon/index.tsx +26 -0
- package/dist/icons/bubble-sparkle-icon/meta.ts +8 -0
- package/dist/icons/chevron-double-left-icon/ChevronDoubleLeftIcon.stories.tsx +1021 -0
- package/dist/icons/chevron-double-left-icon/index.tsx +34 -0
- package/dist/icons/chevron-double-left-icon/meta.ts +8 -0
- package/dist/icons/chevron-double-right-icon/ChevronDoubleRightIcon.stories.tsx +1021 -0
- package/dist/icons/chevron-double-right-icon/index.tsx +34 -0
- package/dist/icons/chevron-double-right-icon/meta.ts +8 -0
- package/dist/icons/chevron-down-icon/ChevronDownIcon.stories.tsx +1001 -0
- package/dist/icons/chevron-down-icon/index.tsx +27 -0
- package/dist/icons/chevron-down-icon/meta.ts +8 -0
- package/dist/icons/chevron-left-icon/ChevronLeftIcon.stories.tsx +1029 -0
- package/dist/icons/chevron-left-icon/index.tsx +27 -0
- package/dist/icons/chevron-left-icon/meta.ts +8 -0
- package/dist/icons/chevron-right-icon/ChevronRightIcon.stories.tsx +1021 -0
- package/dist/icons/chevron-right-icon/index.tsx +27 -0
- package/dist/icons/chevron-right-icon/meta.ts +8 -0
- package/dist/icons/chevron-up-icon/ChevronUpIcon.stories.tsx +1036 -0
- package/dist/icons/chevron-up-icon/index.tsx +27 -0
- package/dist/icons/chevron-up-icon/meta.ts +8 -0
- package/dist/icons/command-icon/CommandIcon.stories.tsx +1098 -0
- package/dist/icons/command-icon/index.tsx +24 -0
- package/dist/icons/command-icon/meta.ts +8 -0
- package/dist/icons/cross-circle-icon/CrossCircleIcon.stories.tsx +1061 -0
- package/dist/icons/cross-circle-icon/index.tsx +23 -0
- package/dist/icons/cross-circle-icon/meta.ts +8 -0
- package/dist/icons/cross-icon/CrossIcon.stories.tsx +1027 -0
- package/dist/icons/cross-icon/index.tsx +24 -0
- package/dist/icons/cross-icon/meta.ts +8 -0
- package/dist/icons/edit-big-icon/EditBigIcon.stories.tsx +1092 -0
- package/dist/icons/edit-big-icon/index.tsx +22 -0
- package/dist/icons/edit-big-icon/meta.ts +8 -0
- package/dist/icons/eye-close-icon/EyeCloseIcon.stories.tsx +1090 -0
- package/dist/icons/eye-close-icon/index.tsx +26 -0
- package/dist/icons/eye-close-icon/meta.ts +8 -0
- package/dist/icons/eye-open-icon/EyeOpenIcon.stories.tsx +1098 -0
- package/dist/icons/eye-open-icon/index.tsx +24 -0
- package/dist/icons/eye-open-icon/meta.ts +8 -0
- package/dist/icons/feature-shine-icon/FeatureShineIcon.stories.tsx +1071 -0
- package/dist/icons/feature-shine-icon/index.tsx +29 -0
- package/dist/icons/feature-shine-icon/meta.ts +8 -0
- package/dist/icons/file-chart-icon/FileChartIcon.stories.tsx +1115 -0
- package/dist/icons/file-chart-icon/index.tsx +24 -0
- package/dist/icons/file-chart-icon/meta.ts +8 -0
- package/dist/icons/file-text-icon/FileTextIcon.stories.tsx +668 -0
- package/dist/icons/file-text-icon/index.tsx +24 -0
- package/dist/icons/file-text-icon/meta.ts +8 -0
- package/dist/icons/grip-vertical-icon/GripVerticalIcon.stories.tsx +1239 -0
- package/dist/icons/grip-vertical-icon/index.tsx +28 -0
- package/dist/icons/grip-vertical-icon/meta.ts +8 -0
- package/dist/icons/image-icon/ImageIcon.stories.tsx +1181 -0
- package/dist/icons/image-icon/index.tsx +24 -0
- package/dist/icons/image-icon/meta.ts +8 -0
- package/dist/icons/import-folder-icon/ImportFolderIcon.stories.tsx +1248 -0
- package/dist/icons/import-folder-icon/index.tsx +22 -0
- package/dist/icons/import-folder-icon/meta.ts +8 -0
- package/dist/icons/index.ts +46 -0
- package/dist/icons/light-bulb-simple-icon/LightBulbSimpleIcon.stories.tsx +1272 -0
- package/dist/icons/light-bulb-simple-icon/index.tsx +24 -0
- package/dist/icons/light-bulb-simple-icon/meta.ts +8 -0
- package/dist/icons/magic-book-icon/MagicBookIcon.stories.tsx +1245 -0
- package/dist/icons/magic-book-icon/index.tsx +32 -0
- package/dist/icons/magic-book-icon/meta.ts +8 -0
- package/dist/icons/maintenance-icon/MaintenanceIcon.stories.tsx +1251 -0
- package/dist/icons/maintenance-icon/index.tsx +23 -0
- package/dist/icons/maintenance-icon/meta.ts +8 -0
- package/dist/icons/message-icon/MessageIcon.stories.tsx +595 -0
- package/dist/icons/message-icon/index.tsx +30 -0
- package/dist/icons/message-icon/meta.ts +8 -0
- package/dist/icons/move-horizontal-icon/MoveHorizontalIcon.stories.tsx +1245 -0
- package/dist/icons/move-horizontal-icon/index.tsx +23 -0
- package/dist/icons/move-horizontal-icon/meta.ts +8 -0
- package/dist/icons/move-vertical-icon/MoveVerticalIcon.stories.tsx +1196 -0
- package/dist/icons/move-vertical-icon/index.tsx +23 -0
- package/dist/icons/move-vertical-icon/meta.ts +8 -0
- package/dist/icons/page-search-icon/PageSearchIcon.stories.tsx +1167 -0
- package/dist/icons/page-search-icon/index.tsx +21 -0
- package/dist/icons/page-search-icon/meta.ts +8 -0
- package/dist/icons/pencil-icon/PencilIcon.stories.tsx +1131 -0
- package/dist/icons/pencil-icon/index.tsx +21 -0
- package/dist/icons/pencil-icon/meta.ts +8 -0
- package/dist/icons/plus-icon/PlusIcon.stories.tsx +1151 -0
- package/dist/icons/plus-icon/index.tsx +24 -0
- package/dist/icons/plus-icon/meta.ts +8 -0
- package/dist/icons/search-icon/SearchIcon.stories.tsx +1181 -0
- package/dist/icons/search-icon/index.tsx +24 -0
- package/dist/icons/search-icon/meta.ts +8 -0
- package/dist/icons/site-logo-icon/SiteLogoIcon.stories.tsx +1167 -0
- package/dist/icons/site-logo-icon/index.tsx +79 -0
- package/dist/icons/site-logo-icon/meta.ts +8 -0
- package/dist/icons/spinner-gradient-icon/SpinnerGradientIcon.stories.tsx +637 -0
- package/dist/icons/spinner-gradient-icon/index.tsx +53 -0
- package/dist/icons/spinner-gradient-icon/meta.ts +8 -0
- package/dist/icons/spinner-solid-icon/SpinnerSolidIcon.stories.tsx +644 -0
- package/dist/icons/spinner-solid-icon/index.tsx +59 -0
- package/dist/icons/spinner-solid-icon/meta.ts +8 -0
- package/dist/icons/spinner-solid-neutral-icon/SpinnerSolidINeutralcon.stories.tsx +736 -0
- package/dist/icons/spinner-solid-neutral-icon/index.tsx +53 -0
- package/dist/icons/spinner-solid-neutral-icon/meta.ts +8 -0
- package/dist/icons/tick-circle-icon/TickCircleIcon.stories.tsx +1204 -0
- package/dist/icons/tick-circle-icon/index.tsx +23 -0
- package/dist/icons/tick-circle-icon/meta.ts +8 -0
- package/dist/icons/tick-icon/TickIcon.stories.tsx +1340 -0
- package/dist/icons/tick-icon/index.tsx +24 -0
- package/dist/icons/tick-icon/meta.ts +8 -0
- package/dist/icons/trash-icon/TrashIcon.stories.tsx +996 -0
- package/dist/icons/trash-icon/index.tsx +24 -0
- package/dist/icons/trash-icon/meta.ts +8 -0
- package/dist/icons/upload-icon/UploadIcon.stories.tsx +947 -0
- package/dist/icons/upload-icon/index.tsx +24 -0
- package/dist/icons/upload-icon/meta.ts +8 -0
- package/dist/icons/vertical-menu-icon/VerticalMenuIcon.stories.tsx +1045 -0
- package/dist/icons/vertical-menu-icon/index.tsx +27 -0
- package/dist/icons/vertical-menu-icon/meta.ts +8 -0
- package/dist/index.d.ts +6 -0
- package/dist/index.js +206 -0
- package/dist/lib/utils.ts +6 -0
- package/dist/styles/aural-theme.css +1008 -0
- package/package.json +142 -0
|
@@ -0,0 +1,254 @@
|
|
|
1
|
+
import React from "react"
|
|
2
|
+
import type { Meta, StoryObj } from "@storybook/react"
|
|
3
|
+
|
|
4
|
+
import HelperText from "."
|
|
5
|
+
|
|
6
|
+
const meta: Meta<typeof HelperText> = {
|
|
7
|
+
title: "Components/UI/HelperText",
|
|
8
|
+
component: HelperText,
|
|
9
|
+
parameters: {
|
|
10
|
+
layout: "centered",
|
|
11
|
+
},
|
|
12
|
+
tags: ["autodocs"],
|
|
13
|
+
argTypes: {
|
|
14
|
+
variant: {
|
|
15
|
+
control: { type: "select" },
|
|
16
|
+
options: ["default", "error", "warning", "success"],
|
|
17
|
+
description:
|
|
18
|
+
"Visual style of the helper text indicating different states",
|
|
19
|
+
},
|
|
20
|
+
children: {
|
|
21
|
+
control: { type: "text" },
|
|
22
|
+
description: "The text content to display",
|
|
23
|
+
},
|
|
24
|
+
disabled: {
|
|
25
|
+
control: { type: "boolean" },
|
|
26
|
+
description: "Whether the helper text appears in a disabled state",
|
|
27
|
+
},
|
|
28
|
+
className: {
|
|
29
|
+
control: { type: "text" },
|
|
30
|
+
description: "Additional CSS classes to apply",
|
|
31
|
+
},
|
|
32
|
+
id: {
|
|
33
|
+
control: { type: "text" },
|
|
34
|
+
description: "HTML id attribute for accessibility",
|
|
35
|
+
},
|
|
36
|
+
},
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
export default meta
|
|
40
|
+
type Story = StoryObj<typeof meta>
|
|
41
|
+
|
|
42
|
+
export const Default: Story = {
|
|
43
|
+
args: {
|
|
44
|
+
variant: "default",
|
|
45
|
+
children: "This is helpful information about the field above.",
|
|
46
|
+
disabled: false,
|
|
47
|
+
},
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
export const Error: Story = {
|
|
51
|
+
args: {
|
|
52
|
+
variant: "error",
|
|
53
|
+
children: "This field contains an error that needs to be fixed.",
|
|
54
|
+
disabled: false,
|
|
55
|
+
},
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
export const Warning: Story = {
|
|
59
|
+
args: {
|
|
60
|
+
variant: "warning",
|
|
61
|
+
children: "Please review this field before continuing.",
|
|
62
|
+
disabled: false,
|
|
63
|
+
},
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
export const Success: Story = {
|
|
67
|
+
args: {
|
|
68
|
+
variant: "success",
|
|
69
|
+
children: "This field has been validated successfully.",
|
|
70
|
+
disabled: false,
|
|
71
|
+
},
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
export const Disabled: Story = {
|
|
75
|
+
args: {
|
|
76
|
+
variant: "default",
|
|
77
|
+
children: "This helper text is in a disabled state.",
|
|
78
|
+
disabled: true,
|
|
79
|
+
},
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
export const LongText: Story = {
|
|
83
|
+
args: {
|
|
84
|
+
variant: "default",
|
|
85
|
+
children:
|
|
86
|
+
"This is a longer helper text that demonstrates how the component handles more extensive content that might wrap to multiple lines in certain layouts.",
|
|
87
|
+
disabled: false,
|
|
88
|
+
},
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
export const WithCustomClassName: Story = {
|
|
92
|
+
args: {
|
|
93
|
+
variant: "default",
|
|
94
|
+
children: "Helper text with custom styling.",
|
|
95
|
+
className: "!text-blue-600 font-semibold",
|
|
96
|
+
disabled: false,
|
|
97
|
+
},
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
// Showcase all variants together
|
|
101
|
+
export const AllVariants: Story = {
|
|
102
|
+
render: () => (
|
|
103
|
+
<div className="w-96 space-y-4">
|
|
104
|
+
<div>
|
|
105
|
+
<h3 className="mb-2 text-sm font-medium">Default</h3>
|
|
106
|
+
<HelperText variant="default">
|
|
107
|
+
This is helpful information about the field above.
|
|
108
|
+
</HelperText>
|
|
109
|
+
</div>
|
|
110
|
+
|
|
111
|
+
<div>
|
|
112
|
+
<h3 className="mb-2 text-sm font-medium">Error</h3>
|
|
113
|
+
<HelperText variant="error">
|
|
114
|
+
This field contains an error that needs to be fixed.
|
|
115
|
+
</HelperText>
|
|
116
|
+
</div>
|
|
117
|
+
|
|
118
|
+
<div>
|
|
119
|
+
<h3 className="mb-2 text-sm font-medium">Warning</h3>
|
|
120
|
+
<HelperText variant="warning">
|
|
121
|
+
Please review this field before continuing.
|
|
122
|
+
</HelperText>
|
|
123
|
+
</div>
|
|
124
|
+
|
|
125
|
+
<div>
|
|
126
|
+
<h3 className="mb-2 text-sm font-medium">Success</h3>
|
|
127
|
+
<HelperText variant="success">
|
|
128
|
+
This field has been validated successfully.
|
|
129
|
+
</HelperText>
|
|
130
|
+
</div>
|
|
131
|
+
|
|
132
|
+
<div>
|
|
133
|
+
<h3 className="mb-2 text-sm font-medium">Disabled</h3>
|
|
134
|
+
<HelperText variant="default" disabled>
|
|
135
|
+
This helper text is in a disabled state.
|
|
136
|
+
</HelperText>
|
|
137
|
+
</div>
|
|
138
|
+
</div>
|
|
139
|
+
),
|
|
140
|
+
}
|
|
141
|
+
|
|
142
|
+
// Interactive examples with form fields
|
|
143
|
+
export const WithFormField: Story = {
|
|
144
|
+
render: () => (
|
|
145
|
+
<div className="w-96 space-y-6">
|
|
146
|
+
<div>
|
|
147
|
+
<label className="mb-2 block text-sm font-medium">Email Address</label>
|
|
148
|
+
<input
|
|
149
|
+
type="email"
|
|
150
|
+
className="w-full rounded-md border border-gray-300 px-3 py-2 focus:ring-2 focus:ring-blue-500 focus:outline-none"
|
|
151
|
+
placeholder="Enter your email"
|
|
152
|
+
/>
|
|
153
|
+
<div className="mt-1">
|
|
154
|
+
<HelperText variant="default">
|
|
155
|
+
We'll never share your email with anyone else.
|
|
156
|
+
</HelperText>
|
|
157
|
+
</div>
|
|
158
|
+
</div>
|
|
159
|
+
|
|
160
|
+
<div>
|
|
161
|
+
<label className="mb-2 block text-sm font-medium">Password</label>
|
|
162
|
+
<input
|
|
163
|
+
type="password"
|
|
164
|
+
className="w-full rounded-md border border-red-300 px-3 py-2 focus:ring-2 focus:ring-red-500 focus:outline-none"
|
|
165
|
+
placeholder="Enter your password"
|
|
166
|
+
/>
|
|
167
|
+
<div className="mt-1">
|
|
168
|
+
<HelperText variant="error">
|
|
169
|
+
Password must be at least 8 characters long.
|
|
170
|
+
</HelperText>
|
|
171
|
+
</div>
|
|
172
|
+
</div>
|
|
173
|
+
|
|
174
|
+
<div>
|
|
175
|
+
<label className="mb-2 block text-sm font-medium">Username</label>
|
|
176
|
+
<input
|
|
177
|
+
type="text"
|
|
178
|
+
className="w-full rounded-md border border-yellow-300 px-3 py-2 focus:ring-2 focus:ring-yellow-500 focus:outline-none"
|
|
179
|
+
placeholder="Enter your username"
|
|
180
|
+
value="john123"
|
|
181
|
+
/>
|
|
182
|
+
<div className="mt-1">
|
|
183
|
+
<HelperText variant="warning">
|
|
184
|
+
This username is already taken. Consider adding numbers.
|
|
185
|
+
</HelperText>
|
|
186
|
+
</div>
|
|
187
|
+
</div>
|
|
188
|
+
|
|
189
|
+
<div>
|
|
190
|
+
<label className="mb-2 block text-sm font-medium">Display Name</label>
|
|
191
|
+
<input
|
|
192
|
+
type="text"
|
|
193
|
+
className="w-full rounded-md border border-green-300 px-3 py-2 focus:ring-2 focus:ring-green-500 focus:outline-none"
|
|
194
|
+
placeholder="Enter your display name"
|
|
195
|
+
value="John Doe"
|
|
196
|
+
/>
|
|
197
|
+
<div className="mt-1">
|
|
198
|
+
<HelperText variant="success">
|
|
199
|
+
Perfect! This display name is available.
|
|
200
|
+
</HelperText>
|
|
201
|
+
</div>
|
|
202
|
+
</div>
|
|
203
|
+
</div>
|
|
204
|
+
),
|
|
205
|
+
}
|
|
206
|
+
|
|
207
|
+
export const AccessibilityExample: Story = {
|
|
208
|
+
render: () => (
|
|
209
|
+
<div className="w-96 space-y-4">
|
|
210
|
+
<div>
|
|
211
|
+
<label
|
|
212
|
+
htmlFor="accessible-input"
|
|
213
|
+
className="mb-2 block text-sm font-medium"
|
|
214
|
+
>
|
|
215
|
+
Email Address *
|
|
216
|
+
</label>
|
|
217
|
+
<input
|
|
218
|
+
id="accessible-input"
|
|
219
|
+
type="email"
|
|
220
|
+
className="w-full rounded-md border border-gray-300 px-3 py-2 focus:ring-2 focus:ring-blue-500 focus:outline-none"
|
|
221
|
+
placeholder="Enter your email"
|
|
222
|
+
aria-describedby="email-helper"
|
|
223
|
+
required
|
|
224
|
+
/>
|
|
225
|
+
<div className="mt-1">
|
|
226
|
+
<HelperText variant="default" id="email-helper">
|
|
227
|
+
We'll use this email to send you important account updates.
|
|
228
|
+
</HelperText>
|
|
229
|
+
</div>
|
|
230
|
+
</div>
|
|
231
|
+
|
|
232
|
+
<div>
|
|
233
|
+
<label htmlFor="error-input" className="mb-2 block text-sm font-medium">
|
|
234
|
+
Password *
|
|
235
|
+
</label>
|
|
236
|
+
<input
|
|
237
|
+
id="error-input"
|
|
238
|
+
type="password"
|
|
239
|
+
className="w-full rounded-md border border-red-300 px-3 py-2 focus:ring-2 focus:ring-red-500 focus:outline-none"
|
|
240
|
+
placeholder="Enter your password"
|
|
241
|
+
aria-describedby="password-error"
|
|
242
|
+
aria-invalid="true"
|
|
243
|
+
required
|
|
244
|
+
/>
|
|
245
|
+
<div className="mt-1">
|
|
246
|
+
<HelperText variant="error" id="password-error">
|
|
247
|
+
Password must contain at least one uppercase letter, one lowercase
|
|
248
|
+
letter, and one number.
|
|
249
|
+
</HelperText>
|
|
250
|
+
</div>
|
|
251
|
+
</div>
|
|
252
|
+
</div>
|
|
253
|
+
),
|
|
254
|
+
}
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
import React, { forwardRef, ReactNode } from "react"
|
|
2
|
+
import { Case, Default, SwitchCase } from "@components/switch-case"
|
|
3
|
+
import { Tag } from "@components/tag"
|
|
4
|
+
import { AlertIcon } from "@icons/alert-icon"
|
|
5
|
+
import { CrossCircleIcon } from "@icons/cross-circle-icon"
|
|
6
|
+
import { TickCircleIcon } from "@icons/tick-circle-icon"
|
|
7
|
+
import { cn } from "@lib/utils"
|
|
8
|
+
|
|
9
|
+
type HelperTextVariant = "default" | "error" | "warning" | "success"
|
|
10
|
+
|
|
11
|
+
interface HelperTextProps {
|
|
12
|
+
variant: HelperTextVariant
|
|
13
|
+
className?: string
|
|
14
|
+
children: ReactNode
|
|
15
|
+
disabled?: boolean
|
|
16
|
+
id?: string
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
const HelperText = forwardRef<HTMLSpanElement, HelperTextProps>(
|
|
20
|
+
({ variant, className = "", children, disabled, id }, ref) => {
|
|
21
|
+
return (
|
|
22
|
+
<SwitchCase value={variant}>
|
|
23
|
+
<Case value="error">
|
|
24
|
+
<Tag
|
|
25
|
+
className={cn("w-full justify-normal normal-case", className)}
|
|
26
|
+
ref={ref}
|
|
27
|
+
variant="system"
|
|
28
|
+
leftIcon={
|
|
29
|
+
<span className="inline-block w-4">
|
|
30
|
+
<CrossCircleIcon color="var(--color-fm-icon-negative)" />
|
|
31
|
+
</span>
|
|
32
|
+
}
|
|
33
|
+
size="sm"
|
|
34
|
+
color="negative"
|
|
35
|
+
id={id}
|
|
36
|
+
>
|
|
37
|
+
{children}
|
|
38
|
+
</Tag>
|
|
39
|
+
</Case>
|
|
40
|
+
<Case value="warning">
|
|
41
|
+
<Tag
|
|
42
|
+
className={cn("w-full justify-normal normal-case", className)}
|
|
43
|
+
ref={ref}
|
|
44
|
+
variant="system"
|
|
45
|
+
leftIcon={
|
|
46
|
+
<span className="inline-block w-4">
|
|
47
|
+
<AlertIcon color="var(--color-fm-icon-contrast)" />
|
|
48
|
+
</span>
|
|
49
|
+
}
|
|
50
|
+
size="sm"
|
|
51
|
+
color="warning"
|
|
52
|
+
id={id}
|
|
53
|
+
>
|
|
54
|
+
{children}
|
|
55
|
+
</Tag>
|
|
56
|
+
</Case>
|
|
57
|
+
<Case value="success">
|
|
58
|
+
<Tag
|
|
59
|
+
className={cn("w-full justify-normal normal-case", className)}
|
|
60
|
+
ref={ref}
|
|
61
|
+
variant="system"
|
|
62
|
+
leftIcon={
|
|
63
|
+
<span className="inline-block w-4">
|
|
64
|
+
<TickCircleIcon color="var(--color-fm-icon-positive)" />
|
|
65
|
+
</span>
|
|
66
|
+
}
|
|
67
|
+
size="sm"
|
|
68
|
+
color="positive"
|
|
69
|
+
id={id}
|
|
70
|
+
>
|
|
71
|
+
{children}
|
|
72
|
+
</Tag>
|
|
73
|
+
</Case>
|
|
74
|
+
<Default>
|
|
75
|
+
<Tag
|
|
76
|
+
className={cn(
|
|
77
|
+
"w-full justify-normal !px-0 normal-case",
|
|
78
|
+
{
|
|
79
|
+
"text-fm-inactive": disabled,
|
|
80
|
+
"text-fm-tertiary": !disabled,
|
|
81
|
+
},
|
|
82
|
+
className
|
|
83
|
+
)}
|
|
84
|
+
ref={ref}
|
|
85
|
+
variant="system"
|
|
86
|
+
emphasis="tertiary"
|
|
87
|
+
leftIcon={false}
|
|
88
|
+
size="sm"
|
|
89
|
+
id={id}
|
|
90
|
+
>
|
|
91
|
+
{children}
|
|
92
|
+
</Tag>
|
|
93
|
+
</Default>
|
|
94
|
+
</SwitchCase>
|
|
95
|
+
)
|
|
96
|
+
}
|
|
97
|
+
)
|
|
98
|
+
HelperText.displayName = "HelperText"
|
|
99
|
+
|
|
100
|
+
export default HelperText
|
|
101
|
+
export { HelperText }
|
|
102
|
+
export type { HelperTextProps, HelperTextVariant }
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
export const meta = {
|
|
2
|
+
dependencies: {},
|
|
3
|
+
devDependencies: {},
|
|
4
|
+
internalDependencies: [
|
|
5
|
+
"tag",
|
|
6
|
+
"switch-case",
|
|
7
|
+
"alert-icon",
|
|
8
|
+
"cross-circle-icon",
|
|
9
|
+
"tick-circle-icon",
|
|
10
|
+
],
|
|
11
|
+
tokens: [
|
|
12
|
+
"--color-fm-icon-warning",
|
|
13
|
+
"--color-fm-icon-negative",
|
|
14
|
+
"--color-fm-icon-positive",
|
|
15
|
+
"--color-fm-inactive",
|
|
16
|
+
"--color-fm-tertiary",
|
|
17
|
+
],
|
|
18
|
+
}
|