@fuf-stack/pixels 0.29.3 → 0.31.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (98) hide show
  1. package/dist/Accordion/index.cjs +3 -3
  2. package/dist/Accordion/index.js +2 -2
  3. package/dist/Avatar/index.cjs +1 -1
  4. package/dist/Avatar/index.js +1 -1
  5. package/dist/AvatarGroup/index.cjs +3 -3
  6. package/dist/AvatarGroup/index.js +2 -2
  7. package/dist/Badge/index.cjs +1 -1
  8. package/dist/Badge/index.js +1 -1
  9. package/dist/Breadcrumb/index.cjs +3 -3
  10. package/dist/Breadcrumb/index.js +2 -2
  11. package/dist/Button/index.cjs +1 -1
  12. package/dist/Button/index.js +1 -1
  13. package/dist/Card/index.cjs +3 -3
  14. package/dist/Card/index.js +2 -2
  15. package/dist/Drawer/index.cjs +77 -0
  16. package/dist/Drawer/index.cjs.map +1 -0
  17. package/dist/Drawer/index.d.cts +142 -0
  18. package/dist/Drawer/index.d.ts +142 -0
  19. package/dist/Drawer/index.js +77 -0
  20. package/dist/Drawer/index.js.map +1 -0
  21. package/dist/Json/index.cjs +3 -3
  22. package/dist/Json/index.d.cts +3 -2
  23. package/dist/Json/index.d.ts +3 -2
  24. package/dist/Json/index.js +2 -2
  25. package/dist/Json-DZue23GO.d.cts +24 -0
  26. package/dist/Json-DZue23GO.d.ts +24 -0
  27. package/dist/Label/index.cjs +1 -1
  28. package/dist/Label/index.js +1 -1
  29. package/dist/Menu/index.cjs +3 -3
  30. package/dist/Menu/index.js +2 -2
  31. package/dist/Modal/index.cjs +1 -1
  32. package/dist/Modal/index.js +1 -1
  33. package/dist/Popover/index.cjs +3 -3
  34. package/dist/Popover/index.js +2 -2
  35. package/dist/ScrollShadow/index.cjs +1 -1
  36. package/dist/ScrollShadow/index.js +1 -1
  37. package/dist/Table/index.cjs +112 -0
  38. package/dist/Table/index.cjs.map +1 -0
  39. package/dist/Table/index.d.cts +244 -0
  40. package/dist/Table/index.d.ts +244 -0
  41. package/dist/Table/index.js +112 -0
  42. package/dist/Table/index.js.map +1 -0
  43. package/dist/Tabs/index.cjs +1 -1
  44. package/dist/Tabs/index.js +1 -1
  45. package/dist/Tooltip/index.cjs +1 -1
  46. package/dist/Tooltip/index.js +1 -1
  47. package/dist/{chunk-37C63OKM.cjs → chunk-2WDAJ6ER.cjs} +9 -5
  48. package/dist/chunk-2WDAJ6ER.cjs.map +1 -0
  49. package/dist/{chunk-EIOL2HNA.js → chunk-33DBA7U2.js} +8 -5
  50. package/dist/{chunk-EIOL2HNA.js.map → chunk-33DBA7U2.js.map} +1 -1
  51. package/dist/{chunk-JDLU5AUA.js → chunk-3QI2ODV2.js} +9 -5
  52. package/dist/{chunk-JDLU5AUA.js.map → chunk-3QI2ODV2.js.map} +1 -1
  53. package/dist/{chunk-L2RCVUXK.js → chunk-7LABJBKF.js} +2 -2
  54. package/dist/{chunk-L2RCVUXK.js.map → chunk-7LABJBKF.js.map} +1 -1
  55. package/dist/{chunk-OP6ST4KB.cjs → chunk-7XJHVFT3.cjs} +16 -14
  56. package/dist/chunk-7XJHVFT3.cjs.map +1 -0
  57. package/dist/{chunk-JPALSO5E.cjs → chunk-AVYWDZ7X.cjs} +8 -4
  58. package/dist/chunk-AVYWDZ7X.cjs.map +1 -0
  59. package/dist/{chunk-APEDJG3R.js → chunk-CZJKT7IC.js} +7 -3
  60. package/dist/{chunk-APEDJG3R.js.map → chunk-CZJKT7IC.js.map} +1 -1
  61. package/dist/chunk-D4TLDLEX.cjs +63 -0
  62. package/dist/chunk-D4TLDLEX.cjs.map +1 -0
  63. package/dist/{chunk-5WRI5ZAA.js → chunk-J7N2552D.js} +33 -1
  64. package/dist/{chunk-C2BIHVLT.js → chunk-LCSYN3DI.js} +180 -96
  65. package/dist/chunk-LCSYN3DI.js.map +1 -0
  66. package/dist/{chunk-RMLPCTDU.js → chunk-LPCCBJ2T.js} +8 -5
  67. package/dist/{chunk-RMLPCTDU.js.map → chunk-LPCCBJ2T.js.map} +1 -1
  68. package/dist/{chunk-5HEZFVFG.cjs → chunk-LY45VQ2E.cjs} +3 -3
  69. package/dist/chunk-LY45VQ2E.cjs.map +1 -0
  70. package/dist/{chunk-RJAVAHBK.cjs → chunk-NVNT4PMS.cjs} +9 -6
  71. package/dist/chunk-NVNT4PMS.cjs.map +1 -0
  72. package/dist/{chunk-XFUHF75Z.cjs → chunk-OLKLIWBE.cjs} +213 -129
  73. package/dist/chunk-OLKLIWBE.cjs.map +1 -0
  74. package/dist/{chunk-337S7HUF.js → chunk-XVCKJE3P.js} +14 -12
  75. package/dist/{chunk-337S7HUF.js.map → chunk-XVCKJE3P.js.map} +1 -1
  76. package/dist/{chunk-VHEIRVBB.cjs → chunk-ZXGEK67F.cjs} +9 -6
  77. package/dist/chunk-ZXGEK67F.cjs.map +1 -0
  78. package/dist/hooks/index.cjs +1 -1
  79. package/dist/hooks/index.js +1 -1
  80. package/dist/index.cjs +15 -15
  81. package/dist/index.cjs.map +1 -1
  82. package/dist/index.d.cts +1 -1
  83. package/dist/index.d.ts +1 -1
  84. package/dist/index.js +16 -16
  85. package/package.json +34 -22
  86. package/dist/Json-BbMeuEvE.d.cts +0 -18
  87. package/dist/Json-BbMeuEvE.d.ts +0 -18
  88. package/dist/chunk-37C63OKM.cjs.map +0 -1
  89. package/dist/chunk-5HEZFVFG.cjs.map +0 -1
  90. package/dist/chunk-C2BIHVLT.js.map +0 -1
  91. package/dist/chunk-DZUJEN5N.cjs +0 -31
  92. package/dist/chunk-DZUJEN5N.cjs.map +0 -1
  93. package/dist/chunk-JPALSO5E.cjs.map +0 -1
  94. package/dist/chunk-OP6ST4KB.cjs.map +0 -1
  95. package/dist/chunk-RJAVAHBK.cjs.map +0 -1
  96. package/dist/chunk-VHEIRVBB.cjs.map +0 -1
  97. package/dist/chunk-XFUHF75Z.cjs.map +0 -1
  98. /package/dist/{chunk-5WRI5ZAA.js.map → chunk-J7N2552D.js.map} +0 -0
