@phsa.tec/design-system-react 0.1.5 → 0.1.8

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.
Files changed (212) hide show
  1. package/README.md +390 -209
  2. package/dist/index.d.mts +485 -0
  3. package/dist/index.d.ts +485 -0
  4. package/dist/index.js +4259 -0
  5. package/dist/index.js.map +1 -0
  6. package/dist/index.mjs +4186 -0
  7. package/dist/index.mjs.map +1 -0
  8. package/package.json +46 -6
  9. package/.eslintrc.json +0 -7
  10. package/.github/workflows/deploy-storybook.yml +0 -75
  11. package/.storybook/main.ts +0 -16
  12. package/.storybook/preview.ts +0 -15
  13. package/components.json +0 -21
  14. package/jest.config.ts +0 -25
  15. package/next.config.ts +0 -7
  16. package/postcss.config.mjs +0 -8
  17. package/public/file.svg +0 -1
  18. package/public/globe.svg +0 -1
  19. package/public/next.svg +0 -1
  20. package/public/vercel.svg +0 -1
  21. package/public/window.svg +0 -1
  22. package/src/app/columns.tsx +0 -178
  23. package/src/app/favicon.ico +0 -0
  24. package/src/app/fonts/GeistMonoVF.woff +0 -0
  25. package/src/app/fonts/GeistVF.woff +0 -0
  26. package/src/app/globals.css +0 -94
  27. package/src/app/layout.tsx +0 -35
  28. package/src/app/page.tsx +0 -7
  29. package/src/components/actions/AlertDialog/AlertDialog.tsx +0 -45
  30. package/src/components/actions/AlertDialog/alert-dialog.stories.tsx +0 -21
  31. package/src/components/actions/AlertDialog/index.ts +0 -1
  32. package/src/components/actions/Button/Button.stories.ts +0 -38
  33. package/src/components/actions/Button/Button.tsx +0 -23
  34. package/src/components/actions/Button/index.ts +0 -1
  35. package/src/components/actions/Collapsible/index.ts +0 -1
  36. package/src/components/actions/Dialog/Dialog.stories.tsx +0 -70
  37. package/src/components/actions/Dialog/Dialog.tsx +0 -87
  38. package/src/components/actions/Dialog/components/DialogWithActions/index.tsx +0 -40
  39. package/src/components/actions/Dialog/index.ts +0 -1
  40. package/src/components/actions/Steps/Steps.stories.tsx +0 -25
  41. package/src/components/actions/Steps/Steps.tsx +0 -51
  42. package/src/components/actions/Steps/index.ts +0 -1
  43. package/src/components/actions/index.ts +0 -5
  44. package/src/components/dataDisplay/Avatar/Avatar.stories.tsx +0 -22
  45. package/src/components/dataDisplay/Avatar/Avatar.tsx +0 -21
  46. package/src/components/dataDisplay/Avatar/index.ts +0 -2
  47. package/src/components/dataDisplay/Badge/Badge.stories.tsx +0 -36
  48. package/src/components/dataDisplay/Badge/index.ts +0 -1
  49. package/src/components/dataDisplay/Card/Card.stories.tsx +0 -24
  50. package/src/components/dataDisplay/Card/Card.tsx +0 -34
  51. package/src/components/dataDisplay/Card/index.ts +0 -1
  52. package/src/components/dataDisplay/DataPairList/DataPairList.tsx +0 -56
  53. package/src/components/dataDisplay/DataPairList/data-pair-list.stories.tsx +0 -87
  54. package/src/components/dataDisplay/DataPairList/index.ts +0 -2
  55. package/src/components/dataDisplay/DataPairList/types.ts +0 -10
  56. package/src/components/dataDisplay/DropDownMenu/index.ts +0 -1
  57. package/src/components/dataDisplay/ErrorMessage/ErrorMessage.tsx +0 -6
  58. package/src/components/dataDisplay/ErrorMessage/index.ts +0 -1
  59. package/src/components/dataDisplay/Icon/Icon.stories.tsx +0 -21
  60. package/src/components/dataDisplay/Icon/Icon.tsx +0 -47
  61. package/src/components/dataDisplay/Icon/index.ts +0 -1
  62. package/src/components/dataDisplay/Icon/types.ts +0 -6
  63. package/src/components/dataDisplay/Label/Label.stories.tsx +0 -21
  64. package/src/components/dataDisplay/Label/Label.tsx +0 -10
  65. package/src/components/dataDisplay/Label/index.ts +0 -1
  66. package/src/components/dataDisplay/Table/Table.tsx +0 -173
  67. package/src/components/dataDisplay/Table/columns.tsx +0 -223
  68. package/src/components/dataDisplay/Table/components/DynamicTable/data-table-column-header.tsx +0 -72
  69. package/src/components/dataDisplay/Table/components/DynamicTable/data-table-pagination.tsx +0 -91
  70. package/src/components/dataDisplay/Table/components/DynamicTable/data-table-toolbar.tsx +0 -17
  71. package/src/components/dataDisplay/Table/components/DynamicTable/data-table-view-options.tsx +0 -58
  72. package/src/components/dataDisplay/Table/components/DynamicTable/data-table.stories.tsx +0 -118
  73. package/src/components/dataDisplay/Table/components/DynamicTable/index.tsx +0 -136
  74. package/src/components/dataDisplay/Table/components/DynamicTable/types.ts +0 -43
  75. package/src/components/dataDisplay/Table/custom/CustomTable/data-table-column-header.tsx +0 -71
  76. package/src/components/dataDisplay/Table/custom/CustomTable/data-table-faceted-filter.tsx +0 -147
  77. package/src/components/dataDisplay/Table/custom/CustomTable/data-table-pagination.tsx +0 -97
  78. package/src/components/dataDisplay/Table/custom/CustomTable/data-table-row-actions.tsx +0 -78
  79. package/src/components/dataDisplay/Table/custom/CustomTable/data-table-toolbar.tsx +0 -60
  80. package/src/components/dataDisplay/Table/custom/CustomTable/data-table-view-options.tsx +0 -59
  81. package/src/components/dataDisplay/Table/custom/CustomTable/data-table.tsx +0 -145
  82. package/src/components/dataDisplay/Table/custom/CustomTable/data.ts +0 -71
  83. package/src/components/dataDisplay/Table/custom/CustomTable/index.tsx +0 -34
  84. package/src/components/dataDisplay/Table/custom/CustomTable/schema.ts +0 -11
  85. package/src/components/dataDisplay/Table/index.ts +0 -2
  86. package/src/components/dataDisplay/Table/table.stories.tsx +0 -147
  87. package/src/components/dataDisplay/Table/types.ts +0 -15
  88. package/src/components/dataDisplay/Tabs/Tabs.stories.tsx +0 -34
  89. package/src/components/dataDisplay/Tabs/Tabs.tsx +0 -53
  90. package/src/components/dataDisplay/Tabs/index.ts +0 -1
  91. package/src/components/dataDisplay/Text/Text.stories.tsx +0 -66
  92. package/src/components/dataDisplay/Text/Text.tsx +0 -56
  93. package/src/components/dataDisplay/Text/index.ts +0 -1
  94. package/src/components/dataDisplay/index.ts +0 -8
  95. package/src/components/dataInput/Input/components/Input/Input.stories.tsx +0 -99
  96. package/src/components/dataInput/Input/components/Input/InputBase.tsx +0 -50
  97. package/src/components/dataInput/Input/components/Input/__tests__/input.test.tsx +0 -38
  98. package/src/components/dataInput/Input/components/Input/index.tsx +0 -48
  99. package/src/components/dataInput/Input/components/Input/types.ts +0 -15
  100. package/src/components/dataInput/Input/components/InputBase/index.tsx +0 -31
  101. package/src/components/dataInput/Input/components/MaskInput/__tests__/mask-input.test.tsx +0 -77
  102. package/src/components/dataInput/Input/components/MaskInput/index.ts +0 -1
  103. package/src/components/dataInput/Input/components/MaskInput/mask-input.stories.tsx +0 -85
  104. package/src/components/dataInput/Input/components/MaskInput/mask-input.tsx +0 -73
  105. package/src/components/dataInput/Input/components/MultipleInput/MultipleInput.tsx +0 -105
  106. package/src/components/dataInput/Input/components/MultipleInput/MultipleInputBase.tsx +0 -100
  107. package/src/components/dataInput/Input/components/MultipleInput/MultipleMaskInput.tsx +0 -35
  108. package/src/components/dataInput/Input/components/MultipleInput/MultipleNumberInput.tsx +0 -35
  109. package/src/components/dataInput/Input/components/MultipleInput/__tests__/multiple-input.test.tsx +0 -152
  110. package/src/components/dataInput/Input/components/MultipleInput/index.ts +0 -2
  111. package/src/components/dataInput/Input/components/MultipleInput/multiple-input.stories.tsx +0 -96
  112. package/src/components/dataInput/Input/components/NumberInput/index.ts +0 -1
  113. package/src/components/dataInput/Input/components/NumberInput/number-input.stories.tsx +0 -76
  114. package/src/components/dataInput/Input/components/NumberInput/number-input.tsx +0 -68
  115. package/src/components/dataInput/Input/index.ts +0 -4
  116. package/src/components/dataInput/Select/MultiSelect/MultiSelect.stories.tsx +0 -119
  117. package/src/components/dataInput/Select/MultiSelect/MultiSelectBase.tsx +0 -135
  118. package/src/components/dataInput/Select/MultiSelect/index.tsx +0 -75
  119. package/src/components/dataInput/Select/Select.stories.tsx +0 -61
  120. package/src/components/dataInput/Select/Select.tsx +0 -73
  121. package/src/components/dataInput/Select/SelectBase.tsx +0 -58
  122. package/src/components/dataInput/Select/index.ts +0 -2
  123. package/src/components/dataInput/Switch/Switch.stories.tsx +0 -75
  124. package/src/components/dataInput/Switch/Switch.tsx +0 -52
  125. package/src/components/dataInput/Switch/index.ts +0 -1
  126. package/src/components/dataInput/checkbox/Checkbox.tsx +0 -57
  127. package/src/components/dataInput/checkbox/Checkbox_old.tsx +0 -58
  128. package/src/components/dataInput/checkbox/Checkout.stories.tsx +0 -62
  129. package/src/components/dataInput/checkbox/index.ts +0 -1
  130. package/src/components/dataInput/form/Form.tsx +0 -47
  131. package/src/components/dataInput/form/index.ts +0 -3
  132. package/src/components/dataInput/index.ts +0 -5
  133. package/src/components/feedback/ErrorLabel/index.tsx +0 -24
  134. package/src/components/feedback/Spinner/index.ts +0 -1
  135. package/src/components/feedback/Toast/Toast.stories.tsx +0 -45
  136. package/src/components/feedback/Toast/index.ts +0 -2
  137. package/src/components/feedback/index.ts +0 -2
  138. package/src/components/index.ts +0 -6
  139. package/src/components/layout/Crud/components/Table/index.tsx +0 -183
  140. package/src/components/layout/Crud/components/Table/types.ts +0 -15
  141. package/src/components/layout/Crud/crud.stories.tsx +0 -317
  142. package/src/components/layout/Crud/hook/useCrudLayout/index.tsx +0 -94
  143. package/src/components/layout/Crud/hook/useRequest/index.tsx +0 -156
  144. package/src/components/layout/Crud/index.tsx +0 -295
  145. package/src/components/layout/Crud/store/CrudLayoutStore.ts +0 -75
  146. package/src/components/layout/Crud/types.ts +0 -14
  147. package/src/components/layout/Drawer/CustomDrawer/index.tsx +0 -33
  148. package/src/components/layout/Drawer/Drawer.stories.tsx +0 -80
  149. package/src/components/layout/Drawer/index.ts +0 -2
  150. package/src/components/layout/PageLayout/PageLayout.stories.tsx +0 -42
  151. package/src/components/layout/PageLayout/index.tsx +0 -28
  152. package/src/components/layout/Separator/index.ts +0 -1
  153. package/src/components/layout/Sheet/Sheet.stories.tsx +0 -28
  154. package/src/components/layout/Sheet/Sheet.tsx +0 -22
  155. package/src/components/layout/Sheet/index.ts +0 -1
  156. package/src/components/layout/Sidebar/Sidebar.stories.tsx +0 -116
  157. package/src/components/layout/Sidebar/Sidebar.tsx +0 -50
  158. package/src/components/layout/Sidebar/components/app-sidebar.tsx +0 -203
  159. package/src/components/layout/Sidebar/components/footer-sidebar.tsx +0 -17
  160. package/src/components/layout/Sidebar/components/header-sidebar.tsx +0 -90
  161. package/src/components/layout/Sidebar/components/menus.tsx +0 -55
  162. package/src/components/layout/Sidebar/components/nav-projects.tsx +0 -88
  163. package/src/components/layout/Sidebar/components/nav-user.tsx +0 -114
  164. package/src/components/layout/Sidebar/components/team-switcher.tsx +0 -85
  165. package/src/components/layout/Sidebar/index.ts +0 -2
  166. package/src/components/layout/Sidebar/provider/index.tsx +0 -51
  167. package/src/components/layout/Tabs/Tabs.tsx +0 -51
  168. package/src/components/layout/Tabs/index.ts +0 -1
  169. package/src/components/layout/Tabs/tabs.stories.tsx +0 -57
  170. package/src/components/layout/index.ts +0 -6
  171. package/src/components/navigation/Breadcrumbs/Breadcrumbs.tsx +0 -66
  172. package/src/components/navigation/Breadcrumbs/index.ts +0 -2
  173. package/src/components/navigation/index.ts +0 -1
  174. package/src/components/ui/alert-dialog.tsx +0 -141
  175. package/src/components/ui/alert.tsx +0 -59
  176. package/src/components/ui/avatar.tsx +0 -50
  177. package/src/components/ui/badge.tsx +0 -40
  178. package/src/components/ui/breadcrumb.tsx +0 -115
  179. package/src/components/ui/button.tsx +0 -57
  180. package/src/components/ui/card.tsx +0 -83
  181. package/src/components/ui/checkbox.tsx +0 -34
  182. package/src/components/ui/collapsible.tsx +0 -11
  183. package/src/components/ui/command.tsx +0 -153
  184. package/src/components/ui/dialog.tsx +0 -124
  185. package/src/components/ui/drawer.tsx +0 -117
  186. package/src/components/ui/dropdown-menu.tsx +0 -201
  187. package/src/components/ui/form.tsx +0 -179
  188. package/src/components/ui/input.tsx +0 -24
  189. package/src/components/ui/label.tsx +0 -30
  190. package/src/components/ui/popover.tsx +0 -33
  191. package/src/components/ui/select.tsx +0 -161
  192. package/src/components/ui/separator.tsx +0 -31
  193. package/src/components/ui/sheet.tsx +0 -140
  194. package/src/components/ui/sidebar.tsx +0 -763
  195. package/src/components/ui/skeleton.tsx +0 -15
  196. package/src/components/ui/sonner.tsx +0 -31
  197. package/src/components/ui/spinner.tsx +0 -54
  198. package/src/components/ui/switch.tsx +0 -33
  199. package/src/components/ui/table.tsx +0 -120
  200. package/src/components/ui/tabs.tsx +0 -55
  201. package/src/components/ui/toast.tsx +0 -130
  202. package/src/components/ui/toaster.tsx +0 -35
  203. package/src/components/ui/tooltip.tsx +0 -32
  204. package/src/hooks/use-conditional-controller.tsx +0 -35
  205. package/src/hooks/use-mask.tsx +0 -116
  206. package/src/hooks/use-mobile.tsx +0 -19
  207. package/src/hooks/use-toast.ts +0 -191
  208. package/src/index.ts +0 -1
  209. package/src/introduction.mdx +0 -132
  210. package/src/lib/utils.ts +0 -6
  211. package/tailwind.config.ts +0 -83
  212. package/tsconfig.json +0 -27
