@se-studio/core-ui 1.0.97 → 1.0.99

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 (26) hide show
  1. package/CHANGELOG.md +18 -0
  2. package/dist/components/ExternalVimeoEmbed.js +1 -1
  3. package/dist/components/ExternalVimeoEmbed.js.map +1 -1
  4. package/dist/components/ExternalYouTubeEmbed.js +1 -1
  5. package/dist/components/ExternalYouTubeEmbed.js.map +1 -1
  6. package/dist/context/ExternalVideoPlayButtonContext.d.ts +0 -1
  7. package/dist/context/ExternalVideoPlayButtonContext.d.ts.map +1 -1
  8. package/dist/context/ExternalVideoPlayButtonContext.js +1 -1
  9. package/dist/context/ExternalVideoPlayButtonContext.js.map +1 -1
  10. package/dist/route-handlers/createCmsTxtHandler.d.ts +19 -0
  11. package/dist/route-handlers/createCmsTxtHandler.d.ts.map +1 -0
  12. package/dist/route-handlers/createCmsTxtHandler.js +119 -0
  13. package/dist/route-handlers/createCmsTxtHandler.js.map +1 -0
  14. package/dist/route-handlers/createDiscoveryHandler.d.ts +67 -0
  15. package/dist/route-handlers/createDiscoveryHandler.d.ts.map +1 -0
  16. package/dist/route-handlers/createDiscoveryHandler.js +190 -0
  17. package/dist/route-handlers/createDiscoveryHandler.js.map +1 -0
  18. package/dist/route-handlers/createGuidelinesHandler.d.ts +16 -0
  19. package/dist/route-handlers/createGuidelinesHandler.d.ts.map +1 -0
  20. package/dist/route-handlers/createGuidelinesHandler.js +100 -0
  21. package/dist/route-handlers/createGuidelinesHandler.js.map +1 -0
  22. package/dist/route-handlers/index.d.ts +7 -0
  23. package/dist/route-handlers/index.d.ts.map +1 -0
  24. package/dist/route-handlers/index.js +4 -0
  25. package/dist/route-handlers/index.js.map +1 -0
  26. package/package.json +7 -3
package/CHANGELOG.md CHANGED
@@ -1,5 +1,23 @@
1
1
  # @se-studio/core-ui
2
2
 
3
+ ## 1.0.99
4
+
5
+ ### Patch Changes
6
+
7
+ - Bulk version bump: patch for all packages
8
+ - Updated dependencies
9
+ - @se-studio/contentful-rest-api@1.0.99
10
+ - @se-studio/core-data-types@1.0.99
11
+
12
+ ## 1.0.98
13
+
14
+ ### Patch Changes
15
+
16
+ - Bulk version bump: patch for all packages
17
+ - Updated dependencies
18
+ - @se-studio/contentful-rest-api@1.0.98
19
+ - @se-studio/core-data-types@1.0.98
20
+
3
21
  ## 1.0.97
4
22
 
5
23
  ### Patch Changes
@@ -70,7 +70,7 @@ function ExternalVimeoEmbed({ video, style, className, vimeoId, analyticsContext
70
70
  });
71
71
  }
72
72
  }
73
- return (_jsxs("div", { className: cn('relative w-full overflow-hidden', className), style: fullStyle, children: [!hasActivated && (_jsxs("button", { type: "button", onClick: handlePlay, className: "absolute inset-0 flex h-full w-full items-center justify-center bg-neutral-900 focus:outline-none focus:ring-2 focus:ring-inset focus:ring-white/80", "aria-label": `Play video: ${video.name}`, children: [poster && (_jsx(Image, { src: poster, alt: video.name, width: video.width ?? 1920, height: video.height ?? 1080, style: { objectFit: 'cover' }, sizes: "100vw", className: "h-full w-full" })), playButtonContent ?? _jsx(DefaultExternalVideoPlayButton, {})] })), hasActivated && (_jsx("iframe", { src: buildVimeoEmbedSrc(vimeoId, video.external, { autoplay: true, loop, dnt }), title: video.name, className: "absolute inset-0 h-full w-full border-0", frameBorder: "0", allow: "autoplay; fullscreen; picture-in-picture", allowFullScreen: true }))] }));
73
+ return (_jsxs("div", { className: cn('relative w-full overflow-hidden', className), style: fullStyle, children: [!hasActivated && (_jsxs("button", { type: "button", onClick: handlePlay, className: "absolute inset-0 flex h-full w-full cursor-pointer items-center justify-center bg-neutral-900 group focus:outline-none focus:ring-2 focus:ring-inset focus:ring-white/80", "aria-label": `Play video: ${video.name}`, children: [poster && (_jsx(Image, { src: poster, alt: video.name, width: video.width ?? 1920, height: video.height ?? 1080, style: { objectFit: 'cover' }, sizes: "100vw", className: "h-full w-full" })), playButtonContent ?? _jsx(DefaultExternalVideoPlayButton, {})] })), hasActivated && (_jsx("iframe", { src: buildVimeoEmbedSrc(vimeoId, video.external, { autoplay: true, loop, dnt }), title: video.name, className: "absolute inset-0 h-full w-full border-0", frameBorder: "0", allow: "autoplay; fullscreen; picture-in-picture", allowFullScreen: true }))] }));
74
74
  }
75
75
  export default ExternalVimeoEmbed;
