{"_id":"@atlfluidart/rulecms-widgets","_rev":"3-b2d3645a7cc4d6f4ee020721e5d22a5e","name":"@atlfluidart/rulecms-widgets","dist-tags":{"latest":"0.2.0"},"versions":{"0.1.0":{"name":"@atlfluidart/rulecms-widgets","version":"0.1.0","keywords":["rulecms","atlfluidart","components","react","cms"],"author":{"name":"RuleCMS, LLC"},"license":"UNLICENSED","_id":"@atlfluidart/rulecms-widgets@0.1.0","maintainers":[{"name":"rulecms","email":"vishal@rulecms.com"}],"dist":{"shasum":"af3501cbde79a30ffbe08ff6a56d6996e35dba95","tarball":"https://registry.npmjs.org/@atlfluidart/rulecms-widgets/-/rulecms-widgets-0.1.0.tgz","fileCount":7,"integrity":"sha512-n4HJinyWHlu+qLOixH8T6zf2RVzddtaEBcjRg+mjGi+LPGdYL5TXCaHfDEGWtdxVdd3nr5b02VZ8zWbP15DzyA==","signatures":[{"sig":"MEUCIQDqb78KF7bmwt9Cc8wvxqXmicqUx1wk906dp8M9n9/y9QIgV9MnGncKjkfAmZYePbVxMj8p73BLVU/H9QjH/8a/CuI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":29227},"main":"dist/index.esm.js","type":"module","types":"dist/index.d.ts","module":"dist/index.esm.js","engines":{"node":">=16.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.esm.js","default":"./dist/index.esm.js","require":"./dist/index.cjs"}},"gitHead":"c33c6eb4c712cb44dae8dbb71c2cc0cdf7672d1c","private":false,"scripts":{"dev":"rollup -c -w","test":"vitest run","build":"rollup -c","release":"npm run test && npm run typecheck && npm run build && npm publish --access public","typecheck":"tsc --noEmit","test:watch":"vitest watch","version:major":"npm version major","version:minor":"npm version minor","version:patch":"npm version patch","prepublishOnly":"npm run test && npm run typecheck && npm run build"},"_npmUser":{"name":"rulecms","email":"vishal@rulecms.com"},"_npmVersion":"10.9.0","description":"ATL Fluid Art's RuleCMS component library (customer zero of the multi-tenant component library architecture)","directories":{},"_nodeVersion":"22.12.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^5.0.0","jsdom":"^25.0.0","react":"^18.0.0","tslib":"^2.0.0","rollup":"^4.0.0","vitest":"^2.1.3","react-dom":"^18.0.0","typescript":"^5.0.0","@types/node":"^22.0.0","@types/react":"^18.0.0","@types/react-dom":"^18.0.0","rollup-plugin-dts":"^6.0.0","@rollup/plugin-json":"^6.0.0","@vitejs/plugin-react":"^4.0.0","@rollup/plugin-terser":"^0.4.0","@rulecms/widget-react":"^15.0.0","@rollup/plugin-commonjs":"^28.0.0","@rollup/plugin-typescript":"^12.0.0","@rollup/plugin-node-resolve":"^15.0.0","rollup-plugin-peer-deps-external":"^2.0.0"},"peerDependencies":{"react":">=16.8.0","react-dom":">=16.8.0"},"_npmOperationalInternal":{"tmp":"tmp/rulecms-widgets_0.1.0_1782948465999_0.6255194543646283","host":"s3://npm-registry-packages-npm-production"},"deprecated":"Renamed to @atlfluidart/rulecms-components"},"0.2.0":{"name":"@atlfluidart/rulecms-widgets","version":"0.2.0","keywords":["rulecms","atlfluidart","components","react","cms"],"author":{"name":"RuleCMS, LLC"},"license":"UNLICENSED","_id":"@atlfluidart/rulecms-widgets@0.2.0","maintainers":[{"name":"rulecms","email":"vishal@rulecms.com"}],"dist":{"shasum":"9c5a99163dbc3cee9d76bdc70da8d9d1601c1bf7","tarball":"https://registry.npmjs.org/@atlfluidart/rulecms-widgets/-/rulecms-widgets-0.2.0.tgz","fileCount":7,"integrity":"sha512-caLImiohGGBHiLNDQqBvg50eLqwKCWLQkl9zQ8FYJ2Kxl6qhByzrR+3kd4b5edLhGWysv2JsI4ZGhnjVQHUiLw==","signatures":[{"sig":"MEYCIQDWsGq8Z0a3bGCO5tEWGq2V//SFtbIEqFKVVTQ74T5TBwIhAMnn4bVRcKXYN/dUmL1UEGF+/duxqfdG8LwFMdnIjHMS","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":26876},"main":"dist/index.esm.js","type":"module","types":"dist/index.d.ts","module":"dist/index.esm.js","engines":{"node":">=16.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.esm.js","default":"./dist/index.esm.js","require":"./dist/index.cjs"}},"gitHead":"46e625f3373fff08abc37c838bb0062815b0c13a","private":false,"scripts":{"dev":"rollup -c -w","lint":"eslint .","test":"vitest run","build":"rollup -c","release":"npm run test && npm run lint && npm run typecheck && npm run build && npm publish --access public","typecheck":"tsc --noEmit","test:watch":"vitest watch","version:major":"npm version major","version:minor":"npm version minor","version:patch":"npm version patch","prepublishOnly":"npm run test && npm run lint && npm run typecheck && npm run build"},"_npmUser":{"name":"rulecms","email":"vishal@rulecms.com"},"_npmVersion":"10.9.0","description":"ATL Fluid Art's RuleCMS component library (customer zero of the multi-tenant component library architecture)","directories":{},"_nodeVersion":"22.12.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^5.0.0","jsdom":"^25.0.0","react":"^18.0.0","tslib":"^2.0.0","eslint":"^9.39.5","rollup":"^4.0.0","vitest":"^2.1.3","globals":"^17.7.0","react-dom":"^18.0.0","@eslint/js":"^9.39.5","typescript":"^5.0.0","@types/node":"^22.0.0","@types/react":"^18.0.0","@types/react-dom":"^18.0.0","rollup-plugin-dts":"^6.0.0","@rollup/plugin-json":"^6.0.0","eslint-plugin-react":"^7.37.5","@vitejs/plugin-react":"^4.0.0","@rollup/plugin-terser":"^0.4.0","@rulecms/widget-react":"^15.2.0","@rollup/plugin-commonjs":"^28.0.0","@rollup/plugin-typescript":"^12.0.0","@typescript-eslint/parser":"^8.64.0","eslint-plugin-react-hooks":"^7.1.1","@rollup/plugin-node-resolve":"^15.0.0","@typescript-eslint/eslint-plugin":"^8.64.0","rollup-plugin-peer-deps-external":"^2.0.0"},"peerDependencies":{"react":">=16.8.0","react-dom":">=16.8.0"},"_npmOperationalInternal":{"tmp":"tmp/rulecms-widgets_0.2.0_1784138361351_0.2613495201726579","host":"s3://npm-registry-packages-npm-production"},"deprecated":"Renamed to @atlfluidart/rulecms-components"}},"time":{"created":"2026-07-01T23:27:45.860Z","modified":"2026-07-16T03:15:32.751Z","0.1.0":"2026-07-01T23:27:46.167Z","0.2.0":"2026-07-15T17:59:21.495Z"},"author":{"name":"RuleCMS, LLC"},"license":"UNLICENSED","keywords":["rulecms","atlfluidart","components","react","cms"],"description":"ATL Fluid Art's RuleCMS component library (customer zero of the multi-tenant component library architecture)","maintainers":[{"name":"rulecms","email":"vishal@rulecms.com"}],"readme":"# @atlfluidart/rulecms-widgets\n\nATL Fluid Art's RuleCMS component library — the first customer library\n(\"customer zero\") built on the `@rulecms/widget-react` v15 multi-tenant\ncomponent library contract, and the reference implementation for library\nauthors.\n\n## What this is\n\nA separately versioned React component library that RuleCMS widgets can\nreference per component via `libraryId: \"atlfluidart\"`. It conforms to\nwidget-react's `ComponentLibraryModule` contract **structurally** — no\ndependency on `@rulecms/widget-react` (a devDependency-only type test\nguarantees the shape).\n\n## Components\n\n| Type | Description |\n|---|---|\n| `coming-soon-message` | Centered, padded announcement text (CMS-editable via `content-text-3-resolutions`; defaults to \"New Experiences coming soon\") |\n\n## Usage (consumer app)\n\n```tsx\nimport * as atlfluidartWidgets from '@atlfluidart/rulecms-widgets';\n\n<RuleCMSWidgetProvider\n  token={token}\n  libraries={{\n    default: sourceComponents,          // @rulecms/source-components-react\n    atlfluidart: atlfluidartWidgets,    // eager (SSR) — or a thunk to code-split\n  }}\n>\n```\n\nA widget config references a component from this library as:\n\n```jsonc\n{ \"id\": \"col-1\", \"type\": \"coming-soon-message\", \"libraryId\": \"atlfluidart\" }\n```\n\n## Library-author conventions demonstrated here\n\n- `manifest` / `components` / `editor` top-level exports (module namespace IS\n  the `ComponentLibraryModule`).\n- React/react-dom externalized (peer dependencies) — never bundled.\n- Kebab-case component type ids; CMS attributes use the\n  `-3-resolutions` convention (`content-text-3-resolutions`, standard\n  dimension and `hide-widget` attributes).\n- Render surface (`components`) carries no editor-only configuration; the\n  optional `editor` surface provides palette previews and attribute metadata\n  for the RuleCMS composer.\n\n## Scripts\n\n- `npm test` — contract conformance + Node SSR render tests (including an\n  end-to-end render through `@rulecms/widget-react` with the namespaced\n  `libraryId`).\n- `npm run lint` — ESLint (flat config).\n- `npm run typecheck` — `tsc --noEmit`.\n- `npm run build` — rollup → `dist/` (ESM + CJS + d.ts).\n- `npm run version:patch|minor|major` — bump package version (creates version commit + tag).\n- `npm run release` — test + lint + typecheck + build + publish (**user-run only**).\n\n## Publishing\n\nQuality gates before any version bump:\n\n```bash\nnpm run test && npm run lint && npm run typecheck && npm run build\n```\n\nBump the version (agent or maintainer):\n\n```bash\n# Patch (0.1.0 → 0.1.1) — bug fix, no API change\nnpm run version:patch\n\n# Minor (0.1.0 → 0.2.0) — new component / backward-compatible feature\nnpm run version:minor\n\n# Major (0.1.0 → 1.0.0) — breaking change\nnpm run version:major\n```\n\nPublish (**user only** — requires npm auth):\n\n```bash\nnpm run release\ngit push && git push --tags\n```\n\nCross-repo releases that also touch `@rulecms/source-components-react` /\n`@rulecms/widget-react` follow\n`../Workflow - RuleCMS packages upgrade across repos.md`.\n","readmeFilename":"README.md"}