funuicss 3.6.14 → 3.6.16

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -1,5 +1,5 @@
1
1
  {
2
- "version": "3.6.14",
2
+ "version": "3.6.16",
3
3
  "name": "funuicss",
4
4
  "description": "React and Next.js component UI Library for creating Easy and good looking websites with fewer lines of code. Elevate your web development experience with our cutting-edge React/Next.js component UI Library. Craft stunning websites effortlessly, boasting both seamless functionality and aesthetic appeal—all achieved with minimal lines of code. Unleash the power of simplicity and style in your projects!",
5
5
  "main": "index.js",
@@ -5,6 +5,12 @@ interface ButtonProps {
5
5
  funcss?: string;
6
6
  startIcon?: ReactNode;
7
7
  endIcon?: ReactNode;
8
+ stringPrefix?: string;
9
+ stringSuffix?: string;
10
+ prefix?: ReactNode;
11
+ suffix?: ReactNode;
12
+ iconSize?: number | string;
13
+ iconLineHeight?: string | number;
8
14
  text?: string;
9
15
  rounded?: boolean;
10
16
  raised?: boolean;
@@ -15,6 +21,7 @@ interface ButtonProps {
15
21
  fullWidth?: boolean;
16
22
  outlined?: boolean;
17
23
  small?: boolean;
24
+ hoverless?: boolean;
18
25
  smaller?: boolean;
19
26
  big?: boolean;
20
27
  bigger?: boolean;
@@ -23,7 +30,6 @@ interface ButtonProps {
23
30
  hoverNone?: boolean;
24
31
  fillAnimation?: boolean;
25
32
  bold?: boolean;
26
- hoverless?: boolean;
27
33
  fillDirection?: string;
28
34
  fillTextColor?: string;
29
35
  buttonFillStyle?: React.CSSProperties;
@@ -36,5 +42,5 @@ interface ButtonProps {
36
42
  style?: React.CSSProperties;
37
43
  onClick?: (event: MouseEvent<HTMLButtonElement>) => void;
38
44
  }
39
- export default function Button({ variant, color, bg, funcss, startIcon, endIcon, text, rounded, raised, height, width, float, hoverUp, fullWidth, outlined, small, hoverless, smaller, big, bigger, jumbo, flat, hoverNone, fillAnimation, fillDirection, fillTextColor, outlineSize, isLoading, status, children, bold, style, url, onClick, ...rest }: ButtonProps): React.JSX.Element;
45
+ export default function Button({ variant, color, bg, funcss, startIcon, endIcon, stringPrefix, stringSuffix, prefix, suffix, iconSize, iconLineHeight, text, rounded, raised, height, width, float, hoverUp, fullWidth, outlined, small, hoverless, smaller, big, bigger, jumbo, flat, hoverNone, fillAnimation, fillDirection, fillTextColor, outlineSize, isLoading, status, bold, children, style, url, onClick, ...rest }: ButtonProps): React.JSX.Element;
40
46
  export {};
@@ -11,6 +11,39 @@ var __assign = (this && this.__assign) || function () {
11
11
  };
12
12
  return __assign.apply(this, arguments);
13
13
  };
14
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
15
+ if (k2 === undefined) k2 = k;
16
+ var desc = Object.getOwnPropertyDescriptor(m, k);
17
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
18
+ desc = { enumerable: true, get: function() { return m[k]; } };
19
+ }
20
+ Object.defineProperty(o, k2, desc);
21
+ }) : (function(o, m, k, k2) {
22
+ if (k2 === undefined) k2 = k;
23
+ o[k2] = m[k];
24
+ }));
25
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
26
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
27
+ }) : function(o, v) {
28
+ o["default"] = v;
29
+ });
30
+ var __importStar = (this && this.__importStar) || (function () {
31
+ var ownKeys = function(o) {
32
+ ownKeys = Object.getOwnPropertyNames || function (o) {
33
+ var ar = [];
34
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
35
+ return ar;
36
+ };
37
+ return ownKeys(o);
38
+ };
39
+ return function (mod) {
40
+ if (mod && mod.__esModule) return mod;
41
+ var result = {};
42
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
43
+ __setModuleDefault(result, mod);
44
+ return result;
45
+ };
46
+ })();
14
47
  var __rest = (this && this.__rest) || function (s, e) {
15
48
  var t = {};
16
49
  for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
@@ -22,103 +55,107 @@ var __rest = (this && this.__rest) || function (s, e) {
22
55
  }
23
56
  return t;
24
57
  };
25
- var __importDefault = (this && this.__importDefault) || function (mod) {
26
- return (mod && mod.__esModule) ? mod : { "default": mod };
27
- };
28
58
  Object.defineProperty(exports, "__esModule", { value: true });
29
59
  exports.default = Button;
30
- var react_1 = __importDefault(require("react"));
60
+ var react_1 = __importStar(require("react"));
31
61
  var pi_1 = require("react-icons/pi");
32
62
  var componentUtils_1 = require("../../utils/componentUtils");
