forgecad 0.6.3 → 0.7.0

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 (193) hide show
  1. package/README.md +2 -11
  2. package/dist/assets/{AdminPage-CeqCUUgu.js → AdminPage-DAu1C1ST.js} +250 -151
  3. package/dist/assets/{BlogPage-P_AJP0v9.js → BlogPage-CJEXL_zJ.js} +94 -70
  4. package/dist/assets/{DocsPage-CKRV2iq2.js → DocsPage-Gc_BCdqC.js} +269 -143
  5. package/dist/assets/EditorApp-D9bJvtf7.js +11338 -0
  6. package/dist/assets/{EditorApp-CnC2k4cW.css → EditorApp-DG1-oUSV.css} +459 -87
  7. package/dist/assets/{EmbedViewer-DBlzmQ5i.js → EmbedViewer-CEO8XbV8.js} +2 -4
  8. package/dist/assets/LandingPage-CdCuEOdC.js +451 -0
  9. package/dist/assets/PricingPage-BSrxu6d7.js +232 -0
  10. package/dist/assets/{SettingsPage-BqCh9JcC.js → SettingsPage-FUCSIRq6.js} +129 -5
  11. package/dist/assets/{evalWorker-Ql-aKwLA.js → evalWorker-KoR0SNKq.js} +6770 -2914
  12. package/dist/assets/{index-2hfs_ub0.css → index-CyVd1D4D.css} +227 -53
  13. package/dist/assets/{Viewport-CoB46f5R.js → index-wTEK39at.js} +31385 -6439
  14. package/dist/assets/{javascript-DCxGoE5Y.js → javascript-DAl8Gmyo.js} +1 -1
  15. package/dist/assets/{manifold-CqNMHHKO.js → manifold-B1sGWdYk.js} +4 -3
  16. package/dist/assets/{manifold-Cce9wRFz.js → manifold-D7o0N50J.js} +1 -1
  17. package/dist/assets/{manifold-D6BeHIOo.js → manifold-G5sBaXzi.js} +1 -1
  18. package/dist/assets/{reportWorker-sFEFonXf.js → reportWorker-DYcRHhv9.js} +6798 -3341
  19. package/dist/assets/{vendor-react-Dt7-aaJH.js → vendor-react-CG3i_wp0.js} +65 -8
  20. package/dist/docs-raw/generated/assembly.md +691 -112
  21. package/dist/docs-raw/generated/concepts.md +1225 -1400
  22. package/dist/docs-raw/generated/core.md +464 -1412
  23. package/dist/docs-raw/generated/curves.md +593 -117
  24. package/dist/docs-raw/generated/lib.md +38 -748
  25. package/dist/docs-raw/generated/output.md +139 -245
  26. package/dist/docs-raw/generated/sheet-metal.md +473 -21
  27. package/dist/docs-raw/generated/sketch.md +553 -349
  28. package/dist/docs-raw/generated/viewport.md +345 -303
  29. package/dist/docs-raw/generated/wood.md +104 -0
  30. package/dist/index.html +2 -2
  31. package/dist/sitemap.xml +6 -6
  32. package/dist-cli/chunk-PZ5AY32C.js +10 -0
  33. package/dist-cli/chunk-PZ5AY32C.js.map +1 -0
  34. package/dist-cli/forgecad.js +9435 -5407
  35. package/dist-cli/forgecad.js.map +1 -0
  36. package/dist-cli/solver-FV7TJZGI.js +365 -0
  37. package/dist-cli/solver-FV7TJZGI.js.map +1 -0
  38. package/dist-skill/CONTEXT.md +3186 -7145
  39. package/dist-skill/SKILL-dev.md +21 -63
  40. package/dist-skill/SKILL.md +12 -56
  41. package/dist-skill/docs/API/core/concepts.md +16 -98
  42. package/dist-skill/docs/CLI/export.md +91 -0
  43. package/dist-skill/docs/CLI/projects.md +107 -0
  44. package/dist-skill/docs/CLI/studio_publishing.md +52 -0
  45. package/dist-skill/docs/CLI/validation.md +66 -0
  46. package/dist-skill/docs/generated/assembly.md +691 -112
  47. package/dist-skill/docs/generated/core.md +464 -1412
  48. package/dist-skill/docs/generated/curves.md +593 -117
  49. package/dist-skill/docs/generated/lib.md +38 -748
  50. package/dist-skill/docs/generated/output.md +139 -245
  51. package/dist-skill/docs/generated/sheet-metal.md +473 -21
  52. package/dist-skill/docs/generated/sketch.md +553 -349
  53. package/dist-skill/docs/generated/viewport.md +345 -303
  54. package/dist-skill/docs/generated/wood.md +104 -0
  55. package/dist-skill/docs/guides/coordinate-system.md +11 -17
  56. package/dist-skill/docs/guides/geometry-conventions.md +13 -70
  57. package/dist-skill/docs/guides/modeling-recipes.md +22 -195
  58. package/dist-skill/docs/guides/positioning.md +88 -147
  59. package/dist-skill/docs-dev/API/core/concepts.md +51 -0
  60. package/dist-skill/docs-dev/API/core/sdf-advanced.md +92 -0
  61. package/dist-skill/docs-dev/API/core/sdf-primitives.md +58 -0
  62. package/dist-skill/docs-dev/API/core/sdf-workflow.md +42 -0
  63. package/dist-skill/docs-dev/CLI/export.md +91 -0
  64. package/dist-skill/docs-dev/CLI/projects.md +107 -0
  65. package/dist-skill/docs-dev/CLI/studio_publishing.md +52 -0
  66. package/dist-skill/docs-dev/CLI/validation.md +66 -0
  67. package/dist-skill/{docs → docs-dev}/blueprint-first.md +5 -0
  68. package/dist-skill/{docs → docs-dev}/coding-best-practices.md +6 -8
  69. package/dist-skill/{docs → docs-dev}/coding.md +1 -3
  70. package/dist-skill/docs-dev/generated/assembly.md +771 -0
  71. package/dist-skill/docs-dev/generated/core.md +775 -0
  72. package/dist-skill/docs-dev/generated/curves.md +688 -0
  73. package/dist-skill/docs-dev/generated/lib.md +50 -0
  74. package/dist-skill/docs-dev/generated/output.md +234 -0
  75. package/dist-skill/docs-dev/generated/sheet-metal.md +506 -0
  76. package/dist-skill/docs-dev/generated/sketch.md +801 -0
  77. package/dist-skill/docs-dev/generated/viewport.md +486 -0
  78. package/dist-skill/docs-dev/generated/wood.md +104 -0
  79. package/dist-skill/docs-dev/guides/coordinate-system.md +46 -0
  80. package/dist-skill/docs-dev/guides/geometry-conventions.md +52 -0
  81. package/dist-skill/docs-dev/guides/modeling-recipes.md +77 -0
  82. package/dist-skill/docs-dev/guides/positioning.md +151 -0
  83. package/dist-skill/{docs → docs-dev}/guides/skill-maintenance.md +21 -10
  84. package/dist-skill/{docs → docs-dev}/internals/compiler.md +5 -6
  85. package/dist-skill/{docs → docs-dev}/internals/constraint-solver-quality.md +0 -1
  86. package/dist-skill/{docs → docs-dev}/internals/constraint-solver.md +0 -1
  87. package/dist-skill/{docs → docs-dev}/internals/sketch-2d-pipeline.md +2 -3
  88. package/examples/api/attachTo-basics.forge.js +5 -5
  89. package/examples/api/boolean-operations.forge.js +3 -3
  90. package/examples/api/bounding-box-visualizer.forge.js +2 -2
  91. package/examples/api/clone-duplicate.forge.js +1 -1
  92. package/examples/api/colors-union-vs-array.forge.js +6 -6
  93. package/examples/api/connector-assembly.forge.js +4 -4
  94. package/examples/api/connector-basics.forge.js +2 -2
  95. package/examples/api/extrude-options.forge.js +4 -10
  96. package/examples/api/feature-created-faces.forge.js +6 -10
  97. package/examples/api/fillet-showcase.forge.js +1 -1
  98. package/examples/api/folded-service-panel-cover.forge.js +2 -2
  99. package/examples/api/group-test.forge.js +1 -1
  100. package/examples/api/group-vs-union.forge.js +1 -1
  101. package/examples/api/highlight-debug.forge.js +4 -0
  102. package/examples/api/js-module-pillars.js +1 -1
  103. package/examples/api/js-module-scene.js +2 -2
  104. package/examples/api/mesh-import-slats.forge.js +1 -1
  105. package/examples/api/pointAlong-orientation.forge.js +1 -1
  106. package/examples/api/profile-2020-b-slot6.forge.js +0 -1
  107. package/examples/api/route-perimeter-flange.forge.js +1 -1
  108. package/examples/api/sdf-rover-demo.forge.js +10 -10
  109. package/examples/api/sketch-on-face-demo.forge.js +2 -2
  110. package/examples/api/sketch-regions.forge.js +4 -4
  111. package/examples/api/transition-curves.forge.js +1 -1
  112. package/examples/api/variable-sweep-pure-sdf-test.forge.js +162 -0
  113. package/examples/api/variable-sweep-test.forge.js +2 -2
  114. package/examples/api/wood-joinery.forge.js +60 -0
  115. package/examples/compiler-corpus/enclosure-shell-cuts.forge.js +3 -3
  116. package/examples/compiler-corpus/fastener-plate-variants.forge.js +2 -2
  117. package/examples/experiments/drone-arm.forge.js +53 -0
  118. package/examples/furniture/adjustable-table.forge.js +2 -2
  119. package/examples/furniture/bathroom.forge.js +11 -11
  120. package/examples/furniture/chair.forge.js +1 -1
  121. package/examples/generative/crystal-growth.forge.js +2 -2
  122. package/examples/generative/frost-spires.forge.js +3 -3
  123. package/examples/generative/golden-spiral-tower.forge.js +3 -3
  124. package/examples/mechanical/3d-printer.forge.js +28 -28
  125. package/examples/mechanical/5-finger-robot-hand.forge.js +15 -15
  126. package/examples/mechanical/airplane-propeller.forge.js +2 -2
  127. package/examples/mechanical/fillet-enclosure.forge.js +1 -1
  128. package/examples/mechanical/headphone-hanger-v2.forge.js +2 -2
  129. package/examples/mechanical/robot_hand.forge.js +15 -15
  130. package/examples/mechanical/robot_hand_2.forge.js +9 -9
  131. package/examples/products/bottle.forge.js +1 -1
  132. package/examples/products/chess-set.forge.js +19 -19
  133. package/examples/products/classical-piano.forge.js +11 -11
  134. package/examples/products/clock.forge.js +12 -12
  135. package/examples/products/iphone.forge.js +8 -8
  136. package/examples/products/laptop.forge.js +15 -15
  137. package/examples/products/liquid-soap-dispenser.forge.js +18 -18
  138. package/examples/products/origami-fish.forge.js +8 -6
  139. package/examples/products/spiderman-cake.forge.js +4 -4
  140. package/examples/toolbox/bolted-joint.forge.js +2 -2
  141. package/package.json +7 -4
  142. package/dist/assets/EditorApp-B-vQvgam.js +0 -9888
  143. package/dist/assets/LandingPage-C5n9hDXI.js +0 -322
  144. package/dist/assets/PublishedModelPage-Dt7PCVBj.js +0 -146
  145. package/dist/assets/__vite-browser-external-CURh0WXD.js +0 -8
  146. package/dist/assets/deserializeRunResult-BLAFoiE0.js +0 -19365
  147. package/dist/assets/index-1CYp3zUp.js +0 -1455
  148. package/dist/docs-raw/CLI.md +0 -865
  149. package/dist-skill/docs/API/API.md +0 -1666
  150. package/dist-skill/docs/API/README.md +0 -37
  151. package/dist-skill/docs/API/assembly/assembly.md +0 -617
  152. package/dist-skill/docs/API/core/edge-queries.md +0 -130
  153. package/dist-skill/docs/API/core/parameters.md +0 -122
  154. package/dist-skill/docs/API/core/reserved-terms.md +0 -137
  155. package/dist-skill/docs/API/core/sdf.md +0 -326
  156. package/dist-skill/docs/API/core/skill-cli.md +0 -194
  157. package/dist-skill/docs/API/core/skill-guide.md +0 -205
  158. package/dist-skill/docs/API/core/specs.md +0 -186
  159. package/dist-skill/docs/API/core/topology.md +0 -372
  160. package/dist-skill/docs/API/entities.md +0 -268
  161. package/dist-skill/docs/API/output/bom.md +0 -58
  162. package/dist-skill/docs/API/output/brep-export.md +0 -87
  163. package/dist-skill/docs/API/output/dimensions.md +0 -67
  164. package/dist-skill/docs/API/output/export.md +0 -110
  165. package/dist-skill/docs/API/output/gcode.md +0 -195
  166. package/dist-skill/docs/API/runtime/viewport.md +0 -420
  167. package/dist-skill/docs/API/sheet-metal/sheet-metal.md +0 -185
  168. package/dist-skill/docs/API/sketch/anchor.md +0 -37
  169. package/dist-skill/docs/API/sketch/booleans.md +0 -91
  170. package/dist-skill/docs/API/sketch/core.md +0 -73
  171. package/dist-skill/docs/API/sketch/extrude.md +0 -62
  172. package/dist-skill/docs/API/sketch/on-face.md +0 -104
  173. package/dist-skill/docs/API/sketch/operations.md +0 -78
  174. package/dist-skill/docs/API/sketch/path.md +0 -75
  175. package/dist-skill/docs/API/sketch/primitives.md +0 -146
  176. package/dist-skill/docs/API/sketch/regions.md +0 -80
  177. package/dist-skill/docs/API/sketch/text.md +0 -108
  178. package/dist-skill/docs/API/sketch/transforms.md +0 -65
  179. package/dist-skill/docs/API/toolbox/fasteners.md +0 -129
  180. package/dist-skill/docs/CLI.md +0 -865
  181. package/dist-skill/docs/INDEX.md +0 -94
  182. package/dist-skill/docs/RELEASING.md +0 -55
  183. package/dist-skill/docs/cli-monetization.md +0 -111
  184. package/dist-skill/docs/deployment.md +0 -281
  185. package/dist-skill/docs/generated/concepts.md +0 -2112
  186. package/dist-skill/docs/internals/shape-from-slices.md +0 -152
  187. package/dist-skill/docs/platform/admin.md +0 -45
  188. package/dist-skill/docs/platform/architecture.md +0 -79
  189. package/dist-skill/docs/platform/auth.md +0 -110
  190. package/dist-skill/docs/platform/email.md +0 -67
  191. package/dist-skill/docs/platform/projects.md +0 -111
  192. package/dist-skill/docs/platform/sharing.md +0 -90
  193. package/dist-skill/docs/runbook.md +0 -345
