ferns-ui 1.0.0-beta.0 → 1.0.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/dist/Accordion.js +15 -8
- package/dist/Accordion.js.map +1 -1
- package/dist/Badge.d.ts +1 -1
- package/dist/Badge.js +10 -5
- package/dist/Badge.js.map +1 -1
- package/dist/Button.js +3 -3
- package/dist/Common.d.ts +60 -9
- package/dist/Common.js.map +1 -1
- package/dist/IconButton.js +3 -3
- package/dist/Modal.js +5 -5
- package/dist/SegmentedControl.js +3 -2
- package/dist/SegmentedControl.js.map +1 -1
- package/dist/TapToEdit.d.ts +1 -1
- package/dist/TapToEdit.js +43 -39
- package/dist/TapToEdit.js.map +1 -1
- package/dist/Tooltip.js +26 -29
- package/dist/Tooltip.js.map +1 -1
- package/package.json +1 -1
- package/src/Accordion.tsx +28 -20
- package/src/Badge.tsx +18 -8
- package/src/Button.tsx +4 -4
- package/src/Common.ts +73 -15
- package/src/IconButton.tsx +4 -4
- package/src/Modal.tsx +8 -8
- package/src/SegmentedControl.tsx +3 -2
- package/src/TapToEdit.tsx +71 -79
- package/src/Tooltip.tsx +52 -58
package/dist/Accordion.js
CHANGED
|
@@ -1,15 +1,20 @@
|
|
|
1
1
|
import FontAwesome6 from "@expo/vector-icons/FontAwesome6";
|
|
2
|
-
import React, { useState } from "react";
|
|
2
|
+
import React, { useEffect, useState } from "react";
|
|
3
3
|
import { Pressable, View } from "react-native";
|
|
4
4
|
import { Heading } from "./Heading";
|
|
5
5
|
import { Modal } from "./Modal";
|
|
6
|
+
import { Text } from "./Text";
|
|
6
7
|
import { useTheme } from "./Theme";
|
|
7
|
-
export const Accordion = ({ children, isCollapsed = false, title, includeInfoModal = false, infoModalChildren,
|
|
8
|
+
export const Accordion = ({ children, isCollapsed = false, title, subtitle, includeInfoModal = false, infoModalChildren, infoModalSubtitle, infoModalText, infoModalTitle, }) => {
|
|
8
9
|
const { theme } = useTheme();
|
|
9
|
-
const [collapsed, setCollapsed] = useState(
|
|
10
|
+
const [collapsed, setCollapsed] = useState(false);
|
|
10
11
|
const [infoModalVisibleState, setInfoModalVisibleState] = useState(false);
|
|
12
|
+
// The external collapse state should override the internal collapse state.
|
|
13
|
+
useEffect(() => {
|
|
14
|
+
setCollapsed(isCollapsed);
|
|
15
|
+
}, [isCollapsed]);
|
|
11
16
|
return (React.createElement(React.Fragment, null,
|
|
12
|
-
React.createElement(Modal, { primaryButtonOnClick: () => setInfoModalVisibleState(false), primaryButtonText: "Close", size: "md",
|
|
17
|
+
React.createElement(Modal, { primaryButtonOnClick: () => setInfoModalVisibleState(false), primaryButtonText: "Close", size: "md", subtitle: infoModalSubtitle, text: infoModalText, title: infoModalTitle, visible: infoModalVisibleState, onDismiss: () => setInfoModalVisibleState(false) }, infoModalChildren),
|
|
13
18
|
React.createElement(View, { style: {
|
|
14
19
|
padding: 16,
|
|
15
20
|
borderBottomColor: theme.border.default,
|
|
@@ -19,10 +24,12 @@ export const Accordion = ({ children, isCollapsed = false, title, includeInfoMod
|
|
|
19
24
|
width: "100%",
|
|
20
25
|
} },
|
|
21
26
|
React.createElement(View, { style: { flexDirection: "row", justifyContent: "space-between", alignItems: "center" } },
|
|
22
|
-
React.createElement(View, { style: { flexDirection: "
|
|
23
|
-
React.createElement(
|
|
24
|
-
|
|
25
|
-
React.createElement(
|
|
27
|
+
React.createElement(View, { style: { flexDirection: "column", gap: 4 } },
|
|
28
|
+
React.createElement(View, { style: { flexDirection: "row", alignItems: "center" } },
|
|
29
|
+
React.createElement(Heading, null, title),
|
|
30
|
+
includeInfoModal && infoModalTitle && (React.createElement(Pressable, { accessibilityRole: "button", hitSlop: { top: 10, bottom: 10, left: 10, right: 10 }, style: { marginLeft: 8 }, onPress: () => setInfoModalVisibleState(true) },
|
|
31
|
+
React.createElement(Heading, { color: "secondaryLight", size: "sm" }, "\u24D8")))),
|
|
32
|
+
subtitle && React.createElement(Text, null, subtitle)),
|
|
26
33
|
React.createElement(View, null,
|
|
27
34
|
React.createElement(Pressable, { accessibilityRole: "button", hitSlop: { top: 20, bottom: 20, left: 20, right: 20 }, onPress: () => setCollapsed(!collapsed) },
|
|
28
35
|
React.createElement(FontAwesome6, { color: theme.text.link, name: collapsed ? "chevron-down" : "chevron-up", size: 16 })))),
|
package/dist/Accordion.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Accordion.js","sourceRoot":"","sources":["../src/Accordion.tsx"],"names":[],"mappings":"AAAA,OAAO,YAAY,MAAM,iCAAiC,CAAC;AAC3D,OAAO,KAAK,EAAE,EAAK,QAAQ,EAAC,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"Accordion.js","sourceRoot":"","sources":["../src/Accordion.tsx"],"names":[],"mappings":"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"}
|
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 const Badge: ({ value, iconName, status, secondary, variant, maxValue, }: BadgeProps) => React.ReactElement;
|
|
3
|
+
export declare const Badge: ({ value, iconName, status, secondary, variant, maxValue, customBackgroundColor, customTextColor, customBorderColor, customIconColor, customIconName, }: BadgeProps) => React.ReactElement;
|
package/dist/Badge.js
CHANGED
|
@@ -2,7 +2,7 @@ import React from "react";
|
|
|
2
2
|
import { Text, View } from "react-native";
|
|
3
3
|
import { Icon } from "./Icon";
|
|
4
4
|
import { useTheme } from "./Theme";
|
|
5
|
-
export const Badge = ({ value, iconName, status = "info", secondary = false, variant, maxValue = 100, }) => {
|
|
5
|
+
export const Badge = ({ value, iconName, status = "info", secondary = false, variant, maxValue = 100, customBackgroundColor, customTextColor, customBorderColor, customIconColor, customIconName, }) => {
|
|
6
6
|
const { theme } = useTheme();
|
|
7
7
|
const isIconOnly = variant === "iconOnly";
|
|
8
8
|
let badgeColor = "inverted";
|
|
@@ -13,6 +13,7 @@ export const Badge = ({ value, iconName, status = "info", secondary = false, var
|
|
|
13
13
|
info: "#8FC1D2",
|
|
14
14
|
success: "#7FD898",
|
|
15
15
|
neutral: "#AAAAAA",
|
|
16
|
+
custom: "#AAAAAA",
|
|
16
17
|
};
|
|
17
18
|
if (secondary) {
|
|
18
19
|
if (status === "error") {
|
|
@@ -47,6 +48,10 @@ export const Badge = ({ value, iconName, status = "info", secondary = false, var
|
|
|
47
48
|
else if (status === "neutral") {
|
|
48
49
|
badgeBgColor = secondary ? "neutralLight" : "neutralDark";
|
|
49
50
|
}
|
|
51
|
+
const backgroundColor = status === "custom" ? customBackgroundColor : theme.surface[badgeBgColor];
|
|
52
|
+
const borderColor = status === "custom" ? customBorderColor : secondaryBorderColors[status];
|
|
53
|
+
const textColor = status === "custom" ? customTextColor : theme.text[badgeColor];
|
|
54
|
+
const iconColor = status === "custom" ? customIconColor : badgeColor;
|
|
50
55
|
let badgeBorderRadius = theme.radius.default;
|
|
51
56
|
if (isIconOnly) {
|
|
52
57
|
badgeBorderRadius = theme.radius.full;
|
|
@@ -80,17 +85,17 @@ export const Badge = ({ value, iconName, status = "info", secondary = false, var
|
|
|
80
85
|
paddingHorizontal: variant === "iconOnly" ? theme.spacing.xs : theme.spacing.sm,
|
|
81
86
|
flexDirection: "row",
|
|
82
87
|
borderRadius: badgeBorderRadius,
|
|
83
|
-
backgroundColor
|
|
88
|
+
backgroundColor,
|
|
84
89
|
height: variant === "iconOnly" ? 16 : "auto",
|
|
85
90
|
width: variant === "iconOnly" ? 16 : "auto",
|
|
86
91
|
},
|
|
87
92
|
isIconOnly && { height: 16, width: 16 },
|
|
88
|
-
secondary && { borderWidth: 1, borderColor
|
|
93
|
+
secondary && { borderWidth: 1, borderColor },
|
|
89
94
|
] },
|
|
90
95
|
Boolean(variant !== "numberOnly" && iconName) && (React.createElement(View, { style: { marginRight: variant === "iconOnly" ? 0 : theme.spacing.sm } },
|
|
91
|
-
React.createElement(Icon, { color:
|
|
96
|
+
React.createElement(Icon, { color: iconColor, iconName: customIconName !== null && customIconName !== void 0 ? customIconName : iconName, size: "xs" }))),
|
|
92
97
|
Boolean(variant !== "iconOnly") && (React.createElement(Text, { style: {
|
|
93
|
-
color:
|
|
98
|
+
color: textColor,
|
|
94
99
|
fontSize: 10,
|
|
95
100
|
fontWeight: "700",
|
|
96
101
|
fontFamily: "text",
|
package/dist/Badge.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Badge.js","sourceRoot":"","sources":["../src/Badge.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAC,IAAI,EAAE,IAAI,EAAC,MAAM,cAAc,CAAC;AAGxC,OAAO,EAAC,IAAI,EAAC,MAAM,QAAQ,CAAC;AAC5B,OAAO,EAAC,QAAQ,EAAC,MAAM,SAAS,CAAC;AAEjC,MAAM,CAAC,MAAM,KAAK,GAAG,CAAC,EACpB,KAAK,EACL,QAAQ,EACR,MAAM,GAAG,MAAM,EACf,SAAS,GAAG,KAAK,EACjB,OAAO,EACP,QAAQ,GAAG,GAAG,GACH,EAAsB,EAAE;IACnC,MAAM,EAAC,KAAK,EAAC,GAAG,QAAQ,EAAE,CAAC;IAC3B,MAAM,UAAU,GAAG,OAAO,KAAK,UAAU,CAAC;IAE1C,IAAI,UAAU,GAAoB,UAAU,CAAC;IAE7C,sBAAsB;IACtB,MAAM,qBAAqB,GAAG;QAC5B,KAAK,EAAE,SAAS;QAChB,OAAO,EAAE,SAAS;QAClB,IAAI,EAAE,SAAS;QACf,OAAO,EAAE,SAAS;QAClB,OAAO,EAAE,SAAS;
|
|
1
|
+
{"version":3,"file":"Badge.js","sourceRoot":"","sources":["../src/Badge.tsx"],"names":[],"mappings":"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"}
|
package/dist/Button.js
CHANGED
|
@@ -9,8 +9,8 @@ import { useTheme } from "./Theme";
|
|
|
9
9
|
import { Tooltip } from "./Tooltip";
|
|
10
10
|
import { Unifier } from "./Unifier";
|
|
11
11
|
import { isNative } from "./Utilities";
|
|
12
|
-
const ConfirmationModal = ({ visible, title,
|
|
13
|
-
return (React.createElement(Modal, { primaryButtonOnClick: onConfirm, primaryButtonText: "Confirm", secondaryButtonOnClick: onCancel, secondaryButtonText: "Cancel",
|
|
12
|
+
const ConfirmationModal = ({ visible, title, subtitle, text, onConfirm, onCancel }) => {
|
|
13
|
+
return (React.createElement(Modal, { primaryButtonOnClick: onConfirm, primaryButtonText: "Confirm", secondaryButtonOnClick: onCancel, secondaryButtonText: "Cancel", subtitle: subtitle, title: title, visible: visible, onDismiss: onCancel },
|
|
14
14
|
React.createElement(Text, null, text)));
|
|
15
15
|
};
|
|
16
16
|
const ButtonComponent = ({ confirmationText = "Are you sure you want to continue?", disabled = false, fullWidth = false, iconName, iconPosition = "left", loading: propsLoading, modalTitle = "Confirm", modalSubTitle, testID, text, variant = "primary", withConfirmation = false, onClick, }) => {
|
|
@@ -83,7 +83,7 @@ const ButtonComponent = ({ confirmationText = "Are you sure you want to continue
|
|
|
83
83
|
React.createElement(Text, { style: { color, fontWeight: "700", fontSize: 16 } }, text)),
|
|
84
84
|
Boolean(loading) && (React.createElement(Box, { marginLeft: 2 },
|
|
85
85
|
React.createElement(ActivityIndicator, { color: color, size: "small" })))),
|
|
86
|
-
withConfirmation && (React.createElement(ConfirmationModal, {
|
|
86
|
+
withConfirmation && (React.createElement(ConfirmationModal, { subtitle: modalSubTitle, text: confirmationText, title: modalTitle, visible: showConfirmation, onCancel: () => setShowConfirmation(false), onConfirm: async () => {
|
|
87
87
|
await onClick();
|
|
88
88
|
setShowConfirmation(false);
|
|
89
89
|
} }))));
|
package/dist/Common.d.ts
CHANGED
|
@@ -22,7 +22,7 @@ export interface AccordionProps {
|
|
|
22
22
|
/**
|
|
23
23
|
* The subtitle of the information modal.
|
|
24
24
|
*/
|
|
25
|
-
|
|
25
|
+
infoModalSubtitle?: ModalProps["subtitle"];
|
|
26
26
|
/**
|
|
27
27
|
* The text content of the information modal.
|
|
28
28
|
*/
|
|
@@ -36,6 +36,7 @@ export interface AccordionProps {
|
|
|
36
36
|
* @default true
|
|
37
37
|
*/
|
|
38
38
|
isCollapsed?: boolean;
|
|
39
|
+
subtitle?: string;
|
|
39
40
|
/**
|
|
40
41
|
* The title of the accordion.
|
|
41
42
|
*/
|
|
@@ -1040,6 +1041,26 @@ export interface AvatarProps {
|
|
|
1040
1041
|
accessibilityLabel?: string;
|
|
1041
1042
|
}
|
|
1042
1043
|
export interface BadgeProps {
|
|
1044
|
+
/**
|
|
1045
|
+
* When status is "custom", determines the badge's background color.
|
|
1046
|
+
*/
|
|
1047
|
+
customBackgroundColor?: string;
|
|
1048
|
+
/**
|
|
1049
|
+
* When status is "custom", determines the badge's border color.
|
|
1050
|
+
*/
|
|
1051
|
+
customBorderColor?: string;
|
|
1052
|
+
/**
|
|
1053
|
+
* When status is "custom", determines the badge's icon color
|
|
1054
|
+
*/
|
|
1055
|
+
customIconColor?: IconColor;
|
|
1056
|
+
/**
|
|
1057
|
+
* When status is "custom", determines the badge's icon
|
|
1058
|
+
*/
|
|
1059
|
+
customIconName?: IconName;
|
|
1060
|
+
/**
|
|
1061
|
+
* When status is "custom", determines the badge's text color.
|
|
1062
|
+
*/
|
|
1063
|
+
customTextColor?: string;
|
|
1043
1064
|
/**
|
|
1044
1065
|
* The name of the icon to display in the badge.
|
|
1045
1066
|
*/
|
|
@@ -1058,7 +1079,7 @@ export interface BadgeProps {
|
|
|
1058
1079
|
* The status of the badge. Determines its color and appearance.
|
|
1059
1080
|
* @default "info"
|
|
1060
1081
|
*/
|
|
1061
|
-
status?: "info" | "error" | "warning" | "success" | "neutral";
|
|
1082
|
+
status?: "info" | "error" | "warning" | "success" | "neutral" | "custom";
|
|
1062
1083
|
/**
|
|
1063
1084
|
* The text or number to display inside the badge.
|
|
1064
1085
|
*/
|
|
@@ -1414,7 +1435,7 @@ export interface ModalProps {
|
|
|
1414
1435
|
/**
|
|
1415
1436
|
* The subtitle of the modal.
|
|
1416
1437
|
*/
|
|
1417
|
-
|
|
1438
|
+
subtitle?: string;
|
|
1418
1439
|
/**
|
|
1419
1440
|
* The text content of the modal.
|
|
1420
1441
|
*/
|
|
@@ -1730,19 +1751,49 @@ export type TapToEditProps = (BaseTapToEditProps & Omit<TextFieldProps, "onChang
|
|
|
1730
1751
|
export interface BaseTapToEditProps extends Omit<FieldProps, "onChange" | "value"> {
|
|
1731
1752
|
title: string;
|
|
1732
1753
|
value: any;
|
|
1754
|
+
/**
|
|
1755
|
+
* Not required if not editable.
|
|
1756
|
+
*/
|
|
1733
1757
|
setValue?: (value: any) => void;
|
|
1758
|
+
/**
|
|
1759
|
+
* Not required if not editable.
|
|
1760
|
+
*/
|
|
1734
1761
|
onSave?: (value: any) => void | Promise<void>;
|
|
1762
|
+
/**
|
|
1763
|
+
* If false, the field will not be editable and will be disabled
|
|
1764
|
+
* @default true
|
|
1765
|
+
*/
|
|
1735
1766
|
editable?: boolean;
|
|
1767
|
+
/**
|
|
1768
|
+
* Enable edit mode from outside the component.
|
|
1769
|
+
*/
|
|
1736
1770
|
isEditing?: boolean;
|
|
1737
|
-
rowBoxProps?: Partial<BoxProps>;
|
|
1738
1771
|
transform?: (value: any) => string;
|
|
1739
|
-
|
|
1772
|
+
/**
|
|
1773
|
+
* Show a confirmation modal before saving the value.
|
|
1774
|
+
* @default false
|
|
1775
|
+
*/
|
|
1740
1776
|
withConfirmation?: boolean;
|
|
1777
|
+
/**
|
|
1778
|
+
* The text content of the confirmation modal.
|
|
1779
|
+
* @default "Are you sure you want save your changes?"
|
|
1780
|
+
*/
|
|
1741
1781
|
confirmationText?: string;
|
|
1742
|
-
|
|
1743
|
-
|
|
1744
|
-
|
|
1745
|
-
|
|
1782
|
+
/**
|
|
1783
|
+
* The title of the confirmation modal.
|
|
1784
|
+
* @default "Confirm"
|
|
1785
|
+
*/
|
|
1786
|
+
confirmationTitle?: string;
|
|
1787
|
+
/**
|
|
1788
|
+
* Field helperText, a description of the field surfaced in the UI
|
|
1789
|
+
* @default "Confirm"
|
|
1790
|
+
*/
|
|
1791
|
+
helperText?: string;
|
|
1792
|
+
/**
|
|
1793
|
+
* Only display the helperText in the UI while editing. if false, the helperText is always shown below the value.
|
|
1794
|
+
* @default true
|
|
1795
|
+
*/
|
|
1796
|
+
onlyShowHelperTextWhileEditing?: boolean;
|
|
1746
1797
|
}
|
|
1747
1798
|
export interface APIError {
|
|
1748
1799
|
status: number;
|
package/dist/Common.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Common.js","sourceRoot":"","sources":["../src/Common.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"Common.js","sourceRoot":"","sources":["../src/Common.ts"],"names":[],"mappings":"AAqXA,MAAM,CAAC,MAAM,WAAW,GAAG;IACzB,CAAC,EAAE,CAAC;IACJ,CAAC,EAAE,CAAC;IACJ,CAAC,EAAE,CAAC;IACJ,CAAC,EAAE,EAAE;IACL,CAAC,EAAE,EAAE;IACL,CAAC,EAAE,EAAE;IACL,CAAC,EAAE,EAAE;IACL,CAAC,EAAE,EAAE;IACL,CAAC,EAAE,EAAE;IACL,CAAC,EAAE,EAAE;IACL,EAAE,EAAE,EAAE;IACN,EAAE,EAAE,EAAE;IACN,EAAE,EAAE,EAAE;CACP,CAAC;AAEF,MAAM,UAAU,UAAU,CAAC,OAAqB;IAC9C,IAAI,OAAO,GAAG,CAAC,EAAE,CAAC;QAChB,OAAO,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAmB,CAAC,GAAG,CAAC,CAAC,CAAC;IAC/D,CAAC;IACD,OAAO,WAAW,CAAC,OAAyB,CAAC,CAAC;AAChD,CAAC;AAqBD,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,IAAe,EAAE,EAAE;IAClD,OAAO;QACL,EAAE,EAAE,CAAC;QACL,EAAE,EAAE,EAAE;QACN,EAAE,EAAE,EAAE;QACN,EAAE,EAAE,EAAE;QACN,EAAE,EAAE,EAAE;QACN,KAAK,EAAE,EAAE;KACV,CAAC,IAAI,IAAI,IAAI,CAAC,CAAC;AAClB,CAAC,CAAC;AAyRF,MAAM,YAAY,GAAG;IACnB,OAAO,EAAE,CAAC;IACV,OAAO,EAAE,CAAC;IACV,IAAI,EAAE,EAAE;IACR,OAAO,EAAE,GAAG;IACZ,EAAE,EAAE,CAAC;IACL,EAAE,EAAE,CAAC;IACL,EAAE,EAAE,EAAE;IACN,EAAE,EAAE,EAAE;IACN,KAAK,EAAE,GAAG;IACV,KAAK,EAAE,GAAG;CACX,CAAC;AAEF,MAAM,UAAU,WAAW,CAAC,QAAkB;IAC5C,OAAO,YAAY,CAAC,QAAQ,CAAC,CAAC;AAChC,CAAC"}
|
package/dist/IconButton.js
CHANGED
|
@@ -9,8 +9,8 @@ import { useTheme } from "./Theme";
|
|
|
9
9
|
import { Tooltip } from "./Tooltip";
|
|
10
10
|
import { Unifier } from "./Unifier";
|
|
11
11
|
import { isNative } from "./Utilities";
|
|
12
|
-
const ConfirmationModal = ({ visible, title,
|
|
13
|
-
return (React.createElement(Modal, { primaryButtonOnClick: onConfirm, primaryButtonText: "Confirm", secondaryButtonOnClick: onCancel, secondaryButtonText: "Cancel",
|
|
12
|
+
const ConfirmationModal = ({ visible, title, subtitle, text, onConfirm, onCancel, }) => {
|
|
13
|
+
return (React.createElement(Modal, { primaryButtonOnClick: onConfirm, primaryButtonText: "Confirm", secondaryButtonOnClick: onCancel, secondaryButtonText: "Cancel", subtitle: subtitle, title: title, visible: visible, onDismiss: onCancel },
|
|
14
14
|
React.createElement(Text, null, text)));
|
|
15
15
|
};
|
|
16
16
|
const IconButtonComponent = ({ accessibilityHint, accessibilityLabel, confirmationHeading = "Confirm", confirmationText = "Are you sure you want to continue?", iconName, indicator, indicatorText, loading: propsLoading = false, testID, variant = "primary", withConfirmation = false, tooltipText, onClick, }) => {
|
|
@@ -89,7 +89,7 @@ const IconButtonComponent = ({ accessibilityHint, accessibilityLabel, confirmati
|
|
|
89
89
|
fontSize: 10,
|
|
90
90
|
fontWeight: 700,
|
|
91
91
|
} }, indicatorText)))),
|
|
92
|
-
withConfirmation && (React.createElement(ConfirmationModal, {
|
|
92
|
+
withConfirmation && (React.createElement(ConfirmationModal, { subtitle: undefined, text: confirmationText, title: confirmationHeading, visible: showConfirmation, onCancel: () => setShowConfirmation(false), onConfirm: async () => {
|
|
93
93
|
await onClick();
|
|
94
94
|
setShowConfirmation(false);
|
|
95
95
|
} }))));
|
package/dist/Modal.js
CHANGED
|
@@ -21,7 +21,7 @@ const getModalSize = (size) => {
|
|
|
21
21
|
}
|
|
22
22
|
return sizePx;
|
|
23
23
|
};
|
|
24
|
-
const ModalContent = ({ children, title,
|
|
24
|
+
const ModalContent = ({ children, title, subtitle, text, primaryButtonText, primaryButtonDisabled, secondaryButtonText, primaryButtonOnClick, secondaryButtonOnClick, onDismiss, sizePx, theme, isMobile, }) => {
|
|
25
25
|
return (React.createElement(View, { style: Object.assign({ padding: 32, alignItems: "center", alignSelf: "center", zIndex: 1, backgroundColor: theme.surface.base, margin: "auto", borderRadius: theme.radius.default, width: sizePx }, (isMobile
|
|
26
26
|
? {}
|
|
27
27
|
: {
|
|
@@ -48,8 +48,8 @@ const ModalContent = ({ children, title, subTitle, text, primaryButtonText, prim
|
|
|
48
48
|
React.createElement(Icon, { iconName: "x", size: "sm" }))),
|
|
49
49
|
title && (React.createElement(View, { accessibilityHint: "Modal title", accessibilityLabel: title, accessibilityRole: "header", style: { alignSelf: "flex-start" } },
|
|
50
50
|
React.createElement(Heading, { size: "lg" }, title))),
|
|
51
|
-
|
|
52
|
-
React.createElement(Text, { size: "lg" },
|
|
51
|
+
subtitle && (React.createElement(View, { accessibilityHint: "Modal Sub Heading Text", accessibilityLabel: subtitle, accessibilityRole: "text", style: { alignSelf: "flex-start", marginTop: subtitle ? 8 : 0 } },
|
|
52
|
+
React.createElement(Text, { size: "lg" }, subtitle))),
|
|
53
53
|
text && (React.createElement(View, { accessibilityHint: "Modal body text", accessibilityLabel: text, accessibilityRole: "text", style: { marginVertical: text ? 12 : 0, alignSelf: "flex-start" } },
|
|
54
54
|
React.createElement(Text, null, text))),
|
|
55
55
|
children && (React.createElement(View, { accessibilityRole: "text", style: { marginTop: text ? 0 : 12 } }, children)),
|
|
@@ -62,7 +62,7 @@ const ModalContent = ({ children, title, subTitle, text, primaryButtonText, prim
|
|
|
62
62
|
React.createElement(Button, { text: secondaryButtonText, variant: "muted", onClick: secondaryButtonOnClick }))),
|
|
63
63
|
Boolean(primaryButtonText && primaryButtonOnClick) && (React.createElement(Button, { disabled: primaryButtonDisabled, text: primaryButtonText, onClick: primaryButtonOnClick })))));
|
|
64
64
|
};
|
|
65
|
-
export const Modal = ({ children, primaryButtonDisabled = false, primaryButtonText, secondaryButtonText, size = "sm",
|
|
65
|
+
export const Modal = ({ children, primaryButtonDisabled = false, primaryButtonText, secondaryButtonText, size = "sm", subtitle, text, title, visible, onDismiss, primaryButtonOnClick, secondaryButtonOnClick, }) => {
|
|
66
66
|
const actionSheetRef = useRef(null);
|
|
67
67
|
const { theme } = useTheme();
|
|
68
68
|
const onHandlerStateChange = ({ nativeEvent }) => {
|
|
@@ -80,7 +80,7 @@ export const Modal = ({ children, primaryButtonDisabled = false, primaryButtonTe
|
|
|
80
80
|
const sizePx = getModalSize(size);
|
|
81
81
|
const modalContentProps = {
|
|
82
82
|
title,
|
|
83
|
-
|
|
83
|
+
subtitle,
|
|
84
84
|
text,
|
|
85
85
|
primaryButtonText,
|
|
86
86
|
primaryButtonDisabled,
|
package/dist/SegmentedControl.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import React from "react";
|
|
2
2
|
import { Pressable, View } from "react-native";
|
|
3
|
-
import {
|
|
3
|
+
import { Heading } from "./Heading";
|
|
4
4
|
import { useTheme } from "./Theme";
|
|
5
5
|
export const SegmentedControl = ({ items, onChange = () => { }, size = "md", selectedIndex, }) => {
|
|
6
6
|
const height = size === "md" ? 36 : 44;
|
|
@@ -13,6 +13,7 @@ export const SegmentedControl = ({ items, onChange = () => { }, size = "md", sel
|
|
|
13
13
|
alignItems: "center",
|
|
14
14
|
gap: 4,
|
|
15
15
|
height,
|
|
16
|
+
maxHeight: height,
|
|
16
17
|
borderRadius: theme.primitives.radius3xl,
|
|
17
18
|
borderColor: theme.primitives.neutral300,
|
|
18
19
|
borderWidth: 3,
|
|
@@ -34,6 +35,6 @@ export const SegmentedControl = ({ items, onChange = () => { }, size = "md", sel
|
|
|
34
35
|
backgroundColor: index === selectedIndex ? theme.surface.base : undefined,
|
|
35
36
|
overflow: "hidden",
|
|
36
37
|
}, onPress: () => onChange(index) },
|
|
37
|
-
React.createElement(
|
|
38
|
+
React.createElement(Heading, { size: "sm" }, item))))));
|
|
38
39
|
};
|
|
39
40
|
//# sourceMappingURL=SegmentedControl.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SegmentedControl.js","sourceRoot":"","sources":["../src/SegmentedControl.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAC,SAAS,EAAE,IAAI,EAAC,MAAM,cAAc,CAAC;AAG7C,OAAO,EAAC,
|
|
1
|
+
{"version":3,"file":"SegmentedControl.js","sourceRoot":"","sources":["../src/SegmentedControl.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAC,SAAS,EAAE,IAAI,EAAC,MAAM,cAAc,CAAC;AAG7C,OAAO,EAAC,OAAO,EAAC,MAAM,WAAW,CAAC;AAClC,OAAO,EAAC,QAAQ,EAAC,MAAM,SAAS,CAAC;AAEjC,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,EAC/B,KAAK,EACL,QAAQ,GAAG,GAAG,EAAE,GAAE,CAAC,EACnB,IAAI,GAAG,IAAI,EACX,aAAa,GACS,EAAE,EAAE;IAC1B,MAAM,MAAM,GAAG,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IACvC,MAAM,EAAC,KAAK,EAAC,GAAG,QAAQ,EAAE,CAAC;IAC3B,OAAO,CACL,oBAAC,IAAI,IACH,KAAK,EAAE;YACL,OAAO,EAAE,MAAM;YACf,QAAQ,EAAE,CAAC;YACX,aAAa,EAAE,KAAK;YACpB,UAAU,EAAE,CAAC;YACb,UAAU,EAAE,QAAQ;YACpB,GAAG,EAAE,CAAC;YACN,MAAM;YACN,SAAS,EAAE,MAAM;YACjB,YAAY,EAAE,KAAK,CAAC,UAAU,CAAC,SAAS;YACxC,WAAW,EAAE,KAAK,CAAC,UAAU,CAAC,UAAU;YACxC,WAAW,EAAE,CAAC;YACd,eAAe,EAAE,KAAK,CAAC,UAAU,CAAC,UAAU;SAC7C,IAEA,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,CAC1B,oBAAC,SAAS,IACR,GAAG,EAAE,KAAK,EACV,iBAAiB,EAAC,QAAQ,EAC1B,KAAK,EAAE;YACL,OAAO,EAAE,MAAM;YACf,UAAU,EAAE,KAAK,CAAC,OAAO,CAAC,EAAE;YAC5B,aAAa,EAAE,KAAK,CAAC,OAAO,CAAC,EAAE;YAC/B,WAAW,EAAE,KAAK,CAAC,OAAO,CAAC,EAAE;YAC7B,YAAY,EAAE,KAAK,CAAC,OAAO,CAAC,EAAE;YAC9B,cAAc,EAAE,QAAQ;YACxB,UAAU,EAAE,QAAQ;YACpB,MAAM,EAAE,MAAM;YACd,SAAS,EAAE,CAAC;YACZ,GAAG,EAAE,EAAE;YACP,QAAQ,EAAE,CAAC;YACX,UAAU,EAAE,CAAC;YACb,YAAY,EAAE,KAAK,CAAC,UAAU,CAAC,SAAS;YACxC,eAAe,EAAE,KAAK,KAAK,aAAa,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS;YACzE,QAAQ,EAAE,QAAQ;SACnB,EACD,OAAO,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC;QAE9B,oBAAC,OAAO,IAAC,IAAI,EAAC,IAAI,IAAE,IAAI,CAAW,CACzB,CACb,CAAC,CACG,CACR,CAAC;AACJ,CAAC,CAAC"}
|
package/dist/TapToEdit.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import { ReactElement } from "react";
|
|
2
2
|
import { AddressInterface, TapToEditProps } from "./Common";
|
|
3
3
|
export declare function formatAddress(address: AddressInterface, asString?: boolean): string;
|
|
4
|
-
export declare const TapToEdit: ({ value, setValue, title, onSave, editable, isEditing,
|
|
4
|
+
export declare const TapToEdit: ({ value, setValue, title, onSave, editable, isEditing, transform, withConfirmation, confirmationText, confirmationTitle, helperText: propsHelperText, onlyShowHelperTextWhileEditing, ...fieldProps }: TapToEditProps) => ReactElement;
|
package/dist/TapToEdit.js
CHANGED
|
@@ -10,26 +10,17 @@ var __rest = (this && this.__rest) || function (s, e) {
|
|
|
10
10
|
return t;
|
|
11
11
|
};
|
|
12
12
|
import React, { useEffect, useState } from "react";
|
|
13
|
-
import { Linking } from "react-native";
|
|
13
|
+
import { Linking, View } from "react-native";
|
|
14
14
|
import { Box } from "./Box";
|
|
15
15
|
import { Button } from "./Button";
|
|
16
16
|
import { Field } from "./Field";
|
|
17
17
|
import { Icon } from "./Icon";
|
|
18
18
|
// import {useOpenAPISpec} from "./OpenAPIContext";
|
|
19
19
|
import { Text } from "./Text";
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
React.createElement(Text, {
|
|
24
|
-
title,
|
|
25
|
-
":"),
|
|
26
|
-
Boolean(description && !showDescriptionAsTooltip && !onlyShowDescriptionWhileEditing) && (React.createElement(Text, { color: "secondaryLight", size: "sm" }, description))));
|
|
27
|
-
if (showDescriptionAsTooltip) {
|
|
28
|
-
return (React.createElement(Tooltip, { idealPosition: "top", text: description }, Title));
|
|
29
|
-
}
|
|
30
|
-
else {
|
|
31
|
-
return Title;
|
|
32
|
-
}
|
|
20
|
+
const TapToEditTitle = ({ title, helperText, onlyShowHelperTextWhileEditing, }) => {
|
|
21
|
+
return (React.createElement(View, { style: { flex: 1, justifyContent: "center" } },
|
|
22
|
+
React.createElement(Text, { bold: true }, title),
|
|
23
|
+
Boolean(helperText && !onlyShowHelperTextWhileEditing) && (React.createElement(Text, { color: "secondaryLight", size: "sm" }, helperText))));
|
|
33
24
|
};
|
|
34
25
|
export function formatAddress(address, asString = false) {
|
|
35
26
|
var _a, _b, _c, _d;
|
|
@@ -57,11 +48,11 @@ export function formatAddress(address, asString = false) {
|
|
|
57
48
|
}
|
|
58
49
|
}
|
|
59
50
|
export const TapToEdit = (_a) => {
|
|
60
|
-
var _b, _c;
|
|
61
|
-
var { value, setValue, title, onSave, editable = true, isEditing = false,
|
|
51
|
+
var _b, _c, _d;
|
|
52
|
+
var { value, setValue, title, onSave, editable = true, isEditing = false, transform, withConfirmation = false, confirmationText = "Are you sure you want to save your changes?", confirmationTitle = "Confirm", helperText: propsHelperText, onlyShowHelperTextWhileEditing = true } = _a, fieldProps = __rest(_a, ["value", "setValue", "title", "onSave", "editable", "isEditing", "transform", "withConfirmation", "confirmationText", "confirmationTitle", "helperText", "onlyShowHelperTextWhileEditing"]);
|
|
62
53
|
const [editing, setEditing] = useState(false);
|
|
63
54
|
const [initialValue, setInitialValue] = useState();
|
|
64
|
-
const
|
|
55
|
+
const helperText = propsHelperText;
|
|
65
56
|
// setInitialValue is called after initial render to handle the case where the value is updated
|
|
66
57
|
useEffect(() => {
|
|
67
58
|
setInitialValue(value);
|
|
@@ -72,26 +63,29 @@ export const TapToEdit = (_a) => {
|
|
|
72
63
|
throw new Error("setValue is required if editable is true");
|
|
73
64
|
}
|
|
74
65
|
if (editable && (editing || isEditing)) {
|
|
75
|
-
return (React.createElement(
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
}
|
|
82
|
-
else {
|
|
83
|
-
setInitialValue(value);
|
|
84
|
-
await onSave(value);
|
|
85
|
-
}
|
|
86
|
-
setEditing(false);
|
|
87
|
-
} }),
|
|
88
|
-
React.createElement(Box, { marginLeft: 2 },
|
|
66
|
+
return (React.createElement(View, { style: { flexDirection: "column", width: "100%" } },
|
|
67
|
+
React.createElement(View, { style: { flex: 1, justifyContent: "center" } },
|
|
68
|
+
React.createElement(Text, { bold: true }, title)),
|
|
69
|
+
React.createElement(View, { style: { gap: 16 } },
|
|
70
|
+
React.createElement(Field, Object.assign({ grow: (fieldProps === null || fieldProps === void 0 ? void 0 : fieldProps.type) === "textarea" ? (_b = fieldProps.grow) !== null && _b !== void 0 ? _b : true : undefined, helperText: helperText, row: (fieldProps === null || fieldProps === void 0 ? void 0 : fieldProps.type) === "textarea" ? 5 : undefined, type: ((_c = fieldProps === null || fieldProps === void 0 ? void 0 : fieldProps.type) !== null && _c !== void 0 ? _c : "text"), value: value, onChange: setValue !== null && setValue !== void 0 ? setValue : (() => { }) }, fieldProps)),
|
|
71
|
+
editing && !isEditing && (React.createElement(View, { style: { flexDirection: "row", justifyContent: "flex-end", gap: 16 } },
|
|
89
72
|
React.createElement(Button, { text: "Cancel", variant: "muted", onClick: () => {
|
|
90
73
|
if (setValue) {
|
|
91
74
|
setValue(initialValue);
|
|
92
75
|
}
|
|
93
76
|
setEditing(false);
|
|
94
|
-
} })
|
|
77
|
+
} }),
|
|
78
|
+
React.createElement(View, { style: { marginLeft: 8 } },
|
|
79
|
+
React.createElement(Button, { confirmationText: confirmationText, modalTitle: confirmationTitle, text: "Save", withConfirmation: withConfirmation, onClick: async () => {
|
|
80
|
+
if (!onSave) {
|
|
81
|
+
console.error("No onSave provided for editable TapToEdit");
|
|
82
|
+
}
|
|
83
|
+
else {
|
|
84
|
+
setInitialValue(value);
|
|
85
|
+
await onSave(value);
|
|
86
|
+
}
|
|
87
|
+
setEditing(false);
|
|
88
|
+
} })))))));
|
|
95
89
|
}
|
|
96
90
|
else {
|
|
97
91
|
let displayValue = value;
|
|
@@ -103,6 +97,7 @@ export const TapToEdit = (_a) => {
|
|
|
103
97
|
// If no transform, try and display the value reasonably.
|
|
104
98
|
if ((fieldProps === null || fieldProps === void 0 ? void 0 : fieldProps.type) === "boolean") {
|
|
105
99
|
displayValue = value ? "Yes" : "No";
|
|
100
|
+
// TODO: put transform back in after field types are updated
|
|
106
101
|
// } else if (fieldProps?.type === "percent") {
|
|
107
102
|
// // Prevent floating point errors from showing up by using parseFloat and precision.
|
|
108
103
|
// // Pass through parseFloat again to trim off insignificant zeroes.
|
|
@@ -124,7 +119,7 @@ export const TapToEdit = (_a) => {
|
|
|
124
119
|
// Show only the domain, full links are likely too long.
|
|
125
120
|
try {
|
|
126
121
|
const url = new URL(value);
|
|
127
|
-
displayValue = (
|
|
122
|
+
displayValue = (_d = url === null || url === void 0 ? void 0 : url.hostname) !== null && _d !== void 0 ? _d : value;
|
|
128
123
|
}
|
|
129
124
|
catch (error) {
|
|
130
125
|
// Don't print an error message for empty values.
|
|
@@ -149,15 +144,24 @@ export const TapToEdit = (_a) => {
|
|
|
149
144
|
const isClickable = (fieldProps === null || fieldProps === void 0 ? void 0 : fieldProps.type) === "url" || (fieldProps === null || fieldProps === void 0 ? void 0 : fieldProps.type) === "address";
|
|
150
145
|
// For textarea to display correctly, we place the title on its own line, then the text
|
|
151
146
|
// on the next line. This is because the textarea will take up the full width of the row.
|
|
152
|
-
return (React.createElement(
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
147
|
+
return (React.createElement(View, { style: {
|
|
148
|
+
alignItems: (fieldProps === null || fieldProps === void 0 ? void 0 : fieldProps.type) === "textarea" ? "flex-start" : "center",
|
|
149
|
+
flexDirection: (fieldProps === null || fieldProps === void 0 ? void 0 : fieldProps.type) === "textarea" ? "column" : "row",
|
|
150
|
+
justifyContent: "space-between",
|
|
151
|
+
width: "100%",
|
|
152
|
+
} },
|
|
153
|
+
React.createElement(View, { style: { flexDirection: "row", width: "100%", gap: 16 } },
|
|
154
|
+
React.createElement(TapToEditTitle, { helperText: helperText, onlyShowHelperTextWhileEditing: onlyShowHelperTextWhileEditing, title: title }),
|
|
155
|
+
React.createElement(View, { style: {
|
|
156
|
+
flexDirection: "row",
|
|
157
|
+
flex: 1,
|
|
158
|
+
justifyContent: "flex-end",
|
|
159
|
+
} },
|
|
156
160
|
React.createElement(Box, { accessibilityHint: "", accessibilityLabel: "Link", justifyContent: "start", onClick: isClickable ? openLink : undefined }, Boolean((fieldProps === null || fieldProps === void 0 ? void 0 : fieldProps.type) !== "textarea") && (React.createElement(Text, { align: "right", underline: isClickable }, displayValue))),
|
|
157
|
-
editable && (React.createElement(Box, { accessibilityHint: "", accessibilityLabel: "Edit", marginLeft: 2, width: 16, onClick: () => setEditing(true) },
|
|
161
|
+
editable && (fieldProps === null || fieldProps === void 0 ? void 0 : fieldProps.type) !== "textarea" && (React.createElement(Box, { accessibilityHint: "", accessibilityLabel: "Edit", marginLeft: 2, width: 16, onClick: () => setEditing(true) },
|
|
158
162
|
React.createElement(Icon, { iconName: "pencil", size: "md" }))))),
|
|
159
163
|
(fieldProps === null || fieldProps === void 0 ? void 0 : fieldProps.type) === "textarea" && (React.createElement(React.Fragment, null,
|
|
160
|
-
React.createElement(
|
|
164
|
+
React.createElement(View, { style: { marginTop: 8, paddingVertical: 8, width: "100%" } },
|
|
161
165
|
React.createElement(Text, { align: "left", underline: isClickable }, displayValue)),
|
|
162
166
|
editable && (React.createElement(Box, { accessibilityHint: "", accessibilityLabel: "Edit", alignSelf: "end", marginLeft: 2, width: 16, onClick: () => setEditing(true) },
|
|
163
167
|
React.createElement(Icon, { color: "primary", iconName: "pencil", size: "md" })))))));
|
package/dist/TapToEdit.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TapToEdit.js","sourceRoot":"","sources":["../src/TapToEdit.tsx"],"names":[],"mappings":";;;;;;;;;;;AAAA,OAAO,KAAK,EAAE,EAAe,SAAS,EAAE,QAAQ,EAAC,MAAM,OAAO,CAAC;AAC/D,OAAO,EAAC,OAAO,EAAC,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"TapToEdit.js","sourceRoot":"","sources":["../src/TapToEdit.tsx"],"names":[],"mappings":"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"}
|