@fuf-stack/pixels 0.19.0 → 0.21.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/Accordion/index.cjs +2 -2
- package/dist/Accordion/index.d.cts +2 -2
- package/dist/Accordion/index.d.ts +2 -2
- package/dist/Accordion/index.js +1 -1
- package/dist/{Accordion-Drlhs2y_.d.cts → Accordion-DkShJasa.d.cts} +35 -0
- package/dist/{Accordion-Drlhs2y_.d.ts → Accordion-DkShJasa.d.ts} +35 -0
- package/dist/Breadcrumb/index.cjs +12 -0
- package/dist/Breadcrumb/index.cjs.map +1 -0
- package/dist/Breadcrumb/index.d.cts +11 -0
- package/dist/Breadcrumb/index.d.ts +11 -0
- package/dist/Breadcrumb/index.js +12 -0
- package/dist/Breadcrumb/index.js.map +1 -0
- package/dist/Breadcrumb-BgIUn5sM.d.cts +117 -0
- package/dist/Breadcrumb-BgIUn5sM.d.ts +117 -0
- package/dist/Popover/index.cjs +3 -3
- package/dist/Popover/index.d.cts +5 -2
- package/dist/Popover/index.d.ts +5 -2
- package/dist/Popover/index.js +2 -2
- package/dist/Popover-DIRJ5iQj.d.cts +111 -0
- package/dist/Popover-DIRJ5iQj.d.ts +111 -0
- package/dist/ScrollShadow/index.cjs +3 -3
- package/dist/ScrollShadow/index.d.cts +1 -1
- package/dist/ScrollShadow/index.d.ts +1 -1
- package/dist/ScrollShadow/index.js +1 -1
- package/dist/chunk-7HXO5TAH.js +70 -0
- package/dist/chunk-7HXO5TAH.js.map +1 -0
- package/dist/{chunk-G5YPY6KS.js → chunk-7SK2BLZJ.js} +8 -2
- package/dist/chunk-7SK2BLZJ.js.map +1 -0
- package/dist/{chunk-IBB2U3AH.js → chunk-BAPBIOOG.js} +1 -1
- package/dist/chunk-BAPBIOOG.js.map +1 -0
- package/dist/{chunk-QCPUMTFP.js → chunk-BSZX7YBE.js} +22 -11
- package/dist/chunk-BSZX7YBE.js.map +1 -0
- package/dist/{chunk-UYNMOCDD.cjs → chunk-D5HC5WLB.cjs} +1 -1
- package/dist/{chunk-UYNMOCDD.cjs.map → chunk-D5HC5WLB.cjs.map} +1 -1
- package/dist/chunk-FFULPXWN.cjs +70 -0
- package/dist/chunk-FFULPXWN.cjs.map +1 -0
- package/dist/{chunk-J5XN2HAT.cjs → chunk-JU7O2LCJ.cjs} +8 -2
- package/dist/chunk-JU7O2LCJ.cjs.map +1 -0
- package/dist/{chunk-BQJUB6VZ.cjs → chunk-NRLYC3SF.cjs} +21 -10
- package/dist/chunk-NRLYC3SF.cjs.map +1 -0
- package/dist/index.cjs +12 -6
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +3 -2
- package/dist/index.d.ts +3 -2
- package/dist/index.js +12 -6
- package/package.json +10 -4
- package/dist/Popover-IYjW04NG.d.cts +0 -37
- package/dist/Popover-IYjW04NG.d.ts +0 -37
- package/dist/chunk-BQJUB6VZ.cjs.map +0 -1
- package/dist/chunk-G5YPY6KS.js.map +0 -1
- package/dist/chunk-IBB2U3AH.js.map +0 -1
- package/dist/chunk-J5XN2HAT.cjs.map +0 -1
- package/dist/chunk-QCPUMTFP.js.map +0 -1
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
2
|
+
import * as tailwind_variants_dist_config_js from 'tailwind-variants/dist/config.js';
|
|
3
|
+
import * as tailwind_variants from 'tailwind-variants';
|
|
4
|
+
import { TVProps, TVClassName } from '@fuf-stack/pixel-utils';
|
|
5
|
+
import { PopoverProps as PopoverProps$1 } from '@nextui-org/popover';
|
|
6
|
+
import { ReactNode } from 'react';
|
|
7
|
+
|
|
8
|
+
declare const popoverVariants: tailwind_variants.TVReturnType<{
|
|
9
|
+
[key: string]: {
|
|
10
|
+
[key: string]: tailwind_variants.ClassValue | {
|
|
11
|
+
body?: tailwind_variants.ClassValue;
|
|
12
|
+
content?: tailwind_variants.ClassValue;
|
|
13
|
+
footer?: tailwind_variants.ClassValue;
|
|
14
|
+
header?: tailwind_variants.ClassValue;
|
|
15
|
+
trigger?: tailwind_variants.ClassValue;
|
|
16
|
+
};
|
|
17
|
+
};
|
|
18
|
+
} | {
|
|
19
|
+
[x: string]: {
|
|
20
|
+
[x: string]: tailwind_variants.ClassValue | {
|
|
21
|
+
body?: tailwind_variants.ClassValue;
|
|
22
|
+
content?: tailwind_variants.ClassValue;
|
|
23
|
+
footer?: tailwind_variants.ClassValue;
|
|
24
|
+
header?: tailwind_variants.ClassValue;
|
|
25
|
+
trigger?: tailwind_variants.ClassValue;
|
|
26
|
+
};
|
|
27
|
+
};
|
|
28
|
+
} | {}, {
|
|
29
|
+
body: string;
|
|
30
|
+
content: string;
|
|
31
|
+
footer: string;
|
|
32
|
+
header: string;
|
|
33
|
+
trigger: string;
|
|
34
|
+
}, undefined, tailwind_variants_dist_config_js.TVConfig<unknown, {
|
|
35
|
+
[key: string]: {
|
|
36
|
+
[key: string]: tailwind_variants.ClassValue | {
|
|
37
|
+
body?: tailwind_variants.ClassValue;
|
|
38
|
+
content?: tailwind_variants.ClassValue;
|
|
39
|
+
footer?: tailwind_variants.ClassValue;
|
|
40
|
+
header?: tailwind_variants.ClassValue;
|
|
41
|
+
trigger?: tailwind_variants.ClassValue;
|
|
42
|
+
};
|
|
43
|
+
};
|
|
44
|
+
} | {}>, {
|
|
45
|
+
[key: string]: {
|
|
46
|
+
[key: string]: tailwind_variants.ClassValue | {
|
|
47
|
+
body?: tailwind_variants.ClassValue;
|
|
48
|
+
content?: tailwind_variants.ClassValue;
|
|
49
|
+
footer?: tailwind_variants.ClassValue;
|
|
50
|
+
header?: tailwind_variants.ClassValue;
|
|
51
|
+
trigger?: tailwind_variants.ClassValue;
|
|
52
|
+
};
|
|
53
|
+
};
|
|
54
|
+
} | {}, {
|
|
55
|
+
body: string;
|
|
56
|
+
content: string;
|
|
57
|
+
footer: string;
|
|
58
|
+
header: string;
|
|
59
|
+
trigger: string;
|
|
60
|
+
}, tailwind_variants.TVReturnType<unknown, {
|
|
61
|
+
body: string;
|
|
62
|
+
content: string;
|
|
63
|
+
footer: string;
|
|
64
|
+
header: string;
|
|
65
|
+
trigger: string;
|
|
66
|
+
}, undefined, tailwind_variants_dist_config_js.TVConfig<unknown, {
|
|
67
|
+
[key: string]: {
|
|
68
|
+
[key: string]: tailwind_variants.ClassValue | {
|
|
69
|
+
body?: tailwind_variants.ClassValue;
|
|
70
|
+
content?: tailwind_variants.ClassValue;
|
|
71
|
+
footer?: tailwind_variants.ClassValue;
|
|
72
|
+
header?: tailwind_variants.ClassValue;
|
|
73
|
+
trigger?: tailwind_variants.ClassValue;
|
|
74
|
+
};
|
|
75
|
+
};
|
|
76
|
+
} | {}>, unknown, unknown, undefined>>;
|
|
77
|
+
type VariantProps = TVProps<typeof popoverVariants>;
|
|
78
|
+
type ClassName = TVClassName<typeof popoverVariants>;
|
|
79
|
+
interface PopoverProps extends VariantProps {
|
|
80
|
+
/** child components */
|
|
81
|
+
children?: ReactNode;
|
|
82
|
+
/** CSS class name */
|
|
83
|
+
className?: ClassName;
|
|
84
|
+
/** content of the popover */
|
|
85
|
+
content: ReactNode;
|
|
86
|
+
/** HTML data-testid attribute used in e2e tests */
|
|
87
|
+
contentTestId?: string;
|
|
88
|
+
/** popover footer */
|
|
89
|
+
footer?: ReactNode;
|
|
90
|
+
/** use as controlled component */
|
|
91
|
+
openControlled?: {
|
|
92
|
+
open: boolean;
|
|
93
|
+
setOpen: (open: boolean) => void;
|
|
94
|
+
};
|
|
95
|
+
/** placement of the popover relative to its trigger reference */
|
|
96
|
+
placement?: PopoverProps$1['placement'];
|
|
97
|
+
/** The container element in which the overlay portal will be placed. */
|
|
98
|
+
portalContainer?: PopoverProps$1['portalContainer'];
|
|
99
|
+
/** Whether to block scrolling outside the popover */
|
|
100
|
+
shouldBlockScroll?: boolean;
|
|
101
|
+
/** HTML data-testid attribute used in e2e tests */
|
|
102
|
+
testId?: string;
|
|
103
|
+
/** popover title */
|
|
104
|
+
title?: ReactNode;
|
|
105
|
+
}
|
|
106
|
+
/**
|
|
107
|
+
* Popover component based on [NextUI Card](https://nextui.org/docs/components/popover)
|
|
108
|
+
*/
|
|
109
|
+
declare const _default: ({ children, className: _className, content, contentTestId, footer, openControlled, placement, portalContainer, shouldBlockScroll, testId, title, }: PopoverProps) => react_jsx_runtime.JSX.Element;
|
|
110
|
+
|
|
111
|
+
export { type PopoverProps as P, _default as _ };
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
"use strict";Object.defineProperty(exports, "__esModule", {value: true});
|
|
2
2
|
|
|
3
|
-
var
|
|
3
|
+
var _chunkD5HC5WLBcjs = require('../chunk-D5HC5WLB.cjs');
|
|
4
4
|
require('../chunk-DZUJEN5N.cjs');
|
|
5
5
|
|
|
6
6
|
// src/ScrollShadow/index.ts
|
|
7
|
-
var ScrollShadow_default2 =
|
|
7
|
+
var ScrollShadow_default2 = _chunkD5HC5WLBcjs.ScrollShadow_default;
|
|
8
8
|
|
|
9
9
|
|
|
10
10
|
|
|
11
|
-
exports.ScrollShadow =
|
|
11
|
+
exports.ScrollShadow = _chunkD5HC5WLBcjs.ScrollShadow_default; exports.default = ScrollShadow_default2;
|
|
12
12
|
//# sourceMappingURL=index.cjs.map
|
|
@@ -10,7 +10,7 @@ interface ScrollShadowProps {
|
|
|
10
10
|
testId?: string;
|
|
11
11
|
}
|
|
12
12
|
/**
|
|
13
|
-
* Scroll Shadow component based on [NextUI
|
|
13
|
+
* Scroll Shadow component based on [NextUI Scroll Shadow](https://nextui.org/docs/components/scroll-shadow)
|
|
14
14
|
*/
|
|
15
15
|
declare const _default: ({ children, className, testId, }: ScrollShadowProps) => react_jsx_runtime.JSX.Element;
|
|
16
16
|
|
|
@@ -10,7 +10,7 @@ interface ScrollShadowProps {
|
|
|
10
10
|
testId?: string;
|
|
11
11
|
}
|
|
12
12
|
/**
|
|
13
|
-
* Scroll Shadow component based on [NextUI
|
|
13
|
+
* Scroll Shadow component based on [NextUI Scroll Shadow](https://nextui.org/docs/components/scroll-shadow)
|
|
14
14
|
*/
|
|
15
15
|
declare const _default: ({ children, className, testId, }: ScrollShadowProps) => react_jsx_runtime.JSX.Element;
|
|
16
16
|
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
// src/Breadcrumb/Breadcrumb.tsx
|
|
2
|
+
import {
|
|
3
|
+
Breadcrumbs as NextBreadcrumb,
|
|
4
|
+
BreadcrumbItem as NextBreadcrumbItem
|
|
5
|
+
} from "@nextui-org/breadcrumbs";
|
|
6
|
+
import { tv, variantsToClassNames } from "@fuf-stack/pixel-utils";
|
|
7
|
+
import { jsx } from "react/jsx-runtime";
|
|
8
|
+
var breadcrumbVariants = tv({
|
|
9
|
+
slots: {
|
|
10
|
+
wrapper: "",
|
|
11
|
+
// base slot of breadcrumbs
|
|
12
|
+
list: "",
|
|
13
|
+
// list slot of breadcrumbs
|
|
14
|
+
separator: "",
|
|
15
|
+
item: "",
|
|
16
|
+
base: ""
|
|
17
|
+
// base for item slot
|
|
18
|
+
}
|
|
19
|
+
});
|
|
20
|
+
var Breadcrumb = ({
|
|
21
|
+
breadcrumbItems = [],
|
|
22
|
+
className: _className = void 0,
|
|
23
|
+
color = "foreground",
|
|
24
|
+
disableAnimation = false,
|
|
25
|
+
disabled = false,
|
|
26
|
+
hideSeparator = false,
|
|
27
|
+
maxItems = void 0,
|
|
28
|
+
radius = "none",
|
|
29
|
+
separator = void 0,
|
|
30
|
+
size = "md",
|
|
31
|
+
variant = "light"
|
|
32
|
+
}) => {
|
|
33
|
+
const variants = breadcrumbVariants({});
|
|
34
|
+
const classNames = variantsToClassNames(variants, _className, "wrapper");
|
|
35
|
+
return /* @__PURE__ */ jsx(
|
|
36
|
+
NextBreadcrumb,
|
|
37
|
+
{
|
|
38
|
+
classNames: { base: classNames.wrapper, list: classNames.list },
|
|
39
|
+
color,
|
|
40
|
+
disableAnimation,
|
|
41
|
+
hideSeparator,
|
|
42
|
+
isDisabled: disabled,
|
|
43
|
+
itemClasses: classNames,
|
|
44
|
+
maxItems,
|
|
45
|
+
radius,
|
|
46
|
+
separator,
|
|
47
|
+
size,
|
|
48
|
+
variant,
|
|
49
|
+
children: breadcrumbItems.map((item, index) => /* @__PURE__ */ jsx(
|
|
50
|
+
NextBreadcrumbItem,
|
|
51
|
+
{
|
|
52
|
+
isDisabled: disabled || item?.disabled,
|
|
53
|
+
...item
|
|
54
|
+
},
|
|
55
|
+
index
|
|
56
|
+
))
|
|
57
|
+
}
|
|
58
|
+
);
|
|
59
|
+
};
|
|
60
|
+
var Breadcrumb_default = Breadcrumb;
|
|
61
|
+
|
|
62
|
+
// src/Breadcrumb/index.ts
|
|
63
|
+
var Breadcrumb_default2 = Breadcrumb_default;
|
|
64
|
+
|
|
65
|
+
export {
|
|
66
|
+
breadcrumbVariants,
|
|
67
|
+
Breadcrumb_default,
|
|
68
|
+
Breadcrumb_default2
|
|
69
|
+
};
|
|
70
|
+
//# sourceMappingURL=chunk-7HXO5TAH.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/Breadcrumb/Breadcrumb.tsx","../src/Breadcrumb/index.ts"],"sourcesContent":["import type { TVClassName, TVProps } from '@fuf-stack/pixel-utils';\nimport type { ReactNode } from 'react';\n\nimport {\n Breadcrumbs as NextBreadcrumb,\n BreadcrumbItem as NextBreadcrumbItem,\n} from '@nextui-org/breadcrumbs';\n\nimport { tv, variantsToClassNames } from '@fuf-stack/pixel-utils';\n\n// breadcrumb styling variants\n// see: https://nextui.org/docs/components/breadcrumbs#breadcrumbitem-props\nexport const breadcrumbVariants = tv({\n slots: {\n wrapper: '', // base slot of breadcrumbs\n list: '', // list slot of breadcrumbs\n separator: '',\n item: '',\n base: '', // base for item slot\n },\n});\n\nexport interface BreadcrumbItemProps {\n /** Content of the breadcrumb item */\n children: ReactNode;\n /** Disables the breadcrumb item */\n disabled?: boolean;\n /** content displayed before the children */\n startContent?: ReactNode;\n /** content displayed after the children */\n endContent?: ReactNode;\n}\n\ntype VariantProps = TVProps<typeof breadcrumbVariants>;\ntype ClassName = TVClassName<typeof breadcrumbVariants>;\n\nexport interface BreadcrumbProps extends VariantProps {\n /** Props for breadcrumbItem, will render the breadcrumb items programmatically */\n breadcrumbItems?: BreadcrumbItemProps[];\n /** CSS class name */\n className?: ClassName;\n /** color of the active BreadcrumbItem */\n color?:\n | 'foreground'\n | 'primary'\n | 'secondary'\n | 'success'\n | 'warning'\n | 'danger';\n /** Disables the Breadcrumb animation */\n disableAnimation?: boolean;\n /** hides the separator between items */\n hideSeparator?: boolean;\n /** disables all items */\n disabled?: boolean;\n /** Maximum number of items to show without \"...\" in between */\n maxItems?: number;\n /** Radius of the Breadcrumb */\n radius?: 'none' | 'sm' | 'md' | 'lg' | 'full';\n /** Separator between items */\n separator?: ReactNode;\n /** Size of the Breadcrumb */\n size?: 'sm' | 'md' | 'lg';\n /** Style variant of the Breadcrumbs */\n variant?: 'solid' | 'bordered' | 'light';\n}\n\n/**\n * Breadcrumb component based on [NextUI Breadcrumbs](https://nextui.org/docs/components/breadcrumbs)\n */\nconst Breadcrumb = ({\n breadcrumbItems = [],\n className: _className = undefined,\n color = 'foreground',\n disableAnimation = false,\n disabled = false,\n hideSeparator = false,\n maxItems = undefined,\n radius = 'none',\n separator = undefined,\n size = 'md',\n variant = 'light',\n}: BreadcrumbProps) => {\n // itemClasses from className slots\n const variants = breadcrumbVariants({});\n const classNames = variantsToClassNames(variants, _className, 'wrapper');\n\n return (\n <NextBreadcrumb\n classNames={{ base: classNames.wrapper, list: classNames.list }}\n color={color}\n disableAnimation={disableAnimation}\n hideSeparator={hideSeparator}\n isDisabled={disabled}\n itemClasses={classNames}\n maxItems={maxItems}\n radius={radius}\n separator={separator}\n size={size}\n variant={variant}\n >\n {breadcrumbItems.map((item, index) => (\n <NextBreadcrumbItem\n // eslint-disable-next-line react/no-array-index-key\n key={index}\n isDisabled={disabled || item?.disabled}\n // eslint-disable-next-line react/jsx-props-no-spreading\n {...item}\n />\n ))}\n </NextBreadcrumb>\n );\n};\n\nexport default Breadcrumb;\n","import Breadcrumb, { breadcrumbVariants } from './Breadcrumb';\n\nexport type { BreadcrumbProps, BreadcrumbItemProps } from './Breadcrumb';\n\nexport { Breadcrumb, breadcrumbVariants };\n\nexport default Breadcrumb;\n"],"mappings":";AAGA;AAAA,EACE,eAAe;AAAA,EACf,kBAAkB;AAAA,OACb;AAEP,SAAS,IAAI,4BAA4B;AA8FjC;AA1FD,IAAM,qBAAqB,GAAG;AAAA,EACnC,OAAO;AAAA,IACL,SAAS;AAAA;AAAA,IACT,MAAM;AAAA;AAAA,IACN,WAAW;AAAA,IACX,MAAM;AAAA,IACN,MAAM;AAAA;AAAA,EACR;AACF,CAAC;AAkDD,IAAM,aAAa,CAAC;AAAA,EAClB,kBAAkB,CAAC;AAAA,EACnB,WAAW,aAAa;AAAA,EACxB,QAAQ;AAAA,EACR,mBAAmB;AAAA,EACnB,WAAW;AAAA,EACX,gBAAgB;AAAA,EAChB,WAAW;AAAA,EACX,SAAS;AAAA,EACT,YAAY;AAAA,EACZ,OAAO;AAAA,EACP,UAAU;AACZ,MAAuB;AAErB,QAAM,WAAW,mBAAmB,CAAC,CAAC;AACtC,QAAM,aAAa,qBAAqB,UAAU,YAAY,SAAS;AAEvE,SACE;AAAA,IAAC;AAAA;AAAA,MACC,YAAY,EAAE,MAAM,WAAW,SAAS,MAAM,WAAW,KAAK;AAAA,MAC9D;AAAA,MACA;AAAA,MACA;AAAA,MACA,YAAY;AAAA,MACZ,aAAa;AAAA,MACb;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MAEC,0BAAgB,IAAI,CAAC,MAAM,UAC1B;AAAA,QAAC;AAAA;AAAA,UAGC,YAAY,YAAY,MAAM;AAAA,UAE7B,GAAG;AAAA;AAAA,QAHC;AAAA,MAIP,CACD;AAAA;AAAA,EACH;AAEJ;AAEA,IAAO,qBAAQ;;;AC5Gf,IAAOA,sBAAQ;","names":["Breadcrumb_default"]}
|
|
@@ -31,6 +31,11 @@ var accordionVariants = tv({
|
|
|
31
31
|
true: {
|
|
32
32
|
wrapper: "divide-y divide-solid divide-divider"
|
|
33
33
|
}
|
|
34
|
+
},
|
|
35
|
+
showBottomTopDivider: {
|
|
36
|
+
true: {
|
|
37
|
+
wrapper: "border-b border-t border-solid border-divider"
|
|
38
|
+
}
|
|
34
39
|
}
|
|
35
40
|
}
|
|
36
41
|
});
|
|
@@ -50,7 +55,8 @@ var Accordion = ({
|
|
|
50
55
|
}) => {
|
|
51
56
|
const variants = accordionVariants({
|
|
52
57
|
indicatorLeft,
|
|
53
|
-
showDivider: showDivider && variant !== "splitted"
|
|
58
|
+
showDivider: showDivider && variant !== "splitted",
|
|
59
|
+
showBottomTopDivider: showDivider && variant === "light"
|
|
54
60
|
});
|
|
55
61
|
const classNames = variantsToClassNames(variants, _className, "wrapper");
|
|
56
62
|
return /* @__PURE__ */ jsx(
|
|
@@ -88,4 +94,4 @@ export {
|
|
|
88
94
|
Accordion_default,
|
|
89
95
|
Accordion_default2
|
|
90
96
|
};
|
|
91
|
-
//# sourceMappingURL=chunk-
|
|
97
|
+
//# sourceMappingURL=chunk-7SK2BLZJ.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/Accordion/Accordion.tsx","../src/Accordion/index.ts"],"sourcesContent":["import type { TVClassName, TVProps } from '@fuf-stack/pixel-utils';\nimport type { DividerProps } from '@nextui-org/divider';\nimport type { ReactNode } from 'react';\n\nimport {\n Accordion as NextAccordion,\n AccordionItem as NextAccordionItem,\n} from '@nextui-org/accordion';\n\nimport { tv, variantsToClassNames } from '@fuf-stack/pixel-utils';\n\n// accordion styling variants\n// see: https://nextui.org/docs/components/accordion#accordion-item-slots\nexport const accordionVariants = tv({\n slots: {\n base: '',\n content: 'px-4',\n heading: 'px-4',\n indicator: '',\n startContent: '',\n subtitle: '',\n title: '',\n titleWrapper: '',\n trigger: '',\n // outer accordion wrapper\n wrapper: 'px-0',\n },\n variants: {\n indicatorLeft: {\n true: {\n content: 'pl-7',\n indicator: '-rotate-180 data-[open=true]:-rotate-90',\n trigger: 'flex-row-reverse',\n },\n },\n showDivider: {\n true: {\n wrapper: 'divide-y divide-solid divide-divider',\n },\n },\n showBottomTopDivider: {\n true: {\n wrapper: 'border-b border-t border-solid border-divider',\n },\n },\n },\n});\n\nexport interface AccordionItemProps {\n /** Content of the accordion item */\n children: ReactNode;\n /** Disables the accordion item */\n disabled?: boolean;\n /** Accordion item title */\n title: ReactNode;\n /** Accordion item subtitle */\n subtitle?: ReactNode;\n}\n\ntype VariantProps = TVProps<typeof accordionVariants>;\ntype ClassName = TVClassName<typeof accordionVariants>;\n\nexport interface AccordionProps extends VariantProps {\n /** Props for AccordionItems, will render the accordion items programmatically */\n accordionItems?: AccordionItemProps[];\n /** CSS class name */\n className?: ClassName;\n /** Array of keys for the AccordionItem(s) to be expanded by default */\n defaultSelectedKeys?: undefined | 'all' | Iterable<number | string>;\n /** Disables the Accordion */\n disabled?: boolean;\n /** Array of keys for the AccordionItems to disable */\n disabledKeys?: Iterable<number | string>;\n /** Force always one AccordionItem to be open. */\n disallowEmptySelection?: boolean;\n /** props for styling the Divider */\n dividerProps?: DividerProps;\n /** Hide the expanded/collapsed indicator icon */\n hideIndicator?: boolean;\n /** Callback function for when a Accordion Item is expanded or collapsed */\n onSelectionChange?: (keys: 'all' | Iterable<number | string>) => unknown;\n /** Set whether multiple or only a single AccordionItems can be expanded */\n selectionMode?: 'single' | 'multiple';\n /** Enable or disable the divider between each AccordionItem */\n showDivider?: boolean;\n /** Style variant of the Accordion */\n variant?: 'light' | 'shadow' | 'bordered' | 'splitted';\n}\n\n/**\n * Accordion component based on [NextUI Accordion](https://nextui.org/docs/components/accordion)\n */\nconst Accordion = ({\n accordionItems = [],\n className: _className = undefined,\n defaultSelectedKeys = [],\n disabled = false,\n disabledKeys = [],\n disallowEmptySelection = false,\n dividerProps = {},\n indicatorLeft = false,\n onSelectionChange = undefined,\n selectionMode = 'multiple',\n showDivider = true,\n variant = 'light',\n}: AccordionProps) => {\n // itemClasses from className slots\n const variants = accordionVariants({\n indicatorLeft,\n showDivider: showDivider && variant !== 'splitted',\n showBottomTopDivider: showDivider && variant === 'light',\n });\n const classNames = variantsToClassNames(variants, _className, 'wrapper');\n\n return (\n <NextAccordion\n className={classNames.wrapper}\n defaultSelectedKeys={defaultSelectedKeys}\n disabledKeys={disabledKeys}\n disallowEmptySelection={disallowEmptySelection}\n dividerProps={dividerProps}\n isDisabled={disabled}\n itemClasses={classNames}\n onSelectionChange={onSelectionChange}\n selectionMode={selectionMode}\n showDivider={false}\n variant={variant}\n >\n {accordionItems.map((item, index) => (\n <NextAccordionItem\n // eslint-disable-next-line react/no-array-index-key\n key={index}\n isDisabled={disabled || item?.disabled}\n // eslint-disable-next-line react/jsx-props-no-spreading\n {...item}\n />\n ))}\n </NextAccordion>\n );\n};\n\nexport default Accordion;\n","import Accordion, { accordionVariants } from './Accordion';\n\nexport type { AccordionProps, AccordionItemProps } from './Accordion';\n\nexport { Accordion, accordionVariants };\n\nexport default Accordion;\n"],"mappings":";AAIA;AAAA,EACE,aAAa;AAAA,EACb,iBAAiB;AAAA,OACZ;AAEP,SAAS,IAAI,4BAA4B;AAwHjC;AApHD,IAAM,oBAAoB,GAAG;AAAA,EAClC,OAAO;AAAA,IACL,MAAM;AAAA,IACN,SAAS;AAAA,IACT,SAAS;AAAA,IACT,WAAW;AAAA,IACX,cAAc;AAAA,IACd,UAAU;AAAA,IACV,OAAO;AAAA,IACP,cAAc;AAAA,IACd,SAAS;AAAA;AAAA,IAET,SAAS;AAAA,EACX;AAAA,EACA,UAAU;AAAA,IACR,eAAe;AAAA,MACb,MAAM;AAAA,QACJ,SAAS;AAAA,QACT,WAAW;AAAA,QACX,SAAS;AAAA,MACX;AAAA,IACF;AAAA,IACA,aAAa;AAAA,MACX,MAAM;AAAA,QACJ,SAAS;AAAA,MACX;AAAA,IACF;AAAA,IACA,sBAAsB;AAAA,MACpB,MAAM;AAAA,QACJ,SAAS;AAAA,MACX;AAAA,IACF;AAAA,EACF;AACF,CAAC;AA8CD,IAAM,YAAY,CAAC;AAAA,EACjB,iBAAiB,CAAC;AAAA,EAClB,WAAW,aAAa;AAAA,EACxB,sBAAsB,CAAC;AAAA,EACvB,WAAW;AAAA,EACX,eAAe,CAAC;AAAA,EAChB,yBAAyB;AAAA,EACzB,eAAe,CAAC;AAAA,EAChB,gBAAgB;AAAA,EAChB,oBAAoB;AAAA,EACpB,gBAAgB;AAAA,EAChB,cAAc;AAAA,EACd,UAAU;AACZ,MAAsB;AAEpB,QAAM,WAAW,kBAAkB;AAAA,IACjC;AAAA,IACA,aAAa,eAAe,YAAY;AAAA,IACxC,sBAAsB,eAAe,YAAY;AAAA,EACnD,CAAC;AACD,QAAM,aAAa,qBAAqB,UAAU,YAAY,SAAS;AAEvE,SACE;AAAA,IAAC;AAAA;AAAA,MACC,WAAW,WAAW;AAAA,MACtB;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA,YAAY;AAAA,MACZ,aAAa;AAAA,MACb;AAAA,MACA;AAAA,MACA,aAAa;AAAA,MACb;AAAA,MAEC,yBAAe,IAAI,CAAC,MAAM,UACzB;AAAA,QAAC;AAAA;AAAA,UAGC,YAAY,YAAY,MAAM;AAAA,UAE7B,GAAG;AAAA;AAAA,QAHC;AAAA,MAIP,CACD;AAAA;AAAA,EACH;AAEJ;AAEA,IAAO,oBAAQ;;;ACvIf,IAAOA,qBAAQ;","names":["Accordion_default"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/ScrollShadow/ScrollShadow.tsx"],"sourcesContent":["import type { ReactNode } from 'react';\n\nimport { ScrollShadow } from '@nextui-org/scroll-shadow';\n\nimport { cn } from '@fuf-stack/pixel-utils';\n\nexport interface ScrollShadowProps {\n /** child components */\n children?: ReactNode;\n /** CSS class name */\n className?: string | string[];\n /** content of the scroll box */\n testId?: string;\n}\n\n/**\n * Scroll Shadow component based on [NextUI Scroll Shadow](https://nextui.org/docs/components/scroll-shadow)\n */\nexport default ({\n children = null,\n className = undefined,\n testId = undefined,\n}: ScrollShadowProps) => (\n <ScrollShadow className={cn(className)} data-testId={testId}>\n {children}\n </ScrollShadow>\n);\n"],"mappings":";AAEA,SAAS,oBAAoB;AAE7B,SAAS,UAAU;AAmBjB;AALF,IAAO,uBAAQ,CAAC;AAAA,EACd,WAAW;AAAA,EACX,YAAY;AAAA,EACZ,SAAS;AACX,MACE,oBAAC,gBAAa,WAAW,GAAG,SAAS,GAAG,eAAa,QAClD,UACH;","names":[]}
|
|
@@ -1,14 +1,23 @@
|
|
|
1
1
|
import {
|
|
2
2
|
ScrollShadow_default
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-BAPBIOOG.js";
|
|
4
4
|
|
|
5
5
|
// src/Popover/Popover.tsx
|
|
6
6
|
import { Popover, PopoverContent, PopoverTrigger } from "@nextui-org/popover";
|
|
7
|
-
import {
|
|
7
|
+
import { tv, variantsToClassNames } from "@fuf-stack/pixel-utils";
|
|
8
8
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
9
|
+
var popoverVariants = tv({
|
|
10
|
+
slots: {
|
|
11
|
+
body: "w-full px-2.5 py-1",
|
|
12
|
+
content: "flex max-h-[80vh] w-[400px] flex-col p-0",
|
|
13
|
+
footer: "w-full px-2.5 py-1",
|
|
14
|
+
header: "w-full px-2.5 py-1",
|
|
15
|
+
trigger: ""
|
|
16
|
+
}
|
|
17
|
+
});
|
|
9
18
|
var Popover_default = ({
|
|
10
19
|
children = null,
|
|
11
|
-
className = void 0,
|
|
20
|
+
className: _className = void 0,
|
|
12
21
|
content,
|
|
13
22
|
contentTestId = void 0,
|
|
14
23
|
footer = void 0,
|
|
@@ -19,10 +28,12 @@ var Popover_default = ({
|
|
|
19
28
|
testId = void 0,
|
|
20
29
|
title = void 0
|
|
21
30
|
}) => {
|
|
31
|
+
const variants = popoverVariants();
|
|
32
|
+
const className = variantsToClassNames(variants, _className, "trigger");
|
|
22
33
|
return /* @__PURE__ */ jsxs(
|
|
23
34
|
Popover,
|
|
24
35
|
{
|
|
25
|
-
classNames:
|
|
36
|
+
classNames: className,
|
|
26
37
|
placement,
|
|
27
38
|
portalContainer,
|
|
28
39
|
radius: "sm",
|
|
@@ -30,18 +41,18 @@ var Popover_default = ({
|
|
|
30
41
|
showArrow: true,
|
|
31
42
|
...openControlled ? { isOpen: openControlled.open, onOpenChange: openControlled.setOpen } : {},
|
|
32
43
|
children: [
|
|
33
|
-
/* @__PURE__ */ jsx(PopoverTrigger, {
|
|
34
|
-
/* @__PURE__ */
|
|
35
|
-
title && /* @__PURE__ */ jsxs("div", { className:
|
|
44
|
+
/* @__PURE__ */ jsx(PopoverTrigger, { "data-testid": testId, children: /* @__PURE__ */ jsx("button", { children }) }),
|
|
45
|
+
/* @__PURE__ */ jsxs(PopoverContent, { "data-testid": contentTestId, children: [
|
|
46
|
+
title && /* @__PURE__ */ jsxs("div", { className: className.header, children: [
|
|
36
47
|
title,
|
|
37
48
|
/* @__PURE__ */ jsx("hr", {})
|
|
38
49
|
] }),
|
|
39
|
-
/* @__PURE__ */ jsx(ScrollShadow_default, { className:
|
|
40
|
-
footer && /* @__PURE__ */ jsxs("div", { className:
|
|
50
|
+
/* @__PURE__ */ jsx(ScrollShadow_default, { className: className.body, children: content }),
|
|
51
|
+
footer && /* @__PURE__ */ jsxs("div", { className: className.footer, children: [
|
|
41
52
|
/* @__PURE__ */ jsx("hr", {}),
|
|
42
53
|
footer
|
|
43
54
|
] })
|
|
44
|
-
] })
|
|
55
|
+
] })
|
|
45
56
|
]
|
|
46
57
|
}
|
|
47
58
|
);
|
|
@@ -54,4 +65,4 @@ export {
|
|
|
54
65
|
Popover_default,
|
|
55
66
|
Popover_default2
|
|
56
67
|
};
|
|
57
|
-
//# sourceMappingURL=chunk-
|
|
68
|
+
//# sourceMappingURL=chunk-BSZX7YBE.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/Popover/Popover.tsx","../src/Popover/index.ts"],"sourcesContent":["import type { TVClassName, TVProps } from '@fuf-stack/pixel-utils';\nimport type { PopoverProps as NextPopoverProps } from '@nextui-org/popover';\nimport type { ReactNode } from 'react';\n\nimport { Popover, PopoverContent, PopoverTrigger } from '@nextui-org/popover';\n\nimport { tv, variantsToClassNames } from '@fuf-stack/pixel-utils';\n\nimport ScrollShadow from '../ScrollShadow/ScrollShadow';\n\n// popover styling variants\nexport const popoverVariants = tv({\n slots: {\n body: 'w-full px-2.5 py-1',\n content: 'flex max-h-[80vh] w-[400px] flex-col p-0',\n footer: 'w-full px-2.5 py-1',\n header: 'w-full px-2.5 py-1',\n trigger: '',\n },\n});\n\ntype VariantProps = TVProps<typeof popoverVariants>;\ntype ClassName = TVClassName<typeof popoverVariants>;\n\nexport interface PopoverProps extends VariantProps {\n /** child components */\n children?: ReactNode;\n /** CSS class name */\n className?: ClassName;\n /** content of the popover */\n content: ReactNode;\n /** HTML data-testid attribute used in e2e tests */\n contentTestId?: string;\n /** popover footer */\n footer?: ReactNode;\n /** use as controlled component */\n openControlled?: { open: boolean; setOpen: (open: boolean) => void };\n /** placement of the popover relative to its trigger reference */\n placement?: NextPopoverProps['placement'];\n /** The container element in which the overlay portal will be placed. */\n portalContainer?: NextPopoverProps['portalContainer'];\n /** Whether to block scrolling outside the popover */\n shouldBlockScroll?: boolean;\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: _className = undefined,\n content,\n contentTestId = undefined,\n footer = undefined,\n openControlled = undefined,\n placement = 'top',\n portalContainer = undefined,\n shouldBlockScroll = undefined,\n testId = undefined,\n title = undefined,\n}: PopoverProps) => {\n // className from slots\n const variants = popoverVariants();\n const className = variantsToClassNames(variants, _className, 'trigger');\n\n return (\n <Popover\n classNames={className}\n placement={placement}\n portalContainer={portalContainer}\n radius=\"sm\"\n shouldBlockScroll={shouldBlockScroll}\n showArrow\n // eslint-disable-next-line react/jsx-props-no-spreading\n {...(openControlled\n ? { isOpen: openControlled.open, onOpenChange: openControlled.setOpen }\n : {})}\n >\n <PopoverTrigger 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 {title && (\n <div className={className.header}>\n {title}\n <hr />\n </div>\n )}\n <ScrollShadow className={className.body}>{content}</ScrollShadow>\n {footer && (\n <div className={className.footer}>\n <hr />\n {footer}\n </div>\n )}\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":";;;;;AAIA,SAAS,SAAS,gBAAgB,sBAAsB;AAExD,SAAS,IAAI,4BAA4B;AA+EjC,cAIE,YAJF;AA1ED,IAAM,kBAAkB,GAAG;AAAA,EAChC,OAAO;AAAA,IACL,MAAM;AAAA,IACN,SAAS;AAAA,IACT,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,SAAS;AAAA,EACX;AACF,CAAC;AAiCD,IAAO,kBAAQ,CAAC;AAAA,EACd,WAAW;AAAA,EACX,WAAW,aAAa;AAAA,EACxB;AAAA,EACA,gBAAgB;AAAA,EAChB,SAAS;AAAA,EACT,iBAAiB;AAAA,EACjB,YAAY;AAAA,EACZ,kBAAkB;AAAA,EAClB,oBAAoB;AAAA,EACpB,SAAS;AAAA,EACT,QAAQ;AACV,MAAoB;AAElB,QAAM,WAAW,gBAAgB;AACjC,QAAM,YAAY,qBAAqB,UAAU,YAAY,SAAS;AAEtE,SACE;AAAA,IAAC;AAAA;AAAA,MACC,YAAY;AAAA,MACZ;AAAA,MACA;AAAA,MACA,QAAO;AAAA,MACP;AAAA,MACA,WAAS;AAAA,MAER,GAAI,iBACD,EAAE,QAAQ,eAAe,MAAM,cAAc,eAAe,QAAQ,IACpE,CAAC;AAAA,MAEL;AAAA,4BAAC,kBAAe,eAAa,QAG3B,8BAAC,YAAQ,UAAS,GACpB;AAAA,QACA,qBAAC,kBAAe,eAAa,eAC1B;AAAA,mBACC,qBAAC,SAAI,WAAW,UAAU,QACvB;AAAA;AAAA,YACD,oBAAC,QAAG;AAAA,aACN;AAAA,UAEF,oBAAC,wBAAa,WAAW,UAAU,MAAO,mBAAQ;AAAA,UACjD,UACC,qBAAC,SAAI,WAAW,UAAU,QACxB;AAAA,gCAAC,QAAG;AAAA,YACH;AAAA,aACH;AAAA,WAEJ;AAAA;AAAA;AAAA,EACF;AAEJ;;;AClGA,IAAOA,mBAAQ;","names":["Popover_default"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["/home/runner/work/uniform/uniform/packages/pixels/dist/chunk-
|
|
1
|
+
{"version":3,"sources":["/home/runner/work/uniform/uniform/packages/pixels/dist/chunk-D5HC5WLB.cjs","../src/ScrollShadow/ScrollShadow.tsx"],"names":[],"mappings":"AAAA;ACEA,yDAA6B;AAE7B,oDAAmB;AAmBjB,+CAAA;AALF,IAAO,qBAAA,EAAQ,CAAC;AAAA,EACd,SAAA,EAAW,IAAA;AAAA,EACX,UAAA,EAAY,KAAA,CAAA;AAAA,EACZ,OAAA,EAAS,KAAA;AACX,CAAA,EAAA,mBACE,6BAAA,0BAAC,EAAA,EAAa,SAAA,EAAW,4BAAA,SAAY,CAAA,EAAG,aAAA,EAAa,MAAA,EAClD,SAAA,CACH,CAAA;ADhBF;AACA;AACE;AACF,oDAAC","file":"/home/runner/work/uniform/uniform/packages/pixels/dist/chunk-D5HC5WLB.cjs","sourcesContent":[null,"import type { ReactNode } from 'react';\n\nimport { ScrollShadow } from '@nextui-org/scroll-shadow';\n\nimport { cn } from '@fuf-stack/pixel-utils';\n\nexport interface ScrollShadowProps {\n /** child components */\n children?: ReactNode;\n /** CSS class name */\n className?: string | string[];\n /** content of the scroll box */\n testId?: string;\n}\n\n/**\n * Scroll Shadow component based on [NextUI Scroll Shadow](https://nextui.org/docs/components/scroll-shadow)\n */\nexport default ({\n children = null,\n className = undefined,\n testId = undefined,\n}: ScrollShadowProps) => (\n <ScrollShadow className={cn(className)} data-testId={testId}>\n {children}\n </ScrollShadow>\n);\n"]}
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports, "__esModule", {value: true}); 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/Breadcrumb/Breadcrumb.tsx
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
|
|
5
|
+
var _breadcrumbs = require('@nextui-org/breadcrumbs');
|
|
6
|
+
var _pixelutils = require('@fuf-stack/pixel-utils');
|
|
7
|
+
var _jsxruntime = require('react/jsx-runtime');
|
|
8
|
+
var breadcrumbVariants = _pixelutils.tv.call(void 0, {
|
|
9
|
+
slots: {
|
|
10
|
+
wrapper: "",
|
|
11
|
+
// base slot of breadcrumbs
|
|
12
|
+
list: "",
|
|
13
|
+
// list slot of breadcrumbs
|
|
14
|
+
separator: "",
|
|
15
|
+
item: "",
|
|
16
|
+
base: ""
|
|
17
|
+
// base for item slot
|
|
18
|
+
}
|
|
19
|
+
});
|
|
20
|
+
var Breadcrumb = ({
|
|
21
|
+
breadcrumbItems = [],
|
|
22
|
+
className: _className = void 0,
|
|
23
|
+
color = "foreground",
|
|
24
|
+
disableAnimation = false,
|
|
25
|
+
disabled = false,
|
|
26
|
+
hideSeparator = false,
|
|
27
|
+
maxItems = void 0,
|
|
28
|
+
radius = "none",
|
|
29
|
+
separator = void 0,
|
|
30
|
+
size = "md",
|
|
31
|
+
variant = "light"
|
|
32
|
+
}) => {
|
|
33
|
+
const variants = breadcrumbVariants({});
|
|
34
|
+
const classNames = _pixelutils.variantsToClassNames.call(void 0, variants, _className, "wrapper");
|
|
35
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
36
|
+
_breadcrumbs.Breadcrumbs,
|
|
37
|
+
{
|
|
38
|
+
classNames: { base: classNames.wrapper, list: classNames.list },
|
|
39
|
+
color,
|
|
40
|
+
disableAnimation,
|
|
41
|
+
hideSeparator,
|
|
42
|
+
isDisabled: disabled,
|
|
43
|
+
itemClasses: classNames,
|
|
44
|
+
maxItems,
|
|
45
|
+
radius,
|
|
46
|
+
separator,
|
|
47
|
+
size,
|
|
48
|
+
variant,
|
|
49
|
+
children: breadcrumbItems.map((item, index) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
50
|
+
_breadcrumbs.BreadcrumbItem,
|
|
51
|
+
{
|
|
52
|
+
isDisabled: disabled || _optionalChain([item, 'optionalAccess', _ => _.disabled]),
|
|
53
|
+
...item
|
|
54
|
+
},
|
|
55
|
+
index
|
|
56
|
+
))
|
|
57
|
+
}
|
|
58
|
+
);
|
|
59
|
+
};
|
|
60
|
+
var Breadcrumb_default = Breadcrumb;
|
|
61
|
+
|
|
62
|
+
// src/Breadcrumb/index.ts
|
|
63
|
+
var Breadcrumb_default2 = Breadcrumb_default;
|
|
64
|
+
|
|
65
|
+
|
|
66
|
+
|
|
67
|
+
|
|
68
|
+
|
|
69
|
+
exports.breadcrumbVariants = breadcrumbVariants; exports.Breadcrumb_default = Breadcrumb_default; exports.Breadcrumb_default2 = Breadcrumb_default2;
|
|
70
|
+
//# sourceMappingURL=chunk-FFULPXWN.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["/home/runner/work/uniform/uniform/packages/pixels/dist/chunk-FFULPXWN.cjs","../src/Breadcrumb/Breadcrumb.tsx","../src/Breadcrumb/index.ts"],"names":["Breadcrumb_default"],"mappings":"AAAA;ACGA;AACE;AACA;AAAkB,sDACb;AAEP,oDAAyC;AA8FjC,+CAAA;AA1FD,IAAM,mBAAA,EAAqB,4BAAA;AAAG,EACnC,KAAA,EAAO;AAAA,IACL,OAAA,EAAS,EAAA;AAAA;AAAA,IACT,IAAA,EAAM,EAAA;AAAA;AAAA,IACN,SAAA,EAAW,EAAA;AAAA,IACX,IAAA,EAAM,EAAA;AAAA,IACN,IAAA,EAAM;AAAA;AAAA,EACR;AACF,CAAC,CAAA;AAkDD,IAAM,WAAA,EAAa,CAAC;AAAA,EAClB,gBAAA,EAAkB,CAAC,CAAA;AAAA,EACnB,SAAA,EAAW,WAAA,EAAa,KAAA,CAAA;AAAA,EACxB,MAAA,EAAQ,YAAA;AAAA,EACR,iBAAA,EAAmB,KAAA;AAAA,EACnB,SAAA,EAAW,KAAA;AAAA,EACX,cAAA,EAAgB,KAAA;AAAA,EAChB,SAAA,EAAW,KAAA,CAAA;AAAA,EACX,OAAA,EAAS,MAAA;AAAA,EACT,UAAA,EAAY,KAAA,CAAA;AAAA,EACZ,KAAA,EAAO,IAAA;AAAA,EACP,QAAA,EAAU;AACZ,CAAA,EAAA,GAAuB;AAErB,EAAA,MAAM,SAAA,EAAW,kBAAA,CAAmB,CAAC,CAAC,CAAA;AACtC,EAAA,MAAM,WAAA,EAAa,8CAAA,QAAqB,EAAU,UAAA,EAAY,SAAS,CAAA;AAEvE,EAAA,uBACE,6BAAA;AAAA,IAAC,wBAAA;AAAA,IAAA;AAAA,MACC,UAAA,EAAY,EAAE,IAAA,EAAM,UAAA,CAAW,OAAA,EAAS,IAAA,EAAM,UAAA,CAAW,KAAK,CAAA;AAAA,MAC9D,KAAA;AAAA,MACA,gBAAA;AAAA,MACA,aAAA;AAAA,MACA,UAAA,EAAY,QAAA;AAAA,MACZ,WAAA,EAAa,UAAA;AAAA,MACb,QAAA;AAAA,MACA,MAAA;AAAA,MACA,SAAA;AAAA,MACA,IAAA;AAAA,MACA,OAAA;AAAA,MAEC,QAAA,EAAA,eAAA,CAAgB,GAAA,CAAI,CAAC,IAAA,EAAM,KAAA,EAAA,mBAC1B,6BAAA;AAAA,QAAC,2BAAA;AAAA,QAAA;AAAA,UAGC,UAAA,EAAY,SAAA,mBAAY,IAAA,2BAAM,UAAA;AAAA,UAE7B,GAAG;AAAA,QAAA,CAAA;AAAA,QAHC;AAAA,MAIP,CACD;AAAA,IAAA;AAAA,EACH,CAAA;AAEJ,CAAA;AAEA,IAAO,mBAAA,EAAQ,UAAA;ADtDf;AACA;AEvDA,IAAOA,oBAAAA,EAAQ,kBAAA;AFyDf;AACA;AACE;AACA;AACA;AACF,oJAAC","file":"/home/runner/work/uniform/uniform/packages/pixels/dist/chunk-FFULPXWN.cjs","sourcesContent":[null,"import type { TVClassName, TVProps } from '@fuf-stack/pixel-utils';\nimport type { ReactNode } from 'react';\n\nimport {\n Breadcrumbs as NextBreadcrumb,\n BreadcrumbItem as NextBreadcrumbItem,\n} from '@nextui-org/breadcrumbs';\n\nimport { tv, variantsToClassNames } from '@fuf-stack/pixel-utils';\n\n// breadcrumb styling variants\n// see: https://nextui.org/docs/components/breadcrumbs#breadcrumbitem-props\nexport const breadcrumbVariants = tv({\n slots: {\n wrapper: '', // base slot of breadcrumbs\n list: '', // list slot of breadcrumbs\n separator: '',\n item: '',\n base: '', // base for item slot\n },\n});\n\nexport interface BreadcrumbItemProps {\n /** Content of the breadcrumb item */\n children: ReactNode;\n /** Disables the breadcrumb item */\n disabled?: boolean;\n /** content displayed before the children */\n startContent?: ReactNode;\n /** content displayed after the children */\n endContent?: ReactNode;\n}\n\ntype VariantProps = TVProps<typeof breadcrumbVariants>;\ntype ClassName = TVClassName<typeof breadcrumbVariants>;\n\nexport interface BreadcrumbProps extends VariantProps {\n /** Props for breadcrumbItem, will render the breadcrumb items programmatically */\n breadcrumbItems?: BreadcrumbItemProps[];\n /** CSS class name */\n className?: ClassName;\n /** color of the active BreadcrumbItem */\n color?:\n | 'foreground'\n | 'primary'\n | 'secondary'\n | 'success'\n | 'warning'\n | 'danger';\n /** Disables the Breadcrumb animation */\n disableAnimation?: boolean;\n /** hides the separator between items */\n hideSeparator?: boolean;\n /** disables all items */\n disabled?: boolean;\n /** Maximum number of items to show without \"...\" in between */\n maxItems?: number;\n /** Radius of the Breadcrumb */\n radius?: 'none' | 'sm' | 'md' | 'lg' | 'full';\n /** Separator between items */\n separator?: ReactNode;\n /** Size of the Breadcrumb */\n size?: 'sm' | 'md' | 'lg';\n /** Style variant of the Breadcrumbs */\n variant?: 'solid' | 'bordered' | 'light';\n}\n\n/**\n * Breadcrumb component based on [NextUI Breadcrumbs](https://nextui.org/docs/components/breadcrumbs)\n */\nconst Breadcrumb = ({\n breadcrumbItems = [],\n className: _className = undefined,\n color = 'foreground',\n disableAnimation = false,\n disabled = false,\n hideSeparator = false,\n maxItems = undefined,\n radius = 'none',\n separator = undefined,\n size = 'md',\n variant = 'light',\n}: BreadcrumbProps) => {\n // itemClasses from className slots\n const variants = breadcrumbVariants({});\n const classNames = variantsToClassNames(variants, _className, 'wrapper');\n\n return (\n <NextBreadcrumb\n classNames={{ base: classNames.wrapper, list: classNames.list }}\n color={color}\n disableAnimation={disableAnimation}\n hideSeparator={hideSeparator}\n isDisabled={disabled}\n itemClasses={classNames}\n maxItems={maxItems}\n radius={radius}\n separator={separator}\n size={size}\n variant={variant}\n >\n {breadcrumbItems.map((item, index) => (\n <NextBreadcrumbItem\n // eslint-disable-next-line react/no-array-index-key\n key={index}\n isDisabled={disabled || item?.disabled}\n // eslint-disable-next-line react/jsx-props-no-spreading\n {...item}\n />\n ))}\n </NextBreadcrumb>\n );\n};\n\nexport default Breadcrumb;\n","import Breadcrumb, { breadcrumbVariants } from './Breadcrumb';\n\nexport type { BreadcrumbProps, BreadcrumbItemProps } from './Breadcrumb';\n\nexport { Breadcrumb, breadcrumbVariants };\n\nexport default Breadcrumb;\n"]}
|
|
@@ -31,6 +31,11 @@ var accordionVariants = _pixelutils.tv.call(void 0, {
|
|
|
31
31
|
true: {
|
|
32
32
|
wrapper: "divide-y divide-solid divide-divider"
|
|
33
33
|
}
|
|
34
|
+
},
|
|
35
|
+
showBottomTopDivider: {
|
|
36
|
+
true: {
|
|
37
|
+
wrapper: "border-b border-t border-solid border-divider"
|
|
38
|
+
}
|
|
34
39
|
}
|
|
35
40
|
}
|
|
36
41
|
});
|
|
@@ -50,7 +55,8 @@ var Accordion = ({
|
|
|
50
55
|
}) => {
|
|
51
56
|
const variants = accordionVariants({
|
|
52
57
|
indicatorLeft,
|
|
53
|
-
showDivider: showDivider && variant !== "splitted"
|
|
58
|
+
showDivider: showDivider && variant !== "splitted",
|
|
59
|
+
showBottomTopDivider: showDivider && variant === "light"
|
|
54
60
|
});
|
|
55
61
|
const classNames = _pixelutils.variantsToClassNames.call(void 0, variants, _className, "wrapper");
|
|
56
62
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
@@ -88,4 +94,4 @@ var Accordion_default2 = Accordion_default;
|
|
|
88
94
|
|
|
89
95
|
|
|
90
96
|
exports.accordionVariants = accordionVariants; exports.Accordion_default = Accordion_default; exports.Accordion_default2 = Accordion_default2;
|
|
91
|
-
//# sourceMappingURL=chunk-
|
|
97
|
+
//# sourceMappingURL=chunk-JU7O2LCJ.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["/home/runner/work/uniform/uniform/packages/pixels/dist/chunk-JU7O2LCJ.cjs","../src/Accordion/Accordion.tsx","../src/Accordion/index.ts"],"names":["Accordion_default"],"mappings":"AAAA;ACIA;AACE;AACA;AAAiB,kDACZ;AAEP,oDAAyC;AAwHjC,+CAAA;AApHD,IAAM,kBAAA,EAAoB,4BAAA;AAAG,EAClC,KAAA,EAAO;AAAA,IACL,IAAA,EAAM,EAAA;AAAA,IACN,OAAA,EAAS,MAAA;AAAA,IACT,OAAA,EAAS,MAAA;AAAA,IACT,SAAA,EAAW,EAAA;AAAA,IACX,YAAA,EAAc,EAAA;AAAA,IACd,QAAA,EAAU,EAAA;AAAA,IACV,KAAA,EAAO,EAAA;AAAA,IACP,YAAA,EAAc,EAAA;AAAA,IACd,OAAA,EAAS,EAAA;AAAA;AAAA,IAET,OAAA,EAAS;AAAA,EACX,CAAA;AAAA,EACA,QAAA,EAAU;AAAA,IACR,aAAA,EAAe;AAAA,MACb,IAAA,EAAM;AAAA,QACJ,OAAA,EAAS,MAAA;AAAA,QACT,SAAA,EAAW,yCAAA;AAAA,QACX,OAAA,EAAS;AAAA,MACX;AAAA,IACF,CAAA;AAAA,IACA,WAAA,EAAa;AAAA,MACX,IAAA,EAAM;AAAA,QACJ,OAAA,EAAS;AAAA,MACX;AAAA,IACF,CAAA;AAAA,IACA,oBAAA,EAAsB;AAAA,MACpB,IAAA,EAAM;AAAA,QACJ,OAAA,EAAS;AAAA,MACX;AAAA,IACF;AAAA,EACF;AACF,CAAC,CAAA;AA8CD,IAAM,UAAA,EAAY,CAAC;AAAA,EACjB,eAAA,EAAiB,CAAC,CAAA;AAAA,EAClB,SAAA,EAAW,WAAA,EAAa,KAAA,CAAA;AAAA,EACxB,oBAAA,EAAsB,CAAC,CAAA;AAAA,EACvB,SAAA,EAAW,KAAA;AAAA,EACX,aAAA,EAAe,CAAC,CAAA;AAAA,EAChB,uBAAA,EAAyB,KAAA;AAAA,EACzB,aAAA,EAAe,CAAC,CAAA;AAAA,EAChB,cAAA,EAAgB,KAAA;AAAA,EAChB,kBAAA,EAAoB,KAAA,CAAA;AAAA,EACpB,cAAA,EAAgB,UAAA;AAAA,EAChB,YAAA,EAAc,IAAA;AAAA,EACd,QAAA,EAAU;AACZ,CAAA,EAAA,GAAsB;AAEpB,EAAA,MAAM,SAAA,EAAW,iBAAA,CAAkB;AAAA,IACjC,aAAA;AAAA,IACA,WAAA,EAAa,YAAA,GAAe,QAAA,IAAY,UAAA;AAAA,IACxC,oBAAA,EAAsB,YAAA,GAAe,QAAA,IAAY;AAAA,EACnD,CAAC,CAAA;AACD,EAAA,MAAM,WAAA,EAAa,8CAAA,QAAqB,EAAU,UAAA,EAAY,SAAS,CAAA;AAEvE,EAAA,uBACE,6BAAA;AAAA,IAAC,oBAAA;AAAA,IAAA;AAAA,MACC,SAAA,EAAW,UAAA,CAAW,OAAA;AAAA,MACtB,mBAAA;AAAA,MACA,YAAA;AAAA,MACA,sBAAA;AAAA,MACA,YAAA;AAAA,MACA,UAAA,EAAY,QAAA;AAAA,MACZ,WAAA,EAAa,UAAA;AAAA,MACb,iBAAA;AAAA,MACA,aAAA;AAAA,MACA,WAAA,EAAa,KAAA;AAAA,MACb,OAAA;AAAA,MAEC,QAAA,EAAA,cAAA,CAAe,GAAA,CAAI,CAAC,IAAA,EAAM,KAAA,EAAA,mBACzB,6BAAA;AAAA,QAAC,wBAAA;AAAA,QAAA;AAAA,UAGC,UAAA,EAAY,SAAA,mBAAY,IAAA,2BAAM,UAAA;AAAA,UAE7B,GAAG;AAAA,QAAA,CAAA;AAAA,QAHC;AAAA,MAIP,CACD;AAAA,IAAA;AAAA,EACH,CAAA;AAEJ,CAAA;AAEA,IAAO,kBAAA,EAAQ,SAAA;ADtDf;AACA;AElFA,IAAOA,mBAAAA,EAAQ,iBAAA;AFoFf;AACA;AACE;AACA;AACA;AACF,8IAAC","file":"/home/runner/work/uniform/uniform/packages/pixels/dist/chunk-JU7O2LCJ.cjs","sourcesContent":[null,"import type { TVClassName, TVProps } from '@fuf-stack/pixel-utils';\nimport type { DividerProps } from '@nextui-org/divider';\nimport type { ReactNode } from 'react';\n\nimport {\n Accordion as NextAccordion,\n AccordionItem as NextAccordionItem,\n} from '@nextui-org/accordion';\n\nimport { tv, variantsToClassNames } from '@fuf-stack/pixel-utils';\n\n// accordion styling variants\n// see: https://nextui.org/docs/components/accordion#accordion-item-slots\nexport const accordionVariants = tv({\n slots: {\n base: '',\n content: 'px-4',\n heading: 'px-4',\n indicator: '',\n startContent: '',\n subtitle: '',\n title: '',\n titleWrapper: '',\n trigger: '',\n // outer accordion wrapper\n wrapper: 'px-0',\n },\n variants: {\n indicatorLeft: {\n true: {\n content: 'pl-7',\n indicator: '-rotate-180 data-[open=true]:-rotate-90',\n trigger: 'flex-row-reverse',\n },\n },\n showDivider: {\n true: {\n wrapper: 'divide-y divide-solid divide-divider',\n },\n },\n showBottomTopDivider: {\n true: {\n wrapper: 'border-b border-t border-solid border-divider',\n },\n },\n },\n});\n\nexport interface AccordionItemProps {\n /** Content of the accordion item */\n children: ReactNode;\n /** Disables the accordion item */\n disabled?: boolean;\n /** Accordion item title */\n title: ReactNode;\n /** Accordion item subtitle */\n subtitle?: ReactNode;\n}\n\ntype VariantProps = TVProps<typeof accordionVariants>;\ntype ClassName = TVClassName<typeof accordionVariants>;\n\nexport interface AccordionProps extends VariantProps {\n /** Props for AccordionItems, will render the accordion items programmatically */\n accordionItems?: AccordionItemProps[];\n /** CSS class name */\n className?: ClassName;\n /** Array of keys for the AccordionItem(s) to be expanded by default */\n defaultSelectedKeys?: undefined | 'all' | Iterable<number | string>;\n /** Disables the Accordion */\n disabled?: boolean;\n /** Array of keys for the AccordionItems to disable */\n disabledKeys?: Iterable<number | string>;\n /** Force always one AccordionItem to be open. */\n disallowEmptySelection?: boolean;\n /** props for styling the Divider */\n dividerProps?: DividerProps;\n /** Hide the expanded/collapsed indicator icon */\n hideIndicator?: boolean;\n /** Callback function for when a Accordion Item is expanded or collapsed */\n onSelectionChange?: (keys: 'all' | Iterable<number | string>) => unknown;\n /** Set whether multiple or only a single AccordionItems can be expanded */\n selectionMode?: 'single' | 'multiple';\n /** Enable or disable the divider between each AccordionItem */\n showDivider?: boolean;\n /** Style variant of the Accordion */\n variant?: 'light' | 'shadow' | 'bordered' | 'splitted';\n}\n\n/**\n * Accordion component based on [NextUI Accordion](https://nextui.org/docs/components/accordion)\n */\nconst Accordion = ({\n accordionItems = [],\n className: _className = undefined,\n defaultSelectedKeys = [],\n disabled = false,\n disabledKeys = [],\n disallowEmptySelection = false,\n dividerProps = {},\n indicatorLeft = false,\n onSelectionChange = undefined,\n selectionMode = 'multiple',\n showDivider = true,\n variant = 'light',\n}: AccordionProps) => {\n // itemClasses from className slots\n const variants = accordionVariants({\n indicatorLeft,\n showDivider: showDivider && variant !== 'splitted',\n showBottomTopDivider: showDivider && variant === 'light',\n });\n const classNames = variantsToClassNames(variants, _className, 'wrapper');\n\n return (\n <NextAccordion\n className={classNames.wrapper}\n defaultSelectedKeys={defaultSelectedKeys}\n disabledKeys={disabledKeys}\n disallowEmptySelection={disallowEmptySelection}\n dividerProps={dividerProps}\n isDisabled={disabled}\n itemClasses={classNames}\n onSelectionChange={onSelectionChange}\n selectionMode={selectionMode}\n showDivider={false}\n variant={variant}\n >\n {accordionItems.map((item, index) => (\n <NextAccordionItem\n // eslint-disable-next-line react/no-array-index-key\n key={index}\n isDisabled={disabled || item?.disabled}\n // eslint-disable-next-line react/jsx-props-no-spreading\n {...item}\n />\n ))}\n </NextAccordion>\n );\n};\n\nexport default Accordion;\n","import Accordion, { accordionVariants } from './Accordion';\n\nexport type { AccordionProps, AccordionItemProps } from './Accordion';\n\nexport { Accordion, accordionVariants };\n\nexport default Accordion;\n"]}
|
|
@@ -1,14 +1,23 @@
|
|
|
1
1
|
"use strict";Object.defineProperty(exports, "__esModule", {value: true});
|
|
2
2
|
|
|
3
|
-
var
|
|
3
|
+
var _chunkD5HC5WLBcjs = require('./chunk-D5HC5WLB.cjs');
|
|
4
4
|
|
|
5
5
|
// src/Popover/Popover.tsx
|
|
6
6
|
var _popover = require('@nextui-org/popover');
|
|
7
7
|
var _pixelutils = require('@fuf-stack/pixel-utils');
|
|
8
8
|
var _jsxruntime = require('react/jsx-runtime');
|
|
9
|
+
var popoverVariants = _pixelutils.tv.call(void 0, {
|
|
10
|
+
slots: {
|
|
11
|
+
body: "w-full px-2.5 py-1",
|
|
12
|
+
content: "flex max-h-[80vh] w-[400px] flex-col p-0",
|
|
13
|
+
footer: "w-full px-2.5 py-1",
|
|
14
|
+
header: "w-full px-2.5 py-1",
|
|
15
|
+
trigger: ""
|
|
16
|
+
}
|
|
17
|
+
});
|
|
9
18
|
var Popover_default = ({
|
|
10
19
|
children = null,
|
|
11
|
-
className = void 0,
|
|
20
|
+
className: _className = void 0,
|
|
12
21
|
content,
|
|
13
22
|
contentTestId = void 0,
|
|
14
23
|
footer = void 0,
|
|
@@ -19,10 +28,12 @@ var Popover_default = ({
|
|
|
19
28
|
testId = void 0,
|
|
20
29
|
title = void 0
|
|
21
30
|
}) => {
|
|
31
|
+
const variants = popoverVariants();
|
|
32
|
+
const className = _pixelutils.variantsToClassNames.call(void 0, variants, _className, "trigger");
|
|
22
33
|
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
23
34
|
_popover.Popover,
|
|
24
35
|
{
|
|
25
|
-
classNames:
|
|
36
|
+
classNames: className,
|
|
26
37
|
placement,
|
|
27
38
|
portalContainer,
|
|
28
39
|
radius: "sm",
|
|
@@ -30,18 +41,18 @@ var Popover_default = ({
|
|
|
30
41
|
showArrow: true,
|
|
31
42
|
...openControlled ? { isOpen: openControlled.open, onOpenChange: openControlled.setOpen } : {},
|
|
32
43
|
children: [
|
|
33
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _popover.PopoverTrigger, {
|
|
34
|
-
/* @__PURE__ */ _jsxruntime.
|
|
35
|
-
title && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className:
|
|
44
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _popover.PopoverTrigger, { "data-testid": testId, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "button", { children }) }),
|
|
45
|
+
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _popover.PopoverContent, { "data-testid": contentTestId, children: [
|
|
46
|
+
title && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: className.header, children: [
|
|
36
47
|
title,
|
|
37
48
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "hr", {})
|
|
38
49
|
] }),
|
|
39
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
40
|
-
footer && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className:
|
|
50
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkD5HC5WLBcjs.ScrollShadow_default, { className: className.body, children: content }),
|
|
51
|
+
footer && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: className.footer, children: [
|
|
41
52
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "hr", {}),
|
|
42
53
|
footer
|
|
43
54
|
] })
|
|
44
|
-
] })
|
|
55
|
+
] })
|
|
45
56
|
]
|
|
46
57
|
}
|
|
47
58
|
);
|
|
@@ -54,4 +65,4 @@ var Popover_default2 = Popover_default;
|
|
|
54
65
|
|
|
55
66
|
|
|
56
67
|
exports.Popover_default = Popover_default; exports.Popover_default2 = Popover_default2;
|
|
57
|
-
//# sourceMappingURL=chunk-
|
|
68
|
+
//# sourceMappingURL=chunk-NRLYC3SF.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["/home/runner/work/uniform/uniform/packages/pixels/dist/chunk-NRLYC3SF.cjs","../src/Popover/Popover.tsx","../src/Popover/index.ts"],"names":["Popover_default"],"mappings":"AAAA;AACE;AACF,wDAA6B;AAC7B;AACA;ACAA,8CAAwD;AAExD,oDAAyC;AA+EjC,+CAAA;AA1ED,IAAM,gBAAA,EAAkB,4BAAA;AAAG,EAChC,KAAA,EAAO;AAAA,IACL,IAAA,EAAM,oBAAA;AAAA,IACN,OAAA,EAAS,0CAAA;AAAA,IACT,MAAA,EAAQ,oBAAA;AAAA,IACR,MAAA,EAAQ,oBAAA;AAAA,IACR,OAAA,EAAS;AAAA,EACX;AACF,CAAC,CAAA;AAiCD,IAAO,gBAAA,EAAQ,CAAC;AAAA,EACd,SAAA,EAAW,IAAA;AAAA,EACX,SAAA,EAAW,WAAA,EAAa,KAAA,CAAA;AAAA,EACxB,OAAA;AAAA,EACA,cAAA,EAAgB,KAAA,CAAA;AAAA,EAChB,OAAA,EAAS,KAAA,CAAA;AAAA,EACT,eAAA,EAAiB,KAAA,CAAA;AAAA,EACjB,UAAA,EAAY,KAAA;AAAA,EACZ,gBAAA,EAAkB,KAAA,CAAA;AAAA,EAClB,kBAAA,EAAoB,KAAA,CAAA;AAAA,EACpB,OAAA,EAAS,KAAA,CAAA;AAAA,EACT,MAAA,EAAQ,KAAA;AACV,CAAA,EAAA,GAAoB;AAElB,EAAA,MAAM,SAAA,EAAW,eAAA,CAAgB,CAAA;AACjC,EAAA,MAAM,UAAA,EAAY,8CAAA,QAAqB,EAAU,UAAA,EAAY,SAAS,CAAA;AAEtE,EAAA,uBACE,8BAAA;AAAA,IAAC,gBAAA;AAAA,IAAA;AAAA,MACC,UAAA,EAAY,SAAA;AAAA,MACZ,SAAA;AAAA,MACA,eAAA;AAAA,MACA,MAAA,EAAO,IAAA;AAAA,MACP,iBAAA;AAAA,MACA,SAAA,EAAS,IAAA;AAAA,MAER,GAAI,eAAA,EACD,EAAE,MAAA,EAAQ,cAAA,CAAe,IAAA,EAAM,YAAA,EAAc,cAAA,CAAe,QAAQ,EAAA,EACpE,CAAC,CAAA;AAAA,MAEL,QAAA,EAAA;AAAA,wBAAA,6BAAA,uBAAC,EAAA,EAAe,aAAA,EAAa,MAAA,EAG3B,QAAA,kBAAA,6BAAA,QAAC,EAAA,EAAQ,SAAA,CAAS,EAAA,CACpB,CAAA;AAAA,wBACA,8BAAA,uBAAC,EAAA,EAAe,aAAA,EAAa,aAAA,EAC1B,QAAA,EAAA;AAAA,UAAA,MAAA,mBACC,8BAAA,KAAC,EAAA,EAAI,SAAA,EAAW,SAAA,CAAU,MAAA,EACvB,QAAA,EAAA;AAAA,YAAA,KAAA;AAAA,4BACD,6BAAA,IAAC,EAAA,CAAA,CAAG;AAAA,UAAA,EAAA,CACN,CAAA;AAAA,0BAEF,6BAAA,sCAAC,EAAA,EAAa,SAAA,EAAW,SAAA,CAAU,IAAA,EAAO,QAAA,EAAA,QAAA,CAAQ,CAAA;AAAA,UACjD,OAAA,mBACC,8BAAA,KAAC,EAAA,EAAI,SAAA,EAAW,SAAA,CAAU,MAAA,EACxB,QAAA,EAAA;AAAA,4BAAA,6BAAA,IAAC,EAAA,CAAA,CAAG,CAAA;AAAA,YACH;AAAA,UAAA,EAAA,CACH;AAAA,QAAA,EAAA,CAEJ;AAAA,MAAA;AAAA,IAAA;AAAA,EACF,CAAA;AAEJ,CAAA;AD7CA;AACA;AEtDA,IAAOA,iBAAAA,EAAQ,eAAA;AFwDf;AACA;AACE;AACA;AACF,uFAAC","file":"/home/runner/work/uniform/uniform/packages/pixels/dist/chunk-NRLYC3SF.cjs","sourcesContent":[null,"import type { TVClassName, TVProps } from '@fuf-stack/pixel-utils';\nimport type { PopoverProps as NextPopoverProps } from '@nextui-org/popover';\nimport type { ReactNode } from 'react';\n\nimport { Popover, PopoverContent, PopoverTrigger } from '@nextui-org/popover';\n\nimport { tv, variantsToClassNames } from '@fuf-stack/pixel-utils';\n\nimport ScrollShadow from '../ScrollShadow/ScrollShadow';\n\n// popover styling variants\nexport const popoverVariants = tv({\n slots: {\n body: 'w-full px-2.5 py-1',\n content: 'flex max-h-[80vh] w-[400px] flex-col p-0',\n footer: 'w-full px-2.5 py-1',\n header: 'w-full px-2.5 py-1',\n trigger: '',\n },\n});\n\ntype VariantProps = TVProps<typeof popoverVariants>;\ntype ClassName = TVClassName<typeof popoverVariants>;\n\nexport interface PopoverProps extends VariantProps {\n /** child components */\n children?: ReactNode;\n /** CSS class name */\n className?: ClassName;\n /** content of the popover */\n content: ReactNode;\n /** HTML data-testid attribute used in e2e tests */\n contentTestId?: string;\n /** popover footer */\n footer?: ReactNode;\n /** use as controlled component */\n openControlled?: { open: boolean; setOpen: (open: boolean) => void };\n /** placement of the popover relative to its trigger reference */\n placement?: NextPopoverProps['placement'];\n /** The container element in which the overlay portal will be placed. */\n portalContainer?: NextPopoverProps['portalContainer'];\n /** Whether to block scrolling outside the popover */\n shouldBlockScroll?: boolean;\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: _className = undefined,\n content,\n contentTestId = undefined,\n footer = undefined,\n openControlled = undefined,\n placement = 'top',\n portalContainer = undefined,\n shouldBlockScroll = undefined,\n testId = undefined,\n title = undefined,\n}: PopoverProps) => {\n // className from slots\n const variants = popoverVariants();\n const className = variantsToClassNames(variants, _className, 'trigger');\n\n return (\n <Popover\n classNames={className}\n placement={placement}\n portalContainer={portalContainer}\n radius=\"sm\"\n shouldBlockScroll={shouldBlockScroll}\n showArrow\n // eslint-disable-next-line react/jsx-props-no-spreading\n {...(openControlled\n ? { isOpen: openControlled.open, onOpenChange: openControlled.setOpen }\n : {})}\n >\n <PopoverTrigger 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 {title && (\n <div className={className.header}>\n {title}\n <hr />\n </div>\n )}\n <ScrollShadow className={className.body}>{content}</ScrollShadow>\n {footer && (\n <div className={className.footer}>\n <hr />\n {footer}\n </div>\n )}\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"]}
|