@televet/kibble-ui 1.2.2 → 1.3.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.
- package/build/components/Avatar/avatar.component.d.ts +26 -0
- package/build/components/Avatar/avatar.config.d.ts +2 -0
- package/build/components/Avatar/avatar.types.d.ts +1 -0
- package/build/components/Avatar/index.d.ts +3 -0
- package/build/components/AvatarGroup/avatarGroup.component.d.ts +13 -0
- package/build/components/AvatarGroup/avatarGroup.utilities.d.ts +6 -0
- package/build/components/AvatarGroup/index.d.ts +1 -0
- package/build/components/Textarea/index.d.ts +0 -1
- package/build/components/index.d.ts +1 -0
- package/build/index.js +221 -20
- package/build/index.js.map +1 -1
- package/build/theme/theme.types.d.ts +1 -0
- package/package.json +3 -1
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { AvatarProps as CAvatarProps, Placement } from '@chakra-ui/react';
|
|
2
|
+
import { CSSProperties } from 'react';
|
|
3
|
+
import { AvatarSize } from './avatar.types';
|
|
4
|
+
export declare enum AvatarVariant {
|
|
5
|
+
Green = "green",
|
|
6
|
+
Red = "red",
|
|
7
|
+
Blue = "blue",
|
|
8
|
+
Comet = "comet",
|
|
9
|
+
Number = "number",
|
|
10
|
+
Dashed = "dashed",
|
|
11
|
+
Image = "image"
|
|
12
|
+
}
|
|
13
|
+
export interface AvatarProps extends CAvatarProps {
|
|
14
|
+
name: string;
|
|
15
|
+
size?: AvatarSize;
|
|
16
|
+
isClinic?: boolean;
|
|
17
|
+
showTooltip?: boolean;
|
|
18
|
+
tooltipPlacement?: Placement;
|
|
19
|
+
style?: CSSProperties;
|
|
20
|
+
handleClick?: () => void;
|
|
21
|
+
showRemoveButton?: boolean;
|
|
22
|
+
handleRemoveButtonClick?: () => void;
|
|
23
|
+
variant?: AvatarVariant;
|
|
24
|
+
tooltipText?: string;
|
|
25
|
+
}
|
|
26
|
+
export declare const Avatar: ({ name, src, isClinic, size, showTooltip, tooltipPlacement, style, handleClick, showRemoveButton, handleRemoveButtonClick, variant, tooltipText, ...rest }: AvatarProps) => JSX.Element;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare type AvatarSize = 'xs' | 'sm' | 'md' | 'lg';
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/// <reference types="react" />
|
|
2
|
+
import { AvatarProps, AvatarSize } from 'components/Avatar';
|
|
3
|
+
export interface AvatarGroupProps {
|
|
4
|
+
avatars: AvatarProps[];
|
|
5
|
+
max?: number;
|
|
6
|
+
size?: AvatarSize;
|
|
7
|
+
handleAddButtonClick?: () => void;
|
|
8
|
+
showAddButton?: boolean;
|
|
9
|
+
addButtonTooltipText?: string;
|
|
10
|
+
showRemoveAvatarButton?: boolean;
|
|
11
|
+
handleRemoveButtonClick?: () => void;
|
|
12
|
+
}
|
|
13
|
+
export declare const AvatarGroup: ({ avatars, max, size, handleAddButtonClick, showAddButton, addButtonTooltipText, showRemoveAvatarButton, handleRemoveButtonClick, }: AvatarGroupProps) => JSX.Element;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './avatarGroup.component';
|
|
@@ -3,6 +3,7 @@ export * from './Icon';
|
|
|
3
3
|
export * from './Logo';
|
|
4
4
|
export * from './Typography';
|
|
5
5
|
export * from './Textarea';
|
|
6
|
+
export * from './Avatar';
|
|
6
7
|
export * from './Button';
|
|
7
8
|
export * from './Tooltip';
|
|
8
9
|
export { Box, BoxProps, Center, CenterProps, Flex, FlexProps, Hide, HideProps, Show, ShowProps, Tbody, Td, Th, Thead, Tr, VStack, HStack, } from '@chakra-ui/react';
|
package/build/index.js
CHANGED
|
@@ -2831,6 +2831,8 @@ var TextareaConfig = {
|
|
|
2831
2831
|
},
|
|
2832
2832
|
};
|
|
2833
2833
|
|
|
2834
|
+
var useAdaptiveColor = function (color) { return react.useColorModeValue(color.light, color.dark); };
|
|
2835
|
+
|
|
2834
2836
|
var camelCaseToLabel = function (s) {
|
|
2835
2837
|
return s.replace(/([A-Z])/g, ' $1').replace(/^\w/, function (c) { return c.toUpperCase(); });
|
|
2836
2838
|
};
|
|
@@ -2868,6 +2870,222 @@ var toTitleCase = function (s) {
|
|
|
2868
2870
|
.join('');
|
|
2869
2871
|
};
|
|
2870
2872
|
|
|
2873
|
+
var Tooltip = function (_a) {
|
|
2874
|
+
var children = _a.children, label = _a.label, _b = _a.openDelay, openDelay = _b === void 0 ? 350 : _b, _c = _a.placement, placement = _c === void 0 ? 'top' : _c, _d = _a.titleCaseLabel, titleCaseLabel = _d === void 0 ? true : _d, rest = __rest(_a, ["children", "label", "openDelay", "placement", "titleCaseLabel"]);
|
|
2875
|
+
var components = useTheme().components;
|
|
2876
|
+
var bg = useAdaptiveColor(components.Tooltip.color);
|
|
2877
|
+
var l = titleCaseLabel ? toTitleCase(label.toLowerCase()) : label;
|
|
2878
|
+
return (React__default["default"].createElement(react.Tooltip, __assign({ hasArrow: true, arrowSize: 10, label: l, bg: bg, openDelay: openDelay, placement: placement }, rest), children));
|
|
2879
|
+
};
|
|
2880
|
+
|
|
2881
|
+
var TooltipGlobalStyle = {
|
|
2882
|
+
'[id^=tooltip]': {
|
|
2883
|
+
padding: '4px 8px 4px 8px !important',
|
|
2884
|
+
borderRadius: '4px !important',
|
|
2885
|
+
},
|
|
2886
|
+
};
|
|
2887
|
+
var TooltipConfig = {
|
|
2888
|
+
color: { light: semanticColors.background.dark, dark: semanticColors.background.light },
|
|
2889
|
+
};
|
|
2890
|
+
|
|
2891
|
+
exports.AvatarVariant = void 0;
|
|
2892
|
+
(function (AvatarVariant) {
|
|
2893
|
+
AvatarVariant["Green"] = "green";
|
|
2894
|
+
AvatarVariant["Red"] = "red";
|
|
2895
|
+
AvatarVariant["Blue"] = "blue";
|
|
2896
|
+
AvatarVariant["Comet"] = "comet";
|
|
2897
|
+
AvatarVariant["Number"] = "number";
|
|
2898
|
+
AvatarVariant["Dashed"] = "dashed";
|
|
2899
|
+
AvatarVariant["Image"] = "image";
|
|
2900
|
+
})(exports.AvatarVariant || (exports.AvatarVariant = {}));
|
|
2901
|
+
var getAvatarVariant = function (charCode) {
|
|
2902
|
+
if (charCode >= 65 && charCode <= 71) {
|
|
2903
|
+
return exports.AvatarVariant.Blue;
|
|
2904
|
+
}
|
|
2905
|
+
else if (charCode >= 72 && charCode <= 77) {
|
|
2906
|
+
return exports.AvatarVariant.Red;
|
|
2907
|
+
}
|
|
2908
|
+
else if (charCode >= 78 && charCode <= 84) {
|
|
2909
|
+
return exports.AvatarVariant.Green;
|
|
2910
|
+
}
|
|
2911
|
+
else {
|
|
2912
|
+
return exports.AvatarVariant.Comet;
|
|
2913
|
+
}
|
|
2914
|
+
};
|
|
2915
|
+
var Avatar = function (_a) {
|
|
2916
|
+
var name = _a.name, src = _a.src, _b = _a.isClinic, isClinic = _b === void 0 ? false : _b, _c = _a.size, size = _c === void 0 ? 'md' : _c, _d = _a.showTooltip, showTooltip = _d === void 0 ? true : _d, _e = _a.tooltipPlacement, tooltipPlacement = _e === void 0 ? 'bottom' : _e, style = _a.style, handleClick = _a.handleClick, showRemoveButton = _a.showRemoveButton, handleRemoveButtonClick = _a.handleRemoveButtonClick, variant = _a.variant, tooltipText = _a.tooltipText, rest = __rest(_a, ["name", "src", "isClinic", "size", "showTooltip", "tooltipPlacement", "style", "handleClick", "showRemoveButton", "handleRemoveButtonClick", "variant", "tooltipText"]);
|
|
2917
|
+
var theme = useTheme();
|
|
2918
|
+
var _f = React.useState(!!src), isSrcValid = _f[0], setIsSrcValid = _f[1];
|
|
2919
|
+
var _g = React.useState(false), isHoveringAvatar = _g[0], setIsHoveringAvatar = _g[1];
|
|
2920
|
+
var _h = React.useState(false), isHoveringRemoveButton = _h[0], setIsHoveringRemoveButton = _h[1];
|
|
2921
|
+
var shouldHideRemoveButton = size === 'xs' || variant === exports.AvatarVariant.Dashed || variant === exports.AvatarVariant.Number;
|
|
2922
|
+
var _variant = isClinic ? 'comet' : getAvatarVariant(name.charCodeAt(0));
|
|
2923
|
+
if (isSrcValid) {
|
|
2924
|
+
_variant = 'image';
|
|
2925
|
+
}
|
|
2926
|
+
var avatarDynamicStyles = __assign({ cursor: handleClick ? 'pointer' : 'auto' }, style);
|
|
2927
|
+
var avatarMarkup = (React__default["default"].createElement(react.Avatar, __assign({}, rest, { name: name, src: src, size: size, style: avatarDynamicStyles, variant: variant || _variant, onClick: handleClick, onError: function () { return setIsSrcValid(false); }, onMouseEnter: function () { return setIsHoveringAvatar(true); }, onMouseLeave: function () { return setIsHoveringAvatar(false); } }), showRemoveButton && isHoveringAvatar && !shouldHideRemoveButton && (React__default["default"].createElement(react.Box, { backgroundColor: theme.colors.white, borderRadius: "9999px", cursor: "pointer", position: "absolute", top: "-4px", right: "-4px", onClick: handleRemoveButtonClick, onMouseEnter: function () { return setIsHoveringRemoveButton(true); }, onMouseLeave: function () { return setIsHoveringRemoveButton(false); } },
|
|
2928
|
+
React__default["default"].createElement(Icon, { name: "closeCircle", size: isHoveringRemoveButton ? 'sm' : 'xs', color: "default" })))));
|
|
2929
|
+
if (showTooltip) {
|
|
2930
|
+
return (React__default["default"].createElement(Tooltip, { label: tooltipText || name, placement: tooltipPlacement }, avatarMarkup));
|
|
2931
|
+
}
|
|
2932
|
+
return avatarMarkup;
|
|
2933
|
+
};
|
|
2934
|
+
|
|
2935
|
+
var AvatarConfig = {
|
|
2936
|
+
baseStyle: {
|
|
2937
|
+
container: {
|
|
2938
|
+
backgroundColor: coreColors.white,
|
|
2939
|
+
borderWidth: '2px',
|
|
2940
|
+
boxShadow: "0 0 0 1px ".concat(coreColors.white),
|
|
2941
|
+
_hover: {
|
|
2942
|
+
backgroundColor: coreColors.gray[50],
|
|
2943
|
+
zIndex: 2,
|
|
2944
|
+
},
|
|
2945
|
+
_active: {
|
|
2946
|
+
backgroundColor: coreColors.gray[100],
|
|
2947
|
+
},
|
|
2948
|
+
},
|
|
2949
|
+
label: {
|
|
2950
|
+
paddingTop: '1px',
|
|
2951
|
+
},
|
|
2952
|
+
},
|
|
2953
|
+
sizes: {
|
|
2954
|
+
xs: {
|
|
2955
|
+
container: {
|
|
2956
|
+
height: '24px',
|
|
2957
|
+
width: '24px',
|
|
2958
|
+
},
|
|
2959
|
+
label: {
|
|
2960
|
+
fontSize: '12px',
|
|
2961
|
+
fontWeight: '600',
|
|
2962
|
+
lineHeight: '18px',
|
|
2963
|
+
},
|
|
2964
|
+
},
|
|
2965
|
+
sm: {
|
|
2966
|
+
container: {
|
|
2967
|
+
height: '32px',
|
|
2968
|
+
width: '32px',
|
|
2969
|
+
},
|
|
2970
|
+
label: {
|
|
2971
|
+
fontSize: '14px',
|
|
2972
|
+
fontWeight: '400',
|
|
2973
|
+
lineHeight: '24px',
|
|
2974
|
+
paddingTop: 0,
|
|
2975
|
+
},
|
|
2976
|
+
},
|
|
2977
|
+
md: {
|
|
2978
|
+
container: {
|
|
2979
|
+
height: '36px',
|
|
2980
|
+
width: '36px',
|
|
2981
|
+
},
|
|
2982
|
+
label: {
|
|
2983
|
+
fontSize: '16px',
|
|
2984
|
+
fontWeight: '400',
|
|
2985
|
+
lineHeight: '24px',
|
|
2986
|
+
},
|
|
2987
|
+
},
|
|
2988
|
+
lg: {
|
|
2989
|
+
container: {
|
|
2990
|
+
height: '40px',
|
|
2991
|
+
width: '40px',
|
|
2992
|
+
},
|
|
2993
|
+
label: {
|
|
2994
|
+
fontSize: '16px',
|
|
2995
|
+
fontWeight: '400',
|
|
2996
|
+
lineHeight: '24px',
|
|
2997
|
+
},
|
|
2998
|
+
},
|
|
2999
|
+
},
|
|
3000
|
+
variants: {
|
|
3001
|
+
red: {
|
|
3002
|
+
container: {
|
|
3003
|
+
borderColor: coreColors.red[300],
|
|
3004
|
+
},
|
|
3005
|
+
label: {
|
|
3006
|
+
color: coreColors.red[300],
|
|
3007
|
+
},
|
|
3008
|
+
},
|
|
3009
|
+
green: {
|
|
3010
|
+
container: {
|
|
3011
|
+
borderColor: coreColors.green[400],
|
|
3012
|
+
},
|
|
3013
|
+
label: {
|
|
3014
|
+
color: coreColors.green[400],
|
|
3015
|
+
},
|
|
3016
|
+
},
|
|
3017
|
+
blue: {
|
|
3018
|
+
container: {
|
|
3019
|
+
borderColor: coreColors.blue[300],
|
|
3020
|
+
},
|
|
3021
|
+
label: {
|
|
3022
|
+
color: coreColors.blue[300],
|
|
3023
|
+
},
|
|
3024
|
+
},
|
|
3025
|
+
comet: {
|
|
3026
|
+
container: {
|
|
3027
|
+
backgroundColor: coreColors.comet[50],
|
|
3028
|
+
borderColor: coreColors.comet[400],
|
|
3029
|
+
_hover: {
|
|
3030
|
+
backgroundColor: coreColors.comet[100],
|
|
3031
|
+
},
|
|
3032
|
+
_active: {
|
|
3033
|
+
backgroundColor: coreColors.comet[200],
|
|
3034
|
+
},
|
|
3035
|
+
},
|
|
3036
|
+
label: {
|
|
3037
|
+
color: coreColors.comet[800],
|
|
3038
|
+
},
|
|
3039
|
+
},
|
|
3040
|
+
number: {
|
|
3041
|
+
container: {
|
|
3042
|
+
backgroundColor: coreColors.blue[800],
|
|
3043
|
+
border: 0,
|
|
3044
|
+
_hover: {
|
|
3045
|
+
backgroundColor: coreColors.blue[800], // 700
|
|
3046
|
+
},
|
|
3047
|
+
_active: {
|
|
3048
|
+
backgroundColor: coreColors.blue[800], // 600
|
|
3049
|
+
},
|
|
3050
|
+
},
|
|
3051
|
+
label: {
|
|
3052
|
+
color: coreColors.white,
|
|
3053
|
+
},
|
|
3054
|
+
},
|
|
3055
|
+
dashed: {
|
|
3056
|
+
container: {
|
|
3057
|
+
backgroundColor: coreColors.transparent,
|
|
3058
|
+
border: '1px dashed',
|
|
3059
|
+
borderColor: semanticColors.border.dark,
|
|
3060
|
+
boxShadow: 0,
|
|
3061
|
+
_hover: {
|
|
3062
|
+
backgroundColor: coreColors.blackAlpha[100],
|
|
3063
|
+
zIndex: 0,
|
|
3064
|
+
},
|
|
3065
|
+
_active: {
|
|
3066
|
+
backgroundColor: coreColors.blackAlpha[200],
|
|
3067
|
+
},
|
|
3068
|
+
},
|
|
3069
|
+
label: {
|
|
3070
|
+
color: adaptiveColors.icon.light.subtle,
|
|
3071
|
+
},
|
|
3072
|
+
},
|
|
3073
|
+
image: {
|
|
3074
|
+
container: {
|
|
3075
|
+
border: 0,
|
|
3076
|
+
_hover: {
|
|
3077
|
+
backgroundColor: coreColors.black,
|
|
3078
|
+
img: { opacity: 0.94 },
|
|
3079
|
+
},
|
|
3080
|
+
_active: {
|
|
3081
|
+
backgroundColor: coreColors.black,
|
|
3082
|
+
img: { opacity: 0.92 },
|
|
3083
|
+
},
|
|
3084
|
+
},
|
|
3085
|
+
},
|
|
3086
|
+
},
|
|
3087
|
+
};
|
|
3088
|
+
|
|
2871
3089
|
var Button = React.forwardRef(function (props, ref) {
|
|
2872
3090
|
var components = useTheme().components;
|
|
2873
3091
|
var _a = components.Button[props.variant || 'primary'], variant = _a.variant, light = _a.light, dark = _a.dark;
|
|
@@ -3102,26 +3320,6 @@ var ButtonSizeConfig = {
|
|
|
3102
3320
|
},
|
|
3103
3321
|
};
|
|
3104
3322
|
|
|
3105
|
-
var useAdaptiveColor = function (color) { return react.useColorModeValue(color.light, color.dark); };
|
|
3106
|
-
|
|
3107
|
-
var Tooltip = function (_a) {
|
|
3108
|
-
var children = _a.children, label = _a.label, _b = _a.openDelay, openDelay = _b === void 0 ? 350 : _b, _c = _a.placement, placement = _c === void 0 ? 'top' : _c, _d = _a.titleCaseLabel, titleCaseLabel = _d === void 0 ? true : _d, rest = __rest(_a, ["children", "label", "openDelay", "placement", "titleCaseLabel"]);
|
|
3109
|
-
var components = useTheme().components;
|
|
3110
|
-
var bg = useAdaptiveColor(components.Tooltip.color);
|
|
3111
|
-
var l = titleCaseLabel ? toTitleCase(label.toLowerCase()) : label;
|
|
3112
|
-
return (React__default["default"].createElement(react.Tooltip, __assign({ hasArrow: true, arrowSize: 10, label: l, bg: bg, openDelay: openDelay, placement: placement }, rest), children));
|
|
3113
|
-
};
|
|
3114
|
-
|
|
3115
|
-
var TooltipGlobalStyle = {
|
|
3116
|
-
'[id^=tooltip]': {
|
|
3117
|
-
padding: '4px 8px 4px 8px !important',
|
|
3118
|
-
borderRadius: '4px !important',
|
|
3119
|
-
},
|
|
3120
|
-
};
|
|
3121
|
-
var TooltipConfig = {
|
|
3122
|
-
color: { light: semanticColors.background.dark, dark: semanticColors.background.light },
|
|
3123
|
-
};
|
|
3124
|
-
|
|
3125
3323
|
// @ts-ignore
|
|
3126
3324
|
var theme = react.extendTheme({
|
|
3127
3325
|
styles: {
|
|
@@ -3154,6 +3352,7 @@ var theme = react.extendTheme({
|
|
|
3154
3352
|
Drawer: DrawerConfig,
|
|
3155
3353
|
Button: __assign(__assign({}, ButtonVariantConfig), { sizes: ButtonSizeConfig }),
|
|
3156
3354
|
Tooltip: TooltipConfig,
|
|
3355
|
+
Avatar: AvatarConfig,
|
|
3157
3356
|
},
|
|
3158
3357
|
});
|
|
3159
3358
|
|
|
@@ -3211,6 +3410,8 @@ Object.defineProperty(exports, 'VStack', {
|
|
|
3211
3410
|
enumerable: true,
|
|
3212
3411
|
get: function () { return react.VStack; }
|
|
3213
3412
|
});
|
|
3413
|
+
exports.Avatar = Avatar;
|
|
3414
|
+
exports.AvatarConfig = AvatarConfig;
|
|
3214
3415
|
exports.Button = Button;
|
|
3215
3416
|
exports.ButtonSizeConfig = ButtonSizeConfig;
|
|
3216
3417
|
exports.ButtonVariantConfig = ButtonVariantConfig;
|