bsmnt 0.4.1 → 0.4.2

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 (531) hide show
  1. package/dist/{helpers/add → application/add-hooks}/index.d.ts +4 -4
  2. package/dist/application/add-hooks/index.d.ts.map +1 -0
  3. package/dist/{helpers/add → application/add-hooks}/index.js +22 -35
  4. package/dist/application/add-hooks/index.js.map +1 -0
  5. package/dist/{utils → application/add-integration}/format-results.d.ts +1 -6
  6. package/dist/application/add-integration/format-results.d.ts.map +1 -0
  7. package/dist/{utils → application/add-integration}/format-results.js +1 -6
  8. package/dist/application/add-integration/format-results.js.map +1 -0
  9. package/dist/{helpers/integrate → application/add-integration}/index.d.ts +2 -1
  10. package/dist/application/add-integration/index.d.ts.map +1 -0
  11. package/dist/{helpers/integrate → application/add-integration}/index.js +46 -41
  12. package/dist/application/add-integration/index.js.map +1 -0
  13. package/dist/application/create-project/build-context.d.ts +9 -0
  14. package/dist/application/create-project/build-context.d.ts.map +1 -0
  15. package/dist/application/create-project/build-context.js +13 -0
  16. package/dist/application/create-project/build-context.js.map +1 -0
  17. package/dist/application/create-project/index.d.ts +44 -0
  18. package/dist/application/create-project/index.d.ts.map +1 -0
  19. package/dist/application/create-project/index.js +70 -0
  20. package/dist/application/create-project/index.js.map +1 -0
  21. package/dist/application/create-project/map-selection-to-registry.d.ts +3 -0
  22. package/dist/application/create-project/map-selection-to-registry.d.ts.map +1 -0
  23. package/dist/application/create-project/map-selection-to-registry.js +30 -0
  24. package/dist/application/create-project/map-selection-to-registry.js.map +1 -0
  25. package/dist/application/create-project/resolve-selection.d.ts +15 -0
  26. package/dist/application/create-project/resolve-selection.d.ts.map +1 -0
  27. package/dist/application/create-project/resolve-selection.js +11 -0
  28. package/dist/application/create-project/resolve-selection.js.map +1 -0
  29. package/dist/{helpers/skills → application/install-skills}/index.d.ts +1 -1
  30. package/dist/application/install-skills/index.d.ts.map +1 -0
  31. package/dist/{helpers/skills → application/install-skills}/index.js +31 -44
  32. package/dist/application/install-skills/index.js.map +1 -0
  33. package/dist/{utils/detect-project.d.ts → application/shared/project-detection.d.ts} +8 -15
  34. package/dist/application/shared/project-detection.d.ts.map +1 -0
  35. package/dist/{utils/detect-project.js → application/shared/project-detection.js} +8 -24
  36. package/dist/application/shared/project-detection.js.map +1 -0
  37. package/dist/core/create/build-plan.d.ts +8 -0
  38. package/dist/core/create/build-plan.d.ts.map +1 -0
  39. package/dist/core/create/build-plan.js +89 -0
  40. package/dist/core/create/build-plan.js.map +1 -0
  41. package/dist/core/create/execute-plan.d.ts +23 -0
  42. package/dist/core/create/execute-plan.d.ts.map +1 -0
  43. package/dist/core/create/execute-plan.js +23 -0
  44. package/dist/core/create/execute-plan.js.map +1 -0
  45. package/dist/core/create/internal-ids.d.ts +23 -0
  46. package/dist/core/create/internal-ids.d.ts.map +1 -0
  47. package/dist/core/create/internal-ids.js +36 -0
  48. package/dist/core/create/internal-ids.js.map +1 -0
  49. package/dist/core/create/registry.d.ts +12 -0
  50. package/dist/core/create/registry.d.ts.map +1 -0
  51. package/dist/core/create/registry.js +33 -0
  52. package/dist/core/create/registry.js.map +1 -0
  53. package/dist/core/create/types.d.ts +96 -0
  54. package/dist/core/create/types.d.ts.map +1 -0
  55. package/dist/core/create/types.js +2 -0
  56. package/dist/core/create/types.js.map +1 -0
  57. package/dist/domain/agents.d.ts +61 -0
  58. package/dist/domain/agents.d.ts.map +1 -0
  59. package/dist/domain/agents.js +35 -0
  60. package/dist/domain/agents.js.map +1 -0
  61. package/dist/domain/animations.d.ts +20 -0
  62. package/dist/domain/animations.d.ts.map +1 -0
  63. package/dist/domain/animations.js +13 -0
  64. package/dist/domain/animations.js.map +1 -0
  65. package/dist/domain/cms.d.ts +24 -0
  66. package/dist/domain/cms.d.ts.map +1 -0
  67. package/dist/domain/cms.js +13 -0
  68. package/dist/domain/cms.js.map +1 -0
  69. package/dist/domain/hooks.d.ts +67 -0
  70. package/dist/domain/hooks.d.ts.map +1 -0
  71. package/dist/domain/hooks.js +52 -0
  72. package/dist/domain/hooks.js.map +1 -0
  73. package/dist/domain/skills.d.ts +70 -0
  74. package/dist/domain/skills.d.ts.map +1 -0
  75. package/dist/domain/skills.js +84 -0
  76. package/dist/domain/skills.js.map +1 -0
  77. package/dist/domain/templates.d.ts +51 -0
  78. package/dist/domain/templates.d.ts.map +1 -0
  79. package/dist/domain/templates.js +27 -0
  80. package/dist/domain/templates.js.map +1 -0
  81. package/dist/index.js +124 -115
  82. package/dist/index.js.map +1 -1
  83. package/dist/infrastructure/agents/register-sanity-mcp.d.ts +12 -0
  84. package/dist/infrastructure/agents/register-sanity-mcp.d.ts.map +1 -0
  85. package/dist/infrastructure/agents/register-sanity-mcp.js +153 -0
  86. package/dist/infrastructure/agents/register-sanity-mcp.js.map +1 -0
  87. package/dist/infrastructure/create/apply-copy-paths.d.ts +3 -0
  88. package/dist/infrastructure/create/apply-copy-paths.d.ts.map +1 -0
  89. package/dist/infrastructure/create/apply-copy-paths.js +12 -0
  90. package/dist/infrastructure/create/apply-copy-paths.js.map +1 -0
  91. package/dist/infrastructure/create/apply-merge-paths.d.ts +3 -0
  92. package/dist/infrastructure/create/apply-merge-paths.d.ts.map +1 -0
  93. package/dist/infrastructure/create/apply-merge-paths.js +17 -0
  94. package/dist/infrastructure/create/apply-merge-paths.js.map +1 -0
  95. package/dist/infrastructure/create/apply-package-json.d.ts +8 -0
  96. package/dist/infrastructure/create/apply-package-json.d.ts.map +1 -0
  97. package/dist/infrastructure/create/apply-package-json.js +46 -0
  98. package/dist/infrastructure/create/apply-package-json.js.map +1 -0
  99. package/dist/infrastructure/create/copy-template.d.ts +10 -0
  100. package/dist/infrastructure/create/copy-template.d.ts.map +1 -0
  101. package/dist/infrastructure/create/copy-template.js.map +1 -0
  102. package/dist/infrastructure/create/executor.d.ts +3 -0
  103. package/dist/infrastructure/create/executor.d.ts.map +1 -0
  104. package/dist/infrastructure/create/executor.js +21 -0
  105. package/dist/infrastructure/create/executor.js.map +1 -0
  106. package/dist/{helpers/create/init-git.d.ts → infrastructure/create/init-git-repo.d.ts} +2 -3
  107. package/dist/infrastructure/create/init-git-repo.d.ts.map +1 -0
  108. package/dist/{helpers/create/init-git.js → infrastructure/create/init-git-repo.js} +1 -4
  109. package/dist/infrastructure/create/init-git-repo.js.map +1 -0
  110. package/dist/{helpers/create/install.d.ts → infrastructure/create/install-dependencies.d.ts} +1 -1
  111. package/dist/infrastructure/create/install-dependencies.d.ts.map +1 -0
  112. package/dist/{helpers/create/install.js → infrastructure/create/install-dependencies.js} +1 -1
  113. package/dist/infrastructure/create/install-dependencies.js.map +1 -0
  114. package/dist/infrastructure/create/lifecycle-registry.d.ts +3 -0
  115. package/dist/infrastructure/create/lifecycle-registry.d.ts.map +1 -0
  116. package/dist/infrastructure/create/lifecycle-registry.js +38 -0
  117. package/dist/infrastructure/create/lifecycle-registry.js.map +1 -0
  118. package/dist/infrastructure/create/merge-registry.d.ts +3 -0
  119. package/dist/infrastructure/create/merge-registry.d.ts.map +1 -0
  120. package/dist/infrastructure/create/merge-registry.js +27 -0
  121. package/dist/infrastructure/create/merge-registry.js.map +1 -0
  122. package/dist/infrastructure/create/rename-files.d.ts.map +1 -0
  123. package/dist/infrastructure/create/rename-files.js.map +1 -0
  124. package/dist/{helpers → infrastructure}/create/setup-agent.d.ts +9 -7
  125. package/dist/infrastructure/create/setup-agent.d.ts.map +1 -0
  126. package/dist/infrastructure/create/setup-agent.js +77 -0
  127. package/dist/infrastructure/create/setup-agent.js.map +1 -0
  128. package/dist/infrastructure/create/setup-sanity.d.ts.map +1 -0
  129. package/dist/{helpers → infrastructure}/create/setup-sanity.js +1 -19
  130. package/dist/infrastructure/create/setup-sanity.js.map +1 -0
  131. package/dist/infrastructure/integrations/inject-integration.d.ts +9 -0
  132. package/dist/infrastructure/integrations/inject-integration.d.ts.map +1 -0
  133. package/dist/{helpers/integrate/merge-orchestrator.js → infrastructure/integrations/inject-integration.js} +26 -38
  134. package/dist/infrastructure/integrations/inject-integration.js.map +1 -0
  135. package/dist/modules/features/agents/index.d.ts +3 -0
  136. package/dist/modules/features/agents/index.d.ts.map +1 -0
  137. package/dist/modules/features/agents/index.js +4 -0
  138. package/dist/modules/features/agents/index.js.map +1 -0
  139. package/dist/modules/features/agents/shared.d.ts +4 -0
  140. package/dist/modules/features/agents/shared.d.ts.map +1 -0
  141. package/dist/modules/features/agents/shared.js +21 -0
  142. package/dist/modules/features/agents/shared.js.map +1 -0
  143. package/dist/{configs/animations.d.ts → modules/features/animation/config.d.ts} +1 -1
  144. package/dist/modules/features/animation/config.d.ts.map +1 -0
  145. package/dist/{configs/animations.js → modules/features/animation/config.js} +1 -1
  146. package/dist/modules/features/animation/config.js.map +1 -0
  147. package/dist/modules/features/animation/gsap.d.ts +3 -0
  148. package/dist/modules/features/animation/gsap.d.ts.map +1 -0
  149. package/dist/modules/features/animation/gsap.js +16 -0
  150. package/dist/modules/features/animation/gsap.js.map +1 -0
  151. package/dist/modules/features/animation/index.d.ts +3 -0
  152. package/dist/modules/features/animation/index.d.ts.map +1 -0
  153. package/dist/modules/features/animation/index.js +4 -0
  154. package/dist/modules/features/animation/index.js.map +1 -0
  155. package/dist/modules/features/animation/motion.d.ts +3 -0
  156. package/dist/modules/features/animation/motion.d.ts.map +1 -0
  157. package/dist/modules/features/animation/motion.js +16 -0
  158. package/dist/modules/features/animation/motion.js.map +1 -0
  159. package/dist/modules/features/cms/index.d.ts +3 -0
  160. package/dist/modules/features/cms/index.d.ts.map +1 -0
  161. package/dist/modules/features/cms/index.js +7 -0
  162. package/dist/modules/features/cms/index.js.map +1 -0
  163. package/dist/modules/features/cms/sanity/config.d.ts.map +1 -0
  164. package/dist/{helpers/integrate → modules/features/cms}/sanity/config.js +3 -2
  165. package/dist/modules/features/cms/sanity/config.js.map +1 -0
  166. package/dist/modules/features/cms/sanity/index.d.ts +3 -0
  167. package/dist/modules/features/cms/sanity/index.d.ts.map +1 -0
  168. package/dist/modules/features/cms/sanity/index.js +61 -0
  169. package/dist/modules/features/cms/sanity/index.js.map +1 -0
  170. package/dist/{helpers/integrate/sanity/mergers/check-integration-merger.d.ts → modules/features/cms/sanity/mergers/check-integration.d.ts} +1 -1
  171. package/dist/modules/features/cms/sanity/mergers/check-integration.d.ts.map +1 -0
  172. package/dist/{helpers/integrate/sanity/mergers/check-integration-merger.js → modules/features/cms/sanity/mergers/check-integration.js} +1 -1
  173. package/dist/modules/features/cms/sanity/mergers/check-integration.js.map +1 -0
  174. package/dist/{helpers/integrate/sanity/mergers/layout-merger.d.ts → modules/features/cms/sanity/mergers/layout.d.ts} +1 -1
  175. package/dist/modules/features/cms/sanity/mergers/layout.d.ts.map +1 -0
  176. package/dist/{helpers/integrate/sanity/mergers/layout-merger.js → modules/features/cms/sanity/mergers/layout.js} +1 -1
  177. package/dist/modules/features/cms/sanity/mergers/layout.js.map +1 -0
  178. package/dist/modules/features/cms/sanity/mergers/sitemap.d.ts +13 -0
  179. package/dist/modules/features/cms/sanity/mergers/sitemap.d.ts.map +1 -0
  180. package/dist/modules/features/cms/sanity/mergers/sitemap.js +92 -0
  181. package/dist/modules/features/cms/sanity/mergers/sitemap.js.map +1 -0
  182. package/dist/modules/features/cms/sanity-pagebuilder/config.d.ts +14 -0
  183. package/dist/modules/features/cms/sanity-pagebuilder/config.d.ts.map +1 -0
  184. package/dist/modules/features/cms/sanity-pagebuilder/config.js +44 -0
  185. package/dist/modules/features/cms/sanity-pagebuilder/config.js.map +1 -0
  186. package/dist/modules/features/cms/sanity-pagebuilder/index.d.ts +3 -0
  187. package/dist/modules/features/cms/sanity-pagebuilder/index.d.ts.map +1 -0
  188. package/dist/modules/features/cms/sanity-pagebuilder/index.js +46 -0
  189. package/dist/modules/features/cms/sanity-pagebuilder/index.js.map +1 -0
  190. package/dist/modules/features/hooks/factory.d.ts +4 -0
  191. package/dist/modules/features/hooks/factory.d.ts.map +1 -0
  192. package/dist/modules/features/hooks/factory.js +26 -0
  193. package/dist/modules/features/hooks/factory.js.map +1 -0
  194. package/dist/modules/features/hooks/index.d.ts +3 -0
  195. package/dist/modules/features/hooks/index.d.ts.map +1 -0
  196. package/dist/modules/features/hooks/index.js +4 -0
  197. package/dist/modules/features/hooks/index.js.map +1 -0
  198. package/dist/modules/presets/index.d.ts +3 -0
  199. package/dist/modules/presets/index.d.ts.map +1 -0
  200. package/dist/modules/presets/index.js +11 -0
  201. package/dist/modules/presets/index.js.map +1 -0
  202. package/dist/modules/presets/next-default.d.ts +3 -0
  203. package/dist/modules/presets/next-default.d.ts.map +1 -0
  204. package/dist/modules/presets/next-default.js +9 -0
  205. package/dist/modules/presets/next-default.js.map +1 -0
  206. package/dist/modules/presets/next-experiments.d.ts +3 -0
  207. package/dist/modules/presets/next-experiments.d.ts.map +1 -0
  208. package/dist/modules/presets/next-experiments.js +9 -0
  209. package/dist/modules/presets/next-experiments.js.map +1 -0
  210. package/dist/modules/presets/next-pagebuilder.d.ts +3 -0
  211. package/dist/modules/presets/next-pagebuilder.d.ts.map +1 -0
  212. package/dist/modules/presets/next-pagebuilder.js +10 -0
  213. package/dist/modules/presets/next-pagebuilder.js.map +1 -0
  214. package/dist/modules/presets/next-webgl.d.ts +3 -0
  215. package/dist/modules/presets/next-webgl.d.ts.map +1 -0
  216. package/dist/modules/presets/next-webgl.js +9 -0
  217. package/dist/modules/presets/next-webgl.js.map +1 -0
  218. package/dist/paths.d.ts +7 -1
  219. package/dist/paths.d.ts.map +1 -1
  220. package/dist/paths.js +8 -2
  221. package/dist/paths.js.map +1 -1
  222. package/index.js +2 -2
  223. package/package.json +11 -4
  224. package/src/modules/features/cms/sanity/files/.knip.json +8 -0
  225. package/src/{helpers/integrate → modules/features/cms}/sanity/files/app/api/blog/[slug]/route.ts +3 -4
  226. package/src/{helpers/integrate → modules/features/cms}/sanity/files/app/api/revalidate/route.ts +1 -4
  227. package/src/{helpers/integrate → modules/features/cms}/sanity/files/app/blog/[slug]/page.tsx +8 -9
  228. package/src/{helpers/integrate → modules/features/cms}/sanity/files/app/layout.tsx +2 -2
  229. package/src/{helpers/integrate → modules/features/cms}/sanity/files/app/sitemap.md/route.ts +18 -29
  230. package/src/modules/features/cms/sanity/files/app/sitemap.xml/route.ts +51 -0
  231. package/src/{helpers/integrate → modules/features/cms}/sanity/files/lib/integrations/sanity/env.ts +2 -4
  232. package/src/{helpers/integrate → modules/features/cms}/sanity/files/lib/integrations/sanity/queries.ts +0 -42
  233. package/src/{helpers/integrate → modules/features/cms}/sanity/files/lib/integrations/sanity/schemas/index.ts +1 -1
  234. package/src/modules/features/cms/sanity/files/lib/scripts/copy-sanity-mcp.ts +23 -0
  235. package/src/modules/features/cms/sanity/files/lib/scripts/generate-page.ts +297 -0
  236. package/src/{helpers/integrate → modules/features/cms}/sanity/files/lib/utils/json-ld.tsx +1 -6
  237. package/src/{helpers/integrate → modules/features/cms}/sanity/files/lib/utils/metadata.ts +2 -2
  238. package/src/{helpers/integrate → modules/features/cms}/sanity/files/lib/utils/url.ts +4 -2
  239. package/src/{helpers/integrate → modules/features/cms}/sanity/files/proxy.ts +11 -11
  240. package/src/template-hooks/use-device-perf.ts +27 -17
  241. package/src/templates/next-default/.env.example +3 -3
  242. package/src/templates/next-default/.vscode/extensions.json +1 -5
  243. package/src/templates/next-default/.vscode/settings.json +1 -1
  244. package/src/templates/next-default/.zed/settings.json +47 -0
  245. package/src/templates/next-default/README.md +7 -6
  246. package/src/templates/next-default/_gitignore +1 -3
  247. package/src/templates/next-default/app/layout.tsx +21 -35
  248. package/src/templates/next-default/app/robots.ts +3 -4
  249. package/src/templates/next-default/app/sitemap.xml/route.ts +29 -29
  250. package/src/templates/next-default/biome.json +9 -2
  251. package/src/templates/next-default/components/ui/image/index.tsx +2 -1
  252. package/src/templates/next-default/components/ui/link/index.tsx +35 -35
  253. package/src/templates/next-default/lefthook.yml +25 -0
  254. package/src/templates/next-default/lib/README.md +8 -4
  255. package/src/templates/next-default/lib/hooks/use-media.ts +6 -3
  256. package/src/templates/next-default/lib/scripts/dev.ts +32 -0
  257. package/src/templates/next-default/lib/styles/README.md +13 -0
  258. package/src/templates/next-default/lib/styles/fonts.ts +20 -0
  259. package/src/templates/next-default/lib/styles/global.css +15 -196
  260. package/src/templates/next-default/lib/styles/index.css +3 -0
  261. package/src/templates/next-default/lib/styles/tokens.css +182 -0
  262. package/src/templates/next-default/lib/utils/README.md +40 -0
  263. package/src/templates/next-default/lib/utils/easings.ts +240 -0
  264. package/src/templates/next-default/lib/utils/fetch.ts +84 -0
  265. package/src/templates/next-default/lib/utils/global-css.d.ts +1 -0
  266. package/src/templates/next-default/lib/utils/json-ld.tsx +70 -68
  267. package/src/templates/next-default/lib/utils/math.ts +236 -0
  268. package/src/templates/next-default/lib/utils/metadata.ts +26 -27
  269. package/src/templates/next-default/lib/utils/strings.ts +246 -0
  270. package/src/templates/next-default/lib/utils/types.d.ts +15 -0
  271. package/src/templates/next-default/lib/utils/url.ts +8 -5
  272. package/src/templates/next-default/lib/utils/viewport.ts +199 -0
  273. package/src/templates/next-default/package.json +12 -7
  274. package/src/templates/next-default/svg.d.ts +1 -0
  275. package/src/templates/next-experiments/.env.example +3 -3
  276. package/src/templates/next-experiments/.knip.json +3 -0
  277. package/src/templates/next-experiments/.vscode/extensions.json +1 -5
  278. package/src/templates/next-experiments/.vscode/settings.json +1 -1
  279. package/src/templates/next-experiments/.zed/settings.json +47 -0
  280. package/src/templates/next-experiments/README.md +7 -6
  281. package/src/templates/next-experiments/_gitignore +1 -3
  282. package/src/templates/next-experiments/app/layout.tsx +21 -35
  283. package/src/templates/next-experiments/app/robots.ts +5 -2
  284. package/src/templates/next-experiments/app/sitemap.xml/route.ts +51 -0
  285. package/src/templates/next-experiments/biome.json +4 -2
  286. package/src/templates/next-experiments/components/layout/navigation-menu.tsx +1 -1
  287. package/src/templates/next-experiments/components/layout/wrapper/index.tsx +6 -6
  288. package/src/templates/next-experiments/components/ui/image/index.tsx +33 -33
  289. package/src/templates/next-experiments/lib/README.md +8 -4
  290. package/src/templates/next-experiments/lib/hooks/use-media.ts +6 -3
  291. package/src/templates/next-experiments/lib/scripts/dev.ts +32 -0
  292. package/src/templates/next-experiments/lib/styles/README.md +13 -0
  293. package/src/templates/next-experiments/lib/styles/fonts.ts +20 -0
  294. package/src/templates/next-experiments/lib/styles/global.css +16 -196
  295. package/src/templates/next-experiments/lib/styles/index.css +3 -0
  296. package/src/templates/next-experiments/lib/styles/tokens.css +182 -0
  297. package/src/templates/next-experiments/lib/utils/README.md +40 -0
  298. package/src/templates/next-experiments/lib/utils/easings.ts +240 -0
  299. package/src/templates/next-experiments/lib/utils/fetch.ts +84 -0
  300. package/src/templates/next-experiments/lib/utils/global-css.d.ts +1 -0
  301. package/src/templates/next-experiments/lib/utils/json-ld.tsx +70 -68
  302. package/src/templates/next-experiments/lib/utils/math.ts +236 -0
  303. package/src/templates/next-experiments/lib/utils/metadata.ts +26 -27
  304. package/src/templates/next-experiments/lib/utils/strings.ts +246 -0
  305. package/src/templates/next-experiments/lib/utils/types.d.ts +15 -0
  306. package/src/templates/next-experiments/lib/utils/url.ts +8 -5
  307. package/src/templates/next-experiments/lib/utils/viewport.ts +199 -0
  308. package/src/templates/next-experiments/package.json +6 -6
  309. package/src/templates/next-experiments/svg.d.ts +1 -0
  310. package/src/templates/next-pagebuilder/.vscode/extensions.json +16 -0
  311. package/src/templates/next-pagebuilder/.vscode/settings.json +105 -0
  312. package/src/templates/next-pagebuilder/.zed/settings.json +47 -0
  313. package/src/templates/next-pagebuilder/_gitignore +1 -3
  314. package/src/templates/next-pagebuilder/app/(content)/[[...slug]]/page.tsx +1 -1
  315. package/src/templates/next-pagebuilder/app/(content)/layout.tsx +0 -1
  316. package/src/templates/next-pagebuilder/app/robots.ts +3 -4
  317. package/src/templates/next-pagebuilder/biome.json +17 -0
  318. package/src/templates/next-pagebuilder/components/layout/footer/index.tsx +4 -5
  319. package/src/templates/next-pagebuilder/components/layout/header/index.tsx +1 -1
  320. package/src/templates/next-pagebuilder/components/page-builder/components/article-content/index.tsx +4 -9
  321. package/src/templates/next-pagebuilder/components/page-builder/components/article-content/related-post-item.tsx +4 -4
  322. package/src/templates/next-pagebuilder/components/page-builder/components/content-collection/content-card.tsx +3 -1
  323. package/src/templates/next-pagebuilder/components/page-builder/components/content-collection/index.tsx +12 -5
  324. package/src/templates/next-pagebuilder/components/page-builder/components/content-collection/types.ts +3 -1
  325. package/src/templates/next-pagebuilder/components/page-builder/renderer.tsx +6 -2
  326. package/src/templates/next-pagebuilder/components/page-builder/types.ts +9 -7
  327. package/src/templates/next-pagebuilder/components/page-document/index.tsx +12 -2
  328. package/src/templates/next-pagebuilder/lefthook.yml +25 -0
  329. package/src/templates/next-pagebuilder/lib/integrations/sanity/sanity.types.ts +208 -0
  330. package/src/templates/next-pagebuilder/lib/styles/global.css +0 -1
  331. package/src/templates/next-pagebuilder/next.config.ts +0 -2
  332. package/src/templates/next-pagebuilder/package.json +13 -25
  333. package/src/templates/next-pagebuilder/postcss.config.mjs +27 -1
  334. package/src/templates/next-pagebuilder/svg.d.ts +1 -0
  335. package/src/templates/next-webgl/.env.example +3 -3
  336. package/src/templates/next-webgl/.vscode/extensions.json +1 -5
  337. package/src/templates/next-webgl/.vscode/settings.json +1 -1
  338. package/src/templates/next-webgl/.zed/settings.json +47 -0
  339. package/src/templates/next-webgl/README.md +7 -6
  340. package/src/templates/next-webgl/_gitignore +1 -3
  341. package/src/templates/next-webgl/app/layout.tsx +21 -35
  342. package/src/templates/next-webgl/app/robots.ts +3 -4
  343. package/src/templates/next-webgl/app/sitemap.xml/route.ts +29 -29
  344. package/src/templates/next-webgl/biome.json +9 -2
  345. package/src/templates/next-webgl/components/ui/image/index.tsx +2 -1
  346. package/src/templates/next-webgl/components/webgl/components/scene/index.tsx +0 -2
  347. package/src/templates/next-webgl/lefthook.yml +25 -0
  348. package/src/templates/next-webgl/lib/README.md +8 -4
  349. package/src/templates/next-webgl/lib/hooks/use-media.ts +6 -3
  350. package/src/templates/next-webgl/lib/scripts/dev.ts +32 -0
  351. package/src/templates/next-webgl/lib/styles/README.md +13 -0
  352. package/src/templates/next-webgl/lib/styles/fonts.ts +20 -0
  353. package/src/templates/next-webgl/lib/styles/global.css +16 -196
  354. package/src/templates/next-webgl/lib/styles/index.css +3 -0
  355. package/src/templates/next-webgl/lib/styles/tokens.css +182 -0
  356. package/src/templates/next-webgl/lib/utils/README.md +40 -0
  357. package/src/templates/next-webgl/lib/utils/easings.ts +240 -0
  358. package/src/templates/next-webgl/lib/utils/fetch.ts +84 -0
  359. package/src/templates/next-webgl/lib/utils/global-css.d.ts +1 -0
  360. package/src/templates/next-webgl/lib/utils/json-ld.tsx +70 -68
  361. package/src/templates/next-webgl/lib/utils/math.ts +236 -0
  362. package/src/templates/next-webgl/lib/utils/metadata.ts +26 -27
  363. package/src/templates/next-webgl/lib/utils/strings.ts +246 -0
  364. package/src/templates/next-webgl/lib/utils/types.d.ts +15 -0
  365. package/src/templates/next-webgl/lib/utils/url.ts +8 -5
  366. package/src/templates/next-webgl/lib/utils/viewport.ts +199 -0
  367. package/src/templates/next-webgl/package.json +13 -8
  368. package/src/templates/next-webgl/svg.d.ts +1 -0
  369. package/src/templates/next-webgl/tsconfig.tsbuildinfo +1 -1
  370. package/dist/configs/animations.d.ts.map +0 -1
  371. package/dist/configs/animations.js.map +0 -1
  372. package/dist/configs/skills.d.ts +0 -27
  373. package/dist/configs/skills.d.ts.map +0 -1
  374. package/dist/configs/skills.js +0 -18
  375. package/dist/configs/skills.js.map +0 -1
  376. package/dist/configs/skills.json +0 -26
  377. package/dist/helpers/add/hooks-config.d.ts +0 -22
  378. package/dist/helpers/add/hooks-config.d.ts.map +0 -1
  379. package/dist/helpers/add/hooks-config.js +0 -31
  380. package/dist/helpers/add/hooks-config.js.map +0 -1
  381. package/dist/helpers/add/index.d.ts.map +0 -1
  382. package/dist/helpers/add/index.js.map +0 -1
  383. package/dist/helpers/create/copy-template.d.ts +0 -11
  384. package/dist/helpers/create/copy-template.d.ts.map +0 -1
  385. package/dist/helpers/create/copy-template.js.map +0 -1
  386. package/dist/helpers/create/index.d.ts +0 -24
  387. package/dist/helpers/create/index.d.ts.map +0 -1
  388. package/dist/helpers/create/index.js +0 -99
  389. package/dist/helpers/create/index.js.map +0 -1
  390. package/dist/helpers/create/init-git.d.ts.map +0 -1
  391. package/dist/helpers/create/init-git.js.map +0 -1
  392. package/dist/helpers/create/install.d.ts.map +0 -1
  393. package/dist/helpers/create/install.js.map +0 -1
  394. package/dist/helpers/create/rename-files.d.ts.map +0 -1
  395. package/dist/helpers/create/rename-files.js.map +0 -1
  396. package/dist/helpers/create/setup-agent.d.ts.map +0 -1
  397. package/dist/helpers/create/setup-agent.js +0 -91
  398. package/dist/helpers/create/setup-agent.js.map +0 -1
  399. package/dist/helpers/create/setup-sanity.d.ts.map +0 -1
  400. package/dist/helpers/create/setup-sanity.js.map +0 -1
  401. package/dist/helpers/create/update-package.d.ts +0 -20
  402. package/dist/helpers/create/update-package.d.ts.map +0 -1
  403. package/dist/helpers/create/update-package.js +0 -97
  404. package/dist/helpers/create/update-package.js.map +0 -1
  405. package/dist/helpers/integrate/index.d.ts.map +0 -1
  406. package/dist/helpers/integrate/index.js.map +0 -1
  407. package/dist/helpers/integrate/merge-config.d.ts +0 -21
  408. package/dist/helpers/integrate/merge-config.d.ts.map +0 -1
  409. package/dist/helpers/integrate/merge-config.js +0 -42
  410. package/dist/helpers/integrate/merge-config.js.map +0 -1
  411. package/dist/helpers/integrate/merge-orchestrator.d.ts +0 -10
  412. package/dist/helpers/integrate/merge-orchestrator.d.ts.map +0 -1
  413. package/dist/helpers/integrate/merge-orchestrator.js.map +0 -1
  414. package/dist/helpers/integrate/sanity/config.d.ts.map +0 -1
  415. package/dist/helpers/integrate/sanity/config.js.map +0 -1
  416. package/dist/helpers/integrate/sanity/mergers/check-integration-merger.d.ts.map +0 -1
  417. package/dist/helpers/integrate/sanity/mergers/check-integration-merger.js.map +0 -1
  418. package/dist/helpers/integrate/sanity/mergers/layout-merger.d.ts.map +0 -1
  419. package/dist/helpers/integrate/sanity/mergers/layout-merger.js.map +0 -1
  420. package/dist/helpers/integrate/sanity/mergers/sitemap-merger.d.ts +0 -11
  421. package/dist/helpers/integrate/sanity/mergers/sitemap-merger.d.ts.map +0 -1
  422. package/dist/helpers/integrate/sanity/mergers/sitemap-merger.js +0 -133
  423. package/dist/helpers/integrate/sanity/mergers/sitemap-merger.js.map +0 -1
  424. package/dist/helpers/skills/index.d.ts.map +0 -1
  425. package/dist/helpers/skills/index.js.map +0 -1
  426. package/dist/utils/detect-project.d.ts.map +0 -1
  427. package/dist/utils/detect-project.js.map +0 -1
  428. package/dist/utils/format-results.d.ts.map +0 -1
  429. package/dist/utils/format-results.js.map +0 -1
  430. package/src/helpers/integrate/sanity/files/lib/integrations/sanity/WEBHOOK-SETUP.md +0 -74
  431. package/src/helpers/integrate/sanity/files/lib/integrations/sanity/sitemap.ts +0 -90
  432. package/src/template-hooks/config.js +0 -32
  433. package/src/templates/next-default/css.d.ts +0 -1
  434. package/src/templates/next-default/lib/utils/portable-text-to-markdown.ts +0 -83
  435. package/src/templates/next-default/tsconfig.tsbuildinfo +0 -1
  436. package/src/templates/next-experiments/css.d.ts +0 -1
  437. package/src/templates/next-experiments/lib/utils/portable-text-to-markdown.ts +0 -83
  438. package/src/templates/next-pagebuilder/app/api/[[...slug]]/route.ts +0 -100
  439. package/src/templates/next-pagebuilder/app/api/draft-mode/disable/route.ts +0 -7
  440. package/src/templates/next-pagebuilder/app/api/draft-mode/enable/route.ts +0 -20
  441. package/src/templates/next-pagebuilder/app/api/revalidate/route.ts +0 -121
  442. package/src/templates/next-pagebuilder/app/sitemap.md/route.ts +0 -124
  443. package/src/templates/next-pagebuilder/app/studio/[[...tool]]/page.tsx +0 -8
  444. package/src/templates/next-pagebuilder/components/sanity/draft-mode-toggle.tsx +0 -27
  445. package/src/templates/next-pagebuilder/components/sanity/rich-text.tsx +0 -87
  446. package/src/templates/next-pagebuilder/components/sanity/visual-editing.tsx +0 -28
  447. package/src/templates/next-pagebuilder/components/ui/sanity-image/index.tsx +0 -41
  448. package/src/templates/next-pagebuilder/lib/integrations/check-integration.ts +0 -5
  449. package/src/templates/next-pagebuilder/lib/integrations/sanity/client.ts +0 -27
  450. package/src/templates/next-pagebuilder/lib/integrations/sanity/components/disable-draft-mode.tsx +0 -23
  451. package/src/templates/next-pagebuilder/lib/integrations/sanity/components/page-builder-input.tsx +0 -36
  452. package/src/templates/next-pagebuilder/lib/integrations/sanity/components/page-category-input.tsx +0 -50
  453. package/src/templates/next-pagebuilder/lib/integrations/sanity/components/rich-text.tsx +0 -84
  454. package/src/templates/next-pagebuilder/lib/integrations/sanity/confirm-publish-action.ts +0 -40
  455. package/src/templates/next-pagebuilder/lib/integrations/sanity/constants.ts +0 -1
  456. package/src/templates/next-pagebuilder/lib/integrations/sanity/env.ts +0 -34
  457. package/src/templates/next-pagebuilder/lib/integrations/sanity/fetchers/layout.ts +0 -34
  458. package/src/templates/next-pagebuilder/lib/integrations/sanity/icons.ts +0 -58
  459. package/src/templates/next-pagebuilder/lib/integrations/sanity/live/index.tsx +0 -88
  460. package/src/templates/next-pagebuilder/lib/integrations/sanity/markdown-proxy.config.ts +0 -50
  461. package/src/templates/next-pagebuilder/lib/integrations/sanity/page-builder-config.ts +0 -132
  462. package/src/templates/next-pagebuilder/lib/integrations/sanity/page-category.ts +0 -28
  463. package/src/templates/next-pagebuilder/lib/integrations/sanity/presentation.ts +0 -118
  464. package/src/templates/next-pagebuilder/lib/integrations/sanity/queries.ts +0 -394
  465. package/src/templates/next-pagebuilder/lib/integrations/sanity/sanity.cli.ts +0 -29
  466. package/src/templates/next-pagebuilder/lib/integrations/sanity/sanity.config.ts +0 -116
  467. package/src/templates/next-pagebuilder/lib/integrations/sanity/schemas/components/index.ts +0 -4
  468. package/src/templates/next-pagebuilder/lib/integrations/sanity/schemas/components/reusable/blog-content.ts +0 -89
  469. package/src/templates/next-pagebuilder/lib/integrations/sanity/schemas/components/reusable/description.ts +0 -29
  470. package/src/templates/next-pagebuilder/lib/integrations/sanity/schemas/components/reusable/hero.ts +0 -28
  471. package/src/templates/next-pagebuilder/lib/integrations/sanity/schemas/components/singleton/content-collection.ts +0 -45
  472. package/src/templates/next-pagebuilder/lib/integrations/sanity/schemas/content/author.ts +0 -70
  473. package/src/templates/next-pagebuilder/lib/integrations/sanity/schemas/content/blog-category.ts +0 -55
  474. package/src/templates/next-pagebuilder/lib/integrations/sanity/schemas/index.ts +0 -96
  475. package/src/templates/next-pagebuilder/lib/integrations/sanity/schemas/layout/company-data.ts +0 -62
  476. package/src/templates/next-pagebuilder/lib/integrations/sanity/schemas/layout/footer.ts +0 -79
  477. package/src/templates/next-pagebuilder/lib/integrations/sanity/schemas/layout/navbar.ts +0 -74
  478. package/src/templates/next-pagebuilder/lib/integrations/sanity/schemas/shared/link.ts +0 -125
  479. package/src/templates/next-pagebuilder/lib/integrations/sanity/schemas/shared/logo-field.ts +0 -9
  480. package/src/templates/next-pagebuilder/lib/integrations/sanity/schemas/shared/metadata.ts +0 -68
  481. package/src/templates/next-pagebuilder/lib/integrations/sanity/schemas/shared/nav-objects.ts +0 -192
  482. package/src/templates/next-pagebuilder/lib/integrations/sanity/schemas/shared/page-builder.ts +0 -39
  483. package/src/templates/next-pagebuilder/lib/integrations/sanity/schemas/shared/page-folder.ts +0 -124
  484. package/src/templates/next-pagebuilder/lib/integrations/sanity/schemas/shared/page.ts +0 -232
  485. package/src/templates/next-pagebuilder/lib/integrations/sanity/schemas/shared/richText.ts +0 -63
  486. package/src/templates/next-pagebuilder/lib/integrations/sanity/singletons.ts +0 -44
  487. package/src/templates/next-pagebuilder/lib/integrations/sanity/structure.ts +0 -453
  488. package/src/templates/next-pagebuilder/lib/integrations/sanity/utils/image.ts +0 -8
  489. package/src/templates/next-pagebuilder/lib/integrations/sanity/utils/link.ts +0 -137
  490. package/src/templates/next-pagebuilder/lib/integrations/sanity/utils/page-builder-markdown.ts +0 -81
  491. package/src/templates/next-pagebuilder/lib/scripts/sanity-typegen.ts +0 -45
  492. package/src/templates/next-pagebuilder/lib/utils/json-ld.tsx +0 -213
  493. package/src/templates/next-pagebuilder/lib/utils/metadata.ts +0 -167
  494. package/src/templates/next-pagebuilder/lib/utils/sitemap.ts +0 -37
  495. package/src/templates/next-pagebuilder/proxy.ts +0 -81
  496. package/src/templates/next-webgl/css.d.ts +0 -1
  497. package/src/templates/next-webgl/lib/utils/portable-text-to-markdown.ts +0 -83
  498. package/dist/{helpers → infrastructure}/create/copy-template.js +0 -0
  499. package/dist/{helpers → infrastructure}/create/rename-files.d.ts +0 -0
  500. package/dist/{helpers → infrastructure}/create/rename-files.js +0 -0
  501. package/dist/{helpers → infrastructure}/create/setup-sanity.d.ts +0 -0
  502. package/dist/{helpers/integrate → modules/features/cms}/sanity/config.d.ts +0 -0
  503. package/src/{helpers/integrate → modules/features/cms}/sanity/files/app/api/draft-mode/disable/route.ts +0 -0
  504. package/src/{helpers/integrate → modules/features/cms}/sanity/files/app/api/draft-mode/enable/route.ts +0 -0
  505. package/src/{helpers/integrate → modules/features/cms}/sanity/files/app/studio/[[...tool]]/page.tsx +0 -0
  506. package/src/{helpers/integrate → modules/features/cms}/sanity/files/app/studio/layout.tsx +0 -0
  507. package/src/{helpers/integrate → modules/features/cms}/sanity/files/components/ui/sanity-image/index.tsx +0 -0
  508. package/src/{helpers/integrate → modules/features/cms}/sanity/files/lib/integrations/README.md +0 -0
  509. package/src/{helpers/integrate → modules/features/cms}/sanity/files/lib/integrations/check-integration.ts +0 -0
  510. package/src/{helpers/integrate → modules/features/cms}/sanity/files/lib/integrations/sanity/MARKDOWN-PROXY.md +0 -0
  511. package/src/{helpers/integrate → modules/features/cms}/sanity/files/lib/integrations/sanity/README.md +0 -0
  512. package/src/{helpers/integrate → modules/features/cms}/sanity/files/lib/integrations/sanity/client.ts +0 -0
  513. package/src/{helpers/integrate → modules/features/cms}/sanity/files/lib/integrations/sanity/components/disable-draft-mode.tsx +0 -0
  514. package/src/{helpers/integrate → modules/features/cms}/sanity/files/lib/integrations/sanity/components/rich-text.tsx +0 -0
  515. package/src/{helpers/integrate → modules/features/cms}/sanity/files/lib/integrations/sanity/confirm-publish-action.ts +0 -0
  516. package/src/{helpers/integrate → modules/features/cms}/sanity/files/lib/integrations/sanity/live/index.tsx +1 -1
  517. package/src/{helpers/integrate → modules/features/cms}/sanity/files/lib/integrations/sanity/markdown-proxy.config.ts +0 -0
  518. package/src/{helpers/integrate → modules/features/cms}/sanity/files/lib/integrations/sanity/sanity.cli.ts +0 -0
  519. package/src/{helpers/integrate → modules/features/cms}/sanity/files/lib/integrations/sanity/sanity.config.ts +1 -1
  520. /package/src/{helpers/integrate → modules/features/cms}/sanity/files/lib/integrations/sanity/sanity.types.ts +0 -0
  521. /package/src/{helpers/integrate → modules/features/cms}/sanity/files/lib/integrations/sanity/schema.json +0 -0
  522. /package/src/{helpers/integrate → modules/features/cms}/sanity/files/lib/integrations/sanity/schemas/article.ts +0 -0
  523. /package/src/{helpers/integrate → modules/features/cms}/sanity/files/lib/integrations/sanity/schemas/example.ts +0 -0
  524. /package/src/{helpers/integrate → modules/features/cms}/sanity/files/lib/integrations/sanity/schemas/link.ts +0 -0
  525. /package/src/{helpers/integrate → modules/features/cms}/sanity/files/lib/integrations/sanity/schemas/metadata.ts +0 -0
  526. /package/src/{helpers/integrate → modules/features/cms}/sanity/files/lib/integrations/sanity/schemas/navigation.ts +0 -0
  527. /package/src/{helpers/integrate → modules/features/cms}/sanity/files/lib/integrations/sanity/schemas/richText.ts +0 -0
  528. /package/src/{helpers/integrate → modules/features/cms}/sanity/files/lib/integrations/sanity/structure.ts +0 -0
  529. /package/src/{helpers/integrate → modules/features/cms}/sanity/files/lib/integrations/sanity/utils/image.ts +0 -0
  530. /package/src/{helpers/integrate → modules/features/cms}/sanity/files/lib/integrations/sanity/utils/link.ts +0 -0
  531. /package/src/{helpers/integrate → modules/features/cms}/sanity/files/lib/utils/portable-text-to-markdown.ts +0 -0
