{"_id":"@aiventrahealth/administrator-ui","_rev":"3-170f1433a49e2cc493bfe86f750558c7","name":"@aiventrahealth/administrator-ui","dist-tags":{"latest":"1.0.2"},"versions":{"1.0.0":{"name":"@aiventrahealth/administrator-ui","version":"1.0.0","keywords":["aiventrahealth","hmis","administrator","rbac","user-management","audit-trail","provider-mapping"],"author":{"name":"AiventraHealth Engineering"},"license":"UNLICENSED","_id":"@aiventrahealth/administrator-ui@1.0.0","maintainers":[{"name":"suneel126","email":"suneelkumarnamballa@gmail.com"}],"dist":{"shasum":"85787241cf306310c2f1cd6d345229d72d66c8b0","tarball":"https://registry.npmjs.org/@aiventrahealth/administrator-ui/-/administrator-ui-1.0.0.tgz","fileCount":21,"integrity":"sha512-+Hl9BcssCWr66ur+B3ReIXxQbo+VB407fZq0+aCo98NvEOD0Ub/RuoU6n63Clcnd2A0e0SGfBnhOYX0vAntUzw==","signatures":[{"sig":"MEQCIFbuRz64XtgdjTgpPat2QTeWr9KfEjePePzqAZxgtLAJAiA8CTR6llah/m+bSGTOnCjZuiLZJG/w/4/KYVq7oz8OHw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1852175},"main":"./dist/administrator-ui.umd.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/administrator-ui.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/administrator-ui.js","require":"./dist/administrator-ui.umd.cjs"}},"gitHead":"775072a0169c23d5f05b6f064a09181fd4b713e1","scripts":{"build":"tsc && vite build","type-check":"tsc --noEmit"},"_npmUser":{"name":"suneel126","email":"suneelkumarnamballa@gmail.com"},"_npmVersion":"11.19.0","description":"Reusable, production-grade Administrator UI components and API adapter contract for AiventraHealth HMIS","directories":{},"_nodeVersion":"26.7.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^5.2.11","typescript":"^5.2.2","@types/node":"^20.12.0","@types/react":"^18.3.3","@mui/material":"^5.15.18","@emotion/react":"^11.11.4","@emotion/styled":"^11.11.5","vite-plugin-dts":"^3.9.1","@types/react-dom":"^18.3.0","@mui/icons-material":"^5.15.18","@vitejs/plugin-react":"^4.3.0"},"peerDependencies":{"react":"^18.0.0","react-dom":"^18.0.0","@mui/material":"^5.15.0","@emotion/react":"^11.11.0","@emotion/styled":"^11.11.0","@mui/icons-material":"^5.15.0"},"_npmOperationalInternal":{"tmp":"tmp/administrator-ui_1.0.0_1789146091888_0.9186797266139506","host":"s3://npm-registry-packages-npm-production"}},"1.0.1":{"name":"@aiventrahealth/administrator-ui","version":"1.0.1","keywords":["aiventrahealth","hmis","administrator","rbac","user-management","audit-trail","provider-mapping"],"author":{"name":"AiventraHealth Engineering"},"license":"UNLICENSED","_id":"@aiventrahealth/administrator-ui@1.0.1","maintainers":[{"name":"suneel126","email":"suneelkumarnamballa@gmail.com"}],"dist":{"shasum":"1e96b37136d0a8bc0d43096cc7a4a5132bd32d21","tarball":"https://registry.npmjs.org/@aiventrahealth/administrator-ui/-/administrator-ui-1.0.1.tgz","fileCount":21,"integrity":"sha512-Xg+VwG0g4KRlafGtWUX3SRqTIEtr9RB9uur8NIhsmnaIY+nAftpdlXddOCMZD5ONZPoZeRp4ugVl2pyTXOAz1w==","signatures":[{"sig":"MEUCIQC4DOKrPWVYTnWceG4b/B6Ftgq6cU9rAO39XJrRN39fpwIgGQomPI9vP+5OI7xaRc4TyRJciUt+XcR4If8bNiraZiU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQCDtl9lCHbbmmHZWF/ZXV1bb+XMhUhZczMs9Ra7Xz+l4AIgX6FDt9/xb5mbhd7frCOgLB30VkOiztGdFcz3jqZ/fbM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1865786},"main":"./dist/administrator-ui.umd.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/administrator-ui.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/administrator-ui.js","require":"./dist/administrator-ui.umd.cjs"}},"gitHead":"51c5c45f4a7d26191b3618fcdd1d15637a4cb0ce","scripts":{"build":"tsc && vite build","type-check":"tsc --noEmit"},"_npmUser":{"name":"suneel126","email":"suneelkumarnamballa@gmail.com"},"_npmVersion":"11.19.0","description":"Reusable, production-grade Administrator UI components and API adapter contract for AiventraHealth HMIS","directories":{},"_nodeVersion":"26.7.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^5.2.11","typescript":"^5.2.2","@types/node":"^20.12.0","@types/react":"^18.3.3","@mui/material":"^5.15.18","@emotion/react":"^11.11.4","@emotion/styled":"^11.11.5","vite-plugin-dts":"^3.9.1","@types/react-dom":"^18.3.0","@mui/icons-material":"^5.15.18","@vitejs/plugin-react":"^4.3.0"},"peerDependencies":{"react":"^18.0.0","react-dom":"^18.0.0","@mui/material":"^5.15.0","@emotion/react":"^11.11.0","@emotion/styled":"^11.11.0","@mui/icons-material":"^5.15.0"},"_npmOperationalInternal":{"tmp":"tmp/administrator-ui_1.0.1_1789150181268_0.7862703288748711","host":"s3://npm-registry-packages-npm-production"}},"1.0.2":{"_id":"@aiventrahealth/administrator-ui@1.0.2","dist":{"shasum":"f6a7bc16b246d1601f14579b9354a0704a4aab83","tarball":"https://registry.npmjs.org/@aiventrahealth/administrator-ui/-/administrator-ui-1.0.2.tgz","fileCount":21,"integrity":"sha512-6e4lAC6aaR7xz6vi3FAd8hco+YMcjajlT77LFSlHgsrdtn+d6cPUHP7y1IEkk3QOgBC3ixeKGmpfj7ObzpSqrA==","signatures":[{"sig":"MEYCIQDI2Onf/KgzGLr7Ax7AHP0dAA3Dm32kP/DTEiVxmwjGZwIhALUGv6ofIhQh3qYY6AgEZgLUu/UHs3AbPRtDsTKKmAlT","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQCaiI5Oh+P1CXIAiSBZcvWvn9M5Zlwe6HPthwLVp1Z/igIhAMxsfM5yWJ5OpWOzQwOeK5Nje5J4Hv/L2/ElmE2YEsys"}],"unpackedSize":1866126},"main":"./dist/administrator-ui.umd.cjs","name":"@aiventrahealth/administrator-ui","type":"module","types":"./dist/index.d.ts","author":{"name":"AiventraHealth Engineering"},"module":"./dist/administrator-ui.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/administrator-ui.js","require":"./dist/administrator-ui.umd.cjs"}},"gitHead":"9d6c135133a0e69ec603c9e2a4fee631eb22028a","license":"UNLICENSED","scripts":{"build":"tsc && vite build","type-check":"tsc --noEmit"},"version":"1.0.2","_npmUser":{"name":"suneel126","email":"suneelkumarnamballa@gmail.com"},"keywords":["aiventrahealth","hmis","administrator","rbac","user-management","audit-trail","provider-mapping"],"_npmVersion":"11.19.0","description":"Reusable, production-grade Administrator UI components and API adapter contract for AiventraHealth HMIS","directories":{},"maintainers":[{"name":"suneel126","email":"suneelkumarnamballa@gmail.com"}],"_nodeVersion":"26.7.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^5.2.11","react":"^19.3.0","react-dom":"^19.3.0","typescript":"^5.2.2","@types/node":"^20.12.0","@types/react":"^19.3.0","@mui/material":"^5.15.18","@emotion/react":"^11.11.4","@emotion/styled":"^11.11.5","vite-plugin-dts":"^3.9.1","@types/react-dom":"^19.3.0","@mui/icons-material":"^5.15.18","@vitejs/plugin-react":"^4.3.0"},"peerDependencies":{"react":">=19.3.0 <24","react-dom":">=19.3.0 <24","@mui/material":"^5.15.0","@emotion/react":"^11.11.0","@emotion/styled":"^11.11.0","@mui/icons-material":"^5.15.0"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/administrator-ui_1.0.2_1789549511501_0.11046917248040655"}}},"time":{"created":"2026-09-11T17:01:31.636Z","modified":"2026-09-16T09:05:11.874Z","1.0.0":"2026-09-11T17:01:32.084Z","1.0.1":"2026-09-11T18:09:41.361Z","1.0.2":"2026-09-16T09:05:11.618Z"},"author":{"name":"AiventraHealth Engineering"},"license":"UNLICENSED","keywords":["aiventrahealth","hmis","administrator","rbac","user-management","audit-trail","provider-mapping"],"description":"Reusable, production-grade Administrator UI components and API adapter contract for AiventraHealth HMIS","maintainers":[{"name":"suneel126","email":"suneelkumarnamballa@gmail.com"}],"readme":"# @aiventrahealth/administrator-ui\r\n\r\nProduction-grade, reusable enterprise System Administration & RBAC frontend package for AiventraHealth HMIS, healthcare ecosystems, and independent enterprise applications (HR, Finance, Operations, Corporate Portals).\r\n\r\n---\r\n\r\n## 1. What This Package Is\r\n\r\n`@aiventrahealth/administrator-ui` provides a self-contained, fully configurable, modern administration interface for:\r\n- **Administrative Dashboard & KPIs** (User statistics, role distribution, facility/office access, recent security activity).\r\n- **User Management** (Authentication accounts, activation/deactivation, password resets, facility assignments, dynamic multi-role assignment with validity dates).\r\n- **Dynamic Roles & Permission Matrix** (Granular screen and action-level permissions: View, Create, Edit, Delete, Export across hierarchical application modules).\r\n- **Optional Provider Mapping** (Authoritative binding of user accounts to clinical Doctor/Provider master records — toggleable per application).\r\n- **Optional Multi-Facility Location Scopes** (Configurable multi-facility or multi-site permissions — toggleable per application).\r\n- **Security Audit Ledger** (Tamper-evident logs of administrative actions and security events).\r\n\r\n---\r\n\r\n## 2. Multi-Project Adaptability & Architectural Isolation\r\n\r\nThe package is designed with **zero hardcoded dependencies on HMIS backend structures**:\r\n- **Explicit Feature Toggles**: Features like `providerMapping` and `locationAccess` are strictly opt-in. When disabled, their tabs, KPI cards, form fields, table columns, and API calls are completely removed.\r\n- **Configurable Terminology**: The UI labels dynamically adapt (e.g. \"Doctor\" vs \"Clinical Provider\" vs \"Account Executive\", or \"Hospital Facility\" vs \"Branch Office\").\r\n- **Configurable Provider Roles**: Provider-eligibility is configured via `config.providerRoleCodes` or custom predicate rather than hardcoding `ROLE_DOCTOR`.\r\n- **Pure Client Contract**: The package does NOT make HTTP requests or hold Axios/Fetch instances. Host applications provide API and Auth adapters conforming to TypeScript interfaces.\r\n\r\n---\r\n\r\n## 3. Host Integration Examples\r\n\r\n### Scenario A: AiventraHealth HMIS (Healthcare Application)\r\n\r\nIn HMIS, provider mapping and location scoping are enabled, and terminology is set to \"Doctor\":\r\n\r\n```tsx\r\nimport React, { useMemo } from 'react';\r\nimport {\r\n  AdministratorProvider,\r\n  Administrator,\r\n  AdministratorConfig,\r\n} from '@aiventrahealth/administrator-ui';\r\nimport { hmisAdministratorApi } from './adapters/hmisAdministratorApi';\r\nimport { createHmisAdministratorAuthAdapter } from './adapters/hmisAdministratorAuthAdapter';\r\nimport { useAuth } from './contexts/AuthContext';\r\n\r\nexport const HmisAdminPage: React.FC = () => {\r\n  const auth = useAuth();\r\n  const authAdapter = useMemo(() => createHmisAdministratorAuthAdapter(auth), [auth]);\r\n\r\n  const config: AdministratorConfig = {\r\n    title: 'Hospital System Administration',\r\n    subtitle: 'Centralized identity, role assignments, doctor mapping, facility scopes, and security audit logs.',\r\n    features: {\r\n      dashboard: true,\r\n      users: true,\r\n      roles: true,\r\n      providerMapping: true, // Enabled for HMIS\r\n      locationAccess: true,  // Enabled for HMIS\r\n      auditTrail: true,\r\n    },\r\n    terminology: {\r\n      provider: 'Doctor',\r\n      providers: 'Doctors',\r\n      providerCode: 'Doctor Code',\r\n      location: 'Hospital Facility',\r\n      locations: 'Hospital Facilities',\r\n    },\r\n    providerRoleCodes: ['ROLE_DOCTOR', 'DOCTOR'],\r\n  };\r\n\r\n  return (\r\n    <AdministratorProvider api={hmisAdministratorApi} auth={authAdapter} config={config}>\r\n      <Administrator />\r\n    </AdministratorProvider>\r\n  );\r\n};\r\n```\r\n\r\n---\r\n\r\n### Scenario B: Non-Healthcare Corporate Application (HR / Finance)\r\n\r\nIn an HR or Finance portal, provider mapping and facility access are disabled. The host adapter only needs to implement core user and role methods — no doctor or location APIs required:\r\n\r\n```tsx\r\nimport React from 'react';\r\nimport {\r\n  AdministratorProvider,\r\n  Administrator,\r\n  AdministratorConfig,\r\n} from '@aiventrahealth/administrator-ui';\r\nimport { corporateApiAdapter } from './adapters/corporateApiAdapter';\r\nimport { corporateAuthAdapter } from './adapters/corporateAuthAdapter';\r\n\r\nexport const CorporateAdminPage: React.FC = () => {\r\n  const config: AdministratorConfig = {\r\n    title: 'Enterprise Identity & Access Management',\r\n    subtitle: 'Manage company employee logins and access control roles.',\r\n    features: {\r\n      dashboard: true,\r\n      users: true,\r\n      roles: true,\r\n      providerMapping: false, // Disabled: No provider tabs, columns, or API calls\r\n      locationAccess: false,  // Disabled: No facility tabs or location filters\r\n      auditTrail: false,\r\n    },\r\n  };\r\n\r\n  return (\r\n    <AdministratorProvider api={corporateApiAdapter} auth={corporateAuthAdapter} config={config}>\r\n      <Administrator />\r\n    </AdministratorProvider>\r\n  );\r\n};\r\n```\r\n\r\n---\r\n\r\n## 4. Configuration Reference\r\n\r\n```typescript\r\nexport interface AdministratorConfig {\r\n  title?: string;\r\n  subtitle?: string;\r\n  badgeText?: string;\r\n  features?: AdministratorFeaturesConfig;\r\n  terminology?: AdministratorTerminologyConfig;\r\n  providerRoleCodes?: string[];\r\n  isProviderRole?: (roleCode: string) => boolean;\r\n}\r\n\r\nexport interface AdministratorFeaturesConfig {\r\n  dashboard?: boolean;       // default: true\r\n  users?: boolean;           // default: true\r\n  roles?: boolean;           // default: true\r\n  providerMapping?: boolean; // default: false (opt-in)\r\n  locationAccess?: boolean;  // default: false (opt-in)\r\n  auditTrail?: boolean;      // default: false (opt-in)\r\n}\r\n\r\nexport interface AdministratorTerminologyConfig {\r\n  provider?: string;         // default: 'Provider'\r\n  providers?: string;        // default: 'Providers'\r\n  providerCode?: string;     // default: 'Provider Code'\r\n  location?: string;         // default: 'Location'\r\n  locations?: string;        // default: 'Locations'\r\n}\r\n```\r\n\r\n---\r\n\r\n## 5. Peer Dependencies\r\n\r\nEnsure the host application provides React 18 and MUI v5:\r\n\r\n```json\r\n{\r\n  \"peerDependencies\": {\r\n    \"react\": \"^18.0.0\",\r\n    \"react-dom\": \"^18.0.0\",\r\n    \"@mui/material\": \"^5.15.0\",\r\n    \"@mui/icons-material\": \"^5.15.0\",\r\n    \"@emotion/react\": \"^11.11.0\",\r\n    \"@emotion/styled\": \"^11.11.0\"\r\n  }\r\n}\r\n```\r\n\r\n---\r\n\r\n## 6. Building and Packaging\r\n\r\n```bash\r\n# Type check and build package bundle (.js + .d.ts)\r\nnpm run build\r\n\r\n# Run multi-project architectural simulation tests\r\nnode verify-simulation.mjs\r\n\r\n# Pack package into a distributable .tgz archive\r\nnpm pack\r\n```\r\n","readmeFilename":"README.md"}