@geoinsight/react-components 0.6.11 → 0.7.1

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 (93) hide show
  1. package/dist/cjs/index.js +1 -0
  2. package/dist/cjs/index.js.map +1 -0
  3. package/dist/cjs/types/components/accordion/accordion-button.d.ts +4 -0
  4. package/dist/cjs/types/components/accordion/accordion-content.d.ts +4 -0
  5. package/dist/cjs/types/components/accordion/accordion-item.d.ts +4 -0
  6. package/dist/cjs/types/components/accordion/accordion.d.ts +4 -0
  7. package/dist/cjs/types/components/accordion/index.d.ts +4 -0
  8. package/dist/cjs/types/components/accordion/index.stories.d.ts +6 -0
  9. package/dist/cjs/types/components/accordion/index.types.d.ts +34 -0
  10. package/dist/cjs/types/components/button/index.d.ts +5 -0
  11. package/dist/cjs/types/components/button/index.stories.d.ts +7 -0
  12. package/dist/cjs/types/components/button/index.types.d.ts +41 -0
  13. package/dist/cjs/types/components/form/FormInput.d.ts +4 -0
  14. package/dist/cjs/types/components/form/FormSelect.d.ts +4 -0
  15. package/dist/cjs/types/components/form/FormTextArea.d.ts +4 -0
  16. package/dist/cjs/types/components/form/index.d.ts +4 -0
  17. package/dist/cjs/types/components/form/index.stories.d.ts +7 -0
  18. package/dist/cjs/types/components/form/index.types.d.ts +45 -0
  19. package/dist/cjs/types/components/input/index.d.ts +4 -0
  20. package/dist/cjs/types/components/input/index.stories.d.ts +8 -0
  21. package/dist/cjs/types/components/input/index.types.d.ts +40 -0
  22. package/dist/cjs/types/components/loading/index.d.ts +4 -0
  23. package/dist/cjs/types/components/loading/index.stories.d.ts +6 -0
  24. package/dist/cjs/types/components/loading/index.types.d.ts +11 -0
  25. package/dist/cjs/types/components/modal/index.d.ts +4 -0
  26. package/dist/cjs/types/components/modal/index.stories.d.ts +6 -0
  27. package/dist/cjs/types/components/modal/index.types.d.ts +31 -0
  28. package/dist/cjs/types/components/select/index.d.ts +4 -0
  29. package/dist/cjs/types/components/select/index.stories.d.ts +7 -0
  30. package/dist/cjs/types/components/select/index.types.d.ts +30 -0
  31. package/dist/cjs/types/components/text-area/index.d.ts +5 -0
  32. package/dist/cjs/types/components/text-area/index.stories.d.ts +7 -0
  33. package/dist/cjs/types/components/text-area/index.types.d.ts +37 -0
  34. package/dist/cjs/types/context/accordion/index.d.ts +10 -0
  35. package/dist/cjs/types/context/loading/index.d.ts +24 -0
  36. package/dist/cjs/types/context/loading/index.stories.d.ts +8 -0
  37. package/dist/cjs/types/context/modal/index.d.ts +25 -0
  38. package/dist/cjs/types/context/modal/index.stories.d.ts +6 -0
  39. package/dist/cjs/types/context/theme/index.d.ts +18 -0
  40. package/dist/cjs/types/decorators/withColorScheme.d.ts +7 -0
  41. package/dist/cjs/types/decorators/withLoading.d.ts +2 -0
  42. package/dist/cjs/types/decorators/withModal.d.ts +2 -0
  43. package/dist/cjs/types/decorators/withWrapper.d.ts +2 -0
  44. package/dist/cjs/types/index.d.ts +15 -0
  45. package/dist/cjs/types/utils/palette.d.ts +1 -0
  46. package/dist/cjs/types/utils/recursive.d.ts +6 -0
  47. package/dist/esm/index.js +1 -0
  48. package/dist/esm/index.js.map +1 -0
  49. package/dist/esm/types/components/accordion/accordion-button.d.ts +4 -0
  50. package/dist/esm/types/components/accordion/accordion-content.d.ts +4 -0
  51. package/dist/esm/types/components/accordion/accordion-item.d.ts +4 -0
  52. package/dist/esm/types/components/accordion/accordion.d.ts +4 -0
  53. package/dist/esm/types/components/accordion/index.d.ts +4 -0
  54. package/dist/esm/types/components/accordion/index.stories.d.ts +6 -0
  55. package/dist/esm/types/components/accordion/index.types.d.ts +34 -0
  56. package/dist/esm/types/components/button/index.d.ts +5 -0
  57. package/dist/esm/types/components/button/index.stories.d.ts +7 -0
  58. package/dist/esm/types/components/button/index.types.d.ts +41 -0
  59. package/dist/esm/types/components/form/FormInput.d.ts +4 -0
  60. package/dist/esm/types/components/form/FormSelect.d.ts +4 -0
  61. package/dist/esm/types/components/form/FormTextArea.d.ts +4 -0
  62. package/dist/esm/types/components/form/index.d.ts +4 -0
  63. package/dist/esm/types/components/form/index.stories.d.ts +7 -0
  64. package/dist/esm/types/components/form/index.types.d.ts +45 -0
  65. package/dist/esm/types/components/input/index.d.ts +4 -0
  66. package/dist/esm/types/components/input/index.stories.d.ts +8 -0
  67. package/dist/esm/types/components/input/index.types.d.ts +40 -0
  68. package/dist/esm/types/components/loading/index.d.ts +4 -0
  69. package/dist/esm/types/components/loading/index.stories.d.ts +6 -0
  70. package/dist/esm/types/components/loading/index.types.d.ts +11 -0
  71. package/dist/esm/types/components/modal/index.d.ts +4 -0
  72. package/dist/esm/types/components/modal/index.stories.d.ts +6 -0
  73. package/dist/esm/types/components/modal/index.types.d.ts +31 -0
  74. package/dist/esm/types/components/select/index.d.ts +4 -0
  75. package/dist/esm/types/components/select/index.stories.d.ts +7 -0
  76. package/dist/esm/types/components/select/index.types.d.ts +30 -0
  77. package/dist/esm/types/components/text-area/index.d.ts +5 -0
  78. package/dist/esm/types/components/text-area/index.stories.d.ts +7 -0
  79. package/dist/esm/types/components/text-area/index.types.d.ts +37 -0
  80. package/dist/esm/types/context/accordion/index.d.ts +10 -0
  81. package/dist/esm/types/context/loading/index.d.ts +24 -0
  82. package/dist/esm/types/context/loading/index.stories.d.ts +8 -0
  83. package/dist/esm/types/context/modal/index.d.ts +25 -0
  84. package/dist/esm/types/context/modal/index.stories.d.ts +6 -0
  85. package/dist/esm/types/context/theme/index.d.ts +18 -0
  86. package/dist/esm/types/decorators/withColorScheme.d.ts +7 -0
  87. package/dist/esm/types/decorators/withLoading.d.ts +2 -0
  88. package/dist/esm/types/decorators/withModal.d.ts +2 -0
  89. package/dist/esm/types/decorators/withWrapper.d.ts +2 -0
  90. package/dist/esm/types/index.d.ts +15 -0
  91. package/dist/esm/types/utils/palette.d.ts +1 -0
  92. package/dist/esm/types/utils/recursive.d.ts +6 -0
  93. package/package.json +2 -2
