@mbrain/epic-react-native-lib 0.0.11 → 0.0.12

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 CHANGED
@@ -1 +1 @@
1
- "use strict";var se=Object.create;var k=Object.defineProperty;var ce=Object.getOwnPropertyDescriptor;var le=Object.getOwnPropertyNames;var de=Object.getPrototypeOf,me=Object.prototype.hasOwnProperty;var ue=(e,t)=>{for(var r in t)k(e,r,{get:t[r],enumerable:!0})},B=(e,t,r,o)=>{if(t&&typeof t=="object"||typeof t=="function")for(let n of le(t))!me.call(e,n)&&n!==r&&k(e,n,{get:()=>t[n],enumerable:!(o=ce(t,n))||o.enumerable});return e};var d=(e,t,r)=>(r=e!=null?se(de(e)):{},B(t||!e||!e.__esModule?k(r,"default",{value:e,enumerable:!0}):r,e)),Se=e=>B(k({},"__esModule",{value:!0}),e);var he={};ue(he,{Box1:()=>E,ScreenContent:()=>Y,createLocalStorage:()=>j,useAndroidNavigationBar:()=>F,useLogRouteChange:()=>_,useOrientation:()=>M,useThemeNativewind4:()=>oe});module.exports=Se(he);var h=d(require("react"),1),y=require("react-native");function E({style:e,children:t}){let[r,o]=(0,h.useState)(0);return h.default.createElement(y.View,{style:e},h.default.createElement(y.Text,{style:ye.text,onPress:()=>{o(n=>n+1)}},"Box1 ",r),t)}var ye=y.StyleSheet.create({text:{fontSize:20,padding:15,borderRadius:10,color:"#ffffff",backgroundColor:"#0a234a"}});var C=require("react"),p=d(require("expo-screen-orientation"),1);function M(){let[e,t]=(0,C.useState)({orientation:void 0,orientationLock:void 0});return(0,C.useEffect)(()=>{Promise.all([p.getOrientationAsync(),p.getOrientationLockAsync()]).then(([o,n])=>{t({orientation:o,orientationLock:n})});let r=p.addOrientationChangeListener(o=>{t({orientation:o.orientationInfo.orientation,orientationLock:o.orientationLock})});return()=>r.remove()},[]),e}var H=d(require("react"),1),T=require("react-native"),m=d(require("expo-navigation-bar"),1);function F(e){let t=(0,T.useColorScheme)();H.default.useEffect(()=>{if(T.Platform.OS!=="android")return;m.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&&(m.setBackgroundColorAsync(r.backgroundColor),n.push(m.setBackgroundColorAsync(r.backgroundColor))),r.borderColor&&n.push(m.setBorderColorAsync(r.borderColor)),n.length&&await Promise.all(n)})()},[t,e==null?void 0:e.dark,e==null?void 0:e.light])}var $=require("react"),x=require("react-native-mmkv");function j({defaults:e,storage:t=(0,x.createMMKV)()}){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]=(0,$.useState)(()=>r(a));return(0,x.useMMKVListener)(K=>{String(a)===K&&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}}var D=d(require("react"),1),I=require("expo-router"),G=d(require("lodash/isEmpty"),1);function _(){let e=(0,I.useNavigationContainerRef)();D.default.useEffect(()=>{if(__DEV__)return e.addListener("state",()=>{let r=e.getState(),o=J(r);o&&((0,G.default)(o.params)?console.log(`ROUTE CHANGED : ${o.name}`):console.log(`ROUTE CHANGED : ${o.name}`,o.params))})},[e])}function J(e){var t;if(!e)return null;if(e.routes&&e.routes.length>0){let r=(t=e.index)!=null?t:0,o=e.routes[r];if(!o)return null;if(o.state){let n=J(o.state);if(n)return n}return{name:o.name,params:o.params}}return null}var u=d(require("react"),1),S=require("react-native"),q=require("nativewind"),Q=require("react-native-safe-area-context"),X=require("react-native-keyboard-controller");var f=d(require("react"),1),b=require("react-native"),L=require("@react-navigation/elements");function V(e){return(0,f.useMemo)(()=>e?typeof e=="function"?f.default.createElement(e,null):e:null,[e])}function U(e,t){let r=(0,L.useHeaderHeight)();return(0,f.useMemo)(()=>{let o=b.StyleSheet.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),[W.flex,e,{paddingTop:i}]},[r,t,e])}function z(e,t){let r=(0,L.useHeaderHeight)();return(0,f.useMemo)(()=>{let o=b.StyleSheet.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),[W.scrollContentStyle,e,{paddingTop:i}]},[e,r,t])}var W=b.StyleSheet.create({flex:{flex:1},scrollContentStyle:{flexGrow:1}});var pe=u.default.memo(function({scroll:t=!1,edges:r=[],headerTransparent:o=!1,scrollViewProps:n,scrollRef:c,style:i={},contentContainerStyle:g={},backgroundStyle:a={},HeaderComponent:s,FooterComponent:l,BackgroundComponent:K,children:O}){let re=U(i,o),ne=z(g,o),ae=V(s),ie=V(l),A=V(K);return u.default.createElement(S.View,{style:[w.flex,a]},A&&u.default.createElement(S.View,{style:w.background},A),u.default.createElement(Q.SafeAreaView,{edges:r,style:w.flex},ae,t&&u.default.createElement(X.KeyboardAwareScrollView,{ref:c,enabled:!0,scrollEnabled:!0,style:[w.flex,i],contentContainerStyle:ne,bottomOffset:40,disableScrollOnKeyboardHide:!0,keyboardShouldPersistTaps:"handled",showsVerticalScrollIndicator:!1,...n},O),!t&&u.default.createElement(S.View,{style:[{overflow:"hidden"},re]},O),ie))}),w=S.StyleSheet.create({flex:{flex:1},background:{alignItems:"stretch",pointerEvents:"none",...S.StyleSheet.absoluteFill}}),Y=(0,q.cssInterop)(pe,{className:"style",contentContainerClassName:"contentContainerStyle",backgroundClassName:"backgroundStyle"});var N=d(require("react"),1),P=require("colord"),R=require("nativewind"),v=require("@react-navigation/native");function oe({themeTokens:e,themeColors:t}){let{colorScheme:r,setColorScheme:o}=(0,R.useColorScheme)(),n=r==="light"?"light":"dark",{formattedColors:c,globalStyle:i,navTheme:g}=N.default.useMemo(()=>{let a={light:Z(t.light),dark:Z(t.dark)},s={light:te("light",e,t),dark:te("dark",e,t)},l={light:ee(v.DefaultTheme,a.light),dark:ee(v.DarkTheme,a.dark)};return{formattedColors:a,globalStyle:s,navTheme:l}},[t,e]);return N.default.useMemo(()=>({theme:{...e,colors:c[n]},navTheme:g[n],globalStyle:i[n],setColorScheme:o}),[c,i,g,n,o,e])}function fe(e){let t=e.includes(" ")&&!e.startsWith("hsl")?`hsl(${e})`:e;return(0,P.colord)(t).toHex()}function Z(e){return Object.fromEntries(Object.entries(e).map(([t,r])=>[t,fe(r)]))}function ee(e,t){return{...e,colors:{background:t.background,border:t.border,card:t.card,notification:t.destructive,primary:t.primary,text:t.foreground}}}function ge(e){let{h:t,s:r,l:o}=(0,P.colord)(e).toHsl();return`${t} ${r}% ${o}%`}function te(e,t,r){return(0,R.vars)(Object.fromEntries([...Object.entries(t).map(([o,n])=>[`--${o}`,n]),...Object.entries(r[e]).map(([o,n])=>[`--${o}`,ge(n)])]))}
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 x,{useState as F}from"react";import{View as $,Text as j,StyleSheet as D}from"react-native";function I({style:e,children:t}){let[r,o]=F(0);return x.createElement($,{style:e},x.createElement(j,{style:G.text,onPress:()=>{o(n=>n+1)}},"Box1 ",r),t)}var G=D.create({text:{fontSize:20,padding:15,borderRadius:10,color:"#ffffff",backgroundColor:"#0a234a"}});import{useEffect as _,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 _(()=>{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(f=>{String(a)===f&&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 te from"react";import{useNavigationContainerRef as oe}from"expo-router";import re from"lodash/isEmpty";function ne(){let e=oe();te.useEffect(()=>{if(__DEV__)return e.addListener("state",()=>{let r=e.getState(),o=b(r);o&&(re(o.params)?console.log(`ROUTE CHANGED : ${o.name}`):console.log(`ROUTE CHANGED : ${o.name}`,o.params))})},[e])}function b(e){var t;if(!e)return null;if(e.routes&&e.routes.length>0){let r=(t=e.index)!=null?t:0,o=e.routes[r];if(!o)return null;if(o.state){let n=b(o.state);if(n)return n}return{name:o.name,params:o.params}}return null}import u from"react";import{StyleSheet as K,View as k}from"react-native";import{cssInterop as ie}from"nativewind";import{SafeAreaView as se}from"react-native-safe-area-context";import{KeyboardAwareScrollView as ce}from"react-native-keyboard-controller";import ae,{useMemo as g}from"react";import{StyleSheet as h}from"react-native";import{useHeaderHeight as V}from"@react-navigation/elements";function y(e){return g(()=>e?typeof e=="function"?ae.createElement(e,null):e:null,[e])}function w(e,t){let r=V();return g(()=>{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 g(()=>{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 le=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:f,children:C}){let B=w(i,o),E=R(S,o),M=y(s),H=y(l),T=y(f);return u.createElement(k,{style:[p.flex,a]},T&&u.createElement(k,{style:p.background},T),u.createElement(se,{edges:r,style:p.flex},M,t&&u.createElement(ce,{ref:c,enabled:!0,scrollEnabled:!0,style:[p.flex,i],contentContainerStyle:E,bottomOffset:40,disableScrollOnKeyboardHide:!0,keyboardShouldPersistTaps:"handled",showsVerticalScrollIndicator:!1,...n},C),!t&&u.createElement(k,{style:[{overflow:"hidden"},B]},C),H))}),p=K.create({flex:{flex:1},background:{alignItems:"stretch",pointerEvents:"none",...K.absoluteFill}}),de=ie(le,{className:"style",contentContainerClassName:"contentContainerStyle",backgroundClassName:"backgroundStyle"});import L from"react";import{colord as A}from"colord";import{useColorScheme as me,vars as ue}from"nativewind";import{DarkTheme as Se,DefaultTheme as ye}from"@react-navigation/native";function pe({themeTokens:e,themeColors:t}){let{colorScheme:r,setColorScheme:o}=me(),n=r==="light"?"light":"dark",{formattedColors:c,globalStyle:i,navTheme:S}=L.useMemo(()=>{let a={light:N(t.light),dark:N(t.dark)},s={light:O("light",e,t),dark:O("dark",e,t)},l={light:P(ye,a.light),dark:P(Se,a.dark)};return{formattedColors:a,globalStyle:s,navTheme:l}},[t,e]);return L.useMemo(()=>({theme:{...e,colors:c[n]},navTheme:S[n],globalStyle:i[n],setColorScheme:o}),[c,i,S,n,o,e])}function fe(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,fe(r)]))}function P(e,t){return{...e,colors:{background:t.background,border:t.border,card:t.card,notification:t.destructive,primary:t.primary,text:t.foreground}}}function ge(e){let{h:t,s:r,l:o}=A(e).toHsl();return`${t} ${r}% ${o}%`}function O(e,t,r){return ue(Object.fromEntries([...Object.entries(t).map(([o,n])=>[`--${o}`,n]),...Object.entries(r[e]).map(([o,n])=>[`--${o}`,ge(n)])]))}export{I as Box1,de as ScreenContent,ee as createLocalStorage,Q as useAndroidNavigationBar,ne as useLogRouteChange,U as useOrientation,pe as useThemeNativewind4};
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.11",
3
+ "version": "0.0.12",
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,