prizmux 1.0.2 β 1.1.3
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 +48 -52
- package/dist/components/BottomSheet/BottomSheet.d.ts +3 -0
- package/dist/components/BottomSheet/BottomSheet.d.ts.map +1 -0
- package/dist/components/BottomSheet/BottomSheet.js +161 -0
- package/dist/components/BottomSheet/BottomSheet.js.map +1 -0
- package/dist/components/BottomSheet/BottomSheet.types.d.ts +13 -0
- package/dist/components/BottomSheet/BottomSheet.types.d.ts.map +1 -0
- package/dist/components/BottomSheet/BottomSheet.types.js +3 -0
- package/dist/components/BottomSheet/BottomSheet.types.js.map +1 -0
- package/dist/components/BottomSheet/index.d.ts +3 -0
- package/dist/components/BottomSheet/index.d.ts.map +1 -0
- package/dist/components/BottomSheet/index.js +9 -0
- package/dist/components/BottomSheet/index.js.map +1 -0
- package/package.json +3 -3
package/README.md
CHANGED
|
@@ -1,96 +1,92 @@
|
|
|
1
|
-
# Prizmux
|
|
1
|
+
# π½ Prizmux
|
|
2
2
|
|
|
3
|
-
A
|
|
3
|
+
A developer-first React Native component system.
|
|
4
4
|
|
|
5
|
-
Prizmux
|
|
5
|
+
Prizmux gives you production-ready UI primitives that you actually own.
|
|
6
|
+
No bloated UI kits. No locked abstractions. No fighting the framework.
|
|
7
|
+
|
|
8
|
+
Just clean components you can copy, modify, and ship.
|
|
6
9
|
|
|
7
10
|
---
|
|
8
11
|
|
|
9
|
-
##
|
|
12
|
+
## Philosophy
|
|
13
|
+
|
|
14
|
+
Prizmux is built around a simple idea:
|
|
10
15
|
|
|
11
|
-
|
|
16
|
+
> You should control your UI β not your UI library.
|
|
12
17
|
|
|
13
|
-
|
|
18
|
+
Instead of installing a massive dependency that dictates how your app looks and behaves, Prizmux lets you bring components directly into your codebase.
|
|
14
19
|
|
|
15
|
-
|
|
20
|
+
Edit them. Refactor them. Break them. Improve them.
|
|
16
21
|
|
|
17
|
-
|
|
22
|
+
Theyβre yours.
|
|
18
23
|
|
|
19
|
-
-
|
|
20
|
-
- π¨ Strong design tokens
|
|
21
|
-
- π Built-in dark mode support
|
|
22
|
-
- β‘ Smooth interactions & animations
|
|
23
|
-
- π§± Clean, composable primitives
|
|
24
|
-
- π§ Production-ready patterns
|
|
24
|
+
The system is inspired by modern design-token and system-based approaches, but built specifically for real-world mobile apps.
|
|
25
25
|
|
|
26
26
|
---
|
|
27
27
|
|
|
28
|
-
##
|
|
28
|
+
## Why Prizmux?
|
|
29
29
|
|
|
30
30
|
Most React Native UI libraries are:
|
|
31
31
|
|
|
32
|
-
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
32
|
+
* Over-opinionated
|
|
33
|
+
* Hard to override
|
|
34
|
+
* Packed with unnecessary dependencies
|
|
35
|
+
* Designed more for demos than production
|
|
36
36
|
|
|
37
|
-
Prizmux
|
|
37
|
+
Prizmux takes a different approach.
|
|
38
38
|
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
- Designed to scale with your system
|
|
39
|
+
Itβs lightweight.
|
|
40
|
+
It scales with your system.
|
|
41
|
+
It stays out of your way.
|
|
43
42
|
|
|
44
|
-
You
|
|
45
|
-
Not the other way around.
|
|
43
|
+
You stay in control.
|
|
46
44
|
|
|
47
45
|
---
|
|
48
46
|
|
|
49
|
-
##
|
|
47
|
+
## Core Components
|
|
50
48
|
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
49
|
+
* Button (variants, loading states, subtle animation)
|
|
50
|
+
* Input (label, validation, secure support)
|
|
51
|
+
* Card (composable structure)
|
|
52
|
+
* Sheet / Modal (mobile-native UX)
|
|
53
|
+
* Toast system
|
|
54
|
+
* Theming & design tokens
|
|
55
|
+
* Variant system
|
|
56
|
+
* Dark mode support
|
|
57
|
+
* Fully typed with TypeScript
|
|
60
58
|
|
|
61
59
|
---
|
|
62
60
|
|
|
63
|
-
##
|
|
61
|
+
## Architecture
|
|
64
62
|
|
|
65
63
|
Prizmux follows a system-first structure:
|
|
66
64
|
|
|
67
65
|
```
|
|
68
|
-
|
|
69
66
|
/components
|
|
70
|
-
/ui
|
|
71
|
-
button.tsx
|
|
72
|
-
input.tsx
|
|
73
|
-
card.tsx
|
|
67
|
+
/ui
|
|
68
|
+
button.tsx
|
|
69
|
+
input.tsx
|
|
70
|
+
card.tsx
|
|
74
71
|
|
|
75
72
|
/lib
|
|
76
|
-
theme.ts
|
|
77
|
-
variants.ts
|
|
78
|
-
cn.ts
|
|
79
|
-
|
|
73
|
+
theme.ts
|
|
74
|
+
variants.ts
|
|
75
|
+
cn.ts
|
|
80
76
|
```
|
|
81
77
|
|
|
82
78
|
Every component:
|
|
83
79
|
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
80
|
+
* Reads from centralized design tokens
|
|
81
|
+
* Supports variants
|
|
82
|
+
* Is safe to edit directly
|
|
83
|
+
* Is built for production, not playgrounds
|
|
88
84
|
|
|
89
85
|
---
|
|
90
86
|
|
|
91
|
-
##
|
|
87
|
+
## Theming
|
|
92
88
|
|
|
93
|
-
|
|
89
|
+
Design tokens live in one place:
|
|
94
90
|
|
|
95
91
|
```ts
|
|
96
92
|
export const theme = {
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import type { BottomSheetProps } from './BottomSheet.types';
|
|
2
|
+
export default function BottomSheet({ visible, onClose, title, children, dismissOnTouchOutside, showCloseButton, showDragHandle, swipeToClose, closeIcon, }: BottomSheetProps): import("react/jsx-runtime").JSX.Element | null;
|
|
3
|
+
//# sourceMappingURL=BottomSheet.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BottomSheet.d.ts","sourceRoot":"","sources":["../../../src/components/BottomSheet/BottomSheet.tsx"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAQ5D,MAAM,CAAC,OAAO,UAAU,WAAW,CAAC,EAClC,OAAO,EACP,OAAO,EACP,KAAK,EACL,QAAQ,EACR,qBAA4B,EAC5B,eAAsB,EACtB,cAAqB,EACrB,YAAmB,EACnB,SAAS,GACV,EAAE,gBAAgB,kDAyIlB"}
|
|
@@ -0,0 +1,161 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.default = BottomSheet;
|
|
4
|
+
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
5
|
+
const react_1 = require("react");
|
|
6
|
+
const react_native_1 = require("react-native");
|
|
7
|
+
const { height: SCREEN_HEIGHT } = react_native_1.Dimensions.get('window');
|
|
8
|
+
const DefaultCloseIcon = () => ((0, jsx_runtime_1.jsx)(react_native_1.Text, { style: styles.defaultCloseIcon, children: "\u2715" }));
|
|
9
|
+
function BottomSheet({ visible, onClose, title, children, dismissOnTouchOutside = true, showCloseButton = true, showDragHandle = true, swipeToClose = true, closeIcon, }) {
|
|
10
|
+
const slideAnim = (0, react_1.useRef)(new react_native_1.Animated.Value(SCREEN_HEIGHT)).current;
|
|
11
|
+
const backdropAnim = (0, react_1.useRef)(new react_native_1.Animated.Value(0)).current;
|
|
12
|
+
const [dynamicHeight, setDynamicHeight] = (0, react_1.useState)(SCREEN_HEIGHT * 0.6);
|
|
13
|
+
const panResponder = (0, react_1.useRef)(react_native_1.PanResponder.create({
|
|
14
|
+
onMoveShouldSetPanResponder: (_, gestureState) => {
|
|
15
|
+
return swipeToClose && gestureState.dy > 5;
|
|
16
|
+
},
|
|
17
|
+
onPanResponderMove: (_, gestureState) => {
|
|
18
|
+
if (gestureState.dy > 0) {
|
|
19
|
+
slideAnim.setValue(gestureState.dy);
|
|
20
|
+
}
|
|
21
|
+
},
|
|
22
|
+
onPanResponderRelease: (_, gestureState) => {
|
|
23
|
+
if (gestureState.dy > dynamicHeight * 0.4) {
|
|
24
|
+
closeModal();
|
|
25
|
+
}
|
|
26
|
+
else {
|
|
27
|
+
react_native_1.Animated.spring(slideAnim, {
|
|
28
|
+
toValue: 0,
|
|
29
|
+
useNativeDriver: true,
|
|
30
|
+
bounciness: 5,
|
|
31
|
+
}).start();
|
|
32
|
+
}
|
|
33
|
+
},
|
|
34
|
+
})).current;
|
|
35
|
+
const openModal = (0, react_1.useCallback)(() => {
|
|
36
|
+
react_native_1.Animated.parallel([
|
|
37
|
+
react_native_1.Animated.timing(backdropAnim, {
|
|
38
|
+
toValue: 1,
|
|
39
|
+
duration: 300,
|
|
40
|
+
useNativeDriver: true,
|
|
41
|
+
}),
|
|
42
|
+
react_native_1.Animated.spring(slideAnim, {
|
|
43
|
+
toValue: 0,
|
|
44
|
+
useNativeDriver: true,
|
|
45
|
+
bounciness: 0,
|
|
46
|
+
}),
|
|
47
|
+
]).start();
|
|
48
|
+
}, [backdropAnim, slideAnim]);
|
|
49
|
+
const closeModal = (0, react_1.useCallback)(() => {
|
|
50
|
+
react_native_1.Animated.parallel([
|
|
51
|
+
react_native_1.Animated.timing(backdropAnim, {
|
|
52
|
+
toValue: 0,
|
|
53
|
+
duration: 250,
|
|
54
|
+
useNativeDriver: true,
|
|
55
|
+
}),
|
|
56
|
+
react_native_1.Animated.timing(slideAnim, {
|
|
57
|
+
toValue: dynamicHeight,
|
|
58
|
+
duration: 250,
|
|
59
|
+
useNativeDriver: true,
|
|
60
|
+
}),
|
|
61
|
+
]).start(() => {
|
|
62
|
+
onClose();
|
|
63
|
+
});
|
|
64
|
+
}, [backdropAnim, slideAnim, dynamicHeight, onClose]);
|
|
65
|
+
(0, react_1.useEffect)(() => {
|
|
66
|
+
if (visible) {
|
|
67
|
+
openModal();
|
|
68
|
+
}
|
|
69
|
+
}, [visible, openModal]);
|
|
70
|
+
if (!visible)
|
|
71
|
+
return null;
|
|
72
|
+
return ((0, jsx_runtime_1.jsxs)(react_native_1.Modal, { animationType: "none", transparent: true, visible: visible, onRequestClose: closeModal, statusBarTranslucent: true, children: [(0, jsx_runtime_1.jsx)(react_native_1.Pressable, { style: styles.backdropPressable, onPress: () => dismissOnTouchOutside && closeModal(), children: (0, jsx_runtime_1.jsx)(react_native_1.Animated.View, { style: [styles.backdrop, { opacity: backdropAnim }] }) }), (0, jsx_runtime_1.jsxs)(react_native_1.Animated.View, { style: [
|
|
73
|
+
styles.modalContainer,
|
|
74
|
+
{
|
|
75
|
+
maxHeight: SCREEN_HEIGHT * 0.9,
|
|
76
|
+
transform: [{ translateY: slideAnim }],
|
|
77
|
+
},
|
|
78
|
+
], onLayout: (event) => {
|
|
79
|
+
const { height: layoutHeight } = event.nativeEvent.layout;
|
|
80
|
+
setDynamicHeight(layoutHeight);
|
|
81
|
+
if (visible) {
|
|
82
|
+
slideAnim.setValue(layoutHeight);
|
|
83
|
+
openModal();
|
|
84
|
+
}
|
|
85
|
+
}, ...panResponder.panHandlers, children: [showDragHandle && ((0, jsx_runtime_1.jsx)(react_native_1.View, { style: styles.dragHandleContainer, children: (0, jsx_runtime_1.jsx)(react_native_1.View, { style: styles.dragHandle }) })), (title || showCloseButton) && ((0, jsx_runtime_1.jsxs)(react_native_1.View, { style: styles.header, children: [(0, jsx_runtime_1.jsx)(react_native_1.View, { style: styles.titleContainer, children: title && (0, jsx_runtime_1.jsx)(react_native_1.Text, { style: styles.title, children: title }) }), showCloseButton && ((0, jsx_runtime_1.jsx)(react_native_1.Pressable, { style: styles.closeButton, onPress: closeModal, hitSlop: { top: 10, bottom: 10, left: 10, right: 10 }, children: closeIcon ?? (0, jsx_runtime_1.jsx)(DefaultCloseIcon, {}) }))] })), (0, jsx_runtime_1.jsx)(react_native_1.View, { style: styles.contentContainer, children: children })] })] }));
|
|
86
|
+
}
|
|
87
|
+
const styles = react_native_1.StyleSheet.create({
|
|
88
|
+
backdropPressable: {
|
|
89
|
+
...react_native_1.StyleSheet.absoluteFillObject,
|
|
90
|
+
zIndex: 1,
|
|
91
|
+
},
|
|
92
|
+
backdrop: {
|
|
93
|
+
...react_native_1.StyleSheet.absoluteFillObject,
|
|
94
|
+
flex: 1,
|
|
95
|
+
backgroundColor: 'rgba(0, 0, 0, 0.5)',
|
|
96
|
+
},
|
|
97
|
+
modalContainer: {
|
|
98
|
+
position: 'absolute',
|
|
99
|
+
bottom: 0,
|
|
100
|
+
left: 0,
|
|
101
|
+
right: 0,
|
|
102
|
+
borderTopLeftRadius: 20,
|
|
103
|
+
borderTopRightRadius: 20,
|
|
104
|
+
overflow: 'hidden',
|
|
105
|
+
zIndex: 2,
|
|
106
|
+
backgroundColor: '#FFFFFF',
|
|
107
|
+
shadowColor: '#000000',
|
|
108
|
+
shadowOffset: { width: 0, height: -3 },
|
|
109
|
+
shadowOpacity: 0.1,
|
|
110
|
+
shadowRadius: 5,
|
|
111
|
+
elevation: 10,
|
|
112
|
+
},
|
|
113
|
+
dragHandleContainer: {
|
|
114
|
+
alignItems: 'center',
|
|
115
|
+
paddingVertical: 12,
|
|
116
|
+
},
|
|
117
|
+
dragHandle: {
|
|
118
|
+
width: 40,
|
|
119
|
+
height: 4,
|
|
120
|
+
borderRadius: 2,
|
|
121
|
+
backgroundColor: '#E5E7EB',
|
|
122
|
+
},
|
|
123
|
+
header: {
|
|
124
|
+
flexDirection: 'row',
|
|
125
|
+
alignItems: 'center',
|
|
126
|
+
justifyContent: 'space-between',
|
|
127
|
+
paddingHorizontal: 20,
|
|
128
|
+
paddingBottom: 16,
|
|
129
|
+
borderBottomWidth: react_native_1.StyleSheet.hairlineWidth,
|
|
130
|
+
borderBottomColor: '#E5E7EB',
|
|
131
|
+
},
|
|
132
|
+
titleContainer: {
|
|
133
|
+
flex: 1,
|
|
134
|
+
},
|
|
135
|
+
title: {
|
|
136
|
+
fontSize: 18,
|
|
137
|
+
fontWeight: '600',
|
|
138
|
+
color: '#111827',
|
|
139
|
+
},
|
|
140
|
+
closeButton: {
|
|
141
|
+
width: 32,
|
|
142
|
+
height: 32,
|
|
143
|
+
borderRadius: 16,
|
|
144
|
+
alignItems: 'center',
|
|
145
|
+
justifyContent: 'center',
|
|
146
|
+
marginLeft: 16,
|
|
147
|
+
backgroundColor: '#F3F4F6',
|
|
148
|
+
},
|
|
149
|
+
contentContainer: {
|
|
150
|
+
flex: 1,
|
|
151
|
+
paddingHorizontal: 20,
|
|
152
|
+
paddingTop: 16,
|
|
153
|
+
paddingBottom: 24,
|
|
154
|
+
},
|
|
155
|
+
defaultCloseIcon: {
|
|
156
|
+
fontSize: 14,
|
|
157
|
+
color: '#6B7280',
|
|
158
|
+
fontWeight: '600',
|
|
159
|
+
},
|
|
160
|
+
});
|
|
161
|
+
//# sourceMappingURL=BottomSheet.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BottomSheet.js","sourceRoot":"","sources":["../../../src/components/BottomSheet/BottomSheet.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { ReactNode } from 'react';
|
|
2
|
+
export interface BottomSheetProps {
|
|
3
|
+
visible: boolean;
|
|
4
|
+
onClose: () => void;
|
|
5
|
+
title?: string;
|
|
6
|
+
children: ReactNode;
|
|
7
|
+
dismissOnTouchOutside?: boolean;
|
|
8
|
+
showCloseButton?: boolean;
|
|
9
|
+
showDragHandle?: boolean;
|
|
10
|
+
swipeToClose?: boolean;
|
|
11
|
+
closeIcon?: ReactNode;
|
|
12
|
+
}
|
|
13
|
+
//# sourceMappingURL=BottomSheet.types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BottomSheet.types.d.ts","sourceRoot":"","sources":["../../../src/components/BottomSheet/BottomSheet.types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAElC,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,SAAS,CAAC;IACpB,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAChC,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,SAAS,CAAC,EAAE,SAAS,CAAC;CACvB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BottomSheet.types.js","sourceRoot":"","sources":["../../../src/components/BottomSheet/BottomSheet.types.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/BottomSheet/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,eAAe,CAAC;AACvD,YAAY,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.BottomSheet = void 0;
|
|
7
|
+
var BottomSheet_1 = require("./BottomSheet");
|
|
8
|
+
Object.defineProperty(exports, "BottomSheet", { enumerable: true, get: function () { return __importDefault(BottomSheet_1).default; } });
|
|
9
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/BottomSheet/index.ts"],"names":[],"mappings":";;;;;;AAAA,6CAAuD;AAA9C,2HAAA,OAAO,OAAe"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "prizmux",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.1.3",
|
|
4
4
|
"description": "A smooth and modern UI component library for React Native",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
@@ -35,11 +35,11 @@
|
|
|
35
35
|
"typescript",
|
|
36
36
|
"expo"
|
|
37
37
|
],
|
|
38
|
-
"author": "",
|
|
38
|
+
"author": "Lukwago Joel Jr",
|
|
39
39
|
"license": "ISC",
|
|
40
40
|
"repository": {
|
|
41
41
|
"type": "git",
|
|
42
|
-
"url": "https://github.com/
|
|
42
|
+
"url": "https://github.com/contecfy/prizmux"
|
|
43
43
|
},
|
|
44
44
|
"peerDependencies": {
|
|
45
45
|
"react": ">=16.8.0",
|