tinacms 0.0.0-ea9b54c-20241003003029 → 0.0.0-eaa6ed5-20250729073245

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.
Files changed (165) hide show
  1. package/README.md +1 -1
  2. package/dist/admin/api.d.ts +4 -0
  3. package/dist/admin/components/GetCollection.d.ts +2 -2
  4. package/dist/admin/components/Page.d.ts +3 -9
  5. package/dist/admin/components/Sidebar.d.ts +0 -3
  6. package/dist/admin/components/ui/tooltip.d.ts +7 -0
  7. package/dist/admin/pages/CollectionCreatePage.d.ts +1 -1
  8. package/dist/admin/pages/CollectionListPage.d.ts +2 -2
  9. package/dist/admin/pages/DashboardPage.d.ts +0 -3
  10. package/dist/admin/pages/ScreenPage.d.ts +0 -3
  11. package/dist/admin/types.d.ts +3 -0
  12. package/dist/auth/TinaCloudProvider.d.ts +1 -1
  13. package/dist/cache/node-cache.d.ts +1 -0
  14. package/dist/client.js +101 -63
  15. package/dist/client.mjs +60 -37
  16. package/dist/hooks/create-page-plugin.d.ts +1 -1
  17. package/dist/index.d.ts +1 -1
  18. package/dist/index.js +103860 -14415
  19. package/dist/index.mjs +103843 -14394
  20. package/dist/internalClient/index.d.ts +28 -3
  21. package/dist/node-cache-5e8db9f0.mjs +63 -0
  22. package/dist/react.d.ts +14 -6
  23. package/dist/react.js +73 -53
  24. package/dist/react.mjs +73 -53
  25. package/dist/rich-text/index.d.ts +3 -0
  26. package/dist/rich-text/index.js +54 -15
  27. package/dist/rich-text/index.mjs +54 -15
  28. package/dist/rich-text/prism.js +1 -1
  29. package/dist/rich-text/prism.mjs +1 -1
  30. package/dist/rich-text/static.d.ts +148 -0
  31. package/dist/rich-text/static.js +239 -0
  32. package/dist/rich-text/static.mjs +236 -0
  33. package/dist/toolkit/components/ProgressBar.d.ts +11 -0
  34. package/dist/toolkit/components/media/media-item.d.ts +1 -1
  35. package/dist/toolkit/components/media/media-manager.d.ts +1 -1
  36. package/dist/toolkit/components/ui/breadcrumb.d.ts +11 -0
  37. package/dist/toolkit/components/ui/dropdown-menu.d.ts +25 -0
  38. package/dist/toolkit/fields/components/password-field.d.ts +1 -1
  39. package/dist/toolkit/fields/components/reference/components/button.d.ts +2 -2
  40. package/dist/toolkit/fields/components/reference/components/command.d.ts +21 -33
  41. package/dist/toolkit/fields/components/reference/components/popover.d.ts +1 -1
  42. package/dist/toolkit/fields/components/reference/model/reference-link-props.d.ts +2 -0
  43. package/dist/toolkit/fields/components/reference/reference-select.d.ts +2 -2
  44. package/dist/toolkit/fields/components/select.d.ts +2 -2
  45. package/dist/toolkit/fields/components/text-field.d.ts +1 -1
  46. package/dist/toolkit/fields/plugins/group-field-plugin.d.ts +1 -1
  47. package/dist/toolkit/fields/plugins/group-list-field-plugin.d.ts +1 -0
  48. package/dist/toolkit/fields/plugins/list-field-meta.d.ts +1 -1
  49. package/dist/toolkit/fields/plugins/list-field-plugin.d.ts +1 -0
  50. package/dist/toolkit/fields/plugins/mdx-field-plugin/index.d.ts +5 -2
  51. package/dist/toolkit/fields/plugins/mdx-field-plugin/plate/components/editor.d.ts +20 -18
  52. package/dist/toolkit/fields/plugins/mdx-field-plugin/plate/components/fixed-toolbar-buttons.d.ts +0 -4
  53. package/dist/toolkit/fields/plugins/mdx-field-plugin/plate/components/plate-ui/blockquote-element.d.ts +14 -10
  54. package/dist/toolkit/fields/plugins/mdx-field-plugin/plate/components/plate-ui/button.d.ts +3 -3
  55. package/dist/toolkit/fields/plugins/mdx-field-plugin/plate/components/plate-ui/code-block/code-block-element.d.ts +17 -0
  56. package/dist/toolkit/fields/plugins/mdx-field-plugin/plate/components/plate-ui/code-block/error-message.d.ts +6 -0
  57. package/dist/toolkit/fields/plugins/mdx-field-plugin/plate/components/plate-ui/code-block-combobox.d.ts +6 -0
  58. package/dist/toolkit/fields/plugins/mdx-field-plugin/plate/components/plate-ui/code-block-toolbar-button.d.ts +6 -6
  59. package/dist/toolkit/fields/plugins/mdx-field-plugin/plate/components/plate-ui/code-leaf.d.ts +2 -11
  60. package/dist/toolkit/fields/plugins/mdx-field-plugin/plate/components/plate-ui/code-line-element.d.ts +14 -10
  61. package/dist/toolkit/fields/plugins/mdx-field-plugin/plate/components/plate-ui/code-syntax-leaf.d.ts +2 -11
  62. package/dist/toolkit/fields/plugins/mdx-field-plugin/plate/components/plate-ui/command.d.ts +112 -0
  63. package/dist/toolkit/fields/plugins/mdx-field-plugin/plate/components/plate-ui/dialog.d.ts +12 -0
  64. package/dist/toolkit/fields/plugins/mdx-field-plugin/plate/components/plate-ui/dropdown-menu.d.ts +10 -10
  65. package/dist/toolkit/fields/plugins/mdx-field-plugin/plate/components/plate-ui/floating-toolbar.d.ts +2 -2
  66. package/dist/toolkit/fields/plugins/mdx-field-plugin/plate/components/plate-ui/hr-element.d.ts +3 -0
  67. package/dist/toolkit/fields/plugins/mdx-field-plugin/plate/components/plate-ui/hr-toolbar-button.d.ts +18 -0
  68. package/dist/toolkit/fields/plugins/mdx-field-plugin/plate/components/plate-ui/icons.d.ts +4 -1
  69. package/dist/toolkit/fields/plugins/mdx-field-plugin/plate/components/plate-ui/image-toolbar-button.d.ts +6 -6
  70. package/dist/toolkit/fields/plugins/mdx-field-plugin/plate/components/plate-ui/indent-list-toolbar-button.d.ts +6 -7
  71. package/dist/toolkit/fields/plugins/mdx-field-plugin/plate/components/plate-ui/inline-combobox.d.ts +1 -1
  72. package/dist/toolkit/fields/plugins/mdx-field-plugin/plate/components/plate-ui/input.d.ts +3 -3
  73. package/dist/toolkit/fields/plugins/mdx-field-plugin/plate/components/plate-ui/link-element.d.ts +4 -11
  74. package/dist/toolkit/fields/plugins/mdx-field-plugin/plate/components/plate-ui/link-floating-toolbar.d.ts +4 -5
  75. package/dist/toolkit/fields/plugins/mdx-field-plugin/plate/components/plate-ui/link-toolbar-button.d.ts +4 -4
  76. package/dist/toolkit/fields/plugins/mdx-field-plugin/plate/components/plate-ui/list-element.d.ts +28 -11
  77. package/dist/toolkit/fields/plugins/mdx-field-plugin/plate/components/plate-ui/mark-toolbar-button.d.ts +4 -18
  78. package/dist/toolkit/fields/plugins/mdx-field-plugin/plate/components/plate-ui/mermaid-element.d.ts +4 -0
  79. package/dist/toolkit/fields/plugins/mdx-field-plugin/plate/components/plate-ui/mermaid-toolbar-button.d.ts +18 -0
  80. package/dist/toolkit/fields/plugins/mdx-field-plugin/plate/components/plate-ui/paragraph-element.d.ts +15 -0
  81. package/dist/toolkit/fields/plugins/mdx-field-plugin/plate/components/plate-ui/popover.d.ts +7 -2
  82. package/dist/toolkit/fields/plugins/mdx-field-plugin/plate/components/plate-ui/quote-toolbar-button.d.ts +6 -6
  83. package/dist/toolkit/fields/plugins/mdx-field-plugin/plate/components/plate-ui/raw-markdown-toolbar-button.d.ts +6 -6
  84. package/dist/toolkit/fields/plugins/mdx-field-plugin/plate/components/plate-ui/resizable.d.ts +42 -0
  85. package/dist/toolkit/fields/plugins/mdx-field-plugin/plate/components/plate-ui/separator.d.ts +2 -2
  86. package/dist/toolkit/fields/plugins/mdx-field-plugin/plate/components/plate-ui/slash-input-element.d.ts +15 -11
  87. package/dist/toolkit/fields/plugins/mdx-field-plugin/plate/components/plate-ui/table/block-selection.d.ts +6 -0
  88. package/dist/toolkit/fields/plugins/mdx-field-plugin/plate/components/plate-ui/table/table-cell-element.d.ts +33 -0
  89. package/dist/toolkit/fields/plugins/mdx-field-plugin/plate/components/plate-ui/table/table-dropdown-menu.d.ts +4 -0
  90. package/dist/toolkit/fields/plugins/mdx-field-plugin/plate/components/plate-ui/table/table-element.d.ts +20 -0
  91. package/dist/toolkit/fields/plugins/mdx-field-plugin/plate/components/plate-ui/table/table-row-element.d.ts +15 -0
  92. package/dist/toolkit/fields/plugins/mdx-field-plugin/plate/components/plate-ui/text-area.d.ts +5 -0
  93. package/dist/toolkit/fields/plugins/mdx-field-plugin/plate/components/plate-ui/toolbar.d.ts +7 -7
  94. package/dist/toolkit/fields/plugins/mdx-field-plugin/plate/components/plate-ui/use-floating-toolbar-hook.d.ts +10 -0
  95. package/dist/toolkit/fields/plugins/mdx-field-plugin/plate/components/plate-ui/use-floating-toolbar-state.d.ts +22 -0
  96. package/dist/toolkit/fields/plugins/mdx-field-plugin/plate/hooks/use-create-editor.d.ts +6 -0
  97. package/dist/toolkit/fields/plugins/mdx-field-plugin/plate/index.d.ts +1 -1
  98. package/dist/toolkit/fields/plugins/mdx-field-plugin/plate/plugins/core/autoformat/autoformat-block.d.ts +1 -1
  99. package/dist/toolkit/fields/plugins/mdx-field-plugin/plate/plugins/core/autoformat/autoformat-lists.d.ts +1 -1
  100. package/dist/toolkit/fields/plugins/mdx-field-plugin/plate/plugins/core/autoformat/autoformat-marks.d.ts +1 -1
  101. package/dist/toolkit/fields/plugins/mdx-field-plugin/plate/plugins/core/autoformat/autoformat-utils.d.ts +3 -5
  102. package/dist/toolkit/fields/plugins/mdx-field-plugin/plate/plugins/core/common.d.ts +12 -6
  103. package/dist/toolkit/fields/plugins/mdx-field-plugin/plate/plugins/core/formatting.d.ts +18 -2
  104. package/dist/toolkit/fields/plugins/mdx-field-plugin/plate/plugins/core/index.d.ts +0 -1
  105. package/dist/toolkit/fields/plugins/mdx-field-plugin/plate/plugins/create-html-block/index.d.ts +6 -0
  106. package/dist/toolkit/fields/plugins/mdx-field-plugin/plate/plugins/create-img-plugin/index.d.ts +2 -2
  107. package/dist/toolkit/fields/plugins/mdx-field-plugin/plate/plugins/create-invalid-markdown-plugin/index.d.ts +5 -5
  108. package/dist/toolkit/fields/plugins/mdx-field-plugin/plate/plugins/create-mdx-plugins/component.d.ts +7 -4
  109. package/dist/toolkit/fields/plugins/mdx-field-plugin/plate/plugins/create-mdx-plugins/index.d.ts +3 -5
  110. package/dist/toolkit/fields/plugins/mdx-field-plugin/plate/plugins/editor-plugins.d.ts +520 -0
  111. package/dist/toolkit/fields/plugins/mdx-field-plugin/plate/plugins/ui/components.d.ts +264 -156
  112. package/dist/toolkit/fields/plugins/mdx-field-plugin/plate/plugins/ui/floating-toolbar-plugin.d.ts +1 -0
  113. package/dist/toolkit/fields/plugins/mdx-field-plugin/plate/toolbar/toolbar-overrides.d.ts +11 -3
  114. package/dist/toolkit/fields/plugins/mdx-field-plugin/plate/toolbar/toolbar-provider.d.ts +3 -3
  115. package/dist/toolkit/fields/plugins/mdx-field-plugin/plate/transforms/is-url.d.ts +1 -2
  116. package/dist/toolkit/fields/plugins/wrap-field-with-meta.d.ts +8 -0
  117. package/dist/toolkit/form-builder/editorial-workflow-constants.d.ts +17 -0
  118. package/dist/toolkit/form-builder/fields-builder.d.ts +1 -1
  119. package/dist/toolkit/form-builder/form-builder.d.ts +15 -5
  120. package/dist/toolkit/forms/field.d.ts +3 -0
  121. package/dist/toolkit/forms/form.d.ts +22 -3
  122. package/dist/toolkit/git-client/git-client.d.ts +25 -2
  123. package/dist/toolkit/git-client/git-file.d.ts +18 -0
  124. package/dist/toolkit/git-client/git-media-store.d.ts +13 -0
  125. package/dist/toolkit/git-client/use-git-file.d.ts +4 -0
  126. package/dist/toolkit/icons/Tina.d.ts +0 -5
  127. package/dist/toolkit/index.d.ts +1 -1
  128. package/dist/toolkit/plugin-branch-switcher/branch-button.d.ts +1 -0
  129. package/dist/toolkit/plugin-branch-switcher/branch-switcher-legacy.d.ts +1 -1
  130. package/dist/toolkit/plugin-branch-switcher/branch-switcher.d.ts +1 -1
  131. package/dist/toolkit/plugin-branch-switcher/index.d.ts +0 -1
  132. package/dist/toolkit/react-cloud-config/cloud-config-plugin.d.ts +3 -3
  133. package/dist/toolkit/react-sidebar/components/VersionInfo.d.ts +2 -0
  134. package/dist/toolkit/react-sidebar/components/alert.d.ts +5 -0
  135. package/dist/toolkit/react-sidebar/components/form-list.d.ts +1 -1
  136. package/dist/toolkit/react-sidebar/components/nav.d.ts +6 -3
  137. package/dist/toolkit/react-sidebar/components/resize-handle.d.ts +0 -5
  138. package/dist/toolkit/react-sidebar/components/sidebar-body.d.ts +7 -10
  139. package/dist/toolkit/react-sidebar/components/sidebar-loading-placeholder.d.ts +2 -0
  140. package/dist/toolkit/react-sidebar/components/sidebar-no-forms-placeholder.d.ts +2 -0
  141. package/dist/toolkit/react-sidebar/components/sidebar.d.ts +0 -7
  142. package/dist/toolkit/react-sidebar/components/sync-status.d.ts +5 -8
  143. package/dist/toolkit/react-sidebar/index.d.ts +1 -1
  144. package/dist/toolkit/react-sidebar/sidebar.d.ts +2 -2
  145. package/dist/toolkit/styles/button.d.ts +2 -2
  146. package/dist/toolkit/tina-cms.d.ts +3 -3
  147. package/dist/toolkit/tina-state.d.ts +15 -0
  148. package/dist/unifiedClient/index.d.ts +8 -1
  149. package/dist/utils/cn.d.ts +2 -0
  150. package/package.json +75 -60
  151. package/dist/__vite-browser-external-d06ac358.mjs +0 -4
  152. package/dist/admin/pages/IndexingPage.d.ts +0 -2
  153. package/dist/node-cache-7fa2452c.mjs +0 -43
  154. package/dist/toolkit/fields/plugins/mdx-field-plugin/plate/components/plate-ui/code-block-element.d.ts +0 -11
  155. package/dist/toolkit/fields/plugins/mdx-field-plugin/plate/plugins/core/with-correct-void-behavior.d.ts +0 -8
  156. package/dist/toolkit/fields/plugins/mdx-field-plugin/plate/plugins/create-code-block/index.d.ts +0 -3
  157. package/dist/toolkit/fields/plugins/mdx-field-plugin/plate/plugins/create-link-plugin/index.d.ts +0 -15
  158. package/dist/toolkit/fields/plugins/mdx-field-plugin/plate/plugins/soft-break/create-soft-break-plugin.d.ts +0 -7
  159. package/dist/toolkit/fields/plugins/mdx-field-plugin/plate/plugins/soft-break/index.d.ts +0 -6
  160. package/dist/toolkit/fields/plugins/mdx-field-plugin/plate/plugins/soft-break/on-key-down-soft-break.d.ts +0 -5
  161. package/dist/toolkit/fields/plugins/mdx-field-plugin/plate/plugins/soft-break/types.d.ts +0 -11
  162. package/dist/toolkit/fields/plugins/mdx-field-plugin/plate/plugins/ui/code-block/index.d.ts +0 -9
  163. package/dist/toolkit/fields/plugins/mdx-field-plugin/plate/transforms/insert-empty-block.d.ts +0 -2
  164. package/dist/toolkit/plugin-branch-switcher/branch-banner.d.ts +0 -2
  165. package/dist/toolkit/react-sidebar/components/no-forms-placeholder.d.ts +0 -8
