@ledgerhq/lumen-ui-rnative 0.0.69 → 0.0.71

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.
Files changed (83) hide show
  1. package/.storybook/mocks/blur.tsx +1 -2
  2. package/.storybook/preview.tsx +4 -0
  3. package/dist/package.json +4 -4
  4. package/dist/src/index.d.ts +1 -0
  5. package/dist/src/index.d.ts.map +1 -1
  6. package/dist/src/index.js +1 -0
  7. package/dist/src/lib/Animations/Pulse/Pulse.d.ts +3 -0
  8. package/dist/src/lib/Animations/Pulse/Pulse.d.ts.map +1 -0
  9. package/dist/src/lib/Animations/Pulse/Pulse.js +46 -0
  10. package/dist/src/lib/Animations/Pulse/Pulse.stories.d.ts +9 -0
  11. package/dist/src/lib/Animations/Pulse/Pulse.stories.d.ts.map +1 -0
  12. package/dist/src/lib/Animations/Pulse/Pulse.stories.js +38 -0
  13. package/dist/src/lib/Animations/Pulse/index.d.ts +3 -0
  14. package/dist/src/lib/Animations/Pulse/index.d.ts.map +1 -0
  15. package/dist/src/lib/Animations/Pulse/index.js +2 -0
  16. package/dist/src/lib/Animations/Pulse/types.d.ts +18 -0
  17. package/dist/src/lib/Animations/Pulse/types.d.ts.map +1 -0
  18. package/dist/src/lib/Animations/Pulse/types.js +1 -0
  19. package/dist/src/lib/Animations/Spin/Spin.d.ts +3 -0
  20. package/dist/src/lib/Animations/Spin/Spin.d.ts.map +1 -0
  21. package/dist/src/lib/Animations/Spin/Spin.js +23 -0
  22. package/dist/src/lib/Animations/Spin/Spin.stories.d.ts +9 -0
  23. package/dist/src/lib/Animations/Spin/Spin.stories.d.ts.map +1 -0
  24. package/dist/src/lib/Animations/Spin/Spin.stories.js +27 -0
  25. package/dist/src/lib/Animations/Spin/index.d.ts +3 -0
  26. package/dist/src/lib/Animations/Spin/index.d.ts.map +1 -0
  27. package/dist/src/lib/Animations/Spin/index.js +2 -0
  28. package/dist/src/lib/Animations/Spin/types.d.ts +14 -0
  29. package/dist/src/lib/Animations/Spin/types.d.ts.map +1 -0
  30. package/dist/src/lib/Animations/Spin/types.js +1 -0
  31. package/dist/src/lib/Animations/index.d.ts +4 -0
  32. package/dist/src/lib/Animations/index.d.ts.map +1 -0
  33. package/dist/src/lib/Animations/index.js +3 -0
  34. package/dist/src/lib/Animations/types.d.ts +2 -0
  35. package/dist/src/lib/Animations/types.d.ts.map +1 -0
  36. package/dist/src/lib/Animations/types.js +1 -0
  37. package/dist/src/lib/Components/AmountDisplay/AmountDisplay.d.ts +5 -7
  38. package/dist/src/lib/Components/AmountDisplay/AmountDisplay.d.ts.map +1 -1
  39. package/dist/src/lib/Components/AmountDisplay/AmountDisplay.js +7 -6
  40. package/dist/src/lib/Components/AmountDisplay/AmountDisplay.stories.d.ts +1 -0
  41. package/dist/src/lib/Components/AmountDisplay/AmountDisplay.stories.d.ts.map +1 -1
  42. package/dist/src/lib/Components/AmountDisplay/AmountDisplay.stories.js +5 -0
  43. package/dist/src/lib/Components/AmountDisplay/types.d.ts +7 -1
  44. package/dist/src/lib/Components/AmountDisplay/types.d.ts.map +1 -1
  45. package/dist/src/lib/Components/CardButton/CardButton.js +3 -3
  46. package/dist/src/lib/Components/Spinner/Spinner.d.ts.map +1 -1
  47. package/dist/src/lib/Components/Spinner/Spinner.js +2 -23
  48. package/dist/src/lib/Components/TabBar/TabBar.d.ts +1 -0
  49. package/dist/src/lib/Components/TabBar/TabBar.d.ts.map +1 -1
  50. package/dist/src/lib/Components/TabBar/TabBar.js +2 -1
  51. package/dist/src/lib/Components/TabBar/index.d.ts +1 -1
  52. package/dist/src/lib/Components/TabBar/index.d.ts.map +1 -1
  53. package/dist/src/lib/Components/TabBar/index.js +1 -1
  54. package/dist/src/lib/Components/TileButton/TileButton.d.ts +4 -3
  55. package/dist/src/lib/Components/TileButton/TileButton.d.ts.map +1 -1
  56. package/dist/src/lib/Components/TileButton/TileButton.js +3 -4
  57. package/dist/src/styles/types/factories.types.d.ts +1 -1
  58. package/dist/src/styles/types/factories.types.d.ts.map +1 -1
  59. package/package.json +4 -4
  60. package/src/index.ts +1 -0
  61. package/src/lib/Animations/Pulse/Pulse.mdx +86 -0
  62. package/src/lib/Animations/Pulse/Pulse.stories.tsx +90 -0
  63. package/src/lib/Animations/Pulse/Pulse.tsx +55 -0
  64. package/src/lib/Animations/Pulse/index.ts +2 -0
  65. package/src/lib/Animations/Pulse/types.ts +18 -0
  66. package/src/lib/Animations/Spin/Spin.mdx +85 -0
  67. package/src/lib/Animations/Spin/Spin.stories.tsx +72 -0
  68. package/src/lib/Animations/Spin/Spin.tsx +34 -0
  69. package/src/lib/Animations/Spin/index.ts +2 -0
  70. package/src/lib/Animations/Spin/types.ts +14 -0
  71. package/src/lib/Animations/index.ts +3 -0
  72. package/src/lib/Animations/types.ts +11 -0
  73. package/src/lib/Components/AmountDisplay/AmountDisplay.mdx +6 -0
  74. package/src/lib/Components/AmountDisplay/AmountDisplay.stories.tsx +12 -0
  75. package/src/lib/Components/AmountDisplay/AmountDisplay.test.tsx +13 -0
  76. package/src/lib/Components/AmountDisplay/AmountDisplay.tsx +39 -35
  77. package/src/lib/Components/AmountDisplay/types.ts +7 -1
  78. package/src/lib/Components/CardButton/CardButton.tsx +3 -3
  79. package/src/lib/Components/Spinner/Spinner.tsx +3 -35
  80. package/src/lib/Components/TabBar/TabBar.tsx +2 -1
  81. package/src/lib/Components/TabBar/index.ts +1 -1
  82. package/src/lib/Components/TileButton/TileButton.tsx +35 -44
  83. package/src/styles/types/factories.types.ts +1 -1
