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.
Files changed (32) hide show
  1. package/README.md +21 -10
  2. package/lib/module/components/funnel-chart/index.js +828 -0
  3. package/lib/module/components/funnel-chart/index.js.map +1 -0
  4. package/lib/module/components/progress/index.js +67 -13
  5. package/lib/module/components/progress/index.js.map +1 -1
  6. package/lib/module/components/qr-code/index.js +641 -0
  7. package/lib/module/components/qr-code/index.js.map +1 -0
  8. package/lib/module/components/qr-code/qr-encode.js +475 -0
  9. package/lib/module/components/qr-code/qr-encode.js.map +1 -0
  10. package/lib/module/index.js +2 -0
  11. package/lib/module/index.js.map +1 -1
  12. package/lib/module/utils/chart.js +36 -0
  13. package/lib/module/utils/chart.js.map +1 -1
  14. package/lib/typescript/src/components/funnel-chart/index.d.ts +289 -0
  15. package/lib/typescript/src/components/funnel-chart/index.d.ts.map +1 -0
  16. package/lib/typescript/src/components/progress/index.d.ts +9 -1
  17. package/lib/typescript/src/components/progress/index.d.ts.map +1 -1
  18. package/lib/typescript/src/components/qr-code/index.d.ts +221 -0
  19. package/lib/typescript/src/components/qr-code/index.d.ts.map +1 -0
  20. package/lib/typescript/src/components/qr-code/qr-encode.d.ts +39 -0
  21. package/lib/typescript/src/components/qr-code/qr-encode.d.ts.map +1 -0
  22. package/lib/typescript/src/index.d.ts +2 -0
  23. package/lib/typescript/src/index.d.ts.map +1 -1
  24. package/lib/typescript/src/utils/chart.d.ts +19 -0
  25. package/lib/typescript/src/utils/chart.d.ts.map +1 -1
  26. package/package.json +1 -1
  27. package/src/components/funnel-chart/index.tsx +1121 -0
  28. package/src/components/progress/index.tsx +64 -11
  29. package/src/components/qr-code/index.tsx +663 -0
  30. package/src/components/qr-code/qr-encode.ts +548 -0
  31. package/src/index.ts +35 -0
  32. 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. 96 typed components — buttons, bottom sheets, dialogs, selects,
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. No app yet? `npx create-expo-app@latest my-app`.
30
+ no native modules, so it runs in Expo Go.
31
31
 
32
- Five steps. The full walkthrough, with a fix for every error people hit, is at
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
- ### 1. Install the packages
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 panelui-native uniwind tailwindcss @react-native-masked-view/masked-view expo-linear-gradient react-native-gesture-handler react-native-reanimated react-native-safe-area-context react-native-svg react-native-worklets
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
- ### 2. Add `metro.config.js`
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
- ### 3. Add the imports to `global.css`
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
- ### 4. Import the CSS and add the provider
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
- ### 5. Restart
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 |