@@ -69,7 +69,7 @@ const MemoNode = (props) => {
69
69
  return MNode;
70
70
  };
71
71
  const Node = ({ components, child }) => {
72
- var _a, _b, _c, _d, _e, _f;
72
+ var _a, _b, _c, _d, _e, _f, _g;
73
73
  const { children, ...props } = child;
74
74
  switch (child.type) {
75
75
  case "h1":
@@ -114,16 +114,24 @@ const Node = ({ components, child }) => {
114
114
  // @ts-ignore FIXME: TinaMarkdownContent needs to be a union of all possible node types
115
115
  /* @__PURE__ */ React.createElement("a", { href: child.url }, /* @__PURE__ */ React.createElement(TinaMarkdown, { components, content: children }))
116
116
  );
117
- case "code_block":
118
- const value = child.value;
117
+ case "code_block": {
118
+ let codeString = "";
119
+ if (Array.isArray(child.children)) {
120
+ codeString = child.children.map(
121
+ (line) => Array.isArray(line.children) ? line.children.map((t) => t.text).join("") : ""
122
+ ).join("\n");
123
+ } else if (typeof child.value === "string") {
124
+ codeString = child.value;
125
+ }
119
126
  if (components[child.type]) {
120
127
  const Component2 = components[child.type];
121
128
  return (
122
129
  // @ts-ignore FIXME: TinaMarkdownContent needs to be a union of all possible node types
123
- /* @__PURE__ */ React.createElement(Component2, { ...props })
130
+ /* @__PURE__ */ React.createElement(Component2, { ...props, value: codeString })
124
131
  );
125
132
  }
126
- return /* @__PURE__ */ React.createElement("pre", null, /* @__PURE__ */ React.createElement("code", null, value));
133
+ return /* @__PURE__ */ React.createElement("pre", null, /* @__PURE__ */ React.createElement("code", null, codeString));
134
+ }
127
135
  case "hr":
128
136
  if (components[child.type]) {
129
137
  const Component2 = components[child.type];
@@ -147,33 +155,33 @@ const Node = ({ components, child }) => {
147
155
  } else {
148
156
  if (child.name === "table") {
149
157
  const firstRowHeader = (_a = child.props) == null ? void 0 : _a.firstRowHeader;
150
- const rows = (firstRowHeader ? (_b = child.props) == null ? void 0 : _b.tableRows.filter((_, i) => i !== 0) : (_c = child.props) == null ? void 0 : _c.tableRows) || [];
158
+ const rows2 = (firstRowHeader ? (_b = child.props) == null ? void 0 : _b.tableRows.filter((_, i) => i !== 0) : (_c = child.props) == null ? void 0 : _c.tableRows) || [];
151
159
  const header = (_e = (_d = child.props) == null ? void 0 : _d.tableRows) == null ? void 0 : _e.at(0);
152
- const TableComponent = components["table"] || ((props2) => /* @__PURE__ */ React.createElement("table", { ...props2 }));
153
- const TrComponent = components["tr"] || ((props2) => /* @__PURE__ */ React.createElement("tr", { ...props2 }));
160
+ const TableComponent2 = components["table"] || ((props2) => /* @__PURE__ */ React.createElement("table", { ...props2 }));
161
+ const TrComponent2 = components["tr"] || ((props2) => /* @__PURE__ */ React.createElement("tr", { ...props2 }));
154
162
  const ThComponent = components["th"] || ((props2) => /* @__PURE__ */ React.createElement("th", { style: { textAlign: (props2 == null ? void 0 : props2.align) || "auto" }, ...props2 }));
155
- const TdComponent = components["td"] || ((props2) => /* @__PURE__ */ React.createElement("td", { style: { textAlign: (props2 == null ? void 0 : props2.align) || "auto" }, ...props2 }));
156
- const align = ((_f = child.props) == null ? void 0 : _f.align) || [];
157
- return /* @__PURE__ */ React.createElement(TableComponent, null, firstRowHeader && /* @__PURE__ */ React.createElement("thead", null, /* @__PURE__ */ React.createElement(TrComponent, null, header.tableCells.map((c, i) => {
163
+ const TdComponent2 = components["td"] || ((props2) => /* @__PURE__ */ React.createElement("td", { style: { textAlign: (props2 == null ? void 0 : props2.align) || "auto" }, ...props2 }));
164
+ const align2 = ((_f = child.props) == null ? void 0 : _f.align) || [];
165
+ return /* @__PURE__ */ React.createElement(TableComponent2, null, firstRowHeader && /* @__PURE__ */ React.createElement("thead", null, /* @__PURE__ */ React.createElement(TrComponent2, null, header.tableCells.map((c, i) => {
158
166
  return /* @__PURE__ */ React.createElement(
159
167
  TinaMarkdown,
160
168
  {
161
169
  key: i,
162
170
  components: {
163
- p: (props2) => /* @__PURE__ */ React.createElement(ThComponent, { align: align[i], ...props2 })
171
+ p: (props2) => /* @__PURE__ */ React.createElement(ThComponent, { align: align2[i], ...props2 })
164
172
  },
165
173
  content: c.value
166
174
  }
167
175
  );
168
- }))), /* @__PURE__ */ React.createElement("tbody", null, rows.map((row, i) => {
176
+ }))), /* @__PURE__ */ React.createElement("tbody", null, rows2.map((row, i) => {
169
177
  var _a2;
170
- return /* @__PURE__ */ React.createElement(TrComponent, { key: i }, (_a2 = row == null ? void 0 : row.tableCells) == null ? void 0 : _a2.map((c, i2) => {
178
+ return /* @__PURE__ */ React.createElement(TrComponent2, { key: i }, (_a2 = row == null ? void 0 : row.tableCells) == null ? void 0 : _a2.map((c, i2) => {
171
179
  return /* @__PURE__ */ React.createElement(
172
180
  TinaMarkdown,
173
181
  {
174
182
  key: i2,
175
183
  components: {
176
- p: (props2) => /* @__PURE__ */ React.createElement(TdComponent, { align: align[i2], ...props2 })
184
+ p: (props2) => /* @__PURE__ */ React.createElement(TdComponent2, { align: align2[i2], ...props2 })
177
185
  },
178
186
  content: c.value
179
187
  }
@@ -188,6 +196,37 @@ const Node = ({ components, child }) => {
188
196
  return /* @__PURE__ */ React.createElement("span", null, `No component provided for ${child.name}`);
189
197
  }
190
198
  }
199
+ case "table":
200
+ const rows = child.children || [];
201
+ const TableComponent = components["table"] || ((props2) => /* @__PURE__ */ React.createElement("table", { style: { border: "1px solid #EDECF3" }, ...props2 }));
202
+ const TrComponent = components["tr"] || ((props2) => /* @__PURE__ */ React.createElement("tr", { ...props2 }));
203
+ const TdComponent = components["td"] || ((props2) => /* @__PURE__ */ React.createElement(
204
+ "td",
205
+ {
206
+ style: {
207
+ textAlign: (props2 == null ? void 0 : props2.align) || "auto",
208
+ border: "1px solid #EDECF3",
209
+ padding: "0.25rem"
210
+ },
211
+ ...props2
212
+ }
213
+ ));
214
+ const align = ((_g = child.props) == null ? void 0 : _g.align) || [];
215
+ return /* @__PURE__ */ React.createElement(TableComponent, null, /* @__PURE__ */ React.createElement("tbody", null, rows.map((row, i) => {
216
+ var _a2;
217
+ return /* @__PURE__ */ React.createElement(TrComponent, { key: i }, (_a2 = row.children) == null ? void 0 : _a2.map((cell, i2) => {
218
+ return /* @__PURE__ */ React.createElement(
219
+ TinaMarkdown,
220
+ {
221
+ key: i2,
222
+ components: {
223
+ p: (props2) => /* @__PURE__ */ React.createElement(TdComponent, { align: align[i2], ...props2 })
224
+ },
225
+ content: cell.children
226
+ }
227
+ );
228
+ }));
229
+ })));
191
230
  case "maybe_mdx":
192
231
  return null;
193
232
  case "html":
@@ -7,7 +7,7 @@
7
7
  prismReactRenderer.Highlight,
8
8
  {
9
9
  theme: prismReactRenderer.themes[props.theme || "github"],
10
- code: props.value,
10
+ code: props.value || "",
11
11
  language: props.lang || ""
12
12
  },
13
13
  ({ className, style, tokens, getLineProps, getTokenProps }) => /* @__PURE__ */ React.createElement("pre", { className, style }, tokens.map((line, i) => /* @__PURE__ */ React.createElement("div", { ...getLineProps({ line, key: i }) }, line.map((token, key) => /* @__PURE__ */ React.createElement("span", { ...getTokenProps({ token, key }) })))))
@@ -5,7 +5,7 @@ const Prism = (props) => {
5
5
  Highlight,
6
6
  {
7
7
  theme: themes[props.theme || "github"],
8
- code: props.value,
8
+ code: props.value || "",
9
9
  language: props.lang || ""
10
10
  },
11
11
  ({ className, style, tokens, getLineProps, getTokenProps }) => /* @__PURE__ */ React.createElement("pre", { className, style }, tokens.map((line, i) => /* @__PURE__ */ React.createElement("div", { ...getLineProps({ line, key: i }) }, line.map((token, key) => /* @__PURE__ */ React.createElement("span", { ...getTokenProps({ token, key }) })))))
@@ -0,0 +1,148 @@
1
+ /**
2
+ * This is a static-ready version of the TinaMarkdown component.
3
+ * The primary change is the removal of the `MemoNode` wrapper, which used
4
+ * the `React.useMemo` hook. This hook is for client-side performance
5
+ * optimization and is not needed for server-side rendering (SSR).
6
+ * By rendering the `Node` component directly, the component becomes
7
+ * fully static and can be rendered on the server.
8
+ */
9
+ import React from 'react';
10
+ type BaseComponents = {
11
+ h1?: {
12
+ children: JSX.Element;
13
+ };
14
+ h2?: {
15
+ children: JSX.Element;
16
+ };
17
+ h3?: {
18
+ children: JSX.Element;
19
+ };
20
+ h4?: {
21
+ children: JSX.Element;
22
+ };
23
+ h5?: {
24
+ children: JSX.Element;
25
+ };
26
+ h6?: {
27
+ children: JSX.Element;
28
+ };
29
+ p?: {
30
+ children: JSX.Element;
31
+ };
32
+ a?: {
33
+ url: string;
34
+ children: JSX.Element;
35
+ };
36
+ italic?: {
37
+ children: JSX.Element;
38
+ };
39
+ bold?: {
40
+ children: JSX.Element;
41
+ };
42
+ strikethrough?: {
43
+ children: JSX.Element;
44
+ };
45
+ underline?: {
46
+ children: JSX.Element;
47
+ };
48
+ code?: {
49
+ children: JSX.Element;
50
+ };
51
+ text?: {
52
+ children: string;
53
+ };
54
+ ul?: {
55
+ children: JSX.Element;
56
+ };
57
+ ol?: {
58
+ children: JSX.Element;
59
+ };
60
+ li?: {
61
+ children: JSX.Element;
62
+ };
63
+ lic?: {
64
+ children: JSX.Element;
65
+ };
66
+ block_quote?: {
67
+ children: JSX.Element;
68
+ };
69
+ code_block?: {
70
+ lang?: string;
71
+ value: string;
72
+ };
73
+ mermaid?: {
74
+ value: string;
75
+ };
76
+ img?: {
77
+ url: string;
78
+ caption?: string;
79
+ alt?: string;
80
+ };
81
+ hr?: {};
82
+ break?: {};
83
+ maybe_mdx?: {
84
+ children: JSX.Element;
85
+ };
86
+ html?: {
87
+ value: string;
88
+ };
89
+ html_inline?: {
90
+ value: string;
91
+ };
92
+ table?: {
93
+ align?: ('left' | 'right' | 'center')[];
94
+ tableRows: {
95
+ tableCells: {
96
+ value: TinaMarkdownContent;
97
+ }[];
98
+ }[];
99
+ };
100
+ component_missing?: {
101
+ name: string;
102
+ };
103
+ };
104
+ type BaseComponentSignature = {
105
+ [BK in keyof BaseComponents]: (props: BaseComponents[BK]) => JSX.Element;
106
+ };
107
+ /**
108
+ * Define the allowed components and their props
109
+ * ```ts
110
+ * const components:
111
+ * Components<{
112
+ * BlockQuote: {
113
+ * children: TinaMarkdownContent;
114
+ * authorName: string;
115
+ * };
116
+ * }> = {
117
+ * BlockQuote: (props: {
118
+ * children: TinaMarkdownContent;
119
+ * authorName: string;
120
+ * }) => {
121
+ * return (
122
+ * <div>
123
+ * <blockquote>
124
+ * <TinaMarkdown content={props.children} />
125
+ * {props.authorName}
126
+ * </blockquote>
127
+ * </div>
128
+ * );
129
+ * }
130
+ * }
131
+ * }
132
+ * ```
133
+ */
134
+ export type Components<ComponentAndProps extends object> = {
135
+ [K in keyof ComponentAndProps]: (props: ComponentAndProps[K]) => JSX.Element;
136
+ } & BaseComponentSignature;
137
+ export type TinaMarkdownContent = {
138
+ type: string;
139
+ children: TinaMarkdownContent[];
140
+ [key: string]: any;
141
+ };
142
+ export declare const StaticTinaMarkdown: <CustomComponents extends {
143
+ [key: string]: object;
144
+ } = any>({ content, components, }: {
145
+ content: TinaMarkdownContent | TinaMarkdownContent[];
146
+ components?: Components<{}> | Components<{ [BK in keyof CustomComponents]: (props: CustomComponents[BK]) => JSX.Element; }>;
147
+ }) => React.JSX.Element;
148
+ export {};
@@ -0,0 +1,239 @@
1
+ (function(global, factory) {
2
+ typeof exports === "object" && typeof module !== "undefined" ? factory(exports, require("react")) : typeof define === "function" && define.amd ? define(["exports", "react"], factory) : (global = typeof globalThis !== "undefined" ? globalThis : global || self, factory(global.tinacms = {}, global.NOOP));
3
+ })(this, function(exports2, React) {
4
+ "use strict";
5
+ const StaticTinaMarkdown = ({
6
+ content,
7
+ components = {}
8
+ }) => {
9
+ if (!content) {
10
+ return null;
11
+ }
12
+ const nodes = Array.isArray(content) ? content : content.children;
13
+ if (!nodes) {
14
+ return null;
15
+ }
16
+ return /* @__PURE__ */ React.createElement(React.Fragment, null, nodes.map((child, index) => {
17
+ return /* @__PURE__ */ React.createElement(Node, { components, key: index, child });
18
+ }));
19
+ };
20
+ const Leaf = (props) => {
21
+ let el = /* @__PURE__ */ React.createElement(React.Fragment, null, props.text);
22
+ if (props.components.text) {
23
+ const Component = props.components.text;
24
+ el = /* @__PURE__ */ React.createElement(Component, null, props.text);
25
+ }
26
+ if (props.bold) {
27
+ const Component = props.components.bold || "strong";
28
+ el = /* @__PURE__ */ React.createElement(Component, null, el);
29
+ }
30
+ if (props.italic) {
31
+ const Component = props.components.italic || "em";
32
+ el = /* @__PURE__ */ React.createElement(Component, null, el);
33
+ }
34
+ if (props.underline) {
35
+ const Component = props.components.underline || "u";
36
+ el = /* @__PURE__ */ React.createElement(Component, null, el);
37
+ }
38
+ if (props.strikethrough) {
39
+ const Component = props.components.strikethrough || "s";
40
+ el = /* @__PURE__ */ React.createElement(Component, null, el);
41
+ }
42
+ if (props.code) {
43
+ const Component = props.components.code || "code";
44
+ el = /* @__PURE__ */ React.createElement(Component, null, el);
45
+ }
46
+ return el;
47
+ };
48
+ const Node = ({
49
+ components,
50
+ child
51
+ }) => {
52
+ var _a, _b, _c, _d, _e, _f, _g;
53
+ const { children, ...props } = child;
54
+ switch (child.type) {
55
+ case "h1":
56
+ case "h2":
57
+ case "h3":
58
+ case "h4":
59
+ case "h5":
60
+ case "h6":
61
+ case "p":
62
+ case "blockquote":
63
+ case "ol":
64
+ case "ul":
65
+ case "li":
66
+ if (components[child.type]) {
67
+ const Component2 = components[child.type];
68
+ return /* @__PURE__ */ React.createElement(Component2, { ...props }, /* @__PURE__ */ React.createElement(StaticTinaMarkdown, { components, content: children }));
69
+ }
70
+ return React.createElement(child.type, {
71
+ children: /* @__PURE__ */ React.createElement(StaticTinaMarkdown, { components, content: children })
72
+ });
73
+ case "lic":
74
+ if (components.lic) {
75
+ const Component2 = components.lic;
76
+ return /* @__PURE__ */ React.createElement(Component2, { ...props }, /* @__PURE__ */ React.createElement(StaticTinaMarkdown, { components, content: children }));
77
+ }
78
+ return /* @__PURE__ */ React.createElement("div", null, /* @__PURE__ */ React.createElement(
79
+ StaticTinaMarkdown,
80
+ {
81
+ components,
82
+ content: child.children
83
+ }
84
+ ));
85
+ case "img":
86
+ if (components[child.type]) {
87
+ const Component2 = components[child.type];
88
+ return /* @__PURE__ */ React.createElement(Component2, { ...props });
89
+ }
90
+ return /* @__PURE__ */ React.createElement("img", { src: child.url, alt: child.alt });
91
+ case "a":
92
+ if (components[child.type]) {
93
+ const Component2 = components[child.type];
94
+ return (
95
+ //@ts-ignore Same issue with TinaMarkdown
96
+ /* @__PURE__ */ React.createElement(Component2, { ...props }, /* @__PURE__ */ React.createElement(StaticTinaMarkdown, { components, content: children }))
97
+ );
98
+ }
99
+ return /* @__PURE__ */ React.createElement("a", { href: child.url }, /* @__PURE__ */ React.createElement(StaticTinaMarkdown, { components, content: children }));
100
+ case "code_block": {
101
+ let codeString = "";
102
+ if (Array.isArray(child.children)) {
103
+ codeString = child.children.map(
104
+ (line) => Array.isArray(line.children) ? line.children.map((t) => t.text).join("") : ""
105
+ ).join("\n");
106
+ } else if (typeof child.value === "string") {
107
+ codeString = child.value;
108
+ }
109
+ if (components[child.type]) {
110
+ const Component2 = components[child.type];
111
+ return /* @__PURE__ */ React.createElement(Component2, { ...props, value: codeString });
112
+ }
113
+ return /* @__PURE__ */ React.createElement("pre", null, /* @__PURE__ */ React.createElement("code", null, codeString));
114
+ }
115
+ case "hr":
116
+ if (components[child.type]) {
117
+ const Component2 = components[child.type];
118
+ return /* @__PURE__ */ React.createElement(Component2, { ...props });
119
+ }
120
+ return /* @__PURE__ */ React.createElement("hr", null);
121
+ case "break":
122
+ if (components[child.type]) {
123
+ const Component2 = components[child.type];
124
+ return /* @__PURE__ */ React.createElement(Component2, { ...props });
125
+ }
126
+ return /* @__PURE__ */ React.createElement("br", null);
127
+ case "text":
128
+ return /* @__PURE__ */ React.createElement(Leaf, { components, ...child });
129
+ case "mdxJsxTextElement":
130
+ case "mdxJsxFlowElement":
131
+ const Component = components[child.name];
132
+ if (Component) {
133
+ const props2 = child.props ? child.props : {};
134
+ return /* @__PURE__ */ React.createElement(Component, { ...props2 });
135
+ } else {
136
+ if (child.name === "table") {
137
+ const firstRowHeader = (_a = child.props) == null ? void 0 : _a.firstRowHeader;
138
+ const rows2 = (firstRowHeader ? (_b = child.props) == null ? void 0 : _b.tableRows.filter((_, i) => i !== 0) : (_c = child.props) == null ? void 0 : _c.tableRows) || [];
139
+ const header = (_e = (_d = child.props) == null ? void 0 : _d.tableRows) == null ? void 0 : _e.at(0);
140
+ const TableComponent2 = (
141
+ //@ts-ignore Same issue with TinaMarkdown
142
+ components["table"] || ((props2) => /* @__PURE__ */ React.createElement("table", { ...props2 }))
143
+ );
144
+ const TrComponent2 = components["tr"] || ((props2) => /* @__PURE__ */ React.createElement("tr", { ...props2 }));
145
+ const ThComponent = components["th"] || ((props2) => /* @__PURE__ */ React.createElement("th", { style: { textAlign: (props2 == null ? void 0 : props2.align) || "auto" }, ...props2 }));
146
+ const TdComponent2 = components["td"] || ((props2) => /* @__PURE__ */ React.createElement("td", { style: { textAlign: (props2 == null ? void 0 : props2.align) || "auto" }, ...props2 }));
147
+ const align2 = ((_f = child.props) == null ? void 0 : _f.align) || [];
148
+ return (
149
+ //@ts-ignore Same issue with TinaMarkdown
150
+ /* @__PURE__ */ React.createElement(TableComponent2, null, firstRowHeader && /* @__PURE__ */ React.createElement("thead", null, /* @__PURE__ */ React.createElement(TrComponent2, null, header.tableCells.map((c, i) => {
151
+ return /* @__PURE__ */ React.createElement(
152
+ StaticTinaMarkdown,
153
+ {
154
+ key: i,
155
+ components: {
156
+ p: (props2) => /* @__PURE__ */ React.createElement(ThComponent, { align: align2[i], ...props2 })
157
+ },
158
+ content: c.value
159
+ }
160
+ );
161
+ }))), /* @__PURE__ */ React.createElement("tbody", null, rows2.map((row, i) => {
162
+ var _a2;
163
+ return /* @__PURE__ */ React.createElement(TrComponent2, { key: i }, (_a2 = row == null ? void 0 : row.tableCells) == null ? void 0 : _a2.map((c, i2) => {
164
+ return /* @__PURE__ */ React.createElement(
165
+ StaticTinaMarkdown,
166
+ {
167
+ key: i2,
168
+ components: {
169
+ p: (props2) => /* @__PURE__ */ React.createElement(TdComponent2, { align: align2[i2], ...props2 })
170
+ },
171
+ content: c.value
172
+ }
173
+ );
174
+ }));
175
+ })))
176
+ );
177
+ }
178
+ const ComponentMissing = components["component_missing"];
179
+ if (ComponentMissing) {
180
+ return /* @__PURE__ */ React.createElement(ComponentMissing, { name: child.name });
181
+ } else {
182
+ return /* @__PURE__ */ React.createElement("span", null, `No component provided for ${child.name}`);
183
+ }
184
+ }
185
+ case "table":
186
+ const rows = child.children || [];
187
+ const TableComponent = components["table"] || ((props2) => /* @__PURE__ */ React.createElement("table", { style: { border: "1px solid #EDECF3" }, ...props2 }));
188
+ const TrComponent = components["tr"] || ((props2) => /* @__PURE__ */ React.createElement("tr", { ...props2 }));
189
+ const TdComponent = components["td"] || ((props2) => /* @__PURE__ */ React.createElement(
190
+ "td",
191
+ {
192
+ style: {
193
+ textAlign: (props2 == null ? void 0 : props2.align) || "auto",
194
+ border: "1px solid #EDECF3",
195
+ padding: "0.25rem"
196
+ },
197
+ ...props2
198
+ }
199
+ ));
200
+ const align = ((_g = child.props) == null ? void 0 : _g.align) || [];
201
+ return (
202
+ //@ts-ignore Same issue with TinaMarkdown
203
+ /* @__PURE__ */ React.createElement(TableComponent, null, /* @__PURE__ */ React.createElement("tbody", null, rows.map((row, i) => {
204
+ var _a2;
205
+ return /* @__PURE__ */ React.createElement(TrComponent, { key: i }, (_a2 = row.children) == null ? void 0 : _a2.map((cell, i2) => {
206
+ return /* @__PURE__ */ React.createElement(
207
+ StaticTinaMarkdown,
208
+ {
209
+ key: i2,
210
+ components: {
211
+ p: (props2) => /* @__PURE__ */ React.createElement(TdComponent, { align: align[i2], ...props2 })
212
+ },
213
+ content: cell.children
214
+ }
215
+ );
216
+ }));
217
+ })))
218
+ );
219
+ case "maybe_mdx":
220
+ return null;
221
+ case "html":
222
+ case "html_inline":
223
+ if (components[child.type]) {
224
+ const Component2 = components[child.type];
225
+ return /* @__PURE__ */ React.createElement(Component2, { ...props });
226
+ }
227
+ return child.value;
228
+ case "invalid_markdown":
229
+ return /* @__PURE__ */ React.createElement("pre", null, child.value);
230
+ default:
231
+ if (typeof child.text === "string") {
232
+ return /* @__PURE__ */ React.createElement(Leaf, { components, ...child });
233
+ }
234
+ return null;
235
+ }
236
+ };
237
+ exports2.StaticTinaMarkdown = StaticTinaMarkdown;
238
+ Object.defineProperty(exports2, Symbol.toStringTag, { value: "Module" });
239
+ });