@opensite/ui 3.12.1 → 3.13.0
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/dist/registry.cjs
CHANGED
|
@@ -45786,7 +45786,13 @@ function TestimonialsGridAddReview({
|
|
|
45786
45786
|
const avatarSrc = getAvatarSrc(testimonial);
|
|
45787
45787
|
return /* @__PURE__ */ jsxRuntime.jsx(Card, { className: cardClassName, children: /* @__PURE__ */ jsxRuntime.jsx(CardContent, { className: "p-6", children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-col items-start gap-12 justify-between", children: [
|
|
45788
45788
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-col items-start gap-4", children: [
|
|
45789
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
45789
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
45790
|
+
StarRating,
|
|
45791
|
+
{
|
|
45792
|
+
rating: typeof testimonial.rating === "number" ? testimonial.rating : 5,
|
|
45793
|
+
size: 20
|
|
45794
|
+
}
|
|
45795
|
+
),
|
|
45790
45796
|
testimonial.quote && (typeof testimonial.quote === "string" ? /* @__PURE__ */ jsxRuntime.jsxs(
|
|
45791
45797
|
"p",
|
|
45792
45798
|
{
|
|
@@ -46748,7 +46754,13 @@ function TestimonialsStatsHeader({
|
|
|
46748
46754
|
),
|
|
46749
46755
|
children: /* @__PURE__ */ jsxRuntime.jsx(CardContent, { className: "p-6", children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-col items-start gap-12 justify-between", children: [
|
|
46750
46756
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-col items-start gap-4", children: [
|
|
46751
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
46757
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
46758
|
+
StarRating,
|
|
46759
|
+
{
|
|
46760
|
+
rating: typeof testimonial.rating === "number" ? testimonial.rating : 5,
|
|
46761
|
+
size: 20
|
|
46762
|
+
}
|
|
46763
|
+
),
|
|
46752
46764
|
testimonial.quote && (typeof testimonial.quote === "string" ? /* @__PURE__ */ jsxRuntime.jsxs(
|
|
46753
46765
|
"p",
|
|
46754
46766
|
{
|
|
@@ -113896,6 +113908,7 @@ var NAVBAR_BLOCK_CONTRACTS = {
|
|
|
113896
113908
|
};
|
|
113897
113909
|
var TESTIMONIALS_EXAMPLE_IMAGE_URL = "https://cdn.ing/assets/i/r/308196/g6bbn73f7gxal82uu49m9prfd0u8/workplace-in-cafe.webp";
|
|
113898
113910
|
var TESTIMONIALS_MEDIA_NOTE = "All media src values must be absolute URLs to real assets; relative paths and placeholder media variables are not allowed.";
|
|
113911
|
+
var TESTIMONIALS_FEED_NOTE = "Dynamic feeds (Phase 2): this block can carry a block-level dataSource of type 'testimonials_feed', hydrated at routing-build time into TestimonialItem[]. Bind target (dataSource.bindTo) defaults to 'testimonials'; use 'reviews' for testimonials-list-verified, testimonials-images-helpful, and testimonials-grid-add-review; single-item 'testimonial' (an object \u2014 the hydrator binds items[0]) for testimonials-company-logo, testimonials-large-quote, and testimonials-split-image. Wire mapping: content -> quote, reviewer_name -> author, rating -> rating (only when numeric; never fabricate), profile_url + platform -> linkConfig. Avatars are intentionally NOT mapped in Phase 2 because review avatar URLs are hotlinked and rot-prone. The reviews_or_testimonials capability is satisfied by live reviews OR authored static quotes, so octane does not hard-drop testimonials blocks on the capability alone.";
|
|
113899
113912
|
var testimonialsCapabilities = (...capabilities) => capabilities;
|
|
113900
113913
|
var img = TESTIMONIALS_EXAMPLE_IMAGE_URL;
|
|
113901
113914
|
var TESTIMONIALS_BLOCK_CONTRACTS = {
|
|
@@ -115503,6 +115516,9 @@ var TESTIMONIALS_BLOCK_CONTRACTS = {
|
|
|
115503
115516
|
}
|
|
115504
115517
|
}
|
|
115505
115518
|
};
|
|
115519
|
+
for (const contract of Object.values(TESTIMONIALS_BLOCK_CONTRACTS)) {
|
|
115520
|
+
contract.importantUsageNotes = contract.importantUsageNotes ? `${contract.importantUsageNotes} ${TESTIMONIALS_FEED_NOTE}` : TESTIMONIALS_FEED_NOTE;
|
|
115521
|
+
}
|
|
115506
115522
|
var FEATURES_EXAMPLE_IMAGE_URL = "https://cdn.ing/assets/i/r/308196/g6bbn73f7gxal82uu49m9prfd0u8/workplace-in-cafe.webp";
|
|
115507
115523
|
var FEATURES_MEDIA_NOTE = "All media src values must be absolute URLs to real assets; relative paths and placeholder media variables are not allowed.";
|
|
115508
115524
|
var featuresCapabilities = (...capabilities) => capabilities;
|
|
@@ -135807,7 +135823,7 @@ function createBuilderContractBundle({
|
|
|
135807
135823
|
symbolic: true,
|
|
135808
135824
|
hydrationOwner: "dashtrack-ai",
|
|
135809
135825
|
hydrationPhase: "routing-build",
|
|
135810
|
-
canonicalPayloadExpectation: "Keep testimonials feed requests symbolic in canonical page JSON until routing-build hydration resolves them.",
|
|
135826
|
+
canonicalPayloadExpectation: "Keep testimonials feed requests symbolic in canonical page JSON until routing-build hydration resolves them into TestimonialItem[] (or a single TestimonialItem for single-bind blocks). Wire mapping: content -> quote, reviewer_name -> author, rating -> rating (only when numeric; never fabricated), profile_url + platform -> linkConfig; avatars are intentionally left unmapped in Phase 2 because review avatar URLs are hotlinked and rot-prone.",
|
|
135811
135827
|
requiredFields: ["type"],
|
|
135812
135828
|
optionalFields: ["limit", "minRating", "platforms", "locationId", "bindTo"]
|
|
135813
135829
|
},
|
package/dist/registry.js
CHANGED
|
@@ -45746,7 +45746,13 @@ function TestimonialsGridAddReview({
|
|
|
45746
45746
|
const avatarSrc = getAvatarSrc(testimonial);
|
|
45747
45747
|
return /* @__PURE__ */ jsx(Card, { className: cardClassName, children: /* @__PURE__ */ jsx(CardContent, { className: "p-6", children: /* @__PURE__ */ jsxs("div", { className: "flex flex-col items-start gap-12 justify-between", children: [
|
|
45748
45748
|
/* @__PURE__ */ jsxs("div", { className: "flex flex-col items-start gap-4", children: [
|
|
45749
|
-
/* @__PURE__ */ jsx(
|
|
45749
|
+
/* @__PURE__ */ jsx(
|
|
45750
|
+
StarRating,
|
|
45751
|
+
{
|
|
45752
|
+
rating: typeof testimonial.rating === "number" ? testimonial.rating : 5,
|
|
45753
|
+
size: 20
|
|
45754
|
+
}
|
|
45755
|
+
),
|
|
45750
45756
|
testimonial.quote && (typeof testimonial.quote === "string" ? /* @__PURE__ */ jsxs(
|
|
45751
45757
|
"p",
|
|
45752
45758
|
{
|
|
@@ -46708,7 +46714,13 @@ function TestimonialsStatsHeader({
|
|
|
46708
46714
|
),
|
|
46709
46715
|
children: /* @__PURE__ */ jsx(CardContent, { className: "p-6", children: /* @__PURE__ */ jsxs("div", { className: "flex flex-col items-start gap-12 justify-between", children: [
|
|
46710
46716
|
/* @__PURE__ */ jsxs("div", { className: "flex flex-col items-start gap-4", children: [
|
|
46711
|
-
/* @__PURE__ */ jsx(
|
|
46717
|
+
/* @__PURE__ */ jsx(
|
|
46718
|
+
StarRating,
|
|
46719
|
+
{
|
|
46720
|
+
rating: typeof testimonial.rating === "number" ? testimonial.rating : 5,
|
|
46721
|
+
size: 20
|
|
46722
|
+
}
|
|
46723
|
+
),
|
|
46712
46724
|
testimonial.quote && (typeof testimonial.quote === "string" ? /* @__PURE__ */ jsxs(
|
|
46713
46725
|
"p",
|
|
46714
46726
|
{
|
|
@@ -113856,6 +113868,7 @@ var NAVBAR_BLOCK_CONTRACTS = {
|
|
|
113856
113868
|
};
|
|
113857
113869
|
var TESTIMONIALS_EXAMPLE_IMAGE_URL = "https://cdn.ing/assets/i/r/308196/g6bbn73f7gxal82uu49m9prfd0u8/workplace-in-cafe.webp";
|
|
113858
113870
|
var TESTIMONIALS_MEDIA_NOTE = "All media src values must be absolute URLs to real assets; relative paths and placeholder media variables are not allowed.";
|
|
113871
|
+
var TESTIMONIALS_FEED_NOTE = "Dynamic feeds (Phase 2): this block can carry a block-level dataSource of type 'testimonials_feed', hydrated at routing-build time into TestimonialItem[]. Bind target (dataSource.bindTo) defaults to 'testimonials'; use 'reviews' for testimonials-list-verified, testimonials-images-helpful, and testimonials-grid-add-review; single-item 'testimonial' (an object \u2014 the hydrator binds items[0]) for testimonials-company-logo, testimonials-large-quote, and testimonials-split-image. Wire mapping: content -> quote, reviewer_name -> author, rating -> rating (only when numeric; never fabricate), profile_url + platform -> linkConfig. Avatars are intentionally NOT mapped in Phase 2 because review avatar URLs are hotlinked and rot-prone. The reviews_or_testimonials capability is satisfied by live reviews OR authored static quotes, so octane does not hard-drop testimonials blocks on the capability alone.";
|
|
113859
113872
|
var testimonialsCapabilities = (...capabilities) => capabilities;
|
|
113860
113873
|
var img = TESTIMONIALS_EXAMPLE_IMAGE_URL;
|
|
113861
113874
|
var TESTIMONIALS_BLOCK_CONTRACTS = {
|
|
@@ -115463,6 +115476,9 @@ var TESTIMONIALS_BLOCK_CONTRACTS = {
|
|
|
115463
115476
|
}
|
|
115464
115477
|
}
|
|
115465
115478
|
};
|
|
115479
|
+
for (const contract of Object.values(TESTIMONIALS_BLOCK_CONTRACTS)) {
|
|
115480
|
+
contract.importantUsageNotes = contract.importantUsageNotes ? `${contract.importantUsageNotes} ${TESTIMONIALS_FEED_NOTE}` : TESTIMONIALS_FEED_NOTE;
|
|
115481
|
+
}
|
|
115466
115482
|
var FEATURES_EXAMPLE_IMAGE_URL = "https://cdn.ing/assets/i/r/308196/g6bbn73f7gxal82uu49m9prfd0u8/workplace-in-cafe.webp";
|
|
115467
115483
|
var FEATURES_MEDIA_NOTE = "All media src values must be absolute URLs to real assets; relative paths and placeholder media variables are not allowed.";
|
|
115468
115484
|
var featuresCapabilities = (...capabilities) => capabilities;
|
|
@@ -135767,7 +135783,7 @@ function createBuilderContractBundle({
|
|
|
135767
135783
|
symbolic: true,
|
|
135768
135784
|
hydrationOwner: "dashtrack-ai",
|
|
135769
135785
|
hydrationPhase: "routing-build",
|
|
135770
|
-
canonicalPayloadExpectation: "Keep testimonials feed requests symbolic in canonical page JSON until routing-build hydration resolves them.",
|
|
135786
|
+
canonicalPayloadExpectation: "Keep testimonials feed requests symbolic in canonical page JSON until routing-build hydration resolves them into TestimonialItem[] (or a single TestimonialItem for single-bind blocks). Wire mapping: content -> quote, reviewer_name -> author, rating -> rating (only when numeric; never fabricated), profile_url + platform -> linkConfig; avatars are intentionally left unmapped in Phase 2 because review avatar URLs are hotlinked and rot-prone.",
|
|
135771
135787
|
requiredFields: ["type"],
|
|
135772
135788
|
optionalFields: ["limit", "minRating", "platforms", "locationId", "bindTo"]
|
|
135773
135789
|
},
|
|
@@ -669,7 +669,13 @@ function TestimonialsGridAddReview({
|
|
|
669
669
|
const avatarSrc = getAvatarSrc(testimonial);
|
|
670
670
|
return /* @__PURE__ */ jsxRuntime.jsx(Card, { className: cardClassName, children: /* @__PURE__ */ jsxRuntime.jsx(CardContent, { className: "p-6", children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-col items-start gap-12 justify-between", children: [
|
|
671
671
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-col items-start gap-4", children: [
|
|
672
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
672
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
673
|
+
StarRating,
|
|
674
|
+
{
|
|
675
|
+
rating: typeof testimonial.rating === "number" ? testimonial.rating : 5,
|
|
676
|
+
size: 20
|
|
677
|
+
}
|
|
678
|
+
),
|
|
673
679
|
testimonial.quote && (typeof testimonial.quote === "string" ? /* @__PURE__ */ jsxRuntime.jsxs(
|
|
674
680
|
"p",
|
|
675
681
|
{
|
|
@@ -647,7 +647,13 @@ function TestimonialsGridAddReview({
|
|
|
647
647
|
const avatarSrc = getAvatarSrc(testimonial);
|
|
648
648
|
return /* @__PURE__ */ jsx(Card, { className: cardClassName, children: /* @__PURE__ */ jsx(CardContent, { className: "p-6", children: /* @__PURE__ */ jsxs("div", { className: "flex flex-col items-start gap-12 justify-between", children: [
|
|
649
649
|
/* @__PURE__ */ jsxs("div", { className: "flex flex-col items-start gap-4", children: [
|
|
650
|
-
/* @__PURE__ */ jsx(
|
|
650
|
+
/* @__PURE__ */ jsx(
|
|
651
|
+
StarRating,
|
|
652
|
+
{
|
|
653
|
+
rating: typeof testimonial.rating === "number" ? testimonial.rating : 5,
|
|
654
|
+
size: 20
|
|
655
|
+
}
|
|
656
|
+
),
|
|
651
657
|
testimonial.quote && (typeof testimonial.quote === "string" ? /* @__PURE__ */ jsxs(
|
|
652
658
|
"p",
|
|
653
659
|
{
|
|
@@ -689,7 +689,13 @@ function TestimonialsStatsHeader({
|
|
|
689
689
|
),
|
|
690
690
|
children: /* @__PURE__ */ jsxRuntime.jsx(CardContent, { className: "p-6", children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-col items-start gap-12 justify-between", children: [
|
|
691
691
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-col items-start gap-4", children: [
|
|
692
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
692
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
693
|
+
StarRating,
|
|
694
|
+
{
|
|
695
|
+
rating: typeof testimonial.rating === "number" ? testimonial.rating : 5,
|
|
696
|
+
size: 20
|
|
697
|
+
}
|
|
698
|
+
),
|
|
693
699
|
testimonial.quote && (typeof testimonial.quote === "string" ? /* @__PURE__ */ jsxRuntime.jsxs(
|
|
694
700
|
"p",
|
|
695
701
|
{
|
|
@@ -667,7 +667,13 @@ function TestimonialsStatsHeader({
|
|
|
667
667
|
),
|
|
668
668
|
children: /* @__PURE__ */ jsx(CardContent, { className: "p-6", children: /* @__PURE__ */ jsxs("div", { className: "flex flex-col items-start gap-12 justify-between", children: [
|
|
669
669
|
/* @__PURE__ */ jsxs("div", { className: "flex flex-col items-start gap-4", children: [
|
|
670
|
-
/* @__PURE__ */ jsx(
|
|
670
|
+
/* @__PURE__ */ jsx(
|
|
671
|
+
StarRating,
|
|
672
|
+
{
|
|
673
|
+
rating: typeof testimonial.rating === "number" ? testimonial.rating : 5,
|
|
674
|
+
size: 20
|
|
675
|
+
}
|
|
676
|
+
),
|
|
671
677
|
testimonial.quote && (typeof testimonial.quote === "string" ? /* @__PURE__ */ jsxs(
|
|
672
678
|
"p",
|
|
673
679
|
{
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@opensite/ui",
|
|
3
|
-
"version": "3.
|
|
3
|
+
"version": "3.13.0",
|
|
4
4
|
"description": "Foundational UI component library for OpenSite Semantic Site Builder with tree-shakable exports and abstract styling",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"react",
|
|
@@ -3437,7 +3437,7 @@
|
|
|
3437
3437
|
"@page-speed/lightbox": "^0.2.1",
|
|
3438
3438
|
"@page-speed/maps": "0.2.4",
|
|
3439
3439
|
"@page-speed/markdown-to-jsx": "^0.0.7",
|
|
3440
|
-
"@page-speed/media-immersive": "0.5.
|
|
3440
|
+
"@page-speed/media-immersive": "0.5.1",
|
|
3441
3441
|
"@page-speed/pdf-viewer": ">=0.1.9",
|
|
3442
3442
|
"@page-speed/skins": "0.1.2",
|
|
3443
3443
|
"@page-speed/social-share": "0.1.7",
|