63
+ var getDynamicIcon_1 = require("../../utils/getDynamicIcon");
33
64
  function Button(_a) {
34
- var _b = _a.variant, variant = _b === void 0 ? '' : _b, color = _a.color, bg = _a.bg, funcss = _a.funcss, startIcon = _a.startIcon, endIcon = _a.endIcon, text = _a.text, rounded = _a.rounded, raised = _a.raised, height = _a.height, width = _a.width, float = _a.float, hoverUp = _a.hoverUp, fullWidth = _a.fullWidth, outlined = _a.outlined, small = _a.small, hoverless = _a.hoverless, smaller = _a.smaller, big = _a.big, bigger = _a.bigger, jumbo = _a.jumbo, flat = _a.flat, hoverNone = _a.hoverNone, fillAnimation = _a.fillAnimation, fillDirection = _a.fillDirection, fillTextColor = _a.fillTextColor, outlineSize = _a.outlineSize, isLoading = _a.isLoading, status = _a.status, children = _a.children, bold = _a.bold, style = _a.style, url = _a.url, onClick = _a.onClick, rest = __rest(_a, ["variant", "color", "bg", "funcss", "startIcon", "endIcon", "text", "rounded", "raised", "height", "width", "float", "hoverUp", "fullWidth", "outlined", "small", "hoverless", "smaller", "big", "bigger", "jumbo", "flat", "hoverNone", "fillAnimation", "fillDirection", "fillTextColor", "outlineSize", "isLoading", "status", "children", "bold", "style", "url", "onClick"]);
35
- // Use the component config hook
65
+ var _b;
66
+ var _c = _a.variant, variant = _c === void 0 ? '' : _c, color = _a.color, bg = _a.bg, funcss = _a.funcss, startIcon = _a.startIcon, endIcon = _a.endIcon, stringPrefix = _a.stringPrefix, stringSuffix = _a.stringSuffix, prefix = _a.prefix, suffix = _a.suffix, iconSize = _a.iconSize, _d = _a.iconLineHeight, iconLineHeight = _d === void 0 ? 0 : _d, text = _a.text, rounded = _a.rounded, raised = _a.raised, height = _a.height, width = _a.width, float = _a.float, hoverUp = _a.hoverUp, fullWidth = _a.fullWidth, outlined = _a.outlined, small = _a.small, hoverless = _a.hoverless, smaller = _a.smaller, big = _a.big, bigger = _a.bigger, jumbo = _a.jumbo, flat = _a.flat, hoverNone = _a.hoverNone, fillAnimation = _a.fillAnimation, fillDirection = _a.fillDirection, fillTextColor = _a.fillTextColor, outlineSize = _a.outlineSize, isLoading = _a.isLoading, status = _a.status, bold = _a.bold, children = _a.children, style = _a.style, url = _a.url, onClick = _a.onClick, rest = __rest(_a, ["variant", "color", "bg", "funcss", "startIcon", "endIcon", "stringPrefix", "stringSuffix", "prefix", "suffix", "iconSize", "iconLineHeight", "text", "rounded", "raised", "height", "width", "float", "hoverUp", "fullWidth", "outlined", "small", "hoverless", "smaller", "big", "bigger", "jumbo", "flat", "hoverNone", "fillAnimation", "fillDirection", "fillTextColor", "outlineSize", "isLoading", "status", "bold", "children", "style", "url", "onClick"]);
36
67
  var mergeWithLocal = (0, componentUtils_1.useComponentConfiguration)('Button', variant).mergeWithLocal;
37
- // Merge config with local props - local props should override config
38
68
  var mergedProps = mergeWithLocal(__assign({ color: color, bg: bg, funcss: funcss, text: text, rounded: rounded, raised: raised, height: height, width: width, float: float, hoverUp: hoverUp, fullWidth: fullWidth, outlined: outlined, small: small, hoverless: hoverless, smaller: smaller, big: big, bigger: bigger, jumbo: jumbo, flat: flat, hoverNone: hoverNone, fillAnimation: fillAnimation, fillDirection: fillDirection, fillTextColor: fillTextColor, outlineSize: outlineSize, isLoading: isLoading, status: status, bold: bold }, rest)).props;
39
- // Use mergedProps directly instead of getProp - this ensures local props override config
40
- var finalIsLoading = mergedProps.isLoading;
41
- var finalStatus = mergedProps.status;
42
- var finalText = mergedProps.text;
43
- var finalOutlined = mergedProps.outlined;
44
- var finalBg = mergedProps.bg;
45
- var finalColor = mergedProps.color;
46
- var finalRounded = mergedProps.rounded;
47
- var finalHoverless = mergedProps.hoverless;
48
- var finalBold = mergedProps.bold;
49
- var finalFloat = mergedProps.float;
50
- var finalRaised = mergedProps.raised;
51
- var finalHoverUp = mergedProps.hoverUp;
52
- var finalFlat = mergedProps.flat;
53
- var finalHoverNone = mergedProps.hoverNone;
54
- var finalSmall = mergedProps.small;
55
- var finalSmaller = mergedProps.smaller;
56
- var finalBig = mergedProps.big;
57
- var finalBigger = mergedProps.bigger;
58
- var finalJumbo = mergedProps.jumbo;
59
- var finalFillAnimation = mergedProps.fillAnimation;
60
- var finalFillDirection = mergedProps.fillDirection;
61
- var finalFillTextColor = mergedProps.fillTextColor;
62
- var finalFuncss = mergedProps.funcss;
63
- function removeNumbers(text) {
64
- if (!text)
65
- return '';
66
- return text.replace(/[0-9]/g, '');
67
- }
68
- function hasNumberAbove(text) {
69
- if (!text)
70
- return false;
71
- var matches = text.match(/\d+/g);
72
- if (!matches)
73
- return false;
74
- return matches.some(function (num) { return parseInt(num) >= 400; });
75
- }
76
- function hasNumber(text) {
77
- if (!text)
78
- return false;
79
- return /\d/.test(text);
69
+ var final = {
70
+ isLoading: mergedProps.isLoading,
71
+ status: mergedProps.status,
72
+ text: mergedProps.text,
73
+ outlined: mergedProps.outlined,
74
+ bg: mergedProps.bg,
75
+ color: mergedProps.color,
76
+ rounded: mergedProps.rounded,
77
+ hoverless: mergedProps.hoverless,
78
+ bold: mergedProps.bold,
79
+ float: mergedProps.float,
80
+ raised: mergedProps.raised,
81
+ hoverUp: mergedProps.hoverUp,
82
+ flat: mergedProps.flat,
83
+ hoverNone: mergedProps.hoverNone,
84
+ small: mergedProps.small,
85
+ smaller: mergedProps.smaller,
86
+ big: mergedProps.big,
87
+ bigger: mergedProps.bigger,
88
+ jumbo: mergedProps.jumbo,
89
+ fillAnimation: mergedProps.fillAnimation,
90
+ fillDirection: mergedProps.fillDirection,
91
+ fillTextColor: mergedProps.fillTextColor,
92
+ funcss: mergedProps.funcss,
93
+ };
94
+ var _e = (0, react_1.useState)(null), prefixNode = _e[0], setPrefixNode = _e[1];
95
+ var _f = (0, react_1.useState)(null), suffixNode = _f[0], setSuffixNode = _f[1];
96
+ function isReactElement(node) {
97
+ return react_1.default.isValidElement(node);
80
98
  }
81
- // Determine text color class using final values (local props override config)
82
- var textColorClass = finalBg ?
83
- finalColor ?
84
- finalColor :
85
- !hasNumber(finalBg) && !finalOutlined ?
86
- "" :
87
- hasNumberAbove(finalBg) && !finalOutlined ?
88
- "white" :
89
- removeNumbers(finalBg)
90
- : finalColor;
99
+ (0, react_1.useEffect)(function () {
100
+ if (stringPrefix)
101
+ (0, getDynamicIcon_1.getDynamicIcon)(stringPrefix).then(function (node) { return setPrefixNode(node); });
102
+ if (stringSuffix)
103
+ (0, getDynamicIcon_1.getDynamicIcon)(stringSuffix).then(function (node) { return setSuffixNode(node); });
104
+ }, [stringPrefix, stringSuffix]);
105
+ var textColorClass = final.bg
106
+ ? final.color
107
+ ? final.color
108
+ : !/\d/.test(final.bg) && !final.outlined
109
+ ? ''
110
+ : /[4-9]\d{2,}/.test(final.bg) && !final.outlined
111
+ ? 'white'
112
+ : final.bg.replace(/[0-9]/g, '')
113
+ : final.color;
91
114
  var classNames = [
92
115
  'button',
93
116
  "text-".concat(textColorClass),
94
- finalFuncss || '',
95
- finalRounded ? 'roundBtn' : '',
96
- finalHoverless ? 'hoverless' : '',
97
- finalBold ? 'text-bold' : '',
98
- finalFloat ? 'floatBtn' : '',
99
- finalRaised ? 'raisedBtn' : '',
100
- finalHoverUp ? 'hover-up' : '',
101
- finalFlat ? 'flat' : '',
102
- finalHoverNone ? 'hoverNone' : '',
103
- finalSmall ? 'smallBtn' :
104
- finalSmaller ? 'smallerBtn' : '',
105
- finalBig ? 'bigBtn' : '',
106
- finalBigger ? 'biggerBtn' : '',
107
- finalJumbo ? 'jumboBtn' : '',
108
- finalOutlined ? "outlined outline-".concat(finalBg || '', " text-").concat(finalColor ? finalColor : removeNumbers(finalBg)) : finalBg || '',
109
- "".concat(finalFillAnimation ? "".concat(finalFillTextColor ? "hover-text-".concat(finalFillTextColor) : '', " button-fill fill-").concat(finalFillDirection || 'left') : '')
117
+ final.funcss || '',
118
+ final.rounded ? 'roundBtn' : '',
119
+ final.hoverless ? 'hoverless' : '',
120
+ final.bold ? 'text-bold' : '',
121
+ final.float ? 'floatBtn' : '',
122
+ final.raised ? 'raisedBtn' : '',
123
+ final.hoverUp ? 'hover-up' : '',
124
+ final.flat ? 'flat' : '',
125
+ final.hoverNone ? 'hoverNone' : '',
126
+ final.small ? 'smallBtn' : final.smaller ? 'smallerBtn' : '',
127
+ final.big ? 'bigBtn' : '',
128
+ final.bigger ? 'biggerBtn' : '',
129
+ final.jumbo ? 'jumboBtn' : '',
130
+ final.outlined
131
+ ? "outlined outline-".concat(final.bg || '', " text-").concat(final.color ? final.color : (_b = final.bg) === null || _b === void 0 ? void 0 : _b.replace(/[0-9]/g, ''))
132
+ : final.bg || '',
133
+ "".concat(final.fillAnimation ? "".concat(final.fillTextColor ? "hover-text-".concat(final.fillTextColor) : '', " button-fill fill-").concat(final.fillDirection || 'left') : ''),
110
134
  ].join(' ');
135
+ var iconWrapperStyle = {
136
+ lineHeight: iconLineHeight,
137
+ display: 'inline-flex',
138
+ alignItems: 'center',
139
+ justifyContent: 'center',
140
+ };
111
141
  return (react_1.default.createElement("span", null,
112
- react_1.default.createElement("button", __assign({ className: "".concat(classNames, " ").concat(startIcon || endIcon || finalStatus || finalIsLoading ? 'iconic' : ''), style: __assign({ height: mergedProps.height || '', width: mergedProps.fullWidth ? '100%' : mergedProps.width || '', borderRadius: finalFlat ? '0rem' : '' }, style), onClick: onClick || (url ? function () { return window.location.href = url; } : undefined) }, mergedProps),
113
- finalIsLoading && (react_1.default.createElement("span", { className: 'rotate btn_left_icon', style: { lineHeight: "0" } },
114
- react_1.default.createElement(pi_1.PiSpinner, null))),
115
- finalStatus && (react_1.default.createElement("span", { className: 'btn_left_icon', style: { lineHeight: "0" } },
116
- finalStatus === "success" && react_1.default.createElement(pi_1.PiCheck, null),
117
- finalStatus === "info" && react_1.default.createElement(pi_1.PiInfo, null),
118
- finalStatus === "warning" && react_1.default.createElement(pi_1.PiWarning, null),
119
- finalStatus === "danger" && react_1.default.createElement(pi_1.PiX, null))),
120
- finalFillAnimation && react_1.default.createElement("span", { className: "button_fill_span ".concat(finalBg) }),
121
- startIcon && react_1.default.createElement("span", { className: "btn_left_icon", style: { lineHeight: "0" } }, startIcon),
122
- finalText ? finalText : children,
123
- endIcon && react_1.default.createElement("span", { className: "btn_right_icon", style: { lineHeight: "0" } }, endIcon))));
142
+ react_1.default.createElement("button", __assign({ className: "".concat(classNames, " ").concat((startIcon || endIcon || prefix || suffix || prefixNode || suffixNode || final.status || final.isLoading) ? 'iconic' : ''), style: __assign({ height: mergedProps.height || '', width: mergedProps.fullWidth ? '100%' : mergedProps.width || '', borderRadius: final.flat ? '0rem' : '' }, style), onClick: onClick || (url ? function () { return (window.location.href = url); } : undefined) }, mergedProps),
143
+ final.isLoading && (react_1.default.createElement("span", { className: "btn_left_icon rotate", style: iconWrapperStyle },
144
+ react_1.default.createElement(pi_1.PiSpinner, { size: iconSize }))),
145
+ final.status && (react_1.default.createElement("span", { className: "btn_left_icon", style: iconWrapperStyle },
146
+ final.status === 'success' && react_1.default.createElement(pi_1.PiCheck, { size: iconSize }),
147
+ final.status === 'info' && react_1.default.createElement(pi_1.PiInfo, { size: iconSize }),
148
+ final.status === 'warning' && react_1.default.createElement(pi_1.PiWarning, { size: iconSize }),
149
+ final.status === 'danger' && react_1.default.createElement(pi_1.PiX, { size: iconSize }))),
150
+ final.fillAnimation && react_1.default.createElement("span", { className: "button_fill_span ".concat(final.bg) }),
151
+ (prefix || startIcon || prefixNode) && (react_1.default.createElement("span", { className: "btn_left_icon", style: iconWrapperStyle }, isReactElement(startIcon) ? react_1.default.cloneElement(startIcon, { size: iconSize })
152
+ : isReactElement(prefix) ? react_1.default.cloneElement(prefix, { size: iconSize })
153
+ : isReactElement(prefixNode) ? react_1.default.cloneElement(prefixNode, { size: iconSize })
154
+ : prefix || startIcon || prefixNode // fallback for string/number, rendered as-is
155
+ )),
156
+ final.text ? final.text : children,
157
+ (suffix || endIcon || suffixNode) && (react_1.default.createElement("span", { className: "btn_right_icon", style: iconWrapperStyle }, isReactElement(endIcon) ? react_1.default.cloneElement(endIcon, { size: iconSize })
158
+ : isReactElement(suffix) ? react_1.default.cloneElement(suffix, { size: iconSize })
159
+ : isReactElement(suffixNode) ? react_1.default.cloneElement(suffixNode, { size: iconSize })
160
+ : suffix || endIcon || suffixNode)))));
124
161
  }