@@ -1,4 +1,4 @@
1
- import { u as useParams, j as jsxRuntimeExports, L as Link } from "./vendor-react-Dt7-aaJH.js";
1
+ import { u as useParams, j as jsxRuntimeExports, L as Link } from "./vendor-react-CG3i_wp0.js";
2
2
  const POSTS = [
3
3
  {
4
4
  slug: "hello-forgecad-io",
@@ -33,55 +33,71 @@ We're building out the documentation, adding more examples, and improving the ed
33
33
  }
34
34
  ];
35
35
  function SiteNav() {
36
- return /* @__PURE__ */ jsxRuntimeExports.jsxs("nav", { style: {
37
- position: "fixed",
38
- top: 0,
39
- left: 0,
40
- right: 0,
41
- height: 56,
42
- display: "flex",
43
- alignItems: "center",
44
- justifyContent: "space-between",
45
- padding: "0 24px",
46
- background: "var(--fc-bg)",
47
- borderBottom: "1px solid var(--fc-border)",
48
- zIndex: 100,
49
- backdropFilter: "blur(8px)"
50
- }, children: [
51
- /* @__PURE__ */ jsxRuntimeExports.jsxs(Link, { to: "/", style: {
52
- display: "flex",
53
- alignItems: "center",
54
- gap: 8,
55
- textDecoration: "none",
56
- color: "var(--fc-text)"
57
- }, children: [
58
- /* @__PURE__ */ jsxRuntimeExports.jsx("span", { style: { fontSize: 20 }, children: "" }),
59
- /* @__PURE__ */ jsxRuntimeExports.jsx("span", { style: { fontSize: 16, fontWeight: 700, color: "var(--fc-accent)" }, children: "ForgeCAD" })
60
- ] }),
61
- /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { style: { display: "flex", alignItems: "center", gap: 24 }, children: [
62
- /* @__PURE__ */ jsxRuntimeExports.jsx(Link, { to: "/docs", style: { color: "var(--fc-textMuted)", textDecoration: "none", fontSize: 14 }, children: "Docs" }),
63
- /* @__PURE__ */ jsxRuntimeExports.jsx(Link, { to: "/blog", style: { color: "var(--fc-accent)", textDecoration: "none", fontSize: 14, fontWeight: 600 }, children: "Blog" }),
64
- /* @__PURE__ */ jsxRuntimeExports.jsx(
65
- Link,
66
- {
67
- to: "/app",
68
- style: {
69
- padding: "6px 16px",
70
- fontSize: 14,
71
- fontWeight: 600,
72
- background: "var(--fc-accent)",
73
- color: "var(--fc-accentText)",
74
- borderRadius: 6,
75
- textDecoration: "none"
76
- },
77
- children: "Open App"
78
- }
79
- )
80
- ] })
81
- ] });
36
+ return /* @__PURE__ */ jsxRuntimeExports.jsxs(
37
+ "nav",
38
+ {
39
+ style: {
40
+ position: "fixed",
41
+ top: 0,
42
+ left: 0,
43
+ right: 0,
44
+ height: 56,
45
+ display: "flex",
46
+ alignItems: "center",
47
+ justifyContent: "space-between",
48
+ padding: "0 24px",
49
+ background: "var(--fc-bg)",
50
+ borderBottom: "1px solid var(--fc-border)",
51
+ zIndex: 100,
52
+ backdropFilter: "blur(8px)"
53
+ },
54
+ children: [
55
+ /* @__PURE__ */ jsxRuntimeExports.jsxs(
56
+ Link,
57
+ {
58
+ to: "/",
59
+ style: {
60
+ display: "flex",
61
+ alignItems: "center",
62
+ gap: 8,
63
+ textDecoration: "none",
64
+ color: "var(--fc-text)"
65
+ },
66
+ children: [
67
+ /* @__PURE__ */ jsxRuntimeExports.jsx("span", { style: { fontSize: 20 }, children: "" }),
68
+ /* @__PURE__ */ jsxRuntimeExports.jsx("span", { style: { fontSize: 16, fontWeight: 700, color: "var(--fc-accent)" }, children: "ForgeCAD" })
69
+ ]
70
+ }
71
+ ),
72
+ /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { style: { display: "flex", alignItems: "center", gap: 24 }, children: [
73
+ /* @__PURE__ */ jsxRuntimeExports.jsx(Link, { to: "/docs", style: { color: "var(--fc-textMuted)", textDecoration: "none", fontSize: 14 }, children: "Docs" }),
74
+ /* @__PURE__ */ jsxRuntimeExports.jsx(Link, { to: "/blog", style: { color: "var(--fc-accent)", textDecoration: "none", fontSize: 14, fontWeight: 600 }, children: "Blog" }),
75
+ /* @__PURE__ */ jsxRuntimeExports.jsx(
76
+ Link,
77
+ {
78
+ to: "/app",
79
+ style: {
80
+ padding: "6px 16px",
81
+ fontSize: 14,
82
+ fontWeight: 600,
83
+ background: "var(--fc-accent)",
84
+ color: "var(--fc-accentText)",
85
+ borderRadius: 6,
86
+ textDecoration: "none"
87
+ },
88
+ children: "Open App"
89
+ }
90
+ )
91
+ ] })
92
+ ]
93
+ }
94
+ );
82
95
  }
