(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,56542,e=>{"use strict";let t=(0,e.i(60959).default)("triangle-alert",[["path",{d:"m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3",key:"wmoenq"}],["path",{d:"M12 9v4",key:"juzpu7"}],["path",{d:"M12 17h.01",key:"p32p05"}]]);e.s(["default",()=>t])},57700,e=>{"use strict";let t=(0,e.i(60959).default)("circle-check",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"m9 12 2 2 4-4",key:"dzmm74"}]]);e.s(["default",()=>t])},78420,e=>{"use strict";var t=e.i(1602),a=e.i(6308),i=e.i(59362),r=e.i(82094);let n=[{id:"t1",name:"Andi Saputra",wa_number:"081234567890",room_no:1,move_in_date:"2023-01-15",deposit_amount:5e5,active:!0},{id:"t2",name:"Budi Santoso",wa_number:"081298765432",room_no:2,move_in_date:"2023-03-10",deposit_amount:5e5,active:!0},{id:"t3",name:"Citra Dewi",wa_number:"081311223344",room_no:3,move_in_date:"2023-06-05",deposit_amount:5e5,active:!0},{id:"t4",name:"Dian Anugrah",wa_number:"085612345678",room_no:4,move_in_date:"2023-09-20",deposit_amount:5e5,active:!0}],s=[{id:"r1",room_no:1,monthly_rate:15e5,status:"active"},{id:"r2",room_no:2,monthly_rate:15e5,status:"active"},{id:"r3",room_no:3,monthly_rate:15e5,status:"active"},{id:"r4",room_no:4,monthly_rate:15e5,status:"active"},{id:"r5",room_no:5,monthly_rate:15e5,status:"active"},{id:"r6",room_no:6,monthly_rate:15e5,status:"active"},{id:"r7",room_no:7,monthly_rate:15e5,status:"active"},{id:"r8",room_no:8,monthly_rate:15e5,status:"active"},{id:"r9",room_no:9,monthly_rate:15e5,status:"active"}],o=[{id:"i1",invoice_no:"INV-202310-01",tenant_id:"t1",room_no:1,period:"2023-10",amount:15e5,status:"paid",paid_at:"2023-10-05T10:00:00Z",payment_method:"transfer"},{id:"i2",invoice_no:"INV-202310-02",tenant_id:"t2",room_no:2,period:"2023-10",amount:15e5,status:"paid",paid_at:"2023-10-03T14:30:00Z",payment_method:"cash"},{id:"i3",invoice_no:"INV-202310-03",tenant_id:"t3",room_no:3,period:"2023-10",amount:15e5,status:"unpaid"},{id:"i4",invoice_no:"INV-202310-04",tenant_id:"t4",room_no:4,period:"2023-10",amount:15e5,status:"unpaid"}],l=[{id:"e1",date:"2023-10-10",category:"listrik",amount:35e4,method:"transfer",status:"confirmed"},{id:"e2",date:"2023-10-15",category:"air",amount:15e4,method:"cash",status:"confirmed"},{id:"e3",date:"2023-10-20",category:"kebersihan",amount:1e5,method:"cash",status:"draft"}],u={default_monthly_rate:15e5,default_deposit:5e5,reminder_rules:'{\n "days_before_due": [3, 1],\n "days_after_due": [1, 3, 7]\n}',google_sheets_config:'{\n "spreadsheet_id": "1BxiMVs0XRYFgwnmcuQ1TkyYm8g8F...",\n "sheet_names": {\n "tenants": "Data_Tenants",\n "invoices": "Data_Invoices"\n }\n}',gemini_api_key:"",google_service_account_json:"",sheets_spreadsheet_id:"",sheets_income_sheet_name:"Income",sheets_expense_sheet_name:"Expenses"},d=(0,r.createContext)(void 0);function h(e){let{children:h}=e,[c,_]=(0,r.useState)("admin"),[p,f]=(0,r.useState)(n),[m,y]=(0,r.useState)(s),[g,b]=(0,r.useState)(o),[w,M]=(0,r.useState)(l),[Q,k]=(0,r.useState)(u),[P,A]=(0,r.useState)(!1);return(0,i.jsx)(d.Provider,{value:{role:c,setRole:_,tenants:p,addTenant:e=>{f([...p,(0,a._)((0,t._)({},e),{id:"t".concat(Date.now())})])},updateTenant:(e,a)=>{f(p.map(i=>i.id===e?(0,t._)({},i,a):i))},deleteTenant:e=>{f(p.filter(t=>t.id!==e))},rooms:m,invoices:g,markInvoicePaid:(e,i)=>{b(g.map(r=>r.id===e?(0,t._)((0,a._)((0,t._)({},r),{status:"paid"}),i):r))},addInvoice:e=>{b([...g,(0,a._)((0,t._)({},e),{id:"i".concat(Date.now())})])},updateInvoice:(e,a)=>{b(g.map(i=>i.id===e?(0,t._)({},i,a):i))},expenses:w,addExpense:e=>{M([...w,(0,a._)((0,t._)({},e),{id:"e".concat(Date.now())})])},updateExpense:(e,a)=>{M(w.map(i=>i.id===e?(0,t._)({},i,a):i))},confirmExpense:e=>{M(w.map(i=>i.id===e?(0,a._)((0,t._)({},i),{status:"confirmed"}):i))},deleteExpense:e=>{M(w.filter(t=>t.id!==e))},settings:Q,updateSettings:e=>{k((0,t._)({},Q,e))},isScannerOpen:P,setScannerOpen:A},children:h})}function c(){let e=(0,r.useContext)(d);if(void 0===e)throw Error("useAppStore must be used within an AppProvider");return e}e.s(["AppProvider",()=>h,"useAppStore",()=>c],78420)},11706,e=>{"use strict";var t=e.i(39083),a=e.i(1602),i=e.i(59362),r=e.i(57700),r=r,n=e.i(60959);let s=(0,n.default)("info",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M12 16v-4",key:"1dtifu"}],["path",{d:"M12 8h.01",key:"e9boi3"}]]);var o=e.i(39383),o=o;let l=(0,n.default)("octagon-x",[["path",{d:"m15 9-6 6",key:"1uzhvr"}],["path",{d:"M2.586 16.726A2 2 0 0 1 2 15.312V8.688a2 2 0 0 1 .586-1.414l4.688-4.688A2 2 0 0 1 8.688 2h6.624a2 2 0 0 1 1.414.586l4.688 4.688A2 2 0 0 1 22 8.688v6.624a2 2 0 0 1-.586 1.414l-4.688 4.688a2 2 0 0 1-1.414.586H8.688a2 2 0 0 1-1.414-.586z",key:"2d38gg"}],["path",{d:"m9 9 6 6",key:"z0biqf"}]]);var u=e.i(56542),u=u,d=e.i(6308),h=e.i(82094),c=(e,t,a,i,r,n,s,o)=>{let l=document.documentElement,u=["light","dark"];function d(t){var a;(Array.isArray(e)?e:[e]).forEach(e=>{let a="class"===e,i=a&&n?r.map(e=>n[e]||e):r;a?(l.classList.remove(...i),l.classList.add(n&&n[t]?n[t]:t)):l.setAttribute(e,t)}),a=t,o&&u.includes(a)&&(l.style.colorScheme=a)}if(i)d(i);else try{let e=localStorage.getItem(t)||a,i=s&&"system"===e?window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light":e;d(i)}catch(e){}},_=h.createContext(void 0),p={setTheme:e=>{},themes:[]};h.memo(e=>{let{forcedTheme:t,storageKey:i,attribute:r,enableSystem:n,enableColorScheme:s,defaultTheme:o,value:l,themes:u,nonce:_,scriptProps:p}=e,f=JSON.stringify([r,i,o,t,u,l,n,s]).slice(1,-1);return h.createElement("script",(0,d._)((0,a._)({},p),{suppressHydrationWarning:!0,nonce:"u"{var n;let{}=e,d=(0,t._)({},e),{theme:c="system"}=null!=(n=h.useContext(_))?n:p;return(0,i.jsx)(f.Toaster,(0,a._)({theme:c,className:"toaster group",icons:{success:(0,i.jsx)(r.default,{className:"size-4"}),info:(0,i.jsx)(s,{className:"size-4"}),warning:(0,i.jsx)(u.default,{className:"size-4"}),error:(0,i.jsx)(l,{className:"size-4"}),loading:(0,i.jsx)(o.default,{className:"size-4 animate-spin"})},style:{"--normal-bg":"var(--popover)","--normal-text":"var(--popover-foreground)","--normal-border":"var(--border)","--border-radius":"var(--radius)"}},d))};e.s(["Toaster",()=>m],11706)},82190,e=>{"use strict";var t,a,i,r,n,s,o,l,u,d,h,c,_=e.i(59362),p=e.i(90627),f=e.i(33956),m=e.i(19767),y=e.i(73487);function g(e,t){var a=(0,y._)(e,t,"update");if(a.set){if(!a.get)throw TypeError("attempted to read set only private field");return"__destrWrapper"in a||(a.__destrWrapper={set value(v){a.set.call(e,v)},get value(){return a.get.call(e)}}),a.__destrWrapper}if(!a.writable)throw TypeError("attempted to set read only private field");return a}var b=e.i(1602),w=e.i(6308),M=e.i(42e3),Q=e.i(64813),k=e.i(75911),P=e.i(15624),A=(t=new WeakMap,class extends P.Subscribable{build(e,t,a){var i;let r=t.queryKey,n=null!=(i=t.queryHash)?i:(0,M.hashQueryKeyByOptions)(r,t),s=this.get(n);return s||(s=new Q.Query({client:e,queryKey:r,queryHash:n,options:e.defaultQueryOptions(t),state:a,defaultOptions:e.getQueryDefaults(r)}),this.add(s)),s}add(e){(0,p._)(this,t).has(e.queryHash)||((0,p._)(this,t).set(e.queryHash,e),this.notify({type:"added",query:e}))}remove(e){let a=(0,p._)(this,t).get(e.queryHash);a&&(e.destroy(),a===e&&(0,p._)(this,t).delete(e.queryHash),this.notify({type:"removed",query:e}))}clear(){k.notifyManager.batch(()=>{this.getAll().forEach(e=>{this.remove(e)})})}get(e){return(0,p._)(this,t).get(e)}getAll(){return[...(0,p._)(this,t).values()]}find(e){let t=(0,b._)({exact:!0},e);return this.getAll().find(e=>(0,M.matchQuery)(t,e))}findAll(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=this.getAll();return Object.keys(e).length>0?t.filter(t=>(0,M.matchQuery)(e,t)):t}notify(e){k.notifyManager.batch(()=>{this.listeners.forEach(t=>{t(e)})})}onFocus(){k.notifyManager.batch(()=>{this.getAll().forEach(e=>{e.onFocus()})})}onOnline(){k.notifyManager.batch(()=>{this.getAll().forEach(e=>{e.onOnline()})})}constructor(e={}){super(),(0,f._)(this,t,{writable:!0,value:void 0}),this.config=e,(0,m._)(this,t,new Map)}}),O=e.i(34507),S=P,T=(a=new WeakMap,i=new WeakMap,r=new WeakMap,class extends S.Subscribable{build(e,t,a){let i=new O.Mutation({client:e,mutationCache:this,mutationId:++g(this,r).value,options:e.defaultMutationOptions(t),state:a});return this.add(i),i}add(e){(0,p._)(this,a).add(e);let t=x(e);if("string"==typeof t){let a=(0,p._)(this,i).get(t);a?a.push(e):(0,p._)(this,i).set(t,[e])}this.notify({type:"added",mutation:e})}remove(e){if((0,p._)(this,a).delete(e)){let t=x(e);if("string"==typeof t){let a=(0,p._)(this,i).get(t);if(a)if(a.length>1){let t=a.indexOf(e);-1!==t&&a.splice(t,1)}else a[0]===e&&(0,p._)(this,i).delete(t)}}this.notify({type:"removed",mutation:e})}canRun(e){let t=x(e);if("string"!=typeof t)return!0;{let a=(0,p._)(this,i).get(t),r=null==a?void 0:a.find(e=>"pending"===e.state.status);return!r||r===e}}runNext(e){let t=x(e);if("string"!=typeof t)return Promise.resolve();{var a,r;let n=null==(r=(0,p._)(this,i).get(t))?void 0:r.find(t=>t!==e&&t.state.isPaused);return null!=(a=null==n?void 0:n.continue())?a:Promise.resolve()}}clear(){k.notifyManager.batch(()=>{(0,p._)(this,a).forEach(e=>{this.notify({type:"removed",mutation:e})}),(0,p._)(this,a).clear(),(0,p._)(this,i).clear()})}getAll(){return Array.from((0,p._)(this,a))}find(e){let t=(0,b._)({exact:!0},e);return this.getAll().find(e=>(0,M.matchMutation)(t,e))}findAll(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return this.getAll().filter(t=>(0,M.matchMutation)(e,t))}notify(e){k.notifyManager.batch(()=>{this.listeners.forEach(t=>{t(e)})})}resumePausedMutations(){let e=this.getAll().filter(e=>e.state.isPaused);return k.notifyManager.batch(()=>Promise.all(e.map(e=>e.continue().catch(M.noop))))}constructor(e={}){super(),(0,f._)(this,a,{writable:!0,value:void 0}),(0,f._)(this,i,{writable:!0,value:void 0}),(0,f._)(this,r,{writable:!0,value:void 0}),this.config=e,(0,m._)(this,a,new Set),(0,m._)(this,i,new Map),(0,m._)(this,r,0)}});function x(e){var t;return null==(t=e.options.scope)?void 0:t.id}var D=e.i(53079),E=e.i(32802);function q(e){return{onFetch:(t,a)=>{var i,r,n,s,o;let l=t.options,u=null==(n=t.fetchOptions)||null==(r=n.meta)||null==(i=r.fetchMore)?void 0:i.direction,d=(null==(s=t.state.data)?void 0:s.pages)||[],h=(null==(o=t.state.data)?void 0:o.pageParams)||[],c={pages:[],pageParams:[]},_=0,p=async()=>{let a=!1,i=(0,M.ensureQueryFn)(t.options,t.fetchOptions),r=async(e,r,n)=>{let s;if(a)return Promise.reject();if(null==r&&e.pages.length)return Promise.resolve(e);let o=(s={client:t.client,queryKey:t.queryKey,pageParam:r,direction:n?"backward":"forward",meta:t.options.meta},(0,M.addConsumeAwareSignal)(s,()=>t.signal,()=>a=!0),s),l=await i(o),{maxPages:u}=t.options,d=n?M.addToStart:M.addToEnd;return{pages:d(e.pages,l,u),pageParams:d(e.pageParams,r,u)}};if(u&&d.length){let e="backward"===u,t={pages:d,pageParams:h},a=(e?function(e,t){var a;let{pages:i,pageParams:r}=t;return i.length>0?null==(a=e.getPreviousPageParam)?void 0:a.call(e,i[0],i,r[0],r):void 0}:K)(l,t);c=await r(t,a,e)}else{let t=null!=e?e:d.length;do{var n;let e=0===_?null!=(n=h[0])?n:l.initialPageParam:K(l,c);if(_>0&&null==e)break;c=await r(c,e),_++}while(_{var e,i;return null==(e=(i=t.options).persister)?void 0:e.call(i,p,{client:t.client,queryKey:t.queryKey,meta:t.options.meta,signal:t.signal},a)}:t.fetchFn=p}}}function K(e,t){let{pages:a,pageParams:i}=t,r=a.length-1;return a.length>0?e.getNextPageParam(a[r],a,i[r],i):void 0}var I=(n=new WeakMap,s=new WeakMap,o=new WeakMap,l=new WeakMap,u=new WeakMap,d=new WeakMap,h=new WeakMap,c=new WeakMap,class{mount(){g(this,d).value++,1===(0,p._)(this,d)&&((0,m._)(this,h,D.focusManager.subscribe(async e=>{e&&(await this.resumePausedMutations(),(0,p._)(this,n).onFocus())})),(0,m._)(this,c,E.onlineManager.subscribe(async e=>{e&&(await this.resumePausedMutations(),(0,p._)(this,n).onOnline())})))}unmount(){var e,t;g(this,d).value--,0===(0,p._)(this,d)&&(null==(e=(0,p._)(this,h))||e.call(this),(0,m._)(this,h,void 0),null==(t=(0,p._)(this,c))||t.call(this),(0,m._)(this,c,void 0))}isFetching(e){return(0,p._)(this,n).findAll((0,w._)((0,b._)({},e),{fetchStatus:"fetching"})).length}isMutating(e){return(0,p._)(this,s).findAll((0,w._)((0,b._)({},e),{status:"pending"})).length}getQueryData(e){var t;let a=this.defaultQueryOptions({queryKey:e});return null==(t=(0,p._)(this,n).get(a.queryHash))?void 0:t.state.data}ensureQueryData(e){let t=this.defaultQueryOptions(e),a=(0,p._)(this,n).build(this,t),i=a.state.data;return void 0===i?this.fetchQuery(e):(e.revalidateIfStale&&a.isStaleByTime((0,M.resolveStaleTime)(t.staleTime,a))&&this.prefetchQuery(t),Promise.resolve(i))}getQueriesData(e){return(0,p._)(this,n).findAll(e).map(e=>{let{queryKey:t,state:a}=e;return[t,a.data]})}setQueryData(e,t,a){let i=this.defaultQueryOptions({queryKey:e}),r=(0,p._)(this,n).get(i.queryHash),s=null==r?void 0:r.state.data,o=(0,M.functionalUpdate)(t,s);if(void 0!==o)return(0,p._)(this,n).build(this,i).setData(o,(0,w._)((0,b._)({},a),{manual:!0}))}setQueriesData(e,t,a){return k.notifyManager.batch(()=>(0,p._)(this,n).findAll(e).map(e=>{let{queryKey:i}=e;return[i,this.setQueryData(i,t,a)]}))}getQueryState(e){var t;let a=this.defaultQueryOptions({queryKey:e});return null==(t=(0,p._)(this,n).get(a.queryHash))?void 0:t.state}removeQueries(e){let t=(0,p._)(this,n);k.notifyManager.batch(()=>{t.findAll(e).forEach(e=>{t.remove(e)})})}resetQueries(e,t){let a=(0,p._)(this,n);return k.notifyManager.batch(()=>(a.findAll(e).forEach(e=>{e.reset()}),this.refetchQueries((0,b._)({type:"active"},e),t)))}cancelQueries(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},a=(0,b._)({revert:!0},t);return Promise.all(k.notifyManager.batch(()=>(0,p._)(this,n).findAll(e).map(e=>e.cancel(a)))).then(M.noop).catch(M.noop)}invalidateQueries(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return k.notifyManager.batch(()=>{var a,i;return((0,p._)(this,n).findAll(e).forEach(e=>{e.invalidate()}),(null==e?void 0:e.refetchType)==="none")?Promise.resolve():this.refetchQueries((0,w._)((0,b._)({},e),{type:null!=(a=null!=(i=null==e?void 0:e.refetchType)?i:null==e?void 0:e.type)?a:"active"}),t)})}refetchQueries(e){var t;let a=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},i=(0,w._)((0,b._)({},a),{cancelRefetch:null==(t=a.cancelRefetch)||t});return Promise.all(k.notifyManager.batch(()=>(0,p._)(this,n).findAll(e).filter(e=>!e.isDisabled()&&!e.isStatic()).map(e=>{let t=e.fetch(void 0,i);return i.throwOnError||(t=t.catch(M.noop)),"paused"===e.state.fetchStatus?Promise.resolve():t}))).then(M.noop)}fetchQuery(e){let t=this.defaultQueryOptions(e);void 0===t.retry&&(t.retry=!1);let a=(0,p._)(this,n).build(this,t);return a.isStaleByTime((0,M.resolveStaleTime)(t.staleTime,a))?a.fetch(t):Promise.resolve(a.state.data)}prefetchQuery(e){return this.fetchQuery(e).then(M.noop).catch(M.noop)}fetchInfiniteQuery(e){return e.behavior=q(e.pages),this.fetchQuery(e)}prefetchInfiniteQuery(e){return this.fetchInfiniteQuery(e).then(M.noop).catch(M.noop)}ensureInfiniteQueryData(e){return e.behavior=q(e.pages),this.ensureQueryData(e)}resumePausedMutations(){return E.onlineManager.isOnline()?(0,p._)(this,s).resumePausedMutations():Promise.resolve()}getQueryCache(){return(0,p._)(this,n)}getMutationCache(){return(0,p._)(this,s)}getDefaultOptions(){return(0,p._)(this,o)}setDefaultOptions(e){(0,m._)(this,o,e)}setQueryDefaults(e,t){(0,p._)(this,l).set((0,M.hashKey)(e),{queryKey:e,defaultOptions:t})}getQueryDefaults(e){let t=[...(0,p._)(this,l).values()],a={};return t.forEach(t=>{(0,M.partialMatchKey)(e,t.queryKey)&&Object.assign(a,t.defaultOptions)}),a}setMutationDefaults(e,t){(0,p._)(this,u).set((0,M.hashKey)(e),{mutationKey:e,defaultOptions:t})}getMutationDefaults(e){let t=[...(0,p._)(this,u).values()],a={};return t.forEach(t=>{(0,M.partialMatchKey)(e,t.mutationKey)&&Object.assign(a,t.defaultOptions)}),a}defaultQueryOptions(e){if(e._defaulted)return e;let t=(0,w._)((0,b._)({},(0,p._)(this,o).queries,this.getQueryDefaults(e.queryKey),e),{_defaulted:!0});return t.queryHash||(t.queryHash=(0,M.hashQueryKeyByOptions)(t.queryKey,t)),void 0===t.refetchOnReconnect&&(t.refetchOnReconnect="always"!==t.networkMode),void 0===t.throwOnError&&(t.throwOnError=!!t.suspense),!t.networkMode&&t.persister&&(t.networkMode="offlineFirst"),t.queryFn===M.skipToken&&(t.enabled=!1),t}defaultMutationOptions(e){return(null==e?void 0:e._defaulted)?e:(0,w._)((0,b._)({},(0,p._)(this,o).mutations,(null==e?void 0:e.mutationKey)&&this.getMutationDefaults(e.mutationKey),e),{_defaulted:!0})}clear(){(0,p._)(this,n).clear(),(0,p._)(this,s).clear()}constructor(e={}){(0,f._)(this,n,{writable:!0,value:void 0}),(0,f._)(this,s,{writable:!0,value:void 0}),(0,f._)(this,o,{writable:!0,value:void 0}),(0,f._)(this,l,{writable:!0,value:void 0}),(0,f._)(this,u,{writable:!0,value:void 0}),(0,f._)(this,d,{writable:!0,value:void 0}),(0,f._)(this,h,{writable:!0,value:void 0}),(0,f._)(this,c,{writable:!0,value:void 0}),(0,m._)(this,n,e.queryCache||new A),(0,m._)(this,s,e.mutationCache||new T),(0,m._)(this,o,e.defaultOptions||{}),(0,m._)(this,l,new Map),(0,m._)(this,u,new Map),(0,m._)(this,d,0)}}),W=e.i(60845),j=e.i(82094);function C(e){let{children:t}=e,[a]=(0,j.useState)(()=>new I({defaultOptions:{queries:{staleTime:6e4}}}));return(0,_.jsx)(W.QueryClientProvider,{client:a,children:t})}e.s(["default",()=>C],82190)}]);