76
76
  //# sourceMappingURL=ExternalVimeoEmbed.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ExternalVimeoEmbed.js","sourceRoot":"","sources":["../../src/components/ExternalVimeoEmbed.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAGb,OAAO,KAAK,MAAM,YAAY,CAAC;AAE/B,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACjC,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACzD,OAAO,EAAE,0BAA0B,EAAE,MAAM,2CAA2C,CAAC;AACvF,OAAO,EAAE,EAAE,EAAE,MAAM,aAAa,CAAC;AACjC,OAAO,EAAE,8BAA8B,EAAE,MAAM,kCAAkC,CAAC;AAElF,OAAO,EAAE,oBAAoB,EAAE,MAAM,UAAU,CAAC;AAEhD,SAAS,mBAAmB,CAAC,GAAW,EAAE,KAAK,GAAG,IAAI,EAAE,MAAM,GAAG,GAAG;IAClE,OAAO,GAAG,CAAC,OAAO,CAAC,WAAW,EAAE,KAAK,KAAK,IAAI,MAAM,EAAE,CAAC,CAAC;AAC1D,CAAC;AAED,SAAS,YAAY,CAAC,GAAW;IAC/B,MAAM,UAAU,GAAG,GAAG,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC;IAC9C,IAAI,UAAU,EAAE,CAAC,CAAC,CAAC;QAAE,OAAO,UAAU,CAAC,CAAC,CAAC,CAAC;IAC1C,MAAM,SAAS,GAAG,GAAG,CAAC,KAAK,CAAC,6CAA6C,CAAC,CAAC;IAC3E,OAAO,SAAS,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC;AAChC,CAAC;AAED,SAAS,kBAAkB,CACzB,OAAe,EACf,WAAmB,EACnB,OAAmF;IAEnF,MAAM,MAAM,GAAG,IAAI,eAAe,EAAE,CAAC;IACrC,MAAM,IAAI,GAAG,YAAY,CAAC,WAAW,CAAC,CAAC;IACvC,IAAI,IAAI,EAAE,CAAC;QACT,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;IACxB,CAAC;IACD,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;QACrB,MAAM,CAAC,GAAG,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC;QAC5B,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC;YACvB,MAAM,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;YACzB,MAAM,CAAC,GAAG,CAAC,YAAY,EAAE,GAAG,CAAC,CAAC;QAChC,CAAC;IACH,CAAC;IACD,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;QACjB,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC1B,CAAC;IACD,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;QAChB,MAAM,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;IACzB,CAAC;IACD,MAAM,EAAE,GAAG,MAAM,CAAC,QAAQ,EAAE,CAAC;IAC7B,OAAO,kCAAkC,OAAO,GAAG,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;AAC1E,CAAC;AAED,SAAS,kBAAkB,CAAC,EAC1B,KAAK,EACL,KAAK,EACL,SAAS,EACT,OAAO,EACP,gBAAgB,EAChB,cAAc,EACd,QAAQ,EACR,IAAI,EACJ,uBAAuB,GAOV;IACb,MAAM,CAAC,YAAY,EAAE,eAAe,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IACxD,MAAM,EAAE,UAAU,EAAE,GAAG,YAAY,EAAE,CAAC;IACtC,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC;IAC1B,MAAM,cAAc,GAAG,oBAAoB,CAAC,KAAK,CAAC,CAAC;IACnD,MAAM,SAAS,GAAkB;QAC/B,GAAG,KAAK;QACR,GAAG,cAAc;QACjB,WAAW,EAAE,KAAK,EAAE,KAAK,IAAI,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,SAAS;KACxF,CAAC;IACF,MAAM,GAAG,GAAG,CAAC,CAAC,gBAAgB,EAAE,GAAG,CAAC;IACpC,MAAM,SAAS,GAAG,KAAK,CAAC,MAAM,IAAI,KAAK,EAAE,YAAY,CAAC;IACtD,MAAM,MAAM,GAAG,SAAS,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,mBAAmB,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IACvF,MAAM,qBAAqB,GAAG,0BAA0B,EAAE,CAAC;IAC3D,MAAM,iBAAiB,GAAG,uBAAuB,IAAI,qBAAqB,CAAC;IAE3E,IAAI,QAAQ,EAAE,CAAC;QACb,OAAO,CACL,cAAK,SAAS,EAAE,EAAE,CAAC,iCAAiC,EAAE,SAAS,CAAC,EAAE,KAAK,EAAE,SAAS,YAChF,iBACE,GAAG,EAAE,kBAAkB,CAAC,OAAO,EAAE,KAAK,CAAC,QAAQ,EAAE;oBAC/C,QAAQ,EAAE,IAAI;oBACd,UAAU,EAAE,IAAI;oBAChB,IAAI;oBACJ,GAAG;iBACJ,CAAC,EACF,KAAK,EAAE,KAAK,CAAC,IAAI,EACjB,SAAS,EAAC,yCAAyC,EACnD,WAAW,EAAC,GAAG,EACf,KAAK,EAAC,0CAA0C,EAChD,eAAe,SACf,GACE,CACP,CAAC;IACJ,CAAC;IAED,SAAS,UAAU;QACjB,eAAe,CAAC,IAAI,CAAC,CAAC;QACtB,IAAI,gBAAgB,EAAE,CAAC;YACrB,UAAU,CAAC,eAAe,EAAE,KAAK,CAAC,IAAI,EAAE,gBAAgB,EAAE;gBACxD,QAAQ,EAAE,cAAc,IAAI,SAAS;aACtC,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,OAAO,CACL,eAAK,SAAS,EAAE,EAAE,CAAC,iCAAiC,EAAE,SAAS,CAAC,EAAE,KAAK,EAAE,SAAS,aAC/E,CAAC,YAAY,IAAI,CAChB,kBACE,IAAI,EAAC,QAAQ,EACb,OAAO,EAAE,UAAU,EACnB,SAAS,EAAC,qJAAqJ,gBACnJ,eAAe,KAAK,CAAC,IAAI,EAAE,aAEtC,MAAM,IAAI,CACT,KAAC,KAAK,IACJ,GAAG,EAAE,MAAM,EACX,GAAG,EAAE,KAAK,CAAC,IAAI,EACf,KAAK,EAAE,KAAK,CAAC,KAAK,IAAI,IAAI,EAC1B,MAAM,EAAE,KAAK,CAAC,MAAM,IAAI,IAAI,EAC5B,KAAK,EAAE,EAAE,SAAS,EAAE,OAAO,EAAE,EAC7B,KAAK,EAAC,OAAO,EACb,SAAS,EAAC,eAAe,GACzB,CACH,EACA,iBAAiB,IAAI,KAAC,8BAA8B,KAAG,IACjD,CACV,EACA,YAAY,IAAI,CACf,iBACE,GAAG,EAAE,kBAAkB,CAAC,OAAO,EAAE,KAAK,CAAC,QAAQ,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,EAC/E,KAAK,EAAE,KAAK,CAAC,IAAI,EACjB,SAAS,EAAC,yCAAyC,EACnD,WAAW,EAAC,GAAG,EACf,KAAK,EAAC,0CAA0C,EAChD,eAAe,SACf,CACH,IACG,CACP,CAAC;AACJ,CAAC;AAED,eAAe,kBAAkB,CAAC"}