@@ -0,0 +1,25 @@
1
+ import React from "react";
2
+ import Modal from "../../components/modal";
3
+ type Modal = {
4
+ title?: React.ReactNode;
5
+ subtitle?: React.ReactNode;
6
+ content?: React.ReactNode;
7
+ hasCloseButton?: boolean;
8
+ footer?: React.ReactNode;
9
+ };
10
+ interface State extends Modal {
11
+ isModal: boolean;
12
+ }
13
+ type Context = {
14
+ state: State;
15
+ openModal: (modal?: Modal) => void;
16
+ closeModal: () => void;
17
+ };
18
+ type ModalProviderProps = {
19
+ children: React.ReactNode;
20
+ };
21
+ type UseModalProps = {};
22
+ declare const ModalContext: React.Context<Context | undefined>;
23
+ declare function ModalProvider({ children }: ModalProviderProps): import("react/jsx-runtime").JSX.Element;
24
+ declare function useModal({}?: UseModalProps): Context;
25
+ export { ModalContext, ModalProvider, useModal };
@@ -0,0 +1,6 @@
1
+ import { Meta, StoryObj } from "@storybook/react";
2
+ import { ModalProvider } from ".";
3
+ declare const meta: Meta<typeof ModalProvider>;
4
+ export default meta;
5
+ type Story = StoryObj<typeof ModalProvider>;
6
+ export declare const Basic: Story;
@@ -0,0 +1,18 @@
1
+ import { DataPalette } from "data-palette";
2
+ import React from "react";
3
+ type DataTheme = "light" | "dark";
4
+ type State = {
5
+ dataTheme?: DataTheme;
6
+ switchDataTheme: (mode: DataTheme) => void;
7
+ dataPalette?: DataPalette;
8
+ switchDataPalette: (mode: DataPalette) => void;
9
+ };
10
+ type ThemeProviderProps = {
11
+ children: React.ReactNode;
12
+ dataTheme?: DataTheme;
13
+ dataPalette?: DataPalette;
14
+ };
15
+ declare const ThemeContext: React.Context<State | undefined>;
16
+ declare function ThemeProvider({ children, dataTheme: dataThemeProp, dataPalette: dataPaletteProp, }: ThemeProviderProps): import("react/jsx-runtime").JSX.Element;
17
+ declare function useTheme(): State;
18
+ export { ThemeContext, ThemeProvider, useTheme };
@@ -0,0 +1,7 @@
1
+ import { StoryContext, StoryFn } from "@storybook/react";
2
+ import "../styles/variables.css";
3
+ export declare const withColorScheme: (Story: StoryFn, context: StoryContext) => import("react/jsx-runtime").JSX.Element;
4
+ export declare const Wrapped: ({ Story, context, }: {
5
+ Story: StoryFn;
6
+ context: StoryContext;
7
+ }) => import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,2 @@
1
+ import { StoryContext, StoryFn } from "@storybook/react";
2
+ export declare const withLoading: (Story: StoryFn, context: StoryContext) => import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,2 @@
1
+ import { StoryContext, StoryFn } from "@storybook/react";
2
+ export declare const withModal: (Story: StoryFn, context: StoryContext) => import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,2 @@
1
+ import { StoryContext, StoryFn } from "@storybook/react";
2
+ export declare const withWrapper: (Story: StoryFn, context: StoryContext) => import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,15 @@
1
+ import "../src/styles/variables.css";
2
+ export { Accordion, AccordionItem, AccordionButton, AccordionContent } from "./components/accordion";
3
+ export { Button } from "./components/button";
4
+ export { Form } from "./components/form";
5
+ export { FormInput } from "./components/form/FormInput";
6
+ export { FormTextArea } from "./components/form/FormTextArea";
7
+ export { FormSelect } from "./components/form/FormSelect";
8
+ export { Input } from "./components/input";
9
+ export { Loading } from "./components/loading";
10
+ export { Modal } from "./components/modal";
11
+ export { Select } from "./components/select";
12
+ export { TextArea } from "./components/text-area";
13
+ export { LoadingContext, LoadingProvider, useLoading } from "./context/loading";
14
+ export { ModalContext, ModalProvider, useModal } from "./context/modal";
15
+ export { ThemeContext, ThemeProvider, useTheme } from "./context/theme";
@@ -0,0 +1 @@
1
+ export declare const palette: readonly ["forest", "water", "earth"];
@@ -0,0 +1,6 @@
1
+ import { ReactNode } from "react";
2
+ import { ToggleArray } from "../components/accordion/index.types";
3
+ export declare function recursiveChildren(children: ReactNode | ReactNode[], i?: number): ReactNode;
4
+ export declare function recursiveToggle(children: ReactNode[], toggleArray: ToggleArray | undefined, i: number | undefined, props: {
5
+ expanded: "all" | "none" | "custom";
6
+ }): ToggleArray | undefined;
package/dist/esm/index.js CHANGED
@@ -476,3 +476,4 @@ function useModal({} = {}) {
476
476
  }
477
477
 
478
478
  export { Accordion, AccordionButton, AccordionContent, AccordionItem, Button, Form, FormInput, FormSelect, FormTextArea, Input, Loading, LoadingContext, LoadingProvider, Modal, ModalContext, ModalProvider, Select, TextArea, ThemeContext, ThemeProvider, useLoading, useModal, useTheme };