@@ -1,7 +1,11 @@
1
- "use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true});
2
2
 
3
3
  var _chunkHVLEV6BGcjs = require('./chunk-HVLEV6BG.cjs');
4
4
 
5
+
6
+
7
+ var _chunkD4TLDLEXcjs = require('./chunk-D4TLDLEX.cjs');
8
+
5
9
  // src/AvatarGroup/AvatarGroup.tsx
6
10
  var _avatar = require('@nextui-org/avatar');
7
11
  var _jsxruntime = require('react/jsx-runtime');
@@ -24,32 +28,30 @@ var AvatarGroup = ({
24
28
  isDisabled: disabled,
25
29
  radius: rounded,
26
30
  size,
27
- children: _optionalChain([avatars, 'optionalAccess', _ => _.map, 'call', _2 => _2((avatar) => {
31
+ children: avatars == null ? void 0 : avatars.map((avatar) => {
28
32
  return AvatarWrapper ? (
29
33
  // eslint-disable-next-line react/jsx-props-no-spreading
30
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, AvatarWrapper, { ...avatar.wrapperProps, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
34
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, AvatarWrapper, _chunkD4TLDLEXcjs.__spreadProps.call(void 0, _chunkD4TLDLEXcjs.__spreadValues.call(void 0, {}, avatar.wrapperProps), { children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
31
35
  _chunkHVLEV6BGcjs.Avatar_default,
32
- {
33
- ...avatar,
34
- disabled: disabled || _optionalChain([avatar, 'optionalAccess', _3 => _3.disabled]),
36
+ _chunkD4TLDLEXcjs.__spreadProps.call(void 0, _chunkD4TLDLEXcjs.__spreadValues.call(void 0, {}, avatar), {
37
+ disabled: disabled || (avatar == null ? void 0 : avatar.disabled),
35
38
  rounded,
36
39
  bordered,
37
40
  size
38
- },
41
+ }),
39
42
  avatar.src
40
- ) })
43
+ ) }))
41
44
  ) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
42
45
  _chunkHVLEV6BGcjs.Avatar_default,
43
- {
44
- ...avatar,
45
- disabled: disabled || _optionalChain([avatar, 'optionalAccess', _4 => _4.disabled]),
46
+ _chunkD4TLDLEXcjs.__spreadProps.call(void 0, _chunkD4TLDLEXcjs.__spreadValues.call(void 0, {}, avatar), {
47
+ disabled: disabled || (avatar == null ? void 0 : avatar.disabled),
46
48
  rounded,
47
49
  bordered,
48
50
  size
49
- },
51
+ }),
50
52
  avatar.src
51
53
  );
52
- })])
54
+ })
53
55
  }
54
56
  );
55
57
  };
@@ -62,4 +64,4 @@ var AvatarGroup_default2 = AvatarGroup_default;
62
64
 
63
65
 
64
66
  exports.AvatarGroup_default = AvatarGroup_default; exports.AvatarGroup_default2 = AvatarGroup_default2;
65
- //# sourceMappingURL=chunk-OP6ST4KB.cjs.map
67
+ //# sourceMappingURL=chunk-7XJHVFT3.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["/home/runner/work/pixels/pixels/packages/pixels/dist/chunk-7XJHVFT3.cjs","../src/AvatarGroup/AvatarGroup.tsx","../src/AvatarGroup/index.ts"],"names":["AvatarGroup_default"],"mappings":"AAAA;AACE;AACF,wDAA6B;AAC7B;AACE;AACA;AACF,wDAA6B;AAC7B;AACA;ACLA,4CAA+C;AAoDnC,+CAAA;AAvBZ,IAAM,YAAA,EAAc,CAAC;AAAA,EACnB,SAAA,EAAW,KAAA;AAAA,EACX,QAAA,EAAU,MAAA;AAAA,EACV,UAAA,EAAY,EAAA;AAAA,EACZ,SAAA,EAAW,KAAA;AAAA,EACX,KAAA,EAAO,IAAA;AAAA,EACP,QAAA,EAAU,CAAC,CAAA;AAAA,EACX,IAAA,EAAM,CAAA;AAAA,EACN,aAAA,EAAe,cAAA,EAAgB,KAAA;AACjC,CAAA,EAAA,GAAwB;AACtB,EAAA,uBACE,6BAAA;AAAA,IAAC,mBAAA;AAAA,IAAA;AAAA,MACC,GAAA;AAAA,MACA,SAAA;AAAA,MACA,UAAA,EAAY,QAAA;AAAA,MACZ,UAAA,EAAY,QAAA;AAAA,MACZ,MAAA,EAAQ,OAAA;AAAA,MACR,IAAA;AAAA,MAEC,QAAA,EAAA,QAAA,GAAA,KAAA,EAAA,KAAA,EAAA,EAAA,OAAA,CAAS,GAAA,CAAI,CAAC,MAAA,EAAA,GAAW;AACxB,QAAA,OAAO,cAAA,EAAA;AAAA;AAAA,0BAEL,6BAAA,aAAC,EAAA,6CAAA,8CAAA,CAAA,CAAA,EAAkB,MAAA,CAAO,YAAA,CAAA,EAAzB,EACC,QAAA,kBAAA,6BAAA;AAAA,YAAC,gCAAA;AAAA,YAAA,6CAAA,8CAAA,CAAA,CAAA,EAGK,MAAA,CAAA,EAHL;AAAA,cAIC,QAAA,EAAU,SAAA,GAAA,CAAY,OAAA,GAAA,KAAA,EAAA,KAAA,EAAA,EAAA,MAAA,CAAQ,QAAA,CAAA;AAAA,cAC9B,OAAA;AAAA,cACA,QAAA;AAAA,cACA;AAAA,YAAA,CAAA,CAAA;AAAA,YANK,MAAA,CAAO;AAAA,UAOd,EAAA,CAAA,CACF;AAAA,QAAA,EAAA,kBAEA,6BAAA;AAAA,UAAC,gCAAA;AAAA,UAAA,6CAAA,8CAAA,CAAA,CAAA,EAGK,MAAA,CAAA,EAHL;AAAA,YAIC,QAAA,EAAU,SAAA,GAAA,CAAY,OAAA,GAAA,KAAA,EAAA,KAAA,EAAA,EAAA,MAAA,CAAQ,QAAA,CAAA;AAAA,YAC9B,OAAA;AAAA,YACA,QAAA;AAAA,YACA;AAAA,UAAA,CAAA,CAAA;AAAA,UANK,MAAA,CAAO;AAAA,QAOd,CAAA;AAAA,MAEJ,CAAA;AAAA,IAAA;AAAA,EACF,CAAA;AAEJ,CAAA;AAEA,IAAO,oBAAA,EAAQ,WAAA;ADvBf;AACA;AErDA,IAAOA,qBAAAA,EAAQ,mBAAA;AFuDf;AACA;AACE;AACA;AACF,uGAAC","file":"/home/runner/work/pixels/pixels/packages/pixels/dist/chunk-7XJHVFT3.cjs","sourcesContent":[null,"import type { JSX } from 'react';\nimport type { AvatarProps } from '../Avatar/Avatar';\n\nimport { AvatarGroup as NextAvatarGroup } from '@nextui-org/avatar';\n\nimport { Avatar } from '../Avatar';\n\nexport interface AvatarGroupProps {\n /* Display a border ring around the Avatar */\n bordered?: boolean;\n /* Roundness of the border around the Avatar */\n rounded?: 'none' | 'sm' | 'md' | 'lg' | 'full';\n /** CSS class name */\n className?: string;\n /* Disables the Avatar */\n disabled?: boolean;\n /* Size of the Avatar */\n size?: 'sm' | 'md' | 'lg';\n /* Maximum number of avatars to display before +X is displayed */\n max?: number;\n /* Array of avatarProps */\n avatars?: (Omit<AvatarProps, 'size' | 'rounded' | 'bordered'> & {\n /* Custom wrapperProps for each avatarWrapper */\n wrapperProps?: Record<string, unknown>;\n })[];\n /* Custom wrapper for each avatar */\n avatarWrapper?: JSX.ElementType;\n}\n\n/**\n * AvatarGroup component based on [NextUI AvatarGroup](https://nextui.org/docs/components/avatar)\n */\nconst AvatarGroup = ({\n bordered = false,\n rounded = 'full',\n className = '',\n disabled = false,\n size = 'md',\n avatars = [],\n max = 3,\n avatarWrapper: AvatarWrapper = undefined,\n}: AvatarGroupProps) => {\n return (\n <NextAvatarGroup\n max={max}\n className={className}\n isBordered={bordered}\n isDisabled={disabled}\n radius={rounded}\n size={size}\n >\n {avatars?.map((avatar) => {\n return AvatarWrapper ? (\n // eslint-disable-next-line react/jsx-props-no-spreading\n <AvatarWrapper {...avatar.wrapperProps}>\n <Avatar\n key={avatar.src}\n // eslint-disable-next-line react/jsx-props-no-spreading\n {...avatar}\n disabled={disabled || avatar?.disabled}\n rounded={rounded}\n bordered={bordered}\n size={size}\n />\n </AvatarWrapper>\n ) : (\n <Avatar\n key={avatar.src}\n // eslint-disable-next-line react/jsx-props-no-spreading\n {...avatar}\n disabled={disabled || avatar?.disabled}\n rounded={rounded}\n bordered={bordered}\n size={size}\n />\n );\n })}\n </NextAvatarGroup>\n );\n};\n\nexport default AvatarGroup;\n","import AvatarGroup from './AvatarGroup';\n\nexport type { AvatarGroupProps } from './AvatarGroup';\n\nexport { AvatarGroup };\n\nexport default AvatarGroup;\n"]}
@@ -1,4 +1,8 @@
1
- "use strict";Object.defineProperty(exports, "__esModule", {value: true});// src/Card/Card.tsx
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true});
2
+
3
+ var _chunkD4TLDLEXcjs = require('./chunk-D4TLDLEX.cjs');
4
+
5
+ // src/Card/Card.tsx
2
6
 
