@makroz/mobile 1.1.2 → 1.2.1
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/__mocks__/flash-list.d.ts +12 -0
- package/dist/__mocks__/react-native.d.ts +77 -0
- package/dist/auth/MkAuthContext.d.ts +72 -0
- package/dist/auth/MkAuthForm.d.ts +31 -0
- package/dist/auth/MkAuthProvider.d.ts +57 -0
- package/dist/auth/authExports.test.d.ts +2 -0
- package/dist/auth/authExports.test.d.ts.map +1 -0
- package/dist/auth/authExports.test.js +14 -0
- package/dist/auth/authExports.test.js.map +1 -0
- package/dist/auth/secureStorage.d.ts +63 -0
- package/dist/auth/types.d.ts +65 -0
- package/dist/auth/useMkAuth.d.ts +17 -0
- package/dist/components/MkAccordion.d.ts +19 -0
- package/dist/components/MkAccordion.test.d.ts +2 -0
- package/dist/components/MkAlert.d.ts +18 -0
- package/dist/components/MkAlert.test.d.ts +2 -0
- package/dist/components/MkAvatar.d.ts +12 -0
- package/dist/components/MkAvatar.test.d.ts +2 -0
- package/dist/components/MkBadge.d.ts +11 -0
- package/dist/components/MkBadge.test.d.ts +2 -0
- package/dist/components/MkButton.d.ts +13 -0
- package/dist/components/MkButton.test.d.ts +2 -0
- package/dist/components/MkCard.d.ts +15 -0
- package/dist/components/MkCard.test.d.ts +2 -0
- package/dist/components/MkCheck.d.ts +18 -0
- package/dist/components/MkCheck.test.d.ts +2 -0
- package/dist/components/MkDatePicker.d.ts +30 -0
- package/dist/components/MkDatePicker.test.d.ts +2 -0
- package/dist/components/MkDivider.d.ts +11 -0
- package/dist/components/MkDivider.test.d.ts +2 -0
- package/dist/components/MkDropDown.d.ts +37 -0
- package/dist/components/MkDropDown.test.d.ts +2 -0
- package/dist/components/MkEmptyState.d.ts +11 -0
- package/dist/components/MkEmptyState.test.d.ts +2 -0
- package/dist/components/MkFileUpload.d.ts +63 -0
- package/dist/components/MkFileUpload.test.d.ts +2 -0
- package/dist/components/MkIcons.d.ts +15 -0
- package/dist/components/MkInfiniteList.d.ts +22 -0
- package/dist/components/MkInfiniteList.d.ts.map +1 -1
- package/dist/components/MkInfiniteList.js +7 -7
- package/dist/components/MkInfiniteList.js.map +1 -1
- package/dist/components/MkInfiniteList.test.d.ts +2 -0
- package/dist/components/MkInput.d.ts +16 -0
- package/dist/components/MkInput.test.d.ts +2 -0
- package/dist/components/MkLoading.d.ts +12 -0
- package/dist/components/MkLoading.test.d.ts +2 -0
- package/dist/components/MkModal.d.ts +20 -0
- package/dist/components/MkModal.test.d.ts +2 -0
- package/dist/components/MkProgressBar.d.ts +13 -0
- package/dist/components/MkProgressBar.test.d.ts +2 -0
- package/dist/components/MkRadio.d.ts +20 -0
- package/dist/components/MkRadio.test.d.ts +2 -0
- package/dist/components/MkSearchInput.d.ts +21 -0
- package/dist/components/MkSearchInput.test.d.ts +2 -0
- package/dist/components/MkSelect.d.ts +16 -0
- package/dist/components/MkSelect.test.d.ts +2 -0
- package/dist/components/MkSkeleton.d.ts +13 -0
- package/dist/components/MkSkeleton.d.ts.map +1 -1
- package/dist/components/MkSkeleton.js +10 -7
- package/dist/components/MkSkeleton.js.map +1 -1
- package/dist/components/MkSkeleton.test.d.ts +2 -0
- package/dist/components/MkSwitch.d.ts +13 -0
- package/dist/components/MkSwitch.test.d.ts +2 -0
- package/dist/components/MkTable.d.ts +39 -0
- package/dist/components/MkTable.test.d.ts +2 -0
- package/dist/components/MkTabs.d.ts +19 -0
- package/dist/components/MkTabs.test.d.ts +2 -0
- package/dist/components/MkTextArea.d.ts +17 -0
- package/dist/components/MkTextArea.test.d.ts +2 -0
- package/dist/components/MkToastRenderer.d.ts +3 -0
- package/dist/components/MkToastRenderer.d.ts.map +1 -1
- package/dist/components/MkToastRenderer.js +9 -7
- package/dist/components/MkToastRenderer.js.map +1 -1
- package/dist/components/MkToastRenderer.test.d.ts +2 -0
- package/dist/components/MkTooltip.d.ts +15 -0
- package/dist/components/MkTooltip.test.d.ts +2 -0
- package/dist/components/MkWindowList.d.ts +48 -0
- package/dist/components/MkWindowList.test.d.ts +2 -0
- package/dist/components/index.d.ts +30 -0
- package/dist/context/MkApiContext.d.ts +14 -0
- package/dist/context/MkAuthContext.d.ts +34 -0
- package/dist/context/MkAuthContext.d.ts.map +1 -1
- package/dist/context/MkAuthContext.js +10 -0
- package/dist/context/MkAuthContext.js.map +1 -1
- package/dist/context/MkConfirmContext.d.ts +8 -0
- package/dist/context/MkToastContext.d.ts +19 -0
- package/dist/hooks/filePicker.types.d.ts +13 -0
- package/dist/hooks/useApi.d.ts +19 -0
- package/dist/hooks/useApi.d.ts.map +1 -1
- package/dist/hooks/useApi.js +7 -6
- package/dist/hooks/useApi.js.map +1 -1
- package/dist/hooks/useApi.test.d.ts +2 -0
- package/dist/hooks/useApi.test.js +38 -3
- package/dist/hooks/useApi.test.js.map +1 -1
- package/dist/hooks/useMkCrud.d.ts +39 -0
- package/dist/hooks/useMkDebounce.d.ts +24 -0
- package/dist/hooks/useMkEffectDebug.d.ts +6 -0
- package/dist/hooks/useMkEvent.d.ts +42 -0
- package/dist/hooks/useMkFilePickerCli.d.ts +59 -0
- package/dist/hooks/useMkFilePickerExpo.d.ts +38 -0
- package/dist/hooks/useMkForm.d.ts +43 -0
- package/dist/hooks/useMkInfiniteList.d.ts +16 -0
- package/dist/hooks/useMkInfiniteList.d.ts.map +1 -1
- package/dist/hooks/useMkInfiniteList.js +14 -3
- package/dist/hooks/useMkInfiniteList.js.map +1 -1
- package/dist/hooks/useMkInfiniteList.test.d.ts +2 -0
- package/dist/hooks/useMkInfiniteList.test.d.ts.map +1 -0
- package/dist/hooks/useMkInfiniteList.test.js +8 -0
- package/dist/hooks/useMkInfiniteList.test.js.map +1 -0
- package/dist/hooks/useMkList.d.ts +79 -0
- package/dist/hooks/useMkList.d.ts.map +1 -1
- package/dist/hooks/useMkList.js.map +1 -1
- package/dist/hooks/useMkLocalStorage.d.ts +6 -0
- package/dist/hooks/useMkPrevious.d.ts +6 -0
- package/dist/hooks/useMkToggle.d.ts +6 -0
- package/dist/index.d.ts +28 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -1
- package/dist/index.js.map +1 -1
- package/dist/test-setup.d.ts +28 -0
- package/dist/test-utils.d.ts +22 -0
- package/dist/theme/MkThemeProvider.d.ts +14 -0
- package/dist/theme/MkThemeProvider.d.ts.map +1 -1
- package/dist/theme/MkThemeProvider.js +3 -6
- package/dist/theme/MkThemeProvider.js.map +1 -1
- package/dist/theme/MkThemeProvider.test.d.ts +2 -0
- package/dist/theme/MkThemeProvider.test.d.ts.map +1 -0
- package/dist/theme/MkThemeProvider.test.js +32 -0
- package/dist/theme/MkThemeProvider.test.js.map +1 -0
- package/package.json +16 -16
- package/LICENSE +0 -33
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import type { ViewStyle } from 'react-native';
|
|
3
|
+
export interface MkEmptyStateProps {
|
|
4
|
+
icon?: React.ReactNode;
|
|
5
|
+
title?: string;
|
|
6
|
+
description?: string;
|
|
7
|
+
action?: React.ReactNode;
|
|
8
|
+
style?: ViewStyle;
|
|
9
|
+
}
|
|
10
|
+
export declare const MkEmptyState: React.FC<MkEmptyStateProps>;
|
|
11
|
+
//# sourceMappingURL=MkEmptyState.d.ts.map
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import type { ViewStyle } from 'react-native';
|
|
3
|
+
/**
|
|
4
|
+
* @module MkFileUpload (Mobile)
|
|
5
|
+
* @description 100% dependency-free file upload UI for React Native.
|
|
6
|
+
*
|
|
7
|
+
* This component has ZERO native picker dependencies — it never imports
|
|
8
|
+
* expo-image-picker, expo-document-picker, react-native-image-picker, or
|
|
9
|
+
* react-native-document-picker. It only handles UI: the tap zone, previews,
|
|
10
|
+
* file list, and error display.
|
|
11
|
+
*
|
|
12
|
+
* Use a picker adapter hook to bridge it with your preferred library:
|
|
13
|
+
* - Expo projects → `useMkFilePickerExpo` (from this package)
|
|
14
|
+
* - RN CLI projects → `useMkFilePickerCli` (from this package)
|
|
15
|
+
*
|
|
16
|
+
* @example Expo
|
|
17
|
+
* ```tsx
|
|
18
|
+
* const picker = useMkFilePickerExpo({ mediaType: 'images', multiple: true });
|
|
19
|
+
* <MkFileUpload onTap={picker.pick} onFiles={handleFiles} />
|
|
20
|
+
* ```
|
|
21
|
+
*
|
|
22
|
+
* @example RN CLI
|
|
23
|
+
* ```tsx
|
|
24
|
+
* const picker = useMkFilePickerCli({ type: ['image/*'], multiple: true });
|
|
25
|
+
* <MkFileUpload onTap={picker.pick} onFiles={handleFiles} />
|
|
26
|
+
* ```
|
|
27
|
+
*/
|
|
28
|
+
/** Normalized file result returned by picker adapters (useMkFilePickerExpo / useMkFilePickerCli). */
|
|
29
|
+
export interface MkFilePickerResult {
|
|
30
|
+
name: string;
|
|
31
|
+
uri: string;
|
|
32
|
+
type: string;
|
|
33
|
+
sizeMB?: number;
|
|
34
|
+
}
|
|
35
|
+
/** @deprecated Use MkFilePickerResult instead */
|
|
36
|
+
export type MkMobileFileInfo = MkFilePickerResult;
|
|
37
|
+
export interface MkFileInfo {
|
|
38
|
+
file?: any;
|
|
39
|
+
name: string;
|
|
40
|
+
sizeMB: number;
|
|
41
|
+
preview?: string;
|
|
42
|
+
type: string;
|
|
43
|
+
/** Mobile-only: local URI to the file */
|
|
44
|
+
uri?: string;
|
|
45
|
+
}
|
|
46
|
+
export interface MkFileUploadProps {
|
|
47
|
+
onFiles: (files: MkFileInfo[]) => void;
|
|
48
|
+
/**
|
|
49
|
+
* Called when user taps the zone. Return picked files or [].
|
|
50
|
+
* Use `useMkFilePickerExpo().pick` or `useMkFilePickerCli().pick` as the value.
|
|
51
|
+
*/
|
|
52
|
+
onTap?: () => Promise<MkFilePickerResult[]>;
|
|
53
|
+
accept?: string;
|
|
54
|
+
multiple?: boolean;
|
|
55
|
+
maxSizeMB?: number;
|
|
56
|
+
label?: string;
|
|
57
|
+
sublabel?: string;
|
|
58
|
+
disabled?: boolean;
|
|
59
|
+
error?: string;
|
|
60
|
+
style?: ViewStyle;
|
|
61
|
+
}
|
|
62
|
+
export declare const MkFileUpload: React.FC<MkFileUploadProps>;
|
|
63
|
+
//# sourceMappingURL=MkFileUpload.d.ts.map
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import type { SvgProps } from 'react-native-svg';
|
|
3
|
+
export interface MkIconProps extends SvgProps {
|
|
4
|
+
size?: number | string;
|
|
5
|
+
color?: string;
|
|
6
|
+
variant?: 'primary' | 'muted' | 'error' | string;
|
|
7
|
+
}
|
|
8
|
+
export declare const MkIconWrap: React.FC<MkIconProps>;
|
|
9
|
+
export declare const IconArrowDown: (props: MkIconProps) => import("react/jsx-runtime").JSX.Element;
|
|
10
|
+
export declare const IconCheck: (props: MkIconProps) => import("react/jsx-runtime").JSX.Element;
|
|
11
|
+
export declare const IconTrash: (props: MkIconProps) => import("react/jsx-runtime").JSX.Element;
|
|
12
|
+
export declare const IconEdit: (props: MkIconProps) => import("react/jsx-runtime").JSX.Element;
|
|
13
|
+
export declare const IconClose: (props: MkIconProps) => import("react/jsx-runtime").JSX.Element;
|
|
14
|
+
export declare const Icon3Dots: (props: MkIconProps) => import("react/jsx-runtime").JSX.Element;
|
|
15
|
+
//# sourceMappingURL=MkIcons.d.ts.map
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
export interface MkInfiniteListProps<T> {
|
|
3
|
+
items: T[];
|
|
4
|
+
renderItem: ({ item, index }: {
|
|
5
|
+
item: T;
|
|
6
|
+
index: number;
|
|
7
|
+
}) => React.ReactElement | null;
|
|
8
|
+
loading?: boolean;
|
|
9
|
+
isRefreshing?: boolean;
|
|
10
|
+
hasMore?: boolean;
|
|
11
|
+
onLoadMore: () => void;
|
|
12
|
+
onRefresh: () => void;
|
|
13
|
+
emptyMessage?: string;
|
|
14
|
+
estimatedItemSize?: number;
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* MkInfiniteList (Mobile)
|
|
18
|
+
* Optimized for React Native using best practices:
|
|
19
|
+
* Virtualization, memory management, and Batching.
|
|
20
|
+
*/
|
|
21
|
+
export declare function MkInfiniteList<T>({ items, renderItem, loading, isRefreshing, hasMore, onLoadMore, onRefresh, emptyMessage, estimatedItemSize }: MkInfiniteListProps<T>): import("react/jsx-runtime").JSX.Element;
|
|
22
|
+
//# sourceMappingURL=MkInfiniteList.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MkInfiniteList.d.ts","sourceRoot":"","sources":["../../src/components/MkInfiniteList.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA+B,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"MkInfiniteList.d.ts","sourceRoot":"","sources":["../../src/components/MkInfiniteList.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA+B,MAAM,OAAO,CAAC;AAUpD,MAAM,WAAW,mBAAmB,CAAC,CAAC;IAClC,KAAK,EAAE,CAAC,EAAE,CAAC;IACX,UAAU,EAAE,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE;QAAE,IAAI,EAAE,CAAC,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,KAAK,KAAK,CAAC,YAAY,GAAG,IAAI,CAAC;IACvF,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,UAAU,EAAE,MAAM,IAAI,CAAC;IACvB,SAAS,EAAE,MAAM,IAAI,CAAC;IACtB,YAAY,CAAC,EAAE,MAAM,CAAC;IAGtB,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC9B;AAED;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,CAAC,EAAE,EAC9B,KAAK,EACL,UAAU,EACV,OAAO,EACP,YAAY,EACZ,OAAO,EACP,UAAU,EACV,SAAS,EACT,YAAyC,EACzC,iBAAuB,EAC1B,EAAE,mBAAmB,CAAC,CAAC,CAAC,2CAwDxB"}
|
|
@@ -2,22 +2,24 @@ import { jsx as _jsx } from "react/jsx-runtime";
|
|
|
2
2
|
import { useCallback } from 'react';
|
|
3
3
|
import { FlashList } from '@shopify/flash-list';
|
|
4
4
|
import { ActivityIndicator, View, Text, RefreshControl, StyleSheet } from 'react-native';
|
|
5
|
+
import { useMkTheme } from '../theme/MkThemeProvider';
|
|
5
6
|
/**
|
|
6
7
|
* MkInfiniteList (Mobile)
|
|
7
8
|
* Optimized for React Native using best practices:
|
|
8
9
|
* Virtualization, memory management, and Batching.
|
|
9
10
|
*/
|
|
10
11
|
export function MkInfiniteList({ items, renderItem, loading, isRefreshing, hasMore, onLoadMore, onRefresh, emptyMessage = "No se encontraron datos.", estimatedItemSize = 100 }) {
|
|
12
|
+
const { theme } = useMkTheme();
|
|
11
13
|
const renderFooter = useCallback(() => {
|
|
12
14
|
if (!loading || isRefreshing)
|
|
13
15
|
return null;
|
|
14
|
-
return (_jsx(View, { style: styles.footer, children: _jsx(ActivityIndicator, { size: "small", color:
|
|
15
|
-
}, [loading, isRefreshing]);
|
|
16
|
+
return (_jsx(View, { style: styles.footer, children: _jsx(ActivityIndicator, { size: "small", color: theme.primary }) }));
|
|
17
|
+
}, [loading, isRefreshing, theme.primary]);
|
|
16
18
|
const renderEmpty = useCallback(() => {
|
|
17
19
|
if (loading)
|
|
18
20
|
return null;
|
|
19
|
-
return (_jsx(View, { style: styles.emptyContainer, children: _jsx(Text, { style: styles.emptyText, children: emptyMessage }) }));
|
|
20
|
-
}, [loading, emptyMessage]);
|
|
21
|
+
return (_jsx(View, { style: styles.emptyContainer, children: _jsx(Text, { style: [styles.emptyText, { color: theme.mutedForeground }], children: emptyMessage }) }));
|
|
22
|
+
}, [loading, emptyMessage, theme.mutedForeground]);
|
|
21
23
|
return (_jsx(FlashList, { data: items, renderItem: renderItem, keyExtractor: (item, index) => {
|
|
22
24
|
if (item && typeof item === 'object') {
|
|
23
25
|
if (item.id !== undefined && item.id !== null)
|
|
@@ -34,8 +36,7 @@ export function MkInfiniteList({ items, renderItem, loading, isRefreshing, hasMo
|
|
|
34
36
|
// Feedback Components
|
|
35
37
|
ListFooterComponent: renderFooter, ListEmptyComponent: renderEmpty,
|
|
36
38
|
// Pull to Refresh
|
|
37
|
-
refreshControl: _jsx(RefreshControl, { refreshing: isRefreshing === true, onRefresh: onRefresh, colors: [
|
|
38
|
-
}),
|
|
39
|
+
refreshControl: _jsx(RefreshControl, { refreshing: isRefreshing === true, onRefresh: onRefresh, colors: [theme.primary], tintColor: theme.primary }),
|
|
39
40
|
// Standard spacing
|
|
40
41
|
contentContainerStyle: styles.content }));
|
|
41
42
|
}
|
|
@@ -52,7 +53,6 @@ const styles = StyleSheet.create({
|
|
|
52
53
|
alignItems: 'center',
|
|
53
54
|
},
|
|
54
55
|
emptyText: {
|
|
55
|
-
color: '#64748b',
|
|
56
56
|
fontSize: 14,
|
|
57
57
|
textAlign: 'center',
|
|
58
58
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MkInfiniteList.js","sourceRoot":"","sources":["../../src/components/MkInfiniteList.tsx"],"names":[],"mappings":";AAAA,OAAc,EAAE,WAAW,EAAW,MAAM,OAAO,CAAC;AACpD,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAChD,OAAO,EACH,iBAAiB,EACjB,IAAI,EACJ,IAAI,EACJ,cAAc,EACd,UAAU,EACb,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"MkInfiniteList.js","sourceRoot":"","sources":["../../src/components/MkInfiniteList.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
interface MkInputProps {
|
|
3
|
+
label?: string;
|
|
4
|
+
error?: string;
|
|
5
|
+
success?: boolean;
|
|
6
|
+
helperText?: string;
|
|
7
|
+
placeholder?: string;
|
|
8
|
+
value?: string;
|
|
9
|
+
iconLeft?: React.ReactNode;
|
|
10
|
+
iconRight?: React.ReactNode;
|
|
11
|
+
onChangeText?: (text: string) => void;
|
|
12
|
+
secureTextEntry?: boolean;
|
|
13
|
+
}
|
|
14
|
+
export declare const MkInput: React.FC<MkInputProps>;
|
|
15
|
+
export {};
|
|
16
|
+
//# sourceMappingURL=MkInput.d.ts.map
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import type { ViewStyle } from 'react-native';
|
|
3
|
+
export interface MkLoadingProps {
|
|
4
|
+
visible?: boolean;
|
|
5
|
+
label?: string;
|
|
6
|
+
size?: 'sm' | 'md' | 'lg';
|
|
7
|
+
overlay?: boolean;
|
|
8
|
+
color?: string;
|
|
9
|
+
style?: ViewStyle;
|
|
10
|
+
}
|
|
11
|
+
export declare const MkLoading: React.FC<MkLoadingProps>;
|
|
12
|
+
//# sourceMappingURL=MkLoading.d.ts.map
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
export interface MkModalProps {
|
|
3
|
+
isOpen: boolean;
|
|
4
|
+
onClose: () => void;
|
|
5
|
+
title?: string;
|
|
6
|
+
children: React.ReactNode;
|
|
7
|
+
confirmText?: string;
|
|
8
|
+
cancelText?: string;
|
|
9
|
+
onConfirm?: () => void;
|
|
10
|
+
showCancel?: boolean;
|
|
11
|
+
variant?: 'default' | 'destructive' | 'warning' | 'success';
|
|
12
|
+
size?: 'sm' | 'md' | 'lg' | 'full';
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* MkModal (Mobile)
|
|
16
|
+
* 🚀 Parity with Web version using React Native's <Modal>.
|
|
17
|
+
* Features backdrop blur and smooth slide-up animation.
|
|
18
|
+
*/
|
|
19
|
+
export declare const MkModal: React.FC<MkModalProps>;
|
|
20
|
+
//# sourceMappingURL=MkModal.d.ts.map
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import type { ViewStyle } from 'react-native';
|
|
3
|
+
export interface MkProgressBarProps {
|
|
4
|
+
value: number;
|
|
5
|
+
max?: number;
|
|
6
|
+
label?: string;
|
|
7
|
+
showPercent?: boolean;
|
|
8
|
+
variant?: 'primary' | 'success' | 'warning' | 'error' | 'info';
|
|
9
|
+
size?: 'sm' | 'md' | 'lg';
|
|
10
|
+
style?: ViewStyle;
|
|
11
|
+
}
|
|
12
|
+
export declare const MkProgressBar: React.FC<MkProgressBarProps>;
|
|
13
|
+
//# sourceMappingURL=MkProgressBar.d.ts.map
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import type { ViewStyle } from 'react-native';
|
|
3
|
+
export interface MkRadioOption {
|
|
4
|
+
value: string | number;
|
|
5
|
+
label: string;
|
|
6
|
+
disabled?: boolean;
|
|
7
|
+
}
|
|
8
|
+
export interface MkRadioProps {
|
|
9
|
+
label?: string;
|
|
10
|
+
options: MkRadioOption[];
|
|
11
|
+
value?: string | number | null;
|
|
12
|
+
onChange?: (value: string | number) => void;
|
|
13
|
+
direction?: 'horizontal' | 'vertical';
|
|
14
|
+
disabled?: boolean;
|
|
15
|
+
error?: string;
|
|
16
|
+
size?: 'sm' | 'md' | 'lg';
|
|
17
|
+
style?: ViewStyle;
|
|
18
|
+
}
|
|
19
|
+
export declare const MkRadio: React.FC<MkRadioProps>;
|
|
20
|
+
//# sourceMappingURL=MkRadio.d.ts.map
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import type { ViewStyle } from 'react-native';
|
|
3
|
+
/**
|
|
4
|
+
* @module MkSearchInput (Mobile)
|
|
5
|
+
* @description Search input with integrated debounce. Same API as mk-web.
|
|
6
|
+
*/
|
|
7
|
+
export interface MkSearchInputProps {
|
|
8
|
+
onSearch: (term: string) => void;
|
|
9
|
+
delay?: number;
|
|
10
|
+
placeholder?: string;
|
|
11
|
+
value?: string;
|
|
12
|
+
defaultValue?: string;
|
|
13
|
+
size?: 'sm' | 'md' | 'lg';
|
|
14
|
+
disabled?: boolean;
|
|
15
|
+
loading?: boolean;
|
|
16
|
+
clearable?: boolean;
|
|
17
|
+
style?: ViewStyle;
|
|
18
|
+
autoFocus?: boolean;
|
|
19
|
+
}
|
|
20
|
+
export declare const MkSearchInput: React.FC<MkSearchInputProps>;
|
|
21
|
+
//# sourceMappingURL=MkSearchInput.d.ts.map
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
interface Option {
|
|
3
|
+
label: string;
|
|
4
|
+
value: string | number;
|
|
5
|
+
}
|
|
6
|
+
interface MkSelectProps {
|
|
7
|
+
label?: string;
|
|
8
|
+
error?: string;
|
|
9
|
+
options: Option[];
|
|
10
|
+
value?: string | number;
|
|
11
|
+
placeholder?: string;
|
|
12
|
+
onSelect: (value: string | number) => void;
|
|
13
|
+
}
|
|
14
|
+
export declare const MkSelect: React.FC<MkSelectProps>;
|
|
15
|
+
export {};
|
|
16
|
+
//# sourceMappingURL=MkSelect.d.ts.map
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import type { ViewStyle } from 'react-native';
|
|
3
|
+
export interface MkSkeletonProps {
|
|
4
|
+
variant?: 'text' | 'circle' | 'rect';
|
|
5
|
+
width?: number | string;
|
|
6
|
+
height?: number;
|
|
7
|
+
lines?: number;
|
|
8
|
+
gap?: number;
|
|
9
|
+
radius?: number;
|
|
10
|
+
style?: ViewStyle;
|
|
11
|
+
}
|
|
12
|
+
export declare const MkSkeleton: React.FC<MkSkeletonProps>;
|
|
13
|
+
//# sourceMappingURL=MkSkeleton.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MkSkeleton.d.ts","sourceRoot":"","sources":["../../src/components/MkSkeleton.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA4B,MAAM,OAAO,CAAC;AACjD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"MkSkeleton.d.ts","sourceRoot":"","sources":["../../src/components/MkSkeleton.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA4B,MAAM,OAAO,CAAC;AACjD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAI9C,MAAM,WAAW,eAAe;IAC5B,OAAO,CAAC,EAAE,MAAM,GAAG,QAAQ,GAAG,MAAM,CAAC;IACrC,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACxB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,SAAS,CAAC;CACrB;AAmBD,eAAO,MAAM,UAAU,EAAE,KAAK,CAAC,EAAE,CAAC,eAAe,CAoChD,CAAC"}
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
2
|
import { useEffect, useRef } from 'react';
|
|
3
3
|
import { View, Animated, StyleSheet } from 'react-native';
|
|
4
|
-
|
|
4
|
+
import { useMkTheme } from '../theme/MkThemeProvider';
|
|
5
|
+
const ShimmerBox = ({ style, backgroundColor }) => {
|
|
5
6
|
const opacity = useRef(new Animated.Value(0.3)).current;
|
|
6
7
|
useEffect(() => {
|
|
7
8
|
const animation = Animated.loop(Animated.sequence([
|
|
@@ -11,22 +12,24 @@ const ShimmerBox = ({ style }) => {
|
|
|
11
12
|
animation.start();
|
|
12
13
|
return () => animation.stop();
|
|
13
14
|
}, [opacity]);
|
|
14
|
-
return _jsx(Animated.View, { style: [styles.skeleton, style, { opacity }] });
|
|
15
|
+
return _jsx(Animated.View, { style: [styles.skeleton, { backgroundColor }, style, { opacity }] });
|
|
15
16
|
};
|
|
16
17
|
export const MkSkeleton = ({ variant = 'text', width = '100%', height, lines = 1, gap = 8, radius, style, }) => {
|
|
18
|
+
const { theme } = useMkTheme();
|
|
19
|
+
const bg = theme.muted;
|
|
17
20
|
if (variant === 'circle') {
|
|
18
21
|
const size = typeof width === 'number' ? width : 40;
|
|
19
|
-
return _jsx(ShimmerBox, { style: Object.assign({ width: size, height: size, borderRadius: size / 2 }, style) });
|
|
22
|
+
return _jsx(ShimmerBox, { backgroundColor: bg, style: Object.assign({ width: size, height: size, borderRadius: size / 2 }, style) });
|
|
20
23
|
}
|
|
21
24
|
if (variant === 'rect') {
|
|
22
|
-
return _jsx(ShimmerBox, { style: Object.assign({ width: width, height: height || 80, borderRadius: radius !== null && radius !== void 0 ? radius : 8 }, style) });
|
|
25
|
+
return _jsx(ShimmerBox, { backgroundColor: bg, style: Object.assign({ width: width, height: height || 80, borderRadius: radius !== null && radius !== void 0 ? radius : 8 }, style) });
|
|
23
26
|
}
|
|
24
27
|
if (lines <= 1) {
|
|
25
|
-
return _jsx(ShimmerBox, { style: Object.assign({ width: width, height: height || 14, borderRadius: radius !== null && radius !== void 0 ? radius : 4 }, style) });
|
|
28
|
+
return _jsx(ShimmerBox, { backgroundColor: bg, style: Object.assign({ width: width, height: height || 14, borderRadius: radius !== null && radius !== void 0 ? radius : 4 }, style) });
|
|
26
29
|
}
|
|
27
|
-
return (_jsx(View, { style: [{ gap }, style], children: Array.from({ length: lines }).map((_, i) => (_jsx(ShimmerBox, { style: { width: i === lines - 1 ? '70%' : '100%', height: height || 14, borderRadius: radius !== null && radius !== void 0 ? radius : 4 } }, i))) }));
|
|
30
|
+
return (_jsx(View, { style: [{ gap }, style], children: Array.from({ length: lines }).map((_, i) => (_jsx(ShimmerBox, { backgroundColor: bg, style: { width: i === lines - 1 ? '70%' : '100%', height: height || 14, borderRadius: radius !== null && radius !== void 0 ? radius : 4 } }, i))) }));
|
|
28
31
|
};
|
|
29
32
|
const styles = StyleSheet.create({
|
|
30
|
-
skeleton: {
|
|
33
|
+
skeleton: {},
|
|
31
34
|
});
|
|
32
35
|
//# sourceMappingURL=MkSkeleton.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MkSkeleton.js","sourceRoot":"","sources":["../../src/components/MkSkeleton.tsx"],"names":[],"mappings":";AAAA,OAAc,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,OAAO,CAAC;AAEjD,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"MkSkeleton.js","sourceRoot":"","sources":["../../src/components/MkSkeleton.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import type { ViewStyle } from 'react-native';
|
|
3
|
+
export interface MkSwitchProps {
|
|
4
|
+
label?: string;
|
|
5
|
+
checked?: boolean;
|
|
6
|
+
onChange?: (checked: boolean) => void;
|
|
7
|
+
disabled?: boolean;
|
|
8
|
+
size?: 'sm' | 'md' | 'lg';
|
|
9
|
+
error?: string;
|
|
10
|
+
style?: ViewStyle;
|
|
11
|
+
}
|
|
12
|
+
export declare const MkSwitch: React.FC<MkSwitchProps>;
|
|
13
|
+
//# sourceMappingURL=MkSwitch.d.ts.map
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import type { ViewStyle } from 'react-native';
|
|
3
|
+
import type { MkDropdownOptionType } from './MkDropDown';
|
|
4
|
+
/**
|
|
5
|
+
* @module MkTable (Mobile)
|
|
6
|
+
* @description Data table as a FlatList with column headers, sort indicators, row actions, and pagination.
|
|
7
|
+
* Equivalent to mk-web's MkTable — adapted for React Native's layout system.
|
|
8
|
+
*/
|
|
9
|
+
interface Column<T> {
|
|
10
|
+
key: keyof T | string;
|
|
11
|
+
label: string;
|
|
12
|
+
render?: (item: T) => React.ReactNode;
|
|
13
|
+
sortable?: boolean;
|
|
14
|
+
flex?: number;
|
|
15
|
+
}
|
|
16
|
+
interface MkTableProps<T> {
|
|
17
|
+
data: T[];
|
|
18
|
+
columns: Column<T>[];
|
|
19
|
+
loading?: boolean;
|
|
20
|
+
onSort?: (field: string) => void;
|
|
21
|
+
sortField?: string;
|
|
22
|
+
sortOrder?: 'asc' | 'desc';
|
|
23
|
+
pagination?: {
|
|
24
|
+
current_page?: number;
|
|
25
|
+
last_page?: number;
|
|
26
|
+
total?: number;
|
|
27
|
+
};
|
|
28
|
+
onPageChange?: (page: number) => void;
|
|
29
|
+
actions?: (item: T) => MkDropdownOptionType[];
|
|
30
|
+
onAction?: (action: string | number, item: T) => void;
|
|
31
|
+
emptyMessage?: string;
|
|
32
|
+
keyExtractor?: (item: T, index: number) => string;
|
|
33
|
+
onRefresh?: () => void;
|
|
34
|
+
refreshing?: boolean;
|
|
35
|
+
style?: ViewStyle;
|
|
36
|
+
}
|
|
37
|
+
export declare function MkTable<T>({ data, columns, loading, onSort, sortField, sortOrder, pagination, onPageChange, actions, onAction, emptyMessage, keyExtractor, onRefresh, refreshing, style, }: MkTableProps<T>): import("react/jsx-runtime").JSX.Element;
|
|
38
|
+
export {};
|
|
39
|
+
//# sourceMappingURL=MkTable.d.ts.map
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import type { ViewStyle } from 'react-native';
|
|
3
|
+
export interface MkTabItem {
|
|
4
|
+
key: string;
|
|
5
|
+
label: string;
|
|
6
|
+
icon?: React.ReactNode;
|
|
7
|
+
badge?: number | string;
|
|
8
|
+
disabled?: boolean;
|
|
9
|
+
}
|
|
10
|
+
export interface MkTabsProps {
|
|
11
|
+
tabs: MkTabItem[];
|
|
12
|
+
activeKey?: string;
|
|
13
|
+
onChange?: (key: string) => void;
|
|
14
|
+
variant?: 'underline' | 'pills' | 'segmented';
|
|
15
|
+
size?: 'sm' | 'md';
|
|
16
|
+
style?: ViewStyle;
|
|
17
|
+
}
|
|
18
|
+
export declare const MkTabs: React.FC<MkTabsProps>;
|
|
19
|
+
//# sourceMappingURL=MkTabs.d.ts.map
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import type { ViewStyle } from 'react-native';
|
|
3
|
+
export interface MkTextAreaProps {
|
|
4
|
+
label?: string;
|
|
5
|
+
error?: string;
|
|
6
|
+
helperText?: string;
|
|
7
|
+
placeholder?: string;
|
|
8
|
+
value?: string;
|
|
9
|
+
onChangeText?: (text: string) => void;
|
|
10
|
+
rows?: number;
|
|
11
|
+
maxLength?: number;
|
|
12
|
+
disabled?: boolean;
|
|
13
|
+
showCount?: boolean;
|
|
14
|
+
style?: ViewStyle;
|
|
15
|
+
}
|
|
16
|
+
export declare const MkTextArea: React.FC<MkTextAreaProps>;
|
|
17
|
+
//# sourceMappingURL=MkTextArea.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MkToastRenderer.d.ts","sourceRoot":"","sources":["../../src/components/MkToastRenderer.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAyC,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"MkToastRenderer.d.ts","sourceRoot":"","sources":["../../src/components/MkToastRenderer.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAyC,MAAM,OAAO,CAAC;AA2C9D,eAAO,MAAM,eAAe,EAAE,KAAK,CAAC,EAkBnC,CAAC"}
|
|
@@ -20,12 +20,14 @@ import { useMkTheme } from '../theme/MkThemeProvider';
|
|
|
20
20
|
* ```
|
|
21
21
|
*/
|
|
22
22
|
const { width: SCREEN_WIDTH } = Dimensions.get('window');
|
|
23
|
-
const
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
23
|
+
const getTypeColor = (type, theme) => {
|
|
24
|
+
switch (type) {
|
|
25
|
+
case 'success': return theme.success;
|
|
26
|
+
case 'error': return theme.error;
|
|
27
|
+
case 'warning': return theme.warning;
|
|
28
|
+
case 'info': return theme.info;
|
|
29
|
+
default: return theme.primary;
|
|
30
|
+
}
|
|
29
31
|
};
|
|
30
32
|
const TYPE_ICONS = {
|
|
31
33
|
default: '🔔',
|
|
@@ -45,7 +47,7 @@ const ToastItem = React.memo(({ toast, onDismiss, theme }) => {
|
|
|
45
47
|
const translateY = useRef(new Animated.Value(-80)).current;
|
|
46
48
|
const opacity = useRef(new Animated.Value(0)).current;
|
|
47
49
|
const progress = useRef(new Animated.Value(1)).current;
|
|
48
|
-
const typeColor =
|
|
50
|
+
const typeColor = getTypeColor(toast.options.type || 'default', theme);
|
|
49
51
|
const typeIcon = TYPE_ICONS[toast.options.type || 'default'] || TYPE_ICONS.default;
|
|
50
52
|
const timeout = toast.options.timeout || 4000;
|
|
51
53
|
const handleDismiss = useCallback(() => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MkToastRenderer.js","sourceRoot":"","sources":["../../src/components/MkToastRenderer.tsx"],"names":[],"mappings":";AAAA,OAAO,KAAK,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,OAAO,CAAC;AAC9D,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,gBAAgB,EAAE,QAAQ,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC9F,OAAO,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AACvD,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAGtD;;;;;;;;;;;;;;;GAeG;AAEH,MAAM,EAAE,KAAK,EAAE,YAAY,EAAE,GAAG,UAAU,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;AAEzD,MAAM,
|
|
1
|
+
{"version":3,"file":"MkToastRenderer.js","sourceRoot":"","sources":["../../src/components/MkToastRenderer.tsx"],"names":[],"mappings":"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"}
|