panelui-native 0.56.0 → 0.59.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 +21 -10
- package/lib/module/components/funnel-chart/index.js +828 -0
- package/lib/module/components/funnel-chart/index.js.map +1 -0
- package/lib/module/components/progress/index.js +67 -13
- package/lib/module/components/progress/index.js.map +1 -1
- package/lib/module/components/qr-code/index.js +641 -0
- package/lib/module/components/qr-code/index.js.map +1 -0
- package/lib/module/components/qr-code/qr-encode.js +475 -0
- package/lib/module/components/qr-code/qr-encode.js.map +1 -0
- package/lib/module/index.js +2 -0
- package/lib/module/index.js.map +1 -1
- package/lib/module/utils/chart.js +36 -0
- package/lib/module/utils/chart.js.map +1 -1
- package/lib/typescript/src/components/funnel-chart/index.d.ts +289 -0
- package/lib/typescript/src/components/funnel-chart/index.d.ts.map +1 -0
- package/lib/typescript/src/components/progress/index.d.ts +9 -1
- package/lib/typescript/src/components/progress/index.d.ts.map +1 -1
- package/lib/typescript/src/components/qr-code/index.d.ts +221 -0
- package/lib/typescript/src/components/qr-code/index.d.ts.map +1 -0
- package/lib/typescript/src/components/qr-code/qr-encode.d.ts +39 -0
- package/lib/typescript/src/components/qr-code/qr-encode.d.ts.map +1 -0
- package/lib/typescript/src/index.d.ts +2 -0
- package/lib/typescript/src/index.d.ts.map +1 -1
- package/lib/typescript/src/utils/chart.d.ts +19 -0
- package/lib/typescript/src/utils/chart.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/components/funnel-chart/index.tsx +1121 -0
- package/src/components/progress/index.tsx +64 -11
- package/src/components/qr-code/index.tsx +663 -0
- package/src/components/qr-code/qr-encode.ts +548 -0
- package/src/index.ts +35 -0
- package/src/utils/chart.ts +52 -0
package/README.md
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
# PanelUI — React Native UI components for Expo, styled with Tailwind CSS
|
|
2
2
|
|
|
3
3
|
**PanelUI** (`panelui-native`) is an accessible, high-performance React Native component
|
|
4
|
-
library for Expo apps.
|
|
4
|
+
library for Expo apps. 100 typed components — buttons, bottom sheets, dialogs, selects,
|
|
5
5
|
toasts, forms — styled with Tailwind CSS v4 and animated on the UI thread with Reanimated.
|
|
6
6
|
Zero native code, so it runs in Expo Go.
|
|
7
7
|
|
|
@@ -27,15 +27,23 @@ Zero native code, so it runs in Expo Go.
|
|
|
27
27
|
## Quick start
|
|
28
28
|
|
|
29
29
|
Needs an Expo SDK 57+ app and Node 20+. No Xcode, no Android Studio, no `prebuild` — PanelUI has
|
|
30
|
-
no native modules, so it runs in Expo Go.
|
|
30
|
+
no native modules, so it runs in Expo Go.
|
|
31
31
|
|
|
32
|
-
|
|
33
|
-
**[panelui.dev/docs/installation](https://panelui.dev/docs/installation)**.
|
|
32
|
+
No app yet? `npx create-panelui-app@latest` writes one with every step below already done.
|
|
34
33
|
|
|
35
|
-
|
|
34
|
+
Six steps for an app you already have. The full walkthrough, with a fix for every error people
|
|
35
|
+
hit, is at **[panelui.dev/docs/installation](https://panelui.dev/docs/installation)**.
|
|
36
|
+
|
|
37
|
+
### 1. Install PanelUI
|
|
38
|
+
|
|
39
|
+
```sh
|
|
40
|
+
npx expo install panelui-native
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
### 2. Install the peer dependencies
|
|
36
44
|
|
|
37
45
|
```sh
|
|
38
|
-
npx expo install
|
|
46
|
+
npx expo install uniwind tailwindcss react-native-reanimated react-native-worklets react-native-gesture-handler react-native-safe-area-context react-native-svg @react-native-masked-view/masked-view expo-linear-gradient
|
|
39
47
|
```
|
|
40
48
|
|
|
41
49
|
Install all of them, including the ones you think you don't need. Metro resolves every import in
|
|
@@ -48,7 +56,7 @@ overlay backdrops), `expo-clipboard` (`useCopyToClipboard`), `react-native-keybo
|
|
|
48
56
|
(keyboard avoidance on Android), `expo-file-system` + `react-native-view-shot` (Signature export),
|
|
49
57
|
`@expo/ui` (native platform controls).
|
|
50
58
|
|
|
51
|
-
###
|
|
59
|
+
### 3. Add `metro.config.js`
|
|
52
60
|
|
|
53
61
|
**In the root of your project, next to `package.json`** — not in `app/`, not in `src/`. A Metro
|
|
54
62
|
config anywhere else is silently ignored and none of your classes will do anything. A fresh Expo
|
|
@@ -76,7 +84,7 @@ module.exports = withUniwindConfig(config, {
|
|
|
76
84
|
app still launches, and not one class resolves — no `flex-1`, so views collapse and you get a blank
|
|
77
85
|
screen with `Uniwind - We couldn't find your variable --color-background`.
|
|
78
86
|
|
|
79
|
-
###
|
|
87
|
+
### 4. Add the imports to `global.css`
|
|
80
88
|
|
|
81
89
|
**Look for this file before you create one** — an app made by `create-expo-app` already has
|
|
82
90
|
`src/global.css`. Add these lines at the top of it and leave the rest below. A second CSS file at
|
|
@@ -96,7 +104,7 @@ hence the `../` above, from `src/`. From the project root it is `'./node_modules
|
|
|
96
104
|
`src/styles/` it is `'../../node_modules/…'`. Get it wrong and your own classes work while
|
|
97
105
|
PanelUI's components come out unstyled. Whichever file you used is what `cssEntryFile` must name.
|
|
98
106
|
|
|
99
|
-
###
|
|
107
|
+
### 5. Import the CSS and add the provider
|
|
100
108
|
|
|
101
109
|
At the top of your app's entry file. The default template uses Expo Router with routes under
|
|
102
110
|
`src/`, so there is usually no `App.tsx` — the entry is `src/app/_layout.tsx`, and it already
|
|
@@ -134,7 +142,7 @@ overlays, and the toast viewport. One at the root is enough — don't nest a sec
|
|
|
134
142
|
You do **not** need a `babel.config.js`; Expo's default preset already wires the worklets plugin
|
|
135
143
|
Reanimated needs.
|
|
136
144
|
|
|
137
|
-
###
|
|
145
|
+
### 6. Restart
|
|
138
146
|
|
|
139
147
|
```sh
|
|
140
148
|
npx expo start --clear
|
|
@@ -197,8 +205,10 @@ you are done. Unstyled text on a white screen means the styles are not reaching
|
|
|
197
205
|
| `Flow` | Pan-and-zoom canvas of draggable nodes joined by animated edges |
|
|
198
206
|
| `Form` | Form state — values, validation and submission — with no form library underneath |
|
|
199
207
|
| `Frame` | Widget shell — a card of rows sitting in a titled tray |
|
|
208
|
+
| `FunnelChart` | Where a population drained away, one step at a time |
|
|
200
209
|
| `GridItem` | Bento tiles, and the grid that places them |
|
|
201
210
|
| `HeatmapChart` | Contribution grid with a themed colour ramp and a readout |
|
|
211
|
+
| `HexChart` | A whole broken into parts, counted out in cells |
|
|
202
212
|
| `Input` | Text field with label, description and error message |
|
|
203
213
|
| `InputGroup` | Input with leading and trailing decorators |
|
|
204
214
|
| `Item` | Row of media, text and actions for lists and settings |
|
|
@@ -221,6 +231,7 @@ you are done. Unstyled text on a white screen means the styles are not reaching
|
|
|
221
231
|
| `Popover` | Panel anchored to the element that opened it |
|
|
222
232
|
| `Post` | Social card — author, body, media and the counts underneath |
|
|
223
233
|
| `Progress` | Determinate and indeterminate progress bar |
|
|
234
|
+
| `QRCode` | A string a camera can read — framed, titled, or folded away behind a button |
|
|
224
235
|
| `Questionnaire` | One question at a time, with progress, validation and a way back |
|
|
225
236
|
| `RadarChart` | Several measures of one thing, drawn as one shape |
|
|
226
237
|
| `RadioGroup` | Single-select list of options |
|