3
7
 
4
8
 
@@ -25,11 +29,11 @@ var Card = ({
25
29
  footer = void 0
26
30
  }) => {
27
31
  const variants = cardVariants();
28
- const { divider: dividerClassName, ...classNames } = _pixelutils.variantsToClassNames.call(void 0,
32
+ const _a = _pixelutils.variantsToClassNames.call(void 0,
29
33
  variants,
30
34
  className,
31
35
  "base"
32
- );
36
+ ), { divider: dividerClassName } = _a, classNames = _chunkD4TLDLEXcjs.__objRest.call(void 0, _a, ["divider"]);
33
37
  const divider = /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _divider.Divider, { className: dividerClassName });
34
38
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
35
39
  _card.Card,
@@ -63,4 +67,4 @@ var Card_default2 = Card_default;
63
67
 
64
68
 
65
69
  exports.cardVariants = cardVariants; exports.Card_default = Card_default; exports.Card_default2 = Card_default2;
66
- //# sourceMappingURL=chunk-JPALSO5E.cjs.map
70
+ //# sourceMappingURL=chunk-AVYWDZ7X.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["/home/runner/work/pixels/pixels/packages/pixels/dist/chunk-AVYWDZ7X.cjs","../src/Card/Card.tsx","../src/Card/index.ts"],"names":[],"mappings":"AAAA;AACE;AACF,wDAA6B;AAC7B;AACA;ACDA;AACE;AACA;AACA;AACA;AAAc,wCACT;AACP,8CAAuC;AAEvC,oDAAyC;AA+CvB,+CAAA;AA5CX,IAAM,aAAA,EAAe,4BAAA;AAAG,EAC7B,KAAA,EAAO;AAAA,IACL,IAAA,EAAM,uBAAA;AAAA,IACN,IAAA,EAAM,EAAA;AAAA,IACN,OAAA,EAAS,qBAAA;AAAA,IACT,MAAA,EAAQ,EAAA;AAAA,IACR,MAAA,EAAQ;AAAA,EACV;AACF,CAAC,CAAA;AAqBD,IAAM,KAAA,EAAO,CAAC;AAAA,EACZ,SAAA,EAAW,IAAA;AAAA,EACX,UAAA,EAAY,KAAA,CAAA;AAAA,EACZ,OAAA,EAAS,KAAA,CAAA;AAAA,EACT,OAAA,EAAS,KAAA,CAAA;AAAA,EACT,OAAA,EAAS,KAAA;AACX,CAAA,EAAA,GAAiB;AAEf,EAAA,MAAM,SAAA,EAAW,YAAA,CAAa,CAAA;AAC9B,EAAA,MAAqD,GAAA,EAAA,8CAAA;AAAA,IACnD,QAAA;AAAA,IACA,SAAA;AAAA,IACA;AAAA,EACF,CAAA,EAJQ,EAAA,OAAA,EAAS,iBApDnB,EAAA,EAoDuD,EAAA,EAAf,WAAA,EAAA,yCAAA,EAAe,EAAf,CAA9B,SAAA,CAAA,CAAA;AAMR,EAAA,MAAM,QAAA,kBAAU,6BAAA,gBAAC,EAAA,EAAY,SAAA,EAAW,iBAAA,CAAkB,CAAA;AAE1D,EAAA,uBACE,8BAAA;AAAA,IAAC,UAAA;AAAA,IAAA;AAAA,MACC,UAAA;AAAA,MACA,aAAA,EAAa,OAAA,GAAU,CAAA,KAAA,EAAQ,MAAM,CAAA,CAAA;AAC5B,MAAA;AACF,MAAA;AACA,MAAA;AAEN,MAAA;AACC,QAAA;AACG,0BAAA;AAGA,UAAA;AACH,QAAA;AAEY,wBAAA;AAIZ,QAAA;AACG,UAAA;AACA,0BAAA;AAGH,QAAA;AAAA,MAAA;AAAA,IAAA;AAEJ,EAAA;AAEJ;AAEe;AD/B+B;AACA;AEvD/B;AFyD+B;AACA;AACA;AACA;AACA;AACA","file":"/home/runner/work/pixels/pixels/packages/pixels/dist/chunk-AVYWDZ7X.cjs","sourcesContent":[null,"import type { TVClassName, TVProps } from '@fuf-stack/pixel-utils';\nimport type { ReactNode } from 'react';\n\nimport {\n Card as NextCard,\n CardBody as NextCardBody,\n CardFooter as NextCardFooter,\n CardHeader as NextCardHeader,\n} from '@nextui-org/card';\nimport { Divider as NextDivider } from '@nextui-org/divider';\n\nimport { tv, variantsToClassNames } from '@fuf-stack/pixel-utils';\n\n// card styling variants\nexport const cardVariants = tv({\n slots: {\n base: 'border border-divider',\n body: '',\n divider: 'my-0 border-divider',\n footer: '',\n header: 'text-base font-semibold',\n },\n});\n\ntype VariantProps = TVProps<typeof cardVariants>;\ntype ClassName = TVClassName<typeof cardVariants>;\n\nexport interface CardProps extends VariantProps {\n /** card body content */\n children?: ReactNode;\n /** CSS class name */\n className?: ClassName;\n /** footer content */\n footer?: ReactNode;\n /** header content */\n header?: ReactNode;\n /** HTML data-testid attribute used in e2e tests */\n testId?: string;\n}\n\n/**\n * Card component based on [NextUI Card](https://nextui.org/docs/components/card)\n */\nconst Card = ({\n children = null,\n className = undefined,\n testId = undefined,\n header = undefined,\n footer = undefined,\n}: CardProps) => {\n // classNames from slots\n const variants = cardVariants();\n const { divider: dividerClassName, ...classNames } = variantsToClassNames(\n variants,\n className,\n 'base',\n );\n\n const divider = <NextDivider className={dividerClassName} />;\n\n return (\n <NextCard\n classNames={classNames}\n data-testid={testId && `card_${testId}`}\n fullWidth\n radius=\"sm\"\n shadow=\"none\"\n >\n {header && (\n <>\n <NextCardHeader data-testid={testId && `card_header_${testId}`}>\n {header}\n </NextCardHeader>\n {divider}\n </>\n )}\n <NextCardBody data-testid={testId && `card_body_${testId}`}>\n {children}\n </NextCardBody>\n {footer && (\n <>\n {divider}\n <NextCardFooter data-testid={testId && `card_footer_${testId}`}>\n {footer}\n </NextCardFooter>\n </>\n )}\n </NextCard>\n );\n};\n\nexport default Card;\n","import Card, { cardVariants } from './Card';\n\nexport type { CardProps } from './Card';\n\nexport { Card, cardVariants };\n\nexport default Card;\n"]}
@@ -1,3 +1,7 @@
1
+ import {
2
+ __objRest
3
+ } from "./chunk-J7N2552D.js";
4
+
1
5
  // src/Card/Card.tsx
