@fuf-stack/pixels 0.9.2 → 0.10.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 (109) hide show
  1. package/dist/Accordion/index.cjs +2 -3
  2. package/dist/Accordion/index.d.cts +3 -3
  3. package/dist/Accordion/index.d.ts +3 -3
  4. package/dist/Accordion/index.js +1 -2
  5. package/dist/{Accordion-DG6pcI_Q.d.cts → Accordion-IyPLd1w6.d.cts} +5 -5
  6. package/dist/{Accordion-DG6pcI_Q.d.ts → Accordion-IyPLd1w6.d.ts} +5 -5
  7. package/dist/Button/index.cjs +2 -3
  8. package/dist/Button/index.d.cts +3 -2
  9. package/dist/Button/index.d.ts +3 -2
  10. package/dist/Button/index.js +1 -2
  11. package/dist/{Button-DS4qK4Lf.d.cts → Button-8uTuwTxM.d.cts} +4 -4
  12. package/dist/{Button-DS4qK4Lf.d.ts → Button-8uTuwTxM.d.ts} +4 -4
  13. package/dist/Card/index.cjs +2 -3
  14. package/dist/Card/index.d.cts +3 -2
  15. package/dist/Card/index.d.ts +3 -2
  16. package/dist/Card/index.js +1 -2
  17. package/dist/{Card-D5kspciY.d.cts → Card-B3zN1NrH.d.cts} +5 -5
  18. package/dist/{Card-D5kspciY.d.ts → Card-B3zN1NrH.d.ts} +5 -5
  19. package/dist/Json/index.cjs +3 -4
  20. package/dist/Json/index.js +2 -3
  21. package/dist/Label/index.cjs +2 -2
  22. package/dist/Label/index.js +1 -1
  23. package/dist/Menu/index.cjs +2 -2
  24. package/dist/Menu/index.js +1 -1
  25. package/dist/Modal/index.cjs +2 -3
  26. package/dist/Modal/index.d.cts +3 -2
  27. package/dist/Modal/index.d.ts +3 -2
  28. package/dist/Modal/index.js +1 -2
  29. package/dist/{Modal-Ck13vTaf.d.cts → Modal-DZHeIvQc.d.cts} +6 -6
  30. package/dist/{Modal-Ck13vTaf.d.ts → Modal-DZHeIvQc.d.ts} +6 -6
  31. package/dist/Popover/index.cjs +2 -2
  32. package/dist/Popover/index.js +1 -1
  33. package/dist/Tooltip/index.cjs +2 -2
  34. package/dist/Tooltip/index.js +1 -1
  35. package/dist/{chunk-S2WOGSQV.js → chunk-32USZJY2.js} +2 -2
  36. package/dist/chunk-32USZJY2.js.map +1 -0
  37. package/dist/{chunk-DZJ4ACWV.js → chunk-7ZPZP6SD.js} +2 -6
  38. package/dist/chunk-7ZPZP6SD.js.map +1 -0
  39. package/dist/{chunk-WWAUBTWI.js → chunk-APEDJG3R.js} +2 -6
  40. package/dist/chunk-APEDJG3R.js.map +1 -0
  41. package/dist/{chunk-IZ4GIYPV.js → chunk-EVCVBDO5.js} +2 -5
  42. package/dist/chunk-EVCVBDO5.js.map +1 -0
  43. package/dist/{chunk-Y7E62HGE.js → chunk-F2SRHLNC.js} +2 -6
  44. package/dist/chunk-F2SRHLNC.js.map +1 -0
  45. package/dist/{chunk-L2DCXJCR.cjs → chunk-FGMOV5RO.cjs} +5 -9
  46. package/dist/chunk-FGMOV5RO.cjs.map +1 -0
  47. package/dist/{chunk-6G5VTF6K.js → chunk-FKVBE3LW.js} +2 -2
  48. package/dist/chunk-FKVBE3LW.js.map +1 -0
  49. package/dist/{chunk-TUCU3GGJ.js → chunk-G446SCUR.js} +3 -3
  50. package/dist/chunk-G446SCUR.js.map +1 -0
  51. package/dist/{chunk-CE745SSP.cjs → chunk-JPALSO5E.cjs} +5 -9
  52. package/dist/chunk-JPALSO5E.cjs.map +1 -0
  53. package/dist/{chunk-WJ4VZ2CM.cjs → chunk-L6TIKQGM.cjs} +6 -6
  54. package/dist/chunk-L6TIKQGM.cjs.map +1 -0
  55. package/dist/{chunk-L5FAQ6D4.cjs → chunk-LOFZNVCN.cjs} +4 -7
  56. package/dist/chunk-LOFZNVCN.cjs.map +1 -0
  57. package/dist/{chunk-HHTTNYDC.cjs → chunk-MJNISFGX.cjs} +4 -4
  58. package/dist/chunk-MJNISFGX.cjs.map +1 -0
  59. package/dist/{chunk-BSBPQXNG.cjs → chunk-RS7HBBUF.cjs} +4 -4
  60. package/dist/chunk-RS7HBBUF.cjs.map +1 -0
  61. package/dist/{chunk-VOXYQARK.js → chunk-SU6NFAFF.js} +2 -2
  62. package/dist/chunk-SU6NFAFF.js.map +1 -0
  63. package/dist/{chunk-BMKGS5PK.cjs → chunk-UZZLRGTA.cjs} +4 -4
  64. package/dist/chunk-UZZLRGTA.cjs.map +1 -0
  65. package/dist/{chunk-66VDLQF4.cjs → chunk-VAJODF7Z.cjs} +5 -9
  66. package/dist/chunk-VAJODF7Z.cjs.map +1 -0
  67. package/dist/{chunk-B35F4645.cjs → chunk-ZCA555Q7.cjs} +4 -4
  68. package/dist/chunk-ZCA555Q7.cjs.map +1 -0
  69. package/dist/{chunk-236GX7PP.js → chunk-ZN6DLACS.js} +2 -2
  70. package/dist/chunk-ZN6DLACS.js.map +1 -0
  71. package/dist/index.cjs +10 -18
  72. package/dist/index.d.cts +6 -7
  73. package/dist/index.d.ts +6 -7
  74. package/dist/index.js +10 -18
  75. package/package.json +4 -15
  76. package/dist/chunk-236GX7PP.js.map +0 -1
  77. package/dist/chunk-66VDLQF4.cjs.map +0 -1
  78. package/dist/chunk-6G5VTF6K.js.map +0 -1
  79. package/dist/chunk-B35F4645.cjs.map +0 -1
  80. package/dist/chunk-B36YERUR.cjs +0 -29
  81. package/dist/chunk-B36YERUR.cjs.map +0 -1
  82. package/dist/chunk-BMKGS5PK.cjs.map +0 -1
  83. package/dist/chunk-BSBPQXNG.cjs.map +0 -1
  84. package/dist/chunk-CE745SSP.cjs.map +0 -1
  85. package/dist/chunk-DZJ4ACWV.js.map +0 -1
  86. package/dist/chunk-HHTTNYDC.cjs.map +0 -1
  87. package/dist/chunk-IZ4GIYPV.js.map +0 -1
  88. package/dist/chunk-L2DCXJCR.cjs.map +0 -1
  89. package/dist/chunk-L5FAQ6D4.cjs.map +0 -1
  90. package/dist/chunk-S2WOGSQV.js.map +0 -1
  91. package/dist/chunk-TUCU3GGJ.js.map +0 -1
  92. package/dist/chunk-VOXYQARK.js.map +0 -1
  93. package/dist/chunk-WJ4VZ2CM.cjs.map +0 -1
  94. package/dist/chunk-WWAUBTWI.js.map +0 -1
  95. package/dist/chunk-X7YCEBNX.js +0 -29
  96. package/dist/chunk-X7YCEBNX.js.map +0 -1
  97. package/dist/chunk-Y7E62HGE.js.map +0 -1
  98. package/dist/theme/index.cjs +0 -8
  99. package/dist/theme/index.cjs.map +0 -1
  100. package/dist/theme/index.d.cts +0 -1
  101. package/dist/theme/index.d.ts +0 -1
  102. package/dist/theme/index.js +0 -8
  103. package/dist/theme/index.js.map +0 -1
  104. package/dist/utils/index.cjs +0 -12
  105. package/dist/utils/index.cjs.map +0 -1
  106. package/dist/utils/index.d.cts +0 -6
  107. package/dist/utils/index.d.ts +0 -6
  108. package/dist/utils/index.js +0 -12
  109. package/dist/utils/index.js.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/Menu/Menu.tsx","../src/Menu/index.ts"],"sourcesContent":["import type { DropdownSectionProps } from '@nextui-org/dropdown';\nimport type { Key, MouseEventHandler, ReactNode } from 'react';\n\nimport { FaEllipsisVertical } from 'react-icons/fa6';\n\nimport { Button } from '@nextui-org/button';\nimport {\n Dropdown as NextDropdown,\n DropdownItem as NextDropdownItem,\n DropdownMenu as NextDropdownMenu,\n DropdownSection as NextDropdownSection,\n DropdownTrigger as NextDropdownTrigger,\n} from '@nextui-org/dropdown';\n\nimport { cn } from '@fuf-stack/pixel-utils';\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;AAEP,SAAS,UAAU;AAkEjB,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;;;AC1If,IAAOA,gBAAQ;","names":["Menu_default"]}
@@ -1,6 +1,6 @@
1
- "use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }// src/Label/Label.tsx
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true});// src/Label/Label.tsx
2
2
  var _chip = require('@nextui-org/chip');
3
- var _classnames = require('classnames'); var _classnames2 = _interopRequireDefault(_classnames);
3
+ var _pixelutils = require('@fuf-stack/pixel-utils');
4
4
  var _jsxruntime = require('react/jsx-runtime');
