@salesmind-ai/design-system 0.3.0 → 0.3.2

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 (212) hide show
  1. package/README.md +32 -2
  2. package/dist/admin/index.cjs +68 -2928
  3. package/dist/admin/index.cjs.map +1 -1
  4. package/dist/admin/index.js +5 -2915
  5. package/dist/admin/index.js.map +1 -1
  6. package/dist/blog/index.cjs +53 -1064
  7. package/dist/blog/index.cjs.map +1 -1
  8. package/dist/blog/index.js +8 -1054
  9. package/dist/blog/index.js.map +1 -1
  10. package/dist/charts/index.cjs +46 -2694
  11. package/dist/charts/index.cjs.map +1 -1
  12. package/dist/charts/index.js +3 -2680
  13. package/dist/charts/index.js.map +1 -1
  14. package/dist/chunk-2GARWEJK.js +17 -0
  15. package/dist/chunk-2GARWEJK.js.map +1 -0
  16. package/dist/chunk-3NKRFUAR.js +37 -0
  17. package/dist/chunk-3NKRFUAR.js.map +1 -0
  18. package/dist/chunk-3TGSIILM.cjs +201 -0
  19. package/dist/chunk-3TGSIILM.cjs.map +1 -0
  20. package/dist/chunk-4GM5BGBN.cjs +801 -0
  21. package/dist/chunk-4GM5BGBN.cjs.map +1 -0
  22. package/dist/chunk-5LGDEZWY.cjs +2434 -0
  23. package/dist/chunk-5LGDEZWY.cjs.map +1 -0
  24. package/dist/chunk-6H4DSTXR.js +786 -0
  25. package/dist/chunk-6H4DSTXR.js.map +1 -0
  26. package/dist/chunk-6UNG76Y2.js +153 -0
  27. package/dist/chunk-6UNG76Y2.js.map +1 -0
  28. package/dist/chunk-7PX2AZ6Y.js +39 -0
  29. package/dist/chunk-7PX2AZ6Y.js.map +1 -0
  30. package/dist/chunk-B6AVAX4F.js +1415 -0
  31. package/dist/chunk-B6AVAX4F.js.map +1 -0
  32. package/dist/chunk-BILT5KD3.js +264 -0
  33. package/dist/chunk-BILT5KD3.js.map +1 -0
  34. package/dist/chunk-C2BCDNAV.js +24 -0
  35. package/dist/chunk-C2BCDNAV.js.map +1 -0
  36. package/dist/chunk-CH42VPWE.cjs +421 -0
  37. package/dist/chunk-CH42VPWE.cjs.map +1 -0
  38. package/dist/chunk-CJ2MKVAF.cjs +46 -0
  39. package/dist/chunk-CJ2MKVAF.cjs.map +1 -0
  40. package/dist/chunk-DP74LUXG.cjs +98 -0
  41. package/dist/chunk-DP74LUXG.cjs.map +1 -0
  42. package/dist/chunk-E7D6EKJ4.cjs +44 -0
  43. package/dist/chunk-E7D6EKJ4.cjs.map +1 -0
  44. package/dist/chunk-ECXBTUH6.cjs +584 -0
  45. package/dist/chunk-ECXBTUH6.cjs.map +1 -0
  46. package/dist/chunk-EFRAP5ES.js +157 -0
  47. package/dist/chunk-EFRAP5ES.js.map +1 -0
  48. package/dist/chunk-F6YYWMME.js +485 -0
  49. package/dist/chunk-F6YYWMME.js.map +1 -0
  50. package/dist/chunk-FAFAP4L5.js +183 -0
  51. package/dist/chunk-FAFAP4L5.js.map +1 -0
  52. package/dist/chunk-GUZIMHWS.js +1608 -0
  53. package/dist/chunk-GUZIMHWS.js.map +1 -0
  54. package/dist/chunk-H2Y6BSTL.cjs +69 -0
  55. package/dist/chunk-H2Y6BSTL.cjs.map +1 -0
  56. package/dist/chunk-HN4PHABT.js +126 -0
  57. package/dist/chunk-HN4PHABT.js.map +1 -0
  58. package/dist/chunk-HRENHNDJ.js +211 -0
  59. package/dist/chunk-HRENHNDJ.js.map +1 -0
  60. package/dist/chunk-I75BFEYT.cjs +2561 -0
  61. package/dist/chunk-I75BFEYT.cjs.map +1 -0
  62. package/dist/chunk-IFRATNLU.js +562 -0
  63. package/dist/chunk-IFRATNLU.js.map +1 -0
  64. package/dist/chunk-IYPXJ6YC.cjs +69 -0
  65. package/dist/chunk-IYPXJ6YC.cjs.map +1 -0
  66. package/dist/chunk-JPJN4YBC.js +409 -0
  67. package/dist/chunk-JPJN4YBC.js.map +1 -0
  68. package/dist/chunk-KBA2LFBG.js +62 -0
  69. package/dist/chunk-KBA2LFBG.js.map +1 -0
  70. package/dist/chunk-KCKUSU2M.cjs +166 -0
  71. package/dist/chunk-KCKUSU2M.cjs.map +1 -0
  72. package/dist/chunk-KJ2OXQF4.js +287 -0
  73. package/dist/chunk-KJ2OXQF4.js.map +1 -0
  74. package/dist/chunk-KNQEIU7O.cjs +1202 -0
  75. package/dist/chunk-KNQEIU7O.cjs.map +1 -0
  76. package/dist/chunk-KVGSVGRK.cjs +569 -0
  77. package/dist/chunk-KVGSVGRK.cjs.map +1 -0
  78. package/dist/chunk-L352JRV6.cjs +105 -0
  79. package/dist/chunk-L352JRV6.cjs.map +1 -0
  80. package/dist/chunk-LJADZITX.cjs +298 -0
  81. package/dist/chunk-LJADZITX.cjs.map +1 -0
  82. package/dist/chunk-LMJPWXTZ.cjs +194 -0
  83. package/dist/chunk-LMJPWXTZ.cjs.map +1 -0
  84. package/dist/chunk-LOWEAQST.js +701 -0
  85. package/dist/chunk-LOWEAQST.js.map +1 -0
  86. package/dist/chunk-MDB2WCRQ.cjs +137 -0
  87. package/dist/chunk-MDB2WCRQ.cjs.map +1 -0
  88. package/dist/chunk-MQDEE7HC.cjs +283 -0
  89. package/dist/chunk-MQDEE7HC.cjs.map +1 -0
  90. package/dist/chunk-MQRB634A.cjs +34 -0
  91. package/dist/chunk-MQRB634A.cjs.map +1 -0
  92. package/dist/chunk-MTI27RDV.js +185 -0
  93. package/dist/chunk-MTI27RDV.js.map +1 -0
  94. package/dist/chunk-MU6GW5ZV.js +2317 -0
  95. package/dist/chunk-MU6GW5ZV.js.map +1 -0
  96. package/dist/chunk-NN3TUHIH.js +28 -0
  97. package/dist/chunk-NN3TUHIH.js.map +1 -0
  98. package/dist/chunk-NT4LBP7D.cjs +111 -0
  99. package/dist/chunk-NT4LBP7D.cjs.map +1 -0
  100. package/dist/chunk-OLV7OD3X.cjs +502 -0
  101. package/dist/chunk-OLV7OD3X.cjs.map +1 -0
  102. package/dist/chunk-OXNXEQY7.js +2538 -0
  103. package/dist/chunk-OXNXEQY7.js.map +1 -0
  104. package/dist/chunk-P5BOFE5A.js +546 -0
  105. package/dist/chunk-P5BOFE5A.js.map +1 -0
  106. package/dist/chunk-Q2MFGYTE.cjs +1449 -0
  107. package/dist/chunk-Q2MFGYTE.cjs.map +1 -0
  108. package/dist/chunk-Q75DBVDY.cjs +68 -0
  109. package/dist/chunk-Q75DBVDY.cjs.map +1 -0
  110. package/dist/chunk-REQ5Q6ZI.js +1022 -0
  111. package/dist/chunk-REQ5Q6ZI.js.map +1 -0
  112. package/dist/chunk-SICKWUWB.js +62 -0
  113. package/dist/chunk-SICKWUWB.js.map +1 -0
  114. package/dist/chunk-T343CCH5.js +1190 -0
  115. package/dist/chunk-T343CCH5.js.map +1 -0
  116. package/dist/chunk-TEC62D4A.cjs +1624 -0
  117. package/dist/chunk-TEC62D4A.cjs.map +1 -0
  118. package/dist/chunk-TW5JB35D.js +2122 -0
  119. package/dist/chunk-TW5JB35D.js.map +1 -0
  120. package/dist/chunk-VC5LMUVQ.cjs +20 -0
  121. package/dist/chunk-VC5LMUVQ.cjs.map +1 -0
  122. package/dist/chunk-VM7WFMKI.cjs +76 -0
  123. package/dist/chunk-VM7WFMKI.cjs.map +1 -0
  124. package/dist/chunk-W2WTP6HS.cjs +233 -0
  125. package/dist/chunk-W2WTP6HS.cjs.map +1 -0
  126. package/dist/chunk-WH7PYHZY.cjs +35 -0
  127. package/dist/chunk-WH7PYHZY.cjs.map +1 -0
  128. package/dist/chunk-XQZVY7JJ.cjs +717 -0
  129. package/dist/chunk-XQZVY7JJ.cjs.map +1 -0
  130. package/dist/chunk-XU3OMQ7V.js +98 -0
  131. package/dist/chunk-XU3OMQ7V.js.map +1 -0
  132. package/dist/chunk-XWPDRMZG.js +62 -0
  133. package/dist/chunk-XWPDRMZG.js.map +1 -0
  134. package/dist/chunk-Y3CPKNB7.js +67 -0
  135. package/dist/chunk-Y3CPKNB7.js.map +1 -0
  136. package/dist/chunk-YNVRDD2P.js +98 -0
  137. package/dist/chunk-YNVRDD2P.js.map +1 -0
  138. package/dist/chunk-YSYR54XR.js +92 -0
  139. package/dist/chunk-YSYR54XR.js.map +1 -0
  140. package/dist/chunk-YTYDQBVY.cjs +162 -0
  141. package/dist/chunk-YTYDQBVY.cjs.map +1 -0
  142. package/dist/chunk-ZDLOA2UT.cjs +1042 -0
  143. package/dist/chunk-ZDLOA2UT.cjs.map +1 -0
  144. package/dist/chunk-ZWUKRCOJ.cjs +2162 -0
  145. package/dist/chunk-ZWUKRCOJ.cjs.map +1 -0
  146. package/dist/core/index.cjs +807 -4333
  147. package/dist/core/index.cjs.map +1 -1
  148. package/dist/core/index.js +14 -4130
  149. package/dist/core/index.js.map +1 -1
  150. package/dist/i18n/index.cjs +86 -558
  151. package/dist/i18n/index.cjs.map +1 -1
  152. package/dist/i18n/index.js +1 -544
  153. package/dist/i18n/index.js.map +1 -1
  154. package/dist/index.cjs +1432 -17139
  155. package/dist/index.cjs.map +1 -1
  156. package/dist/index.css +11 -7
  157. package/dist/index.css.map +1 -1
  158. package/dist/index.js +31 -16784
  159. package/dist/index.js.map +1 -1
  160. package/dist/marketing/index.cjs +142 -3072
  161. package/dist/marketing/index.cjs.map +1 -1
  162. package/dist/marketing/index.js +11 -3042
  163. package/dist/marketing/index.js.map +1 -1
  164. package/dist/motion/index.cjs +26 -1222
  165. package/dist/motion/index.cjs.map +1 -1
  166. package/dist/motion/index.js +2 -1215
  167. package/dist/motion/index.js.map +1 -1
  168. package/dist/nav/index.cjs +101 -1518
  169. package/dist/nav/index.cjs.map +1 -1
  170. package/dist/nav/index.js +4 -1498
  171. package/dist/nav/index.js.map +1 -1
  172. package/dist/report/index.cjs +171 -2403
  173. package/dist/report/index.cjs.map +1 -1
  174. package/dist/report/index.js +3 -2363
  175. package/dist/report/index.js.map +1 -1
  176. package/dist/sections/index.cjs +28 -378
  177. package/dist/sections/index.cjs.map +1 -1
  178. package/dist/sections/index.css +1 -4
  179. package/dist/sections/index.css.map +1 -1
  180. package/dist/sections/index.js +4 -372
  181. package/dist/sections/index.js.map +1 -1
  182. package/dist/social-proof/index.cjs +53 -1249
  183. package/dist/social-proof/index.cjs.map +1 -1
  184. package/dist/social-proof/index.css +10 -3
  185. package/dist/social-proof/index.css.map +1 -1
  186. package/dist/social-proof/index.js +6 -1234
  187. package/dist/social-proof/index.js.map +1 -1
  188. package/dist/theme/index.cjs +38 -565
  189. package/dist/theme/index.cjs.map +1 -1
  190. package/dist/theme/index.js +2 -555
  191. package/dist/theme/index.js.map +1 -1
  192. package/dist/web/client/index.cjs +48 -0
  193. package/dist/web/client/index.cjs.map +1 -0
  194. package/dist/web/client/index.css +456 -0
  195. package/dist/web/client/index.css.map +1 -0
  196. package/dist/web/client/index.d.cts +172 -0
  197. package/dist/web/client/index.d.ts +172 -0
  198. package/dist/web/client/index.js +7 -0
  199. package/dist/web/client/index.js.map +1 -0
  200. package/dist/web/index.cjs +158 -1346
  201. package/dist/web/index.cjs.map +1 -1
  202. package/dist/web/index.d.cts +5 -893
  203. package/dist/web/index.d.ts +5 -893
  204. package/dist/web/index.js +9 -1305
  205. package/dist/web/index.js.map +1 -1
  206. package/dist/web/server/index.cjs +32 -0
  207. package/dist/web/server/index.cjs.map +1 -0
  208. package/dist/web/server/index.d.cts +725 -0
  209. package/dist/web/server/index.d.ts +725 -0
  210. package/dist/web/server/index.js +3 -0
  211. package/dist/web/server/index.js.map +1 -0
  212. package/package.json +14 -1
