@reblu/site-blocks 0.29.0 → 0.30.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/index.d.cts CHANGED
@@ -1,4 +1,4 @@
1
- import { ShopErrorCode, AcademyCourseDetail, AcademyLessonPreview, PageDetail, PageListItem, ProfessionalField, ShopProductListItem, ShopProductTrustIcon, ShopProductTrustItem, TrustBadgeType, TrustBadge, BlockType, PageBlock, ResolvedEmbed, ShopFacets, AcademyInstructorPublic, AcademyCategoryPublic, AcademyCatalogFiltersPublic, ShopStaffAutoDiscount, ShopOrder, ShopBillingInput, ShopCheckoutInput, ShopCheckoutDeliveryConfig, ShopCheckoutCopy, ShopFulfillmentInput, ShopQuote, Config, ShopOrderInvoice } from '@reblu/site-contracts';
1
+ import { ShopErrorCode, AcademyCourseDetail, AcademyLessonPreview, PageDetail, PageListItem, ProfessionalField, ShopProductListItem, ShopProductTrustIcon, ShopProductTrustItem, TrustBadgeType, TrustBadge, BlockType, PageBlock, ResolvedEmbed, ShopFacets, AcademyInstructorPublic, AcademyCategoryPublic, AcademyCatalogFiltersPublic, ShopBundleComponent, ShopStaffAutoDiscount, ShopOrder, ShopBillingInput, ShopCheckoutInput, ShopCheckoutDeliveryConfig, ShopCheckoutCopy, ShopFulfillmentInput, ShopQuote, Config, ShopOrderInvoice } from '@reblu/site-contracts';
2
2
  export { DATA_REQUEST_TYPES } from '@reblu/site-contracts';
3
3
  import { FaqItem } from './seo.cjs';
4
4
  export { FaqPageJsonLd, MarkdownToPlainTextOptions, buildFaqPageJsonLd, collectFaqItems, markdownToPlainText } from './seo.cjs';
@@ -1069,7 +1069,34 @@ interface CartLineListLabels {
1069
1069
  unitPriceSuffix: string;
1070
1070
  /** REB-837 — default copy for `notice={true}`. */
1071
1071
  cancelledNotice: string;
1072
+ /** REB-1208 — the summary of the per-line `lineIncludes` disclosure. */
1073
+ includesSummary: string;
1074
+ }
1075
+ /** REB-1208 — one row of a line's «Qué incluye» detail. */
1076
+ interface CartLineIncludesEntry {
1077
+ label: React.ReactNode;
1078
+ value: React.ReactNode;
1079
+ }
1080
+ interface CartLineIncludesProps {
1081
+ entries: CartLineIncludesEntry[];
1082
+ /** An optional full-width note under the entries (e.g. a condition of use). */
1083
+ note?: React.ReactNode;
1084
+ className?: string;
1072
1085
  }