2
6
  import {
3
7
  Card as NextCard,
@@ -25,11 +29,11 @@ var Card = ({
25
29
  footer = void 0
26
30
  }) => {
27
31
  const variants = cardVariants();
28
- const { divider: dividerClassName, ...classNames } = variantsToClassNames(
32
+ const _a = variantsToClassNames(
29
33
  variants,
30
34
  className,
31
35
  "base"
32
- );
36
+ ), { divider: dividerClassName } = _a, classNames = __objRest(_a, ["divider"]);
33
37
  const divider = /* @__PURE__ */ jsx(NextDivider, { className: dividerClassName });
34
38
  return /* @__PURE__ */ jsxs(
35
39
  NextCard,
@@ -63,4 +67,4 @@ export {
63
67
  Card_default,
64
68
  Card_default2
65
69
  };
66
- //# sourceMappingURL=chunk-APEDJG3R.js.map
70
+ //# sourceMappingURL=chunk-CZJKT7IC.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/Card/Card.tsx","../src/Card/index.ts"],"sourcesContent":["import type { TVClassName, TVProps } from '@fuf-stack/pixel-utils';\nimport type { ReactNode } from 'react';\n\nimport {\n Card as NextCard,\n CardBody as NextCardBody,\n CardFooter as NextCardFooter,\n CardHeader as NextCardHeader,\n} from '@nextui-org/card';\nimport { Divider as NextDivider } from '@nextui-org/divider';\n\nimport { tv, variantsToClassNames } from '@fuf-stack/pixel-utils';\n\n// card styling variants\nexport const cardVariants = tv({\n slots: {\n base: 'border border-divider',\n body: '',\n divider: 'my-0 border-divider',\n footer: '',\n header: 'text-base font-semibold',\n },\n});\n\ntype VariantProps = TVProps<typeof cardVariants>;\ntype ClassName = TVClassName<typeof cardVariants>;\n\nexport interface CardProps extends VariantProps {\n /** card body content */\n children?: ReactNode;\n /** CSS class name */\n className?: ClassName;\n /** footer content */\n footer?: ReactNode;\n /** header content */\n header?: ReactNode;\n /** HTML data-testid attribute used in e2e tests */\n testId?: string;\n}\n\n/**\n * Card component based on [NextUI Card](https://nextui.org/docs/components/card)\n */\nconst Card = ({\n children = null,\n className = undefined,\n testId = undefined,\n header = undefined,\n footer = undefined,\n}: CardProps) => {\n // classNames from slots\n const variants = cardVariants();\n const { divider: dividerClassName, ...classNames } = variantsToClassNames(\n variants,\n className,\n 'base',\n );\n\n const divider = <NextDivider className={dividerClassName} />;\n\n return (\n <NextCard\n classNames={classNames}\n data-testid={testId && `card_${testId}`}\n fullWidth\n radius=\"sm\"\n shadow=\"none\"\n >\n {header && (\n <>\n <NextCardHeader data-testid={testId && `card_header_${testId}`}>\n {header}\n </NextCardHeader>\n {divider}\n </>\n )}\n <NextCardBody data-testid={testId && `card_body_${testId}`}>\n {children}\n </NextCardBody>\n {footer && (\n <>\n {divider}\n <NextCardFooter data-testid={testId && `card_footer_${testId}`}>\n {footer}\n </NextCardFooter>\n </>\n )}\n </NextCard>\n );\n};\n\nexport default Card;\n","import Card, { cardVariants } from './Card';\n\nexport type { CardProps } from './Card';\n\nexport { Card, cardVariants };\n\nexport default Card;\n"],"mappings":";AAGA;AAAA,EACE,QAAQ;AAAA,EACR,YAAY;AAAA,EACZ,cAAc;AAAA,EACd,cAAc;AAAA,OACT;AACP,SAAS,WAAW,mBAAmB;AAEvC,SAAS,IAAI,4BAA4B;AA+CvB,SAWV,UAXU,KAWV,YAXU;AA5CX,IAAM,eAAe,GAAG;AAAA,EAC7B,OAAO;AAAA,IACL,MAAM;AAAA,IACN,MAAM;AAAA,IACN,SAAS;AAAA,IACT,QAAQ;AAAA,IACR,QAAQ;AAAA,EACV;AACF,CAAC;AAqBD,IAAM,OAAO,CAAC;AAAA,EACZ,WAAW;AAAA,EACX,YAAY;AAAA,EACZ,SAAS;AAAA,EACT,SAAS;AAAA,EACT,SAAS;AACX,MAAiB;AAEf,QAAM,WAAW,aAAa;AAC9B,QAAM,EAAE,SAAS,kBAAkB,GAAG,WAAW,IAAI;AAAA,IACnD;AAAA,IACA;AAAA,IACA;AAAA,EACF;AAEA,QAAM,UAAU,oBAAC,eAAY,WAAW,kBAAkB;AAE1D,SACE;AAAA,IAAC;AAAA;AAAA,MACC;AAAA,MACA,eAAa,UAAU,QAAQ,MAAM;AAAA,MACrC,WAAS;AAAA,MACT,QAAO;AAAA,MACP,QAAO;AAAA,MAEN;AAAA,kBACC,iCACE;AAAA,8BAAC,kBAAe,eAAa,UAAU,eAAe,MAAM,IACzD,kBACH;AAAA,UACC;AAAA,WACH;AAAA,QAEF,oBAAC,gBAAa,eAAa,UAAU,aAAa,MAAM,IACrD,UACH;AAAA,QACC,UACC,iCACG;AAAA;AAAA,UACD,oBAAC,kBAAe,eAAa,UAAU,eAAe,MAAM,IACzD,kBACH;AAAA,WACF;AAAA;AAAA;AAAA,EAEJ;AAEJ;AAEA,IAAO,eAAQ;;;ACrFf,IAAOA,gBAAQ;","names":["Card_default"]}
1
+ {"version":3,"sources":["../src/Card/Card.tsx","../src/Card/index.ts"],"sourcesContent":["import type { TVClassName, TVProps } from '@fuf-stack/pixel-utils';\nimport type { ReactNode } from 'react';\n\nimport {\n Card as NextCard,\n CardBody as NextCardBody,\n CardFooter as NextCardFooter,\n CardHeader as NextCardHeader,\n} from '@nextui-org/card';\nimport { Divider as NextDivider } from '@nextui-org/divider';\n\nimport { tv, variantsToClassNames } from '@fuf-stack/pixel-utils';\n\n// card styling variants\nexport const cardVariants = tv({\n slots: {\n base: 'border border-divider',\n body: '',\n divider: 'my-0 border-divider',\n footer: '',\n header: 'text-base font-semibold',\n },\n});\n\ntype VariantProps = TVProps<typeof cardVariants>;\ntype ClassName = TVClassName<typeof cardVariants>;\n\nexport interface CardProps extends VariantProps {\n /** card body content */\n children?: ReactNode;\n /** CSS class name */\n className?: ClassName;\n /** footer content */\n footer?: ReactNode;\n /** header content */\n header?: ReactNode;\n /** HTML data-testid attribute used in e2e tests */\n testId?: string;\n}\n\n/**\n * Card component based on [NextUI Card](https://nextui.org/docs/components/card)\n */\nconst Card = ({\n children = null,\n className = undefined,\n testId = undefined,\n header = undefined,\n footer = undefined,\n}: CardProps) => {\n // classNames from slots\n const variants = cardVariants();\n const { divider: dividerClassName, ...classNames } = variantsToClassNames(\n variants,\n className,\n 'base',\n );\n\n const divider = <NextDivider className={dividerClassName} />;\n\n return (\n <NextCard\n classNames={classNames}\n data-testid={testId && `card_${testId}`}\n fullWidth\n radius=\"sm\"\n shadow=\"none\"\n >\n {header && (\n <>\n <NextCardHeader data-testid={testId && `card_header_${testId}`}>\n {header}\n </NextCardHeader>\n {divider}\n </>\n )}\n <NextCardBody data-testid={testId && `card_body_${testId}`}>\n {children}\n </NextCardBody>\n {footer && (\n <>\n {divider}\n <NextCardFooter data-testid={testId && `card_footer_${testId}`}>\n {footer}\n </NextCardFooter>\n </>\n )}\n </NextCard>\n );\n};\n\nexport default Card;\n","import Card, { cardVariants } from './Card';\n\nexport type { CardProps } from './Card';\n\nexport { Card, cardVariants };\n\nexport default Card;\n"],"mappings":";;;;;AAGA;AAAA,EACE,QAAQ;AAAA,EACR,YAAY;AAAA,EACZ,cAAc;AAAA,EACd,cAAc;AAAA,OACT;AACP,SAAS,WAAW,mBAAmB;AAEvC,SAAS,IAAI,4BAA4B;AA+CvB,SAWV,UAXU,KAWV,YAXU;AA5CX,IAAM,eAAe,GAAG;AAAA,EAC7B,OAAO;AAAA,IACL,MAAM;AAAA,IACN,MAAM;AAAA,IACN,SAAS;AAAA,IACT,QAAQ;AAAA,IACR,QAAQ;AAAA,EACV;AACF,CAAC;AAqBD,IAAM,OAAO,CAAC;AAAA,EACZ,WAAW;AAAA,EACX,YAAY;AAAA,EACZ,SAAS;AAAA,EACT,SAAS;AAAA,EACT,SAAS;AACX,MAAiB;AAEf,QAAM,WAAW,aAAa;AAC9B,QAAqD;AAAA,IACnD;AAAA,IACA;AAAA,IACA;AAAA,EACF,GAJQ,WAAS,iBApDnB,IAoDuD,IAAf,uBAAe,IAAf,CAA9B;AAMR,QAAM,UAAU,oBAAC,eAAY,WAAW,kBAAkB;AAE1D,SACE;AAAA,IAAC;AAAA;AAAA,MACC;AAAA,MACA,eAAa,UAAU,QAAQ,MAAM;AAAA,MACrC,WAAS;AAAA,MACT,QAAO;AAAA,MACP,QAAO;AAAA,MAEN;AAAA,kBACC,iCACE;AAAA,8BAAC,kBAAe,eAAa,UAAU,eAAe,MAAM,IACzD,kBACH;AAAA,UACC;AAAA,WACH;AAAA,QAEF,oBAAC,gBAAa,eAAa,UAAU,aAAa,MAAM,IACrD,UACH;AAAA,QACC,UACC,iCACG;AAAA;AAAA,UACD,oBAAC,kBAAe,eAAa,UAAU,eAAe,MAAM,IACzD,kBACH;AAAA,WACF;AAAA;AAAA;AAAA,EAEJ;AAEJ;AAEA,IAAO,eAAQ;;;ACrFf,IAAOA,gBAAQ;","names":["Card_default"]}
@@ -0,0 +1,63 @@
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true});var __create = Object.create;
2
+ var __defProp = Object.defineProperty;
3
+ var __defProps = Object.defineProperties;
4
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
+ var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
6
+ var __getOwnPropNames = Object.getOwnPropertyNames;
7
+ var __getOwnPropSymbols = Object.getOwnPropertySymbols;
8
+ var __getProtoOf = Object.getPrototypeOf;
9
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
10
+ var __propIsEnum = Object.prototype.propertyIsEnumerable;
11
+ var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
12
+ var __spreadValues = (a, b) => {
13
+ for (var prop in b || (b = {}))
14
+ if (__hasOwnProp.call(b, prop))
15
+ __defNormalProp(a, prop, b[prop]);
16
+ if (__getOwnPropSymbols)
17
+ for (var prop of __getOwnPropSymbols(b)) {
18
+ if (__propIsEnum.call(b, prop))
19
+ __defNormalProp(a, prop, b[prop]);
20
+ }
21
+ return a;
22
+ };
23
+ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
24
+ var __objRest = (source, exclude) => {
25
+ var target = {};
26
+ for (var prop in source)
27
+ if (__hasOwnProp.call(source, prop) && exclude.indexOf(prop) < 0)
28
+ target[prop] = source[prop];
29
+ if (source != null && __getOwnPropSymbols)
30
+ for (var prop of __getOwnPropSymbols(source)) {
31
+ if (exclude.indexOf(prop) < 0 && __propIsEnum.call(source, prop))
32
+ target[prop] = source[prop];
33
+ }
34
+ return target;
35
+ };
36
+ var __commonJS = (cb, mod) => function __require() {
37
+ return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports;
38
+ };
39
+ var __copyProps = (to, from, except, desc) => {
40
+ if (from && typeof from === "object" || typeof from === "function") {
41
+ for (let key of __getOwnPropNames(from))
42
+ if (!__hasOwnProp.call(to, key) && key !== except)
43
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
44
+ }
45
+ return to;
46
+ };
47
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
48
+ // If the importer is in node compatibility mode or this is not an ESM
49
+ // file that has been converted to a CommonJS file using a Babel-
50
+ // compatible transform (i.e. "__esModule" has not been set), then set
51
+ // "default" to the CommonJS "module.exports" for node compatibility.
52
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
53
+ mod
54
+ ));
55
+
56
+
57
+
58
+
59
+
60
+
61
+
62
+ exports.__spreadValues = __spreadValues; exports.__spreadProps = __spreadProps; exports.__objRest = __objRest; exports.__commonJS = __commonJS; exports.__toESM = __toESM;
63
+ //# sourceMappingURL=chunk-D4TLDLEX.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["/home/runner/work/pixels/pixels/packages/pixels/dist/chunk-D4TLDLEX.cjs"],"names":[],"mappings":"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","file":"/home/runner/work/pixels/pixels/packages/pixels/dist/chunk-D4TLDLEX.cjs"}
@@ -1,9 +1,38 @@
1
1
  var __create = Object.create;
