@fuf-stack/pixels 0.5.6 → 0.5.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (68) hide show
  1. package/dist/Button/index.cjs +2 -3
  2. package/dist/Button/index.js +1 -2
  3. package/dist/Card/index.cjs +2 -3
  4. package/dist/Card/index.js +1 -2
  5. package/dist/Json/index.cjs +3 -4
  6. package/dist/Json/index.js +2 -3
  7. package/dist/Label/index.cjs +2 -3
  8. package/dist/Label/index.js +1 -2
  9. package/dist/Menu/index.cjs +2 -3
  10. package/dist/Menu/index.js +1 -2
  11. package/dist/Modal/index.cjs +2 -3
  12. package/dist/Modal/index.js +1 -2
  13. package/dist/Popover/index.cjs +2 -3
  14. package/dist/Popover/index.js +1 -2
  15. package/dist/Tooltip/index.cjs +2 -3
  16. package/dist/Tooltip/index.js +1 -2
  17. package/dist/{chunk-QC2FAH2W.js → chunk-236GX7PP.js} +4 -9
  18. package/dist/{chunk-QC2FAH2W.js.map → chunk-236GX7PP.js.map} +1 -1
  19. package/dist/chunk-6G5VTF6K.js +43 -0
  20. package/dist/{chunk-PD246EV7.js.map → chunk-6G5VTF6K.js.map} +1 -1
  21. package/dist/chunk-B35F4645.cjs +43 -0
  22. package/dist/chunk-B35F4645.cjs.map +1 -0
  23. package/dist/{chunk-5QFG2VXP.cjs → chunk-BMKGS5PK.cjs} +4 -9
  24. package/dist/chunk-BMKGS5PK.cjs.map +1 -0
  25. package/dist/{chunk-SSPYXO6E.cjs → chunk-BSBPQXNG.cjs} +5 -10
  26. package/dist/chunk-BSBPQXNG.cjs.map +1 -0
  27. package/dist/{chunk-DFKOD7QX.cjs → chunk-GIM2W4JH.cjs} +10 -15
  28. package/dist/chunk-GIM2W4JH.cjs.map +1 -0
  29. package/dist/{chunk-R2JOVQS5.cjs → chunk-HHTTNYDC.cjs} +10 -15
  30. package/dist/chunk-HHTTNYDC.cjs.map +1 -0
  31. package/dist/{chunk-ILTQEFAN.js → chunk-HYXTFS4R.js} +8 -13
  32. package/dist/{chunk-ILTQEFAN.js.map → chunk-HYXTFS4R.js.map} +1 -1
  33. package/dist/{chunk-2C2AZ4GY.js → chunk-IEZVKZFP.js} +9 -14
  34. package/dist/{chunk-2C2AZ4GY.js.map → chunk-IEZVKZFP.js.map} +1 -1
  35. package/dist/{chunk-NB2Y66Z3.cjs → chunk-M7IVIJEA.cjs} +28 -33
  36. package/dist/chunk-M7IVIJEA.cjs.map +1 -0
  37. package/dist/{chunk-JSV7ZIIA.cjs → chunk-ND4VZZVU.cjs} +9 -14
  38. package/dist/chunk-ND4VZZVU.cjs.map +1 -0
  39. package/dist/{chunk-DAIBNNTS.js → chunk-O6OLR36Y.js} +7 -12
  40. package/dist/{chunk-DAIBNNTS.js.map → chunk-O6OLR36Y.js.map} +1 -1
  41. package/dist/{chunk-L6CCOLHU.js → chunk-S2WOGSQV.js} +3 -8
  42. package/dist/{chunk-L6CCOLHU.js.map → chunk-S2WOGSQV.js.map} +1 -1
  43. package/dist/{chunk-XGAFPFRL.js → chunk-VOXYQARK.js} +9 -14
  44. package/dist/{chunk-XGAFPFRL.js.map → chunk-VOXYQARK.js.map} +1 -1
  45. package/dist/{chunk-KVCXEJJD.cjs → chunk-X2MUU2ZI.cjs} +8 -13
  46. package/dist/chunk-X2MUU2ZI.cjs.map +1 -0
  47. package/dist/{chunk-22MRKUHN.js → chunk-YQBT544X.js} +28 -33
  48. package/dist/chunk-YQBT544X.js.map +1 -0
  49. package/dist/index.cjs +16 -20
  50. package/dist/index.cjs.map +1 -1
  51. package/dist/index.js +15 -19
  52. package/dist/index.js.map +1 -1
  53. package/package.json +12 -7
  54. package/dist/chunk-22MRKUHN.js.map +0 -1
  55. package/dist/chunk-5QFG2VXP.cjs.map +0 -1
  56. package/dist/chunk-CJ7YDKHN.cjs +0 -48
  57. package/dist/chunk-CJ7YDKHN.cjs.map +0 -1
  58. package/dist/chunk-DFKOD7QX.cjs.map +0 -1
  59. package/dist/chunk-EOBBMFEW.js +0 -3193
  60. package/dist/chunk-EOBBMFEW.js.map +0 -1
  61. package/dist/chunk-JSV7ZIIA.cjs.map +0 -1
  62. package/dist/chunk-KVCXEJJD.cjs.map +0 -1
  63. package/dist/chunk-NB2Y66Z3.cjs.map +0 -1
  64. package/dist/chunk-PD246EV7.js +0 -48
  65. package/dist/chunk-PTN54X4Z.cjs +0 -3193
  66. package/dist/chunk-PTN54X4Z.cjs.map +0 -1
  67. package/dist/chunk-R2JOVQS5.cjs.map +0 -1
  68. package/dist/chunk-SSPYXO6E.cjs.map +0 -1