@@ -1,73 +0,0 @@
1
- import React from "react";
2
- import { Label } from "../../../components/ui/label";
3
-
4
- import {
5
- FormField,
6
- FormItem,
7
- FormLabel,
8
- FormControl,
9
- FormMessage,
10
- FormDescription,
11
- } from "../../../components/ui/form";
12
- import { SelectBase, SelectBaseProps } from "./SelectBase";
13
- import { useFormContext } from "react-hook-form";
14
- import { cn } from "../../../lib/utils";
15
- import { ErrorMessage } from "../../../components/dataDisplay/ErrorMessage/ErrorMessage";
16
-
17
- export type SelectProps = SelectBaseProps & {
18
- label?: string;
19
- name?: string;
20
- error?: string;
21
- description?: string;
22
- withoutForm?: boolean;
23
- };
24
-
25
- export const Select = ({
26
- name,
27
- label,
28
- description,
29
- error,
30
- className,
31
- withoutForm,
32
- options,
33
- placeholder,
34
- ...props
35
- }: SelectProps) => {
36
- const form = useFormContext();
37
- const hasForm = !!form && !!name;
38
-
39
- if (!hasForm || withoutForm) {
40
- return (
41
- <div className={cn("space-y-2", className)}>
42
- {label && <Label>{label}</Label>}
43
- <SelectBase options={options} placeholder={placeholder} {...props} />
44
- {description && (
45
- <p className="text-sm text-muted-foreground">{description}</p>
46
- )}
47
- {error && <ErrorMessage>{error}</ErrorMessage>}
48
- </div>
49
- );
50
- }
51
-
52
- return (
53
- <FormField
54
- control={form.control}
55
- name={name!}
56
- render={({ field }) => (
57
- <FormItem className={className}>
58
- {label && <FormLabel>{label}</FormLabel>}
59
- <FormControl>
60
- <SelectBase
61
- options={options}
62
- placeholder={placeholder}
63
- {...props}
64
- {...field}
65
- />
66
- </FormControl>
67
- {description && <FormDescription>{description}</FormDescription>}
68
- <FormMessage />
69
- </FormItem>
70
- )}
71
- />
72
- );
73
- };
@@ -1,58 +0,0 @@
1
- import { useCallback } from "react";
2
- import {
3
- Select,
4
- SelectProps,
5
- SelectContent,
6
- SelectItem,
7
- SelectTrigger,
8
- SelectValue,
9
- } from "../../../components/ui/select";
10
-
11
- export type SelectBaseProps = Omit<SelectProps, "onValueChange"> & {
12
- options: {
13
- value: string | number;
14
- label: string;
15
- }[];
16
- placeholder?: string;
17
- className?: string;
18
- id?: string;
19
- onChange?: (value: string) => void;
20
- value?: string;
21
- onChangeCallback?: (value: string) => void;
22
- };
23
-
24
- export const SelectBase = ({
25
- options,
26
- placeholder,
27
- onChange = () => {},
28
- onChangeCallback = () => {},
29
- value,
30
- ...rest
31
- }: SelectBaseProps) => {
32
- const onSelect = useCallback(
33
- (value: string) => {
34
- onChange(value);
35
- onChangeCallback(value);
36
- },
37
- [onChange, onChangeCallback]
38
- );
39
- return (
40
- <Select
41
- {...rest}
42
- onValueChange={onSelect}
43
- defaultValue={value}
44
- value={value}
45
- >
46
- <SelectTrigger>
47
- <SelectValue placeholder={placeholder} />
48
- </SelectTrigger>
49
- <SelectContent>
50
- {options?.map((option, index: number) => (
51
- <SelectItem key={index} value={String(option.value)}>
52
- {option.label}
53
- </SelectItem>
54
- ))}
55
- </SelectContent>
56
- </Select>
57
- );
58
- };
@@ -1,2 +0,0 @@
1
- export * from "./Select";
2
- export * from "./MultiSelect";
@@ -1,75 +0,0 @@
1
- import type { Meta, StoryObj } from "@storybook/nextjs";
2
- import { Switch } from "./index";
3
- import { useState } from "react";
4
- import { Form } from "../form";
5
- import { useForm } from "react-hook-form";
6
-
7
- const meta: Meta<typeof Switch> = {
8
- title: "Data Input/Switch",
9
- component: Switch,
10
- tags: ["autodocs"],
11
- };
12
-
13
- export default meta;
14
- type Story = StoryObj<typeof Switch>;
15
-
16
- const SwitchWithHooks = () => {
17
- const [checked, setChecked] = useState(false);
18
-
19
- return (
20
- <Switch
21
- label="Notifications"
22
- checked={checked}
23
- onCheckedChange={setChecked}
24
- />
25
- );
26
- };
27
-
28
- export const Default: Story = {
29
- render: () => <SwitchWithHooks />,
30
- };
31
-
32
- export const WithoutLabel: Story = {
33
- render: () => {
34
- const [checked, setChecked] = useState(false);
35
-
36
- return <Switch checked={checked} onCheckedChange={setChecked} />;
37
- },
38
- };
39
-
40
- export const Checked: Story = {
41
- render: () => {
42
- const [checked, setChecked] = useState(true);
43
-
44
- return (
45
- <Switch
46
- label="Active status"
47
- checked={checked}
48
- onCheckedChange={setChecked}
49
- />
50
- );
51
- },
52
- };
53
-
54
- export const WithForm: Story = {
55
- args: {
56
- name: "switch",
57
- label: "Terms and Conditions",
58
- required: true,
59
- },
60
- decorators: [
61
- (Story: React.ComponentType) => {
62
- const form = useForm({
63
- defaultValues: {
64
- switch: true,
65
- },
66
- });
67
-
68
- return (
69
- <Form {...form}>
70
- <Story />
71
- </Form>
72
- );
73
- },
74
- ],
75
- };
@@ -1,52 +0,0 @@
1
- import { Label } from "../../../components/ui/label";
2
- import {
3
- Switch as SwitchUI,
4
- SwitchProps as SwitchUIProps,
5
- } from "../../../components/ui/switch";
6
- import { useFormContext } from "react-hook-form";
7
- import {
8
- FormControl,
9
- FormField,
10
- FormItem,
11
- FormLabel,
12
- } from "../../../components/ui/form";
13
- import { cn } from "../../../lib/utils";
14
-
15
- export type SwitchProps = SwitchUIProps & {
16
- label?: string;
17
- withoutForm?: boolean;
18
- };
19
-
20
- export function Switch({
21
- label,
22
- withoutForm,
23
- className,
24
- ...props
25
- }: SwitchProps) {
26
- const form = useFormContext();
27
- const hasForm = !!form && !withoutForm && !!props.name;
28
-
29
- if (!hasForm)
30
- return (
31
- <div className="flex items-center space-x-2">
32
- <SwitchUI {...props} />
33
- {label && <Label htmlFor={props.id}>{label}</Label>}
34
- </div>
35
- );
36
- return (
37
- <FormField
38
- control={form.control}
39
- name={props.name ?? ""}
40
- render={({ field }) => (
41
- <FormItem
42
- className={cn(className, "flex items-center space-x-2 space-y-0")}
43
- >
44
- <FormControl>
45
- <Switch checked={field.value} onCheckedChange={field.onChange} />
46
- </FormControl>
47
- <FormLabel>{label}</FormLabel>
48
- </FormItem>
49
- )}
50
- />
51
- );
52
- }
@@ -1 +0,0 @@
1
- export * from "./Switch";
@@ -1,57 +0,0 @@
1
- import { useFormContext } from "react-hook-form";
2
- import {
3
- Checkbox as CheckboxUI,
4
- CheckboxProps as CheckboxUIProps,
5
- } from "../../ui/checkbox";
6
- import { Label } from "../../../components/ui/label";
7
-
8
- import { FormControl, FormField, FormItem, FormLabel } from "../form";
9
-
10
- import { ErrorMessage } from "../../../components/dataDisplay/ErrorMessage";
11
-
12
- export type CheckboxProps = CheckboxUIProps & {
13
- label: string;
14
- error?: string;
15
- withoutForm?: boolean;
16
- };
17
-
18
- export const Checkbox = ({
19
- label,
20
- error,
21
- withoutForm,
22
- ...props
23
- }: CheckboxProps) => {
24
- const form = useFormContext();
25
-
26
- const hasForm = !withoutForm && !!form && !!props.name;
27
- if (!hasForm)
28
- return (
29
- <div className="flex items-center space-x-2">
30
- <CheckboxUI {...props} />
31
- {label && <Label htmlFor={props.id}>{label}</Label>}
32
- {error && <ErrorMessage>{error}</ErrorMessage>}
33
- </div>
34
- );
35
-
36
- return (
37
- <FormField
38
- control={form.control}
39
- name={props.name ?? ""}
40
- render={({ field }) => (
41
- <FormItem className="flex flex-row items-start space-x-3 space-y-0 rounded-md border p-4">
42
- <FormControl>
43
- <CheckboxUI
44
- checked={field.value}
45
- onCheckedChange={field.onChange}
46
- />
47
- </FormControl>
48
- {label && (
49
- <div className="space-y-1 leading-none">
50
- <FormLabel>{label}</FormLabel>
51
- </div>
52
- )}
53
- </FormItem>
54
- )}
55
- />
56
- );
57
- };
@@ -1,58 +0,0 @@
1
- import { Label } from "../../../components/ui/label";
2
- import {
3
- Checkbox as CheckboxUI,
4
- CheckboxProps as CheckboxUIProps,
5
- } from "../../ui/checkbox";
6
- import { ErrorMessage } from "../../../components/dataDisplay/ErrorMessage";
7
- import { FormControl } from "..";
8
- import { FormField, FormItem, FormLabel } from "../form";
9
- import { useFormContext } from "react-hook-form";
10
-
11
- export type CheckboxProps = CheckboxUIProps & {
12
- label: string;
13
- error?: string;
14
- withoutForm?: boolean;
15
- };
16
-
17
- export const Checkbox = ({
18
- label,
19
- error,
20
- withoutForm,
21
- ...props
22
- }: CheckboxProps) => {
23
- const form = useFormContext();
24
-
25
- const hasForm = !withoutForm && !!form && !!props.name;
26
- // if (!hasForm)
27
- // return (
28
- // <div className="flex items-center space-x-2">
29
- // <CheckboxUI {...props} />
30
- // {label && <Label htmlFor={props.id}>{label}</Label>}
31
- // {error && <ErrorMessage>{error}</ErrorMessage>}
32
- // </div>
33
- // );
34
-
35
- return <></>;
36
-
37
- return (
38
- <FormField
39
- control={form.control}
40
- name={props.name ?? ""}
41
- render={({ field }) => (
42
- <FormItem className="flex flex-row items-start space-x-3 space-y-0 rounded-md border p-4">
43
- <FormControl>
44
- <CheckboxUI
45
- checked={field.value}
46
- onCheckedChange={field.onChange}
47
- />
48
- </FormControl>
49
- {label && (
50
- <div className="space-y-1 leading-none">
51
- <FormLabel>{label}</FormLabel>
52
- </div>
53
- )}
54
- </FormItem>
55
- )}
56
- />
57
- );
58
- };
@@ -1,62 +0,0 @@
1
- import type { Meta, StoryObj } from "@storybook/nextjs";
2
- import { Checkbox } from "./Checkbox";
3
- import { Form } from "../form";
4
- import { useForm } from "react-hook-form";
5
-
6
- type Story = StoryObj<typeof Checkbox>;
7
-
8
- const meta = {
9
- title: "Data Input/Checkbox",
10
- component: Checkbox,
11
- tags: ["autodocs"],
12
- args: {
13
- label: "Accept terms and conditions",
14
- },
15
- } satisfies Meta<typeof Checkbox>;
16
-
17
- export default meta;
18
-
19
- export const Default: Story = {
20
- args: {
21
- label: "Accept terms and conditions",
22
- },
23
- };
24
-
25
- export const Checked: Story = {
26
- args: {
27
- label: "Accept terms and conditions",
28
- checked: true,
29
- },
30
- };
31
-
32
- export const Disabled: Story = {
33
- args: {
34
- label: "Accept terms and conditions",
35
- disabled: true,
36
- },
37
- };
38
-
39
- export const DisabledChecked: Story = {
40
- args: {
41
- label: "Accept terms and conditions",
42
- disabled: true,
43
- checked: true,
44
- },
45
- };
46
-
47
- export const WithForm: Story = {
48
- args: {
49
- label: "Accept terms and conditions",
50
- },
51
- decorators: [
52
- (Story: React.ComponentType) => {
53
- const form = useForm();
54
-
55
- return (
56
- <Form {...form}>
57
- <Story />
58
- </Form>
59
- );
60
- },
61
- ],
62
- };
@@ -1 +0,0 @@
1
- export * from "./Checkbox";
@@ -1,47 +0,0 @@
1
- import { useMemo } from "react";
2
- import {
3
- FormControl,
4
- FormField,
5
- FormItem,
6
- FormLabel,
7
- FormMessage,
8
- } from "./index";
9
- import {
10
- ControllerRenderProps,
11
- FieldValues,
12
- useFormContext,
13
- } from "react-hook-form";
14
-
15
- export type FormContainerProps = {
16
- name: string;
17
- label?: string;
18
- render: (
19
- props?: ControllerRenderProps<FieldValues, string>
20
- ) => React.ReactNode;
21
- className?: string;
22
- };
23
- export const FormContainer = ({
24
- name,
25
- label,
26
- className,
27
- render = () => <></>,
28
- }: FormContainerProps) => {
29
- const form = useFormContext();
30
- const control = useMemo(() => form?.control, [form]);
31
-
32
- return (
33
- <FormField
34
- control={control}
35
- name={name}
36
- render={({ field }) => (
37
- <FormItem className={className}>
38
- <FormItem className={className}>
39
- {label && <FormLabel>{label}</FormLabel>}
40
- <FormControl>{render && render(field)}</FormControl>
41
- </FormItem>
42
- <FormMessage />
43
- </FormItem>
44
- )}
45
- />
46
- );
47
- };
@@ -1,3 +0,0 @@
1
- import { useFormContext } from "react-hook-form";
2
- export * from "../../ui/form";
3
- export { useFormContext };
@@ -1,5 +0,0 @@
1
- export * from "./checkbox";
2
- export * from "./Input";
3
- export * from "./form";
4
- export * from "./Select";
5
- export * from "./Switch";
@@ -1,24 +0,0 @@
1
- import React from "react";
2
- import { Icon } from "@/components/dataDisplay";
3
- import { cn } from "@/lib/utils";
4
-
5
- export type ErrorLabelProps = React.PropsWithChildren<{
6
- className?: string;
7
- "data-testid"?: string;
8
- }>;
9
-
10
- export const ErrorLabel = ({
11
- children,
12
- className,
13
- "data-testid": dataTestId,
14
- }: ErrorLabelProps) => {
15
- return (
16
- <div
17
- className={cn("flex items-center gap-2 my-2", className)}
18
- data-testid={`${dataTestId}-error-label`}
19
- >
20
- <Icon name="MdErrorOutline" size={18} className="text-destructive" />
21
- <span className="text-destructive text-sm">{children}</span>
22
- </div>
23
- );
24
- };
@@ -1 +0,0 @@
1
- export * from "../../ui/spinner";
@@ -1,45 +0,0 @@
1
- import React from "react";
2
- import type { Meta, StoryObj } from "@storybook/nextjs";
3
- import { fn } from "storybook/test";
4
- import { Button } from "../../../components/actions";
5
- import { Toaster, useToast } from "./index";
6
-
7
- const meta = {
8
- title: "DataInput/Toast",
9
- component: Toaster,
10
- parameters: {
11
- layout: "centered",
12
- },
13
- tags: ["autodocs"],
14
- args: { onClick: fn() },
15
- } satisfies Meta<typeof Toaster>;
16
-
17
- export default meta;
18
- type Story = StoryObj<typeof meta>;
19
-
20
- export const Default: Story = {
21
- args: {
22
- title: "Success",
23
- description: "This is a success message",
24
- variant: "default",
25
- },
26
- argTypes: {
27
- descritpion: { control: { type: "text" } },
28
- title: { control: { type: "text" } },
29
- variant: {
30
- control: {
31
- type: "select",
32
- },
33
- options: ["default", "success", "destructive"],
34
- },
35
- },
36
- render: (args) => {
37
- const { toast } = useToast();
38
- return (
39
- <div className="w-[500px] h-[500px]">
40
- <Button onClick={() => toast(args)}>Success</Button>
41
- <Toaster />
42
- </div>
43
- );
44
- },
45
- };
@@ -1,2 +0,0 @@
1
- export * from "../../ui/toaster";
2
- export * from "../../../hooks/use-toast";
@@ -1,2 +0,0 @@
1
- export * from "./Spinner";
2
- export * from "./Toast";
@@ -1,6 +0,0 @@
1
- export * from "./dataDisplay";
2
- export * from "./dataInput";
3
- export * from "./actions";
4
- export * from "./layout";
5
- export * from "./navigation";
6
- export * from "./feedback";