diff --git a/App.tsx b/App.tsx
index 7814bdb..e4c0c53 100644
--- a/App.tsx
+++ b/App.tsx
@@ -1,5 +1,4 @@
import React, { useEffect, useMemo, useState } from 'react';
-
import {
SafeAreaView,
StatusBar,
@@ -20,19 +19,6 @@ import {
const { LimitterModule, TimerEventModule } = NativeModules;
import { startCategoryService } from './src/services/categoryService';
-import TestScreen from './test/TestScreen';
-
-// Set this to true to see the test screen instead of the main app
-const SHOW_TEST_SCREEN = false;
-
-import {
- BaseButton,
- TextInput as CustomInput,
- BaseModal,
- RadioGroup,
- Alert as CustomAlert,
- Icon as CustomIcon
-} from './components';
type AppInfo = {
name: string;
@@ -46,12 +32,6 @@ interface AppLimit extends AppInfo {
}
function App(): React.JSX.Element {
- if (SHOW_TEST_SCREEN) {
- return ;
- }
-
- // ===== ALL HOOKS MUST BE DECLARED BEFORE ANY CONDITIONAL RETURNS =====
- const [showMainApp, setShowMainApp] = useState(false);
const [activeLimits, setActiveLimits] = useState([]);
const [showTroubleshoot, setShowTroubleshoot] = useState(false);
const [selectedApps, setSelectedApps] = useState([]); // Multi-select support
@@ -82,7 +62,6 @@ function App(): React.JSX.Element {
return () => sub.remove();
}, []);
-
const syncActiveTimers = async () => {
if (LimitterModule?.getActiveTimers) {
try {
@@ -344,81 +323,9 @@ function App(): React.JSX.Element {
return allApps.filter(a => a.name.toLowerCase().includes(searchQuery.toLowerCase()));
}, [allApps, searchQuery]);
- // ===== COMPONENT TEST PAGE (Figma Mockup) =====
- if (!showMainApp) {
- return (
-
-
-
- {/* ✅ ROOT STATUS HEADER */}
- SHIELD ACTIVE • ROOT FILE RESOLVED ✅
- 🛡️Login / SignupWelcome back. Monitor and protect your family's digital journey.
-
- Forgot password?
-
- { }} style={{ marginBottom: 24 }}>Sign In
-
-
-
- OR CONTINUE WITH
-
-
-
-
- GGoogle
- Apple
-
-
- Don't have an account? Create one
-
-
-
-
- {/* COMPONENT AUDIT SECTION */}
- 🎨 Component Showcase
-
-
- Variations
-
- Outline Button
- Danger Action
- Secondary Ghost
-
-
-
-
- Selection
- { }}
- />
-
-
-
- Alert System
- Accessibility service is used for URL detection only.
-
-
- setShowMainApp(true)}
- >
- 🚀 PROCEED TO MAIN DASHBOARD
-
-
-
- );
- }
- // ===== END COMPONENT TEST PAGE =====
-
if (step === 0) {
return (
- !!! ROOT APP ACTIVE !!!
Permissions Needed
Overlay and Usage Access required.
LimitterModule?.checkAndRequestPermissions()}>
@@ -437,8 +344,7 @@ function App(): React.JSX.Element {
- !!! ROOT FILE RUNNING !!!
- NEW UIIIII
+ APPGUARD
v2.0 Native Guard
-
{(permissions.batteryOptimized || !permissions.exactAlarm || showTroubleshoot) && (
⚠️ Background Performance
@@ -654,7 +559,6 @@ function App(): React.JSX.Element {
)}
)}
-
@@ -698,4 +602,4 @@ const styles = StyleSheet.create({
ampmText: { color: '#94A3B8', fontWeight: '900', fontSize: 16 },
});
-export default App;
\ No newline at end of file
+export default App;
diff --git a/android/app/src/main/assets/index.android.bundle b/android/app/src/main/assets/index.android.bundle
index 3b9eb0f..cd3dc7b 100644
--- a/android/app/src/main/assets/index.android.bundle
+++ b/android/app/src/main/assets/index.android.bundle
@@ -2,7 +2,7 @@ var __BUNDLE_START_TIME__=globalThis.nativePerformanceNow?nativePerformanceNow()
!(function(e){"use strict";e.__r=i,e[`${__METRO_GLOBAL_PREFIX__}__d`]=function(e,o,n){if(r.has(o))return;var i={dependencyMap:n,factory:e,hasError:!1,importedAll:t,importedDefault:t,isInitialized:!1,publicModule:{exports:{}}};r.set(o,i)},e.__c=n,e.__registerSegment=function(e,t,o){s[e]=t,o&&o.forEach(t=>{r.has(t)||v.has(t)||v.set(t,e)})};var r=n(),t={},o={}.hasOwnProperty;function n(){return r=new Map}function i(e,t){if(null===e)throw new Error("Cannot find module");var o=e,n=r.get(o);return n&&n.isInitialized?n.publicModule.exports:d(o,n)}function a(e){var o=e,n=r.get(o);if(n&&n.importedDefault!==t)return n.importedDefault;var a=i(o),l=a&&a.__esModule?a.default:a;return r.get(o).importedDefault=l}function l(e){var n=e,a=r.get(n);if(a&&a.importedAll!==t)return a.importedAll;var l,u=i(n);if(u&&u.__esModule)l=u;else{if(l={},u)for(var d in u)o.call(u,d)&&(l[d]=u[d]);l.default=u}return r.get(n).importedAll=l}i.importDefault=a,i.importAll=l,i.context=function(){throw new Error("The experimental Metro feature `require.context` is not enabled in your project.")},i.resolveWeak=function(){throw new Error("require.resolveWeak cannot be called dynamically.")};var u=!1;function d(r,t){if(!u&&e.ErrorUtils){var o;u=!0;try{o=h(r,t)}catch(r){e.ErrorUtils.reportFatalError(r)}return u=!1,o}return h(r,t)}var f=16,c=65535;function p(e){return{segmentId:e>>>f,localId:e&c}}i.unpackModuleId=p,i.packModuleId=function(e){return(e.segmentId<0){var n=v.get(t)??0,u=s[n];null!=u&&(u(t),o=r.get(t),v.delete(t))}var d=e.nativeRequire;if(!o&&d){var f=p(t),c=f.segmentId;d(f.localId,c),o=r.get(t)}if(!o)throw Error('Requiring unknown module "'+t+'".');if(o.hasError)throw o.error;o.isInitialized=!0;var h=o,g=h.factory,m=h.dependencyMap;try{var _=o.publicModule;return _.id=t,g(e,i,a,l,_,_.exports,m),o.factory=void 0,o.dependencyMap=void 0,_.exports}catch(e){throw o.hasError=!0,o.error=e,o.isInitialized=!1,o.publicModule.exports=void 0,e}}})('undefined'!=typeof globalThis?globalThis:'undefined'!=typeof global?global:'undefined'!=typeof window?window:this);
!(function(e){var n=(function(){function e(e,n){return e}function n(e){var n={};return e.forEach(function(e,r){n[e]=!0}),n}function r(e,r,u){if(e.formatValueCalls++,e.formatValueCalls>200)return`[TOO BIG formatValueCalls ${e.formatValueCalls} exceeded limit of 200]`;var c=t(e,r);if(c)return c;var s=Object.keys(r),f=n(s);if(d(r)&&(s.indexOf('message')>=0||s.indexOf('description')>=0))return o(r);if(0===s.length){if(v(r)){var g=r.name?': '+r.name:'';return e.stylize('[Function'+g+']','special')}if(p(r))return e.stylize(RegExp.prototype.toString.call(r),'regexp');if(y(r))return e.stylize(Date.prototype.toString.call(r),'date');if(d(r))return o(r)}var h,m,b='',j=!1,E=['{','}'];(h=r,Array.isArray(h)&&(j=!0,E=['[',']']),v(r))&&(b=' [Function'+(r.name?': '+r.name:'')+']');return p(r)&&(b=' '+RegExp.prototype.toString.call(r)),y(r)&&(b=' '+Date.prototype.toUTCString.call(r)),d(r)&&(b=' '+o(r)),0!==s.length||j&&0!=r.length?u<0?p(r)?e.stylize(RegExp.prototype.toString.call(r),'regexp'):e.stylize('[Object]','special'):(e.seen.push(r),m=j?i(e,r,u,f,s):s.map(function(n){return a(e,r,u,f,n,j)}),e.seen.pop(),l(m,b,E)):E[0]+b+E[1]}function t(e,n){if(f(n))return e.stylize('undefined','undefined');if('string'==typeof n){var r="'"+JSON.stringify(n).replace(/^"|"$/g,'').replace(/'/g,"\\'").replace(/\\"/g,'"')+"'";return e.stylize(r,'string')}return s(n)?e.stylize(''+n,'number'):u(n)?e.stylize(''+n,'boolean'):c(n)?e.stylize('null','null'):void 0}function o(e){return'['+Error.prototype.toString.call(e)+']'}function i(e,n,r,t,o){for(var i=[],l=0,u=n.length;l-1&&(u=a?u.split('\n').map(function(e){return' '+e}).join('\n').slice(2):'\n'+u.split('\n').map(function(e){return' '+e}).join('\n')):u=e.stylize('[Circular]','special')),f(l)){if(a&&i.match(/^\d+$/))return u;(l=JSON.stringify(''+i)).match(/^"([a-zA-Z_][a-zA-Z_0-9]*)"$/)?(l=l.slice(1,l.length-1),l=e.stylize(l,'name')):(l=l.replace(/'/g,"\\'").replace(/\\"/g,'"').replace(/(^"|"$)/g,"'"),l=e.stylize(l,'string'))}return l+': '+u}function l(e,n,r){return e.reduce(function(e,n){return n.indexOf('\n')>=0&&0,e+n.replace(/\u001b\[\d\d?m/g,'').length+1},0)>60?r[0]+(''===n?'':n+'\n ')+' '+e.join(',\n ')+' '+r[1]:r[0]+n+' '+e.join(', ')+' '+r[1]}function u(e){return'boolean'==typeof e}function c(e){return null===e}function s(e){return'number'==typeof e}function f(e){return void 0===e}function p(e){return g(e)&&'[object RegExp]'===h(e)}function g(e){return'object'==typeof e&&null!==e}function y(e){return g(e)&&'[object Date]'===h(e)}function d(e){return g(e)&&('[object Error]'===h(e)||e instanceof Error)}function v(e){return'function'==typeof e}function h(e){return Object.prototype.toString.call(e)}function m(e,n){return Object.prototype.hasOwnProperty.call(e,n)}return function(n,t){return r({seen:[],formatValueCalls:0,stylize:e},n,t.depth)}})(),r='(index)',t=0,o=1,i=2,a=3;function l(r){return function(){var t;t=1===arguments.length&&'string'==typeof arguments[0]?arguments[0]:Array.prototype.map.call(arguments,function(e){return n(e,{depth:10})}).join(', ');var o=arguments[0],l=r;'string'==typeof o&&'Warning: '===o.slice(0,9)&&l>=a&&(l=i),s.length&&(t=f('',t)),e.nativeLoggingHook(t,l)}}function u(e,n){return Array.apply(null,Array(n)).map(function(){return e})}function c(e,n){if(n===r)return e[n];if(e.hasOwnProperty(n)){var t=e[n];switch(typeof t){case'function':return'\u0192';case'string':return"'"+t+"'";case'object':return null==t?'null':'{\u2026}'}return String(t)}return''}var s=[];function f(e,n){return s.join('')+e+' '+(n||'')}function p(){}function g(){return{run:e=>e()}}if(e.nativeLoggingHook){var y=e.console;if(e.console={time:p,timeEnd:p,timeStamp:p,count:p,countReset:p,createTask:g,...y??{},error:l(a),info:l(o),log:l(o),warn:l(i),trace:l(t),debug:l(t),table:function(n,t){var i;if(Array.isArray(n))i=n.map((e,n)=>{var t={};return t[r]=String(n),Object.assign(t,e),t});else for(var a in i=[],n)if(n.hasOwnProperty(a)){var l={};l[r]=a,Object.assign(l,n[a]),i.push(l)}if(0!==i.length){t=Array.isArray(t)?[r].concat(t):Array.from(i.reduce((e,n)=>(Object.keys(n).forEach(n=>e.add(n)),e),new Set));var s=[],f=[];t.forEach(function(e,n){f[n]=e.length;for(var r=0;r'string'==typeof e?e:d(e)).join(' ');(r=new Error(o)).name='console.error'}e.RN$handleException(r,!1,!1)}}}Object.defineProperty(console,'_isPolyfilled',{value:!0,enumerable:!1})}else if(!e.console){var h=e.print||p;e.console={debug:h,error:h,info:h,log:h,trace:h,warn:h,assert(e,n){e||h('Assertion failed: '+n)},clear:p,count:p,countReset:p,dir:p,dirxml:p,group:p,groupCollapsed:p,groupEnd:p,profile:p,profileEnd:p,table:p,time:p,timeEnd:p,timeStamp:p,createTask:g},Object.defineProperty(console,'_isPolyfilled',{value:!0,enumerable:!1})}})('undefined'!=typeof globalThis?globalThis:'undefined'!=typeof global?global:'undefined'!=typeof window?window:this);
!(function(r){var l=0,a=!0===r.RN$useAlwaysAvailableJSErrorHandling?r.RN$handleException:(r,l)=>{throw r},n={setGlobalHandler(r){a=r},getGlobalHandler:()=>a,reportError(r){a&&a(r,!1)},reportFatalError(r){a&&a(r,!0)},applyWithGuard(r,a,e,t,o){try{return l++,r.apply(a,e)}catch(r){n.reportError(r)}finally{l--}return null},applyWithGuardIfNeeded:(r,l,a)=>n.inGuard()?r.apply(l,a):(n.applyWithGuard(r,l,a),null),inGuard:()=>!!l,guard(r,l,a){if('function'!=typeof r)return console.warn('A function must be passed to ErrorUtils.guard, got ',r),null;var e=l??r.name??'';return function(...l){return n.applyWithGuard(r,a??this,l,null,e)}}};r.ErrorUtils=n})('undefined'!=typeof globalThis?globalThis:'undefined'!=typeof global?global:'undefined'!=typeof window?window:this);
-__d(function(g,r,i,a,m,e,d){var n=r(d[0]),t=r(d[1]),o=n(r(d[2]));t.AppRegistry.registerComponent(r(d[3]).name,()=>o.default)},0,[1,2,495,513]);
+__d(function(g,r,i,a,m,e,d){var n=r(d[0]),t=r(d[1]),o=n(r(d[2]));t.AppRegistry.registerComponent(r(d[3]).name,()=>o.default)},0,[1,2,495,499]);
__d(function(g,r,i,a,m,_e,d){m.exports=function(e){return e&&e.__esModule?e:{default:e}},m.exports.__esModule=!0,m.exports.default=m.exports},1,[]);
__d(function(g,r,i,a,m,e,d){'use strict';m.exports={get ActivityIndicator(){return r(d[0]).default},get Button(){return r(d[1]).default},get DrawerLayoutAndroid(){return r(d[2]).default},get FlatList(){return r(d[3]).default},get Image(){return r(d[4]).default},get ImageBackground(){return r(d[5]).default},get InputAccessoryView(){return r(d[6]).default},get KeyboardAvoidingView(){return r(d[7]).default},get experimental_LayoutConformance(){return r(d[8]).default},get Modal(){return r(d[9]).default},get unstable_NativeText(){return r(d[10]).NativeText},get unstable_NativeView(){return r(d[11]).default},get Pressable(){return r(d[12]).default},get ProgressBarAndroid(){return r(d[13]).default('progress-bar-android-moved',"ProgressBarAndroid has been extracted from react-native core and will be removed in a future release. It can now be installed and imported from '@react-native-community/progress-bar-android' instead of 'react-native'. See https://github.com/react-native-progress-view/progress-bar-android"),r(d[14]).default},get RefreshControl(){return r(d[15]).default},get SafeAreaView(){return r(d[13]).default('safe-area-view-deprecated',"SafeAreaView has been deprecated and will be removed in a future release. Please use 'react-native-safe-area-context' instead. See https://github.com/AppAndFlow/react-native-safe-area-context"),r(d[16]).default},get ScrollView(){return r(d[17]).default},get SectionList(){return r(d[18]).default},get StatusBar(){return r(d[19]).default},get Switch(){return r(d[20]).default},get Text(){return r(d[21]).default},get unstable_TextAncestorContext(){return r(d[22]).default},get TextInput(){return r(d[23]).default},get Touchable(){return r(d[24]).default},get TouchableHighlight(){return r(d[25]).default},get TouchableNativeFeedback(){return r(d[26]).default},get TouchableOpacity(){return r(d[27]).default},get TouchableWithoutFeedback(){return r(d[28]).default},get View(){return r(d[29]).default},get VirtualizedList(){return r(d[30]).default},get VirtualizedSectionList(){return r(d[31]).default},get unstable_VirtualView(){return r(d[32]).default},get AccessibilityInfo(){return r(d[33]).default},get ActionSheetIOS(){return r(d[34]).default},get Alert(){return r(d[35]).default},get Animated(){return r(d[36]).default},get Appearance(){return r(d[37])},get AppRegistry(){return r(d[38]).AppRegistry},get AppState(){return r(d[39]).default},get BackHandler(){return r(d[40]).default},get Clipboard(){return r(d[13]).default('clipboard-moved',"Clipboard has been extracted from react-native core and will be removed in a future release. It can now be installed and imported from '@react-native-clipboard/clipboard' instead of 'react-native'. See https://github.com/react-native-clipboard/clipboard"),r(d[41]).default},get codegenNativeCommands(){return r(d[42]).default},get codegenNativeComponent(){return r(d[43]).default},get DeviceEventEmitter(){return r(d[44]).default},get DeviceInfo(){return r(d[45]).default},get DevMenu(){return r(d[46]).default},get DevSettings(){return r(d[47]).default},get Dimensions(){return r(d[48]).default},get DynamicColorIOS(){return r(d[49]).DynamicColorIOS},get Easing(){return r(d[50]).default},get findNodeHandle(){return r(d[51]).findNodeHandle},get I18nManager(){return r(d[52]).default},get InteractionManager(){return r(d[13]).default('interaction-manager-deprecated',"InteractionManager has been deprecated and will be removed in a future release. Please refactor long tasks into smaller ones, and use 'requestIdleCallback' instead."),r(d[53]).default},get Keyboard(){return r(d[54]).default},get LayoutAnimation(){return r(d[55]).default},get Linking(){return r(d[56]).default},get LogBox(){return r(d[57]).default},get NativeAppEventEmitter(){return r(d[58]).default},get NativeComponentRegistry(){return r(d[59])},get NativeDialogManagerAndroid(){return r(d[60]).default},get NativeEventEmitter(){return r(d[61]).default},get NativeModules(){return r(d[62]).default},get Networking(){return r(d[63]).default},get PanResponder(){return r(d[64]).default},get PermissionsAndroid(){return r(d[65]).default},get PixelRatio(){return r(d[66]).default},get Platform(){return r(d[67]).default},get PlatformColor(){return r(d[68]).PlatformColor},get PushNotificationIOS(){return r(d[13]).default('pushNotificationIOS-moved',"PushNotificationIOS has been extracted from react-native core and will be removed in a future release. It can now be installed and imported from '@react-native-community/push-notification-ios' instead of 'react-native'. See https://github.com/react-native-push-notification/ios"),r(d[69]).default},get processColor(){return r(d[70]).default},get registerCallableModule(){return r(d[71]).default},get requireNativeComponent(){return r(d[72]).default},get ReactNativeVersion(){return r(d[73]).default},get RootTagContext(){return r(d[74]).RootTagContext},get Settings(){return r(d[75]).default},get Share(){return r(d[76]).default},get StyleSheet(){return r(d[77]).default},get Systrace(){return r(d[78])},get ToastAndroid(){return r(d[79]).default},get TurboModuleRegistry(){return r(d[80])},get UIManager(){return r(d[81]).default},get unstable_batchedUpdates(){return r(d[51]).unstable_batchedUpdates},get useAnimatedValue(){return r(d[82]).default},get useColorScheme(){return r(d[83]).default},get usePressability(){return r(d[84]).default},get useWindowDimensions(){return r(d[85]).default},get UTFSequence(){return r(d[86]).default},get Vibration(){return r(d[87]).default},get VirtualViewMode(){return r(d[32]).VirtualViewMode}}},2,[3,274,390,331,349,398,399,406,412,414,285,71,422,149,266,360,400,365,387,391,424,275,68,429,433,437,286,287,438,65,439,440,441,407,445,217,288,448,230,451,243,455,100,269,15,458,459,461,14,464,308,101,419,465,371,372,466,471,225,72,218,195,31,194,472,474,8,62,52,477,49,223,270,480,240,481,483,4,26,486,29,74,489,490,277,403,491,492]);
__d(function(g,_r,_i,a,m,_e,d){'use strict';var e=_r(d[0]);Object.defineProperty(_e,"__esModule",{value:!0}),_e.default=void 0;var t=e(_r(d[1])),r=e(_r(d[2])),i=e(_r(d[3])),n=((function(e,t){if("function"==typeof WeakMap)var r=new WeakMap,i=new WeakMap;(function(e,t){if(!t&&e&&e.__esModule)return e;var n,l,o={__proto__:null,default:e};if(null===e||"object"!=typeof e&&"function"!=typeof e)return o;if(n=t?i:r){if(n.has(e))return n.get(e);n.set(e,o)}for(var s in e)"default"!==s&&{}.hasOwnProperty.call(e,s)&&((l=(n=Object.defineProperty)&&Object.getOwnPropertyDescriptor(e,s))&&(l.get||l.set)?n(o,s,l):o[s]=e[s])})(e,t)})(_r(d[4])),_r(d[5]));var l='android'===r.default.OS?_r(d[6]).default:_r(d[7]).default,o=({ref:e,animating:o=!0,color:f=('ios'===r.default.OS?"#999999":null),hidesWhenStopped:u=!0,onLayout:c,size:p="small",style:h,...y})=>{var v,_;switch(p){case'small':v=s.sizeSmall,_='small';break;case'large':v=s.sizeLarge,_='large';break;default:v={height:p,width:p}}var j={animating:o,color:f,hidesWhenStopped:u,...y,ref:e,style:v,size:_};return(0,n.jsx)(i.default,{onLayout:c,style:t.default.compose(s.container,h),children:'android'===r.default.OS?(0,n.jsx)(l,{...j,styleAttr:'Normal',indeterminate:!0}):(0,n.jsx)(l,{...j})})};o.displayName='ActivityIndicator';var s=t.default.create({container:{alignItems:'center',justifyContent:'center'},sizeSmall:{width:20,height:20},sizeLarge:{width:36,height:36}});_e.default=o},3,[1,4,62,65,69,238,266,272]);
@@ -533,24 +533,10 @@ __d(function(g,r,i,a,m,e,d){'use strict';Object.defineProperty(e,"__esModule",{v
__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var n=t(r(d[1]));var u={vibrate:function(t=400,u=!1){if('number'==typeof t)n.default.vibrate(t);else{if(!Array.isArray(t))throw new Error('Vibration pattern should be a number or array');n.default.vibrateByPattern(t,u?0:-1)}},cancel:function(){n.default.cancel()}};e.default=u},492,[1,493]);
__d(function(g,_r,_i,a,m,_e,d){Object.defineProperty(_e,"__esModule",{value:!0});var e={};_e.default=void 0;var t=(function(e,t){if("function"==typeof WeakMap)var r=new WeakMap,n=new WeakMap;return(function(e,t){if(!t&&e&&e.__esModule)return e;var o,f,u={__proto__:null,default:e};if(null===e||"object"!=typeof e&&"function"!=typeof e)return u;if(o=t?n:r){if(o.has(e))return o.get(e);o.set(e,u)}for(var i in e)"default"!==i&&{}.hasOwnProperty.call(e,i)&&((f=(o=Object.defineProperty)&&Object.getOwnPropertyDescriptor(e,i))&&(f.get||f.set)?o(u,i,f):u[i]=e[i]);return u})(e,t)})(_r(d[0]));Object.keys(t).forEach(function(r){"default"!==r&&"__esModule"!==r&&(Object.prototype.hasOwnProperty.call(e,r)||r in _e&&_e[r]===t[r]||Object.defineProperty(_e,r,{enumerable:!0,get:function(){return t[r]}}))});_e.default=t.default},493,[494]);
__d(function(g,_r,_i,a,m,_e,d){Object.defineProperty(_e,"__esModule",{value:!0}),_e.default=void 0;var e=(function(e,t){if("function"==typeof WeakMap)var r=new WeakMap,n=new WeakMap;return(function(e,t){if(!t&&e&&e.__esModule)return e;var o,f,u={__proto__:null,default:e};if(null===e||"object"!=typeof e&&"function"!=typeof e)return u;if(o=t?n:r){if(o.has(e))return o.get(e);o.set(e,u)}for(var i in e)"default"!==i&&{}.hasOwnProperty.call(e,i)&&((f=(o=Object.defineProperty)&&Object.getOwnPropertyDescriptor(e,i))&&(f.get||f.set)?o(u,i,f):u[i]=e[i]);return u})(e,t)})(_r(d[0]));_e.default=e.getEnforcing('Vibration')},494,[29]);
-__d(function(g,_r,_i,_a,_m,_e,d){var e=_r(d[0]);Object.defineProperty(_e,"__esModule",{value:!0}),_e.default=void 0;var t=e(_r(d[1])),r=e(_r(d[2])),o=(function(e,t){if("function"==typeof WeakMap)var r=new WeakMap,o=new WeakMap;return(function(e,t){if(!t&&e&&e.__esModule)return e;var n,i,a={__proto__:null,default:e};if(null===e||"object"!=typeof e&&"function"!=typeof e)return a;if(n=t?o:r){if(n.has(e))return n.get(e);n.set(e,a)}for(var l in e)"default"!==l&&{}.hasOwnProperty.call(e,l)&&((i=(n=Object.defineProperty)&&Object.getOwnPropertyDescriptor(e,l))&&(i.get||i.set)?n(a,l,i):a[l]=e[l]);return a})(e,t)})(_r(d[3])),n=_r(d[4]),i=(e(_r(d[5])),_r(d[6]));var a=n.NativeModules.LimitterModule,l=n.NativeModules.TimerEventModule;var s=n.StyleSheet.create({container:{flex:1,backgroundColor:'#0F172A'},header:{padding:30,alignItems:'center'},title:{fontSize:40,fontWeight:'900',color:'#F8FAFC'},versionTag:{color:'#6366F1',fontSize:12,fontWeight:'700'},subtitle:{color:'#94A3B8',marginBottom:20},card:{backgroundColor:'#1E293B',margin:20,padding:20,borderRadius:20},sectionTitle:{color:'#F8FAFC',fontSize:18,fontWeight:'800',marginBottom:15},timerRow:{flexDirection:'row',gap:15,marginBottom:20},inputBox:{flex:1,backgroundColor:'#0F172A',padding:10,borderRadius:10,alignItems:'center'},label:{color:'#64748B',fontSize:10,fontWeight:'800'},input:{color:'#F8FAFC',fontSize:24,fontWeight:'900'},btn:{backgroundColor:'#6366F1',padding:18,borderRadius:15,alignItems:'center'},btnText:{color:'white',fontWeight:'900'},activeCard:{marginHorizontal:20,marginBottom:10,padding:15,borderRadius:12,borderLeftWidth:5,borderLeftColor:'#6366F1',backgroundColor:'#1E293B'},activeLabel:{color:'white',fontWeight:'700'},listSection:{padding:20},search:{backgroundColor:'#1E293B',color:'white',padding:15,borderRadius:15,marginBottom:20},appRow:{flexDirection:'row',alignItems:'center',marginBottom:15,opacity:1,backgroundColor:'#1E293B',padding:12,borderRadius:12},appRowReady:{opacity:1},appRowSelected:{backgroundColor:'#3730A3',borderWidth:2,borderColor:'#6366F1'},icon:{width:50,height:50,borderRadius:15,backgroundColor:'#334155',alignItems:'center',justifyContent:'center'},iconTxt:{color:'white',fontSize:20,fontWeight:'800'},appName:{color:'#F8FAFC',fontWeight:'700'},pkgName:{color:'#64748B',fontSize:10},tick:{width:30,height:30,borderRadius:15,borderWidth:2,borderColor:'#334155',alignItems:'center',justifyContent:'center'},tickTxt:{color:'white',fontWeight:'900'},dropdownRow:{flexDirection:'row',flexWrap:'wrap',gap:8,marginTop:8},hourChip:{width:42,height:38,borderRadius:10,backgroundColor:'#1E293B',borderWidth:1,borderColor:'#334155',alignItems:'center',justifyContent:'center'},hourChipSelected:{backgroundColor:'#D97706',borderColor:'#F59E0B'},hourChipText:{color:'#94A3B8',fontWeight:'800',fontSize:14},ampmBtn:{flex:1,padding:16,borderRadius:12,backgroundColor:'#1E293B',borderWidth:1,borderColor:'#334155',alignItems:'center'},ampmBtnSelected:{backgroundColor:'#D97706',borderColor:'#F59E0B'},ampmText:{color:'#94A3B8',fontWeight:'900',fontSize:16}});_e.default=function(){var e=(0,o.useState)(!1),c=(0,r.default)(e,2),u=c[0],h=c[1],p=(0,o.useState)([]),x=(0,r.default)(p,2),m=x[0],y=x[1],f=(0,o.useState)(!1),T=(0,r.default)(f,2),b=T[0],j=T[1],S=(0,o.useState)([]),C=(0,r.default)(S,2),A=C[0],k=C[1],w=(0,o.useState)(0),B=(0,r.default)(w,2),F=B[0],v=B[1],E=(0,o.useState)([]),R=(0,r.default)(E,2),I=R[0],O=R[1],P=(0,o.useState)(!1),V=(0,r.default)(P,2),W=V[0],M=V[1],z=(0,o.useState)(''),L=(0,r.default)(z,2),N=L[0],D=L[1],H=(0,o.useState)({overlay:!1,usage:!1,batteryOptimized:!1,exactAlarm:!0}),$=(0,r.default)(H,2),_=$[0],G=$[1],U=(0,o.useState)('0'),K=(0,r.default)(U,2),q=K[0],Y=K[1],X=(0,o.useState)('30'),Z=(0,r.default)(X,2),J=Z[0],Q=Z[1],ee=(0,o.useState)(!1),te=(0,r.default)(ee,2),re=te[0],oe=te[1],ne=(0,o.useState)('12'),ie=(0,r.default)(ne,2),ae=ie[0],le=ie[1],se=(0,o.useState)('PM'),ce=(0,r.default)(se,2),de=ce[0],ue=ce[1],he=(0,o.useState)(!1),ge=(0,r.default)(he,2),pe=ge[0],xe=ge[1];(0,o.useEffect)(()=>{ye(),me(),(0,_r(d[7]).startCategoryService)();var e=n.AppState.addEventListener('change',e=>{'active'===e&&(ye(),me())});return()=>e.remove()},[]);var me=(function(){var e=(0,t.default)(function*(){if(a?.getActiveTimers)try{var e=yield a.getActiveTimers();e&&e.length>0&&(console.log("Synced active timers:",e.length),y(t=>{var r=new Map;return e.forEach(e=>r.set(e.package,{package:e.package,name:e.name,durationSeconds:e.remainingSeconds,remainingSeconds:e.remainingSeconds,status:e.status})),Array.from(r.values())}))}catch(e){console.error("Failed to sync timers:",e)}});return function(){return e.apply(this,arguments)}})();(0,o.useEffect)(()=>{if(l){var e=new n.NativeEventEmitter(l);l.startListening();var t=e.addListener('TIMER_TICK',e=>{var t=e.package,r=e.appName,o=e.remaining,n=e.isBlocked;y(e=>e.some(e=>e.package===t)?e.map(e=>e.package===t?{...e,remainingSeconds:o,status:n?'blocked':'active'}:e):[...e,{package:t,name:r||t,durationSeconds:o,remainingSeconds:o,status:n?'blocked':'active'}])});return()=>{t.remove(),l.stopListening()}}},[]);var ye=(function(){var e=(0,t.default)(function*(){if(a?.checkPermissions){var e=yield a.checkPermissions();console.log("Permission Status:",e),G(e),e.overlay&&e.usage&&v(1)}});return function(){return e.apply(this,arguments)}})(),fe=(function(){var e=(0,t.default)(function*(){M(!0),console.log("Fetching apps...");try{if(a?.getInstalledApps){var e=yield a.getInstalledApps();console.log("Apps found:",e.length),O(e.filter(e=>'com.appguard2'!==e.package).sort((e,t)=>e.name.localeCompare(t.name)))}else console.error("LimitterModule.getInstalledApps is missing")}catch(e){console.error("Failed to load apps:",e),n.Alert.alert('Error','Failed to load app list: '+(e.message||e))}finally{M(!1)}});return function(){return e.apply(this,arguments)}})();(0,o.useEffect)(()=>{1===F&&fe()},[F]);var Te=(function(){var e=(0,t.default)(function*(){3600*(parseInt(q)||0)+(parseInt(J)||0)<=0?n.Alert.alert('Invalid Time','Please enter a valid duration.'):(oe(!0),a?.showNotification&&(yield a.showNotification("Your timer is set. Now select apps to limit.")))});return function(){return e.apply(this,arguments)}})(),be=(function(){var e=(0,t.default)(function*(){if(pe)if(0!==A.length){var e=parseInt(ae)||12;'AM'===de?12===e&&(e=0):12!==e&&(e+=12);var t=A.map(t=>({package:t.package,appName:t.name,hour:e,minute:0}));try{var r=yield a.startClockTimer({apps:t});console.log('Clock timer result:',r),n.Alert.alert('Success',`\ud83d\udd50 Clock timer set to ${ae}:00 ${de} for ${A.length} app(s)`),xe(!1),k([]),D('')}catch(e){console.error('Clock timer error:',e),n.Alert.alert('Error','Failed to start clock timer: '+(e.message||e))}}else n.Alert.alert('No Apps Selected','Please select at least one app.');else n.Alert.alert('Step Required','Please set the clock timer first.')});return function(){return e.apply(this,arguments)}})(),je=(function(){var e=(0,t.default)(function*(){if(re)if(0!==A.length){var e=3600*(parseInt(q)||0)+(parseInt(J)||0),t=A.map(t=>({...t,durationSeconds:e,remainingSeconds:e,status:'active'}));if(y(e=>[...e.filter(e=>!A.some(t=>t.package===e.package)),...t]),a?.sendCommand)try{var r=A.map(t=>({package:t.package,appName:t.name,duration:e.toString()}));yield a.sendCommand('START_TIMERS',{apps:r}),console.log(`\u2705 Started timers for ${A.length} apps`),n.Alert.alert('Success',`\u23f1 Timers started for ${A.length} app(s)`),oe(!1),k([]),D('')}catch(e){console.error("Failed to start timers:",e),n.Alert.alert('Error','Failed to start timers: '+e.message)}}else n.Alert.alert('No Apps Selected','Please select at least one app to limit.');else n.Alert.alert('Step 1 Required','Please set the timer above and click SAVE TIMER first.')});return function(){return e.apply(this,arguments)}})(),Se=(0,o.useMemo)(()=>I.filter(e=>e.name.toLowerCase().includes(N.toLowerCase())),[I,N]);return u?0===F?(0,i.jsxs)(n.View,{style:[s.container,{justifyContent:'center',padding:30}],children:[(0,i.jsx)(n.Text,{style:[s.title,{color:'#EF4444'}],children:"!!! ROOT APP ACTIVE !!!"}),(0,i.jsx)(n.Text,{style:s.title,children:"Permissions Needed"}),(0,i.jsx)(n.Text,{style:s.subtitle,children:"Overlay and Usage Access required."}),(0,i.jsx)(n.TouchableOpacity,{style:s.btn,onPress:()=>a?.checkAndRequestPermissions(),children:(0,i.jsx)(n.Text,{style:s.btnText,children:"GRANT PERMISSIONS"})}),(0,i.jsx)(n.TouchableOpacity,{style:[s.btn,{backgroundColor:'#334155',marginTop:10}],onPress:ye,children:(0,i.jsx)(n.Text,{style:s.btnText,children:"I'VE GRANTED THEM - REFRESH"})})]}):(0,i.jsxs)(n.SafeAreaView,{style:s.container,children:[(0,i.jsx)(n.StatusBar,{barStyle:"light-content",backgroundColor:"#0F172A"}),(0,i.jsx)(n.View,{style:s.header,children:(0,i.jsxs)(n.View,{style:{flexDirection:'row',justifyContent:'space-between',width:'100%',alignItems:'center'},children:[(0,i.jsxs)(n.View,{children:[(0,i.jsx)(n.Text,{style:{color:'#EF4444',fontWeight:'bold'},children:"!!! ROOT FILE RUNNING !!!"}),(0,i.jsx)(n.Text,{style:s.title,children:"NEW UIIIII"}),(0,i.jsx)(n.Text,{style:s.versionTag,children:"v2.0 Native Guard"})]}),(0,i.jsx)(n.TouchableOpacity,{style:{backgroundColor:'#E11D48',padding:8,borderRadius:10},onPress:()=>n.Alert.alert("Help & Settings","If your timer stops in the background:\n\n1. Disable Battery Optimization\n2. Allow Exact Alarms\n3. Ensure 'Auto-Start' is enabled (if available in phone settings).",[{text:"Open Background Settings",onPress:()=>j(!b)},{text:"OK"}]),children:(0,i.jsx)(n.Text,{style:{color:'white',fontWeight:'bold'},children:"HELP"})})]})}),(0,i.jsxs)(n.ScrollView,{contentContainerStyle:{paddingBottom:100},children:[(_.batteryOptimized||!_.exactAlarm||b)&&(0,i.jsxs)(n.View,{style:[s.card,{backgroundColor:'#7C2D12',borderColor:'#F59E0B',borderWidth:1}],children:[(0,i.jsx)(n.Text,{style:[s.sectionTitle,{color:'#FACC15'}],children:"\u26a0\ufe0f Background Performance"}),(0,i.jsx)(n.Text,{style:{color:'#FED7AA',marginBottom:15,fontSize:13},children:"Troubleshooting: If the timer stops, ensure these system permissions are granted for 100% reliability."}),(0,i.jsxs)(n.View,{children:[_.batteryOptimized&&(0,i.jsx)(n.TouchableOpacity,{style:[s.btn,{backgroundColor:'#EA580C',marginBottom:10}],onPress:()=>a?.requestBatteryOptimizationExemption(),children:(0,i.jsx)(n.Text,{style:s.btnText,children:"1. DISABLE BATTERY OPTIMIZATION"})}),!_.exactAlarm&&(0,i.jsx)(n.TouchableOpacity,{style:[s.btn,{backgroundColor:'#B45309',marginBottom:10}],onPress:()=>n.Linking.openSettings(),children:(0,i.jsx)(n.Text,{style:s.btnText,children:"2. ALLOW EXACT ALARMS"})}),b&&(0,i.jsx)(n.TouchableOpacity,{style:[s.btn,{backgroundColor:'#475569',marginTop:5}],onPress:()=>j(!1),children:(0,i.jsx)(n.Text,{style:s.btnText,children:"CLOSE HELP PANEL"})})]})]}),(0,i.jsxs)(n.View,{style:s.card,children:[(0,i.jsx)(n.Text,{style:s.sectionTitle,children:"1. Set Timer"}),(0,i.jsxs)(n.View,{style:s.timerRow,children:[(0,i.jsxs)(n.View,{style:s.inputBox,children:[(0,i.jsx)(n.Text,{style:s.label,children:"HRS"}),(0,i.jsx)(n.TextInput,{style:s.input,value:q,onChangeText:Y,keyboardType:"numeric"})]}),(0,i.jsxs)(n.View,{style:s.inputBox,children:[(0,i.jsx)(n.Text,{style:s.label,children:"SEC"}),(0,i.jsx)(n.TextInput,{style:s.input,value:J,onChangeText:Q,keyboardType:"numeric"})]})]}),(0,i.jsx)(n.TouchableOpacity,{style:[s.btn,re&&{backgroundColor:'#10B981'}],onPress:Te,children:(0,i.jsx)(n.Text,{style:s.btnText,children:re?"\u2713 TIMER SET":"SAVE TIMER"})})]}),(0,i.jsxs)(n.View,{style:s.card,children:[(0,i.jsx)(n.Text,{style:[s.sectionTitle,{color:'#F59E0B'}],children:"\ud83d\udd50 Clock Timer"}),(0,i.jsx)(n.Text,{style:{color:'#94A3B8',fontSize:12,marginBottom:15},children:"Block apps at a specific time of day"}),(0,i.jsxs)(n.View,{style:s.inputBox,children:[(0,i.jsx)(n.Text,{style:s.label,children:"SELECT HOUR"}),(0,i.jsx)(n.View,{style:s.dropdownRow,children:['1','2','3','4','5','6','7','8','9','10','11','12'].map(e=>(0,i.jsx)(n.TouchableOpacity,{style:[s.hourChip,ae===e&&s.hourChipSelected],onPress:()=>le(e),children:(0,i.jsx)(n.Text,{style:[s.hourChipText,ae===e&&{color:'#FFF'}],children:e})},e))})]}),(0,i.jsxs)(n.View,{style:[s.timerRow,{marginTop:15,marginBottom:20}],children:[(0,i.jsx)(n.TouchableOpacity,{style:[s.ampmBtn,'AM'===de&&s.ampmBtnSelected],onPress:()=>ue('AM'),children:(0,i.jsx)(n.Text,{style:[s.ampmText,'AM'===de&&{color:'#FFF'}],children:"AM"})}),(0,i.jsx)(n.TouchableOpacity,{style:[s.ampmBtn,'PM'===de&&s.ampmBtnSelected],onPress:()=>ue('PM'),children:(0,i.jsx)(n.Text,{style:[s.ampmText,'PM'===de&&{color:'#FFF'}],children:"PM"})})]}),(0,i.jsx)(n.TouchableOpacity,{style:[s.btn,{backgroundColor:'#D97706'},pe&&{backgroundColor:'#10B981'}],onPress:()=>{var e=parseInt(ae)||0;e<1||e>12?n.Alert.alert('Invalid Hour','Please select an hour between 1 and 12.'):xe(!0)},children:(0,i.jsx)(n.Text,{style:s.btnText,children:pe?`\u2713 CLOCK SET (${ae}:00 ${de})`:'SAVE CLOCK TIMER'})})]}),m.map(e=>{var t,r,o,a;return(0,i.jsx)(n.View,{style:[s.activeCard,'blocked'===e.status&&{borderColor:'#EF4444'}],children:(0,i.jsxs)(n.Text,{style:s.activeLabel,children:[e.name," - ",'blocked'===e.status?'BLOCKED \u26d4':(t=e.remainingSeconds,r=Math.floor(t/3600),o=Math.floor(t%3600/60),a=t%60,r>0?`${r}:${o.toString().padStart(2,'0')}:${a.toString().padStart(2,'0')}`:`${o}:${a.toString().padStart(2,'0')}`)+" remaining \u23f1"]})},e.package)}),(0,i.jsxs)(n.View,{style:s.card,children:[(0,i.jsx)(n.Text,{style:s.sectionTitle,children:"2. Select Apps"}),(0,i.jsxs)(n.Text,{style:s.subtitle,children:[A.length," app(s) selected"]}),(0,i.jsx)(n.TextInput,{style:s.search,placeholder:"Search apps...",placeholderTextColor:"#94A3B8",value:N,onChangeText:D}),W?(0,i.jsx)(n.ActivityIndicator,{color:"#6366F1"}):Se.map(e=>{var t=A.some(t=>t.package===e.package);return(0,i.jsxs)(n.TouchableOpacity,{style:[s.appRow,re&&s.appRowReady,t&&s.appRowSelected],onPress:()=>{return t=e,void k(e=>e.some(e=>e.package===t.package)?e.filter(e=>e.package!==t.package):[...e,t]);var t},children:[(0,i.jsx)(n.View,{style:[s.icon,t&&{backgroundColor:'#6366F1'}],children:(0,i.jsx)(n.Text,{style:s.iconTxt,children:e.name[0]})}),(0,i.jsxs)(n.View,{style:{flex:1,marginLeft:15},children:[(0,i.jsx)(n.Text,{style:s.appName,children:e.name}),(0,i.jsx)(n.Text,{style:s.pkgName,children:e.package})]}),(0,i.jsx)(n.View,{style:[s.tick,t&&{backgroundColor:'#6366F1'}],children:(0,i.jsx)(n.Text,{style:s.tickTxt,children:t?"\u2713":"+"})})]},e.package)}),A.length>0&&(0,i.jsxs)(n.View,{children:[(0,i.jsx)(n.TouchableOpacity,{style:[s.btn,{backgroundColor:'#8B5CF6',marginTop:20}],onPress:je,children:(0,i.jsxs)(n.Text,{style:s.btnText,children:["\u25b6 START DURATION TIMERS (",A.length,")"]})}),pe&&(0,i.jsx)(n.TouchableOpacity,{style:[s.btn,{backgroundColor:'#D97706',marginTop:10}],onPress:be,children:(0,i.jsxs)(n.Text,{style:s.btnText,children:["\ud83d\udd50 START CLOCK TIMERS (",A.length,")"]})})]})]})]})]}):(0,i.jsxs)(n.SafeAreaView,{style:{flex:1,backgroundColor:'#FFFFFF'},children:[(0,i.jsx)(n.StatusBar,{barStyle:"dark-content",backgroundColor:"#FFFFFF"}),(0,i.jsxs)(n.ScrollView,{contentContainerStyle:{padding:24,paddingBottom:100},children:[(0,i.jsx)(n.View,{style:{backgroundColor:'#ECFDF5',padding:12,borderRadius:12,marginBottom:40,borderWidth:1,borderColor:'#10B981'},children:(0,i.jsx)(n.Text,{style:{color:'#065F46',fontSize:13,fontWeight:'800',textAlign:'center',letterSpacing:1},children:"SHIELD ACTIVE \u2022 ROOT FILE RESOLVED \u2705"})}),(0,i.jsxs)(n.View,{style:{alignItems:'center',marginBottom:48},children:[(0,i.jsx)(n.View,{style:{width:80,height:80,borderRadius:40,backgroundColor:'#10B981',alignItems:'center',justifyContent:'center',marginBottom:24,shadowColor:'#10B981',shadowOffset:{width:0,height:8},shadowOpacity:.3,shadowRadius:12,elevation:8},children:(0,i.jsx)(n.Text,{style:{fontSize:40},children:"\ud83d\udee1\ufe0f"})}),(0,i.jsx)(n.Text,{style:{fontSize:24,fontWeight:'900',color:'#0F172A',textAlign:'center',marginBottom:12},children:"Login / Signup"}),(0,i.jsx)(n.Text,{style:{fontSize:16,color:'#64748B',textAlign:'center',lineHeight:24,paddingHorizontal:20},children:"Welcome back. Monitor and protect your family's digital journey."})]}),(0,i.jsxs)(n.View,{style:{marginBottom:32},children:[(0,i.jsx)(_r(d[8]).TextInput,{label:"Username",placeholder:"Enter your username",autoCapitalize:"none"}),(0,i.jsx)(_r(d[8]).TextInput,{label:"Password",placeholder:"Enter your password",secureTextEntry:!0}),(0,i.jsx)(n.TouchableOpacity,{style:{alignSelf:'flex-end',marginTop:-8},children:(0,i.jsx)(n.Text,{style:{color:'#10B981',fontWeight:'700',fontSize:14},children:"Forgot password?"})})]}),(0,i.jsx)(_r(d[8]).BaseButton,{variant:"primary",fullWidth:!0,onPress:()=>{},style:{marginBottom:24},children:"Sign In"}),(0,i.jsxs)(n.View,{style:{flexDirection:'row',alignItems:'center',marginBottom:24},children:[(0,i.jsx)(n.View,{style:{flex:1,height:1,backgroundColor:'#E2E8F0'}}),(0,i.jsx)(n.Text,{style:{marginHorizontal:16,color:'#94A3B8',fontSize:12,fontWeight:'700'},children:"OR CONTINUE WITH"}),(0,i.jsx)(n.View,{style:{flex:1,height:1,backgroundColor:'#E2E8F0'}})]}),(0,i.jsxs)(n.View,{style:{flexDirection:'row',gap:12,marginBottom:40},children:[(0,i.jsxs)(n.TouchableOpacity,{style:{flex:1,height:56,borderRadius:999,borderWidth:1.5,borderColor:'#E2E8F0',alignItems:'center',justifyContent:'center',flexDirection:'row',gap:8},children:[(0,i.jsx)(n.Text,{style:{fontSize:18},children:"G"}),(0,i.jsx)(n.Text,{style:{fontWeight:'700',color:'#0F172A'},children:"Google"})]}),(0,i.jsxs)(n.TouchableOpacity,{style:{flex:1,height:56,borderRadius:999,borderWidth:1.5,borderColor:'#E2E8F0',alignItems:'center',justifyContent:'center',flexDirection:'row',gap:8},children:[(0,i.jsx)(n.Text,{style:{fontSize:18},children:"\uf8ff"}),(0,i.jsx)(n.Text,{style:{fontWeight:'700',color:'#0F172A'},children:"Apple"})]})]}),(0,i.jsxs)(n.Text,{style:{textAlign:'center',color:'#64748B'},children:["Don't have an account? ",(0,i.jsx)(n.Text,{style:{color:'#10B981',fontWeight:'800'},children:"Create one"})]}),(0,i.jsx)(n.View,{style:{height:60}}),(0,i.jsx)(n.View,{style:{height:1,backgroundColor:'#F1F5F9',marginBottom:40}}),(0,i.jsx)(n.Text,{style:{fontSize:18,fontWeight:'900',color:'#0F172A',marginBottom:24},children:"\ud83c\udfa8 Component Showcase"}),(0,i.jsxs)(n.View,{style:{backgroundColor:'#F8FAFC',padding:20,borderRadius:24,marginBottom:20},children:[(0,i.jsx)(n.Text,{style:{color:'#64748B',fontSize:12,fontWeight:'800',marginBottom:16,textTransform:'uppercase'},children:"Variations"}),(0,i.jsxs)(n.View,{style:{gap:12},children:[(0,i.jsx)(_r(d[8]).BaseButton,{variant:"outline",children:"Outline Button"}),(0,i.jsx)(_r(d[8]).BaseButton,{variant:"danger",children:"Danger Action"}),(0,i.jsx)(_r(d[8]).BaseButton,{variant:"ghost",children:"Secondary Ghost"})]})]}),(0,i.jsxs)(n.View,{style:{backgroundColor:'#F8FAFC',padding:20,borderRadius:24,marginBottom:20},children:[(0,i.jsx)(n.Text,{style:{color:'#64748B',fontSize:12,fontWeight:'800',marginBottom:16,textTransform:'uppercase'},children:"Selection"}),(0,i.jsx)(_r(d[8]).RadioGroup,{options:[{label:'Standard Protection',value:'a',description:'Real-time app blocking'},{label:'Elite Guardian',value:'b',description:'Advanced category analytics'}],value:"a",onChange:()=>{}})]}),(0,i.jsxs)(n.View,{style:{backgroundColor:'#F8FAFC',padding:20,borderRadius:24,marginBottom:40},children:[(0,i.jsx)(n.Text,{style:{color:'#64748B',fontSize:12,fontWeight:'800',marginBottom:16,textTransform:'uppercase'},children:"Alert System"}),(0,i.jsx)(_r(d[8]).Alert,{variant:"warning",title:"Privacy Notice",children:"Accessibility service is used for URL detection only."})]}),(0,i.jsx)(n.TouchableOpacity,{style:{backgroundColor:'#0F172A',padding:20,borderRadius:999,alignItems:'center',marginTop:10},onPress:()=>h(!0),children:(0,i.jsx)(n.Text,{style:{color:'white',fontSize:16,fontWeight:'900'},children:"\ud83d\ude80 PROCEED TO MAIN DASHBOARD"})})]})]})}},495,[1,350,32,69,2,496,238,510,497]);
-__d(function(g,_r,_i,a,m,_e,d){var e=_r(d[0]);Object.defineProperty(_e,"__esModule",{value:!0}),_e.default=void 0;var t=e(_r(d[1])),n=(function(e,t){if("function"==typeof WeakMap)var n=new WeakMap,i=new WeakMap;return(function(e,t){if(!t&&e&&e.__esModule)return e;var r,s,o={__proto__:null,default:e};if(null===e||"object"!=typeof e&&"function"!=typeof e)return o;if(r=t?i:n){if(r.has(e))return r.get(e);r.set(e,o)}for(var l in e)"default"!==l&&{}.hasOwnProperty.call(e,l)&&((s=(r=Object.defineProperty)&&Object.getOwnPropertyDescriptor(e,l))&&(s.get||s.set)?r(o,l,s):o[l]=e[l]);return o})(e,t)})(_r(d[2])),i=_r(d[3]),r=_r(d[4]);var s=i.StyleSheet.create({safeArea:{flex:1,backgroundColor:'#f8fafc'},container:{flex:1},content:{padding:20,paddingBottom:60},header:{marginBottom:32,marginTop:10},pageTitle:{fontSize:28,fontWeight:'800',color:'#0f172a',letterSpacing:-.5},pageSubtitle:{fontSize:16,color:'#64748b',marginTop:4},section:{marginBottom:28},sectionHeader:{fontSize:12,fontWeight:'700',color:'#94a3b8',letterSpacing:1.5,marginBottom:12,paddingLeft:4},componentCard:{backgroundColor:'#ffffff',padding:18,borderRadius:16,borderWidth:1,borderColor:'#e2e8f0',gap:12,shadowColor:'#000',shadowOffset:{width:0,height:2},shadowOpacity:.05,shadowRadius:10,elevation:2},row:{flexDirection:'row',gap:12},flex1:{flex:1},mb12:{marginBottom:12},modalText:{fontSize:14,color:'#475569',lineHeight:20},footer:{marginTop:20,alignItems:'center',opacity:.5},footerText:{fontSize:12,fontWeight:'600',color:'#64748b'}});_e.default=()=>{var e=(0,n.useState)(''),o=(0,t.default)(e,2),l=o[0],c=o[1],h=(0,n.useState)(''),x=(0,t.default)(h,2),u=x[0],f=x[1],p=(0,n.useState)('option1'),y=(0,t.default)(p,2),j=y[0],w=y[1],v=(0,n.useState)(!1),T=(0,t.default)(v,2),S=T[0],b=T[1];return(0,r.jsx)(i.SafeAreaView,{style:s.safeArea,children:(0,r.jsxs)(i.ScrollView,{style:s.container,contentContainerStyle:s.content,children:[(0,r.jsxs)(i.View,{style:s.header,children:[(0,r.jsx)(i.Text,{style:s.pageTitle,children:"Component Library"}),(0,r.jsx)(i.Text,{style:s.pageSubtitle,children:"Testing UI Elements for AppGuard2"})]}),(0,r.jsxs)(i.View,{style:s.section,children:[(0,r.jsx)(i.Text,{style:s.sectionHeader,children:"BUTTONS"}),(0,r.jsxs)(i.View,{style:s.componentCard,children:[(0,r.jsxs)(i.View,{style:s.row,children:[(0,r.jsx)(_r(d[5]).BaseButton,{variant:"primary",style:s.flex1,onPress:()=>i.Alert.alert("Primary Action"),children:"Primary"}),(0,r.jsx)(_r(d[5]).BaseButton,{variant:"secondary",style:s.flex1,children:"Secondary"})]}),(0,r.jsxs)(i.View,{style:s.row,children:[(0,r.jsx)(_r(d[5]).BaseButton,{variant:"outline",style:s.flex1,children:"Outline"}),(0,r.jsx)(_r(d[5]).BaseButton,{variant:"danger",style:s.flex1,children:"Danger"})]}),(0,r.jsx)(_r(d[5]).BaseButton,{variant:"ghost",fullWidth:!0,children:"Ghost Variant (Text only)"}),(0,r.jsx)(_r(d[5]).BaseButton,{variant:"primary",isLoading:!0,fullWidth:!0,children:"Loading State"})]})]}),(0,r.jsxs)(i.View,{style:s.section,children:[(0,r.jsx)(i.Text,{style:s.sectionHeader,children:"INPUTS"}),(0,r.jsxs)(i.View,{style:s.componentCard,children:[(0,r.jsx)(_r(d[5]).TextInput,{label:"Standard Input",placeholder:"e.g. John Doe",value:l,onChangeText:c}),(0,r.jsx)(_r(d[5]).TextInput,{label:"Input with Error",value:"Invalid email",error:"Please enter a valid email address"}),(0,r.jsx)(_r(d[5]).TextInput,{label:"Password Field",placeholder:"Enter your password",value:u,onChangeText:f,secureTextEntry:!0})]})]}),(0,r.jsxs)(i.View,{style:s.section,children:[(0,r.jsx)(i.Text,{style:s.sectionHeader,children:"RADIO SELECTORS"}),(0,r.jsx)(i.View,{style:s.componentCard,children:(0,r.jsx)(_r(d[5]).RadioGroup,{options:[{label:'Visa ending in 4242',value:'option1',description:'Expires 12/26'},{label:'Mastercard ending in 1234',value:'option2',description:'Expires 08/25'},{label:'Add New Card',value:'option3',disabled:!0}],value:j,onChange:e=>w(e)})})]}),(0,r.jsxs)(i.View,{style:s.section,children:[(0,r.jsx)(i.Text,{style:s.sectionHeader,children:"ALERTS & FEEDBACK"}),(0,r.jsxs)(i.View,{style:s.componentCard,children:[(0,r.jsx)(_r(d[5]).Alert,{variant:"info",title:"Information",style:s.mb12,children:"This is a standard informational message for the user."}),(0,r.jsx)(_r(d[5]).Alert,{variant:"warning",title:"Security Warning",style:s.mb12,children:"Your device has 30 mins of homework time left."}),(0,r.jsx)(_r(d[5]).Alert,{variant:"success",title:"Success",children:"Payment confirmed successfully!"})]})]}),(0,r.jsxs)(i.View,{style:s.section,children:[(0,r.jsx)(i.Text,{style:s.sectionHeader,children:"ICONS"}),(0,r.jsxs)(i.View,{style:[s.componentCard,s.row,{justifyContent:'space-around'}],children:[(0,r.jsx)(_r(d[5]).Icon,{size:"sm",children:"\ud83d\udd12"}),(0,r.jsx)(_r(d[5]).Icon,{size:"md",children:"\u26a1"}),(0,r.jsx)(_r(d[5]).Icon,{size:"lg",children:"\ud83e\udde0"}),(0,r.jsx)(_r(d[5]).Icon,{size:32,style:{color:'#2563eb'},children:"\uf8ff"}),(0,r.jsx)(_r(d[5]).Icon,{size:32,style:{color:'#ea4335'},children:"G"})]})]}),(0,r.jsxs)(i.View,{style:s.section,children:[(0,r.jsx)(i.Text,{style:s.sectionHeader,children:"MODALS"}),(0,r.jsxs)(i.View,{style:s.componentCard,children:[(0,r.jsx)(_r(d[5]).BaseButton,{variant:"outline",fullWidth:!0,onPress:()=>b(!0),children:"Preview Modal"}),(0,r.jsx)(_r(d[5]).BaseModal,{isOpen:S,onClose:()=>b(!1),title:"Override Configuration",subtitle:"Configure how long you want to unlock the device.",headerLabel:"System Settings",children:(0,r.jsxs)(i.View,{style:{gap:16},children:[(0,r.jsx)(i.Text,{style:s.modalText,children:"This is a preview of the BaseModal component. It supports titles, subtitles, and custom header labels."}),(0,r.jsx)(_r(d[5]).TextInput,{label:"Quick Adjust (mins)",placeholder:"30"}),(0,r.jsxs)(i.View,{style:s.row,children:[(0,r.jsx)(_r(d[5]).BaseButton,{variant:"outline",style:s.flex1,onPress:()=>b(!1),children:"Cancel"}),(0,r.jsx)(_r(d[5]).BaseButton,{variant:"primary",style:s.flex1,onPress:()=>b(!1),children:"Save"})]})]})})]})]}),(0,r.jsx)(i.View,{style:s.footer,children:(0,r.jsx)(i.Text,{style:s.footerText,children:"AppGuard2 \u2022 v2.0.0"})})]})})}},496,[1,32,69,2,238,497]);
-__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),Object.keys(r(d[0])).forEach(function(n){"default"!==n&&"__esModule"!==n&&(n in e&&e[n]===r(d[0])[n]||Object.defineProperty(e,n,{enumerable:!0,get:function(){return r(d[0])[n]}}))}),Object.keys(r(d[1])).forEach(function(n){"default"!==n&&"__esModule"!==n&&(n in e&&e[n]===r(d[1])[n]||Object.defineProperty(e,n,{enumerable:!0,get:function(){return r(d[1])[n]}}))}),Object.keys(r(d[2])).forEach(function(n){"default"!==n&&"__esModule"!==n&&(n in e&&e[n]===r(d[2])[n]||Object.defineProperty(e,n,{enumerable:!0,get:function(){return r(d[2])[n]}}))}),Object.keys(r(d[3])).forEach(function(n){"default"!==n&&"__esModule"!==n&&(n in e&&e[n]===r(d[3])[n]||Object.defineProperty(e,n,{enumerable:!0,get:function(){return r(d[3])[n]}}))}),Object.keys(r(d[4])).forEach(function(n){"default"!==n&&"__esModule"!==n&&(n in e&&e[n]===r(d[4])[n]||Object.defineProperty(e,n,{enumerable:!0,get:function(){return r(d[4])[n]}}))}),Object.keys(r(d[5])).forEach(function(n){"default"!==n&&"__esModule"!==n&&(n in e&&e[n]===r(d[5])[n]||Object.defineProperty(e,n,{enumerable:!0,get:function(){return r(d[5])[n]}}))})},497,[498,500,502,504,506,508]);
-__d(function(g,_r,_i,a,m,_e,d){Object.defineProperty(_e,"__esModule",{value:!0});var e={};Object.defineProperty(_e,"default",{enumerable:!0,get:function(){return t.default}});var t=(function(e,t){if("function"==typeof WeakMap)var r=new WeakMap,n=new WeakMap;return(function(e,t){if(!t&&e&&e.__esModule)return e;var o,u,f={__proto__:null,default:e};if(null===e||"object"!=typeof e&&"function"!=typeof e)return f;if(o=t?n:r){if(o.has(e))return o.get(e);o.set(e,f)}for(var c in e)"default"!==c&&{}.hasOwnProperty.call(e,c)&&((u=(o=Object.defineProperty)&&Object.getOwnPropertyDescriptor(e,c))&&(u.get||u.set)?o(f,c,u):f[c]=e[c]);return f})(e,t)})(_r(d[0]));Object.keys(t).forEach(function(r){"default"!==r&&"__esModule"!==r&&(Object.prototype.hasOwnProperty.call(e,r)||r in _e&&_e[r]===t[r]||Object.defineProperty(_e,r,{enumerable:!0,get:function(){return t[r]}}))})},498,[499]);
-__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.default=e.BaseButton=void 0;t(r(d[1]));var o=r(d[2]),s=r(d[3]),n=({children:t,variant:n="primary",size:u="md",fullWidth:h=!1,isLoading:c=!1,leftIcon:p,rightIcon:y,disabled:B=!1,onPress:x,style:F})=>{var b=[l.base],f=[l.textBase];return'primary'===n?(b.push(l.primaryBg),f.push(l.primaryText)):'secondary'===n?(b.push(l.secondaryBg),f.push(l.secondaryText)):'outline'===n?(b.push(l.outlineBg),f.push(l.outlineText)):'danger'===n?(b.push(l.dangerBg),f.push(l.dangerText)):'ghost'===n&&(b.push(l.ghostBg),f.push(l.ghostText)),'sm'===u?b.push(l.sizeSm):'md'===u?b.push(l.sizeMd):'lg'===u&&b.push(l.sizeLg),h&&b.push(l.fullWidth),(B||c)&&b.push(l.disabled),(0,s.jsxs)(o.TouchableOpacity,{style:[b,F],disabled:B||c,onPress:x,activeOpacity:.7,children:[c?(0,s.jsx)(o.ActivityIndicator,{color:f[1]?.color||'#fff',style:{marginRight:8}}):null,!c&&p?p:null,'string'==typeof t||Array.isArray(t)?(0,s.jsx)(o.Text,{style:f,children:t}):t,!c&&y?y:null]})};e.BaseButton=n;var l=o.StyleSheet.create({base:{flexDirection:'row',alignItems:'center',justifyContent:'center',borderRadius:999},textBase:{fontWeight:'700',letterSpacing:-.5},primaryBg:{backgroundColor:'#10B981'},primaryText:{color:'#FFFFFF'},secondaryBg:{backgroundColor:'#F3F4F6'},secondaryText:{color:'#0F172A'},outlineBg:{backgroundColor:'transparent',borderWidth:2,borderColor:'#10B981'},outlineText:{color:'#10B981'},dangerBg:{backgroundColor:'#EF4444'},dangerText:{color:'#FFFFFF'},ghostBg:{backgroundColor:'transparent'},ghostText:{color:'#64748B'},sizeSm:{height:40,paddingHorizontal:16},sizeMd:{height:56,paddingHorizontal:24},sizeLg:{height:64,paddingHorizontal:32},fullWidth:{width:'100%'},disabled:{opacity:.5}});e.default=n},499,[1,69,2,238]);
-__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),Object.keys(r(d[0])).forEach(function(n){"default"!==n&&"__esModule"!==n&&(n in e&&e[n]===r(d[0])[n]||Object.defineProperty(e,n,{enumerable:!0,get:function(){return r(d[0])[n]}}))})},500,[501]);
-__d(function(g,_r,_i,a,m,_e,d){var e=_r(d[0]);Object.defineProperty(_e,"__esModule",{value:!0}),_e.TextInput=void 0;var t=e(_r(d[1])),r=(function(e,t){if("function"==typeof WeakMap)var r=new WeakMap,n=new WeakMap;return(function(e,t){if(!t&&e&&e.__esModule)return e;var o,i,l={__proto__:null,default:e};if(null===e||"object"!=typeof e&&"function"!=typeof e)return l;if(o=t?n:r){if(o.has(e))return o.get(e);o.set(e,l)}for(var u in e)"default"!==u&&{}.hasOwnProperty.call(e,u)&&((i=(o=Object.defineProperty)&&Object.getOwnPropertyDescriptor(e,u))&&(i.get||i.set)?o(l,u,i):l[u]=e[u]);return l})(e,t)})(_r(d[2])),n=_r(d[3]),o=_r(d[4]);(_e.TextInput=(0,r.forwardRef)(({label:e,error:l,style:u,secureTextEntry:p,...s},c)=>{var f=(0,r.useState)(!1),y=(0,t.default)(f,2),h=y[0],x=y[1],T=p&&!h;return(0,o.jsxs)(n.View,{style:i.container,children:[e&&(0,o.jsx)(n.Text,{style:i.label,children:e}),(0,o.jsxs)(n.View,{style:i.inputWrapper,children:[(0,o.jsx)(n.TextInput,{ref:c,style:[i.input,l?i.inputError:i.inputNormal,p&&{paddingRight:60},u],secureTextEntry:!!T,placeholderTextColor:"#94A3B8",...s}),p&&(0,o.jsx)(n.TouchableOpacity,{style:i.eyeButton,onPress:()=>x(!h),activeOpacity:.6,children:(0,o.jsx)(n.Text,{style:i.eyeText,children:h?'Hide':'Show'})})]}),l&&(0,o.jsx)(n.Text,{style:i.errorText,children:l})]})})).displayName='TextInput';var i=n.StyleSheet.create({container:{width:'100%',marginBottom:16},label:{fontSize:13,fontWeight:'700',color:'#64748B',marginBottom:8,marginLeft:4,textTransform:'uppercase',letterSpacing:.5},inputWrapper:{width:'100%',justifyContent:'center'},input:{height:56,width:'100%',borderWidth:1.5,borderRadius:16,paddingHorizontal:16,fontSize:15,color:'#0F172A',backgroundColor:'#F8FAFC'},inputNormal:{borderColor:'#E2E8F0'},inputError:{borderColor:'#EF4444'},eyeButton:{position:'absolute',right:16,height:'100%',justifyContent:'center',paddingHorizontal:8},eyeText:{color:'#10B981',fontSize:12,fontWeight:'800',textTransform:'uppercase'},errorText:{marginTop:6,fontSize:12,color:'#EF4444',marginLeft:4}})},501,[1,32,69,2,238]);
-__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),Object.keys(r(d[0])).forEach(function(n){"default"!==n&&"__esModule"!==n&&(n in e&&e[n]===r(d[0])[n]||Object.defineProperty(e,n,{enumerable:!0,get:function(){return r(d[0])[n]}}))})},502,[503]);
-__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.BaseModal=void 0;t(r(d[1]));var o=r(d[2]),l=r(d[3]);e.BaseModal=({isOpen:t,onClose:s,title:h,subtitle:c,headerLabel:f,showCloseButton:x=!0,children:y})=>(0,l.jsx)(o.Modal,{visible:t,transparent:!0,animationType:"fade",onRequestClose:s,children:(0,l.jsx)(o.TouchableWithoutFeedback,{onPress:s,children:(0,l.jsx)(o.View,{style:n.overlay,children:(0,l.jsx)(o.TouchableWithoutFeedback,{onPress:()=>{},children:(0,l.jsxs)(o.View,{style:n.modalContainer,children:[(h||c||f||x)&&(0,l.jsxs)(o.View,{style:n.header,children:[(0,l.jsxs)(o.View,{style:n.headerTop,children:[(0,l.jsxs)(o.View,{style:n.titleContainer,children:[f&&(0,l.jsx)(o.Text,{style:n.headerLabel,children:f}),h&&('string'==typeof h||Array.isArray(h))?(0,l.jsx)(o.Text,{style:n.title,children:h}):h]}),x&&(0,l.jsx)(o.TouchableOpacity,{onPress:s,style:n.closeBtn,children:(0,l.jsx)(o.Text,{style:n.closeBtnText,children:"\u2715"})})]}),c&&(0,l.jsx)(o.Text,{style:n.subtitle,children:c})]}),(0,l.jsx)(o.View,{style:n.body,children:y})]})})})})});var n=o.StyleSheet.create({overlay:{flex:1,backgroundColor:'rgba(0, 0, 0, 0.5)',justifyContent:'center',alignItems:'center',padding:20},modalContainer:{width:'100%',maxWidth:400,backgroundColor:'#ffffff',borderRadius:16,overflow:'hidden',shadowColor:'#000',shadowOffset:{width:0,height:10},shadowOpacity:.15,shadowRadius:20,elevation:8},header:{padding:20,paddingBottom:16,borderBottomWidth:1,borderBottomColor:'#f3f4f6'},headerTop:{flexDirection:'row',justifyContent:'space-between',alignItems:'flex-start'},titleContainer:{flex:1},headerLabel:{fontSize:12,fontWeight:'700',color:'#2563eb',textTransform:'uppercase',marginBottom:4},title:{fontSize:20,fontWeight:'700',color:'#111827'},closeBtn:{padding:4,marginLeft:16},closeBtnText:{fontSize:20,color:'#9ca3af',fontWeight:'500'},subtitle:{marginTop:6,fontSize:14,color:'#6b7280'},body:{padding:20,maxHeight:500}})},503,[1,69,2,238]);
-__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),Object.keys(r(d[0])).forEach(function(n){"default"!==n&&"__esModule"!==n&&(n in e&&e[n]===r(d[0])[n]||Object.defineProperty(e,n,{enumerable:!0,get:function(){return r(d[0])[n]}}))})},504,[505]);
-__d(function(g,r,i,a,m,e,d){var o=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.RadioGroup=void 0;o(r(d[1]));var t=r(d[2]),l=r(d[3]);e.RadioGroup=({options:o,value:c,onChange:s,orientation:f="vertical",error:h,style:C})=>(0,l.jsxs)(t.View,{style:C,children:[(0,l.jsx)(t.View,{style:'vertical'===f?n.verticalContainer:n.horizontalContainer,children:o.map(o=>{var f=c===o.value;return(0,l.jsxs)(t.TouchableOpacity,{disabled:o.disabled,style:[n.optionContainer,o.disabled&&n.disabled],onPress:()=>s(o.value),activeOpacity:.7,children:[(0,l.jsx)(t.View,{style:[n.radioCircle,f&&n.radioChecked,h&&!f&&n.radioError],children:f&&(0,l.jsx)(t.View,{style:n.radioInnerCircle})}),(0,l.jsxs)(t.View,{style:n.textContainer,children:[(0,l.jsx)(t.Text,{style:[n.label,f&&n.labelChecked],children:o.label}),o.description&&(0,l.jsx)(t.Text,{style:n.description,children:o.description})]})]},o.value)})}),h&&(0,l.jsx)(t.Text,{style:n.errorText,children:h})]});var n=t.StyleSheet.create({verticalContainer:{flexDirection:'column',gap:16},horizontalContainer:{flexDirection:'row',gap:24,flexWrap:'wrap'},optionContainer:{flexDirection:'row',alignItems:'flex-start',marginBottom:4},disabled:{opacity:.5},radioCircle:{width:22,height:22,borderRadius:11,borderWidth:2,borderColor:'#d1d5db',alignItems:'center',justifyContent:'center',marginTop:2,backgroundColor:'#ffffff'},radioChecked:{borderColor:'#10B981',backgroundColor:'#10B981'},radioError:{borderColor:'#EF4444'},radioInnerCircle:{width:8,height:8,borderRadius:4,backgroundColor:'#ffffff'},textContainer:{marginLeft:12,flex:1},label:{fontSize:15,fontWeight:'600',color:'#0F172A'},labelChecked:{color:'#0F172A'},description:{fontSize:14,color:'#64748B',marginTop:2},errorText:{marginTop:6,fontSize:12,color:'#ef4444'}})},505,[1,69,2,238]);
-__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),Object.keys(r(d[0])).forEach(function(n){"default"!==n&&"__esModule"!==n&&(n in e&&e[n]===r(d[0])[n]||Object.defineProperty(e,n,{enumerable:!0,get:function(){return r(d[0])[n]}}))})},506,[507]);
-__d(function(g,r,i,a,m,e,d){var t=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.Alert=void 0;t(r(d[1]));var o=r(d[2]),n=r(d[3]),f={default:{bg:'#ffffff',border:'#e5e7eb',text:'#111827',icon:'\ud83d\udcdd'},success:{bg:'#f0fdf4',border:'#bbf7d0',text:'#14532d',icon:'\u2705'},warning:{bg:'#fffbeb',border:'#fde68a',text:'#78350f',icon:'\u26a0\ufe0f'},error:{bg:'#fef2f2',border:'#fecaca',text:'#7f1d1d',icon:'\u274c'},info:{bg:'#eff6ff',border:'#bfdbfe',text:'#1e3a8a',icon:'\u2139\ufe0f'}};e.Alert=({variant:t="default",title:c,children:b,style:s})=>{var x=f[t]||f.default;return(0,n.jsxs)(o.View,{style:[l.container,{backgroundColor:x.bg,borderColor:x.border},s],children:[(0,n.jsx)(o.Text,{style:l.icon,children:x.icon}),(0,n.jsxs)(o.View,{style:l.content,children:[c?(0,n.jsx)(o.Text,{style:[l.title,{color:x.text}],children:c}):null,'string'==typeof b||Array.isArray(b)?(0,n.jsx)(o.Text,{style:[l.message,{color:x.text}],children:b}):b]})]})};var l=o.StyleSheet.create({container:{flexDirection:'row',padding:16,borderRadius:8,borderWidth:1,width:'100%'},icon:{fontSize:18,marginRight:12,marginTop:2},content:{flex:1},title:{fontSize:16,fontWeight:'600',marginBottom:4},message:{fontSize:14,lineHeight:20,opacity:.9}})},507,[1,69,2,238]);
-__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),Object.keys(r(d[0])).forEach(function(n){"default"!==n&&"__esModule"!==n&&(n in e&&e[n]===r(d[0])[n]||Object.defineProperty(e,n,{enumerable:!0,get:function(){return r(d[0])[n]}}))})},508,[509]);
-__d(function(g,r,i,a,m,e,d){var n=r(d[0]);Object.defineProperty(e,"__esModule",{value:!0}),e.Icon=void 0;n(r(d[1]));var t=r(d[2]),o=r(d[3]),c={sm:16,md:20,lg:24},l=({size:n="md",style:l,children:v,...y})=>{var u='number'==typeof n?n:c[n];return(0,o.jsx)(t.Text,{style:[{fontSize:u},s.icon,l],...y,children:v})};e.Icon=l,l.displayName='Icon';var s=t.StyleSheet.create({icon:{}})},509,[1,69,2,238]);
-__d(function(g,r,i,a,m,_e,d){var e=r(d[0]);Object.defineProperty(_e,"__esModule",{value:!0}),_e.startCategoryService=void 0;var o=e(r(d[1])),t=r(d[2]),l=t.NativeModules.CategoryTrackerModule,n=new t.NativeEventEmitter(l),c=null,v=null;_e.startCategoryService=()=>{l?(l.startTracking(),setInterval((0,o.default)(function*(){try{(yield l.isServiceEnabled())?l.logToNative("\u2705 Service Status: ENABLED"):l.logToNative("\u26a0\ufe0f ACCESSIBILITY SERVICE IS OFF - Please enable it in Settings!")}catch(e){}}),5e3),n.addListener('onForegroundChange',e=>{var o=e.packageName,t=e.url;l.logToNative(`[JS] Detecting: Pkg=${o}, URL=${t}`);var n=null;if(t&&('com.android.chrome'===o||'com.microsoft.emmx'===o))for(var v in r(d[3]).categoryMap)if(!v.startsWith('com.')&&t.toLowerCase().includes(v.toLowerCase())){n=v;break}!n&&r(d[3]).categoryMap[o]&&(n=o),n!==c&&(l.logToNative(`[JS] Switch: ${c} -> ${n}`),c=n,s())}),l.logToNative("[JS] Category Service Initialized")):console.error("CategoryTrackerModule not found.")};var s=()=>{v&&(clearInterval(v),v=null);var e=c?r(d[3]).categoryMap[c]:null;if(e){if(l.logToNative(`Active tracking for category: ${e}`),(0,r(d[4]).isCategoryBlocked)(e))return l.logToNative(`Category ${e} is ALREADY blocked.`),void l.triggerBlock(e);v=setInterval(()=>{var o=(0,r(d[4]).incrementCategoryTime)(e);l.logToNative(`Time for ${e}: ${o}s`),(0,r(d[4]).isCategoryBlocked)(e)&&(l.logToNative(`Limit REACHED for ${e}. Triggering block.`),l.triggerBlock(e),clearInterval(v),v=null)},1e3)}else l.logToNative("No tracked item in foreground. Timer cleared.")}},510,[1,350,2,511,512]);
-__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.categoryMap=e.CATEGORY_LIMIT=void 0;e.categoryMap={"com.facebook.katana":"Social Media","com.instagram.android":"Social Media","com.twitter.android":"Social Media","google.com":"Social Media","twitter.com":"Social Media","facebook.com":"Social Media","instagram.com":"Social Media","x.com":"Social Media"},e.CATEGORY_LIMIT=3},511,[]);
-__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.isCategoryBlocked=e.incrementCategoryTime=e.getCategoryTime=void 0;var o={"Social Media":0};e.incrementCategoryTime=t=>void 0!==o[t]?(o[t]+=1,o[t]):0;e.isCategoryBlocked=t=>(o[t]||0)>=r(d[0]).CATEGORY_LIMIT;e.getCategoryTime=t=>o[t]||0},512,[511]);
-__d(function(p,a,d,e,n,r,u){n.exports={name:"AppGuard2",displayName:"AppGuard2"}},513,[]);
+__d(function(g,_r,_i,_a,_m,_e,d){var e=_r(d[0]);Object.defineProperty(_e,"__esModule",{value:!0}),_e.default=void 0;var t=e(_r(d[1])),r=e(_r(d[2])),o=(function(e,t){if("function"==typeof WeakMap)var r=new WeakMap,o=new WeakMap;return(function(e,t){if(!t&&e&&e.__esModule)return e;var a,n,i={__proto__:null,default:e};if(null===e||"object"!=typeof e&&"function"!=typeof e)return i;if(a=t?o:r){if(a.has(e))return a.get(e);a.set(e,i)}for(var l in e)"default"!==l&&{}.hasOwnProperty.call(e,l)&&((n=(a=Object.defineProperty)&&Object.getOwnPropertyDescriptor(e,l))&&(n.get||n.set)?a(i,l,n):i[l]=e[l]);return i})(e,t)})(_r(d[3])),a=_r(d[4]),n=_r(d[5]);var i=a.NativeModules.LimitterModule,l=a.NativeModules.TimerEventModule;var s=a.StyleSheet.create({container:{flex:1,backgroundColor:'#0F172A'},header:{padding:30,alignItems:'center'},title:{fontSize:40,fontWeight:'900',color:'#F8FAFC'},versionTag:{color:'#6366F1',fontSize:12,fontWeight:'700'},subtitle:{color:'#94A3B8',marginBottom:20},card:{backgroundColor:'#1E293B',margin:20,padding:20,borderRadius:20},sectionTitle:{color:'#F8FAFC',fontSize:18,fontWeight:'800',marginBottom:15},timerRow:{flexDirection:'row',gap:15,marginBottom:20},inputBox:{flex:1,backgroundColor:'#0F172A',padding:10,borderRadius:10,alignItems:'center'},label:{color:'#64748B',fontSize:10,fontWeight:'800'},input:{color:'#F8FAFC',fontSize:24,fontWeight:'900'},btn:{backgroundColor:'#6366F1',padding:18,borderRadius:15,alignItems:'center'},btnText:{color:'white',fontWeight:'900'},activeCard:{marginHorizontal:20,marginBottom:10,padding:15,borderRadius:12,borderLeftWidth:5,borderLeftColor:'#6366F1',backgroundColor:'#1E293B'},activeLabel:{color:'white',fontWeight:'700'},listSection:{padding:20},search:{backgroundColor:'#1E293B',color:'white',padding:15,borderRadius:15,marginBottom:20},appRow:{flexDirection:'row',alignItems:'center',marginBottom:15,opacity:1,backgroundColor:'#1E293B',padding:12,borderRadius:12},appRowReady:{opacity:1},appRowSelected:{backgroundColor:'#3730A3',borderWidth:2,borderColor:'#6366F1'},icon:{width:50,height:50,borderRadius:15,backgroundColor:'#334155',alignItems:'center',justifyContent:'center'},iconTxt:{color:'white',fontSize:20,fontWeight:'800'},appName:{color:'#F8FAFC',fontWeight:'700'},pkgName:{color:'#64748B',fontSize:10},tick:{width:30,height:30,borderRadius:15,borderWidth:2,borderColor:'#334155',alignItems:'center',justifyContent:'center'},tickTxt:{color:'white',fontWeight:'900'},dropdownRow:{flexDirection:'row',flexWrap:'wrap',gap:8,marginTop:8},hourChip:{width:42,height:38,borderRadius:10,backgroundColor:'#1E293B',borderWidth:1,borderColor:'#334155',alignItems:'center',justifyContent:'center'},hourChipSelected:{backgroundColor:'#D97706',borderColor:'#F59E0B'},hourChipText:{color:'#94A3B8',fontWeight:'800',fontSize:14},ampmBtn:{flex:1,padding:16,borderRadius:12,backgroundColor:'#1E293B',borderWidth:1,borderColor:'#334155',alignItems:'center'},ampmBtnSelected:{backgroundColor:'#D97706',borderColor:'#F59E0B'},ampmText:{color:'#94A3B8',fontWeight:'900',fontSize:16}});_e.default=function(){var e=(0,o.useState)([]),c=(0,r.default)(e,2),u=c[0],p=c[1],h=(0,o.useState)(!1),m=(0,r.default)(h,2),x=m[0],f=m[1],y=(0,o.useState)([]),T=(0,r.default)(y,2),b=T[0],S=T[1],C=(0,o.useState)(0),j=(0,r.default)(C,2),k=j[0],v=j[1],A=(0,o.useState)([]),w=(0,r.default)(A,2),E=w[0],B=w[1],R=(0,o.useState)(!1),F=(0,r.default)(R,2),I=F[0],P=F[1],O=(0,o.useState)(''),M=(0,r.default)(O,2),L=M[0],V=M[1],W=(0,o.useState)({overlay:!1,usage:!1,batteryOptimized:!1,exactAlarm:!0}),N=(0,r.default)(W,2),D=N[0],z=N[1],$=(0,o.useState)('0'),_=(0,r.default)($,2),H=_[0],K=_[1],q=(0,o.useState)('30'),G=(0,r.default)(q,2),U=G[0],Y=G[1],X=(0,o.useState)(!1),Z=(0,r.default)(X,2),J=Z[0],Q=Z[1],ee=(0,o.useState)('12'),te=(0,r.default)(ee,2),re=te[0],oe=te[1],ae=(0,o.useState)('PM'),ne=(0,r.default)(ae,2),ie=ne[0],le=ne[1],se=(0,o.useState)(!1),ce=(0,r.default)(se,2),de=ce[0],ue=ce[1];(0,o.useEffect)(()=>{he(),pe(),(0,_r(d[6]).startCategoryService)();var e=a.AppState.addEventListener('change',e=>{'active'===e&&(he(),pe())});return()=>e.remove()},[]);var pe=(function(){var e=(0,t.default)(function*(){if(i?.getActiveTimers)try{var e=yield i.getActiveTimers();e&&e.length>0&&(console.log("Synced active timers:",e.length),p(t=>{var r=new Map;return e.forEach(e=>r.set(e.package,{package:e.package,name:e.name,durationSeconds:e.remainingSeconds,remainingSeconds:e.remainingSeconds,status:e.status})),Array.from(r.values())}))}catch(e){console.error("Failed to sync timers:",e)}});return function(){return e.apply(this,arguments)}})();(0,o.useEffect)(()=>{if(l){var e=new a.NativeEventEmitter(l);l.startListening();var t=e.addListener('TIMER_TICK',e=>{var t=e.package,r=e.appName,o=e.remaining,a=e.isBlocked;p(e=>e.some(e=>e.package===t)?e.map(e=>e.package===t?{...e,remainingSeconds:o,status:a?'blocked':'active'}:e):[...e,{package:t,name:r||t,durationSeconds:o,remainingSeconds:o,status:a?'blocked':'active'}])});return()=>{t.remove(),l.stopListening()}}},[]);var he=(function(){var e=(0,t.default)(function*(){if(i?.checkPermissions){var e=yield i.checkPermissions();console.log("Permission Status:",e),z(e),e.overlay&&e.usage&&v(1)}});return function(){return e.apply(this,arguments)}})(),ge=(function(){var e=(0,t.default)(function*(){P(!0),console.log("Fetching apps...");try{if(i?.getInstalledApps){var e=yield i.getInstalledApps();console.log("Apps found:",e.length),B(e.filter(e=>'com.appguard2'!==e.package).sort((e,t)=>e.name.localeCompare(t.name)))}else console.error("LimitterModule.getInstalledApps is missing")}catch(e){console.error("Failed to load apps:",e),a.Alert.alert('Error','Failed to load app list: '+(e.message||e))}finally{P(!1)}});return function(){return e.apply(this,arguments)}})();(0,o.useEffect)(()=>{1===k&&ge()},[k]);var me=(function(){var e=(0,t.default)(function*(){3600*(parseInt(H)||0)+(parseInt(U)||0)<=0?a.Alert.alert('Invalid Time','Please enter a valid duration.'):(Q(!0),i?.showNotification&&(yield i.showNotification("Your timer is set. Now select apps to limit.")))});return function(){return e.apply(this,arguments)}})(),xe=(function(){var e=(0,t.default)(function*(){if(de)if(0!==b.length){var e=parseInt(re)||12;'AM'===ie?12===e&&(e=0):12!==e&&(e+=12);var t=b.map(t=>({package:t.package,appName:t.name,hour:e,minute:0}));try{var r=yield i.startClockTimer({apps:t});console.log('Clock timer result:',r),a.Alert.alert('Success',`\ud83d\udd50 Clock timer set to ${re}:00 ${ie} for ${b.length} app(s)`),ue(!1),S([]),V('')}catch(e){console.error('Clock timer error:',e),a.Alert.alert('Error','Failed to start clock timer: '+(e.message||e))}}else a.Alert.alert('No Apps Selected','Please select at least one app.');else a.Alert.alert('Step Required','Please set the clock timer first.')});return function(){return e.apply(this,arguments)}})(),fe=(function(){var e=(0,t.default)(function*(){if(J)if(0!==b.length){var e=3600*(parseInt(H)||0)+(parseInt(U)||0),t=b.map(t=>({...t,durationSeconds:e,remainingSeconds:e,status:'active'}));if(p(e=>[...e.filter(e=>!b.some(t=>t.package===e.package)),...t]),i?.sendCommand)try{var r=b.map(t=>({package:t.package,appName:t.name,duration:e.toString()}));yield i.sendCommand('START_TIMERS',{apps:r}),console.log(`\u2705 Started timers for ${b.length} apps`),a.Alert.alert('Success',`\u23f1 Timers started for ${b.length} app(s)`),Q(!1),S([]),V('')}catch(e){console.error("Failed to start timers:",e),a.Alert.alert('Error','Failed to start timers: '+e.message)}}else a.Alert.alert('No Apps Selected','Please select at least one app to limit.');else a.Alert.alert('Step 1 Required','Please set the timer above and click SAVE TIMER first.')});return function(){return e.apply(this,arguments)}})(),ye=(0,o.useMemo)(()=>E.filter(e=>e.name.toLowerCase().includes(L.toLowerCase())),[E,L]);return 0===k?(0,n.jsxs)(a.View,{style:[s.container,{justifyContent:'center',padding:30}],children:[(0,n.jsx)(a.Text,{style:s.title,children:"Permissions Needed"}),(0,n.jsx)(a.Text,{style:s.subtitle,children:"Overlay and Usage Access required."}),(0,n.jsx)(a.TouchableOpacity,{style:s.btn,onPress:()=>i?.checkAndRequestPermissions(),children:(0,n.jsx)(a.Text,{style:s.btnText,children:"GRANT PERMISSIONS"})}),(0,n.jsx)(a.TouchableOpacity,{style:[s.btn,{backgroundColor:'#334155',marginTop:10}],onPress:he,children:(0,n.jsx)(a.Text,{style:s.btnText,children:"I'VE GRANTED THEM - REFRESH"})})]}):(0,n.jsxs)(a.SafeAreaView,{style:s.container,children:[(0,n.jsx)(a.StatusBar,{barStyle:"light-content",backgroundColor:"#0F172A"}),(0,n.jsx)(a.View,{style:s.header,children:(0,n.jsxs)(a.View,{style:{flexDirection:'row',justifyContent:'space-between',width:'100%',alignItems:'center'},children:[(0,n.jsxs)(a.View,{children:[(0,n.jsx)(a.Text,{style:s.title,children:"APPGUARD"}),(0,n.jsx)(a.Text,{style:s.versionTag,children:"v2.0 Native Guard"})]}),(0,n.jsx)(a.TouchableOpacity,{style:{backgroundColor:'#E11D48',padding:8,borderRadius:10},onPress:()=>a.Alert.alert("Help & Settings","If your timer stops in the background:\n\n1. Disable Battery Optimization\n2. Allow Exact Alarms\n3. Ensure 'Auto-Start' is enabled (if available in phone settings).",[{text:"Open Background Settings",onPress:()=>f(!x)},{text:"OK"}]),children:(0,n.jsx)(a.Text,{style:{color:'white',fontWeight:'bold'},children:"HELP"})})]})}),(0,n.jsxs)(a.ScrollView,{contentContainerStyle:{paddingBottom:100},children:[(D.batteryOptimized||!D.exactAlarm||x)&&(0,n.jsxs)(a.View,{style:[s.card,{backgroundColor:'#7C2D12',borderColor:'#F59E0B',borderWidth:1}],children:[(0,n.jsx)(a.Text,{style:[s.sectionTitle,{color:'#FACC15'}],children:"\u26a0\ufe0f Background Performance"}),(0,n.jsx)(a.Text,{style:{color:'#FED7AA',marginBottom:15,fontSize:13},children:"Troubleshooting: If the timer stops, ensure these system permissions are granted for 100% reliability."}),(0,n.jsxs)(a.View,{children:[D.batteryOptimized&&(0,n.jsx)(a.TouchableOpacity,{style:[s.btn,{backgroundColor:'#EA580C',marginBottom:10}],onPress:()=>i?.requestBatteryOptimizationExemption(),children:(0,n.jsx)(a.Text,{style:s.btnText,children:"1. DISABLE BATTERY OPTIMIZATION"})}),!D.exactAlarm&&(0,n.jsx)(a.TouchableOpacity,{style:[s.btn,{backgroundColor:'#B45309',marginBottom:10}],onPress:()=>a.Linking.openSettings(),children:(0,n.jsx)(a.Text,{style:s.btnText,children:"2. ALLOW EXACT ALARMS"})}),x&&(0,n.jsx)(a.TouchableOpacity,{style:[s.btn,{backgroundColor:'#475569',marginTop:5}],onPress:()=>f(!1),children:(0,n.jsx)(a.Text,{style:s.btnText,children:"CLOSE HELP PANEL"})})]})]}),(0,n.jsxs)(a.View,{style:s.card,children:[(0,n.jsx)(a.Text,{style:s.sectionTitle,children:"1. Set Timer"}),(0,n.jsxs)(a.View,{style:s.timerRow,children:[(0,n.jsxs)(a.View,{style:s.inputBox,children:[(0,n.jsx)(a.Text,{style:s.label,children:"HRS"}),(0,n.jsx)(a.TextInput,{style:s.input,value:H,onChangeText:K,keyboardType:"numeric"})]}),(0,n.jsxs)(a.View,{style:s.inputBox,children:[(0,n.jsx)(a.Text,{style:s.label,children:"SEC"}),(0,n.jsx)(a.TextInput,{style:s.input,value:U,onChangeText:Y,keyboardType:"numeric"})]})]}),(0,n.jsx)(a.TouchableOpacity,{style:[s.btn,J&&{backgroundColor:'#10B981'}],onPress:me,children:(0,n.jsx)(a.Text,{style:s.btnText,children:J?"\u2713 TIMER SET":"SAVE TIMER"})})]}),(0,n.jsxs)(a.View,{style:s.card,children:[(0,n.jsx)(a.Text,{style:[s.sectionTitle,{color:'#F59E0B'}],children:"\ud83d\udd50 Clock Timer"}),(0,n.jsx)(a.Text,{style:{color:'#94A3B8',fontSize:12,marginBottom:15},children:"Block apps at a specific time of day"}),(0,n.jsxs)(a.View,{style:s.inputBox,children:[(0,n.jsx)(a.Text,{style:s.label,children:"SELECT HOUR"}),(0,n.jsx)(a.View,{style:s.dropdownRow,children:['1','2','3','4','5','6','7','8','9','10','11','12'].map(e=>(0,n.jsx)(a.TouchableOpacity,{style:[s.hourChip,re===e&&s.hourChipSelected],onPress:()=>oe(e),children:(0,n.jsx)(a.Text,{style:[s.hourChipText,re===e&&{color:'#FFF'}],children:e})},e))})]}),(0,n.jsxs)(a.View,{style:[s.timerRow,{marginTop:15,marginBottom:20}],children:[(0,n.jsx)(a.TouchableOpacity,{style:[s.ampmBtn,'AM'===ie&&s.ampmBtnSelected],onPress:()=>le('AM'),children:(0,n.jsx)(a.Text,{style:[s.ampmText,'AM'===ie&&{color:'#FFF'}],children:"AM"})}),(0,n.jsx)(a.TouchableOpacity,{style:[s.ampmBtn,'PM'===ie&&s.ampmBtnSelected],onPress:()=>le('PM'),children:(0,n.jsx)(a.Text,{style:[s.ampmText,'PM'===ie&&{color:'#FFF'}],children:"PM"})})]}),(0,n.jsx)(a.TouchableOpacity,{style:[s.btn,{backgroundColor:'#D97706'},de&&{backgroundColor:'#10B981'}],onPress:()=>{var e=parseInt(re)||0;e<1||e>12?a.Alert.alert('Invalid Hour','Please select an hour between 1 and 12.'):ue(!0)},children:(0,n.jsx)(a.Text,{style:s.btnText,children:de?`\u2713 CLOCK SET (${re}:00 ${ie})`:'SAVE CLOCK TIMER'})})]}),u.map(e=>{var t,r,o,i;return(0,n.jsx)(a.View,{style:[s.activeCard,'blocked'===e.status&&{borderColor:'#EF4444'}],children:(0,n.jsxs)(a.Text,{style:s.activeLabel,children:[e.name," - ",'blocked'===e.status?'BLOCKED \u26d4':(t=e.remainingSeconds,r=Math.floor(t/3600),o=Math.floor(t%3600/60),i=t%60,r>0?`${r}:${o.toString().padStart(2,'0')}:${i.toString().padStart(2,'0')}`:`${o}:${i.toString().padStart(2,'0')}`)+" remaining \u23f1"]})},e.package)}),(0,n.jsxs)(a.View,{style:s.card,children:[(0,n.jsx)(a.Text,{style:s.sectionTitle,children:"2. Select Apps"}),(0,n.jsxs)(a.Text,{style:s.subtitle,children:[b.length," app(s) selected"]}),(0,n.jsx)(a.TextInput,{style:s.search,placeholder:"Search apps...",placeholderTextColor:"#94A3B8",value:L,onChangeText:V}),I?(0,n.jsx)(a.ActivityIndicator,{color:"#6366F1"}):ye.map(e=>{var t=b.some(t=>t.package===e.package);return(0,n.jsxs)(a.TouchableOpacity,{style:[s.appRow,J&&s.appRowReady,t&&s.appRowSelected],onPress:()=>{return t=e,void S(e=>e.some(e=>e.package===t.package)?e.filter(e=>e.package!==t.package):[...e,t]);var t},children:[(0,n.jsx)(a.View,{style:[s.icon,t&&{backgroundColor:'#6366F1'}],children:(0,n.jsx)(a.Text,{style:s.iconTxt,children:e.name[0]})}),(0,n.jsxs)(a.View,{style:{flex:1,marginLeft:15},children:[(0,n.jsx)(a.Text,{style:s.appName,children:e.name}),(0,n.jsx)(a.Text,{style:s.pkgName,children:e.package})]}),(0,n.jsx)(a.View,{style:[s.tick,t&&{backgroundColor:'#6366F1'}],children:(0,n.jsx)(a.Text,{style:s.tickTxt,children:t?"\u2713":"+"})})]},e.package)}),b.length>0&&(0,n.jsxs)(a.View,{children:[(0,n.jsx)(a.TouchableOpacity,{style:[s.btn,{backgroundColor:'#8B5CF6',marginTop:20}],onPress:fe,children:(0,n.jsxs)(a.Text,{style:s.btnText,children:["\u25b6 START DURATION TIMERS (",b.length,")"]})}),de&&(0,n.jsx)(a.TouchableOpacity,{style:[s.btn,{backgroundColor:'#D97706',marginTop:10}],onPress:xe,children:(0,n.jsxs)(a.Text,{style:s.btnText,children:["\ud83d\udd50 START CLOCK TIMERS (",b.length,")"]})})]})]})]})]})}},495,[1,350,32,69,2,238,496]);
+__d(function(g,r,i,a,m,_e,d){var e=r(d[0]);Object.defineProperty(_e,"__esModule",{value:!0}),_e.startCategoryService=void 0;var o=e(r(d[1])),t=r(d[2]),l=t.NativeModules.CategoryTrackerModule,n=new t.NativeEventEmitter(l),c=null,v=null;_e.startCategoryService=()=>{l?(l.startTracking(),setInterval((0,o.default)(function*(){try{(yield l.isServiceEnabled())?l.logToNative("\u2705 Service Status: ENABLED"):l.logToNative("\u26a0\ufe0f ACCESSIBILITY SERVICE IS OFF - Please enable it in Settings!")}catch(e){}}),5e3),n.addListener('onForegroundChange',e=>{var o=e.packageName,t=e.url;l.logToNative(`[JS] Detecting: Pkg=${o}, URL=${t}`);var n=null;if(t&&('com.android.chrome'===o||'com.microsoft.emmx'===o))for(var v in r(d[3]).categoryMap)if(!v.startsWith('com.')&&t.toLowerCase().includes(v.toLowerCase())){n=v;break}!n&&r(d[3]).categoryMap[o]&&(n=o),n!==c&&(l.logToNative(`[JS] Switch: ${c} -> ${n}`),c=n,s())}),l.logToNative("[JS] Category Service Initialized")):console.error("CategoryTrackerModule not found.")};var s=()=>{v&&(clearInterval(v),v=null);var e=c?r(d[3]).categoryMap[c]:null;if(e){if(l.logToNative(`Active tracking for category: ${e}`),(0,r(d[4]).isCategoryBlocked)(e))return l.logToNative(`Category ${e} is ALREADY blocked.`),void l.triggerBlock(e);v=setInterval(()=>{var o=(0,r(d[4]).incrementCategoryTime)(e);l.logToNative(`Time for ${e}: ${o}s`),(0,r(d[4]).isCategoryBlocked)(e)&&(l.logToNative(`Limit REACHED for ${e}. Triggering block.`),l.triggerBlock(e),clearInterval(v),v=null)},1e3)}else l.logToNative("No tracked item in foreground. Timer cleared.")}},496,[1,350,2,497,498]);
+__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.categoryMap=e.CATEGORY_LIMIT=void 0;e.categoryMap={"com.facebook.katana":"Social Media","com.instagram.android":"Social Media","com.twitter.android":"Social Media","google.com":"Social Media","twitter.com":"Social Media","facebook.com":"Social Media","instagram.com":"Social Media","x.com":"Social Media"},e.CATEGORY_LIMIT=3},497,[]);
+__d(function(g,r,i,a,m,e,d){Object.defineProperty(e,"__esModule",{value:!0}),e.isCategoryBlocked=e.incrementCategoryTime=e.getCategoryTime=void 0;var o={"Social Media":0};e.incrementCategoryTime=t=>void 0!==o[t]?(o[t]+=1,o[t]):0;e.isCategoryBlocked=t=>(o[t]||0)>=r(d[0]).CATEGORY_LIMIT;e.getCategoryTime=t=>o[t]||0},498,[497]);
+__d(function(p,a,d,e,n,r,u){n.exports={name:"AppGuard2",displayName:"AppGuard2"}},499,[]);
__r(106);
__r(0);
\ No newline at end of file
diff --git a/android/app/src/main/res/drawable-mdpi/node_modules_reactnative_libraries_logbox_ui_logboximages_alerttriangle.png b/android/app/src/main/res/drawable-mdpi/node_modules_reactnative_libraries_logbox_ui_logboximages_alerttriangle.png
deleted file mode 100644
index 48e05d7..0000000
Binary files a/android/app/src/main/res/drawable-mdpi/node_modules_reactnative_libraries_logbox_ui_logboximages_alerttriangle.png and /dev/null differ
diff --git a/android/app/src/main/res/drawable-mdpi/node_modules_reactnative_libraries_logbox_ui_logboximages_chevronleft.png b/android/app/src/main/res/drawable-mdpi/node_modules_reactnative_libraries_logbox_ui_logboximages_chevronleft.png
deleted file mode 100644
index 6b07c51..0000000
Binary files a/android/app/src/main/res/drawable-mdpi/node_modules_reactnative_libraries_logbox_ui_logboximages_chevronleft.png and /dev/null differ
diff --git a/android/app/src/main/res/drawable-mdpi/node_modules_reactnative_libraries_logbox_ui_logboximages_chevronright.png b/android/app/src/main/res/drawable-mdpi/node_modules_reactnative_libraries_logbox_ui_logboximages_chevronright.png
deleted file mode 100644
index 251bb72..0000000
Binary files a/android/app/src/main/res/drawable-mdpi/node_modules_reactnative_libraries_logbox_ui_logboximages_chevronright.png and /dev/null differ
diff --git a/android/app/src/main/res/drawable-mdpi/node_modules_reactnative_libraries_logbox_ui_logboximages_close.png b/android/app/src/main/res/drawable-mdpi/node_modules_reactnative_libraries_logbox_ui_logboximages_close.png
deleted file mode 100644
index 43471b9..0000000
Binary files a/android/app/src/main/res/drawable-mdpi/node_modules_reactnative_libraries_logbox_ui_logboximages_close.png and /dev/null differ
diff --git a/android/app/src/main/res/drawable-mdpi/node_modules_reactnative_libraries_logbox_ui_logboximages_loader.png b/android/app/src/main/res/drawable-mdpi/node_modules_reactnative_libraries_logbox_ui_logboximages_loader.png
deleted file mode 100644
index 7647eda..0000000
Binary files a/android/app/src/main/res/drawable-mdpi/node_modules_reactnative_libraries_logbox_ui_logboximages_loader.png and /dev/null differ
diff --git a/android/app/src/main/res/raw/keep.xml b/android/app/src/main/res/raw/keep.xml
index dde0dc2..c52f5c1 100644
--- a/android/app/src/main/res/raw/keep.xml
+++ b/android/app/src/main/res/raw/keep.xml
@@ -1 +1 @@
-
+
diff --git a/package-lock.json b/package-lock.json
index dbfb960..854d465 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -13,10 +13,7 @@
"@react-navigation/bottom-tabs": "^7.15.5",
"@react-navigation/native": "^7.1.33",
"@react-navigation/native-stack": "^7.14.4",
- "@types/react-dom": "^19.2.3",
- "class-variance-authority": "^0.7.1",
"react": "19.2.3",
- "react-dom": "^19.2.4",
"react-native": "0.84.1",
"react-native-background-timer": "^2.4.1",
"react-native-safe-area-context": "^5.7.0",
@@ -138,7 +135,7 @@
"version": "7.27.3",
"resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.27.3.tgz",
"integrity": "sha512-fXSwMQqitTGeHLBC08Eq5yXz2m37E4pJX1qAU1+2cNedz/ifv/bVXft90VeSav5nFO61EcNgwr0aJxbyPaWBPg==",
- "dev": true,
+ "devOptional": true,
"license": "MIT",
"dependencies": {
"@babel/types": "^7.27.3"
@@ -167,7 +164,7 @@
"version": "7.28.6",
"resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.28.6.tgz",
"integrity": "sha512-dTOdvsjnG3xNT9Y0AUg1wAl38y+4Rl4sf9caSQZOXdNqVn+H+HbbJ4IyyHaIqNR6SW9oJpA/RuRjsjCw2IdIow==",
- "dev": true,
+ "devOptional": true,
"license": "MIT",
"dependencies": {
"@babel/helper-annotate-as-pure": "^7.27.3",
@@ -189,7 +186,7 @@
"version": "7.28.5",
"resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.28.5.tgz",
"integrity": "sha512-N1EhvLtHzOvj7QQOUCCS3NrPJP8c5W6ZXCHDn7Yialuy1iu4r5EmIYkXlKNqT99Ciw+W0mDqWoR6HWMZlFP3hw==",
- "dev": true,
+ "devOptional": true,
"license": "MIT",
"dependencies": {
"@babel/helper-annotate-as-pure": "^7.27.3",
@@ -207,7 +204,7 @@
"version": "0.6.6",
"resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.6.6.tgz",
"integrity": "sha512-mOAsxeeKkUKayvZR3HeTYD/fICpCPLJrU5ZjelT/PA6WHtNDBOE436YiaEUvHN454bRM3CebhDsIpieCc4texA==",
- "dev": true,
+ "devOptional": true,
"license": "MIT",
"dependencies": {
"@babel/helper-compilation-targets": "^7.28.6",
@@ -233,7 +230,7 @@
"version": "7.28.5",
"resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.28.5.tgz",
"integrity": "sha512-cwM7SBRZcPCLgl8a7cY0soT1SptSzAlMH39vwiRpOQkJlh53r5hdHwLSCZpQdVLT39sZt+CRpNwYG4Y2v77atg==",
- "dev": true,
+ "devOptional": true,
"license": "MIT",
"dependencies": {
"@babel/traverse": "^7.28.5",
@@ -277,7 +274,7 @@
"version": "7.27.1",
"resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.27.1.tgz",
"integrity": "sha512-URMGH08NzYFhubNSGJrpUEphGKQwMQYBySzat5cAByY1/YgIRkULnIy3tAMeszlL/so2HbeilYloUmSpd7GdVw==",
- "dev": true,
+ "devOptional": true,
"license": "MIT",
"dependencies": {
"@babel/types": "^7.27.1"
@@ -299,7 +296,7 @@
"version": "7.27.1",
"resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.27.1.tgz",
"integrity": "sha512-7fiA521aVw8lSPeI4ZOD3vRFkoqkJcS+z4hFo82bFSH/2tNd6eJ5qCVMS5OzDmZh/kaHQeBaeyxK6wljcPtveA==",
- "dev": true,
+ "devOptional": true,
"license": "MIT",
"dependencies": {
"@babel/helper-annotate-as-pure": "^7.27.1",
@@ -317,7 +314,7 @@
"version": "7.28.6",
"resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.28.6.tgz",
"integrity": "sha512-mq8e+laIk94/yFec3DxSjCRD2Z0TAjhVbEJY3UQrlwVo15Lmt7C2wAUbK4bjnTs4APkwsYLTahXRraQXhb1WCg==",
- "dev": true,
+ "devOptional": true,
"license": "MIT",
"dependencies": {
"@babel/helper-member-expression-to-functions": "^7.28.5",
@@ -335,7 +332,7 @@
"version": "7.27.1",
"resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.27.1.tgz",
"integrity": "sha512-Tub4ZKEXqbPjXgWLl2+3JpQAYBJ8+ikpQ2Ocj/q/r0LwE3UhENh7EUabyHjz2kCEsrRY83ew2DQdHluuiDQFzg==",
- "dev": true,
+ "devOptional": true,
"license": "MIT",
"dependencies": {
"@babel/traverse": "^7.27.1",
@@ -376,7 +373,7 @@
"version": "7.28.6",
"resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.28.6.tgz",
"integrity": "sha512-z+PwLziMNBeSQJonizz2AGnndLsP2DeGHIxDAn+wdHOGuo4Fo1x1HBPPXeE9TAOPHNNWQKCSlA2VZyYyyibDnQ==",
- "dev": true,
+ "devOptional": true,
"license": "MIT",
"dependencies": {
"@babel/template": "^7.28.6",
@@ -503,7 +500,7 @@
"version": "7.27.1",
"resolved": "https://registry.npmjs.org/@babel/plugin-proposal-export-default-from/-/plugin-proposal-export-default-from-7.27.1.tgz",
"integrity": "sha512-hjlsMBl1aJc5lp8MoCDEZCiYzlgdRAShOjAfRw6X+GlpLpUPU7c3XNLsKFZbQk/1cRzBlJ7CXg3xJAJMrFa1Uw==",
- "dev": true,
+ "devOptional": true,
"license": "MIT",
"dependencies": {
"@babel/helper-plugin-utils": "^7.27.1"
@@ -583,7 +580,7 @@
"version": "7.8.3",
"resolved": "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz",
"integrity": "sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==",
- "dev": true,
+ "devOptional": true,
"license": "MIT",
"dependencies": {
"@babel/helper-plugin-utils": "^7.8.0"
@@ -596,7 +593,7 @@
"version": "7.28.6",
"resolved": "https://registry.npmjs.org/@babel/plugin-syntax-export-default-from/-/plugin-syntax-export-default-from-7.28.6.tgz",
"integrity": "sha512-Svlx1fjJFnNz0LZeUaybRukSxZI3KkpApUmIRzEdXC5k8ErTOz0OD0kNrICi5Vc3GlpP5ZCeRyRO+mfWTSz+iQ==",
- "dev": true,
+ "devOptional": true,
"license": "MIT",
"dependencies": {
"@babel/helper-plugin-utils": "^7.28.6"
@@ -612,7 +609,7 @@
"version": "7.28.6",
"resolved": "https://registry.npmjs.org/@babel/plugin-syntax-flow/-/plugin-syntax-flow-7.28.6.tgz",
"integrity": "sha512-D+OrJumc9McXNEBI/JmFnc/0uCM2/Y3PEBG3gfV3QIYkKv5pvnpzFrl1kYCrcHJP8nOeFB/SHi1IHz29pNGuew==",
- "dev": true,
+ "devOptional": true,
"license": "MIT",
"dependencies": {
"@babel/helper-plugin-utils": "^7.28.6"
@@ -683,7 +680,7 @@
"version": "7.28.6",
"resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.28.6.tgz",
"integrity": "sha512-wgEmr06G6sIpqr8YDwA2dSRTE3bJ+V0IfpzfSY3Lfgd7YWOaAdlykvJi13ZKBt8cZHfgH1IXN+CL656W3uUa4w==",
- "dev": true,
+ "devOptional": true,
"license": "MIT",
"dependencies": {
"@babel/helper-plugin-utils": "^7.28.6"
@@ -801,7 +798,7 @@
"version": "7.28.6",
"resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.28.6.tgz",
"integrity": "sha512-+nDNmQye7nlnuuHDboPbGm00Vqg3oO8niRRL27/4LYHUsHYh0zJ1xWOz0uRwNFmM1Avzk8wZbc6rdiYhomzv/A==",
- "dev": true,
+ "devOptional": true,
"license": "MIT",
"dependencies": {
"@babel/helper-plugin-utils": "^7.28.6"
@@ -850,7 +847,7 @@
"version": "7.29.0",
"resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.29.0.tgz",
"integrity": "sha512-va0VdWro4zlBr2JsXC+ofCPB2iG12wPtVGTWFx2WLDOM3nYQZZIGP82qku2eW/JR83sD+k2k+CsNtyEbUqhU6w==",
- "dev": true,
+ "devOptional": true,
"license": "MIT",
"dependencies": {
"@babel/helper-plugin-utils": "^7.28.6",
@@ -868,7 +865,7 @@
"version": "7.28.6",
"resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.28.6.tgz",
"integrity": "sha512-ilTRcmbuXjsMmcZ3HASTe4caH5Tpo93PkTxF9oG2VZsSWsahydmcEHhix9Ik122RcTnZnUzPbmux4wh1swfv7g==",
- "dev": true,
+ "devOptional": true,
"license": "MIT",
"dependencies": {
"@babel/helper-module-imports": "^7.28.6",
@@ -902,7 +899,7 @@
"version": "7.28.6",
"resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.28.6.tgz",
"integrity": "sha512-tt/7wOtBmwHPNMPu7ax4pdPz6shjFrmHDghvNC+FG9Qvj7D6mJcoRQIF5dy4njmxR941l6rgtvfSB2zX3VlUIw==",
- "dev": true,
+ "devOptional": true,
"license": "MIT",
"dependencies": {
"@babel/helper-plugin-utils": "^7.28.6"
@@ -918,7 +915,7 @@
"version": "7.28.6",
"resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.28.6.tgz",
"integrity": "sha512-dY2wS3I2G7D697VHndN91TJr8/AAfXQNt5ynCTI/MpxMsSzHp+52uNivYT5wCPax3whc47DR8Ba7cmlQMg24bw==",
- "dev": true,
+ "devOptional": true,
"license": "MIT",
"dependencies": {
"@babel/helper-create-class-features-plugin": "^7.28.6",
@@ -952,7 +949,7 @@
"version": "7.28.6",
"resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.28.6.tgz",
"integrity": "sha512-EF5KONAqC5zAqT783iMGuM2ZtmEBy+mJMOKl2BCvPZ2lVrwvXnB6o+OBWCS+CoeCCpVRF2sA2RBKUxvT8tQT5Q==",
- "dev": true,
+ "devOptional": true,
"license": "MIT",
"dependencies": {
"@babel/helper-annotate-as-pure": "^7.27.3",
@@ -990,7 +987,7 @@
"version": "7.28.5",
"resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.28.5.tgz",
"integrity": "sha512-Kl9Bc6D0zTUcFUvkNuQh4eGXPKKNDOJQXVyyM4ZAQPMveniJdxi8XMJwLo+xSoW3MIq81bD33lcUe9kZpl0MCw==",
- "dev": true,
+ "devOptional": true,
"license": "MIT",
"dependencies": {
"@babel/helper-plugin-utils": "^7.27.1",
@@ -1122,7 +1119,7 @@
"version": "7.27.1",
"resolved": "https://registry.npmjs.org/@babel/plugin-transform-flow-strip-types/-/plugin-transform-flow-strip-types-7.27.1.tgz",
"integrity": "sha512-G5eDKsu50udECw7DL2AcsysXiQyB7Nfg521t2OAJ4tbfTJ27doHLeF/vlI1NZGlLdbb/v+ibvtL1YBQqYOwJGg==",
- "dev": true,
+ "devOptional": true,
"license": "MIT",
"dependencies": {
"@babel/helper-plugin-utils": "^7.27.1",
@@ -1139,7 +1136,7 @@
"version": "7.27.1",
"resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.27.1.tgz",
"integrity": "sha512-BfbWFFEJFQzLCQ5N8VocnCtA8J1CLkNTe2Ms2wocj75dd6VpiqS5Z5quTYcUoo4Yq+DN0rtikODccuv7RU81sw==",
- "dev": true,
+ "devOptional": true,
"license": "MIT",
"dependencies": {
"@babel/helper-plugin-utils": "^7.27.1",
@@ -1255,7 +1252,7 @@
"version": "7.28.6",
"resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.28.6.tgz",
"integrity": "sha512-jppVbf8IV9iWWwWTQIxJMAJCWBuuKx71475wHwYytrRGQ2CWiDvYlADQno3tcYpS/T2UUWFQp3nVtYfK/YBQrA==",
- "dev": true,
+ "devOptional": true,
"license": "MIT",
"dependencies": {
"@babel/helper-module-transforms": "^7.28.6",
@@ -1308,7 +1305,7 @@
"version": "7.29.0",
"resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.29.0.tgz",
"integrity": "sha512-1CZQA5KNAD6ZYQLPw7oi5ewtDNxH/2vuCh+6SmvgDfhumForvs8a1o9n0UrEoBD8HU4djO2yWngTQlXl1NDVEQ==",
- "dev": true,
+ "devOptional": true,
"license": "MIT",
"dependencies": {
"@babel/helper-create-regexp-features-plugin": "^7.28.5",
@@ -1341,7 +1338,7 @@
"version": "7.28.6",
"resolved": "https://registry.npmjs.org/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.28.6.tgz",
"integrity": "sha512-3wKbRgmzYbw24mDJXT7N+ADXw8BC/imU9yo9c9X9NKaLF1fW+e5H1U5QjMUBe4Qo4Ox/o++IyUkl1sVCLgevKg==",
- "dev": true,
+ "devOptional": true,
"license": "MIT",
"dependencies": {
"@babel/helper-plugin-utils": "^7.28.6"
@@ -1410,7 +1407,7 @@
"version": "7.28.6",
"resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.28.6.tgz",
"integrity": "sha512-R8ja/Pyrv0OGAvAXQhSTmWyPJPml+0TMqXlO5w+AsMEiwb2fg3WkOvob7UxFSL3OIttFSGSRFKQsOhJ/X6HQdQ==",
- "dev": true,
+ "devOptional": true,
"license": "MIT",
"dependencies": {
"@babel/helper-plugin-utils": "^7.28.6"
@@ -1426,7 +1423,7 @@
"version": "7.28.6",
"resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.28.6.tgz",
"integrity": "sha512-A4zobikRGJTsX9uqVFdafzGkqD30t26ck2LmOzAuLL8b2x6k3TIqRiT2xVvA9fNmFeTX484VpsdgmKNA0bS23w==",
- "dev": true,
+ "devOptional": true,
"license": "MIT",
"dependencies": {
"@babel/helper-plugin-utils": "^7.28.6",
@@ -1459,7 +1456,7 @@
"version": "7.28.6",
"resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.28.6.tgz",
"integrity": "sha512-piiuapX9CRv7+0st8lmuUlRSmX6mBcVeNQ1b4AYzJxfCMuBfB0vBXDiGSmm03pKJw1v6cZ8KSeM+oUnM6yAExg==",
- "dev": true,
+ "devOptional": true,
"license": "MIT",
"dependencies": {
"@babel/helper-create-class-features-plugin": "^7.28.6",
@@ -1476,7 +1473,7 @@
"version": "7.28.6",
"resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.28.6.tgz",
"integrity": "sha512-b97jvNSOb5+ehyQmBpmhOCiUC5oVK4PMnpRvO7+ymFBoqYjeDHIU9jnrNUuwHOiL9RpGDoKBpSViarV+BU+eVA==",
- "dev": true,
+ "devOptional": true,
"license": "MIT",
"dependencies": {
"@babel/helper-annotate-as-pure": "^7.27.3",
@@ -1510,7 +1507,7 @@
"version": "7.28.0",
"resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.28.0.tgz",
"integrity": "sha512-D6Eujc2zMxKjfa4Zxl4GHMsmhKKZ9VpcqIchJLvwTxad9zWIYulwYItBovpDOoNLISpcZSXoDJ5gaGbQUDqViA==",
- "dev": true,
+ "devOptional": true,
"license": "MIT",
"dependencies": {
"@babel/helper-plugin-utils": "^7.27.1"
@@ -1526,7 +1523,7 @@
"version": "7.28.6",
"resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.28.6.tgz",
"integrity": "sha512-61bxqhiRfAACulXSLd/GxqmAedUSrRZIu/cbaT18T1CetkTmtDN15it7i80ru4DVqRK1WMxQhXs+Lf9kajm5Ow==",
- "dev": true,
+ "devOptional": true,
"license": "MIT",
"dependencies": {
"@babel/helper-annotate-as-pure": "^7.27.3",
@@ -1546,7 +1543,7 @@
"version": "7.27.1",
"resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.27.1.tgz",
"integrity": "sha512-6UzkCs+ejGdZ5mFFC/OCUrv028ab2fp1znZmCZjAOBKiBK2jXD1O+BPSfX8X2qjJ75fZBMSnQn3Rq2mrBJK2mw==",
- "dev": true,
+ "devOptional": true,
"license": "MIT",
"dependencies": {
"@babel/helper-plugin-utils": "^7.27.1"
@@ -1562,7 +1559,7 @@
"version": "7.27.1",
"resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.27.1.tgz",
"integrity": "sha512-zbwoTsBruTeKB9hSq73ha66iFeJHuaFkUbwvqElnygoNbj/jHRsSeokowZFN3CZ64IvEqcmmkVe89OPXc7ldAw==",
- "dev": true,
+ "devOptional": true,
"license": "MIT",
"dependencies": {
"@babel/helper-plugin-utils": "^7.27.1"
@@ -1578,7 +1575,7 @@
"version": "7.29.0",
"resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.29.0.tgz",
"integrity": "sha512-FijqlqMA7DmRdg/aINBSs04y8XNTYw/lr1gJ2WsmBnnaNw1iS43EPkJW+zK7z65auG3AWRFXWj+NcTQwYptUog==",
- "dev": true,
+ "devOptional": true,
"license": "MIT",
"dependencies": {
"@babel/helper-plugin-utils": "^7.28.6"
@@ -1627,7 +1624,7 @@
"version": "7.29.0",
"resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.29.0.tgz",
"integrity": "sha512-jlaRT5dJtMaMCV6fAuLbsQMSwz/QkvaHOHOSXRitGGwSpR1blCY4KUKoyP2tYO8vJcqYe8cEj96cqSztv3uF9w==",
- "dev": true,
+ "devOptional": true,
"license": "MIT",
"dependencies": {
"@babel/helper-module-imports": "^7.28.6",
@@ -1648,7 +1645,7 @@
"version": "0.13.0",
"resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.13.0.tgz",
"integrity": "sha512-U+GNwMdSFgzVmfhNm8GJUX88AadB3uo9KpJqS3FaqNIPKgySuvMb+bHPsOmmuWyIcuqZj/pzt1RUIUZns4y2+A==",
- "dev": true,
+ "devOptional": true,
"license": "MIT",
"dependencies": {
"@babel/helper-define-polyfill-provider": "^0.6.5",
@@ -1743,7 +1740,7 @@
"version": "7.28.6",
"resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.28.6.tgz",
"integrity": "sha512-0YWL2RFxOqEm9Efk5PvreamxPME8OyY0wM5wh5lHjF+VtVhdneCWGzZeSqzOfiobVqQaNCd2z0tQvnI9DaPWPw==",
- "dev": true,
+ "devOptional": true,
"license": "MIT",
"dependencies": {
"@babel/helper-annotate-as-pure": "^7.27.3",
@@ -1796,7 +1793,7 @@
"version": "7.27.1",
"resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.27.1.tgz",
"integrity": "sha512-xvINq24TRojDuyt6JGtHmkVkrfVV3FPT16uytxImLeBZqW3/H52yN+kM1MGuyPkIQxrzKwPHs5U/MP3qKyzkGw==",
- "dev": true,
+ "devOptional": true,
"license": "MIT",
"dependencies": {
"@babel/helper-create-regexp-features-plugin": "^7.27.1",
@@ -2108,14 +2105,14 @@
"version": "9.3.0",
"resolved": "https://registry.npmjs.org/@hapi/hoek/-/hoek-9.3.0.tgz",
"integrity": "sha512-/c6rf4UJlmHlC9b5BaNvzAcFv7HZ2QHaV0D4/HNlBdvFnvQq8RI4kYdhyPCl7Xj+oWvTWQ8ujhqS53LIgAe6KQ==",
- "dev": true,
+ "devOptional": true,
"license": "BSD-3-Clause"
},
"node_modules/@hapi/topo": {
"version": "5.1.0",
"resolved": "https://registry.npmjs.org/@hapi/topo/-/topo-5.1.0.tgz",
"integrity": "sha512-foQZKJig7Ob0BMAYBfcJk8d77QtOe7Wo4ox7ff1lQYoNNAb6jwcY1ncdoy2e9wQZzvNy7ODZCYJkK8kzmcAnAg==",
- "dev": true,
+ "devOptional": true,
"license": "BSD-3-Clause",
"dependencies": {
"@hapi/hoek": "^9.0.0"
@@ -2675,7 +2672,7 @@
"version": "2.1.5",
"resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz",
"integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==",
- "dev": true,
+ "devOptional": true,
"license": "MIT",
"dependencies": {
"@nodelib/fs.stat": "2.0.5",
@@ -2689,7 +2686,7 @@
"version": "2.0.5",
"resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz",
"integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==",
- "dev": true,
+ "devOptional": true,
"license": "MIT",
"engines": {
"node": ">= 8"
@@ -2699,7 +2696,7 @@
"version": "1.2.8",
"resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz",
"integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==",
- "dev": true,
+ "devOptional": true,
"license": "MIT",
"dependencies": {
"@nodelib/fs.scandir": "2.1.5",
@@ -2725,7 +2722,7 @@
"version": "20.1.0",
"resolved": "https://registry.npmjs.org/@react-native-community/cli/-/cli-20.1.0.tgz",
"integrity": "sha512-441WsVtRe4nGJ9OzA+QMU1+22lA6Q2hRWqqIMKD0wjEMLqcSfOZyu2UL9a/yRpL/dRpyUsU4n7AxqKfTKO/Csg==",
- "dev": true,
+ "devOptional": true,
"license": "MIT",
"dependencies": {
"@react-native-community/cli-clean": "20.1.0",
@@ -2755,7 +2752,7 @@
"version": "20.1.0",
"resolved": "https://registry.npmjs.org/@react-native-community/cli-clean/-/cli-clean-20.1.0.tgz",
"integrity": "sha512-77L4DifWfxAT8ByHnkypge7GBMYpbJAjBGV+toowt5FQSGaTBDcBHCX+FFqFRukD5fH6i8sZ41Gtw+nbfCTTIA==",
- "dev": true,
+ "devOptional": true,
"license": "MIT",
"dependencies": {
"@react-native-community/cli-tools": "20.1.0",
@@ -2768,7 +2765,7 @@
"version": "20.1.0",
"resolved": "https://registry.npmjs.org/@react-native-community/cli-config/-/cli-config-20.1.0.tgz",
"integrity": "sha512-1x9rhLLR/dKKb92Lb5O0l0EmUG08FHf+ZVyVEf9M+tX+p5QIm52MRiy43R0UAZ2jJnFApxRk+N3sxoYK4Dtnag==",
- "dev": true,
+ "devOptional": true,
"license": "MIT",
"dependencies": {
"@react-native-community/cli-tools": "20.1.0",
@@ -2783,7 +2780,7 @@
"version": "20.1.0",
"resolved": "https://registry.npmjs.org/@react-native-community/cli-config-android/-/cli-config-android-20.1.0.tgz",
"integrity": "sha512-3A01ZDyFeCALzzPcwP/fleHoP3sGNq1UX7FzxkTrOFX8RRL9ntXNXQd27E56VU4BBxGAjAJT4Utw8pcOjJceIA==",
- "dev": true,
+ "devOptional": true,
"license": "MIT",
"dependencies": {
"@react-native-community/cli-tools": "20.1.0",
@@ -2796,7 +2793,7 @@
"version": "20.1.0",
"resolved": "https://registry.npmjs.org/@react-native-community/cli-config-apple/-/cli-config-apple-20.1.0.tgz",
"integrity": "sha512-n6JVs8Q3yxRbtZQOy05ofeb1kGtspGN3SgwPmuaqvURF9fsuS7c4/9up2Kp9C+1D2J1remPJXiZLNGOcJvfpOA==",
- "dev": true,
+ "devOptional": true,
"license": "MIT",
"dependencies": {
"@react-native-community/cli-tools": "20.1.0",
@@ -2809,7 +2806,7 @@
"version": "20.1.0",
"resolved": "https://registry.npmjs.org/@react-native-community/cli-doctor/-/cli-doctor-20.1.0.tgz",
"integrity": "sha512-QfJF1GVjA4PBrIT3SJ0vFFIu0km1vwOmLDlOYVqfojajZJ+Dnvl0f94GN1il/jT7fITAxom///XH3/URvi7YTQ==",
- "dev": true,
+ "devOptional": true,
"license": "MIT",
"dependencies": {
"@react-native-community/cli-config": "20.1.0",
@@ -2833,7 +2830,7 @@
"version": "7.7.4",
"resolved": "https://registry.npmjs.org/semver/-/semver-7.7.4.tgz",
"integrity": "sha512-vFKC2IEtQnVhpT78h1Yp8wzwrf8CM+MzKMHGJZfBtzhZNycRFnXsHk6E5TxIkkMsgNS7mdX3AGB7x2QM2di4lA==",
- "dev": true,
+ "devOptional": true,
"license": "ISC",
"bin": {
"semver": "bin/semver.js"
@@ -2846,7 +2843,7 @@
"version": "20.1.0",
"resolved": "https://registry.npmjs.org/@react-native-community/cli-platform-android/-/cli-platform-android-20.1.0.tgz",
"integrity": "sha512-TeHPDThOwDppQRpndm9kCdRCBI8AMy3HSIQ+iy7VYQXL5BtZ5LfmGdusoj7nVN/ZGn0Lc6Gwts5qowyupXdeKg==",
- "dev": true,
+ "devOptional": true,
"license": "MIT",
"dependencies": {
"@react-native-community/cli-config-android": "20.1.0",
@@ -2860,7 +2857,7 @@
"version": "20.1.0",
"resolved": "https://registry.npmjs.org/@react-native-community/cli-platform-apple/-/cli-platform-apple-20.1.0.tgz",
"integrity": "sha512-0ih1hrYezSM2cuOlVnwBEFtMwtd8YgpTLmZauDJCv50rIumtkI1cQoOgLoS4tbPCj9U/Vn2a9BFH0DLFOOIacg==",
- "dev": true,
+ "devOptional": true,
"license": "MIT",
"dependencies": {
"@react-native-community/cli-config-apple": "20.1.0",
@@ -2874,7 +2871,7 @@
"version": "20.1.0",
"resolved": "https://registry.npmjs.org/@react-native-community/cli-platform-ios/-/cli-platform-ios-20.1.0.tgz",
"integrity": "sha512-XN7Da9z4WsJxtqVtEzY8q2bv22OsvzaFP5zy5+phMWNoJlU4lf7IvBSxqGYMpQ9XhYP7arDw5vmW4W34s06rnA==",
- "dev": true,
+ "devOptional": true,
"license": "MIT",
"dependencies": {
"@react-native-community/cli-platform-apple": "20.1.0"
@@ -2884,7 +2881,7 @@
"version": "20.1.0",
"resolved": "https://registry.npmjs.org/@react-native-community/cli-server-api/-/cli-server-api-20.1.0.tgz",
"integrity": "sha512-Tb415Oh8syXNT2zOzLzFkBXznzGaqKCiaichxKzGCDKg6JGHp3jSuCmcTcaPeYC7oc32n/S3Psw7798r4Q/7lA==",
- "dev": true,
+ "devOptional": true,
"license": "MIT",
"dependencies": {
"@react-native-community/cli-tools": "20.1.0",
@@ -2903,7 +2900,7 @@
"version": "20.1.0",
"resolved": "https://registry.npmjs.org/@react-native-community/cli-tools/-/cli-tools-20.1.0.tgz",
"integrity": "sha512-/YmzHGOkY6Bgrv4OaA1L8rFqsBlQd1EB2/ipAoKPiieV0EcB5PUamUSuNeFU3sBZZTYQCUENwX4wgOHgFUlDnQ==",
- "dev": true,
+ "devOptional": true,
"license": "MIT",
"dependencies": {
"@vscode/sudo-prompt": "^9.0.0",
@@ -2922,7 +2919,7 @@
"version": "7.7.4",
"resolved": "https://registry.npmjs.org/semver/-/semver-7.7.4.tgz",
"integrity": "sha512-vFKC2IEtQnVhpT78h1Yp8wzwrf8CM+MzKMHGJZfBtzhZNycRFnXsHk6E5TxIkkMsgNS7mdX3AGB7x2QM2di4lA==",
- "dev": true,
+ "devOptional": true,
"license": "ISC",
"bin": {
"semver": "bin/semver.js"
@@ -2935,7 +2932,7 @@
"version": "20.1.0",
"resolved": "https://registry.npmjs.org/@react-native-community/cli-types/-/cli-types-20.1.0.tgz",
"integrity": "sha512-D0kDspcwgbVXyNjwicT7Bb1JgXjijTw1JJd+qxyF/a9+sHv7TU4IchV+gN38QegeXqVyM4Ym7YZIvXMFBmyJqA==",
- "dev": true,
+ "devOptional": true,
"license": "MIT",
"dependencies": {
"joi": "^17.2.1"
@@ -2945,7 +2942,7 @@
"version": "7.7.4",
"resolved": "https://registry.npmjs.org/semver/-/semver-7.7.4.tgz",
"integrity": "sha512-vFKC2IEtQnVhpT78h1Yp8wzwrf8CM+MzKMHGJZfBtzhZNycRFnXsHk6E5TxIkkMsgNS7mdX3AGB7x2QM2di4lA==",
- "dev": true,
+ "devOptional": true,
"license": "ISC",
"bin": {
"semver": "bin/semver.js"
@@ -2967,7 +2964,7 @@
"version": "0.84.1",
"resolved": "https://registry.npmjs.org/@react-native/babel-plugin-codegen/-/babel-plugin-codegen-0.84.1.tgz",
"integrity": "sha512-vorvcvptGxtK0qTDCFQb+W3CU6oIhzcX5dduetWRBoAhXdthEQM0MQnF+GTXoXL8/luffKgy7PlZRG/WeI/oRQ==",
- "dev": true,
+ "devOptional": true,
"license": "MIT",
"dependencies": {
"@babel/traverse": "^7.25.3",
@@ -2981,7 +2978,7 @@
"version": "0.84.1",
"resolved": "https://registry.npmjs.org/@react-native/babel-preset/-/babel-preset-0.84.1.tgz",
"integrity": "sha512-3GpmCKk21f4oe32bKIdmkdn+WydvhhZL+1nsoFBGi30Qrq9vL16giKu31OcnWshYz139x+mVAvCyoyzgn8RXSw==",
- "dev": true,
+ "devOptional": true,
"license": "MIT",
"dependencies": {
"@babel/core": "^7.25.2",
@@ -3243,7 +3240,7 @@
"version": "0.84.1",
"resolved": "https://registry.npmjs.org/@react-native/metro-babel-transformer/-/metro-babel-transformer-0.84.1.tgz",
"integrity": "sha512-NswINguTz0eg1Dc0oGO/1dejXSr6iQaz8/NnCRn5HJdA3dGfqadS7zlYv0YjiWpgKgcW6uENaIEgJOQww0KSpw==",
- "dev": true,
+ "devOptional": true,
"license": "MIT",
"dependencies": {
"@babel/core": "^7.25.2",
@@ -3262,7 +3259,7 @@
"version": "0.84.1",
"resolved": "https://registry.npmjs.org/@react-native/metro-config/-/metro-config-0.84.1.tgz",
"integrity": "sha512-KlRawK4aXxRLlR3HYVfZKhfQp7sejQefQ/LttUWUkErhKO0AFt+yznoSLq7xwIrH9K3A3YwImHuFVtUtuDmurA==",
- "dev": true,
+ "devOptional": true,
"license": "MIT",
"dependencies": {
"@react-native/js-polyfills": "0.84.1",
@@ -3444,7 +3441,7 @@
"version": "4.1.5",
"resolved": "https://registry.npmjs.org/@sideway/address/-/address-4.1.5.tgz",
"integrity": "sha512-IqO/DUQHUkPeixNQ8n0JA6102hT9CmaljNTPmQ1u8MEhBo/R4Q8eKLN/vGZxuebwOroDB4cbpjheD4+/sKFK4Q==",
- "dev": true,
+ "devOptional": true,
"license": "BSD-3-Clause",
"dependencies": {
"@hapi/hoek": "^9.0.0"
@@ -3454,14 +3451,14 @@
"version": "3.0.1",
"resolved": "https://registry.npmjs.org/@sideway/formula/-/formula-3.0.1.tgz",
"integrity": "sha512-/poHZJJVjx3L+zVD6g9KgHfYnb443oi7wLu/XKojDviHy6HOEOA6z1Trk5aR1dGcmPenJEgb2sK2I80LeS3MIg==",
- "dev": true,
+ "devOptional": true,
"license": "BSD-3-Clause"
},
"node_modules/@sideway/pinpoint": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/@sideway/pinpoint/-/pinpoint-2.0.0.tgz",
"integrity": "sha512-RNiOoTPkptFtSVzQevY/yWtZwf/RxyVnPy/OcA9HBM3MlGDnBEYL5B41H0MTn0Uec8Hi+2qUtTfG2WWZBmMejQ==",
- "dev": true,
+ "devOptional": true,
"license": "BSD-3-Clause"
},
"node_modules/@sinclair/typebox": {
@@ -3586,21 +3583,12 @@
"version": "19.2.14",
"resolved": "https://registry.npmjs.org/@types/react/-/react-19.2.14.tgz",
"integrity": "sha512-ilcTH/UniCkMdtexkoCN0bI7pMcJDvmQFPvuPvmEaYA/NSfFTAgdUSLAoVjaRJm7+6PvcM+q1zYOwS4wTYMF9w==",
- "dev": true,
+ "devOptional": true,
"license": "MIT",
"dependencies": {
"csstype": "^3.2.2"
}
},
- "node_modules/@types/react-dom": {
- "version": "19.2.3",
- "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-19.2.3.tgz",
- "integrity": "sha512-jp2L/eY6fn+KgVVQAOqYItbF0VY/YApe5Mz2F0aykSO8gx31bYCZyvSeYxCHKvzHG5eZjc+zyaS5BrBWya2+kQ==",
- "license": "MIT",
- "peerDependencies": {
- "@types/react": "^19.2.0"
- }
- },
"node_modules/@types/react-test-renderer": {
"version": "19.1.0",
"resolved": "https://registry.npmjs.org/@types/react-test-renderer/-/react-test-renderer-19.1.0.tgz",
@@ -3889,7 +3877,7 @@
"version": "9.3.2",
"resolved": "https://registry.npmjs.org/@vscode/sudo-prompt/-/sudo-prompt-9.3.2.tgz",
"integrity": "sha512-gcXoCN00METUNFeQOFJ+C9xUI0DKB+0EGMVg7wbVYRHBw2Eq3fKisDZOkRdOz3kqXRKOENMfShPOmypw1/8nOw==",
- "dev": true,
+ "devOptional": true,
"license": "MIT"
},
"node_modules/abort-controller": {
@@ -3908,7 +3896,7 @@
"version": "1.3.8",
"resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz",
"integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==",
- "dev": true,
+ "devOptional": true,
"license": "MIT",
"dependencies": {
"mime-types": "~2.1.34",
@@ -3922,7 +3910,7 @@
"version": "0.6.3",
"resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz",
"integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==",
- "dev": true,
+ "devOptional": true,
"license": "MIT",
"engines": {
"node": ">= 0.6"
@@ -4015,7 +4003,7 @@
"version": "0.2.1",
"resolved": "https://registry.npmjs.org/ansi-fragments/-/ansi-fragments-0.2.1.tgz",
"integrity": "sha512-DykbNHxuXQwUDRv5ibc2b0x7uw7wmwOGLBUd5RmaQ5z8Lhx19vwvKV+FAsM5rEA6dEcHxX+/Ad5s9eF2k2bB+w==",
- "dev": true,
+ "devOptional": true,
"license": "MIT",
"dependencies": {
"colorette": "^1.0.7",
@@ -4027,7 +4015,7 @@
"version": "4.1.1",
"resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.1.tgz",
"integrity": "sha512-ILlv4k/3f6vfQ4OoP2AGvirOktlQ98ZEL1k9FaQjxa3L1abBgbuTDAdPOpvbGncC0BTVQrl+OM8xZGK6tWXt7g==",
- "dev": true,
+ "devOptional": true,
"license": "MIT",
"engines": {
"node": ">=6"
@@ -4037,7 +4025,7 @@
"version": "5.2.0",
"resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz",
"integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==",
- "dev": true,
+ "devOptional": true,
"license": "MIT",
"dependencies": {
"ansi-regex": "^4.1.0"
@@ -4087,14 +4075,14 @@
"version": "1.2.7",
"resolved": "https://registry.npmjs.org/appdirsjs/-/appdirsjs-1.2.7.tgz",
"integrity": "sha512-Quji6+8kLBC3NnBeo14nPDq0+2jUs5s3/xEye+udFHumHhRk4M7aAMXp/PBJqkKYGuuyR9M/6Dq7d2AViiGmhw==",
- "dev": true,
+ "devOptional": true,
"license": "MIT"
},
"node_modules/argparse": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz",
"integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==",
- "dev": true,
+ "devOptional": true,
"license": "Python-2.0"
},
"node_modules/array-buffer-byte-length": {
@@ -4245,7 +4233,7 @@
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-1.0.0.tgz",
"integrity": "sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg==",
- "dev": true,
+ "devOptional": true,
"license": "MIT",
"engines": {
"node": ">=4"
@@ -4265,7 +4253,7 @@
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.1.tgz",
"integrity": "sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ==",
- "dev": true,
+ "devOptional": true,
"license": "MIT"
},
"node_modules/available-typed-arrays": {
@@ -4356,7 +4344,7 @@
"version": "0.4.15",
"resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.15.tgz",
"integrity": "sha512-hR3GwrRwHUfYwGfrisXPIDP3JcYfBrW7wKE7+Au6wDYl7fm/ka1NEII6kORzxNU556JjfidZeBsO10kYvtV1aw==",
- "dev": true,
+ "devOptional": true,
"license": "MIT",
"dependencies": {
"@babel/compat-data": "^7.28.6",
@@ -4385,7 +4373,7 @@
"version": "0.6.6",
"resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.6.6.tgz",
"integrity": "sha512-hYm+XLYRMvupxiQzrvXUj7YyvFFVfv5gI0R71AJzudg1g2AI2vyCPPIFEBjk162/wFzti3inBHo7isWFuEVS/A==",
- "dev": true,
+ "devOptional": true,
"license": "MIT",
"dependencies": {
"@babel/helper-define-polyfill-provider": "^0.6.6"
@@ -4407,7 +4395,7 @@
"version": "0.0.2",
"resolved": "https://registry.npmjs.org/babel-plugin-transform-flow-enums/-/babel-plugin-transform-flow-enums-0.0.2.tgz",
"integrity": "sha512-g4aaCrDDOsWjbm0PUUeVnkcVd6AKJsVc/MbnPhEotEpkeJQP6b8nzewohQi7+QS8UyPehOhGWn0nOwjvWpmMvQ==",
- "dev": true,
+ "devOptional": true,
"license": "MIT",
"dependencies": {
"@babel/plugin-syntax-flow": "^7.12.1"
@@ -4501,7 +4489,7 @@
"version": "4.1.0",
"resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz",
"integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==",
- "dev": true,
+ "devOptional": true,
"license": "MIT",
"dependencies": {
"buffer": "^5.5.0",
@@ -4513,7 +4501,7 @@
"version": "1.20.4",
"resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.4.tgz",
"integrity": "sha512-ZTgYYLMOXY9qKU/57FAo8F+HA2dGX7bqGc71txDRC1rS4frdFI5R7NhluHxH6M0YItAP0sHB4uqAOcYKxO6uGA==",
- "dev": true,
+ "devOptional": true,
"license": "MIT",
"dependencies": {
"bytes": "~3.1.2",
@@ -4538,7 +4526,7 @@
"version": "2.6.9",
"resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
"integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
- "dev": true,
+ "devOptional": true,
"license": "MIT",
"dependencies": {
"ms": "2.0.0"
@@ -4548,7 +4536,7 @@
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
"integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==",
- "dev": true,
+ "devOptional": true,
"license": "MIT"
},
"node_modules/brace-expansion": {
@@ -4622,7 +4610,7 @@
"version": "5.7.1",
"resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz",
"integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==",
- "dev": true,
+ "devOptional": true,
"funding": [
{
"type": "github",
@@ -4653,7 +4641,7 @@
"version": "3.1.2",
"resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz",
"integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==",
- "dev": true,
+ "devOptional": true,
"license": "MIT",
"engines": {
"node": ">= 0.8"
@@ -4682,7 +4670,7 @@
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz",
"integrity": "sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==",
- "dev": true,
+ "devOptional": true,
"license": "MIT",
"dependencies": {
"es-errors": "^1.3.0",
@@ -4696,7 +4684,7 @@
"version": "1.0.4",
"resolved": "https://registry.npmjs.org/call-bound/-/call-bound-1.0.4.tgz",
"integrity": "sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg==",
- "dev": true,
+ "devOptional": true,
"license": "MIT",
"dependencies": {
"call-bind-apply-helpers": "^1.0.2",
@@ -4713,7 +4701,7 @@
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz",
"integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==",
- "dev": true,
+ "devOptional": true,
"license": "MIT",
"engines": {
"node": ">=6"
@@ -4852,23 +4840,11 @@
"dev": true,
"license": "MIT"
},
- "node_modules/class-variance-authority": {
- "version": "0.7.1",
- "resolved": "https://registry.npmjs.org/class-variance-authority/-/class-variance-authority-0.7.1.tgz",
- "integrity": "sha512-Ka+9Trutv7G8M6WT6SeiRWz792K5qEqIGEGzXKhAE6xOWAY6pPH8U+9IY3oCMv6kqTmLsv7Xh/2w2RigkePMsg==",
- "license": "Apache-2.0",
- "dependencies": {
- "clsx": "^2.1.1"
- },
- "funding": {
- "url": "https://polar.sh/cva"
- }
- },
"node_modules/cli-cursor": {
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz",
"integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==",
- "dev": true,
+ "devOptional": true,
"license": "MIT",
"dependencies": {
"restore-cursor": "^3.1.0"
@@ -4881,7 +4857,7 @@
"version": "2.9.2",
"resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.9.2.tgz",
"integrity": "sha512-ywqV+5MmyL4E7ybXgKys4DugZbX0FC6LnwrhjuykIjnK9k8OQacQ7axGKnjDXWNhns0xot3bZI5h55H8yo9cJg==",
- "dev": true,
+ "devOptional": true,
"license": "MIT",
"engines": {
"node": ">=6"
@@ -4908,21 +4884,12 @@
"version": "1.0.4",
"resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz",
"integrity": "sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==",
- "dev": true,
+ "devOptional": true,
"license": "MIT",
"engines": {
"node": ">=0.8"
}
},
- "node_modules/clsx": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/clsx/-/clsx-2.1.1.tgz",
- "integrity": "sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==",
- "license": "MIT",
- "engines": {
- "node": ">=6"
- }
- },
"node_modules/co": {
"version": "4.6.0",
"resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz",
@@ -4986,21 +4953,21 @@
"version": "1.4.0",
"resolved": "https://registry.npmjs.org/colorette/-/colorette-1.4.0.tgz",
"integrity": "sha512-Y2oEozpomLn7Q3HFP7dpww7AtMJplbM9lGZP6RDfHqmbeRjiwRg4n6VM6j4KLmRke85uWEI7JqF17f3pqdRA0g==",
- "dev": true,
+ "devOptional": true,
"license": "MIT"
},
"node_modules/command-exists": {
"version": "1.2.9",
"resolved": "https://registry.npmjs.org/command-exists/-/command-exists-1.2.9.tgz",
"integrity": "sha512-LTQ/SGc+s0Xc0Fu5WaKnR0YiygZkm9eKFvyS+fRsU7/ZWFF8ykFM6Pc9aCVf1+xasOOZpO3BAVgVrKvsqKHV7w==",
- "dev": true,
+ "devOptional": true,
"license": "MIT"
},
"node_modules/commander": {
"version": "9.5.0",
"resolved": "https://registry.npmjs.org/commander/-/commander-9.5.0.tgz",
"integrity": "sha512-KRs7WVDKg86PWiuAqhDrAQnTXZKraVcCc6vFdL14qrZ/DcWwuRo7VoiYXalXO7S5GKpqYiVEwCbgFDfxNHKJBQ==",
- "dev": true,
+ "devOptional": true,
"license": "MIT",
"engines": {
"node": "^12.20.0 || >=14"
@@ -5010,7 +4977,7 @@
"version": "2.0.18",
"resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.18.tgz",
"integrity": "sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==",
- "dev": true,
+ "devOptional": true,
"license": "MIT",
"dependencies": {
"mime-db": ">= 1.43.0 < 2"
@@ -5023,7 +4990,7 @@
"version": "1.8.1",
"resolved": "https://registry.npmjs.org/compression/-/compression-1.8.1.tgz",
"integrity": "sha512-9mAqGPHLakhCLeNyxPkK4xVo746zQ/czLH1Ky+vkitMnWfWZps8r0qXuwhwizagCRttsL4lfG4pIOvaWLpAP0w==",
- "dev": true,
+ "devOptional": true,
"license": "MIT",
"dependencies": {
"bytes": "3.1.2",
@@ -5042,7 +5009,7 @@
"version": "2.6.9",
"resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
"integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
- "dev": true,
+ "devOptional": true,
"license": "MIT",
"dependencies": {
"ms": "2.0.0"
@@ -5052,7 +5019,7 @@
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
"integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==",
- "dev": true,
+ "devOptional": true,
"license": "MIT"
},
"node_modules/concat-map": {
@@ -5095,7 +5062,7 @@
"version": "1.0.5",
"resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz",
"integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==",
- "dev": true,
+ "devOptional": true,
"license": "MIT",
"engines": {
"node": ">= 0.6"
@@ -5111,7 +5078,7 @@
"version": "3.48.0",
"resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.48.0.tgz",
"integrity": "sha512-OM4cAF3D6VtH/WkLtWvyNC56EZVXsZdU3iqaMG2B4WvYrlqU831pc4UtG5yp0sE9z8Y02wVN7PjW5Zf9Gt0f1Q==",
- "dev": true,
+ "devOptional": true,
"license": "MIT",
"dependencies": {
"browserslist": "^4.28.1"
@@ -5125,7 +5092,7 @@
"version": "9.0.1",
"resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-9.0.1.tgz",
"integrity": "sha512-hr4ihw+DBqcvrsEDioRO31Z17x71pUYoNe/4h6Z0wB72p7MU7/9gH8Q3s12NFhHPfYBBOV3qyfUxmr/Yn3shnQ==",
- "dev": true,
+ "devOptional": true,
"license": "MIT",
"dependencies": {
"env-paths": "^2.2.1",
@@ -5188,7 +5155,7 @@
"version": "3.2.3",
"resolved": "https://registry.npmjs.org/csstype/-/csstype-3.2.3.tgz",
"integrity": "sha512-z1HGKcYy2xA8AGQfwrn0PAy+PB7X/GSj3UVJW9qKyn43xWa+gl5nXmU4qqLMRzWVLFC8KusUX8T/0kCiOYpAIQ==",
- "dev": true,
+ "devOptional": true,
"license": "MIT"
},
"node_modules/data-view-buffer": {
@@ -5249,7 +5216,7 @@
"version": "1.11.19",
"resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.19.tgz",
"integrity": "sha512-t5EcLVS6QPBNqM2z8fakk/NKel+Xzshgt8FFKAn+qwlD1pzZWxh0nVCrvFK7ZDb6XucZeF9z8C7CBWTRIVApAw==",
- "dev": true,
+ "devOptional": true,
"license": "MIT"
},
"node_modules/debug": {
@@ -5273,7 +5240,7 @@
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz",
"integrity": "sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==",
- "dev": true,
+ "devOptional": true,
"license": "MIT",
"engines": {
"node": ">=0.10.0"
@@ -5314,7 +5281,7 @@
"version": "4.3.1",
"resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz",
"integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==",
- "dev": true,
+ "devOptional": true,
"license": "MIT",
"engines": {
"node": ">=0.10.0"
@@ -5324,7 +5291,7 @@
"version": "1.0.4",
"resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.4.tgz",
"integrity": "sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==",
- "dev": true,
+ "devOptional": true,
"license": "MIT",
"dependencies": {
"clone": "^1.0.2"
@@ -5425,7 +5392,7 @@
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz",
"integrity": "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==",
- "dev": true,
+ "devOptional": true,
"license": "MIT",
"dependencies": {
"call-bind-apply-helpers": "^1.0.1",
@@ -5480,7 +5447,7 @@
"version": "2.2.1",
"resolved": "https://registry.npmjs.org/env-paths/-/env-paths-2.2.1.tgz",
"integrity": "sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==",
- "dev": true,
+ "devOptional": true,
"license": "MIT",
"engines": {
"node": ">=6"
@@ -5490,7 +5457,7 @@
"version": "7.21.0",
"resolved": "https://registry.npmjs.org/envinfo/-/envinfo-7.21.0.tgz",
"integrity": "sha512-Lw7I8Zp5YKHFCXL7+Dz95g4CcbMEpgvqZNNq3AmlT5XAV6CgAAk6gyAMqn2zjw08K9BHfcNuKrMiCPLByGafow==",
- "dev": true,
+ "devOptional": true,
"license": "MIT",
"bin": {
"envinfo": "dist/cli.js"
@@ -5503,7 +5470,7 @@
"version": "1.3.4",
"resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.4.tgz",
"integrity": "sha512-sqQamAnR14VgCr1A618A3sGrygcpK+HEbenA/HiEAkkUwcZIIB/tgWqHFxWgOyDh4nB4JCRimh79dR5Ywc9MDQ==",
- "dev": true,
+ "devOptional": true,
"license": "MIT",
"dependencies": {
"is-arrayish": "^0.2.1"
@@ -5522,7 +5489,7 @@
"version": "1.5.2",
"resolved": "https://registry.npmjs.org/errorhandler/-/errorhandler-1.5.2.tgz",
"integrity": "sha512-kNAL7hESndBCrWwS72QyV3IVOTrVmj9D062FV5BQswNL5zEdeRmz/WJFyh6Aj/plvvSOrzddkxW57HgkZcR9Fw==",
- "dev": true,
+ "devOptional": true,
"license": "MIT",
"dependencies": {
"accepts": "~1.3.8",
@@ -5609,7 +5576,7 @@
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz",
"integrity": "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==",
- "dev": true,
+ "devOptional": true,
"license": "MIT",
"engines": {
"node": ">= 0.4"
@@ -5619,7 +5586,7 @@
"version": "1.3.0",
"resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz",
"integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==",
- "dev": true,
+ "devOptional": true,
"license": "MIT",
"engines": {
"node": ">= 0.4"
@@ -5657,7 +5624,7 @@
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.1.1.tgz",
"integrity": "sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==",
- "dev": true,
+ "devOptional": true,
"license": "MIT",
"dependencies": {
"es-errors": "^1.3.0"
@@ -6273,7 +6240,7 @@
"version": "5.1.1",
"resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz",
"integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==",
- "dev": true,
+ "devOptional": true,
"license": "MIT",
"dependencies": {
"cross-spawn": "^7.0.3",
@@ -6335,7 +6302,7 @@
"version": "3.3.3",
"resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.3.tgz",
"integrity": "sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==",
- "dev": true,
+ "devOptional": true,
"license": "MIT",
"dependencies": {
"@nodelib/fs.stat": "^2.0.2",
@@ -6352,7 +6319,7 @@
"version": "5.1.2",
"resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz",
"integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==",
- "dev": true,
+ "devOptional": true,
"license": "ISC",
"dependencies": {
"is-glob": "^4.0.1"
@@ -6378,7 +6345,7 @@
"version": "4.5.4",
"resolved": "https://registry.npmjs.org/fast-xml-parser/-/fast-xml-parser-4.5.4.tgz",
"integrity": "sha512-jE8ugADnYOBsu1uaoayVl1tVKAMNOXyjwvv2U6udEA2ORBhDooJDWoGxTkhd4Qn4yh59JVVt/pKXtjPwx9OguQ==",
- "dev": true,
+ "devOptional": true,
"funding": [
{
"type": "github",
@@ -6397,7 +6364,7 @@
"version": "1.20.1",
"resolved": "https://registry.npmjs.org/fastq/-/fastq-1.20.1.tgz",
"integrity": "sha512-GGToxJ/w1x32s/D2EKND7kTil4n8OVk/9mycTc4VDza13lOvpUZTGX3mFSCtV9ksdGBVzvsyAVLM6mHFThxXxw==",
- "dev": true,
+ "devOptional": true,
"license": "ISC",
"dependencies": {
"reusify": "^1.0.4"
@@ -6507,7 +6474,7 @@
"version": "5.0.0",
"resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz",
"integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==",
- "dev": true,
+ "devOptional": true,
"license": "MIT",
"dependencies": {
"locate-path": "^6.0.0",
@@ -6577,7 +6544,7 @@
"version": "8.1.0",
"resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz",
"integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==",
- "dev": true,
+ "devOptional": true,
"license": "MIT",
"dependencies": {
"graceful-fs": "^4.2.0",
@@ -6612,7 +6579,7 @@
"version": "1.1.2",
"resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz",
"integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==",
- "dev": true,
+ "devOptional": true,
"license": "MIT",
"funding": {
"url": "https://github.com/sponsors/ljharb"
@@ -6681,7 +6648,7 @@
"version": "1.3.0",
"resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.3.0.tgz",
"integrity": "sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==",
- "dev": true,
+ "devOptional": true,
"license": "MIT",
"dependencies": {
"call-bind-apply-helpers": "^1.0.2",
@@ -6715,7 +6682,7 @@
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/get-proto/-/get-proto-1.0.1.tgz",
"integrity": "sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==",
- "dev": true,
+ "devOptional": true,
"license": "MIT",
"dependencies": {
"dunder-proto": "^1.0.1",
@@ -6729,7 +6696,7 @@
"version": "6.0.1",
"resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz",
"integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==",
- "dev": true,
+ "devOptional": true,
"license": "MIT",
"engines": {
"node": ">=10"
@@ -6855,7 +6822,7 @@
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz",
"integrity": "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==",
- "dev": true,
+ "devOptional": true,
"license": "MIT",
"engines": {
"node": ">= 0.4"
@@ -6932,7 +6899,7 @@
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.1.0.tgz",
"integrity": "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==",
- "dev": true,
+ "devOptional": true,
"license": "MIT",
"engines": {
"node": ">= 0.4"
@@ -6961,7 +6928,7 @@
"version": "2.0.2",
"resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz",
"integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==",
- "dev": true,
+ "devOptional": true,
"license": "MIT",
"dependencies": {
"function-bind": "^1.1.2"
@@ -7044,7 +7011,7 @@
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz",
"integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==",
- "dev": true,
+ "devOptional": true,
"license": "Apache-2.0",
"engines": {
"node": ">=10.17.0"
@@ -7054,7 +7021,7 @@
"version": "0.4.24",
"resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz",
"integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==",
- "dev": true,
+ "devOptional": true,
"license": "MIT",
"dependencies": {
"safer-buffer": ">= 2.1.2 < 3"
@@ -7067,7 +7034,7 @@
"version": "1.2.1",
"resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz",
"integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==",
- "dev": true,
+ "devOptional": true,
"funding": [
{
"type": "github",
@@ -7113,7 +7080,7 @@
"version": "3.3.1",
"resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.1.tgz",
"integrity": "sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==",
- "dev": true,
+ "devOptional": true,
"license": "MIT",
"dependencies": {
"parent-module": "^1.0.0",
@@ -7218,7 +7185,7 @@
"version": "0.2.1",
"resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz",
"integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==",
- "dev": true,
+ "devOptional": true,
"license": "MIT"
},
"node_modules/is-async-function": {
@@ -7291,7 +7258,7 @@
"version": "2.16.1",
"resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.16.1.tgz",
"integrity": "sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==",
- "dev": true,
+ "devOptional": true,
"license": "MIT",
"dependencies": {
"hasown": "^2.0.2"
@@ -7357,7 +7324,7 @@
"version": "2.1.1",
"resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz",
"integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==",
- "dev": true,
+ "devOptional": true,
"license": "MIT",
"engines": {
"node": ">=0.10.0"
@@ -7383,7 +7350,7 @@
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz",
"integrity": "sha512-VHskAKYM8RfSFXwee5t5cbN5PZeq1Wrh6qd5bkyiXIf6UQcN6w/A0eXM9r6t8d+GYOh+o6ZhiEnb88LN/Y8m2w==",
- "dev": true,
+ "devOptional": true,
"license": "MIT",
"engines": {
"node": ">=4"
@@ -7423,7 +7390,7 @@
"version": "4.0.3",
"resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz",
"integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==",
- "dev": true,
+ "devOptional": true,
"license": "MIT",
"dependencies": {
"is-extglob": "^2.1.1"
@@ -7436,7 +7403,7 @@
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/is-interactive/-/is-interactive-1.0.0.tgz",
"integrity": "sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==",
- "dev": true,
+ "devOptional": true,
"license": "MIT",
"engines": {
"node": ">=8"
@@ -7565,7 +7532,7 @@
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz",
"integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==",
- "dev": true,
+ "devOptional": true,
"license": "MIT",
"engines": {
"node": ">=8"
@@ -7629,7 +7596,7 @@
"version": "0.1.0",
"resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz",
"integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==",
- "dev": true,
+ "devOptional": true,
"license": "MIT",
"engines": {
"node": ">=10"
@@ -7688,7 +7655,7 @@
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-1.1.0.tgz",
"integrity": "sha512-gfygJYZ2gLTDlmbWMI0CE2MwnFzSN/2SZfkMlItC4K/JBlsWVDB0bO6XhqcY13YXE7iMcAJnzTCJjPiTeJJ0Mw==",
- "dev": true,
+ "devOptional": true,
"license": "MIT",
"engines": {
"node": ">=4"
@@ -8397,7 +8364,7 @@
"version": "17.13.3",
"resolved": "https://registry.npmjs.org/joi/-/joi-17.13.3.tgz",
"integrity": "sha512-otDA4ldcIx+ZXsKHWmp0YizCweVRZG96J10b0FevjfuncLO1oX59THoAmHkNubYJ+9gWsYsp5k8v4ib6oDv1fA==",
- "dev": true,
+ "devOptional": true,
"license": "BSD-3-Clause",
"dependencies": {
"@hapi/hoek": "^9.3.0",
@@ -8417,7 +8384,7 @@
"version": "4.1.1",
"resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.1.tgz",
"integrity": "sha512-qQKT4zQxXl8lLwBtHMWwaTcGfFOZviOJet3Oy/xmGk2gZH677CJM9EvtfdSkgWcATZhj/55JZ0rmy3myCT5lsA==",
- "dev": true,
+ "devOptional": true,
"license": "MIT",
"dependencies": {
"argparse": "^2.0.1"
@@ -8455,7 +8422,7 @@
"version": "2.3.1",
"resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz",
"integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==",
- "dev": true,
+ "devOptional": true,
"license": "MIT"
},
"node_modules/json-schema-traverse": {
@@ -8488,7 +8455,7 @@
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz",
"integrity": "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==",
- "dev": true,
+ "devOptional": true,
"license": "MIT",
"optionalDependencies": {
"graceful-fs": "^4.1.6"
@@ -8524,7 +8491,7 @@
"version": "3.0.3",
"resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz",
"integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==",
- "dev": true,
+ "devOptional": true,
"license": "MIT",
"engines": {
"node": ">=6"
@@ -8534,7 +8501,7 @@
"version": "2.13.1",
"resolved": "https://registry.npmjs.org/launch-editor/-/launch-editor-2.13.1.tgz",
"integrity": "sha512-lPSddlAAluRKJ7/cjRFoXUFzaX7q/YKI7yPHuEvSJVqoXvFnJov1/Ud87Aa4zULIbA9Nja4mSPK8l0z/7eV2wA==",
- "dev": true,
+ "devOptional": true,
"license": "MIT",
"dependencies": {
"picocolors": "^1.1.1",
@@ -8593,14 +8560,14 @@
"version": "1.2.4",
"resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz",
"integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==",
- "dev": true,
+ "devOptional": true,
"license": "MIT"
},
"node_modules/locate-path": {
"version": "6.0.0",
"resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz",
"integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==",
- "dev": true,
+ "devOptional": true,
"license": "MIT",
"dependencies": {
"p-locate": "^5.0.0"
@@ -8623,7 +8590,7 @@
"version": "4.0.8",
"resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz",
"integrity": "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==",
- "dev": true,
+ "devOptional": true,
"license": "MIT"
},
"node_modules/lodash.merge": {
@@ -8643,7 +8610,7 @@
"version": "4.1.0",
"resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz",
"integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==",
- "dev": true,
+ "devOptional": true,
"license": "MIT",
"dependencies": {
"chalk": "^4.1.0",
@@ -8660,7 +8627,7 @@
"version": "0.7.1",
"resolved": "https://registry.npmjs.org/logkitty/-/logkitty-0.7.1.tgz",
"integrity": "sha512-/3ER20CTTbahrCrpYfPn7Xavv9diBROZpoXGVZDWMw4b/X4uuUwAC0ki85tgsdMRONURyIJbcOvS94QsUBYPbQ==",
- "dev": true,
+ "devOptional": true,
"license": "MIT",
"dependencies": {
"ansi-fragments": "^0.2.1",
@@ -8675,7 +8642,7 @@
"version": "6.0.0",
"resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz",
"integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==",
- "dev": true,
+ "devOptional": true,
"license": "ISC",
"dependencies": {
"string-width": "^4.2.0",
@@ -8687,7 +8654,7 @@
"version": "4.1.0",
"resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz",
"integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==",
- "dev": true,
+ "devOptional": true,
"license": "MIT",
"dependencies": {
"locate-path": "^5.0.0",
@@ -8701,7 +8668,7 @@
"version": "5.0.0",
"resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz",
"integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==",
- "dev": true,
+ "devOptional": true,
"license": "MIT",
"dependencies": {
"p-locate": "^4.1.0"
@@ -8714,7 +8681,7 @@
"version": "2.3.0",
"resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz",
"integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==",
- "dev": true,
+ "devOptional": true,
"license": "MIT",
"dependencies": {
"p-try": "^2.0.0"
@@ -8730,7 +8697,7 @@
"version": "4.1.0",
"resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz",
"integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==",
- "dev": true,
+ "devOptional": true,
"license": "MIT",
"dependencies": {
"p-limit": "^2.2.0"
@@ -8743,7 +8710,7 @@
"version": "6.2.0",
"resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz",
"integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==",
- "dev": true,
+ "devOptional": true,
"license": "MIT",
"dependencies": {
"ansi-styles": "^4.0.0",
@@ -8758,14 +8725,14 @@
"version": "4.0.3",
"resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz",
"integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==",
- "dev": true,
+ "devOptional": true,
"license": "ISC"
},
"node_modules/logkitty/node_modules/yargs": {
"version": "15.4.1",
"resolved": "https://registry.npmjs.org/yargs/-/yargs-15.4.1.tgz",
"integrity": "sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==",
- "dev": true,
+ "devOptional": true,
"license": "MIT",
"dependencies": {
"cliui": "^6.0.0",
@@ -8788,7 +8755,7 @@
"version": "18.1.3",
"resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz",
"integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==",
- "dev": true,
+ "devOptional": true,
"license": "ISC",
"dependencies": {
"camelcase": "^5.0.0",
@@ -8867,7 +8834,7 @@
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz",
"integrity": "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==",
- "dev": true,
+ "devOptional": true,
"license": "MIT",
"engines": {
"node": ">= 0.4"
@@ -8877,7 +8844,7 @@
"version": "0.3.0",
"resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz",
"integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==",
- "dev": true,
+ "devOptional": true,
"license": "MIT",
"engines": {
"node": ">= 0.6"
@@ -8911,7 +8878,7 @@
"version": "1.4.1",
"resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz",
"integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==",
- "dev": true,
+ "devOptional": true,
"license": "MIT",
"engines": {
"node": ">= 8"
@@ -9324,7 +9291,7 @@
"version": "2.6.0",
"resolved": "https://registry.npmjs.org/mime/-/mime-2.6.0.tgz",
"integrity": "sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg==",
- "dev": true,
+ "devOptional": true,
"license": "MIT",
"bin": {
"mime": "cli.js"
@@ -9346,7 +9313,7 @@
"version": "2.1.35",
"resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz",
"integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==",
- "dev": true,
+ "devOptional": true,
"license": "MIT",
"dependencies": {
"mime-db": "1.52.0"
@@ -9359,7 +9326,7 @@
"version": "1.52.0",
"resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz",
"integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==",
- "dev": true,
+ "devOptional": true,
"license": "MIT",
"engines": {
"node": ">= 0.6"
@@ -9369,7 +9336,7 @@
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz",
"integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==",
- "dev": true,
+ "devOptional": true,
"license": "MIT",
"engines": {
"node": ">=6"
@@ -9438,7 +9405,7 @@
"version": "0.6.4",
"resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.4.tgz",
"integrity": "sha512-myRT3DiWPHqho5PrJaIRyaMv2kgYf0mUVgBNOYMuCH5Ki1yEiQaf/ZJuQ62nvpc44wL5WDbTX7yGJi1Neevw8w==",
- "dev": true,
+ "devOptional": true,
"license": "MIT",
"engines": {
"node": ">= 0.6"
@@ -9448,7 +9415,7 @@
"version": "3.0.4",
"resolved": "https://registry.npmjs.org/nocache/-/nocache-3.0.4.tgz",
"integrity": "sha512-WDD0bdg9mbq6F4mRxEYcPWwfA1vxd0mrvKOyxI7Xj/atfRHVeutzuWByG//jfm4uPzp0y4Kj051EORCBSQMycw==",
- "dev": true,
+ "devOptional": true,
"license": "MIT",
"engines": {
"node": ">=12.0.0"
@@ -9489,7 +9456,7 @@
"version": "1.15.0",
"resolved": "https://registry.npmjs.org/node-stream-zip/-/node-stream-zip-1.15.0.tgz",
"integrity": "sha512-LN4fydt9TqhZhThkZIVQnF9cwjU3qmUH9h78Mx/K7d3VvfRqqwthLwJEUOEL0QPZ0XQmNN7be5Ggit5+4dq3Bw==",
- "dev": true,
+ "devOptional": true,
"license": "MIT",
"engines": {
"node": ">=0.12.0"
@@ -9512,7 +9479,7 @@
"version": "4.0.1",
"resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz",
"integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==",
- "dev": true,
+ "devOptional": true,
"license": "MIT",
"dependencies": {
"path-key": "^3.0.0"
@@ -9553,7 +9520,7 @@
"version": "1.13.4",
"resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.4.tgz",
"integrity": "sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew==",
- "dev": true,
+ "devOptional": true,
"license": "MIT",
"engines": {
"node": ">= 0.4"
@@ -9663,7 +9630,7 @@
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.1.0.tgz",
"integrity": "sha512-737ZY3yNnXy37FHkQxPzt4UZ2UWPWiCZWLvFZ4fu5cueciegX0zGPnrlY6bwRg4FdQOe9YU8MkmJwGhoMybl8A==",
- "dev": true,
+ "devOptional": true,
"license": "MIT",
"engines": {
"node": ">= 0.8"
@@ -9682,7 +9649,7 @@
"version": "5.1.2",
"resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz",
"integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==",
- "dev": true,
+ "devOptional": true,
"license": "MIT",
"dependencies": {
"mimic-fn": "^2.1.0"
@@ -9698,7 +9665,7 @@
"version": "6.4.0",
"resolved": "https://registry.npmjs.org/open/-/open-6.4.0.tgz",
"integrity": "sha512-IFenVPgF70fSm1keSd2iDBIDIBZkroLeuffXq+wKTzTJlBpesFWojV9lb8mzOfaAzM1sr7HQHuO0vtV0zYekGg==",
- "dev": true,
+ "devOptional": true,
"license": "MIT",
"dependencies": {
"is-wsl": "^1.1.0"
@@ -9729,7 +9696,7 @@
"version": "5.4.1",
"resolved": "https://registry.npmjs.org/ora/-/ora-5.4.1.tgz",
"integrity": "sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ==",
- "dev": true,
+ "devOptional": true,
"license": "MIT",
"dependencies": {
"bl": "^4.1.0",
@@ -9771,7 +9738,7 @@
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz",
"integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==",
- "dev": true,
+ "devOptional": true,
"license": "MIT",
"dependencies": {
"yocto-queue": "^0.1.0"
@@ -9787,7 +9754,7 @@
"version": "5.0.0",
"resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz",
"integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==",
- "dev": true,
+ "devOptional": true,
"license": "MIT",
"dependencies": {
"p-limit": "^3.0.2"
@@ -9812,7 +9779,7 @@
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz",
"integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==",
- "dev": true,
+ "devOptional": true,
"license": "MIT",
"dependencies": {
"callsites": "^3.0.0"
@@ -9825,7 +9792,7 @@
"version": "5.2.0",
"resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz",
"integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==",
- "dev": true,
+ "devOptional": true,
"license": "MIT",
"dependencies": {
"@babel/code-frame": "^7.0.0",
@@ -9880,7 +9847,7 @@
"version": "1.0.7",
"resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz",
"integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==",
- "dev": true,
+ "devOptional": true,
"license": "MIT"
},
"node_modules/picocolors": {
@@ -10054,7 +10021,7 @@
"version": "2.4.2",
"resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz",
"integrity": "sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==",
- "dev": true,
+ "devOptional": true,
"license": "MIT",
"dependencies": {
"kleur": "^3.0.3",
@@ -10114,7 +10081,7 @@
"version": "6.14.2",
"resolved": "https://registry.npmjs.org/qs/-/qs-6.14.2.tgz",
"integrity": "sha512-V/yCWTTF7VJ9hIh18Ugr2zhJMP01MY7c5kh4J870L7imm6/DIzBsNLTXzMwUA3yZ5b/KBqLx8Kp3uRvd7xSe3Q==",
- "dev": true,
+ "devOptional": true,
"license": "BSD-3-Clause",
"dependencies": {
"side-channel": "^1.1.0"
@@ -10157,7 +10124,7 @@
"version": "1.2.3",
"resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz",
"integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==",
- "dev": true,
+ "devOptional": true,
"funding": [
{
"type": "github",
@@ -10187,7 +10154,7 @@
"version": "2.5.3",
"resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.3.tgz",
"integrity": "sha512-s4VSOf6yN0rvbRZGxs8Om5CWj6seneMwK3oDb4lWDH0UPhWcxwOWw5+qk24bxq87szX1ydrwylIOp2uG1ojUpA==",
- "dev": true,
+ "devOptional": true,
"license": "MIT",
"dependencies": {
"bytes": "~3.1.2",
@@ -10239,18 +10206,6 @@
}
}
},
- "node_modules/react-dom": {
- "version": "19.2.4",
- "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-19.2.4.tgz",
- "integrity": "sha512-AXJdLo8kgMbimY95O2aKQqsz2iWi9jMgKJhRBAxECE4IFxfcazB2LmzloIoibJI3C12IlY20+KFaLv+71bUJeQ==",
- "license": "MIT",
- "dependencies": {
- "scheduler": "^0.27.0"
- },
- "peerDependencies": {
- "react": "^19.2.4"
- }
- },
"node_modules/react-freeze": {
"version": "1.0.4",
"resolved": "https://registry.npmjs.org/react-freeze/-/react-freeze-1.0.4.tgz",
@@ -10436,7 +10391,7 @@
"version": "3.6.2",
"resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz",
"integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==",
- "dev": true,
+ "devOptional": true,
"license": "MIT",
"dependencies": {
"inherits": "^2.0.3",
@@ -10474,14 +10429,14 @@
"version": "1.4.2",
"resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz",
"integrity": "sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==",
- "dev": true,
+ "devOptional": true,
"license": "MIT"
},
"node_modules/regenerate-unicode-properties": {
"version": "10.2.2",
"resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.2.2.tgz",
"integrity": "sha512-m03P+zhBeQd1RGnYxrGyDAPpWX/epKirLrp8e3qevZdVkKtnCrjjWczIbYc8+xd6vcTStVlqfycTx1KR4LOr0g==",
- "dev": true,
+ "devOptional": true,
"license": "MIT",
"dependencies": {
"regenerate": "^1.4.2"
@@ -10521,7 +10476,7 @@
"version": "6.4.0",
"resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-6.4.0.tgz",
"integrity": "sha512-0ghuzq67LI9bLXpOX/ISfve/Mq33a4aFRzoQYhnnok1JOFpmE/A2TBGkNVenOGEeSBCjIiWcc6MVOG5HEQv0sA==",
- "dev": true,
+ "devOptional": true,
"license": "MIT",
"dependencies": {
"regenerate": "^1.4.2",
@@ -10539,14 +10494,14 @@
"version": "0.8.0",
"resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.8.0.tgz",
"integrity": "sha512-RvwtGe3d7LvWiDQXeQw8p5asZUmfU1G/l6WbUXeHta7Y2PEIvBTwH6E2EfmYUK8pxcxEdEmaomqyp0vZZ7C+3Q==",
- "dev": true,
+ "devOptional": true,
"license": "MIT"
},
"node_modules/regjsparser": {
"version": "0.13.0",
"resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.13.0.tgz",
"integrity": "sha512-NZQZdC5wOE/H3UT28fVGL+ikOZcEzfMGk/c3iN9UGxzWHMa1op7274oyiUVrAG4B2EuFhus8SvkaYnhvW92p9Q==",
- "dev": true,
+ "devOptional": true,
"license": "BSD-2-Clause",
"dependencies": {
"jsesc": "~3.1.0"
@@ -10568,14 +10523,14 @@
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz",
"integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==",
- "dev": true,
+ "devOptional": true,
"license": "ISC"
},
"node_modules/resolve": {
"version": "1.22.11",
"resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.11.tgz",
"integrity": "sha512-RfqAvLnMl313r7c9oclB1HhUEAezcpLjz95wFH4LVuhk9JF/r22qmVP9AMmOU4vMX7Q8pN8jwNg/CSpdFnMjTQ==",
- "dev": true,
+ "devOptional": true,
"license": "MIT",
"dependencies": {
"is-core-module": "^2.16.1",
@@ -10619,7 +10574,7 @@
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz",
"integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==",
- "dev": true,
+ "devOptional": true,
"license": "MIT",
"engines": {
"node": ">=4"
@@ -10639,7 +10594,7 @@
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz",
"integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==",
- "dev": true,
+ "devOptional": true,
"license": "MIT",
"dependencies": {
"onetime": "^5.1.0",
@@ -10653,7 +10608,7 @@
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/reusify/-/reusify-1.1.0.tgz",
"integrity": "sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==",
- "dev": true,
+ "devOptional": true,
"license": "MIT",
"engines": {
"iojs": ">=1.0.0",
@@ -10680,7 +10635,7 @@
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz",
"integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==",
- "dev": true,
+ "devOptional": true,
"funding": [
{
"type": "github",
@@ -10724,7 +10679,7 @@
"version": "5.2.1",
"resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz",
"integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==",
- "dev": true,
+ "devOptional": true,
"funding": [
{
"type": "github",
@@ -10780,7 +10735,7 @@
"version": "2.1.2",
"resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz",
"integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==",
- "dev": true,
+ "devOptional": true,
"license": "MIT"
},
"node_modules/scheduler": {
@@ -10904,7 +10859,7 @@
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz",
"integrity": "sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==",
- "dev": true,
+ "devOptional": true,
"license": "ISC"
},
"node_modules/set-function-length": {
@@ -11008,7 +10963,7 @@
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.1.0.tgz",
"integrity": "sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw==",
- "dev": true,
+ "devOptional": true,
"license": "MIT",
"dependencies": {
"es-errors": "^1.3.0",
@@ -11028,7 +10983,7 @@
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/side-channel-list/-/side-channel-list-1.0.0.tgz",
"integrity": "sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA==",
- "dev": true,
+ "devOptional": true,
"license": "MIT",
"dependencies": {
"es-errors": "^1.3.0",
@@ -11045,7 +11000,7 @@
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/side-channel-map/-/side-channel-map-1.0.1.tgz",
"integrity": "sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA==",
- "dev": true,
+ "devOptional": true,
"license": "MIT",
"dependencies": {
"call-bound": "^1.0.2",
@@ -11064,7 +11019,7 @@
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/side-channel-weakmap/-/side-channel-weakmap-1.0.2.tgz",
"integrity": "sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A==",
- "dev": true,
+ "devOptional": true,
"license": "MIT",
"dependencies": {
"call-bound": "^1.0.2",
@@ -11105,7 +11060,7 @@
"version": "1.0.5",
"resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz",
"integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==",
- "dev": true,
+ "devOptional": true,
"license": "MIT"
},
"node_modules/slash": {
@@ -11121,7 +11076,7 @@
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-2.1.0.tgz",
"integrity": "sha512-Qu+VC3EwYLldKa1fCxuuvULvSJOKEgk9pi8dZeCVK7TqBfUNTH4sFkk4joj8afVSfAYgJoSOetjx9QWOJ5mYoQ==",
- "dev": true,
+ "devOptional": true,
"license": "MIT",
"dependencies": {
"ansi-styles": "^3.2.0",
@@ -11136,7 +11091,7 @@
"version": "3.2.1",
"resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
"integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
- "dev": true,
+ "devOptional": true,
"license": "MIT",
"dependencies": {
"color-convert": "^1.9.0"
@@ -11149,7 +11104,7 @@
"version": "1.9.3",
"resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz",
"integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==",
- "dev": true,
+ "devOptional": true,
"license": "MIT",
"dependencies": {
"color-name": "1.1.3"
@@ -11159,7 +11114,7 @@
"version": "1.1.3",
"resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
"integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==",
- "dev": true,
+ "devOptional": true,
"license": "MIT"
},
"node_modules/source-map": {
@@ -11281,7 +11236,7 @@
"version": "1.3.0",
"resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz",
"integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==",
- "dev": true,
+ "devOptional": true,
"license": "MIT",
"dependencies": {
"safe-buffer": "~5.2.0"
@@ -11455,7 +11410,7 @@
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz",
"integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==",
- "dev": true,
+ "devOptional": true,
"license": "MIT",
"engines": {
"node": ">=6"
@@ -11478,7 +11433,7 @@
"version": "1.1.2",
"resolved": "https://registry.npmjs.org/strnum/-/strnum-1.1.2.tgz",
"integrity": "sha512-vrN+B7DBIoTTZjnPNewwhx6cBA/H+IS7rfW68n7XxC1y7uoiGQBxaKzqucGUgavX15dJgiGztLJ8vxuEzwqBdA==",
- "dev": true,
+ "devOptional": true,
"funding": [
{
"type": "github",
@@ -11503,7 +11458,7 @@
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz",
"integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==",
- "dev": true,
+ "devOptional": true,
"license": "MIT",
"engines": {
"node": ">= 0.4"
@@ -11725,7 +11680,7 @@
"version": "1.6.18",
"resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz",
"integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==",
- "dev": true,
+ "devOptional": true,
"license": "MIT",
"dependencies": {
"media-typer": "0.3.0",
@@ -11856,7 +11811,7 @@
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.1.tgz",
"integrity": "sha512-dA8WbNeb2a6oQzAQ55YlT5vQAWGV9WXOsi3SskE3bcCdM0P4SDd+24zS/OCacdRq5BkdsRj9q3Pg6YyQoxIGqg==",
- "dev": true,
+ "devOptional": true,
"license": "MIT",
"engines": {
"node": ">=4"
@@ -11866,7 +11821,7 @@
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz",
"integrity": "sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==",
- "dev": true,
+ "devOptional": true,
"license": "MIT",
"dependencies": {
"unicode-canonical-property-names-ecmascript": "^2.0.0",
@@ -11880,7 +11835,7 @@
"version": "2.2.1",
"resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.2.1.tgz",
"integrity": "sha512-JQ84qTuMg4nVkx8ga4A16a1epI9H6uTXAknqxkGF/aFfRLw1xC/Bp24HNLaZhHSkWd3+84t8iXnp1J0kYcZHhg==",
- "dev": true,
+ "devOptional": true,
"license": "MIT",
"engines": {
"node": ">=4"
@@ -11890,7 +11845,7 @@
"version": "2.2.0",
"resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.2.0.tgz",
"integrity": "sha512-hpbDzxUY9BFwX+UeBnxv3Sh1q7HFxj48DTmXchNgRa46lO8uj3/1iEn3MiNUYTg1g9ctIqXCCERn8gYZhHC5lQ==",
- "dev": true,
+ "devOptional": true,
"license": "MIT",
"engines": {
"node": ">=4"
@@ -11900,7 +11855,7 @@
"version": "0.1.2",
"resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz",
"integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==",
- "dev": true,
+ "devOptional": true,
"license": "MIT",
"engines": {
"node": ">= 4.0.0"
@@ -11977,7 +11932,7 @@
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
"integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==",
- "dev": true,
+ "devOptional": true,
"license": "MIT"
},
"node_modules/utils-merge": {
@@ -12008,7 +11963,7 @@
"version": "1.1.2",
"resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz",
"integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==",
- "dev": true,
+ "devOptional": true,
"license": "MIT",
"engines": {
"node": ">= 0.8"
@@ -12039,7 +11994,7 @@
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz",
"integrity": "sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==",
- "dev": true,
+ "devOptional": true,
"license": "MIT",
"dependencies": {
"defaults": "^1.0.3"
@@ -12137,7 +12092,7 @@
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.1.tgz",
"integrity": "sha512-iBdZ57RDvnOR9AGBhML2vFZf7h8vmBjhoaZqODJBFWHVtKkDmKuHai3cx5PgVMrX5YDNp27AofYbAwctSS+vhQ==",
- "dev": true,
+ "devOptional": true,
"license": "ISC"
},
"node_modules/which-typed-array": {
@@ -12212,7 +12167,7 @@
"version": "6.2.3",
"resolved": "https://registry.npmjs.org/ws/-/ws-6.2.3.tgz",
"integrity": "sha512-jmTjYU0j60B+vHey6TfR3Z7RD61z/hmxBS3VMSGIrroOWXQEneK1zNuotOUrGyBHQj0yrpsLHPWtigEFd13ndA==",
- "dev": true,
+ "devOptional": true,
"license": "MIT",
"dependencies": {
"async-limiter": "~1.0.0"
@@ -12279,7 +12234,7 @@
"version": "0.1.0",
"resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz",
"integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==",
- "dev": true,
+ "devOptional": true,
"license": "MIT",
"engines": {
"node": ">=10"
diff --git a/package.json b/package.json
index a9e1ed4..9c12334 100644
--- a/package.json
+++ b/package.json
@@ -15,10 +15,7 @@
"@react-navigation/bottom-tabs": "^7.15.5",
"@react-navigation/native": "^7.1.33",
"@react-navigation/native-stack": "^7.14.4",
- "@types/react-dom": "^19.2.3",
- "class-variance-authority": "^0.7.1",
"react": "19.2.3",
- "react-dom": "^19.2.4",
"react-native": "0.84.1",
"react-native-background-timer": "^2.4.1",
"react-native-safe-area-context": "^5.7.0",
diff --git a/src/ComponentDemoPage.tsx b/src/ComponentDemoPage.tsx
deleted file mode 100644
index a304575..0000000
--- a/src/ComponentDemoPage.tsx
+++ /dev/null
@@ -1,129 +0,0 @@
-import React, { useState } from 'react';
-import { View, Text, StyleSheet, ScrollView, Alert as RNAlert, SafeAreaView, TouchableOpacity } from 'react-native';
-import {
- BaseButton,
- TextInput,
- BaseModal,
- RadioGroup,
- Alert,
- Icon
-} from '../components';
-
-const ComponentDemoPage: React.FC = () => {
- const [textValue, setTextValue] = useState('');
- const [usernameValue, setUsernameValue] = useState('');
- const [passwordValue, setPasswordValue] = useState('');
- const [radioValue, setRadioValue] = useState('option1');
- const [isModalOpen, setIsModalOpen] = useState(false);
-
- const radioOptions = [
- { label: 'Visa ending in 4242', value: 'option1', description: 'Expires 12/26' },
- { label: 'Mastercard ending in 1234', value: 'option2', description: 'Expires 08/25' },
- { label: 'Add New Card', value: 'option3', disabled: true },
- ];
-
- return (
-
-
- UI Library Test
-
-
- Buttons
-
- Primary
- Secondary
-
- Outline Full Width
- Danger Button
-
-
-
- Inputs
-
-
-
-
-
-
-
- Radio Group
-
-
-
-
- Alerts
- This is an info alert.
- This is a warning alert.
- This is a success alert.
-
-
-
- Icons
-
- 🔒
- 🧠
-
-
-
-
-
- Modal
- setIsModalOpen(true)}>Open Test Modal
- setIsModalOpen(false)}
- title="Test Modal"
- >
- Modal content is working!
- setIsModalOpen(false)} style={{ marginTop: 20 }}>Close
-
-
-
-
- );
-};
-
-const styles = StyleSheet.create({
- section: {
- marginBottom: 30,
- backgroundColor: '#F9FAFB',
- padding: 15,
- borderRadius: 12,
- },
- sectionTitle: {
- fontSize: 14,
- fontWeight: '700',
- color: '#9CA3AF',
- textTransform: 'uppercase',
- marginBottom: 15,
- },
- row: {
- flexDirection: 'row',
- gap: 10,
- },
- flex1: {
- flex: 1,
- }
-});
-
-export default ComponentDemoPage;
diff --git a/src/navigation/AuthNavigator.tsx b/src/navigation/AuthNavigator.tsx
new file mode 100644
index 0000000..3e44a76
--- /dev/null
+++ b/src/navigation/AuthNavigator.tsx
@@ -0,0 +1,56 @@
+import React from 'react';
+import { createNativeStackNavigator } from '@react-navigation/native-stack';
+import { LoginScreen, SignupScreen, ForgotPasswordScreen } from '../screens';
+
+export type AuthStackParamList = {
+ Login: undefined;
+ Signup: undefined;
+ ForgotPassword: undefined;
+};
+
+const Stack = createNativeStackNavigator();
+
+const AuthNavigator = ({ onLoginSuccess }: { onLoginSuccess: () => void }) => {
+ return (
+
+
+ {(props) => (
+ props.navigation.navigate('Signup')}
+ onForgotPassword={() => props.navigation.navigate('ForgotPassword')}
+ onLogin={(email) => {
+ console.log('Login success:', email);
+ onLoginSuccess();
+ }}
+ />
+ )}
+
+
+
+ {(props) => (
+ props.navigation.navigate('Login')}
+ onSignup={(email) => console.log('Signup attempt:', email)}
+ />
+ )}
+
+
+
+ {(props) => (
+ props.navigation.navigate('Login')}
+ onSendEmail={(email) => console.log('Reset attempt:', email)}
+ />
+ )}
+
+
+ );
+};
+
+export default AuthNavigator;
diff --git a/src/screens/ForgotPasswordScreen.tsx b/src/screens/ForgotPasswordScreen.tsx
new file mode 100644
index 0000000..aa9c70c
--- /dev/null
+++ b/src/screens/ForgotPasswordScreen.tsx
@@ -0,0 +1,157 @@
+import React, { useState } from 'react';
+import {
+ View,
+ Text,
+ StyleSheet,
+ SafeAreaView,
+ TouchableOpacity,
+ KeyboardAvoidingView,
+ Platform,
+ ScrollView,
+ Alert as RNAlert,
+} from 'react-native';
+import { BaseButton, TextInput, Icon } from '../../components';
+
+interface ForgotPasswordScreenProps {
+ onSendEmail?: (email: string) => void;
+ onNavigateBack?: () => void;
+}
+
+const ForgotPasswordScreen: React.FC = ({
+ onSendEmail,
+ onNavigateBack,
+}) => {
+ const [email, setEmail] = useState('');
+
+ const handleSendEmail = () => {
+ if (!email) {
+ RNAlert.alert('Error', 'Please enter your email address');
+ return;
+ }
+
+ // 2. Functionality: Trigger placeholder and show alert
+ RNAlert.alert('Success', 'Verification email sent');
+
+ if (onSendEmail) {
+ onSendEmail(email);
+ }
+ };
+
+ return (
+
+
+
+ {/* Header */}
+
+
+ 🛡️
+
+ Reset Password
+
+ Enter your email address and we'll send you a link to reset your password.
+
+
+
+ {/* Form */}
+
+
+
+
+ Send Verification Email
+
+
+
+ {/* Navigation Back */}
+
+
+ Back to Login
+
+
+
+
+
+ );
+};
+
+const styles = StyleSheet.create({
+ container: {
+ flex: 1,
+ backgroundColor: '#FFFFFF',
+ },
+ flex: {
+ flex: 1,
+ },
+ scrollContent: {
+ flexGrow: 1,
+ paddingHorizontal: 24,
+ paddingBottom: 40,
+ },
+ header: {
+ alignItems: 'center',
+ marginTop: 40,
+ marginBottom: 48,
+ },
+ iconContainer: {
+ width: 80,
+ height: 80,
+ borderRadius: 40,
+ backgroundColor: '#F1F5F9',
+ alignItems: 'center',
+ justifyContent: 'center',
+ marginBottom: 24,
+ alignSelf: 'center',
+ },
+ title: {
+ fontSize: 28,
+ fontWeight: '900',
+ color: '#0F172A',
+ textAlign: 'center',
+ marginBottom: 12,
+ },
+ subtitle: {
+ fontSize: 16,
+ color: '#64748B',
+ textAlign: 'center',
+ lineHeight: 24,
+ paddingHorizontal: 20,
+ },
+ formContainer: {
+ width: '100%',
+ },
+ actionButton: {
+ marginTop: 16,
+ marginBottom: 24,
+ },
+ footer: {
+ justifyContent: 'center',
+ alignItems: 'center',
+ marginTop: 'auto',
+ paddingTop: 24,
+ },
+ backText: {
+ color: '#10B981',
+ fontWeight: '800',
+ fontSize: 15,
+ },
+});
+
+export default ForgotPasswordScreen;
diff --git a/src/screens/LoginScreen.tsx b/src/screens/LoginScreen.tsx
new file mode 100644
index 0000000..329d433
--- /dev/null
+++ b/src/screens/LoginScreen.tsx
@@ -0,0 +1,172 @@
+import React, { useState } from 'react';
+import {
+ View,
+ Text,
+ StyleSheet,
+ SafeAreaView,
+ TouchableOpacity,
+ KeyboardAvoidingView,
+ Platform,
+ ScrollView,
+} from 'react-native';
+import { BaseButton, TextInput, Icon } from '../../components';
+
+interface LoginScreenProps {
+ onLogin?: (email: string, pass: string) => void;
+ onNavigateToSignUp?: () => void;
+ onForgotPassword?: () => void;
+}
+
+const LoginScreen: React.FC = ({
+ onLogin,
+ onNavigateToSignUp,
+ onForgotPassword,
+}) => {
+ const [email, setEmail] = useState('');
+ const [password, setPassword] = useState('');
+
+ const handleLogin = () => {
+ if (onLogin) {
+ onLogin(email, password);
+ }
+ };
+
+ return (
+
+
+
+ {/* 1. Screen Layout: App Icon & Title */}
+
+
+ 🛡️
+
+ Login
+
+
+ {/* 2. Input Fields: Email & Password */}
+
+
+
+
+ {/* 3. Actions: Forgot Password & Login Button */}
+
+ Forgot Password?
+
+
+
+ Login
+
+
+
+ {/* 4. Navigation: Bottom Link */}
+
+ Don't have an account?
+
+ Create one
+
+
+
+
+
+ );
+};
+
+const styles = StyleSheet.create({
+ container: {
+ flex: 1,
+ backgroundColor: '#FFFFFF',
+ },
+ flex: {
+ flex: 1,
+ },
+ scrollContent: {
+ flexGrow: 1,
+ paddingHorizontal: 24,
+ paddingBottom: 40,
+ },
+ header: {
+ alignItems: 'center',
+ marginTop: 40,
+ marginBottom: 48,
+ },
+ iconContainer: {
+ width: 80,
+ height: 80,
+ borderRadius: 40,
+ backgroundColor: '#F1F5F9', // Light gray background for icon
+ alignItems: 'center',
+ justifyContent: 'center',
+ marginBottom: 20,
+ alignSelf: 'center',
+ },
+ title: {
+ fontSize: 28,
+ fontWeight: '900',
+ color: '#0F172A',
+ textAlign: 'center',
+ },
+ formContainer: {
+ width: '100%',
+ },
+ forgotPasswordContainer: {
+ alignSelf: 'flex-end',
+ marginTop: -8,
+ marginBottom: 32,
+ padding: 4,
+ },
+ forgotPasswordText: {
+ color: '#10B981', // Figma Teal
+ fontWeight: '700',
+ fontSize: 14,
+ },
+ loginButton: {
+ marginBottom: 24,
+ },
+ footer: {
+ flexDirection: 'row',
+ justifyContent: 'center',
+ alignItems: 'center',
+ marginTop: 'auto',
+ paddingTop: 24,
+ },
+ footerText: {
+ color: '#64748B',
+ fontSize: 15,
+ },
+ signUpText: {
+ color: '#10B981', // Figma Teal
+ fontWeight: '800',
+ fontSize: 15,
+ },
+});
+
+export default LoginScreen;
diff --git a/src/screens/SignupScreen.tsx b/src/screens/SignupScreen.tsx
new file mode 100644
index 0000000..1aff92d
--- /dev/null
+++ b/src/screens/SignupScreen.tsx
@@ -0,0 +1,176 @@
+import React, { useState } from 'react';
+import {
+ View,
+ Text,
+ StyleSheet,
+ SafeAreaView,
+ TouchableOpacity,
+ KeyboardAvoidingView,
+ Platform,
+ ScrollView,
+} from 'react-native';
+import { BaseButton, TextInput, Icon } from '../../components';
+
+interface SignupScreenProps {
+ onSignup?: (email: string, pass: string) => void;
+ onNavigateToLogin?: () => void;
+}
+
+const SignupScreen: React.FC = ({
+ onSignup,
+ onNavigateToLogin,
+}) => {
+ const [email, setEmail] = useState('');
+ const [password, setPassword] = useState('');
+ const [confirmPassword, setConfirmPassword] = useState('');
+ const [error, setError] = useState(null);
+
+ const handleSignup = () => {
+ // Reset error
+ setError(null);
+
+ // 4. Validation: Check that Password and Confirm Password match
+ if (password !== confirmPassword) {
+ setError('Passwords do not match');
+ return;
+ }
+
+ // Prevent submission if empty (basic check)
+ if (!email || !password) {
+ return;
+ }
+
+ if (onSignup) {
+ onSignup(email, password);
+ }
+ };
+
+ return (
+
+
+
+ {/* 1. Screen Layout: App Icon & Title */}
+
+
+ 🛡️
+
+ Create Account
+
+
+ {/* 2. Fields: Email, Password, Confirm Password */}
+
+
+
+
+
+ {/* 3. Button: Create Account */}
+
+ Create Account
+
+
+
+ {/* 5. Navigation: Already have an account? Login */}
+
+ Already have an account?
+
+ Login
+
+
+
+
+
+ );
+};
+
+const styles = StyleSheet.create({
+ container: {
+ flex: 1,
+ backgroundColor: '#FFFFFF',
+ },
+ flex: {
+ flex: 1,
+ },
+ scrollContent: {
+ flexGrow: 1,
+ paddingHorizontal: 24,
+ paddingBottom: 40,
+ },
+ header: {
+ alignItems: 'center',
+ marginTop: 40,
+ marginBottom: 48,
+ },
+ iconContainer: {
+ width: 80,
+ height: 80,
+ borderRadius: 40,
+ backgroundColor: '#F1F5F9',
+ alignItems: 'center',
+ justifyContent: 'center',
+ marginBottom: 20,
+ alignSelf: 'center',
+ },
+ title: {
+ fontSize: 28,
+ fontWeight: '900',
+ color: '#0F172A',
+ textAlign: 'center',
+ },
+ formContainer: {
+ width: '100%',
+ },
+ signupButton: {
+ marginTop: 16,
+ marginBottom: 24,
+ },
+ footer: {
+ flexDirection: 'row',
+ justifyContent: 'center',
+ alignItems: 'center',
+ marginTop: 'auto',
+ paddingTop: 24,
+ },
+ footerText: {
+ color: '#64748B',
+ fontSize: 15,
+ },
+ loginText: {
+ color: '#10B981', // Figma Teal
+ fontWeight: '800',
+ fontSize: 15,
+ },
+});
+
+export default SignupScreen;
diff --git a/src/screens/index.ts b/src/screens/index.ts
new file mode 100644
index 0000000..7ce323b
--- /dev/null
+++ b/src/screens/index.ts
@@ -0,0 +1,3 @@
+export { default as LoginScreen } from './LoginScreen';
+export { default as SignupScreen } from './SignupScreen';
+export { default as ForgotPasswordScreen } from './ForgotPasswordScreen';
diff --git a/test/TestScreen.tsx b/test/TestScreen.tsx
index 7f4f6d3..8439183 100644
--- a/test/TestScreen.tsx
+++ b/test/TestScreen.tsx
@@ -1,12 +1,12 @@
import React, { useState } from 'react';
-import { View, Text, StyleSheet, ScrollView, Alert as RNAlert } from 'react-native';
+import { View, Text, StyleSheet, ScrollView, Alert as RNAlert, SafeAreaView } from 'react-native';
import {
BaseButton,
TextInput,
- PasswordInput,
BaseModal,
RadioGroup,
- Alert
+ Alert,
+ Icon
} from '../components';
const TestScreen: React.FC = () => {
@@ -20,140 +20,233 @@ const TestScreen: React.FC = () => {
// Radio Options
const radioOptions = [
- { label: 'Option 1', value: 'option1' },
- { label: 'Option 2', value: 'option2' },
- { label: 'Option 3', value: 'option3' },
+ { label: 'Visa ending in 4242', value: 'option1', description: 'Expires 12/26' },
+ { label: 'Mastercard ending in 1234', value: 'option2', description: 'Expires 08/25' },
+ { label: 'Add New Card', value: 'option3', disabled: true },
];
return (
-
- UI Components Test
-
-
-
- {/* TextInput Test */}
+
+
+
+ Component Library
+ Testing UI Elements for AppGuard2
+
+
+ {/* Buttons Section */}
- TEXT INPUT
-
+ BUTTONS
+
+
+ RNAlert.alert("Primary Action")}>
+ Primary
+
+
+ Secondary
+
+
+
+
+ Outline
+
+
+ Danger
+
+
+
+ Ghost Variant (Text only)
+
+
+ Loading State
+
+
- {/* PasswordInput Test */}
+ {/* Inputs Section */}
- PASSWORD INPUT
-
+ INPUTS
+
+
+
+
+
- {/* RadioGroup Test */}
+ {/* Radio Group Section */}
- RADIO GROUP
- setRadioValue(value)}
- />
+ RADIO SELECTORS
+
+ setRadioValue(value)}
+ />
+
- {/* Alert Test */}
+ {/* Alerts Section */}
- ALERT
-
- This is a warning message.
-
+ ALERTS & FEEDBACK
+
+
+ This is a standard informational message for the user.
+
+
+ Your device has 30 mins of homework time left.
+
+
+ Payment confirmed successfully!
+
+
- {/* BaseButton Test */}
+ {/* Icons Section */}
- BUTTON
- RNAlert.alert("Button clicked!")}
- >
- Click Me
-
+ ICONS
+
+ 🔒
+ ⚡
+ 🧠
+
+ G
+
- {/* BaseModal Test */}
+ {/* Modal Section */}
- MODAL
- setIsModalOpen(true)}
- >
- Open Modal
-
-
- setIsModalOpen(false)}
- title="Sample Modal"
- >
-
- This is some sample text inside the BaseModal.
- You can close this modal using the cross or dim backdrop.
-
-
- setIsModalOpen(false)}
- >
- Close Modal
-
-
-
+ MODALS
+
+ setIsModalOpen(true)}
+ >
+ Preview Modal
+
+
+ setIsModalOpen(false)}
+ title="Override Configuration"
+ subtitle="Configure how long you want to unlock the device."
+ headerLabel="System Settings"
+ >
+
+
+ This is a preview of the BaseModal component. It supports titles, subtitles, and custom header labels.
+
+
+
+ setIsModalOpen(false)}>
+ Cancel
+
+ setIsModalOpen(false)}>
+ Save
+
+
+
+
+
-
-
+
+ AppGuard2 • v2.0.0
+
+
+
);
};
const styles = StyleSheet.create({
+ safeArea: {
+ flex: 1,
+ backgroundColor: '#f8fafc',
+ },
container: {
flex: 1,
- backgroundColor: '#f9fafb',
},
content: {
- padding: 24,
+ padding: 20,
paddingBottom: 60,
},
+ header: {
+ marginBottom: 32,
+ marginTop: 10,
+ },
pageTitle: {
- fontSize: 24,
- fontWeight: 'bold',
- color: '#1f2937',
- marginBottom: 24,
+ fontSize: 28,
+ fontWeight: '800',
+ color: '#0f172a',
+ letterSpacing: -0.5,
+ },
+ pageSubtitle: {
+ fontSize: 16,
+ color: '#64748b',
+ marginTop: 4,
},
- card: {
+ section: {
+ marginBottom: 28,
+ },
+ sectionHeader: {
+ fontSize: 12,
+ fontWeight: '700',
+ color: '#94a3b8',
+ letterSpacing: 1.5,
+ marginBottom: 12,
+ paddingLeft: 4,
+ },
+ componentCard: {
backgroundColor: '#ffffff',
- padding: 24,
- borderRadius: 12,
+ padding: 18,
+ borderRadius: 16,
+ borderWidth: 1,
+ borderColor: '#e2e8f0',
+ gap: 12,
shadowColor: '#000',
- shadowOpacity: 0.05,
shadowOffset: { width: 0, height: 2 },
- shadowRadius: 8,
+ shadowOpacity: 0.05,
+ shadowRadius: 10,
elevation: 2,
},
- section: {
- marginBottom: 32,
+ row: {
+ flexDirection: 'row',
+ gap: 12,
+ },
+ flex1: {
+ flex: 1,
+ },
+ mb12: {
+ marginBottom: 12,
+ },
+ modalText: {
+ fontSize: 14,
+ color: '#475569',
+ lineHeight: 20,
},
- sectionTitle: {
+ footer: {
+ marginTop: 20,
+ alignItems: 'center',
+ opacity: 0.5,
+ },
+ footerText: {
fontSize: 12,
fontWeight: '600',
- color: '#9ca3af',
- marginBottom: 12,
+ color: '#64748b',
},
});
diff --git a/tsconfig.json b/tsconfig.json
index a7313ac..266ba9c 100644
--- a/tsconfig.json
+++ b/tsconfig.json
@@ -1,8 +1,7 @@
{
"extends": "@react-native/typescript-config",
"compilerOptions": {
- "types": ["jest"],
- "lib": ["es2020", "dom", "dom.iterable"]
+ "types": ["jest"]
},
"include": ["**/*.ts", "**/*.tsx"],
"exclude": ["**/node_modules", "**/Pods"]