@mbrain/epic-react-native-lib 0.0.11 → 0.0.13
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/dist/index.cjs +1 -1
- package/dist/index.mjs +1 -1
- package/package.json +12 -12
package/dist/index.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";var
|
|
1
|
+
"use strict";var ie=Object.create;var k=Object.defineProperty;var se=Object.getOwnPropertyDescriptor;var ce=Object.getOwnPropertyNames;var le=Object.getPrototypeOf,de=Object.prototype.hasOwnProperty;var me=(e,t)=>{for(var o in t)k(e,o,{get:t[o],enumerable:!0})},M=(e,t,o,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let n of ce(t))!de.call(e,n)&&n!==o&&k(e,n,{get:()=>t[n],enumerable:!(r=se(t,n))||r.enumerable});return e};var d=(e,t,o)=>(o=e!=null?ie(le(e)):{},M(t||!e||!e.__esModule?k(o,"default",{value:e,enumerable:!0}):o,e)),ue=e=>M(k({},"__esModule",{value:!0}),e);var he={};me(he,{Box1:()=>F,ScreenContent:()=>X,createLocalStorage:()=>_,useAndroidNavigationBar:()=>j,useLogRouteChange:()=>G,useOrientation:()=>H,useThemeNativewind4:()=>te});module.exports=ue(he);var h=d(require("react"),1),y=require("react-native");function F({style:e,children:t}){let[o,r]=(0,h.useState)(0);return h.default.createElement(y.View,{style:e},h.default.createElement(y.Text,{style:Se.text,onPress:()=>{r(n=>n+1)}},"Box1 ",o),t)}var Se=y.StyleSheet.create({text:{fontSize:20,padding:15,borderRadius:10,color:"#ffffff",backgroundColor:"#0a234a"}});var T=require("react"),f=d(require("expo-screen-orientation"),1);function H(){let[e,t]=(0,T.useState)({orientation:void 0,orientationLock:void 0});return(0,T.useEffect)(()=>{Promise.all([f.getOrientationAsync(),f.getOrientationLockAsync()]).then(([r,n])=>{t({orientation:r,orientationLock:n})});let o=f.addOrientationChangeListener(r=>{t({orientation:r.orientationInfo.orientation,orientationLock:r.orientationLock})});return()=>o.remove()},[]),e}var $=d(require("react"),1),x=require("react-native"),m=d(require("expo-navigation-bar"),1);function j(e){let t=(0,x.useColorScheme)();$.default.useEffect(()=>{if(x.Platform.OS!=="android")return;m.setStyle(t==="dark"?"dark":"light");let o=t==="dark"?e==null?void 0:e.dark:e==null?void 0:e.light;if(!o)return;(async()=>{let n=[];o.backgroundColor&&(m.setBackgroundColorAsync(o.backgroundColor),n.push(m.setBackgroundColorAsync(o.backgroundColor))),o.borderColor&&n.push(m.setBorderColorAsync(o.borderColor)),n.length&&await Promise.all(n)})()},[t,e==null?void 0:e.dark,e==null?void 0:e.light])}var I=require("react"),C=require("react-native-mmkv");function _({defaults:e,storage:t=(0,C.createMMKV)()}){let o=a=>{try{let s=t.getString(String(a));return s!==void 0?JSON.parse(s):e[a]}catch(s){return console.warn(s),e[a]}};return{useLocalStorage:a=>{let[s,l]=(0,I.useState)(()=>o(a));return(0,C.useMMKVListener)(P=>{String(a)===P&&l(o(a))},t),s},setLocalStorage:(a,s)=>{try{let l=JSON.stringify(s);t.set(String(a),l)}catch(l){console.warn(l)}},getLocalStorage:a=>o(a),removeLocalStorage:a=>{try{t.remove(String(a))}catch(s){console.warn(s)}},clearAllLocalStorage:()=>{try{t.clearAll()}catch(a){console.warn(a)}},storage:t}}var N=d(require("react"),1),b=require("expo-router"),D=d(require("lodash/isEmpty"),1);function G(){let e=(0,b.useSegments)(),t=(0,b.useGlobalSearchParams)(),o=N.default.useRef(null);N.default.useEffect(()=>{if(!__DEV__)return;let r=ye(e);r!==o.current&&(o.current=r,(0,D.default)(t)?console.log(`ROUTER | INFO : ${r}`):console.log(`ROUTER | INFO : ${r}`,JSON.stringify(t,null,4)))},[t,e])}function ye(e){return e.length===0?"/":`/${e.join("/")}`}var u=d(require("react"),1),S=require("react-native"),W=require("nativewind"),q=require("react-native-safe-area-context"),Q=require("react-native-keyboard-controller");var g=d(require("react"),1),V=require("react-native"),O=require("@react-navigation/elements");function w(e){return(0,g.useMemo)(()=>e?typeof e=="function"?g.default.createElement(e,null):e:null,[e])}function J(e,t){let o=(0,O.useHeaderHeight)();return(0,g.useMemo)(()=>{let r=V.StyleSheet.flatten(e),n=r==null?void 0:r.padding,c=r==null?void 0:r.paddingTop,i=typeof c=="number"?c:typeof n=="number"?n:void 0;return t&&(i=(i!=null?i:0)+o),[z.flex,e,{paddingTop:i}]},[o,t,e])}function U(e,t){let o=(0,O.useHeaderHeight)();return(0,g.useMemo)(()=>{let r=V.StyleSheet.flatten(e),n=r==null?void 0:r.padding,c=r==null?void 0:r.paddingTop,i=typeof c=="number"?c:typeof n=="number"?n:void 0;return t&&(i=(i!=null?i:0)+o),[z.scrollContentStyle,e,{paddingTop:i}]},[e,o,t])}var z=V.StyleSheet.create({flex:{flex:1},scrollContentStyle:{flexGrow:1}});var fe=u.default.memo(function({scroll:t=!1,edges:o=[],headerTransparent:r=!1,scrollViewProps:n,scrollRef:c,style:i={},contentContainerStyle:p={},backgroundStyle:a={},HeaderComponent:s,FooterComponent:l,BackgroundComponent:P,children:B}){let oe=J(i,r),re=U(p,r),ne=w(s),ae=w(l),E=w(P);return u.default.createElement(S.View,{style:[R.flex,a]},E&&u.default.createElement(S.View,{style:R.background},E),u.default.createElement(q.SafeAreaView,{edges:o,style:R.flex},ne,t&&u.default.createElement(Q.KeyboardAwareScrollView,{ref:c,enabled:!0,scrollEnabled:!0,style:[R.flex,i],contentContainerStyle:re,bottomOffset:40,disableScrollOnKeyboardHide:!0,keyboardShouldPersistTaps:"handled",showsVerticalScrollIndicator:!1,...n},B),!t&&u.default.createElement(S.View,{style:[{overflow:"hidden"},oe]},B),ae))}),R=S.StyleSheet.create({flex:{flex:1},background:{alignItems:"stretch",pointerEvents:"none",...S.StyleSheet.absoluteFill}}),X=(0,W.cssInterop)(fe,{className:"style",contentContainerClassName:"contentContainerStyle",backgroundClassName:"backgroundStyle"});var L=d(require("react"),1),A=require("colord"),v=require("nativewind"),K=require("@react-navigation/native");function te({themeTokens:e,themeColors:t}){let{colorScheme:o,setColorScheme:r}=(0,v.useColorScheme)(),n=o==="light"?"light":"dark",{formattedColors:c,globalStyle:i,navTheme:p}=L.default.useMemo(()=>{let a={light:Y(t.light),dark:Y(t.dark)},s={light:ee("light",e,t),dark:ee("dark",e,t)},l={light:Z(K.DefaultTheme,a.light),dark:Z(K.DarkTheme,a.dark)};return{formattedColors:a,globalStyle:s,navTheme:l}},[t,e]);return L.default.useMemo(()=>({theme:{...e,colors:c[n]},navTheme:p[n],globalStyle:i[n],setColorScheme:r}),[c,i,p,n,r,e])}function ge(e){let t=e.includes(" ")&&!e.startsWith("hsl")?`hsl(${e})`:e;return(0,A.colord)(t).toHex()}function Y(e){return Object.fromEntries(Object.entries(e).map(([t,o])=>[t,ge(o)]))}function Z(e,t){return{...e,colors:{background:t.background,border:t.border,card:t.card,notification:t.destructive,primary:t.primary,text:t.foreground}}}function pe(e){let{h:t,s:o,l:r}=(0,A.colord)(e).toHsl();return`${t} ${o}% ${r}%`}function ee(e,t,o){return(0,v.vars)(Object.fromEntries([...Object.entries(t).map(([r,n])=>[`--${r}`,n]),...Object.entries(o[e]).map(([r,n])=>[`--${r}`,pe(n)])]))}
|
package/dist/index.mjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import
|
|
1
|
+
import C,{useState as H}from"react";import{View as $,Text as j,StyleSheet as I}from"react-native";function _({style:e,children:t}){let[r,o]=H(0);return C.createElement($,{style:e},C.createElement(j,{style:D.text,onPress:()=>{o(n=>n+1)}},"Box1 ",r),t)}var D=I.create({text:{fontSize:20,padding:15,borderRadius:10,color:"#ffffff",backgroundColor:"#0a234a"}});import{useEffect as G,useState as J}from"react";import*as m from"expo-screen-orientation";function U(){let[e,t]=J({orientation:void 0,orientationLock:void 0});return G(()=>{Promise.all([m.getOrientationAsync(),m.getOrientationLockAsync()]).then(([o,n])=>{t({orientation:o,orientationLock:n})});let r=m.addOrientationChangeListener(o=>{t({orientation:o.orientationInfo.orientation,orientationLock:o.orientationLock})});return()=>r.remove()},[]),e}import z from"react";import{Platform as W,useColorScheme as q}from"react-native";import*as d from"expo-navigation-bar";function Q(e){let t=q();z.useEffect(()=>{if(W.OS!=="android")return;d.setStyle(t==="dark"?"dark":"light");let r=t==="dark"?e==null?void 0:e.dark:e==null?void 0:e.light;if(!r)return;(async()=>{let n=[];r.backgroundColor&&(d.setBackgroundColorAsync(r.backgroundColor),n.push(d.setBackgroundColorAsync(r.backgroundColor))),r.borderColor&&n.push(d.setBorderColorAsync(r.borderColor)),n.length&&await Promise.all(n)})()},[t,e==null?void 0:e.dark,e==null?void 0:e.light])}import{useState as X}from"react";import{createMMKV as Y,useMMKVListener as Z}from"react-native-mmkv";function ee({defaults:e,storage:t=Y()}){let r=a=>{try{let s=t.getString(String(a));return s!==void 0?JSON.parse(s):e[a]}catch(s){return console.warn(s),e[a]}};return{useLocalStorage:a=>{let[s,l]=X(()=>r(a));return Z(g=>{String(a)===g&&l(r(a))},t),s},setLocalStorage:(a,s)=>{try{let l=JSON.stringify(s);t.set(String(a),l)}catch(l){console.warn(l)}},getLocalStorage:a=>r(a),removeLocalStorage:a=>{try{t.remove(String(a))}catch(s){console.warn(s)}},clearAllLocalStorage:()=>{try{t.clearAll()}catch(a){console.warn(a)}},storage:t}}import b from"react";import{useGlobalSearchParams as te,useSegments as oe}from"expo-router";import re from"lodash/isEmpty";function ne(){let e=oe(),t=te(),r=b.useRef(null);b.useEffect(()=>{if(!__DEV__)return;let o=ae(e);o!==r.current&&(r.current=o,re(t)?console.log(`ROUTER | INFO : ${o}`):console.log(`ROUTER | INFO : ${o}`,JSON.stringify(t,null,4)))},[t,e])}function ae(e){return e.length===0?"/":`/${e.join("/")}`}import u from"react";import{StyleSheet as K,View as k}from"react-native";import{cssInterop as se}from"nativewind";import{SafeAreaView as ce}from"react-native-safe-area-context";import{KeyboardAwareScrollView as le}from"react-native-keyboard-controller";import ie,{useMemo as p}from"react";import{StyleSheet as h}from"react-native";import{useHeaderHeight as V}from"@react-navigation/elements";function y(e){return p(()=>e?typeof e=="function"?ie.createElement(e,null):e:null,[e])}function w(e,t){let r=V();return p(()=>{let o=h.flatten(e),n=o==null?void 0:o.padding,c=o==null?void 0:o.paddingTop,i=typeof c=="number"?c:typeof n=="number"?n:void 0;return t&&(i=(i!=null?i:0)+r),[v.flex,e,{paddingTop:i}]},[r,t,e])}function R(e,t){let r=V();return p(()=>{let o=h.flatten(e),n=o==null?void 0:o.padding,c=o==null?void 0:o.paddingTop,i=typeof c=="number"?c:typeof n=="number"?n:void 0;return t&&(i=(i!=null?i:0)+r),[v.scrollContentStyle,e,{paddingTop:i}]},[e,r,t])}var v=h.create({flex:{flex:1},scrollContentStyle:{flexGrow:1}});var de=u.memo(function({scroll:t=!1,edges:r=[],headerTransparent:o=!1,scrollViewProps:n,scrollRef:c,style:i={},contentContainerStyle:S={},backgroundStyle:a={},HeaderComponent:s,FooterComponent:l,BackgroundComponent:g,children:T}){let B=w(i,o),E=R(S,o),M=y(s),F=y(l),x=y(g);return u.createElement(k,{style:[f.flex,a]},x&&u.createElement(k,{style:f.background},x),u.createElement(ce,{edges:r,style:f.flex},M,t&&u.createElement(le,{ref:c,enabled:!0,scrollEnabled:!0,style:[f.flex,i],contentContainerStyle:E,bottomOffset:40,disableScrollOnKeyboardHide:!0,keyboardShouldPersistTaps:"handled",showsVerticalScrollIndicator:!1,...n},T),!t&&u.createElement(k,{style:[{overflow:"hidden"},B]},T),F))}),f=K.create({flex:{flex:1},background:{alignItems:"stretch",pointerEvents:"none",...K.absoluteFill}}),me=se(de,{className:"style",contentContainerClassName:"contentContainerStyle",backgroundClassName:"backgroundStyle"});import P from"react";import{colord as A}from"colord";import{useColorScheme as ue,vars as Se}from"nativewind";import{DarkTheme as ye,DefaultTheme as fe}from"@react-navigation/native";function ge({themeTokens:e,themeColors:t}){let{colorScheme:r,setColorScheme:o}=ue(),n=r==="light"?"light":"dark",{formattedColors:c,globalStyle:i,navTheme:S}=P.useMemo(()=>{let a={light:N(t.light),dark:N(t.dark)},s={light:L("light",e,t),dark:L("dark",e,t)},l={light:O(fe,a.light),dark:O(ye,a.dark)};return{formattedColors:a,globalStyle:s,navTheme:l}},[t,e]);return P.useMemo(()=>({theme:{...e,colors:c[n]},navTheme:S[n],globalStyle:i[n],setColorScheme:o}),[c,i,S,n,o,e])}function pe(e){let t=e.includes(" ")&&!e.startsWith("hsl")?`hsl(${e})`:e;return A(t).toHex()}function N(e){return Object.fromEntries(Object.entries(e).map(([t,r])=>[t,pe(r)]))}function O(e,t){return{...e,colors:{background:t.background,border:t.border,card:t.card,notification:t.destructive,primary:t.primary,text:t.foreground}}}function he(e){let{h:t,s:r,l:o}=A(e).toHsl();return`${t} ${r}% ${o}%`}function L(e,t,r){return Se(Object.fromEntries([...Object.entries(t).map(([o,n])=>[`--${o}`,n]),...Object.entries(r[e]).map(([o,n])=>[`--${o}`,he(n)])]))}export{_ as Box1,me as ScreenContent,ee as createLocalStorage,Q as useAndroidNavigationBar,ne as useLogRouteChange,U as useOrientation,ge as useThemeNativewind4};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@mbrain/epic-react-native-lib",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.13",
|
|
4
4
|
"description": "A set of helpful, battle-tested utilities that simplify common React Native workflows and speed up app development",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"sideEffects": false,
|
|
@@ -34,24 +34,24 @@
|
|
|
34
34
|
}
|
|
35
35
|
},
|
|
36
36
|
"dependencies": {
|
|
37
|
+
"lodash": "^4",
|
|
38
|
+
"colord": "^2"
|
|
39
|
+
},
|
|
40
|
+
"peerDependencies": {
|
|
41
|
+
"react": "^18 || ^19",
|
|
42
|
+
"react-dom": "^18 || ^19",
|
|
43
|
+
"react-native": ">=0.72.0",
|
|
44
|
+
"react-native-web": ">=0.19.0",
|
|
37
45
|
"@react-navigation/elements": "^2",
|
|
38
46
|
"@react-navigation/native": "^7",
|
|
39
|
-
"
|
|
40
|
-
"expo-
|
|
41
|
-
"expo-
|
|
42
|
-
"expo-screen-orientation": "^9",
|
|
43
|
-
"lodash": "^4",
|
|
47
|
+
"expo-navigation-bar": "^5 || ^55",
|
|
48
|
+
"expo-router": "^6 || ^55",
|
|
49
|
+
"expo-screen-orientation": "^9 || ^55",
|
|
44
50
|
"nativewind": "^4",
|
|
45
51
|
"react-native-keyboard-controller": "^1",
|
|
46
52
|
"react-native-mmkv": "^4",
|
|
47
53
|
"react-native-safe-area-context": "^5"
|
|
48
54
|
},
|
|
49
|
-
"peerDependencies": {
|
|
50
|
-
"react": ">=18.0.0",
|
|
51
|
-
"react-dom": ">=18.0.0",
|
|
52
|
-
"react-native": ">=0.72.0",
|
|
53
|
-
"react-native-web": ">=0.19.0"
|
|
54
|
-
},
|
|
55
55
|
"peerDependenciesMeta": {
|
|
56
56
|
"react-dom": {
|
|
57
57
|
"optional": true
|