package/ui/card/Card.d.ts CHANGED
@@ -27,6 +27,56 @@ interface CardProps {
27
27
  responsiveMedium?: boolean;
28
28
  xl?: boolean;
29
29
  style?: React.CSSProperties;
30
+ pattern?: 'none' | 'grid' | 'dots' | 'diagonal' | 'checkerboard' | 'horizontal' | 'vertical';
31
+ patternOpacity?: number;
32
+ gradient?: string;
33
+ opacity?: number;
34
+ border?: string;
35
+ hoverEffect?: 'none' | 'lift' | 'glow';
36
+ heading?: ReactNode;
37
+ headingSize?: string;
38
+ headingWeight?: number;
39
+ headingColor?: string;
40
+ headingClass?: string;
41
+ headingLineHeight?: string;
42
+ subheading?: ReactNode;
43
+ subheadingSize?: string;
44
+ subheadingWeight?: number;
45
+ subheadingColor?: string;
46
+ subheadingClass?: string;
47
+ subheadingLineHeight?: string;
48
+ content?: ReactNode;
49
+ contentSize?: string;
50
+ contentWeight?: number;
51
+ contentColor?: string;
52
+ contentClass?: string;
53
+ contentLineHeight?: string;
54
+ imageUrl?: string;
55
+ imageAlt?: string;
56
+ imageClass?: string;
57
+ imageSize?: string;
58
+ showPrimaryCTA?: boolean;
59
+ showSecondaryCTA?: boolean;
60
+ showAccentCTA?: boolean;
61
+ primaryButtonOutlined?: boolean;
62
+ secondaryButtonOutlined?: boolean;
63
+ accentButtonOutlined?: boolean;
64
+ ctaPrimaryUrl?: string;
65
+ ctaSecondaryUrl?: string;
66
+ ctaAccentUrl?: string;
67
+ ctaPrimaryText?: string;
68
+ ctaSecondaryText?: string;
69
+ ctaAccentText?: string;
70
+ ctaGap?: number;
71
+ ctaFlexJustify?: 'flex-start' | 'center' | 'flex-end' | 'space-between' | 'space-around';
72
+ ctaClass?: string;
73
+ headerStyle?: React.CSSProperties;
74
+ headerClass?: string;
75
+ bodyStyle?: React.CSSProperties;
76
+ bodyClass?: string;
77
+ footerStyle?: React.CSSProperties;
78
+ footerClass?: string;
79
+ variant?: string;
30
80
  }
