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,232 +0,0 @@
1
- import { defineField, defineType } from "sanity"
2
- import { apiVersion } from "@/lib/integrations/sanity/env"
3
- import { pageIcon } from "@/lib/integrations/sanity/icons"
4
- import {
5
- getInvalidPageBuilderDocumentTypes,
6
- getPageBuilderReferenceMemberByDocumentType,
7
- getPageCategoryIcon,
8
- type PageBuilderDocumentType,
9
- type PageBuilderGroupName,
10
- pageBuilderPageTypes,
11
- } from "@/lib/integrations/sanity/page-builder-config"
12
- import { getGeneratedPageCategory } from "@/lib/integrations/sanity/page-category"
13
-
14
- type PageValidationDocument = {
15
- _id?: string
16
- type?: PageBuilderGroupName
17
- pageFolder?: {
18
- _ref?: string
19
- }
20
- slug?: { current?: string | null }
21
- pageBuilder?: Array<{
22
- _key?: string
23
- _type?: string
24
- _ref?: string
25
- }>
26
- }
27
-
28
- type PageSlugValidationContext = {
29
- document?: PageValidationDocument | undefined
30
- getClient: (options: { apiVersion: string }) => {
31
- fetch: <T>(query: string, params?: Record<string, unknown>) => Promise<T>
32
- }
33
- }
34
-
35
- type ReferencedPageBuilderDocument = {
36
- _id: string
37
- _type: PageBuilderDocumentType
38
- }
39
-
40
- const PAGE_FOLDER_QUERY = `*[_type == "pageFolder" && _id in [$publishedId, $draftId]][0].slug.current`
41
-
42
- async function getGeneratedPageCategoryForDocument(
43
- document: PageValidationDocument | undefined,
44
- getClient: PageSlugValidationContext["getClient"]
45
- ) {
46
- const pageFolderId = document?.pageFolder?._ref?.replace(/^drafts\./, "")
47
- let folder: string | null = null
48
-
49
- if (pageFolderId) {
50
- folder = await getClient({ apiVersion }).fetch<string | null>(
51
- PAGE_FOLDER_QUERY,
52
- { draftId: `drafts.${pageFolderId}`, publishedId: pageFolderId }
53
- )
54
- }
55
-
56
- return getGeneratedPageCategory({
57
- folder,
58
- slug: document?.slug?.current ?? null,
59
- })
60
- }
61
-
62
- async function isPageSlugUniqueInFolder(
63
- slug: string | null,
64
- context: PageSlugValidationContext
65
- ) {
66
- const id = context.document?._id?.replace(/^drafts\./, "")
67
-
68
- if (!id) return true
69
-
70
- const pageFolderId = context.document?.pageFolder?._ref ?? null
71
- const client = context.getClient({ apiVersion })
72
- const existing = await client.fetch<number>(
73
- `count(*[
74
- _type == "page" &&
75
- !(_id in [$id, "drafts." + $id]) &&
76
- (
77
- ($pageFolderId == null && !defined(pageFolder._ref)) ||
78
- pageFolder._ref == $pageFolderId
79
- ) &&
80
- (
81
- ($slug == null && !defined(slug.current)) ||
82
- slug.current == $slug
83
- )
84
- ])`,
85
- {
86
- id,
87
- pageFolderId,
88
- slug,
89
- }
90
- )
91
-
92
- return existing === 0
93
- }
94
-
95
- export const page = defineType({
96
- name: "page",
97
- title: "Page",
98
- type: "document",
99
- icon: pageIcon,
100
- fields: [
101
- defineField({
102
- name: "title",
103
- title: "Title",
104
- type: "string",
105
- validation: (Rule) => Rule.required(),
106
- }),
107
- defineField({
108
- name: "type",
109
- title: "Page Category",
110
- type: "string",
111
- options: { list: pageBuilderPageTypes },
112
- initialValue: "generic",
113
- hidden: true,
114
- readOnly: true,
115
- }),
116
- defineField({
117
- name: "pageFolder",
118
- title: "Folder",
119
- type: "reference",
120
- to: [{ type: "pageFolder" }],
121
- description: "Optional Studio folder for organizing this page.",
122
- hidden: true,
123
- }),
124
- defineField({
125
- name: "slug",
126
- title: "Slug",
127
- type: "slug",
128
- description: "URL path without leading slash. Leave blank for homepage.",
129
- options: {
130
- source: "title",
131
- maxLength: 200,
132
- isUnique: (slug, context) => isPageSlugUniqueInFolder(slug, context),
133
- },
134
- validation: (Rule) =>
135
- Rule.custom(async (slug, context) => {
136
- return (
137
- (await isPageSlugUniqueInFolder(slug?.current ?? null, {
138
- document: context.document as PageValidationDocument | undefined,
139
- getClient: context.getClient,
140
- })) || "Another page in this folder already uses this slug"
141
- )
142
- }),
143
- }),
144
- defineField({
145
- name: "pageBuilder",
146
- title: "Page Builder",
147
- type: "pageBuilder",
148
- description: "Composable content blocks for this page",
149
- validation: (Rule) =>
150
- Rule.custom(async (value, context) => {
151
- const document = context.document as
152
- | PageValidationDocument
153
- | undefined
154
- const pageType = await getGeneratedPageCategoryForDocument(
155
- document,
156
- context.getClient
157
- )
158
- const pageBuilderItems = Array.isArray(value)
159
- ? (value as Array<{ _ref?: string }>)
160
- : []
161
- const referenceIds = pageBuilderItems
162
- .map((item) => item?._ref?.replace(/^drafts\./, ""))
163
- .filter((item): item is string => typeof item === "string")
164
-
165
- if (referenceIds.length === 0) return true
166
-
167
- const referencedDocuments = await context
168
- .getClient({ apiVersion })
169
- .fetch<ReferencedPageBuilderDocument[]>(
170
- `*[
171
- _id in $publishedIds || _id in $draftIds
172
- ]{
173
- _id,
174
- _type
175
- }`,
176
- {
177
- publishedIds: referenceIds,
178
- draftIds: referenceIds.map((id) => `drafts.${id}`),
179
- }
180
- )
181
-
182
- const invalidDocumentTypes = getInvalidPageBuilderDocumentTypes(
183
- pageType,
184
- referencedDocuments.map((entry) => entry._type)
185
- )
186
-
187
- if (invalidDocumentTypes.length === 0) return true
188
-
189
- const invalidMemberTitles = invalidDocumentTypes.map(
190
- (documentType) =>
191
- getPageBuilderReferenceMemberByDocumentType(documentType)
192
- ?.title ?? documentType
193
- )
194
-
195
- return `These page builder components do not belong to the "${pageType ?? "generic"}" category: ${invalidMemberTitles.join(", ")}`
196
- }),
197
- }),
198
- defineField({
199
- name: "metadata",
200
- title: "SEO & Metadata",
201
- type: "metadata",
202
- }),
203
- ],
204
- preview: {
205
- select: {
206
- id: "_id",
207
- title: "title",
208
- folder: "pageFolder->slug.current",
209
- slug: "slug.current",
210
- },
211
- prepare({ folder, id, title, slug }) {
212
- let path = "No slug"
213
- if (id === "page-homepage") {
214
- path = "/"
215
- } else if (slug) {
216
- path = `/${slug}`
217
- }
218
- return {
219
- title: title || "Untitled",
220
- subtitle: path,
221
- media: getPageCategoryIcon(getGeneratedPageCategory({ folder, slug })),
222
- }
223
- },
224
- },
225
- orderings: [
226
- {
227
- title: "Title A-Z",
228
- name: "titleAsc",
229
- by: [{ field: "title", direction: "asc" }],
230
- },
231
- ],
232
- })
@@ -1,63 +0,0 @@
1
- import { defineType } from "sanity"
2
- import { linkAnnotations } from "./link"
3
-
4
- export const richText = defineType({
5
- name: "richText",
6
- title: "Rich Text",
7
- type: "array",
8
- of: [
9
- {
10
- type: "block",
11
- styles: [
12
- { title: "Normal", value: "normal" },
13
- { title: "H1", value: "h1" },
14
- { title: "H2", value: "h2" },
15
- { title: "H3", value: "h3" },
16
- { title: "H4", value: "h4" },
17
- { title: "H5", value: "h5" },
18
- { title: "H6", value: "h6" },
19
- { title: "Quote", value: "blockquote" },
20
- ],
21
- lists: [
22
- { title: "Bullet", value: "bullet" },
23
- { title: "Number", value: "number" },
24
- ],
25
- marks: {
26
- decorators: [
27
- { title: "Strong", value: "strong" },
28
- { title: "Emphasis", value: "em" },
29
- { title: "Code", value: "code" },
30
- { title: "Underline", value: "underline" },
31
- { title: "Strike", value: "strike-through" },
32
- ],
33
- annotations: linkAnnotations,
34
- },
35
- },
36
- {
37
- type: "table",
38
- title: "Table",
39
- },
40
- {
41
- type: "image",
42
- title: "Image",
43
- options: {
44
- hotspot: true,
45
- },
46
- fields: [
47
- {
48
- name: "alt",
49
- title: "Alt Text",
50
- type: "string",
51
- description: "Alternative text for screen readers",
52
- validation: (Rule) => Rule.required(),
53
- },
54
- {
55
- name: "caption",
56
- title: "Caption",
57
- type: "string",
58
- description: "Optional caption displayed below the image",
59
- },
60
- ],
61
- },
62
- ],
63
- })
@@ -1,44 +0,0 @@
1
- import {
2
- companyDataIcon,
3
- footerIcon,
4
- navbarIcon,
5
- pageListIcon,
6
- } from "./icons"
7
-
8
- export const singletonComponents = [
9
- {
10
- schemaType: "blogCollection",
11
- documentId: "blogCollection",
12
- title: "Blog Collection",
13
- icon: pageListIcon,
14
- },
15
- ] as const
16
-
17
- export const singletonLayout = [
18
- {
19
- schemaType: "companyData",
20
- documentId: "companyData",
21
- title: "Company Data",
22
- icon: companyDataIcon,
23
- },
24
- {
25
- schemaType: "navbar",
26
- documentId: "navbar",
27
- title: "Navbar",
28
- icon: navbarIcon,
29
- },
30
- {
31
- schemaType: "footer",
32
- documentId: "footer",
33
- title: "Footer",
34
- icon: footerIcon,
35
- },
36
- ] as const
37
-
38
- export const singletonComponentTypes: Set<string> = new Set(
39
- singletonComponents.map((item) => item.schemaType)
40
- )
41
-
42
- export const singletonLayoutTypes: Set<string> = new Set(
43
- singletonLayout.map((item) => item.schemaType)
44
- )