1086
+ /**
1087
+ * `CartLineIncludes` — drop-in body for `CartLineList`'s `lineIncludes`
1088
+ * (REB-1208): a term/description list of what a line includes, built by the
1089
+ * SITE from the product's own data (its custom-field values, or
1090
+ * `bundleComponentsToIncludes(product.bundleComponents)`). Renders nothing
1091
+ * when there are no entries and no note.
1092
+ */
1093
+ declare function CartLineIncludes({ entries, note, className }: CartLineIncludesProps): react_jsx_runtime.JSX.Element | null;
1094
+ /**
1095
+ * REB-1208 — maps `ShopProductDetail.bundleComponents` (already on the
1096
+ * contract) to `CartLineIncludes` entries: each component's name and its
1097
+ * quantity, in the `x{quantity}` form `OrderConfirmation` uses.
1098
+ */
1099
+ declare function bundleComponentsToIncludes(components: readonly ShopBundleComponent[]): CartLineIncludesEntry[];
1073
1100
  interface CartLineListProps {
1074
1101
  items: CartLineItemView[];
1075
1102
  onQuantityChange?: (productId: string, variantId: string | null | undefined, quantity: number) => void;
@@ -1093,12 +1120,19 @@ interface CartLineListProps {
1093
1120
  * `null`/`undefined` for lines without one.
1094
1121
  */
1095
1122
  lineMessage?: (item: CartLineItemView) => React.ReactNode;
1123
+ /**
1124
+ * REB-1208 — what a line includes, shown under it in a collapsed
1125
+ * «Qué incluye» disclosure (`labels.includesSummary`). Return the content
1126
+ * (usually `<CartLineIncludes entries={…} />`), or `null`/`undefined` for
1127
+ * lines with nothing to show. Omit the prop to render no disclosure.
1128
+ */
1129
+ lineIncludes?: (item: CartLineItemView) => React.ReactNode;
1096
1130
  labels?: Partial<CartLineListLabels>;
1097
1131
  currencyCode?: string;
1098
1132
  locale?: string;
1099
1133
  className?: string;
1100
1134
  }
1101
- declare function CartLineList({ items, onQuantityChange, onRemove, liveMessage, notice, lineMessage, labels, currencyCode, locale, className, }: CartLineListProps): react_jsx_runtime.JSX.Element;
1135
+ declare function CartLineList({ items, onQuantityChange, onRemove, liveMessage, notice, lineMessage, lineIncludes, labels, currencyCode, locale, className, }: CartLineListProps): react_jsx_runtime.JSX.Element;
1102
1136
 
1103
1137
  /**
1104
1138
  * `CartSummary` — presentational price breakdown (REB-829): subtotal,
@@ -1788,4 +1822,4 @@ interface OrderInvoiceLinkProps {
1788
1822
  }
1789
1823
  declare function OrderInvoiceLink({ invoice, labels, className }: OrderInvoiceLinkProps): react_jsx_runtime.JSX.Element | null;
1790
1824
 
1791
- export { ALLOWED_YOUTUBE_HOSTS, AddedToCartToast, type AddedToCartToastLabels, type AddedToCartToastProps, type AddedToCartToastStatus, ArbitrationBadge, type ArbitrationBadgeProps, type BlockRendererProps, type CanonicalBlockType, type CartAdjustmentLine, CartAdjustmentsNotice, type CartAdjustmentsNoticeLabels, type CartAdjustmentsNoticeProps, type CartLineItemView, CartLineList, type CartLineListLabels, type CartLineListProps, CartSummary, type CartSummaryLabels, type CartSummaryProps, type CheckoutAddressErrors, type CheckoutAddressValue, type CheckoutAppliedDiscount, type CheckoutContactErrors, type CheckoutContactValues, CheckoutDeliveryChoice, type CheckoutDeliveryChoiceLabels, type CheckoutDeliveryChoiceProps, CheckoutForm, type CheckoutFormLabels, type CheckoutFormProps, CheckoutLoginPrompt, type CheckoutLoginPromptLabels, type CheckoutLoginPromptProps, CheckoutPayAction, type CheckoutPayActionProps, CheckoutQuoteSummary, type CheckoutQuoteSummaryLabels, type CheckoutQuoteSummaryProps, CheckoutTermsAcceptance, type CheckoutTermsAcceptanceProps, type CheckoutTermsCopy, type ContactInterest, ContactInterestField, type ContactInterestFieldProps, CourseCatalogFilters, type CourseCatalogFiltersActive, type CourseCatalogFiltersHrefs, type CourseCatalogFiltersLabels, type CourseCatalogFiltersProps, type CourseCatalogPriceBand, CourseDescription, type CourseDescriptionProps, CoursePurchaseTerms, type CoursePurchaseTermsLabels, type CoursePurchaseTermsProps, DEFAULT_CHECKOUT_DELIVERY_CHOICE_LABELS, DEFAULT_CHECKOUT_QUOTE_SUMMARY_LABELS, DEFAULT_COURSE_CATALOG_FILTERS_LABELS, DEFAULT_COURSE_PRICE_BANDS, DEFAULT_COURSE_PURCHASE_TERMS_LABELS, DEFAULT_INVOICE_COUNTRIES, DEFAULT_LESSON_PREVIEW_LABELS, DEFAULT_SHOP_ERROR_FALLBACK_MESSAGE, DEFAULT_SHOP_ERROR_MESSAGES, DEFAULT_SHOP_PRICE_BANDS, DEFAULT_TRUST_BADGE_HEADINGS, DEFAULT_TRUST_BADGE_TYPE_ORDER, DEFAULT_TRUST_ICONS, EMPTY_CHECKOUT_ADDRESS, EMPTY_FULL_INVOICE_VALUE, FaqAccordion, type FaqAccordionProps, FaqItem, type FullInvoiceErrors, FullInvoiceFields, type FullInvoiceFieldsLabels, type FullInvoiceFieldsProps, type FullInvoiceIdType, type FullInvoiceValue, HeadingLevel, LegalDocument, type LegalDocumentProps, LessonPreview, type LessonPreviewLabels, type LessonPreviewProps, type MarkdownImageOptions, MarkdownRenderer, type MarkdownRendererProps, OrderConfirmation, type OrderConfirmationLabels, type OrderConfirmationOrder, type OrderConfirmationProps, type OrderConfirmationStatus, OrderInvoiceLink, type OrderInvoiceLinkLabels, type OrderInvoiceLinkProps, PageBlocks, type PageBlocksComponents, type PageBlocksProps, PageCardGrid, type PageCardGridProps, ParentPage, type ParentPageProps, ProductCard, type ProductCardProps, ProductTrustItems, type ProductTrustItemsProps, ProfessionalFields, type ProfessionalFieldsProps, ProfileCard, type ProfileCardProps, type RenderableBlock, SafeHtml, type SafeHtmlProps, type ShareUrls, type ShopFilterPriceBand, ShopFilters, type ShopFiltersActive, type ShopFiltersHrefs, type ShopFiltersLabels, type ShopFiltersProps, Specialty, type SpecialtyProps, Treatment, type TreatmentProps, TrustBadges, type TrustBadgesProps, type TrustIconComponent, type TrustIconProps, buildShareUrls, defaultCheckoutFulfillment, formatPrice, getShopErrorMessage, isAllowedYouTubeHost, isOverSimplifiedInvoiceCap, markdownToSafeHtml, quoteRequiresDelivery, readingTime, sanitizeHtml, shopIssuesInvoices, shouldRenderShopFilters, toCheckoutFulfillmentFields, toCheckoutInvoiceFields, toCheckoutTermsFields };
1825
+ export { ALLOWED_YOUTUBE_HOSTS, AddedToCartToast, type AddedToCartToastLabels, type AddedToCartToastProps, type AddedToCartToastStatus, ArbitrationBadge, type ArbitrationBadgeProps, type BlockRendererProps, type CanonicalBlockType, type CartAdjustmentLine, CartAdjustmentsNotice, type CartAdjustmentsNoticeLabels, type CartAdjustmentsNoticeProps, CartLineIncludes, type CartLineIncludesEntry, type CartLineIncludesProps, type CartLineItemView, CartLineList, type CartLineListLabels, type CartLineListProps, CartSummary, type CartSummaryLabels, type CartSummaryProps, type CheckoutAddressErrors, type CheckoutAddressValue, type CheckoutAppliedDiscount, type CheckoutContactErrors, type CheckoutContactValues, CheckoutDeliveryChoice, type CheckoutDeliveryChoiceLabels, type CheckoutDeliveryChoiceProps, CheckoutForm, type CheckoutFormLabels, type CheckoutFormProps, CheckoutLoginPrompt, type CheckoutLoginPromptLabels, type CheckoutLoginPromptProps, CheckoutPayAction, type CheckoutPayActionProps, CheckoutQuoteSummary, type CheckoutQuoteSummaryLabels, type CheckoutQuoteSummaryProps, CheckoutTermsAcceptance, type CheckoutTermsAcceptanceProps, type CheckoutTermsCopy, type ContactInterest, ContactInterestField, type ContactInterestFieldProps, CourseCatalogFilters, type CourseCatalogFiltersActive, type CourseCatalogFiltersHrefs, type CourseCatalogFiltersLabels, type CourseCatalogFiltersProps, type CourseCatalogPriceBand, CourseDescription, type CourseDescriptionProps, CoursePurchaseTerms, type CoursePurchaseTermsLabels, type CoursePurchaseTermsProps, DEFAULT_CHECKOUT_DELIVERY_CHOICE_LABELS, DEFAULT_CHECKOUT_QUOTE_SUMMARY_LABELS, DEFAULT_COURSE_CATALOG_FILTERS_LABELS, DEFAULT_COURSE_PRICE_BANDS, DEFAULT_COURSE_PURCHASE_TERMS_LABELS, DEFAULT_INVOICE_COUNTRIES, DEFAULT_LESSON_PREVIEW_LABELS, DEFAULT_SHOP_ERROR_FALLBACK_MESSAGE, DEFAULT_SHOP_ERROR_MESSAGES, DEFAULT_SHOP_PRICE_BANDS, DEFAULT_TRUST_BADGE_HEADINGS, DEFAULT_TRUST_BADGE_TYPE_ORDER, DEFAULT_TRUST_ICONS, EMPTY_CHECKOUT_ADDRESS, EMPTY_FULL_INVOICE_VALUE, FaqAccordion, type FaqAccordionProps, FaqItem, type FullInvoiceErrors, FullInvoiceFields, type FullInvoiceFieldsLabels, type FullInvoiceFieldsProps, type FullInvoiceIdType, type FullInvoiceValue, HeadingLevel, LegalDocument, type LegalDocumentProps, LessonPreview, type LessonPreviewLabels, type LessonPreviewProps, type MarkdownImageOptions, MarkdownRenderer, type MarkdownRendererProps, OrderConfirmation, type OrderConfirmationLabels, type OrderConfirmationOrder, type OrderConfirmationProps, type OrderConfirmationStatus, OrderInvoiceLink, type OrderInvoiceLinkLabels, type OrderInvoiceLinkProps, PageBlocks, type PageBlocksComponents, type PageBlocksProps, PageCardGrid, type PageCardGridProps, ParentPage, type ParentPageProps, ProductCard, type ProductCardProps, ProductTrustItems, type ProductTrustItemsProps, ProfessionalFields, type ProfessionalFieldsProps, ProfileCard, type ProfileCardProps, type RenderableBlock, SafeHtml, type SafeHtmlProps, type ShareUrls, type ShopFilterPriceBand, ShopFilters, type ShopFiltersActive, type ShopFiltersHrefs, type ShopFiltersLabels, type ShopFiltersProps, Specialty, type SpecialtyProps, Treatment, type TreatmentProps, TrustBadges, type TrustBadgesProps, type TrustIconComponent, type TrustIconProps, buildShareUrls, bundleComponentsToIncludes, defaultCheckoutFulfillment, formatPrice, getShopErrorMessage, isAllowedYouTubeHost, isOverSimplifiedInvoiceCap, markdownToSafeHtml, quoteRequiresDelivery, readingTime, sanitizeHtml, shopIssuesInvoices, shouldRenderShopFilters, toCheckoutFulfillmentFields, toCheckoutInvoiceFields, toCheckoutTermsFields };
package/dist/index.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import { ShopErrorCode, AcademyCourseDetail, AcademyLessonPreview, PageDetail, PageListItem, ProfessionalField, ShopProductListItem, ShopProductTrustIcon, ShopProductTrustItem, TrustBadgeType, TrustBadge, BlockType, PageBlock, ResolvedEmbed, ShopFacets, AcademyInstructorPublic, AcademyCategoryPublic, AcademyCatalogFiltersPublic, ShopStaffAutoDiscount, ShopOrder, ShopBillingInput, ShopCheckoutInput, ShopCheckoutDeliveryConfig, ShopCheckoutCopy, ShopFulfillmentInput, ShopQuote, Config, ShopOrderInvoice } from '@reblu/site-contracts';
1
+ import { ShopErrorCode, AcademyCourseDetail, AcademyLessonPreview, PageDetail, PageListItem, ProfessionalField, ShopProductListItem, ShopProductTrustIcon, ShopProductTrustItem, TrustBadgeType, TrustBadge, BlockType, PageBlock, ResolvedEmbed, ShopFacets, AcademyInstructorPublic, AcademyCategoryPublic, AcademyCatalogFiltersPublic, ShopBundleComponent, ShopStaffAutoDiscount, ShopOrder, ShopBillingInput, ShopCheckoutInput, ShopCheckoutDeliveryConfig, ShopCheckoutCopy, ShopFulfillmentInput, ShopQuote, Config, ShopOrderInvoice } from '@reblu/site-contracts';
2
2
  export { DATA_REQUEST_TYPES } from '@reblu/site-contracts';
3
3
  import { FaqItem } from './seo.js';
4
4
  export { FaqPageJsonLd, MarkdownToPlainTextOptions, buildFaqPageJsonLd, collectFaqItems, markdownToPlainText } from './seo.js';
@@ -1069,7 +1069,34 @@ interface CartLineListLabels {
1069
1069
  unitPriceSuffix: string;
1070
1070
  /** REB-837 — default copy for `notice={true}`. */
1071
1071
  cancelledNotice: string;
1072
+ /** REB-1208 — the summary of the per-line `lineIncludes` disclosure. */
1073
+ includesSummary: string;
1074
+ }
1075
+ /** REB-1208 — one row of a line's «Qué incluye» detail. */
1076
+ interface CartLineIncludesEntry {
1077
+ label: React.ReactNode;
1078
+ value: React.ReactNode;
1079
+ }
1080
+ interface CartLineIncludesProps {
1081
+ entries: CartLineIncludesEntry[];
1082
+ /** An optional full-width note under the entries (e.g. a condition of use). */
1083
+ note?: React.ReactNode;
1084
+ className?: string;
1072
1085
  }
