@fuf-stack/pixels 0.0.2

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 (38) hide show
  1. package/LICENSE +21 -0
  2. package/dist/Button/Button.cjs +111 -0
  3. package/dist/Button/Button.cjs.map +1 -0
  4. package/dist/Button/Button.d.cts +36 -0
  5. package/dist/Button/Button.d.ts +36 -0
  6. package/dist/Button/Button.js +8 -0
  7. package/dist/Button/Button.js.map +1 -0
  8. package/dist/Button/index.cjs +116 -0
  9. package/dist/Button/index.cjs.map +1 -0
  10. package/dist/Button/index.d.cts +9 -0
  11. package/dist/Button/index.d.ts +9 -0
  12. package/dist/Button/index.js +11 -0
  13. package/dist/Button/index.js.map +1 -0
  14. package/dist/Button/subcomponents/LoadingSpinner.cjs +57 -0
  15. package/dist/Button/subcomponents/LoadingSpinner.cjs.map +1 -0
  16. package/dist/Button/subcomponents/LoadingSpinner.d.cts +9 -0
  17. package/dist/Button/subcomponents/LoadingSpinner.d.ts +9 -0
  18. package/dist/Button/subcomponents/LoadingSpinner.js +7 -0
  19. package/dist/Button/subcomponents/LoadingSpinner.js.map +1 -0
  20. package/dist/Card/Card.cjs +137 -0
  21. package/dist/Card/Card.cjs.map +1 -0
  22. package/dist/Card/Card.d.cts +95 -0
  23. package/dist/Card/Card.d.ts +95 -0
  24. package/dist/Card/Card.js +9 -0
  25. package/dist/Card/Card.js.map +1 -0
  26. package/dist/Card/index.cjs +137 -0
  27. package/dist/Card/index.cjs.map +1 -0
  28. package/dist/Card/index.d.cts +9 -0
  29. package/dist/Card/index.d.ts +9 -0
  30. package/dist/Card/index.js +10 -0
  31. package/dist/Card/index.js.map +1 -0
  32. package/dist/chunk-XPTSDDXG.js +108 -0
  33. package/dist/chunk-XPTSDDXG.js.map +1 -0
  34. package/dist/chunk-ZFEVTQWW.js +37 -0
  35. package/dist/chunk-ZFEVTQWW.js.map +1 -0
  36. package/dist/chunk-ZXTDGCUF.js +50 -0
  37. package/dist/chunk-ZXTDGCUF.js.map +1 -0
  38. package/package.json +57 -0
