astro-tractstack 2.0.0-rc.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 (427) hide show
  1. package/LICENSE +110 -0
  2. package/README.md +56 -0
  3. package/astro.d.ts +64 -0
  4. package/bin/create-tractstack.js +483 -0
  5. package/dist/config.js +80 -0
  6. package/dist/index.js +2129 -0
  7. package/package.json +89 -0
  8. package/templates/artpacks/kCz/captainBreakfast_1080px.webp +0 -0
  9. package/templates/artpacks/kCz/captainBreakfast_1920px.webp +0 -0
  10. package/templates/artpacks/kCz/captainBreakfast_600px.webp +0 -0
  11. package/templates/artpacks/kCz/cleanDrips_1080px.webp +0 -0
  12. package/templates/artpacks/kCz/cleanDrips_1920px.webp +0 -0
  13. package/templates/artpacks/kCz/cleanDrips_600px.webp +0 -0
  14. package/templates/artpacks/kCz/crispwaves_1080px.webp +0 -0
  15. package/templates/artpacks/kCz/crispwaves_1920px.webp +0 -0
  16. package/templates/artpacks/kCz/crispwaves_600px.webp +0 -0
  17. package/templates/artpacks/kCz/dragonSkin_1080px.webp +0 -0
  18. package/templates/artpacks/kCz/dragonSkin_1920px.webp +0 -0
  19. package/templates/artpacks/kCz/dragonSkin_600px.webp +0 -0
  20. package/templates/artpacks/kCz/dragon_1080px.webp +0 -0
  21. package/templates/artpacks/kCz/dragon_1920px.webp +0 -0
  22. package/templates/artpacks/kCz/dragon_600px.webp +0 -0
  23. package/templates/artpacks/kCz/nightcity_1080px.webp +0 -0
  24. package/templates/artpacks/kCz/nightcity_1920px.webp +0 -0
  25. package/templates/artpacks/kCz/nightcity_600px.webp +0 -0
  26. package/templates/artpacks/kCz/pattern1_1080px.webp +0 -0
  27. package/templates/artpacks/kCz/pattern1_1920px.webp +0 -0
  28. package/templates/artpacks/kCz/pattern1_600px.webp +0 -0
  29. package/templates/artpacks/kCz/pattern2_1080px.webp +0 -0
  30. package/templates/artpacks/kCz/pattern2_1920px.webp +0 -0
  31. package/templates/artpacks/kCz/pattern2_600px.webp +0 -0
  32. package/templates/artpacks/kCz/skindrips_1080px.webp +0 -0
  33. package/templates/artpacks/kCz/skindrips_1920px.webp +0 -0
  34. package/templates/artpacks/kCz/skindrips_600px.webp +0 -0
  35. package/templates/artpacks/kCz/slimetime_1080px.webp +0 -0
  36. package/templates/artpacks/kCz/slimetime_1920px.webp +0 -0
  37. package/templates/artpacks/kCz/slimetime_600px.webp +0 -0
  38. package/templates/artpacks/kCz/snake_1080px.webp +0 -0
  39. package/templates/artpacks/kCz/snake_1920px.webp +0 -0
  40. package/templates/artpacks/kCz/snake_600px.webp +0 -0
  41. package/templates/artpacks/kCz/toxicshock_1080px.webp +0 -0
  42. package/templates/artpacks/kCz/toxicshock_1920px.webp +0 -0
  43. package/templates/artpacks/kCz/toxicshock_600px.webp +0 -0
  44. package/templates/artpacks/kCz/tractstack_1080px.webp +0 -0
  45. package/templates/artpacks/kCz/tractstack_1920px.webp +0 -0
  46. package/templates/artpacks/kCz/tractstack_600px.webp +0 -0
  47. package/templates/artpacks/kCz/tripdrips_1080px.webp +0 -0
  48. package/templates/artpacks/kCz/tripdrips_1920px.webp +0 -0
  49. package/templates/artpacks/kCz/tripdrips_600px.webp +0 -0
  50. package/templates/artpacks/kCz/wavedrips_1080px.webp +0 -0
  51. package/templates/artpacks/kCz/wavedrips_1920px.webp +0 -0
  52. package/templates/artpacks/kCz/wavedrips_600px.webp +0 -0
  53. package/templates/artpacks/t8k/beach_1080px.webp +0 -0
  54. package/templates/artpacks/t8k/beach_1920px.webp +0 -0
  55. package/templates/artpacks/t8k/beach_600px.webp +0 -0
  56. package/templates/artpacks/t8k/blast_1080px.webp +0 -0
  57. package/templates/artpacks/t8k/blast_1920px.webp +0 -0
  58. package/templates/artpacks/t8k/blast_600px.webp +0 -0
  59. package/templates/artpacks/t8k/bokeh_1080px.webp +0 -0
  60. package/templates/artpacks/t8k/bokeh_1920px.webp +0 -0
  61. package/templates/artpacks/t8k/bokeh_600px.webp +0 -0
  62. package/templates/artpacks/t8k/cartoon_1080px.webp +0 -0
  63. package/templates/artpacks/t8k/cartoon_1920px.webp +0 -0
  64. package/templates/artpacks/t8k/cartoon_600px.webp +0 -0
  65. package/templates/artpacks/t8k/darkeggshell_1080px.webp +0 -0
  66. package/templates/artpacks/t8k/darkeggshell_1920px.webp +0 -0
  67. package/templates/artpacks/t8k/darkeggshell_600px.webp +0 -0
  68. package/templates/artpacks/t8k/explosion_1080px.webp +0 -0
  69. package/templates/artpacks/t8k/explosion_1920px.webp +0 -0
  70. package/templates/artpacks/t8k/explosion_600px.webp +0 -0
  71. package/templates/artpacks/t8k/floral_1080px.webp +0 -0
  72. package/templates/artpacks/t8k/floral_1920px.webp +0 -0
  73. package/templates/artpacks/t8k/floral_600px.webp +0 -0
  74. package/templates/artpacks/t8k/flower_1080px.webp +0 -0
  75. package/templates/artpacks/t8k/flower_1920px.webp +0 -0
  76. package/templates/artpacks/t8k/flower_600px.webp +0 -0
  77. package/templates/artpacks/t8k/foliage_1080px.webp +0 -0
  78. package/templates/artpacks/t8k/foliage_1920px.webp +0 -0
  79. package/templates/artpacks/t8k/foliage_600px.webp +0 -0
  80. package/templates/artpacks/t8k/mist_1080px.webp +0 -0
  81. package/templates/artpacks/t8k/mist_1920px.webp +0 -0
  82. package/templates/artpacks/t8k/mist_600px.webp +0 -0
  83. package/templates/artpacks/t8k/portal_1080px.webp +0 -0
  84. package/templates/artpacks/t8k/portal_1920px.webp +0 -0
  85. package/templates/artpacks/t8k/portal_600px.webp +0 -0
  86. package/templates/artpacks/t8k/storytime_1080px.webp +0 -0
  87. package/templates/artpacks/t8k/storytime_1920px.webp +0 -0
  88. package/templates/artpacks/t8k/storytime_600px.webp +0 -0
  89. package/templates/artpacks/t8k/tacky_1080px.webp +0 -0
  90. package/templates/artpacks/t8k/tacky_1920px.webp +0 -0
  91. package/templates/artpacks/t8k/tacky_600px.webp +0 -0
  92. package/templates/artpacks/t8k/wallpaper_1080px.webp +0 -0
  93. package/templates/artpacks/t8k/wallpaper_1920px.webp +0 -0
  94. package/templates/artpacks/t8k/wallpaper_600px.webp +0 -0
  95. package/templates/brand/favicon.ico +0 -0
  96. package/templates/brand/logo.svg +19 -0
  97. package/templates/brand/static.jpg +0 -0
  98. package/templates/brand/wordmark.svg +4 -0
  99. package/templates/css/custom.css +51 -0
  100. package/templates/css/frontend.css +3519 -0
  101. package/templates/css/storykeep.css +92872 -0
  102. package/templates/custom/minimal/CodeHook.astro +53 -0
  103. package/templates/custom/minimal/CustomRoutes.astro +46 -0
  104. package/templates/custom/with-examples/CodeHook.astro +49 -0
  105. package/templates/custom/with-examples/CustomHero.astro +13 -0
  106. package/templates/custom/with-examples/CustomRoutes.astro +39 -0
  107. package/templates/custom/with-examples/pages/Collections.astro +110 -0
  108. package/templates/env.example +8 -0
  109. package/templates/fonts/Inter-Black.woff2 +0 -0
  110. package/templates/fonts/Inter-Bold.woff2 +0 -0
  111. package/templates/fonts/Inter-Regular.woff2 +0 -0
  112. package/templates/icons/h2.svg +1 -0
  113. package/templates/icons/h3.svg +1 -0
  114. package/templates/icons/h4.svg +1 -0
  115. package/templates/icons/h5.svg +1 -0
  116. package/templates/icons/image.svg +7 -0
  117. package/templates/icons/text.svg +6 -0
  118. package/templates/socials/codepen.svg +1 -0
  119. package/templates/socials/discord.svg +1 -0
  120. package/templates/socials/facebook.svg +1 -0
  121. package/templates/socials/github.svg +1 -0
  122. package/templates/socials/instagram.svg +1 -0
  123. package/templates/socials/linkedin.svg +1 -0
  124. package/templates/socials/mail.svg +1 -0
  125. package/templates/socials/rumble.svg +1 -0
  126. package/templates/socials/tiktok.svg +1 -0
  127. package/templates/socials/twitch.svg +1 -0
  128. package/templates/socials/twitter.svg +1 -0
  129. package/templates/socials/x.svg +1 -0
  130. package/templates/socials/youtube.svg +1 -0
  131. package/templates/src/client/analytics-events.ts +213 -0
  132. package/templates/src/client/belief-events.ts +205 -0
  133. package/templates/src/client/sse.ts +667 -0
  134. package/templates/src/components/Footer.astro +246 -0
  135. package/templates/src/components/Fragment.astro +70 -0
  136. package/templates/src/components/Header.astro +458 -0
  137. package/templates/src/components/Menu.tsx +196 -0
  138. package/templates/src/components/codehooks/BunnyVideoSetup.tsx +692 -0
  139. package/templates/src/components/codehooks/BunnyVideoWrapper.astro +78 -0
  140. package/templates/src/components/codehooks/EpinetDurationSelector.tsx +1020 -0
  141. package/templates/src/components/codehooks/EpinetTableView.tsx +594 -0
  142. package/templates/src/components/codehooks/EpinetWrapper.tsx +424 -0
  143. package/templates/src/components/codehooks/FeaturedContent.astro +273 -0
  144. package/templates/src/components/codehooks/FeaturedContentSetup.tsx +738 -0
  145. package/templates/src/components/codehooks/ListContent.astro +460 -0
  146. package/templates/src/components/codehooks/ListContentSetup.tsx +649 -0
  147. package/templates/src/components/codehooks/SankeyDiagram.tsx +359 -0
  148. package/templates/src/components/compositor/Compositor.tsx +144 -0
  149. package/templates/src/components/compositor/Node.tsx +415 -0
  150. package/templates/src/components/compositor/NodeWithGuid.tsx +25 -0
  151. package/templates/src/components/compositor/PanelVisibilityWrapper.tsx +87 -0
  152. package/templates/src/components/compositor/elements/Belief.tsx +148 -0
  153. package/templates/src/components/compositor/elements/BgImage.tsx +118 -0
  154. package/templates/src/components/compositor/elements/BgVisualBreak.tsx +102 -0
  155. package/templates/src/components/compositor/elements/BunnyVideo.tsx +63 -0
  156. package/templates/src/components/compositor/elements/IdentifyAs.tsx +66 -0
  157. package/templates/src/components/compositor/elements/PlayButton.tsx +19 -0
  158. package/templates/src/components/compositor/elements/SignUp.tsx +179 -0
  159. package/templates/src/components/compositor/elements/Svg.tsx +33 -0
  160. package/templates/src/components/compositor/elements/ToggleBelief.tsx +36 -0
  161. package/templates/src/components/compositor/elements/YouTubeWrapper.tsx +33 -0
  162. package/templates/src/components/compositor/nodes/BgPaneWrapper.tsx +35 -0
  163. package/templates/src/components/compositor/nodes/GhostInsertBlock.tsx +189 -0
  164. package/templates/src/components/compositor/nodes/Markdown.tsx +179 -0
  165. package/templates/src/components/compositor/nodes/Pane.tsx +277 -0
  166. package/templates/src/components/compositor/nodes/Pane_eraser.tsx +69 -0
  167. package/templates/src/components/compositor/nodes/Pane_layout.tsx +77 -0
  168. package/templates/src/components/compositor/nodes/RenderChildren.tsx +19 -0
  169. package/templates/src/components/compositor/nodes/StoryFragment.tsx +35 -0
  170. package/templates/src/components/compositor/nodes/TagElement.tsx +14 -0
  171. package/templates/src/components/compositor/nodes/Widget.tsx +115 -0
  172. package/templates/src/components/compositor/nodes/tagElements/NodeA.tsx +4 -0
  173. package/templates/src/components/compositor/nodes/tagElements/NodeA_eraser.tsx +26 -0
  174. package/templates/src/components/compositor/nodes/tagElements/NodeAnchorComponent.tsx +248 -0
  175. package/templates/src/components/compositor/nodes/tagElements/NodeBasicTag.tsx +684 -0
  176. package/templates/src/components/compositor/nodes/tagElements/NodeBasicTag_eraser.tsx +62 -0
  177. package/templates/src/components/compositor/nodes/tagElements/NodeBasicTag_insert.tsx +120 -0
  178. package/templates/src/components/compositor/nodes/tagElements/NodeBasicTag_settings.tsx +62 -0
  179. package/templates/src/components/compositor/nodes/tagElements/NodeButton.tsx +5 -0
  180. package/templates/src/components/compositor/nodes/tagElements/NodeButton_eraser.tsx +26 -0
  181. package/templates/src/components/compositor/nodes/tagElements/NodeImg.tsx +28 -0
  182. package/templates/src/components/compositor/nodes/tagElements/NodeText.tsx +18 -0
  183. package/templates/src/components/compositor/nodes/tagElements/TabIndicator.tsx +51 -0
  184. package/templates/src/components/compositor/preview/FeaturedContentPreview.tsx +128 -0
  185. package/templates/src/components/compositor/preview/ListContentPreview.tsx +213 -0
  186. package/templates/src/components/compositor/preview/OgImagePreview.tsx +223 -0
  187. package/templates/src/components/compositor/preview/PaneSnapshotGenerator.tsx +199 -0
  188. package/templates/src/components/compositor/preview/PanesPreviewGenerator.tsx +123 -0
  189. package/templates/src/components/compositor/preview/VisualBreakPreview.tsx +154 -0
  190. package/templates/src/components/edit/Header.tsx +181 -0
  191. package/templates/src/components/edit/PanelSwitch.tsx +446 -0
  192. package/templates/src/components/edit/SettingsPanel.tsx +70 -0
  193. package/templates/src/components/edit/ToolBar.tsx +101 -0
  194. package/templates/src/components/edit/ToolMode.tsx +121 -0
  195. package/templates/src/components/edit/context/ContextPaneConfig.tsx +91 -0
  196. package/templates/src/components/edit/context/ContextPaneConfig_slug.tsx +174 -0
  197. package/templates/src/components/edit/context/ContextPaneConfig_title.tsx +186 -0
  198. package/templates/src/components/edit/pane/AddPanePanel.tsx +136 -0
  199. package/templates/src/components/edit/pane/AddPanePanel_break.tsx +470 -0
  200. package/templates/src/components/edit/pane/AddPanePanel_codehook.tsx +264 -0
  201. package/templates/src/components/edit/pane/AddPanePanel_new.tsx +623 -0
  202. package/templates/src/components/edit/pane/AddPanePanel_newAICopy.tsx +107 -0
  203. package/templates/src/components/edit/pane/AddPanePanel_newAICopy_modal.tsx +217 -0
  204. package/templates/src/components/edit/pane/AddPanePanel_newCopyMode.tsx +109 -0
  205. package/templates/src/components/edit/pane/AddPanePanel_newCustomCopy.tsx +39 -0
  206. package/templates/src/components/edit/pane/AddPanePanel_reuse.tsx +445 -0
  207. package/templates/src/components/edit/pane/ConfigPanePanel.tsx +245 -0
  208. package/templates/src/components/edit/pane/PageGen.tsx +485 -0
  209. package/templates/src/components/edit/pane/PageGenSelector.tsx +238 -0
  210. package/templates/src/components/edit/pane/PageGenSpecial.tsx +362 -0
  211. package/templates/src/components/edit/pane/PageGen_preview.tsx +495 -0
  212. package/templates/src/components/edit/pane/PanePanel_impression.tsx +258 -0
  213. package/templates/src/components/edit/pane/PanePanel_path.tsx +268 -0
  214. package/templates/src/components/edit/pane/PanePanel_slug.tsx +219 -0
  215. package/templates/src/components/edit/pane/PanePanel_title.tsx +142 -0
  216. package/templates/src/components/edit/panels/StyleBreakPanel.tsx +182 -0
  217. package/templates/src/components/edit/panels/StyleCodeHookPanel.tsx +439 -0
  218. package/templates/src/components/edit/panels/StyleElementPanel.tsx +177 -0
  219. package/templates/src/components/edit/panels/StyleElementPanel_add.tsx +349 -0
  220. package/templates/src/components/edit/panels/StyleElementPanel_remove.tsx +159 -0
  221. package/templates/src/components/edit/panels/StyleElementPanel_update.tsx +320 -0
  222. package/templates/src/components/edit/panels/StyleImagePanel.tsx +460 -0
  223. package/templates/src/components/edit/panels/StyleImagePanel_add.tsx +296 -0
  224. package/templates/src/components/edit/panels/StyleImagePanel_remove.tsx +153 -0
  225. package/templates/src/components/edit/panels/StyleImagePanel_update.tsx +312 -0
  226. package/templates/src/components/edit/panels/StyleLiElementPanel.tsx +273 -0
  227. package/templates/src/components/edit/panels/StyleLiElementPanel_add.tsx +301 -0
  228. package/templates/src/components/edit/panels/StyleLiElementPanel_remove.tsx +132 -0
  229. package/templates/src/components/edit/panels/StyleLiElementPanel_update.tsx +313 -0
  230. package/templates/src/components/edit/panels/StyleLinkPanel.tsx +346 -0
  231. package/templates/src/components/edit/panels/StyleLinkPanel_add.tsx +265 -0
  232. package/templates/src/components/edit/panels/StyleLinkPanel_config.tsx +240 -0
  233. package/templates/src/components/edit/panels/StyleLinkPanel_remove.tsx +94 -0
  234. package/templates/src/components/edit/panels/StyleLinkPanel_update.tsx +110 -0
  235. package/templates/src/components/edit/panels/StyleParentPanel.tsx +263 -0
  236. package/templates/src/components/edit/panels/StyleParentPanel_add.tsx +275 -0
  237. package/templates/src/components/edit/panels/StyleParentPanel_deleteLayer.tsx +112 -0
  238. package/templates/src/components/edit/panels/StyleParentPanel_remove.tsx +87 -0
  239. package/templates/src/components/edit/panels/StyleParentPanel_update.tsx +141 -0
  240. package/templates/src/components/edit/panels/StyleWidgetPanel.tsx +428 -0
  241. package/templates/src/components/edit/panels/StyleWidgetPanel_add.tsx +292 -0
  242. package/templates/src/components/edit/panels/StyleWidgetPanel_config.tsx +190 -0
  243. package/templates/src/components/edit/panels/StyleWidgetPanel_remove.tsx +152 -0
  244. package/templates/src/components/edit/panels/StyleWidgetPanel_update.tsx +308 -0
  245. package/templates/src/components/edit/state/SaveModal.tsx +811 -0
  246. package/templates/src/components/edit/state/StylesMemory.tsx +310 -0
  247. package/templates/src/components/edit/storyfragment/StoryFragmentConfigPanel.tsx +289 -0
  248. package/templates/src/components/edit/storyfragment/StoryFragmentPanel_menu.tsx +320 -0
  249. package/templates/src/components/edit/storyfragment/StoryFragmentPanel_og.tsx +888 -0
  250. package/templates/src/components/edit/storyfragment/StoryFragmentPanel_slug.tsx +269 -0
  251. package/templates/src/components/edit/storyfragment/StoryFragmentPanel_title.tsx +190 -0
  252. package/templates/src/components/edit/widgets/BeliefWidget.tsx +183 -0
  253. package/templates/src/components/edit/widgets/BunnyWidget.tsx +134 -0
  254. package/templates/src/components/edit/widgets/IdentifyAsWidget.tsx +193 -0
  255. package/templates/src/components/edit/widgets/SignupWidget.tsx +177 -0
  256. package/templates/src/components/edit/widgets/ToggleWidget.tsx +152 -0
  257. package/templates/src/components/edit/widgets/YouTubeWidget.tsx +65 -0
  258. package/templates/src/components/fields/ActionBuilderTimeSelector.tsx +353 -0
  259. package/templates/src/components/fields/ArtpackImage.tsx +480 -0
  260. package/templates/src/components/fields/BackgroundImage.tsx +530 -0
  261. package/templates/src/components/fields/BackgroundImageWrapper.tsx +192 -0
  262. package/templates/src/components/fields/BooleanParam.tsx +67 -0
  263. package/templates/src/components/fields/BunnyMomentSelector.tsx +56 -0
  264. package/templates/src/components/fields/ColorPickerCombo.tsx +284 -0
  265. package/templates/src/components/fields/ImageUpload.tsx +405 -0
  266. package/templates/src/components/fields/MultiParam.tsx +75 -0
  267. package/templates/src/components/fields/PaneBreakCollectionSelector.tsx +97 -0
  268. package/templates/src/components/fields/PaneBreakShapeSelector.tsx +134 -0
  269. package/templates/src/components/fields/SelectedTailwindClass.tsx +44 -0
  270. package/templates/src/components/fields/SingleParam.tsx +73 -0
  271. package/templates/src/components/fields/ViewportComboBox.tsx +252 -0
  272. package/templates/src/components/form/ActionBuilderField.tsx +282 -0
  273. package/templates/src/components/form/ActionBuilderSlugSelector.tsx +182 -0
  274. package/templates/src/components/form/BooleanToggle.tsx +94 -0
  275. package/templates/src/components/form/ColorPicker.tsx +153 -0
  276. package/templates/src/components/form/DateTimeInput.tsx +638 -0
  277. package/templates/src/components/form/EnumSelect.tsx +88 -0
  278. package/templates/src/components/form/FileUpload.tsx +465 -0
  279. package/templates/src/components/form/MagicPathBuilder.tsx +546 -0
  280. package/templates/src/components/form/NumberInput.tsx +101 -0
  281. package/templates/src/components/form/ParagraphArrayInput.tsx +207 -0
  282. package/templates/src/components/form/StringArrayInput.tsx +163 -0
  283. package/templates/src/components/form/StringInput.tsx +88 -0
  284. package/templates/src/components/form/UnsavedChangesBar.tsx +295 -0
  285. package/templates/src/components/form/advanced/APIConfigSection.tsx +69 -0
  286. package/templates/src/components/form/advanced/AuthConfigSection.tsx +97 -0
  287. package/templates/src/components/form/brand/BrandAssetsSection.tsx +93 -0
  288. package/templates/src/components/form/brand/BrandColorsSection.tsx +201 -0
  289. package/templates/src/components/form/brand/SEOSection.tsx +101 -0
  290. package/templates/src/components/form/brand/SiteConfigSection.tsx +61 -0
  291. package/templates/src/components/form/brand/SocialLinksSection.tsx +393 -0
  292. package/templates/src/components/profile/ProfileConsent.tsx +65 -0
  293. package/templates/src/components/profile/ProfileCreate.tsx +462 -0
  294. package/templates/src/components/profile/ProfileEdit.tsx +409 -0
  295. package/templates/src/components/profile/ProfileSwitch.tsx +255 -0
  296. package/templates/src/components/profile/ProfileUnlock.tsx +221 -0
  297. package/templates/src/components/storykeep/Dashboard.tsx +160 -0
  298. package/templates/src/components/storykeep/Dashboard_Activity.tsx +56 -0
  299. package/templates/src/components/storykeep/Dashboard_Advanced.tsx +165 -0
  300. package/templates/src/components/storykeep/Dashboard_Analytics.tsx +451 -0
  301. package/templates/src/components/storykeep/Dashboard_Branding.tsx +95 -0
  302. package/templates/src/components/storykeep/Dashboard_Content.tsx +191 -0
  303. package/templates/src/components/storykeep/controls/UsageCell.tsx +71 -0
  304. package/templates/src/components/storykeep/controls/content/BeliefForm.tsx +378 -0
  305. package/templates/src/components/storykeep/controls/content/BeliefTable.tsx +329 -0
  306. package/templates/src/components/storykeep/controls/content/ContentBrowser.tsx +385 -0
  307. package/templates/src/components/storykeep/controls/content/ContentSummary.tsx +149 -0
  308. package/templates/src/components/storykeep/controls/content/KnownResourceForm.tsx +397 -0
  309. package/templates/src/components/storykeep/controls/content/KnownResourceTable.tsx +260 -0
  310. package/templates/src/components/storykeep/controls/content/ManageContent.tsx +439 -0
  311. package/templates/src/components/storykeep/controls/content/MenuForm.tsx +239 -0
  312. package/templates/src/components/storykeep/controls/content/MenuTable.tsx +332 -0
  313. package/templates/src/components/storykeep/controls/content/ResourceBulkIngest.tsx +724 -0
  314. package/templates/src/components/storykeep/controls/content/ResourceForm.tsx +355 -0
  315. package/templates/src/components/storykeep/controls/content/ResourceTable.tsx +222 -0
  316. package/templates/src/components/storykeep/controls/content/StoryFragmentTable.tsx +482 -0
  317. package/templates/src/components/storykeep/state/BrandingWrapper.tsx +42 -0
  318. package/templates/src/components/storykeep/state/FetchAnalytics.tsx +350 -0
  319. package/templates/src/components/storykeep/widgets/ResponsiveLine.tsx +319 -0
  320. package/templates/src/components/storykeep/widgets/Wizard.tsx +278 -0
  321. package/templates/src/components/tenant/RegistrationForm.tsx +447 -0
  322. package/templates/src/components/widgets/BunnyVideoHero.astro +775 -0
  323. package/templates/src/components/widgets/Impression.tsx +102 -0
  324. package/templates/src/components/widgets/ImpressionWrapper.tsx +214 -0
  325. package/templates/src/constants/beliefs.ts +61 -0
  326. package/templates/src/constants/brandThemes.ts +133 -0
  327. package/templates/src/constants/prompts.json +55 -0
  328. package/templates/src/constants/shapes.ts +556 -0
  329. package/templates/src/constants/stopWords.ts +116 -0
  330. package/templates/src/constants/tailwindColors.json +344 -0
  331. package/templates/src/constants.ts +274 -0
  332. package/templates/src/hooks/useFormState.ts +203 -0
  333. package/templates/src/layouts/Layout.astro +290 -0
  334. package/templates/src/lib/session.ts +126 -0
  335. package/templates/src/lib/storyData.ts +56 -0
  336. package/templates/src/middleware.ts +52 -0
  337. package/templates/src/pages/404.astro +54 -0
  338. package/templates/src/pages/[...slug]/edit.astro +216 -0
  339. package/templates/src/pages/[...slug].astro +148 -0
  340. package/templates/src/pages/api/auth/decode.ts +101 -0
  341. package/templates/src/pages/api/auth/login.ts +122 -0
  342. package/templates/src/pages/api/auth/logout.ts +37 -0
  343. package/templates/src/pages/api/auth/profile.ts +76 -0
  344. package/templates/src/pages/api/orphan-analysis.ts +106 -0
  345. package/templates/src/pages/api/tailwind.ts +116 -0
  346. package/templates/src/pages/collections/[param1].astro +65 -0
  347. package/templates/src/pages/context/[...contextSlug]/edit.astro +207 -0
  348. package/templates/src/pages/context/[...contextSlug].astro +161 -0
  349. package/templates/src/pages/llms.txt.ts +122 -0
  350. package/templates/src/pages/maint.astro +183 -0
  351. package/templates/src/pages/media/[...slug].astro +67 -0
  352. package/templates/src/pages/robots.txt.ts +36 -0
  353. package/templates/src/pages/sandbox/activate.astro +258 -0
  354. package/templates/src/pages/sandbox/register.astro +44 -0
  355. package/templates/src/pages/sandbox/success.astro +179 -0
  356. package/templates/src/pages/sitemap.xml.ts +119 -0
  357. package/templates/src/pages/storykeep/advanced.astro +69 -0
  358. package/templates/src/pages/storykeep/branding.astro +57 -0
  359. package/templates/src/pages/storykeep/content.astro +71 -0
  360. package/templates/src/pages/storykeep/init.astro +36 -0
  361. package/templates/src/pages/storykeep/login.astro +266 -0
  362. package/templates/src/pages/storykeep/logout.astro +84 -0
  363. package/templates/src/pages/storykeep/profile.astro +98 -0
  364. package/templates/src/pages/storykeep.astro +81 -0
  365. package/templates/src/stores/analytics.ts +171 -0
  366. package/templates/src/stores/backend.ts +16 -0
  367. package/templates/src/stores/navigation.ts +149 -0
  368. package/templates/src/stores/nodes.ts +2390 -0
  369. package/templates/src/stores/nodesHistory.ts +85 -0
  370. package/templates/src/stores/notificationSystem.ts +41 -0
  371. package/templates/src/stores/orphanAnalysis.ts +409 -0
  372. package/templates/src/stores/storykeep.ts +247 -0
  373. package/templates/src/types/astro.ts +86 -0
  374. package/templates/src/types/compositorTypes.ts +456 -0
  375. package/templates/src/types/formTypes.ts +281 -0
  376. package/templates/src/types/multiTenant.ts +77 -0
  377. package/templates/src/types/nodeProps.ts +66 -0
  378. package/templates/src/types/tractstack.ts +445 -0
  379. package/templates/src/utils/aai/getTitleSlug.ts +72 -0
  380. package/templates/src/utils/actions/actionButton.ts +101 -0
  381. package/templates/src/utils/actions/lispLexer.ts +57 -0
  382. package/templates/src/utils/actions/preParse_Action.ts +85 -0
  383. package/templates/src/utils/actions/preParse_Bunny.ts +50 -0
  384. package/templates/src/utils/actions/preParse_Clicked.ts +87 -0
  385. package/templates/src/utils/actions/preParse_Impression.ts +71 -0
  386. package/templates/src/utils/api/advancedConfig.ts +66 -0
  387. package/templates/src/utils/api/advancedHelpers.ts +134 -0
  388. package/templates/src/utils/api/beliefConfig.ts +87 -0
  389. package/templates/src/utils/api/beliefHelpers.ts +196 -0
  390. package/templates/src/utils/api/brandConfig.ts +126 -0
  391. package/templates/src/utils/api/brandHelpers.ts +155 -0
  392. package/templates/src/utils/api/fileHelpers.ts +306 -0
  393. package/templates/src/utils/api/menuConfig.ts +57 -0
  394. package/templates/src/utils/api/menuHelpers.ts +156 -0
  395. package/templates/src/utils/api/resourceConfig.ts +158 -0
  396. package/templates/src/utils/api/resourceHelpers.ts +72 -0
  397. package/templates/src/utils/api/tenantConfig.ts +97 -0
  398. package/templates/src/utils/api/tenantHelpers.ts +172 -0
  399. package/templates/src/utils/api.ts +183 -0
  400. package/templates/src/utils/auth.ts +150 -0
  401. package/templates/src/utils/backend.ts +243 -0
  402. package/templates/src/utils/compositor/TemplateMarkdowns.ts +118 -0
  403. package/templates/src/utils/compositor/TemplateNodes.ts +138 -0
  404. package/templates/src/utils/compositor/TemplatePanes.ts +100 -0
  405. package/templates/src/utils/compositor/allowInsert.ts +100 -0
  406. package/templates/src/utils/compositor/domHelpers.ts +37 -0
  407. package/templates/src/utils/compositor/handleClickEvent.ts +131 -0
  408. package/templates/src/utils/compositor/nodesHelper.ts +491 -0
  409. package/templates/src/utils/compositor/nodesMarkdownGenerator.ts +292 -0
  410. package/templates/src/utils/compositor/processMarkdown.ts +431 -0
  411. package/templates/src/utils/compositor/reduceNodesClassNames.ts +192 -0
  412. package/templates/src/utils/compositor/tailwindClasses.ts +1795 -0
  413. package/templates/src/utils/compositor/tailwindColors.ts +227 -0
  414. package/templates/src/utils/compositor/templateMarkdownStyles.ts +1265 -0
  415. package/templates/src/utils/compositor/typeGuards.ts +193 -0
  416. package/templates/src/utils/etl/extractor.ts +119 -0
  417. package/templates/src/utils/etl/index.ts +88 -0
  418. package/templates/src/utils/etl/loader.ts +36 -0
  419. package/templates/src/utils/etl/transformer.ts +286 -0
  420. package/templates/src/utils/helpers.ts +435 -0
  421. package/templates/src/utils/layout.ts +209 -0
  422. package/templates/src/utils/profileStorage.ts +306 -0
  423. package/templates/src/utils/useInterval.ts +27 -0
  424. package/templates/tailwind.config.cjs +169 -0
  425. package/utils/create-resolver.ts +10 -0
  426. package/utils/inject-files.ts +2140 -0
  427. package/utils/validate-config.ts +43 -0