31
- export default function Card({ color, bg, width, height, minHeight, minWidth, margin, padding, funcss, children, roundEdge, maxHeight, maxWidth, horizontal, id, header, body, footer, noGap, fab, image, shadowless, flat, responsiveMedium, xl, responsiveSmall, style, ...rest }: CardProps): React.JSX.Element;
81
+ export default function Card({ color, bg, width, height, minHeight, minWidth, margin, padding, funcss, children, roundEdge, maxHeight, maxWidth, horizontal, id, header, body, footer, noGap, fab, image, shadowless, flat, responsiveMedium, xl, responsiveSmall, style, pattern, patternOpacity, gradient, opacity, border, hoverEffect, heading, headingSize, headingWeight, headingColor, headingClass, headingLineHeight, subheading, subheadingSize, subheadingWeight, subheadingColor, subheadingClass, subheadingLineHeight, content, contentSize, contentWeight, contentColor, contentClass, contentLineHeight, imageUrl, imageAlt, imageClass, imageSize, showPrimaryCTA, showSecondaryCTA, showAccentCTA, primaryButtonOutlined, secondaryButtonOutlined, accentButtonOutlined, ctaPrimaryUrl, ctaSecondaryUrl, ctaAccentUrl, ctaPrimaryText, ctaSecondaryText, ctaAccentText, ctaGap, ctaFlexJustify, ctaClass, headerStyle, headerClass, bodyStyle, bodyClass, footerStyle, footerClass, variant, ...rest }: CardProps): React.JSX.Element;
32
82
  export {};
package/ui/card/Card.js CHANGED
@@ -32,24 +32,194 @@ var CardHeader_1 = __importDefault(require("./CardHeader"));
32
32
  var CardBody_1 = __importDefault(require("./CardBody"));
33
33
  var CardFooter_1 = __importDefault(require("./CardFooter"));
34
34
  var theme_1 = require("../theme/theme");
