@medway-ui/native 1.0.4 → 1.1.2
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 +283 -77
- package/lib/commonjs/components/Alert.js +6 -3
- package/lib/commonjs/components/Alert.js.map +1 -1
- package/lib/commonjs/components/AlertDialog.js +38 -15
- package/lib/commonjs/components/AlertDialog.js.map +1 -1
- package/lib/commonjs/components/Avatar.js +101 -0
- package/lib/commonjs/components/Avatar.js.map +1 -0
- package/lib/commonjs/components/CardNews.js +319 -0
- package/lib/commonjs/components/CardNews.js.map +1 -0
- package/lib/commonjs/components/Checkbox.js +36 -13
- package/lib/commonjs/components/Checkbox.js.map +1 -1
- package/lib/commonjs/components/Dialog.js +15 -10
- package/lib/commonjs/components/Dialog.js.map +1 -1
- package/lib/commonjs/components/EmptyState.js +42 -0
- package/lib/commonjs/components/EmptyState.js.map +1 -0
- package/lib/commonjs/components/FallbackImage.js +55 -0
- package/lib/commonjs/components/FallbackImage.js.map +1 -0
- package/lib/commonjs/components/Input.js +55 -16
- package/lib/commonjs/components/Input.js.map +1 -1
- package/lib/commonjs/components/Label.js +43 -14
- package/lib/commonjs/components/Label.js.map +1 -1
- package/lib/commonjs/components/Loading.js +7 -3
- package/lib/commonjs/components/Loading.js.map +1 -1
- package/lib/commonjs/components/PageHeader.js +39 -0
- package/lib/commonjs/components/PageHeader.js.map +1 -0
- package/lib/commonjs/components/Select.js +32 -13
- package/lib/commonjs/components/Select.js.map +1 -1
- package/lib/commonjs/components/Sheet.js +14 -9
- package/lib/commonjs/components/Sheet.js.map +1 -1
- package/lib/commonjs/components/Skeleton.js +34 -0
- package/lib/commonjs/components/Skeleton.js.map +1 -0
- package/lib/commonjs/components/Switch.js +43 -14
- package/lib/commonjs/components/Switch.js.map +1 -1
- package/lib/commonjs/components/ThemedIcon.js +29 -0
- package/lib/commonjs/components/ThemedIcon.js.map +1 -0
- package/lib/commonjs/components/Toast.js +24 -12
- package/lib/commonjs/components/Toast.js.map +1 -1
- package/lib/commonjs/components/Tooltip.js +5 -3
- package/lib/commonjs/components/Tooltip.js.map +1 -1
- package/lib/commonjs/hooks/useThemeColor.js +71 -0
- package/lib/commonjs/hooks/useThemeColor.js.map +1 -0
- package/lib/commonjs/index.js +152 -0
- package/lib/commonjs/index.js.map +1 -1
- package/lib/module/components/Alert.js +6 -3
- package/lib/module/components/Alert.js.map +1 -1
- package/lib/module/components/AlertDialog.js +38 -15
- package/lib/module/components/AlertDialog.js.map +1 -1
- package/lib/module/components/Avatar.js +94 -0
- package/lib/module/components/Avatar.js.map +1 -0
- package/lib/module/components/CardNews.js +303 -0
- package/lib/module/components/CardNews.js.map +1 -0
- package/lib/module/components/Checkbox.js +37 -14
- package/lib/module/components/Checkbox.js.map +1 -1
- package/lib/module/components/Dialog.js +15 -10
- package/lib/module/components/Dialog.js.map +1 -1
- package/lib/module/components/EmptyState.js +39 -0
- package/lib/module/components/EmptyState.js.map +1 -0
- package/lib/module/components/FallbackImage.js +51 -0
- package/lib/module/components/FallbackImage.js.map +1 -0
- package/lib/module/components/Input.js +55 -16
- package/lib/module/components/Input.js.map +1 -1
- package/lib/module/components/Label.js +44 -15
- package/lib/module/components/Label.js.map +1 -1
- package/lib/module/components/Loading.js +7 -3
- package/lib/module/components/Loading.js.map +1 -1
- package/lib/module/components/PageHeader.js +36 -0
- package/lib/module/components/PageHeader.js.map +1 -0
- package/lib/module/components/Select.js +32 -13
- package/lib/module/components/Select.js.map +1 -1
- package/lib/module/components/Sheet.js +14 -9
- package/lib/module/components/Sheet.js.map +1 -1
- package/lib/module/components/Skeleton.js +30 -0
- package/lib/module/components/Skeleton.js.map +1 -0
- package/lib/module/components/Switch.js +44 -15
- package/lib/module/components/Switch.js.map +1 -1
- package/lib/module/components/ThemedIcon.js +26 -0
- package/lib/module/components/ThemedIcon.js.map +1 -0
- package/lib/module/components/Toast.js +24 -12
- package/lib/module/components/Toast.js.map +1 -1
- package/lib/module/components/Tooltip.js +6 -4
- package/lib/module/components/Tooltip.js.map +1 -1
- package/lib/module/hooks/useThemeColor.js +68 -0
- package/lib/module/hooks/useThemeColor.js.map +1 -0
- package/lib/module/index.js +15 -0
- package/lib/module/index.js.map +1 -1
- package/lib/typescript/components/Alert.d.ts.map +1 -1
- package/lib/typescript/components/AlertDialog.d.ts +2 -2
- package/lib/typescript/components/AlertDialog.d.ts.map +1 -1
- package/lib/typescript/components/Avatar.d.ts +28 -0
- package/lib/typescript/components/Avatar.d.ts.map +1 -0
- package/lib/typescript/components/CardNews.d.ts +54 -0
- package/lib/typescript/components/CardNews.d.ts.map +1 -0
- package/lib/typescript/components/Checkbox.d.ts +5 -5
- package/lib/typescript/components/Checkbox.d.ts.map +1 -1
- package/lib/typescript/components/Dialog.d.ts.map +1 -1
- package/lib/typescript/components/EmptyState.d.ts +13 -0
- package/lib/typescript/components/EmptyState.d.ts.map +1 -0
- package/lib/typescript/components/FallbackImage.d.ts +9 -0
- package/lib/typescript/components/FallbackImage.d.ts.map +1 -0
- package/lib/typescript/components/Input.d.ts +4 -5
- package/lib/typescript/components/Input.d.ts.map +1 -1
- package/lib/typescript/components/Label.d.ts.map +1 -1
- package/lib/typescript/components/Loading.d.ts +5 -1
- package/lib/typescript/components/Loading.d.ts.map +1 -1
- package/lib/typescript/components/PageHeader.d.ts +12 -0
- package/lib/typescript/components/PageHeader.d.ts.map +1 -0
- package/lib/typescript/components/Select.d.ts +3 -1
- package/lib/typescript/components/Select.d.ts.map +1 -1
- package/lib/typescript/components/Sheet.d.ts.map +1 -1
- package/lib/typescript/components/Skeleton.d.ts +8 -0
- package/lib/typescript/components/Skeleton.d.ts.map +1 -0
- package/lib/typescript/components/Switch.d.ts +2 -2
- package/lib/typescript/components/Switch.d.ts.map +1 -1
- package/lib/typescript/components/ThemedIcon.d.ts +24 -0
- package/lib/typescript/components/ThemedIcon.d.ts.map +1 -0
- package/lib/typescript/components/Toast.d.ts +1 -1
- package/lib/typescript/components/Toast.d.ts.map +1 -1
- package/lib/typescript/components/Tooltip.d.ts.map +1 -1
- package/lib/typescript/hooks/useThemeColor.d.ts +11 -0
- package/lib/typescript/hooks/useThemeColor.d.ts.map +1 -0
- package/lib/typescript/index.d.ts +16 -0
- package/lib/typescript/index.d.ts.map +1 -1
- package/package.json +28 -4
- package/setup/MedwayUiProvider.tsx +64 -0
- package/setup/babel-brownfield.js +120 -0
- package/setup/createMedwayUiNavigator.tsx +94 -0
- package/setup/global.css +5 -0
- package/setup/index.ts +12 -0
- package/setup/index.tsx +42 -0
- package/setup/lazyScreen.tsx +14 -0
- package/setup/metro.js +266 -0
- package/setup/tailwind.js +84 -0
- package/setup/tokens.native.css +873 -0
- package/src/components/Alert.tsx +3 -1
- package/src/components/AlertDialog.tsx +63 -19
- package/src/components/Avatar.tsx +130 -0
- package/src/components/CardNews.tsx +412 -0
- package/src/components/Checkbox.tsx +51 -23
- package/src/components/Dialog.tsx +13 -7
- package/src/components/EmptyState.tsx +57 -0
- package/src/components/FallbackImage.tsx +58 -0
- package/src/components/Input.tsx +65 -19
- package/src/components/Label.tsx +49 -14
- package/src/components/Loading.tsx +13 -2
- package/src/components/PageHeader.tsx +50 -0
- package/src/components/Select.tsx +22 -10
- package/src/components/Sheet.tsx +30 -24
- package/src/components/Skeleton.tsx +45 -0
- package/src/components/Switch.tsx +64 -32
- package/src/components/ThemedIcon.tsx +46 -0
- package/src/components/Toast.tsx +26 -13
- package/src/components/Tooltip.tsx +1 -0
- package/src/hooks/useThemeColor.ts +79 -0
- package/src/index.ts +60 -0
package/README.md
CHANGED
|
@@ -1,88 +1,289 @@
|
|
|
1
1
|
# @medway-ui/native
|
|
2
2
|
|
|
3
|
-
React Native components for iOS and Android. Same API as `@medway-ui/core`, built on
|
|
3
|
+
React Native components for iOS and Android (Expo). Same visual API as `@medway-ui/core`, built on NativeWind + `@rn-primitives`.
|
|
4
|
+
|
|
5
|
+
**Minimum recommended version for npm brownfield setup:** `1.1.2+`
|
|
6
|
+
|
|
7
|
+
---
|
|
4
8
|
|
|
5
9
|
## Installation
|
|
6
10
|
|
|
7
11
|
```bash
|
|
8
|
-
|
|
12
|
+
npm install @medway-ui/native @medway-ui/core @medway-ui/icons \
|
|
13
|
+
class-variance-authority clsx tailwind-merge nativewind \
|
|
14
|
+
react-native-reanimated react-native-svg
|
|
15
|
+
|
|
16
|
+
# Expo (aligns versions with your SDK)
|
|
17
|
+
npx expo install react-native-reanimated react-native-svg
|
|
18
|
+
```
|
|
19
|
+
|
|
20
|
+
Brownfield apps that already use `babel-plugin-module-resolver` with `@/` aliases pointing at the app `src/` also need:
|
|
21
|
+
|
|
22
|
+
```bash
|
|
23
|
+
npm install -D babel-plugin-module-resolver
|
|
9
24
|
```
|
|
10
25
|
|
|
11
|
-
|
|
26
|
+
---
|
|
12
27
|
|
|
13
|
-
|
|
28
|
+
## Brownfield setup (Expo + legacy UI / Restyle)
|
|
29
|
+
|
|
30
|
+
NativeWind applies **only** to `@medway-ui/native` + screens/components that use the library (e.g. `src/pages/medway-ui/`, partially migrated features).
|
|
31
|
+
|
|
32
|
+
Reference implementation: **test-prep-app** (`metro.config.js`, `babel.config.js`, `tailwind.config.js`, `src/pages/medway-ui/`).
|
|
33
|
+
|
|
34
|
+
### 1. `metro.config.js`
|
|
14
35
|
|
|
15
36
|
```js
|
|
16
|
-
const {
|
|
17
|
-
|
|
37
|
+
const { getDefaultConfig } = require("expo/metro-config");
|
|
38
|
+
const { withMedwayUi } = require("@medway-ui/native/metro");
|
|
39
|
+
|
|
40
|
+
module.exports = withMedwayUi(getDefaultConfig(__dirname), {
|
|
41
|
+
projectRoot: __dirname,
|
|
42
|
+
// linkedMedwayUiRoot: auto-detected (npm or monorepo)
|
|
43
|
+
});
|
|
44
|
+
```
|
|
18
45
|
|
|
19
|
-
|
|
46
|
+
| Scenario | `linkedMedwayUiRoot` |
|
|
47
|
+
| --- | --- |
|
|
48
|
+
| npm packages (`npm install`) | **Omit** — auto-detects `node_modules/@medway-ui` |
|
|
49
|
+
| Monorepo with local clone | `"../medway-ui"` (optional; also auto-detected) |
|
|
50
|
+
| Symlink `file:../medway-ui/native` | Auto-detected as monorepo |
|
|
51
|
+
|
|
52
|
+
> Do **not** set `resolveNativeSource: false` — the compiled lib still references internal `@/` aliases. The default (`true`) resolves to `native/src` and works with npm.
|
|
53
|
+
|
|
54
|
+
### 2. `tailwind.config.js`
|
|
55
|
+
|
|
56
|
+
```js
|
|
57
|
+
const { createMedwayUiTailwindConfig } = require("@medway-ui/native/tailwind");
|
|
58
|
+
|
|
59
|
+
module.exports = createMedwayUiTailwindConfig({
|
|
60
|
+
projectRoot: __dirname,
|
|
20
61
|
content: [
|
|
21
|
-
"./
|
|
22
|
-
|
|
23
|
-
"./
|
|
62
|
+
"./src/pages/medway-ui/**/*.{ts,tsx}",
|
|
63
|
+
// add extra folders that use className + @medway-ui/native:
|
|
64
|
+
// "./src/pages/MyFeature/**/*.{ts,tsx}",
|
|
24
65
|
],
|
|
25
|
-
|
|
26
|
-
theme: {
|
|
27
|
-
extend: {
|
|
28
|
-
colors,
|
|
29
|
-
fontFamily,
|
|
30
|
-
fontSize,
|
|
31
|
-
fontWeight,
|
|
32
|
-
lineHeight,
|
|
33
|
-
borderRadius,
|
|
34
|
-
boxShadow,
|
|
35
|
-
},
|
|
36
|
-
},
|
|
37
|
-
};
|
|
66
|
+
});
|
|
38
67
|
```
|
|
39
68
|
|
|
40
|
-
|
|
69
|
+
`createMedwayUiTailwindConfig` already includes globs for `node_modules/@medway-ui/native/src` and loads tokens from `@medway-ui/core` (Node 22+ compatible).
|
|
70
|
+
|
|
71
|
+
### 3. `babel.config.js`
|
|
72
|
+
|
|
73
|
+
The app default preset must **not** enable NativeWind globally. Use `createBrownfieldOverride` to scope NativeWind to the library + migrated screens folder.
|
|
74
|
+
|
|
75
|
+
If the app defines `@/` aliases for `./src/*` via `babel-plugin-module-resolver`, you **must** redirect `@/` imports from `@medway-ui/native` files to the library source — otherwise imports like `@/components/Badge` resolve to the app `src/` and break the bundle.
|
|
41
76
|
|
|
42
77
|
```js
|
|
78
|
+
const {
|
|
79
|
+
createBrownfieldOverride,
|
|
80
|
+
createMedwayUiAliasResolver,
|
|
81
|
+
} = require("@medway-ui/native/babel-brownfield");
|
|
82
|
+
|
|
83
|
+
const resolveMedwayUiAlias = createMedwayUiAliasResolver(__dirname);
|
|
84
|
+
|
|
43
85
|
module.exports = function (api) {
|
|
44
86
|
api.cache(true);
|
|
87
|
+
|
|
88
|
+
const appPlugins = [
|
|
89
|
+
[
|
|
90
|
+
"module-resolver",
|
|
91
|
+
{
|
|
92
|
+
root: ["."],
|
|
93
|
+
extensions: [".ios.ts", ".android.ts", ".ts", ".tsx", ".js", ".jsx", ".json"],
|
|
94
|
+
alias: {
|
|
95
|
+
"@/components": "./src/components",
|
|
96
|
+
"@/pages": "./src/pages",
|
|
97
|
+
// ... other app aliases
|
|
98
|
+
},
|
|
99
|
+
resolvePath(sourcePath, currentFile) {
|
|
100
|
+
return resolveMedwayUiAlias(sourcePath, currentFile);
|
|
101
|
+
},
|
|
102
|
+
},
|
|
103
|
+
],
|
|
104
|
+
// other app plugins (no reanimated here)
|
|
105
|
+
];
|
|
106
|
+
|
|
45
107
|
return {
|
|
46
|
-
presets: [
|
|
47
|
-
|
|
48
|
-
|
|
108
|
+
presets: ["babel-preset-expo"],
|
|
109
|
+
plugins: appPlugins,
|
|
110
|
+
overrides: [
|
|
111
|
+
createBrownfieldOverride({
|
|
112
|
+
projectRoot: __dirname,
|
|
113
|
+
appPagesDir: "medway-ui", // src/pages subfolder with NativeWind screens
|
|
114
|
+
plugins: [
|
|
115
|
+
// repeat any plugins needed in the medway-ui scope
|
|
116
|
+
"react-native-reanimated/plugin", // always last
|
|
117
|
+
],
|
|
118
|
+
}),
|
|
49
119
|
],
|
|
50
120
|
};
|
|
51
121
|
};
|
|
52
122
|
```
|
|
53
123
|
|
|
54
|
-
|
|
124
|
+
Apps **without** `@/` Babel aliases do not need `createMedwayUiAliasResolver`.
|
|
55
125
|
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
126
|
+
### 4. Provider + CSS
|
|
127
|
+
|
|
128
|
+
Wrap the subtree that uses `@medway-ui/native` with `MedwayUiProvider` and import CSS once:
|
|
59
129
|
|
|
60
|
-
|
|
130
|
+
```tsx
|
|
131
|
+
import { MedwayUiProvider } from "@medway-ui/native/setup";
|
|
132
|
+
import "@medway-ui/native/setup/global.css";
|
|
61
133
|
|
|
62
|
-
|
|
134
|
+
function MyScreen() {
|
|
135
|
+
return (
|
|
136
|
+
<MedwayUiProvider theme="system">
|
|
137
|
+
{/* Button, CardNews, etc. */}
|
|
138
|
+
</MedwayUiProvider>
|
|
139
|
+
);
|
|
140
|
+
}
|
|
63
141
|
```
|
|
64
142
|
|
|
65
|
-
|
|
143
|
+
**Dark mode:** pass `colorScheme="light" | "dark"` when the app already resolves theme (Redux, Zustand, etc.):
|
|
66
144
|
|
|
67
|
-
```
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
145
|
+
```tsx
|
|
146
|
+
<MedwayUiProvider colorScheme={appColorScheme}>
|
|
147
|
+
{children}
|
|
148
|
+
</MedwayUiProvider>
|
|
71
149
|
```
|
|
72
150
|
|
|
73
|
-
|
|
151
|
+
`MedwayUiProvider` includes `PortalHost` (required for Select, Dialog, Popover, Tooltip).
|
|
152
|
+
|
|
153
|
+
> Do **not** import `@medway-ui/core/tokens.css` directly — incompatible with NativeWind v4. Tokens come from `setup/global.css` + `setup/tokens.native.css`.
|
|
154
|
+
|
|
155
|
+
### 5. Auto navigator (catalog / isolated screens)
|
|
74
156
|
|
|
75
|
-
|
|
157
|
+
Create once `src/pages/medway-ui/navigator.tsx`:
|
|
76
158
|
|
|
77
159
|
```tsx
|
|
78
|
-
import "@medway-ui/
|
|
79
|
-
import "
|
|
160
|
+
import { createMedwayUiNavigator, MedwayUiProvider } from "@medway-ui/native/setup";
|
|
161
|
+
import "@medway-ui/native/setup/global.css";
|
|
162
|
+
|
|
163
|
+
const { MedwayUiNavigator } = createMedwayUiNavigator(
|
|
164
|
+
require.context(".", true, /^\.\/[^/]+\/index\.tsx$/),
|
|
165
|
+
);
|
|
166
|
+
|
|
167
|
+
function MedwayUiRoot() {
|
|
168
|
+
return (
|
|
169
|
+
<MedwayUiProvider theme="system">
|
|
170
|
+
<MedwayUiNavigator />
|
|
171
|
+
</MedwayUiProvider>
|
|
172
|
+
);
|
|
173
|
+
}
|
|
174
|
+
|
|
175
|
+
export { MedwayUiRoot, MedwayUiNavigator };
|
|
80
176
|
```
|
|
81
177
|
|
|
178
|
+
Register in the app stack:
|
|
179
|
+
|
|
180
|
+
```tsx
|
|
181
|
+
<Stack.Screen name="MedwayUi" component={MedwayUiRoot} options={{ headerShown: false }} />
|
|
182
|
+
```
|
|
183
|
+
|
|
184
|
+
New screen = new folder `src/pages/medway-ui/MyScreen/index.tsx` — no manual route registration.
|
|
185
|
+
|
|
186
|
+
### 6. Using components in existing screens (Restyle + Medway UI mix)
|
|
187
|
+
|
|
188
|
+
Pattern used in Content Hub and partially migrated features:
|
|
189
|
+
|
|
190
|
+
```tsx
|
|
191
|
+
import { Button, CardNews } from "@medway-ui/native";
|
|
192
|
+
import { MedwayUiProvider } from "@medway-ui/native/setup";
|
|
193
|
+
import "@medway-ui/native/setup/global.css";
|
|
194
|
+
|
|
195
|
+
function ContentHubScreen() {
|
|
196
|
+
return (
|
|
197
|
+
<Box> {/* Restyle */}
|
|
198
|
+
<MedwayUiProvider colorScheme={colorScheme}>
|
|
199
|
+
<CardNews>{/* ... */}</CardNews>
|
|
200
|
+
</MedwayUiProvider>
|
|
201
|
+
</Box>
|
|
202
|
+
);
|
|
203
|
+
}
|
|
204
|
+
```
|
|
205
|
+
|
|
206
|
+
Add the feature folder to `content` in `tailwind.config.js`.
|
|
207
|
+
|
|
208
|
+
---
|
|
209
|
+
|
|
210
|
+
## Monorepo development (`file:../medway-ui/native`)
|
|
211
|
+
|
|
212
|
+
```json
|
|
213
|
+
{
|
|
214
|
+
"@medway-ui/core": "file:../medway-ui",
|
|
215
|
+
"@medway-ui/native": "file:../medway-ui/native"
|
|
216
|
+
}
|
|
217
|
+
```
|
|
218
|
+
|
|
219
|
+
Metro and Babel auto-detect the local clone. After library changes:
|
|
220
|
+
|
|
221
|
+
```bash
|
|
222
|
+
cd ../medway-ui/native && npm run build:lib # if testing the compiled lib
|
|
223
|
+
```
|
|
224
|
+
|
|
225
|
+
Restart Metro with a clean cache: `npx expo start --clear`.
|
|
226
|
+
|
|
227
|
+
---
|
|
228
|
+
|
|
229
|
+
## Troubleshooting
|
|
230
|
+
|
|
231
|
+
| Error | Cause | Fix |
|
|
232
|
+
| --- | --- | --- |
|
|
233
|
+
| `Unable to resolve .../src/components/Badge` | App `@/` alias overrides lib `@/` | Add `createMedwayUiAliasResolver` in Babel |
|
|
234
|
+
| `Unable to resolve @/lib/medwayIcons` | Bug in `@medway-ui/native@1.1.1` | Upgrade to `1.1.2+` |
|
|
235
|
+
| `Unable to resolve ../../../../../src/...` from `lib/module/` | `resolveNativeSource: false` | Remove the option (use default `true`) |
|
|
236
|
+
| Tokens / tailwind fail to load (Node 22+) | `require` of `.ts` inside `node_modules` | Use `@medway-ui/native@1.1.2+` (`createMedwayUiTailwindConfig` uses jiti fallback) |
|
|
237
|
+
| NativeWind styles not applied | File outside brownfield scope | Move to `src/pages/medway-ui/` or add a tailwind glob |
|
|
238
|
+
| Select/Dialog not opening | Missing `PortalHost` | Use `MedwayUiProvider` |
|
|
239
|
+
|
|
240
|
+
---
|
|
241
|
+
|
|
242
|
+
## Greenfield setup (100% NativeWind app)
|
|
243
|
+
|
|
244
|
+
For new apps without legacy UI:
|
|
245
|
+
|
|
246
|
+
```js
|
|
247
|
+
// babel.config.js
|
|
248
|
+
module.exports = function (api) {
|
|
249
|
+
api.cache(true);
|
|
250
|
+
return {
|
|
251
|
+
presets: [
|
|
252
|
+
["babel-preset-expo", { jsxImportSource: "nativewind" }],
|
|
253
|
+
"nativewind/babel",
|
|
254
|
+
],
|
|
255
|
+
plugins: ["react-native-reanimated/plugin"],
|
|
256
|
+
};
|
|
257
|
+
};
|
|
258
|
+
```
|
|
259
|
+
|
|
260
|
+
```js
|
|
261
|
+
// metro.config.js
|
|
262
|
+
const { getDefaultConfig } = require("expo/metro-config");
|
|
263
|
+
const { withMedwayUi } = require("@medway-ui/native/metro");
|
|
264
|
+
|
|
265
|
+
module.exports = withMedwayUi(getDefaultConfig(__dirname), {
|
|
266
|
+
projectRoot: __dirname,
|
|
267
|
+
});
|
|
268
|
+
```
|
|
269
|
+
|
|
270
|
+
Import `@medway-ui/native/setup/global.css` in the root layout.
|
|
271
|
+
|
|
272
|
+
---
|
|
273
|
+
|
|
82
274
|
## Usage
|
|
83
275
|
|
|
84
276
|
```tsx
|
|
85
|
-
import {
|
|
277
|
+
import {
|
|
278
|
+
Alert,
|
|
279
|
+
AlertContainer,
|
|
280
|
+
AlertContent,
|
|
281
|
+
AlertTitle,
|
|
282
|
+
AlertDescription,
|
|
283
|
+
Badge,
|
|
284
|
+
Button,
|
|
285
|
+
Input,
|
|
286
|
+
} from "@medway-ui/native";
|
|
86
287
|
|
|
87
288
|
export default function Screen() {
|
|
88
289
|
return (
|
|
@@ -97,15 +298,16 @@ export default function Screen() {
|
|
|
97
298
|
size="lg"
|
|
98
299
|
value={email}
|
|
99
300
|
onChangeText={setEmail}
|
|
301
|
+
placeholder="email@example.com"
|
|
100
302
|
/>
|
|
101
303
|
|
|
102
304
|
<Alert variant="success" onClose={() => {}}>
|
|
103
|
-
<
|
|
104
|
-
<
|
|
105
|
-
<
|
|
106
|
-
<
|
|
107
|
-
</
|
|
108
|
-
</
|
|
305
|
+
<AlertContainer>
|
|
306
|
+
<AlertContent>
|
|
307
|
+
<AlertTitle>Done</AlertTitle>
|
|
308
|
+
<AlertDescription>Operation completed successfully.</AlertDescription>
|
|
309
|
+
</AlertContent>
|
|
310
|
+
</AlertContainer>
|
|
109
311
|
</Alert>
|
|
110
312
|
|
|
111
313
|
<Badge variant="regular" size="md">9+</Badge>
|
|
@@ -116,38 +318,42 @@ export default function Screen() {
|
|
|
116
318
|
|
|
117
319
|
## Icons
|
|
118
320
|
|
|
119
|
-
The `@medway-ui/icons` package
|
|
321
|
+
The `@medway-ui/icons` package includes a native entry point:
|
|
120
322
|
|
|
121
323
|
```tsx
|
|
122
324
|
import { Check, CloseMd } from "@medway-ui/icons/native";
|
|
123
325
|
```
|
|
124
326
|
|
|
125
|
-
|
|
327
|
+
---
|
|
328
|
+
|
|
329
|
+
## Components — status
|
|
126
330
|
|
|
127
331
|
| Component | Status | Notes |
|
|
128
|
-
|
|
129
|
-
| Button | ✅
|
|
130
|
-
| Input | ✅
|
|
131
|
-
| Alert | ✅
|
|
132
|
-
| Badge | ✅
|
|
133
|
-
| Loading | ✅
|
|
134
|
-
| Checkbox | ✅
|
|
135
|
-
| RadioGroup | ✅
|
|
136
|
-
| Switch | ✅
|
|
137
|
-
| Select | ✅
|
|
138
|
-
| Label | ✅
|
|
139
|
-
| Separator | ✅
|
|
140
|
-
| Dialog | ✅
|
|
141
|
-
| AlertDialog | ✅
|
|
142
|
-
| Sheet | ✅
|
|
143
|
-
| Tag | ✅
|
|
144
|
-
| Toast | ✅
|
|
145
|
-
| Tooltip | ✅
|
|
146
|
-
| Popover | ✅
|
|
147
|
-
|
|
|
148
|
-
|
|
|
149
|
-
|
|
|
150
|
-
|
|
|
151
|
-
|
|
|
152
|
-
|
|
|
153
|
-
|
|
|
332
|
+
| --- | --- | --- |
|
|
333
|
+
| Button | ✅ | Variants, loading, badge, alert dot |
|
|
334
|
+
| Input | ✅ | text, email, password, numeric |
|
|
335
|
+
| Alert | ✅ | Sub-components, all variants |
|
|
336
|
+
| Badge | ✅ | Variants, icon-only |
|
|
337
|
+
| Loading | ✅ | Reanimated spin |
|
|
338
|
+
| Checkbox | ✅ | @rn-primitives/checkbox |
|
|
339
|
+
| RadioGroup | ✅ | @rn-primitives/radio-group |
|
|
340
|
+
| Switch | ✅ | @rn-primitives/switch |
|
|
341
|
+
| Select | ✅ | @rn-primitives/select |
|
|
342
|
+
| Label | ✅ | Pressable + Text |
|
|
343
|
+
| Separator | ✅ | View 1px |
|
|
344
|
+
| Dialog | ✅ | @rn-primitives/dialog |
|
|
345
|
+
| AlertDialog | ✅ | @rn-primitives/alert-dialog |
|
|
346
|
+
| Sheet | ✅ | @rn-primitives/dialog (side-aware) |
|
|
347
|
+
| Tag | ✅ | 16+ variants |
|
|
348
|
+
| Toast | ✅ | useToast + toast() |
|
|
349
|
+
| Tooltip | ✅ | @rn-primitives/tooltip |
|
|
350
|
+
| Popover | ✅ | @rn-primitives/popover |
|
|
351
|
+
| Skeleton | ✅ | Shimmer |
|
|
352
|
+
| Avatar | ✅ | @rn-primitives/avatar |
|
|
353
|
+
| FallbackImage | ✅ | react-native-svg |
|
|
354
|
+
| CardNews | ✅ | Composable card (Content Hub) |
|
|
355
|
+
| Tabs | 🔜 | @rn-primitives/tabs |
|
|
356
|
+
| Progress | 🔜 | @rn-primitives/progress |
|
|
357
|
+
| ProgressCircle | 🔜 | react-native-svg |
|
|
358
|
+
| Cards | 🔜 | CardModule, CardLesson, etc. |
|
|
359
|
+
| DatePicker | 🔜 | @react-native-community/datetimepicker |
|
|
@@ -16,6 +16,7 @@ var _react = require("react");
|
|
|
16
16
|
var _reactNative = require("react-native");
|
|
17
17
|
var _classVarianceAuthority = require("class-variance-authority");
|
|
18
18
|
var _native = require("@medway-ui/icons/native");
|
|
19
|
+
var _useThemeColor = require("@/hooks/useThemeColor");
|
|
19
20
|
var _utils = require("@/lib/utils");
|
|
20
21
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
21
22
|
const AlertContext = /*#__PURE__*/(0, _react.createContext)(null);
|
|
@@ -82,6 +83,7 @@ function Alert({
|
|
|
82
83
|
variant,
|
|
83
84
|
onClose
|
|
84
85
|
}), [variant, onClose]);
|
|
86
|
+
const closeIconColor = (0, _useThemeColor.useThemeColor)("gray-foreground");
|
|
85
87
|
return /*#__PURE__*/(0, _jsxRuntime.jsx)(AlertContext.Provider, {
|
|
86
88
|
value: ctx,
|
|
87
89
|
children: /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
|
|
@@ -94,9 +96,10 @@ function Alert({
|
|
|
94
96
|
onPress: onClose,
|
|
95
97
|
accessibilityLabel: "Close alert",
|
|
96
98
|
className: "absolute right-4 top-2",
|
|
97
|
-
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_native.CloseMd, {
|
|
98
|
-
|
|
99
|
-
|
|
99
|
+
children: closeIconColor && /*#__PURE__*/(0, _jsxRuntime.jsx)(_native.CloseMd, {
|
|
100
|
+
width: 16,
|
|
101
|
+
height: 16,
|
|
102
|
+
color: closeIconColor
|
|
100
103
|
})
|
|
101
104
|
})]
|
|
102
105
|
})
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","require","_reactNative","_classVarianceAuthority","_native","_utils","_jsxRuntime","AlertContext","createContext","alertVariants","exports","cva","variants","variant","regular","emphasis","success","warning","error","defaultVariants","alertTextColorVariants","alertButtonVariants","basic","alertVariant","useAlertContext","context","useContext","Error","Alert","className","onClose","children","props","ctx","useMemo","jsx","Provider","value","jsxs","View","accessibilityRole","cn","Pressable","onPress","accessibilityLabel","CloseMd","
|
|
1
|
+
{"version":3,"names":["_react","require","_reactNative","_classVarianceAuthority","_native","_useThemeColor","_utils","_jsxRuntime","AlertContext","createContext","alertVariants","exports","cva","variants","variant","regular","emphasis","success","warning","error","defaultVariants","alertTextColorVariants","alertButtonVariants","basic","alertVariant","useAlertContext","context","useContext","Error","Alert","className","onClose","children","props","ctx","useMemo","closeIconColor","useThemeColor","jsx","Provider","value","jsxs","View","accessibilityRole","cn","Pressable","onPress","accessibilityLabel","CloseMd","width","height","color","AlertContainer","AlertContent","AlertIcon","icon","AlertTitle","Text","numberOfLines","AlertDescription","AlertActions","AlertButton"],"sourceRoot":"../../../src","sources":["components/Alert.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -19,8 +19,9 @@ exports.AlertDialogTrigger = AlertDialogTrigger;
|
|
|
19
19
|
var _react = require("react");
|
|
20
20
|
var _reactNative = require("react-native");
|
|
21
21
|
var AlertDialogPrimitive = _interopRequireWildcard(require("@rn-primitives/alert-dialog"));
|
|
22
|
-
var _native = require("@medway-ui/icons/native");
|
|
23
22
|
var _classVarianceAuthority = require("class-variance-authority");
|
|
23
|
+
var _native = require("@medway-ui/icons/native");
|
|
24
|
+
var _useThemeColor = require("@/hooks/useThemeColor");
|
|
24
25
|
var _utils = require("@/lib/utils");
|
|
25
26
|
var _Button = require("@/components/Button");
|
|
26
27
|
var _Tag = require("@/components/Tag");
|
|
@@ -128,21 +129,25 @@ function AlertDialogContent({
|
|
|
128
129
|
showCloseButton = false,
|
|
129
130
|
...props
|
|
130
131
|
}) {
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
132
|
+
const closeIconColor = (0, _useThemeColor.useThemeColor)("gray-foreground");
|
|
133
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsxs)(AlertDialogPrimitive.Portal, {
|
|
134
|
+
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(AlertDialogPrimitive.Overlay, {
|
|
135
|
+
className: (0, _utils.cn)("absolute inset-0 bg-black/50", overlayClassName)
|
|
136
|
+
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(AlertDialogPrimitive.Content, {
|
|
137
|
+
className: "absolute inset-0 items-center justify-center px-4",
|
|
138
|
+
...props,
|
|
139
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
|
|
140
|
+
className: (0, _utils.cn)("relative flex-col w-full rounded-xl bg-background shadow-lg overflow-hidden", className),
|
|
137
141
|
children: [children, showCloseButton && /*#__PURE__*/(0, _jsxRuntime.jsx)(AlertDialogPrimitive.Cancel, {
|
|
138
142
|
className: "absolute right-3 top-3 rounded-pill p-1.5 active:bg-gray-background-soft",
|
|
139
|
-
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_native.CloseMd, {
|
|
140
|
-
|
|
141
|
-
|
|
143
|
+
children: closeIconColor && /*#__PURE__*/(0, _jsxRuntime.jsx)(_native.CloseMd, {
|
|
144
|
+
width: 16,
|
|
145
|
+
height: 16,
|
|
146
|
+
color: closeIconColor
|
|
142
147
|
})
|
|
143
148
|
})]
|
|
144
149
|
})
|
|
145
|
-
})
|
|
150
|
+
})]
|
|
146
151
|
});
|
|
147
152
|
}
|
|
148
153
|
function AlertDialogHeader({
|
|
@@ -237,17 +242,26 @@ function AlertDialogAction({
|
|
|
237
242
|
variant,
|
|
238
243
|
size = "lg",
|
|
239
244
|
children,
|
|
245
|
+
disabled,
|
|
246
|
+
onPress,
|
|
240
247
|
...props
|
|
241
248
|
}) {
|
|
242
249
|
const ctx = (0, _react.useContext)(AlertDialogContext);
|
|
250
|
+
const primitiveCtx = AlertDialogPrimitive.useRootContext();
|
|
243
251
|
const resolvedVariant = variant ?? actionVariantMap[ctx?.variant ?? DEFAULT_VARIANT];
|
|
244
|
-
return /*#__PURE__*/(0, _jsxRuntime.jsx)(
|
|
252
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
|
|
245
253
|
className: (0, _utils.cn)("flex-1", className),
|
|
246
|
-
...props,
|
|
247
254
|
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_Button.Button, {
|
|
248
255
|
variant: resolvedVariant,
|
|
249
256
|
size: size,
|
|
250
257
|
className: "w-full",
|
|
258
|
+
disabled: disabled,
|
|
259
|
+
onPress: event => {
|
|
260
|
+
if (disabled) return;
|
|
261
|
+
primitiveCtx.onOpenChange(false);
|
|
262
|
+
onPress?.(event);
|
|
263
|
+
},
|
|
264
|
+
...props,
|
|
251
265
|
children: children
|
|
252
266
|
})
|
|
253
267
|
});
|
|
@@ -257,15 +271,24 @@ function AlertDialogCancel({
|
|
|
257
271
|
variant = "regular-soft",
|
|
258
272
|
size = "lg",
|
|
259
273
|
children,
|
|
274
|
+
disabled,
|
|
275
|
+
onPress,
|
|
260
276
|
...props
|
|
261
277
|
}) {
|
|
262
|
-
|
|
278
|
+
const primitiveCtx = AlertDialogPrimitive.useRootContext();
|
|
279
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
|
|
263
280
|
className: (0, _utils.cn)("flex-1", className),
|
|
264
|
-
...props,
|
|
265
281
|
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_Button.Button, {
|
|
266
282
|
variant: variant,
|
|
267
283
|
size: size,
|
|
268
284
|
className: "w-full",
|
|
285
|
+
disabled: disabled,
|
|
286
|
+
onPress: event => {
|
|
287
|
+
if (disabled) return;
|
|
288
|
+
primitiveCtx.onOpenChange(false);
|
|
289
|
+
onPress?.(event);
|
|
290
|
+
},
|
|
291
|
+
...props,
|
|
269
292
|
children: children
|
|
270
293
|
})
|
|
271
294
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","require","_reactNative","AlertDialogPrimitive","_interopRequireWildcard","_native","
|
|
1
|
+
{"version":3,"names":["_react","require","_reactNative","AlertDialogPrimitive","_interopRequireWildcard","_classVarianceAuthority","_native","_useThemeColor","_utils","_Button","_Tag","_jsxRuntime","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","DEFAULT_VARIANT","AlertDialogContext","createContext","alertDialogIconSectionVariants","cva","variants","variant","regular","emphasis","warning","error","success","defaultVariants","alertDialogIconContainerVariants","alertDialogIconTextVariants","alertDialogTagVariantMap","actionVariantMap","AlertDialog","props","ctx","useMemo","jsx","Provider","value","children","Root","AlertDialogTrigger","Trigger","AlertDialogPortal","Portal","AlertDialogOverlay","className","Overlay","cn","AlertDialogContent","overlayClassName","showCloseButton","closeIconColor","useThemeColor","jsxs","Content","View","Cancel","CloseMd","width","height","color","AlertDialogHeader","AlertDialogIcon","icon","useContext","AlertDialogTag","resolvedVariant","Tag","AlertDialogTitle","Title","Text","AlertDialogDescription","Description","AlertDialogFooter","AlertDialogAction","size","disabled","onPress","primitiveCtx","useRootContext","Button","event","onOpenChange","AlertDialogCancel"],"sourceRoot":"../../../src","sources":["components/AlertDialog.tsx"],"mappings":"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","ignoreList":[]}
|