{"_id":"@arc-lang/arc-cms","_rev":"3-b41c26baab27d4ad90848c49c1d72062","name":"@arc-lang/arc-cms","dist-tags":{"latest":"0.1.2"},"versions":{"0.1.0":{"name":"@arc-lang/arc-cms","version":"0.1.0","keywords":["arc","cms","admin","panel","headless"],"license":"MIT","_id":"@arc-lang/arc-cms@0.1.0","maintainers":[{"name":"kobecuppens","email":"kobecuppens@hotmail.com"}],"homepage":"https://arc-language.dev/docs/cms","bugs":{"url":"https://github.com/arc-language/arc-web/issues"},"dist":{"shasum":"ff08410a57fdc71ae976d487a29f3894d3f0add7","tarball":"https://registry.npmjs.org/@arc-lang/arc-cms/-/arc-cms-0.1.0.tgz","fileCount":75,"integrity":"sha512-+UIesUv9SrN5jtCNOrPIKGN9j8chd3Pbv3ESdAsN1qHeiRx4ns8BYooJBWFBPhBNPTY8nLJxO44zWhoAvBDPCA==","signatures":[{"sig":"MEUCIQC6ZDv1Fx5ITAFV1k2pdhmIfVD6+Idm7G+9pl9/jv3EzwIgb5Zsp3GwNeKgcn+YJxPNX80EmCsNBmcmlXaGjjGWhx4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":550900},"main":"src/index.js","gitHead":"152b39376201da2787f1df178cf167380e7fc425","_npmUser":{"name":"kobecuppens","email":"kobecuppens@hotmail.com"},"repository":{"url":"git+https://github.com/arc-language/arc-web.git","type":"git","directory":"packages/arc-cms"},"_npmVersion":"11.12.1","description":"First-class admin panel + headless CMS for Arc apps. Built on @arc-lang/arc-ui. Scaffolded by `arc cms init`.","directories":{},"_nodeVersion":"24.15.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"peerDependencies":{"@arc-lang/arc-ui":"^2.4.1"},"_npmOperationalInternal":{"tmp":"tmp/arc-cms_0.1.0_1780403842287_0.26719831685418405","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"@arc-lang/arc-cms","version":"0.1.1","keywords":["arc","cms","admin","panel","headless"],"license":"MIT","_id":"@arc-lang/arc-cms@0.1.1","maintainers":[{"name":"kobecuppens","email":"kobecuppens@hotmail.com"}],"homepage":"https://arc-language.dev/docs/cms","bugs":{"url":"https://github.com/arc-language/arc-web/issues"},"dist":{"shasum":"555ef24b40aee0c6c9e55ffd698a00ca4224b534","tarball":"https://registry.npmjs.org/@arc-lang/arc-cms/-/arc-cms-0.1.1.tgz","fileCount":81,"integrity":"sha512-kpK14R83KAIyuPII1hzBei3eu89T9a2apyGUtz1SAfgeZ/Pv15vxRuagMNxoxBt1glvS83hbm3Lf49pLrjVG0w==","signatures":[{"sig":"MEUCIQDyE1c7dYgocJpWHtyUxwrbzaIUD/3ecTd09os5CBpRNAIgZ6NXYWdqvLxxqy4KQ4IfbfYDqsRylWPDcH+mV6zn/5w=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":591851},"main":"src/index.js","gitHead":"c58bd6ca54368fe13d80c26eeaa13a8714068668","_npmUser":{"name":"kobecuppens","email":"kobecuppens@hotmail.com"},"repository":{"url":"git+https://github.com/arc-language/arc-web.git","type":"git","directory":"packages/arc-cms"},"_npmVersion":"11.12.1","description":"First-class admin panel + headless CMS for Arc apps. Built on @arc-lang/arc-ui. Scaffolded by `arc cms init`.","directories":{},"_nodeVersion":"24.15.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"peerDependencies":{"@arc-lang/arc-ui":"^2.4.1"},"_npmOperationalInternal":{"tmp":"tmp/arc-cms_0.1.1_1780408575708_0.27162676078387116","host":"s3://npm-registry-packages-npm-production"}},"0.1.2":{"name":"@arc-lang/arc-cms","version":"0.1.2","description":"First-class admin panel + headless CMS for Arc apps. Built on @arc-lang/arc-ui. Scaffolded by `arc cms init`.","keywords":["arc","cms","admin","panel","headless"],"homepage":"https://arc-language.dev/docs/cms","repository":{"type":"git","url":"git+https://github.com/arc-language/arc-web.git","directory":"packages/arc-cms"},"bugs":{"url":"https://github.com/arc-language/arc-web/issues"},"license":"MIT","main":"src/index.js","peerDependencies":{"@arc-lang/arc-ui":"^2.4.1"},"publishConfig":{"access":"public"},"gitHead":"c58bd6ca54368fe13d80c26eeaa13a8714068668","_id":"@arc-lang/arc-cms@0.1.2","_nodeVersion":"24.15.0","_npmVersion":"11.12.1","dist":{"integrity":"sha512-Bw3Dz4thHqh21xjV2JfDiutl1ypVWqf+uuYgYbIH5hPZNAHnwDXwL4ey4OEHfuTjFA2IjGPSdH42uqI5ZMvFpw==","shasum":"bf2a2a776f34410cd7fc1ed0ffb3526890a51ab2","tarball":"https://registry.npmjs.org/@arc-lang/arc-cms/-/arc-cms-0.1.2.tgz","fileCount":81,"unpackedSize":591852,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQDDNo36GzzcY7hgaKbToWQHFLBwqNQ8RbTj7QxVtUKvpwIhAOekc6GUJSwnKJ5w8VD4DIPimV+C5CScR2XIDVazG9j4"}]},"_npmUser":{"name":"kobecuppens","email":"kobecuppens@hotmail.com"},"directories":{},"maintainers":[{"name":"kobecuppens","email":"kobecuppens@hotmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/arc-cms_0.1.2_1780410297555_0.7138568846601909"},"_hasShrinkwrap":false}},"time":{"created":"2026-06-02T12:37:22.135Z","modified":"2026-06-02T14:24:57.861Z","0.1.0":"2026-06-02T12:37:22.448Z","0.1.1":"2026-06-02T13:56:15.869Z","0.1.2":"2026-06-02T14:24:57.718Z"},"bugs":{"url":"https://github.com/arc-language/arc-web/issues"},"license":"MIT","homepage":"https://arc-language.dev/docs/cms","keywords":["arc","cms","admin","panel","headless"],"repository":{"type":"git","url":"git+https://github.com/arc-language/arc-web.git","directory":"packages/arc-cms"},"description":"First-class admin panel + headless CMS for Arc apps. Built on @arc-lang/arc-ui. Scaffolded by `arc cms init`.","maintainers":[{"name":"kobecuppens","email":"kobecuppens@hotmail.com"}],"readme":"# @arc-lang/arc-cms\n\nFirst-class admin panel + headless CMS for [Arc](https://arc-language.dev) apps. Built on [`@arc-lang/arc-ui`](https://github.com/arc-language/arc-ui).\n\n## Install\n\n```bash\nnpm install @arc-lang/arc-cms\narc cms init\n```\n\nThis scaffolds the parts you'll customize and imports the rest live from the package.\n\n**Scaffolded** (copied into your project — yours to edit):\n- `admin/` — admin pages (dashboard, users, groups, pages, blocks, media, settings, profile)\n- `site/cms/CmsLayout.arc`, `site/cms/CmsPageHeader.arc` — chrome widgets (almost every project rebrands these)\n- `site/cms/theme.arc` — brand CSS variables\n- `cms.config.arc` — site-level config\n- `server/cms/` — auth guard + audit log helpers\n- `server/block-types.json` — default block schemas\n\n**Live from package** (imported via `@arc-cms/widgets/...` alias — `npm update` ships bug fixes):\n- `CmsField`, `CmsEmpty`, `CmsConfirm` — atomic widgets that rarely need customization\n\n## Customizing a package-owned widget\n\nUse the alias as-is, or eject one file for local override:\n\n```bash\narc cms eject CmsField\n```\n\nThat copies `CmsField.arc` into `site/cms/widgets/`. The resolver checks `site/cms/widgets/` first, then falls back to the package — so your local copy now wins. Eject only what you need to change; the rest keep tracking the package.\n\n## Branding\n\nAfter `arc cms init`, edit `site/cms/theme.arc`:\n\n```arc\ndesign\n  :root\n    --brand-from: #ff6b00      # gradient start (logo, active states)\n    --brand-to: #ffd60a        # gradient end\n    --brand-accent: #c2410c    # solid accent (links, focus rings)\n```\n\nThat's it. Both the public site and the admin panel pick this up automatically.\narc-ui ships sensible cyan/violet defaults — the admin looks polished out of the box.\n\nFor finer surface control (`--ui-bg`, `--ui-fg`, borders), see the\n[arc-ui Theming guide](https://github.com/arc-language/arc-ui#theming).\n\n## What you get\n\n- Users, groups, role-based access — backed by your existing `User`/`Group` models\n- Page-builder UI — pages are groups of typed blocks, edited via per-type forms (no JSON textareas)\n- Live preview iframe in the block editor\n- Media library with image picker\n- Audit log of every mutation\n- Confirm modals before destructive actions\n- Toast notifications for success/error\n- Server-side route protection for all `/admin/*` paths\n\n## Layout\n\n```\nyour-app/\n  admin/                 # admin pages (scaffolded — yours to customize)\n  site/cms/\n    CmsLayout.arc        # chrome — scaffolded, yours to customize\n    CmsPageHeader.arc    # ditto\n    theme.arc            # brand variables\n    widgets/             # only appears here when you `arc cms eject <Name>`\n  server/block-types.json\n  server/cms/            # auth-guard, audit-log (scaffolded)\n  cms.config.arc         # custom block types, branding\n  node_modules/@arc-lang/arc-cms/  # CmsField, CmsEmpty, CmsConfirm live here\n```\n\nAdmin pages import atomic widgets via the package alias:\n\n```arc\nimport CmsField from \"@arc-cms/widgets/CmsField.arc\"\nimport CmsEmpty from \"@arc-cms/widgets/CmsEmpty.arc\"\n```\n\nThe resolver checks `site/cms/widgets/<Name>.arc` first (eject), then falls back to the package source. Layout widgets stay on local imports because everyone customizes them:\n\n```arc\nimport CmsLayout from \"site/cms/CmsLayout.arc\"\n```\n\n## License\n\nMIT\n","readmeFilename":"README.md"}