ferns-ui 0.39.4 → 0.39.6

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/dist/Badge.d.ts CHANGED
@@ -1,3 +1,3 @@
1
1
  import React from "react";
2
2
  import { BadgeProps } from "./Common";
3
- export declare function Badge({ title, position, type, color, }: BadgeProps): React.ReactElement;
3
+ export declare function Badge({ title, position, type, color, size, iconProps, fontColor, fontWeight, rounding, }: BadgeProps): React.ReactElement;
package/dist/Badge.js CHANGED
@@ -1,30 +1,29 @@
1
- import React, { useContext } from "react";
2
- import { Text, View } from "react-native";
3
- import { ThemeContext } from "./Theme";
4
- export function Badge({ title, position = "middle", type = "info", color, }) {
5
- const { theme } = useContext(ThemeContext);
1
+ import React from "react";
2
+ import { Box } from "./Box";
3
+ import { Icon } from "./Icon";
4
+ import { Text } from "./Text";
5
+ export function Badge({ title, position = "middle", type = "info", color, size = "xs", iconProps, fontColor = "white", fontWeight = "bold", rounding = "pill", }) {
6
6
  if (color && type !== "custom") {
7
7
  console.warn('Badge color only supported when `type` is set to "custom".');
8
8
  }
9
9
  const badgeColor = type === "custom" ? color : type;
10
- return (React.createElement(View, { style: {
11
- backgroundColor: theme[badgeColor],
12
- borderRadius: 2,
13
- height: 14,
14
- paddingTop: 2,
15
- paddingBottom: 2,
16
- paddingLeft: 4,
17
- paddingRight: 4,
18
- marginTop: -4,
19
- marginLeft: 4,
20
- display: "flex",
21
- alignSelf: position === "middle" ? "center" : "flex-start",
22
- } },
23
- React.createElement(Text, { style: {
24
- fontSize: 10,
25
- flexWrap: "nowrap",
26
- color: "white",
27
- fontWeight: "bold",
28
- } }, title)));
10
+ function renderIcon() {
11
+ if (iconProps && iconProps.name) {
12
+ return (React.createElement(Box, { marginRight: title ? 1 : 0 },
13
+ React.createElement(Icon, Object.assign({ color: (iconProps === null || iconProps === void 0 ? void 0 : iconProps.color) ? iconProps.color : fontColor }, iconProps, { size: size }))));
14
+ }
15
+ else {
16
+ return null;
17
+ }
18
+ }
19
+ function renderLabel() {
20
+ if (!title) {
21
+ return null;
22
+ }
23
+ return (React.createElement(Text, { color: fontColor, size: size, weight: fontWeight }, title));
24
+ }
25
+ return (React.createElement(Box, { alignItems: "baseline", alignSelf: position === "middle" ? "center" : position === "bottom" ? "end" : "start", color: badgeColor, direction: "row", height: "min-content", justifyContent: "center", marginLeft: 1, marginTop: position === "top" ? -1 : 0, paddingX: (typeof rounding === "number" && rounding >= 4) || rounding === "pill" ? 2 : 1, paddingY: 1, rounding: rounding, width: "max-content" },
26
+ renderIcon(),
27
+ renderLabel()));
29
28
  }
30
29
  //# sourceMappingURL=Badge.js.map
package/dist/Badge.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"Badge.js","sourceRoot":"","sources":["../src/Badge.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAC,UAAU,EAAC,MAAM,OAAO,CAAC;AACxC,OAAO,EAAC,IAAI,EAAE,IAAI,EAAC,MAAM,cAAc,CAAC;AAGxC,OAAO,EAAC,YAAY,EAAC,MAAM,SAAS,CAAC;AAErC,MAAM,UAAU,KAAK,CAAC,EACpB,KAAK,EACL,QAAQ,GAAG,QAAQ,EACnB,IAAI,GAAG,MAAM,EACb,KAAK,GACM;IACX,MAAM,EAAC,KAAK,EAAC,GAAG,UAAU,CAAC,YAAY,CAAC,CAAC;IAEzC,IAAI,KAAK,IAAI,IAAI,KAAK,QAAQ,EAAE,CAAC;QAC/B,OAAO,CAAC,IAAI,CAAC,4DAA4D,CAAC,CAAC;IAC7E,CAAC;IACD,MAAM,UAAU,GAAG,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAM,CAAC,CAAC,CAAC,IAAI,CAAC;IAErD,OAAO,CACL,oBAAC,IAAI,IACH,KAAK,EAAE;YACL,eAAe,EAAE,KAAK,CAAC,UAAU,CAAC;YAClC,YAAY,EAAE,CAAC;YACf,MAAM,EAAE,EAAE;YACV,UAAU,EAAE,CAAC;YACb,aAAa,EAAE,CAAC;YAChB,WAAW,EAAE,CAAC;YACd,YAAY,EAAE,CAAC;YACf,SAAS,EAAE,CAAC,CAAC;YACb,UAAU,EAAE,CAAC;YACb,OAAO,EAAE,MAAM;YACf,SAAS,EAAE,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,YAAY;SAC3D;QAED,oBAAC,IAAI,IACH,KAAK,EAAE;gBACL,QAAQ,EAAE,EAAE;gBACZ,QAAQ,EAAE,QAAQ;gBAClB,KAAK,EAAE,OAAO;gBACd,UAAU,EAAE,MAAM;aACnB,IAEA,KAAK,CACD,CACF,CACR,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"Badge.js","sourceRoot":"","sources":["../src/Badge.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAC,GAAG,EAAC,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAC,IAAI,EAAC,MAAM,QAAQ,CAAC;AAC5B,OAAO,EAAC,IAAI,EAAC,MAAM,QAAQ,CAAC;AAE5B,MAAM,UAAU,KAAK,CAAC,EACpB,KAAK,EACL,QAAQ,GAAG,QAAQ,EACnB,IAAI,GAAG,MAAM,EACb,KAAK,EACL,IAAI,GAAG,IAAI,EACX,SAAS,EACT,SAAS,GAAG,OAAO,EACnB,UAAU,GAAG,MAAM,EACnB,QAAQ,GAAG,MAAM,GACN;IACX,IAAI,KAAK,IAAI,IAAI,KAAK,QAAQ,EAAE,CAAC;QAC/B,OAAO,CAAC,IAAI,CAAC,4DAA4D,CAAC,CAAC;IAC7E,CAAC;IACD,MAAM,UAAU,GAAG,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAM,CAAC,CAAC,CAAC,IAAI,CAAC;IAErD,SAAS,UAAU;QACjB,IAAI,SAAS,IAAI,SAAS,CAAC,IAAI,EAAE,CAAC;YAChC,OAAO,CACL,oBAAC,GAAG,IAAC,WAAW,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBAC7B,oBAAC,IAAI,kBAAC,KAAK,EAAE,CAAA,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAE,KAAK,EAAC,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,IAAM,SAAS,IAAE,IAAI,EAAE,IAAI,IAAI,CACtF,CACP,CAAC;QACJ,CAAC;aAAM,CAAC;YACN,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IAED,SAAS,WAAW;QAClB,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,OAAO,IAAI,CAAC;QACd,CAAC;QACD,OAAO,CACL,oBAAC,IAAI,IAAC,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,UAAU,IACnD,KAAK,CACD,CACR,CAAC;IACJ,CAAC;IAED,OAAO,CACL,oBAAC,GAAG,IACF,UAAU,EAAC,UAAU,EACrB,SAAS,EAAE,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,EACrF,KAAK,EAAE,UAAU,EACjB,SAAS,EAAC,KAAK,EACf,MAAM,EAAC,aAAa,EACpB,cAAc,EAAC,QAAQ,EACvB,UAAU,EAAE,CAAC,EACb,SAAS,EAAE,QAAQ,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EACtC,QAAQ,EAAE,CAAC,OAAO,QAAQ,KAAK,QAAQ,IAAI,QAAQ,IAAI,CAAC,CAAC,IAAI,QAAQ,KAAK,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EACxF,QAAQ,EAAE,CAAC,EACX,QAAQ,EAAE,QAAQ,EAClB,KAAK,EAAC,aAAa;QAElB,UAAU,EAAE;QACZ,WAAW,EAAE,CACV,CACP,CAAC;AACJ,CAAC"}
package/dist/Banner.d.ts CHANGED
@@ -1,4 +1,4 @@
1
1
  import React from "react";
2
2
  import { BannerProps } from "./Common";
3
3
  export declare const hideBanner: (id: string) => Promise<void>;
4
- export declare const Banner: ({ id, text, subtext, color, iconName, textColor, negativeXMargin, width, shape, type, onClick, }: BannerProps) => React.ReactElement | null;
4
+ export declare const Banner: ({ id, customButtonProps, text, subtext, color, iconName, textColor, negativeXMargin, width, shape, type, onClick, }: BannerProps) => React.ReactElement | null;
package/dist/Banner.js CHANGED
@@ -1,5 +1,6 @@
1
1
  import React, { useEffect, useState } from "react";
2
2
  import { Box } from "./Box";
3
+ import { Button } from "./Button";
3
4
  import { Icon } from "./Icon";
4
5
  import { IconButton } from "./IconButton";
5
6
  import { Text } from "./Text";
@@ -11,39 +12,54 @@ export const hideBanner = (id) => {
11
12
  console.debug(`[banner] Hiding ${getKey(id)} `);
12
13
  return Unifier.storage.setItem(getKey(id), "true");
13
14
  };
14
- export const Banner = ({ id, text, subtext, color = "secondaryDark", iconName, textColor = "white", negativeXMargin = 0, width, shape, type = "dismiss", onClick, }) => {
15
- // If the banner is permanent, show it immediately.
16
- const [show, setShow] = useState(type === "permanent");
15
+ const BannerType = {
16
+ ACTION: "action",
17
+ DISMISS: "dismiss",
18
+ PERMANENT: "permanent", // deprecated in favor of default behavior
19
+ CUSTOM_BUTTON: "customButton",
20
+ };
21
+ export const Banner = ({ id, customButtonProps, text, subtext, color = "secondaryDark", iconName, textColor = "white", negativeXMargin = 0, width, shape, type, onClick, }) => {
22
+ // If the banner is not type dismiss, show it immediately.
23
+ const { ACTION, DISMISS, CUSTOM_BUTTON } = BannerType;
24
+ const [show, setShow] = useState(type !== DISMISS);
17
25
  // Load seen from async storage.
18
26
  useEffect(() => {
19
- // Always show permanent banners.
20
- if (type === "permanent") {
21
- return;
27
+ if (type === DISMISS) {
28
+ void Unifier.storage.getItem(getKey(id)).then((isSeen) => {
29
+ console.debug(`[banner] ${getKey(id)} seen? ${isSeen}`);
30
+ setShow(!isSeen);
31
+ });
22
32
  }
23
- void Unifier.storage.getItem(getKey(id)).then((isSeen) => {
24
- console.debug(`[banner] ${getKey(id)} seen? ${isSeen}`);
25
- setShow(!isSeen);
26
- });
33
+ // eslint-disable-next-line react-hooks/exhaustive-deps
27
34
  }, [id, type]);
28
35
  const dismiss = async () => {
29
- if (type === "permanent") {
36
+ if (type !== DISMISS) {
30
37
  return;
31
38
  }
32
39
  await hideBanner(id);
33
40
  setShow(false);
34
41
  };
35
42
  const renderButton = () => {
36
- if (type === "permanent") {
43
+ var _a, _b, _c;
44
+ if (type === CUSTOM_BUTTON) {
45
+ return (React.createElement(Button, Object.assign({}, customButtonProps, { color: (_a = customButtonProps === null || customButtonProps === void 0 ? void 0 : customButtonProps.color) !== null && _a !== void 0 ? _a : "primary", size: (_b = customButtonProps === null || customButtonProps === void 0 ? void 0 : customButtonProps.size) !== null && _b !== void 0 ? _b : "sm", text: (_c = customButtonProps === null || customButtonProps === void 0 ? void 0 : customButtonProps.text) !== null && _c !== void 0 ? _c : "", onClick: onClick })));
46
+ }
47
+ else if (type === ACTION) {
48
+ return (React.createElement(Box, { alignItems: "center", display: "block", justifyContent: "center", width: 40 },
49
+ React.createElement(IconButton, { accessibilityLabel: "", icon: "arrow-right", iconColor: textColor, prefix: "fas", onClick: () => onClick === null || onClick === void 0 ? void 0 : onClick() })));
50
+ }
51
+ else if (type === DISMISS) {
52
+ return (React.createElement(Box, { alignItems: "center", display: "block", justifyContent: "center", width: 40 },
53
+ React.createElement(IconButton, { accessibilityLabel: "", icon: "times-circle", iconColor: textColor, prefix: "fas", onClick: dismiss })));
54
+ }
55
+ else {
37
56
  return null;
38
57
  }
39
- return (React.createElement(Box, { alignItems: "center", display: "block", justifyContent: "center", width: 40 },
40
- type === "dismiss" && (React.createElement(IconButton, { accessibilityLabel: "", icon: "times-circle", iconColor: textColor, prefix: "fas", onClick: dismiss })),
41
- type === "action" && (React.createElement(IconButton, { accessibilityLabel: "", icon: "arrow-right", iconColor: textColor, prefix: "fas", onClick: () => onClick === null || onClick === void 0 ? void 0 : onClick() }))));
42
58
  };
43
59
  if (!show) {
44
60
  return null;
45
61
  }
46
- if (type === "action" && !onClick) {
62
+ if ((type === ACTION && !onClick) || (type === CUSTOM_BUTTON && !onClick)) {
47
63
  console.warn("Banners with type action require an onClick property.");
48
64
  }
49
65
  const negativeMargin = negativeXMargin * -4;
@@ -52,8 +68,8 @@ export const Banner = ({ id, text, subtext, color = "secondaryDark", iconName, t
52
68
  marginLeft: negativeMargin,
53
69
  marginRight: negativeMargin,
54
70
  },
55
- }, direction: "row", justifyContent: "between", paddingX: 3, paddingY: 2, rounding: shape, shadow: true, width: width || Unifier.utils.dimensions().width || "100%", onClick: type === "permanent" ? undefined : dismiss },
56
- iconName && (React.createElement(Box, { justifyContent: "center", marginRight: 2, width: 32 },
71
+ }, direction: "row", justifyContent: "between", paddingX: 3, paddingY: 2, rounding: shape, shadow: true, width: width || Unifier.utils.dimensions().width || "100%", onClick: type === DISMISS ? dismiss : undefined },
72
+ iconName && (React.createElement(Box, { justifyContent: "center", width: 32 },
57
73
  React.createElement(Icon, { color: textColor, name: iconName, size: "lg" }))),
58
74
  React.createElement(Box, { alignItems: "center", direction: "column", flex: "shrink", justifyContent: "center" },
59
75
  React.createElement(Box, { paddingY: 1 },
@@ -1 +1 @@
1
- {"version":3,"file":"Banner.js","sourceRoot":"","sources":["../src/Banner.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Banner.js","sourceRoot":"","sources":["../src/Banner.tsx"],"names":[],"mappings":"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"}
package/dist/Button.d.ts CHANGED
@@ -1,3 +1,3 @@
1
1
  import React from "react";
2
2
  import { ButtonProps } from "./Common";
3
- export declare function Button({ disabled, type, loading: propsLoading, children, text, inline, icon, iconPrefix, size, onClick, color, withConfirmation, confirmationText, confirmationHeading, shape, testID, tooltip, }: ButtonProps): React.JSX.Element;
3
+ export declare function Button({ alignSelf, disabled, type, loading: propsLoading, children, text, inline, icon, iconPrefix, size, onClick, color, withConfirmation, confirmationText, confirmationHeading, shape, testID, tooltip, }: ButtonProps): React.JSX.Element;
package/dist/Button.js CHANGED
@@ -23,11 +23,12 @@ const buttonTextColor = {
23
23
  google: "white",
24
24
  };
25
25
  const HEIGHTS = {
26
+ xs: 30,
26
27
  sm: 36,
27
28
  md: 40,
28
29
  lg: 48,
29
30
  };
30
- export function Button({ disabled = false, type = "solid", loading: propsLoading, children, text, inline = false, icon, iconPrefix, size = "md", onClick, color = "gray", withConfirmation = false, confirmationText = "Are you sure you want to continue?", confirmationHeading = "Confirm", shape = "rounded", testID, tooltip, }) {
31
+ export function Button({ alignSelf, disabled = false, type = "solid", loading: propsLoading, children, text, inline = false, icon, iconPrefix, size = "md", onClick, color = "gray", withConfirmation = false, confirmationText = "Are you sure you want to continue?", confirmationHeading = "Confirm", shape = "rounded", testID, tooltip, }) {
31
32
  const [loading, setLoading] = useState(propsLoading);
32
33
  const [showConfirmation, setShowConfirmation] = useState(false);
33
34
  const { theme } = useContext(ThemeContext);
@@ -71,7 +72,7 @@ export function Button({ disabled = false, type = "solid", loading: propsLoading
71
72
  React.createElement(Text, null, confirmationText)));
72
73
  };
73
74
  const renderButton = () => {
74
- return (React.createElement(View, null,
75
+ return (React.createElement(View, { style: { alignSelf: inline === true ? undefined : alignSelf } },
75
76
  React.createElement(Pressable, { disabled: disabled || loading, style: {
76
77
  alignSelf: inline === true ? undefined : "stretch",
77
78
  height: HEIGHTS[size || "md"],
@@ -86,7 +87,7 @@ export function Button({ disabled = false, type = "solid", loading: propsLoading
86
87
  borderWidth: type === "outline" ? 2 : 0,
87
88
  opacity: disabled ? 0.4 : 1,
88
89
  flexDirection: "row",
89
- paddingHorizontal: 8 * 2,
90
+ paddingHorizontal: size === "xs" ? 6 : size === "sm" ? 12 : 8 * 2,
90
91
  }, testID: testID, onPress: debounce(async () => {
91
92
  await Unifier.utils.haptic();
92
93
  setLoading(true);
@@ -104,10 +105,10 @@ export function Button({ disabled = false, type = "solid", loading: propsLoading
104
105
  }
105
106
  setLoading(false);
106
107
  }, 500, { leading: true }) },
107
- icon !== undefined && (React.createElement(Box, { paddingX: 2 },
108
- React.createElement(Icon, { color: getTextColor(color), name: icon, prefix: iconPrefix || "far", size: size }))),
108
+ icon !== undefined && (React.createElement(Box, { marginRight: 2 },
109
+ React.createElement(Icon, { color: getTextColor(color), name: icon, prefix: iconPrefix || "far", size: size === "xs" ? "sm" : size }))),
109
110
  Boolean(children) && children,
110
- Boolean(text) && (React.createElement(Text, { align: "center", color: getTextColor(color), font: "button", inline: inline, size: size, skipLinking: true, weight: "bold" }, text)),
111
+ Boolean(text) && (React.createElement(Text, { align: "center", color: getTextColor(color), font: "button", inline: inline, size: size === "xs" ? "sm" : size, skipLinking: true, weight: "bold" }, text)),
111
112
  Boolean(loading) && (React.createElement(Box, { marginLeft: 2 },
112
113
  React.createElement(ActivityIndicator, { color: getTextColor(color), size: "small" })))),
113
114
  Boolean(withConfirmation) && renderConfirmation()));
@@ -1 +1 @@
1
- {"version":3,"file":"Button.js","sourceRoot":"","sources":["../src/Button.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Button.js","sourceRoot":"","sources":["../src/Button.tsx"],"names":[],"mappings":"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"}
package/dist/Common.d.ts CHANGED
@@ -1,7 +1,7 @@
1
1
  import { SaveFormat } from "expo-image-manipulator";
2
2
  import React, { ReactElement, ReactNode, SyntheticEvent } from "react";
3
3
  import { ListRenderItemInfo, StyleProp, ViewStyle } from "react-native";
4
- import { DimensionValue } from "react-native/Libraries/StyleSheet/StyleSheetTypes";
4
+ import { DimensionValue, FlexStyle } from "react-native/Libraries/StyleSheet/StyleSheetTypes";
5
5
  import { Styles } from "react-native-google-places-autocomplete";
6
6
  import { SelectListOptions } from "./SelectList";
7
7
  export interface BaseProfile {
@@ -114,7 +114,7 @@ export declare const SPACING = 4;
114
114
  export type TextFieldType = "date" | "datetime" | "decimal" | "decimalRange" | "email" | "height" | "password" | "phoneNumber" | "number" | "numberRange" | "search" | "text" | "time" | "url" | "username";
115
115
  export type IconSize = "xs" | "sm" | "md" | "lg" | "xl";
116
116
  export declare const iconSizeToNumber: (size?: IconSize) => number;
117
- export type TextSize = "sm" | "md" | "lg";
117
+ export type TextSize = "xs" | "sm" | "md" | "lg";
118
118
  export type TextColor = "blue" | "darkGray" | "eggplant" | "gray" | "green" | "lightGray" | "maroon" | "midnight" | "navy" | "olive" | "orange" | "orchid" | "pine" | "purple" | "red" | "watermelon" | "white";
119
119
  export type ButtonColor = "blue" | "gray" | "red" | "white" | "primary" | "secondary" | "accent" | "tertiary";
120
120
  export type IconPrefix = "far" | "fas";
@@ -851,13 +851,19 @@ export interface AvatarProps {
851
851
  shouldShowEditIconIfNoImage?: boolean;
852
852
  }
853
853
  export interface BadgeProps {
854
- title: string;
855
- position?: "top" | "middle";
856
- type?: "info" | "error" | "warning" | "success" | "neutral" | "custom";
857
854
  color?: AllColors;
855
+ fontColor?: AllColors;
856
+ fontWeight?: TextProps["weight"];
857
+ iconProps?: IconProps;
858
+ title?: string;
859
+ position?: "bottom" | "top" | "middle";
860
+ rounding?: Rounding;
861
+ size?: "xs" | "sm" | "md" | "lg";
862
+ type?: "info" | "error" | "warning" | "success" | "neutral" | "custom";
858
863
  }
859
864
  export interface BannerProps {
860
865
  id: string;
866
+ customButtonProps?: Partial<ButtonProps>;
861
867
  color?: BoxColor;
862
868
  dismissible?: boolean;
863
869
  iconName?: IconName;
@@ -867,7 +873,7 @@ export interface BannerProps {
867
873
  subtext?: string;
868
874
  text: string;
869
875
  textColor?: TextColor;
870
- type?: "dismiss" | "action" | "permanent";
876
+ type?: "dismiss" | "action" | "permanent" | "customButton";
871
877
  width?: number | string;
872
878
  }
873
879
  export interface BodyProps {
@@ -879,12 +885,13 @@ export interface BodyProps {
879
885
  children?: ReactNode;
880
886
  }
881
887
  export interface ButtonProps {
888
+ alignSelf?: FlexStyle["alignSelf"];
882
889
  children?: React.ReactElement;
883
890
  text: string;
884
891
  color?: ButtonColor | Color;
885
892
  disabled?: boolean;
886
893
  inline?: boolean;
887
- size?: "sm" | "md" | "lg";
894
+ size?: "xs" | "sm" | "md" | "lg";
888
895
  type?: "solid" | "ghost" | "outline";
889
896
  loading?: boolean;
890
897
  onClick: any;
@@ -993,6 +1000,7 @@ export interface IconButtonProps {
993
1000
  idealDirection?: TooltipDirection;
994
1001
  };
995
1002
  indicator?: boolean;
1003
+ indicatorNumber?: number;
996
1004
  indicatorStyle?: {
997
1005
  position: IndicatorDirection;
998
1006
  color: AllColors;
@@ -1,5 +1,6 @@
1
1
  import React, { forwardRef, useContext, useState } from "react";
2
2
  import { Platform, Pressable, View } from "react-native";
3
+ import { Box } from "./Box";
3
4
  import { iconSizeToNumber } from "./Common";
4
5
  import { Icon } from "./Icon";
5
6
  import { Modal } from "./Modal";
@@ -8,7 +9,7 @@ import { ThemeContext } from "./Theme";
8
9
  import { Tooltip } from "./Tooltip";
9
10
  import { Unifier } from "./Unifier";
10
11
  // eslint-disable-next-line react/display-name
11
- export const IconButton = forwardRef(({ prefix, icon, iconColor, onClick, size, bgColor = "transparent", withConfirmation = false, confirmationText = "Are you sure you want to continue?", confirmationHeading = "Confirm", tooltip, indicator, indicatorStyle = { position: "bottomRight", color: "primary" }, testID, }, ref) => {
12
+ export const IconButton = forwardRef(({ prefix, icon, iconColor, onClick, size, bgColor = "transparent", withConfirmation = false, confirmationText = "Are you sure you want to continue?", confirmationHeading = "Confirm", tooltip, indicator, indicatorNumber, indicatorStyle = { position: "bottomRight", color: "primary" }, testID, }, ref) => {
12
13
  const { theme } = useContext(ThemeContext);
13
14
  const [showConfirmation, setShowConfirmation] = useState(false);
14
15
  const opacity = 1;
@@ -29,6 +30,31 @@ export const IconButton = forwardRef(({ prefix, icon, iconColor, onClick, size,
29
30
  topLeft: { top: "20%", left: "20%" },
30
31
  };
31
32
  const indicatorPosition = Object.assign({ position: "absolute" }, IndicatorPosition[indicatorStyle.position]);
33
+ const IndicatorNumPosition = {
34
+ bottomRight: { bottom: "18%", right: "12%" },
35
+ bottomLeft: { bottom: "10%", left: "10%" },
36
+ topRight: { top: "-5%", right: "-5%" },
37
+ topLeft: { top: "10%", left: "10%" },
38
+ };
39
+ const numberIndicatorProps = Object.assign({ position: "absolute" }, IndicatorNumPosition[indicatorStyle.position]);
40
+ function renderIndicator() {
41
+ if (indicator && indicatorNumber && indicatorNumber > 0) {
42
+ return (React.createElement(View, { style: numberIndicatorProps },
43
+ React.createElement(Box, { alignItems: "center", color: indicatorStyle.color, dangerouslySetInlineStyle: {
44
+ __style: {
45
+ padding: indicatorNumber && indicatorNumber > 9 ? 2 : 0,
46
+ },
47
+ }, justifyContent: "center", minHeight: 15, minWidth: 15, rounding: "pill" },
48
+ React.createElement(Text, { color: "white", size: "sm", weight: "bold" }, indicatorNumber))));
49
+ }
50
+ else if (indicator) {
51
+ return (React.createElement(View, { style: indicatorPosition },
52
+ React.createElement(Icon, { color: indicatorStyle.color, name: "circle", prefix: prefix || "fas", size: "sm" })));
53
+ }
54
+ else {
55
+ return null;
56
+ }
57
+ }
32
58
  const renderConfirmation = () => {
33
59
  return (React.createElement(Modal, { heading: confirmationHeading, primaryButtonOnClick: () => {
34
60
  onClick();
@@ -63,8 +89,7 @@ export const IconButton = forwardRef(({ prefix, icon, iconColor, onClick, size,
63
89
  }
64
90
  } },
65
91
  React.createElement(Icon, { color: iconColor, name: icon, prefix: prefix || "fas", size: size }),
66
- indicator && (React.createElement(View, { style: indicatorPosition },
67
- React.createElement(Icon, { color: indicatorStyle.color, name: "circle", prefix: prefix || "fas", size: "sm" })))),
92
+ renderIndicator()),
68
93
  Boolean(withConfirmation) && renderConfirmation()));
69
94
  }
70
95
  // Only add for web. This doesn't make much sense for mobile,
@@ -1 +1 @@
1
- {"version":3,"file":"IconButton.js","sourceRoot":"","sources":["../src/IconButton.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"IconButton.js","sourceRoot":"","sources":["../src/IconButton.tsx"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
1
  import { ReactElement } from "react";
2
2
  import { TapToEditProps } from "./Common";
3
3
  export declare function formatAddress(address: any, asString?: boolean): string;
4
- export declare const TapToEdit: ({ value, setValue, placeholder, title, onSave, editable, isEditing, rowBoxProps, transform, fieldComponent, withConfirmation, confirmationText, confirmationHeading, description: propsDescription, openApiModel, openApiField, showDescriptionAsTooltip, ...fieldProps }: TapToEditProps) => ReactElement;
4
+ export declare const TapToEdit: ({ value, setValue, placeholder, title, onSave, editable, isEditing, rowBoxProps, transform, fieldComponent, withConfirmation, confirmationText, confirmationHeading, description: propsDescription, showDescriptionAsTooltip, ...fieldProps }: TapToEditProps) => ReactElement;
package/dist/TapToEdit.js CHANGED
@@ -15,7 +15,7 @@ import { Box } from "./Box";
15
15
  import { Button } from "./Button";
16
16
  import { Field } from "./Field";
17
17
  import { Icon } from "./Icon";
18
- import { useOpenAPISpec } from "./OpenAPIContext";
18
+ // import {useOpenAPISpec} from "./OpenAPIContext";
19
19
  import { Text } from "./Text";
20
20
  import { Tooltip } from "./Tooltip";
21
21
  export function formatAddress(address, asString = false) {
@@ -44,15 +44,18 @@ export function formatAddress(address, asString = false) {
44
44
  }
45
45
  }
46
46
  export const TapToEdit = (_a) => {
47
- var _b, _c;
48
- var { value, setValue, placeholder, title, onSave, editable = true, isEditing = false, rowBoxProps, transform, fieldComponent, withConfirmation = false, confirmationText = "Are you sure you want to save your changes?", confirmationHeading = "Confirm", description: propsDescription, openApiModel, openApiField, showDescriptionAsTooltip = false } = _a, fieldProps = __rest(_a, ["value", "setValue", "placeholder", "title", "onSave", "editable", "isEditing", "rowBoxProps", "transform", "fieldComponent", "withConfirmation", "confirmationText", "confirmationHeading", "description", "openApiModel", "openApiField", "showDescriptionAsTooltip"]);
47
+ var _b;
48
+ var { value, setValue, placeholder, title, onSave, editable = true, isEditing = false, rowBoxProps, transform, fieldComponent, withConfirmation = false, confirmationText = "Are you sure you want to save your changes?", confirmationHeading = "Confirm", description: propsDescription,
49
+ // openApiModel,
50
+ // openApiField,
51
+ showDescriptionAsTooltip = false } = _a, fieldProps = __rest(_a, ["value", "setValue", "placeholder", "title", "onSave", "editable", "isEditing", "rowBoxProps", "transform", "fieldComponent", "withConfirmation", "confirmationText", "confirmationHeading", "description", "showDescriptionAsTooltip"]);
49
52
  const [editing, setEditing] = useState(false);
50
53
  const [initialValue] = useState(value);
51
- const { getModelField } = useOpenAPISpec();
52
- let description = propsDescription;
53
- if (!description && openApiModel && openApiField) {
54
- description = (_b = getModelField(openApiModel, openApiField)) === null || _b === void 0 ? void 0 : _b.description;
55
- }
54
+ // const {getModelField} = useOpenAPISpec();
55
+ const description = propsDescription;
56
+ // if (!description && openApiModel && openApiField) {
57
+ // description = getModelField(openApiModel, openApiField)?.description;
58
+ // }
56
59
  if (editable && !setValue) {
57
60
  throw new Error("setValue is required if editable is true");
58
61
  }
@@ -110,7 +113,7 @@ export const TapToEdit = (_a) => {
110
113
  // Show only the domain, full links are likely too long.
111
114
  try {
112
115
  const url = new URL(value);
113
- displayValue = (_c = url === null || url === void 0 ? void 0 : url.hostname) !== null && _c !== void 0 ? _c : value;
116
+ displayValue = (_b = url === null || url === void 0 ? void 0 : url.hostname) !== null && _b !== void 0 ? _b : value;
114
117
  }
115
118
  catch (e) {
116
119
  // Don't print an error message for empty values.
@@ -1 +1 @@
1
- {"version":3,"file":"TapToEdit.js","sourceRoot":"","sources":["../src/TapToEdit.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"TapToEdit.js","sourceRoot":"","sources":["../src/TapToEdit.tsx"],"names":[],"mappings":"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"}
package/dist/Text.js CHANGED
@@ -3,6 +3,7 @@ import { Text as NativeText } from "react-native";
3
3
  import { Hyperlink } from "./Hyperlink";
4
4
  import { ThemeContext } from "./Theme";
5
5
  const fontSizes = {
6
+ xs: 10,
6
7
  sm: 12,
7
8
  md: 14,
8
9
  lg: 16,
package/dist/Text.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"Text.js","sourceRoot":"","sources":["../src/Text.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Text.js","sourceRoot":"","sources":["../src/Text.tsx"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ferns-ui",
3
- "version": "0.39.4",
3
+ "version": "0.39.6",
4
4
  "main": "dist/index.js",
5
5
  "license": "Apache-2.0",
6
6
  "scripts": {
package/src/Badge.tsx CHANGED
@@ -1,48 +1,66 @@
1
- import React, {useContext} from "react";
2
- import {Text, View} from "react-native";
1
+ import React from "react";
3
2
 
3
+ import {Box} from "./Box";
4
4
  import {BadgeProps} from "./Common";
5
- import {ThemeContext} from "./Theme";
5
+ import {Icon} from "./Icon";
6
+ import {Text} from "./Text";
6
7
 
7
8
  export function Badge({
8
9
  title,
9
10
  position = "middle",
10
11
  type = "info",
11
12
  color,
13
+ size = "xs",
14
+ iconProps,
15
+ fontColor = "white",
16
+ fontWeight = "bold",
17
+ rounding = "pill",
12
18
  }: BadgeProps): React.ReactElement {
13
- const {theme} = useContext(ThemeContext);
14
-
15
19
  if (color && type !== "custom") {
16
20
  console.warn('Badge color only supported when `type` is set to "custom".');
17
21
  }
18
22
  const badgeColor = type === "custom" ? color! : type;
19
23
 
20
- return (
21
- <View
22
- style={{
23
- backgroundColor: theme[badgeColor],
24
- borderRadius: 2,
25
- height: 14,
26
- paddingTop: 2,
27
- paddingBottom: 2,
28
- paddingLeft: 4,
29
- paddingRight: 4,
30
- marginTop: -4,
31
- marginLeft: 4,
32
- display: "flex",
33
- alignSelf: position === "middle" ? "center" : "flex-start",
34
- }}
35
- >
36
- <Text
37
- style={{
38
- fontSize: 10,
39
- flexWrap: "nowrap",
40
- color: "white",
41
- fontWeight: "bold",
42
- }}
43
- >
24
+ function renderIcon(): React.ReactElement | null {
25
+ if (iconProps && iconProps.name) {
26
+ return (
27
+ <Box marginRight={title ? 1 : 0}>
28
+ <Icon color={iconProps?.color ? iconProps.color : fontColor} {...iconProps} size={size} />
29
+ </Box>
30
+ );
31
+ } else {
32
+ return null;
33
+ }
34
+ }
35
+
36
+ function renderLabel(): React.ReactElement | null {
37
+ if (!title) {
38
+ return null;
39
+ }
40
+ return (
41
+ <Text color={fontColor} size={size} weight={fontWeight}>
44
42
  {title}
45
43
  </Text>
46
- </View>
44
+ );
45
+ }
46
+
47
+ return (
48
+ <Box
49
+ alignItems="baseline"
50
+ alignSelf={position === "middle" ? "center" : position === "bottom" ? "end" : "start"}
51
+ color={badgeColor}
52
+ direction="row"
53
+ height="min-content"
54
+ justifyContent="center"
55
+ marginLeft={1}
56
+ marginTop={position === "top" ? -1 : 0}
57
+ paddingX={(typeof rounding === "number" && rounding >= 4) || rounding === "pill" ? 2 : 1}
58
+ paddingY={1}
59
+ rounding={rounding}
60
+ width="max-content"
61
+ >
62
+ {renderIcon()}
63
+ {renderLabel()}
64
+ </Box>
47
65
  );
48
66
  }
package/src/Banner.tsx CHANGED
@@ -1,6 +1,7 @@
1
1
  import React, {useEffect, useState} from "react";
2
2
 
3
3
  import {Box} from "./Box";
4
+ import {Button} from "./Button";
4
5
  import {BannerProps, ButtonColor} from "./Common";
5
6
  import {Icon} from "./Icon";
6
7
  import {IconButton} from "./IconButton";
@@ -16,8 +17,16 @@ export const hideBanner = (id: string): Promise<void> => {
16
17
  return Unifier.storage.setItem(getKey(id), "true");
17
18
  };
18
19
 
20
+ const BannerType = {
21
+ ACTION: "action",
22
+ DISMISS: "dismiss",
23
+ PERMANENT: "permanent", // deprecated in favor of default behavior
24
+ CUSTOM_BUTTON: "customButton",
25
+ };
26
+
19
27
  export const Banner = ({
20
28
  id,
29
+ customButtonProps,
21
30
  text,
22
31
  subtext,
23
32
  color = "secondaryDark",
@@ -26,27 +35,25 @@ export const Banner = ({
26
35
  negativeXMargin = 0,
27
36
  width,
28
37
  shape,
29
- type = "dismiss",
38
+ type,
30
39
  onClick,
31
40
  }: BannerProps): React.ReactElement | null => {
32
- // If the banner is permanent, show it immediately.
33
- const [show, setShow] = useState(type === "permanent");
34
-
41
+ // If the banner is not type dismiss, show it immediately.
42
+ const {ACTION, DISMISS, CUSTOM_BUTTON} = BannerType;
43
+ const [show, setShow] = useState(type !== DISMISS);
35
44
  // Load seen from async storage.
36
45
  useEffect(() => {
37
- // Always show permanent banners.
38
- if (type === "permanent") {
39
- return;
46
+ if (type === DISMISS) {
47
+ void Unifier.storage.getItem(getKey(id)).then((isSeen) => {
48
+ console.debug(`[banner] ${getKey(id)} seen? ${isSeen}`);
49
+ setShow(!isSeen);
50
+ });
40
51
  }
41
-
42
- void Unifier.storage.getItem(getKey(id)).then((isSeen) => {
43
- console.debug(`[banner] ${getKey(id)} seen? ${isSeen}`);
44
- setShow(!isSeen);
45
- });
52
+ // eslint-disable-next-line react-hooks/exhaustive-deps
46
53
  }, [id, type]);
47
54
 
48
55
  const dismiss = async (): Promise<void> => {
49
- if (type === "permanent") {
56
+ if (type !== DISMISS) {
50
57
  return;
51
58
  }
52
59
  await hideBanner(id);
@@ -54,38 +61,50 @@ export const Banner = ({
54
61
  };
55
62
 
56
63
  const renderButton = (): React.ReactElement | null => {
57
- if (type === "permanent") {
58
- return null;
59
- }
60
- return (
61
- <Box alignItems="center" display="block" justifyContent="center" width={40}>
62
- {type === "dismiss" && (
64
+ if (type === CUSTOM_BUTTON) {
65
+ return (
66
+ <Button
67
+ {...customButtonProps}
68
+ color={customButtonProps?.color ?? "primary"}
69
+ size={customButtonProps?.size ?? "sm"}
70
+ text={customButtonProps?.text ?? ""}
71
+ onClick={onClick}
72
+ />
73
+ );
74
+ } else if (type === ACTION) {
75
+ return (
76
+ <Box alignItems="center" display="block" justifyContent="center" width={40}>
63
77
  <IconButton
64
78
  accessibilityLabel=""
65
- icon="times-circle"
79
+ icon="arrow-right"
66
80
  iconColor={textColor as ButtonColor}
67
81
  prefix="fas"
68
- onClick={dismiss}
82
+ onClick={(): void => onClick?.()}
69
83
  />
70
- )}
71
- {type === "action" && (
84
+ </Box>
85
+ );
86
+ } else if (type === DISMISS) {
87
+ return (
88
+ <Box alignItems="center" display="block" justifyContent="center" width={40}>
72
89
  <IconButton
73
90
  accessibilityLabel=""
74
- icon="arrow-right"
91
+ icon="times-circle"
75
92
  iconColor={textColor as ButtonColor}
76
93
  prefix="fas"
77
- onClick={(): void => onClick?.()}
94
+ onClick={dismiss}
78
95
  />
79
- )}
80
- </Box>
81
- );
96
+ </Box>
97
+ );
98
+ } else {
99
+ return null;
100
+ }
82
101
  };
83
102
 
84
103
  if (!show) {
85
104
  return null;
86
105
  }
87
106
 
88
- if (type === "action" && !onClick) {
107
+ if ((type === ACTION && !onClick) || (type === CUSTOM_BUTTON && !onClick)) {
89
108
  console.warn("Banners with type action require an onClick property.");
90
109
  }
91
110
 
@@ -107,10 +126,10 @@ export const Banner = ({
107
126
  rounding={shape}
108
127
  shadow
109
128
  width={width || Unifier.utils.dimensions().width || "100%"}
110
- onClick={type === "permanent" ? undefined : dismiss}
129
+ onClick={type === DISMISS ? dismiss : undefined}
111
130
  >
112
131
  {iconName && (
113
- <Box justifyContent="center" marginRight={2} width={32}>
132
+ <Box justifyContent="center" width={32}>
114
133
  <Icon color={textColor} name={iconName} size="lg" />
115
134
  </Box>
116
135
  )}
package/src/Button.tsx CHANGED
@@ -27,12 +27,14 @@ const buttonTextColor: {[buttonColor: string]: "white" | "darkGray"} = {
27
27
  };
28
28
 
29
29
  const HEIGHTS = {
30
+ xs: 30,
30
31
  sm: 36,
31
32
  md: 40,
32
33
  lg: 48,
33
34
  };
34
35
 
35
36
  export function Button({
37
+ alignSelf,
36
38
  disabled = false,
37
39
  type = "solid",
38
40
  loading: propsLoading,
@@ -109,7 +111,7 @@ export function Button({
109
111
 
110
112
  const renderButton = () => {
111
113
  return (
112
- <View>
114
+ <View style={{alignSelf: inline === true ? undefined : alignSelf}}>
113
115
  <Pressable
114
116
  disabled={disabled || loading}
115
117
  style={{
@@ -126,7 +128,7 @@ export function Button({
126
128
  borderWidth: type === "outline" ? 2 : 0,
127
129
  opacity: disabled ? 0.4 : 1,
128
130
  flexDirection: "row",
129
- paddingHorizontal: 8 * 2,
131
+ paddingHorizontal: size === "xs" ? 6 : size === "sm" ? 12 : 8 * 2,
130
132
  }}
131
133
  testID={testID}
132
134
  onPress={debounce(
@@ -150,12 +152,12 @@ export function Button({
150
152
  )}
151
153
  >
152
154
  {icon !== undefined && (
153
- <Box paddingX={2}>
155
+ <Box marginRight={2}>
154
156
  <Icon
155
157
  color={getTextColor(color as Color)}
156
158
  name={icon}
157
159
  prefix={iconPrefix || "far"}
158
- size={size}
160
+ size={size === "xs" ? "sm" : size}
159
161
  />
160
162
  </Box>
161
163
  )}
@@ -166,7 +168,7 @@ export function Button({
166
168
  color={getTextColor(color as Color)}
167
169
  font="button"
168
170
  inline={inline}
169
- size={size}
171
+ size={size === "xs" ? "sm" : size}
170
172
  skipLinking
171
173
  weight="bold"
172
174
  >
package/src/Common.ts CHANGED
@@ -1,7 +1,7 @@
1
1
  import {SaveFormat} from "expo-image-manipulator";
2
2
  import React, {ReactElement, ReactNode, SyntheticEvent} from "react";
3
3
  import {ListRenderItemInfo, StyleProp, ViewStyle} from "react-native";
4
- import {DimensionValue} from "react-native/Libraries/StyleSheet/StyleSheetTypes";
4
+ import {DimensionValue, FlexStyle} from "react-native/Libraries/StyleSheet/StyleSheetTypes";
5
5
  import {Styles} from "react-native-google-places-autocomplete";
6
6
 
7
7
  import {SelectListOptions} from "./SelectList";
@@ -1706,7 +1706,7 @@ export const iconSizeToNumber = (size?: IconSize) => {
1706
1706
  }[size || "md"];
1707
1707
  };
1708
1708
 
1709
- export type TextSize = "sm" | "md" | "lg";
1709
+ export type TextSize = "xs" | "sm" | "md" | "lg";
1710
1710
  export type TextColor =
1711
1711
  | "blue"
1712
1712
  | "darkGray"
@@ -2585,19 +2585,25 @@ export interface AvatarProps {
2585
2585
  }
2586
2586
 
2587
2587
  export interface BadgeProps {
2588
+ // If `type` is set to "custom", a custom theme color should be provided.
2589
+ color?: AllColors;
2590
+ fontColor?: AllColors; // default "white"
2591
+ fontWeight?: TextProps["weight"]; // default "bold"
2592
+ iconProps?: IconProps;
2588
2593
  // The text to display inside the badge.
2589
- title: string;
2594
+ title?: string;
2590
2595
  // Position relative to the text. Top should only be used with headings.
2591
- position?: "top" | "middle"; // default "middle"
2596
+ position?: "bottom" | "top" | "middle"; // default "middle"
2597
+ rounding?: Rounding;
2598
+ size?: "xs" | "sm" | "md" | "lg"; // default "xs'
2592
2599
  // Some default badge types. Occasionally, a custom badge might be required for different color
2593
2600
  // schemes.
2594
2601
  type?: "info" | "error" | "warning" | "success" | "neutral" | "custom"; // default "info
2595
- // If `type` is set to "custom", a custom theme color should be provided.
2596
- color?: AllColors;
2597
2602
  }
2598
2603
 
2599
2604
  export interface BannerProps {
2600
2605
  id: string;
2606
+ customButtonProps?: Partial<ButtonProps>;
2601
2607
  color?: BoxColor;
2602
2608
  dismissible?: boolean;
2603
2609
  iconName?: IconName;
@@ -2607,7 +2613,7 @@ export interface BannerProps {
2607
2613
  subtext?: string;
2608
2614
  text: string;
2609
2615
  textColor?: TextColor;
2610
- type?: "dismiss" | "action" | "permanent";
2616
+ type?: "dismiss" | "action" | "permanent" /* deprectiated */ | "customButton";
2611
2617
  width?: number | string;
2612
2618
  }
2613
2619
 
@@ -2621,6 +2627,7 @@ export interface BodyProps {
2621
2627
  }
2622
2628
 
2623
2629
  export interface ButtonProps {
2630
+ alignSelf?: FlexStyle["alignSelf"];
2624
2631
  children?: React.ReactElement;
2625
2632
  text: string;
2626
2633
  // TODO make this work for all colors
@@ -2628,7 +2635,7 @@ export interface ButtonProps {
2628
2635
  // default gray
2629
2636
  disabled?: boolean; // default false
2630
2637
  inline?: boolean; // default false
2631
- size?: "sm" | "md" | "lg"; // default md
2638
+ size?: "xs" | "sm" | "md" | "lg"; // default md
2632
2639
  type?: "solid" | "ghost" | "outline"; // default solid
2633
2640
  loading?: boolean;
2634
2641
  onClick: any;
@@ -2769,6 +2776,7 @@ export interface IconButtonProps {
2769
2776
  idealDirection?: TooltipDirection;
2770
2777
  };
2771
2778
  indicator?: boolean;
2779
+ indicatorNumber?: number;
2772
2780
  indicatorStyle?: {position: IndicatorDirection; color: AllColors};
2773
2781
  testID?: string;
2774
2782
  }
@@ -1,6 +1,7 @@
1
1
  import React, {forwardRef, useContext, useState} from "react";
2
2
  import {Platform, Pressable, View, ViewStyle} from "react-native";
3
3
 
4
+ import {Box} from "./Box";
4
5
  import {IconButtonProps, iconSizeToNumber} from "./Common";
5
6
  import {Icon} from "./Icon";
6
7
  import {Modal} from "./Modal";
@@ -24,6 +25,7 @@ export const IconButton = forwardRef(
24
25
  confirmationHeading = "Confirm",
25
26
  tooltip,
26
27
  indicator,
28
+ indicatorNumber,
27
29
  indicatorStyle = {position: "bottomRight", color: "primary"},
28
30
  testID,
29
31
  }: IconButtonProps,
@@ -51,6 +53,52 @@ export const IconButton = forwardRef(
51
53
 
52
54
  const indicatorPosition = {position: "absolute", ...IndicatorPosition[indicatorStyle.position]};
53
55
 
56
+ const IndicatorNumPosition = {
57
+ bottomRight: {bottom: "18%", right: "12%"},
58
+ bottomLeft: {bottom: "10%", left: "10%"},
59
+ topRight: {top: "-5%", right: "-5%"},
60
+ topLeft: {top: "10%", left: "10%"},
61
+ };
62
+
63
+ const numberIndicatorProps = {
64
+ position: "absolute",
65
+ ...IndicatorNumPosition[indicatorStyle.position],
66
+ };
67
+
68
+ function renderIndicator(): React.ReactElement | null {
69
+ if (indicator && indicatorNumber && indicatorNumber > 0) {
70
+ return (
71
+ <View style={numberIndicatorProps as ViewStyle}>
72
+ <Box
73
+ alignItems="center"
74
+ color={indicatorStyle.color}
75
+ dangerouslySetInlineStyle={{
76
+ __style: {
77
+ padding: indicatorNumber && indicatorNumber > 9 ? 2 : 0,
78
+ },
79
+ }}
80
+ justifyContent="center"
81
+ minHeight={15}
82
+ minWidth={15}
83
+ rounding="pill"
84
+ >
85
+ <Text color="white" size="sm" weight="bold">
86
+ {indicatorNumber}
87
+ </Text>
88
+ </Box>
89
+ </View>
90
+ );
91
+ } else if (indicator) {
92
+ return (
93
+ <View style={indicatorPosition as ViewStyle}>
94
+ <Icon color={indicatorStyle.color} name="circle" prefix={prefix || "fas"} size="sm" />
95
+ </View>
96
+ );
97
+ } else {
98
+ return null;
99
+ }
100
+ }
101
+
54
102
  const renderConfirmation = () => {
55
103
  return (
56
104
  <Modal
@@ -104,16 +152,7 @@ export const IconButton = forwardRef(
104
152
  }}
105
153
  >
106
154
  <Icon color={iconColor} name={icon} prefix={prefix || "fas"} size={size} />
107
- {indicator && (
108
- <View style={indicatorPosition as ViewStyle}>
109
- <Icon
110
- color={indicatorStyle.color}
111
- name="circle"
112
- prefix={prefix || "fas"}
113
- size="sm"
114
- />
115
- </View>
116
- )}
155
+ {renderIndicator()}
117
156
  </Pressable>
118
157
 
119
158
  {Boolean(withConfirmation) && renderConfirmation()}
package/src/TapToEdit.tsx CHANGED
@@ -6,7 +6,7 @@ import {Button} from "./Button";
6
6
  import {TapToEditProps} from "./Common";
7
7
  import {Field} from "./Field";
8
8
  import {Icon} from "./Icon";
9
- import {useOpenAPISpec} from "./OpenAPIContext";
9
+ // import {useOpenAPISpec} from "./OpenAPIContext";
10
10
  import {Text} from "./Text";
11
11
  import {Tooltip} from "./Tooltip";
12
12
 
@@ -63,19 +63,19 @@ export const TapToEdit = ({
63
63
  confirmationText = "Are you sure you want to save your changes?",
64
64
  confirmationHeading = "Confirm",
65
65
  description: propsDescription,
66
- openApiModel,
67
- openApiField,
66
+ // openApiModel,
67
+ // openApiField,
68
68
  showDescriptionAsTooltip = false,
69
69
  ...fieldProps
70
70
  }: TapToEditProps): ReactElement => {
71
71
  const [editing, setEditing] = useState(false);
72
72
  const [initialValue] = useState(value);
73
- const {getModelField} = useOpenAPISpec();
73
+ // const {getModelField} = useOpenAPISpec();
74
74
 
75
- let description: string | undefined = propsDescription;
76
- if (!description && openApiModel && openApiField) {
77
- description = getModelField(openApiModel, openApiField)?.description;
78
- }
75
+ const description: string | undefined = propsDescription;
76
+ // if (!description && openApiModel && openApiField) {
77
+ // description = getModelField(openApiModel, openApiField)?.description;
78
+ // }
79
79
 
80
80
  if (editable && !setValue) {
81
81
  throw new Error("setValue is required if editable is true");
package/src/Text.tsx CHANGED
@@ -6,6 +6,7 @@ import {Hyperlink} from "./Hyperlink";
6
6
  import {ThemeContext} from "./Theme";
7
7
 
8
8
  const fontSizes = {
9
+ xs: 10,
9
10
  sm: 12,
10
11
  md: 14,
11
12
  lg: 16,