@manago/admin 0.1.0 → 0.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,6 @@
1
+ "use strict";var L=Object.create;var f=Object.defineProperty;var H=Object.getOwnPropertyDescriptor;var $=Object.getOwnPropertyNames;var z=Object.getPrototypeOf,F=Object.prototype.hasOwnProperty;var G=(e,t)=>{for(var s in t)f(e,s,{get:t[s],enumerable:!0})},M=(e,t,s,d)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of $(t))!F.call(e,o)&&o!==s&&f(e,o,{get:()=>t[o],enumerable:!(d=H(t,o))||d.enumerable});return e};var S=(e,t,s)=>(s=e!=null?L(z(e)):{},M(t||!e||!e.__esModule?f(s,"default",{value:e,enumerable:!0}):s,e)),W=e=>M(f({},"__esModule",{value:!0}),e);var me={};G(me,{ManagoAdmin:()=>K,useManago:()=>c});module.exports=W(me);var T=S(require("react")),g=require("@tanstack/react-router");var h=S(require("react")),O=require("react/jsx-runtime"),v=(0,h.createContext)(void 0),A=({children:e,apiKey:t,config:s,navigate:d,currentPath:o})=>(0,O.jsx)(v.Provider,{value:{apiKey:t,config:s,navigate:d,currentPath:o},children:e}),c=()=>{let e=h.default.useContext(v);if(!e)throw new Error("useManago must be used within ManagoProvider");return e};var D=require("react");var k=()=>{let e=(0,D.useContext)(v);if(!e)throw new Error("useNavigation must be used within ManagoProvider");return{navigate:e.navigate,currentPath:e.currentPath,isActive:t=>t==="/"?e.currentPath==="/"||e.currentPath==="":e.currentPath.startsWith(t)}};var r=require("react/jsx-runtime"),B=[{id:"dashboard",label:"Dashboard",path:"/"},{id:"orders",label:"Orders",path:"/orders"},{id:"customers",label:"Customers",path:"/customers"},{id:"products",label:"Products",path:"/products"},{id:"settings",label:"Settings",path:"/settings"}],I=()=>{let{config:e}=c(),{navigate:t,isActive:s}=k(),d=B.filter(o=>(e.menu||{})[o.id]!==!1);return(0,r.jsxs)("aside",{className:"mng-w-64 mng-bg-slate-900 mng-text-white mng-flex mng-flex-col",children:[(0,r.jsx)("div",{className:"mng-p-6 mng-flex mng-items-center mng-gap-3",children:e.theme?.logo?(0,r.jsx)("img",{src:e.theme.logo,alt:e.appName,className:"mng-h-8"}):(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)("div",{className:"mng-w-8 mng-h-8 mng-bg-blue-500 mng-rounded-md mng-flex mng-items-center mng-justify-center mng-font-bold",children:e.appName.charAt(0).toUpperCase()}),(0,r.jsx)("span",{className:"mng-text-xl mng-font-bold mng-tracking-tight",children:e.appName||"Manago"})]})}),(0,r.jsx)("nav",{className:"mng-flex-1 mng-px-3 mng-space-y-1",children:d.map(o=>(0,r.jsxs)("button",{onClick:()=>t(o.path),className:`
2
+ mng-w-full mng-flex mng-items-center mng-px-4 mng-py-2.5 mng-text-sm mng-rounded-lg
3
+ mng-transition-colors mng-text-left
4
+ ${s(o.path)?"mng-bg-blue-600 mng-text-white":"mng-text-slate-300 hover:mng-bg-slate-800 hover:mng-text-white"}
5
+ `,children:[o.icon&&(0,r.jsx)("span",{className:"mng-mr-3",children:o.icon}),o.label]},o.id))}),(0,r.jsx)("div",{className:"mng-p-4 mng-border-t mng-border-slate-800",children:(0,r.jsx)("p",{className:"mng-text-xs mng-text-slate-500 mng-text-center",children:"Powered by Manago"})})]})};var x=require("react/jsx-runtime"),E=({title:e="Admin Panel"})=>{let{config:t}=c();return(0,x.jsxs)("header",{className:"mng-h-16 mng-bg-white mng-border-b mng-border-slate-200 mng-flex mng-items-center mng-px-8 mng-justify-between",children:[(0,x.jsx)("h1",{className:"mng-text-sm mng-font-medium mng-text-slate-500",children:e}),(0,x.jsx)("div",{className:"mng-flex mng-items-center mng-gap-4",children:(0,x.jsx)("span",{className:"mng-text-sm mng-text-slate-600",children:t.appName})})]})};var u=require("react/jsx-runtime"),j=({children:e})=>(0,u.jsxs)("div",{className:"mng-flex mng-h-screen mng-bg-slate-50 mng-font-sans",children:[(0,u.jsx)(I,{}),(0,u.jsxs)("div",{className:"mng-flex-1 mng-flex mng-flex-col mng-overflow-hidden",children:[(0,u.jsx)(E,{}),(0,u.jsx)("main",{className:"mng-flex-1 mng-overflow-y-auto mng-p-8",children:e})]})]});var l=require("react/jsx-runtime"),N=()=>(0,l.jsxs)("div",{className:"mng-space-y-6",children:[(0,l.jsxs)("div",{className:"mng-flex mng-items-center mng-justify-between",children:[(0,l.jsx)("h2",{className:"mng-text-2xl mng-font-bold mng-text-slate-800",children:"Overview"}),(0,l.jsx)("button",{className:"mng-bg-blue-600 mng-text-white mng-px-4 mng-py-2 mng-rounded-lg mng-text-sm mng-font-medium hover:mng-bg-blue-700 mng-transition-colors",children:"Download Report"})]}),(0,l.jsx)("div",{className:"mng-grid mng-grid-cols-1 md:mng-grid-cols-3 mng-gap-6",children:[{label:"Total Revenue",value:"\u20AC45,231.89",change:"+20.1%",color:"mng-text-green-600"},{label:"Active Orders",value:"154",change:"+12.5%",color:"mng-text-green-600"},{label:"Refund Rate",value:"1.2%",change:"-0.4%",color:"mng-text-red-600"}].map(e=>(0,l.jsxs)("div",{className:"mng-bg-white mng-p-6 mng-rounded-xl mng-border mng-border-slate-200 mng-shadow-sm",children:[(0,l.jsx)("p",{className:"mng-text-sm mng-font-medium mng-text-slate-500",children:e.label}),(0,l.jsxs)("div",{className:"mng-flex mng-items-baseline mng-gap-2 mng-mt-2",children:[(0,l.jsx)("h3",{className:"mng-text-3xl mng-font-bold mng-text-slate-900",children:e.value}),(0,l.jsx)("span",{className:`mng-text-xs mng-font-medium ${e.color}`,children:e.change})]})]},e.label))}),(0,l.jsx)("div",{className:"mng-bg-white mng-rounded-xl mng-border mng-border-slate-200 mng-shadow-sm mng-h-64 mng-flex mng-items-center mng-justify-center",children:(0,l.jsx)("p",{className:"mng-text-slate-400 mng-italic",children:"Chart visualization will be here..."})})]});var m=require("react/jsx-runtime"),J=[{id:"#ORD-7721",customer:"Ion Popescu",status:"Completed",total:"\u20AC120.00",date:"Acum 2 ore"},{id:"#ORD-7722",customer:"Elena Radu",status:"Processing",total:"\u20AC45.50",date:"Acum 5 ore"},{id:"#ORD-7723",customer:"Mihai Sandu",status:"Pending",total:"\u20AC210.99",date:"Ieri"},{id:"#ORD-7724",customer:"Ana Ionescu",status:"Completed",total:"\u20AC89.99",date:"Ieri"},{id:"#ORD-7725",customer:"George Popa",status:"Cancelled",total:"\u20AC156.00",date:"Acum 2 zile"}],U=e=>{switch(e){case"Completed":return"mng-bg-green-100 mng-text-green-700";case"Processing":return"mng-bg-blue-100 mng-text-blue-700";case"Pending":return"mng-bg-yellow-100 mng-text-yellow-700";case"Cancelled":return"mng-bg-red-100 mng-text-red-700";default:return"mng-bg-slate-100 mng-text-slate-700"}},y=()=>(0,m.jsxs)("div",{className:"mng-space-y-6",children:[(0,m.jsxs)("div",{className:"mng-flex mng-items-center mng-justify-between",children:[(0,m.jsx)("h2",{className:"mng-text-2xl mng-font-bold mng-text-slate-800",children:"Orders Management"}),(0,m.jsx)("button",{className:"mng-bg-blue-600 mng-text-white mng-px-4 mng-py-2 mng-rounded-lg mng-text-sm mng-font-medium hover:mng-bg-blue-700 mng-transition-colors",children:"Export Orders"})]}),(0,m.jsx)("div",{className:"mng-bg-white mng-rounded-xl mng-border mng-border-slate-200 mng-shadow-sm mng-overflow-hidden",children:(0,m.jsxs)("table",{className:"mng-w-full mng-text-left mng-border-collapse",children:[(0,m.jsx)("thead",{children:(0,m.jsxs)("tr",{className:"mng-bg-slate-50 mng-border-b mng-border-slate-200",children:[(0,m.jsx)("th",{className:"mng-px-6 mng-py-4 mng-text-xs mng-font-semibold mng-text-slate-500 mng-uppercase",children:"Order ID"}),(0,m.jsx)("th",{className:"mng-px-6 mng-py-4 mng-text-xs mng-font-semibold mng-text-slate-500 mng-uppercase",children:"Customer"}),(0,m.jsx)("th",{className:"mng-px-6 mng-py-4 mng-text-xs mng-font-semibold mng-text-slate-500 mng-uppercase",children:"Status"}),(0,m.jsx)("th",{className:"mng-px-6 mng-py-4 mng-text-xs mng-font-semibold mng-text-slate-500 mng-uppercase",children:"Total"}),(0,m.jsx)("th",{className:"mng-px-6 mng-py-4 mng-text-xs mng-font-semibold mng-text-slate-500 mng-uppercase",children:"Date"})]})}),(0,m.jsx)("tbody",{className:"mng-divide-y mng-divide-slate-200",children:J.map(e=>(0,m.jsxs)("tr",{className:"hover:mng-bg-slate-50 mng-transition-colors",children:[(0,m.jsx)("td",{className:"mng-px-6 mng-py-4 mng-text-sm mng-font-medium mng-text-blue-600",children:e.id}),(0,m.jsx)("td",{className:"mng-px-6 mng-py-4 mng-text-sm mng-text-slate-600",children:e.customer}),(0,m.jsx)("td",{className:"mng-px-6 mng-py-4",children:(0,m.jsx)("span",{className:`mng-px-2.5 mng-py-0.5 mng-rounded-full mng-text-xs mng-font-medium ${U(e.status)}`,children:e.status})}),(0,m.jsx)("td",{className:"mng-px-6 mng-py-4 mng-text-sm mng-font-semibold mng-text-slate-900",children:e.total}),(0,m.jsx)("td",{className:"mng-px-6 mng-py-4 mng-text-sm mng-text-slate-500",children:e.date})]},e.id))})]})})]});var n=require("react/jsx-runtime"),q=[{id:"1",name:"Ion Popescu",email:"ion.popescu@example.com",orders:12,totalSpent:"\u20AC1,234.56",joined:"2024-01-15"},{id:"2",name:"Elena Radu",email:"elena.radu@example.com",orders:8,totalSpent:"\u20AC876.32",joined:"2024-02-20"},{id:"3",name:"Mihai Sandu",email:"mihai.sandu@example.com",orders:15,totalSpent:"\u20AC2,103.45",joined:"2023-11-10"},{id:"4",name:"Ana Ionescu",email:"ana.ionescu@example.com",orders:5,totalSpent:"\u20AC543.21",joined:"2024-03-05"}],w=()=>(0,n.jsxs)("div",{className:"mng-space-y-6",children:[(0,n.jsxs)("div",{className:"mng-flex mng-items-center mng-justify-between",children:[(0,n.jsx)("h2",{className:"mng-text-2xl mng-font-bold mng-text-slate-800",children:"Customers"}),(0,n.jsx)("button",{className:"mng-bg-blue-600 mng-text-white mng-px-4 mng-py-2 mng-rounded-lg mng-text-sm mng-font-medium hover:mng-bg-blue-700 mng-transition-colors",children:"Add Customer"})]}),(0,n.jsx)("div",{className:"mng-bg-white mng-rounded-xl mng-border mng-border-slate-200 mng-shadow-sm mng-overflow-hidden",children:(0,n.jsxs)("table",{className:"mng-w-full mng-text-left mng-border-collapse",children:[(0,n.jsx)("thead",{children:(0,n.jsxs)("tr",{className:"mng-bg-slate-50 mng-border-b mng-border-slate-200",children:[(0,n.jsx)("th",{className:"mng-px-6 mng-py-4 mng-text-xs mng-font-semibold mng-text-slate-500 mng-uppercase",children:"Customer"}),(0,n.jsx)("th",{className:"mng-px-6 mng-py-4 mng-text-xs mng-font-semibold mng-text-slate-500 mng-uppercase",children:"Email"}),(0,n.jsx)("th",{className:"mng-px-6 mng-py-4 mng-text-xs mng-font-semibold mng-text-slate-500 mng-uppercase",children:"Orders"}),(0,n.jsx)("th",{className:"mng-px-6 mng-py-4 mng-text-xs mng-font-semibold mng-text-slate-500 mng-uppercase",children:"Total Spent"}),(0,n.jsx)("th",{className:"mng-px-6 mng-py-4 mng-text-xs mng-font-semibold mng-text-slate-500 mng-uppercase",children:"Joined"})]})}),(0,n.jsx)("tbody",{className:"mng-divide-y mng-divide-slate-200",children:q.map(e=>(0,n.jsxs)("tr",{className:"hover:mng-bg-slate-50 mng-transition-colors",children:[(0,n.jsx)("td",{className:"mng-px-6 mng-py-4",children:(0,n.jsxs)("div",{className:"mng-flex mng-items-center mng-gap-3",children:[(0,n.jsx)("div",{className:"mng-w-10 mng-h-10 mng-rounded-full mng-bg-blue-100 mng-flex mng-items-center mng-justify-center mng-text-blue-600 mng-font-semibold",children:e.name.charAt(0)}),(0,n.jsx)("span",{className:"mng-text-sm mng-font-medium mng-text-slate-900",children:e.name})]})}),(0,n.jsx)("td",{className:"mng-px-6 mng-py-4 mng-text-sm mng-text-slate-600",children:e.email}),(0,n.jsx)("td",{className:"mng-px-6 mng-py-4 mng-text-sm mng-text-slate-900",children:e.orders}),(0,n.jsx)("td",{className:"mng-px-6 mng-py-4 mng-text-sm mng-font-semibold mng-text-slate-900",children:e.totalSpent}),(0,n.jsx)("td",{className:"mng-px-6 mng-py-4 mng-text-sm mng-text-slate-500",children:e.joined})]},e.id))})]})})]});var p=require("react/jsx-runtime"),P=()=>(0,p.jsxs)("div",{className:"mng-space-y-6",children:[(0,p.jsxs)("div",{className:"mng-flex mng-items-center mng-justify-between",children:[(0,p.jsx)("h2",{className:"mng-text-2xl mng-font-bold mng-text-slate-800",children:"Products"}),(0,p.jsx)("button",{className:"mng-bg-blue-600 mng-text-white mng-px-4 mng-py-2 mng-rounded-lg mng-text-sm mng-font-medium hover:mng-bg-blue-700 mng-transition-colors",children:"Add Product"})]}),(0,p.jsx)("div",{className:"mng-bg-white mng-rounded-xl mng-border mng-border-slate-200 mng-shadow-sm mng-p-12 mng-flex mng-items-center mng-justify-center mng-min-h-96",children:(0,p.jsx)("p",{className:"mng-text-slate-400 mng-italic",children:"Products management coming soon..."})})]});var a=require("react/jsx-runtime"),R=()=>{let{config:e}=c();return(0,a.jsxs)("div",{className:"mng-space-y-6",children:[(0,a.jsx)("h2",{className:"mng-text-2xl mng-font-bold mng-text-slate-800",children:"Settings"}),(0,a.jsxs)("div",{className:"mng-bg-white mng-rounded-xl mng-border mng-border-slate-200 mng-shadow-sm mng-p-6 mng-space-y-6",children:[(0,a.jsxs)("div",{children:[(0,a.jsx)("h3",{className:"mng-text-lg mng-font-semibold mng-text-slate-800 mng-mb-4",children:"General Settings"}),(0,a.jsxs)("div",{className:"mng-space-y-4",children:[(0,a.jsxs)("div",{children:[(0,a.jsx)("label",{className:"mng-block mng-text-sm mng-font-medium mng-text-slate-700 mng-mb-2",children:"Application Name"}),(0,a.jsx)("input",{type:"text",disabled:!0,value:e.appName,className:"mng-w-full mng-px-4 mng-py-2 mng-border mng-border-slate-300 mng-rounded-lg mng-bg-slate-50 mng-text-slate-500"}),(0,a.jsx)("p",{className:"mng-text-xs mng-text-slate-500 mng-mt-1",children:"Configured via ManagoProvider"})]}),(0,a.jsxs)("div",{children:[(0,a.jsx)("label",{className:"mng-block mng-text-sm mng-font-medium mng-text-slate-700 mng-mb-2",children:"API Endpoint"}),(0,a.jsx)("input",{type:"text",disabled:!0,value:e.apiEndpoint||"Not configured",className:"mng-w-full mng-px-4 mng-py-2 mng-border mng-border-slate-300 mng-rounded-lg mng-bg-slate-50 mng-text-slate-500"})]})]})]}),(0,a.jsxs)("div",{className:"mng-border-t mng-border-slate-200 mng-pt-6",children:[(0,a.jsx)("h3",{className:"mng-text-lg mng-font-semibold mng-text-slate-800 mng-mb-4",children:"Menu Configuration"}),(0,a.jsx)("div",{className:"mng-space-y-2",children:Object.entries(e.menu||{}).map(([t,s])=>(0,a.jsxs)("div",{className:"mng-flex mng-items-center mng-justify-between",children:[(0,a.jsx)("span",{className:"mng-text-sm mng-text-slate-700 mng-capitalize",children:t}),(0,a.jsx)("span",{className:`mng-text-sm mng-font-medium ${s?"mng-text-green-600":"mng-text-red-600"}`,children:s?"Enabled":"Disabled"})]},t))})]})]})]})};var i=require("react/jsx-runtime"),Q=()=>{let e=(0,g.useNavigate)();return(0,i.jsx)("div",{className:"mng-flex mng-items-center mng-justify-center mng-h-full",children:(0,i.jsxs)("div",{className:"mng-text-center",children:[(0,i.jsx)("h2",{className:"mng-text-2xl mng-font-bold mng-text-slate-800 mng-mb-2",children:"Page Not Found"}),(0,i.jsx)("p",{className:"mng-text-slate-600 mng-mb-4",children:"The page you're looking for doesn't exist."}),(0,i.jsx)("button",{onClick:()=>e({to:"/"}),className:"mng-bg-blue-600 mng-text-white mng-px-4 mng-py-2 mng-rounded-lg mng-text-sm mng-font-medium hover:mng-bg-blue-700",children:"Go to Dashboard"})]})})},b=(0,g.createRootRoute)({component:()=>(0,i.jsx)(j,{children:(0,i.jsx)(g.Outlet,{})}),notFoundComponent:Q}),V=(0,g.createRoute)({getParentRoute:()=>b,path:"/",component:N}),X=(0,g.createRoute)({getParentRoute:()=>b,path:"/orders",component:y}),Y=(0,g.createRoute)({getParentRoute:()=>b,path:"/customers",component:w}),Z=(0,g.createRoute)({getParentRoute:()=>b,path:"/products",component:P}),_=(0,g.createRoute)({getParentRoute:()=>b,path:"/settings",component:R}),ee=b.addChildren([V,X,Y,Z,_]),te=({apiKey:e,config:t,basePath:s})=>{let d=T.default.useMemo(()=>(0,g.createRouter)({routeTree:ee,basepath:s||"/admin",defaultPreload:"intent"}),[s]);return(0,i.jsx)(g.RouterProvider,{router:d,children:(0,i.jsx)(ne,{apiKey:e,config:t})})},ne=({apiKey:e,config:t})=>{let s=(0,g.useNavigate)(),d=(0,g.useRouterState)();return(0,i.jsx)(A,{apiKey:e,config:t,navigate:C=>{s({to:C})},currentPath:d.location.pathname,children:(0,i.jsx)(g.Outlet,{})})},K=te;0&&(module.exports={ManagoAdmin,useManago});
6
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/adapters/tanstack/index.ts","../../../src/adapters/tanstack/ManagoAdmin.tsx","../../../src/providers/ManagoProvider.tsx","../../../src/hooks/useNavigation.ts","../../../src/core/components/Sidebar.tsx","../../../src/core/components/Header.tsx","../../../src/core/components/Layout.tsx","../../../src/core/pages/Dashboard.tsx","../../../src/core/pages/Orders.tsx","../../../src/core/pages/Customers.tsx","../../../src/core/pages/Products.tsx","../../../src/core/pages/Settings.tsx"],"sourcesContent":["export { ManagoAdmin } from './ManagoAdmin';\nexport { useManago } from '../../providers/ManagoProvider';\nexport type { ManagoConfig } from '../../types';\n","// @ts-nocheck - TanStack Router is a peer dependency\nimport React from 'react';\nimport {\n createRootRoute,\n createRoute,\n createRouter,\n RouterProvider,\n Outlet,\n useNavigate,\n useRouterState,\n} from '@tanstack/react-router';\nimport { ManagoProvider as BaseManagoProvider } from '../../providers/ManagoProvider';\nimport { Layout } from '../../core/components/Layout';\nimport { Dashboard, Orders, Customers, Products, Settings } from '../../core/pages';\nimport type { ManagoConfig } from '../../types';\n\ninterface ManagoAdminProps {\n apiKey: string;\n config: ManagoConfig;\n basePath?: string;\n}\n\nconst NotFound = () => {\n const navigate = useNavigate();\n\n return (\n <div className=\"mng-flex mng-items-center mng-justify-center mng-h-full\">\n <div className=\"mng-text-center\">\n <h2 className=\"mng-text-2xl mng-font-bold mng-text-slate-800 mng-mb-2\">\n Page Not Found\n </h2>\n <p className=\"mng-text-slate-600 mng-mb-4\">\n The page you're looking for doesn't exist.\n </p>\n <button\n onClick={() => navigate({ to: '/' })}\n className=\"mng-bg-blue-600 mng-text-white mng-px-4 mng-py-2 mng-rounded-lg mng-text-sm mng-font-medium hover:mng-bg-blue-700\"\n >\n Go to Dashboard\n </button>\n </div>\n </div>\n );\n};\n\n// Create routes\nconst rootRoute = createRootRoute({\n component: () => (\n <Layout>\n <Outlet />\n </Layout>\n ),\n notFoundComponent: NotFound,\n});\n\nconst indexRoute = createRoute({\n getParentRoute: () => rootRoute,\n path: '/',\n component: Dashboard,\n});\n\nconst ordersRoute = createRoute({\n getParentRoute: () => rootRoute,\n path: '/orders',\n component: Orders,\n});\n\nconst customersRoute = createRoute({\n getParentRoute: () => rootRoute,\n path: '/customers',\n component: Customers,\n});\n\nconst productsRoute = createRoute({\n getParentRoute: () => rootRoute,\n path: '/products',\n component: Products,\n});\n\nconst settingsRoute = createRoute({\n getParentRoute: () => rootRoute,\n path: '/settings',\n component: Settings,\n});\n\nconst routeTree = rootRoute.addChildren([\n indexRoute,\n ordersRoute,\n customersRoute,\n productsRoute,\n settingsRoute,\n]);\n\n// Router wrapper component\nconst RouterWrapper = ({ apiKey, config, basePath }: ManagoAdminProps) => {\n const router = React.useMemo(\n () =>\n createRouter({\n routeTree,\n basepath: basePath || '/admin',\n defaultPreload: 'intent',\n }),\n [basePath]\n );\n\n return (\n <RouterProvider router={router}>\n <InnerWrapper apiKey={apiKey} config={config} />\n </RouterProvider>\n );\n};\n\n// Inner component that has access to router hooks\nconst InnerWrapper = ({ apiKey, config }: { apiKey: string; config: ManagoConfig }) => {\n const navigate = useNavigate();\n const routerState = useRouterState();\n\n const handleNavigate = (path: string) => {\n navigate({ to: path });\n };\n\n return (\n <BaseManagoProvider\n apiKey={apiKey}\n config={config}\n navigate={handleNavigate}\n currentPath={routerState.location.pathname}\n >\n <Outlet />\n </BaseManagoProvider>\n );\n};\n\n/**\n * TanStack Router adapter for Manago Admin\n *\n * Usage:\n *\n * import { ManagoAdmin } from '@manago/admin/tanstack';\n *\n * function App() {\n * return <ManagoAdmin apiKey=\"...\" config={{ appName: \"My Store\" }} basePath=\"/admin\" />;\n * }\n */\nexport const ManagoAdmin = RouterWrapper;\n","import React, { createContext, ReactNode } from 'react';\nimport type { ManagoConfig, ManagoContextType } from '../types';\n\nexport const ManagoContext = createContext<ManagoContextType | undefined>(undefined);\n\ninterface ManagoProviderProps {\n children: ReactNode;\n apiKey: string;\n config: ManagoConfig;\n navigate: (path: string) => void;\n currentPath: string;\n}\n\nexport const ManagoProvider = ({\n children,\n apiKey,\n config,\n navigate,\n currentPath,\n}: ManagoProviderProps) => {\n return (\n <ManagoContext.Provider value={{ apiKey, config, navigate, currentPath }}>\n {children}\n </ManagoContext.Provider>\n );\n};\n\nexport const useManago = () => {\n const context = React.useContext(ManagoContext);\n if (!context) throw new Error('useManago must be used within ManagoProvider');\n return context;\n};","import { useContext } from 'react';\nimport { ManagoContext } from '../providers/ManagoProvider';\n\n/**\n * Hook for framework-agnostic navigation\n * Uses the navigation adapter provided by the framework-specific ManagoAdmin component\n */\nexport const useNavigation = () => {\n const context = useContext(ManagoContext);\n\n if (!context) {\n throw new Error('useNavigation must be used within ManagoProvider');\n }\n\n return {\n navigate: context.navigate,\n currentPath: context.currentPath,\n isActive: (path: string) => {\n // Handle both exact matches and nested routes\n if (path === '/') {\n return context.currentPath === '/' || context.currentPath === '';\n }\n return context.currentPath.startsWith(path);\n },\n };\n};\n","import React from 'react';\nimport { useManago } from '../../providers/ManagoProvider';\nimport { useNavigation } from '../../hooks/useNavigation';\nimport type { MenuItem } from '../../types';\n\nconst defaultMenuItems: MenuItem[] = [\n { id: 'dashboard', label: 'Dashboard', path: '/' },\n { id: 'orders', label: 'Orders', path: '/orders' },\n { id: 'customers', label: 'Customers', path: '/customers' },\n { id: 'products', label: 'Products', path: '/products' },\n { id: 'settings', label: 'Settings', path: '/settings' },\n];\n\nexport const Sidebar = () => {\n const { config } = useManago();\n const { navigate, isActive } = useNavigation();\n\n const menuItems = defaultMenuItems.filter((item) => {\n const menuConfig = config.menu || {};\n // If menu item is explicitly set to false, hide it\n if (menuConfig[item.id as keyof typeof menuConfig] === false) {\n return false;\n }\n return true;\n });\n\n return (\n <aside className=\"mng-w-64 mng-bg-slate-900 mng-text-white mng-flex mng-flex-col\">\n {/* Logo / Brand */}\n <div className=\"mng-p-6 mng-flex mng-items-center mng-gap-3\">\n {config.theme?.logo ? (\n <img src={config.theme.logo} alt={config.appName} className=\"mng-h-8\" />\n ) : (\n <>\n <div className=\"mng-w-8 mng-h-8 mng-bg-blue-500 mng-rounded-md mng-flex mng-items-center mng-justify-center mng-font-bold\">\n {config.appName.charAt(0).toUpperCase()}\n </div>\n <span className=\"mng-text-xl mng-font-bold mng-tracking-tight\">\n {config.appName || 'Manago'}\n </span>\n </>\n )}\n </div>\n\n {/* Navigation Menu */}\n <nav className=\"mng-flex-1 mng-px-3 mng-space-y-1\">\n {menuItems.map((item) => (\n <button\n key={item.id}\n onClick={() => navigate(item.path)}\n className={`\n mng-w-full mng-flex mng-items-center mng-px-4 mng-py-2.5 mng-text-sm mng-rounded-lg\n mng-transition-colors mng-text-left\n ${\n isActive(item.path)\n ? 'mng-bg-blue-600 mng-text-white'\n : 'mng-text-slate-300 hover:mng-bg-slate-800 hover:mng-text-white'\n }\n `}\n >\n {item.icon && <span className=\"mng-mr-3\">{item.icon}</span>}\n {item.label}\n </button>\n ))}\n </nav>\n\n {/* Footer */}\n <div className=\"mng-p-4 mng-border-t mng-border-slate-800\">\n <p className=\"mng-text-xs mng-text-slate-500 mng-text-center\">\n Powered by Manago\n </p>\n </div>\n </aside>\n );\n};\n","import React from 'react';\nimport { useManago } from '../../providers/ManagoProvider';\n\ninterface HeaderProps {\n title?: string;\n}\n\nexport const Header = ({ title = 'Admin Panel' }: HeaderProps) => {\n const { config } = useManago();\n\n return (\n <header className=\"mng-h-16 mng-bg-white mng-border-b mng-border-slate-200 mng-flex mng-items-center mng-px-8 mng-justify-between\">\n <h1 className=\"mng-text-sm mng-font-medium mng-text-slate-500\">{title}</h1>\n\n <div className=\"mng-flex mng-items-center mng-gap-4\">\n <span className=\"mng-text-sm mng-text-slate-600\">{config.appName}</span>\n </div>\n </header>\n );\n};\n","import React, { ReactNode } from 'react';\nimport { Sidebar } from './Sidebar';\nimport { Header } from './Header';\n\ninterface LayoutProps {\n children: ReactNode;\n}\n\nexport const Layout = ({ children }: LayoutProps) => {\n return (\n <div className=\"mng-flex mng-h-screen mng-bg-slate-50 mng-font-sans\">\n <Sidebar />\n\n <div className=\"mng-flex-1 mng-flex mng-flex-col mng-overflow-hidden\">\n <Header />\n <main className=\"mng-flex-1 mng-overflow-y-auto mng-p-8\">\n {children}\n </main>\n </div>\n </div>\n );\n};\n","import React from 'react';\n\nexport const Dashboard = () => {\n return (\n <div className=\"mng-space-y-6\">\n <div className=\"mng-flex mng-items-center mng-justify-between\">\n <h2 className=\"mng-text-2xl mng-font-bold mng-text-slate-800\">Overview</h2>\n <button className=\"mng-bg-blue-600 mng-text-white mng-px-4 mng-py-2 mng-rounded-lg mng-text-sm mng-font-medium hover:mng-bg-blue-700 mng-transition-colors\">\n Download Report\n </button>\n </div>\n\n {/* Stats Cards */}\n <div className=\"mng-grid mng-grid-cols-1 md:mng-grid-cols-3 mng-gap-6\">\n {[\n { label: 'Total Revenue', value: '€45,231.89', change: '+20.1%', color: 'mng-text-green-600' },\n { label: 'Active Orders', value: '154', change: '+12.5%', color: 'mng-text-green-600' },\n { label: 'Refund Rate', value: '1.2%', change: '-0.4%', color: 'mng-text-red-600' },\n ].map((stat) => (\n <div key={stat.label} className=\"mng-bg-white mng-p-6 mng-rounded-xl mng-border mng-border-slate-200 mng-shadow-sm\">\n <p className=\"mng-text-sm mng-font-medium mng-text-slate-500\">{stat.label}</p>\n <div className=\"mng-flex mng-items-baseline mng-gap-2 mng-mt-2\">\n <h3 className=\"mng-text-3xl mng-font-bold mng-text-slate-900\">{stat.value}</h3>\n <span className={`mng-text-xs mng-font-medium ${stat.color}`}>{stat.change}</span>\n </div>\n </div>\n ))}\n </div>\n\n {/* Chart Placeholder */}\n <div className=\"mng-bg-white mng-rounded-xl mng-border mng-border-slate-200 mng-shadow-sm mng-h-64 mng-flex mng-items-center mng-justify-center\">\n <p className=\"mng-text-slate-400 mng-italic\">Chart visualization will be here...</p>\n </div>\n </div>\n );\n};\n","import React from 'react';\n\nconst mockOrders = [\n { id: '#ORD-7721', customer: 'Ion Popescu', status: 'Completed', total: '€120.00', date: 'Acum 2 ore' },\n { id: '#ORD-7722', customer: 'Elena Radu', status: 'Processing', total: '€45.50', date: 'Acum 5 ore' },\n { id: '#ORD-7723', customer: 'Mihai Sandu', status: 'Pending', total: '€210.99', date: 'Ieri' },\n { id: '#ORD-7724', customer: 'Ana Ionescu', status: 'Completed', total: '€89.99', date: 'Ieri' },\n { id: '#ORD-7725', customer: 'George Popa', status: 'Cancelled', total: '€156.00', date: 'Acum 2 zile' },\n];\n\nconst getStatusColor = (status: string) => {\n switch (status) {\n case 'Completed':\n return 'mng-bg-green-100 mng-text-green-700';\n case 'Processing':\n return 'mng-bg-blue-100 mng-text-blue-700';\n case 'Pending':\n return 'mng-bg-yellow-100 mng-text-yellow-700';\n case 'Cancelled':\n return 'mng-bg-red-100 mng-text-red-700';\n default:\n return 'mng-bg-slate-100 mng-text-slate-700';\n }\n};\n\nexport const Orders = () => {\n return (\n <div className=\"mng-space-y-6\">\n <div className=\"mng-flex mng-items-center mng-justify-between\">\n <h2 className=\"mng-text-2xl mng-font-bold mng-text-slate-800\">Orders Management</h2>\n <button className=\"mng-bg-blue-600 mng-text-white mng-px-4 mng-py-2 mng-rounded-lg mng-text-sm mng-font-medium hover:mng-bg-blue-700 mng-transition-colors\">\n Export Orders\n </button>\n </div>\n\n <div className=\"mng-bg-white mng-rounded-xl mng-border mng-border-slate-200 mng-shadow-sm mng-overflow-hidden\">\n <table className=\"mng-w-full mng-text-left mng-border-collapse\">\n <thead>\n <tr className=\"mng-bg-slate-50 mng-border-b mng-border-slate-200\">\n <th className=\"mng-px-6 mng-py-4 mng-text-xs mng-font-semibold mng-text-slate-500 mng-uppercase\">\n Order ID\n </th>\n <th className=\"mng-px-6 mng-py-4 mng-text-xs mng-font-semibold mng-text-slate-500 mng-uppercase\">\n Customer\n </th>\n <th className=\"mng-px-6 mng-py-4 mng-text-xs mng-font-semibold mng-text-slate-500 mng-uppercase\">\n Status\n </th>\n <th className=\"mng-px-6 mng-py-4 mng-text-xs mng-font-semibold mng-text-slate-500 mng-uppercase\">\n Total\n </th>\n <th className=\"mng-px-6 mng-py-4 mng-text-xs mng-font-semibold mng-text-slate-500 mng-uppercase\">\n Date\n </th>\n </tr>\n </thead>\n <tbody className=\"mng-divide-y mng-divide-slate-200\">\n {mockOrders.map((order) => (\n <tr key={order.id} className=\"hover:mng-bg-slate-50 mng-transition-colors\">\n <td className=\"mng-px-6 mng-py-4 mng-text-sm mng-font-medium mng-text-blue-600\">\n {order.id}\n </td>\n <td className=\"mng-px-6 mng-py-4 mng-text-sm mng-text-slate-600\">\n {order.customer}\n </td>\n <td className=\"mng-px-6 mng-py-4\">\n <span\n className={`mng-px-2.5 mng-py-0.5 mng-rounded-full mng-text-xs mng-font-medium ${getStatusColor(\n order.status\n )}`}\n >\n {order.status}\n </span>\n </td>\n <td className=\"mng-px-6 mng-py-4 mng-text-sm mng-font-semibold mng-text-slate-900\">\n {order.total}\n </td>\n <td className=\"mng-px-6 mng-py-4 mng-text-sm mng-text-slate-500\">\n {order.date}\n </td>\n </tr>\n ))}\n </tbody>\n </table>\n </div>\n </div>\n );\n};\n","import React from 'react';\n\nconst mockCustomers = [\n { id: '1', name: 'Ion Popescu', email: 'ion.popescu@example.com', orders: 12, totalSpent: '€1,234.56', joined: '2024-01-15' },\n { id: '2', name: 'Elena Radu', email: 'elena.radu@example.com', orders: 8, totalSpent: '€876.32', joined: '2024-02-20' },\n { id: '3', name: 'Mihai Sandu', email: 'mihai.sandu@example.com', orders: 15, totalSpent: '€2,103.45', joined: '2023-11-10' },\n { id: '4', name: 'Ana Ionescu', email: 'ana.ionescu@example.com', orders: 5, totalSpent: '€543.21', joined: '2024-03-05' },\n];\n\nexport const Customers = () => {\n return (\n <div className=\"mng-space-y-6\">\n <div className=\"mng-flex mng-items-center mng-justify-between\">\n <h2 className=\"mng-text-2xl mng-font-bold mng-text-slate-800\">Customers</h2>\n <button className=\"mng-bg-blue-600 mng-text-white mng-px-4 mng-py-2 mng-rounded-lg mng-text-sm mng-font-medium hover:mng-bg-blue-700 mng-transition-colors\">\n Add Customer\n </button>\n </div>\n\n <div className=\"mng-bg-white mng-rounded-xl mng-border mng-border-slate-200 mng-shadow-sm mng-overflow-hidden\">\n <table className=\"mng-w-full mng-text-left mng-border-collapse\">\n <thead>\n <tr className=\"mng-bg-slate-50 mng-border-b mng-border-slate-200\">\n <th className=\"mng-px-6 mng-py-4 mng-text-xs mng-font-semibold mng-text-slate-500 mng-uppercase\">\n Customer\n </th>\n <th className=\"mng-px-6 mng-py-4 mng-text-xs mng-font-semibold mng-text-slate-500 mng-uppercase\">\n Email\n </th>\n <th className=\"mng-px-6 mng-py-4 mng-text-xs mng-font-semibold mng-text-slate-500 mng-uppercase\">\n Orders\n </th>\n <th className=\"mng-px-6 mng-py-4 mng-text-xs mng-font-semibold mng-text-slate-500 mng-uppercase\">\n Total Spent\n </th>\n <th className=\"mng-px-6 mng-py-4 mng-text-xs mng-font-semibold mng-text-slate-500 mng-uppercase\">\n Joined\n </th>\n </tr>\n </thead>\n <tbody className=\"mng-divide-y mng-divide-slate-200\">\n {mockCustomers.map((customer) => (\n <tr key={customer.id} className=\"hover:mng-bg-slate-50 mng-transition-colors\">\n <td className=\"mng-px-6 mng-py-4\">\n <div className=\"mng-flex mng-items-center mng-gap-3\">\n <div className=\"mng-w-10 mng-h-10 mng-rounded-full mng-bg-blue-100 mng-flex mng-items-center mng-justify-center mng-text-blue-600 mng-font-semibold\">\n {customer.name.charAt(0)}\n </div>\n <span className=\"mng-text-sm mng-font-medium mng-text-slate-900\">\n {customer.name}\n </span>\n </div>\n </td>\n <td className=\"mng-px-6 mng-py-4 mng-text-sm mng-text-slate-600\">\n {customer.email}\n </td>\n <td className=\"mng-px-6 mng-py-4 mng-text-sm mng-text-slate-900\">\n {customer.orders}\n </td>\n <td className=\"mng-px-6 mng-py-4 mng-text-sm mng-font-semibold mng-text-slate-900\">\n {customer.totalSpent}\n </td>\n <td className=\"mng-px-6 mng-py-4 mng-text-sm mng-text-slate-500\">\n {customer.joined}\n </td>\n </tr>\n ))}\n </tbody>\n </table>\n </div>\n </div>\n );\n};\n","import React from 'react';\n\nexport const Products = () => {\n return (\n <div className=\"mng-space-y-6\">\n <div className=\"mng-flex mng-items-center mng-justify-between\">\n <h2 className=\"mng-text-2xl mng-font-bold mng-text-slate-800\">Products</h2>\n <button className=\"mng-bg-blue-600 mng-text-white mng-px-4 mng-py-2 mng-rounded-lg mng-text-sm mng-font-medium hover:mng-bg-blue-700 mng-transition-colors\">\n Add Product\n </button>\n </div>\n\n <div className=\"mng-bg-white mng-rounded-xl mng-border mng-border-slate-200 mng-shadow-sm mng-p-12 mng-flex mng-items-center mng-justify-center mng-min-h-96\">\n <p className=\"mng-text-slate-400 mng-italic\">Products management coming soon...</p>\n </div>\n </div>\n );\n};\n","import React from 'react';\nimport { useManago } from '../../providers/ManagoProvider';\n\nexport const Settings = () => {\n const { config } = useManago();\n\n return (\n <div className=\"mng-space-y-6\">\n <h2 className=\"mng-text-2xl mng-font-bold mng-text-slate-800\">Settings</h2>\n\n <div className=\"mng-bg-white mng-rounded-xl mng-border mng-border-slate-200 mng-shadow-sm mng-p-6 mng-space-y-6\">\n <div>\n <h3 className=\"mng-text-lg mng-font-semibold mng-text-slate-800 mng-mb-4\">\n General Settings\n </h3>\n\n <div className=\"mng-space-y-4\">\n <div>\n <label className=\"mng-block mng-text-sm mng-font-medium mng-text-slate-700 mng-mb-2\">\n Application Name\n </label>\n <input\n type=\"text\"\n disabled\n value={config.appName}\n className=\"mng-w-full mng-px-4 mng-py-2 mng-border mng-border-slate-300 mng-rounded-lg mng-bg-slate-50 mng-text-slate-500\"\n />\n <p className=\"mng-text-xs mng-text-slate-500 mng-mt-1\">\n Configured via ManagoProvider\n </p>\n </div>\n\n <div>\n <label className=\"mng-block mng-text-sm mng-font-medium mng-text-slate-700 mng-mb-2\">\n API Endpoint\n </label>\n <input\n type=\"text\"\n disabled\n value={config.apiEndpoint || 'Not configured'}\n className=\"mng-w-full mng-px-4 mng-py-2 mng-border mng-border-slate-300 mng-rounded-lg mng-bg-slate-50 mng-text-slate-500\"\n />\n </div>\n </div>\n </div>\n\n <div className=\"mng-border-t mng-border-slate-200 mng-pt-6\">\n <h3 className=\"mng-text-lg mng-font-semibold mng-text-slate-800 mng-mb-4\">\n Menu Configuration\n </h3>\n <div className=\"mng-space-y-2\">\n {Object.entries(config.menu || {}).map(([key, value]) => (\n <div key={key} className=\"mng-flex mng-items-center mng-justify-between\">\n <span className=\"mng-text-sm mng-text-slate-700 mng-capitalize\">{key}</span>\n <span\n className={`mng-text-sm mng-font-medium ${\n value ? 'mng-text-green-600' : 'mng-text-red-600'\n }`}\n >\n {value ? 'Enabled' : 'Disabled'}\n </span>\n </div>\n ))}\n </div>\n </div>\n </div>\n </div>\n );\n};\n"],"mappings":"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","names":["tanstack_exports","__export","ManagoAdmin","useManago","__toCommonJS","import_react","import_react_router","import_react","import_jsx_runtime","ManagoContext","ManagoProvider","children","apiKey","config","navigate","currentPath","useManago","context","React","import_react","useNavigation","context","ManagoContext","path","import_jsx_runtime","defaultMenuItems","Sidebar","config","useManago","navigate","isActive","useNavigation","menuItems","item","import_jsx_runtime","Header","title","config","useManago","import_jsx_runtime","Layout","children","Sidebar","Header","import_jsx_runtime","Dashboard","stat","import_jsx_runtime","mockOrders","getStatusColor","status","Orders","order","import_jsx_runtime","mockCustomers","Customers","customer","import_jsx_runtime","Products","import_jsx_runtime","Settings","config","useManago","key","value","import_jsx_runtime","NotFound","navigate","rootRoute","Layout","indexRoute","Dashboard","ordersRoute","Orders","customersRoute","Customers","productsRoute","Products","settingsRoute","Settings","routeTree","RouterWrapper","apiKey","config","basePath","router","React","InnerWrapper","routerState","ManagoProvider","path","ManagoAdmin"]}
@@ -0,0 +1,6 @@
1
+ import Q from"react";import{createRootRoute as V,createRoute as b,createRouter as X,RouterProvider as Y,Outlet as K,useNavigate as L,useRouterState as Z}from"@tanstack/react-router";import H,{createContext as $}from"react";import{jsx as z}from"react/jsx-runtime";var f=$(void 0),O=({children:e,apiKey:m,config:a,navigate:d,currentPath:s})=>z(f.Provider,{value:{apiKey:m,config:a,navigate:d,currentPath:s},children:e}),c=()=>{let e=H.useContext(f);if(!e)throw new Error("useManago must be used within ManagoProvider");return e};import{useContext as F}from"react";var D=()=>{let e=F(f);if(!e)throw new Error("useNavigation must be used within ManagoProvider");return{navigate:e.navigate,currentPath:e.currentPath,isActive:m=>m==="/"?e.currentPath==="/"||e.currentPath==="":e.currentPath.startsWith(m)}};import{Fragment as W,jsx as r,jsxs as N}from"react/jsx-runtime";var G=[{id:"dashboard",label:"Dashboard",path:"/"},{id:"orders",label:"Orders",path:"/orders"},{id:"customers",label:"Customers",path:"/customers"},{id:"products",label:"Products",path:"/products"},{id:"settings",label:"Settings",path:"/settings"}],k=()=>{let{config:e}=c(),{navigate:m,isActive:a}=D(),d=G.filter(s=>(e.menu||{})[s.id]!==!1);return N("aside",{className:"mng-w-64 mng-bg-slate-900 mng-text-white mng-flex mng-flex-col",children:[r("div",{className:"mng-p-6 mng-flex mng-items-center mng-gap-3",children:e.theme?.logo?r("img",{src:e.theme.logo,alt:e.appName,className:"mng-h-8"}):N(W,{children:[r("div",{className:"mng-w-8 mng-h-8 mng-bg-blue-500 mng-rounded-md mng-flex mng-items-center mng-justify-center mng-font-bold",children:e.appName.charAt(0).toUpperCase()}),r("span",{className:"mng-text-xl mng-font-bold mng-tracking-tight",children:e.appName||"Manago"})]})}),r("nav",{className:"mng-flex-1 mng-px-3 mng-space-y-1",children:d.map(s=>N("button",{onClick:()=>m(s.path),className:`
2
+ mng-w-full mng-flex mng-items-center mng-px-4 mng-py-2.5 mng-text-sm mng-rounded-lg
3
+ mng-transition-colors mng-text-left
4
+ ${a(s.path)?"mng-bg-blue-600 mng-text-white":"mng-text-slate-300 hover:mng-bg-slate-800 hover:mng-text-white"}
5
+ `,children:[s.icon&&r("span",{className:"mng-mr-3",children:s.icon}),s.label]},s.id))}),r("div",{className:"mng-p-4 mng-border-t mng-border-slate-800",children:r("p",{className:"mng-text-xs mng-text-slate-500 mng-text-center",children:"Powered by Manago"})})]})};import{jsx as y,jsxs as B}from"react/jsx-runtime";var I=({title:e="Admin Panel"})=>{let{config:m}=c();return B("header",{className:"mng-h-16 mng-bg-white mng-border-b mng-border-slate-200 mng-flex mng-items-center mng-px-8 mng-justify-between",children:[y("h1",{className:"mng-text-sm mng-font-medium mng-text-slate-500",children:e}),y("div",{className:"mng-flex mng-items-center mng-gap-4",children:y("span",{className:"mng-text-sm mng-text-slate-600",children:m.appName})})]})};import{jsx as w,jsxs as E}from"react/jsx-runtime";var j=({children:e})=>E("div",{className:"mng-flex mng-h-screen mng-bg-slate-50 mng-font-sans",children:[w(k,{}),E("div",{className:"mng-flex-1 mng-flex mng-flex-col mng-overflow-hidden",children:[w(I,{}),w("main",{className:"mng-flex-1 mng-overflow-y-auto mng-p-8",children:e})]})]});import{jsx as l,jsxs as h}from"react/jsx-runtime";var P=()=>h("div",{className:"mng-space-y-6",children:[h("div",{className:"mng-flex mng-items-center mng-justify-between",children:[l("h2",{className:"mng-text-2xl mng-font-bold mng-text-slate-800",children:"Overview"}),l("button",{className:"mng-bg-blue-600 mng-text-white mng-px-4 mng-py-2 mng-rounded-lg mng-text-sm mng-font-medium hover:mng-bg-blue-700 mng-transition-colors",children:"Download Report"})]}),l("div",{className:"mng-grid mng-grid-cols-1 md:mng-grid-cols-3 mng-gap-6",children:[{label:"Total Revenue",value:"\u20AC45,231.89",change:"+20.1%",color:"mng-text-green-600"},{label:"Active Orders",value:"154",change:"+12.5%",color:"mng-text-green-600"},{label:"Refund Rate",value:"1.2%",change:"-0.4%",color:"mng-text-red-600"}].map(e=>h("div",{className:"mng-bg-white mng-p-6 mng-rounded-xl mng-border mng-border-slate-200 mng-shadow-sm",children:[l("p",{className:"mng-text-sm mng-font-medium mng-text-slate-500",children:e.label}),h("div",{className:"mng-flex mng-items-baseline mng-gap-2 mng-mt-2",children:[l("h3",{className:"mng-text-3xl mng-font-bold mng-text-slate-900",children:e.value}),l("span",{className:`mng-text-xs mng-font-medium ${e.color}`,children:e.change})]})]},e.label))}),l("div",{className:"mng-bg-white mng-rounded-xl mng-border mng-border-slate-200 mng-shadow-sm mng-h-64 mng-flex mng-items-center mng-justify-center",children:l("p",{className:"mng-text-slate-400 mng-italic",children:"Chart visualization will be here..."})})]});import{jsx as n,jsxs as x}from"react/jsx-runtime";var J=[{id:"#ORD-7721",customer:"Ion Popescu",status:"Completed",total:"\u20AC120.00",date:"Acum 2 ore"},{id:"#ORD-7722",customer:"Elena Radu",status:"Processing",total:"\u20AC45.50",date:"Acum 5 ore"},{id:"#ORD-7723",customer:"Mihai Sandu",status:"Pending",total:"\u20AC210.99",date:"Ieri"},{id:"#ORD-7724",customer:"Ana Ionescu",status:"Completed",total:"\u20AC89.99",date:"Ieri"},{id:"#ORD-7725",customer:"George Popa",status:"Cancelled",total:"\u20AC156.00",date:"Acum 2 zile"}],U=e=>{switch(e){case"Completed":return"mng-bg-green-100 mng-text-green-700";case"Processing":return"mng-bg-blue-100 mng-text-blue-700";case"Pending":return"mng-bg-yellow-100 mng-text-yellow-700";case"Cancelled":return"mng-bg-red-100 mng-text-red-700";default:return"mng-bg-slate-100 mng-text-slate-700"}},R=()=>x("div",{className:"mng-space-y-6",children:[x("div",{className:"mng-flex mng-items-center mng-justify-between",children:[n("h2",{className:"mng-text-2xl mng-font-bold mng-text-slate-800",children:"Orders Management"}),n("button",{className:"mng-bg-blue-600 mng-text-white mng-px-4 mng-py-2 mng-rounded-lg mng-text-sm mng-font-medium hover:mng-bg-blue-700 mng-transition-colors",children:"Export Orders"})]}),n("div",{className:"mng-bg-white mng-rounded-xl mng-border mng-border-slate-200 mng-shadow-sm mng-overflow-hidden",children:x("table",{className:"mng-w-full mng-text-left mng-border-collapse",children:[n("thead",{children:x("tr",{className:"mng-bg-slate-50 mng-border-b mng-border-slate-200",children:[n("th",{className:"mng-px-6 mng-py-4 mng-text-xs mng-font-semibold mng-text-slate-500 mng-uppercase",children:"Order ID"}),n("th",{className:"mng-px-6 mng-py-4 mng-text-xs mng-font-semibold mng-text-slate-500 mng-uppercase",children:"Customer"}),n("th",{className:"mng-px-6 mng-py-4 mng-text-xs mng-font-semibold mng-text-slate-500 mng-uppercase",children:"Status"}),n("th",{className:"mng-px-6 mng-py-4 mng-text-xs mng-font-semibold mng-text-slate-500 mng-uppercase",children:"Total"}),n("th",{className:"mng-px-6 mng-py-4 mng-text-xs mng-font-semibold mng-text-slate-500 mng-uppercase",children:"Date"})]})}),n("tbody",{className:"mng-divide-y mng-divide-slate-200",children:J.map(e=>x("tr",{className:"hover:mng-bg-slate-50 mng-transition-colors",children:[n("td",{className:"mng-px-6 mng-py-4 mng-text-sm mng-font-medium mng-text-blue-600",children:e.id}),n("td",{className:"mng-px-6 mng-py-4 mng-text-sm mng-text-slate-600",children:e.customer}),n("td",{className:"mng-px-6 mng-py-4",children:n("span",{className:`mng-px-2.5 mng-py-0.5 mng-rounded-full mng-text-xs mng-font-medium ${U(e.status)}`,children:e.status})}),n("td",{className:"mng-px-6 mng-py-4 mng-text-sm mng-font-semibold mng-text-slate-900",children:e.total}),n("td",{className:"mng-px-6 mng-py-4 mng-text-sm mng-text-slate-500",children:e.date})]},e.id))})]})})]});import{jsx as t,jsxs as p}from"react/jsx-runtime";var q=[{id:"1",name:"Ion Popescu",email:"ion.popescu@example.com",orders:12,totalSpent:"\u20AC1,234.56",joined:"2024-01-15"},{id:"2",name:"Elena Radu",email:"elena.radu@example.com",orders:8,totalSpent:"\u20AC876.32",joined:"2024-02-20"},{id:"3",name:"Mihai Sandu",email:"mihai.sandu@example.com",orders:15,totalSpent:"\u20AC2,103.45",joined:"2023-11-10"},{id:"4",name:"Ana Ionescu",email:"ana.ionescu@example.com",orders:5,totalSpent:"\u20AC543.21",joined:"2024-03-05"}],C=()=>p("div",{className:"mng-space-y-6",children:[p("div",{className:"mng-flex mng-items-center mng-justify-between",children:[t("h2",{className:"mng-text-2xl mng-font-bold mng-text-slate-800",children:"Customers"}),t("button",{className:"mng-bg-blue-600 mng-text-white mng-px-4 mng-py-2 mng-rounded-lg mng-text-sm mng-font-medium hover:mng-bg-blue-700 mng-transition-colors",children:"Add Customer"})]}),t("div",{className:"mng-bg-white mng-rounded-xl mng-border mng-border-slate-200 mng-shadow-sm mng-overflow-hidden",children:p("table",{className:"mng-w-full mng-text-left mng-border-collapse",children:[t("thead",{children:p("tr",{className:"mng-bg-slate-50 mng-border-b mng-border-slate-200",children:[t("th",{className:"mng-px-6 mng-py-4 mng-text-xs mng-font-semibold mng-text-slate-500 mng-uppercase",children:"Customer"}),t("th",{className:"mng-px-6 mng-py-4 mng-text-xs mng-font-semibold mng-text-slate-500 mng-uppercase",children:"Email"}),t("th",{className:"mng-px-6 mng-py-4 mng-text-xs mng-font-semibold mng-text-slate-500 mng-uppercase",children:"Orders"}),t("th",{className:"mng-px-6 mng-py-4 mng-text-xs mng-font-semibold mng-text-slate-500 mng-uppercase",children:"Total Spent"}),t("th",{className:"mng-px-6 mng-py-4 mng-text-xs mng-font-semibold mng-text-slate-500 mng-uppercase",children:"Joined"})]})}),t("tbody",{className:"mng-divide-y mng-divide-slate-200",children:q.map(e=>p("tr",{className:"hover:mng-bg-slate-50 mng-transition-colors",children:[t("td",{className:"mng-px-6 mng-py-4",children:p("div",{className:"mng-flex mng-items-center mng-gap-3",children:[t("div",{className:"mng-w-10 mng-h-10 mng-rounded-full mng-bg-blue-100 mng-flex mng-items-center mng-justify-center mng-text-blue-600 mng-font-semibold",children:e.name.charAt(0)}),t("span",{className:"mng-text-sm mng-font-medium mng-text-slate-900",children:e.name})]})}),t("td",{className:"mng-px-6 mng-py-4 mng-text-sm mng-text-slate-600",children:e.email}),t("td",{className:"mng-px-6 mng-py-4 mng-text-sm mng-text-slate-900",children:e.orders}),t("td",{className:"mng-px-6 mng-py-4 mng-text-sm mng-font-semibold mng-text-slate-900",children:e.totalSpent}),t("td",{className:"mng-px-6 mng-py-4 mng-text-sm mng-text-slate-500",children:e.joined})]},e.id))})]})})]});import{jsx as v,jsxs as T}from"react/jsx-runtime";var M=()=>T("div",{className:"mng-space-y-6",children:[T("div",{className:"mng-flex mng-items-center mng-justify-between",children:[v("h2",{className:"mng-text-2xl mng-font-bold mng-text-slate-800",children:"Products"}),v("button",{className:"mng-bg-blue-600 mng-text-white mng-px-4 mng-py-2 mng-rounded-lg mng-text-sm mng-font-medium hover:mng-bg-blue-700 mng-transition-colors",children:"Add Product"})]}),v("div",{className:"mng-bg-white mng-rounded-xl mng-border mng-border-slate-200 mng-shadow-sm mng-p-12 mng-flex mng-items-center mng-justify-center mng-min-h-96",children:v("p",{className:"mng-text-slate-400 mng-italic",children:"Products management coming soon..."})})]});import{jsx as g,jsxs as i}from"react/jsx-runtime";var S=()=>{let{config:e}=c();return i("div",{className:"mng-space-y-6",children:[g("h2",{className:"mng-text-2xl mng-font-bold mng-text-slate-800",children:"Settings"}),i("div",{className:"mng-bg-white mng-rounded-xl mng-border mng-border-slate-200 mng-shadow-sm mng-p-6 mng-space-y-6",children:[i("div",{children:[g("h3",{className:"mng-text-lg mng-font-semibold mng-text-slate-800 mng-mb-4",children:"General Settings"}),i("div",{className:"mng-space-y-4",children:[i("div",{children:[g("label",{className:"mng-block mng-text-sm mng-font-medium mng-text-slate-700 mng-mb-2",children:"Application Name"}),g("input",{type:"text",disabled:!0,value:e.appName,className:"mng-w-full mng-px-4 mng-py-2 mng-border mng-border-slate-300 mng-rounded-lg mng-bg-slate-50 mng-text-slate-500"}),g("p",{className:"mng-text-xs mng-text-slate-500 mng-mt-1",children:"Configured via ManagoProvider"})]}),i("div",{children:[g("label",{className:"mng-block mng-text-sm mng-font-medium mng-text-slate-700 mng-mb-2",children:"API Endpoint"}),g("input",{type:"text",disabled:!0,value:e.apiEndpoint||"Not configured",className:"mng-w-full mng-px-4 mng-py-2 mng-border mng-border-slate-300 mng-rounded-lg mng-bg-slate-50 mng-text-slate-500"})]})]})]}),i("div",{className:"mng-border-t mng-border-slate-200 mng-pt-6",children:[g("h3",{className:"mng-text-lg mng-font-semibold mng-text-slate-800 mng-mb-4",children:"Menu Configuration"}),g("div",{className:"mng-space-y-2",children:Object.entries(e.menu||{}).map(([m,a])=>i("div",{className:"mng-flex mng-items-center mng-justify-between",children:[g("span",{className:"mng-text-sm mng-text-slate-700 mng-capitalize",children:m}),g("span",{className:`mng-text-sm mng-font-medium ${a?"mng-text-green-600":"mng-text-red-600"}`,children:a?"Enabled":"Disabled"})]},m))})]})]})]})};import{jsx as o,jsxs as le}from"react/jsx-runtime";var _=()=>{let e=L();return o("div",{className:"mng-flex mng-items-center mng-justify-center mng-h-full",children:le("div",{className:"mng-text-center",children:[o("h2",{className:"mng-text-2xl mng-font-bold mng-text-slate-800 mng-mb-2",children:"Page Not Found"}),o("p",{className:"mng-text-slate-600 mng-mb-4",children:"The page you're looking for doesn't exist."}),o("button",{onClick:()=>e({to:"/"}),className:"mng-bg-blue-600 mng-text-white mng-px-4 mng-py-2 mng-rounded-lg mng-text-sm mng-font-medium hover:mng-bg-blue-700",children:"Go to Dashboard"})]})})},u=V({component:()=>o(j,{children:o(K,{})}),notFoundComponent:_}),ee=b({getParentRoute:()=>u,path:"/",component:P}),te=b({getParentRoute:()=>u,path:"/orders",component:R}),ne=b({getParentRoute:()=>u,path:"/customers",component:C}),me=b({getParentRoute:()=>u,path:"/products",component:M}),ae=b({getParentRoute:()=>u,path:"/settings",component:S}),se=u.addChildren([ee,te,ne,me,ae]),ge=({apiKey:e,config:m,basePath:a})=>{let d=Q.useMemo(()=>X({routeTree:se,basepath:a||"/admin",defaultPreload:"intent"}),[a]);return o(Y,{router:d,children:o(oe,{apiKey:e,config:m})})},oe=({apiKey:e,config:m})=>{let a=L(),d=Z();return o(O,{apiKey:e,config:m,navigate:A=>{a({to:A})},currentPath:d.location.pathname,children:o(K,{})})},re=ge;export{re as ManagoAdmin,c as useManago};
6
+ //# sourceMappingURL=index.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/adapters/tanstack/ManagoAdmin.tsx","../../../src/providers/ManagoProvider.tsx","../../../src/hooks/useNavigation.ts","../../../src/core/components/Sidebar.tsx","../../../src/core/components/Header.tsx","../../../src/core/components/Layout.tsx","../../../src/core/pages/Dashboard.tsx","../../../src/core/pages/Orders.tsx","../../../src/core/pages/Customers.tsx","../../../src/core/pages/Products.tsx","../../../src/core/pages/Settings.tsx"],"sourcesContent":["// @ts-nocheck - TanStack Router is a peer dependency\nimport React from 'react';\nimport {\n createRootRoute,\n createRoute,\n createRouter,\n RouterProvider,\n Outlet,\n useNavigate,\n useRouterState,\n} from '@tanstack/react-router';\nimport { ManagoProvider as BaseManagoProvider } from '../../providers/ManagoProvider';\nimport { Layout } from '../../core/components/Layout';\nimport { Dashboard, Orders, Customers, Products, Settings } from '../../core/pages';\nimport type { ManagoConfig } from '../../types';\n\ninterface ManagoAdminProps {\n apiKey: string;\n config: ManagoConfig;\n basePath?: string;\n}\n\nconst NotFound = () => {\n const navigate = useNavigate();\n\n return (\n <div className=\"mng-flex mng-items-center mng-justify-center mng-h-full\">\n <div className=\"mng-text-center\">\n <h2 className=\"mng-text-2xl mng-font-bold mng-text-slate-800 mng-mb-2\">\n Page Not Found\n </h2>\n <p className=\"mng-text-slate-600 mng-mb-4\">\n The page you're looking for doesn't exist.\n </p>\n <button\n onClick={() => navigate({ to: '/' })}\n className=\"mng-bg-blue-600 mng-text-white mng-px-4 mng-py-2 mng-rounded-lg mng-text-sm mng-font-medium hover:mng-bg-blue-700\"\n >\n Go to Dashboard\n </button>\n </div>\n </div>\n );\n};\n\n// Create routes\nconst rootRoute = createRootRoute({\n component: () => (\n <Layout>\n <Outlet />\n </Layout>\n ),\n notFoundComponent: NotFound,\n});\n\nconst indexRoute = createRoute({\n getParentRoute: () => rootRoute,\n path: '/',\n component: Dashboard,\n});\n\nconst ordersRoute = createRoute({\n getParentRoute: () => rootRoute,\n path: '/orders',\n component: Orders,\n});\n\nconst customersRoute = createRoute({\n getParentRoute: () => rootRoute,\n path: '/customers',\n component: Customers,\n});\n\nconst productsRoute = createRoute({\n getParentRoute: () => rootRoute,\n path: '/products',\n component: Products,\n});\n\nconst settingsRoute = createRoute({\n getParentRoute: () => rootRoute,\n path: '/settings',\n component: Settings,\n});\n\nconst routeTree = rootRoute.addChildren([\n indexRoute,\n ordersRoute,\n customersRoute,\n productsRoute,\n settingsRoute,\n]);\n\n// Router wrapper component\nconst RouterWrapper = ({ apiKey, config, basePath }: ManagoAdminProps) => {\n const router = React.useMemo(\n () =>\n createRouter({\n routeTree,\n basepath: basePath || '/admin',\n defaultPreload: 'intent',\n }),\n [basePath]\n );\n\n return (\n <RouterProvider router={router}>\n <InnerWrapper apiKey={apiKey} config={config} />\n </RouterProvider>\n );\n};\n\n// Inner component that has access to router hooks\nconst InnerWrapper = ({ apiKey, config }: { apiKey: string; config: ManagoConfig }) => {\n const navigate = useNavigate();\n const routerState = useRouterState();\n\n const handleNavigate = (path: string) => {\n navigate({ to: path });\n };\n\n return (\n <BaseManagoProvider\n apiKey={apiKey}\n config={config}\n navigate={handleNavigate}\n currentPath={routerState.location.pathname}\n >\n <Outlet />\n </BaseManagoProvider>\n );\n};\n\n/**\n * TanStack Router adapter for Manago Admin\n *\n * Usage:\n *\n * import { ManagoAdmin } from '@manago/admin/tanstack';\n *\n * function App() {\n * return <ManagoAdmin apiKey=\"...\" config={{ appName: \"My Store\" }} basePath=\"/admin\" />;\n * }\n */\nexport const ManagoAdmin = RouterWrapper;\n","import React, { createContext, ReactNode } from 'react';\nimport type { ManagoConfig, ManagoContextType } from '../types';\n\nexport const ManagoContext = createContext<ManagoContextType | undefined>(undefined);\n\ninterface ManagoProviderProps {\n children: ReactNode;\n apiKey: string;\n config: ManagoConfig;\n navigate: (path: string) => void;\n currentPath: string;\n}\n\nexport const ManagoProvider = ({\n children,\n apiKey,\n config,\n navigate,\n currentPath,\n}: ManagoProviderProps) => {\n return (\n <ManagoContext.Provider value={{ apiKey, config, navigate, currentPath }}>\n {children}\n </ManagoContext.Provider>\n );\n};\n\nexport const useManago = () => {\n const context = React.useContext(ManagoContext);\n if (!context) throw new Error('useManago must be used within ManagoProvider');\n return context;\n};","import { useContext } from 'react';\nimport { ManagoContext } from '../providers/ManagoProvider';\n\n/**\n * Hook for framework-agnostic navigation\n * Uses the navigation adapter provided by the framework-specific ManagoAdmin component\n */\nexport const useNavigation = () => {\n const context = useContext(ManagoContext);\n\n if (!context) {\n throw new Error('useNavigation must be used within ManagoProvider');\n }\n\n return {\n navigate: context.navigate,\n currentPath: context.currentPath,\n isActive: (path: string) => {\n // Handle both exact matches and nested routes\n if (path === '/') {\n return context.currentPath === '/' || context.currentPath === '';\n }\n return context.currentPath.startsWith(path);\n },\n };\n};\n","import React from 'react';\nimport { useManago } from '../../providers/ManagoProvider';\nimport { useNavigation } from '../../hooks/useNavigation';\nimport type { MenuItem } from '../../types';\n\nconst defaultMenuItems: MenuItem[] = [\n { id: 'dashboard', label: 'Dashboard', path: '/' },\n { id: 'orders', label: 'Orders', path: '/orders' },\n { id: 'customers', label: 'Customers', path: '/customers' },\n { id: 'products', label: 'Products', path: '/products' },\n { id: 'settings', label: 'Settings', path: '/settings' },\n];\n\nexport const Sidebar = () => {\n const { config } = useManago();\n const { navigate, isActive } = useNavigation();\n\n const menuItems = defaultMenuItems.filter((item) => {\n const menuConfig = config.menu || {};\n // If menu item is explicitly set to false, hide it\n if (menuConfig[item.id as keyof typeof menuConfig] === false) {\n return false;\n }\n return true;\n });\n\n return (\n <aside className=\"mng-w-64 mng-bg-slate-900 mng-text-white mng-flex mng-flex-col\">\n {/* Logo / Brand */}\n <div className=\"mng-p-6 mng-flex mng-items-center mng-gap-3\">\n {config.theme?.logo ? (\n <img src={config.theme.logo} alt={config.appName} className=\"mng-h-8\" />\n ) : (\n <>\n <div className=\"mng-w-8 mng-h-8 mng-bg-blue-500 mng-rounded-md mng-flex mng-items-center mng-justify-center mng-font-bold\">\n {config.appName.charAt(0).toUpperCase()}\n </div>\n <span className=\"mng-text-xl mng-font-bold mng-tracking-tight\">\n {config.appName || 'Manago'}\n </span>\n </>\n )}\n </div>\n\n {/* Navigation Menu */}\n <nav className=\"mng-flex-1 mng-px-3 mng-space-y-1\">\n {menuItems.map((item) => (\n <button\n key={item.id}\n onClick={() => navigate(item.path)}\n className={`\n mng-w-full mng-flex mng-items-center mng-px-4 mng-py-2.5 mng-text-sm mng-rounded-lg\n mng-transition-colors mng-text-left\n ${\n isActive(item.path)\n ? 'mng-bg-blue-600 mng-text-white'\n : 'mng-text-slate-300 hover:mng-bg-slate-800 hover:mng-text-white'\n }\n `}\n >\n {item.icon && <span className=\"mng-mr-3\">{item.icon}</span>}\n {item.label}\n </button>\n ))}\n </nav>\n\n {/* Footer */}\n <div className=\"mng-p-4 mng-border-t mng-border-slate-800\">\n <p className=\"mng-text-xs mng-text-slate-500 mng-text-center\">\n Powered by Manago\n </p>\n </div>\n </aside>\n );\n};\n","import React from 'react';\nimport { useManago } from '../../providers/ManagoProvider';\n\ninterface HeaderProps {\n title?: string;\n}\n\nexport const Header = ({ title = 'Admin Panel' }: HeaderProps) => {\n const { config } = useManago();\n\n return (\n <header className=\"mng-h-16 mng-bg-white mng-border-b mng-border-slate-200 mng-flex mng-items-center mng-px-8 mng-justify-between\">\n <h1 className=\"mng-text-sm mng-font-medium mng-text-slate-500\">{title}</h1>\n\n <div className=\"mng-flex mng-items-center mng-gap-4\">\n <span className=\"mng-text-sm mng-text-slate-600\">{config.appName}</span>\n </div>\n </header>\n );\n};\n","import React, { ReactNode } from 'react';\nimport { Sidebar } from './Sidebar';\nimport { Header } from './Header';\n\ninterface LayoutProps {\n children: ReactNode;\n}\n\nexport const Layout = ({ children }: LayoutProps) => {\n return (\n <div className=\"mng-flex mng-h-screen mng-bg-slate-50 mng-font-sans\">\n <Sidebar />\n\n <div className=\"mng-flex-1 mng-flex mng-flex-col mng-overflow-hidden\">\n <Header />\n <main className=\"mng-flex-1 mng-overflow-y-auto mng-p-8\">\n {children}\n </main>\n </div>\n </div>\n );\n};\n","import React from 'react';\n\nexport const Dashboard = () => {\n return (\n <div className=\"mng-space-y-6\">\n <div className=\"mng-flex mng-items-center mng-justify-between\">\n <h2 className=\"mng-text-2xl mng-font-bold mng-text-slate-800\">Overview</h2>\n <button className=\"mng-bg-blue-600 mng-text-white mng-px-4 mng-py-2 mng-rounded-lg mng-text-sm mng-font-medium hover:mng-bg-blue-700 mng-transition-colors\">\n Download Report\n </button>\n </div>\n\n {/* Stats Cards */}\n <div className=\"mng-grid mng-grid-cols-1 md:mng-grid-cols-3 mng-gap-6\">\n {[\n { label: 'Total Revenue', value: '€45,231.89', change: '+20.1%', color: 'mng-text-green-600' },\n { label: 'Active Orders', value: '154', change: '+12.5%', color: 'mng-text-green-600' },\n { label: 'Refund Rate', value: '1.2%', change: '-0.4%', color: 'mng-text-red-600' },\n ].map((stat) => (\n <div key={stat.label} className=\"mng-bg-white mng-p-6 mng-rounded-xl mng-border mng-border-slate-200 mng-shadow-sm\">\n <p className=\"mng-text-sm mng-font-medium mng-text-slate-500\">{stat.label}</p>\n <div className=\"mng-flex mng-items-baseline mng-gap-2 mng-mt-2\">\n <h3 className=\"mng-text-3xl mng-font-bold mng-text-slate-900\">{stat.value}</h3>\n <span className={`mng-text-xs mng-font-medium ${stat.color}`}>{stat.change}</span>\n </div>\n </div>\n ))}\n </div>\n\n {/* Chart Placeholder */}\n <div className=\"mng-bg-white mng-rounded-xl mng-border mng-border-slate-200 mng-shadow-sm mng-h-64 mng-flex mng-items-center mng-justify-center\">\n <p className=\"mng-text-slate-400 mng-italic\">Chart visualization will be here...</p>\n </div>\n </div>\n );\n};\n","import React from 'react';\n\nconst mockOrders = [\n { id: '#ORD-7721', customer: 'Ion Popescu', status: 'Completed', total: '€120.00', date: 'Acum 2 ore' },\n { id: '#ORD-7722', customer: 'Elena Radu', status: 'Processing', total: '€45.50', date: 'Acum 5 ore' },\n { id: '#ORD-7723', customer: 'Mihai Sandu', status: 'Pending', total: '€210.99', date: 'Ieri' },\n { id: '#ORD-7724', customer: 'Ana Ionescu', status: 'Completed', total: '€89.99', date: 'Ieri' },\n { id: '#ORD-7725', customer: 'George Popa', status: 'Cancelled', total: '€156.00', date: 'Acum 2 zile' },\n];\n\nconst getStatusColor = (status: string) => {\n switch (status) {\n case 'Completed':\n return 'mng-bg-green-100 mng-text-green-700';\n case 'Processing':\n return 'mng-bg-blue-100 mng-text-blue-700';\n case 'Pending':\n return 'mng-bg-yellow-100 mng-text-yellow-700';\n case 'Cancelled':\n return 'mng-bg-red-100 mng-text-red-700';\n default:\n return 'mng-bg-slate-100 mng-text-slate-700';\n }\n};\n\nexport const Orders = () => {\n return (\n <div className=\"mng-space-y-6\">\n <div className=\"mng-flex mng-items-center mng-justify-between\">\n <h2 className=\"mng-text-2xl mng-font-bold mng-text-slate-800\">Orders Management</h2>\n <button className=\"mng-bg-blue-600 mng-text-white mng-px-4 mng-py-2 mng-rounded-lg mng-text-sm mng-font-medium hover:mng-bg-blue-700 mng-transition-colors\">\n Export Orders\n </button>\n </div>\n\n <div className=\"mng-bg-white mng-rounded-xl mng-border mng-border-slate-200 mng-shadow-sm mng-overflow-hidden\">\n <table className=\"mng-w-full mng-text-left mng-border-collapse\">\n <thead>\n <tr className=\"mng-bg-slate-50 mng-border-b mng-border-slate-200\">\n <th className=\"mng-px-6 mng-py-4 mng-text-xs mng-font-semibold mng-text-slate-500 mng-uppercase\">\n Order ID\n </th>\n <th className=\"mng-px-6 mng-py-4 mng-text-xs mng-font-semibold mng-text-slate-500 mng-uppercase\">\n Customer\n </th>\n <th className=\"mng-px-6 mng-py-4 mng-text-xs mng-font-semibold mng-text-slate-500 mng-uppercase\">\n Status\n </th>\n <th className=\"mng-px-6 mng-py-4 mng-text-xs mng-font-semibold mng-text-slate-500 mng-uppercase\">\n Total\n </th>\n <th className=\"mng-px-6 mng-py-4 mng-text-xs mng-font-semibold mng-text-slate-500 mng-uppercase\">\n Date\n </th>\n </tr>\n </thead>\n <tbody className=\"mng-divide-y mng-divide-slate-200\">\n {mockOrders.map((order) => (\n <tr key={order.id} className=\"hover:mng-bg-slate-50 mng-transition-colors\">\n <td className=\"mng-px-6 mng-py-4 mng-text-sm mng-font-medium mng-text-blue-600\">\n {order.id}\n </td>\n <td className=\"mng-px-6 mng-py-4 mng-text-sm mng-text-slate-600\">\n {order.customer}\n </td>\n <td className=\"mng-px-6 mng-py-4\">\n <span\n className={`mng-px-2.5 mng-py-0.5 mng-rounded-full mng-text-xs mng-font-medium ${getStatusColor(\n order.status\n )}`}\n >\n {order.status}\n </span>\n </td>\n <td className=\"mng-px-6 mng-py-4 mng-text-sm mng-font-semibold mng-text-slate-900\">\n {order.total}\n </td>\n <td className=\"mng-px-6 mng-py-4 mng-text-sm mng-text-slate-500\">\n {order.date}\n </td>\n </tr>\n ))}\n </tbody>\n </table>\n </div>\n </div>\n );\n};\n","import React from 'react';\n\nconst mockCustomers = [\n { id: '1', name: 'Ion Popescu', email: 'ion.popescu@example.com', orders: 12, totalSpent: '€1,234.56', joined: '2024-01-15' },\n { id: '2', name: 'Elena Radu', email: 'elena.radu@example.com', orders: 8, totalSpent: '€876.32', joined: '2024-02-20' },\n { id: '3', name: 'Mihai Sandu', email: 'mihai.sandu@example.com', orders: 15, totalSpent: '€2,103.45', joined: '2023-11-10' },\n { id: '4', name: 'Ana Ionescu', email: 'ana.ionescu@example.com', orders: 5, totalSpent: '€543.21', joined: '2024-03-05' },\n];\n\nexport const Customers = () => {\n return (\n <div className=\"mng-space-y-6\">\n <div className=\"mng-flex mng-items-center mng-justify-between\">\n <h2 className=\"mng-text-2xl mng-font-bold mng-text-slate-800\">Customers</h2>\n <button className=\"mng-bg-blue-600 mng-text-white mng-px-4 mng-py-2 mng-rounded-lg mng-text-sm mng-font-medium hover:mng-bg-blue-700 mng-transition-colors\">\n Add Customer\n </button>\n </div>\n\n <div className=\"mng-bg-white mng-rounded-xl mng-border mng-border-slate-200 mng-shadow-sm mng-overflow-hidden\">\n <table className=\"mng-w-full mng-text-left mng-border-collapse\">\n <thead>\n <tr className=\"mng-bg-slate-50 mng-border-b mng-border-slate-200\">\n <th className=\"mng-px-6 mng-py-4 mng-text-xs mng-font-semibold mng-text-slate-500 mng-uppercase\">\n Customer\n </th>\n <th className=\"mng-px-6 mng-py-4 mng-text-xs mng-font-semibold mng-text-slate-500 mng-uppercase\">\n Email\n </th>\n <th className=\"mng-px-6 mng-py-4 mng-text-xs mng-font-semibold mng-text-slate-500 mng-uppercase\">\n Orders\n </th>\n <th className=\"mng-px-6 mng-py-4 mng-text-xs mng-font-semibold mng-text-slate-500 mng-uppercase\">\n Total Spent\n </th>\n <th className=\"mng-px-6 mng-py-4 mng-text-xs mng-font-semibold mng-text-slate-500 mng-uppercase\">\n Joined\n </th>\n </tr>\n </thead>\n <tbody className=\"mng-divide-y mng-divide-slate-200\">\n {mockCustomers.map((customer) => (\n <tr key={customer.id} className=\"hover:mng-bg-slate-50 mng-transition-colors\">\n <td className=\"mng-px-6 mng-py-4\">\n <div className=\"mng-flex mng-items-center mng-gap-3\">\n <div className=\"mng-w-10 mng-h-10 mng-rounded-full mng-bg-blue-100 mng-flex mng-items-center mng-justify-center mng-text-blue-600 mng-font-semibold\">\n {customer.name.charAt(0)}\n </div>\n <span className=\"mng-text-sm mng-font-medium mng-text-slate-900\">\n {customer.name}\n </span>\n </div>\n </td>\n <td className=\"mng-px-6 mng-py-4 mng-text-sm mng-text-slate-600\">\n {customer.email}\n </td>\n <td className=\"mng-px-6 mng-py-4 mng-text-sm mng-text-slate-900\">\n {customer.orders}\n </td>\n <td className=\"mng-px-6 mng-py-4 mng-text-sm mng-font-semibold mng-text-slate-900\">\n {customer.totalSpent}\n </td>\n <td className=\"mng-px-6 mng-py-4 mng-text-sm mng-text-slate-500\">\n {customer.joined}\n </td>\n </tr>\n ))}\n </tbody>\n </table>\n </div>\n </div>\n );\n};\n","import React from 'react';\n\nexport const Products = () => {\n return (\n <div className=\"mng-space-y-6\">\n <div className=\"mng-flex mng-items-center mng-justify-between\">\n <h2 className=\"mng-text-2xl mng-font-bold mng-text-slate-800\">Products</h2>\n <button className=\"mng-bg-blue-600 mng-text-white mng-px-4 mng-py-2 mng-rounded-lg mng-text-sm mng-font-medium hover:mng-bg-blue-700 mng-transition-colors\">\n Add Product\n </button>\n </div>\n\n <div className=\"mng-bg-white mng-rounded-xl mng-border mng-border-slate-200 mng-shadow-sm mng-p-12 mng-flex mng-items-center mng-justify-center mng-min-h-96\">\n <p className=\"mng-text-slate-400 mng-italic\">Products management coming soon...</p>\n </div>\n </div>\n );\n};\n","import React from 'react';\nimport { useManago } from '../../providers/ManagoProvider';\n\nexport const Settings = () => {\n const { config } = useManago();\n\n return (\n <div className=\"mng-space-y-6\">\n <h2 className=\"mng-text-2xl mng-font-bold mng-text-slate-800\">Settings</h2>\n\n <div className=\"mng-bg-white mng-rounded-xl mng-border mng-border-slate-200 mng-shadow-sm mng-p-6 mng-space-y-6\">\n <div>\n <h3 className=\"mng-text-lg mng-font-semibold mng-text-slate-800 mng-mb-4\">\n General Settings\n </h3>\n\n <div className=\"mng-space-y-4\">\n <div>\n <label className=\"mng-block mng-text-sm mng-font-medium mng-text-slate-700 mng-mb-2\">\n Application Name\n </label>\n <input\n type=\"text\"\n disabled\n value={config.appName}\n className=\"mng-w-full mng-px-4 mng-py-2 mng-border mng-border-slate-300 mng-rounded-lg mng-bg-slate-50 mng-text-slate-500\"\n />\n <p className=\"mng-text-xs mng-text-slate-500 mng-mt-1\">\n Configured via ManagoProvider\n </p>\n </div>\n\n <div>\n <label className=\"mng-block mng-text-sm mng-font-medium mng-text-slate-700 mng-mb-2\">\n API Endpoint\n </label>\n <input\n type=\"text\"\n disabled\n value={config.apiEndpoint || 'Not configured'}\n className=\"mng-w-full mng-px-4 mng-py-2 mng-border mng-border-slate-300 mng-rounded-lg mng-bg-slate-50 mng-text-slate-500\"\n />\n </div>\n </div>\n </div>\n\n <div className=\"mng-border-t mng-border-slate-200 mng-pt-6\">\n <h3 className=\"mng-text-lg mng-font-semibold mng-text-slate-800 mng-mb-4\">\n Menu Configuration\n </h3>\n <div className=\"mng-space-y-2\">\n {Object.entries(config.menu || {}).map(([key, value]) => (\n <div key={key} className=\"mng-flex mng-items-center mng-justify-between\">\n <span className=\"mng-text-sm mng-text-slate-700 mng-capitalize\">{key}</span>\n <span\n className={`mng-text-sm mng-font-medium ${\n value ? 'mng-text-green-600' : 'mng-text-red-600'\n }`}\n >\n {value ? 'Enabled' : 'Disabled'}\n </span>\n </div>\n ))}\n </div>\n </div>\n </div>\n </div>\n );\n};\n"],"mappings":"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","names":["React","createRootRoute","createRoute","createRouter","RouterProvider","Outlet","useNavigate","useRouterState","React","createContext","jsx","ManagoContext","ManagoProvider","children","apiKey","config","navigate","currentPath","useManago","context","useContext","useNavigation","context","useContext","ManagoContext","path","Fragment","jsx","jsxs","defaultMenuItems","Sidebar","config","useManago","navigate","isActive","useNavigation","menuItems","item","jsx","jsxs","Header","title","config","useManago","jsx","jsxs","Layout","children","Sidebar","Header","jsx","jsxs","Dashboard","stat","jsx","jsxs","mockOrders","getStatusColor","status","Orders","order","jsx","jsxs","mockCustomers","Customers","customer","jsx","jsxs","Products","jsx","jsxs","Settings","config","useManago","key","value","jsx","jsxs","NotFound","navigate","useNavigate","rootRoute","createRootRoute","Layout","Outlet","indexRoute","createRoute","Dashboard","ordersRoute","Orders","customersRoute","Customers","productsRoute","Products","settingsRoute","Settings","routeTree","RouterWrapper","apiKey","config","basePath","router","React","createRouter","RouterProvider","InnerWrapper","routerState","useRouterState","ManagoProvider","path","ManagoAdmin"]}
package/dist/index.css ADDED
@@ -0,0 +1,168 @@
1
+ /*! tailwindcss v4.1.18 | MIT License | https://tailwindcss.com */
2
+ @layer theme, base, components, utilities;
3
+ @layer theme {
4
+ :root, :host {
5
+ --font-sans: ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji",
6
+ "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
7
+ --font-mono: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono",
8
+ "Courier New", monospace;
9
+ --default-font-family: var(--font-sans);
10
+ --default-mono-font-family: var(--font-mono);
11
+ }
12
+ }
13
+ @layer base {
14
+ *, ::after, ::before, ::backdrop, ::file-selector-button {
15
+ box-sizing: border-box;
16
+ margin: 0;
17
+ padding: 0;
18
+ border: 0 solid;
19
+ }
20
+ html, :host {
21
+ line-height: 1.5;
22
+ -webkit-text-size-adjust: 100%;
23
+ tab-size: 4;
24
+ font-family: var(--default-font-family, ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");
25
+ font-feature-settings: var(--default-font-feature-settings, normal);
26
+ font-variation-settings: var(--default-font-variation-settings, normal);
27
+ -webkit-tap-highlight-color: transparent;
28
+ }
29
+ hr {
30
+ height: 0;
31
+ color: inherit;
32
+ border-top-width: 1px;
33
+ }
34
+ abbr:where([title]) {
35
+ -webkit-text-decoration: underline dotted;
36
+ text-decoration: underline dotted;
37
+ }
38
+ h1, h2, h3, h4, h5, h6 {
39
+ font-size: inherit;
40
+ font-weight: inherit;
41
+ }
42
+ a {
43
+ color: inherit;
44
+ -webkit-text-decoration: inherit;
45
+ text-decoration: inherit;
46
+ }
47
+ b, strong {
48
+ font-weight: bolder;
49
+ }
50
+ code, kbd, samp, pre {
51
+ font-family: var(--default-mono-font-family, ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);
52
+ font-feature-settings: var(--default-mono-font-feature-settings, normal);
53
+ font-variation-settings: var(--default-mono-font-variation-settings, normal);
54
+ font-size: 1em;
55
+ }
56
+ small {
57
+ font-size: 80%;
58
+ }
59
+ sub, sup {
60
+ font-size: 75%;
61
+ line-height: 0;
62
+ position: relative;
63
+ vertical-align: baseline;
64
+ }
65
+ sub {
66
+ bottom: -0.25em;
67
+ }
68
+ sup {
69
+ top: -0.5em;
70
+ }
71
+ table {
72
+ text-indent: 0;
73
+ border-color: inherit;
74
+ border-collapse: collapse;
75
+ }
76
+ :-moz-focusring {
77
+ outline: auto;
78
+ }
79
+ progress {
80
+ vertical-align: baseline;
81
+ }
82
+ summary {
83
+ display: list-item;
84
+ }
85
+ ol, ul, menu {
86
+ list-style: none;
87
+ }
88
+ img, svg, video, canvas, audio, iframe, embed, object {
89
+ display: block;
90
+ vertical-align: middle;
91
+ }
92
+ img, video {
93
+ max-width: 100%;
94
+ height: auto;
95
+ }
96
+ button, input, select, optgroup, textarea, ::file-selector-button {
97
+ font: inherit;
98
+ font-feature-settings: inherit;
99
+ font-variation-settings: inherit;
100
+ letter-spacing: inherit;
101
+ color: inherit;
102
+ border-radius: 0;
103
+ background-color: transparent;
104
+ opacity: 1;
105
+ }
106
+ :where(select:is([multiple], [size])) optgroup {
107
+ font-weight: bolder;
108
+ }
109
+ :where(select:is([multiple], [size])) optgroup option {
110
+ padding-inline-start: 20px;
111
+ }
112
+ ::file-selector-button {
113
+ margin-inline-end: 4px;
114
+ }
115
+ ::placeholder {
116
+ opacity: 1;
117
+ }
118
+ @supports (not (-webkit-appearance: -apple-pay-button)) or (contain-intrinsic-size: 1px) {
119
+ ::placeholder {
120
+ color: currentcolor;
121
+ @supports (color: color-mix(in lab, red, red)) {
122
+ color: color-mix(in oklab, currentcolor 50%, transparent);
123
+ }
124
+ }
125
+ }
126
+ textarea {
127
+ resize: vertical;
128
+ }
129
+ ::-webkit-search-decoration {
130
+ -webkit-appearance: none;
131
+ }
132
+ ::-webkit-date-and-time-value {
133
+ min-height: 1lh;
134
+ text-align: inherit;
135
+ }
136
+ ::-webkit-datetime-edit {
137
+ display: inline-flex;
138
+ }
139
+ ::-webkit-datetime-edit-fields-wrapper {
140
+ padding: 0;
141
+ }
142
+ ::-webkit-datetime-edit, ::-webkit-datetime-edit-year-field, ::-webkit-datetime-edit-month-field, ::-webkit-datetime-edit-day-field, ::-webkit-datetime-edit-hour-field, ::-webkit-datetime-edit-minute-field, ::-webkit-datetime-edit-second-field, ::-webkit-datetime-edit-millisecond-field, ::-webkit-datetime-edit-meridiem-field {
143
+ padding-block: 0;
144
+ }
145
+ ::-webkit-calendar-picker-indicator {
146
+ line-height: 1;
147
+ }
148
+ :-moz-ui-invalid {
149
+ box-shadow: none;
150
+ }
151
+ button, input:where([type="button"], [type="reset"], [type="submit"]), ::file-selector-button {
152
+ appearance: button;
153
+ }
154
+ ::-webkit-inner-spin-button, ::-webkit-outer-spin-button {
155
+ height: auto;
156
+ }
157
+ [hidden]:where(:not([hidden="until-found"])) {
158
+ display: none !important;
159
+ }
160
+ }
161
+ @layer utilities {
162
+ .relative {
163
+ position: relative;
164
+ }
165
+ .table {
166
+ display: table;
167
+ }
168
+ }
package/dist/index.d.mts CHANGED
@@ -1,79 +1,37 @@
1
+ export { a as ManagoConfig, b as ManagoContextType, M as ManagoProvider, c as MenuItem, u as useManago } from './ManagoProvider-DtovqU61.mjs';
1
2
  import * as react_jsx_runtime from 'react/jsx-runtime';
2
3
  import { ReactNode } from 'react';
3
- import { createRouter } from '@tanstack/react-router';
4
4
 
5
- type APIConfig = {
6
- apiKey: string;
7
- baseURL?: string;
5
+ /**
6
+ * Hook for framework-agnostic navigation
7
+ * Uses the navigation adapter provided by the framework-specific ManagoAdmin component
8
+ */
9
+ declare const useNavigation: () => {
10
+ navigate: (path: string) => void;
11
+ currentPath: string;
12
+ isActive: (path: string) => boolean;
8
13
  };
9
- declare class ManagoAPIClient {
10
- private apiKey;
11
- private baseURL;
12
- constructor(config: APIConfig);
13
- request(endpoint: string, options?: RequestInit): Promise<any>;
14
- login(email: string, password: string): Promise<any>;
15
- getProducts(params?: {
16
- page?: number;
17
- limit?: number;
18
- }): Promise<any>;
19
- getProduct(id: string): Promise<any>;
20
- createProduct(data: any): Promise<any>;
21
- updateProduct(id: string, data: any): Promise<any>;
22
- deleteProduct(id: string): Promise<any>;
23
- getOrders(params?: {
24
- page?: number;
25
- limit?: number;
26
- }): Promise<any>;
27
- getCustomers(params?: {
28
- page?: number;
29
- limit?: number;
30
- }): Promise<any>;
31
- getSettings(): Promise<any>;
32
- updateSettings(data: any): Promise<any>;
33
- }
34
14
 
35
- type AdminMenuItem = {
36
- href: string;
37
- label: string;
38
- icon: string;
39
- enabled?: boolean;
40
- };
41
- type AdminConfig = {
42
- appName?: string;
43
- logo?: string | React.ReactNode;
44
- menu?: {
45
- dashboard?: boolean;
46
- products?: boolean;
47
- orders?: boolean;
48
- customers?: boolean;
49
- payments?: boolean;
50
- users?: boolean;
51
- settings?: boolean;
52
- };
53
- customMenuItems?: AdminMenuItem[];
54
- features?: {
55
- multiUser?: boolean;
56
- analytics?: boolean;
57
- exports?: boolean;
58
- };
59
- theme?: {
60
- primaryColor?: string;
61
- sidebarBg?: string;
62
- };
63
- };
15
+ declare const Sidebar: () => react_jsx_runtime.JSX.Element;
64
16
 
65
- declare function ManagoProvider({ apiKey, config, children, }: {
66
- apiKey: string;
67
- config?: Partial<AdminConfig>;
68
- children: ReactNode;
69
- }): react_jsx_runtime.JSX.Element;
70
- declare function useManagoAPI(): ManagoAPIClient;
17
+ interface HeaderProps {
18
+ title?: string;
19
+ }
20
+ declare const Header: ({ title }: HeaderProps) => react_jsx_runtime.JSX.Element;
71
21
 
72
- declare module '@tanstack/react-router' {
73
- interface Register {
74
- router: ReturnType<typeof createRouter>;
75
- }
22
+ interface LayoutProps {
23
+ children: ReactNode;
76
24
  }
77
- declare function ManagoAdmin(): react_jsx_runtime.JSX.Element | null;
25
+ declare const Layout: ({ children }: LayoutProps) => react_jsx_runtime.JSX.Element;
26
+
27
+ declare const Dashboard: () => react_jsx_runtime.JSX.Element;
28
+
29
+ declare const Orders: () => react_jsx_runtime.JSX.Element;
30
+
31
+ declare const Customers: () => react_jsx_runtime.JSX.Element;
32
+
33
+ declare const Products: () => react_jsx_runtime.JSX.Element;
34
+
35
+ declare const Settings: () => react_jsx_runtime.JSX.Element;
78
36
 
79
- export { type AdminConfig, ManagoAdmin, ManagoProvider, useManagoAPI };
37
+ export { Customers, Dashboard, Header, Layout, Orders, Products, Settings, Sidebar, useNavigation };
@@ -0,0 +1,37 @@
1
+ export { a as ManagoConfig, b as ManagoContextType, M as ManagoProvider, c as MenuItem, u as useManago } from './ManagoProvider-DtovqU61.js';
2
+ import * as react_jsx_runtime from 'react/jsx-runtime';
3
+ import { ReactNode } from 'react';
4
+
5
+ /**
6
+ * Hook for framework-agnostic navigation
7
+ * Uses the navigation adapter provided by the framework-specific ManagoAdmin component
8
+ */
9
+ declare const useNavigation: () => {
10
+ navigate: (path: string) => void;
11
+ currentPath: string;
12
+ isActive: (path: string) => boolean;
13
+ };
14
+
15
+ declare const Sidebar: () => react_jsx_runtime.JSX.Element;
16
+
17
+ interface HeaderProps {
18
+ title?: string;
19
+ }
20
+ declare const Header: ({ title }: HeaderProps) => react_jsx_runtime.JSX.Element;
21
+
22
+ interface LayoutProps {
23
+ children: ReactNode;
24
+ }
25
+ declare const Layout: ({ children }: LayoutProps) => react_jsx_runtime.JSX.Element;
26
+
27
+ declare const Dashboard: () => react_jsx_runtime.JSX.Element;
28
+
29
+ declare const Orders: () => react_jsx_runtime.JSX.Element;
30
+
31
+ declare const Customers: () => react_jsx_runtime.JSX.Element;
32
+
33
+ declare const Products: () => react_jsx_runtime.JSX.Element;
34
+
35
+ declare const Settings: () => react_jsx_runtime.JSX.Element;
36
+
37
+ export { Customers, Dashboard, Header, Layout, Orders, Products, Settings, Sidebar, useNavigation };
package/dist/index.js ADDED
@@ -0,0 +1,6 @@
1
+ "use strict";var I=Object.create;var x=Object.defineProperty;var D=Object.getOwnPropertyDescriptor;var k=Object.getOwnPropertyNames;var E=Object.getPrototypeOf,j=Object.prototype.hasOwnProperty;var T=(e,n)=>{for(var g in n)x(e,g,{get:n[g],enumerable:!0})},N=(e,n,g,c)=>{if(n&&typeof n=="object"||typeof n=="function")for(let s of k(n))!j.call(e,s)&&s!==g&&x(e,s,{get:()=>n[s],enumerable:!(c=D(n,s))||c.enumerable});return e};var H=(e,n,g)=>(g=e!=null?I(E(e)):{},N(n||!e||!e.__esModule?x(g,"default",{value:e,enumerable:!0}):g,e)),L=e=>N(x({},"__esModule",{value:!0}),e);var K={};T(K,{Customers:()=>S,Dashboard:()=>M,Header:()=>v,Layout:()=>C,ManagoProvider:()=>y,Orders:()=>R,Products:()=>O,Settings:()=>A,Sidebar:()=>h,useManago:()=>r,useNavigation:()=>f});module.exports=L(K);var u=H(require("react")),w=require("react/jsx-runtime"),b=(0,u.createContext)(void 0),y=({children:e,apiKey:n,config:g,navigate:c,currentPath:s})=>(0,w.jsx)(b.Provider,{value:{apiKey:n,config:g,navigate:c,currentPath:s},children:e}),r=()=>{let e=u.default.useContext(b);if(!e)throw new Error("useManago must be used within ManagoProvider");return e};var P=require("react");var f=()=>{let e=(0,P.useContext)(b);if(!e)throw new Error("useNavigation must be used within ManagoProvider");return{navigate:e.navigate,currentPath:e.currentPath,isActive:n=>n==="/"?e.currentPath==="/"||e.currentPath==="":e.currentPath.startsWith(n)}};var o=require("react/jsx-runtime"),$=[{id:"dashboard",label:"Dashboard",path:"/"},{id:"orders",label:"Orders",path:"/orders"},{id:"customers",label:"Customers",path:"/customers"},{id:"products",label:"Products",path:"/products"},{id:"settings",label:"Settings",path:"/settings"}],h=()=>{let{config:e}=r(),{navigate:n,isActive:g}=f(),c=$.filter(s=>(e.menu||{})[s.id]!==!1);return(0,o.jsxs)("aside",{className:"mng-w-64 mng-bg-slate-900 mng-text-white mng-flex mng-flex-col",children:[(0,o.jsx)("div",{className:"mng-p-6 mng-flex mng-items-center mng-gap-3",children:e.theme?.logo?(0,o.jsx)("img",{src:e.theme.logo,alt:e.appName,className:"mng-h-8"}):(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)("div",{className:"mng-w-8 mng-h-8 mng-bg-blue-500 mng-rounded-md mng-flex mng-items-center mng-justify-center mng-font-bold",children:e.appName.charAt(0).toUpperCase()}),(0,o.jsx)("span",{className:"mng-text-xl mng-font-bold mng-tracking-tight",children:e.appName||"Manago"})]})}),(0,o.jsx)("nav",{className:"mng-flex-1 mng-px-3 mng-space-y-1",children:c.map(s=>(0,o.jsxs)("button",{onClick:()=>n(s.path),className:`
2
+ mng-w-full mng-flex mng-items-center mng-px-4 mng-py-2.5 mng-text-sm mng-rounded-lg
3
+ mng-transition-colors mng-text-left
4
+ ${g(s.path)?"mng-bg-blue-600 mng-text-white":"mng-text-slate-300 hover:mng-bg-slate-800 hover:mng-text-white"}
5
+ `,children:[s.icon&&(0,o.jsx)("span",{className:"mng-mr-3",children:s.icon}),s.label]},s.id))}),(0,o.jsx)("div",{className:"mng-p-4 mng-border-t mng-border-slate-800",children:(0,o.jsx)("p",{className:"mng-text-xs mng-text-slate-500 mng-text-center",children:"Powered by Manago"})})]})};var p=require("react/jsx-runtime"),v=({title:e="Admin Panel"})=>{let{config:n}=r();return(0,p.jsxs)("header",{className:"mng-h-16 mng-bg-white mng-border-b mng-border-slate-200 mng-flex mng-items-center mng-px-8 mng-justify-between",children:[(0,p.jsx)("h1",{className:"mng-text-sm mng-font-medium mng-text-slate-500",children:e}),(0,p.jsx)("div",{className:"mng-flex mng-items-center mng-gap-4",children:(0,p.jsx)("span",{className:"mng-text-sm mng-text-slate-600",children:n.appName})})]})};var i=require("react/jsx-runtime"),C=({children:e})=>(0,i.jsxs)("div",{className:"mng-flex mng-h-screen mng-bg-slate-50 mng-font-sans",children:[(0,i.jsx)(h,{}),(0,i.jsxs)("div",{className:"mng-flex-1 mng-flex mng-flex-col mng-overflow-hidden",children:[(0,i.jsx)(v,{}),(0,i.jsx)("main",{className:"mng-flex-1 mng-overflow-y-auto mng-p-8",children:e})]})]});var l=require("react/jsx-runtime"),M=()=>(0,l.jsxs)("div",{className:"mng-space-y-6",children:[(0,l.jsxs)("div",{className:"mng-flex mng-items-center mng-justify-between",children:[(0,l.jsx)("h2",{className:"mng-text-2xl mng-font-bold mng-text-slate-800",children:"Overview"}),(0,l.jsx)("button",{className:"mng-bg-blue-600 mng-text-white mng-px-4 mng-py-2 mng-rounded-lg mng-text-sm mng-font-medium hover:mng-bg-blue-700 mng-transition-colors",children:"Download Report"})]}),(0,l.jsx)("div",{className:"mng-grid mng-grid-cols-1 md:mng-grid-cols-3 mng-gap-6",children:[{label:"Total Revenue",value:"\u20AC45,231.89",change:"+20.1%",color:"mng-text-green-600"},{label:"Active Orders",value:"154",change:"+12.5%",color:"mng-text-green-600"},{label:"Refund Rate",value:"1.2%",change:"-0.4%",color:"mng-text-red-600"}].map(e=>(0,l.jsxs)("div",{className:"mng-bg-white mng-p-6 mng-rounded-xl mng-border mng-border-slate-200 mng-shadow-sm",children:[(0,l.jsx)("p",{className:"mng-text-sm mng-font-medium mng-text-slate-500",children:e.label}),(0,l.jsxs)("div",{className:"mng-flex mng-items-baseline mng-gap-2 mng-mt-2",children:[(0,l.jsx)("h3",{className:"mng-text-3xl mng-font-bold mng-text-slate-900",children:e.value}),(0,l.jsx)("span",{className:`mng-text-xs mng-font-medium ${e.color}`,children:e.change})]})]},e.label))}),(0,l.jsx)("div",{className:"mng-bg-white mng-rounded-xl mng-border mng-border-slate-200 mng-shadow-sm mng-h-64 mng-flex mng-items-center mng-justify-center",children:(0,l.jsx)("p",{className:"mng-text-slate-400 mng-italic",children:"Chart visualization will be here..."})})]});var m=require("react/jsx-runtime"),z=[{id:"#ORD-7721",customer:"Ion Popescu",status:"Completed",total:"\u20AC120.00",date:"Acum 2 ore"},{id:"#ORD-7722",customer:"Elena Radu",status:"Processing",total:"\u20AC45.50",date:"Acum 5 ore"},{id:"#ORD-7723",customer:"Mihai Sandu",status:"Pending",total:"\u20AC210.99",date:"Ieri"},{id:"#ORD-7724",customer:"Ana Ionescu",status:"Completed",total:"\u20AC89.99",date:"Ieri"},{id:"#ORD-7725",customer:"George Popa",status:"Cancelled",total:"\u20AC156.00",date:"Acum 2 zile"}],G=e=>{switch(e){case"Completed":return"mng-bg-green-100 mng-text-green-700";case"Processing":return"mng-bg-blue-100 mng-text-blue-700";case"Pending":return"mng-bg-yellow-100 mng-text-yellow-700";case"Cancelled":return"mng-bg-red-100 mng-text-red-700";default:return"mng-bg-slate-100 mng-text-slate-700"}},R=()=>(0,m.jsxs)("div",{className:"mng-space-y-6",children:[(0,m.jsxs)("div",{className:"mng-flex mng-items-center mng-justify-between",children:[(0,m.jsx)("h2",{className:"mng-text-2xl mng-font-bold mng-text-slate-800",children:"Orders Management"}),(0,m.jsx)("button",{className:"mng-bg-blue-600 mng-text-white mng-px-4 mng-py-2 mng-rounded-lg mng-text-sm mng-font-medium hover:mng-bg-blue-700 mng-transition-colors",children:"Export Orders"})]}),(0,m.jsx)("div",{className:"mng-bg-white mng-rounded-xl mng-border mng-border-slate-200 mng-shadow-sm mng-overflow-hidden",children:(0,m.jsxs)("table",{className:"mng-w-full mng-text-left mng-border-collapse",children:[(0,m.jsx)("thead",{children:(0,m.jsxs)("tr",{className:"mng-bg-slate-50 mng-border-b mng-border-slate-200",children:[(0,m.jsx)("th",{className:"mng-px-6 mng-py-4 mng-text-xs mng-font-semibold mng-text-slate-500 mng-uppercase",children:"Order ID"}),(0,m.jsx)("th",{className:"mng-px-6 mng-py-4 mng-text-xs mng-font-semibold mng-text-slate-500 mng-uppercase",children:"Customer"}),(0,m.jsx)("th",{className:"mng-px-6 mng-py-4 mng-text-xs mng-font-semibold mng-text-slate-500 mng-uppercase",children:"Status"}),(0,m.jsx)("th",{className:"mng-px-6 mng-py-4 mng-text-xs mng-font-semibold mng-text-slate-500 mng-uppercase",children:"Total"}),(0,m.jsx)("th",{className:"mng-px-6 mng-py-4 mng-text-xs mng-font-semibold mng-text-slate-500 mng-uppercase",children:"Date"})]})}),(0,m.jsx)("tbody",{className:"mng-divide-y mng-divide-slate-200",children:z.map(e=>(0,m.jsxs)("tr",{className:"hover:mng-bg-slate-50 mng-transition-colors",children:[(0,m.jsx)("td",{className:"mng-px-6 mng-py-4 mng-text-sm mng-font-medium mng-text-blue-600",children:e.id}),(0,m.jsx)("td",{className:"mng-px-6 mng-py-4 mng-text-sm mng-text-slate-600",children:e.customer}),(0,m.jsx)("td",{className:"mng-px-6 mng-py-4",children:(0,m.jsx)("span",{className:`mng-px-2.5 mng-py-0.5 mng-rounded-full mng-text-xs mng-font-medium ${G(e.status)}`,children:e.status})}),(0,m.jsx)("td",{className:"mng-px-6 mng-py-4 mng-text-sm mng-font-semibold mng-text-slate-900",children:e.total}),(0,m.jsx)("td",{className:"mng-px-6 mng-py-4 mng-text-sm mng-text-slate-500",children:e.date})]},e.id))})]})})]});var t=require("react/jsx-runtime"),J=[{id:"1",name:"Ion Popescu",email:"ion.popescu@example.com",orders:12,totalSpent:"\u20AC1,234.56",joined:"2024-01-15"},{id:"2",name:"Elena Radu",email:"elena.radu@example.com",orders:8,totalSpent:"\u20AC876.32",joined:"2024-02-20"},{id:"3",name:"Mihai Sandu",email:"mihai.sandu@example.com",orders:15,totalSpent:"\u20AC2,103.45",joined:"2023-11-10"},{id:"4",name:"Ana Ionescu",email:"ana.ionescu@example.com",orders:5,totalSpent:"\u20AC543.21",joined:"2024-03-05"}],S=()=>(0,t.jsxs)("div",{className:"mng-space-y-6",children:[(0,t.jsxs)("div",{className:"mng-flex mng-items-center mng-justify-between",children:[(0,t.jsx)("h2",{className:"mng-text-2xl mng-font-bold mng-text-slate-800",children:"Customers"}),(0,t.jsx)("button",{className:"mng-bg-blue-600 mng-text-white mng-px-4 mng-py-2 mng-rounded-lg mng-text-sm mng-font-medium hover:mng-bg-blue-700 mng-transition-colors",children:"Add Customer"})]}),(0,t.jsx)("div",{className:"mng-bg-white mng-rounded-xl mng-border mng-border-slate-200 mng-shadow-sm mng-overflow-hidden",children:(0,t.jsxs)("table",{className:"mng-w-full mng-text-left mng-border-collapse",children:[(0,t.jsx)("thead",{children:(0,t.jsxs)("tr",{className:"mng-bg-slate-50 mng-border-b mng-border-slate-200",children:[(0,t.jsx)("th",{className:"mng-px-6 mng-py-4 mng-text-xs mng-font-semibold mng-text-slate-500 mng-uppercase",children:"Customer"}),(0,t.jsx)("th",{className:"mng-px-6 mng-py-4 mng-text-xs mng-font-semibold mng-text-slate-500 mng-uppercase",children:"Email"}),(0,t.jsx)("th",{className:"mng-px-6 mng-py-4 mng-text-xs mng-font-semibold mng-text-slate-500 mng-uppercase",children:"Orders"}),(0,t.jsx)("th",{className:"mng-px-6 mng-py-4 mng-text-xs mng-font-semibold mng-text-slate-500 mng-uppercase",children:"Total Spent"}),(0,t.jsx)("th",{className:"mng-px-6 mng-py-4 mng-text-xs mng-font-semibold mng-text-slate-500 mng-uppercase",children:"Joined"})]})}),(0,t.jsx)("tbody",{className:"mng-divide-y mng-divide-slate-200",children:J.map(e=>(0,t.jsxs)("tr",{className:"hover:mng-bg-slate-50 mng-transition-colors",children:[(0,t.jsx)("td",{className:"mng-px-6 mng-py-4",children:(0,t.jsxs)("div",{className:"mng-flex mng-items-center mng-gap-3",children:[(0,t.jsx)("div",{className:"mng-w-10 mng-h-10 mng-rounded-full mng-bg-blue-100 mng-flex mng-items-center mng-justify-center mng-text-blue-600 mng-font-semibold",children:e.name.charAt(0)}),(0,t.jsx)("span",{className:"mng-text-sm mng-font-medium mng-text-slate-900",children:e.name})]})}),(0,t.jsx)("td",{className:"mng-px-6 mng-py-4 mng-text-sm mng-text-slate-600",children:e.email}),(0,t.jsx)("td",{className:"mng-px-6 mng-py-4 mng-text-sm mng-text-slate-900",children:e.orders}),(0,t.jsx)("td",{className:"mng-px-6 mng-py-4 mng-text-sm mng-font-semibold mng-text-slate-900",children:e.totalSpent}),(0,t.jsx)("td",{className:"mng-px-6 mng-py-4 mng-text-sm mng-text-slate-500",children:e.joined})]},e.id))})]})})]});var d=require("react/jsx-runtime"),O=()=>(0,d.jsxs)("div",{className:"mng-space-y-6",children:[(0,d.jsxs)("div",{className:"mng-flex mng-items-center mng-justify-between",children:[(0,d.jsx)("h2",{className:"mng-text-2xl mng-font-bold mng-text-slate-800",children:"Products"}),(0,d.jsx)("button",{className:"mng-bg-blue-600 mng-text-white mng-px-4 mng-py-2 mng-rounded-lg mng-text-sm mng-font-medium hover:mng-bg-blue-700 mng-transition-colors",children:"Add Product"})]}),(0,d.jsx)("div",{className:"mng-bg-white mng-rounded-xl mng-border mng-border-slate-200 mng-shadow-sm mng-p-12 mng-flex mng-items-center mng-justify-center mng-min-h-96",children:(0,d.jsx)("p",{className:"mng-text-slate-400 mng-italic",children:"Products management coming soon..."})})]});var a=require("react/jsx-runtime"),A=()=>{let{config:e}=r();return(0,a.jsxs)("div",{className:"mng-space-y-6",children:[(0,a.jsx)("h2",{className:"mng-text-2xl mng-font-bold mng-text-slate-800",children:"Settings"}),(0,a.jsxs)("div",{className:"mng-bg-white mng-rounded-xl mng-border mng-border-slate-200 mng-shadow-sm mng-p-6 mng-space-y-6",children:[(0,a.jsxs)("div",{children:[(0,a.jsx)("h3",{className:"mng-text-lg mng-font-semibold mng-text-slate-800 mng-mb-4",children:"General Settings"}),(0,a.jsxs)("div",{className:"mng-space-y-4",children:[(0,a.jsxs)("div",{children:[(0,a.jsx)("label",{className:"mng-block mng-text-sm mng-font-medium mng-text-slate-700 mng-mb-2",children:"Application Name"}),(0,a.jsx)("input",{type:"text",disabled:!0,value:e.appName,className:"mng-w-full mng-px-4 mng-py-2 mng-border mng-border-slate-300 mng-rounded-lg mng-bg-slate-50 mng-text-slate-500"}),(0,a.jsx)("p",{className:"mng-text-xs mng-text-slate-500 mng-mt-1",children:"Configured via ManagoProvider"})]}),(0,a.jsxs)("div",{children:[(0,a.jsx)("label",{className:"mng-block mng-text-sm mng-font-medium mng-text-slate-700 mng-mb-2",children:"API Endpoint"}),(0,a.jsx)("input",{type:"text",disabled:!0,value:e.apiEndpoint||"Not configured",className:"mng-w-full mng-px-4 mng-py-2 mng-border mng-border-slate-300 mng-rounded-lg mng-bg-slate-50 mng-text-slate-500"})]})]})]}),(0,a.jsxs)("div",{className:"mng-border-t mng-border-slate-200 mng-pt-6",children:[(0,a.jsx)("h3",{className:"mng-text-lg mng-font-semibold mng-text-slate-800 mng-mb-4",children:"Menu Configuration"}),(0,a.jsx)("div",{className:"mng-space-y-2",children:Object.entries(e.menu||{}).map(([n,g])=>(0,a.jsxs)("div",{className:"mng-flex mng-items-center mng-justify-between",children:[(0,a.jsx)("span",{className:"mng-text-sm mng-text-slate-700 mng-capitalize",children:n}),(0,a.jsx)("span",{className:`mng-text-sm mng-font-medium ${g?"mng-text-green-600":"mng-text-red-600"}`,children:g?"Enabled":"Disabled"})]},n))})]})]})]})};0&&(module.exports={Customers,Dashboard,Header,Layout,ManagoProvider,Orders,Products,Settings,Sidebar,useManago,useNavigation});
6
+ //# sourceMappingURL=index.js.map