2
2
  var __defProp = Object.defineProperty;
3
+ var __defProps = Object.defineProperties;
3
4
  var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
+ var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
4
6
  var __getOwnPropNames = Object.getOwnPropertyNames;
7
+ var __getOwnPropSymbols = Object.getOwnPropertySymbols;
5
8
  var __getProtoOf = Object.getPrototypeOf;
6
9
  var __hasOwnProp = Object.prototype.hasOwnProperty;
10
+ var __propIsEnum = Object.prototype.propertyIsEnumerable;
11
+ var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
12
+ var __spreadValues = (a, b) => {
13
+ for (var prop in b || (b = {}))
14
+ if (__hasOwnProp.call(b, prop))
15
+ __defNormalProp(a, prop, b[prop]);
16
+ if (__getOwnPropSymbols)
17
+ for (var prop of __getOwnPropSymbols(b)) {
18
+ if (__propIsEnum.call(b, prop))
19
+ __defNormalProp(a, prop, b[prop]);
20
+ }
21
+ return a;
22
+ };
23
+ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
24
+ var __objRest = (source, exclude) => {
25
+ var target = {};
26
+ for (var prop in source)
27
+ if (__hasOwnProp.call(source, prop) && exclude.indexOf(prop) < 0)
28
+ target[prop] = source[prop];
29
+ if (source != null && __getOwnPropSymbols)
30
+ for (var prop of __getOwnPropSymbols(source)) {
31
+ if (exclude.indexOf(prop) < 0 && __propIsEnum.call(source, prop))
32
+ target[prop] = source[prop];
33
+ }
34
+ return target;
35
+ };
7
36
  var __commonJS = (cb, mod) => function __require() {
8
37
  return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports;
9
38
  };
