@geoinsight/react-components 1.0.6 → 1.0.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.
- package/.pnp.cjs +1488 -1484
- package/.yarn/install-state.gz +0 -0
- package/dist/cjs/index.js +40 -40
- package/dist/cjs/index.js.map +1 -1
- package/dist/esm/index.js +41 -41
- package/dist/esm/index.js.map +1 -1
- package/package.json +1 -1
- package/dist/cjs/components/map/index.d.ts +0 -4
- package/dist/cjs/components/map/index.stories.d.ts +0 -12
- package/dist/cjs/components/map/index.types.d.ts +0 -135
- package/dist/cjs/components/map/map-deckgl.d.ts +0 -4
- package/dist/cjs/components/map/map-mapbox.d.ts +0 -11
- package/dist/cjs/components/map/map-popup.d.ts +0 -12
- package/dist/cjs/components/map/map-toc.d.ts +0 -13
- package/dist/cjs/components/map-control/index.d.ts +0 -4
- package/dist/cjs/components/map-control/index.types.d.ts +0 -11
- package/dist/esm/components/map/index.d.ts +0 -4
- package/dist/esm/components/map/index.stories.d.ts +0 -12
- package/dist/esm/components/map/index.types.d.ts +0 -135
- package/dist/esm/components/map/map-deckgl.d.ts +0 -4
- package/dist/esm/components/map/map-mapbox.d.ts +0 -11
- package/dist/esm/components/map/map-popup.d.ts +0 -12
- package/dist/esm/components/map/map-toc.d.ts +0 -13
- package/dist/esm/components/map-control/index.d.ts +0 -4
- package/dist/esm/components/map-control/index.types.d.ts +0 -11
- /package/.yarn/unplugged/{@swc-core-virtual-a4869543ec → @swc-core-virtual-5a2568d98e}/node_modules/@swc/core/.ready +0 -0
- /package/.yarn/unplugged/{@swc-core-virtual-a4869543ec → @swc-core-virtual-5a2568d98e}/node_modules/@swc/core/CHANGELOG.md +0 -0
- /package/.yarn/unplugged/{@swc-core-virtual-a4869543ec → @swc-core-virtual-5a2568d98e}/node_modules/@swc/core/LICENSE +0 -0
- /package/.yarn/unplugged/{@swc-core-virtual-a4869543ec → @swc-core-virtual-5a2568d98e}/node_modules/@swc/core/README.md +0 -0
- /package/.yarn/unplugged/{@swc-core-virtual-a4869543ec → @swc-core-virtual-5a2568d98e}/node_modules/@swc/core/Visitor.d.ts +0 -0
- /package/.yarn/unplugged/{@swc-core-virtual-a4869543ec → @swc-core-virtual-5a2568d98e}/node_modules/@swc/core/Visitor.js +0 -0
- /package/.yarn/unplugged/{@swc-core-virtual-a4869543ec → @swc-core-virtual-5a2568d98e}/node_modules/@swc/core/binding.d.ts +0 -0
- /package/.yarn/unplugged/{@swc-core-virtual-a4869543ec → @swc-core-virtual-5a2568d98e}/node_modules/@swc/core/binding.js +0 -0
- /package/.yarn/unplugged/{@swc-core-virtual-a4869543ec → @swc-core-virtual-5a2568d98e}/node_modules/@swc/core/bindings/README.md +0 -0
- /package/.yarn/unplugged/{@swc-core-virtual-a4869543ec → @swc-core-virtual-5a2568d98e}/node_modules/@swc/core/bindings/binding_core_wasm/package.json +0 -0
- /package/.yarn/unplugged/{@swc-core-virtual-a4869543ec → @swc-core-virtual-5a2568d98e}/node_modules/@swc/core/index.d.ts +0 -0
- /package/.yarn/unplugged/{@swc-core-virtual-a4869543ec → @swc-core-virtual-5a2568d98e}/node_modules/@swc/core/index.js +0 -0
- /package/.yarn/unplugged/{@swc-core-virtual-a4869543ec → @swc-core-virtual-5a2568d98e}/node_modules/@swc/core/package.json +0 -0
- /package/.yarn/unplugged/{@swc-core-virtual-a4869543ec → @swc-core-virtual-5a2568d98e}/node_modules/@swc/core/postinstall.js +0 -0
- /package/.yarn/unplugged/{@swc-core-virtual-a4869543ec → @swc-core-virtual-5a2568d98e}/node_modules/@swc/core/spack.d.ts +0 -0
- /package/.yarn/unplugged/{@swc-core-virtual-a4869543ec → @swc-core-virtual-5a2568d98e}/node_modules/@swc/core/spack.js +0 -0
- /package/.yarn/unplugged/{@swc-core-virtual-a4869543ec → @swc-core-virtual-5a2568d98e}/node_modules/@swc/core/util.d.ts +0 -0
- /package/.yarn/unplugged/{@swc-core-virtual-a4869543ec → @swc-core-virtual-5a2568d98e}/node_modules/@swc/core/util.js +0 -0
package/.yarn/install-state.gz
CHANGED
|
Binary file
|
package/dist/cjs/index.js
CHANGED
|
@@ -9,14 +9,52 @@ var reactHookForm = require('react-hook-form');
|
|
|
9
9
|
var tb = require('react-icons/tb');
|
|
10
10
|
var io5 = require('react-icons/io5');
|
|
11
11
|
|
|
12
|
-
const
|
|
12
|
+
const generateId = () => {
|
|
13
|
+
return `id-${Math.random().toString(36).slice(2, 11)}`;
|
|
14
|
+
};
|
|
15
|
+
|
|
16
|
+
function MenuContent({ children, ...props }) {
|
|
17
|
+
const { items } = react.useContext(useMenu());
|
|
18
|
+
const menuId = react.useMemo(() => props["data-menu-id"], [props]);
|
|
19
|
+
const isExpanded = react.useMemo(() => {
|
|
20
|
+
return items[menuId]?.isExpanded;
|
|
21
|
+
}, [items, menuId]);
|
|
22
|
+
if (!isExpanded)
|
|
23
|
+
return;
|
|
24
|
+
return jsxRuntime.jsx("div", { ...props, children: children });
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
const ALLOWED_CHILD_COMPONENT$1 = [MenuButton.name, MenuContent.name];
|
|
28
|
+
function MenuItem({ children, ...props }) {
|
|
29
|
+
const { addItem } = react.useContext(useMenu());
|
|
30
|
+
const menuId = react.useRef("");
|
|
31
|
+
react.useEffect(() => {
|
|
32
|
+
menuId.current = generateId();
|
|
33
|
+
addItem({
|
|
34
|
+
id: menuId.current,
|
|
35
|
+
isExpanded: true,
|
|
36
|
+
});
|
|
37
|
+
}, []);
|
|
38
|
+
return (jsxRuntime.jsx("div", { "data-menu-id": menuId.current, ...props, children: react.Children.map(children, (child) => {
|
|
39
|
+
if (!react.isValidElement(child))
|
|
40
|
+
return;
|
|
41
|
+
const childComponent = child.type;
|
|
42
|
+
if (!ALLOWED_CHILD_COMPONENT$1.includes(childComponent.name))
|
|
43
|
+
return;
|
|
44
|
+
return react.cloneElement(child, {
|
|
45
|
+
"data-menu-id": menuId.current,
|
|
46
|
+
});
|
|
47
|
+
}) }));
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
const ALLOWED_CHILD_COMPONENT = [MenuItem.name];
|
|
13
51
|
function MenuWrapper({ children }) {
|
|
14
52
|
const menuItemComponents = react.useMemo(() => {
|
|
15
53
|
return react.Children.map(children, (child) => {
|
|
16
54
|
if (!react.isValidElement(child))
|
|
17
55
|
return;
|
|
18
56
|
const childComponent = child.type;
|
|
19
|
-
if (!ALLOWED_CHILD_COMPONENT
|
|
57
|
+
if (!ALLOWED_CHILD_COMPONENT.includes(childComponent.name))
|
|
20
58
|
return;
|
|
21
59
|
return react.cloneElement(child);
|
|
22
60
|
});
|
|
@@ -86,44 +124,6 @@ function MenuButton({ anchor, children, buttonClassName, nested, subnested, drop
|
|
|
86
124
|
}, buttonClassName), onClick: handleClick, ...props, children: [children, dropdown ? (isToggled ? (jsxRuntime.jsx(tfi.TfiAngleDown, { size: "1rem" })) : (jsxRuntime.jsx(tfi.TfiAngleUp, { size: "1rem" }))) : null] }));
|
|
87
125
|
}
|
|
88
126
|
|
|
89
|
-
function MenuContent({ children, ...props }) {
|
|
90
|
-
const { items } = react.useContext(useMenu());
|
|
91
|
-
const menuId = react.useMemo(() => props["data-menu-id"], [props]);
|
|
92
|
-
const isExpanded = react.useMemo(() => {
|
|
93
|
-
return items[menuId]?.isExpanded;
|
|
94
|
-
}, [items, menuId]);
|
|
95
|
-
if (!isExpanded)
|
|
96
|
-
return;
|
|
97
|
-
return jsxRuntime.jsx("div", { ...props, children: children });
|
|
98
|
-
}
|
|
99
|
-
|
|
100
|
-
const generateId = () => {
|
|
101
|
-
return `id-${Math.random().toString(36).slice(2, 11)}`;
|
|
102
|
-
};
|
|
103
|
-
|
|
104
|
-
const ALLOWED_CHILD_COMPONENT = ["MenuButton", "MenuContent"];
|
|
105
|
-
function MenuItem({ children, ...props }) {
|
|
106
|
-
const { addItem } = react.useContext(useMenu());
|
|
107
|
-
const menuId = react.useRef("");
|
|
108
|
-
react.useEffect(() => {
|
|
109
|
-
menuId.current = generateId();
|
|
110
|
-
addItem({
|
|
111
|
-
id: menuId.current,
|
|
112
|
-
isExpanded: true,
|
|
113
|
-
});
|
|
114
|
-
}, []);
|
|
115
|
-
return (jsxRuntime.jsx("div", { "data-menu-id": menuId.current, ...props, children: react.Children.map(children, (child) => {
|
|
116
|
-
if (!react.isValidElement(child))
|
|
117
|
-
return;
|
|
118
|
-
const childComponent = child.type;
|
|
119
|
-
if (!ALLOWED_CHILD_COMPONENT.includes(childComponent.name))
|
|
120
|
-
return;
|
|
121
|
-
return react.cloneElement(child, {
|
|
122
|
-
"data-menu-id": menuId.current,
|
|
123
|
-
});
|
|
124
|
-
}) }));
|
|
125
|
-
}
|
|
126
|
-
|
|
127
127
|
const Menu = {
|
|
128
128
|
Root: MenuRoot,
|
|
129
129
|
Item: MenuItem,
|
package/dist/cjs/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../src/components/menu/menu-wrapper.tsx","../../src/components/menu/menu-root.tsx","../../src/components/button/index.tsx","../../src/components/menu/menu-button.tsx","../../src/components/menu/menu-content.tsx","../../src/components/menu/menu-utils.ts","../../src/components/menu/menu-item.tsx","../../src/components/menu/index.tsx","../../src/components/form/index.tsx","../../src/components/input/index.tsx","../../src/components/form/form-input.tsx","../../src/components/text-area/index.tsx","../../src/components/form/form-text-area.tsx","../../src/components/select/index.tsx","../../src/components/form/form-select.tsx","../../src/stories/assets/loading.gif","../../src/components/loading/index.tsx","../../src/components/modal/index.tsx","../../src/context/loading/index.tsx","../../src/context/modal/index.tsx","../../src/context/theme/index.tsx"],"sourcesContent":["/** React */\nimport React, {\n Children,\n ComponentType,\n ReactNode,\n cloneElement,\n isValidElement,\n useMemo,\n} from \"react\";\n\n/** CSS */\nimport \"./index.css\";\n\n/** Props */\ntype MenuWrapperProps = {\n children: ReactNode;\n};\n\nconst ALLOWED_CHILD_COMPONENT = [\"MenuItem\"];\n\nexport function MenuWrapper({ children }: MenuWrapperProps) {\n const menuItemComponents = useMemo(() => {\n return Children.map(children, (child) => {\n if (!isValidElement(child)) return;\n\n const childComponent = child.type as ComponentType;\n\n if (!ALLOWED_CHILD_COMPONENT.includes(childComponent.name)) return;\n\n return cloneElement(child);\n });\n }, [children]);\n\n return <div className=\"menu\">{menuItemComponents}</div>;\n}\n","/** React */\nimport React, { ReactNode, createContext, useContext, useState } from \"react\";\n\n/** Wrapper */\nimport { MenuWrapper } from \"./menu-wrapper\";\n\n/** Types */\ntype Item = {\n id: string;\n isExpanded: boolean;\n};\n\n/** Context type */\ntype MenuContextType = {\n items: Record<string, Item>;\n addItem: (item: Item) => void;\n toggle: (id: string) => void;\n};\n\n/** Context */\nconst MenuContext = createContext({} as MenuContextType);\n\n/** Props */\ntype MenuRootProps = {\n children: ReactNode;\n isOpenByDefault?: true;\n};\n\nexport function MenuRoot({ children, isOpenByDefault }: MenuRootProps) {\n const [items, setItems] = useState<Record<string, Item>>({});\n\n const addItem = (item: Item) => {\n setItems((state) => ({\n ...state,\n [item.id]: {\n ...item,\n isExpanded: isOpenByDefault || false,\n },\n }));\n };\n\n const toggle = (id: string) => {\n setItems((state) => ({\n ...state,\n [id]: {\n ...items[id],\n isExpanded: !items[id].isExpanded || false,\n },\n }));\n };\n\n return (\n <MenuContext.Provider value={{ items, addItem, toggle }}>\n <MenuWrapper>{children}</MenuWrapper>\n </MenuContext.Provider>\n );\n}\n\nexport function useMenu() {\n if (MenuContext === undefined) {\n throw new Error(\"useMenu must be used within a MenuContext Provider\");\n }\n\n return MenuContext;\n}\n","import clsx from \"clsx\";\nimport { ButtonAsButton, ButtonAsLink } from \"./index.types\";\nimport \"./index.css\";\nimport { ReactElement, ReactNode } from \"react\";\n\nexport const Anchor = ({\n Custom,\n children,\n ...rest\n}: {\n Custom?: React.ComponentClass<any>;\n children?: ReactNode[];\n}) => {\n return Custom ? (\n <Custom {...rest}>{children}</Custom>\n ) : (\n <a {...rest}>{children}</a>\n );\n};\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 `link__${mode}`,\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","/** React */\nimport React, {\n HtmlHTMLAttributes,\n ReactNode,\n useContext,\n useMemo,\n useState,\n} from \"react\";\n\n/** CSS */\nimport \"./index.css\";\nimport clsx from \"clsx\";\n\n/** Icons */\nimport { TfiAngleUp, TfiAngleDown } from \"react-icons/tfi\";\n\n/** Hook */\nimport { useMenu } from \"./menu-root\";\nimport { Anchor } from \"../button\";\n\n/** Props */\ntype Props = HtmlHTMLAttributes<HTMLDivElement> & {\n anchor?: React.AnchorHTMLAttributes<HTMLAnchorElement> & { Custom?: React.ComponentClass<any>;}\n children: ReactNode;\n buttonClassName?: string;\n nested?: boolean;\n subnested?: boolean;\n dropdown?: boolean;\n isLink?: boolean;\n isSelected?: boolean;\n handleCallbackClick?: () => void;\n \"data-menu-id\"?: string;\n};\n\nexport function MenuButton({\n anchor,\n children,\n buttonClassName,\n nested,\n subnested,\n dropdown,\n isLink,\n isSelected,\n handleCallbackClick,\n ...props\n}: Props) {\n const { toggle } = useContext(useMenu());\n const [isToggled, setIsToggled] = useState(false);\n const menuId = useMemo(() => props[\"data-menu-id\"], [props]);\n\n const handleClick = () => {\n toggle(menuId as string);\n setIsToggled(!isToggled);\n\n handleCallbackClick && handleCallbackClick();\n };\n\n return anchor ? (\n <Anchor\n className={clsx(\n \"menu-button\",\n {\n \"menu-button-dropdown\": dropdown,\n \"menu-button-nested\": nested,\n \"menu-button-subnested\": subnested,\n \"menu-button-is-link\": isLink,\n \"menu-button-is-selected\": isSelected,\n },\n buttonClassName\n )}\n {...(anchor as React.AnchorHTMLAttributes<HTMLAnchorElement>)}\n >\n {children}\n {dropdown ? (\n isToggled ? (\n <TfiAngleDown size=\"1rem\" />\n ) : (\n <TfiAngleUp size=\"1rem\" />\n )\n ) : null}\n </Anchor>\n ) : (\n <div\n role=\"button\"\n className={clsx(\n \"menu-button\",\n {\n \"menu-button-dropdown\": dropdown,\n \"menu-button-nested\": nested,\n \"menu-button-subnested\": subnested,\n \"menu-button-is-link\": isLink,\n \"menu-button-is-selected\": isSelected,\n },\n buttonClassName\n )}\n onClick={handleClick}\n {...props}\n >\n {children}\n {dropdown ? (\n isToggled ? (\n <TfiAngleDown size=\"1rem\" />\n ) : (\n <TfiAngleUp size=\"1rem\" />\n )\n ) : null}\n </div>\n );\n}\n","/** React */\nimport React, { HTMLAttributes, useContext, useMemo } from \"react\";\n\n/** Hook */\nimport { useMenu } from \"./menu-root\";\n\n/** Props */\ntype Props = HTMLAttributes<HTMLDivElement> & {\n \"data-menu-id\"?: string | undefined;\n};\n\nexport function MenuContent({ children, ...props }: Props) {\n const { items } = useContext(useMenu());\n const menuId = useMemo(() => props[\"data-menu-id\"], [props]);\n const isExpanded = useMemo(() => {\n return items[menuId as string]?.isExpanded;\n }, [items, menuId]);\n\n if (!isExpanded) return;\n\n return <div {...props}>{children}</div>;\n}\n","export const generateId = () => {\n return `id-${Math.random().toString(36).slice(2, 11)}`;\n};\n","/** React */\nimport React, {\n Children,\n ComponentType,\n HtmlHTMLAttributes,\n ReactElement,\n ReactNode,\n cloneElement,\n isValidElement,\n useContext,\n useEffect,\n useRef,\n} from \"react\";\n\n/** CSS */\nimport \"./index.css\";\n\n/** Hooks */\nimport { useMenu } from \"./menu-root\";\n\n/** Utils */\nimport { generateId } from \"./menu-utils\";\n\n/** Props */\ntype Props = HtmlHTMLAttributes<HTMLDivElement> & {\n children: ReactNode;\n};\n\nconst ALLOWED_CHILD_COMPONENT = [\"MenuButton\", \"MenuContent\"];\n\nexport function MenuItem({ children, ...props }: Props) {\n const { addItem } = useContext(useMenu());\n const menuId = useRef<string>(\"\");\n\n useEffect(() => {\n menuId.current = generateId();\n\n addItem({\n id: menuId.current,\n isExpanded: true,\n });\n }, []);\n\n return (\n <div data-menu-id={menuId.current} {...props}>\n {Children.map(children, (child) => {\n if (!isValidElement(child)) return;\n\n const childComponent = child.type as ComponentType;\n\n if (!ALLOWED_CHILD_COMPONENT.includes(childComponent.name)) return;\n\n return cloneElement(child as ReactElement, {\n \"data-menu-id\": menuId.current,\n });\n })}\n </div>\n );\n}\n","import { MenuButton } from \"./menu-button\";\nimport { MenuContent } from \"./menu-content\";\nimport { MenuItem } from \"./menu-item\";\nimport { MenuRoot } from \"./menu-root\";\n\nexport const Menu = {\n Root: MenuRoot,\n Item: MenuItem,\n Button: MenuButton,\n Content: MenuContent,\n};\n\nexport default Menu;\n","import { Form as FormProps } from \"./index.types\";\nimport \"./index.css\";\nimport Button from \"../button\";\nimport { BsCheckCircleFill, BsXCircleFill } from \"react-icons/bs\";\nimport { FormProvider, useForm } from \"react-hook-form\";\nimport { 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 backgroundColor,\n ...rest\n}: FormProps) {\n const methods = useForm(initialState);\n\n const {\n formState: { isValid },\n } = methods;\n\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 style={{ backgroundColor: backgroundColor }}\n onSubmit={methods.handleSubmit((data) => {\n return onSubmit(data, methods, setResult);\n })}\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 labelClassName,\n icon,\n isRequired,\n backgroundColor,\n ...rest\n}: InputProps) {\n return (\n <div\n className={clsx(\"input-group\", classNameGroup)}\n style={{ backgroundColor: backgroundColor, ...styleGroup }}\n >\n <div className=\"input__header\">\n {label && <label className={labelClassName}>{label}</label>}\n {error && error.is && (\n <span className=\"input__header--error\">\n {error.message as string}\n </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 required={isRequired}\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\";\nimport Button from \"../button\";\n\nexport function TextArea({\n buttonDisabled = false,\n className = \"\",\n disabled = true,\n error = {\n is: false,\n message: \"\",\n },\n hasToggleButton = true,\n hideHeight = \"5rem\",\n label,\n labelClassName,\n isRequired,\n placeholder = \"Insert value\",\n showHeight = \"10rem\",\n backgroundColor,\n style = {},\n textareaClassName = \"\",\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\n className={clsx(\"textarea\", className)}\n style={{ backgroundColor: backgroundColor, ...style }}\n >\n <div className=\"textarea__header\">\n {label && <label className={labelClassName}>{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 required={isRequired}\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={buttonDisabled}\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 setFormSelected,\n clearError,\n resetForm,\n onFormBlur,\n handleSelect,\n label,\n labelClassName,\n error,\n backgroundColor,\n isRequired,\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 };\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\n return (\n <div\n className={clsx(\"select-group\", classNameGroup)}\n style={{ backgroundColor: backgroundColor, ...styleGroup }}\n >\n <Input\n inputClassName={clsx(\n \"select\",\n {\n \"select--focus\": isOpen,\n },\n inputClassName\n )}\n value={value}\n error={error}\n required={isRequired}\n placeholder=\"Select a value\"\n icon={{\n className: \"select__arrow\",\n element: (\n <Button\n type=\"button\"\n size=\"large\"\n mode=\"icon\"\n className={clsx(\"select__arrow-button\", {\n \"select__arrow-button--open\": isOpen\n })}\n onClick={handleToggle}\n onBlur={handleClose}\n >\n <TfiAngleDown size={24} />\n </Button>\n ),\n }}\n onFocus={handleOpen}\n onBlur={handleInputClose}\n onChange={handleValueChange}\n autoComplete=\"off\"\n label={label}\n labelClassName={labelClassName}\n {...rest}\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 label,\n ...rest\n}: FormSelectProps) {\n const { control, setValue, clearErrors, unregister, resetField } =\n 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 label={label}\n error={{\n is: !!error,\n message: error?.message || \"\",\n }}\n setFormSelected={setValue}\n resetForm={() =>\n fieldsToReset &&\n fieldsToReset.map((field) => {\n setValue(field, undefined);\n unregister(field);\n })\n }\n clearError={clearErrors}\n onFormBlur={onBlur}\n {...restField}\n {...rest}\n />\n );\n }}\n />\n );\n}\n\nexport default FormSelect;\n","var img = \"data:image/gif;base64,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\";\n export default img;","import { Loading as LoadingProps } from \"./index.types\";\nimport gif from \"../../stories/assets/loading.gif\";\nimport \"./index.css\";\n\nexport function Loading({ img, children }: LoadingProps) {\n return (\n <div className=\"loading\">\n <img src={img ?? gif} />\n <div className=\"loading-message\">{children}</div>\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\";\nimport clsx from \"clsx\";\n\nexport function Modal({\n className,\n modalref,\n children,\n title,\n subtitle,\n footer,\n hasOverlay = true,\n hasCloseButton = true,\n handleClose,\n ...rest\n}: ModalProps) {\n return (\n <>\n {hasOverlay && <div className=\"modal-overlay\" />}\n <div ref={modalref} className={clsx(\"modal\", className)} {...rest}>\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 hasOverlay?: boolean;\n hasWindowClose?: boolean;\n footer?: React.ReactNode;\n isCustom?: boolean;\n customRef?: any;\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 hasOverlay: true,\n footer: undefined,\n isCustom: false,\n customRef: undefined,\n hasWindowClose: true\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 && state.hasWindowClose) {\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 if (\n state.isModal &&\n state.customRef &&\n state.customRef.current &&\n !state.customRef.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 && !state.isCustom && (\n <Modal\n modalref={ref}\n title={state.title}\n footer={state.footer}\n handleClose={closeModal}\n subtitle={state.subtitle}\n hasCloseButton={state.hasCloseButton}\n hasOverlay={state.hasOverlay}\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","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"],"names":["ALLOWED_CHILD_COMPONENT","useMemo","Children","isValidElement","cloneElement","_jsx","createContext","useState","_jsxs","useContext","TfiAngleDown","TfiAngleUp","useRef","useEffect","useForm","FormProvider","BsCheckCircleFill","BsXCircleFill","useFormContext","Controller","TbArrowsDiagonal2","img","gif","IoClose","useReducer"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../src/components/menu/menu-utils.ts","../../src/components/menu/menu-content.tsx","../../src/components/menu/menu-item.tsx","../../src/components/menu/menu-wrapper.tsx","../../src/components/menu/menu-root.tsx","../../src/components/button/index.tsx","../../src/components/menu/menu-button.tsx","../../src/components/menu/index.tsx","../../src/components/form/index.tsx","../../src/components/input/index.tsx","../../src/components/form/form-input.tsx","../../src/components/text-area/index.tsx","../../src/components/form/form-text-area.tsx","../../src/components/select/index.tsx","../../src/components/form/form-select.tsx","../../src/stories/assets/loading.gif","../../src/components/loading/index.tsx","../../src/components/modal/index.tsx","../../src/context/loading/index.tsx","../../src/context/modal/index.tsx","../../src/context/theme/index.tsx"],"sourcesContent":["export const generateId = () => {\n return `id-${Math.random().toString(36).slice(2, 11)}`;\n};\n","/** React */\nimport React, { HTMLAttributes, useContext, useMemo } from \"react\";\n\n/** Hook */\nimport { useMenu } from \"./menu-root\";\n\n/** Props */\ntype Props = HTMLAttributes<HTMLDivElement> & {\n \"data-menu-id\"?: string | undefined;\n};\n\nexport function MenuContent({ children, ...props }: Props) {\n const { items } = useContext(useMenu());\n const menuId = useMemo(() => props[\"data-menu-id\"], [props]);\n const isExpanded = useMemo(() => {\n return items[menuId as string]?.isExpanded;\n }, [items, menuId]);\n\n if (!isExpanded) return;\n\n return <div {...props}>{children}</div>;\n}\n","/** React */\nimport React, {\n Children,\n ComponentType,\n HtmlHTMLAttributes,\n ReactElement,\n ReactNode,\n cloneElement,\n isValidElement,\n useContext,\n useEffect,\n useRef,\n} from \"react\";\n\n/** CSS */\nimport \"./index.css\";\n\n/** Hooks */\nimport { useMenu } from \"./menu-root\";\n\n/** Utils */\nimport { generateId } from \"./menu-utils\";\nimport { MenuButton } from \"./menu-button\";\nimport { MenuContent } from \"./menu-content\";\n\n/** Props */\ntype Props = HtmlHTMLAttributes<HTMLDivElement> & {\n children: ReactNode;\n};\n\nconst ALLOWED_CHILD_COMPONENT = [MenuButton.name, MenuContent.name];\n\nexport function MenuItem({ children, ...props }: Props) {\n const { addItem } = useContext(useMenu());\n const menuId = useRef<string>(\"\");\n\n useEffect(() => {\n menuId.current = generateId();\n\n addItem({\n id: menuId.current,\n isExpanded: true,\n });\n }, []);\n\n return (\n <div data-menu-id={menuId.current} {...props}>\n {Children.map(children, (child) => {\n if (!isValidElement(child)) return;\n\n const childComponent = child.type as ComponentType;\n\n if (!ALLOWED_CHILD_COMPONENT.includes(childComponent.name)) return;\n\n return cloneElement(child as ReactElement, {\n \"data-menu-id\": menuId.current,\n });\n })}\n </div>\n );\n}\n","/** React */\nimport React, {\n Children,\n ComponentType,\n ReactNode,\n cloneElement,\n isValidElement,\n useMemo,\n} from \"react\";\n\n/** CSS */\nimport \"./index.css\";\nimport { MenuItem } from \"./menu-item\";\n\n/** Props */\ntype MenuWrapperProps = {\n children: ReactNode;\n};\n\nconst ALLOWED_CHILD_COMPONENT = [MenuItem.name];\n\nexport function MenuWrapper({ children }: MenuWrapperProps) {\n const menuItemComponents = useMemo(() => {\n return Children.map(children, (child) => {\n if (!isValidElement(child)) return;\n\n const childComponent = child.type as ComponentType;\n\n if (!ALLOWED_CHILD_COMPONENT.includes(childComponent.name)) return;\n\n return cloneElement(child);\n });\n }, [children]);\n\n return <div className=\"menu\">{menuItemComponents}</div>;\n}\n","/** React */\nimport React, { ReactNode, createContext, useState } from \"react\";\n\n/** Wrapper */\nimport { MenuWrapper } from \"./menu-wrapper\";\n\n/** Types */\ntype Item = {\n id: string;\n isExpanded: boolean;\n};\n\n/** Context type */\ntype MenuContextType = {\n items: Record<string, Item>;\n addItem: (item: Item) => void;\n toggle: (id: string) => void;\n};\n\n/** Context */\nconst MenuContext = createContext({} as MenuContextType);\n\n/** Props */\ntype MenuRootProps = {\n children: ReactNode;\n isOpenByDefault?: true;\n};\n\nexport function MenuRoot({ children, isOpenByDefault }: MenuRootProps) {\n const [items, setItems] = useState<Record<string, Item>>({});\n\n const addItem = (item: Item) => {\n setItems((state) => ({\n ...state,\n [item.id]: {\n ...item,\n isExpanded: isOpenByDefault || false,\n },\n }));\n };\n\n const toggle = (id: string) => {\n setItems((state) => ({\n ...state,\n [id]: {\n ...items[id],\n isExpanded: !items[id].isExpanded || false,\n },\n }));\n };\n\n return (\n <MenuContext.Provider value={{ items, addItem, toggle }}>\n <MenuWrapper>{children}</MenuWrapper>\n </MenuContext.Provider>\n );\n}\n\nexport function useMenu() {\n if (MenuContext === undefined) {\n throw new Error(\"useMenu must be used within a MenuContext Provider\");\n }\n\n return MenuContext;\n}\n","import clsx from \"clsx\";\nimport { ButtonAsButton, ButtonAsLink } from \"./index.types\";\nimport \"./index.css\";\nimport { ReactElement, ReactNode } from \"react\";\n\nexport const Anchor = ({\n Custom,\n children,\n ...rest\n}: {\n Custom?: React.ComponentClass<any>;\n children?: ReactNode[];\n}) => {\n return Custom ? (\n <Custom {...rest}>{children}</Custom>\n ) : (\n <a {...rest}>{children}</a>\n );\n};\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 `link__${mode}`,\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","/** React */\nimport React, {\n HtmlHTMLAttributes,\n ReactNode,\n useContext,\n useMemo,\n useState,\n} from \"react\";\n\n/** CSS */\nimport \"./index.css\";\nimport clsx from \"clsx\";\n\n/** Icons */\nimport { TfiAngleUp, TfiAngleDown } from \"react-icons/tfi\";\n\n/** Hook */\nimport { useMenu } from \"./menu-root\";\nimport { Anchor } from \"../button\";\n\n/** Props */\ntype Props = HtmlHTMLAttributes<HTMLDivElement> & {\n anchor?: React.AnchorHTMLAttributes<HTMLAnchorElement> & { Custom?: React.ComponentClass<any>;}\n children: ReactNode;\n buttonClassName?: string;\n nested?: boolean;\n subnested?: boolean;\n dropdown?: boolean;\n isLink?: boolean;\n isSelected?: boolean;\n handleCallbackClick?: () => void;\n \"data-menu-id\"?: string;\n};\n\nexport function MenuButton({\n anchor,\n children,\n buttonClassName,\n nested,\n subnested,\n dropdown,\n isLink,\n isSelected,\n handleCallbackClick,\n ...props\n}: Props) {\n const { toggle } = useContext(useMenu());\n const [isToggled, setIsToggled] = useState(false);\n const menuId = useMemo(() => props[\"data-menu-id\"], [props]);\n\n const handleClick = () => {\n toggle(menuId as string);\n setIsToggled(!isToggled);\n\n handleCallbackClick && handleCallbackClick();\n };\n\n return anchor ? (\n <Anchor\n className={clsx(\n \"menu-button\",\n {\n \"menu-button-dropdown\": dropdown,\n \"menu-button-nested\": nested,\n \"menu-button-subnested\": subnested,\n \"menu-button-is-link\": isLink,\n \"menu-button-is-selected\": isSelected,\n },\n buttonClassName\n )}\n {...(anchor as React.AnchorHTMLAttributes<HTMLAnchorElement>)}\n >\n {children}\n {dropdown ? (\n isToggled ? (\n <TfiAngleDown size=\"1rem\" />\n ) : (\n <TfiAngleUp size=\"1rem\" />\n )\n ) : null}\n </Anchor>\n ) : (\n <div\n role=\"button\"\n className={clsx(\n \"menu-button\",\n {\n \"menu-button-dropdown\": dropdown,\n \"menu-button-nested\": nested,\n \"menu-button-subnested\": subnested,\n \"menu-button-is-link\": isLink,\n \"menu-button-is-selected\": isSelected,\n },\n buttonClassName\n )}\n onClick={handleClick}\n {...props}\n >\n {children}\n {dropdown ? (\n isToggled ? (\n <TfiAngleDown size=\"1rem\" />\n ) : (\n <TfiAngleUp size=\"1rem\" />\n )\n ) : null}\n </div>\n );\n}\n","import { MenuButton } from \"./menu-button\";\nimport { MenuContent } from \"./menu-content\";\nimport { MenuItem } from \"./menu-item\";\nimport { MenuRoot } from \"./menu-root\";\n\nexport const Menu = {\n Root: MenuRoot,\n Item: MenuItem,\n Button: MenuButton,\n Content: MenuContent,\n};\n\nexport default Menu;\n","import { Form as FormProps } from \"./index.types\";\nimport \"./index.css\";\nimport Button from \"../button\";\nimport { BsCheckCircleFill, BsXCircleFill } from \"react-icons/bs\";\nimport { FormProvider, useForm } from \"react-hook-form\";\nimport { 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 backgroundColor,\n ...rest\n}: FormProps) {\n const methods = useForm(initialState);\n\n const {\n formState: { isValid },\n } = methods;\n\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 style={{ backgroundColor: backgroundColor }}\n onSubmit={methods.handleSubmit((data) => {\n return onSubmit(data, methods, setResult);\n })}\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 labelClassName,\n icon,\n isRequired,\n backgroundColor,\n ...rest\n}: InputProps) {\n return (\n <div\n className={clsx(\"input-group\", classNameGroup)}\n style={{ backgroundColor: backgroundColor, ...styleGroup }}\n >\n <div className=\"input__header\">\n {label && <label className={labelClassName}>{label}</label>}\n {error && error.is && (\n <span className=\"input__header--error\">\n {error.message as string}\n </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 required={isRequired}\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\";\nimport Button from \"../button\";\n\nexport function TextArea({\n buttonDisabled = false,\n className = \"\",\n disabled = true,\n error = {\n is: false,\n message: \"\",\n },\n hasToggleButton = true,\n hideHeight = \"5rem\",\n label,\n labelClassName,\n isRequired,\n placeholder = \"Insert value\",\n showHeight = \"10rem\",\n backgroundColor,\n style = {},\n textareaClassName = \"\",\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\n className={clsx(\"textarea\", className)}\n style={{ backgroundColor: backgroundColor, ...style }}\n >\n <div className=\"textarea__header\">\n {label && <label className={labelClassName}>{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 required={isRequired}\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={buttonDisabled}\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 setFormSelected,\n clearError,\n resetForm,\n onFormBlur,\n handleSelect,\n label,\n labelClassName,\n error,\n backgroundColor,\n isRequired,\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 };\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\n return (\n <div\n className={clsx(\"select-group\", classNameGroup)}\n style={{ backgroundColor: backgroundColor, ...styleGroup }}\n >\n <Input\n inputClassName={clsx(\n \"select\",\n {\n \"select--focus\": isOpen,\n },\n inputClassName\n )}\n value={value}\n error={error}\n required={isRequired}\n placeholder=\"Select a value\"\n icon={{\n className: \"select__arrow\",\n element: (\n <Button\n type=\"button\"\n size=\"large\"\n mode=\"icon\"\n className={clsx(\"select__arrow-button\", {\n \"select__arrow-button--open\": isOpen\n })}\n onClick={handleToggle}\n onBlur={handleClose}\n >\n <TfiAngleDown size={24} />\n </Button>\n ),\n }}\n onFocus={handleOpen}\n onBlur={handleInputClose}\n onChange={handleValueChange}\n autoComplete=\"off\"\n label={label}\n labelClassName={labelClassName}\n {...rest}\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 label,\n ...rest\n}: FormSelectProps) {\n const { control, setValue, clearErrors, unregister, resetField } =\n 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 label={label}\n error={{\n is: !!error,\n message: error?.message || \"\",\n }}\n setFormSelected={setValue}\n resetForm={() =>\n fieldsToReset &&\n fieldsToReset.map((field) => {\n setValue(field, undefined);\n unregister(field);\n })\n }\n clearError={clearErrors}\n onFormBlur={onBlur}\n {...restField}\n {...rest}\n />\n );\n }}\n />\n );\n}\n\nexport default FormSelect;\n","var img = \"data:image/gif;base64,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\";\n export default img;","import { Loading as LoadingProps } from \"./index.types\";\nimport gif from \"../../stories/assets/loading.gif\";\nimport \"./index.css\";\n\nexport function Loading({ img, children }: LoadingProps) {\n return (\n <div className=\"loading\">\n <img src={img ?? gif} />\n <div className=\"loading-message\">{children}</div>\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\";\nimport clsx from \"clsx\";\n\nexport function Modal({\n className,\n modalref,\n children,\n title,\n subtitle,\n footer,\n hasOverlay = true,\n hasCloseButton = true,\n handleClose,\n ...rest\n}: ModalProps) {\n return (\n <>\n {hasOverlay && <div className=\"modal-overlay\" />}\n <div ref={modalref} className={clsx(\"modal\", className)} {...rest}>\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 hasOverlay?: boolean;\n hasWindowClose?: boolean;\n footer?: React.ReactNode;\n isCustom?: boolean;\n customRef?: any;\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 hasOverlay: true,\n footer: undefined,\n isCustom: false,\n customRef: undefined,\n hasWindowClose: true\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 && state.hasWindowClose) {\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 if (\n state.isModal &&\n state.customRef &&\n state.customRef.current &&\n !state.customRef.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 && !state.isCustom && (\n <Modal\n modalref={ref}\n title={state.title}\n footer={state.footer}\n handleClose={closeModal}\n subtitle={state.subtitle}\n hasCloseButton={state.hasCloseButton}\n hasOverlay={state.hasOverlay}\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","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"],"names":["useContext","useMemo","_jsx","ALLOWED_CHILD_COMPONENT","useRef","useEffect","Children","isValidElement","cloneElement","createContext","useState","_jsxs","TfiAngleDown","TfiAngleUp","useForm","FormProvider","BsCheckCircleFill","BsXCircleFill","useFormContext","Controller","TbArrowsDiagonal2","img","gif","IoClose","useReducer"],"mappings":"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"}
|
package/dist/esm/index.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
|
|
2
|
-
import { useMemo, Children, isValidElement, cloneElement, createContext, useState,
|
|
2
|
+
import { useContext, useMemo, useRef, useEffect, Children, isValidElement, cloneElement, createContext, useState, useReducer } from 'react';
|
|
3
3
|
import clsx from 'clsx';
|
|
4
4
|
import { TfiAngleDown, TfiAngleUp } from 'react-icons/tfi';
|
|
5
5
|
import { BsCheckCircleFill, BsXCircleFill } from 'react-icons/bs';
|
|
@@ -7,14 +7,52 @@ import { useForm, FormProvider, useFormContext, Controller } from 'react-hook-fo
|
|
|
7
7
|
import { TbArrowsDiagonal2 } from 'react-icons/tb';
|
|
8
8
|
import { IoClose } from 'react-icons/io5';
|
|
9
9
|
|
|
10
|
-
const
|
|
10
|
+
const generateId = () => {
|
|
11
|
+
return `id-${Math.random().toString(36).slice(2, 11)}`;
|
|
12
|
+
};
|
|
13
|
+
|
|
14
|
+
function MenuContent({ children, ...props }) {
|
|
15
|
+
const { items } = useContext(useMenu());
|
|
16
|
+
const menuId = useMemo(() => props["data-menu-id"], [props]);
|
|
17
|
+
const isExpanded = useMemo(() => {
|
|
18
|
+
return items[menuId]?.isExpanded;
|
|
19
|
+
}, [items, menuId]);
|
|
20
|
+
if (!isExpanded)
|
|
21
|
+
return;
|
|
22
|
+
return jsx("div", { ...props, children: children });
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
const ALLOWED_CHILD_COMPONENT$1 = [MenuButton.name, MenuContent.name];
|
|
26
|
+
function MenuItem({ children, ...props }) {
|
|
27
|
+
const { addItem } = useContext(useMenu());
|
|
28
|
+
const menuId = useRef("");
|
|
29
|
+
useEffect(() => {
|
|
30
|
+
menuId.current = generateId();
|
|
31
|
+
addItem({
|
|
32
|
+
id: menuId.current,
|
|
33
|
+
isExpanded: true,
|
|
34
|
+
});
|
|
35
|
+
}, []);
|
|
36
|
+
return (jsx("div", { "data-menu-id": menuId.current, ...props, children: Children.map(children, (child) => {
|
|
37
|
+
if (!isValidElement(child))
|
|
38
|
+
return;
|
|
39
|
+
const childComponent = child.type;
|
|
40
|
+
if (!ALLOWED_CHILD_COMPONENT$1.includes(childComponent.name))
|
|
41
|
+
return;
|
|
42
|
+
return cloneElement(child, {
|
|
43
|
+
"data-menu-id": menuId.current,
|
|
44
|
+
});
|
|
45
|
+
}) }));
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
const ALLOWED_CHILD_COMPONENT = [MenuItem.name];
|
|
11
49
|
function MenuWrapper({ children }) {
|
|
12
50
|
const menuItemComponents = useMemo(() => {
|
|
13
51
|
return Children.map(children, (child) => {
|
|
14
52
|
if (!isValidElement(child))
|
|
15
53
|
return;
|
|
16
54
|
const childComponent = child.type;
|
|
17
|
-
if (!ALLOWED_CHILD_COMPONENT
|
|
55
|
+
if (!ALLOWED_CHILD_COMPONENT.includes(childComponent.name))
|
|
18
56
|
return;
|
|
19
57
|
return cloneElement(child);
|
|
20
58
|
});
|
|
@@ -84,44 +122,6 @@ function MenuButton({ anchor, children, buttonClassName, nested, subnested, drop
|
|
|
84
122
|
}, buttonClassName), onClick: handleClick, ...props, children: [children, dropdown ? (isToggled ? (jsx(TfiAngleDown, { size: "1rem" })) : (jsx(TfiAngleUp, { size: "1rem" }))) : null] }));
|
|
85
123
|
}
|
|
86
124
|
|
|
87
|
-
function MenuContent({ children, ...props }) {
|
|
88
|
-
const { items } = useContext(useMenu());
|
|
89
|
-
const menuId = useMemo(() => props["data-menu-id"], [props]);
|
|
90
|
-
const isExpanded = useMemo(() => {
|
|
91
|
-
return items[menuId]?.isExpanded;
|
|
92
|
-
}, [items, menuId]);
|
|
93
|
-
if (!isExpanded)
|
|
94
|
-
return;
|
|
95
|
-
return jsx("div", { ...props, children: children });
|
|
96
|
-
}
|
|
97
|
-
|
|
98
|
-
const generateId = () => {
|
|
99
|
-
return `id-${Math.random().toString(36).slice(2, 11)}`;
|
|
100
|
-
};
|
|
101
|
-
|
|
102
|
-
const ALLOWED_CHILD_COMPONENT = ["MenuButton", "MenuContent"];
|
|
103
|
-
function MenuItem({ children, ...props }) {
|
|
104
|
-
const { addItem } = useContext(useMenu());
|
|
105
|
-
const menuId = useRef("");
|
|
106
|
-
useEffect(() => {
|
|
107
|
-
menuId.current = generateId();
|
|
108
|
-
addItem({
|
|
109
|
-
id: menuId.current,
|
|
110
|
-
isExpanded: true,
|
|
111
|
-
});
|
|
112
|
-
}, []);
|
|
113
|
-
return (jsx("div", { "data-menu-id": menuId.current, ...props, children: Children.map(children, (child) => {
|
|
114
|
-
if (!isValidElement(child))
|
|
115
|
-
return;
|
|
116
|
-
const childComponent = child.type;
|
|
117
|
-
if (!ALLOWED_CHILD_COMPONENT.includes(childComponent.name))
|
|
118
|
-
return;
|
|
119
|
-
return cloneElement(child, {
|
|
120
|
-
"data-menu-id": menuId.current,
|
|
121
|
-
});
|
|
122
|
-
}) }));
|
|
123
|
-
}
|
|
124
|
-
|
|
125
125
|
const Menu = {
|
|
126
126
|
Root: MenuRoot,
|
|
127
127
|
Item: MenuItem,
|