479
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":["../../src/utils/recursive.ts","../../src/context/accordion/index.tsx","../../src/components/accordion/accordion.tsx","../../src/components/accordion/accordion-item.tsx","../../src/components/button/index.tsx","../../src/context/theme/index.tsx","../../src/components/accordion/accordion-button.tsx","../../src/components/accordion/accordion-content.tsx","../../src/components/form/index.tsx","../../src/components/input/index.tsx","../../src/components/form/FormInput.tsx","../../src/components/text-area/index.tsx","../../src/components/form/FormTextArea.tsx","../../src/components/select/index.tsx","../../src/components/form/FormSelect.tsx","../../src/components/loading/index.tsx","../../src/components/modal/index.tsx","../../src/context/loading/index.tsx","../../src/context/modal/index.tsx"],"sourcesContent":["import { Children, ReactNode, cloneElement, isValidElement } from \"react\";\nimport { ToggleArray } from \"../components/accordion/index.types\";\n\nlet uniqueId = (function () {\n let num = 0;\n return function (prefix: string | number) {\n prefix = String(prefix) || '';\n num += 1;\n return prefix + num;\n }\n}\n ());\n\nexport function recursiveChildren(\n children: ReactNode | ReactNode[],\n i = 0\n): ReactNode {\n return Children.map(children, (child, index) => {\n if (!isValidElement(child)) {\n return child;\n }\n\n if (child.props.children) {\n return cloneElement(child, {\n ...child.props,\n children: recursiveChildren(child.props.children, i++),\n ...((child?.type as any)?.name === \"AccordionItem\" && {\n label: uniqueId(\"id_\")// `${(child?.type as any)?.name}-${index}-${i}`,\n }),\n });\n }\n });\n}\n\nexport function recursiveToggle(\n children: ReactNode[],\n toggleArray: ToggleArray = {},\n i = 0,\n props: { expanded: \"all\" | \"none\" | \"custom\" }\n) {\n if (\n (children && typeof children === \"string\") ||\n (Array.isArray(children) && typeof children[0] === \"string\")\n ) {\n return;\n }\n\n for (const child of children) {\n if (isValidElement(child)) {\n if ((child?.type as any)?.name === \"AccordionItem\" && child.props.label) {\n toggleArray[child.props.label] = {\n isToggle:\n props.expanded === \"all\"\n ? true\n : props.expanded === \"none\"\n ? false\n : props.expanded === \"custom\"\n ? child?.props.isExpanded\n : false,\n depth: i,\n paddingLeft: `${16 * i}px`,\n };\n }\n\n if (\n typeof child.props.children !== \"string\" &&\n child.props.children.find(\n (v: { type: { name: string } }) =>\n v?.type?.name === \"AccordionItem\"\n )\n ) {\n recursiveToggle(\n Array.isArray(child.props.children)\n ? child.props.children\n : [child.props.children],\n toggleArray,\n i + 1,\n props\n );\n }\n }\n }\n\n return toggleArray;\n}\n","import React, {\n Dispatch,\n ReactNode,\n SetStateAction,\n createContext,\n useContext,\n useMemo,\n useState,\n} from \"react\";\nimport { Accordion, ToggleArray } from \"../../components/accordion/index.types\";\nimport { recursiveChildren, recursiveToggle } from \"../../utils/recursive\";\n\ninterface State {\n toggle?: ToggleArray;\n setToggle: (prev: any) => void;\n}\n\nconst AccordionContext = createContext<State | undefined>(undefined);\n\nfunction AccordionProvider({ children, expanded = \"all\" }: Accordion) {\n const newChildren = useMemo(()=> recursiveChildren(children, 0), []);\n const [toggle, _setToggle] = useState(\n recursiveToggle(newChildren as ReactNode[], {}, 0, { expanded })\n );\n\n const setToggle = (prev: any) => {\n _setToggle(prev)\n };\n\n return (\n <AccordionContext.Provider value={{ toggle, setToggle }}>\n <div className=\"accordion\">{newChildren}</div>\n </AccordionContext.Provider>\n );\n}\n\nfunction useAccordion() {\n const context = useContext(AccordionContext);\n\n if (context === undefined) {\n throw new Error(\"useTheme must be used within a ThemeProvider\");\n }\n\n return context;\n}\n\nexport { useAccordion, AccordionContext, AccordionProvider };\n","import \"./index.css\";\nimport { Accordion as AccordionProps } from \"./index.types\";\nimport { AccordionProvider } from \"../../context/accordion\";\n\nexport function Accordion({\n children,\n expanded = \"all\",\n // defaultValue,\n // selectValue,\n}: AccordionProps) {\n // const { dataTheme } = useTheme();\n\n return (\n <AccordionProvider expanded={expanded}>{children}</AccordionProvider>\n );\n}\n\nexport default Accordion;\n","import { Children, cloneElement } from \"react\";\nimport \"./index.css\";\nimport { AccordionItem as AccordionItemProps } from \"./index.types\";\nimport { useAccordion } from \"../../context/accordion\";\n\nexport function AccordionItem({\n children,\n label,\n isExpanded = false,\n}: AccordionItemProps) {\n const { toggle } = useAccordion();\n\n return (\n <div\n className=\"accordion-item\"\n style={{\n paddingLeft: toggle && label && toggle[label]?.paddingLeft,\n }}\n >\n {Children.map(children, (child) =>\n cloneElement(child as any, {\n toggle: toggle,\n // setToggle: setToggle,\n ...((child as any)?.type?.name !== \"AccordionItem\" && {\n label: label,\n }),\n isExpanded: isExpanded,\n })\n )}\n </div>\n );\n}\n\nexport default AccordionItem;\n","import clsx from \"clsx\";\nimport { ButtonAsButton, ButtonAsLink } from \"./index.types\";\nimport \"./index.css\";\nimport { ReactNode } from \"react\";\n\nconst Anchor = ({\n Custom,\n children,\n ...rest\n}: {\n Custom?: React.ComponentClass<any>;\n children?: ReactNode;\n}) =>\n Custom ? <Custom {...rest}>{children}</Custom> : <a {...rest}>{children}</a>;\n\nexport function Button({\n children = \"Click me\",\n className = \"\",\n icon = undefined,\n isNewWindow = false,\n mode = \"primary\",\n size = \"medium\",\n as = \"button\",\n CustomAnchor,\n ...rest\n}: ButtonAsButton | ButtonAsLink): JSX.Element {\n return as === \"link\" ? (\n <Anchor\n Custom={CustomAnchor}\n {...(isNewWindow && { target: \"_blank\" })}\n className={clsx(\n `button ${className}`,\n mode === \"secondary\" ? `button button__${mode}` : \"button__link\",\n `button__${size}`,\n )}\n {...(rest as React.AnchorHTMLAttributes<HTMLAnchorElement>)}\n >\n {children}\n {icon}\n </Anchor>\n ) : (\n <button\n className={clsx(\n \"button\",\n `button__${mode}`,\n `button__${size}`,\n className\n )}\n {...(rest as React.ButtonHTMLAttributes<HTMLButtonElement>)}\n >\n {children}\n {icon}\n </button>\n );\n}\n\nexport default Button;\n","import { DataPalette } from \"data-palette\";\nimport React, {\n createContext,\n useContext,\n useEffect,\n useState,\n} from \"react\";\n\ntype DataTheme = \"light\" | \"dark\";\n\ntype State = {\n dataTheme?: DataTheme;\n switchDataTheme: (mode: DataTheme) => void;\n dataPalette?: DataPalette;\n switchDataPalette: (mode: DataPalette) => void;\n};\ntype ThemeProviderProps = {\n children: React.ReactNode;\n dataTheme?: DataTheme;\n dataPalette?: DataPalette;\n};\n\nconst ThemeContext = createContext<State | undefined>(undefined);\n\nfunction ThemeProvider({\n children,\n dataTheme: dataThemeProp,\n dataPalette: dataPaletteProp = \"water\",\n}: ThemeProviderProps) {\n const [dataTheme, setDataTheme] = useState<DataTheme>();\n const [dataPalette, setDataPalette] = useState<DataPalette>();\n\n useEffect(() => {\n if (dataPaletteProp) {\n switchDataPalette(dataPaletteProp);\n }\n }, [dataPaletteProp]);\n\n useEffect(() => {\n if (dataThemeProp) {\n switchDataTheme(dataThemeProp);\n }\n }, [dataThemeProp]);\n\n useEffect(() => {\n if (window.matchMedia) {\n if (localStorage.getItem(\"data-theme\")) {\n document.documentElement.setAttribute(\n \"data-theme\",\n localStorage.getItem(\"data-theme\") as string\n );\n setDataTheme(localStorage.getItem(\"data-theme\") as DataTheme);\n } else if (window.matchMedia(\"(prefers-color-scheme: dark)\").matches) {\n document.documentElement.setAttribute(\"data-theme\", \"dark\");\n setDataTheme(\"dark\");\n }\n }\n }, []);\n\n const switchDataTheme = (mode: DataTheme) => {\n document.documentElement.setAttribute(\"data-theme\", mode);\n setDataTheme(mode);\n localStorage.setItem(\"data-theme\", mode);\n };\n\n const switchDataPalette = (mode: DataPalette) => {\n document.documentElement.setAttribute(\"data-palette\", mode);\n setDataPalette(mode);\n localStorage.setItem(\"palette-theme\", mode);\n };\n\n return (\n <ThemeContext.Provider\n value={{ dataTheme, switchDataTheme, dataPalette, switchDataPalette }}\n >\n {children}\n </ThemeContext.Provider>\n );\n}\n\nfunction useTheme() {\n const context = useContext(ThemeContext);\n\n if (context === undefined) {\n throw new Error(\"useTheme must be used within a ThemeProvider\");\n }\n\n return context;\n}\n\nexport { ThemeContext, ThemeProvider, useTheme };\n","import Button from \"../button\";\nimport \"./index.css\";\nimport { TfiAngleUp, TfiAngleDown } from \"react-icons/tfi\";\nimport {\n AccordionButton as AccordionButtonProps,\n Accordion as AccordionProps,\n ToggleArray,\n} from \"./index.types\";\nimport clsx from \"clsx\";\nimport { useAccordion } from \"../../context/accordion\";\nimport { useTheme } from \"../../context/theme\";\n\nexport function AccordionButton({\n children,\n is = \"link\",\n label,\n // toggle,\n // setToggle = (prev: any) => void,\n ...rest\n}: AccordionButtonProps) {\n const { dataTheme } = useTheme();\n const { toggle, setToggle } = useAccordion();\n\n const handleToggle = () => {\n setToggle((prev: ToggleArray | undefined): any => {\n if (label) {\n return {\n ...prev,\n [label]: {\n ...(prev && label && prev[label]),\n isToggle: prev && !prev[label].isToggle,\n },\n };\n } else {\n return prev;\n }\n });\n };\n\n return (\n <Button\n as={is}\n className={clsx(\n \"accordion-button\",\n `accordion-button__${is}`,\n `accordion-button__${is}--${dataTheme}`\n )}\n {...(is !== \"link\" && {\n icon:\n label && toggle && toggle[label].isToggle ? (\n <TfiAngleDown />\n ) : (\n <TfiAngleUp />\n ),\n })}\n {...(is !== \"link\" && { onClick: handleToggle })}\n {...rest}\n >\n {children}\n </Button>\n );\n}\n\nexport default AccordionButton;\n","import \"./index.css\";\nimport { AccordionContent as AccordionContentProps } from \"./index.types\";\n\nexport const AccordionContent = function AccordionContent({\n children,\n label,\n toggle,\n}: AccordionContentProps) {\n return (\n label &&\n toggle &&\n toggle[label].isToggle && (\n <div className=\"accordion-content\">{children}</div>\n )\n );\n};\n\nexport default AccordionContent;\n","import { Form as FormProps, ReactNodeControlled } from \"./index.types\";\nimport \"./index.css\";\nimport Button from \"../button\";\nimport { BsCheckCircleFill, BsXCircleFill } from \"react-icons/bs\";\nimport { Controller, FormProvider, useForm } from \"react-hook-form\";\nimport { Children, cloneElement, createElement, useEffect, useState } from \"react\";\n\n// how do I solve reseting the form outside the form\nexport function Form({\n children,\n onSubmit,\n submitButton = {\n label: \"Submit\",\n },\n initialState,\n ...rest\n}: FormProps) {\n const methods = useForm(initialState);\n const {\n formState: { isValid },\n } = methods;\n const [result, setResult] = useState<{\n message?: string;\n isSuccess: boolean;\n }>({\n message: \"\",\n isSuccess: false,\n });\n\n return (\n <FormProvider {...methods}>\n <form\n className=\"form\"\n onSubmit={methods.handleSubmit((data) => onSubmit(data, methods, setResult))}\n {...rest}\n >\n {children}\n {result.message && (\n <div className=\"form__message\">\n {result.isSuccess ? (\n <BsCheckCircleFill\n color=\"var(--color-success)\"\n size={48}\n ></BsCheckCircleFill>\n ) : (\n <BsXCircleFill\n color={\"var(--color-danger)\"}\n size={48}\n ></BsXCircleFill>\n )}\n {result.message}\n </div>\n )}\n <Button type=\"submit\" disabled={!isValid}>\n {submitButton.label}\n </Button>\n </form>\n </FormProvider>\n );\n}\n\nexport default Form;\n","import { Input as InputProps } from \"./index.types\";\nimport \"./index.css\";\nimport clsx from \"clsx\";\n\nexport function Input({\n inputClassName = \"\",\n classNameGroup = \"\",\n error = {\n is: false,\n message: \"\",\n },\n inputRef,\n styleGroup,\n placeholder = \"Insert value\",\n label,\n labelClass,\n icon,\n ...rest\n}: InputProps) {\n return (\n <div className={clsx(\"input-group\", classNameGroup)} style={styleGroup}>\n <div className=\"input__header\">\n {label && <label className={labelClass}>{label}</label>}\n {error && error.is && (\n <span className=\"input__header--error\">{error.message as any}</span>\n )}\n </div>\n <div className=\"input-subgroup\">\n {icon?.element && icon.position === \"left\" && (\n <div\n className={clsx(\"input__icon\", \"input__icon--left\", icon.className)}\n >\n {icon.element}\n </div>\n )}\n <input\n ref={inputRef}\n className={clsx(\n \"input\",\n error.is ? \"input--error\" : \"\",\n icon?.position === \"left\" && \"input--icon\",\n inputClassName\n )}\n placeholder={placeholder}\n {...rest}\n />\n {icon?.element && icon.position !== \"left\" && (\n <div\n className={clsx(\n \"input__icon\",\n \"input__icon--right\",\n // `input__icon--${icon.position || \"right\"}`,\n icon.className\n )}\n >\n {icon.element}\n </div>\n )}\n </div>\n </div>\n );\n}\n\nexport default Input;\n","import \"./index.css\";\nimport { Controller, useFormContext } from \"react-hook-form\";\nimport Input from \"../input\";\nimport { FormInputs } from \"./index.types\";\n\nexport function FormInput({ name, isRequired, error, defaultValue, ...rest }: FormInputs) {\n const { control } = useFormContext();\n return (\n <Controller\n name={name}\n control={control}\n rules={{\n ...(isRequired\n ? {\n required: (error?.message as any) || \"Field is required\",\n }\n : {}),\n }}\n render={({ field, fieldState: { error } }) => {\n return (\n <Input\n isRequired\n error={{\n is: !!error,\n message: error?.message,\n }}\n defaultValue={defaultValue}\n {...field}\n {...rest}\n />\n );\n }}\n />\n );\n}\n\nexport default FormInput;\n","import React, { MutableRefObject, useRef, useState } from \"react\";\nimport clsx from \"clsx\";\nimport { TbArrowsDiagonal2 } from \"react-icons/tb\";\nimport { TextArea as TextAreaProps } from \"./index.types\";\nimport \"./index.css\";\n\nexport function TextArea({\n className = \"\",\n disabled = true,\n hasToggleButton = true,\n hideHeight = \"5rem\",\n placeholder = \"Insert value\",\n showHeight = \"10rem\",\n style = {},\n textareaClassName = \"\",\n label,\n labelClass,\n error = {\n is: false,\n message: \"\",\n },\n ...rest\n}: TextAreaProps): JSX.Element {\n const ref = useRef() as MutableRefObject<HTMLTextAreaElement>;\n const [isShow, setIsShow] = useState<boolean>(false);\n\n const handleClickToggle = () => {\n if (ref && ref.current) {\n if (isShow) {\n ref.current.style.height = hideHeight;\n } else {\n ref.current.style.height = showHeight; //(48 + ref.current.scrollHeight) + 'px';\n }\n setIsShow((prev) => !prev);\n }\n };\n\n return (\n <div className={clsx(\"textarea\", className)} style={style}>\n <div className=\"textarea__header\">\n {label && <label className={labelClass}>{label}</label>}\n {error && error.is && (\n <span className=\"textarea__header--error\">\n {error.message as any}\n </span>\n )}\n </div>\n <textarea\n ref={ref}\n className={clsx(\n \"textarea__input\",\n error.is && \"textarea__input--error\",\n textareaClassName\n )}\n style={\n {\n height: hasToggleButton ? hideHeight : showHeight,\n } as React.CSSProperties\n }\n placeholder={placeholder}\n disabled={disabled}\n {...rest}\n />\n {hasToggleButton && (\n <button\n type=\"button\"\n className={clsx(\n \"textarea__button\",\n isShow && \"textarea__button--show\",\n error.is && \"textarea__button--error\",\n )}\n onClick={handleClickToggle}\n disabled={disabled}\n >\n <TbArrowsDiagonal2 size=\"1.5rem\" />\n </button>\n )}\n </div>\n );\n}\n\nexport default TextArea;\n","import \"./index.css\";\nimport { Controller, useFormContext } from \"react-hook-form\";\nimport TextArea from \"../text-area\";\nimport { FormInputs } from \"./index.types\";\n\nexport function FormTextArea({ name, isRequired, error, ...rest }: FormInputs) {\n const { control } = useFormContext();\n return (\n <Controller\n name={name}\n control={control}\n rules={{\n ...(isRequired\n ? {\n required: (error?.message as any) || \"Field is required\",\n }\n : {}),\n }}\n render={({ field, fieldState: { error } }) => {\n return (\n <TextArea\n isRequired\n error={{\n is: !!error,\n message: error?.message,\n }}\n {...field}\n {...rest}\n />\n );\n }}\n />\n );\n}\n\nexport default FormTextArea;\n","import { useState } from \"react\";\nimport clsx from \"clsx\";\nimport { Select as SelectProps } from \"./index.types\";\nimport \"./index.css\";\nimport Button from \"../button\";\nimport { TfiAngleDown } from \"react-icons/tfi\";\nimport Input from \"../input\";\n\nexport function Select({\n inputClassName = \"\",\n classNameGroup = \"\",\n options,\n styleGroup,\n defaultValue,\n // inputProps,\n setFormSelected,\n clearError,\n resetForm,\n onFormBlur,\n handleSelect,\n ...rest\n}: SelectProps) {\n const [isOpen, setIsOpen] = useState(false);\n const [value, setValue] = useState(defaultValue || (options && options[0]));\n const [filteredOptions, setFilteredOptions] = useState(options);\n const { name } = rest;\n\n const handleOpen = () => {\n setIsOpen(true);\n };\n\n const handleClose = () => {\n setIsOpen(false);\n };\n\n const handleInputClose = () => {\n if (onFormBlur) {\n onFormBlur();\n }\n setIsOpen(false);\n };\n\n const handleToggle = () => {\n setIsOpen((prev) => !prev);\n };\n\n const handleValueChange = (e: { target: { value: string } }) => {\n const { value } = e.target;\n setValue(value);\n // for autocomplete\n // const { value } = e.target;\n // setValue(value);\n };\n\n const handleSelectChange = (e: { target: { name: string } }) => {\n const { name: value } = e.target;\n\n if (setFormSelected) {\n setFormSelected(name, value);\n if(clearError) {\n clearError(name)\n }\n\n if(resetForm) {\n resetForm()\n }\n } else {\n setValue(value);\n }\n\n if (handleSelect) {\n handleSelect(value);\n }\n\n handleClose();\n };\n // for autocomplete\n // useEffect(() => {\n // if (value) {\n // console.log(filteredOptions);\n // setFilteredOptions((prev: string[]) => {\n // return options\n // .filter((option: string) => option.includes(value))\n // });\n // } else {\n // setFilteredOptions(options)\n // }\n // }, [value]);\n\n return (\n <div className={clsx(\"select-group\", classNameGroup)} style={styleGroup}>\n <Input\n inputClassName={clsx(\"select\", inputClassName)}\n value={value}\n placeholder=\"Select a value\"\n icon={{\n className: \"select__arrow\",\n element: (\n <Button\n type=\"button\"\n mode=\"icon\"\n className=\"select__arrow-button\"\n onClick={handleToggle}\n onBlur={handleClose}\n >\n <TfiAngleDown size={24} color=\"var(--color-black)\" />\n </Button>\n ),\n }}\n onFocus={handleOpen}\n onBlur={handleInputClose}\n onChange={handleValueChange}\n autoComplete=\"off\"\n {...rest}\n // name={inputProps?.name}\n // {...inputProps}\n />\n {isOpen && (\n <div className=\"select__box\">\n {(filteredOptions as string[]).map(\n (option: string, index: number) => (\n <Button\n key={`index-${index}`}\n type=\"button\"\n mode=\"secondary\"\n className=\"select__option\"\n name={option}\n onMouseDown={handleSelectChange as any}\n >\n {option}\n </Button>\n )\n )}\n </div>\n )}\n </div>\n );\n}\n\nexport default Select;\n","import \"./index.css\";\nimport { Controller, useFormContext } from \"react-hook-form\";\nimport Select from \"../select\";\nimport { FormSelect as FormSelectProps } from \"./index.types\";\n\nexport function FormSelect({\n name,\n isRequired,\n error,\n fieldsToReset,\n ...rest\n}: FormSelectProps) {\n const { control, setValue, clearErrors, unregister, resetField } = useFormContext();\n return (\n <Controller\n name={name}\n control={control}\n rules={{\n ...(isRequired\n ? {\n required: (error?.message as any) || \"Field is required\",\n }\n : {}),\n }}\n render={({ field: { onBlur, ...restField }, fieldState: { error } }) => {\n return (\n <Select\n isRequired\n error={{\n is: !!error,\n message: error?.message,\n }}\n setFormSelected={setValue}\n resetForm={()=> fieldsToReset && fieldsToReset.map((field) => {\n setValue(field, undefined)\n unregister(field)\n })}\n clearError={clearErrors}\n onFormBlur={onBlur}\n {...restField}\n {...rest}\n />\n );\n }}\n />\n );\n}\n\nexport default FormSelect;\n","import { Loading as LoadingProps } from \"./index.types\";\nimport \"./index.css\";\n\nexport function Loading({ img, children }: LoadingProps) {\n return (\n <div className=\"loading\">\n <img src={img ? img : \"../../stories/assets/loading.gif\"} />\n {children}\n </div>\n );\n}\n\nexport default Loading;\n","import { IoClose } from \"react-icons/io5\";\nimport { Modal as ModalProps } from \"./index.types\";\nimport \"./index.css\";\nimport Button from \"../button\";\n\nexport function Modal({\n modalref,\n children,\n title,\n subtitle,\n footer,\n hasCloseButton = true,\n handleClose,\n}: ModalProps) {\n return (\n <>\n <div className=\"modal-overlay\" />\n <div ref={modalref} className=\"modal\">\n {hasCloseButton && (\n <Button\n mode=\"secondary\"\n className=\"modal__close\"\n size=\"small\"\n onClick={handleClose}\n >\n <IoClose />\n </Button>\n )}\n <div className=\"modal__content\">\n {title && (\n <div className=\"modal__header\">\n <h3>{title}</h3>\n <h6>{subtitle}</h6>\n </div>\n )}\n <div className=\"modal__children\">{children}</div>\n {footer && <div className=\"modal__footer\">{footer}</div>}\n </div>\n </div>\n </>\n );\n}\n\nexport default Modal;\n","import React, {\n ReactNode,\n RefObject,\n createContext,\n useContext,\n useEffect,\n useReducer,\n} from \"react\";\nimport Loading from \"../../components/loading\";\n\ntype Action = {\n type: \"set_ref\" | \"start_loading\" | \"stop_loading\" | \"set_message\";\n ref?: RefObject<ReactNode>;\n message?: string;\n};\ntype State = {\n isLoading: boolean;\n message?: string | React.ReactNode;\n ref?: RefObject<ReactNode>;\n};\ntype Context = {\n state: State;\n setRef: (ref: RefObject<ReactNode>) => void;\n setMessage: (message: string) => void;\n startLoading: () => void;\n stopLoading: () => void;\n};\ntype LoadingProviderProps = { children: React.ReactNode };\ntype UseLoadingProps = {\n ref?: RefObject<ReactNode>;\n message?: string;\n};\n\nconst LoadingContext = createContext<Context | undefined>(undefined);\n\nfunction loadingReducer(state: State, action: Action) {\n switch (action.type) {\n case \"set_ref\": {\n return { ...state, ref: action.ref };\n }\n case \"start_loading\": {\n return { ...state, isLoading: true };\n }\n case \"stop_loading\": {\n return { ...state, isLoading: false };\n }\n case \"set_message\": {\n return { ...state, message: action.message };\n }\n default: {\n throw new Error(`Unhandled action type: ${action.type}`);\n }\n }\n}\n\nfunction LoadingProvider({ children }: LoadingProviderProps) {\n const [{ isLoading, message, ref }, dispatch] = useReducer(loadingReducer, {\n isLoading: false,\n message: \"Loading\",\n ref: undefined,\n });\n\n const setRef = (ref: RefObject<ReactNode>) => {\n dispatch({ type: \"set_ref\", ref });\n };\n\n const setMessage = (message: string) => {\n dispatch({ type: \"set_message\", message });\n };\n\n const startLoading = () => {\n dispatch({ type: \"start_loading\" });\n };\n\n const stopLoading = () => {\n dispatch({ type: \"stop_loading\" });\n };\n\n return (\n <LoadingContext.Provider\n value={{\n state: { ref, message, isLoading },\n setMessage,\n setRef,\n startLoading,\n stopLoading,\n }}\n >\n {!ref && <Loading>{message}</Loading>}\n {children}\n </LoadingContext.Provider>\n );\n}\n\nfunction useLoading({ ref, message }: UseLoadingProps = {}) {\n const context = useContext(LoadingContext);\n\n // only happens if there is an initial mode value.\n useEffect(() => {\n ref && context?.setRef(ref);\n message && context?.setMessage(message);\n }, []);\n\n if (context === undefined) {\n throw new Error(\"useLoading must be used within a LoadingProvider\");\n }\n\n return context;\n}\n\nexport { LoadingContext, LoadingProvider, useLoading };\n","import React, {\n ReactNode,\n RefObject,\n createContext,\n useCallback,\n useContext,\n useEffect,\n useReducer,\n useRef,\n} from \"react\";\nimport Modal from \"../../components/modal\";\n// import Modal from \"../../components/Modal\";\n\ntype Modal = {\n title?: React.ReactNode;\n subtitle?: React.ReactNode;\n content?: React.ReactNode;\n hasCloseButton?: boolean;\n footer?: React.ReactNode;\n};\n\ntype Action = {\n type: \"open_modal\" | \"close_modal\";\n modal?: Modal;\n};\n\ninterface State extends Modal {\n isModal: boolean;\n}\n\ntype Context = {\n state: State;\n openModal: (modal?: Modal) => void;\n closeModal: () => void;\n};\n\ntype ModalProviderProps = { children: React.ReactNode };\n\ntype UseModalProps = {};\n\ninterface HTMLEvent extends Event {\n target: HTMLElement;\n}\n\nconst ModalContext = createContext<Context | undefined>(undefined);\n\nfunction modalReducer(state: State, action: Action) {\n switch (action.type) {\n case \"open_modal\": {\n return { ...state, ...action.modal, isModal: true };\n }\n case \"close_modal\": {\n return { ...state, isModal: false };\n }\n default: {\n throw new Error(`Unhandled action type: ${action.type}`);\n }\n }\n}\n\nconst defaultState = {\n subtitle: undefined,\n title: undefined,\n content: undefined,\n hasCloseButton: true,\n footer: undefined,\n};\n\nfunction ModalProvider({ children }: ModalProviderProps) {\n const ref = useRef<HTMLDivElement>(null);\n const [state, dispatch] = useReducer(modalReducer, {\n isModal: false,\n ...defaultState,\n });\n\n const openModal = (modal?: Modal) => {\n dispatch({ type: \"open_modal\", modal });\n };\n\n const closeModal = () => {\n dispatch({ type: \"close_modal\" });\n };\n\n useEffect(() => {\n if (state.isModal) {\n const listener = (e: MouseEvent) => {\n if (\n state.isModal &&\n ref.current &&\n !ref.current.contains(e.target as Node)\n ) {\n closeModal();\n }\n };\n\n document.addEventListener(\"mousedown\", listener);\n return () => {\n document.removeEventListener(\"mousedown\", listener);\n };\n }\n }, [closeModal]);\n\n return (\n <ModalContext.Provider\n value={{\n state,\n openModal,\n closeModal,\n }}\n >\n {children}\n {state.isModal && (\n <Modal\n modalref={ref}\n title={state.title}\n footer={state.footer}\n handleClose={closeModal}\n subtitle={state.subtitle}\n >\n {state.content}\n </Modal>\n )}\n </ModalContext.Provider>\n );\n}\n\nfunction useModal({}: UseModalProps = {}) {\n const context = useContext(ModalContext);\n\n if (context === undefined) {\n throw new Error(\"useModal must be used within a ModalProvider\");\n }\n\n return context;\n}\n\nexport { ModalContext, ModalProvider, useModal };\n"],"names":["_jsx","_jsxs","_Fragment"],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ import "./index.css";
2
+ import { AccordionButton as AccordionButtonProps } from "./index.types";
3
+ export declare function AccordionButton({ children, is, label, ...rest }: AccordionButtonProps): import("react/jsx-runtime").JSX.Element;
4
+ export default AccordionButton;
@@ -0,0 +1,4 @@
1
+ import "./index.css";
2
+ import { AccordionContent as AccordionContentProps } from "./index.types";
3
+ export declare const AccordionContent: ({ children, label, toggle, }: AccordionContentProps) => false | "" | import("react/jsx-runtime").JSX.Element | undefined;
4
+ export default AccordionContent;
@@ -0,0 +1,4 @@
1
+ import "./index.css";
2
+ import { AccordionItem as AccordionItemProps } from "./index.types";
3
+ export declare function AccordionItem({ children, label, isExpanded, }: AccordionItemProps): import("react/jsx-runtime").JSX.Element;
4
+ export default AccordionItem;
@@ -0,0 +1,4 @@
1
+ import "./index.css";
2
+ import { Accordion as AccordionProps } from "./index.types";
3
+ export declare function Accordion({ children, expanded, }: AccordionProps): import("react/jsx-runtime").JSX.Element;
4
+ export default Accordion;
@@ -0,0 +1,4 @@
1
+ export { Accordion } from "./accordion";
2
+ export { AccordionItem } from "./accordion-item";
3
+ export { AccordionButton } from "./accordion-button";
4
+ export { AccordionContent } from "./accordion-content";
@@ -0,0 +1,6 @@
1
+ import { Meta, StoryObj } from "@storybook/react";
2
+ import { Accordion } from "./accordion";
3
+ declare const meta: Meta<typeof Accordion>;
4
+ type Story = StoryObj<typeof Accordion>;
5
+ export declare const Primary: Story;
6
+ export default meta;
@@ -0,0 +1,34 @@
1
+ import { ReactNode } from "react";
2
+ import { ButtonAsButton, ButtonAsLink } from "../button/index.types";
3
+ export interface Accordion {
4
+ /**
5
+ * Accordion children
6
+ */
7
+ children: ReactNode | ReactNode[];
8
+ /**
9
+ * Expand all items
10
+ */
11
+ expanded: "all" | "none" | "custom";
12
+ }
13
+ export interface ToggleArray {
14
+ [key: string]: {
15
+ depth: number;
16
+ isToggle: boolean;
17
+ paddingLeft?: string;
18
+ };
19
+ }
20
+ export interface AccordionItem {
21
+ children: ReactNode | ReactNode[];
22
+ label?: string;
23
+ isExpanded?: boolean;
24
+ }
25
+ export type AccordionButton = ButtonAsButton & ButtonAsLink & {
26
+ is?: "button" | "link";
27
+ label?: string;
28
+ toggle?: ToggleArray;
29
+ };
30
+ export interface AccordionContent {
31
+ children: ReactNode | ReactNode[];
32
+ label?: string;
33
+ toggle?: ToggleArray;
34
+ }
@@ -0,0 +1,5 @@
1
+ /// <reference types="react" />
2
+ import { ButtonAsButton, ButtonAsLink } from "./index.types";
3
+ import "./index.css";
4
+ export declare function Button({ children, className, icon, isNewWindow, mode, size, as, CustomAnchor, ...rest }: ButtonAsButton | ButtonAsLink): JSX.Element;
5
+ export default Button;
@@ -0,0 +1,7 @@
1
+ import { StoryObj, Meta } from "@storybook/react";
2
+ import { Button } from "./index";
3
+ declare const meta: Meta<typeof Button>;
4
+ export default meta;
5
+ type Story = StoryObj<typeof Button>;
6
+ export declare const Primary: Story;
7
+ export declare const Secondary: Story;
@@ -0,0 +1,41 @@
1
+ /// <reference types="react" />
2
+ type Mode = "primary" | "secondary" | "icon";
3
+ type Size = "small" | "medium" | "large";
4
+ export type ButtonAsButton = Base & Omit<React.ButtonHTMLAttributes<HTMLButtonElement>, keyof Base> & {
5
+ as?: "button";
6
+ };
7
+ export type ButtonAsLink = Base & Omit<React.AnchorHTMLAttributes<HTMLAnchorElement>, keyof Base> & {
8
+ as?: "link";
9
+ };
10
+ export interface Base {
11
+ /**
12
+ * What to put inside the button (string or html elements)
13
+ */
14
+ children?: JSX.Element | string;
15
+ /**
16
+ * Custom css class name
17
+ */
18
+ className?: string;
19
+ /**
20
+ * If you want to add an icon image next to the children. Needs to be an react html element.
21
+ */
22
+ icon?: JSX.Element;
23
+ /**
24
+ * If you want to open a new window on the browser when you click the button. Only applies to html anchor elements.
25
+ */
26
+ isNewWindow?: boolean;
27
+ /**
28
+ * Css mode used to style the button.
29
+ */
30
+ mode?: Mode;
31
+ /**
32
+ * Button size.
33
+ */
34
+ size?: Size;
35
+ /**
36
+ * Button type.
37
+ */
38
+ as?: "button" | "link";
39
+ CustomAnchor?: React.ComponentClass<any>;
40
+ }
41
+ export {};
@@ -0,0 +1,4 @@
1
+ import "./index.css";
2
+ import { FormInputs } from "./index.types";
3
+ export declare function FormInput({ name, isRequired, error, defaultValue, ...rest }: FormInputs): import("react/jsx-runtime").JSX.Element;
4
+ export default FormInput;
@@ -0,0 +1,4 @@
1
+ import "./index.css";
2
+ import { FormSelect as FormSelectProps } from "./index.types";
3
+ export declare function FormSelect({ name, isRequired, error, fieldsToReset, ...rest }: FormSelectProps): import("react/jsx-runtime").JSX.Element;
4
+ export default FormSelect;
@@ -0,0 +1,4 @@
1
+ import "./index.css";
2
+ import { FormInputs } from "./index.types";
3
+ export declare function FormTextArea({ name, isRequired, error, ...rest }: FormInputs): import("react/jsx-runtime").JSX.Element;
4
+ export default FormTextArea;
@@ -0,0 +1,4 @@
1
+ import { Form as FormProps } from "./index.types";
2
+ import "./index.css";
3
+ export declare function Form({ children, onSubmit, submitButton, initialState, ...rest }: FormProps): import("react/jsx-runtime").JSX.Element;
4
+ export default Form;
@@ -0,0 +1,7 @@
1
+ import { Meta, StoryObj } from "@storybook/react";
2
+ import { Form } from "./index";
3
+ declare const meta: Meta<typeof Form>;
4
+ export default meta;
5
+ type Story = StoryObj<typeof Form>;
6
+ export declare const InsertForm: Story;
7
+ export declare const UpdateForm: Story;
@@ -0,0 +1,45 @@
1
+ import { Dispatch, JSXElementConstructor, ReactElement, ReactNode, SetStateAction } from "react";
2
+ import { FieldError, FieldErrorsImpl, FieldValues, FormState, Merge } from "react-hook-form";
3
+ import { Input } from "../input/index.types";
4
+ import { TextArea } from "../text-area/index.types";
5
+ import { Select } from "../select/index.types";
6
+ export interface Form {
7
+ /**
8
+ * Custom css class name.
9
+ */
10
+ className?: string;
11
+ children?: ReactNode | ReactNode[];
12
+ onSubmit: (data: FieldValues, setResult: SetResult) => void;
13
+ submitButton?: {
14
+ label: string;
15
+ };
16
+ initialState?: FormState<FieldValues>;
17
+ }
18
+ export interface ReactNodeControlled extends ReactElement<any, string | JSXElementConstructor<any>> {
19
+ props: ControlledInput;
20
+ }
21
+ export type ControlledInput = Input & TextArea & {
22
+ name: string;
23
+ error: string;
24
+ };
25
+ export type SetResult = Dispatch<SetStateAction<{
26
+ message?: string;
27
+ isSuccess: boolean;
28
+ }>>;
29
+ export interface FormInputs extends Input {
30
+ name: string;
31
+ isRequired?: boolean;
32
+ error?: {
33
+ message?: string | false | FieldError | Merge<FieldError, FieldErrorsImpl<any>> | undefined;
34
+ is?: boolean;
35
+ };
36
+ }
37
+ export interface FormSelect extends Select {
38
+ name: string;
39
+ isRequired?: boolean;
40
+ error?: {
41
+ message?: string | false | FieldError | Merge<FieldError, FieldErrorsImpl<any>> | undefined;
42
+ is?: boolean;
43
+ };
44
+ fieldsToReset?: string[];
45
+ }
@@ -0,0 +1,4 @@
1
+ import { Input as InputProps } from "./index.types";
2
+ import "./index.css";
3
+ export declare function Input({ inputClassName, classNameGroup, error, inputRef, styleGroup, placeholder, label, labelClass, icon, ...rest }: InputProps): import("react/jsx-runtime").JSX.Element;
4
+ export default Input;
@@ -0,0 +1,8 @@
1
+ import { Meta, StoryObj } from "@storybook/react";
2
+ import { Input } from "./index";
3
+ declare const meta: Meta<typeof Input>;
4
+ export default meta;
5
+ type Story = StoryObj<typeof Input>;
6
+ export declare const Primary: Story;
7
+ export declare const Error: Story;
8
+ export declare const Search: Story;
@@ -0,0 +1,40 @@
1
+ import { dataTheme } from "data-theme";
2
+ import { CSSProperties, ReactNode, Ref } from "react";
3
+ import { FieldError, FieldErrorsImpl, Merge } from "react-hook-form";
4
+ export interface Input extends React.InputHTMLAttributes<HTMLInputElement> {
5
+ /**
6
+ * Custom css class name.
7
+ */
8
+ inputClassName?: string;
9
+ /**
10
+ * Custom css class name for group wrapper.
11
+ */
12
+ classNameGroup?: string;
13
+ /**
14
+ * Data theme for the html. `${themes}`
15
+ */
16
+ paletteTheme?: dataTheme;
17
+ /**
18
+ * Error message to show when input has an error.
19
+ */
20
+ error?: {
21
+ message?: string | false | FieldError | Merge<FieldError, FieldErrorsImpl<any>> | undefined;
22
+ is?: boolean;
23
+ };
24
+ /**
25
+ * Ref react elemnt to use
26
+ */
27
+ inputRef?: Ref<HTMLInputElement>;
28
+ /**
29
+ * Style input group wrapper
30
+ */
31
+ styleGroup?: CSSProperties;
32
+ isRequired?: boolean;
33
+ label?: string;
34
+ labelClass?: string;
35
+ icon?: {
36
+ className?: string;
37
+ element?: ReactNode;
38
+ position?: "right" | "left";
39
+ };
40
+ }
@@ -0,0 +1,4 @@
1
+ import { Loading as LoadingProps } from "./index.types";
2
+ import "./index.css";
3
+ export declare function Loading({ img, children }: LoadingProps): import("react/jsx-runtime").JSX.Element;
4
+ export default Loading;
@@ -0,0 +1,6 @@
1
+ import { Meta, StoryObj } from "@storybook/react";
2
+ import { Loading } from "./index";
3
+ declare const meta: Meta<typeof Loading>;
4
+ export default meta;
5
+ type Story = StoryObj<typeof Loading>;
6
+ export declare const Primary: Story;
@@ -0,0 +1,11 @@
1
+ import React from "react";
2
+ export interface Loading {
3
+ /**
4
+ * Image or gif used
5
+ */
6
+ img?: string;
7
+ /**
8
+ * Message that its sent
9
+ */
10
+ children?: React.ReactNode;
11
+ }
@@ -0,0 +1,4 @@
1
+ import { Modal as ModalProps } from "./index.types";
2
+ import "./index.css";
3
+ export declare function Modal({ modalref, children, title, subtitle, footer, hasCloseButton, handleClose, }: ModalProps): import("react/jsx-runtime").JSX.Element;
4
+ export default Modal;
@@ -0,0 +1,6 @@
1
+ import { Meta, StoryObj } from "@storybook/react";
2
+ import { Modal } from "./index";
3
+ declare const meta: Meta<typeof Modal>;
4
+ export default meta;
5
+ type Story = StoryObj<typeof Modal>;
6
+ export declare const Primary: Story;
@@ -0,0 +1,31 @@
1
+ import React from "react";
2
+ export interface Modal {
3
+ /**
4
+ * Children
5
+ */
6
+ children?: React.ReactNode;
7
+ /**
8
+ * Modal footer
9
+ */
10
+ footer?: React.ReactNode;
11
+ /**
12
+ * Close click function
13
+ */
14
+ handleClose?: any;
15
+ /**
16
+ * Modal close button
17
+ */
18
+ hasCloseButton?: boolean;
19
+ /**
20
+ * Modal body ref
21
+ */
22
+ modalref?: React.LegacyRef<HTMLDivElement>;
23
+ /**
24
+ * Subtitle of the modal
25
+ */
26
+ subtitle?: React.ReactNode;
27
+ /**
28
+ * Title of the modal
29
+ */
30
+ title?: React.ReactNode;
31
+ }
@@ -0,0 +1,4 @@
1
+ import { Select as SelectProps } from "./index.types";
2
+ import "./index.css";
3
+ export declare function Select({ inputClassName, classNameGroup, options, styleGroup, defaultValue, setFormSelected, clearError, resetForm, onFormBlur, handleSelect, ...rest }: SelectProps): import("react/jsx-runtime").JSX.Element;
4
+ export default Select;
@@ -0,0 +1,7 @@
1
+ import { Meta, StoryObj } from "@storybook/react";
2
+ import { Select } from "./index";
3
+ declare const meta: Meta<typeof Select>;
4
+ export default meta;
5
+ type Story = StoryObj<typeof Select>;
6
+ export declare const Primary: Story;
7
+ export declare const Error: Story;
@@ -0,0 +1,30 @@
1
+ import { CSSProperties } from "react";
2
+ import { dataTheme } from "data-theme";
3
+ export interface Select extends React.InputHTMLAttributes<HTMLInputElement> {
4
+ /**
5
+ * Custom css class name.
6
+ */
7
+ inputClassName?: string;
8
+ /**
9
+ * Custom css class name for group wrapper.
10
+ */
11
+ classNameGroup?: string;
12
+ /**
13
+ * Data theme for the html. `${themes}`
14
+ */
15
+ paletteTheme?: dataTheme;
16
+ /**
17
+ * Error message to show when input has an error.
18
+ */
19
+ options?: string[];
20
+ /**
21
+ * Style input group wrapper
22
+ */
23
+ styleGroup?: CSSProperties;
24
+ defaultValue?: string;
25
+ setFormSelected?: any;
26
+ clearError?: any;
27
+ resetForm?: any;
28
+ onFormBlur?: any;
29
+ handleSelect?: any;
30
+ }