@fuf-stack/pixels 0.5.6 → 0.5.7
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/dist/Button/index.cjs +2 -3
- package/dist/Button/index.js +1 -2
- package/dist/Card/index.cjs +2 -3
- package/dist/Card/index.js +1 -2
- package/dist/Json/index.cjs +3 -4
- package/dist/Json/index.js +2 -3
- package/dist/Label/index.cjs +2 -3
- package/dist/Label/index.js +1 -2
- package/dist/Menu/index.cjs +2 -3
- package/dist/Menu/index.js +1 -2
- package/dist/Modal/index.cjs +2 -3
- package/dist/Modal/index.js +1 -2
- package/dist/Popover/index.cjs +2 -3
- package/dist/Popover/index.js +1 -2
- package/dist/Tooltip/index.cjs +2 -3
- package/dist/Tooltip/index.js +1 -2
- package/dist/{chunk-QC2FAH2W.js → chunk-236GX7PP.js} +4 -9
- package/dist/{chunk-QC2FAH2W.js.map → chunk-236GX7PP.js.map} +1 -1
- package/dist/chunk-6G5VTF6K.js +43 -0
- package/dist/{chunk-PD246EV7.js.map → chunk-6G5VTF6K.js.map} +1 -1
- package/dist/{chunk-NB2Y66Z3.cjs → chunk-7GYTJLD6.cjs} +28 -33
- package/dist/chunk-7GYTJLD6.cjs.map +1 -0
- package/dist/chunk-B35F4645.cjs +43 -0
- package/dist/chunk-B35F4645.cjs.map +1 -0
- package/dist/{chunk-5QFG2VXP.cjs → chunk-BMKGS5PK.cjs} +4 -9
- package/dist/chunk-BMKGS5PK.cjs.map +1 -0
- package/dist/{chunk-SSPYXO6E.cjs → chunk-BSBPQXNG.cjs} +5 -10
- package/dist/chunk-BSBPQXNG.cjs.map +1 -0
- package/dist/{chunk-22MRKUHN.js → chunk-BTBF633Q.js} +27 -32
- package/dist/{chunk-22MRKUHN.js.map → chunk-BTBF633Q.js.map} +1 -1
- package/dist/{chunk-DFKOD7QX.cjs → chunk-GIM2W4JH.cjs} +10 -15
- package/dist/chunk-GIM2W4JH.cjs.map +1 -0
- package/dist/{chunk-R2JOVQS5.cjs → chunk-HHTTNYDC.cjs} +10 -15
- package/dist/chunk-HHTTNYDC.cjs.map +1 -0
- package/dist/{chunk-ILTQEFAN.js → chunk-HYXTFS4R.js} +8 -13
- package/dist/{chunk-ILTQEFAN.js.map → chunk-HYXTFS4R.js.map} +1 -1
- package/dist/{chunk-2C2AZ4GY.js → chunk-IEZVKZFP.js} +9 -14
- package/dist/{chunk-2C2AZ4GY.js.map → chunk-IEZVKZFP.js.map} +1 -1
- package/dist/{chunk-JSV7ZIIA.cjs → chunk-ND4VZZVU.cjs} +9 -14
- package/dist/chunk-ND4VZZVU.cjs.map +1 -0
- package/dist/{chunk-DAIBNNTS.js → chunk-O6OLR36Y.js} +7 -12
- package/dist/{chunk-DAIBNNTS.js.map → chunk-O6OLR36Y.js.map} +1 -1
- package/dist/{chunk-L6CCOLHU.js → chunk-S2WOGSQV.js} +3 -8
- package/dist/{chunk-L6CCOLHU.js.map → chunk-S2WOGSQV.js.map} +1 -1
- package/dist/{chunk-XGAFPFRL.js → chunk-VOXYQARK.js} +9 -14
- package/dist/{chunk-XGAFPFRL.js.map → chunk-VOXYQARK.js.map} +1 -1
- package/dist/{chunk-KVCXEJJD.cjs → chunk-X2MUU2ZI.cjs} +8 -13
- package/dist/chunk-X2MUU2ZI.cjs.map +1 -0
- package/dist/index.cjs +16 -20
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +15 -19
- package/dist/index.js.map +1 -1
- package/package.json +10 -6
- package/dist/chunk-5QFG2VXP.cjs.map +0 -1
- package/dist/chunk-CJ7YDKHN.cjs +0 -48
- package/dist/chunk-CJ7YDKHN.cjs.map +0 -1
- package/dist/chunk-DFKOD7QX.cjs.map +0 -1
- package/dist/chunk-EOBBMFEW.js +0 -3193
- package/dist/chunk-EOBBMFEW.js.map +0 -1
- package/dist/chunk-JSV7ZIIA.cjs.map +0 -1
- package/dist/chunk-KVCXEJJD.cjs.map +0 -1
- package/dist/chunk-NB2Y66Z3.cjs.map +0 -1
- package/dist/chunk-PD246EV7.js +0 -48
- package/dist/chunk-PTN54X4Z.cjs +0 -3193
- package/dist/chunk-PTN54X4Z.cjs.map +0 -1
- package/dist/chunk-R2JOVQS5.cjs.map +0 -1
- package/dist/chunk-SSPYXO6E.cjs.map +0 -1
|
@@ -1,21 +1,16 @@
|
|
|
1
1
|
import {
|
|
2
2
|
Button_default2 as Button_default
|
|
3
|
-
} from "./chunk-
|
|
4
|
-
import {
|
|
5
|
-
__toESM,
|
|
6
|
-
require_jsx_runtime,
|
|
7
|
-
require_react
|
|
8
|
-
} from "./chunk-EOBBMFEW.js";
|
|
3
|
+
} from "./chunk-HYXTFS4R.js";
|
|
9
4
|
|
|
10
5
|
// src/Json/Json.tsx
|
|
11
|
-
|
|
6
|
+
import { useState } from "react";
|
|
12
7
|
import { FaChevronDown, FaChevronUp, FaTimesCircle } from "react-icons/fa";
|
|
13
8
|
import { HiOutlineClipboard, HiOutlineClipboardCheck } from "react-icons/hi";
|
|
14
9
|
import JsonView from "@uiw/react-json-view";
|
|
15
10
|
import { lightTheme } from "@uiw/react-json-view/light";
|
|
16
11
|
import { vscodeTheme } from "@uiw/react-json-view/vscode";
|
|
17
12
|
import cn from "classnames";
|
|
18
|
-
|
|
13
|
+
import { Fragment, jsx, jsxs } from "react/jsx-runtime";
|
|
19
14
|
var getValue = (value) => {
|
|
20
15
|
if (typeof value === "string") {
|
|
21
16
|
return JSON.parse(value);
|
|
@@ -29,9 +24,9 @@ var Json = ({ className = null, collapsed = false, value }) => {
|
|
|
29
24
|
const isDarkMode = document.body.classList.contains("dark");
|
|
30
25
|
let content = null;
|
|
31
26
|
let error = null;
|
|
32
|
-
const [showDetails, setShowDetails] =
|
|
27
|
+
const [showDetails, setShowDetails] = useState(false);
|
|
33
28
|
try {
|
|
34
|
-
content = /* @__PURE__ */
|
|
29
|
+
content = /* @__PURE__ */ jsx(
|
|
35
30
|
JsonView,
|
|
36
31
|
{
|
|
37
32
|
className: "pr-5",
|
|
@@ -42,7 +37,7 @@ var Json = ({ className = null, collapsed = false, value }) => {
|
|
|
42
37
|
backgroundColor: "unset"
|
|
43
38
|
},
|
|
44
39
|
value: getValue(value),
|
|
45
|
-
children: /* @__PURE__ */
|
|
40
|
+
children: /* @__PURE__ */ jsx(
|
|
46
41
|
JsonView.Copied,
|
|
47
42
|
{
|
|
48
43
|
render: ({
|
|
@@ -56,7 +51,7 @@ var Json = ({ className = null, collapsed = false, value }) => {
|
|
|
56
51
|
"absolute -right-4 -top-[2px] h-4 w-4 !fill-transparent pl-1",
|
|
57
52
|
{ "text-success": copied }
|
|
58
53
|
);
|
|
59
|
-
return /* @__PURE__ */
|
|
54
|
+
return /* @__PURE__ */ jsx("span", { className: "relative !ml-0 !h-[1em] !w-0", style, children: copied ? /* @__PURE__ */ jsx(
|
|
60
55
|
HiOutlineClipboardCheck,
|
|
61
56
|
{
|
|
62
57
|
...elmProps,
|
|
@@ -64,7 +59,7 @@ var Json = ({ className = null, collapsed = false, value }) => {
|
|
|
64
59
|
}
|
|
65
60
|
) : (
|
|
66
61
|
// eslint-disable-next-line react/jsx-props-no-spreading
|
|
67
|
-
/* @__PURE__ */
|
|
62
|
+
/* @__PURE__ */ jsx(HiOutlineClipboard, { ...elmProps, className: elmClasses })
|
|
68
63
|
) });
|
|
69
64
|
}
|
|
70
65
|
}
|
|
@@ -72,53 +67,53 @@ var Json = ({ className = null, collapsed = false, value }) => {
|
|
|
72
67
|
}
|
|
73
68
|
);
|
|
74
69
|
} catch (err) {
|
|
75
|
-
error = /* @__PURE__ */
|
|
70
|
+
error = /* @__PURE__ */ jsxs(
|
|
76
71
|
"div",
|
|
77
72
|
{
|
|
78
73
|
className: "mb-4 flex flex-col items-center rounded-lg border border-danger bg-danger-50 p-4 text-sm text-danger",
|
|
79
74
|
role: "alert",
|
|
80
75
|
children: [
|
|
81
|
-
/* @__PURE__ */
|
|
82
|
-
/* @__PURE__ */
|
|
83
|
-
/* @__PURE__ */
|
|
84
|
-
/* @__PURE__ */
|
|
76
|
+
/* @__PURE__ */ jsxs("div", { className: "flex w-full justify-between gap-6", children: [
|
|
77
|
+
/* @__PURE__ */ jsxs("div", { className: "flex items-center", children: [
|
|
78
|
+
/* @__PURE__ */ jsx(FaTimesCircle, { className: "mr-2" }),
|
|
79
|
+
/* @__PURE__ */ jsx("span", { className: "font-medium", children: "Failed to parse JSON data" })
|
|
85
80
|
] }),
|
|
86
|
-
/* @__PURE__ */
|
|
81
|
+
/* @__PURE__ */ jsx(
|
|
87
82
|
Button_default,
|
|
88
83
|
{
|
|
89
84
|
color: "danger",
|
|
90
85
|
size: "sm",
|
|
91
86
|
variant: "light",
|
|
92
87
|
onClick: () => setShowDetails(!showDetails),
|
|
93
|
-
children: showDetails ? /* @__PURE__ */
|
|
94
|
-
/* @__PURE__ */
|
|
88
|
+
children: showDetails ? /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
89
|
+
/* @__PURE__ */ jsx(FaChevronUp, {}),
|
|
95
90
|
" Hide Details"
|
|
96
|
-
] }) : /* @__PURE__ */
|
|
97
|
-
/* @__PURE__ */
|
|
91
|
+
] }) : /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
92
|
+
/* @__PURE__ */ jsx(FaChevronDown, {}),
|
|
98
93
|
" Show Details"
|
|
99
94
|
] })
|
|
100
95
|
}
|
|
101
96
|
)
|
|
102
97
|
] }),
|
|
103
|
-
showDetails && /* @__PURE__ */
|
|
104
|
-
/* @__PURE__ */
|
|
105
|
-
/* @__PURE__ */
|
|
106
|
-
/* @__PURE__ */
|
|
98
|
+
showDetails && /* @__PURE__ */ jsxs("div", { className: "mt-4 w-full text-left", children: [
|
|
99
|
+
/* @__PURE__ */ jsxs("div", { children: [
|
|
100
|
+
/* @__PURE__ */ jsx("strong", { children: "Error:" }),
|
|
101
|
+
/* @__PURE__ */ jsxs("pre", { children: [
|
|
107
102
|
err?.name,
|
|
108
103
|
": ",
|
|
109
104
|
err?.message
|
|
110
105
|
] })
|
|
111
106
|
] }),
|
|
112
|
-
/* @__PURE__ */
|
|
113
|
-
/* @__PURE__ */
|
|
114
|
-
/* @__PURE__ */
|
|
107
|
+
/* @__PURE__ */ jsxs("div", { className: "mt-4", children: [
|
|
108
|
+
/* @__PURE__ */ jsx("strong", { children: "Data:" }),
|
|
109
|
+
/* @__PURE__ */ jsx("pre", { children: typeof value !== "string" ? JSON.stringify(value, null, 2) : value })
|
|
115
110
|
] })
|
|
116
111
|
] })
|
|
117
112
|
]
|
|
118
113
|
}
|
|
119
114
|
);
|
|
120
115
|
}
|
|
121
|
-
return /* @__PURE__ */
|
|
116
|
+
return /* @__PURE__ */ jsx("div", { className: cn(className), children: error || content });
|
|
122
117
|
};
|
|
123
118
|
var Json_default = Json;
|
|
124
119
|
|
|
@@ -129,4 +124,4 @@ export {
|
|
|
129
124
|
Json_default,
|
|
130
125
|
Json_default2
|
|
131
126
|
};
|
|
132
|
-
//# sourceMappingURL=chunk-
|
|
127
|
+
//# sourceMappingURL=chunk-BTBF633Q.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/Json/Json.tsx","../src/Json/index.ts"],"sourcesContent":["import type { ReactNode } from 'react';\n\nimport { useState } from 'react';\nimport { FaChevronDown, FaChevronUp, FaTimesCircle } from 'react-icons/fa';\nimport { HiOutlineClipboard, HiOutlineClipboardCheck } from 'react-icons/hi';\n\nimport JsonView from '@uiw/react-json-view';\nimport { lightTheme } from '@uiw/react-json-view/light';\nimport { vscodeTheme } from '@uiw/react-json-view/vscode';\nimport cn from 'classnames';\n\nimport Button from '../Button';\n\n/**\n * returns the value (JSON string or object) as object\n */\nconst getValue = (value: string | object) => {\n if (typeof value === 'string') {\n return JSON.parse(value);\n }\n if (typeof value === 'object') {\n return value;\n }\n throw new Error(`${typeof value} can not be visualized`);\n};\n\nexport interface JsonProps {\n /** CSS class name */\n className?: string | string[] | null;\n /** When set to true, all nodes will be collapsed by default. Use an integer value to collapse at a particular depth. */\n collapsed?: boolean | number;\n /** Object to be visualized JSON string or object */\n value: string | object;\n}\n\n/**\n * Json renderer based on [react-json-view](https://mac-s-g.github.io/react-json-view/demo/dist/)\n */\nconst Json = ({ className = null, collapsed = false, value }: JsonProps) => {\n const isDarkMode = document.body.classList.contains('dark');\n\n let content: ReactNode = null;\n let error: ReactNode = null;\n\n const [showDetails, setShowDetails] = useState(false);\n\n try {\n content = (\n <JsonView\n className=\"pr-5\"\n collapsed={collapsed}\n displayDataTypes={false}\n style={{\n ...(isDarkMode ? vscodeTheme : lightTheme),\n backgroundColor: 'unset',\n }}\n value={getValue(value)}\n >\n {/* FIX: overwrite Copied component to fix flickering copy button */}\n <JsonView.Copied\n render={({\n // @ts-expect-error this should be fine\n 'data-copied': copied,\n style,\n ...elmProps\n }) => {\n const elmClasses = cn(\n elmProps.className,\n 'absolute -right-4 -top-[2px] h-4 w-4 !fill-transparent pl-1',\n { 'text-success': copied },\n );\n return (\n <span className=\"relative !ml-0 !h-[1em] !w-0\" style={style}>\n {copied ? (\n <HiOutlineClipboardCheck\n // eslint-disable-next-line react/jsx-props-no-spreading\n {...elmProps}\n className={elmClasses}\n />\n ) : (\n // eslint-disable-next-line react/jsx-props-no-spreading\n <HiOutlineClipboard {...elmProps} className={elmClasses} />\n )}\n </span>\n );\n }}\n />\n </JsonView>\n );\n } catch (err) {\n error = (\n <div\n className=\"mb-4 flex flex-col items-center rounded-lg border border-danger bg-danger-50 p-4 text-sm text-danger\"\n role=\"alert\"\n >\n <div className=\"flex w-full justify-between gap-6\">\n <div className=\"flex items-center\">\n <FaTimesCircle className=\"mr-2\" />\n <span className=\"font-medium\">Failed to parse JSON data</span>\n </div>\n <Button\n color=\"danger\"\n size=\"sm\"\n variant=\"light\"\n onClick={() => setShowDetails(!showDetails)}\n >\n {showDetails ? (\n <>\n <FaChevronUp /> Hide Details\n </>\n ) : (\n <>\n <FaChevronDown /> Show Details\n </>\n )}\n </Button>\n </div>\n {showDetails && (\n <div className=\"mt-4 w-full text-left\">\n <div>\n <strong>Error:</strong>\n <pre>\n {/* @ts-expect-error is ok */}\n {err?.name}: {err?.message}\n </pre>\n </div>\n <div className=\"mt-4\">\n <strong>Data:</strong>\n <pre>\n {typeof value !== 'string'\n ? JSON.stringify(value, null, 2)\n : value}\n </pre>\n </div>\n </div>\n )}\n </div>\n );\n }\n return <div className={cn(className)}>{error || content}</div>;\n};\n\nexport default Json;\n","import Json from './Json';\n\nexport type { JsonProps } from './Json';\n\nexport { Json };\n\nexport default Json;\n"],"mappings":"
|
|
1
|
+
{"version":3,"sources":["../src/Json/Json.tsx","../src/Json/index.ts"],"sourcesContent":["import type { ReactNode } from 'react';\n\nimport { useState } from 'react';\nimport { FaChevronDown, FaChevronUp, FaTimesCircle } from 'react-icons/fa';\nimport { HiOutlineClipboard, HiOutlineClipboardCheck } from 'react-icons/hi';\n\nimport JsonView from '@uiw/react-json-view';\nimport { lightTheme } from '@uiw/react-json-view/light';\nimport { vscodeTheme } from '@uiw/react-json-view/vscode';\nimport cn from 'classnames';\n\nimport Button from '../Button';\n\n/**\n * returns the value (JSON string or object) as object\n */\nconst getValue = (value: string | object) => {\n if (typeof value === 'string') {\n return JSON.parse(value);\n }\n if (typeof value === 'object') {\n return value;\n }\n throw new Error(`${typeof value} can not be visualized`);\n};\n\nexport interface JsonProps {\n /** CSS class name */\n className?: string | string[] | null;\n /** When set to true, all nodes will be collapsed by default. Use an integer value to collapse at a particular depth. */\n collapsed?: boolean | number;\n /** Object to be visualized JSON string or object */\n value: string | object;\n}\n\n/**\n * Json renderer based on [react-json-view](https://mac-s-g.github.io/react-json-view/demo/dist/)\n */\nconst Json = ({ className = null, collapsed = false, value }: JsonProps) => {\n const isDarkMode = document.body.classList.contains('dark');\n\n let content: ReactNode = null;\n let error: ReactNode = null;\n\n const [showDetails, setShowDetails] = useState(false);\n\n try {\n content = (\n <JsonView\n className=\"pr-5\"\n collapsed={collapsed}\n displayDataTypes={false}\n style={{\n ...(isDarkMode ? vscodeTheme : lightTheme),\n backgroundColor: 'unset',\n }}\n value={getValue(value)}\n >\n {/* FIX: overwrite Copied component to fix flickering copy button */}\n <JsonView.Copied\n render={({\n // @ts-expect-error this should be fine\n 'data-copied': copied,\n style,\n ...elmProps\n }) => {\n const elmClasses = cn(\n elmProps.className,\n 'absolute -right-4 -top-[2px] h-4 w-4 !fill-transparent pl-1',\n { 'text-success': copied },\n );\n return (\n <span className=\"relative !ml-0 !h-[1em] !w-0\" style={style}>\n {copied ? (\n <HiOutlineClipboardCheck\n // eslint-disable-next-line react/jsx-props-no-spreading\n {...elmProps}\n className={elmClasses}\n />\n ) : (\n // eslint-disable-next-line react/jsx-props-no-spreading\n <HiOutlineClipboard {...elmProps} className={elmClasses} />\n )}\n </span>\n );\n }}\n />\n </JsonView>\n );\n } catch (err) {\n error = (\n <div\n className=\"mb-4 flex flex-col items-center rounded-lg border border-danger bg-danger-50 p-4 text-sm text-danger\"\n role=\"alert\"\n >\n <div className=\"flex w-full justify-between gap-6\">\n <div className=\"flex items-center\">\n <FaTimesCircle className=\"mr-2\" />\n <span className=\"font-medium\">Failed to parse JSON data</span>\n </div>\n <Button\n color=\"danger\"\n size=\"sm\"\n variant=\"light\"\n onClick={() => setShowDetails(!showDetails)}\n >\n {showDetails ? (\n <>\n <FaChevronUp /> Hide Details\n </>\n ) : (\n <>\n <FaChevronDown /> Show Details\n </>\n )}\n </Button>\n </div>\n {showDetails && (\n <div className=\"mt-4 w-full text-left\">\n <div>\n <strong>Error:</strong>\n <pre>\n {/* @ts-expect-error is ok */}\n {err?.name}: {err?.message}\n </pre>\n </div>\n <div className=\"mt-4\">\n <strong>Data:</strong>\n <pre>\n {typeof value !== 'string'\n ? JSON.stringify(value, null, 2)\n : value}\n </pre>\n </div>\n </div>\n )}\n </div>\n );\n }\n return <div className={cn(className)}>{error || content}</div>;\n};\n\nexport default Json;\n","import Json from './Json';\n\nexport type { JsonProps } from './Json';\n\nexport { Json };\n\nexport default Json;\n"],"mappings":";;;;;AAEA,SAAS,gBAAgB;AACzB,SAAS,eAAe,aAAa,qBAAqB;AAC1D,SAAS,oBAAoB,+BAA+B;AAE5D,OAAO,cAAc;AACrB,SAAS,kBAAkB;AAC3B,SAAS,mBAAmB;AAC5B,OAAO,QAAQ;AAiEG,SAiCJ,UAjCI,KAsBR,YAtBQ;AA1DlB,IAAM,WAAW,CAAC,UAA2B;AAC3C,MAAI,OAAO,UAAU,UAAU;AAC7B,WAAO,KAAK,MAAM,KAAK;AAAA,EACzB;AACA,MAAI,OAAO,UAAU,UAAU;AAC7B,WAAO;AAAA,EACT;AACA,QAAM,IAAI,MAAM,GAAG,OAAO,KAAK,wBAAwB;AACzD;AAcA,IAAM,OAAO,CAAC,EAAE,YAAY,MAAM,YAAY,OAAO,MAAM,MAAiB;AAC1E,QAAM,aAAa,SAAS,KAAK,UAAU,SAAS,MAAM;AAE1D,MAAI,UAAqB;AACzB,MAAI,QAAmB;AAEvB,QAAM,CAAC,aAAa,cAAc,IAAI,SAAS,KAAK;AAEpD,MAAI;AACF,cACE;AAAA,MAAC;AAAA;AAAA,QACC,WAAU;AAAA,QACV;AAAA,QACA,kBAAkB;AAAA,QAClB,OAAO;AAAA,UACL,GAAI,aAAa,cAAc;AAAA,UAC/B,iBAAiB;AAAA,QACnB;AAAA,QACA,OAAO,SAAS,KAAK;AAAA,QAGrB;AAAA,UAAC,SAAS;AAAA,UAAT;AAAA,YACC,QAAQ,CAAC;AAAA;AAAA,cAEP,eAAe;AAAA,cACf;AAAA,cACA,GAAG;AAAA,YACL,MAAM;AACJ,oBAAM,aAAa;AAAA,gBACjB,SAAS;AAAA,gBACT;AAAA,gBACA,EAAE,gBAAgB,OAAO;AAAA,cAC3B;AACA,qBACE,oBAAC,UAAK,WAAU,gCAA+B,OAC5C,mBACC;AAAA,gBAAC;AAAA;AAAA,kBAEE,GAAG;AAAA,kBACJ,WAAW;AAAA;AAAA,cACb;AAAA;AAAA,gBAGA,oBAAC,sBAAoB,GAAG,UAAU,WAAW,YAAY;AAAA,iBAE7D;AAAA,YAEJ;AAAA;AAAA,QACF;AAAA;AAAA,IACF;AAAA,EAEJ,SAAS,KAAK;AACZ,YACE;AAAA,MAAC;AAAA;AAAA,QACC,WAAU;AAAA,QACV,MAAK;AAAA,QAEL;AAAA,+BAAC,SAAI,WAAU,qCACb;AAAA,iCAAC,SAAI,WAAU,qBACb;AAAA,kCAAC,iBAAc,WAAU,QAAO;AAAA,cAChC,oBAAC,UAAK,WAAU,eAAc,uCAAyB;AAAA,eACzD;AAAA,YACA;AAAA,cAAC;AAAA;AAAA,gBACC,OAAM;AAAA,gBACN,MAAK;AAAA,gBACL,SAAQ;AAAA,gBACR,SAAS,MAAM,eAAe,CAAC,WAAW;AAAA,gBAEzC,wBACC,iCACE;AAAA,sCAAC,eAAY;AAAA,kBAAE;AAAA,mBACjB,IAEA,iCACE;AAAA,sCAAC,iBAAc;AAAA,kBAAE;AAAA,mBACnB;AAAA;AAAA,YAEJ;AAAA,aACF;AAAA,UACC,eACC,qBAAC,SAAI,WAAU,yBACb;AAAA,iCAAC,SACC;AAAA,kCAAC,YAAO,oBAAM;AAAA,cACd,qBAAC,SAEE;AAAA,qBAAK;AAAA,gBAAK;AAAA,gBAAG,KAAK;AAAA,iBACrB;AAAA,eACF;AAAA,YACA,qBAAC,SAAI,WAAU,QACb;AAAA,kCAAC,YAAO,mBAAK;AAAA,cACb,oBAAC,SACE,iBAAO,UAAU,WACd,KAAK,UAAU,OAAO,MAAM,CAAC,IAC7B,OACN;AAAA,eACF;AAAA,aACF;AAAA;AAAA;AAAA,IAEJ;AAAA,EAEJ;AACA,SAAO,oBAAC,SAAI,WAAW,GAAG,SAAS,GAAI,mBAAS,SAAQ;AAC1D;AAEA,IAAO,eAAQ;;;ACxIf,IAAOA,gBAAQ;","names":["Json_default"]}
|
|
@@ -1,10 +1,4 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports, "__esModule", {value: true})
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
var _chunkPTN54X4Zcjs = require('./chunk-PTN54X4Z.cjs');
|
|
5
|
-
|
|
6
|
-
// src/Card/Card.tsx
|
|
7
|
-
var import_jsx_runtime = _chunkPTN54X4Zcjs.__toESM.call(void 0, _chunkPTN54X4Zcjs.require_jsx_runtime.call(void 0, ), 1);
|
|
1
|
+
"use strict";Object.defineProperty(exports, "__esModule", {value: true});// src/Card/Card.tsx
|
|
8
2
|
|
|
9
3
|
|
|
10
4
|
|
|
@@ -13,6 +7,7 @@ var import_jsx_runtime = _chunkPTN54X4Zcjs.__toESM.call(void 0, _chunkPTN54X4Zcj
|
|
|
13
7
|
var _card = require('@nextui-org/card');
|
|
14
8
|
var _divider = require('@nextui-org/divider');
|
|
15
9
|
var _tailwindvariants = require('tailwind-variants');
|
|
10
|
+
var _jsxruntime = require('react/jsx-runtime');
|
|
16
11
|
var cardVariants = _tailwindvariants.tv.call(void 0, {
|
|
17
12
|
slots: {
|
|
18
13
|
base: "border border-divider",
|
|
@@ -39,13 +34,13 @@ var Card = ({
|
|
|
39
34
|
body: variants.body({ className: classNameObj.body }),
|
|
40
35
|
footer: variants.footer({ className: classNameObj.footer })
|
|
41
36
|
};
|
|
42
|
-
const divider = /* @__PURE__ */ (0,
|
|
37
|
+
const divider = /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
43
38
|
_divider.Divider,
|
|
44
39
|
{
|
|
45
40
|
className: variants.divider({ className: classNameObj.divider })
|
|
46
41
|
}
|
|
47
42
|
);
|
|
48
|
-
return /* @__PURE__ */ (0,
|
|
43
|
+
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
49
44
|
_card.Card,
|
|
50
45
|
{
|
|
51
46
|
classNames,
|
|
@@ -54,14 +49,14 @@ var Card = ({
|
|
|
54
49
|
radius: "sm",
|
|
55
50
|
shadow: "none",
|
|
56
51
|
children: [
|
|
57
|
-
header && /* @__PURE__ */ (0,
|
|
58
|
-
/* @__PURE__ */ (0,
|
|
52
|
+
header && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
|
|
53
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _card.CardHeader, { "data-testid": testId && `card_header_${testId}`, children: header }),
|
|
59
54
|
divider
|
|
60
55
|
] }),
|
|
61
|
-
/* @__PURE__ */ (0,
|
|
62
|
-
footer && /* @__PURE__ */ (0,
|
|
56
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _card.CardBody, { "data-testid": testId && `card_body_${testId}`, children }),
|
|
57
|
+
footer && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
|
|
63
58
|
divider,
|
|
64
|
-
/* @__PURE__ */ (0,
|
|
59
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _card.CardFooter, { "data-testid": testId && `card_footer_${testId}`, children: footer })
|
|
65
60
|
] })
|
|
66
61
|
]
|
|
67
62
|
}
|
|
@@ -77,4 +72,4 @@ var Card_default2 = Card_default;
|
|
|
77
72
|
|
|
78
73
|
|
|
79
74
|
exports.cardVariants = cardVariants; exports.Card_default = Card_default; exports.Card_default2 = Card_default2;
|
|
80
|
-
//# sourceMappingURL=chunk-
|
|
75
|
+
//# sourceMappingURL=chunk-GIM2W4JH.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/Card/Card.tsx","../src/Card/index.ts"],"names":["Card_default"],"mappings":";AAGA;AAAA,EACE,QAAQ;AAAA,EACR,YAAY;AAAA,EACZ,cAAc;AAAA,EACd,cAAc;AAAA,OACT;AACP,SAAS,WAAW,mBAAmB;AACvC,SAAS,UAAU;AAsDf,SAcI,UAdJ,KAcI,YAdJ;AAnDG,IAAM,eAAe,GAAG;AAAA,EAC7B,OAAO;AAAA,IACL,MAAM;AAAA,IACN,MAAM;AAAA,IACN,SAAS;AAAA,IACT,QAAQ;AAAA,IACR,QAAQ;AAAA,EACV;AACF,CAAC;AAuBD,IAAM,OAAO,CAAC;AAAA,EACZ,WAAW;AAAA,EACX,YAAY;AAAA,EACZ,SAAS;AAAA,EACT,SAAS;AAAA,EACT,SAAS;AACX,MAAiB;AAEf,QAAM,WAAW,aAAa;AAC9B,QAAM,eAAgB,OAAO,cAAc,YAAY,aAAc,CAAC;AACtE,QAAM,aAAa;AAAA,IACjB,MAAM,SAAS,KAAK;AAAA,MAClB,WAAW,aAAa,QAAS;AAAA,IACnC,CAAC;AAAA,IACD,QAAQ,SAAS,OAAO,EAAE,WAAW,aAAa,OAAO,CAAC;AAAA,IAC1D,MAAM,SAAS,KAAK,EAAE,WAAW,aAAa,KAAK,CAAC;AAAA,IACpD,QAAQ,SAAS,OAAO,EAAE,WAAW,aAAa,OAAO,CAAC;AAAA,EAC5D;AAEA,QAAM,UACJ;AAAA,IAAC;AAAA;AAAA,MACC,WAAW,SAAS,QAAQ,EAAE,WAAW,aAAa,QAAQ,CAAC;AAAA;AAAA,EACjE;AAGF,SACE;AAAA,IAAC;AAAA;AAAA,MACC;AAAA,MACA,eAAa,UAAU,QAAQ,MAAM;AAAA,MACrC,WAAS;AAAA,MACT,QAAO;AAAA,MACP,QAAO;AAAA,MAEN;AAAA,kBACC,iCACE;AAAA,8BAAC,kBAAe,eAAa,UAAU,eAAe,MAAM,IACzD,kBACH;AAAA,UACC;AAAA,WACH;AAAA,QAEF,oBAAC,gBAAa,eAAa,UAAU,aAAa,MAAM,IACrD,UACH;AAAA,QACC,UACC,iCACG;AAAA;AAAA,UACD,oBAAC,kBAAe,eAAa,UAAU,eAAe,MAAM,IACzD,kBACH;AAAA,WACF;AAAA;AAAA;AAAA,EAEJ;AAEJ;AAEA,IAAO,eAAQ;;;AC9Ff,IAAOA,gBAAQ","sourcesContent":["import type { ReactNode } from 'react';\nimport type { VariantProps } from 'tailwind-variants';\n\nimport {\n Card as NextCard,\n CardBody as NextCardBody,\n CardFooter as NextCardFooter,\n CardHeader as NextCardHeader,\n} from '@nextui-org/card';\nimport { Divider as NextDivider } from '@nextui-org/divider';\nimport { tv } from 'tailwind-variants';\n\n// card styling variants\nexport const cardVariants = tv({\n slots: {\n base: 'border border-divider',\n body: '',\n divider: 'my-0 border-divider',\n footer: '',\n header: 'text-base font-semibold',\n },\n});\n\ntype CardVariantProps = VariantProps<typeof cardVariants>;\ntype CardVariantSlots = Partial<\n Record<keyof ReturnType<typeof cardVariants>, string>\n>;\n\nexport interface CardProps extends CardVariantProps {\n /** card body content */\n children?: ReactNode;\n /** CSS class name */\n className?: string | CardVariantSlots;\n /** footer content */\n footer?: ReactNode;\n /** header content */\n header?: ReactNode;\n /** HTML data-testid attribute used in e2e tests */\n testId?: string;\n}\n\n/**\n * Card component based on [NextUI Card](https://nextui.org/docs/components/card)\n */\nconst Card = ({\n children = null,\n className = undefined,\n testId = undefined,\n header = undefined,\n footer = undefined,\n}: CardProps) => {\n // classNames from slots\n const variants = cardVariants();\n const classNameObj = (typeof className === 'object' && className) || {};\n const classNames = {\n base: variants.base({\n className: classNameObj.base || (className as string),\n }),\n header: variants.header({ className: classNameObj.header }),\n body: variants.body({ className: classNameObj.body }),\n footer: variants.footer({ className: classNameObj.footer }),\n };\n\n const divider = (\n <NextDivider\n className={variants.divider({ className: classNameObj.divider })}\n />\n );\n\n return (\n <NextCard\n classNames={classNames}\n data-testid={testId && `card_${testId}`}\n fullWidth\n radius=\"sm\"\n shadow=\"none\"\n >\n {header && (\n <>\n <NextCardHeader data-testid={testId && `card_header_${testId}`}>\n {header}\n </NextCardHeader>\n {divider}\n </>\n )}\n <NextCardBody data-testid={testId && `card_body_${testId}`}>\n {children}\n </NextCardBody>\n {footer && (\n <>\n {divider}\n <NextCardFooter data-testid={testId && `card_footer_${testId}`}>\n {footer}\n </NextCardFooter>\n </>\n )}\n </NextCard>\n );\n};\n\nexport default Card;\n","import Card, { cardVariants } from './Card';\n\nexport type { CardProps } from './Card';\n\nexport { Card, cardVariants };\n\nexport default Card;\n"]}
|
|
@@ -1,10 +1,4 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
var _chunkPTN54X4Zcjs = require('./chunk-PTN54X4Z.cjs');
|
|
5
|
-
|
|
6
|
-
// src/Menu/Menu.tsx
|
|
7
|
-
var import_jsx_runtime = _chunkPTN54X4Zcjs.__toESM.call(void 0, _chunkPTN54X4Zcjs.require_jsx_runtime.call(void 0, ), 1);
|
|
1
|
+
"use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }// src/Menu/Menu.tsx
|
|
8
2
|
var _fa6 = require('react-icons/fa6');
|
|
9
3
|
var _button = require('@nextui-org/button');
|
|
10
4
|
|
|
@@ -15,12 +9,13 @@ var _button = require('@nextui-org/button');
|
|
|
15
9
|
|
|
16
10
|
var _dropdown = require('@nextui-org/dropdown');
|
|
17
11
|
var _classnames = require('classnames'); var _classnames2 = _interopRequireDefault(_classnames);
|
|
12
|
+
var _jsxruntime = require('react/jsx-runtime');
|
|
18
13
|
var getDisabledKeys = (items) => {
|
|
19
14
|
return items.map((item) => typeof _optionalChain([item, 'optionalAccess', _ => _.items]) === "undefined" ? item : item.items).flat().filter((item) => {
|
|
20
15
|
return Object.hasOwn(item, "disabled") && item.disabled === true;
|
|
21
16
|
}).map((item) => item.key);
|
|
22
17
|
};
|
|
23
|
-
var renderMenuItem = (item) => /* @__PURE__ */ (0,
|
|
18
|
+
var renderMenuItem = (item) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
24
19
|
_dropdown.DropdownItem,
|
|
25
20
|
{
|
|
26
21
|
className: item.className,
|
|
@@ -40,15 +35,15 @@ var Menu = ({
|
|
|
40
35
|
isDisabled = false,
|
|
41
36
|
items
|
|
42
37
|
}) => {
|
|
43
|
-
return /* @__PURE__ */ (0,
|
|
44
|
-
/* @__PURE__ */ (0,
|
|
38
|
+
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _dropdown.Dropdown, { isDisabled, children: [
|
|
39
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _dropdown.DropdownTrigger, { className: _classnames2.default.call(void 0, className), "data-testid": testId, children: children ? (
|
|
45
40
|
// eslint-disable-next-line react/button-has-type
|
|
46
|
-
/* @__PURE__ */ (0,
|
|
41
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "button", { children })
|
|
47
42
|
) : (
|
|
48
43
|
// INFO: we use next button here so that ref passing works
|
|
49
|
-
/* @__PURE__ */ (0,
|
|
44
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _button.Button, { size: "sm", variant: "flat", className: "min-w-0", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _fa6.FaEllipsisVertical, {}) })
|
|
50
45
|
) }),
|
|
51
|
-
/* @__PURE__ */ (0,
|
|
46
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
52
47
|
_dropdown.DropdownMenu,
|
|
53
48
|
{
|
|
54
49
|
items,
|
|
@@ -56,7 +51,7 @@ var Menu = ({
|
|
|
56
51
|
onAction,
|
|
57
52
|
children: (item) => {
|
|
58
53
|
if ("items" in item) {
|
|
59
|
-
return /* @__PURE__ */ (0,
|
|
54
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
60
55
|
_dropdown.DropdownSection,
|
|
61
56
|
{
|
|
62
57
|
items: item.items,
|
|
@@ -83,4 +78,4 @@ var Menu_default2 = Menu_default;
|
|
|
83
78
|
|
|
84
79
|
|
|
85
80
|
exports.Menu_default = Menu_default; exports.Menu_default2 = Menu_default2;
|
|
86
|
-
//# sourceMappingURL=chunk-
|
|
81
|
+
//# sourceMappingURL=chunk-HHTTNYDC.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/Menu/Menu.tsx","../src/Menu/index.ts"],"names":["Menu_default"],"mappings":";AAGA,SAAS,0BAA0B;AAEnC,SAAS,cAAc;AACvB;AAAA,EACE,YAAY;AAAA,EACZ,gBAAgB;AAAA,EAChB,gBAAgB;AAAA,EAChB,mBAAmB;AAAA,EACnB,mBAAmB;AAAA,OACd;AACP,OAAO,QAAQ;AAkEb,cAwBE,YAxBF;AAdF,IAAM,kBAAkB,CAAC,UAAsC;AAC7D,SACE,MAEG,IAAI,CAAC,SAAU,OAAO,MAAM,UAAU,cAAc,OAAO,KAAK,KAAM,EACtE,KAAiB,EACjB,OAAO,CAAC,SAAS;AAChB,WAAO,OAAO,OAAO,MAAM,UAAU,KAAK,KAAK,aAAa;AAAA,EAC9D,CAAC,EACA,IAAI,CAAC,SAAS,KAAK,GAAG;AAE7B;AAEA,IAAM,iBAAiB,CAAC,SACtB;AAAA,EAAC;AAAA;AAAA,IACC,WAAW,KAAK;AAAA,IAChB,eAAa,KAAK,UAAU,KAAK;AAAA,IACjC,aAAa,KAAK;AAAA,IAElB,SAAS,KAAK;AAAA,IACd,cAAc,KAAK;AAAA,IAElB,eAAK;AAAA;AAAA,EAJD,KAAK;AAKZ;AAMF,IAAM,OAAO,CAAC;AAAA,EACZ,WAAW;AAAA,EACX,YAAY;AAAA,EACZ,WAAW;AAAA,EACX,SAAS;AAAA,EACT,aAAa;AAAA,EACb;AACF,MAAiB;AACf,SACE,qBAAC,gBAAa,YACZ;AAAA,wBAAC,uBAAoB,WAAW,GAAG,SAAS,GAAG,eAAa,QACzD;AAAA;AAAA,MAEC,oBAAC,YAAQ,UAAS;AAAA;AAAA;AAAA,MAGlB,oBAAC,UAAO,MAAK,MAAK,SAAQ,QAAO,WAAU,WACzC,8BAAC,sBAAmB,GACtB;AAAA,OAEJ;AAAA,IACA;AAAA,MAAC;AAAA;AAAA,QAEC;AAAA,QACA,cAAc,gBAAgB,KAAK;AAAA,QACnC;AAAA,QAEC,WAAC,SAAS;AACT,cAAI,WAAW,MAAM;AACnB,mBACE;AAAA,cAAC;AAAA;AAAA,gBACC,OAAO,KAAK;AAAA,gBACZ,OAAO,KAAK;AAAA,gBAIX,WAAC,gBAAgB;AAChB,yBAAO,eAAe,WAAW;AAAA,gBACnC;AAAA;AAAA,cALK,KAAK;AAAA,YAMZ;AAAA,UAEJ;AACA,iBAAO,eAAe,IAAI;AAAA,QAC5B;AAAA;AAAA,IACF;AAAA,KACF;AAEJ;AAEA,IAAO,eAAQ;;;ACzIf,IAAOA,gBAAQ","sourcesContent":["import type { DropdownSectionProps } from '@nextui-org/dropdown';\nimport type { Key, MouseEventHandler, ReactNode } from 'react';\n\nimport { FaEllipsisVertical } from 'react-icons/fa6';\n\nimport { Button } from '@nextui-org/button';\nimport {\n Dropdown as NextDropdown,\n DropdownItem as NextDropdownItem,\n DropdownMenu as NextDropdownMenu,\n DropdownSection as NextDropdownSection,\n DropdownTrigger as NextDropdownTrigger,\n} from '@nextui-org/dropdown';\nimport cn from 'classnames';\n\n/**\n * Menu item type\n */\nexport interface MenuItem {\n /** unique identifier */\n key: string;\n /** CSS class name */\n className?: string;\n /** additional description shown under the label */\n description?: string;\n /** disables the menu item */\n disabled?: boolean;\n /** menu item icon */\n icon?: ReactNode;\n /** menu item name */\n label: ReactNode;\n /** click event handler */\n onClick?: MouseEventHandler<HTMLLIElement>;\n /** e2e test identifier */\n testId?: string;\n}\n\n/**\n * Menu section type\n */\nexport interface MenuSection {\n /** unique identifier */\n key: string;\n /** section label */\n label: ReactNode;\n /** section items (array of MenuItem) */\n items: MenuItem[];\n}\n\nexport interface MenuProps {\n /** child components */\n children?: ReactNode;\n /** CSS class name */\n className?: string | string[];\n /** HTML data-testid attribute used in e2e tests */\n testId?: string;\n /** menu item structure */\n items: (MenuSection | MenuItem)[];\n /** disable menu trigger */\n isDisabled?: boolean;\n /** called if item is selected */\n onAction?: (key: Key) => void;\n}\n\n/** returns String[] of disabled items/keys */\nconst getDisabledKeys = (items: (MenuSection | MenuItem)[]) => {\n return (\n items\n // @ts-expect-error typing issue with MenuSection | MenuItem\n .map((item) => (typeof item?.items === 'undefined' ? item : item.items))\n .flat<MenuItem[]>()\n .filter((item) => {\n return Object.hasOwn(item, 'disabled') && item.disabled === true;\n })\n .map((item) => item.key)\n );\n};\n\nconst renderMenuItem = (item: MenuItem) => (\n <NextDropdownItem\n className={item.className}\n data-testid={item.testId || item.key}\n description={item.description}\n key={item.key}\n onClick={item.onClick}\n startContent={item.icon}\n >\n {item.label}\n </NextDropdownItem>\n);\n\n/**\n * Dropdown menu component based on [NextUI Dropdown](https://nextui.org/docs/components/dropdown)\n */\nconst Menu = ({\n children = null,\n className = undefined,\n onAction = undefined,\n testId = undefined,\n isDisabled = false,\n items,\n}: MenuProps) => {\n return (\n <NextDropdown isDisabled={isDisabled}>\n <NextDropdownTrigger className={cn(className)} data-testid={testId}>\n {children ? (\n // eslint-disable-next-line react/button-has-type\n <button>{children}</button>\n ) : (\n // INFO: we use next button here so that ref passing works\n <Button size=\"sm\" variant=\"flat\" className=\"min-w-0\">\n <FaEllipsisVertical />\n </Button>\n )}\n </NextDropdownTrigger>\n <NextDropdownMenu\n // aria-label=\"Dynamic Actions\"\n items={items}\n disabledKeys={getDisabledKeys(items)}\n onAction={onAction}\n >\n {(item) => {\n if ('items' in item) {\n return (\n <NextDropdownSection\n items={item.items as MenuSection['items']}\n title={item.label as DropdownSectionProps['title']}\n key={item.key}\n >\n {/* @ts-expect-error ts problem here with render fn */}\n {(sectionItem) => {\n return renderMenuItem(sectionItem);\n }}\n </NextDropdownSection>\n );\n }\n return renderMenuItem(item);\n }}\n </NextDropdownMenu>\n </NextDropdown>\n );\n};\n\nexport default Menu;\n","import Menu from './Menu';\n\nexport type { MenuProps, MenuItem, MenuSection } from './Menu';\n\nexport { Menu };\n\nexport default Menu;\n"]}
|
|
@@ -1,15 +1,10 @@
|
|
|
1
|
-
import {
|
|
2
|
-
__toESM,
|
|
3
|
-
require_jsx_runtime
|
|
4
|
-
} from "./chunk-EOBBMFEW.js";
|
|
5
|
-
|
|
6
1
|
// src/Button/Button.tsx
|
|
7
2
|
import { Button as NextButton } from "@nextui-org/button";
|
|
8
3
|
import { tv } from "tailwind-variants";
|
|
9
4
|
|
|
10
5
|
// src/Button/subcomponents/LoadingSpinner.tsx
|
|
11
|
-
|
|
12
|
-
var LoadingSpinner_default = () => /* @__PURE__ */
|
|
6
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
7
|
+
var LoadingSpinner_default = () => /* @__PURE__ */ jsxs(
|
|
13
8
|
"svg",
|
|
14
9
|
{
|
|
15
10
|
className: "animate-spin h-5 w-5 text-current",
|
|
@@ -17,7 +12,7 @@ var LoadingSpinner_default = () => /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(
|
|
|
17
12
|
viewBox: "0 0 24 24",
|
|
18
13
|
xmlns: "http://www.w3.org/2000/svg",
|
|
19
14
|
children: [
|
|
20
|
-
/* @__PURE__ */
|
|
15
|
+
/* @__PURE__ */ jsx(
|
|
21
16
|
"circle",
|
|
22
17
|
{
|
|
23
18
|
className: "opacity-25",
|
|
@@ -28,7 +23,7 @@ var LoadingSpinner_default = () => /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(
|
|
|
28
23
|
strokeWidth: "4"
|
|
29
24
|
}
|
|
30
25
|
),
|
|
31
|
-
/* @__PURE__ */
|
|
26
|
+
/* @__PURE__ */ jsx(
|
|
32
27
|
"path",
|
|
33
28
|
{
|
|
34
29
|
className: "opacity-75",
|
|
@@ -41,7 +36,7 @@ var LoadingSpinner_default = () => /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(
|
|
|
41
36
|
);
|
|
42
37
|
|
|
43
38
|
// src/Button/Button.tsx
|
|
44
|
-
|
|
39
|
+
import { jsx as jsx2, jsxs as jsxs2 } from "react/jsx-runtime";
|
|
45
40
|
var buttonVariants = tv({
|
|
46
41
|
base: "",
|
|
47
42
|
variants: {
|
|
@@ -93,7 +88,7 @@ var Button = ({
|
|
|
93
88
|
type = void 0,
|
|
94
89
|
variant = "solid"
|
|
95
90
|
}) => {
|
|
96
|
-
return /* @__PURE__ */ (
|
|
91
|
+
return /* @__PURE__ */ jsxs2(
|
|
97
92
|
NextButton,
|
|
98
93
|
{
|
|
99
94
|
"aria-label": ariaLabel,
|
|
@@ -107,7 +102,7 @@ var Button = ({
|
|
|
107
102
|
isLoading: loading,
|
|
108
103
|
onPress: onClick,
|
|
109
104
|
size,
|
|
110
|
-
spinner: /* @__PURE__ */ (
|
|
105
|
+
spinner: /* @__PURE__ */ jsx2(LoadingSpinner_default, {}),
|
|
111
106
|
type,
|
|
112
107
|
variant,
|
|
113
108
|
children: [
|
|
@@ -127,4 +122,4 @@ export {
|
|
|
127
122
|
Button_default,
|
|
128
123
|
Button_default2
|
|
129
124
|
};
|
|
130
|
-
//# sourceMappingURL=chunk-
|
|
125
|
+
//# sourceMappingURL=chunk-HYXTFS4R.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/Button/Button.tsx","../src/Button/subcomponents/LoadingSpinner.tsx","../src/Button/index.ts"],"sourcesContent":["import type { ButtonProps as NextButtonProps } from '@nextui-org/button';\nimport type { ReactNode } from 'react';\nimport type { VariantProps } from 'tailwind-variants';\n\nimport { Button as NextButton } from '@nextui-org/button';\nimport { tv } from 'tailwind-variants';\n\nimport LoadingSpinner from './subcomponents/LoadingSpinner';\n\nexport const buttonVariants = tv({\n base: '',\n variants: {\n color: {\n default: '',\n primary: '',\n secondary: '',\n success: '',\n warning: '',\n danger: '',\n },\n variant: {\n solid: '',\n bordered: '',\n light: '',\n flat: '',\n faded: '',\n shadow: '',\n ghost: '',\n },\n },\n compoundVariants: [\n // white text on solid / shadow success button\n {\n color: 'success',\n variant: ['solid', 'shadow'],\n class: 'text-white',\n },\n // white text on solid / shadow warning button\n {\n color: 'warning',\n variant: ['solid', 'shadow'],\n class: 'text-white',\n },\n ],\n});\n\ntype ButtonVariantProps = VariantProps<typeof buttonVariants>;\n\nexport interface ButtonProps extends ButtonVariantProps {\n /** sets HTML aria-label attribute */\n ariaLabel?: string;\n /** child components */\n children?: ReactNode;\n /** CSS class name */\n className?: string | string[];\n /** next ui button color */\n color?: NextButtonProps['color'];\n /** disables function of the button. */\n disabled?: boolean;\n /** disables all button animations */\n disableAnimation?: boolean;\n /** If set loading animation is shown */\n loading?: boolean;\n /** optional icon */\n icon?: ReactNode;\n /** on click event */\n onClick?: NextButtonProps['onPress'];\n /** 3 size options */\n size?: NextButtonProps['size'];\n /** HTML data-testid attribute used in e2e tests */\n testId?: string;\n /** sets the button type. */\n type?: 'button' | 'submit' | 'reset' | undefined;\n /** next ui button variants */\n variant?: NextButtonProps['variant'];\n}\n\n/**\n * Button component based on [NextUI Button](https://nextui.org/docs/components/button)\n */\nconst Button = ({\n ariaLabel = undefined,\n children = undefined,\n className = undefined,\n color = 'default',\n disabled = false,\n disableAnimation = false,\n icon = undefined,\n loading = false,\n onClick = undefined,\n size = undefined,\n testId = undefined,\n type = undefined,\n variant = 'solid',\n}: ButtonProps) => {\n return (\n <NextButton\n aria-label={ariaLabel}\n className={buttonVariants({ color, variant, className })}\n color={color}\n data-testid={testId}\n disableAnimation={disableAnimation}\n disableRipple={disableAnimation}\n isDisabled={disabled}\n isIconOnly={!!(icon && !children)}\n isLoading={loading}\n onPress={onClick}\n size={size}\n spinner={<LoadingSpinner />}\n type={type}\n variant={variant}\n >\n {icon}\n {children}\n </NextButton>\n );\n};\n\nexport default Button;\n","/**\n * svg loading spinner for button\n * @see https://nextui.org/docs/components/button#loading\n * */\nexport default () => (\n <svg\n className=\"animate-spin h-5 w-5 text-current\"\n fill=\"none\"\n viewBox=\"0 0 24 24\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <circle\n className=\"opacity-25\"\n cx=\"12\"\n cy=\"12\"\n r=\"10\"\n stroke=\"currentColor\"\n strokeWidth=\"4\"\n />\n <path\n className=\"opacity-75\"\n d=\"M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z\"\n fill=\"currentColor\"\n />\n </svg>\n);\n","import Button, { buttonVariants } from './Button';\n\nexport type { ButtonProps } from './Button';\n\nexport { Button, buttonVariants };\n\nexport default Button;\n"],"mappings":"
|
|
1
|
+
{"version":3,"sources":["../src/Button/Button.tsx","../src/Button/subcomponents/LoadingSpinner.tsx","../src/Button/index.ts"],"sourcesContent":["import type { ButtonProps as NextButtonProps } from '@nextui-org/button';\nimport type { ReactNode } from 'react';\nimport type { VariantProps } from 'tailwind-variants';\n\nimport { Button as NextButton } from '@nextui-org/button';\nimport { tv } from 'tailwind-variants';\n\nimport LoadingSpinner from './subcomponents/LoadingSpinner';\n\nexport const buttonVariants = tv({\n base: '',\n variants: {\n color: {\n default: '',\n primary: '',\n secondary: '',\n success: '',\n warning: '',\n danger: '',\n },\n variant: {\n solid: '',\n bordered: '',\n light: '',\n flat: '',\n faded: '',\n shadow: '',\n ghost: '',\n },\n },\n compoundVariants: [\n // white text on solid / shadow success button\n {\n color: 'success',\n variant: ['solid', 'shadow'],\n class: 'text-white',\n },\n // white text on solid / shadow warning button\n {\n color: 'warning',\n variant: ['solid', 'shadow'],\n class: 'text-white',\n },\n ],\n});\n\ntype ButtonVariantProps = VariantProps<typeof buttonVariants>;\n\nexport interface ButtonProps extends ButtonVariantProps {\n /** sets HTML aria-label attribute */\n ariaLabel?: string;\n /** child components */\n children?: ReactNode;\n /** CSS class name */\n className?: string | string[];\n /** next ui button color */\n color?: NextButtonProps['color'];\n /** disables function of the button. */\n disabled?: boolean;\n /** disables all button animations */\n disableAnimation?: boolean;\n /** If set loading animation is shown */\n loading?: boolean;\n /** optional icon */\n icon?: ReactNode;\n /** on click event */\n onClick?: NextButtonProps['onPress'];\n /** 3 size options */\n size?: NextButtonProps['size'];\n /** HTML data-testid attribute used in e2e tests */\n testId?: string;\n /** sets the button type. */\n type?: 'button' | 'submit' | 'reset' | undefined;\n /** next ui button variants */\n variant?: NextButtonProps['variant'];\n}\n\n/**\n * Button component based on [NextUI Button](https://nextui.org/docs/components/button)\n */\nconst Button = ({\n ariaLabel = undefined,\n children = undefined,\n className = undefined,\n color = 'default',\n disabled = false,\n disableAnimation = false,\n icon = undefined,\n loading = false,\n onClick = undefined,\n size = undefined,\n testId = undefined,\n type = undefined,\n variant = 'solid',\n}: ButtonProps) => {\n return (\n <NextButton\n aria-label={ariaLabel}\n className={buttonVariants({ color, variant, className })}\n color={color}\n data-testid={testId}\n disableAnimation={disableAnimation}\n disableRipple={disableAnimation}\n isDisabled={disabled}\n isIconOnly={!!(icon && !children)}\n isLoading={loading}\n onPress={onClick}\n size={size}\n spinner={<LoadingSpinner />}\n type={type}\n variant={variant}\n >\n {icon}\n {children}\n </NextButton>\n );\n};\n\nexport default Button;\n","/**\n * svg loading spinner for button\n * @see https://nextui.org/docs/components/button#loading\n * */\nexport default () => (\n <svg\n className=\"animate-spin h-5 w-5 text-current\"\n fill=\"none\"\n viewBox=\"0 0 24 24\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <circle\n className=\"opacity-25\"\n cx=\"12\"\n cy=\"12\"\n r=\"10\"\n stroke=\"currentColor\"\n strokeWidth=\"4\"\n />\n <path\n className=\"opacity-75\"\n d=\"M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z\"\n fill=\"currentColor\"\n />\n </svg>\n);\n","import Button, { buttonVariants } from './Button';\n\nexport type { ButtonProps } from './Button';\n\nexport { Button, buttonVariants };\n\nexport default Button;\n"],"mappings":";AAIA,SAAS,UAAU,kBAAkB;AACrC,SAAS,UAAU;;;ACAjB,SAME,KANF;AADF,IAAO,yBAAQ,MACb;AAAA,EAAC;AAAA;AAAA,IACC,WAAU;AAAA,IACV,MAAK;AAAA,IACL,SAAQ;AAAA,IACR,OAAM;AAAA,IAEN;AAAA;AAAA,QAAC;AAAA;AAAA,UACC,WAAU;AAAA,UACV,IAAG;AAAA,UACH,IAAG;AAAA,UACH,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA;AAAA,MACd;AAAA,MACA;AAAA,QAAC;AAAA;AAAA,UACC,WAAU;AAAA,UACV,GAAE;AAAA,UACF,MAAK;AAAA;AAAA,MACP;AAAA;AAAA;AACF;;;ADwEE,SAYW,OAAAA,MAZX,QAAAC,aAAA;AAvFG,IAAM,iBAAiB,GAAG;AAAA,EAC/B,MAAM;AAAA,EACN,UAAU;AAAA,IACR,OAAO;AAAA,MACL,SAAS;AAAA,MACT,SAAS;AAAA,MACT,WAAW;AAAA,MACX,SAAS;AAAA,MACT,SAAS;AAAA,MACT,QAAQ;AAAA,IACV;AAAA,IACA,SAAS;AAAA,MACP,OAAO;AAAA,MACP,UAAU;AAAA,MACV,OAAO;AAAA,MACP,MAAM;AAAA,MACN,OAAO;AAAA,MACP,QAAQ;AAAA,MACR,OAAO;AAAA,IACT;AAAA,EACF;AAAA,EACA,kBAAkB;AAAA;AAAA,IAEhB;AAAA,MACE,OAAO;AAAA,MACP,SAAS,CAAC,SAAS,QAAQ;AAAA,MAC3B,OAAO;AAAA,IACT;AAAA;AAAA,IAEA;AAAA,MACE,OAAO;AAAA,MACP,SAAS,CAAC,SAAS,QAAQ;AAAA,MAC3B,OAAO;AAAA,IACT;AAAA,EACF;AACF,CAAC;AAoCD,IAAM,SAAS,CAAC;AAAA,EACd,YAAY;AAAA,EACZ,WAAW;AAAA,EACX,YAAY;AAAA,EACZ,QAAQ;AAAA,EACR,WAAW;AAAA,EACX,mBAAmB;AAAA,EACnB,OAAO;AAAA,EACP,UAAU;AAAA,EACV,UAAU;AAAA,EACV,OAAO;AAAA,EACP,SAAS;AAAA,EACT,OAAO;AAAA,EACP,UAAU;AACZ,MAAmB;AACjB,SACE,gBAAAA;AAAA,IAAC;AAAA;AAAA,MACC,cAAY;AAAA,MACZ,WAAW,eAAe,EAAE,OAAO,SAAS,UAAU,CAAC;AAAA,MACvD;AAAA,MACA,eAAa;AAAA,MACb;AAAA,MACA,eAAe;AAAA,MACf,YAAY;AAAA,MACZ,YAAY,CAAC,EAAE,QAAQ,CAAC;AAAA,MACxB,WAAW;AAAA,MACX,SAAS;AAAA,MACT;AAAA,MACA,SAAS,gBAAAD,KAAC,0BAAe;AAAA,MACzB;AAAA,MACA;AAAA,MAEC;AAAA;AAAA,QACA;AAAA;AAAA;AAAA,EACH;AAEJ;AAEA,IAAO,iBAAQ;;;AEhHf,IAAOE,kBAAQ;","names":["jsx","jsxs","Button_default"]}
|
|
@@ -1,10 +1,4 @@
|
|
|
1
|
-
import {
|
|
2
|
-
__toESM,
|
|
3
|
-
require_jsx_runtime
|
|
4
|
-
} from "./chunk-EOBBMFEW.js";
|
|
5
|
-
|
|
6
1
|
// src/Card/Card.tsx
|
|
7
|
-
var import_jsx_runtime = __toESM(require_jsx_runtime(), 1);
|
|
8
2
|
import {
|
|
9
3
|
Card as NextCard,
|
|
10
4
|
CardBody as NextCardBody,
|
|
@@ -13,6 +7,7 @@ import {
|
|
|
13
7
|
} from "@nextui-org/card";
|
|
14
8
|
import { Divider as NextDivider } from "@nextui-org/divider";
|
|
15
9
|
import { tv } from "tailwind-variants";
|
|
10
|
+
import { Fragment, jsx, jsxs } from "react/jsx-runtime";
|
|
16
11
|
var cardVariants = tv({
|
|
17
12
|
slots: {
|
|
18
13
|
base: "border border-divider",
|
|
@@ -39,13 +34,13 @@ var Card = ({
|
|
|
39
34
|
body: variants.body({ className: classNameObj.body }),
|
|
40
35
|
footer: variants.footer({ className: classNameObj.footer })
|
|
41
36
|
};
|
|
42
|
-
const divider = /* @__PURE__ */
|
|
37
|
+
const divider = /* @__PURE__ */ jsx(
|
|
43
38
|
NextDivider,
|
|
44
39
|
{
|
|
45
40
|
className: variants.divider({ className: classNameObj.divider })
|
|
46
41
|
}
|
|
47
42
|
);
|
|
48
|
-
return /* @__PURE__ */
|
|
43
|
+
return /* @__PURE__ */ jsxs(
|
|
49
44
|
NextCard,
|
|
50
45
|
{
|
|
51
46
|
classNames,
|
|
@@ -54,14 +49,14 @@ var Card = ({
|
|
|
54
49
|
radius: "sm",
|
|
55
50
|
shadow: "none",
|
|
56
51
|
children: [
|
|
57
|
-
header && /* @__PURE__ */
|
|
58
|
-
/* @__PURE__ */
|
|
52
|
+
header && /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
53
|
+
/* @__PURE__ */ jsx(NextCardHeader, { "data-testid": testId && `card_header_${testId}`, children: header }),
|
|
59
54
|
divider
|
|
60
55
|
] }),
|
|
61
|
-
/* @__PURE__ */
|
|
62
|
-
footer && /* @__PURE__ */
|
|
56
|
+
/* @__PURE__ */ jsx(NextCardBody, { "data-testid": testId && `card_body_${testId}`, children }),
|
|
57
|
+
footer && /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
63
58
|
divider,
|
|
64
|
-
/* @__PURE__ */
|
|
59
|
+
/* @__PURE__ */ jsx(NextCardFooter, { "data-testid": testId && `card_footer_${testId}`, children: footer })
|
|
65
60
|
] })
|
|
66
61
|
]
|
|
67
62
|
}
|
|
@@ -77,4 +72,4 @@ export {
|
|
|
77
72
|
Card_default,
|
|
78
73
|
Card_default2
|
|
79
74
|
};
|
|
80
|
-
//# sourceMappingURL=chunk-
|
|
75
|
+
//# sourceMappingURL=chunk-IEZVKZFP.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/Card/Card.tsx","../src/Card/index.ts"],"sourcesContent":["import type { ReactNode } from 'react';\nimport type { VariantProps } from 'tailwind-variants';\n\nimport {\n Card as NextCard,\n CardBody as NextCardBody,\n CardFooter as NextCardFooter,\n CardHeader as NextCardHeader,\n} from '@nextui-org/card';\nimport { Divider as NextDivider } from '@nextui-org/divider';\nimport { tv } from 'tailwind-variants';\n\n// card styling variants\nexport const cardVariants = tv({\n slots: {\n base: 'border border-divider',\n body: '',\n divider: 'my-0 border-divider',\n footer: '',\n header: 'text-base font-semibold',\n },\n});\n\ntype CardVariantProps = VariantProps<typeof cardVariants>;\ntype CardVariantSlots = Partial<\n Record<keyof ReturnType<typeof cardVariants>, string>\n>;\n\nexport interface CardProps extends CardVariantProps {\n /** card body content */\n children?: ReactNode;\n /** CSS class name */\n className?: string | CardVariantSlots;\n /** footer content */\n footer?: ReactNode;\n /** header content */\n header?: ReactNode;\n /** HTML data-testid attribute used in e2e tests */\n testId?: string;\n}\n\n/**\n * Card component based on [NextUI Card](https://nextui.org/docs/components/card)\n */\nconst Card = ({\n children = null,\n className = undefined,\n testId = undefined,\n header = undefined,\n footer = undefined,\n}: CardProps) => {\n // classNames from slots\n const variants = cardVariants();\n const classNameObj = (typeof className === 'object' && className) || {};\n const classNames = {\n base: variants.base({\n className: classNameObj.base || (className as string),\n }),\n header: variants.header({ className: classNameObj.header }),\n body: variants.body({ className: classNameObj.body }),\n footer: variants.footer({ className: classNameObj.footer }),\n };\n\n const divider = (\n <NextDivider\n className={variants.divider({ className: classNameObj.divider })}\n />\n );\n\n return (\n <NextCard\n classNames={classNames}\n data-testid={testId && `card_${testId}`}\n fullWidth\n radius=\"sm\"\n shadow=\"none\"\n >\n {header && (\n <>\n <NextCardHeader data-testid={testId && `card_header_${testId}`}>\n {header}\n </NextCardHeader>\n {divider}\n </>\n )}\n <NextCardBody data-testid={testId && `card_body_${testId}`}>\n {children}\n </NextCardBody>\n {footer && (\n <>\n {divider}\n <NextCardFooter data-testid={testId && `card_footer_${testId}`}>\n {footer}\n </NextCardFooter>\n </>\n )}\n </NextCard>\n );\n};\n\nexport default Card;\n","import Card, { cardVariants } from './Card';\n\nexport type { CardProps } from './Card';\n\nexport { Card, cardVariants };\n\nexport default Card;\n"],"mappings":"
|
|
1
|
+
{"version":3,"sources":["../src/Card/Card.tsx","../src/Card/index.ts"],"sourcesContent":["import type { ReactNode } from 'react';\nimport type { VariantProps } from 'tailwind-variants';\n\nimport {\n Card as NextCard,\n CardBody as NextCardBody,\n CardFooter as NextCardFooter,\n CardHeader as NextCardHeader,\n} from '@nextui-org/card';\nimport { Divider as NextDivider } from '@nextui-org/divider';\nimport { tv } from 'tailwind-variants';\n\n// card styling variants\nexport const cardVariants = tv({\n slots: {\n base: 'border border-divider',\n body: '',\n divider: 'my-0 border-divider',\n footer: '',\n header: 'text-base font-semibold',\n },\n});\n\ntype CardVariantProps = VariantProps<typeof cardVariants>;\ntype CardVariantSlots = Partial<\n Record<keyof ReturnType<typeof cardVariants>, string>\n>;\n\nexport interface CardProps extends CardVariantProps {\n /** card body content */\n children?: ReactNode;\n /** CSS class name */\n className?: string | CardVariantSlots;\n /** footer content */\n footer?: ReactNode;\n /** header content */\n header?: ReactNode;\n /** HTML data-testid attribute used in e2e tests */\n testId?: string;\n}\n\n/**\n * Card component based on [NextUI Card](https://nextui.org/docs/components/card)\n */\nconst Card = ({\n children = null,\n className = undefined,\n testId = undefined,\n header = undefined,\n footer = undefined,\n}: CardProps) => {\n // classNames from slots\n const variants = cardVariants();\n const classNameObj = (typeof className === 'object' && className) || {};\n const classNames = {\n base: variants.base({\n className: classNameObj.base || (className as string),\n }),\n header: variants.header({ className: classNameObj.header }),\n body: variants.body({ className: classNameObj.body }),\n footer: variants.footer({ className: classNameObj.footer }),\n };\n\n const divider = (\n <NextDivider\n className={variants.divider({ className: classNameObj.divider })}\n />\n );\n\n return (\n <NextCard\n classNames={classNames}\n data-testid={testId && `card_${testId}`}\n fullWidth\n radius=\"sm\"\n shadow=\"none\"\n >\n {header && (\n <>\n <NextCardHeader data-testid={testId && `card_header_${testId}`}>\n {header}\n </NextCardHeader>\n {divider}\n </>\n )}\n <NextCardBody data-testid={testId && `card_body_${testId}`}>\n {children}\n </NextCardBody>\n {footer && (\n <>\n {divider}\n <NextCardFooter data-testid={testId && `card_footer_${testId}`}>\n {footer}\n </NextCardFooter>\n </>\n )}\n </NextCard>\n );\n};\n\nexport default Card;\n","import Card, { cardVariants } from './Card';\n\nexport type { CardProps } from './Card';\n\nexport { Card, cardVariants };\n\nexport default Card;\n"],"mappings":";AAGA;AAAA,EACE,QAAQ;AAAA,EACR,YAAY;AAAA,EACZ,cAAc;AAAA,EACd,cAAc;AAAA,OACT;AACP,SAAS,WAAW,mBAAmB;AACvC,SAAS,UAAU;AAsDf,SAcI,UAdJ,KAcI,YAdJ;AAnDG,IAAM,eAAe,GAAG;AAAA,EAC7B,OAAO;AAAA,IACL,MAAM;AAAA,IACN,MAAM;AAAA,IACN,SAAS;AAAA,IACT,QAAQ;AAAA,IACR,QAAQ;AAAA,EACV;AACF,CAAC;AAuBD,IAAM,OAAO,CAAC;AAAA,EACZ,WAAW;AAAA,EACX,YAAY;AAAA,EACZ,SAAS;AAAA,EACT,SAAS;AAAA,EACT,SAAS;AACX,MAAiB;AAEf,QAAM,WAAW,aAAa;AAC9B,QAAM,eAAgB,OAAO,cAAc,YAAY,aAAc,CAAC;AACtE,QAAM,aAAa;AAAA,IACjB,MAAM,SAAS,KAAK;AAAA,MAClB,WAAW,aAAa,QAAS;AAAA,IACnC,CAAC;AAAA,IACD,QAAQ,SAAS,OAAO,EAAE,WAAW,aAAa,OAAO,CAAC;AAAA,IAC1D,MAAM,SAAS,KAAK,EAAE,WAAW,aAAa,KAAK,CAAC;AAAA,IACpD,QAAQ,SAAS,OAAO,EAAE,WAAW,aAAa,OAAO,CAAC;AAAA,EAC5D;AAEA,QAAM,UACJ;AAAA,IAAC;AAAA;AAAA,MACC,WAAW,SAAS,QAAQ,EAAE,WAAW,aAAa,QAAQ,CAAC;AAAA;AAAA,EACjE;AAGF,SACE;AAAA,IAAC;AAAA;AAAA,MACC;AAAA,MACA,eAAa,UAAU,QAAQ,MAAM;AAAA,MACrC,WAAS;AAAA,MACT,QAAO;AAAA,MACP,QAAO;AAAA,MAEN;AAAA,kBACC,iCACE;AAAA,8BAAC,kBAAe,eAAa,UAAU,eAAe,MAAM,IACzD,kBACH;AAAA,UACC;AAAA,WACH;AAAA,QAEF,oBAAC,gBAAa,eAAa,UAAU,aAAa,MAAM,IACrD,UACH;AAAA,QACC,UACC,iCACG;AAAA;AAAA,UACD,oBAAC,kBAAe,eAAa,UAAU,eAAe,MAAM,IACzD,kBACH;AAAA,WACF;AAAA;AAAA;AAAA,EAEJ;AAEJ;AAEA,IAAO,eAAQ;;;AC9Ff,IAAOA,gBAAQ;","names":["Card_default"]}
|
|
@@ -1,15 +1,10 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports, "__esModule", {value: true})
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
var _chunkPTN54X4Zcjs = require('./chunk-PTN54X4Z.cjs');
|
|
5
|
-
|
|
6
|
-
// src/Button/Button.tsx
|
|
1
|
+
"use strict";Object.defineProperty(exports, "__esModule", {value: true});// src/Button/Button.tsx
|
|
7
2
|
var _button = require('@nextui-org/button');
|
|
8
3
|
var _tailwindvariants = require('tailwind-variants');
|
|
9
4
|
|
|
10
5
|
// src/Button/subcomponents/LoadingSpinner.tsx
|
|
11
|
-
var
|
|
12
|
-
var LoadingSpinner_default = () => /* @__PURE__ */ (0,
|
|
6
|
+
var _jsxruntime = require('react/jsx-runtime');
|
|
7
|
+
var LoadingSpinner_default = () => /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
13
8
|
"svg",
|
|
14
9
|
{
|
|
15
10
|
className: "animate-spin h-5 w-5 text-current",
|
|
@@ -17,7 +12,7 @@ var LoadingSpinner_default = () => /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(
|
|
|
17
12
|
viewBox: "0 0 24 24",
|
|
18
13
|
xmlns: "http://www.w3.org/2000/svg",
|
|
19
14
|
children: [
|
|
20
|
-
/* @__PURE__ */ (0,
|
|
15
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
21
16
|
"circle",
|
|
22
17
|
{
|
|
23
18
|
className: "opacity-25",
|
|
@@ -28,7 +23,7 @@ var LoadingSpinner_default = () => /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(
|
|
|
28
23
|
strokeWidth: "4"
|
|
29
24
|
}
|
|
30
25
|
),
|
|
31
|
-
/* @__PURE__ */ (0,
|
|
26
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
32
27
|
"path",
|
|
33
28
|
{
|
|
34
29
|
className: "opacity-75",
|
|
@@ -41,7 +36,7 @@ var LoadingSpinner_default = () => /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(
|
|
|
41
36
|
);
|
|
42
37
|
|
|
43
38
|
// src/Button/Button.tsx
|
|
44
|
-
|
|
39
|
+
|
|
45
40
|
var buttonVariants = _tailwindvariants.tv.call(void 0, {
|
|
46
41
|
base: "",
|
|
47
42
|
variants: {
|
|
@@ -93,7 +88,7 @@ var Button = ({
|
|
|
93
88
|
type = void 0,
|
|
94
89
|
variant = "solid"
|
|
95
90
|
}) => {
|
|
96
|
-
return /* @__PURE__ */ (0,
|
|
91
|
+
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
97
92
|
_button.Button,
|
|
98
93
|
{
|
|
99
94
|
"aria-label": ariaLabel,
|
|
@@ -107,7 +102,7 @@ var Button = ({
|
|
|
107
102
|
isLoading: loading,
|
|
108
103
|
onPress: onClick,
|
|
109
104
|
size,
|
|
110
|
-
spinner: /* @__PURE__ */ (0,
|
|
105
|
+
spinner: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, LoadingSpinner_default, {}),
|
|
111
106
|
type,
|
|
112
107
|
variant,
|
|
113
108
|
children: [
|
|
@@ -127,4 +122,4 @@ var Button_default2 = Button_default;
|
|
|
127
122
|
|
|
128
123
|
|
|
129
124
|
exports.buttonVariants = buttonVariants; exports.Button_default = Button_default; exports.Button_default2 = Button_default2;
|
|
130
|
-
//# sourceMappingURL=chunk-
|
|
125
|
+
//# sourceMappingURL=chunk-ND4VZZVU.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/Button/Button.tsx","../src/Button/subcomponents/LoadingSpinner.tsx","../src/Button/index.ts"],"names":["jsx","jsxs","Button_default"],"mappings":";AAIA,SAAS,UAAU,kBAAkB;AACrC,SAAS,UAAU;;;ACAjB,SAME,KANF;AADF,IAAO,yBAAQ,MACb;AAAA,EAAC;AAAA;AAAA,IACC,WAAU;AAAA,IACV,MAAK;AAAA,IACL,SAAQ;AAAA,IACR,OAAM;AAAA,IAEN;AAAA;AAAA,QAAC;AAAA;AAAA,UACC,WAAU;AAAA,UACV,IAAG;AAAA,UACH,IAAG;AAAA,UACH,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA;AAAA,MACd;AAAA,MACA;AAAA,QAAC;AAAA;AAAA,UACC,WAAU;AAAA,UACV,GAAE;AAAA,UACF,MAAK;AAAA;AAAA,MACP;AAAA;AAAA;AACF;;;ADwEE,SAYW,OAAAA,MAZX,QAAAC,aAAA;AAvFG,IAAM,iBAAiB,GAAG;AAAA,EAC/B,MAAM;AAAA,EACN,UAAU;AAAA,IACR,OAAO;AAAA,MACL,SAAS;AAAA,MACT,SAAS;AAAA,MACT,WAAW;AAAA,MACX,SAAS;AAAA,MACT,SAAS;AAAA,MACT,QAAQ;AAAA,IACV;AAAA,IACA,SAAS;AAAA,MACP,OAAO;AAAA,MACP,UAAU;AAAA,MACV,OAAO;AAAA,MACP,MAAM;AAAA,MACN,OAAO;AAAA,MACP,QAAQ;AAAA,MACR,OAAO;AAAA,IACT;AAAA,EACF;AAAA,EACA,kBAAkB;AAAA;AAAA,IAEhB;AAAA,MACE,OAAO;AAAA,MACP,SAAS,CAAC,SAAS,QAAQ;AAAA,MAC3B,OAAO;AAAA,IACT;AAAA;AAAA,IAEA;AAAA,MACE,OAAO;AAAA,MACP,SAAS,CAAC,SAAS,QAAQ;AAAA,MAC3B,OAAO;AAAA,IACT;AAAA,EACF;AACF,CAAC;AAoCD,IAAM,SAAS,CAAC;AAAA,EACd,YAAY;AAAA,EACZ,WAAW;AAAA,EACX,YAAY;AAAA,EACZ,QAAQ;AAAA,EACR,WAAW;AAAA,EACX,mBAAmB;AAAA,EACnB,OAAO;AAAA,EACP,UAAU;AAAA,EACV,UAAU;AAAA,EACV,OAAO;AAAA,EACP,SAAS;AAAA,EACT,OAAO;AAAA,EACP,UAAU;AACZ,MAAmB;AACjB,SACE,gBAAAA;AAAA,IAAC;AAAA;AAAA,MACC,cAAY;AAAA,MACZ,WAAW,eAAe,EAAE,OAAO,SAAS,UAAU,CAAC;AAAA,MACvD;AAAA,MACA,eAAa;AAAA,MACb;AAAA,MACA,eAAe;AAAA,MACf,YAAY;AAAA,MACZ,YAAY,CAAC,EAAE,QAAQ,CAAC;AAAA,MACxB,WAAW;AAAA,MACX,SAAS;AAAA,MACT;AAAA,MACA,SAAS,gBAAAD,KAAC,0BAAe;AAAA,MACzB;AAAA,MACA;AAAA,MAEC;AAAA;AAAA,QACA;AAAA;AAAA;AAAA,EACH;AAEJ;AAEA,IAAO,iBAAQ;;;AEhHf,IAAOE,kBAAQ","sourcesContent":["import type { ButtonProps as NextButtonProps } from '@nextui-org/button';\nimport type { ReactNode } from 'react';\nimport type { VariantProps } from 'tailwind-variants';\n\nimport { Button as NextButton } from '@nextui-org/button';\nimport { tv } from 'tailwind-variants';\n\nimport LoadingSpinner from './subcomponents/LoadingSpinner';\n\nexport const buttonVariants = tv({\n base: '',\n variants: {\n color: {\n default: '',\n primary: '',\n secondary: '',\n success: '',\n warning: '',\n danger: '',\n },\n variant: {\n solid: '',\n bordered: '',\n light: '',\n flat: '',\n faded: '',\n shadow: '',\n ghost: '',\n },\n },\n compoundVariants: [\n // white text on solid / shadow success button\n {\n color: 'success',\n variant: ['solid', 'shadow'],\n class: 'text-white',\n },\n // white text on solid / shadow warning button\n {\n color: 'warning',\n variant: ['solid', 'shadow'],\n class: 'text-white',\n },\n ],\n});\n\ntype ButtonVariantProps = VariantProps<typeof buttonVariants>;\n\nexport interface ButtonProps extends ButtonVariantProps {\n /** sets HTML aria-label attribute */\n ariaLabel?: string;\n /** child components */\n children?: ReactNode;\n /** CSS class name */\n className?: string | string[];\n /** next ui button color */\n color?: NextButtonProps['color'];\n /** disables function of the button. */\n disabled?: boolean;\n /** disables all button animations */\n disableAnimation?: boolean;\n /** If set loading animation is shown */\n loading?: boolean;\n /** optional icon */\n icon?: ReactNode;\n /** on click event */\n onClick?: NextButtonProps['onPress'];\n /** 3 size options */\n size?: NextButtonProps['size'];\n /** HTML data-testid attribute used in e2e tests */\n testId?: string;\n /** sets the button type. */\n type?: 'button' | 'submit' | 'reset' | undefined;\n /** next ui button variants */\n variant?: NextButtonProps['variant'];\n}\n\n/**\n * Button component based on [NextUI Button](https://nextui.org/docs/components/button)\n */\nconst Button = ({\n ariaLabel = undefined,\n children = undefined,\n className = undefined,\n color = 'default',\n disabled = false,\n disableAnimation = false,\n icon = undefined,\n loading = false,\n onClick = undefined,\n size = undefined,\n testId = undefined,\n type = undefined,\n variant = 'solid',\n}: ButtonProps) => {\n return (\n <NextButton\n aria-label={ariaLabel}\n className={buttonVariants({ color, variant, className })}\n color={color}\n data-testid={testId}\n disableAnimation={disableAnimation}\n disableRipple={disableAnimation}\n isDisabled={disabled}\n isIconOnly={!!(icon && !children)}\n isLoading={loading}\n onPress={onClick}\n size={size}\n spinner={<LoadingSpinner />}\n type={type}\n variant={variant}\n >\n {icon}\n {children}\n </NextButton>\n );\n};\n\nexport default Button;\n","/**\n * svg loading spinner for button\n * @see https://nextui.org/docs/components/button#loading\n * */\nexport default () => (\n <svg\n className=\"animate-spin h-5 w-5 text-current\"\n fill=\"none\"\n viewBox=\"0 0 24 24\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <circle\n className=\"opacity-25\"\n cx=\"12\"\n cy=\"12\"\n r=\"10\"\n stroke=\"currentColor\"\n strokeWidth=\"4\"\n />\n <path\n className=\"opacity-75\"\n d=\"M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z\"\n fill=\"currentColor\"\n />\n </svg>\n);\n","import Button, { buttonVariants } from './Button';\n\nexport type { ButtonProps } from './Button';\n\nexport { Button, buttonVariants };\n\nexport default Button;\n"]}
|