@@ -1,4 +1,3 @@
1
- import React from 'react';
2
1
  import { View, ViewProps } from 'react-native';
3
2
 
4
3
  /**
@@ -6,6 +5,6 @@ import { View, ViewProps } from 'react-native';
6
5
  * @react-native-community/blur doesn't work on web, so we use a simple View
7
6
  */
8
7
  export const BlurView = (props: ViewProps & { blurAmount?: number }) => {
9
- const { blurAmount, ...restProps } = props;
8
+ const { blurAmount: _blurAmount, ...restProps } = props;
10
9
  return <View {...restProps} />;
11
10
  };
@@ -67,6 +67,10 @@ const preview: Preview = {
67
67
  'Containment',
68
68
  'Selection',
69
69
  'Input',
70
+ 'Layout',
71
+ 'Navigation',
72
+ 'Utility',
73
+ 'Animations',
70
74
  ],
71
75
  },
72
76
  },
package/dist/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ledgerhq/lumen-ui-rnative",
3
- "version": "0.0.68",
3
+ "version": "0.0.70",
4
4
  "license": "Apache-2.0",
5
5
  "keywords": [
6
6
  "react-native",
@@ -27,7 +27,7 @@
27
27
  "./styles": "./src/styles/index.ts"
28
28
  },
29
29
  "dependencies": {
30
- "@ledgerhq/lumen-utils-shared": "0.0.17",
30
+ "@ledgerhq/lumen-utils-shared": "0.0.18",
31
31
  "i18next": "^23.7.0",
32
32
  "react-i18next": "^14.0.0"
33
33
  },