83
96
  function renderMarkdown(md) {
84
- let html = md.replace(/```(\w*)\n([\s\S]*?)```/g, (_m, lang, code) => `<pre class="fc-docs-code"><code class="language-${lang}">${code.replace(/&/g, "&amp;").replace(/</g, "&lt;").replace(/>/g, "&gt;").trimEnd()}</code></pre>`).replace(/`([^`]+)`/g, '<code class="fc-docs-inline-code">$1</code>').replace(/^#### (.+)$/gm, "<h4>$1</h4>").replace(/^### (.+)$/gm, "<h3>$1</h3>").replace(/^## (.+)$/gm, "<h2>$1</h2>").replace(/^# (.+)$/gm, "<h1>$1</h1>").replace(/\*\*(.+?)\*\*/g, "<strong>$1</strong>").replace(/\*(.+?)\*/g, "<em>$1</em>").replace(/\[([^\]]+)\]\(([^)]+)\)/g, '<a href="$2" target="_blank" rel="noopener noreferrer">$1</a>').replace(/^- (.+)$/gm, "<li>$1</li>").replace(/^(?!<[a-z]|$)(.+)$/gm, "<p>$1</p>");
97
+ let html = md.replace(
98
+ /```(\w*)\n([\s\S]*?)```/g,
99
+ (_m, lang, code) => `<pre class="fc-docs-code"><code class="language-${lang}">${code.replace(/&/g, "&amp;").replace(/</g, "&lt;").replace(/>/g, "&gt;").trimEnd()}</code></pre>`
100
+ ).replace(/`([^`]+)`/g, '<code class="fc-docs-inline-code">$1</code>').replace(/^#### (.+)$/gm, "<h4>$1</h4>").replace(/^### (.+)$/gm, "<h3>$1</h3>").replace(/^## (.+)$/gm, "<h2>$1</h2>").replace(/^# (.+)$/gm, "<h1>$1</h1>").replace(/\*\*(.+?)\*\*/g, "<strong>$1</strong>").replace(/\*(.+?)\*/g, "<em>$1</em>").replace(/\[([^\]]+)\]\(([^)]+)\)/g, '<a href="$2" target="_blank" rel="noopener noreferrer">$1</a>').replace(/^- (.+)$/gm, "<li>$1</li>").replace(/^(?!<[a-z]|$)(.+)$/gm, "<p>$1</p>");
85
101
  html = html.replace(/(<li>[\s\S]*?<\/li>(\s*<li>[\s\S]*?<\/li>)*)/g, "<ul>$1</ul>");
86
102
  return html;
87
103
  }
@@ -94,21 +110,22 @@ function BlogPostView({ post }) {
94
110
  /* @__PURE__ */ jsxRuntimeExports.jsx(Link, { to: "/blog", style: { color: "var(--fc-textMuted)", textDecoration: "none", fontSize: 13, marginBottom: 24, display: "block" }, children: "← Back to blog" }),
95
111
  /* @__PURE__ */ jsxRuntimeExports.jsx("time", { style: { color: "var(--fc-textDim)", fontSize: 13 }, children: formatDate(post.date) }),
96
112
  /* @__PURE__ */ jsxRuntimeExports.jsx("h1", { style: { fontSize: 36, fontWeight: 700, color: "var(--fc-text)", margin: "8px 0 24px", lineHeight: 1.2 }, children: post.title }),
97
- /* @__PURE__ */ jsxRuntimeExports.jsx("div", { style: { display: "flex", gap: 8, marginBottom: 32 }, children: post.tags.map((tag) => /* @__PURE__ */ jsxRuntimeExports.jsx("span", { style: {
98
- padding: "2px 10px",
99
- borderRadius: 12,
100
- background: "var(--fc-bgSurface)",
101
- border: "1px solid var(--fc-border)",
102
- fontSize: 12,
103
- color: "var(--fc-textMuted)"
104
- }, children: tag }, tag)) }),
105
- /* @__PURE__ */ jsxRuntimeExports.jsx(
106
- "div",
113
+ /* @__PURE__ */ jsxRuntimeExports.jsx("div", { style: { display: "flex", gap: 8, marginBottom: 32 }, children: post.tags.map((tag) => /* @__PURE__ */ jsxRuntimeExports.jsx(
114
+ "span",
107
115
  {
108
- className: "fc-docs-content",
109
- dangerouslySetInnerHTML: { __html: renderMarkdown(post.content) }
110
- }
111
- )
116
+ style: {
117
+ padding: "2px 10px",
118
+ borderRadius: 12,
119
+ background: "var(--fc-bgSurface)",
120
+ border: "1px solid var(--fc-border)",
121
+ fontSize: 12,
122
+ color: "var(--fc-textMuted)"
123
+ },
124
+ children: tag
125
+ },
126
+ tag
127
+ )) }),
128
+ /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "fc-docs-content", dangerouslySetInnerHTML: { __html: renderMarkdown(post.content) } })
112
129
  ] });