@@ -0,0 +1,2140 @@
1
+ import { copyFileSync, existsSync, mkdirSync, writeFileSync } from 'node:fs';
2
+ import { dirname } from 'node:path';
3
+ import type { AstroIntegrationLogger } from '@/types/astro';
4
+
5
+ interface InjectFilesConfig {
6
+ includeExamples?: boolean;
7
+ enableMultiTenant?: boolean;
8
+ }
9
+
10
+ /**
11
+ * Injects template files into the project directory, organizing them into functional groups.
12
+ * Skips or overwrites files based on configuration and protection status.
13
+ * @param resolve - Function to resolve template file paths
14
+ * @param logger - Astro integration logger for logging operations
15
+ * @param config - Configuration options for including examples and enabling multi-tenant features
16
+ */
17
+ export async function injectTemplateFiles(
18
+ resolve: (path: string) => string,
19
+ logger: AstroIntegrationLogger,
20
+ config?: InjectFilesConfig
21
+ ): Promise<void> {
22
+ logger.info('TractStack: Injecting template files');
23
+
24
+ // File groupings organized by functionality
25
+ const templateFiles = [
26
+ // Core Configuration
27
+ {
28
+ src: resolve('../templates/env.example'),
29
+ dest: 'env.example',
30
+ },
31
+ {
32
+ src: resolve('../templates/.gitignore'),
33
+ dest: '.gitignore',
34
+ },
35
+ {
36
+ src: resolve('../templates/tailwind.config.cjs'),
37
+ dest: 'tailwind.config.cjs',
38
+ },
39
+ {
40
+ src: resolve('../templates/src/constants.ts'),
41
+ dest: 'src/constants.ts',
42
+ },
43
+ {
44
+ src: resolve('../templates/src/constants/stopWords.ts'),
45
+ dest: 'src/constants/stopWords.ts',
46
+ },
47
+ {
48
+ src: resolve('../templates/src/pages/media/[...slug].astro'),
49
+ dest: 'src/pages/media/[...slug].astro',
50
+ },
51
+
52
+ // Types
53
+ {
54
+ src: resolve('../templates/src/types/astro.ts'),
55
+ dest: 'src/types/astro.ts',
56
+ },
57
+ {
58
+ src: resolve('../astro.d.ts'),
59
+ dest: 'astro.d.ts',
60
+ },
61
+ {
62
+ src: resolve('../templates/src/types/tractstack.ts'),
63
+ dest: 'src/types/tractstack.ts',
64
+ },
65
+
66
+ // Compositor types
67
+ {
68
+ src: resolve('../templates/src/types/compositorTypes.ts'),
69
+ dest: 'src/types/compositorTypes.ts',
70
+ },
71
+ {
72
+ src: resolve('../templates/src/types/nodeProps.ts'),
73
+ dest: 'src/types/nodeProps.ts',
74
+ },
75
+ // Compositor components
76
+ {
77
+ src: resolve('../templates/src/components/compositor/Compositor.tsx'),
78
+ dest: 'src/components/compositor/Compositor.tsx',
79
+ },
80
+ {
81
+ src: resolve(
82
+ '../templates/src/components/compositor/PanelVisibilityWrapper.tsx'
83
+ ),
84
+ dest: 'src/components/compositor/PanelVisibilityWrapper.tsx',
85
+ },
86
+ {
87
+ src: resolve('../templates/src/components/compositor/Node.tsx'),
88
+ dest: 'src/components/compositor/Node.tsx',
89
+ },
90
+ {
91
+ src: resolve('../templates/src/components/compositor/NodeWithGuid.tsx'),
92
+ dest: 'src/components/compositor/NodeWithGuid.tsx',
93
+ },
94
+ {
95
+ src: resolve(
96
+ '../templates/src/components/compositor/nodes/RenderChildren.tsx'
97
+ ),
98
+ dest: 'src/components/compositor/nodes/RenderChildren.tsx',
99
+ },
100
+ {
101
+ src: resolve(
102
+ '../templates/src/components/compositor/nodes/GhostInsertBlock.tsx'
103
+ ),
104
+ dest: 'src/components/compositor/nodes/GhostInsertBlock.tsx',
105
+ },
106
+ {
107
+ src: resolve(
108
+ '../templates/src/components/compositor/nodes/StoryFragment.tsx'
109
+ ),
110
+ dest: 'src/components/compositor/nodes/StoryFragment.tsx',
111
+ },
112
+ {
113
+ src: resolve('../templates/src/components/compositor/nodes/Pane.tsx'),
114
+ dest: 'src/components/compositor/nodes/Pane.tsx',
115
+ },
116
+ {
117
+ src: resolve(
118
+ '../templates/src/components/compositor/nodes/Pane_eraser.tsx'
119
+ ),
120
+ dest: 'src/components/compositor/nodes/Pane_eraser.tsx',
121
+ },
122
+ {
123
+ src: resolve(
124
+ '../templates/src/components/compositor/nodes/Pane_layout.tsx'
125
+ ),
126
+ dest: 'src/components/compositor/nodes/Pane_layout.tsx',
127
+ },
128
+ {
129
+ src: resolve('../templates/src/components/compositor/nodes/Markdown.tsx'),
130
+ dest: 'src/components/compositor/nodes/Markdown.tsx',
131
+ },
132
+ {
133
+ src: resolve(
134
+ '../templates/src/components/compositor/nodes/BgPaneWrapper.tsx'
135
+ ),
136
+ dest: 'src/components/compositor/nodes/BgPaneWrapper.tsx',
137
+ },
138
+ {
139
+ src: resolve('../templates/src/components/compositor/nodes/Widget.tsx'),
140
+ dest: 'src/components/compositor/nodes/Widget.tsx',
141
+ },
142
+ {
143
+ src: resolve(
144
+ '../templates/src/components/compositor/nodes/TagElement.tsx'
145
+ ),
146
+ dest: 'src/components/compositor/nodes/TagElement.tsx',
147
+ },
148
+ {
149
+ src: resolve(
150
+ '../templates/src/components/compositor/nodes/tagElements/TabIndicator.tsx'
151
+ ),
152
+ dest: 'src/components/compositor/nodes/tagElements/TabIndicator.tsx',
153
+ },
154
+ {
155
+ src: resolve(
156
+ '../templates/src/components/compositor/nodes/tagElements/NodeBasicTag.tsx'
157
+ ),
158
+ dest: 'src/components/compositor/nodes/tagElements/NodeBasicTag.tsx',
159
+ },
160
+ {
161
+ src: resolve(
162
+ '../templates/src/components/compositor/nodes/tagElements/NodeBasicTag_insert.tsx'
163
+ ),
164
+ dest: 'src/components/compositor/nodes/tagElements/NodeBasicTag_insert.tsx',
165
+ },
166
+ {
167
+ src: resolve(
168
+ '../templates/src/components/compositor/nodes/tagElements/NodeBasicTag_eraser.tsx'
169
+ ),
170
+ dest: 'src/components/compositor/nodes/tagElements/NodeBasicTag_eraser.tsx',
171
+ },
172
+ {
173
+ src: resolve(
174
+ '../templates/src/components/compositor/nodes/tagElements/NodeBasicTag_settings.tsx'
175
+ ),
176
+ dest: 'src/components/compositor/nodes/tagElements/NodeBasicTag_settings.tsx',
177
+ },
178
+ {
179
+ src: resolve(
180
+ '../templates/src/components/compositor/nodes/tagElements/NodeText.tsx'
181
+ ),
182
+ dest: 'src/components/compositor/nodes/tagElements/NodeText.tsx',
183
+ },
184
+ {
185
+ src: resolve(
186
+ '../templates/src/components/compositor/nodes/tagElements/NodeAnchorComponent.tsx'
187
+ ),
188
+ dest: 'src/components/compositor/nodes/tagElements/NodeAnchorComponent.tsx',
189
+ },
190
+ {
191
+ src: resolve(
192
+ '../templates/src/components/compositor/nodes/tagElements/NodeA.tsx'
193
+ ),
194
+ dest: 'src/components/compositor/nodes/tagElements/NodeA.tsx',
195
+ },
196
+ {
197
+ src: resolve(
198
+ '../templates/src/components/compositor/nodes/tagElements/NodeA_eraser.tsx'
199
+ ),
200
+ dest: 'src/components/compositor/nodes/tagElements/NodeA_eraser.tsx',
201
+ },
202
+ {
203
+ src: resolve(
204
+ '../templates/src/components/compositor/nodes/tagElements/NodeButton.tsx'
205
+ ),
206
+ dest: 'src/components/compositor/nodes/tagElements/NodeButton.tsx',
207
+ },
208
+ {
209
+ src: resolve(
210
+ '../templates/src/components/compositor/nodes/tagElements/NodeButton_eraser.tsx'
211
+ ),
212
+ dest: 'src/components/compositor/nodes/tagElements/NodeButton_eraser.tsx',
213
+ },
214
+ {
215
+ src: resolve(
216
+ '../templates/src/components/compositor/nodes/tagElements/NodeImg.tsx'
217
+ ),
218
+ dest: 'src/components/compositor/nodes/tagElements/NodeImg.tsx',
219
+ },
220
+ // Edit widgets
221
+ {
222
+ src: resolve('../templates/src/components/edit/widgets/BeliefWidget.tsx'),
223
+ dest: 'src/components/edit/widgets/BeliefWidget.tsx',
224
+ },
225
+ {
226
+ src: resolve(
227
+ '../templates/src/components/edit/widgets/IdentifyAsWidget.tsx'
228
+ ),
229
+ dest: 'src/components/edit/widgets/IdentifyAsWidget.tsx',
230
+ },
231
+ {
232
+ src: resolve('../templates/src/components/edit/widgets/ToggleWidget.tsx'),
233
+ dest: 'src/components/edit/widgets/ToggleWidget.tsx',
234
+ },
235
+ {
236
+ src: resolve('../templates/src/components/edit/widgets/BunnyWidget.tsx'),
237
+ dest: 'src/components/edit/widgets/BunnyWidget.tsx',
238
+ },
239
+ {
240
+ src: resolve('../templates/src/components/edit/widgets/SignupWidget.tsx'),
241
+ dest: 'src/components/edit/widgets/SignupWidget.tsx',
242
+ },
243
+ {
244
+ src: resolve(
245
+ '../templates/src/components/edit/widgets/YouTubeWidget.tsx'
246
+ ),
247
+ dest: 'src/components/edit/widgets/YouTubeWidget.tsx',
248
+ },
249
+ // Compositor fields
250
+ {
251
+ src: resolve('../templates/src/components/fields/SingleParam.tsx'),
252
+ dest: 'src/components/fields/SingleParam.tsx',
253
+ },
254
+ {
255
+ src: resolve('../templates/src/components/fields/BooleanParam.tsx'),
256
+ dest: 'src/components/fields/BooleanParam.tsx',
257
+ },
258
+ {
259
+ src: resolve('../templates/src/components/fields/MultiParam.tsx'),
260
+ dest: 'src/components/fields/MultiParam.tsx',
261
+ },
262
+ {
263
+ src: resolve('../templates/src/components/fields/ImageUpload.tsx'),
264
+ dest: 'src/components/fields/ImageUpload.tsx',
265
+ },
266
+ {
267
+ src: resolve('../templates/src/components/fields/ArtpackImage.tsx'),
268
+ dest: 'src/components/fields/ArtpackImage.tsx',
269
+ },
270
+ {
271
+ src: resolve('../templates/src/components/fields/BackgroundImage.tsx'),
272
+ dest: 'src/components/fields/BackgroundImage.tsx',
273
+ },
274
+ {
275
+ src: resolve(
276
+ '../templates/src/components/fields/BackgroundImageWrapper.tsx'
277
+ ),
278
+ dest: 'src/components/fields/BackgroundImageWrapper.tsx',
279
+ },
280
+ {
281
+ src: resolve('../templates/src/components/fields/ColorPickerCombo.tsx'),
282
+ dest: 'src/components/fields/ColorPickerCombo.tsx',
283
+ },
284
+ {
285
+ src: resolve(
286
+ '../templates/src/components/fields/PaneBreakCollectionSelector.tsx'
287
+ ),
288
+ dest: 'src/components/fields/PaneBreakCollectionSelector.tsx',
289
+ },
290
+ {
291
+ src: resolve(
292
+ '../templates/src/components/fields/PaneBreakShapeSelector.tsx'
293
+ ),
294
+ dest: 'src/components/fields/PaneBreakShapeSelector.tsx',
295
+ },
296
+ {
297
+ src: resolve(
298
+ '../templates/src/components/fields/SelectedTailwindClass.tsx'
299
+ ),
300
+ dest: 'src/components/fields/SelectedTailwindClass.tsx',
301
+ },
302
+ {
303
+ src: resolve('../templates/src/components/fields/ViewportComboBox.tsx'),
304
+ dest: 'src/components/fields/ViewportComboBox.tsx',
305
+ },
306
+ {
307
+ src: resolve(
308
+ '../templates/src/components/fields/BunnyMomentSelector.tsx'
309
+ ),
310
+ dest: 'src/components/fields/BunnyMomentSelector.tsx',
311
+ },
312
+ {
313
+ src: resolve(
314
+ '../templates/src/components/fields/ActionBuilderTimeSelector.tsx'
315
+ ),
316
+ dest: 'src/components/fields/ActionBuilderTimeSelector.tsx',
317
+ },
318
+ // Compositor elements
319
+ {
320
+ src: resolve(
321
+ '../templates/src/components/compositor/elements/Belief.tsx'
322
+ ),
323
+ dest: 'src/components/compositor/elements/Belief.tsx',
324
+ },
325
+ {
326
+ src: resolve(
327
+ '../templates/src/components/compositor/elements/ToggleBelief.tsx'
328
+ ),
329
+ dest: 'src/components/compositor/elements/ToggleBelief.tsx',
330
+ },
331
+ {
332
+ src: resolve(
333
+ '../templates/src/components/compositor/elements/IdentifyAs.tsx'
334
+ ),
335
+ dest: 'src/components/compositor/elements/IdentifyAs.tsx',
336
+ },
337
+ {
338
+ src: resolve(
339
+ '../templates/src/components/compositor/elements/SignUp.tsx'
340
+ ),
341
+ dest: 'src/components/compositor/elements/SignUp.tsx',
342
+ },
343
+ {
344
+ src: resolve(
345
+ '../templates/src/components/compositor/elements/BunnyVideo.tsx'
346
+ ),
347
+ dest: 'src/components/compositor/elements/BunnyVideo.tsx',
348
+ },
349
+ {
350
+ src: resolve(
351
+ '../templates/src/components/compositor/elements/YouTubeWrapper.tsx'
352
+ ),
353
+ dest: 'src/components/compositor/elements/YouTubeWrapper.tsx',
354
+ },
355
+ {
356
+ src: resolve(
357
+ '../templates/src/components/compositor/elements/BgVisualBreak.tsx'
358
+ ),
359
+ dest: 'src/components/compositor/elements/BgVisualBreak.tsx',
360
+ },
361
+ {
362
+ src: resolve(
363
+ '../templates/src/components/compositor/elements/BgImage.tsx'
364
+ ),
365
+ dest: 'src/components/compositor/elements/BgImage.tsx',
366
+ },
367
+ {
368
+ src: resolve('../templates/src/components/compositor/elements/Svg.tsx'),
369
+ dest: 'src/components/compositor/elements/Svg.tsx',
370
+ },
371
+ {
372
+ src: resolve(
373
+ '../templates/src/components/compositor/elements/PlayButton.tsx'
374
+ ),
375
+ dest: 'src/components/compositor/elements/PlayButton.tsx',
376
+ },
377
+ // Compositor panels
378
+ {
379
+ src: resolve(
380
+ '../templates/src/components/edit/storyfragment/StoryFragmentConfigPanel.tsx'
381
+ ),
382
+ dest: 'src/components/edit/storyfragment/StoryFragmentConfigPanel.tsx',
383
+ },
384
+ {
385
+ src: resolve(
386
+ '../templates/src/components/edit/storyfragment/StoryFragmentPanel_title.tsx'
387
+ ),
388
+ dest: 'src/components/edit/storyfragment/StoryFragmentPanel_title.tsx',
389
+ },
390
+ {
391
+ src: resolve(
392
+ '../templates/src/components/edit/storyfragment/StoryFragmentPanel_slug.tsx'
393
+ ),
394
+ dest: 'src/components/edit/storyfragment/StoryFragmentPanel_slug.tsx',
395
+ },
396
+ {
397
+ src: resolve(
398
+ '../templates/src/components/edit/storyfragment/StoryFragmentPanel_menu.tsx'
399
+ ),
400
+ dest: 'src/components/edit/storyfragment/StoryFragmentPanel_menu.tsx',
401
+ },
402
+ {
403
+ src: resolve(
404
+ '../templates/src/components/edit/storyfragment/StoryFragmentPanel_og.tsx'
405
+ ),
406
+ dest: 'src/components/edit/storyfragment/StoryFragmentPanel_og.tsx',
407
+ },
408
+ {
409
+ src: resolve('../templates/src/components/edit/pane/AddPanePanel.tsx'),
410
+ dest: 'src/components/edit/pane/AddPanePanel.tsx',
411
+ },
412
+ {
413
+ src: resolve(
414
+ '../templates/src/components/edit/pane/AddPanePanel_break.tsx'
415
+ ),
416
+ dest: 'src/components/edit/pane/AddPanePanel_break.tsx',
417
+ },
418
+ {
419
+ src: resolve(
420
+ '../templates/src/components/edit/pane/AddPanePanel_codehook.tsx'
421
+ ),
422
+ dest: 'src/components/edit/pane/AddPanePanel_codehook.tsx',
423
+ },
424
+ {
425
+ src: resolve(
426
+ '../templates/src/components/edit/pane/AddPanePanel_newAICopy_modal.tsx'
427
+ ),
428
+ dest: 'src/components/edit/pane/AddPanePanel_newAICopy_modal.tsx',
429
+ },
430
+ {
431
+ src: resolve(
432
+ '../templates/src/components/edit/pane/AddPanePanel_newAICopy.tsx'
433
+ ),
434
+ dest: 'src/components/edit/pane/AddPanePanel_newAICopy.tsx',
435
+ },
436
+ {
437
+ src: resolve(
438
+ '../templates/src/components/edit/pane/AddPanePanel_newCopyMode.tsx'
439
+ ),
440
+ dest: 'src/components/edit/pane/AddPanePanel_newCopyMode.tsx',
441
+ },
442
+ {
443
+ src: resolve(
444
+ '../templates/src/components/edit/pane/AddPanePanel_newCustomCopy.tsx'
445
+ ),
446
+ dest: 'src/components/edit/pane/AddPanePanel_newCustomCopy.tsx',
447
+ },
448
+ {
449
+ src: resolve(
450
+ '../templates/src/components/edit/pane/AddPanePanel_new.tsx'
451
+ ),
452
+ dest: 'src/components/edit/pane/AddPanePanel_new.tsx',
453
+ },
454
+ {
455
+ src: resolve(
456
+ '../templates/src/components/edit/pane/AddPanePanel_reuse.tsx'
457
+ ),
458
+ dest: 'src/components/edit/pane/AddPanePanel_reuse.tsx',
459
+ },
460
+ {
461
+ src: resolve('../templates/src/components/edit/pane/ConfigPanePanel.tsx'),
462
+ dest: 'src/components/edit/pane/ConfigPanePanel.tsx',
463
+ },
464
+ {
465
+ src: resolve(
466
+ '../templates/src/components/edit/pane/PanePanel_impression.tsx'
467
+ ),
468
+ dest: 'src/components/edit/pane/PanePanel_impression.tsx',
469
+ },
470
+ {
471
+ src: resolve('../templates/src/components/edit/pane/PanePanel_path.tsx'),
472
+ dest: 'src/components/edit/pane/PanePanel_path.tsx',
473
+ },
474
+ {
475
+ src: resolve('../templates/src/components/edit/pane/PanePanel_slug.tsx'),
476
+ dest: 'src/components/edit/pane/PanePanel_slug.tsx',
477
+ },
478
+ {
479
+ src: resolve('../templates/src/components/edit/pane/PanePanel_title.tsx'),
480
+ dest: 'src/components/edit/pane/PanePanel_title.tsx',
481
+ },
482
+ {
483
+ src: resolve(
484
+ '../templates/src/components/edit/context/ContextPaneConfig.tsx'
485
+ ),
486
+ dest: 'src/components/edit/context/ContextPaneConfig.tsx',
487
+ },
488
+ {
489
+ src: resolve(
490
+ '../templates/src/components/edit/context/ContextPaneConfig_title.tsx'
491
+ ),
492
+ dest: 'src/components/edit/context/ContextPaneConfig_title.tsx',
493
+ },
494
+ {
495
+ src: resolve(
496
+ '../templates/src/components/edit/context/ContextPaneConfig_slug.tsx'
497
+ ),
498
+ dest: 'src/components/edit/context/ContextPaneConfig_slug.tsx',
499
+ },
500
+ {
501
+ src: resolve('../templates/src/components/edit/pane/PageGenSelector.tsx'),
502
+ dest: 'src/components/edit/pane/PageGenSelector.tsx',
503
+ },
504
+ {
505
+ src: resolve('../templates/src/components/edit/pane/PageGenSpecial.tsx'),
506
+ dest: 'src/components/edit/pane/PageGenSpecial.tsx',
507
+ },
508
+ {
509
+ src: resolve('../templates/src/components/edit/pane/PageGen.tsx'),
510
+ dest: 'src/components/edit/pane/PageGen.tsx',
511
+ },
512
+ {
513
+ src: resolve('../templates/src/components/edit/pane/PageGen_preview.tsx'),
514
+ dest: 'src/components/edit/pane/PageGen_preview.tsx',
515
+ },
516
+ // Compositor previews
517
+ {
518
+ src: resolve(
519
+ '../templates/src/components/compositor/preview/PanesPreviewGenerator.tsx'
520
+ ),
521
+ dest: 'src/components/compositor/preview/PanesPreviewGenerator.tsx',
522
+ },
523
+ {
524
+ src: resolve(
525
+ '../templates/src/components/compositor/preview/PaneSnapshotGenerator.tsx'
526
+ ),
527
+ dest: 'src/components/compositor/preview/PaneSnapshotGenerator.tsx',
528
+ },
529
+ {
530
+ src: resolve(
531
+ '../templates/src/components/compositor/preview/OgImagePreview.tsx'
532
+ ),
533
+ dest: 'src/components/compositor/preview/OgImagePreview.tsx',
534
+ },
535
+ {
536
+ src: resolve(
537
+ '../templates/src/components/compositor/preview/VisualBreakPreview.tsx'
538
+ ),
539
+ dest: 'src/components/compositor/preview/VisualBreakPreview.tsx',
540
+ },
541
+ {
542
+ src: resolve(
543
+ '../templates/src/components/compositor/preview/ListContentPreview.tsx'
544
+ ),
545
+ dest: 'src/components/compositor/preview/ListContentPreview.tsx',
546
+ },
547
+ {
548
+ src: resolve(
549
+ '../templates/src/components/compositor/preview/FeaturedContentPreview.tsx'
550
+ ),
551
+ dest: 'src/components/compositor/preview/FeaturedContentPreview.tsx',
552
+ },
553
+
554
+ // Server side stores
555
+ {
556
+ src: resolve('../templates/src/stores/backend.ts'),
557
+ dest: 'src/stores/backend.ts',
558
+ },
559
+
560
+ // Compositor stores
561
+ {
562
+ src: resolve('../templates/src/stores/nodes.ts'),
563
+ dest: 'src/stores/nodes.ts',
564
+ },
565
+ {
566
+ src: resolve('../templates/src/stores/notificationSystem.ts'),
567
+ dest: 'src/stores/notificationSystem.ts',
568
+ },
569
+ {
570
+ src: resolve('../templates/src/stores/nodesHistory.ts'),
571
+ dest: 'src/stores/nodesHistory.ts',
572
+ },
573
+
574
+ // AAI utils
575
+ {
576
+ src: resolve('../templates/src/utils/aai/getTitleSlug.ts'),
577
+ dest: 'src/utils/aai/getTitleSlug.ts',
578
+ },
579
+
580
+ // Compositor utils - etl
581
+ {
582
+ src: resolve('../templates/src/utils/etl/index.ts'),
583
+ dest: 'src/utils/etl/index.ts',
584
+ },
585
+ {
586
+ src: resolve('../templates/src/utils/etl/extractor.ts'),
587
+ dest: 'src/utils/etl/extractor.ts',
588
+ },
589
+ {
590
+ src: resolve('../templates/src/utils/etl/transformer.ts'),
591
+ dest: 'src/utils/etl/transformer.ts',
592
+ },
593
+ {
594
+ src: resolve('../templates/src/utils/etl/loader.ts'),
595
+ dest: 'src/utils/etl/loader.ts',
596
+ },
597
+ // Compositor utils
598
+ {
599
+ src: resolve('../templates/src/utils/compositor/processMarkdown.ts'),
600
+ dest: 'src/utils/compositor/processMarkdown.ts',
601
+ },
602
+ {
603
+ src: resolve(
604
+ '../templates/src/utils/compositor/templateMarkdownStyles.ts'
605
+ ),
606
+ dest: 'src/utils/compositor/templateMarkdownStyles.ts',
607
+ },
608
+ {
609
+ src: resolve(
610
+ '../templates/src/utils/compositor/nodesMarkdownGenerator.ts'
611
+ ),
612
+ dest: 'src/utils/compositor/nodesMarkdownGenerator.ts',
613
+ },
614
+ {
615
+ src: resolve('../templates/src/utils/compositor/nodesHelper.ts'),
616
+ dest: 'src/utils/compositor/nodesHelper.ts',
617
+ },
618
+ {
619
+ src: resolve('../templates/src/utils/compositor/allowInsert.ts'),
620
+ dest: 'src/utils/compositor/allowInsert.ts',
621
+ },
622
+ {
623
+ src: resolve('../templates/src/utils/compositor/typeGuards.ts'),
624
+ dest: 'src/utils/compositor/typeGuards.ts',
625
+ },
626
+ {
627
+ src: resolve('../templates/src/utils/compositor/domHelpers.ts'),
628
+ dest: 'src/utils/compositor/domHelpers.ts',
629
+ },
630
+ {
631
+ src: resolve('../templates/src/utils/compositor/handleClickEvent.ts'),
632
+ dest: 'src/utils/compositor/handleClickEvent.ts',
633
+ },
634
+ {
635
+ src: resolve(
636
+ '../templates/src/utils/compositor/reduceNodesClassNames.ts'
637
+ ),
638
+ dest: 'src/utils/compositor/reduceNodesClassNames.ts',
639
+ },
640
+ {
641
+ src: resolve('../templates/src/utils/compositor/tailwindClasses.ts'),
642
+ dest: 'src/utils/compositor/tailwindClasses.ts',
643
+ },
644
+ {
645
+ src: resolve('../templates/src/utils/compositor/tailwindColors.ts'),
646
+ dest: 'src/utils/compositor/tailwindColors.ts',
647
+ },
648
+ {
649
+ src: resolve('../templates/src/utils/compositor/TemplateNodes.ts'),
650
+ dest: 'src/utils/compositor/TemplateNodes.ts',
651
+ },
652
+ {
653
+ src: resolve('../templates/src/utils/compositor/TemplatePanes.ts'),
654
+ dest: 'src/utils/compositor/TemplatePanes.ts',
655
+ },
656
+ {
657
+ src: resolve('../templates/src/utils/compositor/TemplateMarkdowns.ts'),
658
+ dest: 'src/utils/compositor/TemplateMarkdowns.ts',
659
+ },
660
+ {
661
+ src: resolve('../templates/src/constants/tailwindColors.json'),
662
+ dest: 'src/constants/tailwindColors.json',
663
+ },
664
+ {
665
+ src: resolve('../templates/src/constants/shapes.ts'),
666
+ dest: 'src/constants/shapes.ts',
667
+ },
668
+ {
669
+ src: resolve('../templates/src/constants/beliefs.ts'),
670
+ dest: 'src/constants/beliefs.ts',
671
+ },
672
+ {
673
+ src: resolve('../templates/src/constants/prompts.json'),
674
+ dest: 'src/constants/prompts.json',
675
+ },
676
+
677
+ // Stores
678
+ {
679
+ src: resolve('../templates/src/stores/storykeep.ts'),
680
+ dest: 'src/stores/storykeep.ts',
681
+ },
682
+ {
683
+ src: resolve('../templates/src/stores/analytics.ts'),
684
+ dest: 'src/stores/analytics.ts',
685
+ },
686
+ {
687
+ src: resolve('../templates/src/stores/orphanAnalysis.ts'),
688
+ dest: 'src/stores/orphanAnalysis.ts',
689
+ },
690
+ {
691
+ src: resolve('../templates/src/stores/navigation.ts'),
692
+ dest: 'src/stores/navigation.ts',
693
+ },
694
+
695
+ // Action utilities
696
+ {
697
+ src: resolve('../templates/src/utils/actions/lispLexer.ts'),
698
+ dest: 'src/utils/actions/lispLexer.ts',
699
+ },
700
+ {
701
+ src: resolve('../templates/src/utils/actions/preParse_Action.ts'),
702
+ dest: 'src/utils/actions/preParse_Action.ts',
703
+ },
704
+ {
705
+ src: resolve('../templates/src/utils/actions/preParse_Clicked.ts'),
706
+ dest: 'src/utils/actions/preParse_Clicked.ts',
707
+ },
708
+ {
709
+ src: resolve('../templates/src/utils/actions/preParse_Impression.ts'),
710
+ dest: 'src/utils/actions/preParse_Impression.ts',
711
+ },
712
+ {
713
+ src: resolve('../templates/src/utils/actions/preParse_Bunny.ts'),
714
+ dest: 'src/utils/actions/preParse_Bunny.ts',
715
+ },
716
+
717
+ {
718
+ src: resolve('../templates/src/utils/backend.ts'),
719
+ dest: 'src/utils/backend.ts',
720
+ },
721
+ {
722
+ src: resolve('../templates/src/utils/api.ts'),
723
+ dest: 'src/utils/api.ts',
724
+ },
725
+ {
726
+ src: resolve('../templates/src/utils/api/brandConfig.ts'),
727
+ dest: 'src/utils/api/brandConfig.ts',
728
+ },
729
+ {
730
+ src: resolve('../templates/src/utils/auth.ts'),
731
+ dest: 'src/utils/auth.ts',
732
+ },
733
+ {
734
+ src: resolve('../templates/src/utils/helpers.ts'),
735
+ dest: 'src/utils/helpers.ts',
736
+ },
737
+ {
738
+ src: resolve('../templates/src/utils/useInterval.ts'),
739
+ dest: 'src/utils/useInterval.ts',
740
+ },
741
+ {
742
+ src: resolve('../templates/src/utils/profileStorage.ts'),
743
+ dest: 'src/utils/profileStorage.ts',
744
+ },
745
+ {
746
+ src: resolve('../templates/src/utils/api/fileHelpers.ts'),
747
+ dest: 'src/utils/api/fileHelpers.ts',
748
+ },
749
+ {
750
+ src: resolve('../templates/src/utils/api/brandHelpers.ts'),
751
+ dest: 'src/utils/api/brandHelpers.ts',
752
+ },
753
+ {
754
+ src: resolve('../templates/src/utils/api/advancedConfig.ts'),
755
+ dest: 'src/utils/api/advancedConfig.ts',
756
+ },
757
+ {
758
+ src: resolve('../templates/src/utils/api/advancedHelpers.ts'),
759
+ dest: 'src/utils/api/advancedHelpers.ts',
760
+ },
761
+ {
762
+ src: resolve('../templates/src/utils/api/resourceConfig.ts'),
763
+ dest: 'src/utils/api/resourceConfig.ts',
764
+ },
765
+ {
766
+ src: resolve('../templates/src/utils/api/resourceHelpers.ts'),
767
+ dest: 'src/utils/api/resourceHelpers.ts',
768
+ },
769
+ {
770
+ src: resolve('../templates/src/utils/api/menuHelpers.ts'),
771
+ dest: 'src/utils/api/menuHelpers.ts',
772
+ },
773
+ {
774
+ src: resolve('../templates/src/utils/api/menuConfig.ts'),
775
+ dest: 'src/utils/api/menuConfig.ts',
776
+ },
777
+ {
778
+ src: resolve('../templates/src/utils/api/beliefHelpers.ts'),
779
+ dest: 'src/utils/api/beliefHelpers.ts',
780
+ },
781
+ {
782
+ src: resolve('../templates/src/utils/api/beliefConfig.ts'),
783
+ dest: 'src/utils/api/beliefConfig.ts',
784
+ },
785
+
786
+ // Layouts
787
+ {
788
+ src: resolve('../templates/src/layouts/Layout.astro'),
789
+ dest: 'src/layouts/Layout.astro',
790
+ },
791
+
792
+ // Pages
793
+ {
794
+ src: resolve('../templates/src/pages/[...slug].astro'),
795
+ dest: 'src/pages/[...slug].astro',
796
+ },
797
+ {
798
+ src: resolve('../templates/src/pages/context/[...contextSlug].astro'),
799
+ dest: 'src/pages/context/[...contextSlug].astro',
800
+ },
801
+ {
802
+ src: resolve(
803
+ '../templates/src/pages/context/[...contextSlug]/edit.astro'
804
+ ),
805
+ dest: 'src/pages/context/[...contextSlug]/edit.astro',
806
+ },
807
+ {
808
+ src: resolve('../templates/src/pages/storykeep.astro'),
809
+ dest: 'src/pages/storykeep.astro',
810
+ },
811
+ {
812
+ src: resolve('../templates/src/pages/storykeep/init.astro'),
813
+ dest: 'src/pages/storykeep/init.astro',
814
+ },
815
+ {
816
+ src: resolve('../templates/src/pages/storykeep/content.astro'),
817
+ dest: 'src/pages/storykeep/content.astro',
818
+ },
819
+ {
820
+ src: resolve('../templates/src/pages/storykeep/branding.astro'),
821
+ dest: 'src/pages/storykeep/branding.astro',
822
+ },
823
+ {
824
+ src: resolve('../templates/src/pages/storykeep/advanced.astro'),
825
+ dest: 'src/pages/storykeep/advanced.astro',
826
+ },
827
+ {
828
+ src: resolve('../templates/src/pages/maint.astro'),
829
+ dest: 'src/pages/maint.astro',
830
+ },
831
+ {
832
+ src: resolve('../templates/src/pages/404.astro'),
833
+ dest: 'src/pages/404.astro',
834
+ },
835
+ {
836
+ src: resolve('../templates/src/pages/llms.txt.ts'),
837
+ dest: 'src/pages/llms.txt.ts',
838
+ },
839
+ {
840
+ src: resolve('../templates/src/pages/robots.txt.ts'),
841
+ dest: 'src/pages/robots.txt.ts',
842
+ },
843
+ {
844
+ src: resolve('../templates/src/pages/sitemap.xml.ts'),
845
+ dest: 'src/pages/sitemap.xml.ts',
846
+ },
847
+ {
848
+ src: resolve('../templates/src/pages/api/tailwind.ts'),
849
+ dest: 'src/pages/api/tailwind.ts',
850
+ },
851
+
852
+ // Authentication Pages
853
+ {
854
+ src: resolve('../templates/src/pages/storykeep/login.astro'),
855
+ dest: 'src/pages/storykeep/login.astro',
856
+ },
857
+ {
858
+ src: resolve('../templates/src/pages/storykeep/logout.astro'),
859
+ dest: 'src/pages/storykeep/logout.astro',
860
+ },
861
+ {
862
+ src: resolve('../templates/src/pages/storykeep/profile.astro'),
863
+ dest: 'src/pages/storykeep/profile.astro',
864
+ },
865
+
866
+ // API Routes
867
+ {
868
+ src: resolve('../templates/src/pages/api/auth/profile.ts'),
869
+ dest: 'src/pages/api/auth/profile.ts',
870
+ },
871
+ {
872
+ src: resolve('../templates/src/pages/api/auth/decode.ts'),
873
+ dest: 'src/pages/api/auth/decode.ts',
874
+ },
875
+ {
876
+ src: resolve('../templates/src/pages/api/auth/login.ts'),
877
+ dest: 'src/pages/api/auth/login.ts',
878
+ },
879
+ {
880
+ src: resolve('../templates/src/pages/api/auth/logout.ts'),
881
+ dest: 'src/pages/api/auth/logout.ts',
882
+ },
883
+ {
884
+ src: resolve('../templates/src/pages/api/orphan-analysis.ts'),
885
+ dest: 'src/pages/api/orphan-analysis.ts',
886
+ },
887
+
888
+ // Base Components
889
+ {
890
+ src: resolve('../templates/src/components/Header.astro'),
891
+ dest: 'src/components/Header.astro',
892
+ },
893
+ {
894
+ src: resolve('../templates/src/components/Footer.astro'),
895
+ dest: 'src/components/Footer.astro',
896
+ },
897
+ {
898
+ src: resolve('../templates/src/components/Menu.tsx'),
899
+ dest: 'src/components/Menu.tsx',
900
+ },
901
+ {
902
+ src: resolve('../templates/src/components/Fragment.astro'),
903
+ dest: 'src/components/Fragment.astro',
904
+ },
905
+
906
+ // Profile Components
907
+ {
908
+ src: resolve('../templates/src/components/profile/ProfileConsent.tsx'),
909
+ dest: 'src/components/profile/ProfileConsent.tsx',
910
+ },
911
+ {
912
+ src: resolve('../templates/src/components/profile/ProfileSwitch.tsx'),
913
+ dest: 'src/components/profile/ProfileSwitch.tsx',
914
+ },
915
+ {
916
+ src: resolve('../templates/src/components/profile/ProfileCreate.tsx'),
917
+ dest: 'src/components/profile/ProfileCreate.tsx',
918
+ },
919
+ {
920
+ src: resolve('../templates/src/components/profile/ProfileEdit.tsx'),
921
+ dest: 'src/components/profile/ProfileEdit.tsx',
922
+ },
923
+ {
924
+ src: resolve('../templates/src/components/profile/ProfileUnlock.tsx'),
925
+ dest: 'src/components/profile/ProfileUnlock.tsx',
926
+ },
927
+
928
+ // Form System
929
+ {
930
+ src: resolve('../templates/src/hooks/useFormState.ts'),
931
+ dest: 'src/hooks/useFormState.ts',
932
+ },
933
+ {
934
+ src: resolve('../templates/src/constants/brandThemes.ts'),
935
+ dest: 'src/constants/brandThemes.ts',
936
+ },
937
+ {
938
+ src: resolve('../templates/src/types/formTypes.ts'),
939
+ dest: 'src/types/formTypes.ts',
940
+ },
941
+ {
942
+ src: resolve('../templates/src/components/form/ParagraphArrayInput.tsx'),
943
+ dest: 'src/components/form/ParagraphArrayInput.tsx',
944
+ },
945
+ {
946
+ src: resolve('../templates/src/components/form/StringInput.tsx'),
947
+ dest: 'src/components/form/StringInput.tsx',
948
+ },
949
+ {
950
+ src: resolve('../templates/src/components/form/StringArrayInput.tsx'),
951
+ dest: 'src/components/form/StringArrayInput.tsx',
952
+ },
953
+ {
954
+ src: resolve('../templates/src/components/form/BooleanToggle.tsx'),
955
+ dest: 'src/components/form/BooleanToggle.tsx',
956
+ },
957
+ {
958
+ src: resolve('../templates/src/components/form/EnumSelect.tsx'),
959
+ dest: 'src/components/form/EnumSelect.tsx',
960
+ },
961
+ {
962
+ src: resolve('../templates/src/components/form/ColorPicker.tsx'),
963
+ dest: 'src/components/form/ColorPicker.tsx',
964
+ },
965
+ {
966
+ src: resolve('../templates/src/components/form/FileUpload.tsx'),
967
+ dest: 'src/components/form/FileUpload.tsx',
968
+ },
969
+ {
970
+ src: resolve('../templates/src/components/form/NumberInput.tsx'),
971
+ dest: 'src/components/form/NumberInput.tsx',
972
+ },
973
+ {
974
+ src: resolve('../templates/src/components/form/DateTimeInput.tsx'),
975
+ dest: 'src/components/form/DateTimeInput.tsx',
976
+ },
977
+ {
978
+ src: resolve('../templates/src/components/form/UnsavedChangesBar.tsx'),
979
+ dest: 'src/components/form/UnsavedChangesBar.tsx',
980
+ },
981
+ {
982
+ src: resolve('../templates/src/components/form/ActionBuilderField.tsx'),
983
+ dest: 'src/components/form/ActionBuilderField.tsx',
984
+ },
985
+ {
986
+ src: resolve('../templates/src/components/form/MagicPathBuilder.tsx'),
987
+ dest: 'src/components/form/MagicPathBuilder.tsx',
988
+ },
989
+ {
990
+ src: resolve(
991
+ '../templates/src/components/form/ActionBuilderSlugSelector.tsx'
992
+ ),
993
+ dest: 'src/components/form/ActionBuilderSlugSelector.tsx',
994
+ },
995
+
996
+ // Brand Form Components
997
+ {
998
+ src: resolve(
999
+ '../templates/src/components/form/brand/BrandColorsSection.tsx'
1000
+ ),
1001
+ dest: 'src/components/form/brand/BrandColorsSection.tsx',
1002
+ },
1003
+ {
1004
+ src: resolve(
1005
+ '../templates/src/components/form/brand/BrandAssetsSection.tsx'
1006
+ ),
1007
+ dest: 'src/components/form/brand/BrandAssetsSection.tsx',
1008
+ },
1009
+ {
1010
+ src: resolve(
1011
+ '../templates/src/components/form/brand/SiteConfigSection.tsx'
1012
+ ),
1013
+ dest: 'src/components/form/brand/SiteConfigSection.tsx',
1014
+ },
1015
+ {
1016
+ src: resolve(
1017
+ '../templates/src/components/form/brand/SocialLinksSection.tsx'
1018
+ ),
1019
+ dest: 'src/components/form/brand/SocialLinksSection.tsx',
1020
+ },
1021
+ {
1022
+ src: resolve('../templates/src/components/form/brand/SEOSection.tsx'),
1023
+ dest: 'src/components/form/brand/SEOSection.tsx',
1024
+ },
1025
+
1026
+ // Advanced Configuration Components
1027
+ {
1028
+ src: resolve(
1029
+ '../templates/src/components/form/advanced/AuthConfigSection.tsx'
1030
+ ),
1031
+ dest: 'src/components/form/advanced/AuthConfigSection.tsx',
1032
+ },
1033
+ {
1034
+ src: resolve(
1035
+ '../templates/src/components/form/advanced/APIConfigSection.tsx'
1036
+ ),
1037
+ dest: 'src/components/form/advanced/APIConfigSection.tsx',
1038
+ },
1039
+
1040
+ // StoryKeep Dashboard Components
1041
+ {
1042
+ src: resolve('../templates/src/components/storykeep/Dashboard.tsx'),
1043
+ dest: 'src/components/storykeep/Dashboard.tsx',
1044
+ },
1045
+ {
1046
+ src: resolve(
1047
+ '../templates/src/components/storykeep/state/BrandingWrapper.tsx'
1048
+ ),
1049
+ dest: 'src/components/storykeep/state/BrandingWrapper.tsx',
1050
+ },
1051
+ {
1052
+ src: resolve(
1053
+ '../templates/src/components/storykeep/state/FetchAnalytics.tsx'
1054
+ ),
1055
+ dest: 'src/components/storykeep/state/FetchAnalytics.tsx',
1056
+ },
1057
+ {
1058
+ src: resolve('../templates/src/components/storykeep/widgets/Wizard.tsx'),
1059
+ dest: 'src/components/storykeep/widgets/Wizard.tsx',
1060
+ },
1061
+ {
1062
+ src: resolve(
1063
+ '../templates/src/components/storykeep/Dashboard_Advanced.tsx'
1064
+ ),
1065
+ dest: 'src/components/storykeep/Dashboard_Advanced.tsx',
1066
+ },
1067
+ {
1068
+ src: resolve(
1069
+ '../templates/src/components/storykeep/Dashboard_Analytics.tsx'
1070
+ ),
1071
+ dest: 'src/components/storykeep/Dashboard_Analytics.tsx',
1072
+ },
1073
+ {
1074
+ src: resolve(
1075
+ '../templates/src/components/storykeep/Dashboard_Branding.tsx'
1076
+ ),
1077
+ dest: 'src/components/storykeep/Dashboard_Branding.tsx',
1078
+ },
1079
+ {
1080
+ src: resolve(
1081
+ '../templates/src/components/storykeep/Dashboard_Content.tsx'
1082
+ ),
1083
+ dest: 'src/components/storykeep/Dashboard_Content.tsx',
1084
+ },
1085
+ {
1086
+ src: resolve(
1087
+ '../templates/src/components/storykeep/Dashboard_Activity.tsx'
1088
+ ),
1089
+ dest: 'src/components/storykeep/Dashboard_Activity.tsx',
1090
+ },
1091
+ {
1092
+ src: resolve(
1093
+ '../templates/src/components/storykeep/widgets/ResponsiveLine.tsx'
1094
+ ),
1095
+ dest: 'src/components/storykeep/widgets/ResponsiveLine.tsx',
1096
+ },
1097
+
1098
+ // Content Management Components
1099
+ {
1100
+ src: resolve(
1101
+ '../templates/src/components/storykeep/controls/content/ManageContent.tsx'
1102
+ ),
1103
+ dest: 'src/components/storykeep/controls/content/ManageContent.tsx',
1104
+ },
1105
+ {
1106
+ src: resolve(
1107
+ '../templates/src/components/storykeep/controls/content/ContentSummary.tsx'
1108
+ ),
1109
+ dest: 'src/components/storykeep/controls/content/ContentSummary.tsx',
1110
+ },
1111
+ {
1112
+ src: resolve(
1113
+ '../templates/src/components/storykeep/controls/content/StoryFragmentTable.tsx'
1114
+ ),
1115
+ dest: 'src/components/storykeep/controls/content/StoryFragmentTable.tsx',
1116
+ },
1117
+ {
1118
+ src: resolve(
1119
+ '../templates/src/components/storykeep/controls/content/ContentBrowser.tsx'
1120
+ ),
1121
+ dest: 'src/components/storykeep/controls/content/ContentBrowser.tsx',
1122
+ },
1123
+ {
1124
+ src: resolve(
1125
+ '../templates/src/components/form/content/ContentSummary.tsx'
1126
+ ),
1127
+ dest: 'src/components/form/content/ContentSummary.tsx',
1128
+ },
1129
+ {
1130
+ src: resolve(
1131
+ '../templates/src/components/storykeep/controls/UsageCell.tsx'
1132
+ ),
1133
+ dest: 'src/components/storykeep/controls/UsageCell.tsx',
1134
+ },
1135
+
1136
+ // Menu Management Components
1137
+ {
1138
+ src: resolve(
1139
+ '../templates/src/components/storykeep/controls/content/MenuTable.tsx'
1140
+ ),
1141
+ dest: 'src/components/storykeep/controls/content/MenuTable.tsx',
1142
+ },
1143
+ {
1144
+ src: resolve(
1145
+ '../templates/src/components/storykeep/controls/content/MenuForm.tsx'
1146
+ ),
1147
+ dest: 'src/components/storykeep/controls/content/MenuForm.tsx',
1148
+ },
1149
+
1150
+ // Resource Management Components
1151
+ {
1152
+ src: resolve(
1153
+ '../templates/src/components/storykeep/controls/content/ResourceBulkIngest.tsx'
1154
+ ),
1155
+ dest: 'src/components/storykeep/controls/content/ResourceBulkIngest.tsx',
1156
+ },
1157
+ {
1158
+ src: resolve(
1159
+ '../templates/src/components/storykeep/controls/content/ResourceForm.tsx'
1160
+ ),
1161
+ dest: 'src/components/storykeep/controls/content/ResourceForm.tsx',
1162
+ },
1163
+ {
1164
+ src: resolve(
1165
+ '../templates/src/components/storykeep/controls/content/ResourceTable.tsx'
1166
+ ),
1167
+ dest: 'src/components/storykeep/controls/content/ResourceTable.tsx',
1168
+ },
1169
+ {
1170
+ src: resolve(
1171
+ '../templates/src/components/storykeep/controls/content/KnownResourceTable.tsx'
1172
+ ),
1173
+ dest: 'src/components/storykeep/controls/content/KnownResourceTable.tsx',
1174
+ },
1175
+ {
1176
+ src: resolve(
1177
+ '../templates/src/components/storykeep/controls/content/KnownResourceForm.tsx'
1178
+ ),
1179
+ dest: 'src/components/storykeep/controls/content/KnownResourceForm.tsx',
1180
+ },
1181
+
1182
+ // Belief Management Components
1183
+ {
1184
+ src: resolve(
1185
+ '../templates/src/components/storykeep/controls/content/BeliefTable.tsx'
1186
+ ),
1187
+ dest: 'src/components/storykeep/controls/content/BeliefTable.tsx',
1188
+ },
1189
+ {
1190
+ src: resolve(
1191
+ '../templates/src/components/storykeep/controls/content/BeliefForm.tsx'
1192
+ ),
1193
+ dest: 'src/components/storykeep/controls/content/BeliefForm.tsx',
1194
+ },
1195
+
1196
+ // CodeHook Components
1197
+ {
1198
+ src: resolve('../templates/src/components/codehooks/EpinetWrapper.tsx'),
1199
+ dest: 'src/components/codehooks/EpinetWrapper.tsx',
1200
+ },
1201
+ {
1202
+ src: resolve(
1203
+ '../templates/src/components/codehooks/EpinetDurationSelector.tsx'
1204
+ ),
1205
+ dest: 'src/components/codehooks/EpinetDurationSelector.tsx',
1206
+ },
1207
+ {
1208
+ src: resolve('../templates/src/components/codehooks/EpinetTableView.tsx'),
1209
+ dest: 'src/components/codehooks/EpinetTableView.tsx',
1210
+ },
1211
+ {
1212
+ src: resolve('../templates/src/components/codehooks/SankeyDiagram.tsx'),
1213
+ dest: 'src/components/codehooks/SankeyDiagram.tsx',
1214
+ },
1215
+ {
1216
+ src: resolve(
1217
+ '../templates/src/components/codehooks/FeaturedContent.astro'
1218
+ ),
1219
+ dest: 'src/components/codehooks/FeaturedContent.astro',
1220
+ },
1221
+ {
1222
+ src: resolve(
1223
+ '../templates/src/components/codehooks/FeaturedContentSetup.tsx'
1224
+ ),
1225
+ dest: 'src/components/codehooks/FeaturedContentSetup.tsx',
1226
+ },
1227
+ {
1228
+ src: resolve('../templates/src/components/codehooks/ListContent.astro'),
1229
+ dest: 'src/components/codehooks/ListContent.astro',
1230
+ },
1231
+ {
1232
+ src: resolve(
1233
+ '../templates/src/components/codehooks/ListContentSetup.tsx'
1234
+ ),
1235
+ dest: 'src/components/codehooks/ListContentSetup.tsx',
1236
+ },
1237
+ {
1238
+ src: resolve(
1239
+ '../templates/src/components/codehooks/BunnyVideoWrapper.astro'
1240
+ ),
1241
+ dest: 'src/components/codehooks/BunnyVideoWrapper.astro',
1242
+ },
1243
+ {
1244
+ src: resolve('../templates/src/components/codehooks/BunnyVideoSetup.tsx'),
1245
+ dest: 'src/components/codehooks/BunnyVideoSetup.tsx',
1246
+ },
1247
+
1248
+ // Widget Components
1249
+ {
1250
+ src: resolve('../templates/src/components/widgets/Impression.tsx'),
1251
+ dest: 'src/components/widgets/Impression.tsx',
1252
+ },
1253
+ {
1254
+ src: resolve('../templates/src/components/widgets/ImpressionWrapper.tsx'),
1255
+ dest: 'src/components/widgets/ImpressionWrapper.tsx',
1256
+ },
1257
+ {
1258
+ src: resolve('../templates/src/components/widgets/BunnyVideoHero.astro'),
1259
+ dest: 'src/components/widgets/BunnyVideoHero.astro',
1260
+ },
1261
+
1262
+ // Server Scripts
1263
+ {
1264
+ src: resolve('../templates/src/lib/storyData.ts'),
1265
+ dest: 'src/lib/storyData.ts',
1266
+ },
1267
+ {
1268
+ src: resolve('../templates/src/lib/session.ts'),
1269
+ dest: 'src/lib/session.ts',
1270
+ },
1271
+
1272
+ // Client Scripts
1273
+ {
1274
+ src: resolve('../templates/src/client/sse.ts'),
1275
+ dest: 'src/client/sse.ts',
1276
+ },
1277
+ {
1278
+ src: resolve('../templates/src/client/belief-events.ts'),
1279
+ dest: 'src/client/belief-events.ts',
1280
+ },
1281
+ {
1282
+ src: resolve('../templates/src/client/analytics-events.ts'),
1283
+ dest: 'src/client/analytics-events.ts',
1284
+ },
1285
+
1286
+ // StoryKeep Editor (add new section)
1287
+ {
1288
+ src: resolve('../templates/src/pages/[...slug]/edit.astro'),
1289
+ dest: 'src/pages/[...slug]/edit.astro',
1290
+ },
1291
+ {
1292
+ src: resolve('../templates/src/utils/layout.ts'),
1293
+ dest: 'src/utils/layout.ts',
1294
+ },
1295
+
1296
+ // StoryKeep Components
1297
+ {
1298
+ src: resolve('../templates/src/components/edit/Header.tsx'),
1299
+ dest: 'src/components/edit/Header.tsx',
1300
+ },
1301
+ {
1302
+ src: resolve('../templates/src/components/edit/ToolMode.tsx'),
1303
+ dest: 'src/components/edit/ToolMode.tsx',
1304
+ },
1305
+ {
1306
+ src: resolve('../templates/src/components/edit/ToolBar.tsx'),
1307
+ dest: 'src/components/edit/ToolBar.tsx',
1308
+ },
1309
+ {
1310
+ src: resolve('../templates/src/components/edit/SettingsPanel.tsx'),
1311
+ dest: 'src/components/edit/SettingsPanel.tsx',
1312
+ },
1313
+ {
1314
+ src: resolve('../templates/src/components/edit/PanelSwitch.tsx'),
1315
+ dest: 'src/components/edit/PanelSwitch.tsx',
1316
+ },
1317
+ {
1318
+ src: resolve('../templates/src/components/edit/state/SaveModal.tsx'),
1319
+ dest: 'src/components/edit/state/SaveModal.tsx',
1320
+ },
1321
+ {
1322
+ src: resolve('../templates/src/components/edit/state/StylesMemory.tsx'),
1323
+ dest: 'src/components/edit/state/StylesMemory.tsx',
1324
+ },
1325
+ {
1326
+ src: resolve(
1327
+ '../templates/src/components/edit/panels/StyleBreakPanel.tsx'
1328
+ ),
1329
+ dest: 'src/components/edit/panels/StyleBreakPanel.tsx',
1330
+ },
1331
+ {
1332
+ src: resolve(
1333
+ '../templates/src/components/edit/panels/StyleCodeHookPanel.tsx'
1334
+ ),
1335
+ dest: 'src/components/edit/panels/StyleCodeHookPanel.tsx',
1336
+ },
1337
+ {
1338
+ src: resolve(
1339
+ '../templates/src/components/edit/panels/StyleElementPanel_add.tsx'
1340
+ ),
1341
+ dest: 'src/components/edit/panels/StyleElementPanel_add.tsx',
1342
+ },
1343
+ {
1344
+ src: resolve(
1345
+ '../templates/src/components/edit/panels/StyleElementPanel_remove.tsx'
1346
+ ),
1347
+ dest: 'src/components/edit/panels/StyleElementPanel_remove.tsx',
1348
+ },
1349
+ {
1350
+ src: resolve(
1351
+ '../templates/src/components/edit/panels/StyleElementPanel.tsx'
1352
+ ),
1353
+ dest: 'src/components/edit/panels/StyleElementPanel.tsx',
1354
+ },
1355
+ {
1356
+ src: resolve(
1357
+ '../templates/src/components/edit/panels/StyleElementPanel_update.tsx'
1358
+ ),
1359
+ dest: 'src/components/edit/panels/StyleElementPanel_update.tsx',
1360
+ },
1361
+ {
1362
+ src: resolve(
1363
+ '../templates/src/components/edit/panels/StyleImagePanel_add.tsx'
1364
+ ),
1365
+ dest: 'src/components/edit/panels/StyleImagePanel_add.tsx',
1366
+ },
1367
+ {
1368
+ src: resolve(
1369
+ '../templates/src/components/edit/panels/StyleImagePanel_remove.tsx'
1370
+ ),
1371
+ dest: 'src/components/edit/panels/StyleImagePanel_remove.tsx',
1372
+ },
1373
+ {
1374
+ src: resolve(
1375
+ '../templates/src/components/edit/panels/StyleImagePanel.tsx'
1376
+ ),
1377
+ dest: 'src/components/edit/panels/StyleImagePanel.tsx',
1378
+ },
1379
+ {
1380
+ src: resolve(
1381
+ '../templates/src/components/edit/panels/StyleImagePanel_update.tsx'
1382
+ ),
1383
+ dest: 'src/components/edit/panels/StyleImagePanel_update.tsx',
1384
+ },
1385
+ {
1386
+ src: resolve(
1387
+ '../templates/src/components/edit/panels/StyleLiElementPanel_add.tsx'
1388
+ ),
1389
+ dest: 'src/components/edit/panels/StyleLiElementPanel_add.tsx',
1390
+ },
1391
+ {
1392
+ src: resolve(
1393
+ '../templates/src/components/edit/panels/StyleLiElementPanel_remove.tsx'
1394
+ ),
1395
+ dest: 'src/components/edit/panels/StyleLiElementPanel_remove.tsx',
1396
+ },
1397
+ {
1398
+ src: resolve(
1399
+ '../templates/src/components/edit/panels/StyleLiElementPanel.tsx'
1400
+ ),
1401
+ dest: 'src/components/edit/panels/StyleLiElementPanel.tsx',
1402
+ },
1403
+ {
1404
+ src: resolve(
1405
+ '../templates/src/components/edit/panels/StyleLiElementPanel_update.tsx'
1406
+ ),
1407
+ dest: 'src/components/edit/panels/StyleLiElementPanel_update.tsx',
1408
+ },
1409
+ {
1410
+ src: resolve(
1411
+ '../templates/src/components/edit/panels/StyleLinkPanel_add.tsx'
1412
+ ),
1413
+ dest: 'src/components/edit/panels/StyleLinkPanel_add.tsx',
1414
+ },
1415
+ {
1416
+ src: resolve(
1417
+ '../templates/src/components/edit/panels/StyleLinkPanel_config.tsx'
1418
+ ),
1419
+ dest: 'src/components/edit/panels/StyleLinkPanel_config.tsx',
1420
+ },
1421
+ {
1422
+ src: resolve(
1423
+ '../templates/src/components/edit/panels/StyleLinkPanel_remove.tsx'
1424
+ ),
1425
+ dest: 'src/components/edit/panels/StyleLinkPanel_remove.tsx',
1426
+ },
1427
+ {
1428
+ src: resolve(
1429
+ '../templates/src/components/edit/panels/StyleLinkPanel.tsx'
1430
+ ),
1431
+ dest: 'src/components/edit/panels/StyleLinkPanel.tsx',
1432
+ },
1433
+ {
1434
+ src: resolve(
1435
+ '../templates/src/components/edit/panels/StyleLinkPanel_update.tsx'
1436
+ ),
1437
+ dest: 'src/components/edit/panels/StyleLinkPanel_update.tsx',
1438
+ },
1439
+ {
1440
+ src: resolve(
1441
+ '../templates/src/components/edit/panels/StyleParentPanel_add.tsx'
1442
+ ),
1443
+ dest: 'src/components/edit/panels/StyleParentPanel_add.tsx',
1444
+ },
1445
+ {
1446
+ src: resolve(
1447
+ '../templates/src/components/edit/panels/StyleParentPanel_deleteLayer.tsx'
1448
+ ),
1449
+ dest: 'src/components/edit/panels/StyleParentPanel_deleteLayer.tsx',
1450
+ },
1451
+ {
1452
+ src: resolve(
1453
+ '../templates/src/components/edit/panels/StyleParentPanel_remove.tsx'
1454
+ ),
1455
+ dest: 'src/components/edit/panels/StyleParentPanel_remove.tsx',
1456
+ },
1457
+ {
1458
+ src: resolve(
1459
+ '../templates/src/components/edit/panels/StyleParentPanel.tsx'
1460
+ ),
1461
+ dest: 'src/components/edit/panels/StyleParentPanel.tsx',
1462
+ },
1463
+ {
1464
+ src: resolve(
1465
+ '../templates/src/components/edit/panels/StyleParentPanel_update.tsx'
1466
+ ),
1467
+ dest: 'src/components/edit/panels/StyleParentPanel_update.tsx',
1468
+ },
1469
+ {
1470
+ src: resolve(
1471
+ '../templates/src/components/edit/panels/StyleWidgetPanel_add.tsx'
1472
+ ),
1473
+ dest: 'src/components/edit/panels/StyleWidgetPanel_add.tsx',
1474
+ },
1475
+ {
1476
+ src: resolve(
1477
+ '../templates/src/components/edit/panels/StyleWidgetPanel_config.tsx'
1478
+ ),
1479
+ dest: 'src/components/edit/panels/StyleWidgetPanel_config.tsx',
1480
+ },
1481
+ {
1482
+ src: resolve(
1483
+ '../templates/src/components/edit/panels/StyleWidgetPanel_remove.tsx'
1484
+ ),
1485
+ dest: 'src/components/edit/panels/StyleWidgetPanel_remove.tsx',
1486
+ },
1487
+ {
1488
+ src: resolve(
1489
+ '../templates/src/components/edit/panels/StyleWidgetPanel.tsx'
1490
+ ),
1491
+ dest: 'src/components/edit/panels/StyleWidgetPanel.tsx',
1492
+ },
1493
+ {
1494
+ src: resolve(
1495
+ '../templates/src/components/edit/panels/StyleWidgetPanel_update.tsx'
1496
+ ),
1497
+ dest: 'src/components/edit/panels/StyleWidgetPanel_update.tsx',
1498
+ },
1499
+
1500
+ // Styles
1501
+ {
1502
+ src: resolve('../templates/css/custom.css'),
1503
+ dest: 'public/styles/custom.css',
1504
+ },
1505
+ {
1506
+ src: resolve('../templates/css/frontend.css'),
1507
+ dest: 'public/styles/frontend.css',
1508
+ },
1509
+ {
1510
+ src: resolve('../templates/css/storykeep.css'),
1511
+ dest: 'public/styles/storykeep.css',
1512
+ },
1513
+
1514
+ // Fonts
1515
+ {
1516
+ src: resolve('../templates/fonts/Inter-Black.woff2'),
1517
+ dest: 'public/fonts/Inter-Black.woff2',
1518
+ },
1519
+ {
1520
+ src: resolve('../templates/fonts/Inter-Bold.woff2'),
1521
+ dest: 'public/fonts/Inter-Bold.woff2',
1522
+ },
1523
+ {
1524
+ src: resolve('../templates/fonts/Inter-Regular.woff2'),
1525
+ dest: 'public/fonts/Inter-Regular.woff2',
1526
+ },
1527
+
1528
+ // Brand Assets
1529
+ {
1530
+ src: resolve('../templates/brand/static.jpg'),
1531
+ dest: 'public/static.jpg',
1532
+ },
1533
+ {
1534
+ src: resolve('../templates/brand/favicon.ico'),
1535
+ dest: 'public/brand/favicon.ico',
1536
+ },
1537
+ {
1538
+ src: resolve('../templates/brand/logo.svg'),
1539
+ dest: 'public/brand/logo.svg',
1540
+ },
1541
+ {
1542
+ src: resolve('../templates/brand/wordmark.svg'),
1543
+ dest: 'public/brand/wordmark.svg',
1544
+ },
1545
+
1546
+ // Artpack Assets - kCz
1547
+ {
1548
+ src: resolve('../templates/artpacks/kCz/captainBreakfast_1080px.webp'),
1549
+ dest: 'public/artpacks/kCz/captainBreakfast_1080px.webp',
1550
+ },
1551
+ {
1552
+ src: resolve('../templates/artpacks/kCz/captainBreakfast_1920px.webp'),
1553
+ dest: 'public/artpacks/kCz/captainBreakfast_1920px.webp',
1554
+ },
1555
+ {
1556
+ src: resolve('../templates/artpacks/kCz/captainBreakfast_600px.webp'),
1557
+ dest: 'public/artpacks/kCz/captainBreakfast_600px.webp',
1558
+ },
1559
+ {
1560
+ src: resolve('../templates/artpacks/kCz/cleanDrips_1080px.webp'),
1561
+ dest: 'public/artpacks/kCz/cleanDrips_1080px.webp',
1562
+ },
1563
+ {
1564
+ src: resolve('../templates/artpacks/kCz/cleanDrips_1920px.webp'),
1565
+ dest: 'public/artpacks/kCz/cleanDrips_1920px.webp',
1566
+ },
1567
+ {
1568
+ src: resolve('../templates/artpacks/kCz/cleanDrips_600px.webp'),
1569
+ dest: 'public/artpacks/kCz/cleanDrips_600px.webp',
1570
+ },
1571
+ {
1572
+ src: resolve('../templates/artpacks/kCz/crispwaves_1080px.webp'),
1573
+ dest: 'public/artpacks/kCz/crispwaves_1080px.webp',
1574
+ },
1575
+ {
1576
+ src: resolve('../templates/artpacks/kCz/crispwaves_1920px.webp'),
1577
+ dest: 'public/artpacks/kCz/crispwaves_1920px.webp',
1578
+ },
1579
+ {
1580
+ src: resolve('../templates/artpacks/kCz/crispwaves_600px.webp'),
1581
+ dest: 'public/artpacks/kCz/crispwaves_600px.webp',
1582
+ },
1583
+ {
1584
+ src: resolve('../templates/artpacks/kCz/dragon_1080px.webp'),
1585
+ dest: 'public/artpacks/kCz/dragon_1080px.webp',
1586
+ },
1587
+ {
1588
+ src: resolve('../templates/artpacks/kCz/dragon_1920px.webp'),
1589
+ dest: 'public/artpacks/kCz/dragon_1920px.webp',
1590
+ },
1591
+ {
1592
+ src: resolve('../templates/artpacks/kCz/dragon_600px.webp'),
1593
+ dest: 'public/artpacks/kCz/dragon_600px.webp',
1594
+ },
1595
+ {
1596
+ src: resolve('../templates/artpacks/kCz/dragonSkin_1080px.webp'),
1597
+ dest: 'public/artpacks/kCz/dragonSkin_1080px.webp',
1598
+ },
1599
+ {
1600
+ src: resolve('../templates/artpacks/kCz/dragonSkin_1920px.webp'),
1601
+ dest: 'public/artpacks/kCz/dragonSkin_1920px.webp',
1602
+ },
1603
+ {
1604
+ src: resolve('../templates/artpacks/kCz/dragonSkin_600px.webp'),
1605
+ dest: 'public/artpacks/kCz/dragonSkin_600px.webp',
1606
+ },
1607
+ {
1608
+ src: resolve('../templates/artpacks/kCz/nightcity_1080px.webp'),
1609
+ dest: 'public/artpacks/kCz/nightcity_1080px.webp',
1610
+ },
1611
+ {
1612
+ src: resolve('../templates/artpacks/kCz/nightcity_1920px.webp'),
1613
+ dest: 'public/artpacks/kCz/nightcity_1920px.webp',
1614
+ },
1615
+ {
1616
+ src: resolve('../templates/artpacks/kCz/nightcity_600px.webp'),
1617
+ dest: 'public/artpacks/kCz/nightcity_600px.webp',
1618
+ },
1619
+ {
1620
+ src: resolve('../templates/artpacks/kCz/pattern1_1080px.webp'),
1621
+ dest: 'public/artpacks/kCz/pattern1_1080px.webp',
1622
+ },
1623
+ {
1624
+ src: resolve('../templates/artpacks/kCz/pattern1_1920px.webp'),
1625
+ dest: 'public/artpacks/kCz/pattern1_1920px.webp',
1626
+ },
1627
+ {
1628
+ src: resolve('../templates/artpacks/kCz/pattern1_600px.webp'),
1629
+ dest: 'public/artpacks/kCz/pattern1_600px.webp',
1630
+ },
1631
+ {
1632
+ src: resolve('../templates/artpacks/kCz/pattern2_1080px.webp'),
1633
+ dest: 'public/artpacks/kCz/pattern2_1080px.webp',
1634
+ },
1635
+ {
1636
+ src: resolve('../templates/artpacks/kCz/pattern2_1920px.webp'),
1637
+ dest: 'public/artpacks/kCz/pattern2_1920px.webp',
1638
+ },
1639
+ {
1640
+ src: resolve('../templates/artpacks/kCz/pattern2_600px.webp'),
1641
+ dest: 'public/artpacks/kCz/pattern2_600px.webp',
1642
+ },
1643
+ {
1644
+ src: resolve('../templates/artpacks/kCz/skindrips_1080px.webp'),
1645
+ dest: 'public/artpacks/kCz/skindrips_1080px.webp',
1646
+ },
1647
+ {
1648
+ src: resolve('../templates/artpacks/kCz/skindrips_1920px.webp'),
1649
+ dest: 'public/artpacks/kCz/skindrips_1920px.webp',
1650
+ },
1651
+ {
1652
+ src: resolve('../templates/artpacks/kCz/skindrips_600px.webp'),
1653
+ dest: 'public/artpacks/kCz/skindrips_600px.webp',
1654
+ },
1655
+ {
1656
+ src: resolve('../templates/artpacks/kCz/slimetime_1080px.webp'),
1657
+ dest: 'public/artpacks/kCz/slimetime_1080px.webp',
1658
+ },
1659
+ {
1660
+ src: resolve('../templates/artpacks/kCz/slimetime_1920px.webp'),
1661
+ dest: 'public/artpacks/kCz/slimetime_1920px.webp',
1662
+ },
1663
+ {
1664
+ src: resolve('../templates/artpacks/kCz/slimetime_600px.webp'),
1665
+ dest: 'public/artpacks/kCz/slimetime_600px.webp',
1666
+ },
1667
+ {
1668
+ src: resolve('../templates/artpacks/kCz/snake_1080px.webp'),
1669
+ dest: 'public/artpacks/kCz/snake_1080px.webp',
1670
+ },
1671
+ {
1672
+ src: resolve('../templates/artpacks/kCz/snake_1920px.webp'),
1673
+ dest: 'public/artpacks/kCz/snake_1920px.webp',
1674
+ },
1675
+ {
1676
+ src: resolve('../templates/artpacks/kCz/snake_600px.webp'),
1677
+ dest: 'public/artpacks/kCz/snake_600px.webp',
1678
+ },
1679
+ {
1680
+ src: resolve('../templates/artpacks/kCz/toxicshock_1080px.webp'),
1681
+ dest: 'public/artpacks/kCz/toxicshock_1080px.webp',
1682
+ },
1683
+ {
1684
+ src: resolve('../templates/artpacks/kCz/toxicshock_1920px.webp'),
1685
+ dest: 'public/artpacks/kCz/toxicshock_1920px.webp',
1686
+ },
1687
+ {
1688
+ src: resolve('../templates/artpacks/kCz/toxicshock_600px.webp'),
1689
+ dest: 'public/artpacks/kCz/toxicshock_600px.webp',
1690
+ },
1691
+ {
1692
+ src: resolve('../templates/artpacks/kCz/tractstack_1080px.webp'),
1693
+ dest: 'public/artpacks/kCz/tractstack_1080px.webp',
1694
+ },
1695
+ {
1696
+ src: resolve('../templates/artpacks/kCz/tractstack_1920px.webp'),
1697
+ dest: 'public/artpacks/kCz/tractstack_1920px.webp',
1698
+ },
1699
+ {
1700
+ src: resolve('../templates/artpacks/kCz/tractstack_600px.webp'),
1701
+ dest: 'public/artpacks/kCz/tractstack_600px.webp',
1702
+ },
1703
+ {
1704
+ src: resolve('../templates/artpacks/kCz/tripdrips_1080px.webp'),
1705
+ dest: 'public/artpacks/kCz/tripdrips_1080px.webp',
1706
+ },
1707
+ {
1708
+ src: resolve('../templates/artpacks/kCz/tripdrips_1920px.webp'),
1709
+ dest: 'public/artpacks/kCz/tripdrips_1920px.webp',
1710
+ },
1711
+ {
1712
+ src: resolve('../templates/artpacks/kCz/tripdrips_600px.webp'),
1713
+ dest: 'public/artpacks/kCz/tripdrips_600px.webp',
1714
+ },
1715
+ {
1716
+ src: resolve('../templates/artpacks/kCz/wavedrips_1080px.webp'),
1717
+ dest: 'public/artpacks/kCz/wavedrips_1080px.webp',
1718
+ },
1719
+ {
1720
+ src: resolve('../templates/artpacks/kCz/wavedrips_1920px.webp'),
1721
+ dest: 'public/artpacks/kCz/wavedrips_1920px.webp',
1722
+ },
1723
+ {
1724
+ src: resolve('../templates/artpacks/kCz/wavedrips_600px.webp'),
1725
+ dest: 'public/artpacks/kCz/wavedrips_600px.webp',
1726
+ },
1727
+
1728
+ // Artpack Assets - t8k
1729
+ {
1730
+ src: resolve('../templates/artpacks/t8k/beach_1080px.webp'),
1731
+ dest: 'public/artpacks/t8k/beach_1080px.webp',
1732
+ },
1733
+ {
1734
+ src: resolve('../templates/artpacks/t8k/beach_1920px.webp'),
1735
+ dest: 'public/artpacks/t8k/beach_1920px.webp',
1736
+ },
1737
+ {
1738
+ src: resolve('../templates/artpacks/t8k/beach_600px.webp'),
1739
+ dest: 'public/artpacks/t8k/beach_600px.webp',
1740
+ },
1741
+ {
1742
+ src: resolve('../templates/artpacks/t8k/blast_1080px.webp'),
1743
+ dest: 'public/artpacks/t8k/blast_1080px.webp',
1744
+ },
1745
+ {
1746
+ src: resolve('../templates/artpacks/t8k/blast_1920px.webp'),
1747
+ dest: 'public/artpacks/t8k/blast_1920px.webp',
1748
+ },
1749
+ {
1750
+ src: resolve('../templates/artpacks/t8k/blast_600px.webp'),
1751
+ dest: 'public/artpacks/t8k/blast_600px.webp',
1752
+ },
1753
+ {
1754
+ src: resolve('../templates/artpacks/t8k/bokeh_1080px.webp'),
1755
+ dest: 'public/artpacks/t8k/bokeh_1080px.webp',
1756
+ },
1757
+ {
1758
+ src: resolve('../templates/artpacks/t8k/bokeh_1920px.webp'),
1759
+ dest: 'public/artpacks/t8k/bokeh_1920px.webp',
1760
+ },
1761
+ {
1762
+ src: resolve('../templates/artpacks/t8k/bokeh_600px.webp'),
1763
+ dest: 'public/artpacks/t8k/bokeh_600px.webp',
1764
+ },
1765
+ {
1766
+ src: resolve('../templates/artpacks/t8k/cartoon_1080px.webp'),
1767
+ dest: 'public/artpacks/t8k/cartoon_1080px.webp',
1768
+ },
1769
+ {
1770
+ src: resolve('../templates/artpacks/t8k/cartoon_1920px.webp'),
1771
+ dest: 'public/artpacks/t8k/cartoon_1920px.webp',
1772
+ },
1773
+ {
1774
+ src: resolve('../templates/artpacks/t8k/cartoon_600px.webp'),
1775
+ dest: 'public/artpacks/t8k/cartoon_600px.webp',
1776
+ },
1777
+ {
1778
+ src: resolve('../templates/artpacks/t8k/darkeggshell_1080px.webp'),
1779
+ dest: 'public/artpacks/t8k/darkeggshell_1080px.webp',
1780
+ },
1781
+ {
1782
+ src: resolve('../templates/artpacks/t8k/darkeggshell_1920px.webp'),
1783
+ dest: 'public/artpacks/t8k/darkeggshell_1920px.webp',
1784
+ },
1785
+ {
1786
+ src: resolve('../templates/artpacks/t8k/darkeggshell_600px.webp'),
1787
+ dest: 'public/artpacks/t8k/darkeggshell_600px.webp',
1788
+ },
1789
+ {
1790
+ src: resolve('../templates/artpacks/t8k/explosion_1080px.webp'),
1791
+ dest: 'public/artpacks/t8k/explosion_1080px.webp',
1792
+ },
1793
+ {
1794
+ src: resolve('../templates/artpacks/t8k/explosion_1920px.webp'),
1795
+ dest: 'public/artpacks/t8k/explosion_1920px.webp',
1796
+ },
1797
+ {
1798
+ src: resolve('../templates/artpacks/t8k/explosion_600px.webp'),
1799
+ dest: 'public/artpacks/t8k/explosion_600px.webp',
1800
+ },
1801
+ {
1802
+ src: resolve('../templates/artpacks/t8k/floral_1080px.webp'),
1803
+ dest: 'public/artpacks/t8k/floral_1080px.webp',
1804
+ },
1805
+ {
1806
+ src: resolve('../templates/artpacks/t8k/floral_1920px.webp'),
1807
+ dest: 'public/artpacks/t8k/floral_1920px.webp',
1808
+ },
1809
+ {
1810
+ src: resolve('../templates/artpacks/t8k/floral_600px.webp'),
1811
+ dest: 'public/artpacks/t8k/floral_600px.webp',
1812
+ },
1813
+ {
1814
+ src: resolve('../templates/artpacks/t8k/flower_1080px.webp'),
1815
+ dest: 'public/artpacks/t8k/flower_1080px.webp',
1816
+ },
1817
+ {
1818
+ src: resolve('../templates/artpacks/t8k/flower_1920px.webp'),
1819
+ dest: 'public/artpacks/t8k/flower_1920px.webp',
1820
+ },
1821
+ {
1822
+ src: resolve('../templates/artpacks/t8k/flower_600px.webp'),
1823
+ dest: 'public/artpacks/t8k/flower_600px.webp',
1824
+ },
1825
+ {
1826
+ src: resolve('../templates/artpacks/t8k/foliage_1080px.webp'),
1827
+ dest: 'public/artpacks/t8k/foliage_1080px.webp',
1828
+ },
1829
+ {
1830
+ src: resolve('../templates/artpacks/t8k/foliage_1920px.webp'),
1831
+ dest: 'public/artpacks/t8k/foliage_1920px.webp',
1832
+ },
1833
+ {
1834
+ src: resolve('../templates/artpacks/t8k/foliage_600px.webp'),
1835
+ dest: 'public/artpacks/t8k/foliage_600px.webp',
1836
+ },
1837
+ {
1838
+ src: resolve('../templates/artpacks/t8k/mist_1080px.webp'),
1839
+ dest: 'public/artpacks/t8k/mist_1080px.webp',
1840
+ },
1841
+ {
1842
+ src: resolve('../templates/artpacks/t8k/mist_1920px.webp'),
1843
+ dest: 'public/artpacks/t8k/mist_1920px.webp',
1844
+ },
1845
+ {
1846
+ src: resolve('../templates/artpacks/t8k/mist_600px.webp'),
1847
+ dest: 'public/artpacks/t8k/mist_600px.webp',
1848
+ },
1849
+ {
1850
+ src: resolve('../templates/artpacks/t8k/portal_1080px.webp'),
1851
+ dest: 'public/artpacks/t8k/portal_1080px.webp',
1852
+ },
1853
+ {
1854
+ src: resolve('../templates/artpacks/t8k/portal_1920px.webp'),
1855
+ dest: 'public/artpacks/t8k/portal_1920px.webp',
1856
+ },
1857
+ {
1858
+ src: resolve('../templates/artpacks/t8k/portal_600px.webp'),
1859
+ dest: 'public/artpacks/t8k/portal_600px.webp',
1860
+ },
1861
+ {
1862
+ src: resolve('../templates/artpacks/t8k/storytime_1080px.webp'),
1863
+ dest: 'public/artpacks/t8k/storytime_1080px.webp',
1864
+ },
1865
+ {
1866
+ src: resolve('../templates/artpacks/t8k/storytime_1920px.webp'),
1867
+ dest: 'public/artpacks/t8k/storytime_1920px.webp',
1868
+ },
1869
+ {
1870
+ src: resolve('../templates/artpacks/t8k/storytime_600px.webp'),
1871
+ dest: 'public/artpacks/t8k/storytime_600px.webp',
1872
+ },
1873
+ {
1874
+ src: resolve('../templates/artpacks/t8k/tacky_1080px.webp'),
1875
+ dest: 'public/artpacks/t8k/tacky_1080px.webp',
1876
+ },
1877
+ {
1878
+ src: resolve('../templates/artpacks/t8k/tacky_1920px.webp'),
1879
+ dest: 'public/artpacks/t8k/tacky_1920px.webp',
1880
+ },
1881
+ {
1882
+ src: resolve('../templates/artpacks/t8k/tacky_600px.webp'),
1883
+ dest: 'public/artpacks/t8k/tacky_600px.webp',
1884
+ },
1885
+ {
1886
+ src: resolve('../templates/artpacks/t8k/wallpaper_1080px.webp'),
1887
+ dest: 'public/artpacks/t8k/wallpaper_1080px.webp',
1888
+ },
1889
+ {
1890
+ src: resolve('../templates/artpacks/t8k/wallpaper_1920px.webp'),
1891
+ dest: 'public/artpacks/t8k/wallpaper_1920px.webp',
1892
+ },
1893
+ {
1894
+ src: resolve('../templates/artpacks/t8k/wallpaper_600px.webp'),
1895
+ dest: 'public/artpacks/t8k/wallpaper_600px.webp',
1896
+ },
1897
+
1898
+ // Add Mode icons
1899
+ {
1900
+ src: resolve('../templates/icons/h2.svg'),
1901
+ dest: 'public/icons/h2.svg',
1902
+ },
1903
+ {
1904
+ src: resolve('../templates/icons/h3.svg'),
1905
+ dest: 'public/icons/h3.svg',
1906
+ },
1907
+ {
1908
+ src: resolve('../templates/icons/h4.svg'),
1909
+ dest: 'public/icons/h4.svg',
1910
+ },
1911
+ {
1912
+ src: resolve('../templates/icons/h5.svg'),
1913
+ dest: 'public/icons/h5.svg',
1914
+ },
1915
+ {
1916
+ src: resolve('../templates/icons/image.svg'),
1917
+ dest: 'public/icons/image.svg',
1918
+ },
1919
+ {
1920
+ src: resolve('../templates/icons/text.svg'),
1921
+ dest: 'public/icons/text.svg',
1922
+ },
1923
+
1924
+ // Social Icons
1925
+ {
1926
+ src: resolve('../templates/socials/codepen.svg'),
1927
+ dest: 'public/socials/codepen.svg',
1928
+ },
1929
+ {
1930
+ src: resolve('../templates/socials/discord.svg'),
1931
+ dest: 'public/socials/discord.svg',
1932
+ },
1933
+ {
1934
+ src: resolve('../templates/socials/facebook.svg'),
1935
+ dest: 'public/socials/facebook.svg',
1936
+ },
1937
+ {
1938
+ src: resolve('../templates/socials/github.svg'),
1939
+ dest: 'public/socials/github.svg',
1940
+ },
1941
+ {
1942
+ src: resolve('../templates/socials/instagram.svg'),
1943
+ dest: 'public/socials/instagram.svg',
1944
+ },
1945
+ {
1946
+ src: resolve('../templates/socials/linkedin.svg'),
1947
+ dest: 'public/socials/linkedin.svg',
1948
+ },
1949
+ {
1950
+ src: resolve('../templates/socials/mail.svg'),
1951
+ dest: 'public/socials/mail.svg',
1952
+ },
1953
+ {
1954
+ src: resolve('../templates/socials/rumble.svg'),
1955
+ dest: 'public/socials/rumble.svg',
1956
+ },
1957
+ {
1958
+ src: resolve('../templates/socials/tiktok.svg'),
1959
+ dest: 'public/socials/tiktok.svg',
1960
+ },
1961
+ {
1962
+ src: resolve('../templates/socials/twitch.svg'),
1963
+ dest: 'public/socials/twitch.svg',
1964
+ },
1965
+ {
1966
+ src: resolve('../templates/socials/twitter.svg'),
1967
+ dest: 'public/socials/twitter.svg',
1968
+ },
1969
+ {
1970
+ src: resolve('../templates/socials/x.svg'),
1971
+ dest: 'public/socials/x.svg',
1972
+ },
1973
+ {
1974
+ src: resolve('../templates/socials/youtube.svg'),
1975
+ dest: 'public/socials/youtube.svg',
1976
+ },
1977
+
1978
+ // Multi-Tenant Features
1979
+ {
1980
+ src: resolve('../templates/src/components/tenant/RegistrationForm.tsx'),
1981
+ dest: 'src/components/tenant/RegistrationForm.tsx',
1982
+ },
1983
+ {
1984
+ src: resolve('../templates/src/utils/api/tenantConfig.ts'),
1985
+ dest: 'src/utils/api/tenantConfig.ts',
1986
+ },
1987
+ {
1988
+ src: resolve('../templates/src/utils/api/tenantHelpers.ts'),
1989
+ dest: 'src/utils/api/tenantHelpers.ts',
1990
+ },
1991
+ // Multi-Tenant Features (Conditional)
1992
+ ...(config?.enableMultiTenant
1993
+ ? [
1994
+ // Middleware
1995
+ {
1996
+ src: resolve('../templates/src/middleware.ts'),
1997
+ dest: 'src/middleware.ts',
1998
+ },
1999
+ // Pages
2000
+ {
2001
+ src: resolve('../templates/src/pages/sandbox/register.astro'),
2002
+ dest: 'src/pages/sandbox/register.astro',
2003
+ },
2004
+ {
2005
+ src: resolve('../templates/src/pages/sandbox/activate.astro'),
2006
+ dest: 'src/pages/sandbox/activate.astro',
2007
+ },
2008
+ {
2009
+ src: resolve('../templates/src/pages/sandbox/success.astro'),
2010
+ dest: 'src/pages/sandbox/success.astro',
2011
+ },
2012
+ ]
2013
+ : []),
2014
+ // Multi-Tenant Types (Always included due to plan reference)
2015
+ {
2016
+ src: resolve('../templates/src/types/multiTenant.ts'),
2017
+ dest: 'src/types/multiTenant.ts',
2018
+ },
2019
+
2020
+ // Custom Components (Conditional)
2021
+ {
2022
+ src: resolve(
2023
+ config?.includeExamples
2024
+ ? '../templates/custom/with-examples/CodeHook.astro'
2025
+ : '../templates/custom/minimal/CodeHook.astro'
2026
+ ),
2027
+ dest: 'src/custom/CodeHook.astro',
2028
+ protected: true,
2029
+ },
2030
+ {
2031
+ src: resolve(
2032
+ config?.includeExamples
2033
+ ? '../templates/custom/with-examples/CustomRoutes.astro'
2034
+ : '../templates/custom/minimal/CustomRoutes.astro'
2035
+ ),
2036
+ dest: 'src/custom/CustomRoutes.astro',
2037
+ protected: true,
2038
+ },
2039
+
2040
+ // Example Components (Conditional)
2041
+ ...(config?.includeExamples
2042
+ ? [
2043
+ {
2044
+ src: resolve('../templates/custom/with-examples/CustomHero.astro'),
2045
+ dest: 'src/custom/CustomHero.astro',
2046
+ protected: true,
2047
+ },
2048
+ {
2049
+ src: resolve(
2050
+ '../templates/custom/with-examples/pages/Collections.astro'
2051
+ ),
2052
+ dest: 'src/custom/pages/Collections.astro',
2053
+ protected: true,
2054
+ },
2055
+ {
2056
+ src: resolve('../templates/src/pages/collections/[param1].astro'),
2057
+ dest: 'src/pages/collections/[param1].astro',
2058
+ protected: true,
2059
+ },
2060
+ ]
2061
+ : []),
2062
+ ];
2063
+
2064
+ // Process each file: create directories, copy or create placeholders, and log results
2065
+ for (const file of templateFiles) {
2066
+ try {
2067
+ const destDir = dirname(file.dest);
2068
+ if (!existsSync(destDir)) {
2069
+ mkdirSync(destDir, { recursive: true });
2070
+ }
2071
+
2072
+ // Determine if file should be overwritten
2073
+ const shouldOverwrite =
2074
+ !file.protected &&
2075
+ (file.dest === 'tailwind.config.cjs' ||
2076
+ file.dest.startsWith('src/components/codehooks/') ||
2077
+ file.dest.startsWith('src/components/widgets/') ||
2078
+ file.dest.startsWith('src/') ||
2079
+ file.dest === '.gitignore');
2080
+
2081
+ if (!existsSync(file.dest) || shouldOverwrite) {
2082
+ if (existsSync(file.src)) {
2083
+ copyFileSync(file.src, file.dest);
2084
+ logger.info(`Updated ${file.dest}`);
2085
+ } else {
2086
+ const placeholder = createPlaceholder(file.dest);
2087
+ writeFileSync(file.dest, placeholder);
2088
+ logger.info(`Created placeholder ${file.dest}`);
2089
+ }
2090
+ } else if (file.protected) {
2091
+ logger.info(`Protected: ${file.dest} (skipped overwrite)`);
2092
+ } else {
2093
+ logger.info(`Skipped existing ${file.dest}`);
2094
+ }
2095
+ } catch (error: unknown) {
2096
+ const message = error instanceof Error ? error.message : String(error);
2097
+ logger.error(`Failed to create ${file.dest}: ${message}`);
2098
+ }
2099
+ }
2100
+ }
2101
+
2102
+ /**
2103
+ * Creates a placeholder file content based on the file extension.
2104
+ * @param filePath - Destination path of the file
2105
+ * @returns Placeholder content for the file
2106
+ */
2107
+ function createPlaceholder(filePath: string): string {
2108
+ if (filePath.endsWith('.astro')) {
2109
+ return `---
2110
+ // TractStack placeholder component
2111
+ ---
2112
+ <div>TractStack placeholder: ${filePath}</div>`;
2113
+ }
2114
+
2115
+ if (filePath.endsWith('.tsx')) {
2116
+ return `// TractStack placeholder component
2117
+ import React from 'react';
2118
+ export default function Placeholder() {
2119
+ return <div>TractStack placeholder: ${filePath}</div>;
2120
+ }`;
2121
+ }
2122
+
2123
+ if (filePath.endsWith('.ts')) {
2124
+ return `// TractStack placeholder utility
2125
+ export const placeholder = "${filePath}";`;
2126
+ }
2127
+
2128
+ // if (filePath.endsWith('.cjs')) {
2129
+ // return `/** @type {import('tailwindcss').Config} */
2130
+ //module.exports = {
2131
+ // content: ["./src/**/*.{astro,html,js,jsx,md,mdx,ts,tsx}"],
2132
+ // theme: {
2133
+ // extend: {},
2134
+ // },
2135
+ // plugins: [],
2136
+ //};`;
2137
+ // }
2138
+
2139
+ return `# TractStack placeholder: ${filePath}`;
2140
+ }