@@ -37,8 +37,8 @@
37
37
  "peerDependencies": {
38
38
  "@types/react": "^19.0.0",
39
39
  "@gorhom/bottom-sheet": "^5.0.0",
40
- "@ledgerhq/lumen-design-core": "0.0.49",
41
- "react": "19.0.0",
40
+ "@ledgerhq/lumen-design-core": "0.0.51",
41
+ "react": "^19.0.0",
42
42
  "react-native": "~0.79.7",
43
43
  "react-native-reanimated": "^3.0.0",
44
44
  "react-native-safe-area-context": "^4.0.0 || ^5.0.0",
@@ -1,4 +1,5 @@
1
1
  export { type SupportedLocale, Languages } from './i18n';
2
2
  export * from './lib/Components';
3
3
  export * from './lib/Patterns';
4
+ export * from './lib/Animations';
4
5
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,eAAe,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AACzD,cAAc,kBAAkB,CAAC;AACjC,cAAc,gBAAgB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,eAAe,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AACzD,cAAc,kBAAkB,CAAC;AACjC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,kBAAkB,CAAC"}
package/dist/src/index.js CHANGED
@@ -1,3 +1,4 @@
1
1
  export { Languages } from './i18n';
2
2
  export * from './lib/Components';
3
3
  export * from './lib/Patterns';
4
+ export * from './lib/Animations';
@@ -0,0 +1,3 @@
1
+ import { PulseProps } from './types';
2
+ export declare const Pulse: import("react").MemoExoticComponent<({ children, duration, animate }: PulseProps) => import("react/jsx-runtime").JSX.Element>;
3
+ //# sourceMappingURL=Pulse.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Pulse.d.ts","sourceRoot":"","sources":["../../../../../src/lib/Animations/Pulse/Pulse.tsx"],"names":[],"mappings":"AAGA,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAErC,eAAO,MAAM,KAAK,wEACyB,UAAU,6CA+CpD,CAAC"}
@@ -0,0 +1,46 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { useRef, useEffect, memo } from 'react';
3
+ import { Animated, Easing } from 'react-native';
4
+ import { RuntimeConstants } from '../../utils';
5
+ export const Pulse = memo(({ children, duration = 2000, animate }) => {
6
+ const pulseAnim = useRef(new Animated.Value(1)).current;
7
+ const animationRef = useRef(null);
8
+ useEffect(() => {
9
+ if (animate) {
10
+ const animation = Animated.loop(Animated.sequence([
11
+ Animated.timing(pulseAnim, {
12
+ toValue: 0,
13
+ duration: duration / 2,
14
+ easing: Easing.linear,
15
+ useNativeDriver: RuntimeConstants.isNative,
16
+ }),
17
+ Animated.timing(pulseAnim, {
18
+ toValue: 1,
19
+ duration: duration / 2,
20
+ easing: Easing.linear,
21
+ useNativeDriver: RuntimeConstants.isNative,
22
+ }),
23
+ ]));
24
+ animationRef.current = animation;
25
+ animation.start();
26
+ }
27
+ else {
28
+ animationRef.current?.stop();
29
+ Animated.timing(pulseAnim, {
30
+ toValue: 1,
31
+ duration: 200,
32
+ easing: Easing.out(Easing.ease),
33
+ useNativeDriver: RuntimeConstants.isNative,
34
+ }).start();
35
+ }
36
+ return () => {
37
+ animationRef.current?.stop();
38
+ };
39
+ }, [pulseAnim, duration, animate]);
40
+ const pulse = pulseAnim.interpolate({
41
+ inputRange: [0, 1],
42
+ outputRange: [0.35, 1],
43
+ });
44
+ return _jsx(Animated.View, { style: { opacity: pulse }, children: children });
45
+ });
46
+ Pulse.displayName = 'Pulse';
@@ -0,0 +1,9 @@
1
+ import type { Meta, StoryObj } from '@storybook/react-native-web-vite';
2
+ import { Pulse } from './Pulse';
3
+ declare const meta: Meta<typeof Pulse>;
4
+ export default meta;
5
+ type Story = StoryObj<typeof meta>;
6
+ export declare const Base: Story;
7
+ export declare const DurationShowcase: Story;
8
+ export declare const WithAmountDisplay: Story;
9
+ //# sourceMappingURL=Pulse.stories.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Pulse.stories.d.ts","sourceRoot":"","sources":["../../../../../src/lib/Animations/Pulse/Pulse.stories.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,kCAAkC,CAAC;AAKvE,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAchC,QAAA,MAAM,IAAI,EAAE,IAAI,CAAC,OAAO,KAAK,CAMC,CAAC;AAE/B,eAAe,IAAI,CAAC;AACpB,KAAK,KAAK,GAAG,QAAQ,CAAC,OAAO,IAAI,CAAC,CAAC;AAEnC,eAAO,MAAM,IAAI,EAAE,KAQlB,CAAC;AAEF,eAAO,MAAM,gBAAgB,EAAE,KAmC9B,CAAC;AAEF,eAAO,MAAM,iBAAiB,EAAE,KAY/B,CAAC"}
@@ -0,0 +1,38 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { View } from 'react-native';
3
+ import { AmountDisplay } from '../../Components/AmountDisplay';
4
+ import { Box, Text } from '../../Components/Utility';
5
+ import { Pulse } from './Pulse';
6
+ const usdFormatter = (value) => {
7
+ const [integerPart, decimalPart] = value.toFixed(2).split(/\.|,/);
8
+ return {
9
+ integerPart,
10
+ decimalPart,
11
+ currencyText: '$',
12
+ decimalSeparator: '.',
13
+ currencyPosition: 'start',
14
+ };
15
+ };
16
+ const meta = {
17
+ title: 'Animations/Pulse',
18
+ component: Pulse,
19
+ parameters: {
20
+ layout: 'centered',
21
+ },
22
+ };
23
+ export default meta;
24
+ export const Base = {
25
+ args: {
26
+ duration: 2000,
27
+ animate: true,
28
+ children: (_jsx(Box, { lx: { width: 's48', height: 's48', backgroundColor: 'accent' } })),
29
+ },
30
+ };
31
+ export const DurationShowcase = {
32
+ render: () => (_jsxs(View, { style: { flexDirection: 'row', gap: 24, alignItems: 'center' }, children: [_jsxs(View, { style: { alignItems: 'center', gap: 8 }, children: [_jsx(Pulse, { duration: 1000, animate: true, children: _jsx(Box, { lx: { width: 's48', height: 's48', backgroundColor: 'accent' } }) }), _jsx(Text, { typography: 'body4', lx: { color: 'muted' }, children: "1000ms" })] }), _jsxs(View, { style: { alignItems: 'center', gap: 8 }, children: [_jsx(Pulse, { duration: 2000, animate: true, children: _jsx(Box, { lx: { width: 's48', height: 's48', backgroundColor: 'accent' } }) }), _jsx(Text, { typography: 'body4', lx: { color: 'muted' }, children: "2000ms" })] }), _jsxs(View, { style: { alignItems: 'center', gap: 8 }, children: [_jsx(Pulse, { duration: 3000, animate: true, children: _jsx(Box, { lx: { width: 's48', height: 's48', backgroundColor: 'accent' } }) }), _jsx(Text, { typography: 'body4', lx: { color: 'muted' }, children: "3000ms" })] })] })),
33
+ };
34
+ export const WithAmountDisplay = {
35
+ render: () => {
36
+ return (_jsx(View, { style: { flexDirection: 'column', alignItems: 'center', gap: 16 }, children: _jsx(AmountDisplay, { formatter: usdFormatter, value: 1234.56, loading: true }) }));
37
+ },
38
+ };
@@ -0,0 +1,3 @@
1
+ export * from './Pulse';
2
+ export * from './types';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/lib/Animations/Pulse/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAC;AACxB,cAAc,SAAS,CAAC"}
@@ -0,0 +1,2 @@
1
+ export * from './Pulse';
2
+ export * from './types';
@@ -0,0 +1,18 @@
1
+ import { ReactNode } from 'react';
2
+ import { Duration } from '../types';
3
+ export type PulseProps = {
4
+ /**
5
+ * The content to animate
6
+ */
7
+ children: ReactNode;
8
+ /**
9
+ * Duration of one complete pulse in milliseconds
10
+ * @default 2000
11
+ */
12
+ duration?: Duration;
13
+ /**
14
+ * Whether the pulse animation should play
15
+ */
16
+ animate?: boolean;
17
+ };
18
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../src/lib/Animations/Pulse/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAClC,OAAO,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AAEpC,MAAM,MAAM,UAAU,GAAG;IACvB;;OAEG;IACH,QAAQ,EAAE,SAAS,CAAC;IACpB;;;OAGG;IACH,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB;;OAEG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB,CAAC"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,3 @@
1
+ import { SpinProps } from './types';
2
+ export declare const Spin: import("react").MemoExoticComponent<({ children, duration }: SpinProps) => import("react/jsx-runtime").JSX.Element>;
3
+ //# sourceMappingURL=Spin.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Spin.d.ts","sourceRoot":"","sources":["../../../../../src/lib/Animations/Spin/Spin.tsx"],"names":[],"mappings":"AAGA,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAEpC,eAAO,MAAM,IAAI,+DAAwC,SAAS,6CA2BhE,CAAC"}
@@ -0,0 +1,23 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { memo, useEffect, useRef } from 'react';
3
+ import { Animated, Easing } from 'react-native';
4
+ import { RuntimeConstants } from '../../utils';
5
+ export const Spin = memo(({ children, duration = 1000 }) => {
6
+ const spinValue = useRef(new Animated.Value(0)).current;
7
+ useEffect(() => {
8
+ const animation = Animated.loop(Animated.timing(spinValue, {
9
+ toValue: 1,
10
+ duration: duration,
11
+ easing: Easing.linear,
12
+ useNativeDriver: RuntimeConstants.isNative,
13
+ }));
14
+ animation.start();
15
+ return () => animation.stop();
16
+ }, [spinValue, duration]);
17
+ const spin = spinValue.interpolate({
18
+ inputRange: [0, 1],
19
+ outputRange: ['0deg', '360deg'],
20
+ });
21
+ return (_jsx(Animated.View, { style: { transform: [{ rotate: spin }] }, children: children }));
22
+ });
23
+ Spin.displayName = 'Spin';
@@ -0,0 +1,9 @@
1
+ import type { Meta, StoryObj } from '@storybook/react-native-web-vite';
2
+ import { Spin } from './Spin';
3
+ declare const meta: Meta<typeof Spin>;
4
+ export default meta;
5
+ type Story = StoryObj<typeof meta>;
6
+ export declare const Base: Story;
7
+ export declare const DurationShowcase: Story;
8
+ export declare const WithSpinner: Story;
9
+ //# sourceMappingURL=Spin.stories.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Spin.stories.d.ts","sourceRoot":"","sources":["../../../../../src/lib/Animations/Spin/Spin.stories.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,kCAAkC,CAAC;AAIvE,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAE9B,QAAA,MAAM,IAAI,EAAE,IAAI,CAAC,OAAO,IAAI,CAMC,CAAC;AAE9B,eAAe,IAAI,CAAC;AACpB,KAAK,KAAK,GAAG,QAAQ,CAAC,OAAO,IAAI,CAAC,CAAC;AAEnC,eAAO,MAAM,IAAI,EAAE,KAOlB,CAAC;AAEF,eAAO,MAAM,gBAAgB,EAAE,KAmC9B,CAAC;AAEF,eAAO,MAAM,WAAW,EAAE,KAQzB,CAAC"}
@@ -0,0 +1,27 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { View } from 'react-native';
3
+ import { Spinner } from '../../Components/Spinner';
4
+ import { Box, Text } from '../../Components/Utility';
5
+ import { Spin } from './Spin';
6
+ const meta = {
7
+ title: 'Animations/Spin',
8
+ component: Spin,
9
+ parameters: {
10
+ layout: 'centered',
11
+ },
12
+ };
13
+ export default meta;
14
+ export const Base = {
15
+ args: {
16
+ duration: 1000,
17
+ children: (_jsx(Box, { lx: { width: 's48', height: 's48', backgroundColor: 'accent' } })),
18
+ },
19
+ };
20
+ export const DurationShowcase = {
21
+ render: () => (_jsxs(View, { style: { flexDirection: 'row', gap: 24, alignItems: 'center' }, children: [_jsxs(View, { style: { alignItems: 'center', gap: 8 }, children: [_jsx(Spin, { duration: 500, children: _jsx(Box, { lx: { width: 's48', height: 's48', backgroundColor: 'accent' } }) }), _jsx(Text, { typography: 'body4', lx: { color: 'muted' }, children: "500ms" })] }), _jsxs(View, { style: { alignItems: 'center', gap: 8 }, children: [_jsx(Spin, { duration: 1000, children: _jsx(Box, { lx: { width: 's48', height: 's48', backgroundColor: 'accent' } }) }), _jsx(Text, { typography: 'body4', lx: { color: 'muted' }, children: "1000ms" })] }), _jsxs(View, { style: { alignItems: 'center', gap: 8 }, children: [_jsx(Spin, { duration: 2000, children: _jsx(Box, { lx: { width: 's48', height: 's48', backgroundColor: 'accent' } }) }), _jsx(Text, { typography: 'body4', lx: { color: 'muted' }, children: "2000ms" })] })] })),
22
+ };
23
+ export const WithSpinner = {
24
+ render: () => {
25
+ return (_jsx(View, { style: { flexDirection: 'column', alignItems: 'center', gap: 16 }, children: _jsx(Spinner, { size: 40 }) }));
26
+ },
27
+ };
@@ -0,0 +1,3 @@
1
+ export * from './Spin';
2
+ export * from './types';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/lib/Animations/Spin/index.ts"],"names":[],"mappings":"AAAA,cAAc,QAAQ,CAAC;AACvB,cAAc,SAAS,CAAC"}
@@ -0,0 +1,2 @@
1
+ export * from './Spin';
2
+ export * from './types';
@@ -0,0 +1,14 @@
1
+ import { ReactNode } from 'react';
2
+ import { Duration } from '../types';
3
+ export type SpinProps = {
4
+ /**
5
+ * The content to animate
6
+ */
7
+ children: ReactNode;
8
+ /**
9
+ * Duration of one complete rotation in milliseconds
10
+ * @default 1000
11
+ */
12
+ duration?: Duration;
13
+ };
14
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../src/lib/Animations/Spin/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAClC,OAAO,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AAEpC,MAAM,MAAM,SAAS,GAAG;IACtB;;OAEG;IACH,QAAQ,EAAE,SAAS,CAAC;IACpB;;;OAGG;IACH,QAAQ,CAAC,EAAE,QAAQ,CAAC;CACrB,CAAC"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,4 @@
1
+ export * from './Spin';
2
+ export * from './Pulse';
3
+ export * from './types';
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/lib/Animations/index.ts"],"names":[],"mappings":"AAAA,cAAc,QAAQ,CAAC;AACvB,cAAc,SAAS,CAAC;AACxB,cAAc,SAAS,CAAC"}
@@ -0,0 +1,3 @@
1
+ export * from './Spin';
2
+ export * from './Pulse';
3
+ export * from './types';
@@ -0,0 +1,2 @@
1
+ export type Duration = 75 | 100 | 150 | 200 | 300 | 500 | 700 | 1000 | 2000 | 3000;
2
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/lib/Animations/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,QAAQ,GAChB,EAAE,GACF,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,IAAI,GACJ,IAAI,GACJ,IAAI,CAAC"}
@@ -0,0 +1 @@
1
+ export {};
@@ -1,5 +1,4 @@
1
- import React from 'react';
2
- import { View } from 'react-native';
1
+ import { AmountDisplayProps } from './types';
3
2
  /**
4
3
  * AmountDisplay - Renders formatted monetary amounts with flexible currency positioning and decimal formatting.
5
4
  *
@@ -33,9 +32,8 @@ import { View } from 'react-native';
33
32
  * <AmountDisplay value={1234.56} formatter={usdFormatter} hidden={true} />
34
33
  * ```
35
34
  */
36
- export declare const AmountDisplay: React.ForwardRefExoticComponent<import("react-native").ViewProps & {
37
- value: number;
38
- formatter: (value: number) => import("./types").FormattedValue;
39
- hidden?: boolean;
40
- } & React.RefAttributes<View>>;
35
+ export declare const AmountDisplay: {
36
+ ({ value, formatter, hidden, loading, ...props }: AmountDisplayProps): import("react/jsx-runtime").JSX.Element;
37
+ displayName: string;
38
+ };
41
39
  //# sourceMappingURL=AmountDisplay.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"AmountDisplay.d.ts","sourceRoot":"","sources":["../../../../../src/lib/Components/AmountDisplay/AmountDisplay.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,IAAI,EAAoB,MAAM,cAAc,CAAC;AAuCtD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AACH,eAAO,MAAM,aAAa;;;;8BAiCzB,CAAC"}
1
+ {"version":3,"file":"AmountDisplay.d.ts","sourceRoot":"","sources":["../../../../../src/lib/Components/AmountDisplay/AmountDisplay.tsx"],"names":[],"mappings":"AAIA,OAAO,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAoC7C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AACH,eAAO,MAAM,aAAa;sDAMvB,kBAAkB;;CA+BpB,CAAC"}
@@ -1,7 +1,8 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- import React from 'react';
3
- import { View, Text, StyleSheet } from 'react-native';
2
+ import { View, Text } from 'react-native';
4
3
  import { useStyleSheet } from '../../../styles';
4
+ import { Pulse } from '../../Animations/Pulse';
5
+ import { Box } from '../Utility';
5
6
  const useStyles = () => {
6
7
  return useStyleSheet((t) => ({
7
8
  container: {
@@ -65,10 +66,10 @@ const useStyles = () => {
65
66
  * <AmountDisplay value={1234.56} formatter={usdFormatter} hidden={true} />
66
67
  * ```
67
68
  */
68
- export const AmountDisplay = React.forwardRef(({ value, formatter, hidden = false, style, ...props }, ref) => {
69
+ export const AmountDisplay = ({ value, formatter, hidden = false, loading = false, ...props }) => {
69
70
  const styles = useStyles();
70
71
  const parts = formatter(value);
71
- return (_jsxs(View, { ref: ref, style: StyleSheet.flatten([styles.container, style]), ...props, children: [(parts.currencyPosition === undefined ||
72
- parts.currencyPosition === 'start') && (_jsx(Text, { style: [styles.currencyStartText, styles.spacingStart], children: parts.currencyText })), _jsx(Text, { style: styles.integerText, children: hidden ? '••••' : parts.integerPart }), parts.decimalPart && !hidden && (_jsx(Text, { style: styles.decimalText, children: (parts.decimalSeparator || '.') + parts.decimalPart })), parts.currencyPosition === 'end' && (_jsx(Text, { style: [styles.currencyEndText, styles.spacingEnd], children: parts.currencyText }))] }));
73
- });
72
+ return (_jsx(Box, { ...props, children: _jsx(Pulse, { animate: loading, children: _jsxs(View, { style: styles.container, children: [(parts.currencyPosition === undefined ||
73
+ parts.currencyPosition === 'start') && (_jsx(Text, { style: [styles.currencyStartText, styles.spacingStart], children: parts.currencyText })), _jsx(Text, { style: styles.integerText, children: hidden ? '••••' : parts.integerPart }), parts.decimalPart && !hidden && (_jsx(Text, { style: styles.decimalText, children: (parts.decimalSeparator || '.') + parts.decimalPart })), parts.currencyPosition === 'end' && (_jsx(Text, { style: [styles.currencyEndText, styles.spacingEnd], children: parts.currencyText }))] }) }) }));
74
+ };
74
75
  AmountDisplay.displayName = 'AmountDisplay';
@@ -5,4 +5,5 @@ export default meta;
5
5
  type Story = StoryObj<typeof AmountDisplay>;
6
6
  export declare const Base: Story;
7
7
  export declare const WithHideButton: Story;
8
+ export declare const Loading: Story;
8
9
  //# sourceMappingURL=AmountDisplay.stories.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"AmountDisplay.stories.d.ts","sourceRoot":"","sources":["../../../../../src/lib/Components/AmountDisplay/AmountDisplay.stories.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,kCAAkC,CAAC;AAKvE,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAuChD,QAAA,MAAM,IAAI,EAAE,IAAI,CAAC,OAAO,aAAa,CA4CpC,CAAC;AAEF,eAAe,IAAI,CAAC;AACpB,KAAK,KAAK,GAAG,QAAQ,CAAC,OAAO,aAAa,CAAC,CAAC;AAE5C,eAAO,MAAM,IAAI,EAAE,KAWlB,CAAC;AAEF,eAAO,MAAM,cAAc,EAAE,KAqB5B,CAAC"}
1
+ {"version":3,"file":"AmountDisplay.stories.d.ts","sourceRoot":"","sources":["../../../../../src/lib/Components/AmountDisplay/AmountDisplay.stories.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,kCAAkC,CAAC;AAKvE,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAuChD,QAAA,MAAM,IAAI,EAAE,IAAI,CAAC,OAAO,aAAa,CA4CpC,CAAC;AAEF,eAAe,IAAI,CAAC;AACpB,KAAK,KAAK,GAAG,QAAQ,CAAC,OAAO,aAAa,CAAC,CAAC;AAE5C,eAAO,MAAM,IAAI,EAAE,KAWlB,CAAC;AAEF,eAAO,MAAM,cAAc,EAAE,KAqB5B,CAAC;AAEF,eAAO,MAAM,OAAO,EAAE,KAUrB,CAAC"}
@@ -97,3 +97,8 @@ export const WithHideButton = {
97
97
  return (_jsxs(View, { style: { flexDirection: 'row', alignItems: 'center', gap: 12 }, children: [_jsx(AmountDisplay, { formatter: props.formatter, value: 1234.56, hidden: hidden }), _jsx(IconButton, { appearance: 'transparent', size: 'sm', icon: hidden ? EyeCross : Eye, accessibilityLabel: hidden ? 'Show amount' : 'Hide amount', onPress: () => setHidden((v) => !v) })] }));
98
98
  },
99
99
  };
100
+ export const Loading = {
101
+ render: (props) => {
102
+ return (_jsx(AmountDisplay, { formatter: props.formatter, value: 1234.56, loading: true }));
103
+ },
104
+ };
@@ -1,4 +1,5 @@
1
1
  import { ViewProps } from 'react-native';
2
+ import { StyledViewProps } from '../../../styles';
2
3
  export type FormattedValue = {
3
4
  /**
4
5
  * The whole number portion of the amount (e.g., "1234" from 1234.56)
@@ -43,5 +44,10 @@ export type AmountDisplayProps = ViewProps & {
43
44
  * @default false
44
45
  */
45
46
  hidden?: boolean;
46
- };
47
+ /**
48
+ * When true, applies a pulse animation to indicate the amount is being fetched or updated.
49
+ * @default false
50
+ */
51
+ loading?: boolean;
52
+ } & Omit<StyledViewProps, 'children'>;
47
53
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../src/lib/Components/AmountDisplay/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAEzC,MAAM,MAAM,cAAc,GAAG;IAC3B;;OAEG;IACH,WAAW,EAAE,MAAM,CAAC;IACpB;;;OAGG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;OAEG;IACH,YAAY,EAAE,MAAM,CAAC;IACrB;;OAEG;IACH,gBAAgB,EAAE,GAAG,GAAG,GAAG,CAAC;IAC5B;;;;OAIG;IACH,gBAAgB,CAAC,EAAE,OAAO,GAAG,KAAK,CAAC;CACpC,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,kBAAkB,GAAG,SAAS,GAAG;IAC3C;;;OAGG;IACH,KAAK,EAAE,MAAM,CAAC;IACd;;OAEG;IACH,SAAS,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,cAAc,CAAC;IAC7C;;;;OAIG;IACH,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB,CAAC"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../src/lib/Components/AmountDisplay/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAElD,MAAM,MAAM,cAAc,GAAG;IAC3B;;OAEG;IACH,WAAW,EAAE,MAAM,CAAC;IACpB;;;OAGG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;OAEG;IACH,YAAY,EAAE,MAAM,CAAC;IACrB;;OAEG;IACH,gBAAgB,EAAE,GAAG,GAAG,GAAG,CAAC;IAC5B;;;;OAIG;IACH,gBAAgB,CAAC,EAAE,OAAO,GAAG,KAAK,CAAC;CACpC,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,kBAAkB,GAAG,SAAS,GAAG;IAC3C;;;OAGG;IACH,KAAK,EAAE,MAAM,CAAC;IACd;;OAEG;IACH,SAAS,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,cAAc,CAAC;IAC7C;;;;OAIG;IACH,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB;;;OAGG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB,GAAG,IAAI,CAAC,eAAe,EAAE,UAAU,CAAC,CAAC"}
@@ -51,7 +51,7 @@ const useStyles = ({ appearance, disabled, pressed, }) => {
51
51
  gap: t.spacings.s4,
52
52
  },
53
53
  title: StyleSheet.flatten([
54
- t.typographies.body1SemiBold,
54
+ t.typographies.body2SemiBold,
55
55
  {
56
56
  color: disabled ? t.colors.text.disabled : t.colors.text.base,
57
57
  minWidth: 0,
@@ -59,9 +59,9 @@ const useStyles = ({ appearance, disabled, pressed, }) => {
59
59
  },
60
60
  ]),
61
61
  description: StyleSheet.flatten([
62
- t.typographies.body2,
62
+ t.typographies.body3,
63
63
  {
64
- color: disabled ? t.colors.text.disabled : t.colors.text.base,
64
+ color: disabled ? t.colors.text.disabled : t.colors.text.muted,
65
65
  minWidth: 0,
66
66
  },
67
67
  ]),
@@ -1 +1 @@
1
- {"version":3,"file":"Spinner.d.ts","sourceRoot":"","sources":["../../../../../src/lib/Components/Spinner/Spinner.tsx"],"names":[],"mappings":"AAOA,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAgCvC;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,OAAO;yCAMjB,YAAY;;CA2Bd,CAAC"}
1
+ {"version":3,"file":"Spinner.d.ts","sourceRoot":"","sources":["../../../../../src/lib/Components/Spinner/Spinner.tsx"],"names":[],"mappings":"AAKA,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAEvC;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,OAAO;yCAMjB,YAAY;;CA2Bd,CAAC"}
@@ -1,30 +1,9 @@
1
1
  import { jsx as _jsx } from "react/jsx-runtime";
2
- import { memo, useEffect, useRef } from 'react';
3
- import { Animated, Easing } from 'react-native';
4
2
  import Svg, { Path } from 'react-native-svg';
5
3
  import { useCommonTranslation } from '../../../i18n';
6
4
  import { useResolveTextStyle, useTheme } from '../../../styles';
7
- import { RuntimeConstants } from '../../utils';
5
+ import { Spin } from '../../Animations/Spin';
8
6
  import { Box } from '../Utility';
9
- const SpinAnimation = memo(({ children }) => {
10
- const spinValue = useRef(new Animated.Value(0)).current;
11
- useEffect(() => {
12
- const animation = Animated.loop(Animated.timing(spinValue, {
13
- toValue: 1,
14
- duration: 1000,
15
- easing: Easing.linear,
16
- useNativeDriver: RuntimeConstants.isNative,
17
- }));
18
- animation.start();
19
- return () => animation.stop();
20
- }, [spinValue]);
21
- const spin = spinValue.interpolate({
22
- inputRange: [0, 1],
23
- outputRange: ['0deg', '360deg'],
24
- });
25
- return (_jsx(Animated.View, { style: { transform: [{ rotate: spin }] }, children: children }));
26
- });
27
- SpinAnimation.displayName = 'SpinAnimation';
28
7
  /**
29
8
  * A basic spinner component for loading states.
30
9
  *
@@ -44,6 +23,6 @@ export const Spinner = ({ lx = {}, size = 16, color, ref, ...props }) => {
44
23
  const { theme } = useTheme();
45
24
  const resolvedColorStyle = useResolveTextStyle({ color });
46
25
  const strokeColor = resolvedColorStyle?.color ?? color ?? theme.colors.text.base;
47
- return (_jsx(Box, { ref: ref, lx: { flexShrink: 0, ...lx }, ...props, children: _jsx(SpinAnimation, { children: _jsx(Svg, { width: size, height: size, viewBox: '0 0 16 16', fill: 'none', accessibilityLabel: t('components.spinner.loadingAriaLabel'), children: _jsx(Path, { d: 'M8 1.5C11.5899 1.5 14.5 4.41015 14.5 8C14.5 11.5899 11.5899 14.5 8 14.5C4.41015 14.5 1.5 11.5899 1.5 8', stroke: strokeColor, strokeWidth: '1.5', strokeLinecap: 'round' }) }) }) }));
26
+ return (_jsx(Box, { ref: ref, lx: { flexShrink: 0, ...lx }, ...props, children: _jsx(Spin, { children: _jsx(Svg, { width: size, height: size, viewBox: '0 0 16 16', fill: 'none', accessibilityLabel: t('components.spinner.loadingAriaLabel'), children: _jsx(Path, { d: 'M8 1.5C11.5899 1.5 14.5 4.41015 14.5 8C14.5 11.5899 11.5899 14.5 8 14.5C4.41015 14.5 1.5 11.5899 1.5 8', stroke: strokeColor, strokeWidth: '1.5', strokeLinecap: 'round' }) }) }) }));
48
27
  };
49
28
  Spinner.displayName = 'Spinner';
@@ -1,4 +1,5 @@
1
1
  import { TabBarItemProps, TabBarProps } from './types';
2
+ export declare const TAB_BAR_HEIGHT = 56;
2
3
  /**
3
4
  * Individual tab item component that displays an icon and label.
4
5
  * Must be used as a child of TabBar.
@@ -1 +1 @@
1
- {"version":3,"file":"TabBar.d.ts","sourceRoot":"","sources":["../../../../../src/lib/Components/TabBar/TabBar.tsx"],"names":[],"mappings":"AAeA,OAAO,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAIvD;;;;;;GAMG;AACH,wBAAgB,UAAU,CAAC,EACzB,KAAK,EACL,KAAK,EACL,IAAI,EACJ,UAAU,GACX,EAAE,eAAe,2CA+FjB;yBApGe,UAAU;;;AAwG1B;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,MAAM,CAAC,EACrB,MAAM,EACN,UAAU,EACV,QAAQ,EACR,GAAG,KAAK,EACT,EAAE,WAAW,2CAiFb"}
1
+ {"version":3,"file":"TabBar.d.ts","sourceRoot":"","sources":["../../../../../src/lib/Components/TabBar/TabBar.tsx"],"names":[],"mappings":"AAeA,OAAO,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAEvD,eAAO,MAAM,cAAc,KAAK,CAAC;AAGjC;;;;;;GAMG;AACH,wBAAgB,UAAU,CAAC,EACzB,KAAK,EACL,KAAK,EACL,IAAI,EACJ,UAAU,GACX,EAAE,eAAe,2CA+FjB;yBApGe,UAAU;;;AAwG1B;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,MAAM,CAAC,EACrB,MAAM,EACN,UAAU,EACV,QAAQ,EACR,GAAG,KAAK,EACT,EAAE,WAAW,2CAiFb"}
@@ -7,6 +7,7 @@ import { useStyleSheet, useTheme } from '../../../styles';
7
7
  import { Placeholder } from '../../Symbols';
8
8
  import { Box, Pressable } from '../Utility';
9
9
  import { TabBarContextProvider, useTabBarContext } from './TabBarContext';
10
+ export const TAB_BAR_HEIGHT = 56;
10
11
  const PILL_INSET = 4;
11
12
  /**
12
13
  * Individual tab item component that displays an icon and label.
@@ -130,7 +131,7 @@ export function TabBar({ active, onTabPress, children, ...props }) {
130
131
  }
131
132
  const useStyles = () => useStyleSheet((t) => ({
132
133
  container: {
133
- height: t.sizes.s56,
134
+ height: TAB_BAR_HEIGHT,
134
135
  flexDirection: 'row',
135
136
  justifyContent: 'center',
136
137
  padding: t.spacings.s4,
@@ -1,3 +1,3 @@
1
- export { TabBar, TabBarItem } from './TabBar';
1
+ export { TabBar, TabBarItem, TAB_BAR_HEIGHT } from './TabBar';
2
2
  export type { TabBarProps, TabBarItemProps } from './types';
3
3
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/lib/Components/TabBar/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAC9C,YAAY,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/lib/Components/TabBar/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAC9D,YAAY,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC"}
@@ -1 +1 @@
1
- export { TabBar, TabBarItem } from './TabBar';
1
+ export { TabBar, TabBarItem, TAB_BAR_HEIGHT } from './TabBar';
@@ -1,5 +1,3 @@
1
- import React from 'react';
2
- import { View } from 'react-native';
3
1
  import { TileButtonProps } from './types';
4
2
  /**
5
3
  * A compact button component displaying an icon above a label in a vertical layout.
@@ -15,5 +13,8 @@ import { TileButtonProps } from './types';
15
13
  * Settings
16
14
  * </TileButton>
17
15
  */
18
- export declare const TileButton: React.ForwardRefExoticComponent<Omit<TileButtonProps, "ref"> & React.RefAttributes<View>>;
16
+ export declare const TileButton: {
17
+ ({ lx, style, icon: IconProp, children, disabled, isFull, numberOfLines, ...props }: TileButtonProps): import("react/jsx-runtime").JSX.Element;
18
+ displayName: string;
19
+ };
19
20
  //# sourceMappingURL=TileButton.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"TileButton.d.ts","sourceRoot":"","sources":["../../../../../src/lib/Components/TileButton/TileButton.tsx"],"names":[],"mappings":"AACA,OAAO,KAAgC,MAAM,OAAO,CAAC;AACrD,OAAO,EAAc,IAAI,EAAE,MAAM,cAAc,CAAC;AAIhD,OAAO,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAwD1C;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,UAAU,2FA2CtB,CAAC"}
1
+ {"version":3,"file":"TileButton.d.ts","sourceRoot":"","sources":["../../../../../src/lib/Components/TileButton/TileButton.tsx"],"names":[],"mappings":"AAMA,OAAO,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAwD1C;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,UAAU;yFASpB,eAAe;;CAyBjB,CAAC"}