1086
+ /**
1087
+ * `CartLineIncludes` — drop-in body for `CartLineList`'s `lineIncludes`
1088
+ * (REB-1208): a term/description list of what a line includes, built by the
1089
+ * SITE from the product's own data (its custom-field values, or
1090
+ * `bundleComponentsToIncludes(product.bundleComponents)`). Renders nothing
1091
+ * when there are no entries and no note.
1092
+ */
1093
+ declare function CartLineIncludes({ entries, note, className }: CartLineIncludesProps): react_jsx_runtime.JSX.Element | null;
1094
+ /**
1095
+ * REB-1208 — maps `ShopProductDetail.bundleComponents` (already on the
1096
+ * contract) to `CartLineIncludes` entries: each component's name and its
1097
+ * quantity, in the `x{quantity}` form `OrderConfirmation` uses.
1098
+ */
1099
+ declare function bundleComponentsToIncludes(components: readonly ShopBundleComponent[]): CartLineIncludesEntry[];
1073
1100
  interface CartLineListProps {
1074
1101
  items: CartLineItemView[];
1075
1102
  onQuantityChange?: (productId: string, variantId: string | null | undefined, quantity: number) => void;
@@ -1093,12 +1120,19 @@ interface CartLineListProps {
1093
1120
  * `null`/`undefined` for lines without one.
1094
1121
  */
1095
1122
  lineMessage?: (item: CartLineItemView) => React.ReactNode;
1123
+ /**
1124
+ * REB-1208 — what a line includes, shown under it in a collapsed
1125
+ * «Qué incluye» disclosure (`labels.includesSummary`). Return the content
1126
+ * (usually `<CartLineIncludes entries={…} />`), or `null`/`undefined` for
1127
+ * lines with nothing to show. Omit the prop to render no disclosure.
1128
+ */
1129
+ lineIncludes?: (item: CartLineItemView) => React.ReactNode;
1096
1130
  labels?: Partial<CartLineListLabels>;
1097
1131
  currencyCode?: string;
1098
1132
  locale?: string;
1099
1133
  className?: string;
1100
1134
  }
1101
- declare function CartLineList({ items, onQuantityChange, onRemove, liveMessage, notice, lineMessage, labels, currencyCode, locale, className, }: CartLineListProps): react_jsx_runtime.JSX.Element;
1135
+ declare function CartLineList({ items, onQuantityChange, onRemove, liveMessage, notice, lineMessage, lineIncludes, labels, currencyCode, locale, className, }: CartLineListProps): react_jsx_runtime.JSX.Element;
1102
1136
 
1103
1137
  /**
1104
1138
  * `CartSummary` — presentational price breakdown (REB-829): subtotal,
@@ -1788,4 +1822,4 @@ interface OrderInvoiceLinkProps {
1788
1822
  }
1789
1823
  declare function OrderInvoiceLink({ invoice, labels, className }: OrderInvoiceLinkProps): react_jsx_runtime.JSX.Element | null;
1790
1824
 
1791
- export { ALLOWED_YOUTUBE_HOSTS, AddedToCartToast, type AddedToCartToastLabels, type AddedToCartToastProps, type AddedToCartToastStatus, ArbitrationBadge, type ArbitrationBadgeProps, type BlockRendererProps, type CanonicalBlockType, type CartAdjustmentLine, CartAdjustmentsNotice, type CartAdjustmentsNoticeLabels, type CartAdjustmentsNoticeProps, type CartLineItemView, CartLineList, type CartLineListLabels, type CartLineListProps, CartSummary, type CartSummaryLabels, type CartSummaryProps, type CheckoutAddressErrors, type CheckoutAddressValue, type CheckoutAppliedDiscount, type CheckoutContactErrors, type CheckoutContactValues, CheckoutDeliveryChoice, type CheckoutDeliveryChoiceLabels, type CheckoutDeliveryChoiceProps, CheckoutForm, type CheckoutFormLabels, type CheckoutFormProps, CheckoutLoginPrompt, type CheckoutLoginPromptLabels, type CheckoutLoginPromptProps, CheckoutPayAction, type CheckoutPayActionProps, CheckoutQuoteSummary, type CheckoutQuoteSummaryLabels, type CheckoutQuoteSummaryProps, CheckoutTermsAcceptance, type CheckoutTermsAcceptanceProps, type CheckoutTermsCopy, type ContactInterest, ContactInterestField, type ContactInterestFieldProps, CourseCatalogFilters, type CourseCatalogFiltersActive, type CourseCatalogFiltersHrefs, type CourseCatalogFiltersLabels, type CourseCatalogFiltersProps, type CourseCatalogPriceBand, CourseDescription, type CourseDescriptionProps, CoursePurchaseTerms, type CoursePurchaseTermsLabels, type CoursePurchaseTermsProps, DEFAULT_CHECKOUT_DELIVERY_CHOICE_LABELS, DEFAULT_CHECKOUT_QUOTE_SUMMARY_LABELS, DEFAULT_COURSE_CATALOG_FILTERS_LABELS, DEFAULT_COURSE_PRICE_BANDS, DEFAULT_COURSE_PURCHASE_TERMS_LABELS, DEFAULT_INVOICE_COUNTRIES, DEFAULT_LESSON_PREVIEW_LABELS, DEFAULT_SHOP_ERROR_FALLBACK_MESSAGE, DEFAULT_SHOP_ERROR_MESSAGES, DEFAULT_SHOP_PRICE_BANDS, DEFAULT_TRUST_BADGE_HEADINGS, DEFAULT_TRUST_BADGE_TYPE_ORDER, DEFAULT_TRUST_ICONS, EMPTY_CHECKOUT_ADDRESS, EMPTY_FULL_INVOICE_VALUE, FaqAccordion, type FaqAccordionProps, FaqItem, type FullInvoiceErrors, FullInvoiceFields, type FullInvoiceFieldsLabels, type FullInvoiceFieldsProps, type FullInvoiceIdType, type FullInvoiceValue, HeadingLevel, LegalDocument, type LegalDocumentProps, LessonPreview, type LessonPreviewLabels, type LessonPreviewProps, type MarkdownImageOptions, MarkdownRenderer, type MarkdownRendererProps, OrderConfirmation, type OrderConfirmationLabels, type OrderConfirmationOrder, type OrderConfirmationProps, type OrderConfirmationStatus, OrderInvoiceLink, type OrderInvoiceLinkLabels, type OrderInvoiceLinkProps, PageBlocks, type PageBlocksComponents, type PageBlocksProps, PageCardGrid, type PageCardGridProps, ParentPage, type ParentPageProps, ProductCard, type ProductCardProps, ProductTrustItems, type ProductTrustItemsProps, ProfessionalFields, type ProfessionalFieldsProps, ProfileCard, type ProfileCardProps, type RenderableBlock, SafeHtml, type SafeHtmlProps, type ShareUrls, type ShopFilterPriceBand, ShopFilters, type ShopFiltersActive, type ShopFiltersHrefs, type ShopFiltersLabels, type ShopFiltersProps, Specialty, type SpecialtyProps, Treatment, type TreatmentProps, TrustBadges, type TrustBadgesProps, type TrustIconComponent, type TrustIconProps, buildShareUrls, defaultCheckoutFulfillment, formatPrice, getShopErrorMessage, isAllowedYouTubeHost, isOverSimplifiedInvoiceCap, markdownToSafeHtml, quoteRequiresDelivery, readingTime, sanitizeHtml, shopIssuesInvoices, shouldRenderShopFilters, toCheckoutFulfillmentFields, toCheckoutInvoiceFields, toCheckoutTermsFields };
1825
+ export { ALLOWED_YOUTUBE_HOSTS, AddedToCartToast, type AddedToCartToastLabels, type AddedToCartToastProps, type AddedToCartToastStatus, ArbitrationBadge, type ArbitrationBadgeProps, type BlockRendererProps, type CanonicalBlockType, type CartAdjustmentLine, CartAdjustmentsNotice, type CartAdjustmentsNoticeLabels, type CartAdjustmentsNoticeProps, CartLineIncludes, type CartLineIncludesEntry, type CartLineIncludesProps, type CartLineItemView, CartLineList, type CartLineListLabels, type CartLineListProps, CartSummary, type CartSummaryLabels, type CartSummaryProps, type CheckoutAddressErrors, type CheckoutAddressValue, type CheckoutAppliedDiscount, type CheckoutContactErrors, type CheckoutContactValues, CheckoutDeliveryChoice, type CheckoutDeliveryChoiceLabels, type CheckoutDeliveryChoiceProps, CheckoutForm, type CheckoutFormLabels, type CheckoutFormProps, CheckoutLoginPrompt, type CheckoutLoginPromptLabels, type CheckoutLoginPromptProps, CheckoutPayAction, type CheckoutPayActionProps, CheckoutQuoteSummary, type CheckoutQuoteSummaryLabels, type CheckoutQuoteSummaryProps, CheckoutTermsAcceptance, type CheckoutTermsAcceptanceProps, type CheckoutTermsCopy, type ContactInterest, ContactInterestField, type ContactInterestFieldProps, CourseCatalogFilters, type CourseCatalogFiltersActive, type CourseCatalogFiltersHrefs, type CourseCatalogFiltersLabels, type CourseCatalogFiltersProps, type CourseCatalogPriceBand, CourseDescription, type CourseDescriptionProps, CoursePurchaseTerms, type CoursePurchaseTermsLabels, type CoursePurchaseTermsProps, DEFAULT_CHECKOUT_DELIVERY_CHOICE_LABELS, DEFAULT_CHECKOUT_QUOTE_SUMMARY_LABELS, DEFAULT_COURSE_CATALOG_FILTERS_LABELS, DEFAULT_COURSE_PRICE_BANDS, DEFAULT_COURSE_PURCHASE_TERMS_LABELS, DEFAULT_INVOICE_COUNTRIES, DEFAULT_LESSON_PREVIEW_LABELS, DEFAULT_SHOP_ERROR_FALLBACK_MESSAGE, DEFAULT_SHOP_ERROR_MESSAGES, DEFAULT_SHOP_PRICE_BANDS, DEFAULT_TRUST_BADGE_HEADINGS, DEFAULT_TRUST_BADGE_TYPE_ORDER, DEFAULT_TRUST_ICONS, EMPTY_CHECKOUT_ADDRESS, EMPTY_FULL_INVOICE_VALUE, FaqAccordion, type FaqAccordionProps, FaqItem, type FullInvoiceErrors, FullInvoiceFields, type FullInvoiceFieldsLabels, type FullInvoiceFieldsProps, type FullInvoiceIdType, type FullInvoiceValue, HeadingLevel, LegalDocument, type LegalDocumentProps, LessonPreview, type LessonPreviewLabels, type LessonPreviewProps, type MarkdownImageOptions, MarkdownRenderer, type MarkdownRendererProps, OrderConfirmation, type OrderConfirmationLabels, type OrderConfirmationOrder, type OrderConfirmationProps, type OrderConfirmationStatus, OrderInvoiceLink, type OrderInvoiceLinkLabels, type OrderInvoiceLinkProps, PageBlocks, type PageBlocksComponents, type PageBlocksProps, PageCardGrid, type PageCardGridProps, ParentPage, type ParentPageProps, ProductCard, type ProductCardProps, ProductTrustItems, type ProductTrustItemsProps, ProfessionalFields, type ProfessionalFieldsProps, ProfileCard, type ProfileCardProps, type RenderableBlock, SafeHtml, type SafeHtmlProps, type ShareUrls, type ShopFilterPriceBand, ShopFilters, type ShopFiltersActive, type ShopFiltersHrefs, type ShopFiltersLabels, type ShopFiltersProps, Specialty, type SpecialtyProps, Treatment, type TreatmentProps, TrustBadges, type TrustBadgesProps, type TrustIconComponent, type TrustIconProps, buildShareUrls, bundleComponentsToIncludes, defaultCheckoutFulfillment, formatPrice, getShopErrorMessage, isAllowedYouTubeHost, isOverSimplifiedInvoiceCap, markdownToSafeHtml, quoteRequiresDelivery, readingTime, sanitizeHtml, shopIssuesInvoices, shouldRenderShopFilters, toCheckoutFulfillmentFields, toCheckoutInvoiceFields, toCheckoutTermsFields };
package/dist/index.js CHANGED
@@ -15090,8 +15090,36 @@ var DEFAULT_LABELS2 = {
15090
15090
  increase: "Aumentar cantidad",
15091
15091
  remove: "Eliminar",
15092
15092
  unitPriceSuffix: "/ ud.",
15093
- cancelledNotice: "Pago cancelado: tu carrito sigue aqu\xED"
15093
+ cancelledNotice: "Pago cancelado: tu carrito sigue aqu\xED",
15094
+ includesSummary: "Qu\xE9 incluye"
15094
15095
  };
15096
+ function CartLineIncludes({ entries, note, className }) {
15097
+ const hasNote = note != null && note !== false && note !== "";
15098
+ if (entries.length === 0 && !hasNote) return null;
15099
+ return /* @__PURE__ */ jsxs20(
15100
+ "div",
15101
+ {
15102
+ className: cn15("mt-2 space-y-2 rounded-lg bg-muted px-4 py-3 text-sm", className),
15103
+ "data-slot": "cart-line-includes",
15104
+ children: [
15105
+ entries.length > 0 && /* @__PURE__ */ jsx21("dl", { className: "grid grid-cols-[max-content_1fr] gap-x-4 gap-y-1.5", children: entries.map((entry, idx) => (
15106
+ // eslint-disable-next-line react/no-array-index-key -- entries are positional, SITE-built rows
15107
+ /* @__PURE__ */ jsxs20("div", { className: "contents", children: [
15108
+ /* @__PURE__ */ jsx21("dt", { className: "font-semibold text-muted-foreground", children: entry.label }),
15109
+ /* @__PURE__ */ jsx21("dd", { className: "m-0", children: entry.value })
15110
+ ] }, idx)
15111
+ )) }),
15112
+ hasNote && /* @__PURE__ */ jsx21("p", { className: "text-muted-foreground", children: note })
15113
+ ]
15114
+ }
15115
+ );
15116
+ }
15117
+ function bundleComponentsToIncludes(components) {
15118
+ return components.map(({ quantity, component }) => ({
15119
+ label: component.name,
15120
+ value: `x${quantity}`
15121
+ }));
15122
+ }
15095
15123
  function lineKey(productId, variantId) {
15096
15124
  return `${productId}-${variantId ?? "no-variant"}`;
15097
15125
  }