113
130
  }
114
131
  function BlogIndex() {
@@ -131,14 +148,21 @@ function BlogIndex() {
131
148
  /* @__PURE__ */ jsxRuntimeExports.jsx("time", { style: { color: "var(--fc-textDim)", fontSize: 13 }, children: formatDate(post.date) }),
132
149
  /* @__PURE__ */ jsxRuntimeExports.jsx("h2", { style: { fontSize: 20, fontWeight: 600, color: "var(--fc-text)", margin: "4px 0 8px" }, children: post.title }),
133
150
  /* @__PURE__ */ jsxRuntimeExports.jsx("p", { style: { fontSize: 14, color: "var(--fc-textMuted)", margin: 0, lineHeight: 1.5 }, children: post.summary }),
134
- /* @__PURE__ */ jsxRuntimeExports.jsx("div", { style: { display: "flex", gap: 8, marginTop: 12 }, children: post.tags.map((tag) => /* @__PURE__ */ jsxRuntimeExports.jsx("span", { style: {
135
- padding: "2px 10px",
136
- borderRadius: 12,
137
- background: "var(--fc-bg)",
138
- border: "1px solid var(--fc-border)",
139
- fontSize: 11,
140
- color: "var(--fc-textDim)"
141
- }, children: tag }, tag)) })
151
+ /* @__PURE__ */ jsxRuntimeExports.jsx("div", { style: { display: "flex", gap: 8, marginTop: 12 }, children: post.tags.map((tag) => /* @__PURE__ */ jsxRuntimeExports.jsx(
152
+ "span",
153
+ {
154
+ style: {
155
+ padding: "2px 10px",
156
+ borderRadius: 12,
157
+ background: "var(--fc-bg)",
158
+ border: "1px solid var(--fc-border)",
159
+ fontSize: 11,
160
+ color: "var(--fc-textDim)"
161
+ },
162
+ children: tag
163
+ },
164
+ tag
165
+ )) })
142
166
  ]
143
167
  },
144
168
  post.slug