35
+ var componentUtils_1 = require("../../utils/componentUtils");
36
+ var Button_1 = __importDefault(require("../button/Button"));
37
+ var Flex_1 = __importDefault(require("../flex/Flex"));
38
+ var Text_1 = __importDefault(require("../text/Text"));
39
+ var View_1 = __importDefault(require("../view/View"));
35
40
  function Card(_a) {
36
- var color = _a.color, bg = _a.bg, width = _a.width, height = _a.height, minHeight = _a.minHeight, minWidth = _a.minWidth, margin = _a.margin, padding = _a.padding, funcss = _a.funcss, children = _a.children, roundEdge = _a.roundEdge, maxHeight = _a.maxHeight, maxWidth = _a.maxWidth, horizontal = _a.horizontal, id = _a.id, header = _a.header, body = _a.body, footer = _a.footer, noGap = _a.noGap, fab = _a.fab, image = _a.image, shadowless = _a.shadowless, flat = _a.flat, responsiveMedium = _a.responsiveMedium, xl = _a.xl, responsiveSmall = _a.responsiveSmall, style = _a.style, rest = __rest(_a, ["color", "bg", "width", "height", "minHeight", "minWidth", "margin", "padding", "funcss", "children", "roundEdge", "maxHeight", "maxWidth", "horizontal", "id", "header", "body", "footer", "noGap", "fab", "image", "shadowless", "flat", "responsiveMedium", "xl", "responsiveSmall", "style"]);
37
- var variant = (0, theme_1.useVariant)().variant;
38
- return (react_1.default.createElement("div", __assign({ id: id || '', className: "\n card \n card_flex\n ".concat(noGap ? 'no-gap' : '', " \n ").concat(xl ? 'xl' : '', " \n text-").concat(color || '', " \n ").concat(bg || '', " \n ").concat(funcss || '', " \n ").concat(roundEdge ? 'round-edge' : '', " \n ").concat(shadowless ? 'shadowless' : '', " \n ").concat(flat ? 'flat' : '', " \n ").concat(horizontal ? 'horizontalCard' : '', "\n ").concat(responsiveMedium ? 'responsiveMedium' : '', "\n ").concat(responsiveSmall ? 'responsiveSmall' : '', "\n ").concat(variant === "standard" ? "border" : "", "\n \n "), style: __assign({ width: "".concat(width || ''), height: "".concat(height || ''), minHeight: "".concat(minHeight || ''), minWidth: "".concat(minWidth || ''), maxHeight: maxHeight || '', maxWidth: maxWidth || '', margin: "".concat(margin || ''), padding: "".concat(padding || '') }, style) }, rest),
39
- image ? react_1.default.createElement("div", { className: "".concat(fab ? 'relative' : '') },
40
- image,
41
+ var
42
+ // Original Props
43
+ color = _a.color, bg = _a.bg, width = _a.width, height = _a.height, minHeight = _a.minHeight, minWidth = _a.minWidth, margin = _a.margin, padding = _a.padding, funcss = _a.funcss, children = _a.children, roundEdge = _a.roundEdge, maxHeight = _a.maxHeight, maxWidth = _a.maxWidth, horizontal = _a.horizontal, id = _a.id, header = _a.header, body = _a.body, footer = _a.footer, noGap = _a.noGap, fab = _a.fab, image = _a.image, shadowless = _a.shadowless, flat = _a.flat, responsiveMedium = _a.responsiveMedium, xl = _a.xl, responsiveSmall = _a.responsiveSmall, style = _a.style,
44
+ // Pattern Props
45
+ _b = _a.pattern,
46
+ // Pattern Props
47
+ pattern = _b === void 0 ? 'none' : _b, _c = _a.patternOpacity, patternOpacity = _c === void 0 ? 0.1 : _c, gradient = _a.gradient, _d = _a.opacity, opacity = _d === void 0 ? 1 : _d, border = _a.border, _e = _a.hoverEffect, hoverEffect = _e === void 0 ? 'none' : _e,
48
+ // Enhanced Content Props
49
+ heading = _a.heading, _f = _a.headingSize, headingSize = _f === void 0 ? 'xl' : _f, _g = _a.headingWeight, headingWeight = _g === void 0 ? 700 : _g, headingColor = _a.headingColor, headingClass = _a.headingClass, headingLineHeight = _a.headingLineHeight, subheading = _a.subheading, _h = _a.subheadingSize, subheadingSize = _h === void 0 ? 'base' : _h, _j = _a.subheadingWeight, subheadingWeight = _j === void 0 ? 400 : _j, _k = _a.subheadingColor, subheadingColor = _k === void 0 ? 'light' : _k, subheadingClass = _a.subheadingClass, subheadingLineHeight = _a.subheadingLineHeight, content = _a.content, _l = _a.contentSize, contentSize = _l === void 0 ? 'base' : _l, _m = _a.contentWeight, contentWeight = _m === void 0 ? 400 : _m, contentColor = _a.contentColor, contentClass = _a.contentClass, contentLineHeight = _a.contentLineHeight,
50
+ // Image Props
51
+ imageUrl = _a.imageUrl, _o = _a.imageAlt, imageAlt = _o === void 0 ? '' : _o, _p = _a.imageClass, imageClass = _p === void 0 ? '' : _p, _q = _a.imageSize, imageSize = _q === void 0 ? '100%' : _q,
52
+ // Enhanced Footer/CTA Props
53
+ _r = _a.showPrimaryCTA,
54
+ // Enhanced Footer/CTA Props
55
+ showPrimaryCTA = _r === void 0 ? false : _r, _s = _a.showSecondaryCTA, showSecondaryCTA = _s === void 0 ? false : _s, _t = _a.showAccentCTA, showAccentCTA = _t === void 0 ? false : _t, _u = _a.primaryButtonOutlined, primaryButtonOutlined = _u === void 0 ? false : _u, _v = _a.secondaryButtonOutlined, secondaryButtonOutlined = _v === void 0 ? false : _v, _w = _a.accentButtonOutlined, accentButtonOutlined = _w === void 0 ? false : _w, _x = _a.ctaPrimaryUrl, ctaPrimaryUrl = _x === void 0 ? '' : _x, _y = _a.ctaSecondaryUrl, ctaSecondaryUrl = _y === void 0 ? '' : _y, _z = _a.ctaAccentUrl, ctaAccentUrl = _z === void 0 ? '' : _z, _0 = _a.ctaPrimaryText, ctaPrimaryText = _0 === void 0 ? 'Primary Action' : _0, _1 = _a.ctaSecondaryText, ctaSecondaryText = _1 === void 0 ? 'Secondary Action' : _1, _2 = _a.ctaAccentText, ctaAccentText = _2 === void 0 ? 'Accent Action' : _2, _3 = _a.ctaGap, ctaGap = _3 === void 0 ? 1 : _3, _4 = _a.ctaFlexJustify, ctaFlexJustify = _4 === void 0 ? 'center' : _4, _5 = _a.ctaClass, ctaClass = _5 === void 0 ? '' : _5,
56
+ // Section Styling Props
57
+ headerStyle = _a.headerStyle, headerClass = _a.headerClass, bodyStyle = _a.bodyStyle, bodyClass = _a.bodyClass, footerStyle = _a.footerStyle, footerClass = _a.footerClass,
58
+ // Configuration
59
+ variant = _a.variant, rest = __rest(_a, ["color", "bg", "width", "height", "minHeight", "minWidth", "margin", "padding", "funcss", "children", "roundEdge", "maxHeight", "maxWidth", "horizontal", "id", "header", "body", "footer", "noGap", "fab", "image", "shadowless", "flat", "responsiveMedium", "xl", "responsiveSmall", "style", "pattern", "patternOpacity", "gradient", "opacity", "border", "hoverEffect", "heading", "headingSize", "headingWeight", "headingColor", "headingClass", "headingLineHeight", "subheading", "subheadingSize", "subheadingWeight", "subheadingColor", "subheadingClass", "subheadingLineHeight", "content", "contentSize", "contentWeight", "contentColor", "contentClass", "contentLineHeight", "imageUrl", "imageAlt", "imageClass", "imageSize", "showPrimaryCTA", "showSecondaryCTA", "showAccentCTA", "primaryButtonOutlined", "secondaryButtonOutlined", "accentButtonOutlined", "ctaPrimaryUrl", "ctaSecondaryUrl", "ctaAccentUrl", "ctaPrimaryText", "ctaSecondaryText", "ctaAccentText", "ctaGap", "ctaFlexJustify", "ctaClass", "headerStyle", "headerClass", "bodyStyle", "bodyClass", "footerStyle", "footerClass", "variant"]);
60
+ // Use the component config hook
61
+ var mergeWithLocal = (0, componentUtils_1.useComponentConfiguration)('Card', variant).mergeWithLocal;
62
+ // Merge config with local props
63
+ var mergedProps = mergeWithLocal({
64
+ // Original props
65
+ color: color,
66
+ bg: bg,
67
+ width: width,
68
+ height: height,
69
+ minHeight: minHeight,
70
+ minWidth: minWidth,
71
+ margin: margin,
72
+ padding: padding,
73
+ funcss: funcss,
74
+ children: children,
75
+ roundEdge: roundEdge,
76
+ maxHeight: maxHeight,
77
+ maxWidth: maxWidth,
78
+ horizontal: horizontal,
79
+ id: id,
80
+ header: header,
81
+ body: body,
82
+ footer: footer,
83
+ noGap: noGap,
84
+ fab: fab,
85
+ image: image,
86
+ shadowless: shadowless,
87
+ flat: flat,
88
+ responsiveMedium: responsiveMedium,
89
+ xl: xl,
90
+ responsiveSmall: responsiveSmall,
91
+ style: style,
92
+ // Pattern props
93
+ pattern: pattern,
94
+ patternOpacity: patternOpacity,
95
+ gradient: gradient,
96
+ opacity: opacity,
97
+ border: border,
98
+ hoverEffect: hoverEffect,
99
+ // Enhanced content props
100
+ heading: heading,
101
+ headingSize: headingSize,
102
+ headingWeight: headingWeight,
103
+ headingColor: headingColor,
104
+ headingClass: headingClass,
105
+ headingLineHeight: headingLineHeight,
106
+ subheading: subheading,
107
+ subheadingSize: subheadingSize,
108
+ subheadingWeight: subheadingWeight,
109
+ subheadingColor: subheadingColor,
110
+ subheadingClass: subheadingClass,
111
+ subheadingLineHeight: subheadingLineHeight,
112
+ content: content,
113
+ contentSize: contentSize,
114
+ contentWeight: contentWeight,
115
+ contentColor: contentColor,
116
+ contentClass: contentClass,
117
+ contentLineHeight: contentLineHeight,
118
+ // Image props
119
+ imageUrl: imageUrl,
120
+ imageAlt: imageAlt,
121
+ imageClass: imageClass,
122
+ imageSize: imageSize,
123
+ // CTA props
124
+ showPrimaryCTA: showPrimaryCTA,
125
+ showSecondaryCTA: showSecondaryCTA,
126
+ showAccentCTA: showAccentCTA,
127
+ primaryButtonOutlined: primaryButtonOutlined,
128
+ secondaryButtonOutlined: secondaryButtonOutlined,
129
+ accentButtonOutlined: accentButtonOutlined,
130
+ ctaPrimaryUrl: ctaPrimaryUrl,
131
+ ctaSecondaryUrl: ctaSecondaryUrl,
132
+ ctaAccentUrl: ctaAccentUrl,
133
+ ctaPrimaryText: ctaPrimaryText,
134
+ ctaSecondaryText: ctaSecondaryText,
135
+ ctaAccentText: ctaAccentText,
136
+ ctaGap: ctaGap,
137
+ ctaFlexJustify: ctaFlexJustify,
138
+ ctaClass: ctaClass,
139
+ // Section styling props
140
+ headerStyle: headerStyle,
141
+ headerClass: headerClass,
142
+ bodyStyle: bodyStyle,
143
+ bodyClass: bodyClass,
144
+ footerStyle: footerStyle,
145
+ footerClass: footerClass,
146
+ }).props;
147
+ var themeVariant = (0, theme_1.useVariant)().variant;
148
+ // Handle content - if string, use dangerouslySetInnerHTML, otherwise render as is
149
+ var renderContent = function (content) {
150
+ if (typeof content === 'string') {
151
+ return react_1.default.createElement("div", { dangerouslySetInnerHTML: { __html: content } });
152
+ }
153
+ return content;
154
+ };
155
+ // Enhanced Text Content with flexible styling
156
+ var EnhancedTextContent = (react_1.default.createElement("div", { className: "card-enhanced-content" },
157
+ mergedProps.heading && (react_1.default.createElement(Text_1.default, { block: true, size: mergedProps.headingSize, weight: mergedProps.headingWeight, color: mergedProps.headingColor, funcss: mergedProps.headingClass, lineHeight: mergedProps.headingLineHeight }, renderContent(mergedProps.heading))),
158
+ mergedProps.subheading && (react_1.default.createElement(Text_1.default, { block: true, size: mergedProps.subheadingSize, weight: mergedProps.subheadingWeight, color: mergedProps.subheadingColor, funcss: "mt-1 ".concat(mergedProps.subheadingClass), lineHeight: mergedProps.subheadingLineHeight }, renderContent(mergedProps.subheading))),
159
+ mergedProps.content && (react_1.default.createElement(Text_1.default, { block: true, size: mergedProps.contentSize, weight: mergedProps.contentWeight, color: mergedProps.contentColor, funcss: "mt-3 ".concat(mergedProps.contentClass), lineHeight: mergedProps.contentLineHeight, article: true }, renderContent(mergedProps.content)))));
160
+ // Image Content - uses imageUrl if no image component provided
161
+ var ImageContent = (mergedProps.image || mergedProps.imageUrl) && (react_1.default.createElement("div", { className: "card-image-content" }, mergedProps.image ? (mergedProps.image) : (mergedProps.imageUrl && (react_1.default.createElement("img", { src: mergedProps.imageUrl, alt: mergedProps.imageAlt, className: mergedProps.imageClass, style: {
162
+ width: mergedProps.imageSize,
163
+ height: 'auto',
164
+ objectFit: 'cover',
165
+ borderRadius: 'inherit'
166
+ } })))));
167
+ // CTA Buttons Component
168
+ var CTAButtons = function () {
169
+ var hasCTAs = mergedProps.showPrimaryCTA || mergedProps.showSecondaryCTA || mergedProps.showAccentCTA;
170
+ if (!hasCTAs)
171
+ return null;
172
+ return (react_1.default.createElement(Flex_1.default, { gap: mergedProps.ctaGap, justify: mergedProps.ctaFlexJustify, className: "mt-4 ".concat(mergedProps.ctaClass), wrap: "wrap", width: '100%' },
173
+ mergedProps.showPrimaryCTA && (react_1.default.createElement(Button_1.default, { bg: "primary", outlined: mergedProps.primaryButtonOutlined, onClick: function () { return mergedProps.ctaPrimaryUrl && (window.location.href = mergedProps.ctaPrimaryUrl); } }, mergedProps.ctaPrimaryText)),
174
+ mergedProps.showSecondaryCTA && (react_1.default.createElement(Button_1.default, { bg: "secondary", outlined: mergedProps.secondaryButtonOutlined, onClick: function () { return mergedProps.ctaSecondaryUrl && (window.location.href = mergedProps.ctaSecondaryUrl); } }, mergedProps.ctaSecondaryText)),
175
+ mergedProps.showAccentCTA && (react_1.default.createElement(Button_1.default, { bg: "accent", outlined: mergedProps.accentButtonOutlined, onClick: function () { return mergedProps.ctaAccentUrl && (window.location.href = mergedProps.ctaAccentUrl); } }, mergedProps.ctaAccentText))));
176
+ };
177
+ // Determine if we should use enhanced content
178
+ var hasEnhancedContent = mergedProps.heading || mergedProps.subheading || mergedProps.content;
179
+ var hasEnhancedFooter = mergedProps.showPrimaryCTA || mergedProps.showSecondaryCTA || mergedProps.showAccentCTA;
180
+ var hasImageContent = mergedProps.image || mergedProps.imageUrl;
181
+ return (react_1.default.createElement("div", __assign({ id: mergedProps.id || '', className: "\n card \n card_flex\n ".concat(!image && !imageUrl ? "p" : "", "\n ").concat(mergedProps.noGap ? 'no-gap' : '', " \n ").concat(mergedProps.xl ? 'xl' : '', " \n text-").concat(mergedProps.color || '', " \n ").concat(mergedProps.bg || '', " \n ").concat(mergedProps.funcss || '', " \n ").concat(mergedProps.roundEdge ? 'round-edge' : '', " \n ").concat(mergedProps.shadowless ? 'shadowless' : '', " \n ").concat(mergedProps.flat ? 'flat' : '', " \n ").concat(mergedProps.horizontal ? 'horizontalCard' : '', "\n ").concat(mergedProps.responsiveMedium ? 'responsiveMedium' : '', "\n ").concat(mergedProps.responsiveSmall ? 'responsiveSmall' : '', "\n ").concat(mergedProps.pattern !== 'none' ? "pattern-".concat(mergedProps.pattern) : '', "\n ").concat(mergedProps.hoverEffect !== 'none' ? "hover-".concat(mergedProps.hoverEffect) : '', "\n ").concat(themeVariant === "standard" ? "border" : "", "\n "), style: __assign({ width: "".concat(mergedProps.width || ''), height: "".concat(mergedProps.height || ''), minHeight: "".concat(mergedProps.minHeight || ''), minWidth: "".concat(mergedProps.minWidth || ''), maxHeight: mergedProps.maxHeight || '', maxWidth: mergedProps.maxWidth || '', margin: "".concat(mergedProps.margin || ''), padding: "".concat(mergedProps.padding || ''), background: mergedProps.gradient, opacity: mergedProps.opacity, border: mergedProps.border, position: 'relative', overflow: 'hidden' }, mergedProps.style) }, rest),
182
+ mergedProps.pattern !== 'none' && (react_1.default.createElement("div", { className: "card-pattern-overlay", style: {
183
+ position: 'absolute',
184
+ top: 0,
185
+ left: 0,
186
+ right: 0,
187
+ bottom: 0,
188
+ pointerEvents: 'none',
189
+ opacity: mergedProps.patternOpacity,
190
+ mixBlendMode: 'multiply',
191
+ backgroundImage: mergedProps.pattern === 'grid' ?
192
+ "linear-gradient(to right, rgba(var(--borderRgb), 1) 1px, transparent 1px),\n linear-gradient(to bottom, rgba(var(--borderRgb), 1) 1px, transparent 1px)" :
193
+ mergedProps.pattern === 'dots' ?
194
+ "radial-gradient(rgba(var(--borderRgb), 1) 1px, transparent 1px)" :
195
+ mergedProps.pattern === 'diagonal' ?
196
+ "repeating-linear-gradient(45deg, rgba(var(--borderRgb), 1), rgba(var(--borderRgb), 1) 1px, transparent 1px, transparent 10px)" :
197
+ mergedProps.pattern === 'checkerboard' ?
198
+ "linear-gradient(45deg, rgba(var(--borderRgb), 1) 25%, transparent 25%), \n linear-gradient(-45deg, rgba(var(--borderRgb), 1) 25%, transparent 25%), \n linear-gradient(45deg, transparent 75%, rgba(var(--borderRgb), 1) 75%), \n linear-gradient(-45deg, transparent 75%, rgba(var(--borderRgb), 1) 75%)" :
199
+ mergedProps.pattern === 'horizontal' ?
200
+ "linear-gradient(to bottom, rgba(var(--borderRgb), 1) 1px, transparent 1px)" :
201
+ mergedProps.pattern === 'vertical' ?
202
+ "linear-gradient(to right, rgba(var(--borderRgb), 1) 1px, transparent 1px)" : 'none',
203
+ backgroundSize: mergedProps.pattern === 'grid' ? '20px 20px' :
204
+ mergedProps.pattern === 'dots' ? '10px 10px' :
205
+ mergedProps.pattern === 'diagonal' ? '20px 20px' :
206
+ mergedProps.pattern === 'checkerboard' ? '20px 20px' :
207
+ mergedProps.pattern === 'horizontal' ? '100% 10px' :
208
+ mergedProps.pattern === 'vertical' ? '10px 100%' : 'auto'
209
+ } })),
210
+ hasImageContent ? (ImageContent) : (mergedProps.image ? react_1.default.createElement("div", { className: "".concat(mergedProps.fab ? 'relative' : '') },
211
+ mergedProps.image,
41
212
  " ",
42
- fab ? fab : '') : '',
43
- header && !horizontal ? react_1.default.createElement(CardHeader_1.default, null, header) : '',
44
- body ?
45
- react_1.default.createElement("div", null,
46
- horizontal ? react_1.default.createElement(CardHeader_1.default, null, header) : '',
47
- react_1.default.createElement(CardBody_1.default, null,
48
- " ",
49
- body,
50
- " "),
51
- horizontal ? react_1.default.createElement(CardFooter_1.default, null, footer) : '')
52
- : '',
53
- children && react_1.default.createElement(CardBody_1.default, null, children),
54
- footer && !horizontal ? react_1.default.createElement(CardFooter_1.default, null, footer) : ''));
213
+ mergedProps.fab ? mergedProps.fab : '') : ''),
214
+ react_1.default.createElement(View_1.default, { funcss: hasImageContent ? 'p' : '' },
215
+ hasEnhancedContent ? (react_1.default.createElement(CardHeader_1.default, { style: mergedProps.headerStyle, className: mergedProps.headerClass }, EnhancedTextContent)) : (mergedProps.header && !mergedProps.horizontal ? (react_1.default.createElement(CardHeader_1.default, { style: mergedProps.headerStyle, className: mergedProps.headerClass }, renderContent(mergedProps.header))) : ''),
216
+ mergedProps.body ?
217
+ react_1.default.createElement("div", null,
218
+ mergedProps.horizontal && !hasEnhancedContent ? (react_1.default.createElement(CardHeader_1.default, { style: mergedProps.headerStyle, className: mergedProps.headerClass }, renderContent(mergedProps.header))) : '',
219
+ react_1.default.createElement(CardBody_1.default, { style: mergedProps.bodyStyle, className: mergedProps.bodyClass }, hasEnhancedContent ? EnhancedTextContent : renderContent(mergedProps.body)),
220
+ mergedProps.horizontal && !hasEnhancedFooter ? (react_1.default.createElement(CardFooter_1.default, { style: mergedProps.footerStyle, className: mergedProps.footerClass }, renderContent(mergedProps.footer))) : '')
221
+ : '',
222
+ mergedProps.children && (react_1.default.createElement(CardBody_1.default, { style: mergedProps.bodyStyle, className: mergedProps.bodyClass }, renderContent(mergedProps.children))),
223
+ hasEnhancedFooter ? (react_1.default.createElement(CardFooter_1.default, { style: mergedProps.footerStyle, className: mergedProps.footerClass },
224
+ react_1.default.createElement(CTAButtons, null))) : (mergedProps.footer && !mergedProps.horizontal ? (react_1.default.createElement(CardFooter_1.default, { style: mergedProps.footerStyle, className: mergedProps.footerClass }, renderContent(mergedProps.footer))) : ''))));
55
225
  }