@@ -25,7 +54,10 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
25
54
  ));
26
55
 
27
56
  export {
57
+ __spreadValues,
58
+ __spreadProps,
59
+ __objRest,
28
60
  __commonJS,
29
61
  __toESM
30
62
  };
31
- //# sourceMappingURL=chunk-5WRI5ZAA.js.map
63
+ //# sourceMappingURL=chunk-J7N2552D.js.map
@@ -3,8 +3,10 @@ import {
3
3
  } from "./chunk-ODLZQXBE.js";
4
4
  import {
5
5
  __commonJS,
6
+ __spreadProps,
7
+ __spreadValues,
6
8
  __toESM
7
- } from "./chunk-5WRI5ZAA.js";
9
+ } from "./chunk-J7N2552D.js";
8
10
 
9
11
  // ../../node_modules/.pnpm/@babel+runtime@7.26.0/node_modules/@babel/runtime/helpers/extends.js
10
12
  var require_extends = __commonJS({
@@ -52,9 +54,7 @@ var require_objectDestructuringEmpty = __commonJS({
52
54
  });
53
55
 
54
56
  // src/Json/Json.tsx
55
- import { useState as useState3 } from "react";
56
- import { FaChevronDown, FaChevronUp, FaTimesCircle } from "react-icons/fa";
57
- import { HiOutlineClipboard, HiOutlineClipboardCheck } from "react-icons/hi";
57
+ import { useMemo as useMemo2, useState as useState3 } from "react";
58
58
 
59
59
  // ../../node_modules/.pnpm/@uiw+react-json-view@2.0.0-alpha.30_@babel+runtime@7.26.0_react-dom@19.0.0_react@19.0.0__react@19.0.0/node_modules/@uiw/react-json-view/esm/index.js
60
60
  var import_extends21 = __toESM(require_extends());
@@ -2562,120 +2562,204 @@ var vscodeTheme = {
2562
2562
 
2563
2563
  // src/Json/Json.tsx
2564
2564
  import { useTheme } from "next-themes";
2565
- import { cn } from "@fuf-stack/pixel-utils";
2566
- import { Fragment as Fragment3, jsx, jsxs } from "react/jsx-runtime";
2565
+ import { cn as cn2 } from "@fuf-stack/pixel-utils";
2566
+
2567
+ // src/Json/jsonParser.ts
2568
+ var JsonParseError = class extends Error {
2569
+ constructor(message) {
2570
+ super(message);
2571
+ this.name = "JsonParseError";
2572
+ }
2573
+ };
2567
2574
  var getValue = (value) => {
2568
2575
  if (typeof value === "string") {
2569
- return JSON.parse(value);
2576
+ try {
2577
+ return JSON.parse(value);
2578
+ } catch (error) {
2579
+ throw new JsonParseError(
2580
+ `Invalid JSON string: ${error.message}`
2581
+ );
2582
+ }
2583
+ }
2584
+ if (value === null || value === void 0) {
2585
+ throw new JsonParseError("Value cannot be null or undefined");
2570
2586
  }
2571
2587
  if (typeof value === "object") {
2572
2588
  return value;
2573
2589
  }
2574
- throw new Error(`${typeof value} can not be visualized`);
2590
+ throw new JsonParseError(`${typeof value} cannot be visualized`);
2591
+ };
2592
+
2593
+ // src/Json/subcomponents/CopiedRenderer.tsx
2594
+ import { HiOutlineClipboard, HiOutlineClipboardCheck } from "react-icons/hi";
2595
+ import { cn } from "@fuf-stack/pixel-utils";
2596
+ import { jsx } from "react/jsx-runtime";
2597
+ var CopiedRenderer = () => {
2598
+ return /* @__PURE__ */ jsx(
2599
+ esm_default.Copied,
2600
+ {
2601
+ render: (props) => {
2602
+ const { style, onClick, className } = props;
2603
+ const isCopied = props["data-copied"];
2604
+ const elmClasses = cn(
2605
+ className,
2606
+ "absolute -right-4 -top-[2px] h-4 w-4 !fill-transparent pl-1",
2607
+ { "text-success": isCopied }
2608
+ );
2609
+ const handleKeyDown = (e) => {
2610
+ if (e.key === "Enter" || e.key === " ") {
2611
+ onClick == null ? void 0 : onClick(e);
2612
+ }
2613
+ };
2614
+ return /* @__PURE__ */ jsx(
2615
+ "span",
2616
+ {
2617
+ className: "relative !ml-0 !h-[1em] !w-0",
2618
+ style,
2619
+ "data-testid": "copy-button",
2620
+ role: "button",
2621
+ tabIndex: 0,
2622
+ onKeyDown: handleKeyDown,
2623
+ onClick: (e) => onClick == null ? void 0 : onClick(e),
2624
+ "aria-label": isCopied ? "Copied to clipboard" : "Copy to clipboard",
2625
+ children: isCopied ? /* @__PURE__ */ jsx(HiOutlineClipboardCheck, { className: elmClasses }) : /* @__PURE__ */ jsx(HiOutlineClipboard, { className: elmClasses })
2626
+ }
2627
+ );
2628
+ }
2629
+ }
2630
+ );
2575
2631
  };
2576
- var Json = ({ className = null, collapsed = false, value }) => {
2632
+ var CopiedRenderer_default = CopiedRenderer;
2633
+
2634
+ // src/Json/subcomponents/ErrorRenderer.tsx
2635
+ import { FaChevronDown, FaChevronUp, FaTimesCircle } from "react-icons/fa";
2636
+ import { Fragment as Fragment3, jsx as jsx2, jsxs } from "react/jsx-runtime";
2637
+ var ErrorRenderer = ({
2638
+ error,
2639
+ data,
2640
+ showDetails,
2641
+ onToggleDetails
2642
+ }) => {
2643
+ return /* @__PURE__ */ jsxs(
2644
+ "div",
2645
+ {
2646
+ className: "mb-4 flex flex-col items-center rounded-lg border border-danger bg-danger-50 p-4 text-sm text-danger",
2647
+ role: "alert",
2648
+ "aria-live": "polite",
2649
+ children: [
2650
+ /* @__PURE__ */ jsxs("div", { className: "flex w-full justify-between gap-6", children: [
2651
+ /* @__PURE__ */ jsxs("div", { className: "flex items-center", children: [
2652
+ /* @__PURE__ */ jsx2(FaTimesCircle, { className: "mr-2", "aria-hidden": "true" }),
2653
+ /* @__PURE__ */ jsx2("span", { className: "font-medium", children: "Failed to parse JSON data" })
2654
+ ] }),
2655
+ /* @__PURE__ */ jsx2(
2656
+ Button_default,
2657
+ {
2658
+ color: "danger",
2659
+ size: "sm",
2660
+ variant: "light",
2661
+ onClick: onToggleDetails,
2662
+ "aria-expanded": showDetails,
2663
+ "aria-controls": "error-details",
2664
+ children: showDetails ? /* @__PURE__ */ jsxs(Fragment3, { children: [
2665
+ /* @__PURE__ */ jsx2(FaChevronUp, { "aria-hidden": "true" }),
2666
+ " Hide Details"
2667
+ ] }) : /* @__PURE__ */ jsxs(Fragment3, { children: [
2668
+ /* @__PURE__ */ jsx2(FaChevronDown, { "aria-hidden": "true" }),
2669
+ " Show Details"
2670
+ ] })
2671
+ }
2672
+ )
2673
+ ] }),
2674
+ showDetails && /* @__PURE__ */ jsxs("div", { id: "error-details", className: "mt-4 w-full text-left", children: [
2675
+ /* @__PURE__ */ jsxs("div", { children: [
2676
+ /* @__PURE__ */ jsx2("strong", { children: "Error:" }),
2677
+ /* @__PURE__ */ jsx2("pre", { children: error instanceof Error ? `${error.name}: ${error.message}` : "Unknown error" })
2678
+ ] }),
2679
+ /* @__PURE__ */ jsxs("div", { className: "mt-4", children: [
2680
+ /* @__PURE__ */ jsx2("strong", { children: "Data:" }),
2681
+ /* @__PURE__ */ jsx2("pre", { children: typeof data !== "string" ? JSON.stringify(data, null, 2) : data })
2682
+ ] })
2683
+ ] })
2684
+ ]
2685
+ }
2686
+ );
2687
+ };
2688
+ var ErrorRenderer_default = ErrorRenderer;
2689
+
2690
+ // src/Json/subcomponents/NullRenderer.tsx
2691
+ import { jsx as jsx3 } from "react/jsx-runtime";
2692
+ var NullRenderer = () => {
2693
+ return /* @__PURE__ */ jsx3(
2694
+ esm_default.Null,
2695
+ {
2696
+ render: () => /* @__PURE__ */ jsx3("span", { className: "rounded bg-warning-100 px-1 text-xs text-warning-700", children: "null" })
2697
+ }
2698
+ );
2699
+ };
2700
+ var NullRenderer_default = NullRenderer;
2701
+
2702
+ // src/Json/Json.tsx
2703
+ import { jsx as jsx4, jsxs as jsxs2 } from "react/jsx-runtime";
2704
+ var Json = ({
2705
+ className = void 0,
2706
+ collapsed = false,
2707
+ value,
2708
+ maxHeight = void 0,
2709
+ onCopy = void 0,
2710
+ errorRenderer = void 0
2711
+ }) => {
2577
2712
  const [showDetails, setShowDetails] = useState3(false);
2578
2713
  const { resolvedTheme } = useTheme();
2579
- const isDarkMode = resolvedTheme === "dark" || document.body.classList.contains("dark");
2714
+ const isDarkMode = useMemo2(
2715
+ () => resolvedTheme === "dark" || document.body.classList.contains("dark"),
2716
+ [resolvedTheme]
2717
+ );
2718
+ const handleCopy = (event) => {
2719
+ const copiedValue = event.currentTarget.textContent || "";
2720
+ onCopy == null ? void 0 : onCopy(copiedValue);
2721
+ };
2580
2722
  let content = null;
2581
2723
  let error = null;
2582
2724
  try {
2583
- content = /* @__PURE__ */ jsx(
2584
- esm_default,
2725
+ const parsedValue = getValue(value);
2726
+ content = /* @__PURE__ */ jsx4(
2727
+ "div",
2585
2728
  {
2586
- className: "pr-5",
2587
- collapsed,
2588
- displayDataTypes: false,
2589
- style: {
2590
- ...isDarkMode ? vscodeTheme : lightTheme,
2591
- backgroundColor: "unset"
2592
- },
2593
- value: getValue(value),
2594
- children: /* @__PURE__ */ jsx(
2595
- esm_default.Copied,
2729
+ style: { maxHeight, overflowY: maxHeight ? "auto" : void 0 },
2730
+ className: "relative",
2731
+ children: /* @__PURE__ */ jsxs2(
2732
+ esm_default,
2596
2733
  {
2597
- render: ({
2598
- // @ts-expect-error this should be fine
2599
- "data-copied": copied,
2600
- style,
2601
- ...elmProps
2602
- }) => {
2603
- const elmClasses = cn(
2604
- elmProps.className,
2605
- "absolute -right-4 -top-[2px] h-4 w-4 !fill-transparent pl-1",
2606
- { "text-success": copied }
2607
- );
2608
- return /* @__PURE__ */ jsx(
2609
- "span",
2610
- {
2611
- className: "relative !ml-0 !h-[1em] !w-0",
2612
- style,
2613
- "data-testid": "copy-button",
2614
- children: copied ? /* @__PURE__ */ jsx(
2615
- HiOutlineClipboardCheck,
2616
- {
2617
- ...elmProps,
2618
- className: elmClasses
2619
- }
2620
- ) : (
2621
- // eslint-disable-next-line react/jsx-props-no-spreading
2622
- /* @__PURE__ */ jsx(HiOutlineClipboard, { ...elmProps, className: elmClasses })
2623
- )
2624
- }
2625
- );
2626
- }
2734
+ className: "pr-5",
2735
+ collapsed,
2736
+ displayDataTypes: false,
2737
+ style: __spreadProps(__spreadValues({}, isDarkMode ? vscodeTheme : lightTheme), {
2738
+ backgroundColor: "unset"
2739
+ }),
2740
+ value: parsedValue,
2741
+ onCopy: handleCopy,
2742
+ children: [
2743
+ /* @__PURE__ */ jsx4(CopiedRenderer_default, {}),
2744
+ /* @__PURE__ */ jsx4(NullRenderer_default, {})
2745
+ ]
2627
2746
  }
2628
2747
  )
2629
2748
  }
2630
2749
  );
2631
2750
  } catch (err) {
2632
- error = /* @__PURE__ */ jsxs(
2633
- "div",
2751
+ const defaultError = /* @__PURE__ */ jsx4(
2752
+ ErrorRenderer_default,
2634
2753
  {
2635
- className: "mb-4 flex flex-col items-center rounded-lg border border-danger bg-danger-50 p-4 text-sm text-danger",
2636
- role: "alert",
2637
- children: [
2638
- /* @__PURE__ */ jsxs("div", { className: "flex w-full justify-between gap-6", children: [
2639
- /* @__PURE__ */ jsxs("div", { className: "flex items-center", children: [
2640
- /* @__PURE__ */ jsx(FaTimesCircle, { className: "mr-2" }),
2641
- /* @__PURE__ */ jsx("span", { className: "font-medium", children: "Failed to parse JSON data" })
2642
- ] }),
2643
- /* @__PURE__ */ jsx(
2644
- Button_default,
2645
- {
2646
- color: "danger",
2647
- size: "sm",
2648
- variant: "light",
2649
- onClick: () => setShowDetails(!showDetails),
2650
- children: showDetails ? /* @__PURE__ */ jsxs(Fragment3, { children: [
2651
- /* @__PURE__ */ jsx(FaChevronUp, {}),
2652
- " Hide Details"
2653
- ] }) : /* @__PURE__ */ jsxs(Fragment3, { children: [
2654
- /* @__PURE__ */ jsx(FaChevronDown, {}),
2655
- " Show Details"
2656
- ] })
2657
- }
2658
- )
2659
- ] }),
2660
- showDetails && /* @__PURE__ */ jsxs("div", { className: "mt-4 w-full text-left", children: [
2661
- /* @__PURE__ */ jsxs("div", { children: [
2662
- /* @__PURE__ */ jsx("strong", { children: "Error:" }),
2663
- /* @__PURE__ */ jsxs("pre", { children: [
2664
- err?.name,
2665
- ": ",
2666
- err?.message
2667
- ] })
2668
- ] }),
2669
- /* @__PURE__ */ jsxs("div", { className: "mt-4", children: [
2670
- /* @__PURE__ */ jsx("strong", { children: "Data:" }),
2671
- /* @__PURE__ */ jsx("pre", { children: typeof value !== "string" ? JSON.stringify(value, null, 2) : value })
2672
- ] })
2673
- ] })
2674
- ]
2754
+ error: err,
2755
+ data: value,
2756
+ showDetails,
2757
+ onToggleDetails: () => setShowDetails(!showDetails)
2675
2758
  }
2676
2759
  );
2760
+ error = errorRenderer ? errorRenderer(err, value) : defaultError;
2677
2761
  }
2678
- return /* @__PURE__ */ jsx("div", { className: cn(className), children: error || content });
2762
+ return /* @__PURE__ */ jsx4("div", { "aria-label": "JSON viewer", className: cn2(className), role: "region", children: error || content });
2679
2763
  };
2680
2764
  var Json_default = Json;
2681
2765
 
@@ -2686,4 +2770,4 @@ export {
2686
2770
  Json_default,
2687
2771
  Json_default2
2688
2772
  };
2689
- //# sourceMappingURL=chunk-C2BIHVLT.js.map
2773
+ //# sourceMappingURL=chunk-LCSYN3DI.js.map