@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.
Files changed (142) hide show
  1. package/README.md +32 -2
  2. package/dist/AppearancePanel-UT57J69V.d.cts +51 -0
  3. package/dist/AppearancePanel-UT57J69V.d.ts +51 -0
  4. package/dist/AppearanceProvider-C36a8-eb.d.cts +45 -0
  5. package/dist/AppearanceProvider-C36a8-eb.d.ts +45 -0
  6. package/dist/Breadcrumb-RX-B_gDV.d.cts +44 -0
  7. package/dist/Breadcrumb-RX-B_gDV.d.ts +44 -0
  8. package/dist/ExportMenu-A2TLFiVv.d.cts +311 -0
  9. package/dist/ExportMenu-C8qck5AT.d.ts +311 -0
  10. package/dist/SectionShell-BfBw5q0Y.d.cts +18 -0
  11. package/dist/SectionShell-BfBw5q0Y.d.ts +18 -0
  12. package/dist/Select-BdZmK0Lt.d.cts +66 -0
  13. package/dist/Select-BdZmK0Lt.d.ts +66 -0
  14. package/dist/admin/index.cjs +2941 -0
  15. package/dist/admin/index.cjs.map +1 -0
  16. package/dist/admin/index.css +4145 -0
  17. package/dist/admin/index.css.map +1 -0
  18. package/dist/admin/index.d.cts +491 -0
  19. package/dist/admin/index.d.ts +491 -0
  20. package/dist/admin/index.js +2918 -0
  21. package/dist/admin/index.js.map +1 -0
  22. package/dist/{audit-CiyPkxk1.d.cts → audit-BS2fn7M4.d.ts} +2 -51
  23. package/dist/{audit-CiyPkxk1.d.ts → audit-DwCmg32J.d.cts} +2 -51
  24. package/dist/blog/index.cjs +1074 -0
  25. package/dist/blog/index.cjs.map +1 -0
  26. package/dist/blog/index.css +1422 -0
  27. package/dist/blog/index.css.map +1 -0
  28. package/dist/blog/index.d.cts +233 -0
  29. package/dist/blog/index.d.ts +233 -0
  30. package/dist/blog/index.js +1056 -0
  31. package/dist/blog/index.js.map +1 -0
  32. package/dist/chart-types-BGVVO-zl.d.cts +208 -0
  33. package/dist/chart-types-BGVVO-zl.d.ts +208 -0
  34. package/dist/charts/index.cjs +2698 -0
  35. package/dist/charts/index.cjs.map +1 -0
  36. package/dist/charts/index.css +1167 -0
  37. package/dist/charts/index.css.map +1 -0
  38. package/dist/charts/index.d.cts +453 -0
  39. package/dist/charts/index.d.ts +453 -0
  40. package/dist/charts/index.js +2682 -0
  41. package/dist/charts/index.js.map +1 -0
  42. package/dist/core/index.cjs +526 -395
  43. package/dist/core/index.cjs.map +1 -1
  44. package/dist/core/index.css +294 -0
  45. package/dist/core/index.css.map +1 -1
  46. package/dist/core/index.d.cts +7 -982
  47. package/dist/core/index.d.ts +7 -982
  48. package/dist/core/index.js +476 -351
  49. package/dist/core/index.js.map +1 -1
  50. package/dist/i18n/index.cjs +585 -0
  51. package/dist/i18n/index.cjs.map +1 -0
  52. package/dist/i18n/index.d.cts +855 -0
  53. package/dist/i18n/index.d.ts +855 -0
  54. package/dist/i18n/index.js +547 -0
  55. package/dist/i18n/index.js.map +1 -0
  56. package/dist/index.cjs +3 -2
  57. package/dist/index.cjs.map +1 -1
  58. package/dist/index.css +11 -7
  59. package/dist/index.css.map +1 -1
  60. package/dist/index.d.cts +22 -1290
  61. package/dist/index.d.ts +22 -1290
  62. package/dist/index.js +3 -2
  63. package/dist/index.js.map +1 -1
  64. package/dist/marketing/index.cjs +2144 -3023
  65. package/dist/marketing/index.cjs.map +1 -1
  66. package/dist/marketing/index.css +3729 -4824
  67. package/dist/marketing/index.css.map +1 -1
  68. package/dist/marketing/index.d.cts +1351 -4
  69. package/dist/marketing/index.d.ts +1351 -4
  70. package/dist/marketing/index.js +2190 -3054
  71. package/dist/marketing/index.js.map +1 -1
  72. package/dist/motion/index.cjs +1230 -0
  73. package/dist/motion/index.cjs.map +1 -0
  74. package/dist/motion/index.css +699 -0
  75. package/dist/motion/index.css.map +1 -0
  76. package/dist/motion/index.d.cts +68 -0
  77. package/dist/motion/index.d.ts +68 -0
  78. package/dist/motion/index.js +1218 -0
  79. package/dist/motion/index.js.map +1 -0
  80. package/dist/nav/index.cjs +1533 -0
  81. package/dist/nav/index.cjs.map +1 -0
  82. package/dist/nav/index.css +1984 -0
  83. package/dist/nav/index.css.map +1 -0
  84. package/dist/nav/index.d.cts +279 -0
  85. package/dist/nav/index.d.ts +279 -0
  86. package/dist/nav/index.js +1501 -0
  87. package/dist/nav/index.js.map +1 -0
  88. package/dist/report/index.cjs +26 -1649
  89. package/dist/report/index.cjs.map +1 -1
  90. package/dist/report/index.css +0 -963
  91. package/dist/report/index.css.map +1 -1
  92. package/dist/report/index.d.cts +4 -2
  93. package/dist/report/index.d.ts +4 -2
  94. package/dist/report/index.js +27 -1640
  95. package/dist/report/index.js.map +1 -1
  96. package/dist/sections/index.cjs +385 -0
  97. package/dist/sections/index.cjs.map +1 -0
  98. package/dist/sections/index.css +815 -0
  99. package/dist/sections/index.css.map +1 -0
  100. package/dist/sections/index.d.cts +69 -0
  101. package/dist/sections/index.d.ts +69 -0
  102. package/dist/sections/index.js +374 -0
  103. package/dist/sections/index.js.map +1 -0
  104. package/dist/social-proof/index.cjs +1255 -0
  105. package/dist/social-proof/index.cjs.map +1 -0
  106. package/dist/social-proof/index.css +1423 -0
  107. package/dist/social-proof/index.css.map +1 -0
  108. package/dist/social-proof/index.d.cts +258 -0
  109. package/dist/social-proof/index.d.ts +258 -0
  110. package/dist/social-proof/index.js +1238 -0
  111. package/dist/social-proof/index.js.map +1 -0
  112. package/dist/theme/index.cjs +573 -0
  113. package/dist/theme/index.cjs.map +1 -0
  114. package/dist/theme/index.css +464 -0
  115. package/dist/theme/index.css.map +1 -0
  116. package/dist/theme/index.d.cts +48 -0
  117. package/dist/theme/index.d.ts +48 -0
  118. package/dist/theme/index.js +558 -0
  119. package/dist/theme/index.js.map +1 -0
  120. package/dist/types-DAlgDGzw.d.cts +52 -0
  121. package/dist/types-DAlgDGzw.d.ts +52 -0
  122. package/dist/web/client/index.cjs +501 -0
  123. package/dist/web/client/index.cjs.map +1 -0
  124. package/dist/web/client/index.css +456 -0
  125. package/dist/web/client/index.css.map +1 -0
  126. package/dist/web/client/index.d.cts +172 -0
  127. package/dist/web/client/index.d.ts +172 -0
  128. package/dist/web/client/index.js +486 -0
  129. package/dist/web/client/index.js.map +1 -0
  130. package/dist/web/index.d.cts +6 -893
  131. package/dist/web/index.d.ts +6 -893
  132. package/dist/web/server/index.cjs +569 -0
  133. package/dist/web/server/index.cjs.map +1 -0
  134. package/dist/web/server/index.d.cts +725 -0
  135. package/dist/web/server/index.d.ts +725 -0
  136. package/dist/web/server/index.js +562 -0
  137. package/dist/web/server/index.js.map +1 -0
  138. package/package.json +81 -9
  139. package/dist/ExportMenu-hEe5MhLq.d.cts +0 -1027
  140. package/dist/ExportMenu-hEe5MhLq.d.ts +0 -1027
  141. package/dist/index-B64suAAc.d.cts +0 -1498
  142. package/dist/index-B64suAAc.d.ts +0 -1498
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/components/LayoutPrimitives/LayoutPrimitives.css","../../src/components/SectionShell/SectionShell.css","../../src/components/HeroSection/HeroSection.css","../../src/components/FeatureSection/FeatureSection.css","../../src/components/CTASection/CTASection.css","../../src/components/StatsSection/StatsSection.css"],"sourcesContent":["/* 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 HERO SECTION — ELITE\n ============================================================================ */\n\n.ds-hero {\n position: relative;\n overflow: hidden;\n /* Ensure z-context for background effects */\n isolation: isolate;\n}\n\n/* ==========================================================================\n Background Effects\n ========================================================================== */\n\n/* Grid Texture */\n.ds-hero--bg-grid::before {\n content: '';\n position: absolute;\n inset: 0;\n background-size: 40px 40px;\n background-image:\n linear-gradient(to right, var(--void-grid-color) 1px, transparent 1px),\n linear-gradient(to bottom, var(--void-grid-color) 1px, transparent 1px);\n mask-image: radial-gradient(circle at 50% 50%, black 40%, transparent 100%);\n z-index: -2;\n pointer-events: none;\n}\n\n/* Glow Beams (Spotlights) */\n.ds-hero--bg-glow::after {\n content: '';\n position: absolute;\n top: -20%;\n left: 50%;\n transform: translateX(-50%);\n width: 140%;\n height: 80%;\n background: radial-gradient(\n ellipse at center,\n rgba(var(--brand-pink-rgb), 0.15),\n transparent 70%\n );\n filter: blur(60px);\n z-index: -1;\n pointer-events: none;\n opacity: 0.8;\n}\n\n/* ==========================================================================\n Content Animation\n ========================================================================== */\n\n@keyframes ds-hero-fade-up {\n from {\n transform: translateY(20px);\n }\n to {\n transform: translateY(0);\n }\n}\n\n.ds-hero__content {\n display: flex;\n flex-direction: column;\n gap: var(--space-6);\n z-index: 2;\n position: relative;\n animation: ds-hero-fade-up 0.8s cubic-bezier(0.16, 1, 0.3, 1) forwards;\n}\n\n/* ==========================================================================\n Typography\n ========================================================================== */\n\n.ds-hero__title {\n font-family: var(--font-family);\n font-size: var(--font-size-display);\n font-weight: var(--font-weight-bold);\n color: var(--text-primary);\n line-height: var(--line-height-display);\n letter-spacing: var(--letter-spacing-tight);\n margin: 0;\n}\n\n/* Text Gradient support */\n.ds-hero__title em,\n.ds-hero__title span.highlight {\n font-style: normal;\n background: linear-gradient(135deg, var(--text-primary) 30%, var(--text-tertiary));\n -webkit-background-clip: text;\n -webkit-text-fill-color: transparent;\n color: var(--text-primary); /* Fallback */\n}\n\n.ds-hero__subtitle {\n font-family: var(--font-family);\n font-size: var(--font-size-lg);\n color: var(--text-secondary);\n line-height: 1.6;\n max-width: 60ch;\n margin: 0;\n}\n\n@media (min-width: 768px) {\n .ds-hero__subtitle {\n font-size: var(--font-size-xl);\n }\n}\n\n/* ==========================================================================\n Actions\n ========================================================================== */\n\n.ds-hero__actions {\n display: flex;\n flex-wrap: wrap;\n gap: var(--space-4);\n margin-top: var(--space-4);\n}\n\n.ds-hero--center .ds-hero__actions {\n justify-content: center;\n}\n\n/* ==========================================================================\n Media Frame (The \"Browser\" Look)\n ========================================================================== */\n\n.ds-hero__media-wrapper {\n position: relative;\n perspective: 1000px;\n animation: ds-hero-fade-up 1s cubic-bezier(0.16, 1, 0.3, 1) 0.2s both; /* Delayed entrance */\n}\n\n.ds-hero__media {\n position: relative;\n width: 100%;\n border-radius: var(--radius-panel);\n overflow: hidden;\n background: var(--glass-base);\n box-shadow:\n 0 20px 50px -10px var(--overlay-backdrop),\n 0 0 0 1px var(--glass-highlight-light);\n /* Optional: Tilt effect placeholder */\n transform-style: preserve-3d;\n}\n\n/* Browser Chrome (Optional decoration) */\n.ds-hero__media--browser::before {\n content: '';\n display: block;\n height: 32px;\n background: var(--glass-base-active);\n border-bottom: 1px solid var(--glass-base-active);\n background-image:\n radial-gradient(circle at 20px 16px, #ff5f57 4px, transparent 5px),\n radial-gradient(circle at 36px 16px, #febc2e 4px, transparent 5px),\n radial-gradient(circle at 52px 16px, #28c840 4px, transparent 5px);\n background-repeat: no-repeat;\n}\n\n.ds-hero__media img,\n.ds-hero__media video {\n width: 100%;\n height: auto;\n display: block;\n}\n\n/* ==========================================================================\n Floating Ornaments (Badges/Cards)\n ========================================================================== */\n\n.ds-hero__float {\n position: absolute;\n z-index: 3;\n animation: ds-hero-float 6s ease-in-out infinite;\n box-shadow: var(--glass-shadow-elevated);\n border-radius: var(--radius-card);\n max-width: 300px;\n}\n\n@keyframes ds-hero-float {\n 0%,\n 100% {\n transform: translateY(0);\n }\n 50% {\n transform: translateY(-10px);\n }\n}\n\n/* Preset Positions */\n.ds-hero__float--top-right {\n top: -20px;\n right: -20px;\n}\n.ds-hero__float--bottom-left {\n bottom: -20px;\n left: -20px;\n}\n\n@media (max-width: 768px) {\n .ds-hero__float {\n display: none;\n } /* Hide complex floats on mobile */\n}\n\n/* ==========================================================================\n Variants Layout Overrides\n ========================================================================== */\n\n/* CENTERED */\n.ds-hero--center .ds-hero__content {\n align-items: center;\n text-align: center;\n max-width: 900px;\n margin: 0 auto var(--space-16) auto;\n}\n\n/* SPLIT */\n.ds-hero--split .ds-hero__media-wrapper {\n height: 100%;\n display: flex;\n align-items: center;\n}\n\n/* LEFT */\n.ds-hero--left .ds-hero__content {\n align-items: flex-start;\n text-align: left;\n}\n\n/* ==========================================================================\n Responsive — Wide + Ultra tiers\n ========================================================================== */\n\n/* Wide (>=1920px) — more vertical space, larger media */\n@media (min-width: 1920px) {\n .ds-hero__content {\n gap: var(--space-8);\n }\n\n .ds-hero__subtitle {\n font-size: var(--font-size-xl);\n max-width: 65ch;\n }\n\n .ds-hero__actions {\n gap: var(--space-5);\n margin-top: var(--space-6);\n }\n\n .ds-hero--center .ds-hero__content {\n max-width: 1000px;\n margin-bottom: var(--space-20);\n }\n}\n\n/* Ultra (>=2560px) — maximum visual impact */\n@media (min-width: 2560px) {\n .ds-hero__content {\n gap: var(--space-10);\n }\n\n .ds-hero__subtitle {\n font-size: var(--font-size-2xl);\n max-width: 70ch;\n }\n\n .ds-hero__actions {\n gap: var(--space-6);\n margin-top: var(--space-8);\n }\n\n .ds-hero--center .ds-hero__content {\n max-width: 1100px;\n }\n\n .ds-hero__float {\n max-width: 400px;\n }\n}\n","/* ============================================================================\n FEATURE SECTION\n ============================================================================ */\n\n.ds-feature-section {\n position: relative;\n}\n\n/* ==========================================================================\n Grid Layout\n ========================================================================== */\n\n.ds-feature-grid {\n display: grid;\n gap: var(--space-8);\n grid-template-columns: 1fr;\n}\n\n@media (min-width: 768px) {\n .ds-feature-grid--2-col {\n grid-template-columns: repeat(2, 1fr);\n }\n .ds-feature-grid--3-col {\n grid-template-columns: repeat(3, 1fr);\n }\n .ds-feature-grid--4-col {\n grid-template-columns: repeat(2, 1fr);\n } /* 2x2 on tablet */\n}\n\n@media (min-width: 1024px) {\n .ds-feature-grid--4-col {\n grid-template-columns: repeat(4, 1fr);\n }\n}\n\n/* ==========================================================================\n Feature Card (Grid Item)\n ========================================================================== */\n\n.ds-feature-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 transition:\n transform var(--transition-base),\n box-shadow var(--transition-base);\n}\n\n.ds-feature-card:hover {\n transform: translateY(-2px);\n background: var(--glass-base-hover);\n box-shadow: var(--glass-shadow-elevated);\n border-color: var(--rim-light-top);\n}\n\n.ds-feature-card__icon {\n width: 48px;\n height: 48px;\n display: flex;\n align-items: center;\n justify-content: center;\n border-radius: var(--radius-button);\n background: rgba(var(--brand-pink-rgb), 0.1);\n color: var(--brand-pink);\n margin-bottom: var(--space-2);\n}\n\n.ds-feature-card__title {\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 margin: 0;\n}\n\n.ds-feature-card__description {\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/* ==========================================================================\n ZigZag Layout (Rows)\n ========================================================================== */\n\n.ds-feature-zigzag {\n display: flex;\n flex-direction: column;\n gap: var(--space-16); /* Large gap between rows */\n}\n\n.ds-feature-row {\n display: grid;\n grid-template-columns: 1fr;\n gap: var(--space-8);\n align-items: center;\n}\n\n@media (min-width: 768px) {\n .ds-feature-row {\n grid-template-columns: 1fr 1fr;\n gap: var(--space-16);\n }\n\n /* Alternate order for even rows */\n .ds-feature-row:nth-child(even) .ds-feature-row__content {\n order: 2;\n }\n .ds-feature-row:nth-child(even) .ds-feature-row__media {\n order: 1;\n }\n}\n\n.ds-feature-row__content {\n display: flex;\n flex-direction: column;\n gap: var(--space-4);\n}\n\n.ds-feature-row__media {\n position: relative;\n border-radius: var(--radius-panel);\n overflow: hidden;\n box-shadow: var(--glass-shadow-elevated);\n border: 1px solid var(--rim-light-top);\n background: var(--glass-base);\n}\n\n.ds-feature-row__media img {\n width: 100%;\n height: auto;\n display: block;\n}\n\n/* Number badge for steps */\n.ds-feature-row__step {\n font-family: var(--font-family-mono);\n font-size: var(--font-size-xs);\n color: var(--brand-pink);\n background: rgba(var(--brand-pink-rgb), 0.1);\n padding: var(--space-1) var(--space-2);\n border-radius: var(--radius-pill);\n align-self: flex-start;\n margin-bottom: var(--space-2);\n}\n","/* ============================================================================\n CTA SECTION\n ============================================================================ */\n\n.ds-cta-section {\n overflow: hidden;\n}\n\n/* ==========================================================================\n Content\n ========================================================================== */\n\n.ds-cta-content {\n display: flex;\n flex-direction: column;\n gap: var(--space-6);\n max-width: 800px;\n margin: 0 auto;\n}\n\n.ds-cta-section--center .ds-cta-content {\n align-items: center;\n text-align: center;\n}\n\n.ds-cta-section--split {\n display: grid;\n gap: var(--space-8);\n}\n\n@media (min-width: 768px) {\n .ds-cta-section--split {\n grid-template-columns: 3fr 2fr;\n align-items: center;\n }\n}\n\n/* ==========================================================================\n Typography\n ========================================================================== */\n\n.ds-cta-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-cta-description {\n font-family: var(--font-family);\n font-size: var(--font-size-lg);\n color: var(--text-secondary);\n line-height: var(--line-height-relaxed);\n margin: 0;\n}\n\n/* ==========================================================================\n Actions\n ========================================================================== */\n\n.ds-cta-actions {\n display: flex;\n flex-wrap: wrap;\n gap: var(--space-4);\n margin-top: var(--space-2);\n}\n\n.ds-cta-section--center .ds-cta-actions {\n justify-content: center;\n}\n\n.ds-cta-section--split .ds-cta-actions {\n justify-content: flex-end; /* Or flex-start depending on preference */\n}\n\n@media (min-width: 768px) {\n .ds-cta-section--split .ds-cta-actions {\n margin-top: 0;\n justify-content: flex-end;\n }\n}\n\n/* ==========================================================================\n Card Variant (Boxed)\n ========================================================================== */\n\n.ds-cta-card {\n background: var(--glass-base);\n border: 1px solid var(--rim-light-top);\n border-radius: var(--radius-panel);\n padding: var(--space-12) var(--space-8);\n box-shadow: var(--glass-shadow-elevated);\n position: relative;\n overflow: hidden;\n}\n\n/* Glow Effect for Brand variant */\n.ds-section--bg-brand .ds-cta-card {\n background: rgba(var(--brand-pink-rgb), 0.1);\n border-color: rgba(var(--brand-pink-rgb), 0.3);\n}\n","/* ============================================================================\n STATS SECTION\n ============================================================================ */\n\n.ds-stats-grid {\n display: grid;\n grid-template-columns: repeat(2, 1fr);\n gap: var(--space-8);\n width: 100%;\n}\n\n@media (min-width: 768px) {\n .ds-stats-grid {\n grid-template-columns: repeat(4, 1fr);\n gap: var(--space-12);\n }\n}\n\n.ds-stat-card {\n display: flex;\n flex-direction: column;\n gap: var(--space-2);\n text-align: center;\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 transition: transform var(--transition-base);\n}\n\n.ds-stat-card:hover {\n transform: translateY(-2px);\n background: var(--glass-base-hover);\n border-color: var(--rim-light-top);\n}\n\n.ds-stat-value {\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: 1;\n letter-spacing: var(--letter-spacing-tight);\n}\n\n@media (min-width: 768px) {\n .ds-stat-value {\n font-size: var(--font-size-5xl); /* 4xl */\n }\n}\n\n.ds-stat-label {\n font-family: var(--font-family);\n font-size: var(--font-size-sm);\n color: var(--text-secondary);\n font-weight: var(--font-weight-medium);\n text-transform: uppercase;\n letter-spacing: var(--letter-spacing-wide);\n}\n\n.ds-stat-suffix {\n font-size: var(--font-size-suffix);\n color: var(--brand-pink);\n vertical-align: super;\n margin-left: var(--space-1);\n}\n"],"mappings":"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","names":[]}
@@ -0,0 +1,69 @@
1
+ import { c as SectionShellProps } from '../SectionShell-BfBw5q0Y.cjs';
2
+ export { S as SectionHeader, a as SectionHeaderProps, b as SectionShell } from '../SectionShell-BfBw5q0Y.cjs';
3
+ import React__default from 'react';
4
+
5
+ interface HeroSectionProps extends Omit<SectionShellProps, 'title'> {
6
+ variant?: 'left' | 'center' | 'split';
7
+ title: React__default.ReactNode;
8
+ subtitle?: React__default.ReactNode;
9
+ eyebrow?: React__default.ReactNode;
10
+ primaryCta?: React__default.ReactNode;
11
+ secondaryCta?: React__default.ReactNode;
12
+ /** Main visual (Image, Video, or Component) */
13
+ media?: React__default.ReactNode;
14
+ /** Adds a browser-like header bar to the media container */
15
+ mediaBrowserFrame?: boolean;
16
+ /** Optional floating elements (e.g. SocialProof cards) over the media */
17
+ floatingElement?: React__default.ReactNode;
18
+ floatingPosition?: 'top-right' | 'bottom-left';
19
+ /** Background Visuals */
20
+ withGrid?: boolean;
21
+ withGlow?: boolean;
22
+ align?: 'left' | 'center';
23
+ }
24
+ declare const HeroSection: React__default.ForwardRefExoticComponent<HeroSectionProps & React__default.RefAttributes<HTMLDivElement>>;
25
+
26
+ interface FeatureItem {
27
+ title: React__default.ReactNode;
28
+ description: React__default.ReactNode;
29
+ icon?: React__default.ReactNode;
30
+ media?: React__default.ReactNode;
31
+ step?: string | number;
32
+ cta?: React__default.ReactNode;
33
+ }
34
+ interface FeatureSectionProps extends Omit<SectionShellProps, 'title'> {
35
+ variant?: 'grid' | 'zigzag';
36
+ columns?: 2 | 3 | 4;
37
+ features: FeatureItem[];
38
+ title?: React__default.ReactNode;
39
+ subtitle?: React__default.ReactNode;
40
+ eyebrow?: React__default.ReactNode;
41
+ alignHeader?: 'left' | 'center' | 'right';
42
+ }
43
+ declare const FeatureSection: React__default.ForwardRefExoticComponent<FeatureSectionProps & React__default.RefAttributes<HTMLDivElement>>;
44
+
45
+ interface CTASectionProps extends Omit<SectionShellProps, 'title'> {
46
+ variant?: 'center' | 'split' | 'boxed';
47
+ title: React__default.ReactNode;
48
+ description?: React__default.ReactNode;
49
+ primaryCta?: React__default.ReactNode;
50
+ secondaryCta?: React__default.ReactNode;
51
+ actions?: React__default.ReactNode;
52
+ }
53
+ declare const CTASection: React__default.ForwardRefExoticComponent<CTASectionProps & React__default.RefAttributes<HTMLDivElement>>;
54
+
55
+ interface StatItem {
56
+ label: string;
57
+ value: string | number;
58
+ suffix?: string;
59
+ prefix?: string;
60
+ }
61
+ interface StatsSectionProps extends Omit<SectionShellProps, 'title'> {
62
+ stats: StatItem[];
63
+ title?: React__default.ReactNode;
64
+ subtitle?: React__default.ReactNode;
65
+ eyebrow?: React__default.ReactNode;
66
+ }
67
+ declare const StatsSection: React__default.ForwardRefExoticComponent<StatsSectionProps & React__default.RefAttributes<HTMLDivElement>>;
68
+
69
+ export { CTASection, type CTASectionProps, type FeatureItem, FeatureSection, type FeatureSectionProps, HeroSection, type HeroSectionProps, SectionShellProps, type StatItem, StatsSection, type StatsSectionProps };
@@ -0,0 +1,69 @@
1
+ import { c as SectionShellProps } from '../SectionShell-BfBw5q0Y.js';
2
+ export { S as SectionHeader, a as SectionHeaderProps, b as SectionShell } from '../SectionShell-BfBw5q0Y.js';
3
+ import React__default from 'react';
4
+
5
+ interface HeroSectionProps extends Omit<SectionShellProps, 'title'> {
6
+ variant?: 'left' | 'center' | 'split';
7
+ title: React__default.ReactNode;
8
+ subtitle?: React__default.ReactNode;
9
+ eyebrow?: React__default.ReactNode;
10
+ primaryCta?: React__default.ReactNode;
11
+ secondaryCta?: React__default.ReactNode;
12
+ /** Main visual (Image, Video, or Component) */
13
+ media?: React__default.ReactNode;
14
+ /** Adds a browser-like header bar to the media container */
15
+ mediaBrowserFrame?: boolean;
16
+ /** Optional floating elements (e.g. SocialProof cards) over the media */
17
+ floatingElement?: React__default.ReactNode;
18
+ floatingPosition?: 'top-right' | 'bottom-left';
19
+ /** Background Visuals */
20
+ withGrid?: boolean;
21
+ withGlow?: boolean;
22
+ align?: 'left' | 'center';
23
+ }
24
+ declare const HeroSection: React__default.ForwardRefExoticComponent<HeroSectionProps & React__default.RefAttributes<HTMLDivElement>>;
25
+
26
+ interface FeatureItem {
27
+ title: React__default.ReactNode;
28
+ description: React__default.ReactNode;
29
+ icon?: React__default.ReactNode;
30
+ media?: React__default.ReactNode;
31
+ step?: string | number;
32
+ cta?: React__default.ReactNode;
33
+ }
34
+ interface FeatureSectionProps extends Omit<SectionShellProps, 'title'> {
35
+ variant?: 'grid' | 'zigzag';
36
+ columns?: 2 | 3 | 4;
37
+ features: FeatureItem[];
38
+ title?: React__default.ReactNode;
39
+ subtitle?: React__default.ReactNode;
40
+ eyebrow?: React__default.ReactNode;
41
+ alignHeader?: 'left' | 'center' | 'right';
42
+ }
43
+ declare const FeatureSection: React__default.ForwardRefExoticComponent<FeatureSectionProps & React__default.RefAttributes<HTMLDivElement>>;
44
+
45
+ interface CTASectionProps extends Omit<SectionShellProps, 'title'> {
46
+ variant?: 'center' | 'split' | 'boxed';
47
+ title: React__default.ReactNode;
48
+ description?: React__default.ReactNode;
49
+ primaryCta?: React__default.ReactNode;
50
+ secondaryCta?: React__default.ReactNode;
51
+ actions?: React__default.ReactNode;
52
+ }
53
+ declare const CTASection: React__default.ForwardRefExoticComponent<CTASectionProps & React__default.RefAttributes<HTMLDivElement>>;
54
+
55
+ interface StatItem {
56
+ label: string;
57
+ value: string | number;
58
+ suffix?: string;
59
+ prefix?: string;
60
+ }
61
+ interface StatsSectionProps extends Omit<SectionShellProps, 'title'> {
62
+ stats: StatItem[];
63
+ title?: React__default.ReactNode;
64
+ subtitle?: React__default.ReactNode;
65
+ eyebrow?: React__default.ReactNode;
66
+ }
67
+ declare const StatsSection: React__default.ForwardRefExoticComponent<StatsSectionProps & React__default.RefAttributes<HTMLDivElement>>;
68
+
69
+ export { CTASection, type CTASectionProps, type FeatureItem, FeatureSection, type FeatureSectionProps, HeroSection, type HeroSectionProps, SectionShellProps, type StatItem, StatsSection, type StatsSectionProps };
@@ -0,0 +1,374 @@
1
+ import { forwardRef } from 'react';
2
+ import clsx5 from 'clsx';
3
+ import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
4
+
5
+ // src/components/SectionShell/SectionShell.tsx
6
+
7
+ // src/tokens/spacing.ts
8
+ var SPACING = {
9
+ 1: "var(--space-1)",
10
+ 2: "var(--space-2)",
11
+ 3: "var(--space-3)",
12
+ 4: "var(--space-4)",
13
+ 5: "var(--space-5)",
14
+ 6: "var(--space-6)",
15
+ 8: "var(--space-8)",
16
+ 10: "var(--space-10)",
17
+ 12: "var(--space-12)",
18
+ 16: "var(--space-16)",
19
+ 20: "var(--space-20)"
20
+ };
21
+
22
+ // src/components/LayoutPrimitives/utils.ts
23
+ var SPACING_ALIASES = {
24
+ xs: "var(--space-2)",
25
+ sm: "var(--space-3)",
26
+ md: "var(--space-4)",
27
+ lg: "var(--space-6)",
28
+ xl: "var(--space-8)",
29
+ "2xl": "var(--space-12)"
30
+ };
31
+ function resolveSpacing(value) {
32
+ if (value === void 0) return void 0;
33
+ if (typeof value === "number" && SPACING[value]) {
34
+ return SPACING[value];
35
+ }
36
+ if (typeof value === "string" && value in SPACING_ALIASES) {
37
+ return SPACING_ALIASES[value];
38
+ }
39
+ return String(value);
40
+ }
41
+ function extractSpacingStyles(props) {
42
+ const styles = {};
43
+ if (props.m !== void 0) styles.margin = resolveSpacing(props.m);
44
+ if (props.mt !== void 0) styles.marginTop = resolveSpacing(props.mt);
45
+ if (props.mb !== void 0) styles.marginBottom = resolveSpacing(props.mb);
46
+ if (props.ml !== void 0) styles.marginLeft = resolveSpacing(props.ml);
47
+ if (props.mr !== void 0) styles.marginRight = resolveSpacing(props.mr);
48
+ if (props.mx !== void 0) {
49
+ styles.marginLeft = resolveSpacing(props.mx);
50
+ styles.marginRight = resolveSpacing(props.mx);
51
+ }
52
+ if (props.my !== void 0) {
53
+ styles.marginTop = resolveSpacing(props.my);
54
+ styles.marginBottom = resolveSpacing(props.my);
55
+ }
56
+ if (props.p !== void 0) styles.padding = resolveSpacing(props.p);
57
+ if (props.pt !== void 0) styles.paddingTop = resolveSpacing(props.pt);
58
+ if (props.pb !== void 0) styles.paddingBottom = resolveSpacing(props.pb);
59
+ if (props.pl !== void 0) styles.paddingLeft = resolveSpacing(props.pl);
60
+ if (props.pr !== void 0) styles.paddingRight = resolveSpacing(props.pr);
61
+ if (props.px !== void 0) {
62
+ styles.paddingLeft = resolveSpacing(props.px);
63
+ styles.paddingRight = resolveSpacing(props.px);
64
+ }
65
+ if (props.py !== void 0) {
66
+ styles.paddingTop = resolveSpacing(props.py);
67
+ styles.paddingBottom = resolveSpacing(props.py);
68
+ }
69
+ if (props.gap !== void 0) styles.gap = resolveSpacing(props.gap);
70
+ return styles;
71
+ }
72
+ var Box = forwardRef(
73
+ ({ as: Component = "div", className, style, children, ...props }, ref) => {
74
+ const spacingStyles = extractSpacingStyles(props);
75
+ const { m, mt, mb, ml, mr, mx, my, p, pt, pb, pl, pr, px, py, gap, ...domProps } = props;
76
+ return /* @__PURE__ */ jsx(
77
+ Component,
78
+ {
79
+ ref,
80
+ className: clsx5("ds-box", className),
81
+ style: { ...spacingStyles, ...style },
82
+ ...domProps,
83
+ children
84
+ }
85
+ );
86
+ }
87
+ );
88
+ Box.displayName = "Box";
89
+ var Stack = forwardRef(
90
+ ({ direction = "column", align, justify, wrap, className, style, ...props }, ref) => {
91
+ return /* @__PURE__ */ jsx(
92
+ Box,
93
+ {
94
+ ref,
95
+ className: clsx5("ds-stack", direction === "row" && "ds-stack--horizontal", className),
96
+ style: {
97
+ alignItems: align,
98
+ justifyContent: justify === "between" ? "space-between" : justify,
99
+ flexWrap: wrap ? "wrap" : void 0,
100
+ ...style
101
+ },
102
+ ...props
103
+ }
104
+ );
105
+ }
106
+ );
107
+ Stack.displayName = "Stack";
108
+ var CONTAINER_SIZE_MAP = {
109
+ sm: "768px",
110
+ // 48rem — max-w-3xl
111
+ md: "1024px",
112
+ // 64rem — max-w-5xl
113
+ lg: "1152px",
114
+ // 72rem — max-w-6xl
115
+ xl: "1280px",
116
+ // 80rem — max-w-7xl
117
+ full: "100%"
118
+ };
119
+ var Container = forwardRef(
120
+ ({ size, fluid, maxWidth, className, style, ...props }, ref) => {
121
+ let resolvedMaxWidth;
122
+ if (fluid) {
123
+ resolvedMaxWidth = "100%";
124
+ } else if (size) {
125
+ resolvedMaxWidth = CONTAINER_SIZE_MAP[size];
126
+ } else {
127
+ resolvedMaxWidth = maxWidth || "var(--container-default-max, 1200px)";
128
+ }
129
+ return /* @__PURE__ */ jsx(
130
+ Box,
131
+ {
132
+ ref,
133
+ className: clsx5("ds-container", className),
134
+ style: {
135
+ maxWidth: resolvedMaxWidth,
136
+ ...style
137
+ },
138
+ ...props
139
+ }
140
+ );
141
+ }
142
+ );
143
+ Container.displayName = "Container";
144
+ var SectionHeader = forwardRef(
145
+ ({ title, subtitle, eyebrow, align = "center", className, ...props }, ref) => {
146
+ if (!title && !subtitle && !eyebrow) return null;
147
+ return /* @__PURE__ */ jsxs(
148
+ "header",
149
+ {
150
+ ref,
151
+ className: clsx5("ds-section-header", `ds-section-header--${align}`, className),
152
+ ...props,
153
+ children: [
154
+ eyebrow && /* @__PURE__ */ jsx("span", { className: "ds-section-header__eyebrow", children: eyebrow }),
155
+ title && /* @__PURE__ */ jsx("h2", { className: "ds-section-header__title", children: title }),
156
+ subtitle && /* @__PURE__ */ jsx("p", { className: "ds-section-header__subtitle", children: subtitle })
157
+ ]
158
+ }
159
+ );
160
+ }
161
+ );
162
+ SectionHeader.displayName = "SectionHeader";
163
+ var SectionShell = forwardRef(
164
+ ({
165
+ className,
166
+ children,
167
+ background = "default",
168
+ padding = "md",
169
+ containerSize,
170
+ containerFluid = false,
171
+ ...props
172
+ }, ref) => {
173
+ return /* @__PURE__ */ jsx(
174
+ "section",
175
+ {
176
+ ref,
177
+ className: clsx5(
178
+ "ds-section",
179
+ `ds-section--bg-${background}`,
180
+ `ds-section--padding-${padding}`,
181
+ className
182
+ ),
183
+ ...props,
184
+ children: /* @__PURE__ */ jsx(
185
+ Container,
186
+ {
187
+ size: containerSize === "fluid" ? "full" : containerSize,
188
+ fluid: containerFluid || containerSize === "fluid",
189
+ children
190
+ }
191
+ )
192
+ }
193
+ );
194
+ }
195
+ );
196
+ SectionShell.displayName = "SectionShell";
197
+ var HeroSection = forwardRef(
198
+ ({
199
+ variant = "left",
200
+ title,
201
+ subtitle,
202
+ eyebrow,
203
+ primaryCta,
204
+ secondaryCta,
205
+ media,
206
+ mediaBrowserFrame = false,
207
+ floatingElement,
208
+ floatingPosition = "bottom-left",
209
+ withGrid = false,
210
+ withGlow = false,
211
+ align,
212
+ className,
213
+ children,
214
+ ...props
215
+ }, ref) => {
216
+ const isSplit = variant === "split";
217
+ const isCenter = variant === "center";
218
+ const textAlignment = align || (isCenter ? "center" : "left");
219
+ const ContentBlock = /* @__PURE__ */ jsxs("div", { className: clsx5("ds-hero__content", `ds-hero__content--${textAlignment}`), children: [
220
+ eyebrow && /* @__PURE__ */ jsx("span", { className: "ds-section-header__eyebrow", style: { marginBottom: "var(--space-2)" }, children: eyebrow }),
221
+ /* @__PURE__ */ jsx("h1", { className: "ds-hero__title", children: title }),
222
+ subtitle && /* @__PURE__ */ jsx("p", { className: "ds-hero__subtitle", children: subtitle }),
223
+ (primaryCta || secondaryCta) && /* @__PURE__ */ jsxs("div", { className: "ds-hero__actions", children: [
224
+ primaryCta,
225
+ secondaryCta
226
+ ] }),
227
+ children
228
+ ] });
229
+ const MediaBlock = media && /* @__PURE__ */ jsxs("div", { className: "ds-hero__media-wrapper", children: [
230
+ /* @__PURE__ */ jsx("div", { className: clsx5("ds-hero__media", mediaBrowserFrame && "ds-hero__media--browser"), children: media }),
231
+ floatingElement && /* @__PURE__ */ jsx("div", { className: clsx5("ds-hero__float", `ds-hero__float--${floatingPosition}`), children: floatingElement })
232
+ ] });
233
+ return /* @__PURE__ */ jsx(
234
+ SectionShell,
235
+ {
236
+ ref,
237
+ className: clsx5(
238
+ "ds-hero",
239
+ `ds-hero--${variant}`,
240
+ withGrid && "ds-hero--bg-grid",
241
+ withGlow && "ds-hero--bg-glow",
242
+ className
243
+ ),
244
+ padding: "lg",
245
+ ...props,
246
+ children: isSplit ? /* @__PURE__ */ jsxs(
247
+ "div",
248
+ {
249
+ style: {
250
+ display: "grid",
251
+ gridTemplateColumns: "repeat(auto-fit, minmax(min(100%, 500px), 1fr))",
252
+ gap: "var(--space-16)",
253
+ alignItems: "center"
254
+ },
255
+ children: [
256
+ /* @__PURE__ */ jsx(Box, { children: ContentBlock }),
257
+ /* @__PURE__ */ jsx(Box, { children: MediaBlock })
258
+ ]
259
+ }
260
+ ) : /* @__PURE__ */ jsxs(Stack, { gap: 16, align: isCenter ? "center" : "start", children: [
261
+ ContentBlock,
262
+ MediaBlock && /* @__PURE__ */ jsx(
263
+ Box,
264
+ {
265
+ style: {
266
+ width: "100%",
267
+ display: "flex",
268
+ justifyContent: isCenter ? "center" : "flex-start"
269
+ },
270
+ children: /* @__PURE__ */ jsx("div", { style: { width: "100%", maxWidth: isCenter ? "1200px" : "100%" }, children: MediaBlock })
271
+ }
272
+ )
273
+ ] })
274
+ }
275
+ );
276
+ }
277
+ );
278
+ HeroSection.displayName = "HeroSection";
279
+ var FeatureCard = ({ item }) => /* @__PURE__ */ jsxs("div", { className: "ds-feature-card", children: [
280
+ item.icon && /* @__PURE__ */ jsx("div", { className: "ds-feature-card__icon", children: item.icon }),
281
+ /* @__PURE__ */ jsx("h3", { className: "ds-feature-card__title", children: item.title }),
282
+ /* @__PURE__ */ jsx("div", { className: "ds-feature-card__description", children: item.description }),
283
+ item.cta && /* @__PURE__ */ jsx("div", { className: "ds-feature-card__cta", children: item.cta })
284
+ ] });
285
+ var FeatureRow = ({ item }) => /* @__PURE__ */ jsxs("div", { className: "ds-feature-row", children: [
286
+ /* @__PURE__ */ jsxs("div", { className: "ds-feature-row__content", children: [
287
+ item.step && /* @__PURE__ */ jsxs("div", { className: "ds-feature-row__step", children: [
288
+ "STEP ",
289
+ item.step
290
+ ] }),
291
+ item.icon && /* @__PURE__ */ jsx("div", { className: "ds-feature-card__icon", children: item.icon }),
292
+ /* @__PURE__ */ jsx("h3", { className: "ds-section-header__title", style: { fontSize: "var(--font-size-2xl)" }, children: item.title }),
293
+ /* @__PURE__ */ jsx("div", { className: "ds-section-header__subtitle", style: { fontSize: "var(--font-size-lg)" }, children: item.description }),
294
+ item.cta && /* @__PURE__ */ jsx("div", { className: "ds-hero__actions", children: item.cta })
295
+ ] }),
296
+ /* @__PURE__ */ jsx("div", { className: "ds-feature-row__media", children: item.media || /* @__PURE__ */ jsx("div", { style: { paddingBottom: "56.25%", background: "var(--glass-base-active)" } }) })
297
+ ] });
298
+ var FeatureSection = forwardRef(
299
+ ({
300
+ variant = "grid",
301
+ columns = 3,
302
+ features,
303
+ title,
304
+ subtitle,
305
+ eyebrow,
306
+ alignHeader = "center",
307
+ className,
308
+ ...props
309
+ }, ref) => {
310
+ return /* @__PURE__ */ jsxs(SectionShell, { ref, className: clsx5("ds-feature-section", className), ...props, children: [
311
+ /* @__PURE__ */ jsx(SectionHeader, { title, subtitle, eyebrow, align: alignHeader }),
312
+ variant === "grid" ? /* @__PURE__ */ jsx("div", { className: clsx5("ds-feature-grid", `ds-feature-grid--${columns}-col`), children: features.map((feature, index) => /* @__PURE__ */ jsx(FeatureCard, { item: feature }, index)) }) : /* @__PURE__ */ jsx("div", { className: "ds-feature-zigzag", children: features.map((feature, index) => /* @__PURE__ */ jsx(FeatureRow, { item: feature }, index)) })
313
+ ] });
314
+ }
315
+ );
316
+ FeatureSection.displayName = "FeatureSection";
317
+ var CTASection = forwardRef(
318
+ ({
319
+ variant = "center",
320
+ title,
321
+ description,
322
+ primaryCta,
323
+ secondaryCta,
324
+ actions,
325
+ className,
326
+ children,
327
+ ...props
328
+ }, ref) => {
329
+ const isBoxed = variant === "boxed";
330
+ const effectiveVariant = isBoxed ? "center" : variant;
331
+ const Content = /* @__PURE__ */ jsxs("div", { className: clsx5("ds-cta-section", `ds-cta-section--${effectiveVariant}`), children: [
332
+ effectiveVariant === "split" ? /* @__PURE__ */ jsxs("div", { className: "ds-cta-section--split", children: [
333
+ /* @__PURE__ */ jsxs("div", { className: "ds-cta-content", children: [
334
+ /* @__PURE__ */ jsx("h2", { className: "ds-cta-title", children: title }),
335
+ description && /* @__PURE__ */ jsx("p", { className: "ds-cta-description", children: description })
336
+ ] }),
337
+ /* @__PURE__ */ jsx("div", { className: "ds-cta-actions", children: actions || /* @__PURE__ */ jsxs(Fragment, { children: [
338
+ primaryCta,
339
+ secondaryCta
340
+ ] }) })
341
+ ] }) : /* @__PURE__ */ jsxs("div", { className: "ds-cta-content", children: [
342
+ /* @__PURE__ */ jsx("h2", { className: "ds-cta-title", children: title }),
343
+ description && /* @__PURE__ */ jsx("p", { className: "ds-cta-description", children: description }),
344
+ /* @__PURE__ */ jsx("div", { className: "ds-cta-actions", children: actions || /* @__PURE__ */ jsxs(Fragment, { children: [
345
+ primaryCta,
346
+ secondaryCta
347
+ ] }) })
348
+ ] }),
349
+ children
350
+ ] });
351
+ return /* @__PURE__ */ jsx(SectionShell, { ref, className: clsx5(className), ...props, children: isBoxed ? /* @__PURE__ */ jsx("div", { className: "ds-cta-card", children: Content }) : Content });
352
+ }
353
+ );
354
+ CTASection.displayName = "CTASection";
355
+ var StatsSection = forwardRef(
356
+ ({ stats, title, subtitle, eyebrow, className, ...props }, ref) => {
357
+ return /* @__PURE__ */ jsxs(SectionShell, { ref, className: clsx5("ds-stats-section", className), ...props, children: [
358
+ /* @__PURE__ */ jsx(SectionHeader, { title, subtitle, eyebrow }),
359
+ /* @__PURE__ */ jsx("div", { className: "ds-stats-grid", children: stats.map((stat, idx) => /* @__PURE__ */ jsxs("div", { className: "ds-stat-card", children: [
360
+ /* @__PURE__ */ jsxs("div", { className: "ds-stat-value", children: [
361
+ stat.prefix,
362
+ stat.value,
363
+ /* @__PURE__ */ jsx("span", { className: "ds-stat-suffix", children: stat.suffix })
364
+ ] }),
365
+ /* @__PURE__ */ jsx("div", { className: "ds-stat-label", children: stat.label })
366
+ ] }, idx)) })
367
+ ] });
368
+ }
369
+ );
370
+ StatsSection.displayName = "StatsSection";
371
+
372
+ export { CTASection, FeatureSection, HeroSection, SectionHeader, SectionShell, StatsSection };
373
+ //# sourceMappingURL=out.js.map
374
+ //# sourceMappingURL=index.js.map