1
+ {"version":3,"file":"ExternalVimeoEmbed.js","sourceRoot":"","sources":["../../src/components/ExternalVimeoEmbed.tsx"],"names":[],"mappings":"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"}
@@ -53,6 +53,6 @@ export function ExternalYoutubeEmbed({ video, style, className, youTubeId, analy
53
53
  });
54
54
  }
55
55
  }
56
- return (_jsxs("div", { className: cn('relative w-full overflow-hidden', className), style: fullStyle, children: [!hasActivated && (_jsxs("button", { type: "button", onClick: handlePlay, className: "absolute inset-0 flex h-full w-full items-center justify-center bg-neutral-900 focus:outline-none focus:ring-2 focus:ring-inset focus:ring-white/80", "aria-label": `Play video: ${video.name}`, children: [poster && (_jsx(Image, { src: poster, alt: video.name, width: video.width ?? 1920, height: video.height ?? 1080, style: { objectFit: 'cover' }, sizes: "100vw", className: "h-full w-full" })), playButtonContent ?? _jsx(DefaultExternalVideoPlayButton, {})] })), hasActivated && (_jsx("iframe", { src: buildYouTubeEmbedSrc(youTubeId, { autoplay: true, loop, dnt }), title: video.name, className: "absolute inset-0 h-full w-full border-0", frameBorder: "0", allow: "accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture", allowFullScreen: true }))] }));
56
+ return (_jsxs("div", { className: cn('relative w-full overflow-hidden', className), style: fullStyle, children: [!hasActivated && (_jsxs("button", { type: "button", onClick: handlePlay, className: "absolute inset-0 flex h-full w-full cursor-pointer items-center justify-center bg-neutral-900 group focus:outline-none focus:ring-2 focus:ring-inset focus:ring-white/80", "aria-label": `Play video: ${video.name}`, children: [poster && (_jsx(Image, { src: poster, alt: video.name, width: video.width ?? 1920, height: video.height ?? 1080, style: { objectFit: 'cover' }, sizes: "100vw", className: "h-full w-full" })), playButtonContent ?? _jsx(DefaultExternalVideoPlayButton, {})] })), hasActivated && (_jsx("iframe", { src: buildYouTubeEmbedSrc(youTubeId, { autoplay: true, loop, dnt }), title: video.name, className: "absolute inset-0 h-full w-full border-0", frameBorder: "0", allow: "accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture", allowFullScreen: true }))] }));
57
57
  }
58
58
  //# sourceMappingURL=ExternalYouTubeEmbed.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ExternalYouTubeEmbed.js","sourceRoot":"","sources":["../../src/components/ExternalYouTubeEmbed.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ExternalYouTubeEmbed.js","sourceRoot":"","sources":["../../src/components/ExternalYouTubeEmbed.tsx"],"names":[],"mappings":"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"}
@@ -1,5 +1,4 @@
1
1
  import type { ReactNode } from 'react';
2
- export declare const ExternalVideoPlayButtonContext: import("react").Context<ReactNode>;
3
2
  export declare function useExternalVideoPlayButton(): ReactNode;
