@atlfluidart/rulecms-widgets
v0.1.0
Published
ATL Fluid Art's RuleCMS component library (customer zero of the multi-tenant component library architecture)
Maintainers
Readme
@atlfluidart/rulecms-widgets
ATL Fluid Art's RuleCMS component library — the first customer library
("customer zero") built on the @rulecms/widget-react v15 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 atlfluidartWidgets from '@atlfluidart/rulecms-widgets';
<RuleCMSWidgetProvider
token={token}
libraries={{
default: sourceComponents, // @rulecms/source-components-react
atlfluidart: atlfluidartWidgets, // 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-widgetattributes). - Render surface (
components) carries no editor-only configuration; the optionaleditorsurface provides palette previews 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 build— rollup →dist/(ESM + CJS + d.ts).npm run release— test + typecheck + build + publish (user-run).
