pmg-ui-kit 0.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/README.md +47 -0
- package/dist/components/Alert.d.ts +9 -0
- package/dist/components/Alert.js +15 -0
- package/dist/components/Button.d.ts +20 -0
- package/dist/components/Button.js +77 -0
- package/dist/components/Checkbox.d.ts +9 -0
- package/dist/components/Checkbox.js +6 -0
- package/dist/components/ColumnsView.d.ts +8 -0
- package/dist/components/ColumnsView.js +6 -0
- package/dist/components/Header.d.ts +10 -0
- package/dist/components/Header.js +6 -0
- package/dist/components/Input.d.ts +23 -0
- package/dist/components/Input.js +15 -0
- package/dist/components/InputTypeFile.d.ts +11 -0
- package/dist/components/InputTypeFile.js +5 -0
- package/dist/components/List.d.ts +8 -0
- package/dist/components/List.js +6 -0
- package/dist/components/RadioButton.d.ts +13 -0
- package/dist/components/RadioButton.js +10 -0
- package/dist/components/ScrollToTopButton.d.ts +1 -0
- package/dist/components/ScrollToTopButton.js +13 -0
- package/dist/components/SearchInput.d.ts +8 -0
- package/dist/components/SearchInput.js +5 -0
- package/dist/components/Select.d.ts +16 -0
- package/dist/components/Select.js +15 -0
- package/dist/components/Subheader.d.ts +11 -0
- package/dist/components/Subheader.js +5 -0
- package/dist/components/Text.d.ts +9 -0
- package/dist/components/Text.js +5 -0
- package/dist/hooks/useScrollToTop.d.ts +6 -0
- package/dist/hooks/useScrollToTop.js +28 -0
- package/dist/icons/AlertIcon.d.ts +7 -0
- package/dist/icons/AlertIcon.js +2 -0
- package/dist/icons/AnimatedLoader.d.ts +6 -0
- package/dist/icons/AnimatedLoader.js +3 -0
- package/dist/icons/AnimatedLoaderIcon.d.ts +6 -0
- package/dist/icons/AnimatedLoaderIcon.js +2 -0
- package/dist/icons/ArchiveBoxIcon.d.ts +6 -0
- package/dist/icons/ArchiveBoxIcon.js +2 -0
- package/dist/icons/ArrowIcon.d.ts +7 -0
- package/dist/icons/ArrowIcon.js +2 -0
- package/dist/icons/ArrowTopRightIcon.d.ts +1 -0
- package/dist/icons/ArrowTopRightIcon.js +2 -0
- package/dist/icons/ArrowUpCircle.d.ts +7 -0
- package/dist/icons/ArrowUpCircle.js +3 -0
- package/dist/icons/ArrowUpCircleIcon.d.ts +7 -0
- package/dist/icons/ArrowUpCircleIcon.js +2 -0
- package/dist/icons/CheckCircleIcon.d.ts +7 -0
- package/dist/icons/CheckCircleIcon.js +2 -0
- package/dist/icons/CheckGreenIcon.d.ts +6 -0
- package/dist/icons/CheckGreenIcon.js +2 -0
- package/dist/icons/CloudDownloadIcon.d.ts +6 -0
- package/dist/icons/CloudDownloadIcon.js +2 -0
- package/dist/icons/CloudUploadIcon.d.ts +6 -0
- package/dist/icons/CloudUploadIcon.js +2 -0
- package/dist/icons/CogIcon.d.ts +7 -0
- package/dist/icons/CogIcon.js +2 -0
- package/dist/icons/CopyIcon.d.ts +6 -0
- package/dist/icons/CopyIcon.js +2 -0
- package/dist/icons/CrossRedIcon.d.ts +6 -0
- package/dist/icons/CrossRedIcon.js +2 -0
- package/dist/icons/DbIcon.d.ts +6 -0
- package/dist/icons/DbIcon.js +2 -0
- package/dist/icons/DeFlagIcon.d.ts +1 -0
- package/dist/icons/DeFlagIcon.js +2 -0
- package/dist/icons/EyeIcon.d.ts +6 -0
- package/dist/icons/EyeIcon.js +2 -0
- package/dist/icons/GbFlagIcon.d.ts +1 -0
- package/dist/icons/GbFlagIcon.js +2 -0
- package/dist/icons/InformationCircleIcon.d.ts +7 -0
- package/dist/icons/InformationCircleIcon.js +2 -0
- package/dist/icons/InformationTriangleIcon.d.ts +7 -0
- package/dist/icons/InformationTriangleIcon.js +2 -0
- package/dist/icons/LanguageIcon.d.ts +6 -0
- package/dist/icons/LanguageIcon.js +2 -0
- package/dist/icons/NotAllowIcon.d.ts +7 -0
- package/dist/icons/NotAllowIcon.js +2 -0
- package/dist/icons/PercentageIcon.d.ts +1 -0
- package/dist/icons/PercentageIcon.js +2 -0
- package/dist/icons/PlusIcon.d.ts +7 -0
- package/dist/icons/PlusIcon.js +2 -0
- package/dist/icons/SaveDiscIcon.d.ts +8 -0
- package/dist/icons/SaveDiscIcon.js +2 -0
- package/dist/icons/TrashIcon.d.ts +8 -0
- package/dist/icons/TrashIcon.js +2 -0
- package/dist/icons/UserPlusIcon.d.ts +5 -0
- package/dist/icons/UserPlusIcon.js +2 -0
- package/dist/index.d.ts +48 -0
- package/dist/index.js +48 -0
- package/dist/types/formTypes.d.ts +57 -0
- package/dist/types/formTypes.js +1 -0
- package/dist/ui/atoms/Alert.d.ts +9 -0
- package/dist/ui/atoms/Alert.js +15 -0
- package/dist/ui/atoms/Button.d.ts +20 -0
- package/dist/ui/atoms/Button.js +77 -0
- package/dist/ui/atoms/Checkbox.d.ts +9 -0
- package/dist/ui/atoms/Checkbox.js +6 -0
- package/dist/ui/atoms/ColumnsView.d.ts +8 -0
- package/dist/ui/atoms/ColumnsView.js +6 -0
- package/dist/ui/atoms/DragAndDropUpload.d.ts +10 -0
- package/dist/ui/atoms/DragAndDropUpload.js +21 -0
- package/dist/ui/atoms/Header.d.ts +10 -0
- package/dist/ui/atoms/Header.js +6 -0
- package/dist/ui/atoms/Input.d.ts +23 -0
- package/dist/ui/atoms/Input.js +15 -0
- package/dist/ui/atoms/InputTypeFile.d.ts +11 -0
- package/dist/ui/atoms/InputTypeFile.js +5 -0
- package/dist/ui/atoms/List.d.ts +8 -0
- package/dist/ui/atoms/List.js +6 -0
- package/dist/ui/atoms/RadioButton.d.ts +13 -0
- package/dist/ui/atoms/RadioButton.js +10 -0
- package/dist/ui/atoms/SearchInput.d.ts +8 -0
- package/dist/ui/atoms/SearchInput.js +5 -0
- package/dist/ui/atoms/Select.d.ts +16 -0
- package/dist/ui/atoms/Select.js +15 -0
- package/dist/ui/atoms/Step.d.ts +7 -0
- package/dist/ui/atoms/Step.js +7 -0
- package/dist/ui/atoms/Subheader.d.ts +11 -0
- package/dist/ui/atoms/Subheader.js +5 -0
- package/dist/ui/atoms/Text.d.ts +9 -0
- package/dist/ui/atoms/Text.js +5 -0
- package/dist/ui/components/Form.d.ts +9 -0
- package/dist/ui/components/Form.js +19 -0
- package/dist/ui/components/FormElementContainer.d.ts +13 -0
- package/dist/ui/components/FormElementContainer.js +9 -0
- package/dist/ui/components/FormElementInputWithLink.d.ts +6 -0
- package/dist/ui/components/FormElementInputWithLink.js +9 -0
- package/dist/ui/components/FormField.d.ts +8 -0
- package/dist/ui/components/FormField.js +41 -0
- package/dist/ui/components/Header.d.ts +10 -0
- package/dist/ui/components/Header.js +6 -0
- package/dist/ui/components/Input.d.ts +23 -0
- package/dist/ui/components/Input.js +15 -0
- package/dist/ui/components/InputTypeFile.d.ts +11 -0
- package/dist/ui/components/InputTypeFile.js +5 -0
- package/dist/ui/components/List.d.ts +8 -0
- package/dist/ui/components/List.js +6 -0
- package/dist/ui/components/RadioButtonsInput.d.ts +17 -0
- package/dist/ui/components/RadioButtonsInput.js +5 -0
- package/dist/ui/components/SearchInput.d.ts +8 -0
- package/dist/ui/components/SearchInput.js +5 -0
- package/dist/ui/components/Select.d.ts +16 -0
- package/dist/ui/components/Select.js +15 -0
- package/dist/ui/components/Subheader.d.ts +11 -0
- package/dist/ui/components/Subheader.js +5 -0
- package/dist/ui/components/Table.d.ts +15 -0
- package/dist/ui/components/Table.js +13 -0
- package/dist/ui/components/TabsWithUnderline.d.ts +14 -0
- package/dist/ui/components/TabsWithUnderline.js +10 -0
- package/dist/ui/components/Text.d.ts +9 -0
- package/dist/ui/components/Text.js +5 -0
- package/package.json +32 -0
package/README.md
ADDED
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
# Introduction
|
|
2
|
+
|
|
3
|
+
This project provides a collection of reusable React components and a curated set of icons, bundled together for easy integration across various projects. The goal is to streamline development by offering ready-to-use, customizable UI elements that maintain consistency and save time when building applications.
|
|
4
|
+
|
|
5
|
+
# Requirements
|
|
6
|
+
|
|
7
|
+
Make sure you have:
|
|
8
|
+
- Tailwind v3 installed (3.4.17 is latest version)
|
|
9
|
+
- Added "./node_modules/pmg-mellon-components/**/*.{js,ts,jsx,tsx}" entry into content array in tailwind.config.js file
|
|
10
|
+
|
|
11
|
+
# Installation process
|
|
12
|
+
|
|
13
|
+
To install dependecies run bellow command
|
|
14
|
+
```bash
|
|
15
|
+
npm i
|
|
16
|
+
```
|
|
17
|
+
|
|
18
|
+
To add package into your project use bellow command
|
|
19
|
+
|
|
20
|
+
```bash
|
|
21
|
+
npm install pmg-mellon-components
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
# Releasing new version
|
|
25
|
+
|
|
26
|
+
1. Update the version number in package.json file
|
|
27
|
+
2. Run bellow command to build new version in dist folder
|
|
28
|
+
|
|
29
|
+
```bash
|
|
30
|
+
npm run build
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
3. Run bellow command to login into correct NPMjs.com account
|
|
34
|
+
|
|
35
|
+
```bash
|
|
36
|
+
npm login
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
4. Run bellow command to publish new version of package
|
|
40
|
+
|
|
41
|
+
```bash
|
|
42
|
+
npm publish
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
# Latest releases
|
|
46
|
+
|
|
47
|
+
All detailed information about versions are included into CHANGELOG.md file
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { ReactNode } from "react";
|
|
2
|
+
type AlertType = "info" | "success" | "warning" | "danger" | "dark";
|
|
3
|
+
type AlertProps = {
|
|
4
|
+
type?: AlertType;
|
|
5
|
+
children?: ReactNode;
|
|
6
|
+
className?: string;
|
|
7
|
+
};
|
|
8
|
+
export declare const Alert: ({ type, children, className }: AlertProps) => import("react/jsx-runtime").JSX.Element;
|
|
9
|
+
export {};
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { jsx as _jsx, Fragment as _Fragment } from "react/jsx-runtime";
|
|
2
|
+
const alertColorsMapping = {
|
|
3
|
+
info: "indigo",
|
|
4
|
+
success: "green",
|
|
5
|
+
warning: "yellow",
|
|
6
|
+
danger: "red",
|
|
7
|
+
dark: "gray",
|
|
8
|
+
};
|
|
9
|
+
export const Alert = ({ type = "info", children, className }) => {
|
|
10
|
+
const colorClasses = (type) => {
|
|
11
|
+
const matchColor = alertColorsMapping[type];
|
|
12
|
+
return `text-${matchColor}-800 bg-${matchColor}-100 dark:text-${matchColor}-400 border-${matchColor}-300`;
|
|
13
|
+
};
|
|
14
|
+
return (_jsx(_Fragment, { children: _jsx("div", { className: `p-4 mb-4 text-sm rounded-md dark:bg-gray-800 border-t-4 ${colorClasses(type)} ${className}`, role: "alert", children: _jsx("div", { className: "text-sm font-medium", children: children }) }) }));
|
|
15
|
+
};
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
type ButtonProps = {
|
|
3
|
+
type?: "b-link-imitation" | "b-default" | "b-primary" | "b-alert" | "b-success" | "b-warning";
|
|
4
|
+
htmlType?: "submit" | "reset" | "button";
|
|
5
|
+
text?: string | React.ReactNode;
|
|
6
|
+
linkTo?: string;
|
|
7
|
+
startIcon?: string | React.ReactElement;
|
|
8
|
+
onClick?: (event: React.MouseEvent<HTMLButtonElement>) => void | Promise<void>;
|
|
9
|
+
className?: string;
|
|
10
|
+
size?: "b-xsm" | "b-sm" | "b-base" | "b-lg" | "b-xlg";
|
|
11
|
+
disabled?: boolean;
|
|
12
|
+
dataTooltipTarget?: string;
|
|
13
|
+
outlined?: boolean;
|
|
14
|
+
pillsType?: boolean;
|
|
15
|
+
iconButton?: boolean;
|
|
16
|
+
noBorder?: boolean;
|
|
17
|
+
pending?: boolean;
|
|
18
|
+
};
|
|
19
|
+
export declare const Button: ({ text, type, htmlType, linkTo, onClick, className, size, startIcon, disabled, dataTooltipTarget, outlined, pillsType, iconButton, noBorder, pending, }: ButtonProps) => import("react/jsx-runtime").JSX.Element;
|
|
20
|
+
export {};
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import classNames from "classnames";
|
|
3
|
+
import { AnimatedLoaderIcon } from "../icons/AnimatedLoaderIcon";
|
|
4
|
+
export const Button = ({ text, type = "b-default", htmlType = "button", linkTo = "", onClick, className, size = "b-base", startIcon, disabled = false, dataTooltipTarget, outlined = false, pillsType = false, iconButton = false, noBorder = false, pending = false, }) => {
|
|
5
|
+
const getButtonSize = (size, iconButton) => {
|
|
6
|
+
const iconButtonPaddings = "px-1 py-1";
|
|
7
|
+
switch (size) {
|
|
8
|
+
case "b-xsm":
|
|
9
|
+
return `${iconButton ? iconButtonPaddings : "px-3 py-1.5"} text-xs`;
|
|
10
|
+
case "b-sm":
|
|
11
|
+
return `${iconButton ? iconButtonPaddings : "px-3 py-2"} text-sm`;
|
|
12
|
+
case "b-base":
|
|
13
|
+
return `${iconButton ? iconButtonPaddings : "px-5 py-2.5"} text-sm`;
|
|
14
|
+
case "b-lg":
|
|
15
|
+
return `${iconButton ? iconButtonPaddings : "px-5 py-3"} text-base`;
|
|
16
|
+
case "b-xlg":
|
|
17
|
+
return `${iconButton ? iconButtonPaddings : "px-6 py-3.5"} text-base`;
|
|
18
|
+
}
|
|
19
|
+
};
|
|
20
|
+
const disabledStyles = "disabled:bg-gray-400 disabled:cursor-not-allowed";
|
|
21
|
+
const iconButtonStyles = "w-fit";
|
|
22
|
+
const borderStyles = (noBorder = false, color) => noBorder ? "" : `border border-${color}-500`;
|
|
23
|
+
const pendingStyles = "pointer-events-none";
|
|
24
|
+
const getButtonTypeStyles = (type) => {
|
|
25
|
+
switch (type) {
|
|
26
|
+
case "b-alert":
|
|
27
|
+
return "text-white bg-red-500 hover:bg-red-600";
|
|
28
|
+
case "b-warning":
|
|
29
|
+
return "text-white bg-yellow-400 hover:bg-yellow-500";
|
|
30
|
+
case "b-success":
|
|
31
|
+
return "text-white bg-green-400 hover:bg-green-500";
|
|
32
|
+
case "b-primary":
|
|
33
|
+
return "text-white bg-blue-700 hover:bg-blue-800";
|
|
34
|
+
case "b-link-imitation":
|
|
35
|
+
return "text-blue-500 hover:text-blue-700";
|
|
36
|
+
case "b-default":
|
|
37
|
+
return "text-gray-900 hover:bg-gray-100";
|
|
38
|
+
}
|
|
39
|
+
};
|
|
40
|
+
const getButtonFillStyles = (type) => {
|
|
41
|
+
switch (type) {
|
|
42
|
+
case "b-alert":
|
|
43
|
+
return "#F56565";
|
|
44
|
+
case "b-warning":
|
|
45
|
+
return "#ED8936";
|
|
46
|
+
case "b-success":
|
|
47
|
+
return "#48BB78";
|
|
48
|
+
case "b-primary":
|
|
49
|
+
return "#2B6CB0";
|
|
50
|
+
case "b-link-imitation":
|
|
51
|
+
return "#4299E1";
|
|
52
|
+
case "b-default":
|
|
53
|
+
return "#1A202C";
|
|
54
|
+
}
|
|
55
|
+
};
|
|
56
|
+
const getButtonOutlinedStyles = (type, noBorder) => {
|
|
57
|
+
switch (type) {
|
|
58
|
+
case "b-alert":
|
|
59
|
+
return `text-red-500 ${borderStyles(noBorder, "red")} hover:bg-red-500 hover:text-white`;
|
|
60
|
+
case "b-warning":
|
|
61
|
+
return `text-yellow-400 ${borderStyles(noBorder, "yellow")} hover:bg-yellow-400 hover:text-white`;
|
|
62
|
+
case "b-success":
|
|
63
|
+
return `text-green-400 ${borderStyles(noBorder, "green")} hover:bg-green-400 hover:text-white`;
|
|
64
|
+
case "b-primary":
|
|
65
|
+
return `text-blue-700 ${borderStyles(noBorder, "blue")} hover:bg-blue-700 hover:text-white`;
|
|
66
|
+
}
|
|
67
|
+
};
|
|
68
|
+
const commonButtonProps = {
|
|
69
|
+
"data-tooltip-target": dataTooltipTarget,
|
|
70
|
+
className: classNames("focus:outline-none font-medium mb-2 flex gap-1 justify-center items-center", getButtonSize(size, iconButton), disabledStyles, outlined
|
|
71
|
+
? getButtonOutlinedStyles(type, noBorder)
|
|
72
|
+
: getButtonTypeStyles(type), pillsType ? "rounded-full" : "rounded-lg", iconButton ? iconButtonStyles : "", pending ? pendingStyles : "", className),
|
|
73
|
+
};
|
|
74
|
+
const buttonBody = (_jsxs(_Fragment, { children: [pending ? (_jsx(AnimatedLoaderIcon, { fill: getButtonFillStyles(type), className: text ? "!w-4 !h-4" : "!w-8 !h-8" })) : (startIcon), text] }));
|
|
75
|
+
const button = (_jsx("button", { ...commonButtonProps, type: htmlType, onClick: onClick, disabled: disabled, children: buttonBody }));
|
|
76
|
+
return button;
|
|
77
|
+
};
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
type CheckboxProps = {
|
|
2
|
+
className?: string;
|
|
3
|
+
label?: string | React.ReactNode;
|
|
4
|
+
disabled?: boolean;
|
|
5
|
+
checked?: boolean;
|
|
6
|
+
onChange?: (event: React.ChangeEvent<HTMLInputElement>) => void;
|
|
7
|
+
};
|
|
8
|
+
export declare const Checkbox: ({ className, label, disabled, checked, onChange, }: CheckboxProps) => import("react/jsx-runtime").JSX.Element;
|
|
9
|
+
export {};
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import classNames from "classnames";
|
|
3
|
+
import { Text } from "./Text";
|
|
4
|
+
export const Checkbox = ({ className, label, disabled = false, checked, onChange, }) => {
|
|
5
|
+
return (_jsxs("label", { className: classNames("flex items-center", className), children: [_jsx("input", { onChange: onChange, disabled: disabled, id: "default-checkbox", type: "checkbox", value: "", checked: checked, className: "w-4 h-4 disabled:bg-gray-400 disabled:hover:bg-gray-400 disabled:hover:cursor-not-allowed text-blue-600 bg-gray-100 border-gray-300 rounded dark:ring-offset-gray-800 dark:bg-gray-700 dark:border-gray-600 focus:ring-transparent" }), label && (_jsx(Text, { className: "ms-2 text-sm text-gray-900 fond-bold dark:text-gray-300", children: label }))] }));
|
|
6
|
+
};
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
type ColumnsViewProps = {
|
|
2
|
+
columnsAmount: number;
|
|
3
|
+
columnsGap?: number;
|
|
4
|
+
className?: string;
|
|
5
|
+
children?: React.ReactNode;
|
|
6
|
+
};
|
|
7
|
+
declare const ColumnsView: ({ children, columnsAmount, className, columnsGap, }: ColumnsViewProps) => import("react/jsx-runtime").JSX.Element;
|
|
8
|
+
export default ColumnsView;
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import classNames from "classnames";
|
|
3
|
+
const ColumnsView = ({ children, columnsAmount, className, columnsGap = 6, }) => {
|
|
4
|
+
return (_jsx("div", { className: classNames(`grid md:grid-cols-${columnsAmount} md:gap-${columnsGap} mt-4`, className), children: children }));
|
|
5
|
+
};
|
|
6
|
+
export default ColumnsView;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
type HeaderProps = {
|
|
2
|
+
children?: React.ReactNode;
|
|
3
|
+
fontWeight?: "bold" | "normal";
|
|
4
|
+
centerChildren?: React.ReactNode;
|
|
5
|
+
rightChildren?: React.ReactNode;
|
|
6
|
+
color?: string;
|
|
7
|
+
className?: string;
|
|
8
|
+
};
|
|
9
|
+
export declare const Header: ({ children, fontWeight, centerChildren, rightChildren, color, className, }: HeaderProps) => import("react/jsx-runtime").JSX.Element;
|
|
10
|
+
export {};
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import classNames from "classnames";
|
|
3
|
+
export const Header = ({ children, fontWeight, centerChildren, rightChildren, color, className, }) => {
|
|
4
|
+
const colorStyles = color ? `text-${color}-500` : "";
|
|
5
|
+
return (_jsxs("div", { className: classNames("flex flex-row justify-between", colorStyles, className), children: [_jsx("h3", { className: `font-${fontWeight}`, children: children }), centerChildren && centerChildren, rightChildren && rightChildren] }));
|
|
6
|
+
};
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
type InputProps = {
|
|
2
|
+
type?: string;
|
|
3
|
+
id?: string;
|
|
4
|
+
className?: string;
|
|
5
|
+
onClick?: (e: React.MouseEvent<HTMLInputElement>) => void;
|
|
6
|
+
onValidationChange?: (isValid: boolean) => void;
|
|
7
|
+
onFocus?: (e: React.FocusEvent<HTMLInputElement>) => void | Promise<void>;
|
|
8
|
+
onBlur?: (e: React.FocusEvent<HTMLInputElement>) => void | Promise<void>;
|
|
9
|
+
placeholder?: string;
|
|
10
|
+
required?: boolean;
|
|
11
|
+
value?: string | number | undefined;
|
|
12
|
+
handleOnChange?: (value: string) => void;
|
|
13
|
+
disabled?: boolean;
|
|
14
|
+
rightSpanIcon?: React.JSX.Element;
|
|
15
|
+
bottomHint?: string | React.ReactNode;
|
|
16
|
+
wrapperClassNames?: string;
|
|
17
|
+
pattern?: RegExp;
|
|
18
|
+
name?: string;
|
|
19
|
+
removeWhitespacesOnChange?: boolean;
|
|
20
|
+
hideNumberArrows?: boolean;
|
|
21
|
+
};
|
|
22
|
+
export declare const Input: ({ type, id, placeholder, required, value, handleOnChange, className, disabled, rightSpanIcon, bottomHint, onClick, onFocus, onBlur, onValidationChange, wrapperClassNames, pattern, name, hideNumberArrows, removeWhitespacesOnChange, }: InputProps) => import("react/jsx-runtime").JSX.Element;
|
|
23
|
+
export {};
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import classNames from "classnames";
|
|
3
|
+
import { Text } from "./Text";
|
|
4
|
+
export const Input = ({ type = "text", id = "", placeholder = "", required = false, value, handleOnChange, className, disabled = false, rightSpanIcon, bottomHint, onClick, onFocus, onBlur, onValidationChange, wrapperClassNames, pattern, name, hideNumberArrows = true, removeWhitespacesOnChange = false, }) => {
|
|
5
|
+
const disabledClasses = "disabled:bg-slate-50 disabled:text-slate-500 disabled:border-slate-200 disabled:shadow-none";
|
|
6
|
+
const hideNumberArrowsClasses = "[appearance:textfield] [&::-webkit-outer-spin-button]:appearance-none [&::-webkit-inner-spin-button]:appearance-none";
|
|
7
|
+
return (_jsxs("div", { className: classNames("flex flex-col", wrapperClassNames), children: [_jsxs("div", { className: "flex flex-row", children: [_jsx("input", { pattern: pattern ? pattern?.source : undefined, type: type, step: type === "number" ? "0.01" : undefined, id: id, onClick: onClick, onFocus: onFocus, onBlur: onBlur, value: value || "", onChange: (event) => {
|
|
8
|
+
const isValid = pattern ? pattern.test(event.target.value) : true;
|
|
9
|
+
const newValue = removeWhitespacesOnChange
|
|
10
|
+
? event.target.value.replace(/\s/g, "")
|
|
11
|
+
: event.target.value;
|
|
12
|
+
onValidationChange && onValidationChange(isValid);
|
|
13
|
+
handleOnChange && handleOnChange(newValue);
|
|
14
|
+
}, disabled: disabled, className: classNames("bg-gray-50 border border-gray-300 text-gray-900 text-sm rounded-lg focus:ring-0 focus:border-blue-500 block w-full p-2.5 dark:bg-gray-700 dark:border-gray-600 dark:placeholder-gray-400 dark:text-white dark:focus:ring-0 dark:focus:border-blue-500", disabled && disabledClasses, rightSpanIcon && "rounded-r-none", hideNumberArrows && hideNumberArrowsClasses, className), placeholder: placeholder, required: required, name: name }), rightSpanIcon && (_jsx("span", { className: "inline-flex items-center px-3 text-sm text-gray-900 bg-gray-200 border rounded-e-0 border-gray-300 rounded-e-md dark:bg-gray-600 dark:text-gray-400 dark:border-gray-600", children: rightSpanIcon }))] }), bottomHint && (_jsx(Text, { size: "sm", className: "mt-1 text-gray-600", children: bottomHint }))] }));
|
|
15
|
+
};
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
type InputTypeFileProps = {
|
|
2
|
+
accept: string[];
|
|
3
|
+
placeholder?: string;
|
|
4
|
+
className?: string;
|
|
5
|
+
handleFileUpload?: (event: React.ChangeEvent<HTMLInputElement>) => void;
|
|
6
|
+
name?: string;
|
|
7
|
+
disableValuePreview?: boolean;
|
|
8
|
+
multiple?: boolean;
|
|
9
|
+
};
|
|
10
|
+
export declare const InputTypeFile: ({ accept, placeholder, className, handleFileUpload, name, disableValuePreview, multiple, }: InputTypeFileProps) => import("react/jsx-runtime").JSX.Element;
|
|
11
|
+
export {};
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import classNames from "classnames";
|
|
3
|
+
export const InputTypeFile = ({ accept, placeholder, className, handleFileUpload, name, disableValuePreview, multiple, }) => {
|
|
4
|
+
return (_jsx("input", { className: classNames("block w-full text-sm text-gray-900 border border-gray-300 rounded-lg cursor-pointer bg-gray-50 dark:text-gray-400 focus:outline-none dark:bg-gray-700 dark:border-gray-600 dark:placeholder-gray-400", className), onChange: handleFileUpload, id: "file_input", type: "file", accept: accept.join(","), placeholder: placeholder, name: name, value: disableValuePreview ? "" : undefined, multiple: multiple }));
|
|
5
|
+
};
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
type ListProps = {
|
|
2
|
+
className?: string;
|
|
3
|
+
isOrdered?: boolean;
|
|
4
|
+
label?: React.ReactNode;
|
|
5
|
+
options: React.ReactNode[];
|
|
6
|
+
};
|
|
7
|
+
export declare const List: ({ className, isOrdered, label, options, }: ListProps) => import("react/jsx-runtime").JSX.Element;
|
|
8
|
+
export {};
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import classNames from "classnames";
|
|
3
|
+
import { Text } from "./Text";
|
|
4
|
+
export const List = ({ className, isOrdered = false, label, options, }) => {
|
|
5
|
+
return (_jsxs(_Fragment, { children: [label && _jsx(Text, { className: classNames("mt-2", className), children: label }), isOrdered ? (_jsx("ol", { className: "ml-4 mt-2 space-y-1 list-decimal list-inside dark:text-gray-400", children: options.map((option, index) => (_jsx("li", { children: option }, index))) })) : (_jsx("ul", { className: "ps-5 mt-2 space-y-1 list-disc list-inside", children: options.map((option, index) => (_jsx("li", { children: option }, index))) }))] }));
|
|
6
|
+
};
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { type ReactNode } from "react";
|
|
2
|
+
type RadioButtonProps = {
|
|
3
|
+
checked?: boolean;
|
|
4
|
+
className?: string;
|
|
5
|
+
labelClassName?: string;
|
|
6
|
+
handleOnClick?: (value: string) => void;
|
|
7
|
+
value: string;
|
|
8
|
+
label: ReactNode;
|
|
9
|
+
name: string;
|
|
10
|
+
required?: boolean;
|
|
11
|
+
};
|
|
12
|
+
export declare const RadioButton: ({ checked, handleOnClick, value, label, name, required, }: RadioButtonProps) => import("react/jsx-runtime").JSX.Element;
|
|
13
|
+
export {};
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import React from "react";
|
|
3
|
+
import classNames from "classnames";
|
|
4
|
+
import { Text } from "./Text";
|
|
5
|
+
export const RadioButton = ({ checked = false, handleOnClick, value, label, name, required, }) => {
|
|
6
|
+
const multilineLabel = React.isValidElement(label) &&
|
|
7
|
+
// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access
|
|
8
|
+
React.Children.count(label.props.children) > 1;
|
|
9
|
+
return (_jsxs("label", { className: classNames("flex", multilineLabel ? "items-start" : "items-center"), children: [_jsx("input", { type: "radio", required: required, value: value, name: name, checked: checked || false, onChange: () => handleOnClick && handleOnClick(value), className: classNames("w-4 h-4 text-blue-600 bg-gray-100 border-gray-300 focus:ring-blue-500 dark:focus:ring-blue-600 dark:ring-offset-gray-800 focus:ring-2 dark:bg-gray-700 dark:border-gray-600", multilineLabel ? "mt-2" : "") }), _jsx(Text, { className: classNames("ml-2 mt-0", multilineLabel ? "h-auto" : "h-8"), size: "lg", children: label })] }));
|
|
10
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const ScrollToTopButton: () => import("react/jsx-runtime").JSX.Element | null;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import { useEffect, useRef } from "react";
|
|
3
|
+
import { Button } from "./Button";
|
|
4
|
+
import { ArrowUpCircleIcon } from "../icons/ArrowUpCircleIcon";
|
|
5
|
+
import useScrollToTop from "../hooks/useScrollToTop";
|
|
6
|
+
export const ScrollToTopButton = () => {
|
|
7
|
+
const elementRef = useRef(null);
|
|
8
|
+
useEffect(() => {
|
|
9
|
+
elementRef.current = document.getElementById("layoutContentWrapper");
|
|
10
|
+
}, []);
|
|
11
|
+
const { isVisible, scrollToTop } = useScrollToTop(elementRef);
|
|
12
|
+
return isVisible ? (_jsx(Button, { type: "b-primary", onClick: scrollToTop, className: "fixed bottom-6 right-10 z-50", startIcon: _jsx(ArrowUpCircleIcon, {}) })) : null;
|
|
13
|
+
};
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
type SearchInputProps = {
|
|
2
|
+
className?: string;
|
|
3
|
+
placeholder?: string;
|
|
4
|
+
value?: string;
|
|
5
|
+
handleOnChange?: (event: React.ChangeEvent<HTMLInputElement>) => void;
|
|
6
|
+
};
|
|
7
|
+
export declare const SearchInput: ({ className, placeholder, value, handleOnChange, }: SearchInputProps) => import("react/jsx-runtime").JSX.Element;
|
|
8
|
+
export {};
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import classNames from "classnames";
|
|
3
|
+
export const SearchInput = ({ className, placeholder = "Search", value, handleOnChange, }) => {
|
|
4
|
+
return (_jsxs("form", { children: [_jsx("label", { className: "mb-2 text-sm font-medium text-gray-900 sr-only dark:text-white", children: "Search" }), _jsxs("div", { className: classNames("relative", className), children: [_jsx("div", { className: "absolute inset-y-0 start-0 flex items-center ps-3 pointer-events-none", children: _jsx("svg", { className: "w-4 h-4 text-gray-500 dark:text-gray-400", "aria-hidden": "true", xmlns: "http://www.w3.org/2000/svg", fill: "none", viewBox: "0 0 20 20", children: _jsx("path", { stroke: "currentColor", strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: "2", d: "m19 19-4-4m0-7A7 7 0 1 1 1 8a7 7 0 0 1 14 0Z" }) }) }), _jsx("input", { type: "search", id: "default-search", className: "block w-full p-2 ps-10 text-sm text-gray-900 border border-gray-300 rounded-lg bg-gray-50 focus:ring-blue-500 focus:border-blue-500 dark:bg-gray-700 dark:border-gray-600 dark:placeholder-gray-400 dark:text-white dark:focus:ring-blue-500 dark:focus:border-blue-500", placeholder: placeholder, required: true, value: value, onChange: handleOnChange })] })] }));
|
|
5
|
+
};
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
export type SelectOption = {
|
|
2
|
+
label: string;
|
|
3
|
+
value: string;
|
|
4
|
+
};
|
|
5
|
+
type SelectProps = {
|
|
6
|
+
options: SelectOption[];
|
|
7
|
+
value?: string;
|
|
8
|
+
handleOnChange?: (value: SelectOption) => void;
|
|
9
|
+
name?: string;
|
|
10
|
+
required?: boolean;
|
|
11
|
+
useEmptyOption?: boolean;
|
|
12
|
+
disabled?: boolean;
|
|
13
|
+
};
|
|
14
|
+
export declare const emptyOption: SelectOption;
|
|
15
|
+
export declare const Select: ({ options, value, handleOnChange, name, required, useEmptyOption, disabled, }: SelectProps) => import("react/jsx-runtime").JSX.Element;
|
|
16
|
+
export {};
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
export const emptyOption = {
|
|
3
|
+
label: "---",
|
|
4
|
+
value: "",
|
|
5
|
+
};
|
|
6
|
+
export const Select = ({ options, value, handleOnChange, name, required, useEmptyOption = false, disabled = false, }) => {
|
|
7
|
+
const selectOptions = [...options];
|
|
8
|
+
if (useEmptyOption && !disabled) {
|
|
9
|
+
selectOptions.unshift(emptyOption);
|
|
10
|
+
}
|
|
11
|
+
return (_jsx("select", { name: name, required: required, disabled: disabled, value: value, onClick: (e) => e.currentTarget.classList.remove("border-red-500"), onChange: (e) => {
|
|
12
|
+
const selectedOption = selectOptions.find((option) => option.value === e.target.value);
|
|
13
|
+
handleOnChange && selectedOption && handleOnChange(selectedOption);
|
|
14
|
+
}, className: "bg-gray-50 border border-gray-300 text-gray-900 text-sm rounded-lg focus:ring-blue-500 focus:border-blue-500 block w-full p-2.5 dark:bg-gray-700 dark:border-gray-600 dark:placeholder-gray-400 dark:text-white dark:focus:ring-blue-500 dark:focus:border-blue-500", children: selectOptions.map((option) => (_jsx("option", { value: option.value, children: option.label }, option.value))) }));
|
|
15
|
+
};
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
type SubHeaderProps = {
|
|
2
|
+
children: React.ReactNode;
|
|
3
|
+
fontWeight?: "bold" | "normal";
|
|
4
|
+
centerChildren?: React.ReactNode;
|
|
5
|
+
rightChildren?: React.ReactNode;
|
|
6
|
+
className?: string;
|
|
7
|
+
color?: string;
|
|
8
|
+
colorBrightness?: "800" | "600" | "500" | "400" | "200";
|
|
9
|
+
};
|
|
10
|
+
export declare const SubHeader: ({ children, fontWeight, centerChildren, rightChildren, className, color, colorBrightness, }: SubHeaderProps) => import("react/jsx-runtime").JSX.Element;
|
|
11
|
+
export {};
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import classNames from "classnames";
|
|
3
|
+
export const SubHeader = ({ children, fontWeight, centerChildren, rightChildren, className, color, colorBrightness = "500", }) => {
|
|
4
|
+
return (_jsxs("div", { className: classNames("flex flex-row justify-between", className), children: [_jsx("span", { className: classNames(`font-${fontWeight}`, `text-${color}-${colorBrightness}`), children: children }), centerChildren && centerChildren, rightChildren && rightChildren] }));
|
|
5
|
+
};
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
type TextProps = {
|
|
2
|
+
children: React.ReactNode;
|
|
3
|
+
className?: string;
|
|
4
|
+
size?: "sm" | "base" | "lg" | "xl" | "2xl" | "3xl" | "4xl";
|
|
5
|
+
fontWeight?: "bold" | "normal";
|
|
6
|
+
grayText?: boolean;
|
|
7
|
+
};
|
|
8
|
+
export declare const Text: ({ children, size, className, fontWeight, grayText, }: TextProps) => import("react/jsx-runtime").JSX.Element;
|
|
9
|
+
export {};
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
export const Text = ({ children, size = "base", className, fontWeight = "normal", grayText, }) => {
|
|
3
|
+
const grayTextClasses = grayText ? "text-gray-600" : "";
|
|
4
|
+
return (_jsx("span", { className: `inline-block text-${size} font-${fontWeight} ${className} ${grayTextClasses}`, children: children }));
|
|
5
|
+
};
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { useEffect, useState } from "react";
|
|
2
|
+
const SCROLL_POSITION_THRESHOLD = 100;
|
|
3
|
+
const useScrollToTopButton = (elementRef) => {
|
|
4
|
+
const [isVisible, setIsVisible] = useState(false);
|
|
5
|
+
useEffect(() => {
|
|
6
|
+
const toggleVisibility = () => {
|
|
7
|
+
if (elementRef.current &&
|
|
8
|
+
elementRef.current.scrollTop > SCROLL_POSITION_THRESHOLD) {
|
|
9
|
+
setIsVisible(true);
|
|
10
|
+
}
|
|
11
|
+
else {
|
|
12
|
+
setIsVisible(false);
|
|
13
|
+
}
|
|
14
|
+
};
|
|
15
|
+
elementRef.current?.addEventListener("scroll", toggleVisibility);
|
|
16
|
+
return () =>
|
|
17
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
18
|
+
elementRef.current?.removeEventListener("scroll", toggleVisibility);
|
|
19
|
+
}, [elementRef]);
|
|
20
|
+
const scrollToTop = () => {
|
|
21
|
+
elementRef.current?.scrollTo({
|
|
22
|
+
top: 0,
|
|
23
|
+
behavior: "smooth",
|
|
24
|
+
});
|
|
25
|
+
};
|
|
26
|
+
return { isVisible, scrollToTop };
|
|
27
|
+
};
|
|
28
|
+
export default useScrollToTopButton;
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
export const AlertIcon = ({ className, onClick, fill }) => (_jsxs("svg", { xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 24 24", fill: fill || "currentColor", className: `w-6 h-6 inline ${className}`, onClick: onClick, children: [_jsx("path", { d: "M5.85 3.5a.75.75 0 0 0-1.117-1 9.719 9.719 0 0 0-2.348 4.876.75.75 0 0 0 1.479.248A8.219 8.219 0 0 1 5.85 3.5ZM19.267 2.5a.75.75 0 1 0-1.118 1 8.22 8.22 0 0 1 1.987 4.124.75.75 0 0 0 1.48-.248A9.72 9.72 0 0 0 19.266 2.5Z" }), _jsx("path", { fillRule: "evenodd", d: "M12 2.25A6.75 6.75 0 0 0 5.25 9v.75a8.217 8.217 0 0 1-2.119 5.52.75.75 0 0 0 .298 1.206c1.544.57 3.16.99 4.831 1.243a3.75 3.75 0 1 0 7.48 0 24.583 24.583 0 0 0 4.83-1.244.75.75 0 0 0 .298-1.205 8.217 8.217 0 0 1-2.118-5.52V9A6.75 6.75 0 0 0 12 2.25ZM9.75 18c0-.034 0-.067.002-.1a25.05 25.05 0 0 0 4.496 0l.002.1a2.25 2.25 0 1 1-4.5 0Z", clipRule: "evenodd" })] }));
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
const AnimatedLoader = ({ className, fill }) => (_jsxs("svg", { "aria-hidden": "true", role: "status", className: `w-4 h-4 text-gray-200 animate-spin dark:text-gray-600 ${className}`, viewBox: "0 0 100 101", fill: "none", xmlns: "http://www.w3.org/2000/svg", children: [_jsx("path", { d: "M100 50.5908C100 78.2051 77.6142 100.591 50 100.591C22.3858 100.591 0 78.2051 0 50.5908C0 22.9766 22.3858 0.59082 50 0.59082C77.6142 0.59082 100 22.9766 100 50.5908ZM9.08144 50.5908C9.08144 73.1895 27.4013 91.5094 50 91.5094C72.5987 91.5094 90.9186 73.1895 90.9186 50.5908C90.9186 27.9921 72.5987 9.67226 50 9.67226C27.4013 9.67226 9.08144 27.9921 9.08144 50.5908Z", fill: "currentColor" }), _jsx("path", { d: "M93.9676 39.0409C96.393 38.4038 97.8624 35.9116 97.0079 33.5539C95.2932 28.8227 92.871 24.3692 89.8167 20.348C85.8452 15.1192 80.8826 10.7238 75.2124 7.41289C69.5422 4.10194 63.2754 1.94025 56.7698 1.05124C51.7666 0.367541 46.6976 0.446843 41.7345 1.27873C39.2613 1.69328 37.813 4.19778 38.4501 6.62326C39.0873 9.04874 41.5694 10.4717 44.0505 10.1071C47.8511 9.54855 51.7191 9.52689 55.5402 10.0491C60.8642 10.7766 65.9928 12.5457 70.6331 15.2552C75.2735 17.9648 79.3347 21.5619 82.5849 25.841C84.9175 28.9121 86.7997 32.2913 88.1811 35.8758C89.083 38.2158 91.5421 39.6781 93.9676 39.0409Z", fill: fill || "currentColor" })] }));
|
|
3
|
+
export default AnimatedLoader;
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
export const AnimatedLoaderIcon = ({ className, fill }) => (_jsxs("svg", { "aria-hidden": "true", role: "status", className: `w-4 h-4 text-gray-200 animate-spin dark:text-gray-600 ${className}`, viewBox: "0 0 100 101", fill: "none", xmlns: "http://www.w3.org/2000/svg", children: [_jsx("path", { d: "M100 50.5908C100 78.2051 77.6142 100.591 50 100.591C22.3858 100.591 0 78.2051 0 50.5908C0 22.9766 22.3858 0.59082 50 0.59082C77.6142 0.59082 100 22.9766 100 50.5908ZM9.08144 50.5908C9.08144 73.1895 27.4013 91.5094 50 91.5094C72.5987 91.5094 90.9186 73.1895 90.9186 50.5908C90.9186 27.9921 72.5987 9.67226 50 9.67226C27.4013 9.67226 9.08144 27.9921 9.08144 50.5908Z", fill: "currentColor" }), _jsx("path", { d: "M93.9676 39.0409C96.393 38.4038 97.8624 35.9116 97.0079 33.5539C95.2932 28.8227 92.871 24.3692 89.8167 20.348C85.8452 15.1192 80.8826 10.7238 75.2124 7.41289C69.5422 4.10194 63.2754 1.94025 56.7698 1.05124C51.7666 0.367541 46.6976 0.446843 41.7345 1.27873C39.2613 1.69328 37.813 4.19778 38.4501 6.62326C39.0873 9.04874 41.5694 10.4717 44.0505 10.1071C47.8511 9.54855 51.7191 9.52689 55.5402 10.0491C60.8642 10.7766 65.9928 12.5457 70.6331 15.2552C75.2735 17.9648 79.3347 21.5619 82.5849 25.841C84.9175 28.9121 86.7997 32.2913 88.1811 35.8758C89.083 38.2158 91.5421 39.6781 93.9676 39.0409Z", fill: fill || "currentColor" })] }));
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
export const ArchiveBoxIcon = ({ className, onClick }) => (_jsx("svg", { xmlns: "http://www.w3.org/2000/svg", fill: "none", viewBox: "0 0 24 24", strokeWidth: 1.5, stroke: "currentColor", className: `w-6 h-6 inline ${className}`, onClick: onClick, children: _jsx("path", { strokeLinecap: "round", strokeLinejoin: "round", d: "m20.25 7.5-.625 10.632a2.25 2.25 0 0 1-2.247 2.118H6.622a2.25 2.25 0 0 1-2.247-2.118L3.75 7.5M10 11.25h4M3.375 7.5h17.25c.621 0 1.125-.504 1.125-1.125v-1.5c0-.621-.504-1.125-1.125-1.125H3.375c-.621 0-1.125.504-1.125 1.125v1.5c0 .621.504 1.125 1.125 1.125Z" }) }));
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
export const ArrowIcon = ({ className, onClick, strokeColor }) => (_jsx("svg", { xmlns: "http://www.w3.org/2000/svg", fill: "none", viewBox: "0 0 10 6", strokeWidth: "2", stroke: strokeColor || "currentColor", className: `w-3 h-3 ${className}`, onClick: onClick, children: _jsx("path", { strokeLinecap: "round", strokeLinejoin: "round", d: "m1 1 4 4 4-4" }) }));
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const ArrowTopRightIcon: () => import("react/jsx-runtime").JSX.Element;
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
export const ArrowTopRightIcon = () => (_jsx("svg", { xmlns: "http://www.w3.org/2000/svg", fill: "none", stroke: "currentColor", strokeWidth: 1.5, className: "w-6 h-6", "data-slot": "icon", viewBox: "0 0 24 24", children: _jsx("path", { strokeLinecap: "round", strokeLinejoin: "round", d: "M13.5 6H5.25A2.25 2.25 0 0 0 3 8.25v10.5A2.25 2.25 0 0 0 5.25 21h10.5A2.25 2.25 0 0 0 18 18.75V10.5m-10.5 6L21 3m0 0h-5.25M21 3v5.25" }) }));
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
type ArrowUpCircleProps = {
|
|
2
|
+
className?: string;
|
|
3
|
+
onClick?: () => void;
|
|
4
|
+
strokeColor?: string;
|
|
5
|
+
};
|
|
6
|
+
declare const ArrowUpCircle: ({ className, onClick, strokeColor, }: ArrowUpCircleProps) => import("react/jsx-runtime").JSX.Element;
|
|
7
|
+
export default ArrowUpCircle;
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
const ArrowUpCircle = ({ className, onClick, strokeColor, }) => (_jsx("svg", { xmlns: "http://www.w3.org/2000/svg", fill: "none", viewBox: "0 0 24 24", strokeWidth: 1.5, stroke: strokeColor || "currentColor", className: `w-6 h-6 inline ${className}`, onClick: onClick, children: _jsx("path", { strokeLinecap: "round", strokeLinejoin: "round", d: "m15 11.25-3-3m0 0-3 3m3-3v7.5M21 12a9 9 0 1 1-18 0 9 9 0 0 1 18 0Z" }) }));
|
|
3
|
+
export default ArrowUpCircle;
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
type ArrowUpCircleIconProps = {
|
|
2
|
+
className?: string;
|
|
3
|
+
onClick?: () => void;
|
|
4
|
+
strokeColor?: string;
|
|
5
|
+
};
|
|
6
|
+
export declare const ArrowUpCircleIcon: ({ className, onClick, strokeColor, }: ArrowUpCircleIconProps) => import("react/jsx-runtime").JSX.Element;
|
|
7
|
+
export {};
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
export const ArrowUpCircleIcon = ({ className, onClick, strokeColor, }) => (_jsx("svg", { xmlns: "http://www.w3.org/2000/svg", fill: "none", viewBox: "0 0 24 24", strokeWidth: 1.5, stroke: strokeColor || "currentColor", className: `w-6 h-6 inline ${className}`, onClick: onClick, children: _jsx("path", { strokeLinecap: "round", strokeLinejoin: "round", d: "m15 11.25-3-3m0 0-3 3m3-3v7.5M21 12a9 9 0 1 1-18 0 9 9 0 0 1 18 0Z" }) }));
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
export const CheckCircleIcon = ({ className, onClick, strokeColor }) => (_jsx("svg", { xmlns: "http://www.w3.org/2000/svg", fill: "none", viewBox: "0 0 24 24", strokeWidth: 1.5, stroke: strokeColor || "currentColor", className: `w-6 h-6 inline ${className}`, onClick: onClick, children: _jsx("path", { strokeLinecap: "round", strokeLinejoin: "round", d: "M9 12.75 11.25 15 15 9.75M21 12a9 9 0 1 1-18 0 9 9 0 0 1 18 0Z" }) }));
|