@@ -1,118 +0,0 @@
1
- import type { Observable } from "rxjs"
2
- import { map } from "rxjs/operators"
3
- import type { DocumentStore } from "sanity"
4
- import {
5
- type DocumentLocationsState,
6
- defineDocuments,
7
- presentationTool,
8
- } from "sanity/presentation"
9
- import { HOMEPAGE_DOCUMENT_ID } from "./constants"
10
- import { previewURL } from "./env"
11
-
12
- const MAX_FOLDER_DEPTH = 6
13
-
14
- const buildNestedSlugExpression = (
15
- parentReferenceField: string,
16
- leafSlugField: string
17
- ) => {
18
- const cases = Array.from({ length: MAX_FOLDER_DEPTH }, (_, index) => {
19
- const depth = MAX_FOLDER_DEPTH - index
20
- const parentSlugRefs = Array.from({ length: depth }, (_, parentIndex) => {
21
- const remainingDepth = depth - parentIndex - 1
22
- return `${parentReferenceField}${"->parentFolder".repeat(remainingDepth)}->slug.current`
23
- })
24
-
25
- const pathDefinedChecks = parentSlugRefs
26
- .map((field) => `defined(${field})`)
27
- .join(" && ")
28
-
29
- const childPath = [...parentSlugRefs, leafSlugField].join(' + "/" + ')
30
- const folderRootPath = parentSlugRefs.join(' + "/" + ')
31
-
32
- return [
33
- `${pathDefinedChecks} && ${leafSlugField} == "/" => ${folderRootPath}`,
34
- `${pathDefinedChecks} && defined(${leafSlugField}) => ${childPath}`,
35
- ]
36
- }).flat()
37
-
38
- return `select(${cases.join(",\n ")},${leafSlugField})`
39
- }
40
-
41
- const pageResolvedSlugExpression = buildNestedSlugExpression(
42
- "pageFolder",
43
- "slug.current"
44
- )
45
-
46
- const CONTENT_TYPE_PREFIXES: Record<string, string> = {
47
- blogContent: "blog",
48
- }
49
-
50
- const resolveSlugLocation = <T extends { title?: string }>(
51
- documentStore: DocumentStore,
52
- id: string,
53
- projection: string,
54
- toHref: (doc: T) => string | null,
55
- fallbackTitle: string
56
- ): Observable<DocumentLocationsState> =>
57
- documentStore
58
- .listenQuery(`*[_id == $id][0]{ ${projection} }`, { id }, {})
59
- .pipe(
60
- map((doc: T | null) => {
61
- const href = doc ? toHref(doc) : null
62
- if (!href) return { locations: [] }
63
- return { locations: [{ title: doc?.title || fallbackTitle, href }] }
64
- })
65
- )
66
-
67
- export const presentation = presentationTool({
68
- name: "preview",
69
- title: "Preview",
70
- resolve: {
71
- mainDocuments: defineDocuments([
72
- {
73
- route: "/",
74
- filter: `_type == "page" && _id == "${HOMEPAGE_DOCUMENT_ID}"`,
75
- },
76
- ...Object.entries(CONTENT_TYPE_PREFIXES).map(([type, prefix]) => ({
77
- route: `/${prefix}/:slug`,
78
- filter: `_type == "${type}" && slug.current == $slug`,
79
- })),
80
- {
81
- route: "/:slug+",
82
- filter: `_type == "page" && ${pageResolvedSlugExpression} == $slug`,
83
- },
84
- ]),
85
- locations: (params, { documentStore }) => {
86
- if (params.type === "page") {
87
- if (params.id === HOMEPAGE_DOCUMENT_ID) {
88
- return { locations: [{ title: "Homepage", href: "/" }] }
89
- }
90
- return resolveSlugLocation<{ title?: string; resolvedSlug?: string }>(
91
- documentStore,
92
- params.id,
93
- `title, "resolvedSlug": ${pageResolvedSlugExpression}`,
94
- (doc) => (doc.resolvedSlug ? `/${doc.resolvedSlug}` : null),
95
- "Page"
96
- )
97
- }
98
-
99
- const prefix = CONTENT_TYPE_PREFIXES[params.type]
100
- if (!prefix) return null
101
-
102
- return resolveSlugLocation<{ title?: string; slug?: string }>(
103
- documentStore,
104
- params.id,
105
- `title, "slug": slug.current`,
106
- (doc) => (doc.slug ? `/${prefix}/${doc.slug}` : null),
107
- "Untitled"
108
- )
109
- },
110
- },
111
- previewUrl: {
112
- origin: previewURL,
113
- draftMode: {
114
- enable: "/api/draft-mode/enable",
115
- disable: "/api/draft-mode/disable",
116
- },
117
- },
118
- })
@@ -1,394 +0,0 @@
1
- import { defineQuery } from "next-sanity"
2
-
3
- const pageResolvedSlugExpression = `
4
- select(
5
- defined(pageFolder->parentFolder->parentFolder->parentFolder->parentFolder->parentFolder->slug.current) && defined(pageFolder->parentFolder->parentFolder->parentFolder->parentFolder->slug.current) && defined(pageFolder->parentFolder->parentFolder->parentFolder->slug.current) && defined(pageFolder->parentFolder->parentFolder->slug.current) && defined(pageFolder->parentFolder->slug.current) && defined(pageFolder->slug.current) && (!defined(slug.current) || slug.current == "" || slug.current == "/") => pageFolder->parentFolder->parentFolder->parentFolder->parentFolder->parentFolder->slug.current + "/" + pageFolder->parentFolder->parentFolder->parentFolder->parentFolder->slug.current + "/" + pageFolder->parentFolder->parentFolder->parentFolder->slug.current + "/" + pageFolder->parentFolder->parentFolder->slug.current + "/" + pageFolder->parentFolder->slug.current + "/" + pageFolder->slug.current,
6
- defined(pageFolder->parentFolder->parentFolder->parentFolder->parentFolder->slug.current) && defined(pageFolder->parentFolder->parentFolder->parentFolder->slug.current) && defined(pageFolder->parentFolder->parentFolder->slug.current) && defined(pageFolder->parentFolder->slug.current) && defined(pageFolder->slug.current) && (!defined(slug.current) || slug.current == "" || slug.current == "/") => pageFolder->parentFolder->parentFolder->parentFolder->parentFolder->slug.current + "/" + pageFolder->parentFolder->parentFolder->parentFolder->slug.current + "/" + pageFolder->parentFolder->parentFolder->slug.current + "/" + pageFolder->parentFolder->slug.current + "/" + pageFolder->slug.current,
7
- defined(pageFolder->parentFolder->parentFolder->parentFolder->slug.current) && defined(pageFolder->parentFolder->parentFolder->slug.current) && defined(pageFolder->parentFolder->slug.current) && defined(pageFolder->slug.current) && (!defined(slug.current) || slug.current == "" || slug.current == "/") => pageFolder->parentFolder->parentFolder->parentFolder->slug.current + "/" + pageFolder->parentFolder->parentFolder->slug.current + "/" + pageFolder->parentFolder->slug.current + "/" + pageFolder->slug.current,
8
- defined(pageFolder->parentFolder->parentFolder->slug.current) && defined(pageFolder->parentFolder->slug.current) && defined(pageFolder->slug.current) && (!defined(slug.current) || slug.current == "" || slug.current == "/") => pageFolder->parentFolder->parentFolder->slug.current + "/" + pageFolder->parentFolder->slug.current + "/" + pageFolder->slug.current,
9
- defined(pageFolder->parentFolder->slug.current) && defined(pageFolder->slug.current) && (!defined(slug.current) || slug.current == "" || slug.current == "/") => pageFolder->parentFolder->slug.current + "/" + pageFolder->slug.current,
10
- defined(pageFolder->slug.current) && (!defined(slug.current) || slug.current == "" || slug.current == "/") => pageFolder->slug.current,
11
- defined(pageFolder->parentFolder->parentFolder->parentFolder->parentFolder->parentFolder->slug.current) && defined(pageFolder->parentFolder->parentFolder->parentFolder->parentFolder->slug.current) && defined(pageFolder->parentFolder->parentFolder->parentFolder->slug.current) && defined(pageFolder->parentFolder->parentFolder->slug.current) && defined(pageFolder->parentFolder->slug.current) && defined(pageFolder->slug.current) && defined(slug.current) && slug.current != "" && slug.current != "/" => pageFolder->parentFolder->parentFolder->parentFolder->parentFolder->parentFolder->slug.current + "/" + pageFolder->parentFolder->parentFolder->parentFolder->parentFolder->slug.current + "/" + pageFolder->parentFolder->parentFolder->parentFolder->slug.current + "/" + pageFolder->parentFolder->parentFolder->slug.current + "/" + pageFolder->parentFolder->slug.current + "/" + pageFolder->slug.current + "/" + slug.current,
12
- defined(pageFolder->parentFolder->parentFolder->parentFolder->parentFolder->slug.current) && defined(pageFolder->parentFolder->parentFolder->parentFolder->slug.current) && defined(pageFolder->parentFolder->parentFolder->slug.current) && defined(pageFolder->parentFolder->slug.current) && defined(pageFolder->slug.current) && defined(slug.current) && slug.current != "" && slug.current != "/" => pageFolder->parentFolder->parentFolder->parentFolder->parentFolder->slug.current + "/" + pageFolder->parentFolder->parentFolder->parentFolder->slug.current + "/" + pageFolder->parentFolder->parentFolder->slug.current + "/" + pageFolder->parentFolder->slug.current + "/" + pageFolder->slug.current + "/" + slug.current,
13
- defined(pageFolder->parentFolder->parentFolder->parentFolder->slug.current) && defined(pageFolder->parentFolder->parentFolder->slug.current) && defined(pageFolder->parentFolder->slug.current) && defined(pageFolder->slug.current) && defined(slug.current) && slug.current != "" && slug.current != "/" => pageFolder->parentFolder->parentFolder->parentFolder->slug.current + "/" + pageFolder->parentFolder->parentFolder->slug.current + "/" + pageFolder->parentFolder->slug.current + "/" + pageFolder->slug.current + "/" + slug.current,
14
- defined(pageFolder->parentFolder->parentFolder->slug.current) && defined(pageFolder->parentFolder->slug.current) && defined(pageFolder->slug.current) && defined(slug.current) && slug.current != "" && slug.current != "/" => pageFolder->parentFolder->parentFolder->slug.current + "/" + pageFolder->parentFolder->slug.current + "/" + pageFolder->slug.current + "/" + slug.current,
15
- defined(pageFolder->parentFolder->slug.current) && defined(pageFolder->slug.current) && defined(slug.current) && slug.current != "" && slug.current != "/" => pageFolder->parentFolder->slug.current + "/" + pageFolder->slug.current + "/" + slug.current,
16
- defined(pageFolder->slug.current) && defined(slug.current) && slug.current != "" && slug.current != "/" => pageFolder->slug.current + "/" + slug.current,
17
- slug.current
18
- )
19
- `
20
-
21
- const linkItemProjection = `
22
- ...,
23
- _type == "pageReference" => {
24
- page->{
25
- _id,
26
- _type,
27
- slug,
28
- title,
29
- "resolvedSlug": select(
30
- _type == "page" => ${pageResolvedSlugExpression},
31
- slug.current
32
- )
33
- }
34
- }
35
- `
36
-
37
- // Helper for rich text link projections (expandable inside any array field)
38
- const richTextLinkProjection = `
39
- ...,
40
- markDefs[]{
41
- ...,
42
- _type == "pageReference" => {
43
- page->{
44
- _id,
45
- _type,
46
- slug,
47
- title,
48
- "resolvedSlug": select(
49
- _type == "page" => ${pageResolvedSlugExpression},
50
- slug.current
51
- )
52
- }
53
- }
54
- }
55
- `
56
-
57
- const pageBuilderProjection = `
58
- pageBuilder[]{
59
- _key,
60
- ...@->{
61
- ...,
62
- _type == "blogContent" => {
63
- ...,
64
- categories[]->{
65
- _id,
66
- title,
67
- slug
68
- },
69
- author->{
70
- _id,
71
- name,
72
- avatar,
73
- role
74
- },
75
- body[]{
76
- ${richTextLinkProjection}
77
- },
78
- relatedPosts[]->{
79
- _id,
80
- title,
81
- "resolvedSlug": ${pageResolvedSlugExpression},
82
- metadata
83
- }
84
- }
85
- }
86
- }
87
- `
88
-
89
- const pageProjection = `
90
- _id,
91
- _type,
92
- title,
93
- slug,
94
- "resolvedSlug": ${pageResolvedSlugExpression},
95
- ${pageBuilderProjection},
96
- metadata,
97
- _updatedAt
98
- `
99
-
100
- const pageMetadataProjection = `
101
- _id,
102
- title,
103
- metadata,
104
- _updatedAt
105
- `
106
-
107
- export const PAGE_QUERY = defineQuery(`
108
- *[
109
- _type == "page" &&
110
- (
111
- ($slug == null && !defined(pageFolder._ref) && (!defined(slug.current) || slug.current == "" || slug.current == "/")) ||
112
- ${pageResolvedSlugExpression} == $slug
113
- )
114
- ][0] {
115
- ${pageProjection}
116
- }
117
- `)
118
-
119
- export const PAGE_METADATA_QUERY = defineQuery(`
120
- *[
121
- _type == "page" &&
122
- (
123
- ($slug == null && !defined(pageFolder._ref) && (!defined(slug.current) || slug.current == "" || slug.current == "/")) ||
124
- ${pageResolvedSlugExpression} == $slug
125
- )
126
- ][0] {
127
- ${pageMetadataProjection}
128
- }
129
- `)
130
-
131
- export const ALL_PAGE_SLUGS_QUERY = defineQuery(`
132
- *[_type == "page" && (defined(pageFolder->slug.current) || defined(slug.current))] | order(title asc) {
133
- title,
134
- "slug": ${pageResolvedSlugExpression},
135
- _updatedAt
136
- }
137
- `)
138
-
139
- export const P_REV_SLUGS_QUERY = defineQuery(`
140
- *[
141
- _type == "page" &&
142
- _id in $documentIds
143
- ] | order(_updatedAt desc) {
144
- "slug": ${pageResolvedSlugExpression}
145
- }
146
- `)
147
-
148
- export const P_REF_PB_COMP_QUERY = defineQuery(`
149
- *[
150
- _type == "page" &&
151
- count(pageBuilder[_ref == $documentId]) > 0
152
- ] | order(title asc) {
153
- _id,
154
- title,
155
- "slug": ${pageResolvedSlugExpression}
156
- }
157
- `)
158
-
159
- export const PAGE_SITEMAP_QUERY = defineQuery(`
160
- *[
161
- _type == "page" &&
162
- (
163
- _id == "page-homepage" ||
164
- defined(pageFolder->slug.current) ||
165
- defined(slug.current)
166
- )
167
- ] | order(title asc) {
168
- title,
169
- "slug": ${pageResolvedSlugExpression},
170
- _updatedAt,
171
- "noIndex": select(
172
- defined(metadata.index) => !metadata.index,
173
- defined(metadata.noIndex) => metadata.noIndex,
174
- false
175
- )
176
- }
177
- `)
178
-
179
- // Blog collection -- fetches pages under a "blog" folder
180
- // Reaches into the blogContent page-builder block for article-level fields
181
- export const ALL_BLOG_ARTICLES_QUERY = defineQuery(`
182
- *[
183
- _type == "page" &&
184
- pageFolder->slug.current == "blog" &&
185
- defined(slug.current) &&
186
- slug.current != "" &&
187
- slug.current != "/"
188
- ] | order(_updatedAt desc) {
189
- _id,
190
- title,
191
- "slug": slug,
192
- "resolvedSlug": ${pageResolvedSlugExpression},
193
- "blogContent": pageBuilder[_ref in *[_type == "blogContent"]._id][0]->{
194
- thumbnail{
195
- ...,
196
- alt
197
- },
198
- categories[]->{
199
- _id,
200
- title,
201
- slug
202
- },
203
- date,
204
- author->{
205
- _id,
206
- name,
207
- avatar
208
- }
209
- },
210
- metadata,
211
- _updatedAt
212
- }
213
- `)
214
-
215
- export const BLOG_ARTICLES_PAGINATED_QUERY = defineQuery(`
216
- *[
217
- _type == "page" &&
218
- pageFolder->slug.current == "blog" &&
219
- defined(slug.current) &&
220
- slug.current != "" &&
221
- slug.current != "/" &&
222
- (
223
- !defined($category) ||
224
- $category == "" ||
225
- $category in pageBuilder[_ref in *[_type == "blogContent"]._id][0]->categories[]->slug.current
226
- )
227
- ] | order(_updatedAt desc)[$offset...$offset + $limit] {
228
- _id,
229
- title,
230
- "slug": slug,
231
- "resolvedSlug": ${pageResolvedSlugExpression},
232
- "blogContent": pageBuilder[_ref in *[_type == "blogContent"]._id][0]->{
233
- thumbnail{
234
- ...,
235
- alt
236
- },
237
- categories[]->{
238
- _id,
239
- title,
240
- slug
241
- },
242
- date,
243
- author->{
244
- _id,
245
- name,
246
- avatar
247
- }
248
- },
249
- metadata,
250
- _updatedAt
251
- }
252
- `)
253
-
254
- export const BLOG_ARTICLES_COUNT_QUERY = defineQuery(`
255
- count(*[
256
- _type == "page" &&
257
- pageFolder->slug.current == "blog" &&
258
- defined(slug.current) &&
259
- slug.current != "" &&
260
- slug.current != "/" &&
261
- (
262
- !defined($category) ||
263
- $category == "" ||
264
- $category in pageBuilder[_ref in *[_type == "blogContent"]._id][0]->categories[]->slug.current
265
- )
266
- ])
267
- `)
268
-
269
- export const ALL_BLOG_CATEGORIES_QUERY = defineQuery(`
270
- *[_type == "blogCategory"] | order(title asc) {
271
- _id,
272
- title,
273
- slug
274
- }
275
- `)
276
-
277
- // Company Data
278
- export const COMPANY_DATA_QUERY = defineQuery(`
279
- *[_type == "companyData"][0]{
280
- socialLinks[]{
281
- _key,
282
- name,
283
- icon,
284
- url,
285
- label
286
- }
287
- }
288
- `)
289
-
290
- // Navbar
291
- // Shared link projection for navbar -- flattens array-of-one to single object
292
- const navLinkProjection = `
293
- "link": link[0]{
294
- ${linkItemProjection}
295
- }
296
- `
297
-
298
- const navLeafItemProjection = `
299
- _key,
300
- title,
301
- ${navLinkProjection}
302
- `
303
-
304
- const navColumnProjection = `
305
- _key,
306
- title,
307
- ${navLinkProjection},
308
- items[]{
309
- ${navLeafItemProjection}
310
- }
311
- `
312
-
313
- const navMegaMenuProjection = `
314
- columns[]{
315
- ${navColumnProjection}
316
- }
317
- `
318
-
319
- const navbarProjection = `
320
- logo{
321
- ...,
322
- asset->{
323
- _id,
324
- url,
325
- metadata { dimensions }
326
- }
327
- },
328
- navigationItems[]{
329
- _key,
330
- title,
331
- itemType,
332
- ${navLinkProjection},
333
- megaMenu{
334
- ${navMegaMenuProjection}
335
- }
336
- },
337
- ctaButtons[]{
338
- _key,
339
- label,
340
- "link": link[0]{
341
- ${linkItemProjection}
342
- },
343
- variant
344
- }
345
- `
346
-
347
- const footerProjection = `
348
- links[]{
349
- _key,
350
- title,
351
- items[]{
352
- _key,
353
- label,
354
- href
355
- }
356
- }
357
- `
358
-
359
- const companyDataProjection = `
360
- socialLinks[]{
361
- _key,
362
- name,
363
- icon,
364
- url,
365
- label
366
- }
367
- `
368
-
369
- export const NAVBAR_QUERY = defineQuery(`
370
- *[_type == "navbar"][0]{
371
- ${navbarProjection}
372
- }
373
- `)
374
-
375
- // Footer
376
- export const FOOTER_QUERY = defineQuery(`
377
- *[_type == "footer"][0]{
378
- ${footerProjection}
379
- }
380
- `)
381
-
382
- export const SITE_LAYOUT_QUERY = defineQuery(`
383
- {
384
- "navbar": *[_type == "navbar"][0]{
385
- ${navbarProjection}
386
- },
387
- "footer": *[_type == "footer"][0]{
388
- ${footerProjection}
389
- },
390
- "companyData": *[_type == "companyData"][0]{
391
- ${companyDataProjection}
392
- }
393
- }
394
- `)
@@ -1,29 +0,0 @@
1
- /**
2
- * This configuration file lets you run `$ sanity [command]` in this folder
3
- * Go to https://www.sanity.io/docs/cli to learn more.
4
- **/
5
- import path from "node:path"
6
- import { fileURLToPath } from "node:url"
7
- import { defineCliConfig } from "sanity/cli"
8
- import { dataset, projectId } from "./env"
9
-
10
- const __dirname = path.dirname(fileURLToPath(import.meta.url))
11
-
12
- export default defineCliConfig({
13
- api: { projectId, dataset },
14
- project: {
15
- basePath: "/studio",
16
- },
17
- typegen: {
18
- path: "./queries.ts",
19
- schema: "./schema.json",
20
- generates: "./sanity.types.ts",
21
- },
22
- vite: {
23
- resolve: {
24
- alias: {
25
- "~": __dirname,
26
- },
27
- },
28
- },
29
- })
@@ -1,116 +0,0 @@
1
- import { table } from "@sanity/table"
2
- import { defineConfig } from "sanity"
3
- import { structureTool } from "sanity/structure"
4
- import { media } from "sanity-plugin-media"
5
- import { createConfirmPublishAction } from "./confirm-publish-action"
6
- import { HOMEPAGE_DOCUMENT_ID } from "./constants"
7
- import { dataset, projectId } from "./env"
8
- import { presentation } from "./presentation"
9
- import { schema } from "./schemas"
10
- import { singletonComponentTypes } from "./singletons"
11
- import { structure } from "./structure"
12
-
13
- const isProd = process.env.NODE_ENV === "production"
14
-
15
- const singletonDocumentActions = new Set([
16
- "publish",
17
- "discardChanges",
18
- "restore",
19
- ])
20
-
21
- const isSingletonDocument = (schemaType: string, documentId?: string) =>
22
- singletonComponentTypes.has(schemaType) ||
23
- (schemaType === "page" && documentId === HOMEPAGE_DOCUMENT_ID)
24
-
25
- export default defineConfig({
26
- basePath: "/studio",
27
- projectId,
28
- dataset,
29
- schema: {
30
- ...schema,
31
- templates: (previousTemplates) => [
32
- ...previousTemplates.filter(
33
- (template) =>
34
- ![
35
- "page-homepage",
36
- "page-with-folder",
37
- "page-folder-with-parent",
38
- ].includes(template.id)
39
- ),
40
- {
41
- id: "page-homepage",
42
- title: "Homepage",
43
- schemaType: "page",
44
- value: {
45
- title: "Homepage",
46
- },
47
- },
48
- {
49
- id: "page-with-folder",
50
- title: "Page in Folder",
51
- schemaType: "page",
52
- parameters: [
53
- { name: "pageFolderId", title: "Page Folder ID", type: "string" },
54
- ],
55
- value: ({ pageFolderId }: { pageFolderId?: string }) => ({
56
- pageFolder: pageFolderId
57
- ? {
58
- _type: "reference",
59
- _ref: pageFolderId,
60
- }
61
- : undefined,
62
- }),
63
- },
64
- {
65
- id: "page-folder-with-parent",
66
- title: "Page Folder in Folder",
67
- schemaType: "pageFolder",
68
- parameters: [
69
- { name: "parentFolderId", title: "Parent Folder ID", type: "string" },
70
- ],
71
- value: ({ parentFolderId }: { parentFolderId?: string }) => ({
72
- parentFolder: parentFolderId
73
- ? {
74
- _type: "reference",
75
- _ref: parentFolderId,
76
- }
77
- : undefined,
78
- }),
79
- },
80
- ],
81
- },
82
- document: {
83
- actions: (previousActions, context) => {
84
- const filtered = isSingletonDocument(
85
- context.schemaType,
86
- context.documentId
87
- )
88
- ? previousActions.filter(
89
- (action) =>
90
- action.action !== undefined &&
91
- singletonDocumentActions.has(action.action)
92
- )
93
- : previousActions
94
-
95
- if (!isProd) return filtered
96
-
97
- return filtered.map((action) =>
98
- action.action === "publish"
99
- ? createConfirmPublishAction(action)
100
- : action
101
- )
102
- },
103
- newDocumentOptions: (previousOptions) =>
104
- previousOptions.filter(
105
- (option) =>
106
- !singletonComponentTypes.has(option.templateId) &&
107
- option.templateId !== "page-homepage"
108
- ),
109
- },
110
- plugins: [
111
- structureTool({ structure }),
112
- presentation,
113
- media(),
114
- table(),
115
- ],
116
- })
@@ -1,4 +0,0 @@
1
- export { blogContent } from "./reusable/blog-content"
2
- export { description } from "./reusable/description"
3
- export { hero } from "./reusable/hero"
4
- export { blogCollection } from "./singleton/content-collection"