@fuf-stack/pixels 0.3.2 → 0.5.0
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 -2
- package/dist/Button/index.d.cts +2 -2
- package/dist/Button/index.d.ts +2 -2
- package/dist/Button/index.js +1 -1
- package/dist/{Button-B0H0w1eR.d.cts → Button-BgDaXYKX.d.cts} +3 -1
- package/dist/{Button-B0H0w1eR.d.ts → Button-BgDaXYKX.d.ts} +3 -1
- package/dist/Card/index.cjs +2 -2
- package/dist/Card/index.d.cts +2 -2
- package/dist/Card/index.d.ts +2 -2
- package/dist/Card/index.js +1 -1
- package/dist/{Card-Cl_I4L8G.d.cts → Card-C3mjLa6d.d.cts} +1 -1
- package/dist/{Card-Cl_I4L8G.d.ts → Card-C3mjLa6d.d.ts} +1 -1
- package/dist/Json/index.cjs +3 -3
- package/dist/Json/index.js +2 -2
- package/dist/Menu/index.cjs +2 -2
- package/dist/Menu/index.js +1 -1
- package/dist/Modal/index.cjs +2 -2
- package/dist/Modal/index.d.cts +4 -2
- package/dist/Modal/index.d.ts +4 -2
- package/dist/Modal/index.js +3 -3
- package/dist/Modal-Ck13vTaf.d.cts +183 -0
- package/dist/Modal-Ck13vTaf.d.ts +183 -0
- package/dist/Popover/index.cjs +2 -2
- package/dist/Popover/index.js +1 -1
- package/dist/chunk-2BPC6HYE.js +74 -0
- package/dist/chunk-2BPC6HYE.js.map +1 -0
- package/dist/{chunk-2UJJIIMU.js → chunk-2Q6M4DC3.js} +5 -4
- package/dist/chunk-2Q6M4DC3.js.map +1 -0
- package/dist/{chunk-V2C3KFMP.js → chunk-6G5VTF6K.js} +1 -4
- package/dist/chunk-6G5VTF6K.js.map +1 -0
- package/dist/{chunk-YUOFNPJO.cjs → chunk-B35F4645.cjs} +1 -4
- package/dist/chunk-B35F4645.cjs.map +1 -0
- package/dist/{chunk-7ERBBFDC.js → chunk-CNELFUYE.js} +2 -2
- package/dist/{chunk-L5OZDDU7.cjs → chunk-HHTTNYDC.cjs} +1 -4
- package/dist/chunk-HHTTNYDC.cjs.map +1 -0
- package/dist/{chunk-I76NWOB3.cjs → chunk-IAE5EJ7Z.cjs} +5 -4
- package/dist/chunk-IAE5EJ7Z.cjs.map +1 -0
- package/dist/chunk-JUE6KCUN.js +82 -0
- package/dist/chunk-JUE6KCUN.js.map +1 -0
- package/dist/{chunk-PI7CBPUS.cjs → chunk-MBKSGWDJ.cjs} +3 -3
- package/dist/{chunk-VZW4TVTX.js → chunk-VOXYQARK.js} +1 -4
- package/dist/chunk-VOXYQARK.js.map +1 -0
- package/dist/chunk-WL6ENU44.cjs +74 -0
- package/dist/chunk-WL6ENU44.cjs.map +1 -0
- package/dist/chunk-XDXO225D.cjs +82 -0
- package/dist/chunk-XDXO225D.cjs.map +1 -0
- package/dist/index.cjs +7 -7
- package/dist/index.d.cts +3 -3
- package/dist/index.d.ts +3 -3
- package/dist/index.js +8 -8
- package/package.json +17 -18
- package/dist/Modal-DWZB1uTb.d.cts +0 -29
- package/dist/Modal-DWZB1uTb.d.ts +0 -29
- package/dist/chunk-2UJJIIMU.js.map +0 -1
- package/dist/chunk-BPJAPVB5.cjs +0 -62
- package/dist/chunk-BPJAPVB5.cjs.map +0 -1
- package/dist/chunk-CTP2PZYD.js +0 -62
- package/dist/chunk-CTP2PZYD.js.map +0 -1
- package/dist/chunk-I76NWOB3.cjs.map +0 -1
- package/dist/chunk-L5OZDDU7.cjs.map +0 -1
- package/dist/chunk-V2C3KFMP.js.map +0 -1
- package/dist/chunk-VQ5Q33MY.js +0 -111
- package/dist/chunk-VQ5Q33MY.js.map +0 -1
- package/dist/chunk-VZW4TVTX.js.map +0 -1
- package/dist/chunk-WTKZJFQV.cjs +0 -111
- package/dist/chunk-WTKZJFQV.cjs.map +0 -1
- package/dist/chunk-YUOFNPJO.cjs.map +0 -1
- /package/dist/{chunk-7ERBBFDC.js.map → chunk-CNELFUYE.js.map} +0 -0
- /package/dist/{chunk-PI7CBPUS.cjs.map → chunk-MBKSGWDJ.cjs.map} +0 -0
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
// src/Card/Card.tsx
|
|
2
|
+
import {
|
|
3
|
+
Card as NextCard,
|
|
4
|
+
CardBody as NextCardBody,
|
|
5
|
+
CardFooter as NextCardFooter,
|
|
6
|
+
CardHeader as NextCardHeader
|
|
7
|
+
} from "@nextui-org/card";
|
|
8
|
+
import { Divider as NextDivider } from "@nextui-org/divider";
|
|
9
|
+
import { tv } from "tailwind-variants";
|
|
10
|
+
import { Fragment, jsx, jsxs } from "react/jsx-runtime";
|
|
11
|
+
var cardVariants = tv({
|
|
12
|
+
slots: {
|
|
13
|
+
base: "border border-divider",
|
|
14
|
+
body: "",
|
|
15
|
+
divider: "my-0 border-divider",
|
|
16
|
+
footer: "",
|
|
17
|
+
header: "text-base font-semibold"
|
|
18
|
+
}
|
|
19
|
+
});
|
|
20
|
+
var Card = ({
|
|
21
|
+
children = null,
|
|
22
|
+
className = void 0,
|
|
23
|
+
testId = void 0,
|
|
24
|
+
header = void 0,
|
|
25
|
+
footer = void 0
|
|
26
|
+
}) => {
|
|
27
|
+
const variants = cardVariants();
|
|
28
|
+
const classNameObj = typeof className === "object" && className || {};
|
|
29
|
+
const classNames = {
|
|
30
|
+
base: variants.base({
|
|
31
|
+
className: classNameObj.base || className
|
|
32
|
+
}),
|
|
33
|
+
header: variants.header({ className: classNameObj.header }),
|
|
34
|
+
body: variants.body({ className: classNameObj.body }),
|
|
35
|
+
footer: variants.footer({ className: classNameObj.footer })
|
|
36
|
+
};
|
|
37
|
+
const divider = /* @__PURE__ */ jsx(
|
|
38
|
+
NextDivider,
|
|
39
|
+
{
|
|
40
|
+
className: variants.divider({ className: classNameObj.divider })
|
|
41
|
+
}
|
|
42
|
+
);
|
|
43
|
+
return /* @__PURE__ */ jsxs(
|
|
44
|
+
NextCard,
|
|
45
|
+
{
|
|
46
|
+
classNames,
|
|
47
|
+
"data-testid": testId && `card_${testId}`,
|
|
48
|
+
fullWidth: true,
|
|
49
|
+
radius: "sm",
|
|
50
|
+
shadow: "none",
|
|
51
|
+
children: [
|
|
52
|
+
header && /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
53
|
+
/* @__PURE__ */ jsx(NextCardHeader, { "data-testid": testId && `card_header_${testId}`, children: header }),
|
|
54
|
+
divider
|
|
55
|
+
] }),
|
|
56
|
+
/* @__PURE__ */ jsx(NextCardBody, { "data-testid": testId && `card_body_${testId}`, children }),
|
|
57
|
+
footer && /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
58
|
+
divider,
|
|
59
|
+
/* @__PURE__ */ jsx(NextCardFooter, { "data-testid": testId && `card_footer_${testId}`, children: footer })
|
|
60
|
+
] })
|
|
61
|
+
]
|
|
62
|
+
}
|
|
63
|
+
);
|
|
64
|
+
};
|
|
65
|
+
var Card_default = Card;
|
|
66
|
+
|
|
67
|
+
// src/Card/index.ts
|
|
68
|
+
var Card_default2 = Card_default;
|
|
69
|
+
|
|
70
|
+
export {
|
|
71
|
+
Card_default,
|
|
72
|
+
Card_default2
|
|
73
|
+
};
|
|
74
|
+
//# sourceMappingURL=chunk-2BPC6HYE.js.map
|
|
@@ -0,0 +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 from './Card';\n\nexport type { CardProps } from './Card';\n\nexport { Card };\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"]}
|
|
@@ -43,14 +43,14 @@ var Button = ({
|
|
|
43
43
|
className = void 0,
|
|
44
44
|
color = "default",
|
|
45
45
|
disabled = false,
|
|
46
|
+
disableAnimation = false,
|
|
46
47
|
icon = void 0,
|
|
47
48
|
loading = false,
|
|
48
49
|
onClick = void 0,
|
|
49
50
|
size = void 0,
|
|
50
51
|
testId = void 0,
|
|
51
52
|
type = void 0,
|
|
52
|
-
variant = "solid"
|
|
53
|
-
...passthrouhProps
|
|
53
|
+
variant = "solid"
|
|
54
54
|
}) => {
|
|
55
55
|
return /* @__PURE__ */ jsxs2(
|
|
56
56
|
NextButton,
|
|
@@ -59,6 +59,8 @@ var Button = ({
|
|
|
59
59
|
className: cn(className),
|
|
60
60
|
color,
|
|
61
61
|
"data-testid": testId,
|
|
62
|
+
disableAnimation,
|
|
63
|
+
disableRipple: disableAnimation,
|
|
62
64
|
isDisabled: disabled,
|
|
63
65
|
isIconOnly: !!(icon && !children),
|
|
64
66
|
isLoading: loading,
|
|
@@ -67,7 +69,6 @@ var Button = ({
|
|
|
67
69
|
spinner: /* @__PURE__ */ jsx2(LoadingSpinner_default, {}),
|
|
68
70
|
type,
|
|
69
71
|
variant,
|
|
70
|
-
...passthrouhProps,
|
|
71
72
|
children: [
|
|
72
73
|
icon,
|
|
73
74
|
children
|
|
@@ -84,4 +85,4 @@ export {
|
|
|
84
85
|
Button_default,
|
|
85
86
|
Button_default2
|
|
86
87
|
};
|
|
87
|
-
//# sourceMappingURL=chunk-
|
|
88
|
+
//# sourceMappingURL=chunk-2Q6M4DC3.js.map
|
|
@@ -0,0 +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';\n\nimport { Button as NextButton } from '@nextui-org/button';\nimport cn from 'classnames';\n\nimport LoadingSpinner from './subcomponents/LoadingSpinner';\n\nexport interface ButtonProps {\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={cn(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 from './Button';\n\nexport type { ButtonProps } from './Button';\n\nexport { Button };\n\nexport default Button;\n"],"mappings":";AAGA,SAAS,UAAU,kBAAkB;AACrC,OAAO,QAAQ;;;ACCb,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;;;ADgCE,SAYW,OAAAA,MAZX,QAAAC,aAAA;AAhBJ,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,GAAG,SAAS;AAAA,MACvB;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;;;AExEf,IAAOE,kBAAQ;","names":["jsx","jsxs","Button_default"]}
|
|
@@ -1,9 +1,7 @@
|
|
|
1
1
|
// src/Popover/Popover.tsx
|
|
2
2
|
import { Popover, PopoverContent, PopoverTrigger } from "@nextui-org/popover";
|
|
3
3
|
import cn from "classnames";
|
|
4
|
-
import createDebug from "debug";
|
|
5
4
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
6
|
-
var debug = createDebug("component:Popover");
|
|
7
5
|
var Popover_default = ({
|
|
8
6
|
children = null,
|
|
9
7
|
className = void 0,
|
|
@@ -14,7 +12,6 @@ var Popover_default = ({
|
|
|
14
12
|
testId = void 0,
|
|
15
13
|
title = void 0
|
|
16
14
|
}) => {
|
|
17
|
-
debug("Popover");
|
|
18
15
|
return /* @__PURE__ */ jsxs(
|
|
19
16
|
Popover,
|
|
20
17
|
{
|
|
@@ -43,4 +40,4 @@ export {
|
|
|
43
40
|
Popover_default,
|
|
44
41
|
Popover_default2
|
|
45
42
|
};
|
|
46
|
-
//# sourceMappingURL=chunk-
|
|
43
|
+
//# sourceMappingURL=chunk-6G5VTF6K.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/Popover/Popover.tsx","../src/Popover/index.ts"],"sourcesContent":["import type { PopoverProps as NextPopoverProps } from '@nextui-org/popover';\nimport type { ReactNode } from 'react';\n\nimport { Popover, PopoverContent, PopoverTrigger } from '@nextui-org/popover';\nimport cn from 'classnames';\n\nexport interface PopoverProps {\n /** child components */\n children?: ReactNode;\n /** CSS class name */\n className?: string | string[];\n /** content of the popover */\n content: ReactNode;\n /** HTML data-testid attribute used in e2e tests */\n contentTestId?: string;\n /** placement of the popover relative to its trigger reference */\n placement?: NextPopoverProps['placement'];\n /** use as controlled component */\n openControlled?: { open: boolean; setOpen: (open: boolean) => void };\n /** HTML data-testid attribute used in e2e tests */\n testId?: string;\n /** popover title */\n title?: ReactNode;\n}\n\n/**\n * Popover component based on [NextUI Card](https://nextui.org/docs/components/popover)\n */\nexport default ({\n children = null,\n className = undefined,\n content,\n contentTestId = undefined,\n placement = 'top',\n openControlled = undefined,\n testId = undefined,\n title = undefined,\n}: PopoverProps) => {\n return (\n <Popover\n placement={placement}\n radius=\"sm\"\n showArrow\n {...(openControlled\n ? { isOpen: openControlled.open, onOpenChange: openControlled.setOpen }\n : {})}\n >\n <PopoverTrigger className={cn(className)} data-testid={testId}>\n {/* NOTE: type and aria properties are injected by PopoverTrigger */}\n {/* eslint-disable-next-line react/button-has-type */}\n <button>{children}</button>\n </PopoverTrigger>\n <PopoverContent data-testid={contentTestId}>\n <div className=\"max-h-[80vh] overflow-y-auto\">\n {title && (\n <div>\n {title}\n <hr />\n </div>\n )}\n {content}\n </div>\n </PopoverContent>\n </Popover>\n );\n};\n","import Popover from './Popover';\n\nexport type { PopoverProps } from './Popover';\n\nexport { Popover };\n\nexport default Popover;\n"],"mappings":";AAGA,SAAS,SAAS,gBAAgB,sBAAsB;AACxD,OAAO,QAAQ;AA8CP,cAKI,YALJ;AAtBR,IAAO,kBAAQ,CAAC;AAAA,EACd,WAAW;AAAA,EACX,YAAY;AAAA,EACZ;AAAA,EACA,gBAAgB;AAAA,EAChB,YAAY;AAAA,EACZ,iBAAiB;AAAA,EACjB,SAAS;AAAA,EACT,QAAQ;AACV,MAAoB;AAClB,SACE;AAAA,IAAC;AAAA;AAAA,MACC;AAAA,MACA,QAAO;AAAA,MACP,WAAS;AAAA,MACR,GAAI,iBACD,EAAE,QAAQ,eAAe,MAAM,cAAc,eAAe,QAAQ,IACpE,CAAC;AAAA,MAEL;AAAA,4BAAC,kBAAe,WAAW,GAAG,SAAS,GAAG,eAAa,QAGrD,8BAAC,YAAQ,UAAS,GACpB;AAAA,QACA,oBAAC,kBAAe,eAAa,eAC3B,+BAAC,SAAI,WAAU,gCACZ;AAAA,mBACC,qBAAC,SACE;AAAA;AAAA,YACD,oBAAC,QAAG;AAAA,aACN;AAAA,UAED;AAAA,WACH,GACF;AAAA;AAAA;AAAA,EACF;AAEJ;;;AC3DA,IAAOA,mBAAQ;","names":["Popover_default"]}
|
|
@@ -1,9 +1,7 @@
|
|
|
1
1
|
"use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }// src/Popover/Popover.tsx
|
|
2
2
|
var _popover = require('@nextui-org/popover');
|
|
3
3
|
var _classnames = require('classnames'); var _classnames2 = _interopRequireDefault(_classnames);
|
|
4
|
-
var _debug = require('debug'); var _debug2 = _interopRequireDefault(_debug);
|
|
5
4
|
var _jsxruntime = require('react/jsx-runtime');
|
|
6
|
-
var debug = _debug2.default.call(void 0, "component:Popover");
|
|
7
5
|
var Popover_default = ({
|
|
8
6
|
children = null,
|
|
9
7
|
className = void 0,
|
|
@@ -14,7 +12,6 @@ var Popover_default = ({
|
|
|
14
12
|
testId = void 0,
|
|
15
13
|
title = void 0
|
|
16
14
|
}) => {
|
|
17
|
-
debug("Popover");
|
|
18
15
|
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
19
16
|
_popover.Popover,
|
|
20
17
|
{
|
|
@@ -43,4 +40,4 @@ var Popover_default2 = Popover_default;
|
|
|
43
40
|
|
|
44
41
|
|
|
45
42
|
exports.Popover_default = Popover_default; exports.Popover_default2 = Popover_default2;
|
|
46
|
-
//# sourceMappingURL=chunk-
|
|
43
|
+
//# sourceMappingURL=chunk-B35F4645.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/Popover/Popover.tsx","../src/Popover/index.ts"],"names":["Popover_default"],"mappings":";AAGA,SAAS,SAAS,gBAAgB,sBAAsB;AACxD,OAAO,QAAQ;AA8CP,cAKI,YALJ;AAtBR,IAAO,kBAAQ,CAAC;AAAA,EACd,WAAW;AAAA,EACX,YAAY;AAAA,EACZ;AAAA,EACA,gBAAgB;AAAA,EAChB,YAAY;AAAA,EACZ,iBAAiB;AAAA,EACjB,SAAS;AAAA,EACT,QAAQ;AACV,MAAoB;AAClB,SACE;AAAA,IAAC;AAAA;AAAA,MACC;AAAA,MACA,QAAO;AAAA,MACP,WAAS;AAAA,MACR,GAAI,iBACD,EAAE,QAAQ,eAAe,MAAM,cAAc,eAAe,QAAQ,IACpE,CAAC;AAAA,MAEL;AAAA,4BAAC,kBAAe,WAAW,GAAG,SAAS,GAAG,eAAa,QAGrD,8BAAC,YAAQ,UAAS,GACpB;AAAA,QACA,oBAAC,kBAAe,eAAa,eAC3B,+BAAC,SAAI,WAAU,gCACZ;AAAA,mBACC,qBAAC,SACE;AAAA;AAAA,YACD,oBAAC,QAAG;AAAA,aACN;AAAA,UAED;AAAA,WACH,GACF;AAAA;AAAA;AAAA,EACF;AAEJ;;;AC3DA,IAAOA,mBAAQ","sourcesContent":["import type { PopoverProps as NextPopoverProps } from '@nextui-org/popover';\nimport type { ReactNode } from 'react';\n\nimport { Popover, PopoverContent, PopoverTrigger } from '@nextui-org/popover';\nimport cn from 'classnames';\n\nexport interface PopoverProps {\n /** child components */\n children?: ReactNode;\n /** CSS class name */\n className?: string | string[];\n /** content of the popover */\n content: ReactNode;\n /** HTML data-testid attribute used in e2e tests */\n contentTestId?: string;\n /** placement of the popover relative to its trigger reference */\n placement?: NextPopoverProps['placement'];\n /** use as controlled component */\n openControlled?: { open: boolean; setOpen: (open: boolean) => void };\n /** HTML data-testid attribute used in e2e tests */\n testId?: string;\n /** popover title */\n title?: ReactNode;\n}\n\n/**\n * Popover component based on [NextUI Card](https://nextui.org/docs/components/popover)\n */\nexport default ({\n children = null,\n className = undefined,\n content,\n contentTestId = undefined,\n placement = 'top',\n openControlled = undefined,\n testId = undefined,\n title = undefined,\n}: PopoverProps) => {\n return (\n <Popover\n placement={placement}\n radius=\"sm\"\n showArrow\n {...(openControlled\n ? { isOpen: openControlled.open, onOpenChange: openControlled.setOpen }\n : {})}\n >\n <PopoverTrigger className={cn(className)} data-testid={testId}>\n {/* NOTE: type and aria properties are injected by PopoverTrigger */}\n {/* eslint-disable-next-line react/button-has-type */}\n <button>{children}</button>\n </PopoverTrigger>\n <PopoverContent data-testid={contentTestId}>\n <div className=\"max-h-[80vh] overflow-y-auto\">\n {title && (\n <div>\n {title}\n <hr />\n </div>\n )}\n {content}\n </div>\n </PopoverContent>\n </Popover>\n );\n};\n","import Popover from './Popover';\n\nexport type { PopoverProps } from './Popover';\n\nexport { Popover };\n\nexport default Popover;\n"]}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
Button_default2 as Button_default
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-2Q6M4DC3.js";
|
|
4
4
|
|
|
5
5
|
// src/Json/Json.tsx
|
|
6
6
|
import { useState } from "react";
|
|
@@ -124,4 +124,4 @@ export {
|
|
|
124
124
|
Json_default,
|
|
125
125
|
Json_default2
|
|
126
126
|
};
|
|
127
|
-
//# sourceMappingURL=chunk-
|
|
127
|
+
//# sourceMappingURL=chunk-CNELFUYE.js.map
|
|
@@ -9,9 +9,7 @@ var _button = require('@nextui-org/button');
|
|
|
9
9
|
|
|
10
10
|
var _dropdown = require('@nextui-org/dropdown');
|
|
11
11
|
var _classnames = require('classnames'); var _classnames2 = _interopRequireDefault(_classnames);
|
|
12
|
-
var _debug = require('debug'); var _debug2 = _interopRequireDefault(_debug);
|
|
13
12
|
var _jsxruntime = require('react/jsx-runtime');
|
|
14
|
-
var debug = _debug2.default.call(void 0, "component:Menu");
|
|
15
13
|
var getDisabledKeys = (items) => {
|
|
16
14
|
return items.map((item) => typeof _optionalChain([item, 'optionalAccess', _ => _.items]) === "undefined" ? item : item.items).flat().filter((item) => {
|
|
17
15
|
return Object.hasOwn(item, "disabled") && item.disabled === true;
|
|
@@ -37,7 +35,6 @@ var Menu = ({
|
|
|
37
35
|
isDisabled = false,
|
|
38
36
|
items
|
|
39
37
|
}) => {
|
|
40
|
-
debug("Menu", { items });
|
|
41
38
|
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _dropdown.Dropdown, { isDisabled, children: [
|
|
42
39
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _dropdown.DropdownTrigger, { className: _classnames2.default.call(void 0, className), "data-testid": testId, children: children ? (
|
|
43
40
|
// eslint-disable-next-line react/button-has-type
|
|
@@ -81,4 +78,4 @@ var Menu_default2 = Menu_default;
|
|
|
81
78
|
|
|
82
79
|
|
|
83
80
|
exports.Menu_default = Menu_default; exports.Menu_default2 = Menu_default2;
|
|
84
|
-
//# 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"]}
|
|
@@ -43,14 +43,14 @@ var Button = ({
|
|
|
43
43
|
className = void 0,
|
|
44
44
|
color = "default",
|
|
45
45
|
disabled = false,
|
|
46
|
+
disableAnimation = false,
|
|
46
47
|
icon = void 0,
|
|
47
48
|
loading = false,
|
|
48
49
|
onClick = void 0,
|
|
49
50
|
size = void 0,
|
|
50
51
|
testId = void 0,
|
|
51
52
|
type = void 0,
|
|
52
|
-
variant = "solid"
|
|
53
|
-
...passthrouhProps
|
|
53
|
+
variant = "solid"
|
|
54
54
|
}) => {
|
|
55
55
|
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
56
56
|
_button.Button,
|
|
@@ -59,6 +59,8 @@ var Button = ({
|
|
|
59
59
|
className: _classnames2.default.call(void 0, className),
|
|
60
60
|
color,
|
|
61
61
|
"data-testid": testId,
|
|
62
|
+
disableAnimation,
|
|
63
|
+
disableRipple: disableAnimation,
|
|
62
64
|
isDisabled: disabled,
|
|
63
65
|
isIconOnly: !!(icon && !children),
|
|
64
66
|
isLoading: loading,
|
|
@@ -67,7 +69,6 @@ var Button = ({
|
|
|
67
69
|
spinner: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, LoadingSpinner_default, {}),
|
|
68
70
|
type,
|
|
69
71
|
variant,
|
|
70
|
-
...passthrouhProps,
|
|
71
72
|
children: [
|
|
72
73
|
icon,
|
|
73
74
|
children
|
|
@@ -84,4 +85,4 @@ var Button_default2 = Button_default;
|
|
|
84
85
|
|
|
85
86
|
|
|
86
87
|
exports.Button_default = Button_default; exports.Button_default2 = Button_default2;
|
|
87
|
-
//# sourceMappingURL=chunk-
|
|
88
|
+
//# sourceMappingURL=chunk-IAE5EJ7Z.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":";AAGA,SAAS,UAAU,kBAAkB;AACrC,OAAO,QAAQ;;;ACCb,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;;;ADgCE,SAYW,OAAAA,MAZX,QAAAC,aAAA;AAhBJ,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,GAAG,SAAS;AAAA,MACvB;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;;;AExEf,IAAOE,kBAAQ","sourcesContent":["import type { ButtonProps as NextButtonProps } from '@nextui-org/button';\nimport type { ReactNode } from 'react';\n\nimport { Button as NextButton } from '@nextui-org/button';\nimport cn from 'classnames';\n\nimport LoadingSpinner from './subcomponents/LoadingSpinner';\n\nexport interface ButtonProps {\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={cn(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 from './Button';\n\nexport type { ButtonProps } from './Button';\n\nexport { Button };\n\nexport default Button;\n"]}
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
// src/Modal/Modal.tsx
|
|
2
|
+
import {
|
|
3
|
+
Modal as NextModal,
|
|
4
|
+
ModalBody as NextModalBody,
|
|
5
|
+
ModalContent as NextModalContent,
|
|
6
|
+
ModalFooter as NextModalFooter,
|
|
7
|
+
ModalHeader as NextModalHeader
|
|
8
|
+
} from "@nextui-org/modal";
|
|
9
|
+
import { tv } from "tailwind-variants";
|
|
10
|
+
import { Fragment, jsx, jsxs } from "react/jsx-runtime";
|
|
11
|
+
var modalVariants = tv({
|
|
12
|
+
slots: {
|
|
13
|
+
backdrop: "",
|
|
14
|
+
base: "",
|
|
15
|
+
body: "",
|
|
16
|
+
closeButton: "",
|
|
17
|
+
footer: "",
|
|
18
|
+
header: "",
|
|
19
|
+
wrapper: ""
|
|
20
|
+
},
|
|
21
|
+
variants: {
|
|
22
|
+
size: {
|
|
23
|
+
sm: { base: "max-w-sm" },
|
|
24
|
+
md: { base: "max-w-md" },
|
|
25
|
+
lg: { base: "max-w-lg" },
|
|
26
|
+
xl: { base: "max-w-5xl" },
|
|
27
|
+
full: { base: "h-full max-w-full" }
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
});
|
|
31
|
+
var Modal = ({
|
|
32
|
+
children = null,
|
|
33
|
+
className = void 0,
|
|
34
|
+
footer = void 0,
|
|
35
|
+
header = void 0,
|
|
36
|
+
isOpen,
|
|
37
|
+
onClose,
|
|
38
|
+
size = "md",
|
|
39
|
+
testId = void 0
|
|
40
|
+
}) => {
|
|
41
|
+
const variants = modalVariants({ size });
|
|
42
|
+
const classNameObj = typeof className === "object" && className || {};
|
|
43
|
+
const classNames = {
|
|
44
|
+
backdrop: variants.backdrop({ className: classNameObj.backdrop }),
|
|
45
|
+
base: variants.base({
|
|
46
|
+
className: classNameObj.base || className
|
|
47
|
+
}),
|
|
48
|
+
body: variants.body({ className: classNameObj.body }),
|
|
49
|
+
closeButton: variants.closeButton({ className: classNameObj.closeButton }),
|
|
50
|
+
footer: variants.footer({ className: classNameObj.footer }),
|
|
51
|
+
header: variants.header({ className: classNameObj.header }),
|
|
52
|
+
wrapper: variants.wrapper({ className: classNameObj.wrapper })
|
|
53
|
+
};
|
|
54
|
+
return /* @__PURE__ */ jsx(
|
|
55
|
+
NextModal,
|
|
56
|
+
{
|
|
57
|
+
backdrop: "opaque",
|
|
58
|
+
classNames,
|
|
59
|
+
"data-testid": testId,
|
|
60
|
+
isOpen,
|
|
61
|
+
onClose,
|
|
62
|
+
placement: "center",
|
|
63
|
+
scrollBehavior: "inside",
|
|
64
|
+
children: /* @__PURE__ */ jsx(NextModalContent, { "data-testid": testId ? `modal_${testId}` : "modal", children: () => /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
65
|
+
header && /* @__PURE__ */ jsx(NextModalHeader, { children: header }),
|
|
66
|
+
/* @__PURE__ */ jsx(NextModalBody, { children }),
|
|
67
|
+
footer && /* @__PURE__ */ jsx(NextModalFooter, { children: footer })
|
|
68
|
+
] }) })
|
|
69
|
+
}
|
|
70
|
+
);
|
|
71
|
+
};
|
|
72
|
+
var Modal_default = Modal;
|
|
73
|
+
|
|
74
|
+
// src/Modal/index.ts
|
|
75
|
+
var Modal_default2 = Modal_default;
|
|
76
|
+
|
|
77
|
+
export {
|
|
78
|
+
modalVariants,
|
|
79
|
+
Modal_default,
|
|
80
|
+
Modal_default2
|
|
81
|
+
};
|
|
82
|
+
//# sourceMappingURL=chunk-JUE6KCUN.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/Modal/Modal.tsx","../src/Modal/index.ts"],"sourcesContent":["import type { ReactNode } from 'react';\nimport type { VariantProps } from 'tailwind-variants';\n\nimport {\n Modal as NextModal,\n ModalBody as NextModalBody,\n ModalContent as NextModalContent,\n ModalFooter as NextModalFooter,\n ModalHeader as NextModalHeader,\n} from '@nextui-org/modal';\nimport { tv } from 'tailwind-variants';\n\n// modal variants\nexport const modalVariants = tv({\n slots: {\n backdrop: '',\n base: '',\n body: '',\n closeButton: '',\n footer: '',\n header: '',\n wrapper: '',\n },\n variants: {\n size: {\n sm: { base: 'max-w-sm' },\n md: { base: 'max-w-md' },\n lg: { base: 'max-w-lg' },\n xl: { base: 'max-w-5xl' },\n full: { base: 'h-full max-w-full' },\n },\n },\n});\n\ntype ModalVariantProps = VariantProps<typeof modalVariants>;\ntype ModalVariantSlots = Partial<\n Record<keyof ReturnType<typeof modalVariants>, string>\n>;\n\nexport interface ModalProps extends ModalVariantProps {\n /** modal body content */\n children?: ReactNode;\n /** CSS class name */\n className?: string | ModalVariantSlots;\n /** modal footer */\n footer?: ReactNode;\n /** modal header */\n header?: ReactNode;\n /** open state (controlled) */\n isOpen: boolean;\n /** close event handler */\n onClose: () => void;\n /** modal size */\n size?: ModalVariantProps['size'];\n /** HTML data-testid attribute used in e2e tests */\n testId?: string;\n}\n\n/**\n * Modal component based on [NextUI Modal](https://nextui.org/docs/components/modal)\n */\nconst Modal = ({\n children = null,\n className = undefined,\n footer = undefined,\n header = undefined,\n isOpen,\n onClose,\n size = 'md',\n testId = undefined,\n}: ModalProps) => {\n // classNames from slots\n const variants = modalVariants({ size });\n const classNameObj = (typeof className === 'object' && className) || {};\n const classNames = {\n backdrop: variants.backdrop({ className: classNameObj.backdrop }),\n base: variants.base({\n className: classNameObj.base || (className as string),\n }),\n body: variants.body({ className: classNameObj.body }),\n closeButton: variants.closeButton({ className: classNameObj.closeButton }),\n footer: variants.footer({ className: classNameObj.footer }),\n header: variants.header({ className: classNameObj.header }),\n wrapper: variants.wrapper({ className: classNameObj.wrapper }),\n };\n\n return (\n <NextModal\n backdrop=\"opaque\"\n classNames={classNames}\n data-testid={testId}\n isOpen={isOpen}\n onClose={onClose}\n placement=\"center\"\n scrollBehavior=\"inside\"\n >\n <NextModalContent data-testid={testId ? `modal_${testId}` : 'modal'}>\n {() => (\n <>\n {header && <NextModalHeader>{header}</NextModalHeader>}\n <NextModalBody>{children}</NextModalBody>\n {footer && <NextModalFooter>{footer}</NextModalFooter>}\n </>\n )}\n </NextModalContent>\n </NextModal>\n );\n};\n\nexport default Modal;\n","import Modal, { modalVariants } from './Modal';\n\nexport type { ModalProps } from './Modal';\n\nexport { Modal, modalVariants };\n\nexport default Modal;\n"],"mappings":";AAGA;AAAA,EACE,SAAS;AAAA,EACT,aAAa;AAAA,EACb,gBAAgB;AAAA,EAChB,eAAe;AAAA,EACf,eAAe;AAAA,OACV;AACP,SAAS,UAAU;AAwFT,mBACa,KADb;AArFH,IAAM,gBAAgB,GAAG;AAAA,EAC9B,OAAO;AAAA,IACL,UAAU;AAAA,IACV,MAAM;AAAA,IACN,MAAM;AAAA,IACN,aAAa;AAAA,IACb,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,SAAS;AAAA,EACX;AAAA,EACA,UAAU;AAAA,IACR,MAAM;AAAA,MACJ,IAAI,EAAE,MAAM,WAAW;AAAA,MACvB,IAAI,EAAE,MAAM,WAAW;AAAA,MACvB,IAAI,EAAE,MAAM,WAAW;AAAA,MACvB,IAAI,EAAE,MAAM,YAAY;AAAA,MACxB,MAAM,EAAE,MAAM,oBAAoB;AAAA,IACpC;AAAA,EACF;AACF,CAAC;AA6BD,IAAM,QAAQ,CAAC;AAAA,EACb,WAAW;AAAA,EACX,YAAY;AAAA,EACZ,SAAS;AAAA,EACT,SAAS;AAAA,EACT;AAAA,EACA;AAAA,EACA,OAAO;AAAA,EACP,SAAS;AACX,MAAkB;AAEhB,QAAM,WAAW,cAAc,EAAE,KAAK,CAAC;AACvC,QAAM,eAAgB,OAAO,cAAc,YAAY,aAAc,CAAC;AACtE,QAAM,aAAa;AAAA,IACjB,UAAU,SAAS,SAAS,EAAE,WAAW,aAAa,SAAS,CAAC;AAAA,IAChE,MAAM,SAAS,KAAK;AAAA,MAClB,WAAW,aAAa,QAAS;AAAA,IACnC,CAAC;AAAA,IACD,MAAM,SAAS,KAAK,EAAE,WAAW,aAAa,KAAK,CAAC;AAAA,IACpD,aAAa,SAAS,YAAY,EAAE,WAAW,aAAa,YAAY,CAAC;AAAA,IACzE,QAAQ,SAAS,OAAO,EAAE,WAAW,aAAa,OAAO,CAAC;AAAA,IAC1D,QAAQ,SAAS,OAAO,EAAE,WAAW,aAAa,OAAO,CAAC;AAAA,IAC1D,SAAS,SAAS,QAAQ,EAAE,WAAW,aAAa,QAAQ,CAAC;AAAA,EAC/D;AAEA,SACE;AAAA,IAAC;AAAA;AAAA,MACC,UAAS;AAAA,MACT;AAAA,MACA,eAAa;AAAA,MACb;AAAA,MACA;AAAA,MACA,WAAU;AAAA,MACV,gBAAe;AAAA,MAEf,8BAAC,oBAAiB,eAAa,SAAS,SAAS,MAAM,KAAK,SACzD,gBACC,iCACG;AAAA,kBAAU,oBAAC,mBAAiB,kBAAO;AAAA,QACpC,oBAAC,iBAAe,UAAS;AAAA,QACxB,UAAU,oBAAC,mBAAiB,kBAAO;AAAA,SACtC,GAEJ;AAAA;AAAA,EACF;AAEJ;AAEA,IAAO,gBAAQ;;;ACvGf,IAAOA,iBAAQ;","names":["Modal_default"]}
|
|
@@ -1,6 +1,6 @@
|
|
|
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; }
|
|
2
2
|
|
|
3
|
-
var
|
|
3
|
+
var _chunkIAE5EJ7Zcjs = require('./chunk-IAE5EJ7Z.cjs');
|
|
4
4
|
|
|
5
5
|
// src/Json/Json.tsx
|
|
6
6
|
var _react = require('react');
|
|
@@ -79,7 +79,7 @@ var Json = ({ className = null, collapsed = false, value }) => {
|
|
|
79
79
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "font-medium", children: "Failed to parse JSON data" })
|
|
80
80
|
] }),
|
|
81
81
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
82
|
-
|
|
82
|
+
_chunkIAE5EJ7Zcjs.Button_default2,
|
|
83
83
|
{
|
|
84
84
|
color: "danger",
|
|
85
85
|
size: "sm",
|
|
@@ -124,4 +124,4 @@ var Json_default2 = Json_default;
|
|
|
124
124
|
|
|
125
125
|
|
|
126
126
|
exports.Json_default = Json_default; exports.Json_default2 = Json_default2;
|
|
127
|
-
//# sourceMappingURL=chunk-
|
|
127
|
+
//# sourceMappingURL=chunk-MBKSGWDJ.cjs.map
|
|
@@ -9,9 +9,7 @@ import {
|
|
|
9
9
|
DropdownTrigger as NextDropdownTrigger
|
|
10
10
|
} from "@nextui-org/dropdown";
|
|
11
11
|
import cn from "classnames";
|
|
12
|
-
import createDebug from "debug";
|
|
13
12
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
14
|
-
var debug = createDebug("component:Menu");
|
|
15
13
|
var getDisabledKeys = (items) => {
|
|
16
14
|
return items.map((item) => typeof item?.items === "undefined" ? item : item.items).flat().filter((item) => {
|
|
17
15
|
return Object.hasOwn(item, "disabled") && item.disabled === true;
|
|
@@ -37,7 +35,6 @@ var Menu = ({
|
|
|
37
35
|
isDisabled = false,
|
|
38
36
|
items
|
|
39
37
|
}) => {
|
|
40
|
-
debug("Menu", { items });
|
|
41
38
|
return /* @__PURE__ */ jsxs(NextDropdown, { isDisabled, children: [
|
|
42
39
|
/* @__PURE__ */ jsx(NextDropdownTrigger, { className: cn(className), "data-testid": testId, children: children ? (
|
|
43
40
|
// eslint-disable-next-line react/button-has-type
|
|
@@ -81,4 +78,4 @@ export {
|
|
|
81
78
|
Menu_default,
|
|
82
79
|
Menu_default2
|
|
83
80
|
};
|
|
84
|
-
//# sourceMappingURL=chunk-
|
|
81
|
+
//# sourceMappingURL=chunk-VOXYQARK.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/Menu/Menu.tsx","../src/Menu/index.ts"],"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"],"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;","names":["Menu_default"]}
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports, "__esModule", {value: true});// src/Card/Card.tsx
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
var _card = require('@nextui-org/card');
|
|
8
|
+
var _divider = require('@nextui-org/divider');
|
|
9
|
+
var _tailwindvariants = require('tailwind-variants');
|
|
10
|
+
var _jsxruntime = require('react/jsx-runtime');
|
|
11
|
+
var cardVariants = _tailwindvariants.tv.call(void 0, {
|
|
12
|
+
slots: {
|
|
13
|
+
base: "border border-divider",
|
|
14
|
+
body: "",
|
|
15
|
+
divider: "my-0 border-divider",
|
|
16
|
+
footer: "",
|
|
17
|
+
header: "text-base font-semibold"
|
|
18
|
+
}
|
|
19
|
+
});
|
|
20
|
+
var Card = ({
|
|
21
|
+
children = null,
|
|
22
|
+
className = void 0,
|
|
23
|
+
testId = void 0,
|
|
24
|
+
header = void 0,
|
|
25
|
+
footer = void 0
|
|
26
|
+
}) => {
|
|
27
|
+
const variants = cardVariants();
|
|
28
|
+
const classNameObj = typeof className === "object" && className || {};
|
|
29
|
+
const classNames = {
|
|
30
|
+
base: variants.base({
|
|
31
|
+
className: classNameObj.base || className
|
|
32
|
+
}),
|
|
33
|
+
header: variants.header({ className: classNameObj.header }),
|
|
34
|
+
body: variants.body({ className: classNameObj.body }),
|
|
35
|
+
footer: variants.footer({ className: classNameObj.footer })
|
|
36
|
+
};
|
|
37
|
+
const divider = /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
38
|
+
_divider.Divider,
|
|
39
|
+
{
|
|
40
|
+
className: variants.divider({ className: classNameObj.divider })
|
|
41
|
+
}
|
|
42
|
+
);
|
|
43
|
+
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
44
|
+
_card.Card,
|
|
45
|
+
{
|
|
46
|
+
classNames,
|
|
47
|
+
"data-testid": testId && `card_${testId}`,
|
|
48
|
+
fullWidth: true,
|
|
49
|
+
radius: "sm",
|
|
50
|
+
shadow: "none",
|
|
51
|
+
children: [
|
|
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 }),
|
|
54
|
+
divider
|
|
55
|
+
] }),
|
|
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: [
|
|
58
|
+
divider,
|
|
59
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _card.CardFooter, { "data-testid": testId && `card_footer_${testId}`, children: footer })
|
|
60
|
+
] })
|
|
61
|
+
]
|
|
62
|
+
}
|
|
63
|
+
);
|
|
64
|
+
};
|
|
65
|
+
var Card_default = Card;
|
|
66
|
+
|
|
67
|
+
// src/Card/index.ts
|
|
68
|
+
var Card_default2 = Card_default;
|
|
69
|
+
|
|
70
|
+
|
|
71
|
+
|
|
72
|
+
|
|
73
|
+
exports.Card_default = Card_default; exports.Card_default2 = Card_default2;
|
|
74
|
+
//# sourceMappingURL=chunk-WL6ENU44.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 from './Card';\n\nexport type { CardProps } from './Card';\n\nexport { Card };\n\nexport default Card;\n"]}
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports, "__esModule", {value: true});// src/Modal/Modal.tsx
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
var _modal = require('@nextui-org/modal');
|
|
9
|
+
var _tailwindvariants = require('tailwind-variants');
|
|
10
|
+
var _jsxruntime = require('react/jsx-runtime');
|
|
11
|
+
var modalVariants = _tailwindvariants.tv.call(void 0, {
|
|
12
|
+
slots: {
|
|
13
|
+
backdrop: "",
|
|
14
|
+
base: "",
|
|
15
|
+
body: "",
|
|
16
|
+
closeButton: "",
|
|
17
|
+
footer: "",
|
|
18
|
+
header: "",
|
|
19
|
+
wrapper: ""
|
|
20
|
+
},
|
|
21
|
+
variants: {
|
|
22
|
+
size: {
|
|
23
|
+
sm: { base: "max-w-sm" },
|
|
24
|
+
md: { base: "max-w-md" },
|
|
25
|
+
lg: { base: "max-w-lg" },
|
|
26
|
+
xl: { base: "max-w-5xl" },
|
|
27
|
+
full: { base: "h-full max-w-full" }
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
});
|
|
31
|
+
var Modal = ({
|
|
32
|
+
children = null,
|
|
33
|
+
className = void 0,
|
|
34
|
+
footer = void 0,
|
|
35
|
+
header = void 0,
|
|
36
|
+
isOpen,
|
|
37
|
+
onClose,
|
|
38
|
+
size = "md",
|
|
39
|
+
testId = void 0
|
|
40
|
+
}) => {
|
|
41
|
+
const variants = modalVariants({ size });
|
|
42
|
+
const classNameObj = typeof className === "object" && className || {};
|
|
43
|
+
const classNames = {
|
|
44
|
+
backdrop: variants.backdrop({ className: classNameObj.backdrop }),
|
|
45
|
+
base: variants.base({
|
|
46
|
+
className: classNameObj.base || className
|
|
47
|
+
}),
|
|
48
|
+
body: variants.body({ className: classNameObj.body }),
|
|
49
|
+
closeButton: variants.closeButton({ className: classNameObj.closeButton }),
|
|
50
|
+
footer: variants.footer({ className: classNameObj.footer }),
|
|
51
|
+
header: variants.header({ className: classNameObj.header }),
|
|
52
|
+
wrapper: variants.wrapper({ className: classNameObj.wrapper })
|
|
53
|
+
};
|
|
54
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
55
|
+
_modal.Modal,
|
|
56
|
+
{
|
|
57
|
+
backdrop: "opaque",
|
|
58
|
+
classNames,
|
|
59
|
+
"data-testid": testId,
|
|
60
|
+
isOpen,
|
|
61
|
+
onClose,
|
|
62
|
+
placement: "center",
|
|
63
|
+
scrollBehavior: "inside",
|
|
64
|
+
children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _modal.ModalContent, { "data-testid": testId ? `modal_${testId}` : "modal", children: () => /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
|
|
65
|
+
header && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _modal.ModalHeader, { children: header }),
|
|
66
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _modal.ModalBody, { children }),
|
|
67
|
+
footer && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _modal.ModalFooter, { children: footer })
|
|
68
|
+
] }) })
|
|
69
|
+
}
|
|
70
|
+
);
|
|
71
|
+
};
|
|
72
|
+
var Modal_default = Modal;
|
|
73
|
+
|
|
74
|
+
// src/Modal/index.ts
|
|
75
|
+
var Modal_default2 = Modal_default;
|
|
76
|
+
|
|
77
|
+
|
|
78
|
+
|
|
79
|
+
|
|
80
|
+
|
|
81
|
+
exports.modalVariants = modalVariants; exports.Modal_default = Modal_default; exports.Modal_default2 = Modal_default2;
|
|
82
|
+
//# sourceMappingURL=chunk-XDXO225D.cjs.map
|