@idealyst/cli 1.0.23 → 1.0.24
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/package.json +1 -1
- package/templates/native/metro.config.js +6 -0
- package/templates/shared/package.json +9 -11
- package/templates/shared/src/index.ts +1 -11
- package/templates/web/vite.config.ts +5 -2
- package/templates/shared/.yarnrc.yml +0 -19
- package/templates/shared/rollup.config.js +0 -27
- package/templates/shared/src/components/SharedComponent.tsx +0 -41
- package/templates/shared/src/components/index.ts +0 -3
- package/templates/shared/src/types/index.ts +0 -17
- package/templates/shared/src/utils/helpers.ts +0 -34
- package/templates/shared/src/utils/index.ts +0 -2
package/package.json
CHANGED
|
@@ -5,9 +5,15 @@ const { wrapWithReanimatedMetroConfig } = require('react-native-reanimated/metro
|
|
|
5
5
|
|
|
6
6
|
const config = {
|
|
7
7
|
projectRoot: __dirname,
|
|
8
|
+
watchFolders: [
|
|
9
|
+
// Add the workspace root to watch folders so Metro can watch workspace packages
|
|
10
|
+
path.resolve(__dirname, '..'),
|
|
11
|
+
],
|
|
8
12
|
resolver: {
|
|
9
13
|
nodeModulesPaths: [
|
|
10
14
|
path.resolve(__dirname, 'node_modules'),
|
|
15
|
+
// Add the workspace root node_modules
|
|
16
|
+
path.resolve(__dirname, '..', 'node_modules'),
|
|
11
17
|
],
|
|
12
18
|
// Important for Idealyst to use .native extensions for React Native (eg: @idealyst/components/src/Button/Button.native.tsx)
|
|
13
19
|
sourceExts: ['native.tsx', 'native.ts', 'tsx', 'ts', 'native.jsx', 'native.js', 'jsx', 'js', 'json'],
|
|
@@ -2,16 +2,13 @@
|
|
|
2
2
|
"name": "{{packageName}}",
|
|
3
3
|
"version": "{{version}}",
|
|
4
4
|
"description": "{{description}}",
|
|
5
|
-
"main": "
|
|
6
|
-
"module": "
|
|
7
|
-
"types": "
|
|
8
|
-
"scripts": {
|
|
9
|
-
"build": "rollup -c",
|
|
10
|
-
"dev": "rollup -c -w",
|
|
11
|
-
"prepublishOnly": "yarn build"
|
|
12
|
-
},
|
|
5
|
+
"main": "src/index.ts",
|
|
6
|
+
"module": "src/index.ts",
|
|
7
|
+
"types": "src/index.ts",
|
|
13
8
|
"peerDependencies": {
|
|
14
|
-
"@idealyst/
|
|
9
|
+
"@idealyst/components": "^1.0.21",
|
|
10
|
+
"@idealyst/navigation": "^1.0.21",
|
|
11
|
+
"@idealyst/theme": "^1.0.21",
|
|
15
12
|
"react": "^19.1.0",
|
|
16
13
|
"react-native": "^0.80.1"
|
|
17
14
|
},
|
|
@@ -21,11 +18,12 @@
|
|
|
21
18
|
}
|
|
22
19
|
},
|
|
23
20
|
"devDependencies": {
|
|
21
|
+
"@idealyst/components": "^1.0.21",
|
|
22
|
+
"@idealyst/navigation": "^1.0.21",
|
|
23
|
+
"@idealyst/theme": "^1.0.21",
|
|
24
24
|
"@types/react": "^19.1.0",
|
|
25
25
|
"react": "^19.1.0",
|
|
26
26
|
"react-native": "^0.80.1",
|
|
27
|
-
"rollup": "^3.20.0",
|
|
28
|
-
"rollup-plugin-typescript2": "^0.34.0",
|
|
29
27
|
"typescript": "^5.0.0"
|
|
30
28
|
},
|
|
31
29
|
"files": [
|
|
@@ -1,11 +1 @@
|
|
|
1
|
-
|
|
2
|
-
export * from './components';
|
|
3
|
-
|
|
4
|
-
// Export all utilities
|
|
5
|
-
export * from './utils';
|
|
6
|
-
|
|
7
|
-
// Export all types
|
|
8
|
-
export * from './types';
|
|
9
|
-
|
|
10
|
-
// Re-export theme utilities
|
|
11
|
-
export { useTheme, createStyleSheet } from '@idealyst/theme';
|
|
1
|
+
export const add_stuff = "here";
|
|
@@ -36,7 +36,9 @@ export default defineConfig({
|
|
|
36
36
|
// Platform-specific file resolution
|
|
37
37
|
extensions: ['.web.tsx', '.web.ts', '.tsx', '.ts', '.js', '.jsx'],
|
|
38
38
|
// Ensure proper resolution of package exports
|
|
39
|
-
conditions: ['browser', 'import', 'module', 'default']
|
|
39
|
+
conditions: ['browser', 'import', 'module', 'default'],
|
|
40
|
+
// Ensure workspace dependencies resolve properly
|
|
41
|
+
preserveSymlinks: false
|
|
40
42
|
},
|
|
41
43
|
define: {
|
|
42
44
|
global: 'globalThis',
|
|
@@ -57,10 +59,11 @@ export default defineConfig({
|
|
|
57
59
|
'@idealyst/components',
|
|
58
60
|
'@idealyst/navigation',
|
|
59
61
|
'@idealyst/theme',
|
|
62
|
+
'@testproject/shared',
|
|
60
63
|
],
|
|
61
64
|
},
|
|
62
65
|
server: {
|
|
63
66
|
host: '0.0.0.0',
|
|
64
|
-
port: 5173
|
|
67
|
+
port: 5173,
|
|
65
68
|
},
|
|
66
69
|
})
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
nodeLinker: "node-modules"
|
|
2
|
-
|
|
3
|
-
# Enable network for package downloads
|
|
4
|
-
enableNetwork: true
|
|
5
|
-
|
|
6
|
-
# Timeout for HTTP requests (in milliseconds)
|
|
7
|
-
httpTimeout: 60000
|
|
8
|
-
|
|
9
|
-
# Number of retry attempts for HTTP requests
|
|
10
|
-
httpRetry: 3
|
|
11
|
-
|
|
12
|
-
# Registry configuration
|
|
13
|
-
npmRegistryServer: "https://registry.yarnpkg.com"
|
|
14
|
-
|
|
15
|
-
# Enable progress bars
|
|
16
|
-
enableProgressBars: true
|
|
17
|
-
|
|
18
|
-
# Enable colors in output
|
|
19
|
-
enableColors: true
|
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
import typescript from 'rollup-plugin-typescript2';
|
|
2
|
-
|
|
3
|
-
export default {
|
|
4
|
-
input: 'src/index.ts',
|
|
5
|
-
output: [
|
|
6
|
-
{
|
|
7
|
-
file: 'dist/index.js',
|
|
8
|
-
format: 'cjs',
|
|
9
|
-
exports: 'named'
|
|
10
|
-
},
|
|
11
|
-
{
|
|
12
|
-
file: 'dist/index.esm.js',
|
|
13
|
-
format: 'es'
|
|
14
|
-
}
|
|
15
|
-
],
|
|
16
|
-
external: [
|
|
17
|
-
'react',
|
|
18
|
-
'react-native',
|
|
19
|
-
'@idealyst/theme'
|
|
20
|
-
],
|
|
21
|
-
plugins: [
|
|
22
|
-
typescript({
|
|
23
|
-
tsconfig: './tsconfig.json',
|
|
24
|
-
useTsconfigDeclarationDir: true
|
|
25
|
-
})
|
|
26
|
-
]
|
|
27
|
-
};
|
|
@@ -1,41 +0,0 @@
|
|
|
1
|
-
import React from 'react';
|
|
2
|
-
import { View, Text } from 'react-native';
|
|
3
|
-
import { useTheme } from '@idealyst/theme';
|
|
4
|
-
|
|
5
|
-
export interface SharedComponentProps {
|
|
6
|
-
title: string;
|
|
7
|
-
description?: string;
|
|
8
|
-
}
|
|
9
|
-
|
|
10
|
-
const SharedComponent: React.FC<SharedComponentProps> = ({ title, description }) => {
|
|
11
|
-
const { theme } = useTheme();
|
|
12
|
-
|
|
13
|
-
return (
|
|
14
|
-
<View style={{
|
|
15
|
-
padding: 16,
|
|
16
|
-
backgroundColor: theme.colors.surface,
|
|
17
|
-
borderRadius: 8,
|
|
18
|
-
marginBottom: 16
|
|
19
|
-
}}>
|
|
20
|
-
<Text style={{
|
|
21
|
-
fontSize: 18,
|
|
22
|
-
fontWeight: 'bold',
|
|
23
|
-
color: theme.colors.text,
|
|
24
|
-
marginBottom: 8
|
|
25
|
-
}}>
|
|
26
|
-
{title}
|
|
27
|
-
</Text>
|
|
28
|
-
{description && (
|
|
29
|
-
<Text style={{
|
|
30
|
-
fontSize: 14,
|
|
31
|
-
color: theme.colors.textSecondary,
|
|
32
|
-
lineHeight: 20
|
|
33
|
-
}}>
|
|
34
|
-
{description}
|
|
35
|
-
</Text>
|
|
36
|
-
)}
|
|
37
|
-
</View>
|
|
38
|
-
);
|
|
39
|
-
};
|
|
40
|
-
|
|
41
|
-
export default SharedComponent;
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
export interface ComponentProps {
|
|
2
|
-
style?: any;
|
|
3
|
-
children?: React.ReactNode;
|
|
4
|
-
}
|
|
5
|
-
|
|
6
|
-
export interface User {
|
|
7
|
-
id: string;
|
|
8
|
-
name: string;
|
|
9
|
-
email: string;
|
|
10
|
-
avatar?: string;
|
|
11
|
-
}
|
|
12
|
-
|
|
13
|
-
export interface ApiResponse<T> {
|
|
14
|
-
data: T;
|
|
15
|
-
message: string;
|
|
16
|
-
success: boolean;
|
|
17
|
-
}
|
|
@@ -1,34 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Converts a string to title case
|
|
3
|
-
* @param str The string to convert
|
|
4
|
-
* @returns The string in title case
|
|
5
|
-
*/
|
|
6
|
-
export const toTitleCase = (str: string): string => {
|
|
7
|
-
return str.replace(/\w\S*/g, (txt) =>
|
|
8
|
-
txt.charAt(0).toUpperCase() + txt.substr(1).toLowerCase()
|
|
9
|
-
);
|
|
10
|
-
};
|
|
11
|
-
|
|
12
|
-
/**
|
|
13
|
-
* Formats a number as currency
|
|
14
|
-
* @param amount The amount to format
|
|
15
|
-
* @param currency The currency code (default: 'USD')
|
|
16
|
-
* @returns The formatted currency string
|
|
17
|
-
*/
|
|
18
|
-
export const formatCurrency = (amount: number, currency = 'USD'): string => {
|
|
19
|
-
return new Intl.NumberFormat('en-US', {
|
|
20
|
-
style: 'currency',
|
|
21
|
-
currency,
|
|
22
|
-
}).format(amount);
|
|
23
|
-
};
|
|
24
|
-
|
|
25
|
-
/**
|
|
26
|
-
* Truncates a string to a specified length
|
|
27
|
-
* @param str The string to truncate
|
|
28
|
-
* @param maxLength The maximum length
|
|
29
|
-
* @returns The truncated string
|
|
30
|
-
*/
|
|
31
|
-
export const truncateText = (str: string, maxLength: number): string => {
|
|
32
|
-
if (str.length <= maxLength) return str;
|
|
33
|
-
return str.substring(0, maxLength) + '...';
|
|
34
|
-
};
|