@@ -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":";;;;;;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"]}
1
+ {"version":3,"sources":["../src/Menu/Menu.tsx","../src/Menu/index.ts"],"sourcesContent":["import type { DropdownSectionProps } from '@nextui-org/dropdown';\nimport type { Key, MouseEventHandler, ReactNode } from 'react';\n\nimport { FaEllipsisVertical } from 'react-icons/fa6';\n\nimport { Button } from '@nextui-org/button';\nimport {\n Dropdown as NextDropdown,\n DropdownItem as NextDropdownItem,\n DropdownMenu as NextDropdownMenu,\n DropdownSection as NextDropdownSection,\n DropdownTrigger as NextDropdownTrigger,\n} from '@nextui-org/dropdown';\nimport cn from 'classnames';\n\n/**\n * Menu item type\n */\nexport interface MenuItem {\n /** unique identifier */\n key: string;\n /** CSS class name */\n className?: string;\n /** additional description shown under the label */\n description?: string;\n /** disables the menu item */\n disabled?: boolean;\n /** menu item icon */\n icon?: ReactNode;\n /** menu item name */\n label: ReactNode;\n /** click event handler */\n onClick?: MouseEventHandler<HTMLLIElement>;\n /** e2e test identifier */\n testId?: string;\n}\n\n/**\n * Menu section type\n */\nexport interface MenuSection {\n /** unique identifier */\n key: string;\n /** section label */\n label: ReactNode;\n /** section items (array of MenuItem) */\n items: MenuItem[];\n}\n\nexport interface MenuProps {\n /** child components */\n children?: ReactNode;\n /** CSS class name */\n className?: string | string[];\n /** HTML data-testid attribute used in e2e tests */\n testId?: string;\n /** menu item structure */\n items: (MenuSection | MenuItem)[];\n /** disable menu trigger */\n isDisabled?: boolean;\n /** called if item is selected */\n onAction?: (key: Key) => void;\n}\n\n/** returns String[] of disabled items/keys */\nconst getDisabledKeys = (items: (MenuSection | MenuItem)[]) => {\n return (\n items\n // @ts-expect-error typing issue with MenuSection | MenuItem\n .map((item) => (typeof item?.items === 'undefined' ? item : item.items))\n .flat<MenuItem[]>()\n .filter((item) => {\n return Object.hasOwn(item, 'disabled') && item.disabled === true;\n })\n .map((item) => item.key)\n );\n};\n\nconst renderMenuItem = (item: MenuItem) => (\n <NextDropdownItem\n className={item.className}\n data-testid={item.testId || item.key}\n description={item.description}\n key={item.key}\n onClick={item.onClick}\n startContent={item.icon}\n >\n {item.label}\n </NextDropdownItem>\n);\n\n/**\n * Dropdown menu component based on [NextUI Dropdown](https://nextui.org/docs/components/dropdown)\n */\nconst Menu = ({\n children = null,\n className = undefined,\n onAction = undefined,\n testId = undefined,\n isDisabled = false,\n items,\n}: MenuProps) => {\n return (\n <NextDropdown isDisabled={isDisabled}>\n <NextDropdownTrigger className={cn(className)} data-testid={testId}>\n {children ? (\n // eslint-disable-next-line react/button-has-type\n <button>{children}</button>\n ) : (\n // INFO: we use next button here so that ref passing works\n <Button size=\"sm\" variant=\"flat\" className=\"min-w-0\">\n <FaEllipsisVertical />\n </Button>\n )}\n </NextDropdownTrigger>\n <NextDropdownMenu\n // aria-label=\"Dynamic Actions\"\n items={items}\n disabledKeys={getDisabledKeys(items)}\n onAction={onAction}\n >\n {(item) => {\n if ('items' in item) {\n return (\n <NextDropdownSection\n items={item.items as MenuSection['items']}\n title={item.label as DropdownSectionProps['title']}\n key={item.key}\n >\n {/* @ts-expect-error ts problem here with render fn */}\n {(sectionItem) => {\n return renderMenuItem(sectionItem);\n }}\n </NextDropdownSection>\n );\n }\n return renderMenuItem(item);\n }}\n </NextDropdownMenu>\n </NextDropdown>\n );\n};\n\nexport default Menu;\n","import Menu from './Menu';\n\nexport type { MenuProps, MenuItem, MenuSection } from './Menu';\n\nexport { Menu };\n\nexport default Menu;\n"],"mappings":";AAGA,SAAS,0BAA0B;AAEnC,SAAS,cAAc;AACvB;AAAA,EACE,YAAY;AAAA,EACZ,gBAAgB;AAAA,EAChB,gBAAgB;AAAA,EAChB,mBAAmB;AAAA,EACnB,mBAAmB;AAAA,OACd;AACP,OAAO,QAAQ;AAkEb,cAwBE,YAxBF;AAdF,IAAM,kBAAkB,CAAC,UAAsC;AAC7D,SACE,MAEG,IAAI,CAAC,SAAU,OAAO,MAAM,UAAU,cAAc,OAAO,KAAK,KAAM,EACtE,KAAiB,EACjB,OAAO,CAAC,SAAS;AAChB,WAAO,OAAO,OAAO,MAAM,UAAU,KAAK,KAAK,aAAa;AAAA,EAC9D,CAAC,EACA,IAAI,CAAC,SAAS,KAAK,GAAG;AAE7B;AAEA,IAAM,iBAAiB,CAAC,SACtB;AAAA,EAAC;AAAA;AAAA,IACC,WAAW,KAAK;AAAA,IAChB,eAAa,KAAK,UAAU,KAAK;AAAA,IACjC,aAAa,KAAK;AAAA,IAElB,SAAS,KAAK;AAAA,IACd,cAAc,KAAK;AAAA,IAElB,eAAK;AAAA;AAAA,EAJD,KAAK;AAKZ;AAMF,IAAM,OAAO,CAAC;AAAA,EACZ,WAAW;AAAA,EACX,YAAY;AAAA,EACZ,WAAW;AAAA,EACX,SAAS;AAAA,EACT,aAAa;AAAA,EACb;AACF,MAAiB;AACf,SACE,qBAAC,gBAAa,YACZ;AAAA,wBAAC,uBAAoB,WAAW,GAAG,SAAS,GAAG,eAAa,QACzD;AAAA;AAAA,MAEC,oBAAC,YAAQ,UAAS;AAAA;AAAA;AAAA,MAGlB,oBAAC,UAAO,MAAK,MAAK,SAAQ,QAAO,WAAU,WACzC,8BAAC,sBAAmB,GACtB;AAAA,OAEJ;AAAA,IACA;AAAA,MAAC;AAAA;AAAA,QAEC;AAAA,QACA,cAAc,gBAAgB,KAAK;AAAA,QACnC;AAAA,QAEC,WAAC,SAAS;AACT,cAAI,WAAW,MAAM;AACnB,mBACE;AAAA,cAAC;AAAA;AAAA,gBACC,OAAO,KAAK;AAAA,gBACZ,OAAO,KAAK;AAAA,gBAIX,WAAC,gBAAgB;AAChB,yBAAO,eAAe,WAAW;AAAA,gBACnC;AAAA;AAAA,cALK,KAAK;AAAA,YAMZ;AAAA,UAEJ;AACA,iBAAO,eAAe,IAAI;AAAA,QAC5B;AAAA;AAAA,IACF;AAAA,KACF;AAEJ;AAEA,IAAO,eAAQ;;;ACzIf,IAAOA,gBAAQ;","names":["Menu_default"]}
@@ -1,10 +1,4 @@
1
- "use strict";Object.defineProperty(exports, "__esModule", {value: true});
2
-
3
-
4
- var _chunkPTN54X4Zcjs = require('./chunk-PTN54X4Z.cjs');
5
-
6
- // src/Modal/Modal.tsx
7
- var import_jsx_runtime = _chunkPTN54X4Zcjs.__toESM.call(void 0, _chunkPTN54X4Zcjs.require_jsx_runtime.call(void 0, ), 1);
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true});// src/Modal/Modal.tsx
8
2
 
9
3
 
10
4
 