@@ -5,7 +5,7 @@ interface BaseInputProps {
5
5
  value?: any;
6
6
  defaultValue?: string;
7
7
  onChange?: (event: React.ChangeEvent<HTMLInputElement | HTMLSelectElement | HTMLTextAreaElement>) => void;
8
- status?: 'success' | 'warning' | 'danger' | '';
8
+ status?: 'success' | 'warning' | 'danger' | 'info' | '';
9
9
  funcss?: string;
10
10
  bg?: string;
11
11
  fullWidth?: boolean;
@@ -17,8 +17,12 @@ interface BaseInputProps {
17
17
  rightRounded?: boolean;
18
18
  startIcon?: React.ReactNode;
19
19
  endIcon?: React.ReactNode;
20
+ prefix?: React.ReactNode;
21
+ suffix?: React.ReactNode;
20
22
  iconicBg?: string;
21
23
  variant?: string;
24
+ label?: string;
25
+ helperText?: string;
22
26
  }
23
27
  interface SelectOption {
24
28
  value: string;
@@ -26,17 +30,14 @@ interface SelectOption {
26
30
  }
27
31
  interface TextInputProps extends BaseInputProps {
28
32
  type?: string;
29
- label?: string;
30
33
  }
31
34
  interface SelectProps extends BaseInputProps {
32
35
  options?: SelectOption[];
33
36
  }
34
37
  interface TextareaProps extends BaseInputProps {
35
- label?: string;
36
38
  rows?: number;
37
39
  }
38
40
  interface FileInputProps extends BaseInputProps {
39
- label?: string;
40
41
  icon?: React.ReactNode;
41
42
  extra?: React.ReactNode;
42
43
  button?: React.ReactNode;
@@ -56,7 +57,6 @@ interface InputProps extends BaseInputProps {
56
57
  button?: React.ReactNode;
57
58
  btn?: boolean;
58
59
  type?: string;
59
- label?: string;
60
60
  options?: SelectOption[];
61
61
  rows?: number;
62
62
  }