panelui-native 0.1.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/lib/module/components/alert/index.js +122 -0
- package/lib/module/components/alert/index.js.map +1 -0
- package/lib/module/components/avatar/index.js +74 -0
- package/lib/module/components/avatar/index.js.map +1 -0
- package/lib/module/components/badge/index.js +77 -0
- package/lib/module/components/badge/index.js.map +1 -0
- package/lib/module/components/bottom-sheet/index.js +137 -0
- package/lib/module/components/bottom-sheet/index.js.map +1 -0
- package/lib/module/components/button/index.js +101 -0
- package/lib/module/components/button/index.js.map +1 -0
- package/lib/module/components/card/index.js +73 -0
- package/lib/module/components/card/index.js.map +1 -0
- package/lib/module/components/checkbox/index.js +84 -0
- package/lib/module/components/checkbox/index.js.map +1 -0
- package/lib/module/components/dialog/index.js +140 -0
- package/lib/module/components/dialog/index.js.map +1 -0
- package/lib/module/components/input/index.js +92 -0
- package/lib/module/components/input/index.js.map +1 -0
- package/lib/module/components/radio-group/index.js +92 -0
- package/lib/module/components/radio-group/index.js.map +1 -0
- package/lib/module/components/select/index.js +147 -0
- package/lib/module/components/select/index.js.map +1 -0
- package/lib/module/components/skeleton/index.js +26 -0
- package/lib/module/components/skeleton/index.js.map +1 -0
- package/lib/module/components/spinner/index.js +47 -0
- package/lib/module/components/spinner/index.js.map +1 -0
- package/lib/module/components/switch/index.js +96 -0
- package/lib/module/components/switch/index.js.map +1 -0
- package/lib/module/components/tabs/index.js +161 -0
- package/lib/module/components/tabs/index.js.map +1 -0
- package/lib/module/icons/index.js +65 -0
- package/lib/module/icons/index.js.map +1 -0
- package/lib/module/index.js +36 -0
- package/lib/module/index.js.map +1 -0
- package/lib/module/package.json +1 -0
- package/lib/module/primitives/animated-pressable.js +51 -0
- package/lib/module/primitives/animated-pressable.js.map +1 -0
- package/lib/module/primitives/portal.js +76 -0
- package/lib/module/primitives/portal.js.map +1 -0
- package/lib/module/primitives/text.js +51 -0
- package/lib/module/primitives/text.js.map +1 -0
- package/lib/module/providers/panel-ui-provider.js +29 -0
- package/lib/module/providers/panel-ui-provider.js.map +1 -0
- package/lib/module/theme/use-theme.js +19 -0
- package/lib/module/theme/use-theme.js.map +1 -0
- package/lib/module/uniwind-env.d.js +4 -0
- package/lib/module/uniwind-env.d.js.map +1 -0
- package/lib/module/utils/cn.js +8 -0
- package/lib/module/utils/cn.js.map +1 -0
- package/lib/typescript/package.json +1 -0
- package/lib/typescript/src/components/alert/index.d.ts +113 -0
- package/lib/typescript/src/components/alert/index.d.ts.map +1 -0
- package/lib/typescript/src/components/avatar/index.d.ts +83 -0
- package/lib/typescript/src/components/avatar/index.d.ts.map +1 -0
- package/lib/typescript/src/components/badge/index.d.ts +114 -0
- package/lib/typescript/src/components/badge/index.d.ts.map +1 -0
- package/lib/typescript/src/components/bottom-sheet/index.d.ts +30 -0
- package/lib/typescript/src/components/bottom-sheet/index.d.ts.map +1 -0
- package/lib/typescript/src/components/button/index.d.ts +159 -0
- package/lib/typescript/src/components/button/index.d.ts.map +1 -0
- package/lib/typescript/src/components/card/index.d.ts +13 -0
- package/lib/typescript/src/components/card/index.d.ts.map +1 -0
- package/lib/typescript/src/components/checkbox/index.d.ts +47 -0
- package/lib/typescript/src/components/checkbox/index.d.ts.map +1 -0
- package/lib/typescript/src/components/dialog/index.d.ts +50 -0
- package/lib/typescript/src/components/dialog/index.d.ts.map +1 -0
- package/lib/typescript/src/components/input/index.d.ts +12 -0
- package/lib/typescript/src/components/input/index.d.ts.map +1 -0
- package/lib/typescript/src/components/radio-group/index.d.ts +20 -0
- package/lib/typescript/src/components/radio-group/index.d.ts.map +1 -0
- package/lib/typescript/src/components/select/index.d.ts +23 -0
- package/lib/typescript/src/components/select/index.d.ts.map +1 -0
- package/lib/typescript/src/components/skeleton/index.d.ts +6 -0
- package/lib/typescript/src/components/skeleton/index.d.ts.map +1 -0
- package/lib/typescript/src/components/spinner/index.d.ts +27 -0
- package/lib/typescript/src/components/spinner/index.d.ts.map +1 -0
- package/lib/typescript/src/components/switch/index.d.ts +76 -0
- package/lib/typescript/src/components/switch/index.d.ts.map +1 -0
- package/lib/typescript/src/components/tabs/index.d.ts +34 -0
- package/lib/typescript/src/components/tabs/index.d.ts.map +1 -0
- package/lib/typescript/src/icons/index.d.ts +9 -0
- package/lib/typescript/src/icons/index.d.ts.map +1 -0
- package/lib/typescript/src/index.d.ts +23 -0
- package/lib/typescript/src/index.d.ts.map +1 -0
- package/lib/typescript/src/primitives/animated-pressable.d.ts +14 -0
- package/lib/typescript/src/primitives/animated-pressable.d.ts.map +1 -0
- package/lib/typescript/src/primitives/portal.d.ts +11 -0
- package/lib/typescript/src/primitives/portal.d.ts.map +1 -0
- package/lib/typescript/src/primitives/text.d.ts +66 -0
- package/lib/typescript/src/primitives/text.d.ts.map +1 -0
- package/lib/typescript/src/providers/panel-ui-provider.d.ts +13 -0
- package/lib/typescript/src/providers/panel-ui-provider.d.ts.map +1 -0
- package/lib/typescript/src/theme/use-theme.d.ts +12 -0
- package/lib/typescript/src/theme/use-theme.d.ts.map +1 -0
- package/lib/typescript/src/utils/cn.d.ts +3 -0
- package/lib/typescript/src/utils/cn.d.ts.map +1 -0
- package/package.json +73 -0
- package/src/components/alert/index.tsx +106 -0
- package/src/components/avatar/index.tsx +68 -0
- package/src/components/badge/index.tsx +51 -0
- package/src/components/bottom-sheet/index.tsx +186 -0
- package/src/components/button/index.tsx +93 -0
- package/src/components/card/index.tsx +64 -0
- package/src/components/checkbox/index.tsx +79 -0
- package/src/components/dialog/index.tsx +180 -0
- package/src/components/input/index.tsx +104 -0
- package/src/components/radio-group/index.tsx +118 -0
- package/src/components/select/index.tsx +165 -0
- package/src/components/skeleton/index.tsx +34 -0
- package/src/components/spinner/index.tsx +53 -0
- package/src/components/switch/index.tsx +83 -0
- package/src/components/tabs/index.tsx +208 -0
- package/src/icons/index.tsx +48 -0
- package/src/index.ts +54 -0
- package/src/primitives/animated-pressable.tsx +71 -0
- package/src/primitives/portal.tsx +90 -0
- package/src/primitives/text.tsx +47 -0
- package/src/providers/panel-ui-provider.tsx +30 -0
- package/src/theme/use-theme.ts +18 -0
- package/src/uniwind-env.d.ts +1 -0
- package/src/utils/cn.ts +6 -0
- package/theme.css +143 -0
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import { memo, useEffect } from 'react';
|
|
4
|
+
import Animated, { Easing, useAnimatedStyle, useSharedValue, withRepeat, withTiming, cancelAnimation } from 'react-native-reanimated';
|
|
5
|
+
import { tv } from 'tailwind-variants';
|
|
6
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
7
|
+
const spinnerVariants = tv({
|
|
8
|
+
base: 'rounded-full border-2 border-foreground/15 border-t-primary',
|
|
9
|
+
variants: {
|
|
10
|
+
size: {
|
|
11
|
+
sm: 'h-4 w-4',
|
|
12
|
+
md: 'h-6 w-6',
|
|
13
|
+
lg: 'h-8 w-8 border-[3px]'
|
|
14
|
+
}
|
|
15
|
+
},
|
|
16
|
+
defaultVariants: {
|
|
17
|
+
size: 'md'
|
|
18
|
+
}
|
|
19
|
+
});
|
|
20
|
+
/** Rotating ring spinner. Animation runs entirely on the UI thread. */
|
|
21
|
+
export const Spinner = /*#__PURE__*/memo(function Spinner({
|
|
22
|
+
className,
|
|
23
|
+
size
|
|
24
|
+
}) {
|
|
25
|
+
const rotation = useSharedValue(0);
|
|
26
|
+
useEffect(() => {
|
|
27
|
+
rotation.value = withRepeat(withTiming(360, {
|
|
28
|
+
duration: 800,
|
|
29
|
+
easing: Easing.linear
|
|
30
|
+
}), -1);
|
|
31
|
+
return () => cancelAnimation(rotation);
|
|
32
|
+
}, [rotation]);
|
|
33
|
+
const animatedStyle = useAnimatedStyle(() => ({
|
|
34
|
+
transform: [{
|
|
35
|
+
rotate: `${rotation.value}deg`
|
|
36
|
+
}]
|
|
37
|
+
}));
|
|
38
|
+
return /*#__PURE__*/_jsx(Animated.View, {
|
|
39
|
+
accessibilityRole: "progressbar",
|
|
40
|
+
style: animatedStyle,
|
|
41
|
+
className: spinnerVariants({
|
|
42
|
+
size,
|
|
43
|
+
className
|
|
44
|
+
})
|
|
45
|
+
});
|
|
46
|
+
});
|
|
47
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["memo","useEffect","Animated","Easing","useAnimatedStyle","useSharedValue","withRepeat","withTiming","cancelAnimation","tv","jsx","_jsx","spinnerVariants","base","variants","size","sm","md","lg","defaultVariants","Spinner","className","rotation","value","duration","easing","linear","animatedStyle","transform","rotate","View","accessibilityRole","style"],"sourceRoot":"../../../../src","sources":["components/spinner/index.tsx"],"mappings":";;AAAA,SAASA,IAAI,EAAEC,SAAS,QAAQ,OAAO;AACvC,OAAOC,QAAQ,IACbC,MAAM,EACNC,gBAAgB,EAChBC,cAAc,EACdC,UAAU,EACVC,UAAU,EACVC,eAAe,QACV,yBAAyB;AAChC,SAASC,EAAE,QAA2B,mBAAmB;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAE1D,MAAMC,eAAe,GAAGH,EAAE,CAAC;EACzBI,IAAI,EAAE,6DAA6D;EACnEC,QAAQ,EAAE;IACRC,IAAI,EAAE;MACJC,EAAE,EAAE,SAAS;MACbC,EAAE,EAAE,SAAS;MACbC,EAAE,EAAE;IACN;EACF,CAAC;EACDC,eAAe,EAAE;IACfJ,IAAI,EAAE;EACR;AACF,CAAC,CAAC;AAMF;AACA,OAAO,MAAMK,OAAO,gBAAGpB,IAAI,CAAC,SAASoB,OAAOA,CAAC;EAAEC,SAAS;EAAEN;AAAmB,CAAC,EAAE;EAC9E,MAAMO,QAAQ,GAAGjB,cAAc,CAAC,CAAC,CAAC;EAElCJ,SAAS,CAAC,MAAM;IACdqB,QAAQ,CAACC,KAAK,GAAGjB,UAAU,CACzBC,UAAU,CAAC,GAAG,EAAE;MAAEiB,QAAQ,EAAE,GAAG;MAAEC,MAAM,EAAEtB,MAAM,CAACuB;IAAO,CAAC,CAAC,EACzD,CAAC,CACH,CAAC;IACD,OAAO,MAAMlB,eAAe,CAACc,QAAQ,CAAC;EACxC,CAAC,EAAE,CAACA,QAAQ,CAAC,CAAC;EAEd,MAAMK,aAAa,GAAGvB,gBAAgB,CAAC,OAAO;IAC5CwB,SAAS,EAAE,CAAC;MAAEC,MAAM,EAAE,GAAGP,QAAQ,CAACC,KAAK;IAAM,CAAC;EAChD,CAAC,CAAC,CAAC;EAEH,oBACEZ,IAAA,CAACT,QAAQ,CAAC4B,IAAI;IACZC,iBAAiB,EAAC,aAAa;IAC/BC,KAAK,EAAEL,aAAc;IACrBN,SAAS,EAAET,eAAe,CAAC;MAAEG,IAAI;MAAEM;IAAU,CAAC;EAAE,CACjD,CAAC;AAEN,CAAC,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import { forwardRef, useEffect } from 'react';
|
|
4
|
+
import { Pressable, View } from 'react-native';
|
|
5
|
+
import Animated, { interpolate, useAnimatedStyle, useSharedValue, withSpring } from 'react-native-reanimated';
|
|
6
|
+
import { tv } from 'tailwind-variants';
|
|
7
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
8
|
+
const SPRING = {
|
|
9
|
+
damping: 18,
|
|
10
|
+
stiffness: 250,
|
|
11
|
+
mass: 0.5
|
|
12
|
+
};
|
|
13
|
+
const switchVariants = tv({
|
|
14
|
+
slots: {
|
|
15
|
+
track: 'justify-center rounded-full border border-transparent bg-input p-[3px]',
|
|
16
|
+
activeTrack: 'absolute inset-0 rounded-full bg-primary',
|
|
17
|
+
thumb: 'rounded-full bg-white shadow-sm'
|
|
18
|
+
},
|
|
19
|
+
variants: {
|
|
20
|
+
size: {
|
|
21
|
+
sm: {
|
|
22
|
+
track: 'h-6 w-10',
|
|
23
|
+
thumb: 'h-4 w-4'
|
|
24
|
+
},
|
|
25
|
+
md: {
|
|
26
|
+
track: 'h-7 w-12',
|
|
27
|
+
thumb: 'h-5 w-5'
|
|
28
|
+
}
|
|
29
|
+
},
|
|
30
|
+
disabled: {
|
|
31
|
+
true: {
|
|
32
|
+
track: 'opacity-50'
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
},
|
|
36
|
+
defaultVariants: {
|
|
37
|
+
size: 'md'
|
|
38
|
+
}
|
|
39
|
+
});
|
|
40
|
+
const TRAVEL = {
|
|
41
|
+
sm: 16,
|
|
42
|
+
md: 20
|
|
43
|
+
};
|
|
44
|
+
/**
|
|
45
|
+
* Animated switch. Thumb position and active-track opacity are driven on the
|
|
46
|
+
* UI thread; toggling never re-renders beyond the value change itself.
|
|
47
|
+
*/
|
|
48
|
+
export const Switch = /*#__PURE__*/forwardRef(({
|
|
49
|
+
className,
|
|
50
|
+
value,
|
|
51
|
+
onValueChange,
|
|
52
|
+
disabled,
|
|
53
|
+
size = 'md'
|
|
54
|
+
}, ref) => {
|
|
55
|
+
const progress = useSharedValue(value ? 1 : 0);
|
|
56
|
+
const slots = switchVariants({
|
|
57
|
+
size,
|
|
58
|
+
disabled: !!disabled
|
|
59
|
+
});
|
|
60
|
+
useEffect(() => {
|
|
61
|
+
progress.value = withSpring(value ? 1 : 0, SPRING);
|
|
62
|
+
}, [value, progress]);
|
|
63
|
+
const thumbStyle = useAnimatedStyle(() => ({
|
|
64
|
+
transform: [{
|
|
65
|
+
translateX: interpolate(progress.value, [0, 1], [0, TRAVEL[size]])
|
|
66
|
+
}]
|
|
67
|
+
}));
|
|
68
|
+
const activeTrackStyle = useAnimatedStyle(() => ({
|
|
69
|
+
opacity: progress.value
|
|
70
|
+
}));
|
|
71
|
+
return /*#__PURE__*/_jsx(Pressable, {
|
|
72
|
+
ref: ref,
|
|
73
|
+
accessibilityRole: "switch",
|
|
74
|
+
accessibilityState: {
|
|
75
|
+
checked: value,
|
|
76
|
+
disabled: !!disabled
|
|
77
|
+
},
|
|
78
|
+
disabled: disabled,
|
|
79
|
+
onPress: () => onValueChange?.(!value),
|
|
80
|
+
hitSlop: 8,
|
|
81
|
+
children: /*#__PURE__*/_jsxs(View, {
|
|
82
|
+
className: slots.track({
|
|
83
|
+
className
|
|
84
|
+
}),
|
|
85
|
+
children: [/*#__PURE__*/_jsx(Animated.View, {
|
|
86
|
+
style: activeTrackStyle,
|
|
87
|
+
className: slots.activeTrack()
|
|
88
|
+
}), /*#__PURE__*/_jsx(Animated.View, {
|
|
89
|
+
style: thumbStyle,
|
|
90
|
+
className: slots.thumb()
|
|
91
|
+
})]
|
|
92
|
+
})
|
|
93
|
+
});
|
|
94
|
+
});
|
|
95
|
+
Switch.displayName = 'Switch';
|
|
96
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["forwardRef","useEffect","Pressable","View","Animated","interpolate","useAnimatedStyle","useSharedValue","withSpring","tv","jsx","_jsx","jsxs","_jsxs","SPRING","damping","stiffness","mass","switchVariants","slots","track","activeTrack","thumb","variants","size","sm","md","disabled","true","defaultVariants","TRAVEL","Switch","className","value","onValueChange","ref","progress","thumbStyle","transform","translateX","activeTrackStyle","opacity","accessibilityRole","accessibilityState","checked","onPress","hitSlop","children","style","displayName"],"sourceRoot":"../../../../src","sources":["components/switch/index.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,161 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import { createContext, useCallback, useContext, useMemo, useState } from 'react';
|
|
4
|
+
import { Pressable, View } from 'react-native';
|
|
5
|
+
import Animated, { FadeIn, useAnimatedStyle, useSharedValue, withSpring } from 'react-native-reanimated';
|
|
6
|
+
import { Text } from "../../primitives/text.js";
|
|
7
|
+
import { cn } from "../../utils/cn.js";
|
|
8
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
9
|
+
const SPRING = {
|
|
10
|
+
damping: 24,
|
|
11
|
+
stiffness: 300,
|
|
12
|
+
mass: 0.7
|
|
13
|
+
};
|
|
14
|
+
const TabsContext = /*#__PURE__*/createContext(null);
|
|
15
|
+
function useTabs(component) {
|
|
16
|
+
const context = useContext(TabsContext);
|
|
17
|
+
if (!context) {
|
|
18
|
+
throw new Error(`${component} must be used within a <Tabs>`);
|
|
19
|
+
}
|
|
20
|
+
return context;
|
|
21
|
+
}
|
|
22
|
+
function TabsRoot({
|
|
23
|
+
className,
|
|
24
|
+
value,
|
|
25
|
+
onValueChange,
|
|
26
|
+
defaultValue,
|
|
27
|
+
children,
|
|
28
|
+
...props
|
|
29
|
+
}) {
|
|
30
|
+
const [internalValue, setInternalValue] = useState(defaultValue);
|
|
31
|
+
const [layouts, setLayouts] = useState({});
|
|
32
|
+
const isControlled = value !== undefined;
|
|
33
|
+
const resolvedValue = isControlled ? value : internalValue;
|
|
34
|
+
const setValue = useCallback(next => {
|
|
35
|
+
if (!isControlled) setInternalValue(next);
|
|
36
|
+
onValueChange?.(next);
|
|
37
|
+
}, [isControlled, onValueChange]);
|
|
38
|
+
const registerLayout = useCallback((tab, layout) => {
|
|
39
|
+
setLayouts(current => {
|
|
40
|
+
const existing = current[tab];
|
|
41
|
+
if (existing && existing.x === layout.x && existing.width === layout.width) {
|
|
42
|
+
return current;
|
|
43
|
+
}
|
|
44
|
+
return {
|
|
45
|
+
...current,
|
|
46
|
+
[tab]: layout
|
|
47
|
+
};
|
|
48
|
+
});
|
|
49
|
+
}, []);
|
|
50
|
+
const context = useMemo(() => ({
|
|
51
|
+
value: resolvedValue,
|
|
52
|
+
setValue,
|
|
53
|
+
registerLayout,
|
|
54
|
+
layouts
|
|
55
|
+
}), [resolvedValue, setValue, registerLayout, layouts]);
|
|
56
|
+
return /*#__PURE__*/_jsx(TabsContext.Provider, {
|
|
57
|
+
value: context,
|
|
58
|
+
children: /*#__PURE__*/_jsx(View, {
|
|
59
|
+
className: cn('gap-3', className),
|
|
60
|
+
...props,
|
|
61
|
+
children: children
|
|
62
|
+
})
|
|
63
|
+
});
|
|
64
|
+
}
|
|
65
|
+
function TabsIndicator() {
|
|
66
|
+
const {
|
|
67
|
+
value,
|
|
68
|
+
layouts
|
|
69
|
+
} = useTabs('Tabs.List');
|
|
70
|
+
const x = useSharedValue(0);
|
|
71
|
+
const width = useSharedValue(0);
|
|
72
|
+
const initialized = useSharedValue(0);
|
|
73
|
+
const layout = layouts[value];
|
|
74
|
+
if (layout) {
|
|
75
|
+
if (initialized.value === 0) {
|
|
76
|
+
x.value = layout.x;
|
|
77
|
+
width.value = layout.width;
|
|
78
|
+
initialized.value = 1;
|
|
79
|
+
} else {
|
|
80
|
+
x.value = withSpring(layout.x, SPRING);
|
|
81
|
+
width.value = withSpring(layout.width, SPRING);
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
const style = useAnimatedStyle(() => ({
|
|
85
|
+
opacity: initialized.value,
|
|
86
|
+
transform: [{
|
|
87
|
+
translateX: x.value
|
|
88
|
+
}],
|
|
89
|
+
width: width.value
|
|
90
|
+
}));
|
|
91
|
+
return /*#__PURE__*/_jsx(Animated.View, {
|
|
92
|
+
style: style,
|
|
93
|
+
className: "absolute bottom-1 top-1 left-0 rounded-md bg-popover shadow-sm"
|
|
94
|
+
});
|
|
95
|
+
}
|
|
96
|
+
function TabsList({
|
|
97
|
+
className,
|
|
98
|
+
children,
|
|
99
|
+
...props
|
|
100
|
+
}) {
|
|
101
|
+
return /*#__PURE__*/_jsxs(View, {
|
|
102
|
+
accessibilityRole: "tablist",
|
|
103
|
+
className: cn('flex-row rounded-lg bg-muted p-1', className),
|
|
104
|
+
...props,
|
|
105
|
+
children: [/*#__PURE__*/_jsx(TabsIndicator, {}), children]
|
|
106
|
+
});
|
|
107
|
+
}
|
|
108
|
+
function TabsTrigger({
|
|
109
|
+
className,
|
|
110
|
+
value,
|
|
111
|
+
children
|
|
112
|
+
}) {
|
|
113
|
+
const context = useTabs('Tabs.Trigger');
|
|
114
|
+
const active = context.value === value;
|
|
115
|
+
const handleLayout = useCallback(event => {
|
|
116
|
+
const {
|
|
117
|
+
x,
|
|
118
|
+
width
|
|
119
|
+
} = event.nativeEvent.layout;
|
|
120
|
+
context.registerLayout(value, {
|
|
121
|
+
x,
|
|
122
|
+
width
|
|
123
|
+
});
|
|
124
|
+
}, [context, value]);
|
|
125
|
+
return /*#__PURE__*/_jsx(Pressable, {
|
|
126
|
+
accessibilityRole: "tab",
|
|
127
|
+
accessibilityState: {
|
|
128
|
+
selected: active
|
|
129
|
+
},
|
|
130
|
+
onPress: () => context.setValue(value),
|
|
131
|
+
onLayout: handleLayout,
|
|
132
|
+
className: cn('flex-1 items-center justify-center rounded-md py-1.5', className),
|
|
133
|
+
children: typeof children === 'string' ? /*#__PURE__*/_jsx(Text, {
|
|
134
|
+
size: "sm",
|
|
135
|
+
weight: "medium",
|
|
136
|
+
className: active ? 'text-foreground' : 'text-muted-foreground',
|
|
137
|
+
children: children
|
|
138
|
+
}) : children
|
|
139
|
+
});
|
|
140
|
+
}
|
|
141
|
+
function TabsContent({
|
|
142
|
+
className,
|
|
143
|
+
value,
|
|
144
|
+
children,
|
|
145
|
+
...props
|
|
146
|
+
}) {
|
|
147
|
+
const context = useTabs('Tabs.Content');
|
|
148
|
+
if (context.value !== value) return null;
|
|
149
|
+
return /*#__PURE__*/_jsx(Animated.View, {
|
|
150
|
+
entering: FadeIn.duration(150),
|
|
151
|
+
className: className,
|
|
152
|
+
...props,
|
|
153
|
+
children: children
|
|
154
|
+
});
|
|
155
|
+
}
|
|
156
|
+
export const Tabs = Object.assign(TabsRoot, {
|
|
157
|
+
List: TabsList,
|
|
158
|
+
Trigger: TabsTrigger,
|
|
159
|
+
Content: TabsContent
|
|
160
|
+
});
|
|
161
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["createContext","useCallback","useContext","useMemo","useState","Pressable","View","Animated","FadeIn","useAnimatedStyle","useSharedValue","withSpring","Text","cn","jsx","_jsx","jsxs","_jsxs","SPRING","damping","stiffness","mass","TabsContext","useTabs","component","context","Error","TabsRoot","className","value","onValueChange","defaultValue","children","props","internalValue","setInternalValue","layouts","setLayouts","isControlled","undefined","resolvedValue","setValue","next","registerLayout","tab","layout","current","existing","x","width","Provider","TabsIndicator","initialized","style","opacity","transform","translateX","TabsList","accessibilityRole","TabsTrigger","active","handleLayout","event","nativeEvent","accessibilityState","selected","onPress","onLayout","size","weight","TabsContent","entering","duration","Tabs","Object","assign","List","Trigger","Content"],"sourceRoot":"../../../../src","sources":["components/tabs/index.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import Svg, { Path } from 'react-native-svg';
|
|
4
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
5
|
+
export function CheckIcon({
|
|
6
|
+
size = 14,
|
|
7
|
+
color = '#fff',
|
|
8
|
+
...props
|
|
9
|
+
}) {
|
|
10
|
+
return /*#__PURE__*/_jsx(Svg, {
|
|
11
|
+
width: size,
|
|
12
|
+
height: size,
|
|
13
|
+
viewBox: "0 0 24 24",
|
|
14
|
+
fill: "none",
|
|
15
|
+
...props,
|
|
16
|
+
children: /*#__PURE__*/_jsx(Path, {
|
|
17
|
+
d: "M20 6 9 17l-5-5",
|
|
18
|
+
stroke: color,
|
|
19
|
+
strokeWidth: 3,
|
|
20
|
+
strokeLinecap: "round",
|
|
21
|
+
strokeLinejoin: "round"
|
|
22
|
+
})
|
|
23
|
+
});
|
|
24
|
+
}
|
|
25
|
+
export function ChevronDownIcon({
|
|
26
|
+
size = 16,
|
|
27
|
+
color = '#737373',
|
|
28
|
+
...props
|
|
29
|
+
}) {
|
|
30
|
+
return /*#__PURE__*/_jsx(Svg, {
|
|
31
|
+
width: size,
|
|
32
|
+
height: size,
|
|
33
|
+
viewBox: "0 0 24 24",
|
|
34
|
+
fill: "none",
|
|
35
|
+
...props,
|
|
36
|
+
children: /*#__PURE__*/_jsx(Path, {
|
|
37
|
+
d: "m6 9 6 6 6-6",
|
|
38
|
+
stroke: color,
|
|
39
|
+
strokeWidth: 2,
|
|
40
|
+
strokeLinecap: "round",
|
|
41
|
+
strokeLinejoin: "round"
|
|
42
|
+
})
|
|
43
|
+
});
|
|
44
|
+
}
|
|
45
|
+
export function XIcon({
|
|
46
|
+
size = 16,
|
|
47
|
+
color = '#737373',
|
|
48
|
+
...props
|
|
49
|
+
}) {
|
|
50
|
+
return /*#__PURE__*/_jsx(Svg, {
|
|
51
|
+
width: size,
|
|
52
|
+
height: size,
|
|
53
|
+
viewBox: "0 0 24 24",
|
|
54
|
+
fill: "none",
|
|
55
|
+
...props,
|
|
56
|
+
children: /*#__PURE__*/_jsx(Path, {
|
|
57
|
+
d: "M18 6 6 18M6 6l12 12",
|
|
58
|
+
stroke: color,
|
|
59
|
+
strokeWidth: 2,
|
|
60
|
+
strokeLinecap: "round",
|
|
61
|
+
strokeLinejoin: "round"
|
|
62
|
+
})
|
|
63
|
+
});
|
|
64
|
+
}
|
|
65
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["Svg","Path","jsx","_jsx","CheckIcon","size","color","props","width","height","viewBox","fill","children","d","stroke","strokeWidth","strokeLinecap","strokeLinejoin","ChevronDownIcon","XIcon"],"sourceRoot":"../../../src","sources":["icons/index.tsx"],"mappings":";;AAAA,OAAOA,GAAG,IAAIC,IAAI,QAAuB,kBAAkB;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAO5D,OAAO,SAASC,SAASA,CAAC;EAAEC,IAAI,GAAG,EAAE;EAAEC,KAAK,GAAG,MAAM;EAAE,GAAGC;AAAiB,CAAC,EAAE;EAC5E,oBACEJ,IAAA,CAACH,GAAG;IAACQ,KAAK,EAAEH,IAAK;IAACI,MAAM,EAAEJ,IAAK;IAACK,OAAO,EAAC,WAAW;IAACC,IAAI,EAAC,MAAM;IAAA,GAAKJ,KAAK;IAAAK,QAAA,eACvET,IAAA,CAACF,IAAI;MACHY,CAAC,EAAC,iBAAiB;MACnBC,MAAM,EAAER,KAAM;MACdS,WAAW,EAAE,CAAE;MACfC,aAAa,EAAC,OAAO;MACrBC,cAAc,EAAC;IAAO,CACvB;EAAC,CACC,CAAC;AAEV;AAEA,OAAO,SAASC,eAAeA,CAAC;EAAEb,IAAI,GAAG,EAAE;EAAEC,KAAK,GAAG,SAAS;EAAE,GAAGC;AAAiB,CAAC,EAAE;EACrF,oBACEJ,IAAA,CAACH,GAAG;IAACQ,KAAK,EAAEH,IAAK;IAACI,MAAM,EAAEJ,IAAK;IAACK,OAAO,EAAC,WAAW;IAACC,IAAI,EAAC,MAAM;IAAA,GAAKJ,KAAK;IAAAK,QAAA,eACvET,IAAA,CAACF,IAAI;MACHY,CAAC,EAAC,cAAc;MAChBC,MAAM,EAAER,KAAM;MACdS,WAAW,EAAE,CAAE;MACfC,aAAa,EAAC,OAAO;MACrBC,cAAc,EAAC;IAAO,CACvB;EAAC,CACC,CAAC;AAEV;AAEA,OAAO,SAASE,KAAKA,CAAC;EAAEd,IAAI,GAAG,EAAE;EAAEC,KAAK,GAAG,SAAS;EAAE,GAAGC;AAAiB,CAAC,EAAE;EAC3E,oBACEJ,IAAA,CAACH,GAAG;IAACQ,KAAK,EAAEH,IAAK;IAACI,MAAM,EAAEJ,IAAK;IAACK,OAAO,EAAC,WAAW;IAACC,IAAI,EAAC,MAAM;IAAA,GAAKJ,KAAK;IAAAK,QAAA,eACvET,IAAA,CAACF,IAAI;MACHY,CAAC,EAAC,sBAAsB;MACxBC,MAAM,EAAER,KAAM;MACdS,WAAW,EAAE,CAAE;MACfC,aAAa,EAAC,OAAO;MACrBC,cAAc,EAAC;IAAO,CACvB;EAAC,CACC,CAAC;AAEV","ignoreList":[]}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
// Providers
|
|
4
|
+
export { PanelUIProvider } from "./providers/panel-ui-provider.js";
|
|
5
|
+
|
|
6
|
+
// Theme
|
|
7
|
+
export { useTheme } from "./theme/use-theme.js";
|
|
8
|
+
|
|
9
|
+
// Primitives
|
|
10
|
+
export { Portal, PortalHost, PortalProvider } from "./primitives/portal.js";
|
|
11
|
+
export { Text } from "./primitives/text.js";
|
|
12
|
+
export { AnimatedPressable } from "./primitives/animated-pressable.js";
|
|
13
|
+
|
|
14
|
+
// Components
|
|
15
|
+
export { Alert } from "./components/alert/index.js";
|
|
16
|
+
export { Avatar } from "./components/avatar/index.js";
|
|
17
|
+
export { Badge } from "./components/badge/index.js";
|
|
18
|
+
export { BottomSheet } from "./components/bottom-sheet/index.js";
|
|
19
|
+
export { Button } from "./components/button/index.js";
|
|
20
|
+
export { Dialog } from "./components/dialog/index.js";
|
|
21
|
+
export { Select } from "./components/select/index.js";
|
|
22
|
+
export { Tabs } from "./components/tabs/index.js";
|
|
23
|
+
export { Card } from "./components/card/index.js";
|
|
24
|
+
export { Checkbox } from "./components/checkbox/index.js";
|
|
25
|
+
export { Input } from "./components/input/index.js";
|
|
26
|
+
export { RadioGroup } from "./components/radio-group/index.js";
|
|
27
|
+
export { Skeleton } from "./components/skeleton/index.js";
|
|
28
|
+
export { Spinner } from "./components/spinner/index.js";
|
|
29
|
+
export { Switch } from "./components/switch/index.js";
|
|
30
|
+
|
|
31
|
+
// Icons
|
|
32
|
+
export { CheckIcon, ChevronDownIcon, XIcon } from "./icons/index.js";
|
|
33
|
+
|
|
34
|
+
// Utils
|
|
35
|
+
export { cn } from "./utils/cn.js";
|
|
36
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["PanelUIProvider","useTheme","Portal","PortalHost","PortalProvider","Text","AnimatedPressable","Alert","Avatar","Badge","BottomSheet","Button","Dialog","Select","Tabs","Card","Checkbox","Input","RadioGroup","Skeleton","Spinner","Switch","CheckIcon","ChevronDownIcon","XIcon","cn"],"sourceRoot":"../../src","sources":["index.ts"],"mappings":";;AAAA;AACA,SAASA,eAAe,QAAmC,kCAA+B;;AAE1F;AACA,SAASC,QAAQ,QAAwB,sBAAmB;;AAE5D;AACA,SAASC,MAAM,EAAEC,UAAU,EAAEC,cAAc,QAAQ,wBAAqB;AACxE,SAASC,IAAI,QAAwB,sBAAmB;AACxD,SACEC,iBAAiB,QAEZ,oCAAiC;;AAExC;AACA,SAASC,KAAK,QAAyB,6BAAoB;AAC3D,SAASC,MAAM,QAA0B,8BAAqB;AAC9D,SAASC,KAAK,QAAyB,6BAAoB;AAC3D,SACEC,WAAW,QAGN,oCAA2B;AAClC,SAASC,MAAM,QAA0B,8BAAqB;AAC9D,SACEC,MAAM,QAGD,8BAAqB;AAC5B,SAASC,MAAM,QAAgD,8BAAqB;AACpF,SACEC,IAAI,QAKC,4BAAmB;AAC1B,SAASC,IAAI,QAAwB,4BAAmB;AACxD,SAASC,QAAQ,QAA4B,gCAAuB;AACpE,SAASC,KAAK,QAAyB,6BAAoB;AAC3D,SACEC,UAAU,QAGL,mCAA0B;AACjC,SAASC,QAAQ,QAA4B,gCAAuB;AACpE,SAASC,OAAO,QAA2B,+BAAsB;AACjE,SAASC,MAAM,QAA0B,8BAAqB;;AAE9D;AACA,SAASC,SAAS,EAAEC,eAAe,EAAEC,KAAK,QAAwB,kBAAS;;AAE3E;AACA,SAASC,EAAE,QAAQ,eAAY","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"type":"module"}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import { forwardRef, useCallback } from 'react';
|
|
4
|
+
import { Pressable } from 'react-native';
|
|
5
|
+
import Animated, { useAnimatedStyle, useSharedValue, withSpring, withTiming } from 'react-native-reanimated';
|
|
6
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
7
|
+
const AnimatedPressableBase = Animated.createAnimatedComponent(Pressable);
|
|
8
|
+
const SPRING_CONFIG = {
|
|
9
|
+
damping: 20,
|
|
10
|
+
stiffness: 300,
|
|
11
|
+
mass: 0.4
|
|
12
|
+
};
|
|
13
|
+
/**
|
|
14
|
+
* Pressable with UI-thread press feedback (scale/opacity via Reanimated).
|
|
15
|
+
* The shared base for every interactive PanelUI component.
|
|
16
|
+
*/
|
|
17
|
+
export const AnimatedPressable = /*#__PURE__*/forwardRef(({
|
|
18
|
+
pressScale = 0.97,
|
|
19
|
+
pressOpacity = 1,
|
|
20
|
+
onPressIn,
|
|
21
|
+
onPressOut,
|
|
22
|
+
style,
|
|
23
|
+
...props
|
|
24
|
+
}, ref) => {
|
|
25
|
+
const pressed = useSharedValue(0);
|
|
26
|
+
const handlePressIn = useCallback(event => {
|
|
27
|
+
pressed.value = withTiming(1, {
|
|
28
|
+
duration: 80
|
|
29
|
+
});
|
|
30
|
+
onPressIn?.(event);
|
|
31
|
+
}, [onPressIn, pressed]);
|
|
32
|
+
const handlePressOut = useCallback(event => {
|
|
33
|
+
pressed.value = withSpring(0, SPRING_CONFIG);
|
|
34
|
+
onPressOut?.(event);
|
|
35
|
+
}, [onPressOut, pressed]);
|
|
36
|
+
const animatedStyle = useAnimatedStyle(() => ({
|
|
37
|
+
transform: [{
|
|
38
|
+
scale: 1 + pressed.value * (pressScale - 1)
|
|
39
|
+
}],
|
|
40
|
+
opacity: 1 + pressed.value * (pressOpacity - 1)
|
|
41
|
+
}));
|
|
42
|
+
return /*#__PURE__*/_jsx(AnimatedPressableBase, {
|
|
43
|
+
ref: ref,
|
|
44
|
+
style: [animatedStyle, style],
|
|
45
|
+
onPressIn: handlePressIn,
|
|
46
|
+
onPressOut: handlePressOut,
|
|
47
|
+
...props
|
|
48
|
+
});
|
|
49
|
+
});
|
|
50
|
+
AnimatedPressable.displayName = 'AnimatedPressable';
|
|
51
|
+
//# sourceMappingURL=animated-pressable.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["forwardRef","useCallback","Pressable","Animated","useAnimatedStyle","useSharedValue","withSpring","withTiming","jsx","_jsx","AnimatedPressableBase","createAnimatedComponent","SPRING_CONFIG","damping","stiffness","mass","AnimatedPressable","pressScale","pressOpacity","onPressIn","onPressOut","style","props","ref","pressed","handlePressIn","event","value","duration","handlePressOut","animatedStyle","transform","scale","opacity","displayName"],"sourceRoot":"../../../src","sources":["primitives/animated-pressable.tsx"],"mappings":";;AAAA,SAASA,UAAU,EAAEC,WAAW,QAAQ,OAAO;AAC/C,SACEC,SAAS,QAIJ,cAAc;AACrB,OAAOC,QAAQ,IACbC,gBAAgB,EAChBC,cAAc,EACdC,UAAU,EACVC,UAAU,QACL,yBAAyB;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAEjC,MAAMC,qBAAqB,GAAGP,QAAQ,CAACQ,uBAAuB,CAACT,SAAS,CAAC;AAEzE,MAAMU,aAAa,GAAG;EAAEC,OAAO,EAAE,EAAE;EAAEC,SAAS,EAAE,GAAG;EAAEC,IAAI,EAAE;AAAI,CAAU;AAUzE;AACA;AACA;AACA;AACA,OAAO,MAAMC,iBAAiB,gBAAGhB,UAAU,CACzC,CACE;EAAEiB,UAAU,GAAG,IAAI;EAAEC,YAAY,GAAG,CAAC;EAAEC,SAAS;EAAEC,UAAU;EAAEC,KAAK;EAAE,GAAGC;AAAM,CAAC,EAC/EC,GAAG,KACA;EACH,MAAMC,OAAO,GAAGnB,cAAc,CAAC,CAAC,CAAC;EAEjC,MAAMoB,aAAa,GAAGxB,WAAW,CAC9ByB,KAA4B,IAAK;IAChCF,OAAO,CAACG,KAAK,GAAGpB,UAAU,CAAC,CAAC,EAAE;MAAEqB,QAAQ,EAAE;IAAG,CAAC,CAAC;IAC/CT,SAAS,GAAGO,KAAK,CAAC;EACpB,CAAC,EACD,CAACP,SAAS,EAAEK,OAAO,CACrB,CAAC;EAED,MAAMK,cAAc,GAAG5B,WAAW,CAC/ByB,KAA4B,IAAK;IAChCF,OAAO,CAACG,KAAK,GAAGrB,UAAU,CAAC,CAAC,EAAEM,aAAa,CAAC;IAC5CQ,UAAU,GAAGM,KAAK,CAAC;EACrB,CAAC,EACD,CAACN,UAAU,EAAEI,OAAO,CACtB,CAAC;EAED,MAAMM,aAAa,GAAG1B,gBAAgB,CAAC,OAAO;IAC5C2B,SAAS,EAAE,CAAC;MAAEC,KAAK,EAAE,CAAC,GAAGR,OAAO,CAACG,KAAK,IAAIV,UAAU,GAAG,CAAC;IAAE,CAAC,CAAC;IAC5DgB,OAAO,EAAE,CAAC,GAAGT,OAAO,CAACG,KAAK,IAAIT,YAAY,GAAG,CAAC;EAChD,CAAC,CAAC,CAAC;EAEH,oBACET,IAAA,CAACC,qBAAqB;IACpBa,GAAG,EAAEA,GAAI;IACTF,KAAK,EAAE,CAACS,aAAa,EAAET,KAAK,CAAW;IACvCF,SAAS,EAAEM,aAAc;IACzBL,UAAU,EAAES,cAAe;IAAA,GACvBP;EAAK,CACV,CAAC;AAEN,CACF,CAAC;AAEDN,iBAAiB,CAACkB,WAAW,GAAG,mBAAmB","ignoreList":[]}
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import { createContext, useContext, useEffect, useId, useRef, useSyncExternalStore } from 'react';
|
|
4
|
+
import { jsx as _jsx, Fragment as _Fragment } from "react/jsx-runtime";
|
|
5
|
+
class PortalStore {
|
|
6
|
+
portals = new Map();
|
|
7
|
+
snapshot = this.portals;
|
|
8
|
+
listeners = new Set();
|
|
9
|
+
mount = (key, node) => {
|
|
10
|
+
this.portals.set(key, node);
|
|
11
|
+
this.emit();
|
|
12
|
+
};
|
|
13
|
+
unmount = key => {
|
|
14
|
+
this.portals.delete(key);
|
|
15
|
+
this.emit();
|
|
16
|
+
};
|
|
17
|
+
subscribe = listener => {
|
|
18
|
+
this.listeners.add(listener);
|
|
19
|
+
return () => this.listeners.delete(listener);
|
|
20
|
+
};
|
|
21
|
+
getSnapshot = () => this.snapshot;
|
|
22
|
+
emit() {
|
|
23
|
+
this.snapshot = new Map(this.portals);
|
|
24
|
+
this.listeners.forEach(listener => listener());
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
const PortalContext = /*#__PURE__*/createContext(null);
|
|
28
|
+
export function PortalProvider({
|
|
29
|
+
children
|
|
30
|
+
}) {
|
|
31
|
+
const storeRef = useRef(null);
|
|
32
|
+
storeRef.current ??= new PortalStore();
|
|
33
|
+
return /*#__PURE__*/_jsx(PortalContext.Provider, {
|
|
34
|
+
value: storeRef.current,
|
|
35
|
+
children: children
|
|
36
|
+
});
|
|
37
|
+
}
|
|
38
|
+
function usePortalStore(component) {
|
|
39
|
+
const store = useContext(PortalContext);
|
|
40
|
+
if (!store) {
|
|
41
|
+
throw new Error(`${component} must be used within a <PanelUIProvider>`);
|
|
42
|
+
}
|
|
43
|
+
return store;
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
/** Renders children into the nearest PortalHost (above everything else). */
|
|
47
|
+
export function Portal({
|
|
48
|
+
children
|
|
49
|
+
}) {
|
|
50
|
+
const store = usePortalStore('Portal');
|
|
51
|
+
const key = useId();
|
|
52
|
+
useEffect(() => {
|
|
53
|
+
store.mount(key, children);
|
|
54
|
+
return () => store.unmount(key);
|
|
55
|
+
}, [store, key, children]);
|
|
56
|
+
return null;
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
/** Mount point for portaled content. PanelUIProvider renders one automatically. */
|
|
60
|
+
export function PortalHost() {
|
|
61
|
+
const store = usePortalStore('PortalHost');
|
|
62
|
+
const portals = useSyncExternalStore(store.subscribe, store.getSnapshot);
|
|
63
|
+
return /*#__PURE__*/_jsx(_Fragment, {
|
|
64
|
+
children: Array.from(portals.entries(), ([key, node]) => /*#__PURE__*/_jsx(PortalFragment, {
|
|
65
|
+
children: node
|
|
66
|
+
}, key))
|
|
67
|
+
});
|
|
68
|
+
}
|
|
69
|
+
function PortalFragment({
|
|
70
|
+
children
|
|
71
|
+
}) {
|
|
72
|
+
return /*#__PURE__*/_jsx(_Fragment, {
|
|
73
|
+
children: children
|
|
74
|
+
});
|
|
75
|
+
}
|
|
76
|
+
//# sourceMappingURL=portal.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["createContext","useContext","useEffect","useId","useRef","useSyncExternalStore","jsx","_jsx","Fragment","_Fragment","PortalStore","portals","Map","snapshot","listeners","Set","mount","key","node","set","emit","unmount","delete","subscribe","listener","add","getSnapshot","forEach","PortalContext","PortalProvider","children","storeRef","current","Provider","value","usePortalStore","component","store","Error","Portal","PortalHost","Array","from","entries","PortalFragment"],"sourceRoot":"../../../src","sources":["primitives/portal.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import { forwardRef } from 'react';
|
|
4
|
+
import { Text as RNText } from 'react-native';
|
|
5
|
+
import { tv } from 'tailwind-variants';
|
|
6
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
7
|
+
const textVariants = tv({
|
|
8
|
+
base: 'text-foreground',
|
|
9
|
+
variants: {
|
|
10
|
+
size: {
|
|
11
|
+
xs: 'text-xs',
|
|
12
|
+
sm: 'text-sm',
|
|
13
|
+
base: 'text-base',
|
|
14
|
+
lg: 'text-lg',
|
|
15
|
+
xl: 'text-xl',
|
|
16
|
+
'2xl': 'text-2xl',
|
|
17
|
+
'3xl': 'text-3xl'
|
|
18
|
+
},
|
|
19
|
+
weight: {
|
|
20
|
+
normal: 'font-normal',
|
|
21
|
+
medium: 'font-medium',
|
|
22
|
+
semibold: 'font-semibold',
|
|
23
|
+
bold: 'font-bold'
|
|
24
|
+
},
|
|
25
|
+
muted: {
|
|
26
|
+
true: 'text-muted-foreground'
|
|
27
|
+
}
|
|
28
|
+
},
|
|
29
|
+
defaultVariants: {
|
|
30
|
+
size: 'base',
|
|
31
|
+
weight: 'normal'
|
|
32
|
+
}
|
|
33
|
+
});
|
|
34
|
+
export const Text = /*#__PURE__*/forwardRef(({
|
|
35
|
+
className,
|
|
36
|
+
size,
|
|
37
|
+
weight,
|
|
38
|
+
muted,
|
|
39
|
+
...props
|
|
40
|
+
}, ref) => /*#__PURE__*/_jsx(RNText, {
|
|
41
|
+
ref: ref,
|
|
42
|
+
className: textVariants({
|
|
43
|
+
size,
|
|
44
|
+
weight,
|
|
45
|
+
muted,
|
|
46
|
+
className
|
|
47
|
+
}),
|
|
48
|
+
...props
|
|
49
|
+
}));
|
|
50
|
+
Text.displayName = 'Text';
|
|
51
|
+
//# sourceMappingURL=text.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["forwardRef","Text","RNText","tv","jsx","_jsx","textVariants","base","variants","size","xs","sm","lg","xl","weight","normal","medium","semibold","bold","muted","true","defaultVariants","className","props","ref","displayName"],"sourceRoot":"../../../src","sources":["primitives/text.tsx"],"mappings":";;AAAA,SAASA,UAAU,QAAQ,OAAO;AAClC,SAASC,IAAI,IAAIC,MAAM,QAAgE,cAAc;AACrG,SAASC,EAAE,QAA2B,mBAAmB;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAE1D,MAAMC,YAAY,GAAGH,EAAE,CAAC;EACtBI,IAAI,EAAE,iBAAiB;EACvBC,QAAQ,EAAE;IACRC,IAAI,EAAE;MACJC,EAAE,EAAE,SAAS;MACbC,EAAE,EAAE,SAAS;MACbJ,IAAI,EAAE,WAAW;MACjBK,EAAE,EAAE,SAAS;MACbC,EAAE,EAAE,SAAS;MACb,KAAK,EAAE,UAAU;MACjB,KAAK,EAAE;IACT,CAAC;IACDC,MAAM,EAAE;MACNC,MAAM,EAAE,aAAa;MACrBC,MAAM,EAAE,aAAa;MACrBC,QAAQ,EAAE,eAAe;MACzBC,IAAI,EAAE;IACR,CAAC;IACDC,KAAK,EAAE;MACLC,IAAI,EAAE;IACR;EACF,CAAC;EACDC,eAAe,EAAE;IACfZ,IAAI,EAAE,MAAM;IACZK,MAAM,EAAE;EACV;AACF,CAAC,CAAC;AAMF,OAAO,MAAMb,IAAI,gBAAGD,UAAU,CAC5B,CAAC;EAAEsB,SAAS;EAAEb,IAAI;EAAEK,MAAM;EAAEK,KAAK;EAAE,GAAGI;AAAM,CAAC,EAAEC,GAAG,kBAChDnB,IAAA,CAACH,MAAM;EACLsB,GAAG,EAAEA,GAAI;EACTF,SAAS,EAAEhB,YAAY,CAAC;IAAEG,IAAI;IAAEK,MAAM;IAAEK,KAAK;IAAEG;EAAU,CAAC,CAAE;EAAA,GACxDC;AAAK,CACV,CAEL,CAAC;AAEDtB,IAAI,CAACwB,WAAW,GAAG,MAAM","ignoreList":[]}
|