@airdraft/react-content 0.1.4 → 0.1.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -2,6 +2,15 @@
2
2
 
3
3
  All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines.
4
4
 
5
+ ### [0.1.6](https://github.com/aevrHQ/airdraft/compare/v0.1.5...v0.1.6) (2026-05-23)
6
+
7
+ ### [0.1.5](https://github.com/aevrHQ/airdraft/compare/v0.1.4...v0.1.5) (2026-05-23)
8
+
9
+
10
+ ### Features
11
+
12
+ * **types:** add asCollectionConfig function for casting schema objects ([f5bcaaf](https://github.com/aevrHQ/airdraft/commit/f5bcaafa42fb43d749c89dfe7e7b075adcd18474))
13
+
5
14
  ### [0.1.4](https://github.com/aevrHQ/airdraft/compare/v0.1.3...v0.1.4) (2026-05-23)
6
15
 
7
16
 
@@ -1,4 +1,4 @@
1
- import type { ReactNode, ComponentProps } from 'react';
1
+ import { type ReactNode, type ComponentProps } from 'react';
2
2
  import type { Entry } from '@airdraft/core';
3
3
  import { type ExpandedAuthor } from '../fields/AuthorByline.js';
4
4
  interface PostData {
@@ -37,7 +37,7 @@ export interface PostDetailProps extends ComponentProps<'article'> {
37
37
  *
38
38
  * RSC-compatible — no `"use client"`.
39
39
  */
40
- export declare function PostDetail({ post, bodyType, renderBody, className, ...rest }: PostDetailProps): ReactNode;
40
+ export declare function PostDetail({ post, bodyType, renderBody, className, children, ...rest }: PostDetailProps): ReactNode;
41
41
  export declare namespace PostDetail {
42
42
  var Root: ({ className, children }: {
43
43
  className?: string;
@@ -1 +1 @@
1
- {"version":3,"file":"PostDetail.d.ts","sourceRoot":"","sources":["../../src/blog/PostDetail.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,OAAO,CAAA;AACtD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAA;AAK3C,OAAO,EAAgB,KAAK,cAAc,EAAE,MAAM,2BAA2B,CAAA;AAM7E,UAAU,QAAQ;IAChB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,WAAW,CAAC,EAAE;QAAE,GAAG,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,CAAA;IAC/D,IAAI,CAAC,EAAE,MAAM,EAAE,CAAA;IACf,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,cAAc,EAAE,CAAA;IAC9C,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;CACvB;AAED,KAAK,SAAS,GAAG,KAAK,CAAC,QAAQ,CAAC,CAAA;AAqChC,iBAAS,QAAQ,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,2CAS7E;AAMD,MAAM,WAAW,eAAgB,SAAQ,cAAc,CAAC,SAAS,CAAC;IAChE,IAAI,EAAE,SAAS,CAAA;IACf,kEAAkE;IAClE,QAAQ,CAAC,EAAE,MAAM,GAAG,WAAW,CAAA;IAC/B,2CAA2C;IAC3C,UAAU,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,SAAS,CAAA;CACzC;AAED;;;;;;;GAOG;AACH,wBAAgB,UAAU,CAAC,EAAE,IAAI,EAAE,QAAsB,EAAE,UAAU,EAAE,SAAS,EAAE,GAAG,IAAI,EAAE,EAAE,eAAe,GAAG,SAAS,CAYvH;yBAZe,UAAU;wCA9Da;QAAE,SAAS,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,SAAS,CAAA;KAAE;qCAI/C;QAAE,IAAI,EAAE,SAAS,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE;0CAIlC;QAAE,SAAS,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,SAAS,CAAA;KAAE;mDASlF;QACD,IAAI,EAAE,SAAS,CAAA;QACf,IAAI,CAAC,EAAE,MAAM,GAAG,WAAW,CAAA;QAC3B,SAAS,CAAC,EAAE,MAAM,CAAA;QAClB,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,SAAS,CAAA;KACrC;kDAKgD;QAAE,IAAI,EAAE,SAAS,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,CAAC;QAAC,YAAY,CAAC,EAAE,MAAM,CAAA;KAAE"}
1
+ {"version":3,"file":"PostDetail.d.ts","sourceRoot":"","sources":["../../src/blog/PostDetail.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,SAAS,EAAE,KAAK,cAAc,EAA0C,MAAM,OAAO,CAAA;AACnG,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAA;AAK3C,OAAO,EAAgB,KAAK,cAAc,EAAE,MAAM,2BAA2B,CAAA;AAM7E,UAAU,QAAQ;IAChB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,WAAW,CAAC,EAAE;QAAE,GAAG,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,CAAA;IAC/D,IAAI,CAAC,EAAE,MAAM,EAAE,CAAA;IACf,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,cAAc,EAAE,CAAA;IAC9C,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;CACvB;AAED,KAAK,SAAS,GAAG,KAAK,CAAC,QAAQ,CAAC,CAAA;AAqChC,iBAAS,QAAQ,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,2CAS7E;AAMD,MAAM,WAAW,eAAgB,SAAQ,cAAc,CAAC,SAAS,CAAC;IAChE,IAAI,EAAE,SAAS,CAAA;IACf,kEAAkE;IAClE,QAAQ,CAAC,EAAE,MAAM,GAAG,WAAW,CAAA;IAC/B,2CAA2C;IAC3C,UAAU,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,SAAS,CAAA;CACzC;AAED;;;;;;;GAOG;AACH,wBAAgB,UAAU,CAAC,EAAE,IAAI,EAAE,QAAsB,EAAE,UAAU,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,IAAI,EAAE,EAAE,eAAe,GAAG,SAAS,CAkBjI;yBAlBe,UAAU;wCA9Da;QAAE,SAAS,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,SAAS,CAAA;KAAE;qCAI/C;QAAE,IAAI,EAAE,SAAS,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE;0CAIlC;QAAE,SAAS,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,SAAS,CAAA;KAAE;mDASlF;QACD,IAAI,EAAE,SAAS,CAAA;QACf,IAAI,CAAC,EAAE,MAAM,GAAG,WAAW,CAAA;QAC3B,SAAS,CAAC,EAAE,MAAM,CAAA;QAClB,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,SAAS,CAAA;KACrC;kDAKgD;QAAE,IAAI,EAAE,SAAS,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,CAAC;QAAC,YAAY,CAAC,EAAE,MAAM,CAAA;KAAE"}
@@ -1,4 +1,5 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { Children, cloneElement, isValidElement } from 'react';
2
3
  import { ImageField } from '../fields/ImageField.js';
3
4
  import { BodyField } from '../fields/BodyField.js';
4
5
  import { TagList } from '../fields/TagList.js';
@@ -35,7 +36,11 @@ function PostMeta({ post, className }) {
35
36
  *
36
37
  * RSC-compatible — no `"use client"`.
37
38
  */
38
- export function PostDetail({ post, bodyType = 'rich-text', renderBody, className, ...rest }) {
39
+ export function PostDetail({ post, bodyType = 'rich-text', renderBody, className, children, ...rest }) {
40
+ if (children !== undefined) {
41
+ const injected = Children.map(children, (child) => isValidElement(child) ? cloneElement(child, { post }) : child);
42
+ return _jsx("article", { className: className, ...rest, children: injected });
43
+ }
39
44
  return (_jsxs("article", { className: className, ...rest, children: [_jsx(Cover, { post: post }), _jsxs(Header, { children: [post.data.title && _jsx("h1", { children: post.data.title }), _jsx(PostMeta, { post: post })] }), _jsx(Body, { post: post, type: bodyType, render: renderBody }), _jsx(Tags, { post: post })] }));
40
45
  }
41
46
  PostDetail.Root = Root;
@@ -1 +1 @@
1
- {"version":3,"file":"PostDetail.js","sourceRoot":"","sources":["../../src/blog/PostDetail.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"PostDetail.js","sourceRoot":"","sources":["../../src/blog/PostDetail.tsx"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@airdraft/react-content",
3
- "version": "0.1.4",
3
+ "version": "0.1.6",
4
4
  "description": "Airdraft React components for rendering CMS content — field atoms, entry cards, and blog recipes",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",