@fuf-stack/pixels 0.5.5 → 0.5.6
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 +3 -2
- package/dist/Button/index.js +2 -1
- package/dist/Card/index.cjs +3 -2
- package/dist/Card/index.js +2 -1
- package/dist/Json/index.cjs +4 -3
- package/dist/Json/index.js +3 -2
- package/dist/Label/index.cjs +3 -2
- package/dist/Label/index.js +2 -1
- package/dist/Menu/index.cjs +3 -2
- package/dist/Menu/index.js +2 -1
- package/dist/Modal/index.cjs +3 -2
- package/dist/Modal/index.js +2 -1
- package/dist/Popover/index.cjs +3 -2
- package/dist/Popover/index.js +2 -1
- package/dist/Tooltip/index.cjs +3 -2
- package/dist/Tooltip/index.js +2 -1
- package/dist/{chunk-BTBF633Q.js → chunk-22MRKUHN.js} +32 -27
- package/dist/{chunk-BTBF633Q.js.map → chunk-22MRKUHN.js.map} +1 -1
- package/dist/{chunk-IEZVKZFP.js → chunk-2C2AZ4GY.js} +14 -9
- package/dist/{chunk-IEZVKZFP.js.map → chunk-2C2AZ4GY.js.map} +1 -1
- package/dist/{chunk-BMKGS5PK.cjs → chunk-5QFG2VXP.cjs} +9 -4
- package/dist/chunk-5QFG2VXP.cjs.map +1 -0
- package/dist/chunk-CJ7YDKHN.cjs +48 -0
- package/dist/chunk-CJ7YDKHN.cjs.map +1 -0
- package/dist/{chunk-O6OLR36Y.js → chunk-DAIBNNTS.js} +12 -7
- package/dist/{chunk-O6OLR36Y.js.map → chunk-DAIBNNTS.js.map} +1 -1
- package/dist/{chunk-GIM2W4JH.cjs → chunk-DFKOD7QX.cjs} +15 -10
- package/dist/chunk-DFKOD7QX.cjs.map +1 -0
- package/dist/chunk-EOBBMFEW.js +3193 -0
- package/dist/chunk-EOBBMFEW.js.map +1 -0
- package/dist/{chunk-HYXTFS4R.js → chunk-ILTQEFAN.js} +13 -8
- package/dist/{chunk-HYXTFS4R.js.map → chunk-ILTQEFAN.js.map} +1 -1
- package/dist/{chunk-ND4VZZVU.cjs → chunk-JSV7ZIIA.cjs} +14 -9
- package/dist/chunk-JSV7ZIIA.cjs.map +1 -0
- package/dist/{chunk-X2MUU2ZI.cjs → chunk-KVCXEJJD.cjs} +13 -8
- package/dist/chunk-KVCXEJJD.cjs.map +1 -0
- package/dist/{chunk-S2WOGSQV.js → chunk-L6CCOLHU.js} +8 -3
- package/dist/{chunk-S2WOGSQV.js.map → chunk-L6CCOLHU.js.map} +1 -1
- package/dist/{chunk-7GYTJLD6.cjs → chunk-NB2Y66Z3.cjs} +33 -28
- package/dist/chunk-NB2Y66Z3.cjs.map +1 -0
- package/dist/chunk-PD246EV7.js +48 -0
- package/dist/{chunk-6G5VTF6K.js.map → chunk-PD246EV7.js.map} +1 -1
- package/dist/chunk-PTN54X4Z.cjs +3193 -0
- package/dist/chunk-PTN54X4Z.cjs.map +1 -0
- package/dist/{chunk-236GX7PP.js → chunk-QC2FAH2W.js} +9 -4
- package/dist/{chunk-236GX7PP.js.map → chunk-QC2FAH2W.js.map} +1 -1
- package/dist/{chunk-HHTTNYDC.cjs → chunk-R2JOVQS5.cjs} +15 -10
- package/dist/chunk-R2JOVQS5.cjs.map +1 -0
- package/dist/{chunk-BSBPQXNG.cjs → chunk-SSPYXO6E.cjs} +10 -5
- package/dist/chunk-SSPYXO6E.cjs.map +1 -0
- package/dist/{chunk-VOXYQARK.js → chunk-XGAFPFRL.js} +14 -9
- package/dist/{chunk-VOXYQARK.js.map → chunk-XGAFPFRL.js.map} +1 -1
- package/dist/index.cjs +20 -16
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +19 -15
- package/dist/index.js.map +1 -1
- package/package.json +5 -5
- package/dist/chunk-6G5VTF6K.js +0 -43
- package/dist/chunk-7GYTJLD6.cjs.map +0 -1
- package/dist/chunk-B35F4645.cjs +0 -43
- package/dist/chunk-B35F4645.cjs.map +0 -1
- package/dist/chunk-BMKGS5PK.cjs.map +0 -1
- package/dist/chunk-BSBPQXNG.cjs.map +0 -1
- package/dist/chunk-GIM2W4JH.cjs.map +0 -1
- package/dist/chunk-HHTTNYDC.cjs.map +0 -1
- package/dist/chunk-ND4VZZVU.cjs.map +0 -1
- package/dist/chunk-X2MUU2ZI.cjs.map +0 -1
|
@@ -1,4 +1,10 @@
|
|
|
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; }
|
|
1
|
+
"use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
var _chunkPTN54X4Zcjs = require('./chunk-PTN54X4Z.cjs');
|
|
5
|
+
|
|
6
|
+
// src/Menu/Menu.tsx
|
|
7
|
+
var import_jsx_runtime = _chunkPTN54X4Zcjs.__toESM.call(void 0, _chunkPTN54X4Zcjs.require_jsx_runtime.call(void 0, ), 1);
|
|
2
8
|
var _fa6 = require('react-icons/fa6');
|
|
3
9
|
var _button = require('@nextui-org/button');
|
|
4
10
|
|
|
@@ -9,13 +15,12 @@ var _button = require('@nextui-org/button');
|
|
|
9
15
|
|
|
10
16
|
var _dropdown = require('@nextui-org/dropdown');
|
|
11
17
|
var _classnames = require('classnames'); var _classnames2 = _interopRequireDefault(_classnames);
|
|
12
|
-
var _jsxruntime = require('react/jsx-runtime');
|
|
13
18
|
var getDisabledKeys = (items) => {
|
|
14
19
|
return items.map((item) => typeof _optionalChain([item, 'optionalAccess', _ => _.items]) === "undefined" ? item : item.items).flat().filter((item) => {
|
|
15
20
|
return Object.hasOwn(item, "disabled") && item.disabled === true;
|
|
16
21
|
}).map((item) => item.key);
|
|
17
22
|
};
|
|
18
|
-
var renderMenuItem = (item) => /* @__PURE__ */
|
|
23
|
+
var renderMenuItem = (item) => /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
19
24
|
_dropdown.DropdownItem,
|
|
20
25
|
{
|
|
21
26
|
className: item.className,
|
|
@@ -35,15 +40,15 @@ var Menu = ({
|
|
|
35
40
|
isDisabled = false,
|
|
36
41
|
items
|
|
37
42
|
}) => {
|
|
38
|
-
return /* @__PURE__ */
|
|
39
|
-
/* @__PURE__ */
|
|
43
|
+
return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(_dropdown.Dropdown, { isDisabled, children: [
|
|
44
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)(_dropdown.DropdownTrigger, { className: _classnames2.default.call(void 0, className), "data-testid": testId, children: children ? (
|
|
40
45
|
// eslint-disable-next-line react/button-has-type
|
|
41
|
-
/* @__PURE__ */
|
|
46
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)("button", { children })
|
|
42
47
|
) : (
|
|
43
48
|
// INFO: we use next button here so that ref passing works
|
|
44
|
-
/* @__PURE__ */
|
|
49
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)(_button.Button, { size: "sm", variant: "flat", className: "min-w-0", children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(_fa6.FaEllipsisVertical, {}) })
|
|
45
50
|
) }),
|
|
46
|
-
/* @__PURE__ */
|
|
51
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
47
52
|
_dropdown.DropdownMenu,
|
|
48
53
|
{
|
|
49
54
|
items,
|
|
@@ -51,7 +56,7 @@ var Menu = ({
|
|
|
51
56
|
onAction,
|
|
52
57
|
children: (item) => {
|
|
53
58
|
if ("items" in item) {
|
|
54
|
-
return /* @__PURE__ */
|
|
59
|
+
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
55
60
|
_dropdown.DropdownSection,
|
|
56
61
|
{
|
|
57
62
|
items: item.items,
|
|
@@ -78,4 +83,4 @@ var Menu_default2 = Menu_default;
|
|
|
78
83
|
|
|
79
84
|
|
|
80
85
|
exports.Menu_default = Menu_default; exports.Menu_default2 = Menu_default2;
|
|
81
|
-
//# sourceMappingURL=chunk-
|
|
86
|
+
//# sourceMappingURL=chunk-R2JOVQS5.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/Menu/Menu.tsx","../src/Menu/index.ts"],"names":["Menu_default"],"mappings":";;;;;;AA+EE;AA5EF,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;AAoDf,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,6CAAC,gBAAa,YACZ;AAAA,gDAAC,uBAAoB,WAAW,GAAG,SAAS,GAAG,eAAa,QACzD;AAAA;AAAA,MAEC,4CAAC,YAAQ,UAAS;AAAA;AAAA;AAAA,MAGlB,4CAAC,UAAO,MAAK,MAAK,SAAQ,QAAO,WAAU,WACzC,sDAAC,sBAAmB,GACtB;AAAA,OAEJ;AAAA,IACA;AAAA,MAAC;AAAA;AAAA,QAEC;AAAA,QACA,cAAc,gBAAgB,KAAK;AAAA,QACnC;AAAA,QAEC,WAAC,SAAS;AACT,cAAI,WAAW,MAAM;AACnB,mBACE;AAAA,cAAC;AAAA;AAAA,gBACC,OAAO,KAAK;AAAA,gBACZ,OAAO,KAAK;AAAA,gBAIX,WAAC,gBAAgB;AAChB,yBAAO,eAAe,WAAW;AAAA,gBACnC;AAAA;AAAA,cALK,KAAK;AAAA,YAMZ;AAAA,UAEJ;AACA,iBAAO,eAAe,IAAI;AAAA,QAC5B;AAAA;AAAA,IACF;AAAA,KACF;AAEJ;AAEA,IAAO,eAAQ;;;ACzIf,IAAOA,gBAAQ","sourcesContent":["import type { DropdownSectionProps } from '@nextui-org/dropdown';\nimport type { Key, MouseEventHandler, ReactNode } from 'react';\n\nimport { FaEllipsisVertical } from 'react-icons/fa6';\n\nimport { Button } from '@nextui-org/button';\nimport {\n Dropdown as NextDropdown,\n DropdownItem as NextDropdownItem,\n DropdownMenu as NextDropdownMenu,\n DropdownSection as NextDropdownSection,\n DropdownTrigger as NextDropdownTrigger,\n} from '@nextui-org/dropdown';\nimport cn from 'classnames';\n\n/**\n * Menu item type\n */\nexport interface MenuItem {\n /** unique identifier */\n key: string;\n /** CSS class name */\n className?: string;\n /** additional description shown under the label */\n description?: string;\n /** disables the menu item */\n disabled?: boolean;\n /** menu item icon */\n icon?: ReactNode;\n /** menu item name */\n label: ReactNode;\n /** click event handler */\n onClick?: MouseEventHandler<HTMLLIElement>;\n /** e2e test identifier */\n testId?: string;\n}\n\n/**\n * Menu section type\n */\nexport interface MenuSection {\n /** unique identifier */\n key: string;\n /** section label */\n label: ReactNode;\n /** section items (array of MenuItem) */\n items: MenuItem[];\n}\n\nexport interface MenuProps {\n /** child components */\n children?: ReactNode;\n /** CSS class name */\n className?: string | string[];\n /** HTML data-testid attribute used in e2e tests */\n testId?: string;\n /** menu item structure */\n items: (MenuSection | MenuItem)[];\n /** disable menu trigger */\n isDisabled?: boolean;\n /** called if item is selected */\n onAction?: (key: Key) => void;\n}\n\n/** returns String[] of disabled items/keys */\nconst getDisabledKeys = (items: (MenuSection | MenuItem)[]) => {\n return (\n items\n // @ts-expect-error typing issue with MenuSection | MenuItem\n .map((item) => (typeof item?.items === 'undefined' ? item : item.items))\n .flat<MenuItem[]>()\n .filter((item) => {\n return Object.hasOwn(item, 'disabled') && item.disabled === true;\n })\n .map((item) => item.key)\n );\n};\n\nconst renderMenuItem = (item: MenuItem) => (\n <NextDropdownItem\n className={item.className}\n data-testid={item.testId || item.key}\n description={item.description}\n key={item.key}\n onClick={item.onClick}\n startContent={item.icon}\n >\n {item.label}\n </NextDropdownItem>\n);\n\n/**\n * Dropdown menu component based on [NextUI Dropdown](https://nextui.org/docs/components/dropdown)\n */\nconst Menu = ({\n children = null,\n className = undefined,\n onAction = undefined,\n testId = undefined,\n isDisabled = false,\n items,\n}: MenuProps) => {\n return (\n <NextDropdown isDisabled={isDisabled}>\n <NextDropdownTrigger className={cn(className)} data-testid={testId}>\n {children ? (\n // eslint-disable-next-line react/button-has-type\n <button>{children}</button>\n ) : (\n // INFO: we use next button here so that ref passing works\n <Button size=\"sm\" variant=\"flat\" className=\"min-w-0\">\n <FaEllipsisVertical />\n </Button>\n )}\n </NextDropdownTrigger>\n <NextDropdownMenu\n // aria-label=\"Dynamic Actions\"\n items={items}\n disabledKeys={getDisabledKeys(items)}\n onAction={onAction}\n >\n {(item) => {\n if ('items' in item) {\n return (\n <NextDropdownSection\n items={item.items as MenuSection['items']}\n title={item.label as DropdownSectionProps['title']}\n key={item.key}\n >\n {/* @ts-expect-error ts problem here with render fn */}\n {(sectionItem) => {\n return renderMenuItem(sectionItem);\n }}\n </NextDropdownSection>\n );\n }\n return renderMenuItem(item);\n }}\n </NextDropdownMenu>\n </NextDropdown>\n );\n};\n\nexport default Menu;\n","import Menu from './Menu';\n\nexport type { MenuProps, MenuItem, MenuSection } from './Menu';\n\nexport { Menu };\n\nexport default Menu;\n"]}
|
|
@@ -1,7 +1,12 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
1
|
+
"use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
var _chunkPTN54X4Zcjs = require('./chunk-PTN54X4Z.cjs');
|
|
5
|
+
|
|
6
|
+
// src/Tooltip/Tooltip.tsx
|
|
7
|
+
var import_jsx_runtime = _chunkPTN54X4Zcjs.__toESM.call(void 0, _chunkPTN54X4Zcjs.require_jsx_runtime.call(void 0, ), 1);
|
|
2
8
|
var _tooltip = require('@nextui-org/tooltip');
|
|
3
9
|
var _classnames = require('classnames'); var _classnames2 = _interopRequireDefault(_classnames);
|
|
4
|
-
var _jsxruntime = require('react/jsx-runtime');
|
|
5
10
|
var tooltipPlacementOptions = [
|
|
6
11
|
"top",
|
|
7
12
|
"bottom",
|
|
@@ -16,7 +21,7 @@ var Tooltip = ({
|
|
|
16
21
|
defaultOpen = false,
|
|
17
22
|
onOpenChange = void 0,
|
|
18
23
|
containerPadding = 0
|
|
19
|
-
}) => /* @__PURE__ */
|
|
24
|
+
}) => /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
20
25
|
_tooltip.Tooltip,
|
|
21
26
|
{
|
|
22
27
|
className: _classnames2.default.call(void 0, className),
|
|
@@ -28,7 +33,7 @@ var Tooltip = ({
|
|
|
28
33
|
placement,
|
|
29
34
|
shouldFlip: true,
|
|
30
35
|
showArrow: true,
|
|
31
|
-
children: /* @__PURE__ */
|
|
36
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { className: "cursor-pointer", children })
|
|
32
37
|
}
|
|
33
38
|
);
|
|
34
39
|
var Tooltip_default = Tooltip;
|
|
@@ -41,4 +46,4 @@ var Tooltip_default2 = Tooltip_default;
|
|
|
41
46
|
|
|
42
47
|
|
|
43
48
|
exports.tooltipPlacementOptions = tooltipPlacementOptions; exports.Tooltip_default = Tooltip_default; exports.Tooltip_default2 = Tooltip_default2;
|
|
44
|
-
//# sourceMappingURL=chunk-
|
|
49
|
+
//# sourceMappingURL=chunk-SSPYXO6E.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/Tooltip/Tooltip.tsx","../src/Tooltip/index.ts"],"names":["Tooltip_default"],"mappings":";;;;;;AAqDI;AAnDJ,SAAS,WAAW,mBAAmB;AACvC,OAAO,QAAQ;AAER,IAAM,0BAA0B;AAAA,EACrC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF;AAuBA,IAAM,UAAU,CAAC;AAAA,EACf;AAAA,EACA,YAAY;AAAA,EACZ;AAAA,EACA,YAAY;AAAA,EACZ,cAAc;AAAA,EACd,eAAe;AAAA,EACf,mBAAmB;AACrB,MACE;AAAA,EAAC;AAAA;AAAA,IACC,WAAW,GAAG,SAAS;AAAA,IACvB;AAAA,IACA;AAAA,IACA;AAAA,IACA,SAAS,CAAC,MAAM,EAAE,eAAe;AAAA,IACjC;AAAA,IACA;AAAA,IACA,YAAU;AAAA,IACV,WAAS;AAAA,IAET,sDAAC,UAAK,WAAU,kBAAkB,UAAS;AAAA;AAC7C;AAGF,IAAO,kBAAQ;;;ACnDf,IAAOA,mBAAQ","sourcesContent":["import type { ReactNode } from 'react';\n\nimport { Tooltip as NextTooltip } from '@nextui-org/tooltip';\nimport cn from 'classnames';\n\nexport const tooltipPlacementOptions = [\n 'top',\n 'bottom',\n 'left',\n 'right',\n] as const;\nexport type TooltipPlacement = (typeof tooltipPlacementOptions)[number];\n\nexport interface TooltipProps {\n /** trigger child components */\n children: ReactNode;\n /** CSS class name */\n className?: string;\n /** placement padding in px */\n containerPadding?: number;\n /** content displayed in the tooltip */\n content: ReactNode;\n /** open overlay initially when uncontrolled */\n defaultOpen?: boolean;\n /** handler that is called when the overlay's open state changes */\n onOpenChange?: (isOpen: boolean) => void;\n /** placement if the tooltip */\n placement?: TooltipPlacement;\n}\n\n/**\n * Tooltip component based on [NextUI Tooltip](https://nextui.org/docs/components/tooltip)\n */\nconst Tooltip = ({\n children,\n className = undefined,\n content,\n placement = 'top',\n defaultOpen = false,\n onOpenChange = undefined,\n containerPadding = 0,\n}: TooltipProps) => (\n <NextTooltip\n className={cn(className)}\n containerPadding={containerPadding}\n content={content}\n defaultOpen={defaultOpen}\n onClick={(e) => e.preventDefault()}\n onOpenChange={onOpenChange}\n placement={placement}\n shouldFlip\n showArrow\n >\n <span className=\"cursor-pointer\">{children}</span>\n </NextTooltip>\n);\n\nexport default Tooltip;\n","import Tooltip, { tooltipPlacementOptions } from './Tooltip';\n\nexport type { TooltipProps } from './Tooltip';\n\nexport { Tooltip, tooltipPlacementOptions };\n\nexport default Tooltip;\n"]}
|
|
@@ -1,4 +1,10 @@
|
|
|
1
|
+
import {
|
|
2
|
+
__toESM,
|
|
3
|
+
require_jsx_runtime
|
|
4
|
+
} from "./chunk-EOBBMFEW.js";
|
|
5
|
+
|
|
1
6
|
// src/Menu/Menu.tsx
|
|
7
|
+
var import_jsx_runtime = __toESM(require_jsx_runtime(), 1);
|
|
2
8
|
import { FaEllipsisVertical } from "react-icons/fa6";
|
|
3
9
|
import { Button } from "@nextui-org/button";
|
|
4
10
|
import {
|
|
@@ -9,13 +15,12 @@ import {
|
|
|
9
15
|
DropdownTrigger as NextDropdownTrigger
|
|
10
16
|
} from "@nextui-org/dropdown";
|
|
11
17
|
import cn from "classnames";
|
|
12
|
-
import { jsx, jsxs } from "react/jsx-runtime";
|
|
13
18
|
var getDisabledKeys = (items) => {
|
|
14
19
|
return items.map((item) => typeof item?.items === "undefined" ? item : item.items).flat().filter((item) => {
|
|
15
20
|
return Object.hasOwn(item, "disabled") && item.disabled === true;
|
|
16
21
|
}).map((item) => item.key);
|
|
17
22
|
};
|
|
18
|
-
var renderMenuItem = (item) => /* @__PURE__ */ jsx(
|
|
23
|
+
var renderMenuItem = (item) => /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
19
24
|
NextDropdownItem,
|
|
20
25
|
{
|
|
21
26
|
className: item.className,
|
|
@@ -35,15 +40,15 @@ var Menu = ({
|
|
|
35
40
|
isDisabled = false,
|
|
36
41
|
items
|
|
37
42
|
}) => {
|
|
38
|
-
return /* @__PURE__ */ jsxs(NextDropdown, { isDisabled, children: [
|
|
39
|
-
/* @__PURE__ */ jsx(NextDropdownTrigger, { className: cn(className), "data-testid": testId, children: children ? (
|
|
43
|
+
return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(NextDropdown, { isDisabled, children: [
|
|
44
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)(NextDropdownTrigger, { className: cn(className), "data-testid": testId, children: children ? (
|
|
40
45
|
// eslint-disable-next-line react/button-has-type
|
|
41
|
-
/* @__PURE__ */ jsx("button", { children })
|
|
46
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)("button", { children })
|
|
42
47
|
) : (
|
|
43
48
|
// INFO: we use next button here so that ref passing works
|
|
44
|
-
/* @__PURE__ */ jsx(Button, { size: "sm", variant: "flat", className: "min-w-0", children: /* @__PURE__ */ jsx(FaEllipsisVertical, {}) })
|
|
49
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Button, { size: "sm", variant: "flat", className: "min-w-0", children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(FaEllipsisVertical, {}) })
|
|
45
50
|
) }),
|
|
46
|
-
/* @__PURE__ */ jsx(
|
|
51
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
47
52
|
NextDropdownMenu,
|
|
48
53
|
{
|
|
49
54
|
items,
|
|
@@ -51,7 +56,7 @@ var Menu = ({
|
|
|
51
56
|
onAction,
|
|
52
57
|
children: (item) => {
|
|
53
58
|
if ("items" in item) {
|
|
54
|
-
return /* @__PURE__ */ jsx(
|
|
59
|
+
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
55
60
|
NextDropdownSection,
|
|
56
61
|
{
|
|
57
62
|
items: item.items,
|
|
@@ -78,4 +83,4 @@ export {
|
|
|
78
83
|
Menu_default,
|
|
79
84
|
Menu_default2
|
|
80
85
|
};
|
|
81
|
-
//# sourceMappingURL=chunk-
|
|
86
|
+
//# sourceMappingURL=chunk-XGAFPFRL.js.map
|
|
@@ -1 +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":";
|
|
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":";;;;;;AA+EE;AA5EF,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;AAoDf,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,6CAAC,gBAAa,YACZ;AAAA,gDAAC,uBAAoB,WAAW,GAAG,SAAS,GAAG,eAAa,QACzD;AAAA;AAAA,MAEC,4CAAC,YAAQ,UAAS;AAAA;AAAA;AAAA,MAGlB,4CAAC,UAAO,MAAK,MAAK,SAAQ,QAAO,WAAU,WACzC,sDAAC,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"]}
|
package/dist/index.cjs
CHANGED
|
@@ -1,37 +1,41 @@
|
|
|
1
1
|
"use strict";Object.defineProperty(exports, "__esModule", {value: true});
|
|
2
2
|
|
|
3
3
|
|
|
4
|
-
var
|
|
4
|
+
var _chunkDFKOD7QXcjs = require('./chunk-DFKOD7QX.cjs');
|
|
5
5
|
|
|
6
6
|
|
|
7
|
-
var
|
|
7
|
+
var _chunkNB2Y66Z3cjs = require('./chunk-NB2Y66Z3.cjs');
|
|
8
8
|
|
|
9
9
|
|
|
10
10
|
|
|
11
|
-
var
|
|
11
|
+
var _chunkJSV7ZIIAcjs = require('./chunk-JSV7ZIIA.cjs');
|
|
12
12
|
|
|
13
13
|
|
|
14
|
-
var
|
|
14
|
+
var _chunk5QFG2VXPcjs = require('./chunk-5QFG2VXP.cjs');
|
|
15
15
|
|
|
16
16
|
|
|
17
|
-
var
|
|
17
|
+
var _chunkR2JOVQS5cjs = require('./chunk-R2JOVQS5.cjs');
|
|
18
18
|
|
|
19
19
|
|
|
20
20
|
|
|
21
|
-
var
|
|
21
|
+
var _chunkKVCXEJJDcjs = require('./chunk-KVCXEJJD.cjs');
|
|
22
22
|
|
|
23
23
|
|
|
24
|
-
var
|
|
24
|
+
var _chunkCJ7YDKHNcjs = require('./chunk-CJ7YDKHN.cjs');
|
|
25
25
|
|
|
26
26
|
|
|
27
27
|
|
|
28
|
-
var
|
|
28
|
+
var _chunkSSPYXO6Ecjs = require('./chunk-SSPYXO6E.cjs');
|
|
29
|
+
|
|
30
|
+
|
|
31
|
+
|
|
32
|
+
var _chunkPTN54X4Zcjs = require('./chunk-PTN54X4Z.cjs');
|
|
29
33
|
|
|
30
34
|
// src/hooks/useDebounce.ts
|
|
31
|
-
var
|
|
35
|
+
var import_react = _chunkPTN54X4Zcjs.__toESM.call(void 0, _chunkPTN54X4Zcjs.require_react.call(void 0, ), 1);
|
|
32
36
|
var useDebounce_default = (value, delay) => {
|
|
33
|
-
const [debouncedValue, setDebouncedValue] =
|
|
34
|
-
|
|
37
|
+
const [debouncedValue, setDebouncedValue] = (0, import_react.useState)(value);
|
|
38
|
+
(0, import_react.useEffect)(
|
|
35
39
|
() => {
|
|
36
40
|
const handler = setTimeout(() => {
|
|
37
41
|
setDebouncedValue(value);
|
|
@@ -47,7 +51,7 @@ var useDebounce_default = (value, delay) => {
|
|
|
47
51
|
};
|
|
48
52
|
|
|
49
53
|
// src/hooks/useLocalStorage.ts
|
|
50
|
-
|
|
54
|
+
var import_react2 = _chunkPTN54X4Zcjs.__toESM.call(void 0, _chunkPTN54X4Zcjs.require_react.call(void 0, ), 1);
|
|
51
55
|
var useLocalStorage = (key, initialValue) => {
|
|
52
56
|
const readValue = () => {
|
|
53
57
|
if (typeof window === "undefined") {
|
|
@@ -61,7 +65,7 @@ var useLocalStorage = (key, initialValue) => {
|
|
|
61
65
|
return initialValue;
|
|
62
66
|
}
|
|
63
67
|
};
|
|
64
|
-
const [storedValue, setStoredValue] =
|
|
68
|
+
const [storedValue, setStoredValue] = (0, import_react2.useState)(readValue);
|
|
65
69
|
const setValue = (value) => {
|
|
66
70
|
if (typeof window === "undefined") {
|
|
67
71
|
console.warn(
|
|
@@ -77,10 +81,10 @@ var useLocalStorage = (key, initialValue) => {
|
|
|
77
81
|
console.warn(`Error setting localStorage key \u201C${key}\u201D:`, error);
|
|
78
82
|
}
|
|
79
83
|
};
|
|
80
|
-
|
|
84
|
+
(0, import_react2.useEffect)(() => {
|
|
81
85
|
setStoredValue(readValue());
|
|
82
86
|
}, []);
|
|
83
|
-
|
|
87
|
+
(0, import_react2.useEffect)(() => {
|
|
84
88
|
const handleStorageChange = () => {
|
|
85
89
|
setStoredValue(readValue());
|
|
86
90
|
};
|
|
@@ -109,5 +113,5 @@ var useLocalStorage_default = useLocalStorage;
|
|
|
109
113
|
|
|
110
114
|
|
|
111
115
|
|
|
112
|
-
exports.Button =
|
|
116
|
+
exports.Button = _chunkJSV7ZIIAcjs.Button_default; exports.Card = _chunkDFKOD7QXcjs.Card_default; exports.Json = _chunkNB2Y66Z3cjs.Json_default; exports.Label = _chunk5QFG2VXPcjs.Label_default; exports.Menu = _chunkR2JOVQS5cjs.Menu_default; exports.Modal = _chunkKVCXEJJDcjs.Modal_default; exports.Popover = _chunkCJ7YDKHNcjs.Popover_default; exports.Tooltip = _chunkSSPYXO6Ecjs.Tooltip_default; exports.buttonVariants = _chunkJSV7ZIIAcjs.buttonVariants; exports.cardVariants = _chunkDFKOD7QXcjs.cardVariants; exports.modalVariants = _chunkKVCXEJJDcjs.modalVariants; exports.tooltipPlacementOptions = _chunkSSPYXO6Ecjs.tooltipPlacementOptions; exports.useDebounce = useDebounce_default; exports.useLocalStorage = useLocalStorage_default;
|
|
113
117
|
//# sourceMappingURL=index.cjs.map
|
package/dist/index.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/hooks/useDebounce.ts","../src/hooks/useLocalStorage.ts"],"names":["
|
|
1
|
+
{"version":3,"sources":["../src/hooks/useDebounce.ts","../src/hooks/useLocalStorage.ts"],"names":["import_react"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,mBAAoC;AAEpC,IAAO,sBAAQ,CAAQ,OAAc,UAAkB;AAErD,QAAM,CAAC,gBAAgB,iBAAiB,QAAI,uBAAS,KAAK;AAC1D;AAAA,IACE,MAAM;AAEJ,YAAM,UAAU,WAAW,MAAM;AAC/B,0BAAkB,KAAK;AAAA,MACzB,GAAG,KAAK;AAIR,aAAO,MAAM;AACX,qBAAa,OAAO;AAAA,MACtB;AAAA,IACF;AAAA,IACA,CAAC,OAAO,KAAK;AAAA;AAAA,EACf;AACA,SAAO;AACT;;;ACnBA,IAAAA,gBAAoC;AAEpC,IAAM,kBAAkB,CACtB,KACA,iBACqC;AAGrC,QAAM,YAAY,MAAM;AAEtB,QAAI,OAAO,WAAW,aAAa;AACjC,aAAO;AAAA,IACT;AAEA,QAAI;AACF,YAAM,OAAO,OAAO,aAAa,QAAQ,GAAG;AAC5C,aAAO,OAAO,KAAK,MAAM,IAAI,IAAI;AAAA,IACnC,SAAS,OAAO;AACd,cAAQ,KAAK,wCAAmC,GAAG,WAAM,KAAK;AAC9D,aAAO;AAAA,IACT;AAAA,EACF;AAIA,QAAM,CAAC,aAAa,cAAc,QAAI,wBAAY,SAAS;AAI3D,QAAM,WAAwC,CAAC,UAAU;AAEvD,QAAI,OAAO,WAAW,aAAa;AACjC,cAAQ;AAAA,QACN,wCAAmC,GAAG;AAAA,MACxC;AAAA,IACF;AAEA,QAAI;AAEF,YAAM,WAAW,iBAAiB,WAAW,MAAM,WAAW,IAAI;AAGlE,aAAO,aAAa,QAAQ,KAAK,KAAK,UAAU,QAAQ,CAAC;AAGzD,qBAAe,QAAQ;AAGvB,aAAO,cAAc,IAAI,MAAM,eAAe,CAAC;AAAA,IACjD,SAAS,OAAO;AACd,cAAQ,KAAK,wCAAmC,GAAG,WAAM,KAAK;AAAA,IAChE;AAAA,EACF;AAEA,+BAAU,MAAM;AACd,mBAAe,UAAU,CAAC;AAAA,EAE5B,GAAG,CAAC,CAAC;AAEL,+BAAU,MAAM;AACd,UAAM,sBAAsB,MAAM;AAChC,qBAAe,UAAU,CAAC;AAAA,IAC5B;AAGA,WAAO,iBAAiB,WAAW,mBAAmB;AAGtD,WAAO,iBAAiB,iBAAiB,mBAAmB;AAE5D,WAAO,MAAM;AACX,aAAO,oBAAoB,WAAW,mBAAmB;AACzD,aAAO,oBAAoB,iBAAiB,mBAAmB;AAAA,IACjE;AAAA,EAEF,GAAG,CAAC,CAAC;AAEL,SAAO,CAAC,aAAa,QAAQ;AAC/B;AAEA,IAAO,0BAAQ","sourcesContent":["import { useEffect, useState } from 'react';\n\nexport default <Value>(value: Value, delay: number) => {\n // State and setters for debounced value\n const [debouncedValue, setDebouncedValue] = useState(value);\n useEffect(\n () => {\n // Update debounced value after delay\n const handler = setTimeout(() => {\n setDebouncedValue(value);\n }, delay);\n // Cancel the timeout if value changes (also on delay change or unmount)\n // This is how we prevent debounced value from updating if value is changed ...\n // .. within the delay period. Timeout gets cleared and restarted.\n return () => {\n clearTimeout(handler);\n };\n },\n [value, delay], // Only re-call effect if value or delay changes\n );\n return debouncedValue;\n};\n","import type { Dispatch, SetStateAction } from 'react';\n\nimport { useEffect, useState } from 'react';\n\nconst useLocalStorage = <T>(\n key: string,\n initialValue: T | (() => T),\n): [T, Dispatch<SetStateAction<T>>] => {\n // Get from local storage then\n // parse stored json or return initialValue\n const readValue = () => {\n // Prevent build error \"window is undefined\" but keep keep working\n if (typeof window === 'undefined') {\n return initialValue;\n }\n\n try {\n const item = window.localStorage.getItem(key);\n return item ? JSON.parse(item) : initialValue;\n } catch (error) {\n console.warn(`Error reading localStorage key “${key}”:`, error);\n return initialValue;\n }\n };\n\n // State to store our value\n // Pass initial state function to useState so logic is only executed once\n const [storedValue, setStoredValue] = useState<T>(readValue);\n\n // Return a wrapped version of useState's setter function that ...\n // ... persists the new value to localStorage.\n const setValue: Dispatch<SetStateAction<T>> = (value) => {\n // Prevent build error \"window is undefined\" but keeps working\n if (typeof window === 'undefined') {\n console.warn(\n `Tried setting localStorage key “${key}” even though environment is not a client`,\n );\n }\n\n try {\n // Allow value to be a function so we have the same API as useState\n const newValue = value instanceof Function ? value(storedValue) : value;\n\n // Save to local storage\n window.localStorage.setItem(key, JSON.stringify(newValue));\n\n // Save state\n setStoredValue(newValue);\n\n // We dispatch a custom event so every useLocalStorage hook are notified\n window.dispatchEvent(new Event('local-storage'));\n } catch (error) {\n console.warn(`Error setting localStorage key “${key}”:`, error);\n }\n };\n\n useEffect(() => {\n setStoredValue(readValue());\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n useEffect(() => {\n const handleStorageChange = () => {\n setStoredValue(readValue());\n };\n\n // this only works for other documents, not the current one\n window.addEventListener('storage', handleStorageChange);\n\n // this is a custom event, triggered in writeValueToLocalStorage\n window.addEventListener('local-storage', handleStorageChange);\n\n return () => {\n window.removeEventListener('storage', handleStorageChange);\n window.removeEventListener('local-storage', handleStorageChange);\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n return [storedValue, setValue];\n};\n\nexport default useLocalStorage;\n"]}
|
package/dist/index.js
CHANGED
|
@@ -1,37 +1,41 @@
|
|
|
1
1
|
import {
|
|
2
2
|
Card_default,
|
|
3
3
|
cardVariants
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-2C2AZ4GY.js";
|
|
5
5
|
import {
|
|
6
6
|
Json_default
|
|
7
|
-
} from "./chunk-
|
|
7
|
+
} from "./chunk-22MRKUHN.js";
|
|
8
8
|
import {
|
|
9
9
|
Button_default,
|
|
10
10
|
buttonVariants
|
|
11
|
-
} from "./chunk-
|
|
11
|
+
} from "./chunk-ILTQEFAN.js";
|
|
12
12
|
import {
|
|
13
13
|
Label_default
|
|
14
|
-
} from "./chunk-
|
|
14
|
+
} from "./chunk-L6CCOLHU.js";
|
|
15
15
|
import {
|
|
16
16
|
Menu_default
|
|
17
|
-
} from "./chunk-
|
|
17
|
+
} from "./chunk-XGAFPFRL.js";
|
|
18
18
|
import {
|
|
19
19
|
Modal_default,
|
|
20
20
|
modalVariants
|
|
21
|
-
} from "./chunk-
|
|
21
|
+
} from "./chunk-DAIBNNTS.js";
|
|
22
22
|
import {
|
|
23
23
|
Popover_default
|
|
24
|
-
} from "./chunk-
|
|
24
|
+
} from "./chunk-PD246EV7.js";
|
|
25
25
|
import {
|
|
26
26
|
Tooltip_default,
|
|
27
27
|
tooltipPlacementOptions
|
|
28
|
-
} from "./chunk-
|
|
28
|
+
} from "./chunk-QC2FAH2W.js";
|
|
29
|
+
import {
|
|
30
|
+
__toESM,
|
|
31
|
+
require_react
|
|
32
|
+
} from "./chunk-EOBBMFEW.js";
|
|
29
33
|
|
|
30
34
|
// src/hooks/useDebounce.ts
|
|
31
|
-
|
|
35
|
+
var import_react = __toESM(require_react(), 1);
|
|
32
36
|
var useDebounce_default = (value, delay) => {
|
|
33
|
-
const [debouncedValue, setDebouncedValue] = useState(value);
|
|
34
|
-
useEffect(
|
|
37
|
+
const [debouncedValue, setDebouncedValue] = (0, import_react.useState)(value);
|
|
38
|
+
(0, import_react.useEffect)(
|
|
35
39
|
() => {
|
|
36
40
|
const handler = setTimeout(() => {
|
|
37
41
|
setDebouncedValue(value);
|
|
@@ -47,7 +51,7 @@ var useDebounce_default = (value, delay) => {
|
|
|
47
51
|
};
|
|
48
52
|
|
|
49
53
|
// src/hooks/useLocalStorage.ts
|
|
50
|
-
|
|
54
|
+
var import_react2 = __toESM(require_react(), 1);
|
|
51
55
|
var useLocalStorage = (key, initialValue) => {
|
|
52
56
|
const readValue = () => {
|
|
53
57
|
if (typeof window === "undefined") {
|
|
@@ -61,7 +65,7 @@ var useLocalStorage = (key, initialValue) => {
|
|
|
61
65
|
return initialValue;
|
|
62
66
|
}
|
|
63
67
|
};
|
|
64
|
-
const [storedValue, setStoredValue] =
|
|
68
|
+
const [storedValue, setStoredValue] = (0, import_react2.useState)(readValue);
|
|
65
69
|
const setValue = (value) => {
|
|
66
70
|
if (typeof window === "undefined") {
|
|
67
71
|
console.warn(
|
|
@@ -77,10 +81,10 @@ var useLocalStorage = (key, initialValue) => {
|
|
|
77
81
|
console.warn(`Error setting localStorage key \u201C${key}\u201D:`, error);
|
|
78
82
|
}
|
|
79
83
|
};
|
|
80
|
-
|
|
84
|
+
(0, import_react2.useEffect)(() => {
|
|
81
85
|
setStoredValue(readValue());
|
|
82
86
|
}, []);
|
|
83
|
-
|
|
87
|
+
(0, import_react2.useEffect)(() => {
|
|
84
88
|
const handleStorageChange = () => {
|
|
85
89
|
setStoredValue(readValue());
|
|
86
90
|
};
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/hooks/useDebounce.ts","../src/hooks/useLocalStorage.ts"],"sourcesContent":["import { useEffect, useState } from 'react';\n\nexport default <Value>(value: Value, delay: number) => {\n // State and setters for debounced value\n const [debouncedValue, setDebouncedValue] = useState(value);\n useEffect(\n () => {\n // Update debounced value after delay\n const handler = setTimeout(() => {\n setDebouncedValue(value);\n }, delay);\n // Cancel the timeout if value changes (also on delay change or unmount)\n // This is how we prevent debounced value from updating if value is changed ...\n // .. within the delay period. Timeout gets cleared and restarted.\n return () => {\n clearTimeout(handler);\n };\n },\n [value, delay], // Only re-call effect if value or delay changes\n );\n return debouncedValue;\n};\n","import type { Dispatch, SetStateAction } from 'react';\n\nimport { useEffect, useState } from 'react';\n\nconst useLocalStorage = <T>(\n key: string,\n initialValue: T | (() => T),\n): [T, Dispatch<SetStateAction<T>>] => {\n // Get from local storage then\n // parse stored json or return initialValue\n const readValue = () => {\n // Prevent build error \"window is undefined\" but keep keep working\n if (typeof window === 'undefined') {\n return initialValue;\n }\n\n try {\n const item = window.localStorage.getItem(key);\n return item ? JSON.parse(item) : initialValue;\n } catch (error) {\n console.warn(`Error reading localStorage key “${key}”:`, error);\n return initialValue;\n }\n };\n\n // State to store our value\n // Pass initial state function to useState so logic is only executed once\n const [storedValue, setStoredValue] = useState<T>(readValue);\n\n // Return a wrapped version of useState's setter function that ...\n // ... persists the new value to localStorage.\n const setValue: Dispatch<SetStateAction<T>> = (value) => {\n // Prevent build error \"window is undefined\" but keeps working\n if (typeof window === 'undefined') {\n console.warn(\n `Tried setting localStorage key “${key}” even though environment is not a client`,\n );\n }\n\n try {\n // Allow value to be a function so we have the same API as useState\n const newValue = value instanceof Function ? value(storedValue) : value;\n\n // Save to local storage\n window.localStorage.setItem(key, JSON.stringify(newValue));\n\n // Save state\n setStoredValue(newValue);\n\n // We dispatch a custom event so every useLocalStorage hook are notified\n window.dispatchEvent(new Event('local-storage'));\n } catch (error) {\n console.warn(`Error setting localStorage key “${key}”:`, error);\n }\n };\n\n useEffect(() => {\n setStoredValue(readValue());\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n useEffect(() => {\n const handleStorageChange = () => {\n setStoredValue(readValue());\n };\n\n // this only works for other documents, not the current one\n window.addEventListener('storage', handleStorageChange);\n\n // this is a custom event, triggered in writeValueToLocalStorage\n window.addEventListener('local-storage', handleStorageChange);\n\n return () => {\n window.removeEventListener('storage', handleStorageChange);\n window.removeEventListener('local-storage', handleStorageChange);\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n return [storedValue, setValue];\n};\n\nexport default useLocalStorage;\n"],"mappings":"
|
|
1
|
+
{"version":3,"sources":["../src/hooks/useDebounce.ts","../src/hooks/useLocalStorage.ts"],"sourcesContent":["import { useEffect, useState } from 'react';\n\nexport default <Value>(value: Value, delay: number) => {\n // State and setters for debounced value\n const [debouncedValue, setDebouncedValue] = useState(value);\n useEffect(\n () => {\n // Update debounced value after delay\n const handler = setTimeout(() => {\n setDebouncedValue(value);\n }, delay);\n // Cancel the timeout if value changes (also on delay change or unmount)\n // This is how we prevent debounced value from updating if value is changed ...\n // .. within the delay period. Timeout gets cleared and restarted.\n return () => {\n clearTimeout(handler);\n };\n },\n [value, delay], // Only re-call effect if value or delay changes\n );\n return debouncedValue;\n};\n","import type { Dispatch, SetStateAction } from 'react';\n\nimport { useEffect, useState } from 'react';\n\nconst useLocalStorage = <T>(\n key: string,\n initialValue: T | (() => T),\n): [T, Dispatch<SetStateAction<T>>] => {\n // Get from local storage then\n // parse stored json or return initialValue\n const readValue = () => {\n // Prevent build error \"window is undefined\" but keep keep working\n if (typeof window === 'undefined') {\n return initialValue;\n }\n\n try {\n const item = window.localStorage.getItem(key);\n return item ? JSON.parse(item) : initialValue;\n } catch (error) {\n console.warn(`Error reading localStorage key “${key}”:`, error);\n return initialValue;\n }\n };\n\n // State to store our value\n // Pass initial state function to useState so logic is only executed once\n const [storedValue, setStoredValue] = useState<T>(readValue);\n\n // Return a wrapped version of useState's setter function that ...\n // ... persists the new value to localStorage.\n const setValue: Dispatch<SetStateAction<T>> = (value) => {\n // Prevent build error \"window is undefined\" but keeps working\n if (typeof window === 'undefined') {\n console.warn(\n `Tried setting localStorage key “${key}” even though environment is not a client`,\n );\n }\n\n try {\n // Allow value to be a function so we have the same API as useState\n const newValue = value instanceof Function ? value(storedValue) : value;\n\n // Save to local storage\n window.localStorage.setItem(key, JSON.stringify(newValue));\n\n // Save state\n setStoredValue(newValue);\n\n // We dispatch a custom event so every useLocalStorage hook are notified\n window.dispatchEvent(new Event('local-storage'));\n } catch (error) {\n console.warn(`Error setting localStorage key “${key}”:`, error);\n }\n };\n\n useEffect(() => {\n setStoredValue(readValue());\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n useEffect(() => {\n const handleStorageChange = () => {\n setStoredValue(readValue());\n };\n\n // this only works for other documents, not the current one\n window.addEventListener('storage', handleStorageChange);\n\n // this is a custom event, triggered in writeValueToLocalStorage\n window.addEventListener('local-storage', handleStorageChange);\n\n return () => {\n window.removeEventListener('storage', handleStorageChange);\n window.removeEventListener('local-storage', handleStorageChange);\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n return [storedValue, setValue];\n};\n\nexport default useLocalStorage;\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,mBAAoC;AAEpC,IAAO,sBAAQ,CAAQ,OAAc,UAAkB;AAErD,QAAM,CAAC,gBAAgB,iBAAiB,QAAI,uBAAS,KAAK;AAC1D;AAAA,IACE,MAAM;AAEJ,YAAM,UAAU,WAAW,MAAM;AAC/B,0BAAkB,KAAK;AAAA,MACzB,GAAG,KAAK;AAIR,aAAO,MAAM;AACX,qBAAa,OAAO;AAAA,MACtB;AAAA,IACF;AAAA,IACA,CAAC,OAAO,KAAK;AAAA;AAAA,EACf;AACA,SAAO;AACT;;;ACnBA,IAAAA,gBAAoC;AAEpC,IAAM,kBAAkB,CACtB,KACA,iBACqC;AAGrC,QAAM,YAAY,MAAM;AAEtB,QAAI,OAAO,WAAW,aAAa;AACjC,aAAO;AAAA,IACT;AAEA,QAAI;AACF,YAAM,OAAO,OAAO,aAAa,QAAQ,GAAG;AAC5C,aAAO,OAAO,KAAK,MAAM,IAAI,IAAI;AAAA,IACnC,SAAS,OAAO;AACd,cAAQ,KAAK,wCAAmC,GAAG,WAAM,KAAK;AAC9D,aAAO;AAAA,IACT;AAAA,EACF;AAIA,QAAM,CAAC,aAAa,cAAc,QAAI,wBAAY,SAAS;AAI3D,QAAM,WAAwC,CAAC,UAAU;AAEvD,QAAI,OAAO,WAAW,aAAa;AACjC,cAAQ;AAAA,QACN,wCAAmC,GAAG;AAAA,MACxC;AAAA,IACF;AAEA,QAAI;AAEF,YAAM,WAAW,iBAAiB,WAAW,MAAM,WAAW,IAAI;AAGlE,aAAO,aAAa,QAAQ,KAAK,KAAK,UAAU,QAAQ,CAAC;AAGzD,qBAAe,QAAQ;AAGvB,aAAO,cAAc,IAAI,MAAM,eAAe,CAAC;AAAA,IACjD,SAAS,OAAO;AACd,cAAQ,KAAK,wCAAmC,GAAG,WAAM,KAAK;AAAA,IAChE;AAAA,EACF;AAEA,+BAAU,MAAM;AACd,mBAAe,UAAU,CAAC;AAAA,EAE5B,GAAG,CAAC,CAAC;AAEL,+BAAU,MAAM;AACd,UAAM,sBAAsB,MAAM;AAChC,qBAAe,UAAU,CAAC;AAAA,IAC5B;AAGA,WAAO,iBAAiB,WAAW,mBAAmB;AAGtD,WAAO,iBAAiB,iBAAiB,mBAAmB;AAE5D,WAAO,MAAM;AACX,aAAO,oBAAoB,WAAW,mBAAmB;AACzD,aAAO,oBAAoB,iBAAiB,mBAAmB;AAAA,IACjE;AAAA,EAEF,GAAG,CAAC,CAAC;AAEL,SAAO,CAAC,aAAa,QAAQ;AAC/B;AAEA,IAAO,0BAAQ;","names":["import_react"]}
|
package/package.json
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"name": "@fuf-stack/pixels",
|
|
3
3
|
"description": "fuf react component library",
|
|
4
4
|
"author": "Hannes Tiede",
|
|
5
|
-
"version": "0.5.
|
|
5
|
+
"version": "0.5.6",
|
|
6
6
|
"type": "module",
|
|
7
7
|
"main": "./dist/index.js",
|
|
8
8
|
"module": "./dist/index.cjs",
|
|
@@ -86,8 +86,6 @@
|
|
|
86
86
|
"@nextui-org/system": "2.1.2",
|
|
87
87
|
"@nextui-org/tooltip": "2.0.33",
|
|
88
88
|
"classnames": "2.5.1",
|
|
89
|
-
"react": "18.3.0",
|
|
90
|
-
"react-dom": "18.3.0",
|
|
91
89
|
"react-icons": "5.1.0",
|
|
92
90
|
"react-json-view": "1.21.3",
|
|
93
91
|
"@uiw/react-json-view": "2.0.0-alpha.24",
|
|
@@ -97,10 +95,12 @@
|
|
|
97
95
|
"@types/debug": "4.1.12",
|
|
98
96
|
"@types/react": "18.3.0",
|
|
99
97
|
"@types/react-dom": "18.3.0",
|
|
98
|
+
"react": "18.3.0",
|
|
99
|
+
"react-dom": "18.3.0",
|
|
100
100
|
"@repo/storybook-config": "0.0.1",
|
|
101
101
|
"@repo/tsup-config": "0.0.1",
|
|
102
|
-
"@repo/
|
|
103
|
-
"@repo/
|
|
102
|
+
"@repo/vite-config": "0.0.1",
|
|
103
|
+
"@repo/tailwind-config": "0.0.1"
|
|
104
104
|
},
|
|
105
105
|
"scripts": {
|
|
106
106
|
"build": "tsup --config node_modules/@repo/tsup-config/config.ts",
|
package/dist/chunk-6G5VTF6K.js
DELETED
|
@@ -1,43 +0,0 @@
|
|
|
1
|
-
// src/Popover/Popover.tsx
|
|
2
|
-
import { Popover, PopoverContent, PopoverTrigger } from "@nextui-org/popover";
|
|
3
|
-
import cn from "classnames";
|
|
4
|
-
import { jsx, jsxs } from "react/jsx-runtime";
|
|
5
|
-
var Popover_default = ({
|
|
6
|
-
children = null,
|
|
7
|
-
className = void 0,
|
|
8
|
-
content,
|
|
9
|
-
contentTestId = void 0,
|
|
10
|
-
placement = "top",
|
|
11
|
-
openControlled = void 0,
|
|
12
|
-
testId = void 0,
|
|
13
|
-
title = void 0
|
|
14
|
-
}) => {
|
|
15
|
-
return /* @__PURE__ */ jsxs(
|
|
16
|
-
Popover,
|
|
17
|
-
{
|
|
18
|
-
placement,
|
|
19
|
-
radius: "sm",
|
|
20
|
-
showArrow: true,
|
|
21
|
-
...openControlled ? { isOpen: openControlled.open, onOpenChange: openControlled.setOpen } : {},
|
|
22
|
-
children: [
|
|
23
|
-
/* @__PURE__ */ jsx(PopoverTrigger, { className: cn(className), "data-testid": testId, children: /* @__PURE__ */ jsx("button", { children }) }),
|
|
24
|
-
/* @__PURE__ */ jsx(PopoverContent, { "data-testid": contentTestId, children: /* @__PURE__ */ jsxs("div", { className: "max-h-[80vh] overflow-y-auto", children: [
|
|
25
|
-
title && /* @__PURE__ */ jsxs("div", { children: [
|
|
26
|
-
title,
|
|
27
|
-
/* @__PURE__ */ jsx("hr", {})
|
|
28
|
-
] }),
|
|
29
|
-
content
|
|
30
|
-
] }) })
|
|
31
|
-
]
|
|
32
|
-
}
|
|
33
|
-
);
|
|
34
|
-
};
|
|
35
|
-
|
|
36
|
-
// src/Popover/index.ts
|
|
37
|
-
var Popover_default2 = Popover_default;
|
|
38
|
-
|
|
39
|
-
export {
|
|
40
|
-
Popover_default,
|
|
41
|
-
Popover_default2
|
|
42
|
-
};
|
|
43
|
-
//# sourceMappingURL=chunk-6G5VTF6K.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/Json/Json.tsx","../src/Json/index.ts"],"names":["Json_default"],"mappings":";;;;;AAEA,SAAS,gBAAgB;AACzB,SAAS,eAAe,aAAa,qBAAqB;AAC1D,SAAS,oBAAoB,+BAA+B;AAE5D,OAAO,cAAc;AACrB,SAAS,kBAAkB;AAC3B,SAAS,mBAAmB;AAC5B,OAAO,QAAQ;AAiEG,SAiCJ,UAjCI,KAsBR,YAtBQ;AA1DlB,IAAM,WAAW,CAAC,UAA2B;AAC3C,MAAI,OAAO,UAAU,UAAU;AAC7B,WAAO,KAAK,MAAM,KAAK;AAAA,EACzB;AACA,MAAI,OAAO,UAAU,UAAU;AAC7B,WAAO;AAAA,EACT;AACA,QAAM,IAAI,MAAM,GAAG,OAAO,KAAK,wBAAwB;AACzD;AAcA,IAAM,OAAO,CAAC,EAAE,YAAY,MAAM,YAAY,OAAO,MAAM,MAAiB;AAC1E,QAAM,aAAa,SAAS,KAAK,UAAU,SAAS,MAAM;AAE1D,MAAI,UAAqB;AACzB,MAAI,QAAmB;AAEvB,QAAM,CAAC,aAAa,cAAc,IAAI,SAAS,KAAK;AAEpD,MAAI;AACF,cACE;AAAA,MAAC;AAAA;AAAA,QACC,WAAU;AAAA,QACV;AAAA,QACA,kBAAkB;AAAA,QAClB,OAAO;AAAA,UACL,GAAI,aAAa,cAAc;AAAA,UAC/B,iBAAiB;AAAA,QACnB;AAAA,QACA,OAAO,SAAS,KAAK;AAAA,QAGrB;AAAA,UAAC,SAAS;AAAA,UAAT;AAAA,YACC,QAAQ,CAAC;AAAA;AAAA,cAEP,eAAe;AAAA,cACf;AAAA,cACA,GAAG;AAAA,YACL,MAAM;AACJ,oBAAM,aAAa;AAAA,gBACjB,SAAS;AAAA,gBACT;AAAA,gBACA,EAAE,gBAAgB,OAAO;AAAA,cAC3B;AACA,qBACE,oBAAC,UAAK,WAAU,gCAA+B,OAC5C,mBACC;AAAA,gBAAC;AAAA;AAAA,kBAEE,GAAG;AAAA,kBACJ,WAAW;AAAA;AAAA,cACb;AAAA;AAAA,gBAGA,oBAAC,sBAAoB,GAAG,UAAU,WAAW,YAAY;AAAA,iBAE7D;AAAA,YAEJ;AAAA;AAAA,QACF;AAAA;AAAA,IACF;AAAA,EAEJ,SAAS,KAAK;AACZ,YACE;AAAA,MAAC;AAAA;AAAA,QACC,WAAU;AAAA,QACV,MAAK;AAAA,QAEL;AAAA,+BAAC,SAAI,WAAU,qCACb;AAAA,iCAAC,SAAI,WAAU,qBACb;AAAA,kCAAC,iBAAc,WAAU,QAAO;AAAA,cAChC,oBAAC,UAAK,WAAU,eAAc,uCAAyB;AAAA,eACzD;AAAA,YACA;AAAA,cAAC;AAAA;AAAA,gBACC,OAAM;AAAA,gBACN,MAAK;AAAA,gBACL,SAAQ;AAAA,gBACR,SAAS,MAAM,eAAe,CAAC,WAAW;AAAA,gBAEzC,wBACC,iCACE;AAAA,sCAAC,eAAY;AAAA,kBAAE;AAAA,mBACjB,IAEA,iCACE;AAAA,sCAAC,iBAAc;AAAA,kBAAE;AAAA,mBACnB;AAAA;AAAA,YAEJ;AAAA,aACF;AAAA,UACC,eACC,qBAAC,SAAI,WAAU,yBACb;AAAA,iCAAC,SACC;AAAA,kCAAC,YAAO,oBAAM;AAAA,cACd,qBAAC,SAEE;AAAA,qBAAK;AAAA,gBAAK;AAAA,gBAAG,KAAK;AAAA,iBACrB;AAAA,eACF;AAAA,YACA,qBAAC,SAAI,WAAU,QACb;AAAA,kCAAC,YAAO,mBAAK;AAAA,cACb,oBAAC,SACE,iBAAO,UAAU,WACd,KAAK,UAAU,OAAO,MAAM,CAAC,IAC7B,OACN;AAAA,eACF;AAAA,aACF;AAAA;AAAA;AAAA,IAEJ;AAAA,EAEJ;AACA,SAAO,oBAAC,SAAI,WAAW,GAAG,SAAS,GAAI,mBAAS,SAAQ;AAC1D;AAEA,IAAO,eAAQ;;;ACxIf,IAAOA,gBAAQ","sourcesContent":["import type { ReactNode } from 'react';\n\nimport { useState } from 'react';\nimport { FaChevronDown, FaChevronUp, FaTimesCircle } from 'react-icons/fa';\nimport { HiOutlineClipboard, HiOutlineClipboardCheck } from 'react-icons/hi';\n\nimport JsonView from '@uiw/react-json-view';\nimport { lightTheme } from '@uiw/react-json-view/light';\nimport { vscodeTheme } from '@uiw/react-json-view/vscode';\nimport cn from 'classnames';\n\nimport Button from '../Button';\n\n/**\n * returns the value (JSON string or object) as object\n */\nconst getValue = (value: string | object) => {\n if (typeof value === 'string') {\n return JSON.parse(value);\n }\n if (typeof value === 'object') {\n return value;\n }\n throw new Error(`${typeof value} can not be visualized`);\n};\n\nexport interface JsonProps {\n /** CSS class name */\n className?: string | string[] | null;\n /** When set to true, all nodes will be collapsed by default. Use an integer value to collapse at a particular depth. */\n collapsed?: boolean | number;\n /** Object to be visualized JSON string or object */\n value: string | object;\n}\n\n/**\n * Json renderer based on [react-json-view](https://mac-s-g.github.io/react-json-view/demo/dist/)\n */\nconst Json = ({ className = null, collapsed = false, value }: JsonProps) => {\n const isDarkMode = document.body.classList.contains('dark');\n\n let content: ReactNode = null;\n let error: ReactNode = null;\n\n const [showDetails, setShowDetails] = useState(false);\n\n try {\n content = (\n <JsonView\n className=\"pr-5\"\n collapsed={collapsed}\n displayDataTypes={false}\n style={{\n ...(isDarkMode ? vscodeTheme : lightTheme),\n backgroundColor: 'unset',\n }}\n value={getValue(value)}\n >\n {/* FIX: overwrite Copied component to fix flickering copy button */}\n <JsonView.Copied\n render={({\n // @ts-expect-error this should be fine\n 'data-copied': copied,\n style,\n ...elmProps\n }) => {\n const elmClasses = cn(\n elmProps.className,\n 'absolute -right-4 -top-[2px] h-4 w-4 !fill-transparent pl-1',\n { 'text-success': copied },\n );\n return (\n <span className=\"relative !ml-0 !h-[1em] !w-0\" style={style}>\n {copied ? (\n <HiOutlineClipboardCheck\n // eslint-disable-next-line react/jsx-props-no-spreading\n {...elmProps}\n className={elmClasses}\n />\n ) : (\n // eslint-disable-next-line react/jsx-props-no-spreading\n <HiOutlineClipboard {...elmProps} className={elmClasses} />\n )}\n </span>\n );\n }}\n />\n </JsonView>\n );\n } catch (err) {\n error = (\n <div\n className=\"mb-4 flex flex-col items-center rounded-lg border border-danger bg-danger-50 p-4 text-sm text-danger\"\n role=\"alert\"\n >\n <div className=\"flex w-full justify-between gap-6\">\n <div className=\"flex items-center\">\n <FaTimesCircle className=\"mr-2\" />\n <span className=\"font-medium\">Failed to parse JSON data</span>\n </div>\n <Button\n color=\"danger\"\n size=\"sm\"\n variant=\"light\"\n onClick={() => setShowDetails(!showDetails)}\n >\n {showDetails ? (\n <>\n <FaChevronUp /> Hide Details\n </>\n ) : (\n <>\n <FaChevronDown /> Show Details\n </>\n )}\n </Button>\n </div>\n {showDetails && (\n <div className=\"mt-4 w-full text-left\">\n <div>\n <strong>Error:</strong>\n <pre>\n {/* @ts-expect-error is ok */}\n {err?.name}: {err?.message}\n </pre>\n </div>\n <div className=\"mt-4\">\n <strong>Data:</strong>\n <pre>\n {typeof value !== 'string'\n ? JSON.stringify(value, null, 2)\n : value}\n </pre>\n </div>\n </div>\n )}\n </div>\n );\n }\n return <div className={cn(className)}>{error || content}</div>;\n};\n\nexport default Json;\n","import Json from './Json';\n\nexport type { JsonProps } from './Json';\n\nexport { Json };\n\nexport default Json;\n"]}
|
package/dist/chunk-B35F4645.cjs
DELETED
|
@@ -1,43 +0,0 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }// src/Popover/Popover.tsx
|
|
2
|
-
var _popover = require('@nextui-org/popover');
|
|
3
|
-
var _classnames = require('classnames'); var _classnames2 = _interopRequireDefault(_classnames);
|
|
4
|
-
var _jsxruntime = require('react/jsx-runtime');
|
|
5
|
-
var Popover_default = ({
|
|
6
|
-
children = null,
|
|
7
|
-
className = void 0,
|
|
8
|
-
content,
|
|
9
|
-
contentTestId = void 0,
|
|
10
|
-
placement = "top",
|
|
11
|
-
openControlled = void 0,
|
|
12
|
-
testId = void 0,
|
|
13
|
-
title = void 0
|
|
14
|
-
}) => {
|
|
15
|
-
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
16
|
-
_popover.Popover,
|
|
17
|
-
{
|
|
18
|
-
placement,
|
|
19
|
-
radius: "sm",
|
|
20
|
-
showArrow: true,
|
|
21
|
-
...openControlled ? { isOpen: openControlled.open, onOpenChange: openControlled.setOpen } : {},
|
|
22
|
-
children: [
|
|
23
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _popover.PopoverTrigger, { className: _classnames2.default.call(void 0, className), "data-testid": testId, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "button", { children }) }),
|
|
24
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _popover.PopoverContent, { "data-testid": contentTestId, children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "max-h-[80vh] overflow-y-auto", children: [
|
|
25
|
-
title && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { children: [
|
|
26
|
-
title,
|
|
27
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "hr", {})
|
|
28
|
-
] }),
|
|
29
|
-
content
|
|
30
|
-
] }) })
|
|
31
|
-
]
|
|
32
|
-
}
|
|
33
|
-
);
|
|
34
|
-
};
|
|
35
|
-
|
|
36
|
-
// src/Popover/index.ts
|
|
37
|
-
var Popover_default2 = Popover_default;
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
exports.Popover_default = Popover_default; exports.Popover_default2 = Popover_default2;
|
|
43
|
-
//# sourceMappingURL=chunk-B35F4645.cjs.map
|
|
@@ -1 +0,0 @@
|
|
|
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 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/Label/Label.tsx","../src/Label/index.ts"],"names":["Label_default"],"mappings":";AAGA,SAAS,QAAQ,iBAAiB;AAClC,OAAO,QAAQ;AA4Bb;AARF,IAAM,QAAQ,CAAC;AAAA,EACb;AAAA,EACA,YAAY;AAAA,EACZ,QAAQ;AAAA,EACR,aAAa;AAAA,EACb,OAAO;AAAA,EACP,eAAe;AACjB,MACE;AAAA,EAAC;AAAA;AAAA,IACC,WAAW,GAAG,SAAS;AAAA,IACvB;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IAEC;AAAA;AACH;AAGF,IAAO,gBAAQ;;;ACrCf,IAAOA,iBAAQ","sourcesContent":["import type { ChipProps } from '@nextui-org/chip';\nimport type { ReactNode } from 'react';\n\nimport { Chip as NextLabel } from '@nextui-org/chip';\nimport cn from 'classnames';\n\nexport interface LabelProps {\n /** content of the label */\n children: ReactNode;\n /** CSS class name */\n className?: string;\n /** color of the label */\n color?: ChipProps['color'];\n /** element to be rendered in the right side of the label */\n endContent?: ChipProps['endContent'];\n /** size of the label */\n size?: ChipProps['size'];\n /** element to be rendered in the left side of the label */\n startContent?: ChipProps['startContent'];\n}\n\n/**\n * Label component based on [NextUI Chip](https://nextui.org/docs/components/chip)\n */\nconst Label = ({\n children,\n className = undefined,\n color = 'default',\n endContent = undefined,\n size = 'md',\n startContent = undefined,\n}: LabelProps) => (\n <NextLabel\n className={cn(className)}\n color={color}\n endContent={endContent}\n size={size}\n startContent={startContent}\n >\n {children}\n </NextLabel>\n);\n\nexport default Label;\n","import Label from './Label';\n\nexport type { LabelProps } from './Label';\n\nexport { Label };\n\nexport default Label;\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/Tooltip/Tooltip.tsx","../src/Tooltip/index.ts"],"names":["Tooltip_default"],"mappings":";AAEA,SAAS,WAAW,mBAAmB;AACvC,OAAO,QAAQ;AAkDX;AAhDG,IAAM,0BAA0B;AAAA,EACrC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF;AAuBA,IAAM,UAAU,CAAC;AAAA,EACf;AAAA,EACA,YAAY;AAAA,EACZ;AAAA,EACA,YAAY;AAAA,EACZ,cAAc;AAAA,EACd,eAAe;AAAA,EACf,mBAAmB;AACrB,MACE;AAAA,EAAC;AAAA;AAAA,IACC,WAAW,GAAG,SAAS;AAAA,IACvB;AAAA,IACA;AAAA,IACA;AAAA,IACA,SAAS,CAAC,MAAM,EAAE,eAAe;AAAA,IACjC;AAAA,IACA;AAAA,IACA,YAAU;AAAA,IACV,WAAS;AAAA,IAET,8BAAC,UAAK,WAAU,kBAAkB,UAAS;AAAA;AAC7C;AAGF,IAAO,kBAAQ;;;ACnDf,IAAOA,mBAAQ","sourcesContent":["import type { ReactNode } from 'react';\n\nimport { Tooltip as NextTooltip } from '@nextui-org/tooltip';\nimport cn from 'classnames';\n\nexport const tooltipPlacementOptions = [\n 'top',\n 'bottom',\n 'left',\n 'right',\n] as const;\nexport type TooltipPlacement = (typeof tooltipPlacementOptions)[number];\n\nexport interface TooltipProps {\n /** trigger child components */\n children: ReactNode;\n /** CSS class name */\n className?: string;\n /** placement padding in px */\n containerPadding?: number;\n /** content displayed in the tooltip */\n content: ReactNode;\n /** open overlay initially when uncontrolled */\n defaultOpen?: boolean;\n /** handler that is called when the overlay's open state changes */\n onOpenChange?: (isOpen: boolean) => void;\n /** placement if the tooltip */\n placement?: TooltipPlacement;\n}\n\n/**\n * Tooltip component based on [NextUI Tooltip](https://nextui.org/docs/components/tooltip)\n */\nconst Tooltip = ({\n children,\n className = undefined,\n content,\n placement = 'top',\n defaultOpen = false,\n onOpenChange = undefined,\n containerPadding = 0,\n}: TooltipProps) => (\n <NextTooltip\n className={cn(className)}\n containerPadding={containerPadding}\n content={content}\n defaultOpen={defaultOpen}\n onClick={(e) => e.preventDefault()}\n onOpenChange={onOpenChange}\n placement={placement}\n shouldFlip\n showArrow\n >\n <span className=\"cursor-pointer\">{children}</span>\n </NextTooltip>\n);\n\nexport default Tooltip;\n","import Tooltip, { tooltipPlacementOptions } from './Tooltip';\n\nexport type { TooltipProps } from './Tooltip';\n\nexport { Tooltip, tooltipPlacementOptions };\n\nexport default Tooltip;\n"]}
|