@@ -15102,6 +15130,7 @@ function CartLineList({
15102
15130
  liveMessage,
15103
15131
  notice,
15104
15132
  lineMessage,
15133
+ lineIncludes,
15105
15134
  labels,
15106
15135
  currencyCode,
15107
15136
  locale,
@@ -15125,6 +15154,7 @@ function CartLineList({
15125
15154
  const atMax = item.quantity >= maxQty;
15126
15155
  const atMin = item.quantity <= 1;
15127
15156
  const message = lineMessage?.(item);
15157
+ const includes = lineIncludes?.(item);
15128
15158
  return /* @__PURE__ */ jsxs20(
15129
15159
  "li",
15130
15160
  {
@@ -15189,7 +15219,11 @@ function CartLineList({
15189
15219
  "data-slot": "cart-line-list-line-message",
15190
15220
  children: message
15191
15221
  }
15192
- )
15222
+ ),
15223
+ includes != null && includes !== false && /* @__PURE__ */ jsxs20("details", { className: "mt-2", "data-slot": "cart-line-list-includes", children: [
15224
+ /* @__PURE__ */ jsx21("summary", { className: "cursor-pointer text-sm font-semibold text-primary", children: t.includesSummary }),
15225
+ includes
15226
+ ] })
15193
15227
  ] }),
15194
15228
  /* @__PURE__ */ jsx21("div", { className: "flex-shrink-0 text-right", children: /* @__PURE__ */ jsx21("p", { className: "text-base font-bold", children: formatPrice(item.unitPrice * item.quantity, currencyCode, locale) }) })
15195
15229
  ]
@@ -16546,6 +16580,7 @@ export {
16546
16580
  AddedToCartToast,
16547
16581
  ArbitrationBadge,
16548
16582
  CartAdjustmentsNotice,
16583
+ CartLineIncludes,
16549
16584
  CartLineList,
16550
16585
  CartSummary,
16551
16586
  CheckoutDeliveryChoice,
@@ -16595,6 +16630,7 @@ export {
16595
16630
  TrustBadges,
16596
16631
  buildFaqPageJsonLd,
16597
16632
  buildShareUrls,
16633
+ bundleComponentsToIncludes,
16598
16634
  collectFaqItems,
16599
16635
  defaultCheckoutFulfillment,
16600
16636
  formatPrice,