@echoform/echo-ui 0.1.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/README.md ADDED
@@ -0,0 +1,86 @@
1
+ # @echoform/echo-ui
2
+
3
+ Shared React Native / Expo UI component library by **Echoform Productions**.
4
+
5
+ ---
6
+
7
+ ## Project layout
8
+
9
+ ```
10
+ (OnSpace project root)
11
+ ├── app/ ← Expo Router host app (preview only)
12
+ │ ├── _layout.tsx
13
+ │ └── (tabs)/
14
+ │ ├── _layout.tsx
15
+ │ └── index.tsx ← Demo screen
16
+
17
+ └── packages/
18
+ └── echo-ui/ ← Publishable npm package
19
+ ├── package.json ← name: @echoform/echo-ui
20
+ ├── tsconfig.json
21
+ └── src/
22
+ ├── index.ts ← Public entry point
23
+ └── components/
24
+ └── EchoUITest.tsx
25
+ ```
26
+
27
+ ---
28
+
29
+ ## Building the package
30
+
31
+ ```bash
32
+ cd packages/echo-ui
33
+ npm install # install devDependencies (tsc, @types/*)
34
+ npm run build # emits dist/ (JS + .d.ts + source maps)
35
+ ```
36
+
37
+ The `dist/` directory is produced by `tsc` using `packages/echo-ui/tsconfig.json`.
38
+ It contains plain CommonJS JavaScript and TypeScript declaration files — no raw
39
+ TypeScript, so consuming projects need no special Metro configuration.
40
+
41
+ ---
42
+
43
+ ## Publishing to npm
44
+
45
+ ```bash
46
+ cd packages/echo-ui
47
+ npm run build # always build before publish
48
+ npm publish # requires: npm login, package name available
49
+ ```
50
+
51
+ The `publishConfig.access` field is set to `"public"` so the scoped package
52
+ publishes to the public registry without an npm Organisation plan.
53
+
54
+ ---
55
+
56
+ ## Consuming in another OnSpace project
57
+
58
+ After publishing:
59
+
60
+ ```bash
61
+ npx expo install @echoform/echo-ui
62
+ ```
63
+
64
+ ```tsx
65
+ import { EchoUITest } from '@echoform/echo-ui';
66
+
67
+ <EchoUITest label="Rig Vault – Echo" />
68
+ ```
69
+
70
+ ---
71
+
72
+ ## OnSpace preview host
73
+
74
+ The host app at `app/(tabs)/index.tsx` imports directly from the **source tree**
75
+ (`../../packages/echo-ui/src`) so the OnSpace Live Preview works without any
76
+ Metro alias or symlink configuration.
77
+
78
+ Consuming projects always import from the compiled npm package.
79
+
80
+ ---
81
+
82
+ ## Version history
83
+
84
+ | Version | Notes |
85
+ |---------|-------|
86
+ | 0.1.0 | Initial scaffold — `EchoUITest` smoke-test component only |
@@ -0,0 +1,14 @@
1
+ /**
2
+ * EchoUITest
3
+ *
4
+ * Minimal smoke-test component. Its sole purpose is to confirm that the
5
+ * package build pipeline and import chain are working end-to-end.
6
+ * Replace / delete this component once real Echo UI components exist.
7
+ */
8
+ import React from 'react';
9
+ export interface EchoUITestProps {
10
+ /** Optional label rendered inside the badge. Defaults to "@echoform/echo-ui". */
11
+ label?: string;
12
+ }
13
+ export declare function EchoUITest({ label }: EchoUITestProps): React.JSX.Element;
14
+ //# sourceMappingURL=EchoUITest.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"EchoUITest.d.ts","sourceRoot":"","sources":["../../src/components/EchoUITest.tsx"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,MAAM,WAAW,eAAe;IAC9B,iFAAiF;IACjF,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,wBAAgB,UAAU,CAAC,EAAE,KAA2B,EAAE,EAAE,eAAe,qBAS1E"}
@@ -0,0 +1,53 @@
1
+ "use strict";
2
+ /**
3
+ * EchoUITest
4
+ *
5
+ * Minimal smoke-test component. Its sole purpose is to confirm that the
6
+ * package build pipeline and import chain are working end-to-end.
7
+ * Replace / delete this component once real Echo UI components exist.
8
+ */
9
+ var __importDefault = (this && this.__importDefault) || function (mod) {
10
+ return (mod && mod.__esModule) ? mod : { "default": mod };
11
+ };
12
+ Object.defineProperty(exports, "__esModule", { value: true });
13
+ exports.EchoUITest = EchoUITest;
14
+ const react_1 = __importDefault(require("react"));
15
+ const react_native_1 = require("react-native");
16
+ function EchoUITest({ label = '@echoform/echo-ui' }) {
17
+ return (<react_native_1.View style={styles.container}>
18
+ <react_native_1.View style={styles.badge}>
19
+ <react_native_1.Text style={styles.packageLabel}>{label}</react_native_1.Text>
20
+ <react_native_1.Text style={styles.statusLabel}>Package import OK</react_native_1.Text>
21
+ </react_native_1.View>
22
+ </react_native_1.View>);
23
+ }
24
+ const styles = react_native_1.StyleSheet.create({
25
+ container: {
26
+ alignItems: 'center',
27
+ justifyContent: 'center',
28
+ padding: 16,
29
+ },
30
+ badge: {
31
+ backgroundColor: '#0D0D0D',
32
+ borderWidth: 1,
33
+ borderColor: '#2A2A2A',
34
+ borderRadius: 12,
35
+ paddingVertical: 18,
36
+ paddingHorizontal: 28,
37
+ alignItems: 'center',
38
+ gap: 6,
39
+ },
40
+ packageLabel: {
41
+ color: '#C8FF00',
42
+ fontSize: 15,
43
+ fontWeight: '700',
44
+ letterSpacing: 0.4,
45
+ },
46
+ statusLabel: {
47
+ color: '#888888',
48
+ fontSize: 12,
49
+ fontWeight: '500',
50
+ letterSpacing: 0.2,
51
+ },
52
+ });
53
+ //# sourceMappingURL=EchoUITest.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"EchoUITest.js","sourceRoot":"","sources":["../../src/components/EchoUITest.tsx"],"names":[],"mappings":";AAAA;;;;;;GAMG;;;;;AAUH,gCASC;AAjBD,kDAA0B;AAC1B,+CAAsD;AAOtD,SAAgB,UAAU,CAAC,EAAE,KAAK,GAAG,mBAAmB,EAAmB;IACzE,OAAO,CACL,CAAC,mBAAI,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,CAC5B;MAAA,CAAC,mBAAI,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CACxB;QAAA,CAAC,mBAAI,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,mBAAI,CAC/C;QAAA,CAAC,mBAAI,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,iBAAiB,EAAE,mBAAI,CAC1D;MAAA,EAAE,mBAAI,CACR;IAAA,EAAE,mBAAI,CAAC,CACR,CAAC;AACJ,CAAC;AAED,MAAM,MAAM,GAAG,yBAAU,CAAC,MAAM,CAAC;IAC/B,SAAS,EAAE;QACT,UAAU,EAAE,QAAQ;QACpB,cAAc,EAAE,QAAQ;QACxB,OAAO,EAAE,EAAE;KACZ;IACD,KAAK,EAAE;QACL,eAAe,EAAE,SAAS;QAC1B,WAAW,EAAE,CAAC;QACd,WAAW,EAAE,SAAS;QACtB,YAAY,EAAE,EAAE;QAChB,eAAe,EAAE,EAAE;QACnB,iBAAiB,EAAE,EAAE;QACrB,UAAU,EAAE,QAAQ;QACpB,GAAG,EAAE,CAAC;KACP;IACD,YAAY,EAAE;QACZ,KAAK,EAAE,SAAS;QAChB,QAAQ,EAAE,EAAE;QACZ,UAAU,EAAE,KAAK;QACjB,aAAa,EAAE,GAAG;KACnB;IACD,WAAW,EAAE;QACX,KAAK,EAAE,SAAS;QAChB,QAAQ,EAAE,EAAE;QACZ,UAAU,EAAE,KAAK;QACjB,aAAa,EAAE,GAAG;KACnB;CACF,CAAC,CAAC"}
@@ -0,0 +1,10 @@
1
+ /**
2
+ * @echoform/echo-ui
3
+ * Public package entry point.
4
+ *
5
+ * Export every public component and utility from here.
6
+ * Consumers import directly: import { EchoUITest } from '@echoform/echo-ui'
7
+ */
8
+ export { EchoUITest } from './components/EchoUITest';
9
+ export type { EchoUITestProps } from './components/EchoUITest';
10
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AACrD,YAAY,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC"}
package/dist/index.js ADDED
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+ /**
3
+ * @echoform/echo-ui
4
+ * Public package entry point.
5
+ *
6
+ * Export every public component and utility from here.
7
+ * Consumers import directly: import { EchoUITest } from '@echoform/echo-ui'
8
+ */
9
+ Object.defineProperty(exports, "__esModule", { value: true });
10
+ exports.EchoUITest = void 0;
11
+ var EchoUITest_1 = require("./components/EchoUITest");
12
+ Object.defineProperty(exports, "EchoUITest", { enumerable: true, get: function () { return EchoUITest_1.EchoUITest; } });
13
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA;;;;;;GAMG;;;AAEH,sDAAqD;AAA5C,wGAAA,UAAU,OAAA"}
package/package.json ADDED
@@ -0,0 +1,37 @@
1
+ {
2
+ "name": "@echoform/echo-ui",
3
+ "version": "0.1.0",
4
+ "description": "Echoform Productions – shared React Native / Expo UI component library",
5
+ "author": "Echoform Productions",
6
+ "license": "MIT",
7
+ "main": "dist/index.js",
8
+ "module": "dist/index.js",
9
+ "types": "dist/index.d.ts",
10
+ "files": [
11
+ "dist"
12
+ ],
13
+ "scripts": {
14
+ "build": "tsc --project tsconfig.json",
15
+ "build:watch": "tsc --project tsconfig.json --watch",
16
+ "clean": "rm -rf dist"
17
+ },
18
+ "peerDependencies": {
19
+ "react": ">=18.0.0",
20
+ "react-native": ">=0.73.0"
21
+ },
22
+ "devDependencies": {},
23
+ "keywords": [
24
+ "echoform",
25
+ "echo-ui",
26
+ "react-native",
27
+ "expo",
28
+ "ui-library"
29
+ ],
30
+ "repository": {
31
+ "type": "git",
32
+ "url": "https://github.com/echoformproductions/Echo-UI.git"
33
+ },
34
+ "publishConfig": {
35
+ "access": "public"
36
+ }
37
+ }