@@ -13,6 +7,7 @@ var import_jsx_runtime = _chunkPTN54X4Zcjs.__toESM.call(void 0, _chunkPTN54X4Zcj
13
7
 
14
8
  var _modal = require('@nextui-org/modal');
15
9
  var _tailwindvariants = require('tailwind-variants');
10
+ var _jsxruntime = require('react/jsx-runtime');
16
11
  var modalVariants = _tailwindvariants.tv.call(void 0, {
17
12
  slots: {
18
13
  backdrop: "",
@@ -56,7 +51,7 @@ var Modal = ({
56
51
  header: variants.header({ className: classNameObj.header }),
57
52
  wrapper: variants.wrapper({ className: classNameObj.wrapper })
58
53
  };
59
- return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
54
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
60
55
  _modal.Modal,
61
56
  {
62
57
  backdrop: "opaque",
@@ -66,10 +61,10 @@ var Modal = ({
66
61
  onClose,
67
62
  placement: "center",
68
63
  scrollBehavior: "inside",
69
- children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(_modal.ModalContent, { "data-testid": testId ? `modal_${testId}` : "modal", children: () => /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment, { children: [
70
- header && /* @__PURE__ */ (0, import_jsx_runtime.jsx)(_modal.ModalHeader, { children: header }),
71
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)(_modal.ModalBody, { id: "modal_body", children }),
72
- footer && /* @__PURE__ */ (0, import_jsx_runtime.jsx)(_modal.ModalFooter, { children: footer })
64
+ children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _modal.ModalContent, { "data-testid": testId ? `modal_${testId}` : "modal", children: () => /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
65
+ header && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _modal.ModalHeader, { children: header }),
66
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _modal.ModalBody, { id: "modal_body", children }),
67
+ footer && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _modal.ModalFooter, { children: footer })
73
68
  ] }) })
74
69
  }
75
70
  );
@@ -84,4 +79,4 @@ var Modal_default2 = Modal_default;
84
79
 
85
80
 
86
81
  exports.modalVariants = modalVariants; exports.Modal_default = Modal_default; exports.Modal_default2 = Modal_default2;
87
- //# sourceMappingURL=chunk-KVCXEJJD.cjs.map
82
+ //# sourceMappingURL=chunk-X2MUU2ZI.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/Modal/Modal.tsx","../src/Modal/index.ts"],"names":["Modal_default"],"mappings":";AAGA;AAAA,EACE,SAAS;AAAA,EACT,aAAa;AAAA,EACb,gBAAgB;AAAA,EAChB,eAAe;AAAA,EACf,eAAe;AAAA,OACV;AACP,SAAS,UAAU;AAwFT,mBACa,KADb;AArFH,IAAM,gBAAgB,GAAG;AAAA,EAC9B,OAAO;AAAA,IACL,UAAU;AAAA,IACV,MAAM;AAAA,IACN,MAAM;AAAA,IACN,aAAa;AAAA,IACb,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,SAAS;AAAA,EACX;AAAA,EACA,UAAU;AAAA,IACR,MAAM;AAAA,MACJ,IAAI,EAAE,MAAM,WAAW;AAAA,MACvB,IAAI,EAAE,MAAM,WAAW;AAAA,MACvB,IAAI,EAAE,MAAM,WAAW;AAAA,MACvB,IAAI,EAAE,MAAM,YAAY;AAAA,MACxB,MAAM,EAAE,MAAM,uBAAuB;AAAA,IACvC;AAAA,EACF;AACF,CAAC;AA6BD,IAAM,QAAQ,CAAC;AAAA,EACb,WAAW;AAAA,EACX,YAAY;AAAA,EACZ,SAAS;AAAA,EACT,SAAS;AAAA,EACT;AAAA,EACA;AAAA,EACA,OAAO;AAAA,EACP,SAAS;AACX,MAAkB;AAEhB,QAAM,WAAW,cAAc,EAAE,KAAK,CAAC;AACvC,QAAM,eAAgB,OAAO,cAAc,YAAY,aAAc,CAAC;AACtE,QAAM,aAAa;AAAA,IACjB,UAAU,SAAS,SAAS,EAAE,WAAW,aAAa,SAAS,CAAC;AAAA,IAChE,MAAM,SAAS,KAAK;AAAA,MAClB,WAAW,aAAa,QAAS;AAAA,IACnC,CAAC;AAAA,IACD,MAAM,SAAS,KAAK,EAAE,WAAW,aAAa,KAAK,CAAC;AAAA,IACpD,aAAa,SAAS,YAAY,EAAE,WAAW,aAAa,YAAY,CAAC;AAAA,IACzE,QAAQ,SAAS,OAAO,EAAE,WAAW,aAAa,OAAO,CAAC;AAAA,IAC1D,QAAQ,SAAS,OAAO,EAAE,WAAW,aAAa,OAAO,CAAC;AAAA,IAC1D,SAAS,SAAS,QAAQ,EAAE,WAAW,aAAa,QAAQ,CAAC;AAAA,EAC/D;AAEA,SACE;AAAA,IAAC;AAAA;AAAA,MACC,UAAS;AAAA,MACT;AAAA,MACA,eAAa;AAAA,MACb;AAAA,MACA;AAAA,MACA,WAAU;AAAA,MACV,gBAAe;AAAA,MAEf,8BAAC,oBAAiB,eAAa,SAAS,SAAS,MAAM,KAAK,SACzD,gBACC,iCACG;AAAA,kBAAU,oBAAC,mBAAiB,kBAAO;AAAA,QACpC,oBAAC,iBAAc,IAAG,cAAc,UAAS;AAAA,QACxC,UAAU,oBAAC,mBAAiB,kBAAO;AAAA,SACtC,GAEJ;AAAA;AAAA,EACF;AAEJ;AAEA,IAAO,gBAAQ;;;ACvGf,IAAOA,iBAAQ","sourcesContent":["import type { ReactNode } from 'react';\nimport type { VariantProps } from 'tailwind-variants';\n\nimport {\n Modal as NextModal,\n ModalBody as NextModalBody,\n ModalContent as NextModalContent,\n ModalFooter as NextModalFooter,\n ModalHeader as NextModalHeader,\n} from '@nextui-org/modal';\nimport { tv } from 'tailwind-variants';\n\n// modal variants\nexport const modalVariants = tv({\n slots: {\n backdrop: '',\n base: '',\n body: '',\n closeButton: '',\n footer: '',\n header: '',\n wrapper: '',\n },\n variants: {\n size: {\n sm: { base: 'max-w-sm' },\n md: { base: 'max-w-md' },\n lg: { base: 'max-w-lg' },\n xl: { base: 'max-w-5xl' },\n full: { base: 'h-[80dvh] max-w-full' },\n },\n },\n});\n\ntype ModalVariantProps = VariantProps<typeof modalVariants>;\ntype ModalVariantSlots = Partial<\n Record<keyof ReturnType<typeof modalVariants>, string>\n>;\n\nexport interface ModalProps extends ModalVariantProps {\n /** modal body content */\n children?: ReactNode;\n /** CSS class name */\n className?: string | ModalVariantSlots;\n /** modal footer */\n footer?: ReactNode;\n /** modal header */\n header?: ReactNode;\n /** open state (controlled) */\n isOpen: boolean;\n /** close event handler */\n onClose: () => void;\n /** modal size */\n size?: ModalVariantProps['size'];\n /** HTML data-testid attribute used in e2e tests */\n testId?: string;\n}\n\n/**\n * Modal component based on [NextUI Modal](https://nextui.org/docs/components/modal)\n */\nconst Modal = ({\n children = null,\n className = undefined,\n footer = undefined,\n header = undefined,\n isOpen,\n onClose,\n size = 'md',\n testId = undefined,\n}: ModalProps) => {\n // classNames from slots\n const variants = modalVariants({ size });\n const classNameObj = (typeof className === 'object' && className) || {};\n const classNames = {\n backdrop: variants.backdrop({ className: classNameObj.backdrop }),\n base: variants.base({\n className: classNameObj.base || (className as string),\n }),\n body: variants.body({ className: classNameObj.body }),\n closeButton: variants.closeButton({ className: classNameObj.closeButton }),\n footer: variants.footer({ className: classNameObj.footer }),\n header: variants.header({ className: classNameObj.header }),\n wrapper: variants.wrapper({ className: classNameObj.wrapper }),\n };\n\n return (\n <NextModal\n backdrop=\"opaque\"\n classNames={classNames}\n data-testid={testId}\n isOpen={isOpen}\n onClose={onClose}\n placement=\"center\"\n scrollBehavior=\"inside\"\n >\n <NextModalContent data-testid={testId ? `modal_${testId}` : 'modal'}>\n {() => (\n <>\n {header && <NextModalHeader>{header}</NextModalHeader>}\n <NextModalBody id=\"modal_body\">{children}</NextModalBody>\n {footer && <NextModalFooter>{footer}</NextModalFooter>}\n </>\n )}\n </NextModalContent>\n </NextModal>\n );\n};\n\nexport default Modal;\n","import Modal, { modalVariants } from './Modal';\n\nexport type { ModalProps } from './Modal';\n\nexport { Modal, modalVariants };\n\nexport default Modal;\n"]}
@@ -1,21 +1,16 @@
1
1
  import {
2
- Button_default2 as Button_default
3
- } from "./chunk-ILTQEFAN.js";
4
- import {
5
- __toESM,
6
- require_jsx_runtime,
7
- require_react
8
- } from "./chunk-EOBBMFEW.js";
2
+ Button_default
3
+ } from "./chunk-HYXTFS4R.js";
9
4
 
10
5
  // src/Json/Json.tsx
11
- var import_react = __toESM(require_react(), 1);
6
+ import { useState } from "react";
12
7
  import { FaChevronDown, FaChevronUp, FaTimesCircle } from "react-icons/fa";
13
8
  import { HiOutlineClipboard, HiOutlineClipboardCheck } from "react-icons/hi";
14
9
  import JsonView from "@uiw/react-json-view";
15
10
  import { lightTheme } from "@uiw/react-json-view/light";
16
11
  import { vscodeTheme } from "@uiw/react-json-view/vscode";
17
12
  import cn from "classnames";
18
- var import_jsx_runtime = __toESM(require_jsx_runtime(), 1);
13
+ import { Fragment, jsx, jsxs } from "react/jsx-runtime";
19
14
  var getValue = (value) => {
20
15
  if (typeof value === "string") {
21
16
  return JSON.parse(value);
@@ -29,9 +24,9 @@ var Json = ({ className = null, collapsed = false, value }) => {
29
24
  const isDarkMode = document.body.classList.contains("dark");
30
25
  let content = null;
31
26
  let error = null;
32
- const [showDetails, setShowDetails] = (0, import_react.useState)(false);
27
+ const [showDetails, setShowDetails] = useState(false);
33
28
  try {
34
- content = /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
29
+ content = /* @__PURE__ */ jsx(
35
30
  JsonView,
36
31
  {
37
32
  className: "pr-5",
@@ -42,7 +37,7 @@ var Json = ({ className = null, collapsed = false, value }) => {
42
37
  backgroundColor: "unset"
43
38
  },
44
39
  value: getValue(value),
45
- children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
40
+ children: /* @__PURE__ */ jsx(
46
41
  JsonView.Copied,
47
42
  {
48
43
  render: ({
@@ -56,7 +51,7 @@ var Json = ({ className = null, collapsed = false, value }) => {
56
51
  "absolute -right-4 -top-[2px] h-4 w-4 !fill-transparent pl-1",
57
52
  { "text-success": copied }
58
53
  );
59
- return /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { className: "relative !ml-0 !h-[1em] !w-0", style, children: copied ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
54
+ return /* @__PURE__ */ jsx("span", { className: "relative !ml-0 !h-[1em] !w-0", style, children: copied ? /* @__PURE__ */ jsx(
60
55
  HiOutlineClipboardCheck,
61
56
  {
62
57
  ...elmProps,
@@ -64,7 +59,7 @@ var Json = ({ className = null, collapsed = false, value }) => {
64
59
  }
65
60
  ) : (
66
61
  // eslint-disable-next-line react/jsx-props-no-spreading
67
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)(HiOutlineClipboard, { ...elmProps, className: elmClasses })
62
+ /* @__PURE__ */ jsx(HiOutlineClipboard, { ...elmProps, className: elmClasses })
68
63
  ) });
69
64
  }
70
65
  }
@@ -72,53 +67,53 @@ var Json = ({ className = null, collapsed = false, value }) => {
72
67
  }
73
68
  );
74
69
  } catch (err) {
75
- error = /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(
70
+ error = /* @__PURE__ */ jsxs(
76
71
  "div",
77
72
  {
78
73
  className: "mb-4 flex flex-col items-center rounded-lg border border-danger bg-danger-50 p-4 text-sm text-danger",
79
74
  role: "alert",
80
75
  children: [
81
- /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { className: "flex w-full justify-between gap-6", children: [
82
- /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { className: "flex items-center", children: [
83
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)(FaTimesCircle, { className: "mr-2" }),
84
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { className: "font-medium", children: "Failed to parse JSON data" })
76
+ /* @__PURE__ */ jsxs("div", { className: "flex w-full justify-between gap-6", children: [
77
+ /* @__PURE__ */ jsxs("div", { className: "flex items-center", children: [
78
+ /* @__PURE__ */ jsx(FaTimesCircle, { className: "mr-2" }),
79
+ /* @__PURE__ */ jsx("span", { className: "font-medium", children: "Failed to parse JSON data" })
85
80
  ] }),
86
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
81
+ /* @__PURE__ */ jsx(
87
82
  Button_default,
88
83
  {
89
84
  color: "danger",
90
85
  size: "sm",
91
86
  variant: "light",
92
87
  onClick: () => setShowDetails(!showDetails),
93
- children: showDetails ? /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment, { children: [
94
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)(FaChevronUp, {}),
88
+ children: showDetails ? /* @__PURE__ */ jsxs(Fragment, { children: [
89
+ /* @__PURE__ */ jsx(FaChevronUp, {}),
95
90
  " Hide Details"
96
- ] }) : /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment, { children: [
97
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)(FaChevronDown, {}),
91
+ ] }) : /* @__PURE__ */ jsxs(Fragment, { children: [
92
+ /* @__PURE__ */ jsx(FaChevronDown, {}),
98
93
  " Show Details"
99
94
  ] })
100
95
  }
101
96
  )
102
97
  ] }),
103
- showDetails && /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { className: "mt-4 w-full text-left", children: [
104
- /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { children: [
105
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)("strong", { children: "Error:" }),
106
- /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("pre", { children: [
98
+ showDetails && /* @__PURE__ */ jsxs("div", { className: "mt-4 w-full text-left", children: [
99
+ /* @__PURE__ */ jsxs("div", { children: [
100
+ /* @__PURE__ */ jsx("strong", { children: "Error:" }),
101
+ /* @__PURE__ */ jsxs("pre", { children: [
107
102
  err?.name,
108
103
  ": ",
109
104
  err?.message
110
105
  ] })
111
106
  ] }),
112
- /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { className: "mt-4", children: [
113
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)("strong", { children: "Data:" }),
114
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)("pre", { children: typeof value !== "string" ? JSON.stringify(value, null, 2) : value })
107
+ /* @__PURE__ */ jsxs("div", { className: "mt-4", children: [
108
+ /* @__PURE__ */ jsx("strong", { children: "Data:" }),
109
+ /* @__PURE__ */ jsx("pre", { children: typeof value !== "string" ? JSON.stringify(value, null, 2) : value })
115
110
  ] })
116
111
  ] })
117
112
  ]
118
113
  }
119
114
  );
120
115
  }
121
- return /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { className: cn(className), children: error || content });
116
+ return /* @__PURE__ */ jsx("div", { className: cn(className), children: error || content });
122
117
  };
123
118
  var Json_default = Json;
124
119
 
@@ -129,4 +124,4 @@ export {
129
124
  Json_default,
130
125
  Json_default2
131
126
  };
132
- //# sourceMappingURL=chunk-22MRKUHN.js.map
127
+ //# sourceMappingURL=chunk-YQBT544X.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/Json/Json.tsx","../src/Json/index.ts"],"sourcesContent":["import type { ReactNode } from 'react';\n\nimport { useState } from 'react';\nimport { FaChevronDown, FaChevronUp, FaTimesCircle } from 'react-icons/fa';\nimport { HiOutlineClipboard, HiOutlineClipboardCheck } from 'react-icons/hi';\n\nimport JsonView from '@uiw/react-json-view';\nimport { lightTheme } from '@uiw/react-json-view/light';\nimport { vscodeTheme } from '@uiw/react-json-view/vscode';\nimport cn from 'classnames';\n\nimport { Button } from '../Button';\n\n/**\n * returns the value (JSON string or object) as object\n */\nconst getValue = (value: string | object) => {\n if (typeof value === 'string') {\n return JSON.parse(value);\n }\n if (typeof value === 'object') {\n return value;\n }\n throw new Error(`${typeof value} can not be visualized`);\n};\n\nexport interface JsonProps {\n /** CSS class name */\n className?: string | string[] | null;\n /** When set to true, all nodes will be collapsed by default. Use an integer value to collapse at a particular depth. */\n collapsed?: boolean | number;\n /** Object to be visualized JSON string or object */\n value: string | object;\n}\n\n/**\n * Json renderer based on [react-json-view](https://mac-s-g.github.io/react-json-view/demo/dist/)\n */\nconst Json = ({ className = null, collapsed = false, value }: JsonProps) => {\n const isDarkMode = document.body.classList.contains('dark');\n\n let content: ReactNode = null;\n let error: ReactNode = null;\n\n const [showDetails, setShowDetails] = useState(false);\n\n try {\n content = (\n <JsonView\n className=\"pr-5\"\n collapsed={collapsed}\n displayDataTypes={false}\n style={{\n ...(isDarkMode ? vscodeTheme : lightTheme),\n backgroundColor: 'unset',\n }}\n value={getValue(value)}\n >\n {/* FIX: overwrite Copied component to fix flickering copy button */}\n <JsonView.Copied\n render={({\n // @ts-expect-error this should be fine\n 'data-copied': copied,\n style,\n ...elmProps\n }) => {\n const elmClasses = cn(\n elmProps.className,\n 'absolute -right-4 -top-[2px] h-4 w-4 !fill-transparent pl-1',\n { 'text-success': copied },\n );\n return (\n <span className=\"relative !ml-0 !h-[1em] !w-0\" style={style}>\n {copied ? (\n <HiOutlineClipboardCheck\n // eslint-disable-next-line react/jsx-props-no-spreading\n {...elmProps}\n className={elmClasses}\n />\n ) : (\n // eslint-disable-next-line react/jsx-props-no-spreading\n <HiOutlineClipboard {...elmProps} className={elmClasses} />\n )}\n </span>\n );\n }}\n />\n </JsonView>\n );\n } catch (err) {\n error = (\n <div\n className=\"mb-4 flex flex-col items-center rounded-lg border border-danger bg-danger-50 p-4 text-sm text-danger\"\n role=\"alert\"\n >\n <div className=\"flex w-full justify-between gap-6\">\n <div className=\"flex items-center\">\n <FaTimesCircle className=\"mr-2\" />\n <span className=\"font-medium\">Failed to parse JSON data</span>\n </div>\n <Button\n color=\"danger\"\n size=\"sm\"\n variant=\"light\"\n onClick={() => setShowDetails(!showDetails)}\n >\n {showDetails ? (\n <>\n <FaChevronUp /> Hide Details\n </>\n ) : (\n <>\n <FaChevronDown /> Show Details\n </>\n )}\n </Button>\n </div>\n {showDetails && (\n <div className=\"mt-4 w-full text-left\">\n <div>\n <strong>Error:</strong>\n <pre>\n {/* @ts-expect-error is ok */}\n {err?.name}: {err?.message}\n </pre>\n </div>\n <div className=\"mt-4\">\n <strong>Data:</strong>\n <pre>\n {typeof value !== 'string'\n ? JSON.stringify(value, null, 2)\n : value}\n </pre>\n </div>\n </div>\n )}\n </div>\n );\n }\n return <div className={cn(className)}>{error || content}</div>;\n};\n\nexport default Json;\n","import Json from './Json';\n\nexport type { JsonProps } from './Json';\n\nexport { Json };\n\nexport default Json;\n"],"mappings":";;;;;AAEA,SAAS,gBAAgB;AACzB,SAAS,eAAe,aAAa,qBAAqB;AAC1D,SAAS,oBAAoB,+BAA+B;AAE5D,OAAO,cAAc;AACrB,SAAS,kBAAkB;AAC3B,SAAS,mBAAmB;AAC5B,OAAO,QAAQ;AAiEG,SAiCJ,UAjCI,KAsBR,YAtBQ;AA1DlB,IAAM,WAAW,CAAC,UAA2B;AAC3C,MAAI,OAAO,UAAU,UAAU;AAC7B,WAAO,KAAK,MAAM,KAAK;AAAA,EACzB;AACA,MAAI,OAAO,UAAU,UAAU;AAC7B,WAAO;AAAA,EACT;AACA,QAAM,IAAI,MAAM,GAAG,OAAO,KAAK,wBAAwB;AACzD;AAcA,IAAM,OAAO,CAAC,EAAE,YAAY,MAAM,YAAY,OAAO,MAAM,MAAiB;AAC1E,QAAM,aAAa,SAAS,KAAK,UAAU,SAAS,MAAM;AAE1D,MAAI,UAAqB;AACzB,MAAI,QAAmB;AAEvB,QAAM,CAAC,aAAa,cAAc,IAAI,SAAS,KAAK;AAEpD,MAAI;AACF,cACE;AAAA,MAAC;AAAA;AAAA,QACC,WAAU;AAAA,QACV;AAAA,QACA,kBAAkB;AAAA,QAClB,OAAO;AAAA,UACL,GAAI,aAAa,cAAc;AAAA,UAC/B,iBAAiB;AAAA,QACnB;AAAA,QACA,OAAO,SAAS,KAAK;AAAA,QAGrB;AAAA,UAAC,SAAS;AAAA,UAAT;AAAA,YACC,QAAQ,CAAC;AAAA;AAAA,cAEP,eAAe;AAAA,cACf;AAAA,cACA,GAAG;AAAA,YACL,MAAM;AACJ,oBAAM,aAAa;AAAA,gBACjB,SAAS;AAAA,gBACT;AAAA,gBACA,EAAE,gBAAgB,OAAO;AAAA,cAC3B;AACA,qBACE,oBAAC,UAAK,WAAU,gCAA+B,OAC5C,mBACC;AAAA,gBAAC;AAAA;AAAA,kBAEE,GAAG;AAAA,kBACJ,WAAW;AAAA;AAAA,cACb;AAAA;AAAA,gBAGA,oBAAC,sBAAoB,GAAG,UAAU,WAAW,YAAY;AAAA,iBAE7D;AAAA,YAEJ;AAAA;AAAA,QACF;AAAA;AAAA,IACF;AAAA,EAEJ,SAAS,KAAK;AACZ,YACE;AAAA,MAAC;AAAA;AAAA,QACC,WAAU;AAAA,QACV,MAAK;AAAA,QAEL;AAAA,+BAAC,SAAI,WAAU,qCACb;AAAA,iCAAC,SAAI,WAAU,qBACb;AAAA,kCAAC,iBAAc,WAAU,QAAO;AAAA,cAChC,oBAAC,UAAK,WAAU,eAAc,uCAAyB;AAAA,eACzD;AAAA,YACA;AAAA,cAAC;AAAA;AAAA,gBACC,OAAM;AAAA,gBACN,MAAK;AAAA,gBACL,SAAQ;AAAA,gBACR,SAAS,MAAM,eAAe,CAAC,WAAW;AAAA,gBAEzC,wBACC,iCACE;AAAA,sCAAC,eAAY;AAAA,kBAAE;AAAA,mBACjB,IAEA,iCACE;AAAA,sCAAC,iBAAc;AAAA,kBAAE;AAAA,mBACnB;AAAA;AAAA,YAEJ;AAAA,aACF;AAAA,UACC,eACC,qBAAC,SAAI,WAAU,yBACb;AAAA,iCAAC,SACC;AAAA,kCAAC,YAAO,oBAAM;AAAA,cACd,qBAAC,SAEE;AAAA,qBAAK;AAAA,gBAAK;AAAA,gBAAG,KAAK;AAAA,iBACrB;AAAA,eACF;AAAA,YACA,qBAAC,SAAI,WAAU,QACb;AAAA,kCAAC,YAAO,mBAAK;AAAA,cACb,oBAAC,SACE,iBAAO,UAAU,WACd,KAAK,UAAU,OAAO,MAAM,CAAC,IAC7B,OACN;AAAA,eACF;AAAA,aACF;AAAA;AAAA;AAAA,IAEJ;AAAA,EAEJ;AACA,SAAO,oBAAC,SAAI,WAAW,GAAG,SAAS,GAAI,mBAAS,SAAQ;AAC1D;AAEA,IAAO,eAAQ;;;ACxIf,IAAOA,gBAAQ;","names":["Json_default"]}
package/dist/index.cjs CHANGED
@@ -1,41 +1,37 @@
1
1
  "use strict";Object.defineProperty(exports, "__esModule", {value: true});
2
2
 
3
3
 
4
- var _chunkDFKOD7QXcjs = require('./chunk-DFKOD7QX.cjs');
4
+ var _chunkGIM2W4JHcjs = require('./chunk-GIM2W4JH.cjs');
5
5
 
6
6
 
7
- var _chunkNB2Y66Z3cjs = require('./chunk-NB2Y66Z3.cjs');
7
+ var _chunkM7IVIJEAcjs = require('./chunk-M7IVIJEA.cjs');
8
8
 
9
9
 
10
10
 
11
- var _chunkJSV7ZIIAcjs = require('./chunk-JSV7ZIIA.cjs');
11
+ var _chunkND4VZZVUcjs = require('./chunk-ND4VZZVU.cjs');
12
12
 
13
13
 
14
- var _chunk5QFG2VXPcjs = require('./chunk-5QFG2VXP.cjs');
14
+ var _chunkBMKGS5PKcjs = require('./chunk-BMKGS5PK.cjs');
15
15
 
16
16
 
17
- var _chunkR2JOVQS5cjs = require('./chunk-R2JOVQS5.cjs');
17
+ var _chunkHHTTNYDCcjs = require('./chunk-HHTTNYDC.cjs');
18
18
 
19
19
 
20
20
 
21
- var _chunkKVCXEJJDcjs = require('./chunk-KVCXEJJD.cjs');
21
+ var _chunkX2MUU2ZIcjs = require('./chunk-X2MUU2ZI.cjs');
22
22
 
23
23
 
24
- var _chunkCJ7YDKHNcjs = require('./chunk-CJ7YDKHN.cjs');
24
+ var _chunkB35F4645cjs = require('./chunk-B35F4645.cjs');
25
25
 
26
26
 
27
27
 
28
- var _chunkSSPYXO6Ecjs = require('./chunk-SSPYXO6E.cjs');
29
-
30
-
31
-
32
- var _chunkPTN54X4Zcjs = require('./chunk-PTN54X4Z.cjs');
28
+ var _chunkBSBPQXNGcjs = require('./chunk-BSBPQXNG.cjs');
33
29
 
34
30
  // src/hooks/useDebounce.ts
35
- var import_react = _chunkPTN54X4Zcjs.__toESM.call(void 0, _chunkPTN54X4Zcjs.require_react.call(void 0, ), 1);
31
+ var _react = require('react');
36
32
  var useDebounce_default = (value, delay) => {
37
- const [debouncedValue, setDebouncedValue] = (0, import_react.useState)(value);
38
- (0, import_react.useEffect)(
33
+ const [debouncedValue, setDebouncedValue] = _react.useState.call(void 0, value);
34
+ _react.useEffect.call(void 0,
39
35
  () => {
40
36
  const handler = setTimeout(() => {
41
37
  setDebouncedValue(value);
@@ -51,7 +47,7 @@ var useDebounce_default = (value, delay) => {
51
47
  };
52
48
 
53
49
  // src/hooks/useLocalStorage.ts
54
- var import_react2 = _chunkPTN54X4Zcjs.__toESM.call(void 0, _chunkPTN54X4Zcjs.require_react.call(void 0, ), 1);
50
+
55
51
  var useLocalStorage = (key, initialValue) => {
56
52
  const readValue = () => {
57
53
  if (typeof window === "undefined") {
@@ -65,7 +61,7 @@ var useLocalStorage = (key, initialValue) => {
65
61
  return initialValue;
66
62
  }
67
63
  };
68
- const [storedValue, setStoredValue] = (0, import_react2.useState)(readValue);
64
+ const [storedValue, setStoredValue] = _react.useState.call(void 0, readValue);
69
65
  const setValue = (value) => {
70
66
  if (typeof window === "undefined") {
71
67
  console.warn(
@@ -81,10 +77,10 @@ var useLocalStorage = (key, initialValue) => {
81
77
  console.warn(`Error setting localStorage key \u201C${key}\u201D:`, error);
82
78
  }
83
79
  };
84
- (0, import_react2.useEffect)(() => {
80
+ _react.useEffect.call(void 0, () => {
85
81
  setStoredValue(readValue());
86
82
  }, []);
87
- (0, import_react2.useEffect)(() => {
83
+ _react.useEffect.call(void 0, () => {
88
84
  const handleStorageChange = () => {
89
85
  setStoredValue(readValue());
90
86
  };
@@ -113,5 +109,5 @@ var useLocalStorage_default = useLocalStorage;
113
109
 
114
110
 
115
111
 
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;
112
+ exports.Button = _chunkND4VZZVUcjs.Button_default; exports.Card = _chunkGIM2W4JHcjs.Card_default; exports.Json = _chunkM7IVIJEAcjs.Json_default; exports.Label = _chunkBMKGS5PKcjs.Label_default; exports.Menu = _chunkHHTTNYDCcjs.Menu_default; exports.Modal = _chunkX2MUU2ZIcjs.Modal_default; exports.Popover = _chunkB35F4645cjs.Popover_default; exports.Tooltip = _chunkBSBPQXNGcjs.Tooltip_default; exports.buttonVariants = _chunkND4VZZVUcjs.buttonVariants; exports.cardVariants = _chunkGIM2W4JHcjs.cardVariants; exports.modalVariants = _chunkX2MUU2ZIcjs.modalVariants; exports.tooltipPlacementOptions = _chunkBSBPQXNGcjs.tooltipPlacementOptions; exports.useDebounce = useDebounce_default; exports.useLocalStorage = useLocalStorage_default;
117
113
  //# sourceMappingURL=index.cjs.map
@@ -1 +1 @@
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"]}
1
+ {"version":3,"sources":["../src/hooks/useDebounce.ts","../src/hooks/useLocalStorage.ts"],"names":["useEffect","useState"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,SAAS,WAAW,gBAAgB;AAEpC,IAAO,sBAAQ,CAAQ,OAAc,UAAkB;AAErD,QAAM,CAAC,gBAAgB,iBAAiB,IAAI,SAAS,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,SAAS,aAAAA,YAAW,YAAAC,iBAAgB;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,IAAIA,UAAY,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,EAAAD,WAAU,MAAM;AACd,mBAAe,UAAU,CAAC;AAAA,EAE5B,GAAG,CAAC,CAAC;AAEL,EAAAA,WAAU,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,41 +1,37 @@
1
1
  import {
2
2
  Card_default,
3
3
  cardVariants
4
- } from "./chunk-2C2AZ4GY.js";
4
+ } from "./chunk-IEZVKZFP.js";
5
5
  import {
6
6
  Json_default
7
- } from "./chunk-22MRKUHN.js";
7
+ } from "./chunk-YQBT544X.js";
8
8
  import {
9
9
  Button_default,
10
10
  buttonVariants
11
- } from "./chunk-ILTQEFAN.js";
11
+ } from "./chunk-HYXTFS4R.js";
12
12
  import {
13
13
  Label_default
14
- } from "./chunk-L6CCOLHU.js";
14
+ } from "./chunk-S2WOGSQV.js";
15
15
  import {
16
16
  Menu_default
17
- } from "./chunk-XGAFPFRL.js";
17
+ } from "./chunk-VOXYQARK.js";
18
18
  import {
19
19
  Modal_default,
20
20
  modalVariants
21
- } from "./chunk-DAIBNNTS.js";
21
+ } from "./chunk-O6OLR36Y.js";
22
22
  import {
23
23
  Popover_default
24
- } from "./chunk-PD246EV7.js";
24
+ } from "./chunk-6G5VTF6K.js";
25
25
  import {
26
26
  Tooltip_default,
27
27
  tooltipPlacementOptions
28
- } from "./chunk-QC2FAH2W.js";
29
- import {
30
- __toESM,
31
- require_react
32
- } from "./chunk-EOBBMFEW.js";
28
+ } from "./chunk-236GX7PP.js";
33
29
 
34
30
  // src/hooks/useDebounce.ts
35
- var import_react = __toESM(require_react(), 1);
31
+ import { useEffect, useState } from "react";
36
32
  var useDebounce_default = (value, delay) => {
37
- const [debouncedValue, setDebouncedValue] = (0, import_react.useState)(value);
38
- (0, import_react.useEffect)(
33
+ const [debouncedValue, setDebouncedValue] = useState(value);
34
+ useEffect(
39
35
  () => {
40
36
  const handler = setTimeout(() => {
41
37
  setDebouncedValue(value);
@@ -51,7 +47,7 @@ var useDebounce_default = (value, delay) => {
51
47
  };
52
48
 
53
49
  // src/hooks/useLocalStorage.ts
54
- var import_react2 = __toESM(require_react(), 1);
50
+ import { useEffect as useEffect2, useState as useState2 } from "react";
55
51
  var useLocalStorage = (key, initialValue) => {
56
52
  const readValue = () => {
57
53
  if (typeof window === "undefined") {
@@ -65,7 +61,7 @@ var useLocalStorage = (key, initialValue) => {
65
61
  return initialValue;
66
62
  }
67
63
  };
68
- const [storedValue, setStoredValue] = (0, import_react2.useState)(readValue);
64
+ const [storedValue, setStoredValue] = useState2(readValue);
69
65
  const setValue = (value) => {
70
66
  if (typeof window === "undefined") {
71
67
  console.warn(
@@ -81,10 +77,10 @@ var useLocalStorage = (key, initialValue) => {
81
77
  console.warn(`Error setting localStorage key \u201C${key}\u201D:`, error);
82
78
  }
83
79
  };
84
- (0, import_react2.useEffect)(() => {
80
+ useEffect2(() => {
85
81
  setStoredValue(readValue());
86
82
  }, []);
87
- (0, import_react2.useEffect)(() => {
83
+ useEffect2(() => {
88
84
  const handleStorageChange = () => {
89
85
  setStoredValue(readValue());
90
86
  };
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":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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"]}
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,SAAS,WAAW,gBAAgB;AAEpC,IAAO,sBAAQ,CAAQ,OAAc,UAAkB;AAErD,QAAM,CAAC,gBAAgB,iBAAiB,IAAI,SAAS,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,SAAS,aAAAA,YAAW,YAAAC,iBAAgB;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,IAAIA,UAAY,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,EAAAD,WAAU,MAAM;AACd,mBAAe,UAAU,CAAC;AAAA,EAE5B,GAAG,CAAC,CAAC;AAEL,EAAAA,WAAU,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":["useEffect","useState"]}
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.6",
5
+ "version": "0.5.8",
6
6
  "type": "module",
7
7
  "main": "./dist/index.js",
8
8
  "module": "./dist/index.cjs",
@@ -75,6 +75,10 @@
75
75
  "bugs": {
76
76
  "url": "https://github.com/fuf-stack/uniforms/issues"
77
77
  },
78
+ "peerDependencies": {
79
+ "react": ">=18",
80
+ "react-dom": ">=18"
81
+ },
78
82
  "dependencies": {
79
83
  "@nextui-org/button": "2.0.31",
80
84
  "@nextui-org/card": "2.0.28",
@@ -84,23 +88,24 @@
84
88
  "@nextui-org/modal": "2.0.33",
85
89
  "@nextui-org/popover": "2.1.21",
86
90
  "@nextui-org/system": "2.1.2",
91
+ "@nextui-org/theme": "2.2.3",
87
92
  "@nextui-org/tooltip": "2.0.33",
88
93
  "classnames": "2.5.1",
89
- "react-icons": "5.1.0",
94
+ "react-icons": "5.2.1",
90
95
  "react-json-view": "1.21.3",
91
96
  "@uiw/react-json-view": "2.0.0-alpha.24",
92
97
  "tailwind-variants": "0.2.1"
93
98
  },
94
99
  "devDependencies": {
95
100
  "@types/debug": "4.1.12",
96
- "@types/react": "18.3.0",
101
+ "@types/react": "18.3.1",
97
102
  "@types/react-dom": "18.3.0",
98
- "react": "18.3.0",
99
- "react-dom": "18.3.0",
103
+ "react": "18.3.1",
104
+ "react-dom": "18.3.1",
100
105
  "@repo/storybook-config": "0.0.1",
106
+ "@repo/tailwind-config": "0.0.1",
101
107
  "@repo/tsup-config": "0.0.1",
102
- "@repo/vite-config": "0.0.1",
103
- "@repo/tailwind-config": "0.0.1"
108
+ "@repo/vite-config": "0.0.1"
104
109
  },
105
110
  "scripts": {
106
111
  "build": "tsup --config node_modules/@repo/tsup-config/config.ts",
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/Json/Json.tsx","../src/Json/index.ts"],"sourcesContent":["import type { ReactNode } from 'react';\n\nimport { useState } from 'react';\nimport { FaChevronDown, FaChevronUp, FaTimesCircle } from 'react-icons/fa';\nimport { HiOutlineClipboard, HiOutlineClipboardCheck } from 'react-icons/hi';\n\nimport JsonView from '@uiw/react-json-view';\nimport { lightTheme } from '@uiw/react-json-view/light';\nimport { vscodeTheme } from '@uiw/react-json-view/vscode';\nimport cn from 'classnames';\n\nimport Button from '../Button';\n\n/**\n * returns the value (JSON string or object) as object\n */\nconst getValue = (value: string | object) => {\n if (typeof value === 'string') {\n return JSON.parse(value);\n }\n if (typeof value === 'object') {\n return value;\n }\n throw new Error(`${typeof value} can not be visualized`);\n};\n\nexport interface JsonProps {\n /** CSS class name */\n className?: string | string[] | null;\n /** When set to true, all nodes will be collapsed by default. Use an integer value to collapse at a particular depth. */\n collapsed?: boolean | number;\n /** Object to be visualized JSON string or object */\n value: string | object;\n}\n\n/**\n * Json renderer based on [react-json-view](https://mac-s-g.github.io/react-json-view/demo/dist/)\n */\nconst Json = ({ className = null, collapsed = false, value }: JsonProps) => {\n const isDarkMode = document.body.classList.contains('dark');\n\n let content: ReactNode = null;\n let error: ReactNode = null;\n\n const [showDetails, setShowDetails] = useState(false);\n\n try {\n content = (\n <JsonView\n className=\"pr-5\"\n collapsed={collapsed}\n displayDataTypes={false}\n style={{\n ...(isDarkMode ? vscodeTheme : lightTheme),\n backgroundColor: 'unset',\n }}\n value={getValue(value)}\n >\n {/* FIX: overwrite Copied component to fix flickering copy button */}\n <JsonView.Copied\n render={({\n // @ts-expect-error this should be fine\n 'data-copied': copied,\n style,\n ...elmProps\n }) => {\n const elmClasses = cn(\n elmProps.className,\n 'absolute -right-4 -top-[2px] h-4 w-4 !fill-transparent pl-1',\n { 'text-success': copied },\n );\n return (\n <span className=\"relative !ml-0 !h-[1em] !w-0\" style={style}>\n {copied ? (\n <HiOutlineClipboardCheck\n // eslint-disable-next-line react/jsx-props-no-spreading\n {...elmProps}\n className={elmClasses}\n />\n ) : (\n // eslint-disable-next-line react/jsx-props-no-spreading\n <HiOutlineClipboard {...elmProps} className={elmClasses} />\n )}\n </span>\n );\n }}\n />\n </JsonView>\n );\n } catch (err) {\n error = (\n <div\n className=\"mb-4 flex flex-col items-center rounded-lg border border-danger bg-danger-50 p-4 text-sm text-danger\"\n role=\"alert\"\n >\n <div className=\"flex w-full justify-between gap-6\">\n <div className=\"flex items-center\">\n <FaTimesCircle className=\"mr-2\" />\n <span className=\"font-medium\">Failed to parse JSON data</span>\n </div>\n <Button\n color=\"danger\"\n size=\"sm\"\n variant=\"light\"\n onClick={() => setShowDetails(!showDetails)}\n >\n {showDetails ? (\n <>\n <FaChevronUp /> Hide Details\n </>\n ) : (\n <>\n <FaChevronDown /> Show Details\n </>\n )}\n </Button>\n </div>\n {showDetails && (\n <div className=\"mt-4 w-full text-left\">\n <div>\n <strong>Error:</strong>\n <pre>\n {/* @ts-expect-error is ok */}\n {err?.name}: {err?.message}\n </pre>\n </div>\n <div className=\"mt-4\">\n <strong>Data:</strong>\n <pre>\n {typeof value !== 'string'\n ? JSON.stringify(value, null, 2)\n : value}\n </pre>\n </div>\n </div>\n )}\n </div>\n );\n }\n return <div className={cn(className)}>{error || content}</div>;\n};\n\nexport default Json;\n","import Json from './Json';\n\nexport type { JsonProps } from './Json';\n\nexport { Json };\n\nexport default Json;\n"],"mappings":";;;;;;;;;;AAEA,mBAAyB;AACzB,SAAS,eAAe,aAAa,qBAAqB;AAC1D,SAAS,oBAAoB,+BAA+B;AAE5D,OAAO,cAAc;AACrB,SAAS,kBAAkB;AAC3B,SAAS,mBAAmB;AAC5B,OAAO,QAAQ;AAiEG;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,QAAI,uBAAS,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,4CAAC,UAAK,WAAU,gCAA+B,OAC5C,mBACC;AAAA,gBAAC;AAAA;AAAA,kBAEE,GAAG;AAAA,kBACJ,WAAW;AAAA;AAAA,cACb;AAAA;AAAA,gBAGA,4CAAC,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,uDAAC,SAAI,WAAU,qCACb;AAAA,yDAAC,SAAI,WAAU,qBACb;AAAA,0DAAC,iBAAc,WAAU,QAAO;AAAA,cAChC,4CAAC,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,4EACE;AAAA,8DAAC,eAAY;AAAA,kBAAE;AAAA,mBACjB,IAEA,4EACE;AAAA,8DAAC,iBAAc;AAAA,kBAAE;AAAA,mBACnB;AAAA;AAAA,YAEJ;AAAA,aACF;AAAA,UACC,eACC,6CAAC,SAAI,WAAU,yBACb;AAAA,yDAAC,SACC;AAAA,0DAAC,YAAO,oBAAM;AAAA,cACd,6CAAC,SAEE;AAAA,qBAAK;AAAA,gBAAK;AAAA,gBAAG,KAAK;AAAA,iBACrB;AAAA,eACF;AAAA,YACA,6CAAC,SAAI,WAAU,QACb;AAAA,0DAAC,YAAO,mBAAK;AAAA,cACb,4CAAC,SACE,iBAAO,UAAU,WACd,KAAK,UAAU,OAAO,MAAM,CAAC,IAC7B,OACN;AAAA,eACF;AAAA,aACF;AAAA;AAAA;AAAA,IAEJ;AAAA,EAEJ;AACA,SAAO,4CAAC,SAAI,WAAW,GAAG,SAAS,GAAI,mBAAS,SAAQ;AAC1D;AAEA,IAAO,eAAQ;;;ACxIf,IAAOA,gBAAQ;","names":["Json_default"]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/Label/Label.tsx","../src/Label/index.ts"],"names":["Label_default"],"mappings":";;;;;;AAgCE;AA7BF,SAAS,QAAQ,iBAAiB;AAClC,OAAO,QAAQ;AAoBf,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,48 +0,0 @@
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/Popover/Popover.tsx
7
- var import_jsx_runtime = _chunkPTN54X4Zcjs.__toESM.call(void 0, _chunkPTN54X4Zcjs.require_jsx_runtime.call(void 0, ), 1);
8
- var _popover = require('@nextui-org/popover');
9
- var _classnames = require('classnames'); var _classnames2 = _interopRequireDefault(_classnames);
10
- var Popover_default = ({
11
- children = null,
12
- className = void 0,
13
- content,
14
- contentTestId = void 0,
15
- placement = "top",
16
- openControlled = void 0,
17
- testId = void 0,
18
- title = void 0
19
- }) => {
20
- return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(
21
- _popover.Popover,
22
- {
23
- placement,
24
- radius: "sm",
25
- showArrow: true,
26
- ...openControlled ? { isOpen: openControlled.open, onOpenChange: openControlled.setOpen } : {},
27
- children: [
28
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)(_popover.PopoverTrigger, { className: _classnames2.default.call(void 0, className), "data-testid": testId, children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)("button", { children }) }),
29
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)(_popover.PopoverContent, { "data-testid": contentTestId, children: /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { className: "max-h-[80vh] overflow-y-auto", children: [
30
- title && /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { children: [
31
- title,
32
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)("hr", {})
33
- ] }),
34
- content
35
- ] }) })
36
- ]
37
- }
38
- );
39
- };
40
-
41
- // src/Popover/index.ts
42
- var Popover_default2 = Popover_default;
43
-
44
-
45
-
46
-
47
- exports.Popover_default = Popover_default; exports.Popover_default2 = Popover_default2;
48
- //# sourceMappingURL=chunk-CJ7YDKHN.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/Popover/Popover.tsx","../src/Popover/index.ts"],"names":["Popover_default"],"mappings":";;;;;;AAkDQ;AA/CR,SAAS,SAAS,gBAAgB,sBAAsB;AACxD,OAAO,QAAQ;AAwBf,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,oDAAC,kBAAe,WAAW,GAAG,SAAS,GAAG,eAAa,QAGrD,sDAAC,YAAQ,UAAS,GACpB;AAAA,QACA,4CAAC,kBAAe,eAAa,eAC3B,uDAAC,SAAI,WAAU,gCACZ;AAAA,mBACC,6CAAC,SACE;AAAA;AAAA,YACD,4CAAC,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"]}