5
5
  var Label = ({
6
6
  children,
@@ -12,7 +12,7 @@ var Label = ({
12
12
  }) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
13
13
  _chip.Chip,
14
14
  {
15
- className: _classnames2.default.call(void 0, className),
15
+ className: _pixelutils.cn.call(void 0, className),
16
16
  color,
17
17
  endContent,
18
18
  size,
@@ -29,4 +29,4 @@ var Label_default2 = Label_default;
29
29
 
30
30
 
31
31
  exports.Label_default = Label_default; exports.Label_default2 = Label_default2;
32
- //# sourceMappingURL=chunk-BMKGS5PK.cjs.map
32
+ //# sourceMappingURL=chunk-UZZLRGTA.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/Label/Label.tsx","../src/Label/index.ts"],"names":["Label_default"],"mappings":";AAGA,SAAS,QAAQ,iBAAiB;AAElC,SAAS,UAAU;AA4BjB;AARF,IAAM,QAAQ,CAAC;AAAA,EACb;AAAA,EACA,YAAY;AAAA,EACZ,QAAQ;AAAA,EACR,aAAa;AAAA,EACb,OAAO;AAAA,EACP,eAAe;AACjB,MACE;AAAA,EAAC;AAAA;AAAA,IACC,WAAW,GAAG,SAAS;AAAA,IACvB;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IAEC;AAAA;AACH;AAGF,IAAO,gBAAQ;;;ACtCf,IAAOA,iBAAQ","sourcesContent":["import type { ChipProps } from '@nextui-org/chip';\nimport type { ReactNode } from 'react';\n\nimport { Chip as NextLabel } from '@nextui-org/chip';\n\nimport { cn } from '@fuf-stack/pixel-utils';\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,9 +1,4 @@
1
- "use strict";Object.defineProperty(exports, "__esModule", {value: true});
2
-
3
-
4
- var _chunkB36YERURcjs = require('./chunk-B36YERUR.cjs');
5
-
6
- // src/Modal/Modal.tsx
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true});// src/Modal/Modal.tsx
7
2
 
8
3
 
9
4
 
@@ -11,8 +6,9 @@ var _chunkB36YERURcjs = require('./chunk-B36YERUR.cjs');
11
6
 
12
7
 
13
8
  var _modal = require('@nextui-org/modal');
9
+ var _pixelutils = require('@fuf-stack/pixel-utils');
14
10
  var _jsxruntime = require('react/jsx-runtime');
15
- var modalVariants = _chunkB36YERURcjs.tv.call(void 0, {
11
+ var modalVariants = _pixelutils.tv.call(void 0, {
16
12
  slots: {
17
13
  backdrop: "",
18
14
  base: "",
@@ -43,7 +39,7 @@ var Modal = ({
43
39
  testId = void 0
44
40
  }) => {
45
41
  const variants = modalVariants({ size });
46
- const classNames = _chunkB36YERURcjs.variantsToClassNames.call(void 0, variants, className, "base");
42
+ const classNames = _pixelutils.variantsToClassNames.call(void 0, variants, className, "base");
47
43
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
48
44
  _modal.Modal,
49
45
  {
@@ -72,4 +68,4 @@ var Modal_default2 = Modal_default;
72
68
 
73
69
 
74
70
  exports.modalVariants = modalVariants; exports.Modal_default = Modal_default; exports.Modal_default2 = Modal_default2;
75
- //# sourceMappingURL=chunk-66VDLQF4.cjs.map
71
+ //# sourceMappingURL=chunk-VAJODF7Z.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;AAEP,SAAS,IAAI,4BAA4B;AA2E/B,mBACa,KADb;AAxEH,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;AA2BD,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,aAAa,qBAAqB,UAAU,WAAW,MAAM;AAEnE,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;;;AC3Ff,IAAOA,iBAAQ","sourcesContent":["import type { TVClassName, TVProps } from '@fuf-stack/pixel-utils';\nimport type { ReactNode } from 'react';\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';\n\nimport { tv, variantsToClassNames } from '@fuf-stack/pixel-utils';\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 VariantProps = TVProps<typeof modalVariants>;\ntype ClassName = TVClassName<typeof modalVariants>;\n\nexport interface ModalProps extends VariantProps {\n /** modal body content */\n children?: ReactNode;\n /** CSS class name */\n className?: ClassName;\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?: VariantProps['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 classNames = variantsToClassNames(variants, className, 'base');\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,6 +1,6 @@
1
- "use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }// src/Popover/Popover.tsx
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true});// src/Popover/Popover.tsx
2
2
  var _popover = require('@nextui-org/popover');
3
- var _classnames = require('classnames'); var _classnames2 = _interopRequireDefault(_classnames);
3
+ var _pixelutils = require('@fuf-stack/pixel-utils');
4
4
  var _jsxruntime = require('react/jsx-runtime');
5
5
  var Popover_default = ({
6
6
  children = null,
@@ -20,7 +20,7 @@ var Popover_default = ({
20
20
  showArrow: true,
21
21
  ...openControlled ? { isOpen: openControlled.open, onOpenChange: openControlled.setOpen } : {},
22
22
  children: [
23
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _popover.PopoverTrigger, { className: _classnames2.default.call(void 0, className), "data-testid": testId, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "button", { children }) }),
23
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _popover.PopoverTrigger, { className: _pixelutils.cn.call(void 0, className), "data-testid": testId, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "button", { children }) }),
24
24
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _popover.PopoverContent, { "data-testid": contentTestId, children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "max-h-[80vh] overflow-y-auto", children: [
25
25
  title && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { children: [
26
26
  title,
@@ -40,4 +40,4 @@ var Popover_default2 = Popover_default;
40
40
 
41
41
 
42
42
  exports.Popover_default = Popover_default; exports.Popover_default2 = Popover_default2;
43
- //# sourceMappingURL=chunk-B35F4645.cjs.map
43
+ //# sourceMappingURL=chunk-ZCA555Q7.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/Popover/Popover.tsx","../src/Popover/index.ts"],"names":["Popover_default"],"mappings":";AAGA,SAAS,SAAS,gBAAgB,sBAAsB;AAExD,SAAS,UAAU;AA+CX,cAKI,YALJ;AAvBR,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,MAER,GAAI,iBACD,EAAE,QAAQ,eAAe,MAAM,cAAc,eAAe,QAAQ,IACpE,CAAC;AAAA,MAEL;AAAA,4BAAC,kBAAe,WAAW,GAAG,SAAS,GAAG,eAAa,QAGrD,8BAAC,YAAQ,UAAS,GACpB;AAAA,QACA,oBAAC,kBAAe,eAAa,eAC3B,+BAAC,SAAI,WAAU,gCACZ;AAAA,mBACC,qBAAC,SACE;AAAA;AAAA,YACD,oBAAC,QAAG;AAAA,aACN;AAAA,UAED;AAAA,WACH,GACF;AAAA;AAAA;AAAA,EACF;AAEJ;;;AC7DA,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';\n\nimport { cn } from '@fuf-stack/pixel-utils';\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 // eslint-disable-next-line react/jsx-props-no-spreading\n {...(openControlled\n ? { isOpen: openControlled.open, onOpenChange: openControlled.setOpen }\n : {})}\n >\n <PopoverTrigger className={cn(className)} data-testid={testId}>\n {/* NOTE: type and aria properties are injected by PopoverTrigger */}\n {/* eslint-disable-next-line react/button-has-type */}\n <button>{children}</button>\n </PopoverTrigger>\n <PopoverContent data-testid={contentTestId}>\n <div className=\"max-h-[80vh] overflow-y-auto\">\n {title && (\n <div>\n {title}\n <hr />\n </div>\n )}\n {content}\n </div>\n </PopoverContent>\n </Popover>\n );\n};\n","import Popover from './Popover';\n\nexport type { PopoverProps } from './Popover';\n\nexport { Popover };\n\nexport default Popover;\n"]}
@@ -1,6 +1,6 @@
1
1
  // src/Tooltip/Tooltip.tsx
2
2
  import { Tooltip as NextTooltip } from "@nextui-org/tooltip";
3
- import cn from "classnames";
3
+ import { cn } from "@fuf-stack/pixel-utils";
4
4
  import { jsx } from "react/jsx-runtime";
5
5
  var tooltipPlacementOptions = [
6
6
  "top",
@@ -41,4 +41,4 @@ export {
41
41
  Tooltip_default,
42
42
  Tooltip_default2
43
43
  };
44
- //# sourceMappingURL=chunk-236GX7PP.js.map
44
+ //# sourceMappingURL=chunk-ZN6DLACS.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/Tooltip/Tooltip.tsx","../src/Tooltip/index.ts"],"sourcesContent":["import type { ReactNode } from 'react';\n\nimport { Tooltip as NextTooltip } from '@nextui-org/tooltip';\n\nimport { cn } from '@fuf-stack/pixel-utils';\n\nexport const tooltipPlacementOptions = [\n 'top',\n 'bottom',\n 'left',\n 'right',\n] as const;\nexport type TooltipPlacement = (typeof tooltipPlacementOptions)[number];\n\nexport interface TooltipProps {\n /** trigger child components */\n children: ReactNode;\n /** CSS class name */\n className?: string;\n /** placement padding in px */\n containerPadding?: number;\n /** content displayed in the tooltip */\n content: ReactNode;\n /** open overlay initially when uncontrolled */\n defaultOpen?: boolean;\n /** handler that is called when the overlay's open state changes */\n onOpenChange?: (isOpen: boolean) => void;\n /** placement if the tooltip */\n placement?: TooltipPlacement;\n}\n\n/**\n * Tooltip component based on [NextUI Tooltip](https://nextui.org/docs/components/tooltip)\n */\nconst Tooltip = ({\n children,\n className = undefined,\n content,\n placement = 'top',\n defaultOpen = false,\n onOpenChange = undefined,\n containerPadding = 0,\n}: TooltipProps) => (\n <NextTooltip\n className={cn(className)}\n containerPadding={containerPadding}\n content={content}\n defaultOpen={defaultOpen}\n onClick={(e) => e.preventDefault()}\n onOpenChange={onOpenChange}\n placement={placement}\n shouldFlip\n showArrow\n >\n <span className=\"cursor-pointer\">{children}</span>\n </NextTooltip>\n);\n\nexport default Tooltip;\n","import Tooltip, { tooltipPlacementOptions } from './Tooltip';\n\nexport type { TooltipProps } from './Tooltip';\n\nexport { Tooltip, tooltipPlacementOptions };\n\nexport default Tooltip;\n"],"mappings":";AAEA,SAAS,WAAW,mBAAmB;AAEvC,SAAS,UAAU;AAkDf;AAhDG,IAAM,0BAA0B;AAAA,EACrC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF;AAuBA,IAAM,UAAU,CAAC;AAAA,EACf;AAAA,EACA,YAAY;AAAA,EACZ;AAAA,EACA,YAAY;AAAA,EACZ,cAAc;AAAA,EACd,eAAe;AAAA,EACf,mBAAmB;AACrB,MACE;AAAA,EAAC;AAAA;AAAA,IACC,WAAW,GAAG,SAAS;AAAA,IACvB;AAAA,IACA;AAAA,IACA;AAAA,IACA,SAAS,CAAC,MAAM,EAAE,eAAe;AAAA,IACjC;AAAA,IACA;AAAA,IACA,YAAU;AAAA,IACV,WAAS;AAAA,IAET,8BAAC,UAAK,WAAU,kBAAkB,UAAS;AAAA;AAC7C;AAGF,IAAO,kBAAQ;;;ACpDf,IAAOA,mBAAQ;","names":["Tooltip_default"]}
package/dist/index.cjs CHANGED
@@ -1,14 +1,14 @@
1
1
  "use strict";Object.defineProperty(exports, "__esModule", {value: true});
2
2
 
3
3
 
4
- var _chunk66VDLQF4cjs = require('./chunk-66VDLQF4.cjs');
4
+ var _chunkVAJODF7Zcjs = require('./chunk-VAJODF7Z.cjs');
5
5
 
6
6
 
7
- var _chunkB35F4645cjs = require('./chunk-B35F4645.cjs');
7
+ var _chunkZCA555Q7cjs = require('./chunk-ZCA555Q7.cjs');
8
8
 
9
9
 
10
10
 
11
- var _chunkBSBPQXNGcjs = require('./chunk-BSBPQXNG.cjs');
11
+ var _chunkRS7HBBUFcjs = require('./chunk-RS7HBBUF.cjs');
12
12
 
13
13
 
14
14
 
@@ -16,7 +16,7 @@ var _chunkMWNBYTRNcjs = require('./chunk-MWNBYTRN.cjs');
16
16
 
17
17
 
18
18
 
19
- var _chunkL2DCXJCRcjs = require('./chunk-L2DCXJCR.cjs');
19
+ var _chunkFGMOV5ROcjs = require('./chunk-FGMOV5RO.cjs');
20
20
 
21
21
 
22
22
  var _chunkEJSTUBPUcjs = require('./chunk-EJSTUBPU.cjs');
@@ -26,25 +26,20 @@ var _chunkXGHRKDIMcjs = require('./chunk-XGHRKDIM.cjs');
26
26
 
27
27
 
28
28
 
29
- var _chunkCE745SSPcjs = require('./chunk-CE745SSP.cjs');
29
+ var _chunkJPALSO5Ecjs = require('./chunk-JPALSO5E.cjs');
30
30
 
31
31
 
32
- var _chunkWJ4VZ2CMcjs = require('./chunk-WJ4VZ2CM.cjs');
32
+ var _chunkL6TIKQGMcjs = require('./chunk-L6TIKQGM.cjs');
33
33
 
34
34
 
35
35
 
36
- var _chunkL5FAQ6D4cjs = require('./chunk-L5FAQ6D4.cjs');
36
+ var _chunkLOFZNVCNcjs = require('./chunk-LOFZNVCN.cjs');
37
37
 
38
38
 
39
+ var _chunkUZZLRGTAcjs = require('./chunk-UZZLRGTA.cjs');
39
40
 
40
41
 
41
- var _chunkB36YERURcjs = require('./chunk-B36YERUR.cjs');
42
-
43
-
44
- var _chunkBMKGS5PKcjs = require('./chunk-BMKGS5PK.cjs');
45
-
46
-
47
- var _chunkHHTTNYDCcjs = require('./chunk-HHTTNYDC.cjs');
42
+ var _chunkMJNISFGXcjs = require('./chunk-MJNISFGX.cjs');
48
43
  require('./chunk-DZUJEN5N.cjs');
49
44
 
50
45
 
@@ -65,8 +60,5 @@ require('./chunk-DZUJEN5N.cjs');
65
60
 
66
61
 
67
62
 
68
-
69
-
70
-
71
- exports.Accordion = _chunkL2DCXJCRcjs.Accordion_default; exports.Avatar = _chunkXGHRKDIMcjs.Avatar_default; exports.AvatarGroup = _chunkEJSTUBPUcjs.AvatarGroup_default; exports.Button = _chunkL5FAQ6D4cjs.Button_default; exports.Card = _chunkCE745SSPcjs.Card_default; exports.Json = _chunkWJ4VZ2CMcjs.Json_default; exports.Label = _chunkBMKGS5PKcjs.Label_default; exports.Menu = _chunkHHTTNYDCcjs.Menu_default; exports.Modal = _chunk66VDLQF4cjs.Modal_default; exports.Popover = _chunkB35F4645cjs.Popover_default; exports.Tooltip = _chunkBSBPQXNGcjs.Tooltip_default; exports.accordionVariants = _chunkL2DCXJCRcjs.accordionVariants; exports.buttonVariants = _chunkL5FAQ6D4cjs.buttonVariants; exports.cardVariants = _chunkCE745SSPcjs.cardVariants; exports.modalVariants = _chunk66VDLQF4cjs.modalVariants; exports.nextui = _chunkB36YERURcjs.nextui; exports.tooltipPlacementOptions = _chunkBSBPQXNGcjs.tooltipPlacementOptions; exports.tv = _chunkB36YERURcjs.tv; exports.useDebounce = _chunkMWNBYTRNcjs.useDebounce; exports.useLocalStorage = _chunkMWNBYTRNcjs.useLocalStorage; exports.variantsToClassNames = _chunkB36YERURcjs.variantsToClassNames;
63
+ exports.Accordion = _chunkFGMOV5ROcjs.Accordion_default; exports.Avatar = _chunkXGHRKDIMcjs.Avatar_default; exports.AvatarGroup = _chunkEJSTUBPUcjs.AvatarGroup_default; exports.Button = _chunkLOFZNVCNcjs.Button_default; exports.Card = _chunkJPALSO5Ecjs.Card_default; exports.Json = _chunkL6TIKQGMcjs.Json_default; exports.Label = _chunkUZZLRGTAcjs.Label_default; exports.Menu = _chunkMJNISFGXcjs.Menu_default; exports.Modal = _chunkVAJODF7Zcjs.Modal_default; exports.Popover = _chunkZCA555Q7cjs.Popover_default; exports.Tooltip = _chunkRS7HBBUFcjs.Tooltip_default; exports.accordionVariants = _chunkFGMOV5ROcjs.accordionVariants; exports.buttonVariants = _chunkLOFZNVCNcjs.buttonVariants; exports.cardVariants = _chunkJPALSO5Ecjs.cardVariants; exports.modalVariants = _chunkVAJODF7Zcjs.modalVariants; exports.tooltipPlacementOptions = _chunkRS7HBBUFcjs.tooltipPlacementOptions; exports.useDebounce = _chunkMWNBYTRNcjs.useDebounce; exports.useLocalStorage = _chunkMWNBYTRNcjs.useLocalStorage;
72
64
  //# sourceMappingURL=index.cjs.map
package/dist/index.d.cts CHANGED
@@ -1,20 +1,19 @@
1
- export { A as Accordion, c as AccordionItemProps, b as AccordionProps, a as accordionVariants } from './Accordion-DG6pcI_Q.cjs';
1
+ export { A as Accordion, c as AccordionItemProps, b as AccordionProps, a as accordionVariants } from './Accordion-IyPLd1w6.cjs';
2
2
  export { A as Avatar, a as AvatarProps } from './Avatar-Bl6oBjgb.cjs';
3
3
  export { A as AvatarGroup, a as AvatarGroupProps } from './AvatarGroup-BhgTIcSs.cjs';
4
- export { B as Button, a as ButtonProps, b as buttonVariants } from './Button-DS4qK4Lf.cjs';
5
- export { C as Card, a as CardProps, c as cardVariants } from './Card-D5kspciY.cjs';
4
+ export { B as Button, a as ButtonProps, b as buttonVariants } from './Button-8uTuwTxM.cjs';
5
+ export { C as Card, a as CardProps, c as cardVariants } from './Card-B3zN1NrH.cjs';
6
6
  export { J as Json, a as JsonProps } from './Json-ClGDcbcp.cjs';
7
7
  export { L as Label, a as LabelProps } from './Label-DzZDW95M.cjs';
8
8
  export { M as Menu, b as MenuItem, a as MenuProps, c as MenuSection } from './Menu-CG5mVVnv.cjs';
9
- export { M as Modal, a as ModalProps, m as modalVariants } from './Modal-Ck13vTaf.cjs';
9
+ export { M as Modal, a as ModalProps, m as modalVariants } from './Modal-DZHeIvQc.cjs';
10
10
  export { _ as Popover, P as PopoverProps } from './Popover-DbTTk7_N.cjs';
11
11
  export { T as Tooltip, a as TooltipProps, t as tooltipPlacementOptions } from './Tooltip-D4znH2L3.cjs';
12
12
  export { useDebounce, useLocalStorage } from './hooks/index.cjs';
13
- export { nextui } from '@nextui-org/theme';
14
- export { variantsToClassNames } from './utils/index.cjs';
15
- export { tv } from 'tailwind-variants';
16
13
  import 'react/jsx-runtime';
14
+ import 'tailwind-variants';
17
15
  import 'tailwind-variants/dist/config.js';
16
+ import '@fuf-stack/pixel-utils';
18
17
  import '@nextui-org/divider';
19
18
  import 'react';
20
19
  import '@nextui-org/button';
package/dist/index.d.ts CHANGED
@@ -1,20 +1,19 @@
1
- export { A as Accordion, c as AccordionItemProps, b as AccordionProps, a as accordionVariants } from './Accordion-DG6pcI_Q.js';
1
+ export { A as Accordion, c as AccordionItemProps, b as AccordionProps, a as accordionVariants } from './Accordion-IyPLd1w6.js';
2
2
  export { A as Avatar, a as AvatarProps } from './Avatar-Bl6oBjgb.js';
3
3
  export { A as AvatarGroup, a as AvatarGroupProps } from './AvatarGroup-tWe-Vgrz.js';
4
- export { B as Button, a as ButtonProps, b as buttonVariants } from './Button-DS4qK4Lf.js';
5
- export { C as Card, a as CardProps, c as cardVariants } from './Card-D5kspciY.js';
4
+ export { B as Button, a as ButtonProps, b as buttonVariants } from './Button-8uTuwTxM.js';
5
+ export { C as Card, a as CardProps, c as cardVariants } from './Card-B3zN1NrH.js';
6
6
  export { J as Json, a as JsonProps } from './Json-ClGDcbcp.js';
7
7
  export { L as Label, a as LabelProps } from './Label-DzZDW95M.js';
8
8
  export { M as Menu, b as MenuItem, a as MenuProps, c as MenuSection } from './Menu-CG5mVVnv.js';
9
- export { M as Modal, a as ModalProps, m as modalVariants } from './Modal-Ck13vTaf.js';
9
+ export { M as Modal, a as ModalProps, m as modalVariants } from './Modal-DZHeIvQc.js';
10
10
  export { _ as Popover, P as PopoverProps } from './Popover-DbTTk7_N.js';
11
11
  export { T as Tooltip, a as TooltipProps, t as tooltipPlacementOptions } from './Tooltip-D4znH2L3.js';
12
12
  export { useDebounce, useLocalStorage } from './hooks/index.js';
13
- export { nextui } from '@nextui-org/theme';
14
- export { variantsToClassNames } from './utils/index.js';
15
- export { tv } from 'tailwind-variants';
16
13
  import 'react/jsx-runtime';
14
+ import 'tailwind-variants';
17
15
  import 'tailwind-variants/dist/config.js';
16
+ import '@fuf-stack/pixel-utils';
18
17
  import '@nextui-org/divider';
19
18
  import 'react';
20
19
  import '@nextui-org/button';
package/dist/index.js CHANGED
@@ -1,14 +1,14 @@
1
1
  import {
2
2
  Modal_default,
3
3
  modalVariants
4
- } from "./chunk-Y7E62HGE.js";
4
+ } from "./chunk-F2SRHLNC.js";
5
5
  import {
6
6
  Popover_default
7
- } from "./chunk-6G5VTF6K.js";
7
+ } from "./chunk-FKVBE3LW.js";
8
8
  import {
9
9
  Tooltip_default,
10
10
  tooltipPlacementOptions
11
- } from "./chunk-236GX7PP.js";
11
+ } from "./chunk-ZN6DLACS.js";
12
12
  import {
13
13
  useDebounce,
14
14
  useLocalStorage
@@ -16,7 +16,7 @@ import {
16
16
  import {
17
17
  Accordion_default,
18
18
  accordionVariants
19
- } from "./chunk-DZJ4ACWV.js";
19
+ } from "./chunk-7ZPZP6SD.js";
20
20
  import {
21
21
  AvatarGroup_default
22
22
  } from "./chunk-LAGUJC5D.js";
@@ -26,25 +26,20 @@ import {
26
26
  import {
27
27
  Card_default,
28
28
  cardVariants
29
- } from "./chunk-WWAUBTWI.js";
29
+ } from "./chunk-APEDJG3R.js";
30
30
  import {
31
31
  Json_default
32
- } from "./chunk-TUCU3GGJ.js";
32
+ } from "./chunk-G446SCUR.js";
33
33
  import {
34
34
  Button_default,
35
35
  buttonVariants
36
- } from "./chunk-IZ4GIYPV.js";
37
- import {
38
- nextui,
39
- tv,
40
- variantsToClassNames
41
- } from "./chunk-X7YCEBNX.js";
36
+ } from "./chunk-EVCVBDO5.js";
42
37
  import {
43
38
  Label_default
44
- } from "./chunk-S2WOGSQV.js";
39
+ } from "./chunk-32USZJY2.js";
45
40
  import {
46
41
  Menu_default
47
- } from "./chunk-VOXYQARK.js";
42
+ } from "./chunk-SU6NFAFF.js";
48
43
  import "./chunk-5WRI5ZAA.js";
49
44
  export {
50
45
  Accordion_default as Accordion,
@@ -62,11 +57,8 @@ export {
62
57
  buttonVariants,
63
58
  cardVariants,
64
59
  modalVariants,
65
- nextui,
66
60
  tooltipPlacementOptions,
67
- tv,
68
61
  useDebounce,
69
- useLocalStorage,
70
- variantsToClassNames
62
+ useLocalStorage
71
63
  };
72
64
  //# sourceMappingURL=index.js.map
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.9.2",
5
+ "version": "0.10.0",
6
6
  "type": "module",
7
7
  "main": "./dist/index.cjs",
8
8
  "module": "./dist/index.js",
@@ -69,20 +69,10 @@
69
69
  "require": "./dist/Popover/index.cjs",
70
70
  "types": "./dist/Popover/index.d.ts"
71
71
  },
72
- "./theme": {
73
- "import": "./dist/theme/index.js",
74
- "require": "./dist/theme/index.cjs",
75
- "types": "./dist/theme/index.d.ts"
76
- },
77
72
  "./Tooltip": {
78
73
  "import": "./dist/Tooltip/index.js",
79
74
  "require": "./dist/Tooltip/index.cjs",
80
75
  "types": "./dist/Tooltip/index.d.ts"
81
- },
82
- "./utils": {
83
- "import": "./dist/utils/index.js",
84
- "require": "./dist/utils/index.cjs",
85
- "types": "./dist/utils/index.d.ts"
86
76
  }
87
77
  },
88
78
  "files": [
@@ -122,10 +112,9 @@
122
112
  "@nextui-org/system": "2.2.1",
123
113
  "@nextui-org/theme": "2.2.5",
124
114
  "@nextui-org/tooltip": "2.0.35",
125
- "classnames": "2.5.1",
126
115
  "react-icons": "5.2.1",
127
116
  "react-json-view": "1.21.3",
128
- "tailwind-variants": "0.2.1"
117
+ "@fuf-stack/pixel-utils": "0.0.1"
129
118
  },
130
119
  "devDependencies": {
131
120
  "@types/debug": "4.1.12",
@@ -136,8 +125,8 @@
136
125
  "react-dom": "18.3.1",
137
126
  "@repo/storybook-config": "0.0.1",
138
127
  "@repo/tsup-config": "0.0.1",
139
- "@repo/vite-config": "0.0.1",
140
- "@repo/tailwind-config": "0.0.1"
128
+ "@repo/tailwind-config": "0.0.1",
129
+ "@repo/vite-config": "0.0.1"
141
130
  },
142
131
  "scripts": {
143
132
  "build": "tsup --config node_modules/@repo/tsup-config/config.ts --dts-resolve",
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/Tooltip/Tooltip.tsx","../src/Tooltip/index.ts"],"sourcesContent":["import type { ReactNode } from 'react';\n\nimport { Tooltip as NextTooltip } from '@nextui-org/tooltip';\nimport cn from 'classnames';\n\nexport const tooltipPlacementOptions = [\n 'top',\n 'bottom',\n 'left',\n 'right',\n] as const;\nexport type TooltipPlacement = (typeof tooltipPlacementOptions)[number];\n\nexport interface TooltipProps {\n /** trigger child components */\n children: ReactNode;\n /** CSS class name */\n className?: string;\n /** placement padding in px */\n containerPadding?: number;\n /** content displayed in the tooltip */\n content: ReactNode;\n /** open overlay initially when uncontrolled */\n defaultOpen?: boolean;\n /** handler that is called when the overlay's open state changes */\n onOpenChange?: (isOpen: boolean) => void;\n /** placement if the tooltip */\n placement?: TooltipPlacement;\n}\n\n/**\n * Tooltip component based on [NextUI Tooltip](https://nextui.org/docs/components/tooltip)\n */\nconst Tooltip = ({\n children,\n className = undefined,\n content,\n placement = 'top',\n defaultOpen = false,\n onOpenChange = undefined,\n containerPadding = 0,\n}: TooltipProps) => (\n <NextTooltip\n className={cn(className)}\n containerPadding={containerPadding}\n content={content}\n defaultOpen={defaultOpen}\n onClick={(e) => e.preventDefault()}\n onOpenChange={onOpenChange}\n placement={placement}\n shouldFlip\n showArrow\n >\n <span className=\"cursor-pointer\">{children}</span>\n </NextTooltip>\n);\n\nexport default Tooltip;\n","import Tooltip, { tooltipPlacementOptions } from './Tooltip';\n\nexport type { TooltipProps } from './Tooltip';\n\nexport { Tooltip, tooltipPlacementOptions };\n\nexport default Tooltip;\n"],"mappings":";AAEA,SAAS,WAAW,mBAAmB;AACvC,OAAO,QAAQ;AAkDX;AAhDG,IAAM,0BAA0B;AAAA,EACrC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF;AAuBA,IAAM,UAAU,CAAC;AAAA,EACf;AAAA,EACA,YAAY;AAAA,EACZ;AAAA,EACA,YAAY;AAAA,EACZ,cAAc;AAAA,EACd,eAAe;AAAA,EACf,mBAAmB;AACrB,MACE;AAAA,EAAC;AAAA;AAAA,IACC,WAAW,GAAG,SAAS;AAAA,IACvB;AAAA,IACA;AAAA,IACA;AAAA,IACA,SAAS,CAAC,MAAM,EAAE,eAAe;AAAA,IACjC;AAAA,IACA;AAAA,IACA,YAAU;AAAA,IACV,WAAS;AAAA,IAET,8BAAC,UAAK,WAAU,kBAAkB,UAAS;AAAA;AAC7C;AAGF,IAAO,kBAAQ;;;ACnDf,IAAOA,mBAAQ;","names":["Tooltip_default"]}
@@ -1 +0,0 @@
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;AA+EG,mBACa,KADb;AA1EH,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,aAAa,qBAAqB,UAAU,WAAW,MAAM;AAEnE,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;;;AC7Ff,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';\n\nimport { tv, variantsToClassNames } from '../utils';\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 classNames = variantsToClassNames(variants, className, 'base');\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 +0,0 @@
1
- {"version":3,"sources":["../src/Popover/Popover.tsx","../src/Popover/index.ts"],"sourcesContent":["import type { PopoverProps as NextPopoverProps } from '@nextui-org/popover';\nimport type { ReactNode } from 'react';\n\nimport { Popover, PopoverContent, PopoverTrigger } from '@nextui-org/popover';\nimport cn from 'classnames';\n\nexport interface PopoverProps {\n /** child components */\n children?: ReactNode;\n /** CSS class name */\n className?: string | string[];\n /** content of the popover */\n content: ReactNode;\n /** HTML data-testid attribute used in e2e tests */\n contentTestId?: string;\n /** placement of the popover relative to its trigger reference */\n placement?: NextPopoverProps['placement'];\n /** use as controlled component */\n openControlled?: { open: boolean; setOpen: (open: boolean) => void };\n /** HTML data-testid attribute used in e2e tests */\n testId?: string;\n /** popover title */\n title?: ReactNode;\n}\n\n/**\n * Popover component based on [NextUI Card](https://nextui.org/docs/components/popover)\n */\nexport default ({\n children = null,\n className = undefined,\n content,\n contentTestId = undefined,\n placement = 'top',\n openControlled = undefined,\n testId = undefined,\n title = undefined,\n}: PopoverProps) => {\n return (\n <Popover\n placement={placement}\n radius=\"sm\"\n showArrow\n {...(openControlled\n ? { isOpen: openControlled.open, onOpenChange: openControlled.setOpen }\n : {})}\n >\n <PopoverTrigger className={cn(className)} data-testid={testId}>\n {/* NOTE: type and aria properties are injected by PopoverTrigger */}\n {/* eslint-disable-next-line react/button-has-type */}\n <button>{children}</button>\n </PopoverTrigger>\n <PopoverContent data-testid={contentTestId}>\n <div className=\"max-h-[80vh] overflow-y-auto\">\n {title && (\n <div>\n {title}\n <hr />\n </div>\n )}\n {content}\n </div>\n </PopoverContent>\n </Popover>\n );\n};\n","import Popover from './Popover';\n\nexport type { PopoverProps } from './Popover';\n\nexport { Popover };\n\nexport default Popover;\n"],"mappings":";AAGA,SAAS,SAAS,gBAAgB,sBAAsB;AACxD,OAAO,QAAQ;AA8CP,cAKI,YALJ;AAtBR,IAAO,kBAAQ,CAAC;AAAA,EACd,WAAW;AAAA,EACX,YAAY;AAAA,EACZ;AAAA,EACA,gBAAgB;AAAA,EAChB,YAAY;AAAA,EACZ,iBAAiB;AAAA,EACjB,SAAS;AAAA,EACT,QAAQ;AACV,MAAoB;AAClB,SACE;AAAA,IAAC;AAAA;AAAA,MACC;AAAA,MACA,QAAO;AAAA,MACP,WAAS;AAAA,MACR,GAAI,iBACD,EAAE,QAAQ,eAAe,MAAM,cAAc,eAAe,QAAQ,IACpE,CAAC;AAAA,MAEL;AAAA,4BAAC,kBAAe,WAAW,GAAG,SAAS,GAAG,eAAa,QAGrD,8BAAC,YAAQ,UAAS,GACpB;AAAA,QACA,oBAAC,kBAAe,eAAa,eAC3B,+BAAC,SAAI,WAAU,gCACZ;AAAA,mBACC,qBAAC,SACE;AAAA;AAAA,YACD,oBAAC,QAAG;AAAA,aACN;AAAA,UAED;AAAA,WACH,GACF;AAAA;AAAA;AAAA,EACF;AAEJ;;;AC3DA,IAAOA,mBAAQ;","names":["Popover_default"]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/Popover/Popover.tsx","../src/Popover/index.ts"],"names":["Popover_default"],"mappings":";AAGA,SAAS,SAAS,gBAAgB,sBAAsB;AACxD,OAAO,QAAQ;AA8CP,cAKI,YALJ;AAtBR,IAAO,kBAAQ,CAAC;AAAA,EACd,WAAW;AAAA,EACX,YAAY;AAAA,EACZ;AAAA,EACA,gBAAgB;AAAA,EAChB,YAAY;AAAA,EACZ,iBAAiB;AAAA,EACjB,SAAS;AAAA,EACT,QAAQ;AACV,MAAoB;AAClB,SACE;AAAA,IAAC;AAAA;AAAA,MACC;AAAA,MACA,QAAO;AAAA,MACP,WAAS;AAAA,MACR,GAAI,iBACD,EAAE,QAAQ,eAAe,MAAM,cAAc,eAAe,QAAQ,IACpE,CAAC;AAAA,MAEL;AAAA,4BAAC,kBAAe,WAAW,GAAG,SAAS,GAAG,eAAa,QAGrD,8BAAC,YAAQ,UAAS,GACpB;AAAA,QACA,oBAAC,kBAAe,eAAa,eAC3B,+BAAC,SAAI,WAAU,gCACZ;AAAA,mBACC,qBAAC,SACE;AAAA;AAAA,YACD,oBAAC,QAAG;AAAA,aACN;AAAA,UAED;AAAA,WACH,GACF;AAAA;AAAA;AAAA,EACF;AAEJ;;;AC3DA,IAAOA,mBAAQ","sourcesContent":["import type { PopoverProps as NextPopoverProps } from '@nextui-org/popover';\nimport type { ReactNode } from 'react';\n\nimport { Popover, PopoverContent, PopoverTrigger } from '@nextui-org/popover';\nimport cn from 'classnames';\n\nexport interface PopoverProps {\n /** child components */\n children?: ReactNode;\n /** CSS class name */\n className?: string | string[];\n /** content of the popover */\n content: ReactNode;\n /** HTML data-testid attribute used in e2e tests */\n contentTestId?: string;\n /** placement of the popover relative to its trigger reference */\n placement?: NextPopoverProps['placement'];\n /** use as controlled component */\n openControlled?: { open: boolean; setOpen: (open: boolean) => void };\n /** HTML data-testid attribute used in e2e tests */\n testId?: string;\n /** popover title */\n title?: ReactNode;\n}\n\n/**\n * Popover component based on [NextUI Card](https://nextui.org/docs/components/popover)\n */\nexport default ({\n children = null,\n className = undefined,\n content,\n contentTestId = undefined,\n placement = 'top',\n openControlled = undefined,\n testId = undefined,\n title = undefined,\n}: PopoverProps) => {\n return (\n <Popover\n placement={placement}\n radius=\"sm\"\n showArrow\n {...(openControlled\n ? { isOpen: openControlled.open, onOpenChange: openControlled.setOpen }\n : {})}\n >\n <PopoverTrigger className={cn(className)} data-testid={testId}>\n {/* NOTE: type and aria properties are injected by PopoverTrigger */}\n {/* eslint-disable-next-line react/button-has-type */}\n <button>{children}</button>\n </PopoverTrigger>\n <PopoverContent data-testid={contentTestId}>\n <div className=\"max-h-[80vh] overflow-y-auto\">\n {title && (\n <div>\n {title}\n <hr />\n </div>\n )}\n {content}\n </div>\n </PopoverContent>\n </Popover>\n );\n};\n","import Popover from './Popover';\n\nexport type { PopoverProps } from './Popover';\n\nexport { Popover };\n\nexport default Popover;\n"]}
@@ -1,29 +0,0 @@
1
- "use strict";Object.defineProperty(exports, "__esModule", {value: true});// src/utils/theme.ts
2
- var _theme = require('@nextui-org/theme');
3
-
4
- // src/utils/tv.ts
5
- var _tailwindvariants = require('tailwind-variants');
6
- var variantsToClassNames = (variants, className, baseSlot) => {
7
- const classNameObj = typeof className === "object" && className || {};
8
- return Object.fromEntries(
9
- Object.entries(variants).map(([slot, variantFn]) => [
10
- slot,
11
- baseSlot && slot === baseSlot ? (
12
- // @ts-expect-error could be improved
13
- variantFn({
14
- className: typeof className === "string" ? className : classNameObj[slot]
15
- })
16
- ) : (
17
- // @ts-expect-error could be improved
18
- variantFn({ className: classNameObj[slot] })
19
- )
20
- ])
21
- );
22
- };
23
-
24
-
25
-
26
-
27
-
28
- exports.nextui = _theme.nextui; exports.variantsToClassNames = variantsToClassNames; exports.tv = _tailwindvariants.tv;
29
- //# sourceMappingURL=chunk-B36YERUR.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/utils/theme.ts","../src/utils/tv.ts"],"names":[],"mappings":";AACA,SAAS,cAAc;;;ACDvB,SAAS,UAAU;AAGZ,IAAM,uBAAuB,CAClC,UACA,WACA,aAC4B;AAC5B,QAAM,eAAgB,OAAO,cAAc,YAAY,aAAc,CAAC;AAEtE,SAAO,OAAO;AAAA,IACZ,OAAO,QAAQ,QAAQ,EAAE,IAAI,CAAC,CAAC,MAAM,SAAS,MAAM;AAAA,MAClD;AAAA,MACA,YAAY,SAAS;AAAA;AAAA,QAEhB,UAAU;AAAA,UACT,WACE,OAAO,cAAc,WAAW,YAAY,aAAa,IAAI;AAAA,QACjE,CAAC;AAAA;AAAA;AAAA,QAEA,UAAU,EAAE,WAAW,aAAa,IAAI,EAAE,CAAC;AAAA;AAAA,IAClD,CAAC;AAAA,EACH;AACF","sourcesContent":["/* eslint-disable import/prefer-default-export */\nexport { nextui } from '@nextui-org/theme';\n","export { tv } from 'tailwind-variants';\n\n// converts tailwind-variants slots instance to actual classnames object\nexport const variantsToClassNames = <T extends Record<string, unknown>>(\n variants: T,\n className?: string | Record<string, string>,\n baseSlot?: keyof T,\n): Record<keyof T, string> => {\n const classNameObj = (typeof className === 'object' && className) || {};\n // @ts-expect-error could be improved\n return Object.fromEntries(\n Object.entries(variants).map(([slot, variantFn]) => [\n slot as keyof T,\n baseSlot && slot === baseSlot\n ? // @ts-expect-error could be improved\n (variantFn({\n className:\n typeof className === 'string' ? className : classNameObj[slot],\n }) as string)\n : // @ts-expect-error could be improved\n (variantFn({ className: classNameObj[slot] }) as string),\n ]),\n );\n};\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/Label/Label.tsx","../src/Label/index.ts"],"names":["Label_default"],"mappings":";AAGA,SAAS,QAAQ,iBAAiB;AAClC,OAAO,QAAQ;AA4Bb;AARF,IAAM,QAAQ,CAAC;AAAA,EACb;AAAA,EACA,YAAY;AAAA,EACZ,QAAQ;AAAA,EACR,aAAa;AAAA,EACb,OAAO;AAAA,EACP,eAAe;AACjB,MACE;AAAA,EAAC;AAAA;AAAA,IACC,WAAW,GAAG,SAAS;AAAA,IACvB;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IAEC;AAAA;AACH;AAGF,IAAO,gBAAQ;;;ACrCf,IAAOA,iBAAQ","sourcesContent":["import type { ChipProps } from '@nextui-org/chip';\nimport type { ReactNode } from 'react';\n\nimport { Chip as NextLabel } from '@nextui-org/chip';\nimport cn from 'classnames';\n\nexport interface LabelProps {\n /** content of the label */\n children: ReactNode;\n /** CSS class name */\n className?: string;\n /** color of the label */\n color?: ChipProps['color'];\n /** element to be rendered in the right side of the label */\n endContent?: ChipProps['endContent'];\n /** size of the label */\n size?: ChipProps['size'];\n /** element to be rendered in the left side of the label */\n startContent?: ChipProps['startContent'];\n}\n\n/**\n * Label component based on [NextUI Chip](https://nextui.org/docs/components/chip)\n */\nconst Label = ({\n children,\n className = undefined,\n color = 'default',\n endContent = undefined,\n size = 'md',\n startContent = undefined,\n}: LabelProps) => (\n <NextLabel\n className={cn(className)}\n color={color}\n endContent={endContent}\n size={size}\n startContent={startContent}\n >\n {children}\n </NextLabel>\n);\n\nexport default Label;\n","import Label from './Label';\n\nexport type { LabelProps } from './Label';\n\nexport { Label };\n\nexport default Label;\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/Tooltip/Tooltip.tsx","../src/Tooltip/index.ts"],"names":["Tooltip_default"],"mappings":";AAEA,SAAS,WAAW,mBAAmB;AACvC,OAAO,QAAQ;AAkDX;AAhDG,IAAM,0BAA0B;AAAA,EACrC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF;AAuBA,IAAM,UAAU,CAAC;AAAA,EACf;AAAA,EACA,YAAY;AAAA,EACZ;AAAA,EACA,YAAY;AAAA,EACZ,cAAc;AAAA,EACd,eAAe;AAAA,EACf,mBAAmB;AACrB,MACE;AAAA,EAAC;AAAA;AAAA,IACC,WAAW,GAAG,SAAS;AAAA,IACvB;AAAA,IACA;AAAA,IACA;AAAA,IACA,SAAS,CAAC,MAAM,EAAE,eAAe;AAAA,IACjC;AAAA,IACA;AAAA,IACA,YAAU;AAAA,IACV,WAAS;AAAA,IAET,8BAAC,UAAK,WAAU,kBAAkB,UAAS;AAAA;AAC7C;AAGF,IAAO,kBAAQ;;;ACnDf,IAAOA,mBAAQ","sourcesContent":["import type { ReactNode } from 'react';\n\nimport { Tooltip as NextTooltip } from '@nextui-org/tooltip';\nimport cn from 'classnames';\n\nexport const tooltipPlacementOptions = [\n 'top',\n 'bottom',\n 'left',\n 'right',\n] as const;\nexport type TooltipPlacement = (typeof tooltipPlacementOptions)[number];\n\nexport interface TooltipProps {\n /** trigger child components */\n children: ReactNode;\n /** CSS class name */\n className?: string;\n /** placement padding in px */\n containerPadding?: number;\n /** content displayed in the tooltip */\n content: ReactNode;\n /** open overlay initially when uncontrolled */\n defaultOpen?: boolean;\n /** handler that is called when the overlay's open state changes */\n onOpenChange?: (isOpen: boolean) => void;\n /** placement if the tooltip */\n placement?: TooltipPlacement;\n}\n\n/**\n * Tooltip component based on [NextUI Tooltip](https://nextui.org/docs/components/tooltip)\n */\nconst Tooltip = ({\n children,\n className = undefined,\n content,\n placement = 'top',\n defaultOpen = false,\n onOpenChange = undefined,\n containerPadding = 0,\n}: TooltipProps) => (\n <NextTooltip\n className={cn(className)}\n containerPadding={containerPadding}\n content={content}\n defaultOpen={defaultOpen}\n onClick={(e) => e.preventDefault()}\n onOpenChange={onOpenChange}\n placement={placement}\n shouldFlip\n showArrow\n >\n <span className=\"cursor-pointer\">{children}</span>\n </NextTooltip>\n);\n\nexport default Tooltip;\n","import Tooltip, { tooltipPlacementOptions } from './Tooltip';\n\nexport type { TooltipProps } from './Tooltip';\n\nexport { Tooltip, tooltipPlacementOptions };\n\nexport default Tooltip;\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/Card/Card.tsx","../src/Card/index.ts"],"names":["Card_default"],"mappings":";;;;;;AAGA;AAAA,EACE,QAAQ;AAAA,EACR,YAAY;AAAA,EACZ,cAAc;AAAA,EACd,cAAc;AAAA,OACT;AACP,SAAS,WAAW,mBAAmB;AAmDrB,SAWV,UAXU,KAWV,YAXU;AA9CX,IAAM,eAAe,GAAG;AAAA,EAC7B,OAAO;AAAA,IACL,MAAM;AAAA,IACN,MAAM;AAAA,IACN,SAAS;AAAA,IACT,QAAQ;AAAA,IACR,QAAQ;AAAA,EACV;AACF,CAAC;AAuBD,IAAM,OAAO,CAAC;AAAA,EACZ,WAAW;AAAA,EACX,YAAY;AAAA,EACZ,SAAS;AAAA,EACT,SAAS;AAAA,EACT,SAAS;AACX,MAAiB;AAEf,QAAM,WAAW,aAAa;AAC9B,QAAM,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;;;ACvFf,IAAOA,gBAAQ","sourcesContent":["import type { ReactNode } from 'react';\nimport type { VariantProps } from 'tailwind-variants';\n\nimport {\n Card as NextCard,\n CardBody as NextCardBody,\n CardFooter as NextCardFooter,\n CardHeader as NextCardHeader,\n} from '@nextui-org/card';\nimport { Divider as NextDivider } from '@nextui-org/divider';\n\nimport { tv, variantsToClassNames } from '../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 CardVariantProps = VariantProps<typeof cardVariants>;\ntype CardVariantSlots = Partial<\n Record<keyof ReturnType<typeof cardVariants>, string>\n>;\n\nexport interface CardProps extends CardVariantProps {\n /** card body content */\n children?: ReactNode;\n /** CSS class name */\n className?: string | CardVariantSlots;\n /** footer content */\n footer?: ReactNode;\n /** header content */\n header?: ReactNode;\n /** HTML data-testid attribute used in e2e tests */\n testId?: string;\n}\n\n/**\n * Card component based on [NextUI Card](https://nextui.org/docs/components/card)\n */\nconst Card = ({\n children = null,\n className = undefined,\n testId = undefined,\n header = undefined,\n footer = undefined,\n}: CardProps) => {\n // classNames from slots\n const variants = cardVariants();\n const { 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 +0,0 @@
1
- {"version":3,"sources":["../src/Accordion/Accordion.tsx","../src/Accordion/index.ts"],"sourcesContent":["import type { DividerProps } from '@nextui-org/divider';\nimport type { VariantProps } from '@nextui-org/theme';\nimport type { ReactNode } from 'react';\n\nimport {\n Accordion as NextAccordion,\n AccordionItem as NextAccordionItem,\n} from '@nextui-org/accordion';\n\nimport { tv, variantsToClassNames } from '../utils';\n\n// card styling variants\n// see: https://nextui.org/docs/components/accordion#accordion-item-slots\nexport const accordionVariants = tv({\n slots: {\n base: '',\n content: '',\n heading: '',\n indicator: '',\n startContent: '',\n subtitle: '',\n title: '',\n titleWrapper: '',\n trigger: '',\n // outer accordion wrapper\n wrapper: '',\n },\n variants: {\n indicatorLeft: {\n true: {\n content: 'pl-7',\n indicator: '-rotate-180 data-[open=true]:-rotate-90',\n trigger: 'flex-row-reverse',\n },\n },\n },\n});\n\nexport interface AccordionItemProps {\n /** Content of the accordion item */\n children: ReactNode;\n /** Disables the accordion item */\n disabled?: boolean;\n /** Accordion item title */\n title: ReactNode;\n /** Accordion item subtitle */\n subtitle?: ReactNode;\n}\n\ntype AccordionVariantProps = VariantProps<typeof accordionVariants>;\ntype AccordionVariantSlots = Partial<\n Record<keyof ReturnType<typeof accordionVariants>, string>\n>;\n\nexport interface AccordionProps extends AccordionVariantProps {\n /** Props for AccordionItems, will render the accordion items programmatically */\n accordionItems?: AccordionItemProps[];\n /** CSS class name */\n className?: string | AccordionVariantSlots;\n /** Array of keys for the AccordionItem(s) to be expanded by default */\n defaultSelectedKeys?: undefined | 'all' | Iterable<number | string>;\n /** Disables the Accordion */\n disabled?: boolean;\n /** Array of keys for the AccordionItems to disable */\n disabledKeys?: Iterable<number | string>;\n /** Force always one AccordionItem to be open. */\n disallowEmptySelection?: boolean;\n /** props for styling the Divider */\n dividerProps?: DividerProps;\n /** Hide the expanded/collapsed indicator icon */\n hideIndicator?: boolean;\n /** Callback function for when a Accordion Item is expanded or collapsed */\n onSelectionChange?: (keys: 'all' | Iterable<number | string>) => unknown;\n /** Set whether multiple or only a single AccordionItems can be expanded */\n selectionMode?: 'single' | 'multiple';\n /** Enable or disable the divider between each AccordionItem */\n showDivider?: boolean;\n /** Style variant of the Accordion */\n variant?: 'light' | 'shadow' | 'bordered' | 'splitted';\n}\n\n/**\n * Accordion component based on [NextUI Accordion](https://nextui.org/docs/components/accordion)\n */\nconst Accordion = ({\n accordionItems = [],\n className = undefined,\n defaultSelectedKeys = [],\n disabled = false,\n disabledKeys = [],\n disallowEmptySelection = false,\n dividerProps = {},\n indicatorLeft = false,\n onSelectionChange = undefined,\n selectionMode = 'multiple',\n showDivider = true,\n variant = 'light',\n}: AccordionProps) => {\n // itemClasses from className slots\n const variants = accordionVariants({ indicatorLeft });\n const { wrapper, ...itemClasses } = variantsToClassNames(\n variants,\n className,\n 'wrapper',\n );\n\n return (\n <NextAccordion\n className={wrapper}\n defaultSelectedKeys={defaultSelectedKeys}\n disabledKeys={disabledKeys}\n disallowEmptySelection={disallowEmptySelection}\n dividerProps={dividerProps}\n isDisabled={disabled}\n itemClasses={itemClasses}\n onSelectionChange={onSelectionChange}\n selectionMode={selectionMode}\n showDivider={showDivider}\n variant={variant}\n >\n {accordionItems.map((item, index) => (\n <NextAccordionItem\n // eslint-disable-next-line react/no-array-index-key\n key={index}\n isDisabled={disabled || item?.disabled}\n // eslint-disable-next-line react/jsx-props-no-spreading\n {...item}\n />\n ))}\n </NextAccordion>\n );\n};\n\nexport default Accordion;\n","import Accordion, { accordionVariants } from './Accordion';\n\nexport type { AccordionProps, AccordionItemProps } from './Accordion';\n\nexport { Accordion, accordionVariants };\n\nexport default Accordion;\n"],"mappings":";;;;;;AAIA;AAAA,EACE,aAAa;AAAA,EACb,iBAAiB;AAAA,OACZ;AAkHC;AA5GD,IAAM,oBAAoB,GAAG;AAAA,EAClC,OAAO;AAAA,IACL,MAAM;AAAA,IACN,SAAS;AAAA,IACT,SAAS;AAAA,IACT,WAAW;AAAA,IACX,cAAc;AAAA,IACd,UAAU;AAAA,IACV,OAAO;AAAA,IACP,cAAc;AAAA,IACd,SAAS;AAAA;AAAA,IAET,SAAS;AAAA,EACX;AAAA,EACA,UAAU;AAAA,IACR,eAAe;AAAA,MACb,MAAM;AAAA,QACJ,SAAS;AAAA,QACT,WAAW;AAAA,QACX,SAAS;AAAA,MACX;AAAA,IACF;AAAA,EACF;AACF,CAAC;AAgDD,IAAM,YAAY,CAAC;AAAA,EACjB,iBAAiB,CAAC;AAAA,EAClB,YAAY;AAAA,EACZ,sBAAsB,CAAC;AAAA,EACvB,WAAW;AAAA,EACX,eAAe,CAAC;AAAA,EAChB,yBAAyB;AAAA,EACzB,eAAe,CAAC;AAAA,EAChB,gBAAgB;AAAA,EAChB,oBAAoB;AAAA,EACpB,gBAAgB;AAAA,EAChB,cAAc;AAAA,EACd,UAAU;AACZ,MAAsB;AAEpB,QAAM,WAAW,kBAAkB,EAAE,cAAc,CAAC;AACpD,QAAM,EAAE,SAAS,GAAG,YAAY,IAAI;AAAA,IAClC;AAAA,IACA;AAAA,IACA;AAAA,EACF;AAEA,SACE;AAAA,IAAC;AAAA;AAAA,MACC,WAAW;AAAA,MACX;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA,YAAY;AAAA,MACZ;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MAEC,yBAAe,IAAI,CAAC,MAAM,UACzB;AAAA,QAAC;AAAA;AAAA,UAGC,YAAY,YAAY,MAAM;AAAA,UAE7B,GAAG;AAAA;AAAA,QAHC;AAAA,MAIP,CACD;AAAA;AAAA,EACH;AAEJ;AAEA,IAAO,oBAAQ;;;AC/Hf,IAAOA,qBAAQ;","names":["Accordion_default"]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/Menu/Menu.tsx","../src/Menu/index.ts"],"names":["Menu_default"],"mappings":";AAGA,SAAS,0BAA0B;AAEnC,SAAS,cAAc;AACvB;AAAA,EACE,YAAY;AAAA,EACZ,gBAAgB;AAAA,EAChB,gBAAgB;AAAA,EAChB,mBAAmB;AAAA,EACnB,mBAAmB;AAAA,OACd;AACP,OAAO,QAAQ;AAkEb,cAwBE,YAxBF;AAdF,IAAM,kBAAkB,CAAC,UAAsC;AAC7D,SACE,MAEG,IAAI,CAAC,SAAU,OAAO,MAAM,UAAU,cAAc,OAAO,KAAK,KAAM,EACtE,KAAiB,EACjB,OAAO,CAAC,SAAS;AAChB,WAAO,OAAO,OAAO,MAAM,UAAU,KAAK,KAAK,aAAa;AAAA,EAC9D,CAAC,EACA,IAAI,CAAC,SAAS,KAAK,GAAG;AAE7B;AAEA,IAAM,iBAAiB,CAAC,SACtB;AAAA,EAAC;AAAA;AAAA,IACC,WAAW,KAAK;AAAA,IAChB,eAAa,KAAK,UAAU,KAAK;AAAA,IACjC,aAAa,KAAK;AAAA,IAElB,SAAS,KAAK;AAAA,IACd,cAAc,KAAK;AAAA,IAElB,eAAK;AAAA;AAAA,EAJD,KAAK;AAKZ;AAMF,IAAM,OAAO,CAAC;AAAA,EACZ,WAAW;AAAA,EACX,YAAY;AAAA,EACZ,WAAW;AAAA,EACX,SAAS;AAAA,EACT,aAAa;AAAA,EACb;AACF,MAAiB;AACf,SACE,qBAAC,gBAAa,YACZ;AAAA,wBAAC,uBAAoB,WAAW,GAAG,SAAS,GAAG,eAAa,QACzD;AAAA;AAAA,MAEC,oBAAC,YAAQ,UAAS;AAAA;AAAA;AAAA,MAGlB,oBAAC,UAAO,MAAK,MAAK,SAAQ,QAAO,WAAU,WACzC,8BAAC,sBAAmB,GACtB;AAAA,OAEJ;AAAA,IACA;AAAA,MAAC;AAAA;AAAA,QAEC;AAAA,QACA,cAAc,gBAAgB,KAAK;AAAA,QACnC;AAAA,QAEC,WAAC,SAAS;AACT,cAAI,WAAW,MAAM;AACnB,mBACE;AAAA,cAAC;AAAA;AAAA,gBACC,OAAO,KAAK;AAAA,gBACZ,OAAO,KAAK;AAAA,gBAIX,WAAC,gBAAgB;AAChB,yBAAO,eAAe,WAAW;AAAA,gBACnC;AAAA;AAAA,cALK,KAAK;AAAA,YAMZ;AAAA,UAEJ;AACA,iBAAO,eAAe,IAAI;AAAA,QAC5B;AAAA;AAAA,IACF;AAAA,KACF;AAEJ;AAEA,IAAO,eAAQ;;;ACzIf,IAAOA,gBAAQ","sourcesContent":["import type { DropdownSectionProps } from '@nextui-org/dropdown';\nimport type { Key, MouseEventHandler, ReactNode } from 'react';\n\nimport { FaEllipsisVertical } from 'react-icons/fa6';\n\nimport { Button } from '@nextui-org/button';\nimport {\n Dropdown as NextDropdown,\n DropdownItem as NextDropdownItem,\n DropdownMenu as NextDropdownMenu,\n DropdownSection as NextDropdownSection,\n DropdownTrigger as NextDropdownTrigger,\n} from '@nextui-org/dropdown';\nimport cn from 'classnames';\n\n/**\n * Menu item type\n */\nexport interface MenuItem {\n /** unique identifier */\n key: string;\n /** CSS class name */\n className?: string;\n /** additional description shown under the label */\n description?: string;\n /** disables the menu item */\n disabled?: boolean;\n /** menu item icon */\n icon?: ReactNode;\n /** menu item name */\n label: ReactNode;\n /** click event handler */\n onClick?: MouseEventHandler<HTMLLIElement>;\n /** e2e test identifier */\n testId?: string;\n}\n\n/**\n * Menu section type\n */\nexport interface MenuSection {\n /** unique identifier */\n key: string;\n /** section label */\n label: ReactNode;\n /** section items (array of MenuItem) */\n items: MenuItem[];\n}\n\nexport interface MenuProps {\n /** child components */\n children?: ReactNode;\n /** CSS class name */\n className?: string | string[];\n /** HTML data-testid attribute used in e2e tests */\n testId?: string;\n /** menu item structure */\n items: (MenuSection | MenuItem)[];\n /** disable menu trigger */\n isDisabled?: boolean;\n /** called if item is selected */\n onAction?: (key: Key) => void;\n}\n\n/** returns String[] of disabled items/keys */\nconst getDisabledKeys = (items: (MenuSection | MenuItem)[]) => {\n return (\n items\n // @ts-expect-error typing issue with MenuSection | MenuItem\n .map((item) => (typeof item?.items === 'undefined' ? item : item.items))\n .flat<MenuItem[]>()\n .filter((item) => {\n return Object.hasOwn(item, 'disabled') && item.disabled === true;\n })\n .map((item) => item.key)\n );\n};\n\nconst renderMenuItem = (item: MenuItem) => (\n <NextDropdownItem\n className={item.className}\n data-testid={item.testId || item.key}\n description={item.description}\n key={item.key}\n onClick={item.onClick}\n startContent={item.icon}\n >\n {item.label}\n </NextDropdownItem>\n);\n\n/**\n * Dropdown menu component based on [NextUI Dropdown](https://nextui.org/docs/components/dropdown)\n */\nconst Menu = ({\n children = null,\n className = undefined,\n onAction = undefined,\n testId = undefined,\n isDisabled = false,\n items,\n}: MenuProps) => {\n return (\n <NextDropdown isDisabled={isDisabled}>\n <NextDropdownTrigger className={cn(className)} data-testid={testId}>\n {children ? (\n // eslint-disable-next-line react/button-has-type\n <button>{children}</button>\n ) : (\n // INFO: we use next button here so that ref passing works\n <Button size=\"sm\" variant=\"flat\" className=\"min-w-0\">\n <FaEllipsisVertical />\n </Button>\n )}\n </NextDropdownTrigger>\n <NextDropdownMenu\n // aria-label=\"Dynamic Actions\"\n items={items}\n disabledKeys={getDisabledKeys(items)}\n onAction={onAction}\n >\n {(item) => {\n if ('items' in item) {\n return (\n <NextDropdownSection\n items={item.items as MenuSection['items']}\n title={item.label as DropdownSectionProps['title']}\n key={item.key}\n >\n {/* @ts-expect-error ts problem here with render fn */}\n {(sectionItem) => {\n return renderMenuItem(sectionItem);\n }}\n </NextDropdownSection>\n );\n }\n return renderMenuItem(item);\n }}\n </NextDropdownMenu>\n </NextDropdown>\n );\n};\n\nexport default Menu;\n","import Menu from './Menu';\n\nexport type { MenuProps, MenuItem, MenuSection } from './Menu';\n\nexport { Menu };\n\nexport default Menu;\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/Button/Button.tsx","../src/Button/subcomponents/LoadingSpinner.tsx","../src/Button/index.ts"],"sourcesContent":["import type { ButtonProps as NextButtonProps } from '@nextui-org/button';\nimport type { ReactNode } from 'react';\nimport type { VariantProps } from 'tailwind-variants';\n\nimport { Button as NextButton } from '@nextui-org/button';\n\nimport { tv } from '../utils';\nimport LoadingSpinner from './subcomponents/LoadingSpinner';\n\nexport const buttonVariants = tv({\n base: '',\n variants: {\n color: {\n default: '',\n primary: '',\n secondary: '',\n success: '',\n warning: '',\n danger: '',\n },\n variant: {\n solid: '',\n bordered: '',\n light: '',\n flat: '',\n faded: '',\n shadow: '',\n ghost: '',\n },\n },\n compoundVariants: [\n // white text on solid / shadow success button\n {\n color: 'success',\n variant: ['solid', 'shadow'],\n class: 'text-white',\n },\n // white text on solid / shadow warning button\n {\n color: 'warning',\n variant: ['solid', 'shadow'],\n class: 'text-white',\n },\n ],\n});\n\ntype ButtonVariantProps = VariantProps<typeof buttonVariants>;\n\nexport interface ButtonProps extends ButtonVariantProps {\n /** sets HTML aria-label attribute */\n ariaLabel?: string;\n /** child components */\n children?: ReactNode;\n /** CSS class name */\n className?: string | string[];\n /** next ui button color */\n color?: NextButtonProps['color'];\n /** disables function of the button. */\n disabled?: boolean;\n /** disables all button animations */\n disableAnimation?: boolean;\n /** If set loading animation is shown */\n loading?: boolean;\n /** optional icon */\n icon?: ReactNode;\n /** on click event */\n onClick?: NextButtonProps['onPress'];\n /** 3 size options */\n size?: NextButtonProps['size'];\n /** HTML data-testid attribute used in e2e tests */\n testId?: string;\n /** sets the button type. */\n type?: 'button' | 'submit' | 'reset' | undefined;\n /** next ui button variants */\n variant?: NextButtonProps['variant'];\n}\n\n/**\n * Button component based on [NextUI Button](https://nextui.org/docs/components/button)\n */\nconst Button = ({\n ariaLabel = undefined,\n children = undefined,\n className = undefined,\n color = 'default',\n disabled = false,\n disableAnimation = false,\n icon = undefined,\n loading = false,\n onClick = undefined,\n size = undefined,\n testId = undefined,\n type = undefined,\n variant = 'solid',\n}: ButtonProps) => {\n return (\n <NextButton\n aria-label={ariaLabel}\n className={buttonVariants({ color, variant, className })}\n color={color}\n data-testid={testId}\n disableAnimation={disableAnimation}\n disableRipple={disableAnimation}\n isDisabled={disabled}\n isIconOnly={!!(icon && !children)}\n isLoading={loading}\n onPress={onClick}\n size={size}\n spinner={<LoadingSpinner />}\n type={type}\n variant={variant}\n >\n {icon}\n {children}\n </NextButton>\n );\n};\n\nexport default Button;\n","/**\n * svg loading spinner for button\n * @see https://nextui.org/docs/components/button#loading\n * */\nexport default () => (\n <svg\n className=\"animate-spin h-5 w-5 text-current\"\n fill=\"none\"\n viewBox=\"0 0 24 24\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <circle\n className=\"opacity-25\"\n cx=\"12\"\n cy=\"12\"\n r=\"10\"\n stroke=\"currentColor\"\n strokeWidth=\"4\"\n />\n <path\n className=\"opacity-75\"\n d=\"M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z\"\n fill=\"currentColor\"\n />\n </svg>\n);\n","import Button, { buttonVariants } from './Button';\n\nexport type { ButtonProps } from './Button';\n\nexport { Button, buttonVariants };\n\nexport default Button;\n"],"mappings":";;;;;AAIA,SAAS,UAAU,kBAAkB;;;ACCnC,SAME,KANF;AADF,IAAO,yBAAQ,MACb;AAAA,EAAC;AAAA;AAAA,IACC,WAAU;AAAA,IACV,MAAK;AAAA,IACL,SAAQ;AAAA,IACR,OAAM;AAAA,IAEN;AAAA;AAAA,QAAC;AAAA;AAAA,UACC,WAAU;AAAA,UACV,IAAG;AAAA,UACH,IAAG;AAAA,UACH,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA;AAAA,MACd;AAAA,MACA;AAAA,QAAC;AAAA;AAAA,UACC,WAAU;AAAA,UACV,GAAE;AAAA,UACF,MAAK;AAAA;AAAA,MACP;AAAA;AAAA;AACF;;;ADwEE,SAYW,OAAAA,MAZX,QAAAC,aAAA;AAvFG,IAAM,iBAAiB,GAAG;AAAA,EAC/B,MAAM;AAAA,EACN,UAAU;AAAA,IACR,OAAO;AAAA,MACL,SAAS;AAAA,MACT,SAAS;AAAA,MACT,WAAW;AAAA,MACX,SAAS;AAAA,MACT,SAAS;AAAA,MACT,QAAQ;AAAA,IACV;AAAA,IACA,SAAS;AAAA,MACP,OAAO;AAAA,MACP,UAAU;AAAA,MACV,OAAO;AAAA,MACP,MAAM;AAAA,MACN,OAAO;AAAA,MACP,QAAQ;AAAA,MACR,OAAO;AAAA,IACT;AAAA,EACF;AAAA,EACA,kBAAkB;AAAA;AAAA,IAEhB;AAAA,MACE,OAAO;AAAA,MACP,SAAS,CAAC,SAAS,QAAQ;AAAA,MAC3B,OAAO;AAAA,IACT;AAAA;AAAA,IAEA;AAAA,MACE,OAAO;AAAA,MACP,SAAS,CAAC,SAAS,QAAQ;AAAA,MAC3B,OAAO;AAAA,IACT;AAAA,EACF;AACF,CAAC;AAoCD,IAAM,SAAS,CAAC;AAAA,EACd,YAAY;AAAA,EACZ,WAAW;AAAA,EACX,YAAY;AAAA,EACZ,QAAQ;AAAA,EACR,WAAW;AAAA,EACX,mBAAmB;AAAA,EACnB,OAAO;AAAA,EACP,UAAU;AAAA,EACV,UAAU;AAAA,EACV,OAAO;AAAA,EACP,SAAS;AAAA,EACT,OAAO;AAAA,EACP,UAAU;AACZ,MAAmB;AACjB,SACE,gBAAAA;AAAA,IAAC;AAAA;AAAA,MACC,cAAY;AAAA,MACZ,WAAW,eAAe,EAAE,OAAO,SAAS,UAAU,CAAC;AAAA,MACvD;AAAA,MACA,eAAa;AAAA,MACb;AAAA,MACA,eAAe;AAAA,MACf,YAAY;AAAA,MACZ,YAAY,CAAC,EAAE,QAAQ,CAAC;AAAA,MACxB,WAAW;AAAA,MACX,SAAS;AAAA,MACT;AAAA,MACA,SAAS,gBAAAD,KAAC,0BAAe;AAAA,MACzB;AAAA,MACA;AAAA,MAEC;AAAA;AAAA,QACA;AAAA;AAAA;AAAA,EACH;AAEJ;AAEA,IAAO,iBAAQ;;;AEhHf,IAAOE,kBAAQ;","names":["jsx","jsxs","Button_default"]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/Accordion/Accordion.tsx","../src/Accordion/index.ts"],"names":["Accordion_default"],"mappings":";;;;;;AAIA;AAAA,EACE,aAAa;AAAA,EACb,iBAAiB;AAAA,OACZ;AAkHC;AA5GD,IAAM,oBAAoB,GAAG;AAAA,EAClC,OAAO;AAAA,IACL,MAAM;AAAA,IACN,SAAS;AAAA,IACT,SAAS;AAAA,IACT,WAAW;AAAA,IACX,cAAc;AAAA,IACd,UAAU;AAAA,IACV,OAAO;AAAA,IACP,cAAc;AAAA,IACd,SAAS;AAAA;AAAA,IAET,SAAS;AAAA,EACX;AAAA,EACA,UAAU;AAAA,IACR,eAAe;AAAA,MACb,MAAM;AAAA,QACJ,SAAS;AAAA,QACT,WAAW;AAAA,QACX,SAAS;AAAA,MACX;AAAA,IACF;AAAA,EACF;AACF,CAAC;AAgDD,IAAM,YAAY,CAAC;AAAA,EACjB,iBAAiB,CAAC;AAAA,EAClB,YAAY;AAAA,EACZ,sBAAsB,CAAC;AAAA,EACvB,WAAW;AAAA,EACX,eAAe,CAAC;AAAA,EAChB,yBAAyB;AAAA,EACzB,eAAe,CAAC;AAAA,EAChB,gBAAgB;AAAA,EAChB,oBAAoB;AAAA,EACpB,gBAAgB;AAAA,EAChB,cAAc;AAAA,EACd,UAAU;AACZ,MAAsB;AAEpB,QAAM,WAAW,kBAAkB,EAAE,cAAc,CAAC;AACpD,QAAM,EAAE,SAAS,GAAG,YAAY,IAAI;AAAA,IAClC;AAAA,IACA;AAAA,IACA;AAAA,EACF;AAEA,SACE;AAAA,IAAC;AAAA;AAAA,MACC,WAAW;AAAA,MACX;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA,YAAY;AAAA,MACZ;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MAEC,yBAAe,IAAI,CAAC,MAAM,UACzB;AAAA,QAAC;AAAA;AAAA,UAGC,YAAY,YAAY,MAAM;AAAA,UAE7B,GAAG;AAAA;AAAA,QAHC;AAAA,MAIP,CACD;AAAA;AAAA,EACH;AAEJ;AAEA,IAAO,oBAAQ;;;AC/Hf,IAAOA,qBAAQ","sourcesContent":["import type { DividerProps } from '@nextui-org/divider';\nimport type { VariantProps } from '@nextui-org/theme';\nimport type { ReactNode } from 'react';\n\nimport {\n Accordion as NextAccordion,\n AccordionItem as NextAccordionItem,\n} from '@nextui-org/accordion';\n\nimport { tv, variantsToClassNames } from '../utils';\n\n// card styling variants\n// see: https://nextui.org/docs/components/accordion#accordion-item-slots\nexport const accordionVariants = tv({\n slots: {\n base: '',\n content: '',\n heading: '',\n indicator: '',\n startContent: '',\n subtitle: '',\n title: '',\n titleWrapper: '',\n trigger: '',\n // outer accordion wrapper\n wrapper: '',\n },\n variants: {\n indicatorLeft: {\n true: {\n content: 'pl-7',\n indicator: '-rotate-180 data-[open=true]:-rotate-90',\n trigger: 'flex-row-reverse',\n },\n },\n },\n});\n\nexport interface AccordionItemProps {\n /** Content of the accordion item */\n children: ReactNode;\n /** Disables the accordion item */\n disabled?: boolean;\n /** Accordion item title */\n title: ReactNode;\n /** Accordion item subtitle */\n subtitle?: ReactNode;\n}\n\ntype AccordionVariantProps = VariantProps<typeof accordionVariants>;\ntype AccordionVariantSlots = Partial<\n Record<keyof ReturnType<typeof accordionVariants>, string>\n>;\n\nexport interface AccordionProps extends AccordionVariantProps {\n /** Props for AccordionItems, will render the accordion items programmatically */\n accordionItems?: AccordionItemProps[];\n /** CSS class name */\n className?: string | AccordionVariantSlots;\n /** Array of keys for the AccordionItem(s) to be expanded by default */\n defaultSelectedKeys?: undefined | 'all' | Iterable<number | string>;\n /** Disables the Accordion */\n disabled?: boolean;\n /** Array of keys for the AccordionItems to disable */\n disabledKeys?: Iterable<number | string>;\n /** Force always one AccordionItem to be open. */\n disallowEmptySelection?: boolean;\n /** props for styling the Divider */\n dividerProps?: DividerProps;\n /** Hide the expanded/collapsed indicator icon */\n hideIndicator?: boolean;\n /** Callback function for when a Accordion Item is expanded or collapsed */\n onSelectionChange?: (keys: 'all' | Iterable<number | string>) => unknown;\n /** Set whether multiple or only a single AccordionItems can be expanded */\n selectionMode?: 'single' | 'multiple';\n /** Enable or disable the divider between each AccordionItem */\n showDivider?: boolean;\n /** Style variant of the Accordion */\n variant?: 'light' | 'shadow' | 'bordered' | 'splitted';\n}\n\n/**\n * Accordion component based on [NextUI Accordion](https://nextui.org/docs/components/accordion)\n */\nconst Accordion = ({\n accordionItems = [],\n className = undefined,\n defaultSelectedKeys = [],\n disabled = false,\n disabledKeys = [],\n disallowEmptySelection = false,\n dividerProps = {},\n indicatorLeft = false,\n onSelectionChange = undefined,\n selectionMode = 'multiple',\n showDivider = true,\n variant = 'light',\n}: AccordionProps) => {\n // itemClasses from className slots\n const variants = accordionVariants({ indicatorLeft });\n const { wrapper, ...itemClasses } = variantsToClassNames(\n variants,\n className,\n 'wrapper',\n );\n\n return (\n <NextAccordion\n className={wrapper}\n defaultSelectedKeys={defaultSelectedKeys}\n disabledKeys={disabledKeys}\n disallowEmptySelection={disallowEmptySelection}\n dividerProps={dividerProps}\n isDisabled={disabled}\n itemClasses={itemClasses}\n onSelectionChange={onSelectionChange}\n selectionMode={selectionMode}\n showDivider={showDivider}\n variant={variant}\n >\n {accordionItems.map((item, index) => (\n <NextAccordionItem\n // eslint-disable-next-line react/no-array-index-key\n key={index}\n isDisabled={disabled || item?.disabled}\n // eslint-disable-next-line react/jsx-props-no-spreading\n {...item}\n />\n ))}\n </NextAccordion>\n );\n};\n\nexport default Accordion;\n","import Accordion, { accordionVariants } from './Accordion';\n\nexport type { AccordionProps, AccordionItemProps } from './Accordion';\n\nexport { Accordion, accordionVariants };\n\nexport default Accordion;\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/Button/Button.tsx","../src/Button/subcomponents/LoadingSpinner.tsx","../src/Button/index.ts"],"names":["jsx","jsxs","Button_default"],"mappings":";;;;;AAIA,SAAS,UAAU,kBAAkB;;;ACCnC,SAME,KANF;AADF,IAAO,yBAAQ,MACb;AAAA,EAAC;AAAA;AAAA,IACC,WAAU;AAAA,IACV,MAAK;AAAA,IACL,SAAQ;AAAA,IACR,OAAM;AAAA,IAEN;AAAA;AAAA,QAAC;AAAA;AAAA,UACC,WAAU;AAAA,UACV,IAAG;AAAA,UACH,IAAG;AAAA,UACH,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA;AAAA,MACd;AAAA,MACA;AAAA,QAAC;AAAA;AAAA,UACC,WAAU;AAAA,UACV,GAAE;AAAA,UACF,MAAK;AAAA;AAAA,MACP;AAAA;AAAA;AACF;;;ADwEE,SAYW,OAAAA,MAZX,QAAAC,aAAA;AAvFG,IAAM,iBAAiB,GAAG;AAAA,EAC/B,MAAM;AAAA,EACN,UAAU;AAAA,IACR,OAAO;AAAA,MACL,SAAS;AAAA,MACT,SAAS;AAAA,MACT,WAAW;AAAA,MACX,SAAS;AAAA,MACT,SAAS;AAAA,MACT,QAAQ;AAAA,IACV;AAAA,IACA,SAAS;AAAA,MACP,OAAO;AAAA,MACP,UAAU;AAAA,MACV,OAAO;AAAA,MACP,MAAM;AAAA,MACN,OAAO;AAAA,MACP,QAAQ;AAAA,MACR,OAAO;AAAA,IACT;AAAA,EACF;AAAA,EACA,kBAAkB;AAAA;AAAA,IAEhB;AAAA,MACE,OAAO;AAAA,MACP,SAAS,CAAC,SAAS,QAAQ;AAAA,MAC3B,OAAO;AAAA,IACT;AAAA;AAAA,IAEA;AAAA,MACE,OAAO;AAAA,MACP,SAAS,CAAC,SAAS,QAAQ;AAAA,MAC3B,OAAO;AAAA,IACT;AAAA,EACF;AACF,CAAC;AAoCD,IAAM,SAAS,CAAC;AAAA,EACd,YAAY;AAAA,EACZ,WAAW;AAAA,EACX,YAAY;AAAA,EACZ,QAAQ;AAAA,EACR,WAAW;AAAA,EACX,mBAAmB;AAAA,EACnB,OAAO;AAAA,EACP,UAAU;AAAA,EACV,UAAU;AAAA,EACV,OAAO;AAAA,EACP,SAAS;AAAA,EACT,OAAO;AAAA,EACP,UAAU;AACZ,MAAmB;AACjB,SACE,gBAAAA;AAAA,IAAC;AAAA;AAAA,MACC,cAAY;AAAA,MACZ,WAAW,eAAe,EAAE,OAAO,SAAS,UAAU,CAAC;AAAA,MACvD;AAAA,MACA,eAAa;AAAA,MACb;AAAA,MACA,eAAe;AAAA,MACf,YAAY;AAAA,MACZ,YAAY,CAAC,EAAE,QAAQ,CAAC;AAAA,MACxB,WAAW;AAAA,MACX,SAAS;AAAA,MACT;AAAA,MACA,SAAS,gBAAAD,KAAC,0BAAe;AAAA,MACzB;AAAA,MACA;AAAA,MAEC;AAAA;AAAA,QACA;AAAA;AAAA;AAAA,EACH;AAEJ;AAEA,IAAO,iBAAQ;;;AEhHf,IAAOE,kBAAQ","sourcesContent":["import type { ButtonProps as NextButtonProps } from '@nextui-org/button';\nimport type { ReactNode } from 'react';\nimport type { VariantProps } from 'tailwind-variants';\n\nimport { Button as NextButton } from '@nextui-org/button';\n\nimport { tv } from '../utils';\nimport LoadingSpinner from './subcomponents/LoadingSpinner';\n\nexport const buttonVariants = tv({\n base: '',\n variants: {\n color: {\n default: '',\n primary: '',\n secondary: '',\n success: '',\n warning: '',\n danger: '',\n },\n variant: {\n solid: '',\n bordered: '',\n light: '',\n flat: '',\n faded: '',\n shadow: '',\n ghost: '',\n },\n },\n compoundVariants: [\n // white text on solid / shadow success button\n {\n color: 'success',\n variant: ['solid', 'shadow'],\n class: 'text-white',\n },\n // white text on solid / shadow warning button\n {\n color: 'warning',\n variant: ['solid', 'shadow'],\n class: 'text-white',\n },\n ],\n});\n\ntype ButtonVariantProps = VariantProps<typeof buttonVariants>;\n\nexport interface ButtonProps extends ButtonVariantProps {\n /** sets HTML aria-label attribute */\n ariaLabel?: string;\n /** child components */\n children?: ReactNode;\n /** CSS class name */\n className?: string | string[];\n /** next ui button color */\n color?: NextButtonProps['color'];\n /** disables function of the button. */\n disabled?: boolean;\n /** disables all button animations */\n disableAnimation?: boolean;\n /** If set loading animation is shown */\n loading?: boolean;\n /** optional icon */\n icon?: ReactNode;\n /** on click event */\n onClick?: NextButtonProps['onPress'];\n /** 3 size options */\n size?: NextButtonProps['size'];\n /** HTML data-testid attribute used in e2e tests */\n testId?: string;\n /** sets the button type. */\n type?: 'button' | 'submit' | 'reset' | undefined;\n /** next ui button variants */\n variant?: NextButtonProps['variant'];\n}\n\n/**\n * Button component based on [NextUI Button](https://nextui.org/docs/components/button)\n */\nconst Button = ({\n ariaLabel = undefined,\n children = undefined,\n className = undefined,\n color = 'default',\n disabled = false,\n disableAnimation = false,\n icon = undefined,\n loading = false,\n onClick = undefined,\n size = undefined,\n testId = undefined,\n type = undefined,\n variant = 'solid',\n}: ButtonProps) => {\n return (\n <NextButton\n aria-label={ariaLabel}\n className={buttonVariants({ color, variant, className })}\n color={color}\n data-testid={testId}\n disableAnimation={disableAnimation}\n disableRipple={disableAnimation}\n isDisabled={disabled}\n isIconOnly={!!(icon && !children)}\n isLoading={loading}\n onPress={onClick}\n size={size}\n spinner={<LoadingSpinner />}\n type={type}\n variant={variant}\n >\n {icon}\n {children}\n </NextButton>\n );\n};\n\nexport default Button;\n","/**\n * svg loading spinner for button\n * @see https://nextui.org/docs/components/button#loading\n * */\nexport default () => (\n <svg\n className=\"animate-spin h-5 w-5 text-current\"\n fill=\"none\"\n viewBox=\"0 0 24 24\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <circle\n className=\"opacity-25\"\n cx=\"12\"\n cy=\"12\"\n r=\"10\"\n stroke=\"currentColor\"\n strokeWidth=\"4\"\n />\n <path\n className=\"opacity-75\"\n d=\"M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z\"\n fill=\"currentColor\"\n />\n </svg>\n);\n","import Button, { buttonVariants } from './Button';\n\nexport type { ButtonProps } from './Button';\n\nexport { Button, buttonVariants };\n\nexport default Button;\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/Label/Label.tsx","../src/Label/index.ts"],"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"],"mappings":";AAGA,SAAS,QAAQ,iBAAiB;AAClC,OAAO,QAAQ;AA4Bb;AARF,IAAM,QAAQ,CAAC;AAAA,EACb;AAAA,EACA,YAAY;AAAA,EACZ,QAAQ;AAAA,EACR,aAAa;AAAA,EACb,OAAO;AAAA,EACP,eAAe;AACjB,MACE;AAAA,EAAC;AAAA;AAAA,IACC,WAAW,GAAG,SAAS;AAAA,IACvB;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IAEC;AAAA;AACH;AAGF,IAAO,gBAAQ;;;ACrCf,IAAOA,iBAAQ;","names":["Label_default"]}