@metamask/design-system-react-native 0.22.0 → 0.23.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/CHANGELOG.md +18 -1
- package/dist/components/AvatarGroup/AvatarGroup.cjs +11 -12
- package/dist/components/AvatarGroup/AvatarGroup.cjs.map +1 -1
- package/dist/components/AvatarGroup/AvatarGroup.constants.cjs +11 -12
- package/dist/components/AvatarGroup/AvatarGroup.constants.cjs.map +1 -1
- package/dist/components/AvatarGroup/AvatarGroup.constants.d.cts +1 -2
- package/dist/components/AvatarGroup/AvatarGroup.constants.d.cts.map +1 -1
- package/dist/components/AvatarGroup/AvatarGroup.constants.d.mts +1 -2
- package/dist/components/AvatarGroup/AvatarGroup.constants.d.mts.map +1 -1
- package/dist/components/AvatarGroup/AvatarGroup.constants.mjs +1 -2
- package/dist/components/AvatarGroup/AvatarGroup.constants.mjs.map +1 -1
- package/dist/components/AvatarGroup/AvatarGroup.d.cts.map +1 -1
- package/dist/components/AvatarGroup/AvatarGroup.d.mts.map +1 -1
- package/dist/components/AvatarGroup/AvatarGroup.mjs +2 -3
- package/dist/components/AvatarGroup/AvatarGroup.mjs.map +1 -1
- package/dist/components/AvatarGroup/AvatarGroup.types.cjs.map +1 -1
- package/dist/components/AvatarGroup/AvatarGroup.types.d.cts +7 -24
- package/dist/components/AvatarGroup/AvatarGroup.types.d.cts.map +1 -1
- package/dist/components/AvatarGroup/AvatarGroup.types.d.mts +7 -24
- package/dist/components/AvatarGroup/AvatarGroup.types.d.mts.map +1 -1
- package/dist/components/AvatarGroup/AvatarGroup.types.mjs.map +1 -1
- package/dist/components/AvatarGroup/index.cjs +3 -3
- package/dist/components/AvatarGroup/index.cjs.map +1 -1
- package/dist/components/AvatarGroup/index.d.cts +1 -1
- package/dist/components/AvatarGroup/index.d.cts.map +1 -1
- package/dist/components/AvatarGroup/index.d.mts +1 -1
- package/dist/components/AvatarGroup/index.d.mts.map +1 -1
- package/dist/components/AvatarGroup/index.mjs +1 -1
- package/dist/components/AvatarGroup/index.mjs.map +1 -1
- package/dist/components/AvatarIcon/AvatarIcon.cjs +1 -2
- package/dist/components/AvatarIcon/AvatarIcon.cjs.map +1 -1
- package/dist/components/AvatarIcon/AvatarIcon.constants.cjs +10 -11
- package/dist/components/AvatarIcon/AvatarIcon.constants.cjs.map +1 -1
- package/dist/components/AvatarIcon/AvatarIcon.constants.d.cts +1 -2
- package/dist/components/AvatarIcon/AvatarIcon.constants.d.cts.map +1 -1
- package/dist/components/AvatarIcon/AvatarIcon.constants.d.mts +1 -2
- package/dist/components/AvatarIcon/AvatarIcon.constants.d.mts.map +1 -1
- package/dist/components/AvatarIcon/AvatarIcon.constants.mjs +1 -2
- package/dist/components/AvatarIcon/AvatarIcon.constants.mjs.map +1 -1
- package/dist/components/AvatarIcon/AvatarIcon.d.cts.map +1 -1
- package/dist/components/AvatarIcon/AvatarIcon.d.mts.map +1 -1
- package/dist/components/AvatarIcon/AvatarIcon.mjs +1 -2
- package/dist/components/AvatarIcon/AvatarIcon.mjs.map +1 -1
- package/dist/components/BannerAlert/BannerAlert.cjs +1 -2
- package/dist/components/BannerAlert/BannerAlert.cjs.map +1 -1
- package/dist/components/BannerAlert/BannerAlert.constants.cjs +8 -9
- package/dist/components/BannerAlert/BannerAlert.constants.cjs.map +1 -1
- package/dist/components/BannerAlert/BannerAlert.constants.d.cts +1 -2
- package/dist/components/BannerAlert/BannerAlert.constants.d.cts.map +1 -1
- package/dist/components/BannerAlert/BannerAlert.constants.d.mts +1 -2
- package/dist/components/BannerAlert/BannerAlert.constants.d.mts.map +1 -1
- package/dist/components/BannerAlert/BannerAlert.constants.mjs +1 -2
- package/dist/components/BannerAlert/BannerAlert.constants.mjs.map +1 -1
- package/dist/components/BannerAlert/BannerAlert.d.cts.map +1 -1
- package/dist/components/BannerAlert/BannerAlert.d.mts.map +1 -1
- package/dist/components/BannerAlert/BannerAlert.mjs +1 -2
- package/dist/components/BannerAlert/BannerAlert.mjs.map +1 -1
- package/dist/components/Icon/Icon.assets.cjs +2 -0
- package/dist/components/Icon/Icon.assets.cjs.map +1 -1
- package/dist/components/Icon/Icon.assets.d.cts.map +1 -1
- package/dist/components/Icon/Icon.assets.d.mts.map +1 -1
- package/dist/components/Icon/Icon.assets.mjs +2 -0
- package/dist/components/Icon/Icon.assets.mjs.map +1 -1
- package/dist/components/Icon/Icon.cjs +2 -2
- package/dist/components/Icon/Icon.cjs.map +1 -1
- package/dist/components/Icon/Icon.d.cts.map +1 -1
- package/dist/components/Icon/Icon.d.mts.map +1 -1
- package/dist/components/Icon/Icon.mjs +1 -1
- package/dist/components/Icon/Icon.mjs.map +1 -1
- package/dist/components/Icon/assets/merge.svg +1 -0
- package/dist/components/Icon/index.cjs +4 -4
- package/dist/components/Icon/index.cjs.map +1 -1
- package/dist/components/Icon/index.d.cts +1 -1
- package/dist/components/Icon/index.d.cts.map +1 -1
- package/dist/components/Icon/index.d.mts +1 -1
- package/dist/components/Icon/index.d.mts.map +1 -1
- package/dist/components/Icon/index.mjs +1 -1
- package/dist/components/Icon/index.mjs.map +1 -1
- package/dist/components/IconAlert/IconAlert.constants.cjs +8 -9
- package/dist/components/IconAlert/IconAlert.constants.cjs.map +1 -1
- package/dist/components/IconAlert/IconAlert.constants.d.cts +1 -2
- package/dist/components/IconAlert/IconAlert.constants.d.cts.map +1 -1
- package/dist/components/IconAlert/IconAlert.constants.d.mts +1 -2
- package/dist/components/IconAlert/IconAlert.constants.d.mts.map +1 -1
- package/dist/components/IconAlert/IconAlert.constants.mjs +1 -2
- package/dist/components/IconAlert/IconAlert.constants.mjs.map +1 -1
- package/dist/components/Input/Input.cjs +10 -11
- package/dist/components/Input/Input.cjs.map +1 -1
- package/dist/components/Input/Input.d.cts +1 -7
- package/dist/components/Input/Input.d.cts.map +1 -1
- package/dist/components/Input/Input.d.mts +1 -7
- package/dist/components/Input/Input.d.mts.map +1 -1
- package/dist/components/Input/Input.mjs +11 -12
- package/dist/components/Input/Input.mjs.map +1 -1
- package/dist/components/Input/Input.types.cjs.map +1 -1
- package/dist/components/Input/Input.types.d.cts +2 -30
- package/dist/components/Input/Input.types.d.cts.map +1 -1
- package/dist/components/Input/Input.types.d.mts +2 -30
- package/dist/components/Input/Input.types.d.mts.map +1 -1
- package/dist/components/Input/Input.types.mjs.map +1 -1
- package/dist/components/Tag/Tag.constants.cjs +5 -6
- package/dist/components/Tag/Tag.constants.cjs.map +1 -1
- package/dist/components/Tag/Tag.constants.d.cts +1 -2
- package/dist/components/Tag/Tag.constants.d.cts.map +1 -1
- package/dist/components/Tag/Tag.constants.d.mts +1 -2
- package/dist/components/Tag/Tag.constants.d.mts.map +1 -1
- package/dist/components/Tag/Tag.constants.mjs +1 -2
- package/dist/components/Tag/Tag.constants.mjs.map +1 -1
- package/dist/components/Toast/Toast.cjs +29 -142
- package/dist/components/Toast/Toast.cjs.map +1 -1
- package/dist/components/Toast/Toast.d.cts +14 -2
- package/dist/components/Toast/Toast.d.cts.map +1 -1
- package/dist/components/Toast/Toast.d.mts +14 -2
- package/dist/components/Toast/Toast.d.mts.map +1 -1
- package/dist/components/Toast/Toast.mjs +30 -143
- package/dist/components/Toast/Toast.mjs.map +1 -1
- package/dist/components/Toast/Toast.types.cjs.map +1 -1
- package/dist/components/Toast/Toast.types.d.cts +0 -6
- package/dist/components/Toast/Toast.types.d.cts.map +1 -1
- package/dist/components/Toast/Toast.types.d.mts +0 -6
- package/dist/components/Toast/Toast.types.d.mts.map +1 -1
- package/dist/components/Toast/Toast.types.mjs.map +1 -1
- package/dist/components/Toast/ToastView.cjs +174 -0
- package/dist/components/Toast/ToastView.cjs.map +1 -0
- package/dist/components/Toast/ToastView.d.cts +7 -0
- package/dist/components/Toast/ToastView.d.cts.map +1 -0
- package/dist/components/Toast/ToastView.d.mts +7 -0
- package/dist/components/Toast/ToastView.d.mts.map +1 -0
- package/dist/components/Toast/ToastView.mjs +155 -0
- package/dist/components/Toast/ToastView.mjs.map +1 -0
- package/dist/components/Toast/index.cjs +1 -4
- package/dist/components/Toast/index.cjs.map +1 -1
- package/dist/components/Toast/index.d.cts +1 -2
- package/dist/components/Toast/index.d.cts.map +1 -1
- package/dist/components/Toast/index.d.mts +1 -2
- package/dist/components/Toast/index.d.mts.map +1 -1
- package/dist/components/Toast/index.mjs +0 -1
- package/dist/components/Toast/index.mjs.map +1 -1
- package/dist/components/index.cjs +1 -3
- package/dist/components/index.cjs.map +1 -1
- package/dist/components/index.d.cts +2 -2
- package/dist/components/index.d.cts.map +1 -1
- package/dist/components/index.d.mts +2 -2
- package/dist/components/index.d.mts.map +1 -1
- package/dist/components/index.mjs +1 -1
- package/dist/components/index.mjs.map +1 -1
- package/dist/types/index.cjs +3 -15
- package/dist/types/index.cjs.map +1 -1
- package/dist/types/index.d.cts +0 -10
- package/dist/types/index.d.cts.map +1 -1
- package/dist/types/index.d.mts +0 -10
- package/dist/types/index.d.mts.map +1 -1
- package/dist/types/index.mjs +0 -11
- package/dist/types/index.mjs.map +1 -1
- package/package.json +3 -3
- package/dist/components/Toast/Toast.context.cjs +0 -40
- package/dist/components/Toast/Toast.context.cjs.map +0 -1
- package/dist/components/Toast/Toast.context.d.cts +0 -7
- package/dist/components/Toast/Toast.context.d.cts.map +0 -1
- package/dist/components/Toast/Toast.context.d.mts +0 -7
- package/dist/components/Toast/Toast.context.d.mts.map +0 -1
- package/dist/components/Toast/Toast.context.mjs +0 -20
- package/dist/components/Toast/Toast.context.mjs.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Input.mjs","sourceRoot":"","sources":["../../../src/components/Input/Input.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,uCAAuC;AACzE,OAAO,EACL,KAAK,EACL,WAAW,EACX,QAAQ,EACT,6CAA6C;AAC9C,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,gCAAgC;AAChE,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,OAAO,EAAE,QAAQ,EAAE,cAAc;
|
|
1
|
+
{"version":3,"file":"Input.mjs","sourceRoot":"","sources":["../../../src/components/Input/Input.tsx"],"names":[],"mappings":"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","sourcesContent":["import { FontFamily, TextVariant } from '@metamask/design-system-shared';\nimport {\n Theme,\n useTailwind,\n useTheme,\n} from '@metamask/design-system-twrnc-preset';\nimport { darkTheme, lightTheme } from '@metamask/design-tokens';\nimport { forwardRef, useCallback, useEffect, useMemo, useState } from 'react';\nimport { Platform, TextInput } from 'react-native';\n\nimport {\n TWCLASSMAP_TEXT_VARIANT_FONTWEIGHT,\n TWCLASSMAP_TEXT_FONTWEIGHT,\n} from '../Text/Text.constants';\n\nimport { MAP_TEXT_VARIANT_INPUT_METRICS } from './Input.constants';\nimport type { InputProps } from './Input.types';\n\nexport const Input = forwardRef<TextInput, InputProps>(\n (\n {\n style,\n textVariant = TextVariant.BodyMd,\n isStateStylesDisabled,\n isDisabled = false,\n isReadOnly = false,\n value,\n placeholder,\n twClassName,\n onBlur,\n onFocus,\n autoFocus = false,\n ...props\n },\n ref,\n ) => {\n const [isFocused, setIsFocused] = useState(autoFocus);\n const tw = useTailwind();\n const theme = useTheme();\n\n const placeholderTextColor = useMemo(\n () =>\n theme === Theme.Light\n ? lightTheme.colors.text.alternative\n : darkTheme.colors.text.alternative,\n [theme],\n );\n\n const finalFontWeight = TWCLASSMAP_TEXT_VARIANT_FONTWEIGHT[textVariant];\n const fontSuffix = TWCLASSMAP_TEXT_FONTWEIGHT[finalFontWeight];\n const fontClass = `font-${FontFamily.Default}${fontSuffix}`;\n const hasPlaceholder =\n placeholder !== undefined && placeholder !== null && placeholder !== '';\n // Only apply placeholder-mode styling when a placeholder is present and\n // the controlled value is empty. This keeps the iOS lineHeight workaround\n // scoped to the placeholder-visible state without affecting typed text.\n const isPlaceholderVisible = hasPlaceholder && value === '';\n\n const inputStyle = useMemo(\n () =>\n tw.style(\n fontClass,\n 'text-default',\n 'bg-default',\n 'border',\n 'border-transparent',\n !isStateStylesDisabled && isDisabled && 'opacity-50',\n !isStateStylesDisabled &&\n !isDisabled &&\n isFocused &&\n 'border-primary-default',\n twClassName,\n ),\n [\n fontClass,\n isStateStylesDisabled,\n isDisabled,\n isFocused,\n twClassName,\n tw,\n ],\n );\n\n const variantTextStyle = useMemo(\n () => MAP_TEXT_VARIANT_INPUT_METRICS[textVariant],\n [textVariant],\n );\n\n useEffect(() => {\n if (isDisabled || isReadOnly) {\n setIsFocused(false);\n }\n }, [isDisabled, isReadOnly]);\n\n const onBlurHandler = useCallback(\n (e: Parameters<NonNullable<InputProps['onBlur']>>[0]) => {\n setIsFocused(false);\n onBlur?.(e);\n },\n [onBlur],\n );\n\n const onFocusHandler = useCallback(\n (e: Parameters<NonNullable<InputProps['onFocus']>>[0]) => {\n setIsFocused(true);\n onFocus?.(e);\n },\n [onFocus],\n );\n const resolvedStyle = [\n inputStyle,\n variantTextStyle,\n // iOS-only workaround: when a placeholder is visible, native iOS\n // TextInput can render placeholder text vertically offset.\n // Keep this iOS-only because lineHeight: 0 can collapse text on Android.\n Platform.OS === 'ios' &&\n isPlaceholderVisible && { lineHeight: 0 as const },\n style,\n ].filter(Boolean);\n\n return (\n <TextInput\n ref={ref}\n {...props}\n placeholder={placeholder}\n placeholderTextColor={placeholderTextColor}\n value={value}\n style={resolvedStyle}\n editable={!isDisabled && !isReadOnly}\n autoFocus={autoFocus}\n onBlur={onBlurHandler}\n onFocus={onFocusHandler}\n />\n );\n },\n);\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Input.types.cjs","sourceRoot":"","sources":["../../../src/components/Input/Input.types.ts"],"names":[],"mappings":"","sourcesContent":["import type {
|
|
1
|
+
{"version":3,"file":"Input.types.cjs","sourceRoot":"","sources":["../../../src/components/Input/Input.types.ts"],"names":[],"mappings":"","sourcesContent":["import type { InputPropsShared } from '@metamask/design-system-shared';\nimport type { TextInputProps } from 'react-native';\n\nexport type InputProps = Omit<\n TextInputProps,\n 'editable' | 'value' | 'defaultValue'\n> &\n InputPropsShared & {\n /**\n * Optional prop to add twrnc overriding classNames.\n */\n twClassName?: string;\n };\n"]}
|
|
@@ -1,34 +1,6 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { InputPropsShared } from "@metamask/design-system-shared";
|
|
2
2
|
import type { TextInputProps } from "react-native/index.js";
|
|
3
|
-
export type InputProps = Omit<TextInputProps, 'editable' | 'value' | 'defaultValue'> & {
|
|
4
|
-
/**
|
|
5
|
-
* Controlled value for Input.
|
|
6
|
-
*/
|
|
7
|
-
value: string;
|
|
8
|
-
/**
|
|
9
|
-
* Optional enum to select between Typography variants.
|
|
10
|
-
*
|
|
11
|
-
* @default BodyMd
|
|
12
|
-
*/
|
|
13
|
-
textVariant?: TextVariant;
|
|
14
|
-
/**
|
|
15
|
-
* Optional boolean to disable Input.
|
|
16
|
-
*
|
|
17
|
-
* @default false
|
|
18
|
-
*/
|
|
19
|
-
isDisabled?: boolean;
|
|
20
|
-
/**
|
|
21
|
-
* Optional boolean to show readonly input.
|
|
22
|
-
*
|
|
23
|
-
* @default false
|
|
24
|
-
*/
|
|
25
|
-
isReadOnly?: boolean;
|
|
26
|
-
/**
|
|
27
|
-
* Optional boolean to disable state styles.
|
|
28
|
-
*
|
|
29
|
-
* @default false
|
|
30
|
-
*/
|
|
31
|
-
isStateStylesDisabled?: boolean;
|
|
3
|
+
export type InputProps = Omit<TextInputProps, 'editable' | 'value' | 'defaultValue'> & InputPropsShared & {
|
|
32
4
|
/**
|
|
33
5
|
* Optional prop to add twrnc overriding classNames.
|
|
34
6
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Input.types.d.cts","sourceRoot":"","sources":["../../../src/components/Input/Input.types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"Input.types.d.cts","sourceRoot":"","sources":["../../../src/components/Input/Input.types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,uCAAuC;AACvE,OAAO,KAAK,EAAE,cAAc,EAAE,8BAAqB;AAEnD,MAAM,MAAM,UAAU,GAAG,IAAI,CAC3B,cAAc,EACd,UAAU,GAAG,OAAO,GAAG,cAAc,CACtC,GACC,gBAAgB,GAAG;IACjB;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB,CAAC"}
|
|
@@ -1,34 +1,6 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { InputPropsShared } from "@metamask/design-system-shared";
|
|
2
2
|
import type { TextInputProps } from "react-native/index.js";
|
|
3
|
-
export type InputProps = Omit<TextInputProps, 'editable' | 'value' | 'defaultValue'> & {
|
|
4
|
-
/**
|
|
5
|
-
* Controlled value for Input.
|
|
6
|
-
*/
|
|
7
|
-
value: string;
|
|
8
|
-
/**
|
|
9
|
-
* Optional enum to select between Typography variants.
|
|
10
|
-
*
|
|
11
|
-
* @default BodyMd
|
|
12
|
-
*/
|
|
13
|
-
textVariant?: TextVariant;
|
|
14
|
-
/**
|
|
15
|
-
* Optional boolean to disable Input.
|
|
16
|
-
*
|
|
17
|
-
* @default false
|
|
18
|
-
*/
|
|
19
|
-
isDisabled?: boolean;
|
|
20
|
-
/**
|
|
21
|
-
* Optional boolean to show readonly input.
|
|
22
|
-
*
|
|
23
|
-
* @default false
|
|
24
|
-
*/
|
|
25
|
-
isReadOnly?: boolean;
|
|
26
|
-
/**
|
|
27
|
-
* Optional boolean to disable state styles.
|
|
28
|
-
*
|
|
29
|
-
* @default false
|
|
30
|
-
*/
|
|
31
|
-
isStateStylesDisabled?: boolean;
|
|
3
|
+
export type InputProps = Omit<TextInputProps, 'editable' | 'value' | 'defaultValue'> & InputPropsShared & {
|
|
32
4
|
/**
|
|
33
5
|
* Optional prop to add twrnc overriding classNames.
|
|
34
6
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Input.types.d.mts","sourceRoot":"","sources":["../../../src/components/Input/Input.types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"Input.types.d.mts","sourceRoot":"","sources":["../../../src/components/Input/Input.types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,uCAAuC;AACvE,OAAO,KAAK,EAAE,cAAc,EAAE,8BAAqB;AAEnD,MAAM,MAAM,UAAU,GAAG,IAAI,CAC3B,cAAc,EACd,UAAU,GAAG,OAAO,GAAG,cAAc,CACtC,GACC,gBAAgB,GAAG;IACjB;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Input.types.mjs","sourceRoot":"","sources":["../../../src/components/Input/Input.types.ts"],"names":[],"mappings":"","sourcesContent":["import type {
|
|
1
|
+
{"version":3,"file":"Input.types.mjs","sourceRoot":"","sources":["../../../src/components/Input/Input.types.ts"],"names":[],"mappings":"","sourcesContent":["import type { InputPropsShared } from '@metamask/design-system-shared';\nimport type { TextInputProps } from 'react-native';\n\nexport type InputProps = Omit<\n TextInputProps,\n 'editable' | 'value' | 'defaultValue'\n> &\n InputPropsShared & {\n /**\n * Optional prop to add twrnc overriding classNames.\n */\n twClassName?: string;\n };\n"]}
|
|
@@ -2,7 +2,6 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.MAP_TAG_SEVERITY_ICON_COLOR = exports.MAP_TAG_SEVERITY_TEXT_COLOR = exports.MAP_TAG_SEVERITY_BACKGROUND = void 0;
|
|
4
4
|
const design_system_shared_1 = require("@metamask/design-system-shared");
|
|
5
|
-
const types_1 = require("../../types/index.cjs");
|
|
6
5
|
exports.MAP_TAG_SEVERITY_BACKGROUND = {
|
|
7
6
|
[design_system_shared_1.TagSeverity.Neutral]: design_system_shared_1.BoxBackgroundColor.BackgroundMuted,
|
|
8
7
|
[design_system_shared_1.TagSeverity.Success]: design_system_shared_1.BoxBackgroundColor.SuccessMuted,
|
|
@@ -18,10 +17,10 @@ exports.MAP_TAG_SEVERITY_TEXT_COLOR = {
|
|
|
18
17
|
[design_system_shared_1.TagSeverity.Info]: design_system_shared_1.TextColor.InfoDefault,
|
|
19
18
|
};
|
|
20
19
|
exports.MAP_TAG_SEVERITY_ICON_COLOR = {
|
|
21
|
-
[design_system_shared_1.TagSeverity.Neutral]:
|
|
22
|
-
[design_system_shared_1.TagSeverity.Success]:
|
|
23
|
-
[design_system_shared_1.TagSeverity.Error]:
|
|
24
|
-
[design_system_shared_1.TagSeverity.Warning]:
|
|
25
|
-
[design_system_shared_1.TagSeverity.Info]:
|
|
20
|
+
[design_system_shared_1.TagSeverity.Neutral]: design_system_shared_1.IconColor.IconDefault,
|
|
21
|
+
[design_system_shared_1.TagSeverity.Success]: design_system_shared_1.IconColor.SuccessDefault,
|
|
22
|
+
[design_system_shared_1.TagSeverity.Error]: design_system_shared_1.IconColor.ErrorDefault,
|
|
23
|
+
[design_system_shared_1.TagSeverity.Warning]: design_system_shared_1.IconColor.WarningDefault,
|
|
24
|
+
[design_system_shared_1.TagSeverity.Info]: design_system_shared_1.IconColor.InfoDefault,
|
|
26
25
|
};
|
|
27
26
|
//# sourceMappingURL=Tag.constants.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Tag.constants.cjs","sourceRoot":"","sources":["../../../src/components/Tag/Tag.constants.ts"],"names":[],"mappings":";;;AAAA,
|
|
1
|
+
{"version":3,"file":"Tag.constants.cjs","sourceRoot":"","sources":["../../../src/components/Tag/Tag.constants.ts"],"names":[],"mappings":";;;AAAA,yEAKwC;AAE3B,QAAA,2BAA2B,GAGpC;IACF,CAAC,kCAAW,CAAC,OAAO,CAAC,EAAE,yCAAkB,CAAC,eAAe;IACzD,CAAC,kCAAW,CAAC,OAAO,CAAC,EAAE,yCAAkB,CAAC,YAAY;IACtD,CAAC,kCAAW,CAAC,KAAK,CAAC,EAAE,yCAAkB,CAAC,UAAU;IAClD,CAAC,kCAAW,CAAC,OAAO,CAAC,EAAE,yCAAkB,CAAC,YAAY;IACtD,CAAC,kCAAW,CAAC,IAAI,CAAC,EAAE,yCAAkB,CAAC,SAAS;CACjD,CAAC;AAEW,QAAA,2BAA2B,GAAmC;IACzE,CAAC,kCAAW,CAAC,OAAO,CAAC,EAAE,gCAAS,CAAC,WAAW;IAC5C,CAAC,kCAAW,CAAC,OAAO,CAAC,EAAE,gCAAS,CAAC,cAAc;IAC/C,CAAC,kCAAW,CAAC,KAAK,CAAC,EAAE,gCAAS,CAAC,YAAY;IAC3C,CAAC,kCAAW,CAAC,OAAO,CAAC,EAAE,gCAAS,CAAC,cAAc;IAC/C,CAAC,kCAAW,CAAC,IAAI,CAAC,EAAE,gCAAS,CAAC,WAAW;CAC1C,CAAC;AAEW,QAAA,2BAA2B,GAAmC;IACzE,CAAC,kCAAW,CAAC,OAAO,CAAC,EAAE,gCAAS,CAAC,WAAW;IAC5C,CAAC,kCAAW,CAAC,OAAO,CAAC,EAAE,gCAAS,CAAC,cAAc;IAC/C,CAAC,kCAAW,CAAC,KAAK,CAAC,EAAE,gCAAS,CAAC,YAAY;IAC3C,CAAC,kCAAW,CAAC,OAAO,CAAC,EAAE,gCAAS,CAAC,cAAc;IAC/C,CAAC,kCAAW,CAAC,IAAI,CAAC,EAAE,gCAAS,CAAC,WAAW;CAC1C,CAAC","sourcesContent":["import {\n BoxBackgroundColor,\n IconColor,\n TagSeverity,\n TextColor,\n} from '@metamask/design-system-shared';\n\nexport const MAP_TAG_SEVERITY_BACKGROUND: Record<\n TagSeverity,\n BoxBackgroundColor\n> = {\n [TagSeverity.Neutral]: BoxBackgroundColor.BackgroundMuted,\n [TagSeverity.Success]: BoxBackgroundColor.SuccessMuted,\n [TagSeverity.Error]: BoxBackgroundColor.ErrorMuted,\n [TagSeverity.Warning]: BoxBackgroundColor.WarningMuted,\n [TagSeverity.Info]: BoxBackgroundColor.InfoMuted,\n};\n\nexport const MAP_TAG_SEVERITY_TEXT_COLOR: Record<TagSeverity, TextColor> = {\n [TagSeverity.Neutral]: TextColor.TextDefault,\n [TagSeverity.Success]: TextColor.SuccessDefault,\n [TagSeverity.Error]: TextColor.ErrorDefault,\n [TagSeverity.Warning]: TextColor.WarningDefault,\n [TagSeverity.Info]: TextColor.InfoDefault,\n};\n\nexport const MAP_TAG_SEVERITY_ICON_COLOR: Record<TagSeverity, IconColor> = {\n [TagSeverity.Neutral]: IconColor.IconDefault,\n [TagSeverity.Success]: IconColor.SuccessDefault,\n [TagSeverity.Error]: IconColor.ErrorDefault,\n [TagSeverity.Warning]: IconColor.WarningDefault,\n [TagSeverity.Info]: IconColor.InfoDefault,\n};\n"]}
|
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
import { BoxBackgroundColor, TagSeverity, TextColor } from "@metamask/design-system-shared";
|
|
2
|
-
import { IconColor } from "../../types/index.cjs";
|
|
1
|
+
import { BoxBackgroundColor, IconColor, TagSeverity, TextColor } from "@metamask/design-system-shared";
|
|
3
2
|
export declare const MAP_TAG_SEVERITY_BACKGROUND: Record<TagSeverity, BoxBackgroundColor>;
|
|
4
3
|
export declare const MAP_TAG_SEVERITY_TEXT_COLOR: Record<TagSeverity, TextColor>;
|
|
5
4
|
export declare const MAP_TAG_SEVERITY_ICON_COLOR: Record<TagSeverity, IconColor>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Tag.constants.d.cts","sourceRoot":"","sources":["../../../src/components/Tag/Tag.constants.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,kBAAkB,EAClB,WAAW,EACX,SAAS,EACV,uCAAuC;AAExC,
|
|
1
|
+
{"version":3,"file":"Tag.constants.d.cts","sourceRoot":"","sources":["../../../src/components/Tag/Tag.constants.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,kBAAkB,EAClB,SAAS,EACT,WAAW,EACX,SAAS,EACV,uCAAuC;AAExC,eAAO,MAAM,2BAA2B,EAAE,MAAM,CAC9C,WAAW,EACX,kBAAkB,CAOnB,CAAC;AAEF,eAAO,MAAM,2BAA2B,EAAE,MAAM,CAAC,WAAW,EAAE,SAAS,CAMtE,CAAC;AAEF,eAAO,MAAM,2BAA2B,EAAE,MAAM,CAAC,WAAW,EAAE,SAAS,CAMtE,CAAC"}
|
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
import { BoxBackgroundColor, TagSeverity, TextColor } from "@metamask/design-system-shared";
|
|
2
|
-
import { IconColor } from "../../types/index.mjs";
|
|
1
|
+
import { BoxBackgroundColor, IconColor, TagSeverity, TextColor } from "@metamask/design-system-shared";
|
|
3
2
|
export declare const MAP_TAG_SEVERITY_BACKGROUND: Record<TagSeverity, BoxBackgroundColor>;
|
|
4
3
|
export declare const MAP_TAG_SEVERITY_TEXT_COLOR: Record<TagSeverity, TextColor>;
|
|
5
4
|
export declare const MAP_TAG_SEVERITY_ICON_COLOR: Record<TagSeverity, IconColor>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Tag.constants.d.mts","sourceRoot":"","sources":["../../../src/components/Tag/Tag.constants.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,kBAAkB,EAClB,WAAW,EACX,SAAS,EACV,uCAAuC;AAExC,
|
|
1
|
+
{"version":3,"file":"Tag.constants.d.mts","sourceRoot":"","sources":["../../../src/components/Tag/Tag.constants.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,kBAAkB,EAClB,SAAS,EACT,WAAW,EACX,SAAS,EACV,uCAAuC;AAExC,eAAO,MAAM,2BAA2B,EAAE,MAAM,CAC9C,WAAW,EACX,kBAAkB,CAOnB,CAAC;AAEF,eAAO,MAAM,2BAA2B,EAAE,MAAM,CAAC,WAAW,EAAE,SAAS,CAMtE,CAAC;AAEF,eAAO,MAAM,2BAA2B,EAAE,MAAM,CAAC,WAAW,EAAE,SAAS,CAMtE,CAAC"}
|
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
import { BoxBackgroundColor, TagSeverity, TextColor } from "@metamask/design-system-shared";
|
|
2
|
-
import { IconColor } from "../../types/index.mjs";
|
|
1
|
+
import { BoxBackgroundColor, IconColor, TagSeverity, TextColor } from "@metamask/design-system-shared";
|
|
3
2
|
export const MAP_TAG_SEVERITY_BACKGROUND = {
|
|
4
3
|
[TagSeverity.Neutral]: BoxBackgroundColor.BackgroundMuted,
|
|
5
4
|
[TagSeverity.Success]: BoxBackgroundColor.SuccessMuted,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Tag.constants.mjs","sourceRoot":"","sources":["../../../src/components/Tag/Tag.constants.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,kBAAkB,EAClB,WAAW,EACX,SAAS,EACV,uCAAuC;AAExC,
|
|
1
|
+
{"version":3,"file":"Tag.constants.mjs","sourceRoot":"","sources":["../../../src/components/Tag/Tag.constants.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,kBAAkB,EAClB,SAAS,EACT,WAAW,EACX,SAAS,EACV,uCAAuC;AAExC,MAAM,CAAC,MAAM,2BAA2B,GAGpC;IACF,CAAC,WAAW,CAAC,OAAO,CAAC,EAAE,kBAAkB,CAAC,eAAe;IACzD,CAAC,WAAW,CAAC,OAAO,CAAC,EAAE,kBAAkB,CAAC,YAAY;IACtD,CAAC,WAAW,CAAC,KAAK,CAAC,EAAE,kBAAkB,CAAC,UAAU;IAClD,CAAC,WAAW,CAAC,OAAO,CAAC,EAAE,kBAAkB,CAAC,YAAY;IACtD,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,kBAAkB,CAAC,SAAS;CACjD,CAAC;AAEF,MAAM,CAAC,MAAM,2BAA2B,GAAmC;IACzE,CAAC,WAAW,CAAC,OAAO,CAAC,EAAE,SAAS,CAAC,WAAW;IAC5C,CAAC,WAAW,CAAC,OAAO,CAAC,EAAE,SAAS,CAAC,cAAc;IAC/C,CAAC,WAAW,CAAC,KAAK,CAAC,EAAE,SAAS,CAAC,YAAY;IAC3C,CAAC,WAAW,CAAC,OAAO,CAAC,EAAE,SAAS,CAAC,cAAc;IAC/C,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,SAAS,CAAC,WAAW;CAC1C,CAAC;AAEF,MAAM,CAAC,MAAM,2BAA2B,GAAmC;IACzE,CAAC,WAAW,CAAC,OAAO,CAAC,EAAE,SAAS,CAAC,WAAW;IAC5C,CAAC,WAAW,CAAC,OAAO,CAAC,EAAE,SAAS,CAAC,cAAc;IAC/C,CAAC,WAAW,CAAC,KAAK,CAAC,EAAE,SAAS,CAAC,YAAY;IAC3C,CAAC,WAAW,CAAC,OAAO,CAAC,EAAE,SAAS,CAAC,cAAc;IAC/C,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,SAAS,CAAC,WAAW;CAC1C,CAAC","sourcesContent":["import {\n BoxBackgroundColor,\n IconColor,\n TagSeverity,\n TextColor,\n} from '@metamask/design-system-shared';\n\nexport const MAP_TAG_SEVERITY_BACKGROUND: Record<\n TagSeverity,\n BoxBackgroundColor\n> = {\n [TagSeverity.Neutral]: BoxBackgroundColor.BackgroundMuted,\n [TagSeverity.Success]: BoxBackgroundColor.SuccessMuted,\n [TagSeverity.Error]: BoxBackgroundColor.ErrorMuted,\n [TagSeverity.Warning]: BoxBackgroundColor.WarningMuted,\n [TagSeverity.Info]: BoxBackgroundColor.InfoMuted,\n};\n\nexport const MAP_TAG_SEVERITY_TEXT_COLOR: Record<TagSeverity, TextColor> = {\n [TagSeverity.Neutral]: TextColor.TextDefault,\n [TagSeverity.Success]: TextColor.SuccessDefault,\n [TagSeverity.Error]: TextColor.ErrorDefault,\n [TagSeverity.Warning]: TextColor.WarningDefault,\n [TagSeverity.Info]: TextColor.InfoDefault,\n};\n\nexport const MAP_TAG_SEVERITY_ICON_COLOR: Record<TagSeverity, IconColor> = {\n [TagSeverity.Neutral]: IconColor.IconDefault,\n [TagSeverity.Success]: IconColor.SuccessDefault,\n [TagSeverity.Error]: IconColor.ErrorDefault,\n [TagSeverity.Warning]: IconColor.WarningDefault,\n [TagSeverity.Info]: IconColor.InfoDefault,\n};\n"]}
|
|
@@ -25,150 +25,37 @@ var __importStar = (this && this.__importStar) || function (mod) {
|
|
|
25
25
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
26
|
exports.Toast = void 0;
|
|
27
27
|
// Third party dependencies.
|
|
28
|
-
const design_system_twrnc_preset_1 = require("@metamask/design-system-twrnc-preset");
|
|
29
28
|
const react_1 = __importStar(require("react"));
|
|
30
|
-
const
|
|
31
|
-
|
|
32
|
-
const
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
const
|
|
39
|
-
const
|
|
40
|
-
const Text_1 = require("../Text/index.cjs");
|
|
41
|
-
// Internal dependencies.
|
|
42
|
-
const Toast_constants_1 = require("./Toast.constants.cjs");
|
|
43
|
-
const Toast_types_1 = require("./Toast.types.cjs");
|
|
44
|
-
const screenHeight = react_native_1.Dimensions.get('window').height;
|
|
45
|
-
exports.Toast = (0, react_1.forwardRef)(({ twClassName, labelsContainerProps, ...props }, ref) => {
|
|
46
|
-
const tw = (0, design_system_twrnc_preset_1.useTailwind)();
|
|
47
|
-
const [toastOptions, setToastOptions] = (0, react_1.useState)(undefined);
|
|
48
|
-
const replacementTimerRef = (0, react_1.useRef)(null);
|
|
49
|
-
const { bottom: bottomNotchSpacing } = (0, react_native_safe_area_context_1.useSafeAreaInsets)();
|
|
50
|
-
const translateYProgress = (0, react_native_reanimated_1.useSharedValue)(screenHeight);
|
|
51
|
-
const bottomOffset = toastOptions?.bottomOffset ?? 0;
|
|
52
|
-
const animatedStyle = (0, react_native_reanimated_1.useAnimatedStyle)(() => ({
|
|
53
|
-
transform: [{ translateY: translateYProgress.value - bottomOffset }],
|
|
54
|
-
}));
|
|
55
|
-
const baseStyle = (0, react_1.useMemo)(() => [
|
|
56
|
-
tw.style('absolute left-4 right-4 bottom-0 bg-background-section border border-border-muted rounded-xl p-3 flex-row items-center', twClassName),
|
|
57
|
-
animatedStyle,
|
|
58
|
-
], [tw, animatedStyle, twClassName]);
|
|
59
|
-
const resetState = () => setToastOptions(undefined);
|
|
60
|
-
const showToast = (options) => {
|
|
61
|
-
let timeoutDuration = 0;
|
|
62
|
-
if (toastOptions) {
|
|
63
|
-
(0, react_native_reanimated_1.cancelAnimation)(translateYProgress);
|
|
64
|
-
timeoutDuration = 100;
|
|
65
|
-
// Clear existing toast state to prevent animation conflicts when showing rapid successive toasts
|
|
66
|
-
setToastOptions(undefined);
|
|
67
|
-
}
|
|
68
|
-
if (replacementTimerRef.current !== null) {
|
|
69
|
-
clearTimeout(replacementTimerRef.current);
|
|
70
|
-
}
|
|
71
|
-
replacementTimerRef.current = setTimeout(() => {
|
|
72
|
-
replacementTimerRef.current = null;
|
|
73
|
-
setToastOptions(options);
|
|
74
|
-
}, timeoutDuration);
|
|
75
|
-
};
|
|
76
|
-
const closeToast = () => {
|
|
77
|
-
if (replacementTimerRef.current !== null) {
|
|
78
|
-
clearTimeout(replacementTimerRef.current);
|
|
79
|
-
replacementTimerRef.current = null;
|
|
80
|
-
}
|
|
81
|
-
translateYProgress.value = (0, react_native_reanimated_1.withTiming)(screenHeight, { duration: Toast_constants_1.TOAST_ANIMATION_DURATION }, () => {
|
|
82
|
-
(0, react_native_reanimated_1.runOnJS)(resetState)();
|
|
83
|
-
});
|
|
84
|
-
};
|
|
29
|
+
const ToastView_1 = require("./ToastView.cjs");
|
|
30
|
+
let registeredRef = null;
|
|
31
|
+
const assertRegisteredRef = (method) => {
|
|
32
|
+
if (!registeredRef?.current) {
|
|
33
|
+
throw new Error(`Toast.${method}() called before <Toast /> mounted. Render <Toast /> once at the root of your app.`);
|
|
34
|
+
}
|
|
35
|
+
return registeredRef.current;
|
|
36
|
+
};
|
|
37
|
+
const ToastComponent = (0, react_1.forwardRef)((props, ref) => {
|
|
38
|
+
const innerRef = (0, react_1.useRef)(null);
|
|
85
39
|
(0, react_1.useImperativeHandle)(ref, () => ({
|
|
86
|
-
showToast,
|
|
87
|
-
closeToast,
|
|
88
|
-
}));
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
translateYProgress.value = height;
|
|
95
|
-
if (toastOptions.hasNoTimeout) {
|
|
96
|
-
translateYProgress.value = (0, react_native_reanimated_1.withTiming)(translateYToValue, {
|
|
97
|
-
duration: Toast_constants_1.TOAST_ANIMATION_DURATION,
|
|
98
|
-
});
|
|
99
|
-
}
|
|
100
|
-
else {
|
|
101
|
-
translateYProgress.value = (0, react_native_reanimated_1.withTiming)(translateYToValue, { duration: Toast_constants_1.TOAST_ANIMATION_DURATION }, () => {
|
|
102
|
-
translateYProgress.value = (0, react_native_reanimated_1.withDelay)(Toast_constants_1.TOAST_VISIBILITY_DURATION, (0, react_native_reanimated_1.withTiming)(height, { duration: Toast_constants_1.TOAST_ANIMATION_DURATION }, (0, react_native_reanimated_1.runOnJS)(resetState)));
|
|
103
|
-
});
|
|
104
|
-
}
|
|
105
|
-
}
|
|
106
|
-
};
|
|
107
|
-
const renderLabel = (labelOptions) => (<Text_1.Text variant={Text_1.TextVariant.BodyMd}>
|
|
108
|
-
{labelOptions.map(({ label, isBold }, index) => (<Text_1.Text key={`toast-label-${index}`} variant={Text_1.TextVariant.BodyMd} fontWeight={isBold ? Text_1.FontWeight.Bold : undefined} color={Text_1.TextColor.TextDefault}>
|
|
109
|
-
{label}
|
|
110
|
-
</Text_1.Text>))}
|
|
111
|
-
</Text_1.Text>);
|
|
112
|
-
const renderDescription = (descriptionOptions) => descriptionOptions && (<Text_1.Text variant={Text_1.TextVariant.BodySm} color={Text_1.TextColor.TextAlternative} style={tw.style('mt-1')}>
|
|
113
|
-
{descriptionOptions.description}
|
|
114
|
-
</Text_1.Text>);
|
|
115
|
-
const renderActionButton = (linkButtonOptions) => linkButtonOptions && (<Button_1.Button variant={Button_1.ButtonVariant.Secondary} onPress={linkButtonOptions.onPress} style={tw.style('mt-2')}>
|
|
116
|
-
{linkButtonOptions.label}
|
|
117
|
-
</Button_1.Button>);
|
|
118
|
-
const renderCloseButton = (closeButtonOptions) => {
|
|
119
|
-
if (closeButtonOptions && 'iconName' in closeButtonOptions) {
|
|
120
|
-
const iconOptions = closeButtonOptions;
|
|
121
|
-
return (<ButtonIcon_1.ButtonIcon iconName={iconOptions.iconName} onPress={(e) => iconOptions.onPress?.(e)} size={iconOptions.size} isDisabled={iconOptions.isDisabled} twClassName={iconOptions.twClassName} style={iconOptions.style} iconProps={iconOptions.iconProps}/>);
|
|
122
|
-
}
|
|
123
|
-
return (<Button_1.Button variant={Button_1.ButtonVariant.Primary} onPress={(e) => closeButtonOptions?.onPress?.(e)} startIconName={closeButtonOptions?.startIconName} endIconName={closeButtonOptions?.endIconName} style={closeButtonOptions?.style}>
|
|
124
|
-
{closeButtonOptions?.children}
|
|
125
|
-
</Button_1.Button>);
|
|
126
|
-
};
|
|
127
|
-
const renderAvatar = () => {
|
|
128
|
-
switch (toastOptions?.variant) {
|
|
129
|
-
case Toast_types_1.ToastVariant.Plain:
|
|
130
|
-
return null;
|
|
131
|
-
case Toast_types_1.ToastVariant.Account: {
|
|
132
|
-
const { accountAddress, accountAvatarType } = toastOptions;
|
|
133
|
-
return (<AvatarAccount_1.AvatarAccount address={accountAddress} variant={accountAvatarType} size={AvatarAccount_1.AvatarAccountSize.Md} style={tw.style('mr-4')}/>);
|
|
134
|
-
}
|
|
135
|
-
case Toast_types_1.ToastVariant.Network: {
|
|
136
|
-
const { networkImageSource, networkName } = toastOptions;
|
|
137
|
-
return (<AvatarNetwork_1.AvatarNetwork name={networkName} src={networkImageSource} size={AvatarNetwork_1.AvatarNetworkSize.Md} style={tw.style('mr-4')}/>);
|
|
40
|
+
showToast: (options) => innerRef.current?.showToast(options),
|
|
41
|
+
closeToast: () => innerRef.current?.closeToast(),
|
|
42
|
+
}), []);
|
|
43
|
+
(0, react_1.useEffect)(() => {
|
|
44
|
+
registeredRef = innerRef;
|
|
45
|
+
return () => {
|
|
46
|
+
if (registeredRef === innerRef) {
|
|
47
|
+
registeredRef = null;
|
|
138
48
|
}
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
}
|
|
143
|
-
case Toast_types_1.ToastVariant.Icon: {
|
|
144
|
-
const { iconName, severity } = toastOptions;
|
|
145
|
-
return (<AvatarIcon_1.AvatarIcon iconName={iconName} severity={severity} size={AvatarIcon_1.AvatarIconSize.Md} style={tw.style('mr-4')}/>);
|
|
146
|
-
}
|
|
147
|
-
/* istanbul ignore next - all variants handled above */
|
|
148
|
-
default:
|
|
149
|
-
return null;
|
|
150
|
-
}
|
|
151
|
-
};
|
|
152
|
-
const renderToastContent = (options) => {
|
|
153
|
-
const { labelOptions, descriptionOptions, linkButtonOptions, closeButtonOptions, startAccessory, } = options;
|
|
154
|
-
const isStartAccessoryValid = startAccessory !== null &&
|
|
155
|
-
startAccessory !== undefined &&
|
|
156
|
-
(0, react_1.isValidElement)(startAccessory);
|
|
157
|
-
return (<>
|
|
158
|
-
{isStartAccessoryValid ? startAccessory : renderAvatar()}
|
|
159
|
-
<react_native_1.View style={tw.style('flex-1 justify-center')} {...labelsContainerProps}>
|
|
160
|
-
{renderLabel(labelOptions)}
|
|
161
|
-
{renderDescription(descriptionOptions)}
|
|
162
|
-
{renderActionButton(linkButtonOptions)}
|
|
163
|
-
</react_native_1.View>
|
|
164
|
-
{closeButtonOptions ? renderCloseButton(closeButtonOptions) : null}
|
|
165
|
-
</>);
|
|
166
|
-
};
|
|
167
|
-
if (!toastOptions) {
|
|
168
|
-
return null;
|
|
169
|
-
}
|
|
170
|
-
return (<react_native_reanimated_1.default.View onLayout={onAnimatedViewLayout} style={baseStyle} {...props}>
|
|
171
|
-
{renderToastContent(toastOptions)}
|
|
172
|
-
</react_native_reanimated_1.default.View>);
|
|
49
|
+
};
|
|
50
|
+
}, []);
|
|
51
|
+
return <ToastView_1.ToastView ref={innerRef} {...props}/>;
|
|
173
52
|
});
|
|
53
|
+
ToastComponent.displayName = 'Toast';
|
|
54
|
+
exports.Toast = ToastComponent;
|
|
55
|
+
exports.Toast.show = (options) => {
|
|
56
|
+
assertRegisteredRef('show').showToast(options);
|
|
57
|
+
};
|
|
58
|
+
exports.Toast.hide = () => {
|
|
59
|
+
assertRegisteredRef('hide').closeToast();
|
|
60
|
+
};
|
|
174
61
|
//# sourceMappingURL=Toast.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Toast.cjs","sourceRoot":"","sources":["../../../src/components/Toast/Toast.tsx"],"names":[],"mappings":"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","sourcesContent":["// Third party dependencies.\nimport { useTailwind } from '@metamask/design-system-twrnc-preset';\nimport React, {\n forwardRef,\n isValidElement,\n useImperativeHandle,\n useMemo,\n useRef,\n useState,\n} from 'react';\nimport { Dimensions, View } from 'react-native';\nimport type { LayoutChangeEvent, StyleProp, ViewStyle } from 'react-native';\nimport Animated, {\n cancelAnimation,\n runOnJS,\n useAnimatedStyle,\n useSharedValue,\n withDelay,\n withTiming,\n} from 'react-native-reanimated';\nimport { useSafeAreaInsets } from 'react-native-safe-area-context';\n\n// External dependencies.\nimport { AvatarAccount, AvatarAccountSize } from '../AvatarAccount';\nimport { AvatarFavicon, AvatarFaviconSize } from '../AvatarFavicon';\nimport { AvatarIcon, AvatarIconSize } from '../AvatarIcon';\nimport { AvatarNetwork, AvatarNetworkSize } from '../AvatarNetwork';\nimport { Button, ButtonVariant } from '../Button';\nimport { ButtonIcon } from '../ButtonIcon';\nimport { Text, TextVariant, TextColor, FontWeight } from '../Text';\n\n// Internal dependencies.\nimport {\n TOAST_VISIBILITY_DURATION,\n TOAST_ANIMATION_DURATION,\n TOAST_BOTTOM_PADDING,\n} from './Toast.constants';\nimport type {\n ToastCloseButtonIconOptions,\n ToastCloseButtonOptions,\n ToastDescriptionOptions,\n ToastLabelOptions,\n ToastLinkButtonOptions,\n ToastOptions,\n ToastProps,\n ToastRef,\n} from './Toast.types';\nimport { ToastVariant } from './Toast.types';\n\nconst screenHeight = Dimensions.get('window').height;\n\nexport const Toast = forwardRef<ToastRef, ToastProps>(\n ({ twClassName, labelsContainerProps, ...props }, ref) => {\n const tw = useTailwind();\n const [toastOptions, setToastOptions] = useState<ToastOptions | undefined>(\n undefined,\n );\n const replacementTimerRef = useRef<ReturnType<typeof setTimeout> | null>(\n null,\n );\n const { bottom: bottomNotchSpacing } = useSafeAreaInsets();\n const translateYProgress = useSharedValue(screenHeight);\n const bottomOffset = toastOptions?.bottomOffset ?? 0;\n const animatedStyle = useAnimatedStyle(() => ({\n transform: [{ translateY: translateYProgress.value - bottomOffset }],\n }));\n const baseStyle: StyleProp<ViewStyle> = useMemo(\n () => [\n tw.style(\n 'absolute left-4 right-4 bottom-0 bg-background-section border border-border-muted rounded-xl p-3 flex-row items-center',\n twClassName,\n ),\n animatedStyle,\n ],\n [tw, animatedStyle, twClassName],\n );\n\n const resetState = () => setToastOptions(undefined);\n\n const showToast = (options: ToastOptions) => {\n let timeoutDuration = 0;\n if (toastOptions) {\n cancelAnimation(translateYProgress);\n timeoutDuration = 100;\n // Clear existing toast state to prevent animation conflicts when showing rapid successive toasts\n setToastOptions(undefined);\n }\n if (replacementTimerRef.current !== null) {\n clearTimeout(replacementTimerRef.current);\n }\n replacementTimerRef.current = setTimeout(() => {\n replacementTimerRef.current = null;\n setToastOptions(options);\n }, timeoutDuration);\n };\n\n const closeToast = () => {\n if (replacementTimerRef.current !== null) {\n clearTimeout(replacementTimerRef.current);\n replacementTimerRef.current = null;\n }\n translateYProgress.value = withTiming(\n screenHeight,\n { duration: TOAST_ANIMATION_DURATION },\n () => {\n runOnJS(resetState)();\n },\n );\n };\n\n useImperativeHandle(ref, () => ({\n showToast,\n closeToast,\n }));\n\n const onAnimatedViewLayout = (e: LayoutChangeEvent) => {\n /* istanbul ignore next - guard only; layout fires when toastOptions is set */\n if (toastOptions) {\n const { height } = e.nativeEvent.layout;\n const translateYToValue = -(TOAST_BOTTOM_PADDING + bottomNotchSpacing);\n\n translateYProgress.value = height;\n\n if (toastOptions.hasNoTimeout) {\n translateYProgress.value = withTiming(translateYToValue, {\n duration: TOAST_ANIMATION_DURATION,\n });\n } else {\n translateYProgress.value = withTiming(\n translateYToValue,\n { duration: TOAST_ANIMATION_DURATION },\n () => {\n translateYProgress.value = withDelay(\n TOAST_VISIBILITY_DURATION,\n withTiming(\n height,\n { duration: TOAST_ANIMATION_DURATION },\n runOnJS(resetState),\n ),\n );\n },\n );\n }\n }\n };\n\n const renderLabel = (labelOptions: ToastLabelOptions) => (\n <Text variant={TextVariant.BodyMd}>\n {labelOptions.map(({ label, isBold }, index) => (\n <Text\n key={`toast-label-${index}`}\n variant={TextVariant.BodyMd}\n fontWeight={isBold ? FontWeight.Bold : undefined}\n color={TextColor.TextDefault}\n >\n {label}\n </Text>\n ))}\n </Text>\n );\n\n const renderDescription = (descriptionOptions?: ToastDescriptionOptions) =>\n descriptionOptions && (\n <Text\n variant={TextVariant.BodySm}\n color={TextColor.TextAlternative}\n style={tw.style('mt-1')}\n >\n {descriptionOptions.description}\n </Text>\n );\n\n const renderActionButton = (linkButtonOptions?: ToastLinkButtonOptions) =>\n linkButtonOptions && (\n <Button\n variant={ButtonVariant.Secondary}\n onPress={linkButtonOptions.onPress}\n style={tw.style('mt-2')}\n >\n {linkButtonOptions.label}\n </Button>\n );\n\n const renderCloseButton = (\n closeButtonOptions?: ToastCloseButtonOptions,\n ) => {\n if (closeButtonOptions && 'iconName' in closeButtonOptions) {\n const iconOptions = closeButtonOptions as ToastCloseButtonIconOptions;\n return (\n <ButtonIcon\n iconName={iconOptions.iconName}\n onPress={(e) => iconOptions.onPress?.(e)}\n size={iconOptions.size}\n isDisabled={iconOptions.isDisabled}\n twClassName={iconOptions.twClassName}\n style={iconOptions.style}\n iconProps={iconOptions.iconProps}\n />\n );\n }\n return (\n <Button\n variant={ButtonVariant.Primary}\n onPress={(e) => closeButtonOptions?.onPress?.(e)}\n startIconName={closeButtonOptions?.startIconName}\n endIconName={closeButtonOptions?.endIconName}\n style={closeButtonOptions?.style}\n >\n {closeButtonOptions?.children}\n </Button>\n );\n };\n\n const renderAvatar = () => {\n switch (toastOptions?.variant) {\n case ToastVariant.Plain:\n return null;\n case ToastVariant.Account: {\n const { accountAddress, accountAvatarType } = toastOptions;\n return (\n <AvatarAccount\n address={accountAddress}\n variant={accountAvatarType}\n size={AvatarAccountSize.Md}\n style={tw.style('mr-4')}\n />\n );\n }\n case ToastVariant.Network: {\n const { networkImageSource, networkName } = toastOptions;\n return (\n <AvatarNetwork\n name={networkName}\n src={networkImageSource}\n size={AvatarNetworkSize.Md}\n style={tw.style('mr-4')}\n />\n );\n }\n case ToastVariant.App: {\n const { appIconSource } = toastOptions;\n return (\n <AvatarFavicon\n src={appIconSource}\n size={AvatarFaviconSize.Md}\n style={tw.style('mr-4')}\n />\n );\n }\n case ToastVariant.Icon: {\n const { iconName, severity } = toastOptions;\n return (\n <AvatarIcon\n iconName={iconName}\n severity={severity}\n size={AvatarIconSize.Md}\n style={tw.style('mr-4')}\n />\n );\n }\n /* istanbul ignore next - all variants handled above */\n default:\n return null;\n }\n };\n\n const renderToastContent = (options: ToastOptions) => {\n const {\n labelOptions,\n descriptionOptions,\n linkButtonOptions,\n closeButtonOptions,\n startAccessory,\n } = options;\n\n const isStartAccessoryValid =\n startAccessory !== null &&\n startAccessory !== undefined &&\n isValidElement(startAccessory);\n\n return (\n <>\n {isStartAccessoryValid ? startAccessory : renderAvatar()}\n <View\n style={tw.style('flex-1 justify-center')}\n {...labelsContainerProps}\n >\n {renderLabel(labelOptions)}\n {renderDescription(descriptionOptions)}\n {renderActionButton(linkButtonOptions)}\n </View>\n {closeButtonOptions ? renderCloseButton(closeButtonOptions) : null}\n </>\n );\n };\n\n if (!toastOptions) {\n return null;\n }\n\n return (\n <Animated.View\n onLayout={onAnimatedViewLayout}\n style={baseStyle}\n {...props}\n >\n {renderToastContent(toastOptions)}\n </Animated.View>\n );\n },\n);\n"]}
|
|
1
|
+
{"version":3,"file":"Toast.cjs","sourceRoot":"","sources":["../../../src/components/Toast/Toast.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,4BAA4B;AAC5B,+CAKe;AAKf,+CAAwC;AAExC,IAAI,aAAa,GAA+B,IAAI,CAAC;AAErD,MAAM,mBAAmB,GAAG,CAAC,MAAc,EAAY,EAAE;IACvD,IAAI,CAAC,aAAa,EAAE,OAAO,EAAE;QAC3B,MAAM,IAAI,KAAK,CACb,SAAS,MAAM,oFAAoF,CACpG,CAAC;KACH;IACD,OAAO,aAAa,CAAC,OAAO,CAAC;AAC/B,CAAC,CAAC;AAEF,MAAM,cAAc,GAAG,IAAA,kBAAU,EAAuB,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE;IACrE,MAAM,QAAQ,GAAG,IAAA,cAAM,EAAW,IAAI,CAAC,CAAC;IAExC,IAAA,2BAAmB,EACjB,GAAG,EACH,GAAG,EAAE,CAAC,CAAC;QACL,SAAS,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,QAAQ,CAAC,OAAO,EAAE,SAAS,CAAC,OAAO,CAAC;QAC5D,UAAU,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,OAAO,EAAE,UAAU,EAAE;KACjD,CAAC,EACF,EAAE,CACH,CAAC;IAEF,IAAA,iBAAS,EAAC,GAAG,EAAE;QACb,aAAa,GAAG,QAAQ,CAAC;QACzB,OAAO,GAAG,EAAE;YACV,IAAI,aAAa,KAAK,QAAQ,EAAE;gBAC9B,aAAa,GAAG,IAAI,CAAC;aACtB;QACH,CAAC,CAAC;IACJ,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,OAAO,CAAC,qBAAS,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC,IAAI,KAAK,CAAC,EAAG,CAAC;AACjD,CAAC,CAAC,CAAC;AAEH,cAAc,CAAC,WAAW,GAAG,OAAO,CAAC;AAaxB,QAAA,KAAK,GAAG,cAAkC,CAAC;AAExD,aAAK,CAAC,IAAI,GAAG,CAAC,OAAO,EAAE,EAAE;IACvB,mBAAmB,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;AACjD,CAAC,CAAC;AAEF,aAAK,CAAC,IAAI,GAAG,GAAG,EAAE;IAChB,mBAAmB,CAAC,MAAM,CAAC,CAAC,UAAU,EAAE,CAAC;AAC3C,CAAC,CAAC","sourcesContent":["// Third party dependencies.\nimport React, {\n forwardRef,\n useEffect,\n useImperativeHandle,\n useRef,\n} from 'react';\nimport type { RefObject } from 'react';\n\n// Internal dependencies.\nimport type { ToastOptions, ToastProps, ToastRef } from './Toast.types';\nimport { ToastView } from './ToastView';\n\nlet registeredRef: RefObject<ToastRef> | null = null;\n\nconst assertRegisteredRef = (method: string): ToastRef => {\n if (!registeredRef?.current) {\n throw new Error(\n `Toast.${method}() called before <Toast /> mounted. Render <Toast /> once at the root of your app.`,\n );\n }\n return registeredRef.current;\n};\n\nconst ToastComponent = forwardRef<ToastRef, ToastProps>((props, ref) => {\n const innerRef = useRef<ToastRef>(null);\n\n useImperativeHandle(\n ref,\n () => ({\n showToast: (options) => innerRef.current?.showToast(options),\n closeToast: () => innerRef.current?.closeToast(),\n }),\n [],\n );\n\n useEffect(() => {\n registeredRef = innerRef;\n return () => {\n if (registeredRef === innerRef) {\n registeredRef = null;\n }\n };\n }, []);\n\n return <ToastView ref={innerRef} {...props} />;\n});\n\nToastComponent.displayName = 'Toast';\n\ntype ToastWithStatics = typeof ToastComponent & {\n /**\n * Show a toast notification. Requires `<Toast />` to be mounted.\n */\n show: (options: ToastOptions) => void;\n /**\n * Hide the currently visible toast, if any.\n */\n hide: () => void;\n};\n\nexport const Toast = ToastComponent as ToastWithStatics;\n\nToast.show = (options) => {\n assertRegisteredRef('show').showToast(options);\n};\n\nToast.hide = () => {\n assertRegisteredRef('hide').closeToast();\n};\n"]}
|
|
@@ -1,7 +1,19 @@
|
|
|
1
1
|
import React from "react";
|
|
2
|
-
import type { ToastRef } from "./Toast.types.cjs";
|
|
3
|
-
|
|
2
|
+
import type { ToastOptions, ToastRef } from "./Toast.types.cjs";
|
|
3
|
+
declare const ToastComponent: React.ForwardRefExoticComponent<{
|
|
4
4
|
twClassName?: string | undefined;
|
|
5
5
|
labelsContainerProps?: Omit<import("react-native").ViewProps, "children" | "style"> | undefined;
|
|
6
6
|
} & Omit<import("react-native").ViewProps, "style"> & React.RefAttributes<ToastRef>>;
|
|
7
|
+
type ToastWithStatics = typeof ToastComponent & {
|
|
8
|
+
/**
|
|
9
|
+
* Show a toast notification. Requires `<Toast />` to be mounted.
|
|
10
|
+
*/
|
|
11
|
+
show: (options: ToastOptions) => void;
|
|
12
|
+
/**
|
|
13
|
+
* Hide the currently visible toast, if any.
|
|
14
|
+
*/
|
|
15
|
+
hide: () => void;
|
|
16
|
+
};
|
|
17
|
+
export declare const Toast: ToastWithStatics;
|
|
18
|
+
export {};
|
|
7
19
|
//# sourceMappingURL=Toast.d.cts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Toast.d.cts","sourceRoot":"","sources":["../../../src/components/Toast/Toast.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"Toast.d.cts","sourceRoot":"","sources":["../../../src/components/Toast/Toast.tsx"],"names":[],"mappings":"AACA,OAAO,KAKN,cAAc;AAIf,OAAO,KAAK,EAAE,YAAY,EAAc,QAAQ,EAAE,0BAAsB;AAcxE,QAAA,MAAM,cAAc;;;oFAsBlB,CAAC;AAIH,KAAK,gBAAgB,GAAG,OAAO,cAAc,GAAG;IAC9C;;OAEG;IACH,IAAI,EAAE,CAAC,OAAO,EAAE,YAAY,KAAK,IAAI,CAAC;IACtC;;OAEG;IACH,IAAI,EAAE,MAAM,IAAI,CAAC;CAClB,CAAC;AAEF,eAAO,MAAM,KAAK,kBAAqC,CAAC"}
|
|
@@ -1,7 +1,19 @@
|
|
|
1
1
|
import React from "react";
|
|
2
|
-
import type { ToastRef } from "./Toast.types.mjs";
|
|
3
|
-
|
|
2
|
+
import type { ToastOptions, ToastRef } from "./Toast.types.mjs";
|
|
3
|
+
declare const ToastComponent: React.ForwardRefExoticComponent<{
|
|
4
4
|
twClassName?: string | undefined;
|
|
5
5
|
labelsContainerProps?: Omit<import("react-native").ViewProps, "children" | "style"> | undefined;
|
|
6
6
|
} & Omit<import("react-native").ViewProps, "style"> & React.RefAttributes<ToastRef>>;
|
|
7
|
+
type ToastWithStatics = typeof ToastComponent & {
|
|
8
|
+
/**
|
|
9
|
+
* Show a toast notification. Requires `<Toast />` to be mounted.
|
|
10
|
+
*/
|
|
11
|
+
show: (options: ToastOptions) => void;
|
|
12
|
+
/**
|
|
13
|
+
* Hide the currently visible toast, if any.
|
|
14
|
+
*/
|
|
15
|
+
hide: () => void;
|
|
16
|
+
};
|
|
17
|
+
export declare const Toast: ToastWithStatics;
|
|
18
|
+
export {};
|
|
7
19
|
//# sourceMappingURL=Toast.d.mts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Toast.d.mts","sourceRoot":"","sources":["../../../src/components/Toast/Toast.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"Toast.d.mts","sourceRoot":"","sources":["../../../src/components/Toast/Toast.tsx"],"names":[],"mappings":"AACA,OAAO,KAKN,cAAc;AAIf,OAAO,KAAK,EAAE,YAAY,EAAc,QAAQ,EAAE,0BAAsB;AAcxE,QAAA,MAAM,cAAc;;;oFAsBlB,CAAC;AAIH,KAAK,gBAAgB,GAAG,OAAO,cAAc,GAAG;IAC9C;;OAEG;IACH,IAAI,EAAE,CAAC,OAAO,EAAE,YAAY,KAAK,IAAI,CAAC;IACtC;;OAEG;IACH,IAAI,EAAE,MAAM,IAAI,CAAC;CAClB,CAAC;AAEF,eAAO,MAAM,KAAK,kBAAqC,CAAC"}
|