@se-studio/core-ui 1.0.58 → 1.0.60
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.
- package/CHANGELOG.md +18 -0
- package/dist/app-helpers.d.ts +3 -0
- package/dist/app-helpers.d.ts.map +1 -1
- package/dist/app-helpers.js +5 -1
- package/dist/app-helpers.js.map +1 -1
- package/dist/index.d.ts +3 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/utils/breadcrumbUtils.d.ts +53 -0
- package/dist/utils/breadcrumbUtils.d.ts.map +1 -0
- package/dist/utils/breadcrumbUtils.js +68 -0
- package/dist/utils/breadcrumbUtils.js.map +1 -0
- package/dist/utils/structuredDataUtils.d.ts +11 -2
- package/dist/utils/structuredDataUtils.d.ts.map +1 -1
- package/dist/utils/structuredDataUtils.js +33 -3
- package/dist/utils/structuredDataUtils.js.map +1 -1
- package/package.json +6 -6
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,23 @@
|
|
|
1
1
|
# @se-studio/core-ui
|
|
2
2
|
|
|
3
|
+
## 1.0.60
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- Bulk version bump: patch for all packages
|
|
8
|
+
- Updated dependencies
|
|
9
|
+
- @se-studio/contentful-rest-api@1.0.60
|
|
10
|
+
- @se-studio/core-data-types@1.0.60
|
|
11
|
+
|
|
12
|
+
## 1.0.59
|
|
13
|
+
|
|
14
|
+
### Patch Changes
|
|
15
|
+
|
|
16
|
+
- Bulk version bump: patch for all packages
|
|
17
|
+
- Updated dependencies
|
|
18
|
+
- @se-studio/contentful-rest-api@1.0.59
|
|
19
|
+
- @se-studio/core-data-types@1.0.59
|
|
20
|
+
|
|
3
21
|
## 1.0.58
|
|
4
22
|
|
|
5
23
|
### Patch Changes
|
package/dist/app-helpers.d.ts
CHANGED
|
@@ -25,6 +25,7 @@
|
|
|
25
25
|
*/
|
|
26
26
|
import type { ArticleTypeFetchOptions, BaseConverterContext, CmsResponse, ContentfulConfig, FetchOptions, IContentfulCollection, IContentfulPerson, IFetchedTemplate, TagFetchOptions } from '@se-studio/contentful-rest-api';
|
|
27
27
|
import type { BaseCollectionContent, IArticleLink, IArticleTypeLink, IBanner, IBaseArticle, IBaseArticleType, IBaseCustomType, IBasePage, IBaseTag, IContentContext, IInternalLink, IPersonLink } from '@se-studio/core-data-types';
|
|
28
|
+
import type { BreadcrumbLookup } from './utils/breadcrumbUtils';
|
|
28
29
|
import type { IContent as IPreviewContent } from './utils/previewUtils';
|
|
29
30
|
/**
|
|
30
31
|
* Configuration for creating app helpers
|
|
@@ -47,6 +48,8 @@ export interface AppHelpers<TPage, TArticle, TArticleType, TTag, TPerson, TCusto
|
|
|
47
48
|
getAllTagLinks: (options?: FetchOptions) => Promise<IInternalLink[]>;
|
|
48
49
|
getAllPersonLinks: (options?: FetchOptions) => Promise<IInternalLink[]>;
|
|
49
50
|
getAllArticleTypeLinks: (options?: FetchOptions) => Promise<IArticleTypeLink[]>;
|
|
51
|
+
/** Fetch breadcrumb lookup map for resolving path segments to CMS labels */
|
|
52
|
+
getBreadcrumbLookup: (options?: FetchOptions) => Promise<BreadcrumbLookup>;
|
|
50
53
|
getRelatedArticles: (information: TCollection, contentContext: IContentContext, count: number | undefined, options?: FetchOptions) => Promise<IArticleLink[]>;
|
|
51
54
|
getRelatedPeople: (information: TCollection, contentContext: IContentContext, count: number, options?: FetchOptions) => Promise<IPersonLink[]>;
|
|
52
55
|
getBannersWithErrors: (options?: FetchOptions) => Promise<CmsResponse<IBanner[] | null>>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"app-helpers.d.ts","sourceRoot":"","sources":["../src/app-helpers.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAEH,OAAO,KAAK,EACV,uBAAuB,EACvB,oBAAoB,EACpB,WAAW,EACX,gBAAgB,EAChB,YAAY,EACZ,qBAAqB,EACrB,iBAAiB,EACjB,gBAAgB,EAChB,eAAe,EAChB,MAAM,gCAAgC,CAAC;
|
|
1
|
+
{"version":3,"file":"app-helpers.d.ts","sourceRoot":"","sources":["../src/app-helpers.ts"],"names":[],"mappings":"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"}
|
package/dist/app-helpers.js
CHANGED
|
@@ -23,7 +23,7 @@
|
|
|
23
23
|
* } = helpers;
|
|
24
24
|
* ```
|
|
25
25
|
*/
|
|
26
|
-
import { contentfulAllArticleLinks, contentfulAllArticleTypeLinks, contentfulAllPageLinks, contentfulAllPersonLinks, contentfulAllTagLinks, contentfulArticleRest, contentfulArticleTypeRest, contentfulBannerRest, contentfulCustomTypeRest, contentfulPageRest, contentfulPersonRest, contentfulTagRest, contentfulTemplateRest, } from '@se-studio/contentful-rest-api';
|
|
26
|
+
import { contentfulAllArticleLinks, contentfulAllArticleTypeLinks, contentfulAllPageLinks, contentfulAllPersonLinks, contentfulAllTagLinks, contentfulArticleRest, contentfulArticleTypeRest, contentfulBannerRest, contentfulCustomTypeRest, getBreadcrumbLookup as contentfulGetBreadcrumbLookup, contentfulPageRest, contentfulPersonRest, contentfulTagRest, contentfulTemplateRest, } from '@se-studio/contentful-rest-api';
|
|
27
27
|
import { getRelatedArticles as coreGetRelatedArticles, getRelatedPeople as coreGetRelatedPeople, } from './utils/componentUtils';
|
|
28
28
|
import { coreGetPreviewAssetIdProps, coreGetPreviewFieldIdProps, coreGetPreviewParentProps, } from './utils/previewUtils';
|
|
29
29
|
/**
|
|
@@ -93,6 +93,10 @@ export function createAppHelpers(config) {
|
|
|
93
93
|
getAllPersonLinks: createLinksFetcher(contentfulAllPersonLinks, 'person links'),
|
|
94
94
|
/** Fetch all article type links for static params generation and sitemap building */
|
|
95
95
|
getAllArticleTypeLinks: createLinksFetcher(contentfulAllArticleTypeLinks, 'article type links'),
|
|
96
|
+
getBreadcrumbLookup(options) {
|
|
97
|
+
const fullOptions = buildOptions(options);
|
|
98
|
+
return contentfulGetBreadcrumbLookup(converterContext, getConfig(fullOptions.preview), fullOptions);
|
|
99
|
+
},
|
|
96
100
|
// ============================================================================
|
|
97
101
|
// Related Content Helpers
|
|
98
102
|
// ============================================================================
|
package/dist/app-helpers.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"app-helpers.js","sourceRoot":"","sources":["../src/app-helpers.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAaH,OAAO,EACL,yBAAyB,EACzB,6BAA6B,EAC7B,sBAAsB,EACtB,wBAAwB,EACxB,qBAAqB,EACrB,qBAAqB,EACrB,yBAAyB,EACzB,oBAAoB,EACpB,wBAAwB,EACxB,kBAAkB,EAClB,oBAAoB,EACpB,iBAAiB,EACjB,sBAAsB,GACvB,MAAM,gCAAgC,CAAC;
|
|
1
|
+
{"version":3,"file":"app-helpers.js","sourceRoot":"","sources":["../src/app-helpers.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -73,6 +73,8 @@ export { useClickTracking } from './hooks/useClickTracking';
|
|
|
73
73
|
export { onVisibleToUser, useClientOnly, useDocumentVisible, useFirstVisibleCallback, useFirstVisibleToUser, useVisibleToUser, } from './hooks/visibility';
|
|
74
74
|
export { RTF } from './rtf/rtf';
|
|
75
75
|
export * from './showcase';
|
|
76
|
+
export type { BreadcrumbLookup, BreadcrumbLookupEntry, BreadcrumbSegment, } from './utils/breadcrumbUtils';
|
|
77
|
+
export { normalizeBreadcrumbPath, resolveBreadcrumbSegments, } from './utils/breadcrumbUtils';
|
|
76
78
|
export type { IBuildInformation } from './utils/buildPageMetadata';
|
|
77
79
|
export { buildPageMetadata, calculateTitleAndDescription } from './utils/buildPageMetadata';
|
|
78
80
|
export { cn } from './utils/cn';
|
|
@@ -86,7 +88,7 @@ export type { IContent } from './utils/previewUtils';
|
|
|
86
88
|
export { coreGetPreviewAssetIdProps, coreGetPreviewFieldIdProps, coreGetPreviewParentProps, coreGetPreviewProps, } from './utils/previewUtils';
|
|
87
89
|
export type { GenerateSitemapOptions, SitemapChangeFrequency, SitemapEntry, } from './utils/sitemap';
|
|
88
90
|
export { deduplicateSitemapEntries, generateNextSitemap, sortSitemapEntries, } from './utils/sitemap';
|
|
89
|
-
export type { StructuredDataContext } from './utils/structuredDataUtils';
|
|
91
|
+
export type { BuildStructuredDataContextOptions, StructuredDataContext, } from './utils/structuredDataUtils';
|
|
90
92
|
export { buildStructuredDataContext } from './utils/structuredDataUtils';
|
|
91
93
|
export { UnsupportedWarning } from './utils/UnsupportedWarning';
|
|
92
94
|
export { DEFAULT_ALLOWED_UNUSED, UnusedChecker } from './utils/UnusedChecker';
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -72,6 +72,7 @@ export { onVisibleToUser, useClientOnly, useDocumentVisible, useFirstVisibleCall
|
|
|
72
72
|
export { RTF } from './rtf/rtf';
|
|
73
73
|
// CMS Showcase
|
|
74
74
|
export * from './showcase';
|
|
75
|
+
export { normalizeBreadcrumbPath, resolveBreadcrumbSegments, } from './utils/breadcrumbUtils';
|
|
75
76
|
export { buildPageMetadata, calculateTitleAndDescription } from './utils/buildPageMetadata';
|
|
76
77
|
// Shared Utilities
|
|
77
78
|
export { cn } from './utils/cn';
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AAEH,kDAAkD;AAElD,YAAY;AACZ,OAAO,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,MAAM,+BAA+B,CAAC;AACvF,qBAAqB;AACrB,OAAO,EACL,mBAAmB,EACnB,uBAAuB,EACvB,uBAAuB,GACxB,MAAM,sBAAsB,CAAC;AAM9B,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAGxD,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AASjD,OAAO,EACL,mBAAmB,EACnB,kBAAkB,EAClB,0BAA0B,EAC1B,gBAAgB,EAChB,eAAe,EACf,uBAAuB,GACxB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,aAAa,EAAE,MAAM,mCAAmC,CAAC;AAClE,OAAO,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAS9D,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAQ3D,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAKzD,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AACrD,OAAO,EAAE,mBAAmB,EAAE,MAAM,kCAAkC,CAAC;AACvE,OAAO,EAAE,kBAAkB,EAAE,MAAM,iCAAiC,CAAC;AAQrE,uBAAuB;AACvB,iBAAiB;AACjB,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAC3D,OAAO,EAAE,OAAO,EAAE,MAAM,yBAAyB,CAAC;AAElD,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAC7D,oBAAoB;AACpB,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAE7D,oBAAoB;AACpB,OAAO,EACL,oBAAoB,EACpB,sBAAsB,EACtB,gCAAgC,GACjC,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,MAAM,EAAE,MAAM,8BAA8B,CAAC;AACtD,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAErD,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AACrD,WAAW;AACX,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAC7C,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAC9D,OAAO,EAAE,uBAAuB,EAAE,MAAM,qCAAqC,CAAC;AAC9E,OAAO,EAAE,kBAAkB,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAClF,OAAO,EAAE,OAAO,IAAI,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAC3E,eAAe;AACf,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAC5D,OAAO,EACL,eAAe,EACf,aAAa,EACb,kBAAkB,EAClB,uBAAuB,EACvB,qBAAqB,EACrB,gBAAgB,GACjB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,GAAG,EAAE,MAAM,WAAW,CAAC;AAChC,eAAe;AACf,cAAc,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Breadcrumb resolution utilities.
|
|
3
|
+
* Resolves URL path segments to breadcrumb labels using a CMS lookup map.
|
|
4
|
+
*/
|
|
5
|
+
/**
|
|
6
|
+
* Entry in the breadcrumb lookup map.
|
|
7
|
+
* Maps a normalized path to title and optional override.
|
|
8
|
+
*/
|
|
9
|
+
export interface BreadcrumbLookupEntry {
|
|
10
|
+
title: string;
|
|
11
|
+
breadcrumbLabel?: string | null;
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* Map of normalized path (href with trailing slash) to breadcrumb label info.
|
|
15
|
+
*/
|
|
16
|
+
export type BreadcrumbLookup = Map<string, BreadcrumbLookupEntry>;
|
|
17
|
+
/**
|
|
18
|
+
* A single breadcrumb segment for display.
|
|
19
|
+
*/
|
|
20
|
+
export interface BreadcrumbSegment {
|
|
21
|
+
label: string;
|
|
22
|
+
href?: string;
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Normalizes a URL path for comparison (ensures trailing slash).
|
|
26
|
+
*/
|
|
27
|
+
export declare function normalizeBreadcrumbPath(path: string): string;
|
|
28
|
+
/**
|
|
29
|
+
* Resolves a URL path to breadcrumb segments using a CMS lookup map.
|
|
30
|
+
* For each path segment, looks up the cumulative path in the map and uses
|
|
31
|
+
* breadcrumbLabel if set, otherwise title, otherwise the slugToTitle fallback.
|
|
32
|
+
*
|
|
33
|
+
* @param path - Current page path (e.g. "/locations/new-york/brooklyn-heights")
|
|
34
|
+
* @param lookup - Map from normalized path to { title, breadcrumbLabel }
|
|
35
|
+
* @param slugToTitle - Fallback when path not in lookup (e.g. slug "brooklyn-heights" -> "Brooklyn heights")
|
|
36
|
+
* @returns Array of segments, or null if path is root or empty
|
|
37
|
+
*
|
|
38
|
+
* @example
|
|
39
|
+
* ```ts
|
|
40
|
+
* const segments = resolveBreadcrumbSegments(
|
|
41
|
+
* '/locations/new-york/brooklyn-heights',
|
|
42
|
+
* lookup,
|
|
43
|
+
* (slug) => slug.replace(/-/g, ' ').replace(/\b\w/g, c => c.toUpperCase())
|
|
44
|
+
* );
|
|
45
|
+
* // => [
|
|
46
|
+
* // { label: 'Locations', href: '/locations/' },
|
|
47
|
+
* // { label: 'New York', href: '/locations/new-york/' },
|
|
48
|
+
* // { label: 'Brooklyn heights' }
|
|
49
|
+
* // ]
|
|
50
|
+
* ```
|
|
51
|
+
*/
|
|
52
|
+
export declare function resolveBreadcrumbSegments(path: string, lookup: BreadcrumbLookup, slugToTitle: (slug: string) => string): BreadcrumbSegment[] | null;
|
|
53
|
+
//# sourceMappingURL=breadcrumbUtils.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"breadcrumbUtils.d.ts","sourceRoot":"","sources":["../../src/utils/breadcrumbUtils.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;;GAGG;AACH,MAAM,WAAW,qBAAqB;IACpC,KAAK,EAAE,MAAM,CAAC;IACd,eAAe,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACjC;AAED;;GAEG;AACH,MAAM,MAAM,gBAAgB,GAAG,GAAG,CAAC,MAAM,EAAE,qBAAqB,CAAC,CAAC;AAElE;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAK5D;AAED;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,wBAAgB,yBAAyB,CACvC,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,gBAAgB,EACxB,WAAW,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,GACpC,iBAAiB,EAAE,GAAG,IAAI,CAgC5B"}
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Breadcrumb resolution utilities.
|
|
3
|
+
* Resolves URL path segments to breadcrumb labels using a CMS lookup map.
|
|
4
|
+
*/
|
|
5
|
+
/**
|
|
6
|
+
* Normalizes a URL path for comparison (ensures trailing slash).
|
|
7
|
+
*/
|
|
8
|
+
export function normalizeBreadcrumbPath(path) {
|
|
9
|
+
if (!path)
|
|
10
|
+
return '/';
|
|
11
|
+
const trimmed = path.trim();
|
|
12
|
+
if (!trimmed)
|
|
13
|
+
return '/';
|
|
14
|
+
return trimmed.endsWith('/') ? trimmed : `${trimmed}/`;
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Resolves a URL path to breadcrumb segments using a CMS lookup map.
|
|
18
|
+
* For each path segment, looks up the cumulative path in the map and uses
|
|
19
|
+
* breadcrumbLabel if set, otherwise title, otherwise the slugToTitle fallback.
|
|
20
|
+
*
|
|
21
|
+
* @param path - Current page path (e.g. "/locations/new-york/brooklyn-heights")
|
|
22
|
+
* @param lookup - Map from normalized path to { title, breadcrumbLabel }
|
|
23
|
+
* @param slugToTitle - Fallback when path not in lookup (e.g. slug "brooklyn-heights" -> "Brooklyn heights")
|
|
24
|
+
* @returns Array of segments, or null if path is root or empty
|
|
25
|
+
*
|
|
26
|
+
* @example
|
|
27
|
+
* ```ts
|
|
28
|
+
* const segments = resolveBreadcrumbSegments(
|
|
29
|
+
* '/locations/new-york/brooklyn-heights',
|
|
30
|
+
* lookup,
|
|
31
|
+
* (slug) => slug.replace(/-/g, ' ').replace(/\b\w/g, c => c.toUpperCase())
|
|
32
|
+
* );
|
|
33
|
+
* // => [
|
|
34
|
+
* // { label: 'Locations', href: '/locations/' },
|
|
35
|
+
* // { label: 'New York', href: '/locations/new-york/' },
|
|
36
|
+
* // { label: 'Brooklyn heights' }
|
|
37
|
+
* // ]
|
|
38
|
+
* ```
|
|
39
|
+
*/
|
|
40
|
+
export function resolveBreadcrumbSegments(path, lookup, slugToTitle) {
|
|
41
|
+
const normalized = normalizeBreadcrumbPath(path);
|
|
42
|
+
if (normalized === '/' || normalized === '') {
|
|
43
|
+
return null;
|
|
44
|
+
}
|
|
45
|
+
const segments = normalized.split('/').filter((s) => s.length > 0);
|
|
46
|
+
if (segments.length === 0) {
|
|
47
|
+
return null;
|
|
48
|
+
}
|
|
49
|
+
const result = [];
|
|
50
|
+
let cumulativePath = '/';
|
|
51
|
+
for (let i = 0; i < segments.length; i++) {
|
|
52
|
+
const segment = segments[i];
|
|
53
|
+
if (!segment)
|
|
54
|
+
continue;
|
|
55
|
+
cumulativePath += `${segment}/`;
|
|
56
|
+
const entry = lookup.get(cumulativePath);
|
|
57
|
+
const label = entry?.breadcrumbLabel ?? slugToTitle(segment);
|
|
58
|
+
const isLast = i === segments.length - 1;
|
|
59
|
+
if (isLast) {
|
|
60
|
+
result.push({ label });
|
|
61
|
+
}
|
|
62
|
+
else {
|
|
63
|
+
result.push({ label, href: cumulativePath });
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
return result.length > 0 ? result : null;
|
|
67
|
+
}
|
|
68
|
+
//# sourceMappingURL=breadcrumbUtils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"breadcrumbUtils.js","sourceRoot":"","sources":["../../src/utils/breadcrumbUtils.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAwBH;;GAEG;AACH,MAAM,UAAU,uBAAuB,CAAC,IAAY;IAClD,IAAI,CAAC,IAAI;QAAE,OAAO,GAAG,CAAC;IACtB,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;IAC5B,IAAI,CAAC,OAAO;QAAE,OAAO,GAAG,CAAC;IACzB,OAAO,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,GAAG,CAAC;AACzD,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,MAAM,UAAU,yBAAyB,CACvC,IAAY,EACZ,MAAwB,EACxB,WAAqC;IAErC,MAAM,UAAU,GAAG,uBAAuB,CAAC,IAAI,CAAC,CAAC;IACjD,IAAI,UAAU,KAAK,GAAG,IAAI,UAAU,KAAK,EAAE,EAAE,CAAC;QAC5C,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,QAAQ,GAAG,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IAEnE,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC1B,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,MAAM,GAAwB,EAAE,CAAC;IACvC,IAAI,cAAc,GAAG,GAAG,CAAC;IAEzB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACzC,MAAM,OAAO,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;QAC5B,IAAI,CAAC,OAAO;YAAE,SAAS;QAEvB,cAAc,IAAI,GAAG,OAAO,GAAG,CAAC;QAChC,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;QACzC,MAAM,KAAK,GAAG,KAAK,EAAE,eAAe,IAAI,WAAW,CAAC,OAAO,CAAC,CAAC;QAC7D,MAAM,MAAM,GAAG,CAAC,KAAK,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC;QAEzC,IAAI,MAAM,EAAE,CAAC;YACX,MAAM,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;QACzB,CAAC;aAAM,CAAC;YACN,MAAM,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,cAAc,EAAE,CAAC,CAAC;QAC/C,CAAC;IACH,CAAC;IAED,OAAO,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC;AAC3C,CAAC"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type { IBaseModel } from '@se-studio/core-data-types';
|
|
2
|
+
import type { BreadcrumbSegment } from './breadcrumbUtils';
|
|
2
3
|
import type { IBuildInformation } from './buildPageMetadata';
|
|
3
4
|
/**
|
|
4
5
|
* @fileoverview Structured Data Context Builder
|
|
@@ -98,6 +99,14 @@ export interface StructuredDataContext {
|
|
|
98
99
|
};
|
|
99
100
|
[key: string]: unknown;
|
|
100
101
|
}
|
|
102
|
+
/**
|
|
103
|
+
* Options for buildStructuredDataContext.
|
|
104
|
+
*/
|
|
105
|
+
export interface BuildStructuredDataContextOptions {
|
|
106
|
+
/** Pre-resolved breadcrumb segments from resolveBreadcrumbSegments. When provided, used for Schema.org instead of slug-derived labels. */
|
|
107
|
+
resolvedBreadcrumbs?: BreadcrumbSegment[] | null;
|
|
108
|
+
[key: string]: unknown;
|
|
109
|
+
}
|
|
101
110
|
/**
|
|
102
111
|
* Builds a minimal context object for structured data templates.
|
|
103
112
|
*
|
|
@@ -111,7 +120,7 @@ export interface StructuredDataContext {
|
|
|
111
120
|
*
|
|
112
121
|
* @param model - The CMS content model (Page, Article, Person, etc.)
|
|
113
122
|
* @param config - Build configuration (baseUrl and customerName)
|
|
114
|
-
* @param
|
|
123
|
+
* @param extraContextOrOptions - Optional extra context or options (resolvedBreadcrumbs)
|
|
115
124
|
*/
|
|
116
|
-
export declare function buildStructuredDataContext(model: IBaseModel, config: IBuildInformation,
|
|
125
|
+
export declare function buildStructuredDataContext(model: IBaseModel, config: IBuildInformation, extraContextOrOptions?: Record<string, unknown> | BuildStructuredDataContextOptions): StructuredDataContext;
|
|
117
126
|
//# sourceMappingURL=structuredDataUtils.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"structuredDataUtils.d.ts","sourceRoot":"","sources":["../../src/utils/structuredDataUtils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAgB,UAAU,EAAe,MAAM,4BAA4B,CAAC;AACxF,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAE7D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwDG;AAEH;;;;;;;;;GASG;AACH,MAAM,WAAW,qBAAqB;IAEpC,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IAGnB,IAAI,EAAE;QACJ,KAAK,EAAE,MAAM,CAAC;QACd,WAAW,EAAE,MAAM,CAAC;QACpB,IAAI,EAAE,MAAM,CAAC;QACb,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,WAAW,EAAE,KAAK,CAAC;YAAE,QAAQ,EAAE,MAAM,CAAC;YAAC,IAAI,EAAE,MAAM,CAAC;YAAC,GAAG,EAAE,MAAM,CAAC;YAAC,IAAI,EAAE,OAAO,CAAA;SAAE,CAAC,CAAC;KACpF,CAAC;IAGF,OAAO,CAAC,EAAE;QACR,KAAK,EAAE,MAAM,CAAC;QACd,WAAW,EAAE,MAAM,CAAC;QACpB,aAAa,EAAE,MAAM,CAAC;QACtB,YAAY,EAAE,MAAM,CAAC;QACrB,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;KACnB,CAAC;IAGF,MAAM,CAAC,EAAE;QACP,IAAI,EAAE,MAAM,CAAC;QACb,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;KACnB,CAAC;IAGF,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;
|
|
1
|
+
{"version":3,"file":"structuredDataUtils.d.ts","sourceRoot":"","sources":["../../src/utils/structuredDataUtils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAgB,UAAU,EAAe,MAAM,4BAA4B,CAAC;AACxF,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAC3D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAE7D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwDG;AAEH;;;;;;;;;GASG;AACH,MAAM,WAAW,qBAAqB;IAEpC,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IAGnB,IAAI,EAAE;QACJ,KAAK,EAAE,MAAM,CAAC;QACd,WAAW,EAAE,MAAM,CAAC;QACpB,IAAI,EAAE,MAAM,CAAC;QACb,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,WAAW,EAAE,KAAK,CAAC;YAAE,QAAQ,EAAE,MAAM,CAAC;YAAC,IAAI,EAAE,MAAM,CAAC;YAAC,GAAG,EAAE,MAAM,CAAC;YAAC,IAAI,EAAE,OAAO,CAAA;SAAE,CAAC,CAAC;KACpF,CAAC;IAGF,OAAO,CAAC,EAAE;QACR,KAAK,EAAE,MAAM,CAAC;QACd,WAAW,EAAE,MAAM,CAAC;QACpB,aAAa,EAAE,MAAM,CAAC;QACtB,YAAY,EAAE,MAAM,CAAC;QACrB,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;KACnB,CAAC;IAGF,MAAM,CAAC,EAAE;QACP,IAAI,EAAE,MAAM,CAAC;QACb,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;KACnB,CAAC;IAGF,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AA0FD;;GAEG;AACH,MAAM,WAAW,iCAAiC;IAChD,0IAA0I;IAC1I,mBAAmB,CAAC,EAAE,iBAAiB,EAAE,GAAG,IAAI,CAAC;IACjD,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,0BAA0B,CACxC,KAAK,EAAE,UAAU,EACjB,MAAM,EAAE,iBAAiB,EACzB,qBAAqB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,iCAAiC,GAClF,qBAAqB,CAmEvB"}
|
|
@@ -36,6 +36,29 @@ function buildBreadcrumbs(path, baseUrl, currentTitle, breadcrumbTitleOverride)
|
|
|
36
36
|
});
|
|
37
37
|
return breadcrumbs;
|
|
38
38
|
}
|
|
39
|
+
/**
|
|
40
|
+
* Converts pre-resolved breadcrumb segments to Schema.org format.
|
|
41
|
+
*
|
|
42
|
+
* @param segments - Pre-resolved segments from resolveBreadcrumbSegments
|
|
43
|
+
* @param baseUrl - Base URL for the site
|
|
44
|
+
* @param currentPath - Full path of current page (for last segment URL)
|
|
45
|
+
*/
|
|
46
|
+
function segmentsToStructuredData(segments, baseUrl, currentPath) {
|
|
47
|
+
const breadcrumbs = [
|
|
48
|
+
{ position: 1, name: 'Home', url: `${baseUrl}/`, last: false },
|
|
49
|
+
];
|
|
50
|
+
segments.forEach((seg, index) => {
|
|
51
|
+
const isLast = index === segments.length - 1;
|
|
52
|
+
const url = isLast ? `${baseUrl}${currentPath}` : seg.href ? `${baseUrl}${seg.href}` : '';
|
|
53
|
+
breadcrumbs.push({
|
|
54
|
+
position: index + 2,
|
|
55
|
+
name: seg.label,
|
|
56
|
+
url: url || `${baseUrl}/`,
|
|
57
|
+
last: isLast,
|
|
58
|
+
});
|
|
59
|
+
});
|
|
60
|
+
return breadcrumbs;
|
|
61
|
+
}
|
|
39
62
|
/**
|
|
40
63
|
* Builds a minimal context object for structured data templates.
|
|
41
64
|
*
|
|
@@ -49,14 +72,21 @@ function buildBreadcrumbs(path, baseUrl, currentTitle, breadcrumbTitleOverride)
|
|
|
49
72
|
*
|
|
50
73
|
* @param model - The CMS content model (Page, Article, Person, etc.)
|
|
51
74
|
* @param config - Build configuration (baseUrl and customerName)
|
|
52
|
-
* @param
|
|
75
|
+
* @param extraContextOrOptions - Optional extra context or options (resolvedBreadcrumbs)
|
|
53
76
|
*/
|
|
54
|
-
export function buildStructuredDataContext(model, config,
|
|
77
|
+
export function buildStructuredDataContext(model, config, extraContextOrOptions) {
|
|
55
78
|
const { baseUrl } = config;
|
|
56
79
|
const path = model.href;
|
|
57
80
|
const currentUrl = `${baseUrl}${path}`;
|
|
58
81
|
const featuredImageId = model.featuredImage?.id;
|
|
59
82
|
const imageUrl = featuredImageId ? `${baseUrl}/og/${featuredImageId}.jpg` : undefined;
|
|
83
|
+
const opts = extraContextOrOptions;
|
|
84
|
+
const resolvedBreadcrumbs = opts?.resolvedBreadcrumbs;
|
|
85
|
+
const extraContext = { ...opts };
|
|
86
|
+
delete extraContext.resolvedBreadcrumbs;
|
|
87
|
+
const breadcrumbs = resolvedBreadcrumbs && resolvedBreadcrumbs.length > 0
|
|
88
|
+
? segmentsToStructuredData(resolvedBreadcrumbs, baseUrl, path)
|
|
89
|
+
: buildBreadcrumbs(path, baseUrl, model.title, model.breadcrumbTitle);
|
|
60
90
|
// Base context with page information
|
|
61
91
|
const context = {
|
|
62
92
|
baseUrl: `${baseUrl}/`,
|
|
@@ -66,7 +96,7 @@ export function buildStructuredDataContext(model, config, extraContext) {
|
|
|
66
96
|
description: model.description,
|
|
67
97
|
slug: model.slug,
|
|
68
98
|
imageUrl,
|
|
69
|
-
breadcrumbs
|
|
99
|
+
breadcrumbs,
|
|
70
100
|
},
|
|
71
101
|
...extraContext,
|
|
72
102
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"structuredDataUtils.js","sourceRoot":"","sources":["../../src/utils/structuredDataUtils.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"structuredDataUtils.js","sourceRoot":"","sources":["../../src/utils/structuredDataUtils.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@se-studio/core-ui",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.60",
|
|
4
4
|
"description": "Shared React UI component library with Tailwind CSS v4 for SE Studio applications",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -59,13 +59,13 @@
|
|
|
59
59
|
"html-entities": "^2.6.0",
|
|
60
60
|
"mustache": "4.2.0",
|
|
61
61
|
"tailwind-merge": "^3.4.0",
|
|
62
|
-
"@se-studio/contentful-rest-api": "1.0.
|
|
63
|
-
"@se-studio/core-data-types": "1.0.
|
|
62
|
+
"@se-studio/contentful-rest-api": "1.0.60",
|
|
63
|
+
"@se-studio/core-data-types": "1.0.60"
|
|
64
64
|
},
|
|
65
65
|
"devDependencies": {
|
|
66
|
-
"@biomejs/biome": "^2.3.
|
|
67
|
-
"@types/node": "^22.19.
|
|
68
|
-
"@types/react": "^19.2.
|
|
66
|
+
"@biomejs/biome": "^2.3.14",
|
|
67
|
+
"@types/node": "^22.19.8",
|
|
68
|
+
"@types/react": "^19.2.11",
|
|
69
69
|
"@types/react-dom": "^19.2.3",
|
|
70
70
|
"next": "^15.5.11",
|
|
71
71
|
"typescript": "^5.9.3"
|