@@ -1 +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 opacity: 0;\n transform: translateY(20px);\n }\n to {\n opacity: 1;\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 forwards; /* Delayed entrance */\n opacity: 0; /* Start hidden for animation */\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":[]}
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":[]}
@@ -1,374 +1,6 @@
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 };
1
+ export { CTASection, FeatureSection, HeroSection, StatsSection } from '../chunk-MTI27RDV.js';
2
+ import '../chunk-NN3TUHIH.js';
3
+ export { SectionHeader, SectionShell } from '../chunk-KBA2LFBG.js';
4
+ import '../chunk-HN4PHABT.js';
373
5
  //# sourceMappingURL=out.js.map
374
6
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/components/SectionShell/SectionShell.tsx","../../src/components/LayoutPrimitives/Box.tsx","../../src/tokens/spacing.ts","../../src/components/LayoutPrimitives/utils.ts","../../src/components/LayoutPrimitives/Stack.tsx","../../src/components/LayoutPrimitives/Container.tsx","../../src/components/HeroSection/HeroSection.tsx","../../src/components/FeatureSection/FeatureSection.tsx","../../src/components/CTASection/CTASection.tsx","../../src/components/StatsSection/StatsSection.tsx"],"names":["forwardRef","clsx","jsx","jsxs"],"mappings":"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","sourcesContent":["import React, { forwardRef, HTMLAttributes } from 'react';\nimport clsx from 'clsx';\nimport { Container } from '../LayoutPrimitives';\nimport './SectionShell.css';\n\n/* ============================================================================\n Section Header Component\n ============================================================================ */\n\nexport interface SectionHeaderProps extends Omit<HTMLAttributes<HTMLDivElement>, 'title'> {\n title?: React.ReactNode;\n subtitle?: React.ReactNode;\n eyebrow?: React.ReactNode;\n align?: 'left' | 'center' | 'right';\n}\n\nexport const SectionHeader = forwardRef<HTMLDivElement, SectionHeaderProps>(\n ({ title, subtitle, eyebrow, align = 'center', className, ...props }, ref) => {\n if (!title && !subtitle && !eyebrow) return null;\n\n return (\n <header\n ref={ref}\n className={clsx('ds-section-header', `ds-section-header--${align}`, className)}\n {...props}\n >\n {eyebrow && <span className=\"ds-section-header__eyebrow\">{eyebrow}</span>}\n {title && <h2 className=\"ds-section-header__title\">{title}</h2>}\n {subtitle && <p className=\"ds-section-header__subtitle\">{subtitle}</p>}\n </header>\n );\n },\n);\nSectionHeader.displayName = 'SectionHeader';\n\n/* ============================================================================\n Section Shell Component\n ============================================================================ */\n\nexport interface SectionShellProps extends HTMLAttributes<HTMLDivElement> {\n background?: 'default' | 'muted' | 'brand' | 'transparent';\n padding?: 'none' | 'sm' | 'md' | 'lg';\n containerSize?: 'sm' | 'md' | 'lg' | 'xl' | 'fluid'; // Maps to Container max-width\n containerFluid?: boolean;\n}\n\nexport const SectionShell = forwardRef<HTMLDivElement, SectionShellProps>(\n (\n {\n className,\n children,\n background = 'default',\n padding = 'md',\n containerSize,\n containerFluid = false,\n ...props\n },\n ref,\n ) => {\n return (\n <section\n ref={ref}\n className={clsx(\n 'ds-section',\n `ds-section--bg-${background}`,\n `ds-section--padding-${padding}`,\n className,\n )}\n {...props}\n >\n <Container\n size={containerSize === 'fluid' ? 'full' : (containerSize as 'sm' | 'md' | 'lg' | 'xl' | undefined)}\n fluid={containerFluid || containerSize === 'fluid'}\n >\n {children}\n </Container>\n </section>\n );\n },\n);\nSectionShell.displayName = 'SectionShell';\n","import { ElementType, HTMLAttributes, forwardRef } from 'react';\nimport clsx from 'clsx';\nimport { SpacingProps, extractSpacingStyles } from './utils';\nimport './LayoutPrimitives.css';\n\nexport interface BoxProps extends HTMLAttributes<HTMLElement>, SpacingProps {\n as?: ElementType;\n}\n\nexport const Box = forwardRef<HTMLElement, BoxProps>(\n ({ as: Component = 'div', className, style, children, ...props }, ref) => {\n const spacingStyles = extractSpacingStyles(props);\n\n // Filter out spacing props from passing to DOM\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n const { m, mt, mb, ml, mr, mx, my, p, pt, pb, pl, pr, px, py, gap, ...domProps } = props;\n\n return (\n <Component\n ref={ref}\n className={clsx('ds-box', className)}\n style={{ ...spacingStyles, ...style }}\n {...domProps}\n >\n {children}\n </Component>\n );\n },\n);\n\nBox.displayName = 'Box';\n","export const SPACING = {\n 1: 'var(--space-1)',\n 2: 'var(--space-2)',\n 3: 'var(--space-3)',\n 4: 'var(--space-4)',\n 5: 'var(--space-5)',\n 6: 'var(--space-6)',\n 8: 'var(--space-8)',\n 10: 'var(--space-10)',\n 12: 'var(--space-12)',\n 16: 'var(--space-16)',\n 20: 'var(--space-20)',\n} as const;\n\nexport type SpacingToken = keyof typeof SPACING;\n","import { CSSProperties } from 'react';\nimport { SPACING } from '../../tokens/spacing';\n\ntype SpacingValue = keyof typeof SPACING | number | string;\n\n/**\n * Named spacing aliases that map semantic sizes to DS space tokens.\n * Allows consumers to pass gap=\"lg\" instead of gap={6}.\n */\nconst SPACING_ALIASES: Record<string, string> = {\n xs: 'var(--space-2)',\n sm: 'var(--space-3)',\n md: 'var(--space-4)',\n lg: 'var(--space-6)',\n xl: 'var(--space-8)',\n '2xl': 'var(--space-12)',\n};\n\nexport function resolveSpacing(value: SpacingValue | undefined): string | undefined {\n if (value === undefined) return undefined;\n if (typeof value === 'number' && SPACING[value as keyof typeof SPACING]) {\n return SPACING[value as keyof typeof SPACING];\n }\n if (typeof value === 'string' && value in SPACING_ALIASES) {\n return SPACING_ALIASES[value];\n }\n return String(value);\n}\n\nexport interface SpacingProps {\n m?: SpacingValue;\n mt?: SpacingValue;\n mb?: SpacingValue;\n ml?: SpacingValue;\n mr?: SpacingValue;\n mx?: SpacingValue;\n my?: SpacingValue;\n p?: SpacingValue;\n pt?: SpacingValue;\n pb?: SpacingValue;\n pl?: SpacingValue;\n pr?: SpacingValue;\n px?: SpacingValue;\n py?: SpacingValue;\n gap?: SpacingValue;\n}\n\nexport function extractSpacingStyles(props: SpacingProps): CSSProperties {\n const styles: CSSProperties = {};\n\n if (props.m !== undefined) styles.margin = resolveSpacing(props.m);\n if (props.mt !== undefined) styles.marginTop = resolveSpacing(props.mt);\n if (props.mb !== undefined) styles.marginBottom = resolveSpacing(props.mb);\n if (props.ml !== undefined) styles.marginLeft = resolveSpacing(props.ml);\n if (props.mr !== undefined) styles.marginRight = resolveSpacing(props.mr);\n if (props.mx !== undefined) {\n styles.marginLeft = resolveSpacing(props.mx);\n styles.marginRight = resolveSpacing(props.mx);\n }\n if (props.my !== undefined) {\n styles.marginTop = resolveSpacing(props.my);\n styles.marginBottom = resolveSpacing(props.my);\n }\n\n if (props.p !== undefined) styles.padding = resolveSpacing(props.p);\n if (props.pt !== undefined) styles.paddingTop = resolveSpacing(props.pt);\n if (props.pb !== undefined) styles.paddingBottom = resolveSpacing(props.pb);\n if (props.pl !== undefined) styles.paddingLeft = resolveSpacing(props.pl);\n if (props.pr !== undefined) styles.paddingRight = resolveSpacing(props.pr);\n if (props.px !== undefined) {\n styles.paddingLeft = resolveSpacing(props.px);\n styles.paddingRight = resolveSpacing(props.px);\n }\n if (props.py !== undefined) {\n styles.paddingTop = resolveSpacing(props.py);\n styles.paddingBottom = resolveSpacing(props.py);\n }\n\n if (props.gap !== undefined) styles.gap = resolveSpacing(props.gap);\n\n return styles;\n}\n","import { forwardRef } from 'react';\nimport clsx from 'clsx';\nimport { Box, BoxProps } from './Box';\n\nexport interface StackProps extends BoxProps {\n direction?: 'row' | 'column';\n align?: 'start' | 'center' | 'end' | 'stretch' | 'baseline';\n justify?: 'start' | 'center' | 'end' | 'between' | 'around' | 'evenly';\n wrap?: boolean;\n}\n\nexport const Stack = forwardRef<HTMLElement, StackProps>(\n ({ direction = 'column', align, justify, wrap, className, style, ...props }, ref) => {\n return (\n <Box\n ref={ref}\n className={clsx('ds-stack', direction === 'row' && 'ds-stack--horizontal', className)}\n style={{\n alignItems: align,\n justifyContent: justify === 'between' ? 'space-between' : justify,\n flexWrap: wrap ? 'wrap' : undefined,\n ...style,\n }}\n {...props}\n />\n );\n },\n);\n\nStack.displayName = 'Stack';\n","import { forwardRef } from 'react';\nimport clsx from 'clsx';\nimport { Box, BoxProps } from './Box';\n\nexport type ContainerSize = 'sm' | 'md' | 'lg' | 'xl' | 'full';\n\n/**\n * Maps named sizes to max-width values.\n * Aligns with common web breakpoints (Tailwind `max-w-*` scale).\n */\n// eslint-disable-next-line react-refresh/only-export-components\nexport const CONTAINER_SIZE_MAP: Record<ContainerSize, string> = {\n sm: '768px', // 48rem — max-w-3xl\n md: '1024px', // 64rem — max-w-5xl\n lg: '1152px', // 72rem — max-w-6xl\n xl: '1280px', // 80rem — max-w-7xl\n full: '100%',\n};\n\nexport interface ContainerProps extends BoxProps {\n /**\n * Named size preset. Overrides `maxWidth` when set.\n * @example <Container size=\"lg\">…</Container>\n */\n size?: ContainerSize;\n /** Pass `true` to stretch to 100% width (same as `size=\"full\"`). */\n fluid?: boolean;\n /** Custom max-width value. Ignored when `size` or `fluid` is set. */\n maxWidth?: number | string;\n}\n\nexport const Container = forwardRef<HTMLElement, ContainerProps>(\n ({ size, fluid, maxWidth, className, style, ...props }, ref) => {\n let resolvedMaxWidth: string | number;\n if (fluid) {\n resolvedMaxWidth = '100%';\n } else if (size) {\n resolvedMaxWidth = CONTAINER_SIZE_MAP[size];\n } else {\n resolvedMaxWidth = maxWidth || 'var(--container-default-max, 1200px)';\n }\n\n return (\n <Box\n ref={ref}\n className={clsx('ds-container', className)}\n style={{\n maxWidth: resolvedMaxWidth,\n ...style,\n }}\n {...props}\n />\n );\n },\n);\n\nContainer.displayName = 'Container';\n","import React, { forwardRef } from 'react';\nimport clsx from 'clsx';\nimport { SectionShell, SectionShellProps } from '../SectionShell/SectionShell';\nimport { Stack, Box } from '../LayoutPrimitives';\nimport './HeroSection.css';\n\n/* ============================================================================\n Types\n ============================================================================ */\n\nexport interface HeroSectionProps extends Omit<SectionShellProps, 'title'> {\n variant?: 'left' | 'center' | 'split';\n title: React.ReactNode;\n subtitle?: React.ReactNode;\n eyebrow?: React.ReactNode;\n primaryCta?: React.ReactNode;\n secondaryCta?: React.ReactNode;\n\n /** Main visual (Image, Video, or Component) */\n media?: React.ReactNode;\n /** Adds a browser-like header bar to the media container */\n mediaBrowserFrame?: boolean;\n\n /** Optional floating elements (e.g. SocialProof cards) over the media */\n floatingElement?: React.ReactNode;\n floatingPosition?: 'top-right' | 'bottom-left';\n\n /** Background Visuals */\n withGrid?: boolean;\n withGlow?: boolean;\n\n align?: 'left' | 'center'; // Text alignment overrides variant default\n}\n\n/* ============================================================================\n Component\n ============================================================================ */\n\nexport const HeroSection = forwardRef<HTMLDivElement, HeroSectionProps>(\n (\n {\n variant = 'left',\n title,\n subtitle,\n eyebrow,\n primaryCta,\n secondaryCta,\n media,\n mediaBrowserFrame = false,\n floatingElement,\n floatingPosition = 'bottom-left',\n withGrid = false,\n withGlow = false,\n align,\n className,\n children,\n ...props\n },\n ref,\n ) => {\n // Determine layout based on variant\n const isSplit = variant === 'split';\n const isCenter = variant === 'center';\n\n // Default alignment\n const textAlignment = align || (isCenter ? 'center' : 'left');\n\n const ContentBlock = (\n <div className={clsx('ds-hero__content', `ds-hero__content--${textAlignment}`)}>\n {eyebrow && (\n <span className=\"ds-section-header__eyebrow\" style={{ marginBottom: 'var(--space-2)' }}>\n {eyebrow}\n </span>\n )}\n <h1 className=\"ds-hero__title\">{title}</h1>\n {subtitle && <p className=\"ds-hero__subtitle\">{subtitle}</p>}\n\n {(primaryCta || secondaryCta) && (\n <div className=\"ds-hero__actions\">\n {primaryCta}\n {secondaryCta}\n </div>\n )}\n {children}\n </div>\n );\n\n const MediaBlock = media && (\n <div className=\"ds-hero__media-wrapper\">\n <div className={clsx('ds-hero__media', mediaBrowserFrame && 'ds-hero__media--browser')}>\n {media}\n </div>\n {floatingElement && (\n <div className={clsx('ds-hero__float', `ds-hero__float--${floatingPosition}`)}>\n {floatingElement}\n </div>\n )}\n </div>\n );\n\n return (\n <SectionShell\n ref={ref}\n className={clsx(\n 'ds-hero',\n `ds-hero--${variant}`,\n withGrid && 'ds-hero--bg-grid',\n withGlow && 'ds-hero--bg-glow',\n className,\n )}\n padding=\"lg\"\n {...props}\n >\n {isSplit ? (\n <div\n style={{\n display: 'grid',\n gridTemplateColumns: 'repeat(auto-fit, minmax(min(100%, 500px), 1fr))',\n gap: 'var(--space-16)',\n alignItems: 'center',\n }}\n >\n <Box>{ContentBlock}</Box>\n <Box>{MediaBlock}</Box>\n </div>\n ) : (\n <Stack gap={16} align={isCenter ? 'center' : 'start'}>\n {ContentBlock}\n {MediaBlock && (\n <Box\n style={{\n width: '100%',\n display: 'flex',\n justifyContent: isCenter ? 'center' : 'flex-start',\n }}\n >\n <div style={{ width: '100%', maxWidth: isCenter ? '1200px' : '100%' }}>\n {MediaBlock}\n </div>\n </Box>\n )}\n </Stack>\n )}\n </SectionShell>\n );\n },\n);\n\nHeroSection.displayName = 'HeroSection';\n","import React, { forwardRef } from 'react';\nimport clsx from 'clsx';\nimport { SectionShell, SectionShellProps, SectionHeader } from '../SectionShell/SectionShell';\nimport './FeatureSection.css';\n\n/* ============================================================================\n Types\n ============================================================================ */\n\nexport interface FeatureItem {\n title: React.ReactNode;\n description: React.ReactNode;\n icon?: React.ReactNode;\n media?: React.ReactNode; // For ZigZag\n step?: string | number; // For ZigZag steps\n cta?: React.ReactNode;\n}\n\nexport interface FeatureSectionProps extends Omit<SectionShellProps, 'title'> {\n variant?: 'grid' | 'zigzag';\n columns?: 2 | 3 | 4; // For grid variant\n features: FeatureItem[];\n title?: React.ReactNode;\n subtitle?: React.ReactNode;\n eyebrow?: React.ReactNode;\n alignHeader?: 'left' | 'center' | 'right';\n}\n\n/* ============================================================================\n Components\n ============================================================================ */\n\nconst FeatureCard = ({ item }: { item: FeatureItem }) => (\n <div className=\"ds-feature-card\">\n {item.icon && <div className=\"ds-feature-card__icon\">{item.icon}</div>}\n <h3 className=\"ds-feature-card__title\">{item.title}</h3>\n <div className=\"ds-feature-card__description\">{item.description}</div>\n {item.cta && <div className=\"ds-feature-card__cta\">{item.cta}</div>}\n </div>\n);\n\nconst FeatureRow = ({ item }: { item: FeatureItem }) => (\n <div className=\"ds-feature-row\">\n <div className=\"ds-feature-row__content\">\n {item.step && <div className=\"ds-feature-row__step\">STEP {item.step}</div>}\n {item.icon && <div className=\"ds-feature-card__icon\">{item.icon}</div>}\n <h3 className=\"ds-section-header__title\" style={{ fontSize: 'var(--font-size-2xl)' }}>\n {item.title}\n </h3>\n <div className=\"ds-section-header__subtitle\" style={{ fontSize: 'var(--font-size-lg)' }}>\n {item.description}\n </div>\n {item.cta && <div className=\"ds-hero__actions\">{item.cta}</div>}\n </div>\n <div className=\"ds-feature-row__media\">\n {item.media || (\n <div style={{ paddingBottom: '56.25%', background: 'var(--glass-base-active)' }} />\n )}\n </div>\n </div>\n);\n\nexport const FeatureSection = forwardRef<HTMLDivElement, FeatureSectionProps>(\n (\n {\n variant = 'grid',\n columns = 3,\n features,\n title,\n subtitle,\n eyebrow,\n alignHeader = 'center',\n className,\n ...props\n },\n ref,\n ) => {\n return (\n <SectionShell ref={ref} className={clsx('ds-feature-section', className)} {...props}>\n <SectionHeader title={title} subtitle={subtitle} eyebrow={eyebrow} align={alignHeader} />\n\n {variant === 'grid' ? (\n <div className={clsx('ds-feature-grid', `ds-feature-grid--${columns}-col`)}>\n {features.map((feature, index) => (\n <FeatureCard key={index} item={feature} />\n ))}\n </div>\n ) : (\n <div className=\"ds-feature-zigzag\">\n {features.map((feature, index) => (\n <FeatureRow key={index} item={feature} />\n ))}\n </div>\n )}\n </SectionShell>\n );\n },\n);\nFeatureSection.displayName = 'FeatureSection';\n","import React, { forwardRef } from 'react';\nimport clsx from 'clsx';\nimport { SectionShell, SectionShellProps } from '../SectionShell/SectionShell';\nimport './CTASection.css';\n\nexport interface CTASectionProps extends Omit<SectionShellProps, 'title'> {\n variant?: 'center' | 'split' | 'boxed';\n title: React.ReactNode;\n description?: React.ReactNode;\n primaryCta?: React.ReactNode;\n secondaryCta?: React.ReactNode;\n actions?: React.ReactNode; // Custom actions slot\n}\n\nexport const CTASection = forwardRef<HTMLDivElement, CTASectionProps>(\n (\n {\n variant = 'center',\n title,\n description,\n primaryCta,\n secondaryCta,\n actions,\n className,\n children,\n ...props\n },\n ref,\n ) => {\n // \"Boxed\" is just centered content inside a card-like container within the section\n const isBoxed = variant === 'boxed';\n const effectiveVariant = isBoxed ? 'center' : variant;\n\n const Content = (\n <div className={clsx('ds-cta-section', `ds-cta-section--${effectiveVariant}`)}>\n {effectiveVariant === 'split' ? (\n <div className=\"ds-cta-section--split\">\n <div className=\"ds-cta-content\">\n <h2 className=\"ds-cta-title\">{title}</h2>\n {description && <p className=\"ds-cta-description\">{description}</p>}\n </div>\n <div className=\"ds-cta-actions\">\n {actions || (\n <>\n {primaryCta}\n {secondaryCta}\n </>\n )}\n </div>\n </div>\n ) : (\n <div className=\"ds-cta-content\">\n <h2 className=\"ds-cta-title\">{title}</h2>\n {description && <p className=\"ds-cta-description\">{description}</p>}\n <div className=\"ds-cta-actions\">\n {actions || (\n <>\n {primaryCta}\n {secondaryCta}\n </>\n )}\n </div>\n </div>\n )}\n {children}\n </div>\n );\n\n return (\n <SectionShell ref={ref} className={clsx(className)} {...props}>\n {isBoxed ? <div className=\"ds-cta-card\">{Content}</div> : Content}\n </SectionShell>\n );\n },\n);\nCTASection.displayName = 'CTASection';\n","import React, { forwardRef } from 'react';\nimport clsx from 'clsx';\nimport { SectionShell, SectionShellProps, SectionHeader } from '../SectionShell/SectionShell';\nimport './StatsSection.css';\n\nexport interface StatItem {\n label: string;\n value: string | number;\n suffix?: string;\n prefix?: string;\n}\n\nexport interface StatsSectionProps extends Omit<SectionShellProps, 'title'> {\n stats: StatItem[];\n title?: React.ReactNode;\n subtitle?: React.ReactNode;\n eyebrow?: React.ReactNode;\n}\n\nexport const StatsSection = forwardRef<HTMLDivElement, StatsSectionProps>(\n ({ stats, title, subtitle, eyebrow, className, ...props }, ref) => {\n return (\n <SectionShell ref={ref} className={clsx('ds-stats-section', className)} {...props}>\n <SectionHeader title={title} subtitle={subtitle} eyebrow={eyebrow} />\n\n <div className=\"ds-stats-grid\">\n {stats.map((stat, idx) => (\n <div key={idx} className=\"ds-stat-card\">\n <div className=\"ds-stat-value\">\n {stat.prefix}\n {stat.value}\n <span className=\"ds-stat-suffix\">{stat.suffix}</span>\n </div>\n <div className=\"ds-stat-label\">{stat.label}</div>\n </div>\n ))}\n </div>\n </SectionShell>\n );\n },\n);\nStatsSection.displayName = 'StatsSection';\n"]}
1
+ {"version":3,"sources":[],"names":[],"mappings":""}