4
3
  export declare function ExternalVideoPlayButtonProvider({ value, children, }: {
5
4
  value: ReactNode;
@@ -1 +1 @@
1
- {"version":3,"file":"ExternalVideoPlayButtonContext.d.ts","sourceRoot":"","sources":["../../src/context/ExternalVideoPlayButtonContext.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAGvC,eAAO,MAAM,8BAA8B,oCAAsC,CAAC;AAElF,wBAAgB,0BAA0B,IAAI,SAAS,CAEtD;AAED,wBAAgB,+BAA+B,CAAC,EAC9C,KAAK,EACL,QAAQ,GACT,EAAE;IACD,KAAK,EAAE,SAAS,CAAC;IACjB,QAAQ,EAAE,SAAS,CAAC;CACrB,2CAMA"}
1
+ {"version":3,"file":"ExternalVideoPlayButtonContext.d.ts","sourceRoot":"","sources":["../../src/context/ExternalVideoPlayButtonContext.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAKvC,wBAAgB,0BAA0B,IAAI,SAAS,CAEtD;AAED,wBAAgB,+BAA+B,CAAC,EAC9C,KAAK,EACL,QAAQ,GACT,EAAE;IACD,KAAK,EAAE,SAAS,CAAC;IACjB,QAAQ,EAAE,SAAS,CAAC;CACrB,2CAMA"}
@@ -1,7 +1,7 @@
1
1
  'use client';
2
2
  import { jsx as _jsx } from "react/jsx-runtime";
3
3
  import { createContext, useContext } from 'react';
4
- export const ExternalVideoPlayButtonContext = createContext(undefined);
4
+ const ExternalVideoPlayButtonContext = createContext(undefined);
5
5
  export function useExternalVideoPlayButton() {
6
6
  return useContext(ExternalVideoPlayButtonContext);
7
7
  }
@@ -1 +1 @@
1
- {"version":3,"file":"ExternalVideoPlayButtonContext.js","sourceRoot":"","sources":["../../src/context/ExternalVideoPlayButtonContext.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAGb,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AAElD,MAAM,CAAC,MAAM,8BAA8B,GAAG,aAAa,CAAY,SAAS,CAAC,CAAC;AAElF,MAAM,UAAU,0BAA0B;IACxC,OAAO,UAAU,CAAC,8BAA8B,CAAC,CAAC;AACpD,CAAC;AAED,MAAM,UAAU,+BAA+B,CAAC,EAC9C,KAAK,EACL,QAAQ,GAIT;IACC,OAAO,CACL,KAAC,8BAA8B,CAAC,QAAQ,IAAC,KAAK,EAAE,KAAK,YAClD,QAAQ,GAC+B,CAC3C,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"ExternalVideoPlayButtonContext.js","sourceRoot":"","sources":["../../src/context/ExternalVideoPlayButtonContext.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAGb,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AAElD,MAAM,8BAA8B,GAAG,aAAa,CAAY,SAAS,CAAC,CAAC;AAE3E,MAAM,UAAU,0BAA0B;IACxC,OAAO,UAAU,CAAC,8BAA8B,CAAC,CAAC;AACpD,CAAC;AAED,MAAM,UAAU,+BAA+B,CAAC,EAC9C,KAAK,EACL,QAAQ,GAIT;IACC,OAAO,CACL,KAAC,8BAA8B,CAAC,QAAQ,IAAC,KAAK,EAAE,KAAK,YAClD,QAAQ,GAC+B,CAC3C,CAAC;AACJ,CAAC"}
@@ -0,0 +1,19 @@
1
+ export interface CmsTxtHandlerOptions {
2
+ /** Display name for this app (e.g. "example-brightline") */
3
+ appName: string;
4
+ /** Local dev port (e.g. 3010) */
5
+ port: number;
6
+ /** Optional additional content appended after the standard sections */
7
+ extraContent?: string;
8
+ }
9
+ /**
10
+ * Creates a Next.js GET handler for the /cms.txt route.
11
+ *
12
+ * Returns a plain-text entry point listing all CMS tooling routes available on the site.
13
+ * Designed to be the first place an agent or tool looks when working with the CMS.
14
+ *
15
+ * Auth note: On deployed environments (e.g. Vercel) the whole app is behind auth.
16
+ * Pass the same auth credential to ALL endpoints listed here. No auth on localhost.
17
+ */
18
+ export declare function createCmsTxtHandler(options: CmsTxtHandlerOptions): (request?: Request) => Response;
19
+ //# sourceMappingURL=createCmsTxtHandler.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"createCmsTxtHandler.d.ts","sourceRoot":"","sources":["../../src/route-handlers/createCmsTxtHandler.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,oBAAoB;IACnC,4DAA4D;IAC5D,OAAO,EAAE,MAAM,CAAC;IAChB,iCAAiC;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,uEAAuE;IACvE,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED;;;;;;;;GAQG;AACH,wBAAgB,mBAAmB,CACjC,OAAO,EAAE,oBAAoB,GAC5B,CAAC,OAAO,CAAC,EAAE,OAAO,KAAK,QAAQ,CA6GjC"}
@@ -0,0 +1,119 @@
1
+ import { NextResponse } from 'next/server';
2
+ /**
3
+ * Creates a Next.js GET handler for the /cms.txt route.
4
+ *
5
+ * Returns a plain-text entry point listing all CMS tooling routes available on the site.
6
+ * Designed to be the first place an agent or tool looks when working with the CMS.
7
+ *
8
+ * Auth note: On deployed environments (e.g. Vercel) the whole app is behind auth.
9
+ * Pass the same auth credential to ALL endpoints listed here. No auth on localhost.
10
+ */
11
+ export function createCmsTxtHandler(options) {
12
+ const { appName, port, extraContent } = options;
13
+ // biome-ignore lint/style/useNamingConvention: Route handler name convention
14
+ return function GET() {
15
+ const content = `# CMS Tools and Resources — ${appName}
16
+
17
+ ## Auth
18
+
19
+ When deployed (e.g. on Vercel preview), all endpoints below are behind site-level auth.
20
+ Pass the same credential used to access this page to all listed endpoints.
21
+ When running locally (http://localhost:${port}) there is no auth required.
22
+
23
+ ---
24
+
25
+ ## Component Showcase
26
+
27
+ Browse and interact with every CMS component and collection using mock data.
28
+ Useful for visualising what content looks like before editing in Contentful.
29
+
30
+ URL: /cms-showcase
31
+ Type: HTML (interactive browser tool)
32
+
33
+ Render a specific component or collection directly (no browser UI):
34
+
35
+ URL: /cms-showcase/render?type=<TypeName>&mode=<component|collection>
36
+ Example: /cms-showcase/render?type=Hero&mode=component
37
+ Example: /cms-showcase/render?type=Hero&mode=component&backgroundColour=Navy&textColour=Off+White
38
+ Example: /cms-showcase/render?type=Cards+Grid&mode=collection
39
+
40
+ Render all components or collections on one page:
41
+
42
+ URL: /cms-showcase/render-all?mode=<component|collection>
43
+
44
+ ---
45
+
46
+ ## Component Guidelines (LLM-ready)
47
+
48
+ Self-contained documentation of every component and collection: layout, fields,
49
+ behaviour, typography, colours, and impact of content changes.
50
+ Intended for LLMs creating or editing pages — does not require code access.
51
+
52
+ URL: /cms-guidelines
53
+ Type: Text/Markdown (full guidelines document)
54
+
55
+ Single component or collection (smaller context):
56
+
57
+ URL: /cms-guidelines?component=<TypeName>
58
+ URL: /cms-guidelines?collection=<TypeName>
59
+ Example: /cms-guidelines?component=Hero
60
+
61
+ The guidelines are generated periodically and committed to the repository.
62
+ For components not yet documented, the document notes they are pending.
63
+ Regeneration: see docs/cms-guidelines/README.md for the full pipeline.
64
+
65
+ ---
66
+
67
+ ## Discovery API (JSON)
68
+
69
+ Machine-readable dump of all available types, their used fields, colour hints,
70
+ and the site palette. Use this to understand what can be added to a page and
71
+ what fields each type supports — without reading the full guidelines.
72
+
73
+ Single dump (all types):
74
+
75
+ URL: /api/cms/discovery
76
+ Type: application/json
77
+
78
+ Single type (smaller context, for editing one component):
79
+
80
+ URL: /api/cms/discovery?type=component&name=Hero
81
+ URL: /api/cms/discovery?type=collection&name=Cards+Grid
82
+ URL: /api/cms/discovery?type=externalComponent&name=formstack
83
+ Type: application/json
84
+
85
+ The response includes:
86
+ - components[]: name, usedFields[], fieldMetadata (types + enum values), colourHint
87
+ - collections[]: name, usedFields[], cardUsedFields[], fieldMetadata, colourHint
88
+ - externals[]: name, fieldMetadata
89
+ - palette: { background[], text[] }
90
+
91
+ colourHint describes how backgroundColour and textColour apply for this type
92
+ (e.g. "section" = full-width section, "card" = per-card inside collection).
93
+ fieldMetadata provides the CMS field label, type, required flag, and enum values.
94
+
95
+ ---
96
+
97
+ ## CMS Preview
98
+
99
+ Render a single Contentful entry (requires preview token):
100
+
101
+ URL: /cms-preview/render?id=<entryId>
102
+ URL: /cms-preview/render-json (JSON mode)
103
+
104
+ ---
105
+
106
+ ## Other
107
+
108
+ /llms.txt — LLM-friendly index of site content (pages and articles)
109
+ /sitemap.xml — Standard XML sitemap
110
+ ${extraContent ? `\n---\n\n${extraContent}` : ''}`;
111
+ return new NextResponse(content, {
112
+ headers: {
113
+ 'Content-Type': 'text/plain; charset=utf-8',
114
+ 'Cache-Control': 'public, max-age=3600',
115
+ },
116
+ });
117
+ };
118
+ }
119
+ //# sourceMappingURL=createCmsTxtHandler.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"createCmsTxtHandler.js","sourceRoot":"","sources":["../../src/route-handlers/createCmsTxtHandler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAW3C;;;;;;;;GAQG;AACH,MAAM,UAAU,mBAAmB,CACjC,OAA6B;IAE7B,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,GAAG,OAAO,CAAC;IAEhD,6EAA6E;IAC7E,OAAO,SAAS,GAAG;QACjB,MAAM,OAAO,GAAG,+BAA+B,OAAO;;;;;;yCAMjB,IAAI;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAyF3C,YAAY,CAAC,CAAC,CAAC,YAAY,YAAY,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;QAE/C,OAAO,IAAI,YAAY,CAAC,OAAO,EAAE;YAC/B,OAAO,EAAE;gBACP,cAAc,EAAE,2BAA2B;gBAC3C,eAAe,EAAE,sBAAsB;aACxC;SACF,CAAC,CAAC;IACL,CAAC,CAAC;AACJ,CAAC"}
@@ -0,0 +1,67 @@
1
+ export type FieldMeta = {
2
+ id: string;
3
+ label: string;
4
+ required: boolean;
5
+ type: string;
6
+ summary?: string;
7
+ enumValues?: string[];
8
+ };
9
+ export type ColourHint = {
10
+ colourApplication: string;
11
+ notes?: string;
12
+ };
13
+ export type ComponentEntry = {
14
+ name: string;
15
+ usedFields: string[];
16
+ fieldMetadata?: FieldMeta[];
17
+ colourHint?: ColourHint;
18
+ };
19
+ export type CollectionEntry = {
20
+ name: string;
21
+ usedFields: string[];
22
+ cardUsedFields: string[];
23
+ fieldMetadata?: FieldMeta[];
24
+ colourHint?: ColourHint;
25
+ };
26
+ export type ExternalEntry = {
27
+ name: string;
28
+ fieldMetadata?: FieldMeta[];
29
+ colourHint?: ColourHint;
30
+ };
31
+ export type Palette = {
32
+ background: string[];
33
+ text: string[];
34
+ };
35
+ export type DiscoveryResponse = {
36
+ components: ComponentEntry[];
37
+ collections: CollectionEntry[];
38
+ externals: ExternalEntry[];
39
+ palette: Palette;
40
+ };
41
+ export interface DiscoveryHandlerOptions {
42
+ componentMap: Record<string, unknown>;
43
+ componentFieldsMap: Record<string, Set<string> | undefined>;
44
+ collectionMap: Record<string, unknown>;
45
+ collectionFieldsMap: Record<string, Set<string> | undefined>;
46
+ collectionCardFieldsMap: Record<string, Set<string> | undefined>;
47
+ externalComponentMap: Record<string, unknown>;
48
+ palette: Palette;
49
+ cwd: string;
50
+ }
51
+ /**
52
+ * Creates a Next.js GET handler for the /api/cms/discovery route.
53
+ *
54
+ * Returns a machine-readable dump of all CMS types available in the app:
55
+ * - components[]: name, usedFields[], fieldMetadata, colourHint
56
+ * - collections[]: name, usedFields[], cardUsedFields[], fieldMetadata, colourHint
57
+ * - externals[]: name, fieldMetadata
58
+ * - palette: background and text colours
59
+ *
60
+ * Supports single-type queries: ?type=component&name=Hero
61
+ *
62
+ * fieldMetadata is merged when generated/cms-discovery/field-list.json exists.
63
+ * colourHint is merged when generated/cms-discovery/colour-hints.json exists.
64
+ * Both fall back gracefully when absent.
65
+ */
66
+ export declare function createDiscoveryHandler(options: DiscoveryHandlerOptions): (request: Request) => Response;
67
+ //# sourceMappingURL=createDiscoveryHandler.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"createDiscoveryHandler.d.ts","sourceRoot":"","sources":["../../src/route-handlers/createDiscoveryHandler.ts"],"names":[],"mappings":"AAIA,MAAM,MAAM,SAAS,GAAG;IACtB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,OAAO,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;CACvB,CAAC;AAQF,MAAM,MAAM,UAAU,GAAG;IACvB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC;AAIF,MAAM,MAAM,cAAc,GAAG;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,aAAa,CAAC,EAAE,SAAS,EAAE,CAAC;IAC5B,UAAU,CAAC,EAAE,UAAU,CAAC;CACzB,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,aAAa,CAAC,EAAE,SAAS,EAAE,CAAC;IAC5B,UAAU,CAAC,EAAE,UAAU,CAAC;CACzB,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,aAAa,CAAC,EAAE,SAAS,EAAE,CAAC;IAC5B,UAAU,CAAC,EAAE,UAAU,CAAC;CACzB,CAAC;AAEF,MAAM,MAAM,OAAO,GAAG;IACpB,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,IAAI,EAAE,MAAM,EAAE,CAAC;CAChB,CAAC;AAEF,MAAM,MAAM,iBAAiB,GAAG;IAC9B,UAAU,EAAE,cAAc,EAAE,CAAC;IAC7B,WAAW,EAAE,eAAe,EAAE,CAAC;IAC/B,SAAS,EAAE,aAAa,EAAE,CAAC;IAC3B,OAAO,EAAE,OAAO,CAAC;CAClB,CAAC;AAEF,MAAM,WAAW,uBAAuB;IACtC,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACtC,kBAAkB,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,GAAG,SAAS,CAAC,CAAC;IAC5D,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACvC,mBAAmB,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,GAAG,SAAS,CAAC,CAAC;IAC7D,uBAAuB,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,GAAG,SAAS,CAAC,CAAC;IACjE,oBAAoB,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC9C,OAAO,EAAE,OAAO,CAAC;IACjB,GAAG,EAAE,MAAM,CAAC;CACb;AAqCD;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,sBAAsB,CACpC,OAAO,EAAE,uBAAuB,GAC/B,CAAC,OAAO,EAAE,OAAO,KAAK,QAAQ,CAyKhC"}
@@ -0,0 +1,190 @@
1
+ import { readFileSync } from 'node:fs';
2
+ import { join } from 'node:path';
3
+ import { NextResponse } from 'next/server';
4
+ function loadFieldList(cwd) {
5
+ try {
6
+ const raw = readFileSync(join(cwd, 'generated/cms-discovery/field-list.json'), 'utf8');
7
+ return JSON.parse(raw);
8
+ }
9
+ catch {
10
+ return null;
11
+ }
12
+ }
13
+ function loadColourHints(cwd) {
14
+ try {
15
+ const raw = readFileSync(join(cwd, 'generated/cms-discovery/colour-hints.json'), 'utf8');
16
+ return JSON.parse(raw);
17
+ }
18
+ catch {
19
+ return {};
20
+ }
21
+ }
22
+ /** Return only the fields that appear in usedFields (by field id), in usedFields order */
23
+ function filterFieldMeta(allFields, usedFields) {
24
+ if (!allFields) {
25
+ return undefined;
26
+ }
27
+ const usedSet = new Set(usedFields);
28
+ const filtered = allFields.filter((f) => usedSet.has(f.id));
29
+ if (filtered.length === 0) {
30
+ return undefined;
31
+ }
32
+ const byId = new Map(filtered.map((f) => [f.id, f]));
33
+ return usedFields.map((id) => byId.get(id)).filter((f) => f !== undefined);
34
+ }
35
+ /**
36
+ * Creates a Next.js GET handler for the /api/cms/discovery route.
37
+ *
38
+ * Returns a machine-readable dump of all CMS types available in the app:
39
+ * - components[]: name, usedFields[], fieldMetadata, colourHint
40
+ * - collections[]: name, usedFields[], cardUsedFields[], fieldMetadata, colourHint
41
+ * - externals[]: name, fieldMetadata
42
+ * - palette: background and text colours
43
+ *
44
+ * Supports single-type queries: ?type=component&name=Hero
45
+ *
46
+ * fieldMetadata is merged when generated/cms-discovery/field-list.json exists.
47
+ * colourHint is merged when generated/cms-discovery/colour-hints.json exists.
48
+ * Both fall back gracefully when absent.
49
+ */
50
+ export function createDiscoveryHandler(options) {
51
+ const { componentMap, componentFieldsMap, collectionMap, collectionFieldsMap, collectionCardFieldsMap, externalComponentMap, palette, cwd, } = options;
52
+ // Load generated artifacts once per handler instance
53
+ let fieldListCache;
54
+ let colourHintsCache;
55
+ function getFieldList() {
56
+ if (fieldListCache === undefined) {
57
+ fieldListCache = loadFieldList(cwd);
58
+ }
59
+ return fieldListCache;
60
+ }
61
+ function getColourHints() {
62
+ if (colourHintsCache === undefined) {
63
+ colourHintsCache = loadColourHints(cwd);
64
+ }
65
+ return colourHintsCache;
66
+ }
67
+ function buildComponents() {
68
+ const fl = getFieldList();
69
+ const hints = getColourHints();
70
+ const allComponentFields = fl?.['component']?.fields;
71
+ return Object.keys(componentMap).map((name) => {
72
+ const usedFields = Array.from(componentFieldsMap[name] ?? new Set()).sort();
73
+ const entry = { name, usedFields };
74
+ const fieldMetadata = filterFieldMeta(allComponentFields, usedFields);
75
+ if (fieldMetadata) {
76
+ entry.fieldMetadata = fieldMetadata;
77
+ }
78
+ const hint = hints[name];
79
+ if (hint) {
80
+ entry.colourHint = hint;
81
+ }
82
+ return entry;
83
+ });
84
+ }
85
+ function buildCollections() {
86
+ const fl = getFieldList();
87
+ const hints = getColourHints();
88
+ const allCollectionFields = fl?.['collection']?.fields;
89
+ return Object.keys(collectionMap).map((name) => {
90
+ const usedFields = Array.from(collectionFieldsMap[name] ?? new Set()).sort();
91
+ const cardUsedFields = Array.from(collectionCardFieldsMap[name] ?? new Set()).sort();
92
+ const entry = { name, usedFields, cardUsedFields };
93
+ const fieldMetadata = filterFieldMeta(allCollectionFields, usedFields);
94
+ if (fieldMetadata) {
95
+ entry.fieldMetadata = fieldMetadata;
96
+ }
97
+ const hint = hints[name];
98
+ if (hint) {
99
+ entry.colourHint = hint;
100
+ }
101
+ return entry;
102
+ });
103
+ }
104
+ function buildExternals() {
105
+ const fl = getFieldList();
106
+ const hints = getColourHints();
107
+ const allExternalFields = fl?.['externalComponent']?.fields;
108
+ return Object.keys(externalComponentMap).map((name) => {
109
+ const entry = { name };
110
+ if (allExternalFields) {
111
+ entry.fieldMetadata = allExternalFields;
112
+ }
113
+ const hint = hints[name];
114
+ if (hint) {
115
+ entry.colourHint = hint;
116
+ }
117
+ return entry;
118
+ });
119
+ }
120
+ function handleSingleType(type, name) {
121
+ const fl = getFieldList();
122
+ const hints = getColourHints();
123
+ if (type === 'component') {
124
+ if (!(name in componentMap)) {
125
+ return NextResponse.json({ error: `Component "${name}" not found` }, { status: 404 });
126
+ }
127
+ const usedFields = Array.from(componentFieldsMap[name] ?? new Set()).sort();
128
+ const entry = { name, usedFields };
129
+ const fieldMetadata = filterFieldMeta(fl?.['component']?.fields, usedFields);
130
+ if (fieldMetadata) {
131
+ entry.fieldMetadata = fieldMetadata;
132
+ }
133
+ const hint = hints[name];
134
+ if (hint) {
135
+ entry.colourHint = hint;
136
+ }
137
+ return NextResponse.json({ component: entry, palette });
138
+ }
139
+ if (type === 'collection') {
140
+ if (!(name in collectionMap)) {
141
+ return NextResponse.json({ error: `Collection "${name}" not found` }, { status: 404 });
142
+ }
143
+ const usedFields = Array.from(collectionFieldsMap[name] ?? new Set()).sort();
144
+ const cardUsedFields = Array.from(collectionCardFieldsMap[name] ?? new Set()).sort();
145
+ const entry = { name, usedFields, cardUsedFields };
146
+ const fieldMetadata = filterFieldMeta(fl?.['collection']?.fields, usedFields);
147
+ if (fieldMetadata) {
148
+ entry.fieldMetadata = fieldMetadata;
149
+ }
150
+ const hint = hints[name];
151
+ if (hint) {
152
+ entry.colourHint = hint;
153
+ }
154
+ return NextResponse.json({ collection: entry, palette });
155
+ }
156
+ if (type === 'externalComponent') {
157
+ if (!(name in externalComponentMap)) {
158
+ return NextResponse.json({ error: `External component "${name}" not found` }, { status: 404 });
159
+ }
160
+ const entry = { name };
161
+ const allExternalFields = fl?.['externalComponent']?.fields;
162
+ if (allExternalFields) {
163
+ entry.fieldMetadata = allExternalFields;
164
+ }
165
+ const extHint = hints[name];
166
+ if (extHint) {
167
+ entry.colourHint = extHint;
168
+ }
169
+ return NextResponse.json({ external: entry, palette });
170
+ }
171
+ return NextResponse.json({ error: `Unknown type "${type}". Use component, collection, or externalComponent.` }, { status: 400 });
172
+ }
173
+ // biome-ignore lint/style/useNamingConvention: Route handler name convention
174
+ return function GET(request) {
175
+ const { searchParams } = new URL(request.url);
176
+ const typeParam = searchParams.get('type');
177
+ const nameParam = searchParams.get('name');
178
+ if (typeParam && nameParam) {
179
+ return handleSingleType(typeParam, nameParam);
180
+ }
181
+ const payload = {
182
+ components: buildComponents(),
183
+ collections: buildCollections(),
184
+ externals: buildExternals(),
185
+ palette,
186
+ };
187
+ return NextResponse.json(payload);
188
+ };
189
+ }
190
+ //# sourceMappingURL=createDiscoveryHandler.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"createDiscoveryHandler.js","sourceRoot":"","sources":["../../src/route-handlers/createDiscoveryHandler.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,16 @@
1
+ export interface GuidelinesHandlerOptions {
2
+ cwd: string;
3
+ }
4
+ /**
5
+ * Creates a Next.js GET handler for the /cms-guidelines route.
6
+ *
7
+ * Serves the committed COMPONENT_GUIDELINES_FOR_LLM.md document as plain text/markdown.
8
+ * The document is self-contained: no source code access is required to read it.
9
+ *
10
+ * Optional query params:
11
+ * ?component=Hero — returns only the Hero section
12
+ * ?collection=Cards+Grid — returns only the Cards Grid section
13
+ * ?external=formstack — returns only the formstack section
14
+ */
15
+ export declare function createGuidelinesHandler(options: GuidelinesHandlerOptions): (request: Request) => Response;
16
+ //# sourceMappingURL=createGuidelinesHandler.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"createGuidelinesHandler.d.ts","sourceRoot":"","sources":["../../src/route-handlers/createGuidelinesHandler.ts"],"names":[],"mappings":"AA0CA,MAAM,WAAW,wBAAwB;IACvC,GAAG,EAAE,MAAM,CAAC;CACb;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,uBAAuB,CACrC,OAAO,EAAE,wBAAwB,GAChC,CAAC,OAAO,EAAE,OAAO,KAAK,QAAQ,CA4DhC"}
@@ -0,0 +1,100 @@
1
+ import { existsSync, readFileSync } from 'node:fs';
2
+ import { join } from 'node:path';
3
+ import { NextResponse } from 'next/server';
4
+ /**
5
+ * Extract the section for a given type name from the merged guidelines document.
6
+ * Searches for "# <TypeName>" and returns everything up to the next "---" separator.
7
+ */
8
+ function extractSection(content, typeName) {
9
+ const escapedName = typeName.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
10
+ const sectionPattern = new RegExp(`(^# ${escapedName}\\s*$[\\s\\S]*?)(?=^---$|^## [A-Z])`, 'mi');
11
+ const match = sectionPattern.exec(content);
12
+ if (match?.[1]) {
13
+ return match[1].trim();
14
+ }
15
+ // Fallback: case-insensitive partial match
16
+ const lowerName = typeName.toLowerCase();
17
+ const lines = content.split('\n');
18
+ let startLine = -1;
19
+ for (let i = 0; i < lines.length; i++) {
20
+ const line = lines[i] ?? '';
21
+ if (line.startsWith('# ') && line.toLowerCase().includes(lowerName)) {
22
+ startLine = i;
23
+ break;
24
+ }
25
+ }
26
+ if (startLine === -1) {
27
+ return null;
28
+ }
29
+ const sectionLines = [];
30
+ for (let i = startLine; i < lines.length; i++) {
31
+ const line = lines[i] ?? '';
32
+ if (i !== startLine && line === '---') {
33
+ break;
34
+ }
35
+ sectionLines.push(line);
36
+ }
37
+ return sectionLines.join('\n').trim();
38
+ }
39
+ /**
40
+ * Creates a Next.js GET handler for the /cms-guidelines route.
41
+ *
42
+ * Serves the committed COMPONENT_GUIDELINES_FOR_LLM.md document as plain text/markdown.
43
+ * The document is self-contained: no source code access is required to read it.
44
+ *
45
+ * Optional query params:
46
+ * ?component=Hero — returns only the Hero section
47
+ * ?collection=Cards+Grid — returns only the Cards Grid section
48
+ * ?external=formstack — returns only the formstack section
49
+ */
50
+ export function createGuidelinesHandler(options) {
51
+ const guidelinesPath = join(options.cwd, 'docs/cms-guidelines/COMPONENT_GUIDELINES_FOR_LLM.md');
52
+ function loadGuidelines() {
53
+ if (!existsSync(guidelinesPath)) {
54
+ return null;
55
+ }
56
+ try {
57
+ return readFileSync(guidelinesPath, 'utf8');
58
+ }
59
+ catch {
60
+ return null;
61
+ }
62
+ }
63
+ // biome-ignore lint/style/useNamingConvention: Route handler name convention
64
+ return function GET(request) {
65
+ const { searchParams } = new URL(request.url);
66
+ const component = searchParams.get('component');
67
+ const collection = searchParams.get('collection');
68
+ const external = searchParams.get('external');
69
+ const typeName = component ?? collection ?? external;
70
+ const guidelines = loadGuidelines();
71
+ if (!guidelines) {
72
+ return new NextResponse('# CMS Guidelines not yet generated\n\nRun the guideline generation pipeline to produce this document.\nSee docs/cms-guidelines/README.md for instructions.', {
73
+ status: 404,
74
+ headers: { 'Content-Type': 'text/plain; charset=utf-8' },
75
+ });
76
+ }
77
+ if (typeName) {
78
+ const section = extractSection(guidelines, typeName);
79
+ if (!section) {
80
+ return new NextResponse(`# Not found\n\nNo guideline found for "${typeName}".\n\nAvailable at /cms-guidelines (full document).`, {
81
+ status: 404,
82
+ headers: { 'Content-Type': 'text/plain; charset=utf-8' },
83
+ });
84
+ }
85
+ return new NextResponse(section, {
86
+ headers: {
87
+ 'Content-Type': 'text/plain; charset=utf-8',
88
+ 'Cache-Control': 'public, max-age=3600',
89
+ },
90
+ });
91
+ }
92
+ return new NextResponse(guidelines, {
93
+ headers: {
94
+ 'Content-Type': 'text/plain; charset=utf-8',
95
+ 'Cache-Control': 'public, max-age=3600',
96
+ },
97
+ });
98
+ };
99
+ }
100
+ //# sourceMappingURL=createGuidelinesHandler.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"createGuidelinesHandler.js","sourceRoot":"","sources":["../../src/route-handlers/createGuidelinesHandler.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ export type { CmsTxtHandlerOptions } from './createCmsTxtHandler';
2
+ export { createCmsTxtHandler } from './createCmsTxtHandler';
3
+ export type { CollectionEntry, ColourHint, ComponentEntry, DiscoveryHandlerOptions, DiscoveryResponse, ExternalEntry, FieldMeta, Palette, } from './createDiscoveryHandler';
4
+ export { createDiscoveryHandler } from './createDiscoveryHandler';
5
+ export type { GuidelinesHandlerOptions } from './createGuidelinesHandler';
6
+ export { createGuidelinesHandler } from './createGuidelinesHandler';
7
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/route-handlers/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAClE,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,YAAY,EACV,eAAe,EACf,UAAU,EACV,cAAc,EACd,uBAAuB,EACvB,iBAAiB,EACjB,aAAa,EACb,SAAS,EACT,OAAO,GACR,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAClE,YAAY,EAAE,wBAAwB,EAAE,MAAM,2BAA2B,CAAC;AAC1E,OAAO,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC"}
@@ -0,0 +1,4 @@
1
+ export { createCmsTxtHandler } from './createCmsTxtHandler';
2
+ export { createDiscoveryHandler } from './createDiscoveryHandler';
3
+ export { createGuidelinesHandler } from './createGuidelinesHandler';
4
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/route-handlers/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAW5D,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAElE,OAAO,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@se-studio/core-ui",
3
- "version": "1.0.97",
3
+ "version": "1.0.99",
4
4
  "description": "Shared React UI component library with Tailwind CSS v4 for SE Studio applications",
5
5
  "repository": {
6
6
  "type": "git",
@@ -19,6 +19,10 @@
19
19
  "./server": {
20
20
  "types": "./dist/server/index.d.ts",
21
21
  "import": "./dist/server/index.js"
22
+ },
23
+ "./route-handlers": {
24
+ "types": "./dist/route-handlers/index.d.ts",
25
+ "import": "./dist/route-handlers/index.js"
22
26
  }
23
27
  },
24
28
  "files": [
@@ -64,8 +68,8 @@
64
68
  "mustache": "4.2.0",
65
69
  "server-only": "0.0.1",
66
70
  "tailwind-merge": "^3.5.0",
67
- "@se-studio/contentful-rest-api": "1.0.97",
68
- "@se-studio/core-data-types": "1.0.97"
71
+ "@se-studio/contentful-rest-api": "1.0.99",
72
+ "@se-studio/core-data-types": "1.0.99"
69
73
  },
70
74
  "devDependencies": {
71
75
  "@biomejs/biome": "^2.4.6",