@@ -0,0 +1,95 @@
1
+ import * as react_jsx_runtime from 'react/jsx-runtime';
2
+ import * as tailwind_variants_dist_config from 'tailwind-variants/dist/config';
3
+ import * as tailwind_variants from 'tailwind-variants';
4
+ import { VariantProps } from 'tailwind-variants';
5
+ import { ReactNode } from 'react';
6
+
7
+ declare const cardVariants: tailwind_variants.TVReturnType<{
8
+ [key: string]: {
9
+ [key: string]: tailwind_variants.ClassValue | {
10
+ base?: tailwind_variants.ClassValue;
11
+ body?: tailwind_variants.ClassValue;
12
+ divider?: tailwind_variants.ClassValue;
13
+ footer?: tailwind_variants.ClassValue;
14
+ header?: tailwind_variants.ClassValue;
15
+ };
16
+ };
17
+ } | {
18
+ [x: string]: {
19
+ [x: string]: tailwind_variants.ClassValue | {
20
+ base?: tailwind_variants.ClassValue;
21
+ body?: tailwind_variants.ClassValue;
22
+ divider?: tailwind_variants.ClassValue;
23
+ footer?: tailwind_variants.ClassValue;
24
+ header?: tailwind_variants.ClassValue;
25
+ };
26
+ };
27
+ } | {}, {
28
+ base: string;
29
+ body: string;
30
+ divider: string;
31
+ footer: string;
32
+ header: string;
33
+ }, undefined, tailwind_variants_dist_config.TVConfig<unknown, {
34
+ [key: string]: {
35
+ [key: string]: tailwind_variants.ClassValue | {
36
+ base?: tailwind_variants.ClassValue;
37
+ body?: tailwind_variants.ClassValue;
38
+ divider?: tailwind_variants.ClassValue;
39
+ footer?: tailwind_variants.ClassValue;
40
+ header?: tailwind_variants.ClassValue;
41
+ };
42
+ };
43
+ } | {}>, {
44
+ [key: string]: {
45
+ [key: string]: tailwind_variants.ClassValue | {
46
+ base?: tailwind_variants.ClassValue;
47
+ body?: tailwind_variants.ClassValue;
48
+ divider?: tailwind_variants.ClassValue;
49
+ footer?: tailwind_variants.ClassValue;
50
+ header?: tailwind_variants.ClassValue;
51
+ };
52
+ };
53
+ } | {}, {
54
+ base: string;
55
+ body: string;
56
+ divider: string;
57
+ footer: string;
58
+ header: string;
59
+ }, tailwind_variants.TVReturnType<unknown, {
60
+ base: string;
61
+ body: string;
62
+ divider: string;
63
+ footer: string;
64
+ header: string;
65
+ }, undefined, tailwind_variants_dist_config.TVConfig<unknown, {
66
+ [key: string]: {
67
+ [key: string]: tailwind_variants.ClassValue | {
68
+ base?: tailwind_variants.ClassValue;
69
+ body?: tailwind_variants.ClassValue;
70
+ divider?: tailwind_variants.ClassValue;
71
+ footer?: tailwind_variants.ClassValue;
72
+ header?: tailwind_variants.ClassValue;
73
+ };
74
+ };
75
+ } | {}>, unknown, unknown, undefined>>;
76
+ type CardVariantProps = VariantProps<typeof cardVariants>;
77
+ type CardVariantSlots = Partial<Record<keyof ReturnType<typeof cardVariants>, string>>;
78
+ interface CardProps extends CardVariantProps {
79
+ /** child components */
80
+ children?: ReactNode;
81
+ /** CSS class name */
82
+ className?: string | CardVariantSlots;
83
+ /** footer content */
84
+ footer?: ReactNode;
85
+ /** header content */
86
+ header?: ReactNode;
87
+ /** HTML data-testid attribute used in e2e tests */
88
+ testId?: string;
89
+ }
90
+ /**
91
+ * Card component based on [NextUI Card](https://nextui.org/docs/components/card)
92
+ */
93
+ declare const Card: ({ children, className, testId, header, footer, }: CardProps) => react_jsx_runtime.JSX.Element;
94
+
95
+ export { type CardProps, cardVariants, Card as default };
@@ -0,0 +1,95 @@
1
+ import * as react_jsx_runtime from 'react/jsx-runtime';
2
+ import * as tailwind_variants_dist_config from 'tailwind-variants/dist/config';
3
+ import * as tailwind_variants from 'tailwind-variants';
4
+ import { VariantProps } from 'tailwind-variants';
5
+ import { ReactNode } from 'react';
6
+
7
+ declare const cardVariants: tailwind_variants.TVReturnType<{
8
+ [key: string]: {
9
+ [key: string]: tailwind_variants.ClassValue | {
10
+ base?: tailwind_variants.ClassValue;
11
+ body?: tailwind_variants.ClassValue;
12
+ divider?: tailwind_variants.ClassValue;
13
+ footer?: tailwind_variants.ClassValue;
14
+ header?: tailwind_variants.ClassValue;
15
+ };
16
+ };
17
+ } | {
18
+ [x: string]: {
19
+ [x: string]: tailwind_variants.ClassValue | {
20
+ base?: tailwind_variants.ClassValue;
21
+ body?: tailwind_variants.ClassValue;
22
+ divider?: tailwind_variants.ClassValue;
23
+ footer?: tailwind_variants.ClassValue;
24
+ header?: tailwind_variants.ClassValue;
25
+ };
26
+ };
27
+ } | {}, {
28
+ base: string;
29
+ body: string;
30
+ divider: string;
31
+ footer: string;
32
+ header: string;
33
+ }, undefined, tailwind_variants_dist_config.TVConfig<unknown, {
34
+ [key: string]: {
35
+ [key: string]: tailwind_variants.ClassValue | {
36
+ base?: tailwind_variants.ClassValue;
37
+ body?: tailwind_variants.ClassValue;
38
+ divider?: tailwind_variants.ClassValue;
39
+ footer?: tailwind_variants.ClassValue;
40
+ header?: tailwind_variants.ClassValue;
41
+ };
42
+ };
43
+ } | {}>, {
44
+ [key: string]: {
45
+ [key: string]: tailwind_variants.ClassValue | {
46
+ base?: tailwind_variants.ClassValue;
47
+ body?: tailwind_variants.ClassValue;
48
+ divider?: tailwind_variants.ClassValue;
49
+ footer?: tailwind_variants.ClassValue;
50
+ header?: tailwind_variants.ClassValue;
51
+ };
52
+ };
53
+ } | {}, {
54
+ base: string;
55
+ body: string;
56
+ divider: string;
57
+ footer: string;
58
+ header: string;
59
+ }, tailwind_variants.TVReturnType<unknown, {
60
+ base: string;
61
+ body: string;
62
+ divider: string;
63
+ footer: string;
64
+ header: string;
65
+ }, undefined, tailwind_variants_dist_config.TVConfig<unknown, {
66
+ [key: string]: {
67
+ [key: string]: tailwind_variants.ClassValue | {
68
+ base?: tailwind_variants.ClassValue;
69
+ body?: tailwind_variants.ClassValue;
70
+ divider?: tailwind_variants.ClassValue;
71
+ footer?: tailwind_variants.ClassValue;
72
+ header?: tailwind_variants.ClassValue;
73
+ };
74
+ };
75
+ } | {}>, unknown, unknown, undefined>>;
76
+ type CardVariantProps = VariantProps<typeof cardVariants>;
77
+ type CardVariantSlots = Partial<Record<keyof ReturnType<typeof cardVariants>, string>>;
78
+ interface CardProps extends CardVariantProps {
79
+ /** child components */
80
+ children?: ReactNode;
81
+ /** CSS class name */
82
+ className?: string | CardVariantSlots;
83
+ /** footer content */
84
+ footer?: ReactNode;
85
+ /** header content */
86
+ header?: ReactNode;
87
+ /** HTML data-testid attribute used in e2e tests */
88
+ testId?: string;
89
+ }
90
+ /**
91
+ * Card component based on [NextUI Card](https://nextui.org/docs/components/card)
92
+ */
93
+ declare const Card: ({ children, className, testId, header, footer, }: CardProps) => react_jsx_runtime.JSX.Element;
94
+
95
+ export { type CardProps, cardVariants, Card as default };
@@ -0,0 +1,9 @@
1
+ import {
2
+ Card_default,
3
+ cardVariants
4
+ } from "../chunk-XPTSDDXG.js";
5
+ export {
6
+ cardVariants,
7
+ Card_default as default
8
+ };
9
+ //# sourceMappingURL=Card.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
@@ -0,0 +1,137 @@
1
+ "use strict";
2
+ var __create = Object.create;
3
+ var __defProp = Object.defineProperty;
4
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
+ var __getOwnPropNames = Object.getOwnPropertyNames;
6
+ var __getProtoOf = Object.getPrototypeOf;
7
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
8
+ var __export = (target, all) => {
9
+ for (var name in all)
10
+ __defProp(target, name, { get: all[name], enumerable: true });
11
+ };
12
+ var __copyProps = (to, from, except, desc) => {
13
+ if (from && typeof from === "object" || typeof from === "function") {
14
+ for (let key of __getOwnPropNames(from))
15
+ if (!__hasOwnProp.call(to, key) && key !== except)
16
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
17
+ }
18
+ return to;
19
+ };
20
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
21
+ // If the importer is in node compatibility mode or this is not an ESM
22
+ // file that has been converted to a CommonJS file using a Babel-
23
+ // compatible transform (i.e. "__esModule" has not been set), then set
24
+ // "default" to the CommonJS "module.exports" for node compatibility.
25
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
26
+ mod
27
+ ));
28
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
29
+
30
+ // src/Card/index.ts
31
+ var Card_exports = {};
32
+ __export(Card_exports, {
33
+ default: () => Card_default2
34
+ });
35
+ module.exports = __toCommonJS(Card_exports);
36
+
37
+ // src/Card/Card.tsx
38
+ var import_card = require("@nextui-org/card");
39
+ var import_divider = require("@nextui-org/divider");
40
+ var import_debug = __toESM(require("debug"), 1);
41
+ var import_tailwind_variants = require("tailwind-variants");
42
+ var import_jsx_runtime = require("react/jsx-runtime");
43
+ var debug = (0, import_debug.default)("component:Card");
44
+ var cardVariants = (0, import_tailwind_variants.tv)({
45
+ slots: {
46
+ base: "border border-slate-300",
47
+ body: "",
48
+ divider: "my-0 bg-slate-300",
49
+ footer: "",
50
+ header: "text-base font-semibold"
51
+ }
52
+ });
53
+ var Card = ({
54
+ children = null,
55
+ className = void 0,
56
+ testId = void 0,
57
+ header = void 0,
58
+ footer = void 0
59
+ }) => {
60
+ debug("Card", { className, testId });
61
+ const {
62
+ base: baseSlot,
63
+ body: bodySlot,
64
+ divider: dividerSlot,
65
+ footer: footerSlot,
66
+ header: headerSlot
67
+ } = cardVariants();
68
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(
69
+ import_card.Card,
70
+ {
71
+ "data-testid": testId && `card_${testId}`,
72
+ className: baseSlot({
73
+ className: typeof className === "object" ? className.base : className
74
+ }),
75
+ fullWidth: true,
76
+ radius: "sm",
77
+ shadow: "none",
78
+ children: [
79
+ header && /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment, { children: [
80
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
81
+ import_card.CardHeader,
82
+ {
83
+ "data-testid": testId && `card_header_${testId}`,
84
+ className: headerSlot({
85
+ className: typeof className === "object" && className.header
86
+ }),
87
+ children: header
88
+ }
89
+ ),
90
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
91
+ import_divider.Divider,
92
+ {
93
+ className: dividerSlot({
94
+ className: typeof className === "object" && className.divider
95
+ })
96
+ }
97
+ )
98
+ ] }),
99
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
100
+ import_card.CardBody,
101
+ {
102
+ "data-testid": testId && `card_body_${testId}`,
103
+ className: bodySlot({
104
+ className: typeof className === "object" && className.body
105
+ }),
106
+ children
107
+ }
108
+ ),
109
+ footer && /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment, { children: [
110
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
111
+ import_divider.Divider,
112
+ {
113
+ className: dividerSlot({
114
+ className: typeof className === "object" && className.divider
115
+ })
116
+ }
117
+ ),
118
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
119
+ import_card.CardFooter,
120
+ {
121
+ "data-testid": testId && `card_footer_${testId}`,
122
+ className: footerSlot({
123
+ className: typeof className === "object" && className.footer
124
+ }),
125
+ children: footer
126
+ }
127
+ )
128
+ ] })
129
+ ]
130
+ }
131
+ );
132
+ };
133
+ var Card_default = Card;
134
+
135
+ // src/Card/index.ts
136
+ var Card_default2 = Card_default;
137
+ //# sourceMappingURL=index.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/Card/index.ts","../../src/Card/Card.tsx"],"sourcesContent":["import Card from './Card';\n\nexport default Card;\n","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';\nimport createDebug from 'debug';\nimport { tv } from 'tailwind-variants';\n\nconst debug = createDebug('component:Card');\n\n// card styling variants\nexport const cardVariants = tv({\n slots: {\n base: 'border border-slate-300',\n body: '',\n divider: 'my-0 bg-slate-300',\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 /** child components */\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 debug('Card', { className, testId });\n const {\n base: baseSlot,\n body: bodySlot,\n divider: dividerSlot,\n footer: footerSlot,\n header: headerSlot,\n } = cardVariants();\n\n return (\n <NextCard\n data-testid={testId && `card_${testId}`}\n className={baseSlot({\n className: typeof className === 'object' ? className.base : className,\n })}\n fullWidth\n radius=\"sm\"\n shadow=\"none\"\n >\n {header && (\n <>\n <NextCardHeader\n data-testid={testId && `card_header_${testId}`}\n className={headerSlot({\n className: typeof className === 'object' && className.header,\n })}\n >\n {header}\n </NextCardHeader>\n <NextDivider\n className={dividerSlot({\n className: typeof className === 'object' && className.divider,\n })}\n />\n </>\n )}\n <NextCardBody\n data-testid={testId && `card_body_${testId}`}\n className={bodySlot({\n className: typeof className === 'object' && className.body,\n })}\n >\n {children}\n </NextCardBody>\n {footer && (\n <>\n <NextDivider\n className={dividerSlot({\n className: typeof className === 'object' && className.divider,\n })}\n />\n <NextCardFooter\n data-testid={testId && `card_footer_${testId}`}\n className={footerSlot({\n className: typeof className === 'object' && className.footer,\n })}\n >\n {footer}\n </NextCardFooter>\n </>\n )}\n </NextCard>\n );\n};\n\nexport default Card;\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA,iBAAAA;AAAA;AAAA;;;ACGA,kBAKO;AACP,qBAAuC;AACvC,mBAAwB;AACxB,+BAAmB;AA+DX;AA7DR,IAAM,YAAQ,aAAAC,SAAY,gBAAgB;AAGnC,IAAM,mBAAe,6BAAG;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;AACf,QAAM,QAAQ,EAAE,WAAW,OAAO,CAAC;AACnC,QAAM;AAAA,IACJ,MAAM;AAAA,IACN,MAAM;AAAA,IACN,SAAS;AAAA,IACT,QAAQ;AAAA,IACR,QAAQ;AAAA,EACV,IAAI,aAAa;AAEjB,SACE;AAAA,IAAC,YAAAC;AAAA,IAAA;AAAA,MACC,eAAa,UAAU,QAAQ,MAAM;AAAA,MACrC,WAAW,SAAS;AAAA,QAClB,WAAW,OAAO,cAAc,WAAW,UAAU,OAAO;AAAA,MAC9D,CAAC;AAAA,MACD,WAAS;AAAA,MACT,QAAO;AAAA,MACP,QAAO;AAAA,MAEN;AAAA,kBACC,4EACE;AAAA;AAAA,YAAC,YAAAC;AAAA,YAAA;AAAA,cACC,eAAa,UAAU,eAAe,MAAM;AAAA,cAC5C,WAAW,WAAW;AAAA,gBACpB,WAAW,OAAO,cAAc,YAAY,UAAU;AAAA,cACxD,CAAC;AAAA,cAEA;AAAA;AAAA,UACH;AAAA,UACA;AAAA,YAAC,eAAAC;AAAA,YAAA;AAAA,cACC,WAAW,YAAY;AAAA,gBACrB,WAAW,OAAO,cAAc,YAAY,UAAU;AAAA,cACxD,CAAC;AAAA;AAAA,UACH;AAAA,WACF;AAAA,QAEF;AAAA,UAAC,YAAAC;AAAA,UAAA;AAAA,YACC,eAAa,UAAU,aAAa,MAAM;AAAA,YAC1C,WAAW,SAAS;AAAA,cAClB,WAAW,OAAO,cAAc,YAAY,UAAU;AAAA,YACxD,CAAC;AAAA,YAEA;AAAA;AAAA,QACH;AAAA,QACC,UACC,4EACE;AAAA;AAAA,YAAC,eAAAD;AAAA,YAAA;AAAA,cACC,WAAW,YAAY;AAAA,gBACrB,WAAW,OAAO,cAAc,YAAY,UAAU;AAAA,cACxD,CAAC;AAAA;AAAA,UACH;AAAA,UACA;AAAA,YAAC,YAAAE;AAAA,YAAA;AAAA,cACC,eAAa,UAAU,eAAe,MAAM;AAAA,cAC5C,WAAW,WAAW;AAAA,gBACpB,WAAW,OAAO,cAAc,YAAY,UAAU;AAAA,cACxD,CAAC;AAAA,cAEA;AAAA;AAAA,UACH;AAAA,WACF;AAAA;AAAA;AAAA,EAEJ;AAEJ;AAEA,IAAO,eAAQ;;;ADrHf,IAAOC,gBAAQ;","names":["Card_default","createDebug","NextCard","NextCardHeader","NextDivider","NextCardBody","NextCardFooter","Card_default"]}
@@ -0,0 +1,9 @@
1
+ import Card from './Card.cjs';
2
+ import 'react/jsx-runtime';
3
+ import 'tailwind-variants/dist/config';
4
+ import 'tailwind-variants';
5
+ import 'react';
6
+
7
+
8
+
9
+ export { Card as default };
@@ -0,0 +1,9 @@
1
+ import Card from './Card.js';
2
+ import 'react/jsx-runtime';
3
+ import 'tailwind-variants/dist/config';
4
+ import 'tailwind-variants';
5
+ import 'react';
6
+
7
+
8
+
9
+ export { Card as default };
@@ -0,0 +1,10 @@
1
+ import {
2
+ Card_default
3
+ } from "../chunk-XPTSDDXG.js";
4
+
5
+ // src/Card/index.ts
6
+ var Card_default2 = Card_default;
7
+ export {
8
+ Card_default2 as default
9
+ };
10
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/Card/index.ts"],"sourcesContent":["import Card from './Card';\n\nexport default Card;\n"],"mappings":";;;;;AAEA,IAAOA,gBAAQ;","names":["Card_default"]}
@@ -0,0 +1,108 @@
1
+ // src/Card/Card.tsx
2
+ import {
3
+ Card as NextCard,
4
+ CardBody as NextCardBody,
5
+ CardFooter as NextCardFooter,
6
+ CardHeader as NextCardHeader
7
+ } from "@nextui-org/card";
8
+ import { Divider as NextDivider } from "@nextui-org/divider";
9
+ import createDebug from "debug";
10
+ import { tv } from "tailwind-variants";
11
+ import { Fragment, jsx, jsxs } from "react/jsx-runtime";
12
+ var debug = createDebug("component:Card");
13
+ var cardVariants = tv({
14
+ slots: {
15
+ base: "border border-slate-300",
16
+ body: "",
17
+ divider: "my-0 bg-slate-300",
18
+ footer: "",
19
+ header: "text-base font-semibold"
20
+ }
21
+ });
22
+ var Card = ({
23
+ children = null,
24
+ className = void 0,
25
+ testId = void 0,
26
+ header = void 0,
27
+ footer = void 0
28
+ }) => {
29
+ debug("Card", { className, testId });
30
+ const {
31
+ base: baseSlot,
32
+ body: bodySlot,
33
+ divider: dividerSlot,
34
+ footer: footerSlot,
35
+ header: headerSlot
36
+ } = cardVariants();
37
+ return /* @__PURE__ */ jsxs(
38
+ NextCard,
39
+ {
40
+ "data-testid": testId && `card_${testId}`,
41
+ className: baseSlot({
42
+ className: typeof className === "object" ? className.base : className
43
+ }),
44
+ fullWidth: true,
45
+ radius: "sm",
46
+ shadow: "none",
47
+ children: [
48
+ header && /* @__PURE__ */ jsxs(Fragment, { children: [
49
+ /* @__PURE__ */ jsx(
50
+ NextCardHeader,
51
+ {
52
+ "data-testid": testId && `card_header_${testId}`,
53
+ className: headerSlot({
54
+ className: typeof className === "object" && className.header
55
+ }),
56
+ children: header
57
+ }
58
+ ),
59
+ /* @__PURE__ */ jsx(
60
+ NextDivider,
61
+ {
62
+ className: dividerSlot({
63
+ className: typeof className === "object" && className.divider
64
+ })
65
+ }
66
+ )
67
+ ] }),
68
+ /* @__PURE__ */ jsx(
69
+ NextCardBody,
70
+ {
71
+ "data-testid": testId && `card_body_${testId}`,
72
+ className: bodySlot({
73
+ className: typeof className === "object" && className.body
74
+ }),
75
+ children
76
+ }
77
+ ),
78
+ footer && /* @__PURE__ */ jsxs(Fragment, { children: [
79
+ /* @__PURE__ */ jsx(
80
+ NextDivider,
81
+ {
82
+ className: dividerSlot({
83
+ className: typeof className === "object" && className.divider
84
+ })
85
+ }
86
+ ),
87
+ /* @__PURE__ */ jsx(
88
+ NextCardFooter,
89
+ {
90
+ "data-testid": testId && `card_footer_${testId}`,
91
+ className: footerSlot({
92
+ className: typeof className === "object" && className.footer
93
+ }),
94
+ children: footer
95
+ }
96
+ )
97
+ ] })
98
+ ]
99
+ }
100
+ );
101
+ };
102
+ var Card_default = Card;
103
+
104
+ export {
105
+ cardVariants,
106
+ Card_default
107
+ };
108
+ //# sourceMappingURL=chunk-XPTSDDXG.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/Card/Card.tsx"],"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';\nimport createDebug from 'debug';\nimport { tv } from 'tailwind-variants';\n\nconst debug = createDebug('component:Card');\n\n// card styling variants\nexport const cardVariants = tv({\n slots: {\n base: 'border border-slate-300',\n body: '',\n divider: 'my-0 bg-slate-300',\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 /** child components */\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 debug('Card', { className, testId });\n const {\n base: baseSlot,\n body: bodySlot,\n divider: dividerSlot,\n footer: footerSlot,\n header: headerSlot,\n } = cardVariants();\n\n return (\n <NextCard\n data-testid={testId && `card_${testId}`}\n className={baseSlot({\n className: typeof className === 'object' ? className.base : className,\n })}\n fullWidth\n radius=\"sm\"\n shadow=\"none\"\n >\n {header && (\n <>\n <NextCardHeader\n data-testid={testId && `card_header_${testId}`}\n className={headerSlot({\n className: typeof className === 'object' && className.header,\n })}\n >\n {header}\n </NextCardHeader>\n <NextDivider\n className={dividerSlot({\n className: typeof className === 'object' && className.divider,\n })}\n />\n </>\n )}\n <NextCardBody\n data-testid={testId && `card_body_${testId}`}\n className={bodySlot({\n className: typeof className === 'object' && className.body,\n })}\n >\n {children}\n </NextCardBody>\n {footer && (\n <>\n <NextDivider\n className={dividerSlot({\n className: typeof className === 'object' && className.divider,\n })}\n />\n <NextCardFooter\n data-testid={testId && `card_footer_${testId}`}\n className={footerSlot({\n className: typeof className === 'object' && className.footer,\n })}\n >\n {footer}\n </NextCardFooter>\n </>\n )}\n </NextCard>\n );\n};\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;AACvC,OAAO,iBAAiB;AACxB,SAAS,UAAU;AA+DX,mBACE,KADF;AA7DR,IAAM,QAAQ,YAAY,gBAAgB;AAGnC,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;AACf,QAAM,QAAQ,EAAE,WAAW,OAAO,CAAC;AACnC,QAAM;AAAA,IACJ,MAAM;AAAA,IACN,MAAM;AAAA,IACN,SAAS;AAAA,IACT,QAAQ;AAAA,IACR,QAAQ;AAAA,EACV,IAAI,aAAa;AAEjB,SACE;AAAA,IAAC;AAAA;AAAA,MACC,eAAa,UAAU,QAAQ,MAAM;AAAA,MACrC,WAAW,SAAS;AAAA,QAClB,WAAW,OAAO,cAAc,WAAW,UAAU,OAAO;AAAA,MAC9D,CAAC;AAAA,MACD,WAAS;AAAA,MACT,QAAO;AAAA,MACP,QAAO;AAAA,MAEN;AAAA,kBACC,iCACE;AAAA;AAAA,YAAC;AAAA;AAAA,cACC,eAAa,UAAU,eAAe,MAAM;AAAA,cAC5C,WAAW,WAAW;AAAA,gBACpB,WAAW,OAAO,cAAc,YAAY,UAAU;AAAA,cACxD,CAAC;AAAA,cAEA;AAAA;AAAA,UACH;AAAA,UACA;AAAA,YAAC;AAAA;AAAA,cACC,WAAW,YAAY;AAAA,gBACrB,WAAW,OAAO,cAAc,YAAY,UAAU;AAAA,cACxD,CAAC;AAAA;AAAA,UACH;AAAA,WACF;AAAA,QAEF;AAAA,UAAC;AAAA;AAAA,YACC,eAAa,UAAU,aAAa,MAAM;AAAA,YAC1C,WAAW,SAAS;AAAA,cAClB,WAAW,OAAO,cAAc,YAAY,UAAU;AAAA,YACxD,CAAC;AAAA,YAEA;AAAA;AAAA,QACH;AAAA,QACC,UACC,iCACE;AAAA;AAAA,YAAC;AAAA;AAAA,cACC,WAAW,YAAY;AAAA,gBACrB,WAAW,OAAO,cAAc,YAAY,UAAU;AAAA,cACxD,CAAC;AAAA;AAAA,UACH;AAAA,UACA;AAAA,YAAC;AAAA;AAAA,cACC,eAAa,UAAU,eAAe,MAAM;AAAA,cAC5C,WAAW,WAAW;AAAA,gBACpB,WAAW,OAAO,cAAc,YAAY,UAAU;AAAA,cACxD,CAAC;AAAA,cAEA;AAAA;AAAA,UACH;AAAA,WACF;AAAA;AAAA;AAAA,EAEJ;AAEJ;AAEA,IAAO,eAAQ;","names":[]}
@@ -0,0 +1,37 @@
1
+ // src/Button/subcomponents/LoadingSpinner.tsx
2
+ import { jsx, jsxs } from "react/jsx-runtime";
3
+ var LoadingSpinner_default = () => /* @__PURE__ */ jsxs(
4
+ "svg",
5
+ {
6
+ className: "animate-spin h-5 w-5 text-current",
7
+ fill: "none",
8
+ viewBox: "0 0 24 24",
9
+ xmlns: "http://www.w3.org/2000/svg",
10
+ children: [
11
+ /* @__PURE__ */ jsx(
12
+ "circle",
13
+ {
14
+ className: "opacity-25",
15
+ cx: "12",
16
+ cy: "12",
17
+ r: "10",
18
+ stroke: "currentColor",
19
+ strokeWidth: "4"
20
+ }
21
+ ),
22
+ /* @__PURE__ */ jsx(
23
+ "path",
24
+ {
25
+ className: "opacity-75",
26
+ 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",
27
+ fill: "currentColor"
28
+ }
29
+ )
30
+ ]
31
+ }
32
+ );
33
+
34
+ export {
35
+ LoadingSpinner_default
36
+ };
37
+ //# sourceMappingURL=chunk-ZFEVTQWW.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/Button/subcomponents/LoadingSpinner.tsx"],"sourcesContent":["/**\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"],"mappings":";AAKE,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;","names":[]}
@@ -0,0 +1,50 @@
1
+ import {
2
+ LoadingSpinner_default
3
+ } from "./chunk-ZFEVTQWW.js";
4
+
5
+ // src/Button/Button.tsx
6
+ import { Button as NextButton } from "@nextui-org/button";
7
+ import cn from "classnames";
8
+ import { jsx, jsxs } from "react/jsx-runtime";
9
+ var Button = ({
10
+ ariaLabel = void 0,
11
+ children = void 0,
12
+ className = void 0,
13
+ color = "default",
14
+ disabled = false,
15
+ icon = void 0,
16
+ loading = false,
17
+ onClick = void 0,
18
+ size = void 0,
19
+ testId = void 0,
20
+ type = void 0,
21
+ variant = "solid"
22
+ }) => {
23
+ return /* @__PURE__ */ jsxs(
24
+ NextButton,
25
+ {
26
+ "aria-label": ariaLabel,
27
+ className: cn(className),
28
+ color,
29
+ "data-testid": testId,
30
+ isDisabled: disabled,
31
+ isIconOnly: !!(icon && !children),
32
+ isLoading: loading,
33
+ onPress: onClick,
34
+ size,
35
+ spinner: /* @__PURE__ */ jsx(LoadingSpinner_default, {}),
36
+ type,
37
+ variant,
38
+ children: [
39
+ icon,
40
+ children
41
+ ]
42
+ }
43
+ );
44
+ };
45
+ var Button_default = Button;
46
+
47
+ export {
48
+ Button_default
49
+ };
50
+ //# sourceMappingURL=chunk-ZXTDGCUF.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/Button/Button.tsx"],"sourcesContent":["import type { ButtonProps as NextButtonProps } from '@nextui-org/button';\nimport type { ReactNode } from 'react';\n\nimport { Button as NextButton } from '@nextui-org/button';\nimport cn from 'classnames';\n\nimport LoadingSpinner from './subcomponents/LoadingSpinner';\n\nexport interface ButtonProps {\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 /** 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 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={cn(className)}\n color={color}\n data-testid={testId}\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"],"mappings":";;;;;AAGA,SAAS,UAAU,kBAAkB;AACrC,OAAO,QAAQ;AAiDX,SAUW,KAVX;AAfJ,IAAM,SAAS,CAAC;AAAA,EACd,YAAY;AAAA,EACZ,WAAW;AAAA,EACX,YAAY;AAAA,EACZ,QAAQ;AAAA,EACR,WAAW;AAAA,EACX,OAAO;AAAA,EACP,UAAU;AAAA,EACV,UAAU;AAAA,EACV,OAAO;AAAA,EACP,SAAS;AAAA,EACT,OAAO;AAAA,EACP,UAAU;AACZ,MAAmB;AACjB,SACE;AAAA,IAAC;AAAA;AAAA,MACC,cAAY;AAAA,MACZ,WAAW,GAAG,SAAS;AAAA,MACvB;AAAA,MACA,eAAa;AAAA,MACb,YAAY;AAAA,MACZ,YAAY,CAAC,EAAE,QAAQ,CAAC;AAAA,MACxB,WAAW;AAAA,MACX,SAAS;AAAA,MACT;AAAA,MACA,SAAS,oBAAC,0BAAe;AAAA,MACzB;AAAA,MACA;AAAA,MAEC;AAAA;AAAA,QACA;AAAA;AAAA;AAAA,EACH;AAEJ;AAEA,IAAO,iBAAQ;","names":[]}
package/package.json ADDED
@@ -0,0 +1,57 @@
1
+ {
2
+ "name": "@fuf-stack/pixels",
3
+ "description": "fuf react component library",
4
+ "author": "Hannes Tiede",
5
+ "version": "0.0.2",
6
+ "type": "module",
7
+ "files": [
8
+ "./dist"
9
+ ],
10
+ "homepage": "https://github.com/fuf-stack/uniforms#readme",
11
+ "license": "MIT",
12
+ "publishConfig": {
13
+ "access": "public"
14
+ },
15
+ "keywords": [
16
+ "components",
17
+ "react"
18
+ ],
19
+ "repository": {
20
+ "type": "git",
21
+ "url": "git+https://github.com/fuf-stack/uniforms.git",
22
+ "directory": "packages/pixels"
23
+ },
24
+ "bugs": {
25
+ "url": "https://github.com/fuf-stack/uniforms/issues"
26
+ },
27
+ "dependencies": {
28
+ "@nextui-org/button": "2.0.27",
29
+ "@nextui-org/card": "2.0.24",
30
+ "@nextui-org/chip": "2.0.25",
31
+ "@nextui-org/divider": "2.0.25",
32
+ "@nextui-org/dropdown": "2.1.16",
33
+ "@nextui-org/modal": "2.0.29",
34
+ "@nextui-org/popover": "2.1.15",
35
+ "@nextui-org/system": "2.0.15",
36
+ "@nextui-org/tooltip": "2.0.30",
37
+ "classnames": "2.5.1",
38
+ "debug": "4.3.4",
39
+ "react": "18.2.0",
40
+ "react-dom": "18.2.0",
41
+ "react-icons": "5.0.1",
42
+ "react-json-view": "1.21.3",
43
+ "tailwind-variants": "0.1.20"
44
+ },
45
+ "devDependencies": {
46
+ "@types/debug": "4.1.12",
47
+ "@types/react": "18.2.69",
48
+ "@types/react-dom": "18.2.22",
49
+ "tsup": "8.0.2",
50
+ "storybook-config": "0.0.1",
51
+ "tailwind-config": "0.0.1"
52
+ },
53
+ "scripts": {
54
+ "build": "rm -rf ./dist && tsup",
55
+ "test": "vitest ./src"
56
+ }
57
+ }