@atlfluidart/rulecms-components
v0.6.9
Published
ATL Fluid Art's RuleCMS component library (customer zero of the multi-tenant component library architecture)
Maintainers
Readme
@atlfluidart/rulecms-components
ATL Fluid Art's RuleCMS component library — the first customer library
("customer zero") built on the @rulecms/widget-react v16 multi-tenant
component library contract, and the reference implementation for library
authors.
What this is
A separately versioned React component library that RuleCMS widgets can
reference per component via libraryId: "atlfluidart". It conforms to
widget-react's ComponentLibraryModule contract structurally — no
dependency on @rulecms/widget-react (a devDependency-only type test
guarantees the shape).
Components
| Type | Description |
|---|---|
| coming-soon-message | Centered, padded announcement text (CMS-editable via content-text-3-resolutions; defaults to "New Experiences coming soon") |
Usage (consumer app)
import * as atlfluidartComponents from '@atlfluidart/rulecms-components';
<RuleCMSWidgetProvider
token={token}
libraries={{
default: sourceComponents, // @rulecms/source-components-react
atlfluidart: atlfluidartComponents, // eager (SSR) — or a thunk to code-split
}}
>A widget config references a component from this library as:
{ "id": "col-1", "type": "coming-soon-message", "libraryId": "atlfluidart" }Library-author conventions demonstrated here
manifest/components/editortop-level exports (module namespace IS theComponentLibraryModule).- React/react-dom externalized (peer dependencies) — never bundled.
- Kebab-case component type ids; CMS attributes use the
-3-resolutionsconvention (content-text-3-resolutions, standard dimension andhide-componentattributes). - Render surface (
components) carries no editor-only configuration; the optionaleditorsurface provides structured palette entries ({ id, icon, label }— the composer owns the card template) and attribute metadata for the RuleCMS composer.
Scripts
npm test— contract conformance + Node SSR render tests (including an end-to-end render through@rulecms/widget-reactwith the namespacedlibraryId).npm run lint— ESLint (flat config).npm run typecheck—tsc --noEmit.npm run build— rollup →dist/(ESM + CJS + d.ts).npm run version:patch|minor|major— bump package version (creates version commit + tag).npm run release— local emergency publish only. Normal releases push av*tag and let GitHub Actions publish.
Publishing
Quality gates before any version bump:
npm run test && npm run lint && npm run typecheck && npm run buildBump the version (agent or maintainer):
# Patch (0.1.0 → 0.1.1) — bug fix, no API change
npm run version:patch
# Minor (0.1.0 → 0.2.0) — new component / backward-compatible feature
npm run version:minor
# Major (0.1.0 → 1.0.0) — breaking change
npm run version:majorPublish by pushing the version tag. GitHub Actions publishes via trusted
publishing (.github/workflows/publish.yml). Do not run npm publish locally.
git push && git push --tags
npm view @atlfluidart/rulecms-components versionCross-repo releases that also touch @rulecms/source-components-react /
@rulecms/widget-react follow
rulecms/__docs__/__RUNBOOKS__/RUNBOOK_rulecms-packages-upgrade-across-repos.md.
