panelui-native 0.32.0 → 0.35.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 +2 -1
- package/lib/module/components/button/index.js +106 -11
- package/lib/module/components/button/index.js.map +1 -1
- package/lib/module/components/drawer/index.js +477 -0
- package/lib/module/components/drawer/index.js.map +1 -0
- package/lib/module/components/panelside/index.js +1024 -0
- package/lib/module/components/panelside/index.js.map +1 -0
- package/lib/module/components/progress/index.js +64 -24
- package/lib/module/components/progress/index.js.map +1 -1
- package/lib/module/components/select/index.js +14 -3
- package/lib/module/components/select/index.js.map +1 -1
- package/lib/module/components/swipe/index.js +537 -0
- package/lib/module/components/swipe/index.js.map +1 -0
- package/lib/module/icons/index.js +20 -0
- package/lib/module/icons/index.js.map +1 -1
- package/lib/module/index.js +4 -1
- package/lib/module/index.js.map +1 -1
- package/lib/module/native/index.js +30 -0
- package/lib/module/native/index.js.map +1 -1
- package/lib/typescript/src/components/button/index.d.ts +22 -1
- package/lib/typescript/src/components/button/index.d.ts.map +1 -1
- package/lib/typescript/src/components/drawer/index.d.ts +146 -0
- package/lib/typescript/src/components/drawer/index.d.ts.map +1 -0
- package/lib/typescript/src/components/panelside/index.d.ts +354 -0
- package/lib/typescript/src/components/panelside/index.d.ts.map +1 -0
- package/lib/typescript/src/components/progress/index.d.ts +25 -4
- package/lib/typescript/src/components/progress/index.d.ts.map +1 -1
- package/lib/typescript/src/components/select/index.d.ts.map +1 -1
- package/lib/typescript/src/components/swipe/index.d.ts +206 -0
- package/lib/typescript/src/components/swipe/index.d.ts.map +1 -0
- package/lib/typescript/src/icons/index.d.ts +1 -0
- package/lib/typescript/src/icons/index.d.ts.map +1 -1
- package/lib/typescript/src/index.d.ts +4 -1
- package/lib/typescript/src/index.d.ts.map +1 -1
- package/lib/typescript/src/native/index.d.ts +20 -0
- package/lib/typescript/src/native/index.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/components/button/index.tsx +140 -8
- package/src/components/drawer/index.tsx +662 -0
- package/src/components/panelside/index.tsx +1358 -0
- package/src/components/progress/index.tsx +93 -25
- package/src/components/select/index.tsx +23 -3
- package/src/components/swipe/index.tsx +687 -0
- package/src/icons/index.tsx +14 -0
- package/src/index.ts +42 -0
- package/src/native/index.ts +51 -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. 76 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
|
|
|
@@ -222,6 +222,7 @@ you are done. Unstyled text on a white screen means the styles are not reaching
|
|
|
222
222
|
| `Spinner` | Indeterminate loading indicator |
|
|
223
223
|
| `Steps` | Stepper for multi-step flows |
|
|
224
224
|
| `Surface` | Elevated container with a variant ladder |
|
|
225
|
+
| `Swipe` | A row that slides aside to reveal the things you can do to it |
|
|
225
226
|
| `Switch` | Animated on/off toggle |
|
|
226
227
|
| `Table` | Rows and columns that stay lined up, with sortable headers |
|
|
227
228
|
| `Tabs` | Segmented navigation with an animated indicator |
|
|
@@ -1,14 +1,15 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
import { forwardRef } from 'react';
|
|
4
|
+
import { View } from 'react-native';
|
|
4
5
|
import { tv } from 'tailwind-variants';
|
|
5
6
|
import { useCSSVariable } from 'uniwind';
|
|
6
7
|
import { AnimatedPressable } from "../../primitives/animated-pressable.js";
|
|
7
8
|
import { Text, textChildren } from "../../primitives/text.js";
|
|
8
9
|
import { IconColorProvider } from "../../icons/index.js";
|
|
9
|
-
import { getNativeUI } from "../../native/index.js";
|
|
10
|
+
import { getNativeUI, getSwiftUIModifiers } from "../../native/index.js";
|
|
10
11
|
import { Spinner } from "../spinner/index.js";
|
|
11
|
-
import { jsx as _jsx,
|
|
12
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
12
13
|
const buttonVariants = tv({
|
|
13
14
|
slots: {
|
|
14
15
|
root: 'flex-row items-center justify-center gap-2 rounded-lg border border-transparent',
|
|
@@ -121,6 +122,50 @@ const NATIVE_HEIGHT = {
|
|
|
121
122
|
icon: 44
|
|
122
123
|
};
|
|
123
124
|
|
|
125
|
+
/**
|
|
126
|
+
* Room around the glyph in a native icon button, applied to the glyph itself.
|
|
127
|
+
*
|
|
128
|
+
* Not to the button, and that distinction is the whole thing. SwiftUI's
|
|
129
|
+
* `padding` on a Button pads *outside* its background — the chrome stays the
|
|
130
|
+
* size it was and moves inward — and `frame` only sets the layout box, leaving
|
|
131
|
+
* a glyph-sized background centred in a larger invisible one. Neither grows
|
|
132
|
+
* the button. What the background is drawn around is the *label*, and the
|
|
133
|
+
* label here is a React Native view we host ourselves, so padding it in React
|
|
134
|
+
* is both the simplest lever and the only one that works.
|
|
135
|
+
*/
|
|
136
|
+
const NATIVE_ICON_PADDING = 6;
|
|
137
|
+
|
|
138
|
+
/**
|
|
139
|
+
* The frame a native icon button is given, which must contain the padded glyph
|
|
140
|
+
* above with room to spare.
|
|
141
|
+
*
|
|
142
|
+
* It exists to end a measurement, not to set a look. The chain is
|
|
143
|
+
* `Host(matchContents)` → platform button → `RNHostView(matchContents)` → our
|
|
144
|
+
* view: every link sized by its contents, and nothing anywhere with a size of
|
|
145
|
+
* its own. Something has to be definite or the two layout systems ask each
|
|
146
|
+
* other the same question forever, and that fails down in the platform, where
|
|
147
|
+
* there is nothing for a JavaScript `try` to catch.
|
|
148
|
+
*
|
|
149
|
+
*/
|
|
150
|
+
const NATIVE_ICON_FRAME = 44;
|
|
151
|
+
|
|
152
|
+
/**
|
|
153
|
+
* Our sizes on the platform's own control scale, which is how a native button
|
|
154
|
+
* is made bigger: it scales the room the style leaves around the label, and the
|
|
155
|
+
* label with it.
|
|
156
|
+
*
|
|
157
|
+
* Only ever sent for a *string* label. A hosted label is the case that has
|
|
158
|
+
* taken this app down twice, and while the cause turned out to be a missing
|
|
159
|
+
* frame rather than this modifier, a labelled button has no hosted view and no
|
|
160
|
+
* measurement to get wrong — so there is no reason to find out on both at once.
|
|
161
|
+
*/
|
|
162
|
+
const NATIVE_CONTROL_SIZE = {
|
|
163
|
+
sm: 'small',
|
|
164
|
+
md: 'regular',
|
|
165
|
+
lg: 'large',
|
|
166
|
+
icon: 'regular'
|
|
167
|
+
};
|
|
168
|
+
|
|
124
169
|
/** PanelUI variants mapped onto the platform button styles. */
|
|
125
170
|
const NATIVE_VARIANT = {
|
|
126
171
|
primary: 'filled',
|
|
@@ -142,6 +187,7 @@ export const Button = /*#__PURE__*/forwardRef(({
|
|
|
142
187
|
startContent,
|
|
143
188
|
endContent,
|
|
144
189
|
native,
|
|
190
|
+
glass = false,
|
|
145
191
|
...props
|
|
146
192
|
}, ref) => {
|
|
147
193
|
const isDisabled = disabled || loading;
|
|
@@ -169,25 +215,74 @@ export const Button = /*#__PURE__*/forwardRef(({
|
|
|
169
215
|
RNHostView
|
|
170
216
|
} = nativeUI;
|
|
171
217
|
const isStringLabel = typeof children === 'string';
|
|
218
|
+
const prominent = variant === 'primary' || variant === 'destructive';
|
|
219
|
+
|
|
220
|
+
/*
|
|
221
|
+
* Looks the portable props cannot ask for.
|
|
222
|
+
*
|
|
223
|
+
* `buttonStyle` because Liquid Glass has no cross-platform variant to
|
|
224
|
+
* map onto. `glassProminent` is the tinted one — it keeps the accent
|
|
225
|
+
* fill a prominent button is supposed to have, which drawing the
|
|
226
|
+
* material by hand over a plain button throws away. A supplied
|
|
227
|
+
* `buttonStyle` replaces the one the variant would have set, so this is
|
|
228
|
+
* a substitution rather than a layer on top.
|
|
229
|
+
*
|
|
230
|
+
* `buttonBorderShape` because an icon button is round and the platform's
|
|
231
|
+
* default capsule is not — a lone glyph in a capsule reads as a text
|
|
232
|
+
* button somebody forgot to label. It shapes the glass too.
|
|
233
|
+
*/
|
|
234
|
+
const swiftUI = getSwiftUIModifiers();
|
|
235
|
+
const nativeModifiers = swiftUI ? [glass ? swiftUI.buttonStyle(prominent ? 'glassProminent' : 'glass') : null, size === 'icon' ? swiftUI.buttonBorderShape('circle') : null, isStringLabel ? swiftUI.controlSize(NATIVE_CONTROL_SIZE[size ?? 'md']) : null].filter(Boolean) : [];
|
|
236
|
+
|
|
237
|
+
/*
|
|
238
|
+
* The platform paints the background, not the theme — so a hosted icon
|
|
239
|
+
* cannot read its colour from a token the way it does in the styled
|
|
240
|
+
* button. On a tinted button that is white, whatever the theme thinks its
|
|
241
|
+
* own primary foreground is; on the rest, including plain glass, the
|
|
242
|
+
* material is clear enough to leave the page's own foreground legible.
|
|
243
|
+
*/
|
|
244
|
+
const nativeContent = prominent ? '#ffffff' : contentColor;
|
|
172
245
|
return /*#__PURE__*/_jsx(Host, {
|
|
173
246
|
matchContents: true,
|
|
174
247
|
children: /*#__PURE__*/_jsx(NativeButton, {
|
|
175
248
|
label: isStringLabel ? children : undefined,
|
|
176
249
|
variant: NATIVE_VARIANT[variant ?? 'primary'],
|
|
177
|
-
disabled: isDisabled
|
|
178
|
-
|
|
250
|
+
disabled: isDisabled
|
|
251
|
+
/*
|
|
252
|
+
* A square for an icon button, a height for a labelled one — and
|
|
253
|
+
* in both cases a definite number, which is what stops the
|
|
254
|
+
* measurement chain above from having no fixed point in it.
|
|
255
|
+
*
|
|
256
|
+
* The frame does not decide how big the *button* looks; the padded
|
|
257
|
+
* label does, because that is what the platform draws its
|
|
258
|
+
* background around. The frame only has to be large enough to hold
|
|
259
|
+
* the result.
|
|
260
|
+
*/,
|
|
261
|
+
style: size === 'icon' ? {
|
|
262
|
+
width: NATIVE_ICON_FRAME,
|
|
263
|
+
height: NATIVE_ICON_FRAME
|
|
264
|
+
} : {
|
|
179
265
|
height: NATIVE_HEIGHT[size ?? 'md']
|
|
180
266
|
},
|
|
267
|
+
modifiers: nativeModifiers.length ? nativeModifiers : undefined,
|
|
181
268
|
onPress: props.onPress,
|
|
182
269
|
children: isStringLabel ? undefined : /*#__PURE__*/_jsx(RNHostView, {
|
|
183
270
|
matchContents: true,
|
|
184
|
-
children: /*#__PURE__*/_jsx(
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
271
|
+
children: /*#__PURE__*/_jsx(View, {
|
|
272
|
+
style: size === 'icon' ? {
|
|
273
|
+
padding: NATIVE_ICON_PADDING,
|
|
274
|
+
alignItems: 'center',
|
|
275
|
+
justifyContent: 'center'
|
|
276
|
+
} : undefined,
|
|
277
|
+
children: /*#__PURE__*/_jsx(IconColorProvider, {
|
|
278
|
+
color: nativeContent,
|
|
279
|
+
children: textChildren(children, text => /*#__PURE__*/_jsx(Text, {
|
|
280
|
+
className: label({
|
|
281
|
+
className: labelClassName
|
|
282
|
+
}),
|
|
283
|
+
children: text
|
|
284
|
+
}))
|
|
285
|
+
})
|
|
191
286
|
})
|
|
192
287
|
})
|
|
193
288
|
})
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["forwardRef","tv","useCSSVariable","AnimatedPressable","Text","textChildren","IconColorProvider","getNativeUI","Spinner","jsx","_jsx","
|
|
1
|
+
{"version":3,"names":["forwardRef","View","tv","useCSSVariable","AnimatedPressable","Text","textChildren","IconColorProvider","getNativeUI","getSwiftUIModifiers","Spinner","jsx","_jsx","jsxs","_jsxs","buttonVariants","slots","root","label","spinner","variants","variant","primary","secondary","outline","ghost","destructive","social","size","sm","md","lg","icon","fullWidth","true","disabled","defaultVariants","SPINNER_SIZE","CONTENT_COLOR_VAR","NATIVE_HEIGHT","NATIVE_ICON_PADDING","NATIVE_ICON_FRAME","NATIVE_CONTROL_SIZE","NATIVE_VARIANT","Button","children","className","labelClassName","loading","startContent","endContent","native","glass","props","ref","isDisabled","nativeUI","themedColor","contentColor","undefined","Host","NativeButton","RNHostView","isStringLabel","prominent","swiftUI","nativeModifiers","buttonStyle","buttonBorderShape","controlSize","filter","Boolean","nativeContent","matchContents","style","width","height","modifiers","length","onPress","padding","alignItems","justifyContent","color","text","accessibilityRole","accessibilityState","busy","displayName"],"sourceRoot":"../../../../src","sources":["components/button/index.tsx"],"mappings":"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","ignoreList":[]}
|