@salesmind-ai/design-system 0.2.1 → 0.3.1
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/README.md +32 -2
- package/dist/AppearancePanel-UT57J69V.d.cts +51 -0
- package/dist/AppearancePanel-UT57J69V.d.ts +51 -0
- package/dist/AppearanceProvider-C36a8-eb.d.cts +45 -0
- package/dist/AppearanceProvider-C36a8-eb.d.ts +45 -0
- package/dist/Breadcrumb-RX-B_gDV.d.cts +44 -0
- package/dist/Breadcrumb-RX-B_gDV.d.ts +44 -0
- package/dist/ExportMenu-A2TLFiVv.d.cts +311 -0
- package/dist/ExportMenu-C8qck5AT.d.ts +311 -0
- package/dist/SectionShell-BfBw5q0Y.d.cts +18 -0
- package/dist/SectionShell-BfBw5q0Y.d.ts +18 -0
- package/dist/Select-BdZmK0Lt.d.cts +66 -0
- package/dist/Select-BdZmK0Lt.d.ts +66 -0
- package/dist/admin/index.cjs +2941 -0
- package/dist/admin/index.cjs.map +1 -0
- package/dist/admin/index.css +4145 -0
- package/dist/admin/index.css.map +1 -0
- package/dist/admin/index.d.cts +491 -0
- package/dist/admin/index.d.ts +491 -0
- package/dist/admin/index.js +2918 -0
- package/dist/admin/index.js.map +1 -0
- package/dist/{audit-CiyPkxk1.d.cts → audit-BS2fn7M4.d.ts} +2 -51
- package/dist/{audit-CiyPkxk1.d.ts → audit-DwCmg32J.d.cts} +2 -51
- package/dist/blog/index.cjs +1074 -0
- package/dist/blog/index.cjs.map +1 -0
- package/dist/blog/index.css +1422 -0
- package/dist/blog/index.css.map +1 -0
- package/dist/blog/index.d.cts +233 -0
- package/dist/blog/index.d.ts +233 -0
- package/dist/blog/index.js +1056 -0
- package/dist/blog/index.js.map +1 -0
- package/dist/chart-types-BGVVO-zl.d.cts +208 -0
- package/dist/chart-types-BGVVO-zl.d.ts +208 -0
- package/dist/charts/index.cjs +2698 -0
- package/dist/charts/index.cjs.map +1 -0
- package/dist/charts/index.css +1167 -0
- package/dist/charts/index.css.map +1 -0
- package/dist/charts/index.d.cts +453 -0
- package/dist/charts/index.d.ts +453 -0
- package/dist/charts/index.js +2682 -0
- package/dist/charts/index.js.map +1 -0
- package/dist/core/index.cjs +526 -395
- package/dist/core/index.cjs.map +1 -1
- package/dist/core/index.css +294 -0
- package/dist/core/index.css.map +1 -1
- package/dist/core/index.d.cts +7 -982
- package/dist/core/index.d.ts +7 -982
- package/dist/core/index.js +476 -351
- package/dist/core/index.js.map +1 -1
- package/dist/i18n/index.cjs +585 -0
- package/dist/i18n/index.cjs.map +1 -0
- package/dist/i18n/index.d.cts +855 -0
- package/dist/i18n/index.d.ts +855 -0
- package/dist/i18n/index.js +547 -0
- package/dist/i18n/index.js.map +1 -0
- package/dist/index.cjs +3 -2
- package/dist/index.cjs.map +1 -1
- package/dist/index.css +11 -7
- package/dist/index.css.map +1 -1
- package/dist/index.d.cts +22 -1290
- package/dist/index.d.ts +22 -1290
- package/dist/index.js +3 -2
- package/dist/index.js.map +1 -1
- package/dist/marketing/index.cjs +2144 -3023
- package/dist/marketing/index.cjs.map +1 -1
- package/dist/marketing/index.css +3729 -4824
- package/dist/marketing/index.css.map +1 -1
- package/dist/marketing/index.d.cts +1351 -4
- package/dist/marketing/index.d.ts +1351 -4
- package/dist/marketing/index.js +2190 -3054
- package/dist/marketing/index.js.map +1 -1
- package/dist/motion/index.cjs +1230 -0
- package/dist/motion/index.cjs.map +1 -0
- package/dist/motion/index.css +699 -0
- package/dist/motion/index.css.map +1 -0
- package/dist/motion/index.d.cts +68 -0
- package/dist/motion/index.d.ts +68 -0
- package/dist/motion/index.js +1218 -0
- package/dist/motion/index.js.map +1 -0
- package/dist/nav/index.cjs +1533 -0
- package/dist/nav/index.cjs.map +1 -0
- package/dist/nav/index.css +1984 -0
- package/dist/nav/index.css.map +1 -0
- package/dist/nav/index.d.cts +279 -0
- package/dist/nav/index.d.ts +279 -0
- package/dist/nav/index.js +1501 -0
- package/dist/nav/index.js.map +1 -0
- package/dist/report/index.cjs +26 -1649
- package/dist/report/index.cjs.map +1 -1
- package/dist/report/index.css +0 -963
- package/dist/report/index.css.map +1 -1
- package/dist/report/index.d.cts +4 -2
- package/dist/report/index.d.ts +4 -2
- package/dist/report/index.js +27 -1640
- package/dist/report/index.js.map +1 -1
- package/dist/sections/index.cjs +385 -0
- package/dist/sections/index.cjs.map +1 -0
- package/dist/sections/index.css +815 -0
- package/dist/sections/index.css.map +1 -0
- package/dist/sections/index.d.cts +69 -0
- package/dist/sections/index.d.ts +69 -0
- package/dist/sections/index.js +374 -0
- package/dist/sections/index.js.map +1 -0
- package/dist/social-proof/index.cjs +1255 -0
- package/dist/social-proof/index.cjs.map +1 -0
- package/dist/social-proof/index.css +1423 -0
- package/dist/social-proof/index.css.map +1 -0
- package/dist/social-proof/index.d.cts +258 -0
- package/dist/social-proof/index.d.ts +258 -0
- package/dist/social-proof/index.js +1238 -0
- package/dist/social-proof/index.js.map +1 -0
- package/dist/theme/index.cjs +573 -0
- package/dist/theme/index.cjs.map +1 -0
- package/dist/theme/index.css +464 -0
- package/dist/theme/index.css.map +1 -0
- package/dist/theme/index.d.cts +48 -0
- package/dist/theme/index.d.ts +48 -0
- package/dist/theme/index.js +558 -0
- package/dist/theme/index.js.map +1 -0
- package/dist/types-DAlgDGzw.d.cts +52 -0
- package/dist/types-DAlgDGzw.d.ts +52 -0
- package/dist/web/client/index.cjs +501 -0
- package/dist/web/client/index.cjs.map +1 -0
- package/dist/web/client/index.css +456 -0
- package/dist/web/client/index.css.map +1 -0
- package/dist/web/client/index.d.cts +172 -0
- package/dist/web/client/index.d.ts +172 -0
- package/dist/web/client/index.js +486 -0
- package/dist/web/client/index.js.map +1 -0
- package/dist/web/index.d.cts +6 -893
- package/dist/web/index.d.ts +6 -893
- package/dist/web/server/index.cjs +569 -0
- package/dist/web/server/index.cjs.map +1 -0
- package/dist/web/server/index.d.cts +725 -0
- package/dist/web/server/index.d.ts +725 -0
- package/dist/web/server/index.js +562 -0
- package/dist/web/server/index.js.map +1 -0
- package/package.json +81 -9
- package/dist/ExportMenu-hEe5MhLq.d.cts +0 -1027
- package/dist/ExportMenu-hEe5MhLq.d.ts +0 -1027
- package/dist/index-B64suAAc.d.cts +0 -1498
- package/dist/index-B64suAAc.d.ts +0 -1498
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/components/StarRating/StarRating.css","../../src/components/PlatformBadge/PlatformBadge.css","../../src/components/SocialProof/SocialProof.css","../../src/components/LayoutPrimitives/LayoutPrimitives.css","../../src/components/SectionShell/SectionShell.css","../../src/components/VideoLightbox/VideoLightbox.css","../../src/components/MetricCounter/MetricCounter.css"],"sourcesContent":["/* ============================================================================\n STAR RATING — ELITE SOCIAL PROOF\n ============================================================================ */\n\n.ds-star-rating {\n display: inline-flex;\n align-items: center;\n gap: var(--space-2);\n}\n\n.ds-star-rating__stars {\n display: inline-flex;\n align-items: center;\n gap: var(--space-1);\n}\n\n/* --- Size Variants --- */\n\n.ds-star-rating--sm .ds-star-rating__svg {\n width: 16px;\n height: 16px;\n}\n\n.ds-star-rating--md .ds-star-rating__svg {\n width: 20px;\n height: 20px;\n}\n\n.ds-star-rating--lg .ds-star-rating__svg {\n width: 28px;\n height: 28px;\n}\n\n/* --- Star Element --- */\n\n.ds-star-rating__star {\n position: relative;\n display: inline-flex;\n line-height: 0;\n}\n\n.ds-star-rating__svg {\n display: block;\n}\n\n.ds-star-rating__svg--filled {\n position: absolute;\n inset: 0;\n transition: clip-path 0.4s cubic-bezier(0.16, 1, 0.3, 1);\n transition-delay: var(--star-delay, 0ms);\n}\n\n/* Empty star */\n.ds-star-rating__empty {\n fill: var(--text-tertiary, rgba(255, 255, 255, 0.15));\n}\n\n/* Filled star — amber/gold */\n.ds-star-rating__filled {\n fill: var(--data-yellow, #eab308);\n}\n\n/* --- Entrance Animation --- */\n\n.ds-star-rating__star {\n opacity: 1;\n transform: scale(1);\n}\n\n/* When animate is enabled, stars start hidden */\n.ds-star-rating__star:not(.ds-star-rating__star--visible) {\n opacity: 0;\n transform: scale(0.5);\n}\n\n.ds-star-rating__star--visible {\n opacity: 1;\n transform: scale(1);\n transition:\n opacity 0.3s ease-out,\n transform 0.4s cubic-bezier(0.34, 1.56, 0.64, 1);\n transition-delay: var(--star-delay, 0ms);\n}\n\n/* --- Value Display --- */\n\n.ds-star-rating__value {\n font-family: var(--font-family);\n font-weight: var(--font-weight-semibold);\n color: var(--text-primary);\n line-height: 1;\n}\n\n.ds-star-rating--sm .ds-star-rating__value {\n font-size: var(--font-size-sm);\n}\n\n.ds-star-rating--md .ds-star-rating__value {\n font-size: var(--font-size-base);\n}\n\n.ds-star-rating--lg .ds-star-rating__value {\n font-size: var(--font-size-xl);\n}\n\n.ds-star-rating__value-label {\n font-weight: var(--font-weight-normal);\n color: var(--text-secondary);\n margin-left: var(--space-1);\n}\n\n/* --- Reduced Motion --- */\n\n@media (prefers-reduced-motion: reduce) {\n .ds-star-rating__star,\n .ds-star-rating__star--visible {\n transition: none;\n }\n\n .ds-star-rating__svg--filled {\n transition: none;\n }\n}\n","/* ============================================================================\n PLATFORM BADGE — TRUST SIGNAL\n ============================================================================ */\n\n.ds-platform-badge {\n display: inline-flex;\n align-items: center;\n gap: var(--space-2);\n padding: var(--space-1) var(--space-2);\n border-radius: var(--radius-badge, 999px);\n background: var(--glass-base, rgba(255, 255, 255, 0.05));\n border: 1px solid var(--rim-light-bottom, rgba(255, 255, 255, 0.06));\n transition:\n background var(--transition-base),\n border-color var(--transition-base),\n box-shadow var(--transition-base);\n white-space: nowrap;\n}\n\n.ds-platform-badge:hover {\n background: var(--glass-base-hover, rgba(255, 255, 255, 0.08));\n border-color: color-mix(in srgb, var(--platform-accent) 30%, transparent);\n box-shadow: 0 0 12px color-mix(in srgb, var(--platform-accent) 15%, transparent);\n}\n\n/* --- Icon --- */\n\n.ds-platform-badge__icon {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n line-height: 0;\n}\n\n/* --- Label --- */\n\n.ds-platform-badge__label {\n font-family: var(--font-family);\n font-weight: var(--font-weight-medium);\n color: var(--text-primary);\n line-height: 1;\n}\n\n/* --- Rating (full variant) --- */\n\n.ds-platform-badge__rating {\n display: inline-flex;\n align-items: center;\n gap: var(--space-1);\n}\n\n.ds-platform-badge__count {\n font-family: var(--font-family);\n font-size: var(--font-size-xs);\n color: var(--text-secondary);\n line-height: 1;\n}\n\n/* --- Size Variants --- */\n\n.ds-platform-badge--sm {\n padding: var(--space-1) var(--space-2);\n}\n\n.ds-platform-badge--sm .ds-platform-badge__label {\n font-size: var(--font-size-xs);\n}\n\n.ds-platform-badge--md {\n padding: var(--space-2) var(--space-3);\n}\n\n.ds-platform-badge--md .ds-platform-badge__label {\n font-size: var(--font-size-sm);\n}\n\n/* --- Display Mode Variants --- */\n\n.ds-platform-badge--icon-only {\n padding: var(--space-1);\n border-radius: var(--radius-badge, 999px);\n}\n\n.ds-platform-badge--full {\n gap: var(--space-2);\n}\n\n/* --- Reduced Motion --- */\n\n@media (prefers-reduced-motion: reduce) {\n .ds-platform-badge {\n transition: none;\n }\n}\n","/* ============================================================================\n SOCIAL PROOF SYSTEM — ELITE LEVEL\n ============================================================================\n Six visually distinct card variants, variable-size masonry grid,\n staggered entrance animations, and immersive featured layouts.\n ============================================================================ */\n\n/* ==========================================================================\n Base Card\n ========================================================================== */\n\n.ds-social-card {\n display: flex;\n flex-direction: column;\n gap: var(--space-4);\n padding: var(--space-6);\n border-radius: var(--radius-card);\n background: var(--glass-base);\n border: 1px solid var(--rim-light-bottom);\n box-shadow: var(--glass-shadow-outer);\n transition:\n transform 0.35s cubic-bezier(0.16, 1, 0.3, 1),\n box-shadow 0.35s cubic-bezier(0.16, 1, 0.3, 1),\n border-color 0.35s cubic-bezier(0.16, 1, 0.3, 1);\n height: 100%;\n position: relative;\n overflow: hidden;\n text-decoration: none;\n}\n\n.ds-social-card:hover {\n transform: translateY(-6px);\n background: var(--glass-base-hover);\n border-color: var(--rim-light-top);\n box-shadow:\n var(--glass-shadow-elevated),\n 0 0 20px rgba(var(--brand-pink-rgb, 249, 115, 22), 0.08);\n}\n\n/* ==========================================================================\n Entrance Animation\n ========================================================================== */\n\n.ds-social-card--animated {\n opacity: 0;\n transform: translateY(20px);\n animation: ds-card-entrance 0.5s cubic-bezier(0.16, 1, 0.3, 1) forwards;\n animation-delay: var(--card-delay, 0ms);\n}\n\n@keyframes ds-card-entrance {\n to {\n opacity: 1;\n transform: translateY(0);\n }\n}\n\n@media (prefers-reduced-motion: reduce) {\n .ds-social-card--animated {\n opacity: 1;\n transform: none;\n animation: none;\n }\n}\n\n/* ==========================================================================\n Variant: Rating-Only (compact horizontal)\n ========================================================================== */\n\n.ds-social-card--rating-only {\n flex-direction: row;\n align-items: center;\n gap: var(--space-4);\n padding: var(--space-4) var(--space-5);\n border-top: 2px solid var(--data-yellow, #eab308);\n}\n\n.ds-social-card__rating-row {\n display: flex;\n align-items: center;\n gap: var(--space-4);\n width: 100%;\n}\n\n.ds-social-card--rating-only .ds-social-card__meta {\n flex: 1;\n min-width: 0;\n}\n\n/* ==========================================================================\n Variant: Simple (quote with decorative marks)\n ========================================================================== */\n\n.ds-social-card--simple {\n justify-content: space-between;\n}\n\n/* Decorative quotation mark */\n.ds-social-card__deco-quote {\n position: absolute;\n top: var(--space-3);\n right: var(--space-4);\n font-size: 72px;\n font-family: Georgia, 'Times New Roman', serif;\n line-height: 1;\n background: linear-gradient(135deg, var(--brand-pink, #f97316), var(--brand-yellow, #8b5cf6));\n -webkit-background-clip: text;\n background-clip: text;\n -webkit-text-fill-color: transparent;\n opacity: 0.1;\n pointer-events: none;\n user-select: none;\n}\n\n/* ==========================================================================\n Variant: Social (rich, accent border)\n ========================================================================== */\n\n.ds-social-card--social {\n background: var(--glass-base-subtle, rgba(255, 255, 255, 0.03));\n border-left: 3px solid var(--brand-pink, #f97316);\n}\n\n/* Clamp text to 4 lines with gradient fade */\n.ds-social-card__quote--clamp {\n display: -webkit-box;\n -webkit-line-clamp: 4;\n -webkit-box-orient: vertical;\n overflow: hidden;\n position: relative;\n}\n\n/* ==========================================================================\n Variant: Video (cinematic thumbnail)\n ========================================================================== */\n\n.ds-social-card--video {\n padding: 0;\n gap: 0;\n}\n\n.ds-social-card--case-study {\n padding: 0;\n gap: 0;\n}\n\n.ds-social-card__media {\n width: 100%;\n aspect-ratio: 16/9;\n overflow: hidden;\n position: relative;\n background: var(--glass-base-active);\n}\n\n.ds-social-card__media img {\n width: 100%;\n height: 100%;\n object-fit: cover;\n transition: transform 0.6s cubic-bezier(0.16, 1, 0.3, 1);\n}\n\n.ds-social-card__media-placeholder {\n width: 100%;\n height: 100%;\n background: linear-gradient(135deg,\n var(--glass-base-active, rgba(0, 0, 0, 0.4)) 0%,\n var(--glass-base, rgba(0, 0, 0, 0.2)) 100%\n );\n}\n\n.ds-social-card:hover .ds-social-card__media img {\n transform: scale(1.05);\n}\n\n/* Video: dark gradient overlay on thumbnail */\n.ds-social-card--video .ds-social-card__media::after {\n content: '';\n position: absolute;\n inset: 0;\n background: linear-gradient(to top, var(--overlay-medium, rgba(0, 0, 0, 0.5)) 0%, transparent 60%);\n pointer-events: none;\n z-index: 1;\n}\n\n/* Play Button Overlay */\n.ds-social-card__play {\n position: absolute;\n inset: 0;\n display: flex;\n align-items: center;\n justify-content: center;\n z-index: 2;\n}\n\n.ds-social-card__play-icon {\n width: 48px;\n height: 48px;\n background: var(--surface-bright, rgba(255, 255, 255, 0.9));\n border-radius: 50%;\n display: flex;\n align-items: center;\n justify-content: center;\n color: var(--text-on-bright, #000);\n box-shadow: var(--glass-shadow-elevated);\n transition: transform 0.3s cubic-bezier(0.34, 1.56, 0.64, 1);\n position: relative;\n}\n\n/* Pulse ring animation on play button */\n.ds-social-card__play-icon::after {\n content: '';\n position: absolute;\n inset: -6px;\n border-radius: 50%;\n border: 2px solid var(--border-subtle, rgba(255, 255, 255, 0.3));\n animation: ds-play-pulse 2s ease-out infinite;\n}\n\n@keyframes ds-play-pulse {\n 0% {\n transform: scale(0.85);\n opacity: 1;\n }\n 100% {\n transform: scale(1.4);\n opacity: 0;\n }\n}\n\n.ds-social-card:hover .ds-social-card__play-icon {\n transform: scale(1.1);\n}\n\n/* ==========================================================================\n Variant: Case Study (wide, structured)\n ========================================================================== */\n\n.ds-social-card--case-study {\n border-bottom: 3px solid transparent;\n border-image: linear-gradient(\n to right,\n var(--brand-pink, #f97316),\n var(--brand-yellow, #8b5cf6)\n ) 1;\n}\n\n/* Case study header */\n.ds-social-card__cs-header {\n display: flex;\n align-items: center;\n gap: var(--space-3);\n}\n\n.ds-social-card__cs-logo {\n width: 40px;\n height: 40px;\n border-radius: var(--radius-badge, 8px);\n overflow: hidden;\n flex-shrink: 0;\n display: flex;\n align-items: center;\n justify-content: center;\n background: var(--glass-base-active, rgba(0, 0, 0, 0.1));\n}\n\n.ds-social-card__cs-logo img {\n max-width: 100%;\n max-height: 100%;\n object-fit: contain;\n}\n\n.ds-social-card__cs-company {\n display: flex;\n align-items: center;\n gap: var(--space-2);\n flex-wrap: wrap;\n}\n\n.ds-social-card__cs-industry {\n font-family: var(--font-family-mono, monospace);\n font-size: var(--font-size-xs);\n color: var(--brand-pink, #f97316);\n background: rgba(var(--brand-pink-rgb, 249, 115, 22), 0.1);\n padding: var(--space-1) var(--space-2);\n border-radius: var(--radius-badge, 999px);\n line-height: 1;\n}\n\n.ds-social-card__cs-headline {\n font-family: var(--font-family);\n font-size: var(--font-size-lg);\n font-weight: var(--font-weight-semibold);\n color: var(--text-primary);\n line-height: var(--line-height-tight);\n margin: 0;\n}\n\n/* Metrics strip */\n.ds-social-card__cs-metrics {\n display: flex;\n gap: var(--space-4);\n padding: var(--space-3) 0;\n border-top: 1px solid var(--rim-light-bottom, rgba(255, 255, 255, 0.06));\n border-bottom: 1px solid var(--rim-light-bottom, rgba(255, 255, 255, 0.06));\n}\n\n.ds-social-card__cs-metric {\n display: flex;\n flex-direction: column;\n gap: var(--space-1);\n flex: 1;\n min-width: 0;\n}\n\n.ds-social-card__cs-metric-value {\n font-family: var(--font-family);\n font-size: var(--font-size-xl);\n font-weight: var(--font-weight-bold);\n color: var(--brand-pink, #f97316);\n line-height: 1;\n}\n\n.ds-social-card__cs-metric-label {\n font-family: var(--font-family);\n font-size: var(--font-size-xs);\n color: var(--text-secondary);\n line-height: 1.2;\n}\n\n/* Quote excerpt in case study */\n.ds-social-card__quote--excerpt {\n font-style: italic;\n color: var(--text-secondary);\n font-size: var(--font-size-sm);\n}\n\n/* ==========================================================================\n Shared Content Styles\n ========================================================================== */\n\n.ds-social-card__content {\n padding: var(--space-6);\n display: flex;\n flex-direction: column;\n gap: var(--space-4);\n flex: 1;\n}\n\n/* Simple/social variants don't zero-pad, so content already inside padded card */\n.ds-social-card--simple .ds-social-card__content,\n.ds-social-card--social .ds-social-card__content {\n padding: 0;\n}\n\n/* Author Block */\n.ds-social-card__author {\n display: flex;\n align-items: center;\n gap: var(--space-3);\n margin-top: auto;\n}\n\n.ds-social-card__avatar {\n width: 40px;\n height: 40px;\n border-radius: 50%;\n overflow: hidden;\n background: var(--glass-base-active);\n flex-shrink: 0;\n}\n\n.ds-social-card__avatar img {\n width: 100%;\n height: 100%;\n object-fit: cover;\n}\n\n.ds-social-card__meta {\n display: flex;\n flex-direction: column;\n line-height: 1.2;\n}\n\n.ds-social-card__name {\n font-family: var(--font-family);\n font-weight: var(--font-weight-semibold);\n font-size: var(--font-size-sm);\n color: var(--text-primary);\n}\n\n.ds-social-card__handle {\n color: var(--text-tertiary);\n font-weight: var(--font-weight-normal);\n margin-left: var(--space-1);\n}\n\n.ds-social-card__role {\n font-family: var(--font-family);\n font-size: var(--font-size-xs);\n color: var(--text-secondary);\n}\n\n/* Quote Text */\n.ds-social-card__quote {\n font-family: var(--font-family);\n font-size: var(--font-size-base);\n color: var(--text-secondary);\n line-height: var(--line-height-relaxed);\n margin: 0;\n}\n\n.ds-social-card--simple .ds-social-card__quote {\n font-size: var(--font-size-lg);\n color: var(--text-primary);\n}\n\n/* Source Icon (platform badge) */\n.ds-social-card__source {\n position: absolute;\n top: var(--space-6);\n right: var(--space-6);\n z-index: 1;\n}\n\n/* Simple variant: source below deco quote */\n.ds-social-card--simple .ds-social-card__source {\n position: static;\n}\n\n/* Badges */\n.ds-social-card__badges {\n display: flex;\n flex-wrap: wrap;\n gap: var(--space-2);\n margin-bottom: var(--space-2);\n}\n\n.ds-social-card__media .ds-social-card__badges {\n position: absolute;\n bottom: var(--space-4);\n left: var(--space-4);\n z-index: 2;\n margin: 0;\n}\n\n.ds-social-card__badge {\n font-family: var(--font-family-mono);\n font-size: var(--font-size-xs);\n background: var(--overlay-heavy, rgba(0, 0, 0, 0.6));\n color: var(--text-on-dark, white);\n padding: var(--space-1) var(--space-2);\n border-radius: var(--radius-badge);\n backdrop-filter: blur(4px);\n border: 1px solid var(--border-subtle, rgba(255, 255, 255, 0.1));\n}\n\n/* CTA Link */\n.ds-social-card__cta {\n margin-top: var(--space-4);\n font-size: var(--font-size-sm);\n color: var(--brand-pink);\n font-weight: var(--font-weight-medium);\n transition: color 0.3s cubic-bezier(0.16, 1, 0.3, 1), transform 0.3s cubic-bezier(0.16, 1, 0.3, 1);\n display: inline-flex;\n align-items: center;\n gap: var(--space-1);\n}\n\n.ds-social-card:hover .ds-social-card__cta {\n color: var(--brand-pink-bright);\n transform: translateX(4px);\n}\n\n/* ==========================================================================\n Grid (Wall of Love)\n ========================================================================== */\n\n.ds-social-grid {\n display: grid;\n gap: var(--space-6);\n grid-auto-flow: dense;\n}\n\n.ds-social-grid--3-col {\n grid-template-columns: 1fr;\n}\n\n@media (min-width: 640px) {\n .ds-social-grid--2-col {\n grid-template-columns: repeat(2, 1fr);\n }\n .ds-social-grid--3-col {\n grid-template-columns: repeat(2, 1fr);\n }\n}\n\n@media (min-width: 1024px) {\n .ds-social-grid--3-col {\n grid-template-columns: repeat(3, 1fr);\n }\n .ds-social-grid--4-col {\n grid-template-columns: repeat(4, 1fr);\n }\n}\n\n/* Variable-size: span 2 columns */\n.ds-social-grid__item--span-2 {\n grid-column: span 1;\n}\n\n@media (min-width: 640px) {\n .ds-social-grid__item--span-2 {\n grid-column: span 2;\n }\n}\n\n/* Masonry Fallback using Columns */\n.ds-social-masonry {\n column-count: 1;\n column-gap: var(--space-6);\n}\n\n@media (min-width: 640px) {\n .ds-social-masonry {\n column-count: 2;\n }\n}\n\n@media (min-width: 1024px) {\n .ds-social-masonry {\n column-count: 3;\n }\n}\n\n.ds-social-masonry .ds-social-card {\n break-inside: avoid;\n margin-bottom: var(--space-6);\n}\n\n/* ==========================================================================\n Spotlight Effect: Dim siblings on hover\n ========================================================================== */\n\n.ds-social-carousel:has(.ds-social-card:hover) .ds-social-card:not(:hover),\n.ds-social-grid:has(.ds-social-card:hover) .ds-social-card:not(:hover) {\n opacity: 0.6;\n filter: grayscale(0.3);\n transform: scale(0.98);\n transition:\n opacity 0.3s ease,\n filter 0.3s ease,\n transform 0.3s ease;\n}\n\n/* ==========================================================================\n Carousel (Waterfall / Feed)\n ========================================================================== */\n\n.ds-social-carousel {\n position: relative;\n overflow: hidden;\n padding: var(--space-4) 0;\n mask-image: linear-gradient(to right, transparent, black 5%, black 95%, transparent);\n -webkit-mask-image: linear-gradient(to right, transparent, black 5%, black 95%, transparent);\n}\n\n.ds-social-carousel__track {\n display: flex;\n gap: var(--space-6);\n width: max-content;\n animation: ds-social-scroll 60s linear infinite;\n}\n\n.ds-social-carousel:hover .ds-social-carousel__track {\n animation-play-state: paused;\n}\n\n.ds-social-carousel .ds-social-card {\n width: 320px;\n flex-shrink: 0;\n white-space: normal;\n}\n\n@keyframes ds-social-scroll {\n from {\n transform: translateX(0);\n }\n to {\n transform: translateX(-50%);\n }\n}\n\n/* ==========================================================================\n Featured Video / Testimonial\n ========================================================================== */\n\n.ds-social-featured-section {\n /* Container for the featured block */\n}\n\n.ds-social-featured {\n display: grid;\n gap: var(--space-8);\n background: var(--glass-base);\n border-radius: var(--radius-panel);\n border: 1px solid var(--rim-light-bottom);\n overflow: hidden;\n padding: var(--space-8);\n}\n\n@media (min-width: 1024px) {\n .ds-social-featured--horizontal {\n grid-template-columns: 1.2fr 0.8fr;\n align-items: center;\n padding: 0;\n }\n\n .ds-social-featured--horizontal .ds-social-featured__content {\n padding: var(--space-12);\n }\n\n .ds-social-featured--horizontal .ds-social-featured__media {\n height: 100%;\n min-height: 400px;\n }\n}\n\n/* --- Featured: Cinematic variant --- */\n\n.ds-social-featured--cinematic {\n background: linear-gradient(\n 135deg,\n var(--overlay-heavy, rgba(0, 0, 0, 0.8)) 0%,\n var(--glass-base, rgba(0, 0, 0, 0.4)) 100%\n );\n border-color: rgba(var(--brand-pink-rgb, 249, 115, 22), 0.15);\n}\n\n.ds-social-featured--cinematic .ds-social-featured__quote {\n font-size: var(--font-size-3xl);\n}\n\n/* --- Featured: Spotlight variant (centered) --- */\n\n.ds-social-featured--spotlight {\n text-align: center;\n justify-items: center;\n background: radial-gradient(\n ellipse at center,\n rgba(var(--brand-pink-rgb, 249, 115, 22), 0.06) 0%,\n var(--glass-base, rgba(0, 0, 0, 0.2)) 70%\n );\n}\n\n.ds-social-featured--spotlight .ds-social-featured__quote {\n max-width: 700px;\n}\n\n.ds-social-featured--spotlight .ds-social-featured__author-large {\n justify-content: center;\n}\n\n/* --- Featured shared styles --- */\n\n.ds-social-featured__media {\n position: relative;\n width: 100%;\n aspect-ratio: 16/9;\n border-radius: var(--radius-card);\n overflow: hidden;\n background: var(--bg-dark, #000);\n display: flex;\n align-items: center;\n justify-content: center;\n}\n\n@media (min-width: 1024px) {\n .ds-social-featured--horizontal .ds-social-featured__media {\n border-radius: 0;\n }\n}\n\n.ds-social-featured__quote {\n font-family: var(--font-family);\n font-size: var(--font-size-2xl);\n font-weight: var(--font-weight-medium);\n color: var(--text-primary);\n line-height: var(--line-height-tight);\n margin-bottom: var(--space-8);\n}\n\n.ds-social-featured__author-large {\n display: flex;\n align-items: center;\n gap: var(--space-4);\n}\n\n.ds-social-featured__author-large .ds-social-card__avatar {\n width: 64px;\n height: 64px;\n}\n\n.ds-social-featured__author-large .ds-social-card__name {\n font-size: var(--font-size-lg);\n}\n\n/* ==========================================================================\n Logos (Marquee & Grid)\n ========================================================================== */\n\n.ds-social-logos {\n overflow: hidden;\n}\n\n.ds-social-logos__marquee {\n display: flex;\n overflow: hidden;\n user-select: none;\n gap: var(--space-12);\n mask-image: linear-gradient(to right, transparent, black 10%, black 90%, transparent);\n -webkit-mask-image: linear-gradient(to right, transparent, black 10%, black 90%, transparent);\n}\n\n.ds-social-logos__track {\n flex-shrink: 0;\n display: flex;\n align-items: center;\n justify-content: space-around;\n gap: var(--space-12);\n min-width: 100%;\n animation: ds-scroll var(--marquee-duration, 40s) linear infinite;\n transform: translateZ(0);\n}\n\n.ds-social-logos__marquee:hover .ds-social-logos__track {\n animation-play-state: paused;\n}\n\n@keyframes ds-scroll {\n from {\n transform: translateX(0);\n }\n to {\n transform: translateX(calc(-100% - var(--space-12)));\n }\n}\n\n.ds-social-logos__item {\n opacity: 0.5;\n filter: grayscale(100%);\n transition: opacity var(--transition-base), filter var(--transition-base), transform var(--transition-base);\n max-width: 160px;\n display: flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n text-decoration: none;\n position: relative;\n}\n\n.ds-social-logos__item:hover {\n opacity: 1;\n filter: grayscale(0%);\n transform: scale(1.05);\n}\n\n.ds-social-logos__item img,\n.ds-social-logos__item svg {\n max-height: 40px;\n width: auto;\n display: block;\n}\n\n.ds-social-logos__badge {\n position: absolute;\n bottom: -16px;\n right: -12px;\n font-family: var(--font-family-mono);\n font-size: 10px;\n line-height: 1;\n font-weight: 500;\n padding: 3px 6px;\n border-radius: 999px;\n background: var(--glass-base, rgba(255, 255, 255, 0.1));\n color: var(--text-secondary);\n border: 1px solid var(--border-subtle, rgba(255, 255, 255, 0.15));\n backdrop-filter: blur(8px);\n white-space: nowrap;\n pointer-events: none;\n transition: opacity var(--transition-base), background var(--transition-base), color var(--transition-base), border-color var(--transition-base);\n opacity: 0.8;\n}\n\n.ds-social-logos__item:hover .ds-social-logos__badge {\n opacity: 1;\n background: var(--glass-base-hover, rgba(255, 255, 255, 0.15));\n color: var(--text-primary);\n border-color: var(--border-subtle-hover, rgba(255, 255, 255, 0.3));\n}\n\n/* ==========================================================================\n Reduced Motion — Global\n ========================================================================== */\n\n@media (prefers-reduced-motion: reduce) {\n .ds-social-card {\n transition: none;\n }\n\n .ds-social-card:hover {\n transform: none;\n }\n\n .ds-social-card__media img {\n transition: none;\n }\n\n .ds-social-card:hover .ds-social-card__media img {\n transform: none;\n }\n\n .ds-social-card__play-icon::after {\n animation: none;\n }\n\n .ds-social-carousel__track {\n animation: none;\n }\n\n .ds-social-logos__track {\n animation: none;\n }\n\n .ds-social-carousel:has(.ds-social-card:hover) .ds-social-card:not(:hover),\n .ds-social-grid:has(.ds-social-card:hover) .ds-social-card:not(:hover) {\n opacity: 1;\n filter: none;\n transform: none;\n transition: none;\n }\n}\n","/* Layout Primitives Base Styles */\n\n.ds-box {\n display: block;\n box-sizing: border-box;\n min-width: 0;\n}\n\n.ds-stack {\n display: flex;\n flex-direction: column;\n}\n\n.ds-stack--horizontal {\n flex-direction: row;\n}\n\n.ds-grid {\n display: grid;\n}\n\n/* ── Grid responsive columns ──────────────────────────────────────────────────\n Auto-collapse to fewer columns at narrow viewports.\n These classes are overrideable by Tailwind responsive utilities (e.g.\n className=\"grid-cols-1 md:grid-cols-2 lg:grid-cols-4\") because Tailwind\n utilities load after DS styles and win at equal specificity.\n ──────────────────────────────────────────────────────────────────────────── */\n\n/* 1 column — no responsive change */\n.ds-grid--cols-1 {\n grid-template-columns: repeat(1, 1fr);\n}\n\n/* 2 columns → 1 on mobile */\n.ds-grid--cols-2 {\n grid-template-columns: repeat(1, 1fr);\n}\n\n@media (min-width: 640px) {\n .ds-grid--cols-2 {\n grid-template-columns: repeat(2, 1fr);\n }\n}\n\n/* 3 columns → 1 on mobile, 2 on sm, 3 on lg */\n.ds-grid--cols-3 {\n grid-template-columns: repeat(1, 1fr);\n}\n\n@media (min-width: 640px) {\n .ds-grid--cols-3 {\n grid-template-columns: repeat(2, 1fr);\n }\n}\n\n@media (min-width: 1024px) {\n .ds-grid--cols-3 {\n grid-template-columns: repeat(3, 1fr);\n }\n}\n\n/* 4 columns → 1 on mobile, 2 on sm, 4 on lg */\n.ds-grid--cols-4 {\n grid-template-columns: repeat(1, 1fr);\n}\n\n@media (min-width: 640px) {\n .ds-grid--cols-4 {\n grid-template-columns: repeat(2, 1fr);\n }\n}\n\n@media (min-width: 1024px) {\n .ds-grid--cols-4 {\n grid-template-columns: repeat(4, 1fr);\n }\n}\n\n/* 5 columns → 1 on mobile, 2 on sm, 3 on md, 5 on xl */\n.ds-grid--cols-5 {\n grid-template-columns: repeat(1, 1fr);\n}\n\n@media (min-width: 640px) {\n .ds-grid--cols-5 {\n grid-template-columns: repeat(2, 1fr);\n }\n}\n\n@media (min-width: 768px) {\n .ds-grid--cols-5 {\n grid-template-columns: repeat(3, 1fr);\n }\n}\n\n@media (min-width: 1280px) {\n .ds-grid--cols-5 {\n grid-template-columns: repeat(5, 1fr);\n }\n}\n\n/* 6 columns → 1 on mobile, 2 on sm, 3 on md, 6 on xl */\n.ds-grid--cols-6 {\n grid-template-columns: repeat(1, 1fr);\n}\n\n@media (min-width: 640px) {\n .ds-grid--cols-6 {\n grid-template-columns: repeat(2, 1fr);\n }\n}\n\n@media (min-width: 768px) {\n .ds-grid--cols-6 {\n grid-template-columns: repeat(3, 1fr);\n }\n}\n\n@media (min-width: 1280px) {\n .ds-grid--cols-6 {\n grid-template-columns: repeat(6, 1fr);\n }\n}\n\n/* ── Grid expansion on wide screens (Space Budget Ladder) ─────────────────\n Grids expand to MORE columns on ultra-wide viewports.\n The .ds-grid--fixed class opts out of expansion.\n ──────────────────────────────────────────────────────────────────────────── */\n\n/* 3xl (1920px): expand 3→4, 4→4 stays, 5→5 stays, 6→6 stays */\n@media (min-width: 1920px) {\n .ds-grid--cols-3:not(.ds-grid--fixed) {\n grid-template-columns: repeat(4, 1fr);\n }\n}\n\n/* 4xl (2560px): expand 2→3, 3→4, 4→5, 5→6, 6→8 */\n@media (min-width: 2560px) {\n .ds-grid--cols-2:not(.ds-grid--fixed) {\n grid-template-columns: repeat(3, 1fr);\n }\n .ds-grid--cols-3:not(.ds-grid--fixed) {\n grid-template-columns: repeat(4, 1fr);\n }\n .ds-grid--cols-4:not(.ds-grid--fixed) {\n grid-template-columns: repeat(5, 1fr);\n }\n .ds-grid--cols-5:not(.ds-grid--fixed) {\n grid-template-columns: repeat(6, 1fr);\n }\n .ds-grid--cols-6:not(.ds-grid--fixed) {\n grid-template-columns: repeat(8, 1fr);\n }\n}\n\n/* 5xl (3840px): expand 2→3, 3→5, 4→6, 5→8, 6→10 */\n@media (min-width: 3840px) {\n .ds-grid--cols-2:not(.ds-grid--fixed) {\n grid-template-columns: repeat(3, 1fr);\n }\n .ds-grid--cols-3:not(.ds-grid--fixed) {\n grid-template-columns: repeat(5, 1fr);\n }\n .ds-grid--cols-4:not(.ds-grid--fixed) {\n grid-template-columns: repeat(6, 1fr);\n }\n .ds-grid--cols-5:not(.ds-grid--fixed) {\n grid-template-columns: repeat(8, 1fr);\n }\n .ds-grid--cols-6:not(.ds-grid--fixed) {\n grid-template-columns: repeat(10, 1fr);\n }\n}\n\n/* ── Container — Responsive max-width + padding ladder ────────────────────── */\n\n:root {\n --container-default-max: 1200px;\n}\n\n@media (min-width: 1537px) {\n :root { --container-default-max: 1400px; }\n}\n\n@media (min-width: 1921px) {\n :root { --container-default-max: 1600px; }\n}\n\n@media (min-width: 2561px) {\n :root { --container-default-max: 1920px; }\n}\n\n.ds-container {\n width: 100%;\n margin-left: auto;\n margin-right: auto;\n padding-left: var(--container-padding-x, var(--space-4));\n padding-right: var(--container-padding-x, var(--space-4));\n}\n\n/* Container horizontal padding scales with viewport */\n@media (min-width: 1537px) {\n .ds-container {\n --container-padding-x: var(--space-6);\n }\n}\n\n@media (min-width: 2561px) {\n .ds-container {\n --container-padding-x: var(--space-8);\n }\n}\n\n/* Section block — lightweight <section> with vertical padding */\n\n.ds-section-block {\n position: relative;\n}\n\n.ds-section-block--none {\n padding-top: 0;\n padding-bottom: 0;\n}\n\n.ds-section-block--sm {\n padding-top: var(--space-8, 2rem);\n padding-bottom: var(--space-8, 2rem);\n}\n\n.ds-section-block--md {\n padding-top: var(--space-16, 4rem);\n padding-bottom: var(--space-16, 4rem);\n}\n\n@media (min-width: 768px) {\n .ds-section-block--md {\n padding-top: var(--space-24, 6rem);\n padding-bottom: var(--space-24, 6rem);\n }\n}\n\n.ds-section-block--lg {\n padding-top: var(--space-24, 6rem);\n padding-bottom: var(--space-24, 6rem);\n}\n\n@media (min-width: 768px) {\n .ds-section-block--lg {\n padding-top: var(--space-32, 8rem);\n padding-bottom: var(--space-32, 8rem);\n }\n}\n\n.ds-visually-hidden {\n position: absolute;\n width: 1px;\n height: 1px;\n padding: 0;\n margin: -1px;\n overflow: hidden;\n clip-path: inset(50%);\n white-space: nowrap;\n border-width: 0;\n}\n","/* ============================================================================\n SECTION SHELL\n ============================================================================ */\n\n.ds-section {\n position: relative;\n width: 100%;\n padding: var(--space-16) 0;\n box-sizing: border-box;\n}\n\n/* Background Variants */\n.ds-section--bg-default {\n background-color: transparent;\n}\n\n.ds-section--bg-muted {\n background-color: var(--surface-alpha-1);\n}\n\n.ds-section--bg-brand {\n background: radial-gradient(circle at 50% 0%, rgba(var(--brand-pink-rgb), 0.15), transparent 70%);\n}\n\n/* Padding Sizes */\n.ds-section--padding-none {\n padding: 0;\n}\n.ds-section--padding-sm {\n padding: var(--space-8) 0;\n}\n.ds-section--padding-md {\n padding: var(--space-16) 0;\n}\n.ds-section--padding-lg {\n padding: var(--space-20) 0;\n}\n\n/* ==========================================================================\n Section Header\n ========================================================================== */\n\n.ds-section-header {\n margin-bottom: var(--space-12);\n display: flex;\n flex-direction: column;\n gap: var(--space-4);\n}\n\n.ds-section-header--center {\n text-align: center;\n align-items: center;\n}\n.ds-section-header--left {\n text-align: left;\n align-items: flex-start;\n}\n.ds-section-header--right {\n text-align: right;\n align-items: flex-end;\n}\n\n.ds-section-header__eyebrow {\n font-family: var(--font-family-mono);\n font-size: var(--font-size-xs);\n color: var(--brand-pink);\n text-transform: uppercase;\n letter-spacing: var(--letter-spacing-wide);\n font-weight: var(--font-weight-medium);\n}\n\n.ds-section-header__title {\n font-family: var(--font-family);\n font-size: var(--font-size-3xl);\n font-weight: var(--font-weight-bold);\n color: var(--text-primary);\n line-height: var(--line-height-tight);\n margin: 0;\n}\n\n.ds-section-header__subtitle {\n font-family: var(--font-family);\n font-size: var(--font-size-lg);\n color: var(--text-secondary);\n max-width: 65ch;\n line-height: var(--line-height-relaxed);\n margin: 0;\n}\n\n/* Responsive adjustments — Mobile */\n@media (max-width: 768px) {\n .ds-section {\n padding: var(--space-10) 0;\n }\n\n .ds-section--padding-lg {\n padding: var(--space-12) 0;\n }\n\n .ds-section-header__title {\n font-size: var(--font-size-2xl);\n }\n}\n\n/* Responsive adjustments — Wide (>=1920px) */\n@media (min-width: 1920px) {\n .ds-section {\n padding: var(--space-20) 0;\n }\n\n .ds-section--padding-sm {\n padding: var(--space-10) 0;\n }\n\n .ds-section--padding-md {\n padding: var(--space-20) 0;\n }\n\n .ds-section--padding-lg {\n padding: calc(var(--space-20) * 1.25) 0;\n }\n\n .ds-section-header {\n margin-bottom: var(--space-16);\n }\n\n .ds-section-header__title {\n font-size: var(--font-size-4xl);\n }\n}\n\n/* Responsive adjustments — Ultra (>=2560px) */\n@media (min-width: 2560px) {\n .ds-section {\n padding: calc(var(--space-20) * 1.5) 0;\n }\n\n .ds-section--padding-lg {\n padding: calc(var(--space-20) * 1.75) 0;\n }\n\n .ds-section-header {\n margin-bottom: var(--space-20);\n gap: var(--space-6);\n }\n\n .ds-section-header__title {\n font-size: var(--font-size-5xl);\n }\n\n .ds-section-header__subtitle {\n font-size: var(--font-size-xl);\n }\n}\n\n/* Responsive adjustments — 4K+ (>=3840px) */\n@media (min-width: 3840px) {\n .ds-section {\n padding: calc(var(--space-20) * 2) 0;\n }\n\n .ds-section--padding-lg {\n padding: calc(var(--space-20) * 2.5) 0;\n }\n\n .ds-section-header__title {\n font-size: var(--font-size-6xl);\n }\n}\n","/* ============================================================================\n VIDEO LIGHTBOX — MODAL VIDEO PLAYER\n ============================================================================ */\n\n/* --- Screen Reader Only utility --- */\n.ds-sr-only {\n position: absolute;\n width: 1px;\n height: 1px;\n padding: 0;\n margin: -1px;\n overflow: hidden;\n clip: rect(0, 0, 0, 0);\n white-space: nowrap;\n border: 0;\n}\n\n/* --- Trigger --- */\n\n.ds-video-lightbox__trigger {\n all: unset;\n cursor: pointer;\n display: block;\n width: 100%;\n}\n\n.ds-video-lightbox__thumbnail-wrap {\n position: relative;\n width: 100%;\n aspect-ratio: 16 / 9;\n border-radius: var(--radius-card);\n overflow: hidden;\n background: var(--glass-base-active, rgba(0, 0, 0, 0.3));\n}\n\n.ds-video-lightbox__thumbnail {\n width: 100%;\n height: 100%;\n object-fit: cover;\n transition: transform 0.6s cubic-bezier(0.16, 1, 0.3, 1);\n}\n\n.ds-video-lightbox__trigger:hover .ds-video-lightbox__thumbnail {\n transform: scale(1.05);\n}\n\n.ds-video-lightbox__placeholder {\n width: 100%;\n height: 100%;\n background: linear-gradient(135deg,\n var(--glass-base-active, rgba(0, 0, 0, 0.4)) 0%,\n var(--glass-base, rgba(0, 0, 0, 0.2)) 100%\n );\n}\n\n/* --- Play Button Overlay --- */\n\n.ds-video-lightbox__overlay {\n position: absolute;\n inset: 0;\n display: flex;\n align-items: center;\n justify-content: center;\n background: linear-gradient(to top, rgba(0, 0, 0, 0.5) 0%, transparent 60%);\n transition: background 0.3s ease;\n}\n\n.ds-video-lightbox__trigger:hover .ds-video-lightbox__overlay {\n background: linear-gradient(to top, rgba(0, 0, 0, 0.3) 0%, transparent 60%);\n}\n\n.ds-video-lightbox__play-btn {\n transition: transform 0.3s cubic-bezier(0.34, 1.56, 0.64, 1);\n}\n\n.ds-video-lightbox__trigger:hover .ds-video-lightbox__play-btn {\n transform: scale(1.1);\n}\n\n.ds-video-lightbox__play-bg {\n fill: rgba(0, 0, 0, 0.6);\n transition: fill 0.3s ease;\n}\n\n.ds-video-lightbox__trigger:hover .ds-video-lightbox__play-bg {\n fill: var(--brand-pink, #f97316);\n}\n\n/* --- Play Button Pulse Ring --- */\n\n.ds-video-lightbox__play-btn::after {\n content: '';\n position: absolute;\n inset: -8px;\n border-radius: 50%;\n border: 2px solid rgba(255, 255, 255, 0.3);\n animation: ds-lightbox-pulse 2s ease-out infinite;\n}\n\n@keyframes ds-lightbox-pulse {\n 0% {\n transform: scale(0.8);\n opacity: 1;\n }\n 100% {\n transform: scale(1.4);\n opacity: 0;\n }\n}\n\n/* --- Backdrop --- */\n\n.ds-video-lightbox__backdrop {\n position: fixed;\n inset: 0;\n background: rgba(0, 0, 0, 0.85);\n backdrop-filter: blur(8px);\n -webkit-backdrop-filter: blur(8px);\n z-index: 9998;\n animation: ds-lightbox-fade-in 0.25s ease-out;\n}\n\n/* --- Popup --- */\n\n.ds-video-lightbox__popup {\n position: fixed;\n inset: 0;\n display: flex;\n align-items: center;\n justify-content: center;\n padding: var(--space-6);\n z-index: 9999;\n animation: ds-lightbox-scale-in 0.3s cubic-bezier(0.16, 1, 0.3, 1);\n}\n\n/* --- Close Button --- */\n\n.ds-video-lightbox__close {\n all: unset;\n position: absolute;\n top: var(--space-4);\n right: var(--space-4);\n width: 44px;\n height: 44px;\n display: flex;\n align-items: center;\n justify-content: center;\n color: var(--text-on-dark, white);\n opacity: 0.7;\n cursor: pointer;\n border-radius: 50%;\n background: rgba(255, 255, 255, 0.1);\n transition:\n opacity var(--transition-base),\n background var(--transition-base);\n z-index: 1;\n}\n\n.ds-video-lightbox__close:hover {\n opacity: 1;\n background: rgba(255, 255, 255, 0.2);\n}\n\n.ds-video-lightbox__close:focus-visible {\n outline: 2px solid var(--brand-pink, #f97316);\n outline-offset: 2px;\n}\n\n/* --- Iframe Container --- */\n\n.ds-video-lightbox__iframe-wrap {\n width: 100%;\n max-width: 1200px;\n aspect-ratio: 16 / 9;\n border-radius: var(--radius-card, 12px);\n overflow: hidden;\n background: black;\n box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.5);\n}\n\n.ds-video-lightbox__iframe {\n width: 100%;\n height: 100%;\n border: none;\n}\n\n/* --- Animations --- */\n\n@keyframes ds-lightbox-fade-in {\n from { opacity: 0; }\n to { opacity: 1; }\n}\n\n@keyframes ds-lightbox-scale-in {\n from {\n opacity: 0;\n transform: scale(0.95);\n }\n to {\n opacity: 1;\n transform: scale(1);\n }\n}\n\n/* --- Reduced Motion --- */\n\n@media (prefers-reduced-motion: reduce) {\n .ds-video-lightbox__backdrop,\n .ds-video-lightbox__popup {\n animation: none;\n }\n\n .ds-video-lightbox__thumbnail {\n transition: none;\n }\n\n .ds-video-lightbox__play-btn::after {\n animation: none;\n }\n\n .ds-video-lightbox__play-btn {\n transition: none;\n }\n}\n",".ds-metric-counter {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n text-align: center;\n font-family: var(--font-family);\n}\n\n.ds-metric-counter__value-wrapper {\n display: flex;\n align-items: baseline;\n justify-content: center;\n color: var(--text-primary);\n line-height: var(--line-height-display);\n}\n\n.ds-metric-counter__prefix,\n.ds-metric-counter__suffix {\n font-size: var(--font-size-3xl);\n font-weight: var(--font-weight-bold);\n color: rgb(var(--accent-rgb));\n}\n\n.ds-metric-counter__value {\n font-size: var(--font-size-5xl);\n font-weight: var(--font-weight-bold);\n letter-spacing: var(--letter-spacing-display);\n font-variant-numeric: tabular-nums;\n}\n\n.ds-metric-counter__label {\n margin-top: var(--space-2);\n font-size: var(--font-size-base);\n color: var(--text-secondary);\n font-weight: var(--font-weight-medium);\n}\n\n@media (max-width: 640px) {\n .ds-metric-counter__prefix,\n .ds-metric-counter__suffix {\n font-size: var(--font-size-2xl);\n }\n\n .ds-metric-counter__value {\n font-size: var(--font-size-4xl);\n }\n}\n"],"mappings":"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","names":[]}
|
|
@@ -0,0 +1,258 @@
|
|
|
1
|
+
import * as React$1 from 'react';
|
|
2
|
+
import React__default from 'react';
|
|
3
|
+
import { c as SectionShellProps } from '../SectionShell-BfBw5q0Y.cjs';
|
|
4
|
+
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
5
|
+
|
|
6
|
+
interface SocialProofCarouselProps extends SectionShellProps {
|
|
7
|
+
children: React.ReactNode;
|
|
8
|
+
}
|
|
9
|
+
declare const SocialProofCarousel: React$1.ForwardRefExoticComponent<SocialProofCarouselProps & React$1.RefAttributes<HTMLDivElement>>;
|
|
10
|
+
|
|
11
|
+
type Platform = 'trustpilot' | 'g2' | 'google' | 'chrome-web-store';
|
|
12
|
+
interface PlatformBadgeProps extends React__default.HTMLAttributes<HTMLDivElement> {
|
|
13
|
+
/** Review platform */
|
|
14
|
+
platform: Platform;
|
|
15
|
+
/** Display mode */
|
|
16
|
+
variant?: 'icon-only' | 'icon-label' | 'full';
|
|
17
|
+
/** Platform rating (used in 'full' variant) */
|
|
18
|
+
rating?: number;
|
|
19
|
+
/** Number of reviews (used in 'full' variant) */
|
|
20
|
+
count?: number;
|
|
21
|
+
/** Size variant */
|
|
22
|
+
size?: 'sm' | 'md';
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Review platform badge with recognizable brand icon, optional label,
|
|
26
|
+
* and optional rating display.
|
|
27
|
+
*
|
|
28
|
+
* @example
|
|
29
|
+
* ```tsx
|
|
30
|
+
* <PlatformBadge platform="trustpilot" variant="icon-only" />
|
|
31
|
+
* <PlatformBadge platform="g2" variant="icon-label" />
|
|
32
|
+
* <PlatformBadge platform="google" variant="full" rating={4.9} count={42} />
|
|
33
|
+
* ```
|
|
34
|
+
*/
|
|
35
|
+
declare const PlatformBadge: React__default.ForwardRefExoticComponent<PlatformBadgeProps & React__default.RefAttributes<HTMLDivElement>>;
|
|
36
|
+
|
|
37
|
+
interface Author {
|
|
38
|
+
name: string;
|
|
39
|
+
role?: string;
|
|
40
|
+
company?: string;
|
|
41
|
+
avatar?: string;
|
|
42
|
+
handle?: string;
|
|
43
|
+
}
|
|
44
|
+
interface Media {
|
|
45
|
+
src: string;
|
|
46
|
+
type: 'image' | 'video';
|
|
47
|
+
alt?: string;
|
|
48
|
+
}
|
|
49
|
+
interface CardMetric {
|
|
50
|
+
value: string;
|
|
51
|
+
label: string;
|
|
52
|
+
prefix?: string;
|
|
53
|
+
suffix?: string;
|
|
54
|
+
}
|
|
55
|
+
interface SocialProofCardProps extends Omit<React.HTMLAttributes<HTMLDivElement>, 'content'> {
|
|
56
|
+
/** Card visual variant — determines layout and visual identity */
|
|
57
|
+
variant?: 'simple' | 'social' | 'video' | 'case-study' | 'rating-only';
|
|
58
|
+
/** Quote or text content */
|
|
59
|
+
content?: React.ReactNode;
|
|
60
|
+
/** Author info */
|
|
61
|
+
author: Author;
|
|
62
|
+
/** Media (thumbnail image for video/case-study variants) */
|
|
63
|
+
media?: Media;
|
|
64
|
+
/** Source icon (e.g., Twitter logo) — legacy, prefer `platform` */
|
|
65
|
+
sourceIcon?: React.ReactNode;
|
|
66
|
+
/** Review platform for automatic badge display */
|
|
67
|
+
platform?: Platform;
|
|
68
|
+
/** Star rating value (0-5) */
|
|
69
|
+
starRating?: number;
|
|
70
|
+
/** Date string */
|
|
71
|
+
date?: string;
|
|
72
|
+
/** Text badges */
|
|
73
|
+
badges?: string[];
|
|
74
|
+
/** CTA text override */
|
|
75
|
+
ctaText?: string;
|
|
76
|
+
/** If set, renders as a clickable card */
|
|
77
|
+
href?: string;
|
|
78
|
+
onClick?: () => void;
|
|
79
|
+
/** Staggered entrance animation delay (ms) */
|
|
80
|
+
animationDelay?: number;
|
|
81
|
+
/** Case study: headline */
|
|
82
|
+
headline?: string;
|
|
83
|
+
/** Case study: company logo node */
|
|
84
|
+
logo?: React.ReactNode;
|
|
85
|
+
/** Case study: industry label */
|
|
86
|
+
industry?: string;
|
|
87
|
+
/** Case study: key metrics */
|
|
88
|
+
metrics?: CardMetric[];
|
|
89
|
+
}
|
|
90
|
+
declare const SocialProofCard: React$1.ForwardRefExoticComponent<SocialProofCardProps & React$1.RefAttributes<HTMLDivElement | HTMLAnchorElement>>;
|
|
91
|
+
|
|
92
|
+
interface SocialProofFeaturedProps extends Omit<SectionShellProps, 'title'> {
|
|
93
|
+
/** Quote text */
|
|
94
|
+
quote: string;
|
|
95
|
+
/** Author info */
|
|
96
|
+
author: Author;
|
|
97
|
+
/** Media element (video component, image, or VideoLightbox) */
|
|
98
|
+
media?: React.ReactNode;
|
|
99
|
+
/** Quick image src for media slot */
|
|
100
|
+
mediaSrc?: string;
|
|
101
|
+
/** Layout orientation */
|
|
102
|
+
orientation?: 'horizontal' | 'vertical';
|
|
103
|
+
/** Visual variant */
|
|
104
|
+
featuredVariant?: 'standard' | 'cinematic' | 'spotlight';
|
|
105
|
+
/** Star rating */
|
|
106
|
+
starRating?: number;
|
|
107
|
+
/** Review platform */
|
|
108
|
+
platform?: Platform;
|
|
109
|
+
/** Company logo node */
|
|
110
|
+
logo?: React.ReactNode;
|
|
111
|
+
}
|
|
112
|
+
declare const SocialProofFeatured: React$1.ForwardRefExoticComponent<SocialProofFeaturedProps & React$1.RefAttributes<HTMLDivElement>>;
|
|
113
|
+
|
|
114
|
+
interface LogoItem {
|
|
115
|
+
id: string | number;
|
|
116
|
+
alt: string;
|
|
117
|
+
src?: string;
|
|
118
|
+
logo?: React.ReactNode;
|
|
119
|
+
href?: string;
|
|
120
|
+
badge?: string;
|
|
121
|
+
}
|
|
122
|
+
interface SocialProofLogosProps extends Omit<SectionShellProps, 'title'> {
|
|
123
|
+
title?: React.ReactNode;
|
|
124
|
+
logos: LogoItem[];
|
|
125
|
+
variant?: 'grid' | 'marquee';
|
|
126
|
+
speed?: number;
|
|
127
|
+
}
|
|
128
|
+
declare const SocialProofLogos: React$1.ForwardRefExoticComponent<SocialProofLogosProps & React$1.RefAttributes<HTMLDivElement>>;
|
|
129
|
+
|
|
130
|
+
interface SocialProofGridProps extends Omit<SectionShellProps, 'title'> {
|
|
131
|
+
/** Number of columns at desktop breakpoint */
|
|
132
|
+
columns?: 2 | 3 | 4;
|
|
133
|
+
/** Use CSS column-based masonry instead of CSS Grid */
|
|
134
|
+
masonry?: boolean;
|
|
135
|
+
/** Enable staggered entrance animation on children */
|
|
136
|
+
staggered?: boolean;
|
|
137
|
+
}
|
|
138
|
+
/**
|
|
139
|
+
* Wrap each child in a grid item. Use `span={2}` data attribute or
|
|
140
|
+
* the `ds-social-grid__item--span-2` class on children to span 2 columns.
|
|
141
|
+
*
|
|
142
|
+
* @example
|
|
143
|
+
* ```tsx
|
|
144
|
+
* <SocialProofGrid columns={3} staggered>
|
|
145
|
+
* <SocialProofCard variant="simple" ... />
|
|
146
|
+
* <div className="ds-social-grid__item--span-2">
|
|
147
|
+
* <SocialProofCard variant="case-study" ... />
|
|
148
|
+
* </div>
|
|
149
|
+
* </SocialProofGrid>
|
|
150
|
+
* ```
|
|
151
|
+
*/
|
|
152
|
+
declare const SocialProofGrid: React__default.ForwardRefExoticComponent<SocialProofGridProps & React__default.RefAttributes<HTMLDivElement>>;
|
|
153
|
+
|
|
154
|
+
interface VerticalVideoGridProps {
|
|
155
|
+
/** Array of YouTube Shorts URLs (e.g. https://www.youtube.com/shorts/xxxxx) */
|
|
156
|
+
urls: string[];
|
|
157
|
+
/** Optional class name */
|
|
158
|
+
className?: string;
|
|
159
|
+
}
|
|
160
|
+
/**
|
|
161
|
+
* Grid component optimized for displaying vertical 9:16 videos (YouTube Shorts, TikToks, Reels)
|
|
162
|
+
*/
|
|
163
|
+
declare function VerticalVideoGrid({ urls, className }: VerticalVideoGridProps): react_jsx_runtime.JSX.Element | null;
|
|
164
|
+
|
|
165
|
+
declare const SocialProof: {
|
|
166
|
+
Card: React$1.ForwardRefExoticComponent<SocialProofCardProps & React$1.RefAttributes<HTMLDivElement | HTMLAnchorElement>>;
|
|
167
|
+
Grid: React$1.ForwardRefExoticComponent<SocialProofGridProps & React$1.RefAttributes<HTMLDivElement>>;
|
|
168
|
+
Logos: React$1.ForwardRefExoticComponent<SocialProofLogosProps & React$1.RefAttributes<HTMLDivElement>>;
|
|
169
|
+
Featured: React$1.ForwardRefExoticComponent<SocialProofFeaturedProps & React$1.RefAttributes<HTMLDivElement>>;
|
|
170
|
+
Carousel: React$1.ForwardRefExoticComponent<SocialProofCarouselProps & React$1.RefAttributes<HTMLDivElement>>;
|
|
171
|
+
VerticalGrid: typeof VerticalVideoGrid;
|
|
172
|
+
};
|
|
173
|
+
|
|
174
|
+
interface StarRatingProps extends React__default.HTMLAttributes<HTMLDivElement> {
|
|
175
|
+
/** Rating value (0-5, supports decimals for half-stars) */
|
|
176
|
+
value: number;
|
|
177
|
+
/** Maximum number of stars */
|
|
178
|
+
max?: number;
|
|
179
|
+
/** Star size variant */
|
|
180
|
+
size?: 'sm' | 'md' | 'lg';
|
|
181
|
+
/** Animate stars filling on viewport entry */
|
|
182
|
+
animate?: boolean;
|
|
183
|
+
/** Show numeric value next to stars */
|
|
184
|
+
showValue?: boolean;
|
|
185
|
+
/** Label shown after value (e.g., "/ 5") */
|
|
186
|
+
valueLabel?: string;
|
|
187
|
+
}
|
|
188
|
+
/**
|
|
189
|
+
* Star rating display with gold-fill, half-star support, and optional
|
|
190
|
+
* entrance animation. Uses inline SVGs with clip-path for precise
|
|
191
|
+
* partial fills.
|
|
192
|
+
*
|
|
193
|
+
* @example
|
|
194
|
+
* ```tsx
|
|
195
|
+
* <StarRating value={4.5} size="lg" animate />
|
|
196
|
+
* <StarRating value={5} size="sm" showValue />
|
|
197
|
+
* ```
|
|
198
|
+
*/
|
|
199
|
+
declare const StarRating: React__default.ForwardRefExoticComponent<StarRatingProps & React__default.RefAttributes<HTMLDivElement>>;
|
|
200
|
+
|
|
201
|
+
interface VideoLightboxProps {
|
|
202
|
+
/** Video embed URL (YouTube, Vimeo, Loom) */
|
|
203
|
+
videoUrl: string;
|
|
204
|
+
/** Poster image shown as thumbnail trigger */
|
|
205
|
+
thumbnailSrc?: string;
|
|
206
|
+
/** Alt text for thumbnail */
|
|
207
|
+
thumbnailAlt?: string;
|
|
208
|
+
/** Video title for accessibility */
|
|
209
|
+
title?: string;
|
|
210
|
+
/** Custom trigger element (overrides default thumbnail + play button) */
|
|
211
|
+
trigger?: React__default.ReactNode;
|
|
212
|
+
/** Additional class name for the trigger wrapper */
|
|
213
|
+
className?: string;
|
|
214
|
+
/** Callback when video starts playing */
|
|
215
|
+
onPlay?: () => void;
|
|
216
|
+
}
|
|
217
|
+
/**
|
|
218
|
+
* Modal video player triggered by a thumbnail or custom element.
|
|
219
|
+
* Opens a full-screen overlay with lazy iframe injection.
|
|
220
|
+
*
|
|
221
|
+
* @example
|
|
222
|
+
* ```tsx
|
|
223
|
+
* <VideoLightbox
|
|
224
|
+
* videoUrl="https://www.youtube.com/watch?v=dQw4w9WgXcQ"
|
|
225
|
+
* thumbnailSrc="/thumbnails/demo.jpg"
|
|
226
|
+
* title="Customer testimonial"
|
|
227
|
+
* />
|
|
228
|
+
*
|
|
229
|
+
* <VideoLightbox
|
|
230
|
+
* videoUrl="https://vimeo.com/123456789"
|
|
231
|
+
* trigger={<Button>Watch Video</Button>}
|
|
232
|
+
* />
|
|
233
|
+
* ```
|
|
234
|
+
*/
|
|
235
|
+
declare const VideoLightbox: React__default.ForwardRefExoticComponent<VideoLightboxProps & React__default.RefAttributes<HTMLDivElement>>;
|
|
236
|
+
|
|
237
|
+
interface MetricCounterProps extends React__default.HTMLAttributes<HTMLDivElement> {
|
|
238
|
+
/** The target number to count up to */
|
|
239
|
+
value: number;
|
|
240
|
+
/** Optional prefix (e.g. "$", "+") */
|
|
241
|
+
prefix?: string;
|
|
242
|
+
/** Optional suffix (e.g. "%", "M") */
|
|
243
|
+
suffix?: string;
|
|
244
|
+
/** Duration of the animation in milliseconds (default: 1500) */
|
|
245
|
+
duration?: number;
|
|
246
|
+
/** Number of decimal places to show (default: 0) */
|
|
247
|
+
decimals?: number;
|
|
248
|
+
/** A label to display below the number */
|
|
249
|
+
label?: React__default.ReactNode;
|
|
250
|
+
}
|
|
251
|
+
/**
|
|
252
|
+
* An animated counter for displaying key metrics and social proof.
|
|
253
|
+
* Uses requestAnimationFrame for smooth counting and IntersectionObserver
|
|
254
|
+
* to trigger only when visible. Respects prefers-reduced-motion.
|
|
255
|
+
*/
|
|
256
|
+
declare const MetricCounter: React__default.ForwardRefExoticComponent<MetricCounterProps & React__default.RefAttributes<HTMLDivElement>>;
|
|
257
|
+
|
|
258
|
+
export { type Author, type CardMetric, type LogoItem, type Media, MetricCounter, type MetricCounterProps, type Platform, PlatformBadge, type PlatformBadgeProps, SocialProof, SocialProofCard, type SocialProofCardProps, SocialProofCarousel, type SocialProofCarouselProps, SocialProofFeatured, type SocialProofFeaturedProps, SocialProofGrid, type SocialProofGridProps, SocialProofLogos, type SocialProofLogosProps, StarRating, type StarRatingProps, VerticalVideoGrid, type VerticalVideoGridProps, VideoLightbox, type VideoLightboxProps };
|
|
@@ -0,0 +1,258 @@
|
|
|
1
|
+
import * as React$1 from 'react';
|
|
2
|
+
import React__default from 'react';
|
|
3
|
+
import { c as SectionShellProps } from '../SectionShell-BfBw5q0Y.js';
|
|
4
|
+
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
5
|
+
|
|
6
|
+
interface SocialProofCarouselProps extends SectionShellProps {
|
|
7
|
+
children: React.ReactNode;
|
|
8
|
+
}
|
|
9
|
+
declare const SocialProofCarousel: React$1.ForwardRefExoticComponent<SocialProofCarouselProps & React$1.RefAttributes<HTMLDivElement>>;
|
|
10
|
+
|
|
11
|
+
type Platform = 'trustpilot' | 'g2' | 'google' | 'chrome-web-store';
|
|
12
|
+
interface PlatformBadgeProps extends React__default.HTMLAttributes<HTMLDivElement> {
|
|
13
|
+
/** Review platform */
|
|
14
|
+
platform: Platform;
|
|
15
|
+
/** Display mode */
|
|
16
|
+
variant?: 'icon-only' | 'icon-label' | 'full';
|
|
17
|
+
/** Platform rating (used in 'full' variant) */
|
|
18
|
+
rating?: number;
|
|
19
|
+
/** Number of reviews (used in 'full' variant) */
|
|
20
|
+
count?: number;
|
|
21
|
+
/** Size variant */
|
|
22
|
+
size?: 'sm' | 'md';
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Review platform badge with recognizable brand icon, optional label,
|
|
26
|
+
* and optional rating display.
|
|
27
|
+
*
|
|
28
|
+
* @example
|
|
29
|
+
* ```tsx
|
|
30
|
+
* <PlatformBadge platform="trustpilot" variant="icon-only" />
|
|
31
|
+
* <PlatformBadge platform="g2" variant="icon-label" />
|
|
32
|
+
* <PlatformBadge platform="google" variant="full" rating={4.9} count={42} />
|
|
33
|
+
* ```
|
|
34
|
+
*/
|
|
35
|
+
declare const PlatformBadge: React__default.ForwardRefExoticComponent<PlatformBadgeProps & React__default.RefAttributes<HTMLDivElement>>;
|
|
36
|
+
|
|
37
|
+
interface Author {
|
|
38
|
+
name: string;
|
|
39
|
+
role?: string;
|
|
40
|
+
company?: string;
|
|
41
|
+
avatar?: string;
|
|
42
|
+
handle?: string;
|
|
43
|
+
}
|
|
44
|
+
interface Media {
|
|
45
|
+
src: string;
|
|
46
|
+
type: 'image' | 'video';
|
|
47
|
+
alt?: string;
|
|
48
|
+
}
|
|
49
|
+
interface CardMetric {
|
|
50
|
+
value: string;
|
|
51
|
+
label: string;
|
|
52
|
+
prefix?: string;
|
|
53
|
+
suffix?: string;
|
|
54
|
+
}
|
|
55
|
+
interface SocialProofCardProps extends Omit<React.HTMLAttributes<HTMLDivElement>, 'content'> {
|
|
56
|
+
/** Card visual variant — determines layout and visual identity */
|
|
57
|
+
variant?: 'simple' | 'social' | 'video' | 'case-study' | 'rating-only';
|
|
58
|
+
/** Quote or text content */
|
|
59
|
+
content?: React.ReactNode;
|
|
60
|
+
/** Author info */
|
|
61
|
+
author: Author;
|
|
62
|
+
/** Media (thumbnail image for video/case-study variants) */
|
|
63
|
+
media?: Media;
|
|
64
|
+
/** Source icon (e.g., Twitter logo) — legacy, prefer `platform` */
|
|
65
|
+
sourceIcon?: React.ReactNode;
|
|
66
|
+
/** Review platform for automatic badge display */
|
|
67
|
+
platform?: Platform;
|
|
68
|
+
/** Star rating value (0-5) */
|
|
69
|
+
starRating?: number;
|
|
70
|
+
/** Date string */
|
|
71
|
+
date?: string;
|
|
72
|
+
/** Text badges */
|
|
73
|
+
badges?: string[];
|
|
74
|
+
/** CTA text override */
|
|
75
|
+
ctaText?: string;
|
|
76
|
+
/** If set, renders as a clickable card */
|
|
77
|
+
href?: string;
|
|
78
|
+
onClick?: () => void;
|
|
79
|
+
/** Staggered entrance animation delay (ms) */
|
|
80
|
+
animationDelay?: number;
|
|
81
|
+
/** Case study: headline */
|
|
82
|
+
headline?: string;
|
|
83
|
+
/** Case study: company logo node */
|
|
84
|
+
logo?: React.ReactNode;
|
|
85
|
+
/** Case study: industry label */
|
|
86
|
+
industry?: string;
|
|
87
|
+
/** Case study: key metrics */
|
|
88
|
+
metrics?: CardMetric[];
|
|
89
|
+
}
|
|
90
|
+
declare const SocialProofCard: React$1.ForwardRefExoticComponent<SocialProofCardProps & React$1.RefAttributes<HTMLDivElement | HTMLAnchorElement>>;
|
|
91
|
+
|
|
92
|
+
interface SocialProofFeaturedProps extends Omit<SectionShellProps, 'title'> {
|
|
93
|
+
/** Quote text */
|
|
94
|
+
quote: string;
|
|
95
|
+
/** Author info */
|
|
96
|
+
author: Author;
|
|
97
|
+
/** Media element (video component, image, or VideoLightbox) */
|
|
98
|
+
media?: React.ReactNode;
|
|
99
|
+
/** Quick image src for media slot */
|
|
100
|
+
mediaSrc?: string;
|
|
101
|
+
/** Layout orientation */
|
|
102
|
+
orientation?: 'horizontal' | 'vertical';
|
|
103
|
+
/** Visual variant */
|
|
104
|
+
featuredVariant?: 'standard' | 'cinematic' | 'spotlight';
|
|
105
|
+
/** Star rating */
|
|
106
|
+
starRating?: number;
|
|
107
|
+
/** Review platform */
|
|
108
|
+
platform?: Platform;
|
|
109
|
+
/** Company logo node */
|
|
110
|
+
logo?: React.ReactNode;
|
|
111
|
+
}
|
|
112
|
+
declare const SocialProofFeatured: React$1.ForwardRefExoticComponent<SocialProofFeaturedProps & React$1.RefAttributes<HTMLDivElement>>;
|
|
113
|
+
|
|
114
|
+
interface LogoItem {
|
|
115
|
+
id: string | number;
|
|
116
|
+
alt: string;
|
|
117
|
+
src?: string;
|
|
118
|
+
logo?: React.ReactNode;
|
|
119
|
+
href?: string;
|
|
120
|
+
badge?: string;
|
|
121
|
+
}
|
|
122
|
+
interface SocialProofLogosProps extends Omit<SectionShellProps, 'title'> {
|
|
123
|
+
title?: React.ReactNode;
|
|
124
|
+
logos: LogoItem[];
|
|
125
|
+
variant?: 'grid' | 'marquee';
|
|
126
|
+
speed?: number;
|
|
127
|
+
}
|
|
128
|
+
declare const SocialProofLogos: React$1.ForwardRefExoticComponent<SocialProofLogosProps & React$1.RefAttributes<HTMLDivElement>>;
|
|
129
|
+
|
|
130
|
+
interface SocialProofGridProps extends Omit<SectionShellProps, 'title'> {
|
|
131
|
+
/** Number of columns at desktop breakpoint */
|
|
132
|
+
columns?: 2 | 3 | 4;
|
|
133
|
+
/** Use CSS column-based masonry instead of CSS Grid */
|
|
134
|
+
masonry?: boolean;
|
|
135
|
+
/** Enable staggered entrance animation on children */
|
|
136
|
+
staggered?: boolean;
|
|
137
|
+
}
|
|
138
|
+
/**
|
|
139
|
+
* Wrap each child in a grid item. Use `span={2}` data attribute or
|
|
140
|
+
* the `ds-social-grid__item--span-2` class on children to span 2 columns.
|
|
141
|
+
*
|
|
142
|
+
* @example
|
|
143
|
+
* ```tsx
|
|
144
|
+
* <SocialProofGrid columns={3} staggered>
|
|
145
|
+
* <SocialProofCard variant="simple" ... />
|
|
146
|
+
* <div className="ds-social-grid__item--span-2">
|
|
147
|
+
* <SocialProofCard variant="case-study" ... />
|
|
148
|
+
* </div>
|
|
149
|
+
* </SocialProofGrid>
|
|
150
|
+
* ```
|
|
151
|
+
*/
|
|
152
|
+
declare const SocialProofGrid: React__default.ForwardRefExoticComponent<SocialProofGridProps & React__default.RefAttributes<HTMLDivElement>>;
|
|
153
|
+
|
|
154
|
+
interface VerticalVideoGridProps {
|
|
155
|
+
/** Array of YouTube Shorts URLs (e.g. https://www.youtube.com/shorts/xxxxx) */
|
|
156
|
+
urls: string[];
|
|
157
|
+
/** Optional class name */
|
|
158
|
+
className?: string;
|
|
159
|
+
}
|
|
160
|
+
/**
|
|
161
|
+
* Grid component optimized for displaying vertical 9:16 videos (YouTube Shorts, TikToks, Reels)
|
|
162
|
+
*/
|
|
163
|
+
declare function VerticalVideoGrid({ urls, className }: VerticalVideoGridProps): react_jsx_runtime.JSX.Element | null;
|
|
164
|
+
|
|
165
|
+
declare const SocialProof: {
|
|
166
|
+
Card: React$1.ForwardRefExoticComponent<SocialProofCardProps & React$1.RefAttributes<HTMLDivElement | HTMLAnchorElement>>;
|
|
167
|
+
Grid: React$1.ForwardRefExoticComponent<SocialProofGridProps & React$1.RefAttributes<HTMLDivElement>>;
|
|
168
|
+
Logos: React$1.ForwardRefExoticComponent<SocialProofLogosProps & React$1.RefAttributes<HTMLDivElement>>;
|
|
169
|
+
Featured: React$1.ForwardRefExoticComponent<SocialProofFeaturedProps & React$1.RefAttributes<HTMLDivElement>>;
|
|
170
|
+
Carousel: React$1.ForwardRefExoticComponent<SocialProofCarouselProps & React$1.RefAttributes<HTMLDivElement>>;
|
|
171
|
+
VerticalGrid: typeof VerticalVideoGrid;
|
|
172
|
+
};
|
|
173
|
+
|
|
174
|
+
interface StarRatingProps extends React__default.HTMLAttributes<HTMLDivElement> {
|
|
175
|
+
/** Rating value (0-5, supports decimals for half-stars) */
|
|
176
|
+
value: number;
|
|
177
|
+
/** Maximum number of stars */
|
|
178
|
+
max?: number;
|
|
179
|
+
/** Star size variant */
|
|
180
|
+
size?: 'sm' | 'md' | 'lg';
|
|
181
|
+
/** Animate stars filling on viewport entry */
|
|
182
|
+
animate?: boolean;
|
|
183
|
+
/** Show numeric value next to stars */
|
|
184
|
+
showValue?: boolean;
|
|
185
|
+
/** Label shown after value (e.g., "/ 5") */
|
|
186
|
+
valueLabel?: string;
|
|
187
|
+
}
|
|
188
|
+
/**
|
|
189
|
+
* Star rating display with gold-fill, half-star support, and optional
|
|
190
|
+
* entrance animation. Uses inline SVGs with clip-path for precise
|
|
191
|
+
* partial fills.
|
|
192
|
+
*
|
|
193
|
+
* @example
|
|
194
|
+
* ```tsx
|
|
195
|
+
* <StarRating value={4.5} size="lg" animate />
|
|
196
|
+
* <StarRating value={5} size="sm" showValue />
|
|
197
|
+
* ```
|
|
198
|
+
*/
|
|
199
|
+
declare const StarRating: React__default.ForwardRefExoticComponent<StarRatingProps & React__default.RefAttributes<HTMLDivElement>>;
|
|
200
|
+
|
|
201
|
+
interface VideoLightboxProps {
|
|
202
|
+
/** Video embed URL (YouTube, Vimeo, Loom) */
|
|
203
|
+
videoUrl: string;
|
|
204
|
+
/** Poster image shown as thumbnail trigger */
|
|
205
|
+
thumbnailSrc?: string;
|
|
206
|
+
/** Alt text for thumbnail */
|
|
207
|
+
thumbnailAlt?: string;
|
|
208
|
+
/** Video title for accessibility */
|
|
209
|
+
title?: string;
|
|
210
|
+
/** Custom trigger element (overrides default thumbnail + play button) */
|
|
211
|
+
trigger?: React__default.ReactNode;
|
|
212
|
+
/** Additional class name for the trigger wrapper */
|
|
213
|
+
className?: string;
|
|
214
|
+
/** Callback when video starts playing */
|
|
215
|
+
onPlay?: () => void;
|
|
216
|
+
}
|
|
217
|
+
/**
|
|
218
|
+
* Modal video player triggered by a thumbnail or custom element.
|
|
219
|
+
* Opens a full-screen overlay with lazy iframe injection.
|
|
220
|
+
*
|
|
221
|
+
* @example
|
|
222
|
+
* ```tsx
|
|
223
|
+
* <VideoLightbox
|
|
224
|
+
* videoUrl="https://www.youtube.com/watch?v=dQw4w9WgXcQ"
|
|
225
|
+
* thumbnailSrc="/thumbnails/demo.jpg"
|
|
226
|
+
* title="Customer testimonial"
|
|
227
|
+
* />
|
|
228
|
+
*
|
|
229
|
+
* <VideoLightbox
|
|
230
|
+
* videoUrl="https://vimeo.com/123456789"
|
|
231
|
+
* trigger={<Button>Watch Video</Button>}
|
|
232
|
+
* />
|
|
233
|
+
* ```
|
|
234
|
+
*/
|
|
235
|
+
declare const VideoLightbox: React__default.ForwardRefExoticComponent<VideoLightboxProps & React__default.RefAttributes<HTMLDivElement>>;
|
|
236
|
+
|
|
237
|
+
interface MetricCounterProps extends React__default.HTMLAttributes<HTMLDivElement> {
|
|
238
|
+
/** The target number to count up to */
|
|
239
|
+
value: number;
|
|
240
|
+
/** Optional prefix (e.g. "$", "+") */
|
|
241
|
+
prefix?: string;
|
|
242
|
+
/** Optional suffix (e.g. "%", "M") */
|
|
243
|
+
suffix?: string;
|
|
244
|
+
/** Duration of the animation in milliseconds (default: 1500) */
|
|
245
|
+
duration?: number;
|
|
246
|
+
/** Number of decimal places to show (default: 0) */
|
|
247
|
+
decimals?: number;
|
|
248
|
+
/** A label to display below the number */
|
|
249
|
+
label?: React__default.ReactNode;
|
|
250
|
+
}
|
|
251
|
+
/**
|
|
252
|
+
* An animated counter for displaying key metrics and social proof.
|
|
253
|
+
* Uses requestAnimationFrame for smooth counting and IntersectionObserver
|
|
254
|
+
* to trigger only when visible. Respects prefers-reduced-motion.
|
|
255
|
+
*/
|
|
256
|
+
declare const MetricCounter: React__default.ForwardRefExoticComponent<MetricCounterProps & React__default.RefAttributes<HTMLDivElement>>;
|
|
257
|
+
|
|
258
|
+
export { type Author, type CardMetric, type LogoItem, type Media, MetricCounter, type MetricCounterProps, type Platform, PlatformBadge, type PlatformBadgeProps, SocialProof, SocialProofCard, type SocialProofCardProps, SocialProofCarousel, type SocialProofCarouselProps, SocialProofFeatured, type SocialProofFeaturedProps, SocialProofGrid, type SocialProofGridProps, SocialProofLogos, type SocialProofLogosProps, StarRating, type StarRatingProps, VerticalVideoGrid, type VerticalVideoGridProps, VideoLightbox, type VideoLightboxProps };
|