@se-studio/core-ui 1.0.179 → 1.0.182
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 +43 -0
- package/dist/components/StructuredData.d.ts +1 -1
- package/dist/components/StructuredData.d.ts.map +1 -1
- package/dist/components/StructuredData.js +3 -16
- package/dist/components/StructuredData.js.map +1 -1
- package/dist/utils/componentUtils.d.ts.map +1 -1
- package/dist/utils/componentUtils.js +12 -2
- package/dist/utils/componentUtils.js.map +1 -1
- package/dist/utils/structuredDataUtils.d.ts +17 -1
- package/dist/utils/structuredDataUtils.d.ts.map +1 -1
- package/dist/utils/structuredDataUtils.js +56 -2
- package/dist/utils/structuredDataUtils.js.map +1 -1
- package/package.json +3 -3
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,48 @@
|
|
|
1
1
|
# @se-studio/core-ui
|
|
2
2
|
|
|
3
|
+
## 1.0.182
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- Bulk version bump: patch for all packages
|
|
8
|
+
- Updated dependencies
|
|
9
|
+
- @se-studio/contentful-rest-api@1.1.1
|
|
10
|
+
- @se-studio/core-data-types@1.1.1
|
|
11
|
+
|
|
12
|
+
## 1.0.181
|
|
13
|
+
|
|
14
|
+
### Patch Changes
|
|
15
|
+
|
|
16
|
+
- **StructuredData:** Normalize CMS JSON-LD so crawlers receive valid merged output ([#49](https://github.com/Something-Else-Studio/se-core-product/issues/49)).
|
|
17
|
+
|
|
18
|
+
- Flatten each template’s inner `@graph` into one top-level `@graph` when multiple schemas are linked (fixes nested `@graph` wrappers).
|
|
19
|
+
- Unwrap single-template `{ @context, @graph: [entity] }` output to a bare entity object.
|
|
20
|
+
- Strip redundant `@context` from the document and from each node inside `@graph`.
|
|
21
|
+
|
|
22
|
+
Helpers: `graphNodesFromParsed`, `buildMergedStructuredDataJson` in `structuredDataUtils.ts`.
|
|
23
|
+
|
|
24
|
+
## 1.0.180
|
|
25
|
+
|
|
26
|
+
### Patch Changes
|
|
27
|
+
|
|
28
|
+
- Add ordered `article.authors` CMS field support (first author = primary) with shared helpers in `@se-studio/core-data-types`: `getArticleAuthors`, `getPrimaryArticleAuthor`, `formatArticleAuthorNames`, and `normalizeResolvedArticleAuthors`. Legacy single `author` remains populated as `authors[0]` during migration.
|
|
29
|
+
|
|
30
|
+
**@se-studio/contentful-rest-api** — Resolve and normalize `authors` on full articles and article links; include `fields.authors` in link-only fetches. Related-articles scoring matches any listed co-author.
|
|
31
|
+
|
|
32
|
+
**@se-studio/core-ui** — Structured data context exposes multi-author JSON-LD (`article.authors`); related-articles fallback uses all article authors. Omits authors without a display name.
|
|
33
|
+
|
|
34
|
+
**@se-studio/search** / **@se-studio/markdown-renderer** — Index and export comma-separated multi-author bylines via `formatArticleAuthorNames`.
|
|
35
|
+
|
|
36
|
+
**@se-studio/contentful-cms** — Fetch and audit entry trees traverse `authors` links; shared `linkedEntryFields` module deduplicates traversal logic.
|
|
37
|
+
|
|
38
|
+
**@se-studio/skills** — Add `contentful-cms-sync-schema` skill; document multi-author Schema.org variables.
|
|
39
|
+
|
|
40
|
+
Run migration `scripts/migrations/17-add-article-authors.js` on live spaces after deploying packages.
|
|
41
|
+
|
|
42
|
+
- Updated dependencies
|
|
43
|
+
- @se-studio/core-data-types@1.1.0
|
|
44
|
+
- @se-studio/contentful-rest-api@1.1.0
|
|
45
|
+
|
|
3
46
|
## 1.0.179
|
|
4
47
|
|
|
5
48
|
### Patch Changes
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { ISchema } from '@se-studio/core-data-types';
|
|
2
2
|
import type React from 'react';
|
|
3
|
-
import type
|
|
3
|
+
import { type StructuredDataContext } from '../utils/structuredDataUtils';
|
|
4
4
|
export interface StructuredDataProps {
|
|
5
5
|
/** The schemas to render */
|
|
6
6
|
schemas?: ReadonlyArray<ISchema>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"StructuredData.d.ts","sourceRoot":"","sources":["../../src/components/StructuredData.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAC;AAE1D,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"StructuredData.d.ts","sourceRoot":"","sources":["../../src/components/StructuredData.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAC;AAE1D,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAEL,KAAK,qBAAqB,EAC3B,MAAM,8BAA8B,CAAC;AAyBtC,MAAM,WAAW,mBAAmB;IAClC,4BAA4B;IAC5B,OAAO,CAAC,EAAE,aAAa,CAAC,OAAO,CAAC,CAAC;IACjC,iDAAiD;IACjD,OAAO,EAAE,qBAAqB,CAAC;CAChC;AAwCD;;;;;;;;GAQG;AACH,eAAO,MAAM,cAAc,EAAE,KAAK,CAAC,EAAE,CAAC,mBAAmB,CA+DxD,CAAC"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
2
|
import Mustache from 'mustache';
|
|
3
|
+
import { buildMergedStructuredDataJson, } from '../utils/structuredDataUtils';
|
|
3
4
|
const ESCAPE_MAP = {
|
|
4
5
|
'"': '\\"',
|
|
5
6
|
'\\': '\\\\',
|
|
@@ -104,22 +105,8 @@ export const StructuredData = ({ schemas, context }) => {
|
|
|
104
105
|
if (validObjects.length === 0) {
|
|
105
106
|
return null;
|
|
106
107
|
}
|
|
107
|
-
// 3. Construct the final output
|
|
108
|
-
|
|
109
|
-
// Schema.org recommends using @graph for connectivity
|
|
110
|
-
const finalJson = validObjects.length === 1
|
|
111
|
-
? validObjects[0]
|
|
112
|
-
: {
|
|
113
|
-
'@context': 'https://schema.org',
|
|
114
|
-
'@graph': validObjects.map((obj) => {
|
|
115
|
-
// Remove redundant @context from objects within the graph
|
|
116
|
-
if (typeof obj === 'object' && obj !== null && '@context' in obj) {
|
|
117
|
-
const { '@context': _, ...rest } = obj;
|
|
118
|
-
return rest;
|
|
119
|
-
}
|
|
120
|
-
return obj;
|
|
121
|
-
}),
|
|
122
|
-
};
|
|
108
|
+
// 3. Construct the final output (flatten CMS @graph wrappers; single entity → bare object)
|
|
109
|
+
const finalJson = buildMergedStructuredDataJson(validObjects);
|
|
123
110
|
// 4. Clean the output (remove double slashes in URLs)
|
|
124
111
|
const cleanedJson = deepClean(finalJson);
|
|
125
112
|
return (_jsx("script", { type: "application/ld+json",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"StructuredData.js","sourceRoot":"","sources":["../../src/components/StructuredData.tsx"],"names":[],"mappings":";AACA,OAAO,QAAQ,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"StructuredData.js","sourceRoot":"","sources":["../../src/components/StructuredData.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"componentUtils.d.ts","sourceRoot":"","sources":["../../src/utils/componentUtils.ts"],"names":[],"mappings":"AAAA,OAAO,aAAa,CAAC;AAErB,OAAO,EACL,KAAK,oBAAoB,EAEzB,KAAK,WAAW,EAChB,KAAK,gBAAgB,EAGrB,KAAK,YAAY,EAEjB,KAAK,qBAAqB,EAE3B,MAAM,gCAAgC,CAAC;AACxC,OAAO,EACL,KAAK,qBAAqB,
|
|
1
|
+
{"version":3,"file":"componentUtils.d.ts","sourceRoot":"","sources":["../../src/utils/componentUtils.ts"],"names":[],"mappings":"AAAA,OAAO,aAAa,CAAC;AAErB,OAAO,EACL,KAAK,oBAAoB,EAEzB,KAAK,WAAW,EAChB,KAAK,gBAAgB,EAGrB,KAAK,YAAY,EAEjB,KAAK,qBAAqB,EAE3B,MAAM,gCAAgC,CAAC;AACxC,OAAO,EACL,KAAK,qBAAqB,EAE1B,KAAK,YAAY,EAEjB,KAAK,eAAe,EACpB,KAAK,WAAW,EAKjB,MAAM,4BAA4B,CAAC;AAgHpC;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAsB,kBAAkB,CAAC,CAAC,SAAS,qBAAqB,EACtE,WAAW,EAAE,qBAAqB,CAAC,CAAC,CAAC,EACrC,cAAc,EAAE,eAAe,EAC/B,gBAAgB,EAAE,oBAAoB,EACtC,MAAM,EAAE,gBAAgB,EACxB,KAAK,EAAE,MAAM,GAAG,SAAS,EACzB,OAAO,EAAE,YAAY,GACpB,OAAO,CAAC,WAAW,CAAC,YAAY,EAAE,CAAC,CAAC,CAmFtC;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAsB,gBAAgB,CAAC,CAAC,SAAS,qBAAqB,EACpE,WAAW,EAAE,qBAAqB,CAAC,CAAC,CAAC,EACrC,cAAc,EAAE,eAAe,EAC/B,gBAAgB,EAAE,oBAAoB,EACtC,MAAM,EAAE,gBAAgB,EACxB,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,YAAY,GACpB,OAAO,CAAC,WAAW,CAAC,WAAW,EAAE,CAAC,CAAC,CAsCrC"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import 'server-only';
|
|
2
2
|
import { contentfulAllArticleLinks, contentfulAllPersonLinks, filterRelatedArticles, } from '@se-studio/contentful-rest-api';
|
|
3
|
-
import { isArticleLink, isArticleTypeLink, isPersonLink, isTagLink, } from '@se-studio/core-data-types';
|
|
3
|
+
import { getArticleAuthors, isArticleLink, isArticleTypeLink, isPersonLink, isTagLink, } from '@se-studio/core-data-types';
|
|
4
4
|
/**
|
|
5
5
|
* Extract filter criteria (article types, tags, authors) from collection links and contents.
|
|
6
6
|
* Internal helper for getRelatedArticles.
|
|
@@ -42,9 +42,19 @@ function applyFallbackCriteria(criteria, contentContext) {
|
|
|
42
42
|
}
|
|
43
43
|
if (criteria.authorIds.length === 0) {
|
|
44
44
|
const person = contentContext.pageContext?.person;
|
|
45
|
-
if (person) {
|
|
45
|
+
if (person?.id) {
|
|
46
46
|
criteria.authorIds.push(person.id);
|
|
47
47
|
}
|
|
48
|
+
else {
|
|
49
|
+
const article = contentContext.pageContext?.article;
|
|
50
|
+
if (article) {
|
|
51
|
+
for (const author of getArticleAuthors(article)) {
|
|
52
|
+
if (author.id) {
|
|
53
|
+
criteria.authorIds.push(author.id);
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
}
|
|
48
58
|
}
|
|
49
59
|
if (criteria.tagIds.length === 0) {
|
|
50
60
|
const tag = contentContext.pageContext?.tag;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"componentUtils.js","sourceRoot":"","sources":["../../src/utils/componentUtils.ts"],"names":[],"mappings":"AAAA,OAAO,aAAa,CAAC;AAErB,OAAO,EAKL,yBAAyB,EACzB,wBAAwB,EAExB,qBAAqB,GAGtB,MAAM,gCAAgC,CAAC;AACxC,OAAO,
|
|
1
|
+
{"version":3,"file":"componentUtils.js","sourceRoot":"","sources":["../../src/utils/componentUtils.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type
|
|
1
|
+
import { type IBaseModel } from '@se-studio/core-data-types';
|
|
2
2
|
import type { BreadcrumbSegment } from './breadcrumbUtils';
|
|
3
3
|
import type { IBuildInformation } from './buildPageMetadata';
|
|
4
4
|
/**
|
|
@@ -93,6 +93,11 @@ export interface StructuredDataContext {
|
|
|
93
93
|
dateModified: string;
|
|
94
94
|
authorName?: string;
|
|
95
95
|
authorUrl?: string;
|
|
96
|
+
/** All authors in order (for multi-author JSON-LD). */
|
|
97
|
+
authors?: Array<{
|
|
98
|
+
name: string;
|
|
99
|
+
url?: string;
|
|
100
|
+
}>;
|
|
96
101
|
imageUrl?: string;
|
|
97
102
|
};
|
|
98
103
|
person?: {
|
|
@@ -102,6 +107,17 @@ export interface StructuredDataContext {
|
|
|
102
107
|
};
|
|
103
108
|
[key: string]: unknown;
|
|
104
109
|
}
|
|
110
|
+
/**
|
|
111
|
+
* Extracts entity nodes from a parsed JSON-LD object for merging into a flat @graph.
|
|
112
|
+
* CMS templates often render as `{ @context, @graph: [entity] }`; merging multiple
|
|
113
|
+
* templates must flatten inner @graph arrays, not nest them.
|
|
114
|
+
*/
|
|
115
|
+
export declare function graphNodesFromParsed(obj: unknown): unknown[];
|
|
116
|
+
/**
|
|
117
|
+
* Builds the final JSON-LD object from one or more parsed schema templates.
|
|
118
|
+
* Single entity → output the entity; multiple → one document with a flat @graph.
|
|
119
|
+
*/
|
|
120
|
+
export declare function buildMergedStructuredDataJson(parsedSchemas: unknown[]): unknown;
|
|
105
121
|
/**
|
|
106
122
|
* Options for buildStructuredDataContext.
|
|
107
123
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"structuredDataUtils.d.ts","sourceRoot":"","sources":["../../src/utils/structuredDataUtils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"structuredDataUtils.d.ts","sourceRoot":"","sources":["../../src/utils/structuredDataUtils.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,KAAK,UAAU,EAEhB,MAAM,4BAA4B,CAAC;AACpC,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAC3D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAE7D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2DG;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,CAAC,EAAE,MAAM,CAAC;YAAC,IAAI,EAAE,OAAO,CAAA;SAAE,CAAC,CAAC;KACrF,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,uDAAuD;QACvD,OAAO,CAAC,EAAE,KAAK,CAAC;YAAE,IAAI,EAAE,MAAM,CAAC;YAAC,GAAG,CAAC,EAAE,MAAM,CAAA;SAAE,CAAC,CAAC;QAChD,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;AAUD;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO,EAAE,CAY5D;AAED;;;GAGG;AACH,wBAAgB,6BAA6B,CAAC,aAAa,EAAE,OAAO,EAAE,GAAG,OAAO,CAS/E;AAyGD;;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,CAiFvB"}
|
|
@@ -1,3 +1,43 @@
|
|
|
1
|
+
import { getArticleAuthors, getPrimaryArticleAuthor, } from '@se-studio/core-data-types';
|
|
2
|
+
function stripDocumentContext(node) {
|
|
3
|
+
if (typeof node !== 'object' || node === null || !('@context' in node)) {
|
|
4
|
+
return node;
|
|
5
|
+
}
|
|
6
|
+
const { '@context': _, ...rest } = node;
|
|
7
|
+
return rest;
|
|
8
|
+
}
|
|
9
|
+
/**
|
|
10
|
+
* Extracts entity nodes from a parsed JSON-LD object for merging into a flat @graph.
|
|
11
|
+
* CMS templates often render as `{ @context, @graph: [entity] }`; merging multiple
|
|
12
|
+
* templates must flatten inner @graph arrays, not nest them.
|
|
13
|
+
*/
|
|
14
|
+
export function graphNodesFromParsed(obj) {
|
|
15
|
+
if (typeof obj !== 'object' || obj === null) {
|
|
16
|
+
return [obj];
|
|
17
|
+
}
|
|
18
|
+
const record = obj;
|
|
19
|
+
if (Array.isArray(record['@graph'])) {
|
|
20
|
+
return record['@graph'].map(stripDocumentContext);
|
|
21
|
+
}
|
|
22
|
+
if ('@context' in record) {
|
|
23
|
+
return [stripDocumentContext(record)];
|
|
24
|
+
}
|
|
25
|
+
return [obj];
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Builds the final JSON-LD object from one or more parsed schema templates.
|
|
29
|
+
* Single entity → output the entity; multiple → one document with a flat @graph.
|
|
30
|
+
*/
|
|
31
|
+
export function buildMergedStructuredDataJson(parsedSchemas) {
|
|
32
|
+
const nodes = parsedSchemas.flatMap(graphNodesFromParsed);
|
|
33
|
+
if (nodes.length === 1) {
|
|
34
|
+
return nodes[0];
|
|
35
|
+
}
|
|
36
|
+
return {
|
|
37
|
+
'@context': 'https://schema.org',
|
|
38
|
+
'@graph': nodes,
|
|
39
|
+
};
|
|
40
|
+
}
|
|
1
41
|
/**
|
|
2
42
|
* Helper to build the breadcrumbs array for structured data.
|
|
3
43
|
* Splits the path and creates breadcrumb entries with positions.
|
|
@@ -121,6 +161,19 @@ export function buildStructuredDataContext(model, config, extraContextOrOptions)
|
|
|
121
161
|
// Article-specific context
|
|
122
162
|
if (model.type === 'Article') {
|
|
123
163
|
const article = model;
|
|
164
|
+
const primaryAuthor = getPrimaryArticleAuthor(article);
|
|
165
|
+
const primaryAuthorName = primaryAuthor?.name ?? primaryAuthor?.title;
|
|
166
|
+
const authors = getArticleAuthors(article).flatMap((person) => {
|
|
167
|
+
const name = person.name ?? person.title;
|
|
168
|
+
if (!name)
|
|
169
|
+
return [];
|
|
170
|
+
return [
|
|
171
|
+
{
|
|
172
|
+
name,
|
|
173
|
+
url: person.href ? `${baseUrl}${person.href}` : undefined,
|
|
174
|
+
},
|
|
175
|
+
];
|
|
176
|
+
});
|
|
124
177
|
context.article = {
|
|
125
178
|
title: article.title,
|
|
126
179
|
description: article.description,
|
|
@@ -135,8 +188,9 @@ export function buildStructuredDataContext(model, config, extraContextOrOptions)
|
|
|
135
188
|
? new Date(article.date).toISOString()
|
|
136
189
|
: new Date().toISOString(),
|
|
137
190
|
imageUrl,
|
|
138
|
-
authorName:
|
|
139
|
-
authorUrl:
|
|
191
|
+
authorName: primaryAuthorName,
|
|
192
|
+
authorUrl: primaryAuthor?.href ? `${baseUrl}${primaryAuthor.href}` : undefined,
|
|
193
|
+
authors,
|
|
140
194
|
};
|
|
141
195
|
}
|
|
142
196
|
// Person-specific context
|
|
@@ -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.182",
|
|
4
4
|
"description": "Shared React UI component library with Tailwind CSS v4 for SE Studio applications",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -75,8 +75,8 @@
|
|
|
75
75
|
"mustache": "4.2.0",
|
|
76
76
|
"server-only": "0.0.1",
|
|
77
77
|
"tailwind-merge": "^3.6.0",
|
|
78
|
-
"@se-studio/contentful-rest-api": "1.
|
|
79
|
-
"@se-studio/core-data-types": "1.
|
|
78
|
+
"@se-studio/contentful-rest-api": "1.1.1",
|
|
79
|
+
"@se-studio/core-data-types": "1.1.1"
|
|
80
80
|
},
|
|
81
81
|
"devDependencies": {
|
|
82
82
|
"@biomejs/biome": "^2.4.16",
|