@salesmind-ai/design-system 0.5.0 → 0.7.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +2 -0
- package/dist/Anton-Regular-MLEXVTB2.woff2 +0 -0
- package/dist/admin/index.cjs +5 -61
- package/dist/admin/index.css +0 -3918
- package/dist/admin/index.css.map +1 -1
- package/dist/admin/index.d.cts +1 -422
- package/dist/admin/index.d.ts +1 -422
- package/dist/admin/index.js +1 -5
- package/dist/blog/index.cjs +13 -34
- package/dist/blog/index.css +0 -579
- package/dist/blog/index.css.map +1 -1
- package/dist/blog/index.d.cts +1 -54
- package/dist/blog/index.d.ts +1 -54
- package/dist/blog/index.js +5 -6
- package/dist/charts/index.cjs +0 -46
- package/dist/charts/index.d.cts +1 -452
- package/dist/charts/index.d.ts +1 -452
- package/dist/charts/index.js +1 -3
- package/dist/{chunk-HDVAMYSG.js → chunk-27Y5ESMM.js} +7 -2
- package/dist/chunk-27Y5ESMM.js.map +1 -0
- package/dist/{chunk-YTYDQBVY.cjs → chunk-2VVRZBUR.cjs} +4 -4
- package/dist/{chunk-GQELL2MF.cjs → chunk-3NS6X2R4.cjs} +20 -203
- package/dist/chunk-3NS6X2R4.cjs.map +1 -0
- package/dist/{chunk-XEX2AEZK.cjs → chunk-65DTHLVX.cjs} +66 -186
- package/dist/chunk-65DTHLVX.cjs.map +1 -0
- package/dist/{chunk-QALDZ7WQ.js → chunk-6BUS7RMS.js} +21 -198
- package/dist/chunk-6BUS7RMS.js.map +1 -0
- package/dist/{chunk-BJZ2DKS5.cjs → chunk-6QIQCUYC.cjs} +11 -10
- package/dist/chunk-6QIQCUYC.cjs.map +1 -0
- package/dist/{chunk-H2Y6BSTL.cjs → chunk-7EUR3AKV.cjs} +1 -1
- package/dist/chunk-7EUR3AKV.cjs.map +1 -0
- package/dist/{chunk-VFJZQQZU.js → chunk-AMNY5TS3.js} +11 -10
- package/dist/chunk-AMNY5TS3.js.map +1 -0
- package/dist/{chunk-YJ6C3EKW.js → chunk-CLXLQCNQ.js} +52 -168
- package/dist/chunk-CLXLQCNQ.js.map +1 -0
- package/dist/{chunk-H2KQ3WSH.cjs → chunk-CVLD5RQK.cjs} +12 -14
- package/dist/chunk-CVLD5RQK.cjs.map +1 -0
- package/dist/chunk-EPD4ZEPY.cjs +344 -0
- package/dist/chunk-EPD4ZEPY.cjs.map +1 -0
- package/dist/chunk-FXYOSA4E.cjs +118 -0
- package/dist/chunk-FXYOSA4E.cjs.map +1 -0
- package/dist/{chunk-ECXBTUH6.cjs → chunk-GPHQGLR5.cjs} +27 -204
- package/dist/chunk-GPHQGLR5.cjs.map +1 -0
- package/dist/{chunk-Y26OHHMX.js → chunk-HHQ6J7B6.js} +513 -888
- package/dist/chunk-HHQ6J7B6.js.map +1 -0
- package/dist/chunk-JPUJWI7F.cjs +73 -0
- package/dist/chunk-JPUJWI7F.cjs.map +1 -0
- package/dist/{chunk-6UNG76Y2.js → chunk-K526GN7P.js} +2 -2
- package/dist/{chunk-SICKWUWB.js → chunk-KJHPOB3J.js} +1 -1
- package/dist/chunk-KJHPOB3J.js.map +1 -0
- package/dist/chunk-KXVFFEGD.js +60 -0
- package/dist/chunk-KXVFFEGD.js.map +1 -0
- package/dist/chunk-LQB7QLD3.js +288 -0
- package/dist/chunk-LQB7QLD3.js.map +1 -0
- package/dist/chunk-LUD52ZJF.cjs +726 -0
- package/dist/chunk-LUD52ZJF.cjs.map +1 -0
- package/dist/{chunk-7UZ5DETZ.js → chunk-MBAG654R.js} +4 -216
- package/dist/chunk-MBAG654R.js.map +1 -0
- package/dist/chunk-OMP6FAZ6.cjs +183 -0
- package/dist/chunk-OMP6FAZ6.cjs.map +1 -0
- package/dist/{chunk-WYH4TKS5.js → chunk-PBYRTNQ5.js} +6 -8
- package/dist/chunk-PBYRTNQ5.js.map +1 -0
- package/dist/chunk-PYREXCZK.js +679 -0
- package/dist/chunk-PYREXCZK.js.map +1 -0
- package/dist/{chunk-6D22TFLA.cjs → chunk-R3ZECV5P.cjs} +9 -4
- package/dist/chunk-R3ZECV5P.cjs.map +1 -0
- package/dist/{chunk-P5BOFE5A.js → chunk-RSLA2FJN.js} +28 -183
- package/dist/chunk-RSLA2FJN.js.map +1 -0
- package/dist/chunk-S46SKHMD.js +173 -0
- package/dist/chunk-S46SKHMD.js.map +1 -0
- package/dist/chunk-SFXTB7JL.js +190 -0
- package/dist/chunk-SFXTB7JL.js.map +1 -0
- package/dist/chunk-SGYXYMKZ.cjs +214 -0
- package/dist/chunk-SGYXYMKZ.cjs.map +1 -0
- package/dist/chunk-UGKYP6F3.cjs +296 -0
- package/dist/chunk-UGKYP6F3.cjs.map +1 -0
- package/dist/chunk-WB6XDNU7.js +115 -0
- package/dist/chunk-WB6XDNU7.js.map +1 -0
- package/dist/{chunk-LTPTW2US.cjs → chunk-WE4QIIVN.cjs} +592 -974
- package/dist/chunk-WE4QIIVN.cjs.map +1 -0
- package/dist/core/index.cjs +144 -626
- package/dist/core/index.css +178 -3567
- package/dist/core/index.css.map +1 -1
- package/dist/core/index.d.cts +940 -902
- package/dist/core/index.d.ts +940 -902
- package/dist/core/index.js +6 -12
- package/dist/i18n/index.cjs +54 -49
- package/dist/i18n/index.d.cts +46 -11
- package/dist/i18n/index.d.ts +46 -11
- package/dist/i18n/index.js +2 -1
- package/dist/index-BJ8rBqrO.d.cts +1100 -0
- package/dist/index-BxMqCbqE.d.ts +1100 -0
- package/dist/index.cjs +507 -1001
- package/dist/index.cjs.map +1 -1
- package/dist/index.css +6057 -16713
- package/dist/index.css.map +1 -1
- package/dist/index.d.cts +306 -21
- package/dist/index.d.ts +306 -21
- package/dist/index.js +274 -39
- package/dist/index.js.map +1 -1
- package/dist/marketing/index.cjs +33 -76
- package/dist/marketing/index.css +1896 -3234
- package/dist/marketing/index.css.map +1 -1
- package/dist/marketing/index.d.cts +3 -1351
- package/dist/marketing/index.d.ts +3 -1351
- package/dist/marketing/index.js +5 -8
- package/dist/motion/index.cjs +3 -20
- package/dist/motion/index.css +0 -580
- package/dist/motion/index.css.map +1 -1
- package/dist/motion/index.d.cts +1 -37
- package/dist/motion/index.d.ts +1 -37
- package/dist/motion/index.js +1 -2
- package/dist/nav/index.cjs +10 -35
- package/dist/nav/index.css +28 -580
- package/dist/nav/index.css.map +1 -1
- package/dist/nav/index.d.cts +2 -60
- package/dist/nav/index.d.ts +2 -60
- package/dist/nav/index.js +1 -2
- package/dist/report/index.cjs +1166 -175
- package/dist/report/index.cjs.map +1 -1
- package/dist/report/index.d.cts +208 -5
- package/dist/report/index.d.ts +208 -5
- package/dist/report/index.js +1141 -3
- package/dist/report/index.js.map +1 -1
- package/dist/sections/index.cjs +8 -10
- package/dist/sections/index.cjs.map +1 -1
- package/dist/sections/index.css +0 -206
- package/dist/sections/index.css.map +1 -1
- package/dist/sections/index.js +2 -4
- package/dist/sections/index.js.map +1 -1
- package/dist/social-media/index.cjs +4 -0
- package/dist/social-media/index.cjs.map +1 -0
- package/dist/social-media/index.d.cts +2 -0
- package/dist/social-media/index.d.ts +2 -0
- package/dist/social-media/index.js +3 -0
- package/dist/social-media/index.js.map +1 -0
- package/dist/social-proof/index.cjs +4 -36
- package/dist/social-proof/index.css +3 -1106
- package/dist/social-proof/index.css.map +1 -1
- package/dist/social-proof/index.d.cts +26 -171
- package/dist/social-proof/index.d.ts +26 -171
- package/dist/social-proof/index.js +1 -5
- package/dist/styles/styles.css +657 -2990
- package/dist/theme/index.cjs +12 -16
- package/dist/theme/index.css +1 -245
- package/dist/theme/index.css.map +1 -1
- package/dist/theme/index.d.cts +4 -1
- package/dist/theme/index.d.ts +4 -1
- package/dist/theme/index.js +2 -2
- package/dist/web/client/index.cjs +10 -10
- package/dist/web/client/index.css +118 -0
- package/dist/web/client/index.css.map +1 -1
- package/dist/web/client/index.js +2 -2
- package/dist/web/index.cjs +10 -10
- package/dist/web/index.css +118 -0
- package/dist/web/index.css.map +1 -1
- package/dist/web/index.js +2 -2
- package/package.json +10 -4
- package/dist/AppearancePanel-UT57J69V.d.cts +0 -51
- package/dist/AppearancePanel-UT57J69V.d.ts +0 -51
- package/dist/ExportMenu-A2TLFiVv.d.cts +0 -311
- package/dist/ExportMenu-C8qck5AT.d.ts +0 -311
- package/dist/Select-BdZmK0Lt.d.cts +0 -66
- package/dist/Select-BdZmK0Lt.d.ts +0 -66
- package/dist/chart-types-BGVVO-zl.d.cts +0 -208
- package/dist/chart-types-BGVVO-zl.d.ts +0 -208
- package/dist/charts/index.css +0 -1167
- package/dist/charts/index.css.map +0 -1
- package/dist/chunk-3BAQDW3V.cjs +0 -1207
- package/dist/chunk-3BAQDW3V.cjs.map +0 -1
- package/dist/chunk-3NKRFUAR.js +0 -37
- package/dist/chunk-3NKRFUAR.js.map +0 -1
- package/dist/chunk-3TGSIILM.cjs +0 -201
- package/dist/chunk-3TGSIILM.cjs.map +0 -1
- package/dist/chunk-4GM5BGBN.cjs +0 -801
- package/dist/chunk-4GM5BGBN.cjs.map +0 -1
- package/dist/chunk-5LA3T22E.cjs +0 -562
- package/dist/chunk-5LA3T22E.cjs.map +0 -1
- package/dist/chunk-5SN66B2X.js +0 -2542
- package/dist/chunk-5SN66B2X.js.map +0 -1
- package/dist/chunk-6D22TFLA.cjs.map +0 -1
- package/dist/chunk-6H4DSTXR.js +0 -786
- package/dist/chunk-6H4DSTXR.js.map +0 -1
- package/dist/chunk-6HKQ5ILL.cjs +0 -1624
- package/dist/chunk-6HKQ5ILL.cjs.map +0 -1
- package/dist/chunk-7PX2AZ6Y.js +0 -39
- package/dist/chunk-7PX2AZ6Y.js.map +0 -1
- package/dist/chunk-7UZ5DETZ.js.map +0 -1
- package/dist/chunk-B6AVAX4F.js +0 -1415
- package/dist/chunk-B6AVAX4F.js.map +0 -1
- package/dist/chunk-BJZ2DKS5.cjs.map +0 -1
- package/dist/chunk-BUTQSDQH.js +0 -200
- package/dist/chunk-BUTQSDQH.js.map +0 -1
- package/dist/chunk-C2BCDNAV.js +0 -24
- package/dist/chunk-C2BCDNAV.js.map +0 -1
- package/dist/chunk-CJ2MKVAF.cjs +0 -46
- package/dist/chunk-CJ2MKVAF.cjs.map +0 -1
- package/dist/chunk-E7D6EKJ4.cjs +0 -44
- package/dist/chunk-E7D6EKJ4.cjs.map +0 -1
- package/dist/chunk-ECXBTUH6.cjs.map +0 -1
- package/dist/chunk-FAFAP4L5.js +0 -183
- package/dist/chunk-FAFAP4L5.js.map +0 -1
- package/dist/chunk-G2XGBO5V.cjs +0 -2565
- package/dist/chunk-G2XGBO5V.cjs.map +0 -1
- package/dist/chunk-GQELL2MF.cjs.map +0 -1
- package/dist/chunk-H2KQ3WSH.cjs.map +0 -1
- package/dist/chunk-H2Y6BSTL.cjs.map +0 -1
- package/dist/chunk-HCZW5AJN.cjs +0 -234
- package/dist/chunk-HCZW5AJN.cjs.map +0 -1
- package/dist/chunk-HDVAMYSG.js.map +0 -1
- package/dist/chunk-HN4PHABT.js +0 -126
- package/dist/chunk-HN4PHABT.js.map +0 -1
- package/dist/chunk-LTPTW2US.cjs.map +0 -1
- package/dist/chunk-MDB2WCRQ.cjs +0 -137
- package/dist/chunk-MDB2WCRQ.cjs.map +0 -1
- package/dist/chunk-MQRB634A.cjs +0 -34
- package/dist/chunk-MQRB634A.cjs.map +0 -1
- package/dist/chunk-NN3TUHIH.js +0 -28
- package/dist/chunk-NN3TUHIH.js.map +0 -1
- package/dist/chunk-OWS2KAXZ.js +0 -701
- package/dist/chunk-OWS2KAXZ.js.map +0 -1
- package/dist/chunk-P5BOFE5A.js.map +0 -1
- package/dist/chunk-PUPSK3DI.cjs +0 -216
- package/dist/chunk-PUPSK3DI.cjs.map +0 -1
- package/dist/chunk-Q2MFGYTE.cjs +0 -1449
- package/dist/chunk-Q2MFGYTE.cjs.map +0 -1
- package/dist/chunk-Q75DBVDY.cjs +0 -68
- package/dist/chunk-Q75DBVDY.cjs.map +0 -1
- package/dist/chunk-QALDZ7WQ.js.map +0 -1
- package/dist/chunk-QWE2RNCS.js +0 -1195
- package/dist/chunk-QWE2RNCS.js.map +0 -1
- package/dist/chunk-RQUFZAZ7.js +0 -1608
- package/dist/chunk-RQUFZAZ7.js.map +0 -1
- package/dist/chunk-SICKWUWB.js.map +0 -1
- package/dist/chunk-TCFC7XTB.js +0 -212
- package/dist/chunk-TCFC7XTB.js.map +0 -1
- package/dist/chunk-UTVXGAQP.cjs +0 -2437
- package/dist/chunk-UTVXGAQP.cjs.map +0 -1
- package/dist/chunk-UVEMY3FQ.cjs +0 -717
- package/dist/chunk-UVEMY3FQ.cjs.map +0 -1
- package/dist/chunk-VFJZQQZU.js.map +0 -1
- package/dist/chunk-WH7PYHZY.cjs +0 -35
- package/dist/chunk-WH7PYHZY.cjs.map +0 -1
- package/dist/chunk-WYH4TKS5.js.map +0 -1
- package/dist/chunk-XEX2AEZK.cjs.map +0 -1
- package/dist/chunk-XPTVHPCN.js +0 -2320
- package/dist/chunk-XPTVHPCN.js.map +0 -1
- package/dist/chunk-XWPDRMZG.js +0 -62
- package/dist/chunk-XWPDRMZG.js.map +0 -1
- package/dist/chunk-Y26OHHMX.js.map +0 -1
- package/dist/chunk-YJ6C3EKW.js.map +0 -1
- package/dist/motion-C651Ry6d.d.cts +0 -832
- package/dist/motion-C651Ry6d.d.ts +0 -832
- package/dist/report/index.css +0 -1239
- package/dist/report/index.css.map +0 -1
- /package/dist/{chunk-6UNG76Y2.js.map → chunk-2VVRZBUR.cjs.map} +0 -0
- /package/dist/{chunk-YTYDQBVY.cjs.map → chunk-K526GN7P.js.map} +0 -0
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/components/CursorSpotlight/CursorSpotlight.tsx","../src/components/Motion/MotionContainer.tsx","../src/components/Motion/MotionText.tsx","../src/components/HeroAnimation/RevenueAutomationLoop.tsx","../src/components/FunnelScalingSender/FunnelScalingSender.tsx"],"names":["useRef","jsx","motion","jsxs","React","useEffect","useState","useCallback","useInView","clsx"],"mappings":"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","sourcesContent":["import React, { useEffect, useRef, useState, useCallback } from 'react';\nimport './CursorSpotlight.css';\n\n/* ============================================================================\n CURSOR SPOTLIGHT — \"The Glow\" Effect\n ============================================================================\n \n A mouse-following spotlight effect that creates a premium, interactive feel\n on cards, buttons, and other surfaces. The spotlight reveals a subtle glow\n that follows the cursor position.\n \n Usage:\n <CursorSpotlight>\n <YourCard />\n </CursorSpotlight>\n \n ============================================================================ */\n\nexport interface CursorSpotlightProps {\n /** Children to wrap with spotlight effect */\n children: React.ReactNode;\n /** Spotlight color (CSS color or rgb values) */\n color?: string;\n /** Spotlight size in pixels */\n size?: number;\n /** Spotlight opacity (0-1) */\n opacity?: number;\n /** Enable border glow effect */\n borderGlow?: boolean;\n /** Custom class name */\n className?: string;\n /** Disable the effect */\n disabled?: boolean;\n}\n\nexport const CursorSpotlight: React.FC<CursorSpotlightProps> = ({\n children,\n color = 'var(--accent-rgb)',\n size = 400,\n opacity = 0.15,\n borderGlow = true,\n className,\n disabled = false,\n}) => {\n const containerRef = useRef<HTMLDivElement>(null);\n const [position, setPosition] = useState({ x: 0, y: 0 });\n const [isHovering, setIsHovering] = useState(false);\n const [reducedMotion, setReducedMotion] = useState(false);\n\n useEffect(() => {\n const mediaQuery = window.matchMedia('(prefers-reduced-motion: reduce)');\n setReducedMotion(mediaQuery.matches);\n\n const handler = (e: MediaQueryListEvent) => setReducedMotion(e.matches);\n mediaQuery.addEventListener('change', handler);\n return () => mediaQuery.removeEventListener('change', handler);\n }, []);\n\n const isDisabled = disabled || reducedMotion;\n\n const handleMouseMove = useCallback(\n (e: MouseEvent) => {\n if (!containerRef.current || isDisabled) return;\n\n const rect = containerRef.current.getBoundingClientRect();\n setPosition({\n x: e.clientX - rect.left,\n y: e.clientY - rect.top,\n });\n },\n [isDisabled],\n );\n\n const handleMouseEnter = useCallback(() => {\n if (!isDisabled) setIsHovering(true);\n }, [isDisabled]);\n\n const handleMouseLeave = useCallback(() => {\n setIsHovering(false);\n }, []);\n\n useEffect(() => {\n const container = containerRef.current;\n if (!container || isDisabled) return;\n\n container.addEventListener('mousemove', handleMouseMove);\n container.addEventListener('mouseenter', handleMouseEnter);\n container.addEventListener('mouseleave', handleMouseLeave);\n\n return () => {\n container.removeEventListener('mousemove', handleMouseMove);\n container.removeEventListener('mouseenter', handleMouseEnter);\n container.removeEventListener('mouseleave', handleMouseLeave);\n };\n }, [handleMouseMove, handleMouseEnter, handleMouseLeave, isDisabled]);\n\n // Parse color to handle both CSS variables and rgb values\n const spotlightColor = color.startsWith('var(')\n ? `rgba(${color.replace('var(', '').replace(')', '')}, ${opacity})`\n : color.includes(',')\n ? `rgba(${color}, ${opacity})`\n : color;\n\n const borderColor = color.startsWith('var(')\n ? `rgba(${color.replace('var(', '').replace(')', '')}, 0.5)`\n : color.includes(',')\n ? `rgba(${color}, 0.5)`\n : color;\n\n return (\n <div\n ref={containerRef}\n className={`ds-cursor-spotlight ${className || ''}`}\n style={\n {\n '--spotlight-x': `${position.x}px`,\n '--spotlight-y': `${position.y}px`,\n '--spotlight-size': `${size}px`,\n '--spotlight-color': spotlightColor,\n '--spotlight-border-color': borderColor,\n '--spotlight-opacity': isHovering ? 1 : 0,\n } as React.CSSProperties\n }\n data-hovering={isHovering}\n data-border-glow={borderGlow}\n >\n {/* Spotlight overlay */}\n <div className=\"ds-cursor-spotlight__glow\" aria-hidden=\"true\" />\n\n {/* Border glow */}\n {borderGlow && <div className=\"ds-cursor-spotlight__border\" aria-hidden=\"true\" />}\n\n {/* Content */}\n <div className=\"ds-cursor-spotlight__content\">{children}</div>\n </div>\n );\n};\n\nCursorSpotlight.displayName = 'CursorSpotlight';\n\n/* ============================================================================\n SPOTLIGHT CARD — Pre-styled card with spotlight effect\n ============================================================================ */\n\nexport interface SpotlightCardProps extends Omit<CursorSpotlightProps, 'children'> {\n /** Card title */\n title?: string;\n /** Card description */\n description?: string;\n /** Card icon */\n icon?: React.ReactNode;\n /** Card children */\n children?: React.ReactNode;\n /** Click handler */\n onClick?: () => void;\n}\n\nexport const SpotlightCard: React.FC<SpotlightCardProps> = ({\n title,\n description,\n icon,\n children,\n onClick,\n ...spotlightProps\n}) => {\n return (\n <CursorSpotlight {...spotlightProps} className=\"ds-spotlight-card\">\n <div\n className=\"ds-spotlight-card__inner\"\n onClick={onClick}\n role={onClick ? 'button' : undefined}\n tabIndex={onClick ? 0 : undefined}\n onKeyDown={\n onClick\n ? (e) => {\n if (e.key === 'Enter' || e.key === ' ') {\n e.preventDefault();\n onClick();\n }\n }\n : undefined\n }\n >\n {icon && <div className=\"ds-spotlight-card__icon\">{icon}</div>}\n {title && <h3 className=\"ds-spotlight-card__title\">{title}</h3>}\n {description && <p className=\"ds-spotlight-card__description\">{description}</p>}\n {children}\n </div>\n </CursorSpotlight>\n );\n};\n\nSpotlightCard.displayName = 'SpotlightCard';\n","import React, { useRef } from 'react';\nimport { motion, useInView, HTMLMotionProps } from 'framer-motion';\nimport { VARIANTS, VARIANT_MAP, type AnimationVariant } from '../../tokens/motion';\n\nexport interface MotionContainerProps extends HTMLMotionProps<'div'> {\n children: React.ReactNode;\n viewportMargin?: string;\n once?: boolean;\n stagger?: boolean;\n delay?: number;\n animation?: AnimationVariant;\n}\n\nexport const MotionContainer = ({\n children,\n viewportMargin = '-10%',\n once = true,\n stagger = false,\n delay = 0,\n animation = 'fadeIn',\n className,\n ...props\n}: MotionContainerProps) => {\n const ref = useRef(null);\n const isInView = useInView(ref, {\n once,\n margin: viewportMargin as Parameters<typeof useInView>[1] extends\n | { margin?: infer M }\n | undefined\n ? M\n : string,\n });\n\n const variants = stagger ? VARIANTS.staggerContainer : VARIANT_MAP[animation];\n\n return (\n <motion.div\n ref={ref}\n initial=\"hidden\"\n animate={isInView ? 'visible' : 'hidden'}\n variants={variants}\n transition={{ delay }}\n className={className}\n {...props}\n >\n {children}\n </motion.div>\n );\n};\n","import { motion, HTMLMotionProps } from 'framer-motion';\nimport { MOTION } from '../../tokens/motion';\n\nconst normalizeMotionTextToken = (value: string) => value.replace(/[^a-zA-Z0-9\\u00C0-\\u024F]/g, '');\n\nexport interface MotionTextProps extends HTMLMotionProps<'span'> {\n text: string;\n type?: 'word' | 'char';\n highlightWords?: string[]; // Words to highlight (color/bold)\n className?: string;\n}\n\nexport const MotionText = ({\n text,\n type = 'word',\n highlightWords = [],\n className,\n ...props\n}: MotionTextProps) => {\n // Split text based on type\n const items = type === 'word' ? text.split(' ') : text.split('');\n\n const containerVariants = {\n hidden: { opacity: 0 },\n visible: {\n opacity: 1,\n transition: {\n staggerChildren: type === 'word' ? 0.05 : 0.02,\n delayChildren: 0.1,\n },\n },\n };\n\n const itemVariants = {\n hidden: { opacity: 0, y: 10 },\n visible: {\n opacity: 1,\n y: 0,\n transition: { duration: MOTION.DURATION.short, ease: MOTION.EASING.standard },\n },\n };\n\n return (\n <motion.span\n variants={containerVariants}\n initial=\"hidden\"\n whileInView=\"visible\"\n viewport={{ once: true, margin: '-10%' }}\n className={className}\n {...props}\n style={{\n display: 'flex',\n flexWrap: 'wrap',\n gap: type === 'word' ? '0.25em' : '0.05em',\n ...props.style,\n }}\n >\n {items.map((item, i) => {\n const cleanItem = normalizeMotionTextToken(item);\n const isHighlighted = highlightWords.some(\n (highlightWord) => normalizeMotionTextToken(highlightWord) === cleanItem,\n );\n\n return (\n <motion.span\n key={i}\n variants={itemVariants}\n style={{\n color: isHighlighted ? 'var(--brand-pink)' : 'inherit',\n fontWeight: isHighlighted ? 600 : 'inherit',\n }}\n >\n {item}\n {type === 'word' && i < items.length - 1 ? '\\u00A0' : ''}\n </motion.span>\n );\n })}\n </motion.span>\n );\n};\n","import React from 'react';\nimport { motion } from 'framer-motion';\nimport clsx from 'clsx';\nimport './RevenueAutomationLoop.css';\n\nexport interface RevenueAutomationLoopProps {\n className?: string;\n}\n\nconst steps = [\n {\n id: 'test',\n label: 'Test Audience & Messaging',\n icon: (\n <svg\n width=\"24\"\n height=\"24\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M21 21L15 15M17 10C17 13.866 13.866 17 10 17C6.13401 17 3 13.866 3 10C3 6.13401 6.13401 3 10 3C13.866 3 17 6.13401 17 10Z\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n ),\n },\n {\n id: 'execute',\n label: 'Execute Outreach',\n icon: (\n <svg\n width=\"24\"\n height=\"24\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M22 2L11 13M22 2L15 22L11 13M11 13L2 9L22 2Z\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n ),\n },\n {\n id: 'results',\n label: 'Book Meetings',\n icon: (\n <svg\n width=\"24\"\n height=\"24\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M8 7V3M16 7V3M7 11H17M5 21H19C20.1046 21 21 20.1046 21 19V7C21 5.89543 20.1046 5 19 5H5C3.89543 5 3 5.89543 3 7V19C3 20.1046 3.89543 21 5 21Z\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n ),\n },\n];\n\nexport const RevenueAutomationLoop: React.FC<RevenueAutomationLoopProps> = ({ className }) => {\n return (\n <div className={clsx('ds-revenue-loop', className)}>\n <div className=\"ds-revenue-loop__circle\">\n {/* Animated ring */}\n <svg\n className=\"ds-revenue-loop__ring\"\n viewBox=\"0 0 400 400\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <defs>\n <linearGradient id=\"loopGradient\" x1=\"0%\" y1=\"0%\" x2=\"100%\" y2=\"0%\">\n <stop offset=\"0%\" stopColor=\"var(--brand-pink)\" />\n <stop offset=\"50%\" stopColor=\"var(--brand-yellow)\" />\n <stop offset=\"100%\" stopColor=\"var(--brand-pink)\" />\n </linearGradient>\n <marker\n id=\"arrowhead\"\n markerWidth=\"10\"\n markerHeight=\"7\"\n refX=\"9\"\n refY=\"3.5\"\n orient=\"auto\"\n >\n <polygon points=\"0 0, 10 3.5, 0 7\" fill=\"url(#loopGradient)\" />\n </marker>\n </defs>\n <circle\n cx=\"200\"\n cy=\"200\"\n r=\"190\"\n stroke=\"var(--rim-light-bottom)\"\n strokeWidth=\"1\"\n strokeDasharray=\"4 4\"\n className=\"ds-revenue-loop__track\"\n />\n <motion.circle\n cx=\"200\"\n cy=\"200\"\n r=\"190\"\n stroke=\"url(#loopGradient)\"\n strokeWidth=\"2\"\n fill=\"none\"\n strokeLinecap=\"round\"\n initial={{ pathLength: 0, rotate: -90 }}\n animate={{ pathLength: 1, rotate: -90 }}\n transition={{\n duration: 4,\n ease: 'linear',\n repeat: Infinity,\n }}\n />\n </svg>\n\n {/* Central Hub */}\n <div className=\"ds-revenue-loop__hub\">\n <div className=\"ds-revenue-loop__hub-glow\" />\n <div className=\"ds-revenue-loop__hub-content\">\n <span className=\"ds-revenue-loop__logo\">AI</span>\n </div>\n </div>\n\n {/* Steps */}\n {steps.map((step, index) => {\n // Calculate position on circle\n // 3 steps = 0, 120, 240 degrees\n // Offset by -90 to start at top\n const angle = (index * 360) / steps.length - 90;\n const radius = 190; // Match circle radius\n const x = 200 + radius * Math.cos((angle * Math.PI) / 180);\n const y = 200 + radius * Math.sin((angle * Math.PI) / 180);\n\n return (\n <motion.div\n key={step.id}\n className=\"ds-revenue-loop__node\"\n style={{\n left: `${(x / 400) * 100}%`,\n top: `${(y / 400) * 100}%`,\n }}\n initial={{ opacity: 0, scale: 0.8 }}\n animate={{ opacity: 1, scale: 1 }}\n transition={{ delay: index * 0.5 }}\n >\n <div className=\"ds-revenue-loop__icon\">{step.icon}</div>\n <div className=\"ds-revenue-loop__label\">{step.label}</div>\n </motion.div>\n );\n })}\n </div>\n </div>\n );\n};\n","/* ============================================================================\n FUNNEL SCALING SENDER — Animated Illustration\n Asset ID: FUNNEL_04_SCALING_SENDER_PERSPECTIVE_ANIMATION_V1\n\n 10-second loopable motion illustration. 6-scene timeline state machine.\n Orchestrates: Winning Combination card, LinkedIn flow pipeline,\n Qualification loop, Meeting conversion, 6-stage funnel mapping,\n and Scaling Mode lock with ant mascot swarm.\n ============================================================================ */\n\nimport React, { useEffect, useState, useCallback, useRef } from 'react';\nimport { motion, useInView, useReducedMotion } from 'framer-motion';\nimport clsx from 'clsx';\nimport './FunnelScalingSender.css';\n\n// ---------------------------------------------------------------------------\n// Types\n// ---------------------------------------------------------------------------\n\nexport interface FunnelScalingSenderProps {\n /** Additional CSS class */\n className?: string;\n /** Auto-play on viewport entry (default: true) */\n autoPlay?: boolean;\n /** Loop the animation (default: true) */\n loop?: boolean;\n}\n\n/** Timeline scene identifiers */\ntype Scene =\n | 'idle'\n | 'init' // 0–1.5s\n | 'funnel' // 1.5–3.5s\n | 'qualification' // 3.5–5.5s\n | 'meeting' // 5.5–6.5s\n | 'mapping' // 6.5–8.5s\n | 'scaling'; // 8.5–10s\n\n// ---------------------------------------------------------------------------\n// Constants\n// ---------------------------------------------------------------------------\n\nconst EASE_PREMIUM: [number, number, number, number] = [0.22, 1, 0.36, 1];\n\n/** Scene timing in ms — total 10s */\nconst SCENE_TIMING: Record<Exclude<Scene, 'idle'>, number> = {\n init: 0,\n funnel: 1500,\n qualification: 3500,\n meeting: 5500,\n mapping: 6500,\n scaling: 8500,\n};\n\nconst HOLD_DURATION = 1200; // Final hold before loop restart\nconst TOTAL_DURATION = 10000 + HOLD_DURATION;\n\nconst LINKEDIN_STEPS = [\n { id: 'follow', label: 'Profile Follow' },\n { id: 'visit', label: 'Profile Visit' },\n { id: 'connect', label: 'Connection Request' },\n { id: 'msg1', label: 'Message 1' },\n { id: 'msg2', label: 'Message 2' },\n { id: 'msg3', label: 'Message 3' },\n] as const;\n\nconst FUNNEL_STAGES = [\n { id: 'awareness', label: 'Awareness', num: 1 },\n { id: 'discovery', label: 'Discovery', num: 2 },\n { id: 'evaluation', label: 'Evaluation', num: 3 },\n { id: 'intent', label: 'Intent', num: 4 },\n { id: 'negotiation', label: 'Negotiation', num: 5 },\n { id: 'purchase', label: 'Purchase', num: 6 },\n] as const;\n\nconst WINNING_BULLETS = [\n 'Target audience validated & segmented',\n 'Messaging sequence A/B tested',\n 'Optimal send times confirmed',\n 'Response rate > benchmark threshold',\n 'Conversion path verified end-to-end',\n];\n\nconst SCALING_CHECKS = [\n 'Volume multiplied to 9 senders',\n 'All sequences templated & locked',\n 'Auto-qualification active',\n 'Meeting pipeline on autopilot',\n];\n\n// ---------------------------------------------------------------------------\n// Sub-components: SVG Primitives\n// ---------------------------------------------------------------------------\n\n/** Geometric ant mascot — premium, minimal, thin strokes */\nconst AntSVG: React.FC<{ size?: number; className?: string }> = ({ size = 28, className }) => (\n <svg\n className={className}\n width={size}\n height={size}\n viewBox=\"0 0 28 28\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n aria-hidden=\"true\"\n >\n <defs>\n <linearGradient id=\"antGrad\" x1=\"0\" y1=\"0\" x2=\"28\" y2=\"28\" gradientUnits=\"userSpaceOnUse\">\n <stop offset=\"0%\" stopColor=\"var(--brand-pink)\" />\n <stop offset=\"100%\" stopColor=\"var(--brand-yellow)\" />\n </linearGradient>\n </defs>\n {/* Head */}\n <circle cx=\"14\" cy=\"6\" r=\"4\" stroke=\"url(#antGrad)\" strokeWidth=\"1.2\" fill=\"none\" />\n {/* Antennae */}\n <line\n x1=\"11\"\n y1=\"3\"\n x2=\"7\"\n y2=\"0.5\"\n stroke=\"rgba(255,255,255,0.1)\"\n strokeWidth=\"1\"\n strokeLinecap=\"round\"\n />\n <line\n x1=\"17\"\n y1=\"3\"\n x2=\"21\"\n y2=\"0.5\"\n stroke=\"rgba(255,255,255,0.1)\"\n strokeWidth=\"1\"\n strokeLinecap=\"round\"\n />\n {/* Thorax */}\n <ellipse cx=\"14\" cy=\"13\" rx=\"3.5\" ry=\"3\" stroke=\"url(#antGrad)\" strokeWidth=\"1.2\" fill=\"none\" />\n {/* Abdomen */}\n <ellipse cx=\"14\" cy=\"22\" rx=\"5\" ry=\"5\" stroke=\"url(#antGrad)\" strokeWidth=\"1.2\" fill=\"none\" />\n {/* Legs (3 pairs) */}\n <line\n x1=\"10.5\"\n y1=\"11\"\n x2=\"5\"\n y2=\"9\"\n stroke=\"rgba(255,255,255,0.1)\"\n strokeWidth=\"0.8\"\n strokeLinecap=\"round\"\n />\n <line\n x1=\"17.5\"\n y1=\"11\"\n x2=\"23\"\n y2=\"9\"\n stroke=\"rgba(255,255,255,0.1)\"\n strokeWidth=\"0.8\"\n strokeLinecap=\"round\"\n />\n <line\n x1=\"10.5\"\n y1=\"13\"\n x2=\"4\"\n y2=\"14\"\n stroke=\"rgba(255,255,255,0.1)\"\n strokeWidth=\"0.8\"\n strokeLinecap=\"round\"\n />\n <line\n x1=\"17.5\"\n y1=\"13\"\n x2=\"24\"\n y2=\"14\"\n stroke=\"rgba(255,255,255,0.1)\"\n strokeWidth=\"0.8\"\n strokeLinecap=\"round\"\n />\n <line\n x1=\"10.5\"\n y1=\"15\"\n x2=\"5\"\n y2=\"18\"\n stroke=\"rgba(255,255,255,0.1)\"\n strokeWidth=\"0.8\"\n strokeLinecap=\"round\"\n />\n <line\n x1=\"17.5\"\n y1=\"15\"\n x2=\"23\"\n y2=\"18\"\n stroke=\"rgba(255,255,255,0.1)\"\n strokeWidth=\"0.8\"\n strokeLinecap=\"round\"\n />\n {/* Eyes */}\n <circle cx=\"12.5\" cy=\"5.5\" r=\"0.8\" fill=\"url(#antGrad)\" />\n <circle cx=\"15.5\" cy=\"5.5\" r=\"0.8\" fill=\"url(#antGrad)\" />\n </svg>\n);\n\n/** Small ant for swarm (16px) */\nconst SwarmAntSVG: React.FC = () => (\n <svg\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 16 16\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n aria-hidden=\"true\"\n >\n <circle cx=\"8\" cy=\"3.5\" r=\"2.5\" stroke=\"url(#antGrad)\" strokeWidth=\"0.8\" fill=\"none\" />\n <ellipse cx=\"8\" cy=\"8\" rx=\"2\" ry=\"1.8\" stroke=\"url(#antGrad)\" strokeWidth=\"0.8\" fill=\"none\" />\n <ellipse cx=\"8\" cy=\"13\" rx=\"3\" ry=\"3\" stroke=\"url(#antGrad)\" strokeWidth=\"0.8\" fill=\"none\" />\n </svg>\n);\n\n/** Calendar tile icon */\nconst CalendarIcon: React.FC = () => (\n <svg\n width=\"20\"\n height=\"20\"\n viewBox=\"0 0 20 20\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n aria-hidden=\"true\"\n >\n <rect x=\"2\" y=\"4\" width=\"16\" height=\"14\" rx=\"2\" stroke=\"currentColor\" strokeWidth=\"1.5\" />\n <line x1=\"2\" y1=\"8\" x2=\"18\" y2=\"8\" stroke=\"currentColor\" strokeWidth=\"1.5\" />\n <line\n x1=\"6\"\n y1=\"2\"\n x2=\"6\"\n y2=\"6\"\n stroke=\"currentColor\"\n strokeWidth=\"1.5\"\n strokeLinecap=\"round\"\n />\n <line\n x1=\"14\"\n y1=\"2\"\n x2=\"14\"\n y2=\"6\"\n stroke=\"currentColor\"\n strokeWidth=\"1.5\"\n strokeLinecap=\"round\"\n />\n <rect x=\"5\" y=\"10\" width=\"3\" height=\"3\" rx=\"0.5\" fill=\"currentColor\" opacity=\"0.5\" />\n </svg>\n);\n\n/** Lock icon for validated state */\nconst LockIcon: React.FC = () => (\n <svg\n width=\"12\"\n height=\"12\"\n viewBox=\"0 0 12 12\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n aria-hidden=\"true\"\n >\n <rect x=\"2\" y=\"5\" width=\"8\" height=\"6\" rx=\"1.5\" stroke=\"currentColor\" strokeWidth=\"1.2\" />\n <path\n d=\"M4 5V3.5C4 2.4 4.9 1.5 6 1.5C7.1 1.5 8 2.4 8 3.5V5\"\n stroke=\"currentColor\"\n strokeWidth=\"1.2\"\n strokeLinecap=\"round\"\n />\n </svg>\n);\n\n/** Check icon for scaling checklist */\nconst CheckIcon: React.FC = () => (\n <svg\n className=\"ds-funnel-scaling__scaling-check\"\n width=\"14\"\n height=\"14\"\n viewBox=\"0 0 14 14\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n aria-hidden=\"true\"\n >\n <circle cx=\"7\" cy=\"7\" r=\"6\" stroke=\"currentColor\" strokeWidth=\"1.2\" />\n <polyline\n points=\"4,7 6,9.5 10,4.5\"\n stroke=\"currentColor\"\n strokeWidth=\"1.4\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n fill=\"none\"\n />\n </svg>\n);\n\n/** LinkedIn step icon (generic node dot) */\nconst NodeDot: React.FC = () => (\n <svg\n className=\"ds-funnel-scaling__flow-icon\"\n width=\"20\"\n height=\"20\"\n viewBox=\"0 0 20 20\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n aria-hidden=\"true\"\n >\n <circle cx=\"10\" cy=\"10\" r=\"4\" stroke=\"currentColor\" strokeWidth=\"1.5\" />\n <circle cx=\"10\" cy=\"10\" r=\"1.5\" fill=\"currentColor\" />\n </svg>\n);\n\n// ---------------------------------------------------------------------------\n// Framer Motion Variant Definitions (spec-aligned)\n// ---------------------------------------------------------------------------\n\nconst containerStagger = {\n hidden: { opacity: 0 },\n show: {\n opacity: 1,\n transition: { staggerChildren: 0.1 },\n },\n};\n\nconst cardReveal = {\n hidden: { opacity: 0, y: 40 },\n show: {\n opacity: 1,\n y: 0,\n transition: { duration: 0.6, ease: EASE_PREMIUM },\n },\n};\n\nconst bulletStagger = {\n hidden: { opacity: 0, x: -8 },\n show: {\n opacity: 1,\n x: 0,\n transition: { duration: 0.3, ease: EASE_PREMIUM },\n },\n};\n\nconst stepNode = {\n hidden: { opacity: 0, scaleY: 0.85 },\n show: {\n opacity: 1,\n scaleY: 1,\n transition: { duration: 0.35, ease: EASE_PREMIUM },\n },\n};\n\nconst funnelLayer = {\n hidden: { opacity: 0, y: 20 },\n show: {\n opacity: 1,\n y: 0,\n transition: { duration: 0.4, ease: EASE_PREMIUM },\n },\n};\n\nconst fadeSlideUp = {\n hidden: { opacity: 0, y: 30 },\n show: {\n opacity: 1,\n y: 0,\n transition: { duration: 0.5, ease: EASE_PREMIUM },\n },\n};\n\nconst scalePulse = {\n hidden: { scale: 1 },\n show: {\n scale: [1, 1.04, 1],\n transition: { duration: 0.6, ease: EASE_PREMIUM },\n },\n};\n\nconst swarmEntry = {\n hidden: { opacity: 0, scale: 0.8 },\n show: {\n opacity: 1,\n scale: 1,\n transition: { duration: 0.35, ease: EASE_PREMIUM },\n },\n};\n\nconst qualBlockLeft = {\n hidden: { opacity: 0, x: -60 },\n show: {\n opacity: 1,\n x: 0,\n transition: { duration: 0.5, ease: EASE_PREMIUM },\n },\n};\n\nconst qualBlockRight = {\n hidden: { opacity: 0, x: 60 },\n show: {\n opacity: 1,\n x: 0,\n transition: { duration: 0.5, ease: EASE_PREMIUM },\n },\n};\n\n// ---------------------------------------------------------------------------\n// Timeline Hook\n// ---------------------------------------------------------------------------\n\nfunction useSceneTimeline(\n isInView: boolean,\n autoPlay: boolean,\n loop: boolean,\n reducedMotion: boolean | null,\n): Scene {\n const [scene, setScene] = useState<Scene>('idle');\n const timerRef = useRef<ReturnType<typeof setTimeout>[]>([]);\n\n const clearTimers = useCallback(() => {\n timerRef.current.forEach(clearTimeout);\n timerRef.current = [];\n }, []);\n\n const startTimeline = useCallback(() => {\n clearTimers();\n\n const scenes: Exclude<Scene, 'idle'>[] = [\n 'init',\n 'funnel',\n 'qualification',\n 'meeting',\n 'mapping',\n 'scaling',\n ];\n\n // In reduced-motion, skip to final state immediately\n if (reducedMotion) {\n setScene('scaling');\n return;\n }\n\n scenes.forEach((s) => {\n const id = setTimeout(() => setScene(s), SCENE_TIMING[s]);\n timerRef.current.push(id);\n });\n\n if (loop) {\n const loopId = setTimeout(() => {\n setScene('idle');\n // On loop restart, skip init scene — start at funnel\n const restartId = setTimeout(() => startTimeline(), 100);\n timerRef.current.push(restartId);\n }, TOTAL_DURATION);\n timerRef.current.push(loopId);\n }\n }, [clearTimers, loop, reducedMotion]);\n\n useEffect(() => {\n if (isInView && autoPlay) {\n startTimeline();\n }\n return clearTimers;\n }, [isInView, autoPlay, startTimeline, clearTimers]);\n\n return scene;\n}\n\n// ---------------------------------------------------------------------------\n// Scene-active helpers\n// ---------------------------------------------------------------------------\n\n/** Returns true if the current scene is at or past the given scene */\nfunction isAtOrPast(current: Scene, target: Exclude<Scene, 'idle'>): boolean {\n const order: Scene[] = [\n 'idle',\n 'init',\n 'funnel',\n 'qualification',\n 'meeting',\n 'mapping',\n 'scaling',\n ];\n return order.indexOf(current) >= order.indexOf(target);\n}\n\n// ---------------------------------------------------------------------------\n// Main Component\n// ---------------------------------------------------------------------------\n\nexport const FunnelScalingSender: React.FC<FunnelScalingSenderProps> = ({\n className,\n autoPlay = true,\n loop = true,\n}) => {\n const containerRef = useRef<HTMLDivElement>(null);\n const isInView = useInView(containerRef, { once: false, amount: 0.3 });\n const reducedMotion = useReducedMotion();\n const scene = useSceneTimeline(isInView, autoPlay, loop, reducedMotion);\n\n const isActive = scene !== 'idle';\n const showInit = isAtOrPast(scene, 'init');\n const showFunnel = isAtOrPast(scene, 'funnel');\n const showQualification = isAtOrPast(scene, 'qualification');\n const showMeeting = isAtOrPast(scene, 'meeting');\n const showMapping = isAtOrPast(scene, 'mapping');\n const showScaling = isAtOrPast(scene, 'scaling');\n\n return (\n <div\n ref={containerRef}\n className={clsx('ds-funnel-scaling', className)}\n role=\"img\"\n aria-label=\"Animated illustration: SalesMind scaling funnel from the sender perspective — showing how validated outreach becomes an automated pipeline machine\"\n >\n {/* Background */}\n <motion.div\n className=\"ds-funnel-scaling__bg\"\n initial={{ opacity: 0 }}\n animate={{ opacity: isActive ? 1 : 0 }}\n transition={{ duration: 0.4 }}\n />\n <motion.div\n className=\"ds-funnel-scaling__grid\"\n initial={{ opacity: 0 }}\n animate={{ opacity: isActive ? 1 : 0 }}\n transition={{ duration: 0.4, delay: 0.6 }}\n />\n\n {/* SVG Defs (shared gradients) */}\n <svg width=\"0\" height=\"0\" aria-hidden=\"true\" style={{ position: 'absolute' }}>\n <defs>\n <linearGradient id=\"antGrad\" x1=\"0\" y1=\"0\" x2=\"28\" y2=\"28\" gradientUnits=\"userSpaceOnUse\">\n <stop offset=\"0%\" stopColor=\"var(--brand-pink)\" />\n <stop offset=\"100%\" stopColor=\"var(--brand-yellow)\" />\n </linearGradient>\n <linearGradient id=\"fscFlowGrad\" x1=\"0\" y1=\"0\" x2=\"0\" y2=\"1\">\n <stop offset=\"0%\" stopColor=\"var(--brand-pink)\" />\n <stop offset=\"100%\" stopColor=\"var(--brand-yellow)\" />\n </linearGradient>\n <linearGradient id=\"fscQualGrad\" x1=\"0\" y1=\"0\" x2=\"1\" y2=\"1\">\n <stop offset=\"0%\" stopColor=\"var(--brand-pink)\" />\n <stop offset=\"100%\" stopColor=\"var(--brand-yellow)\" />\n </linearGradient>\n </defs>\n </svg>\n\n <div className=\"ds-funnel-scaling__canvas\">\n {/* ================================================================\n SCENE 01 — Winning Combination Card (left column)\n ================================================================ */}\n <motion.div\n className=\"ds-funnel-scaling__winning-card\"\n variants={cardReveal}\n initial=\"hidden\"\n animate={showInit ? 'show' : 'hidden'}\n >\n <div className=\"ds-funnel-scaling__winning-header\">Solution</div>\n <div className=\"ds-funnel-scaling__winning-title\">Winning Combination</div>\n\n <motion.ul\n className=\"ds-funnel-scaling__winning-bullets\"\n variants={containerStagger}\n initial=\"hidden\"\n animate={showInit ? 'show' : 'hidden'}\n >\n {WINNING_BULLETS.map((bullet) => (\n <motion.li\n key={bullet}\n className=\"ds-funnel-scaling__winning-bullet\"\n variants={bulletStagger}\n >\n {bullet}\n </motion.li>\n ))}\n </motion.ul>\n\n <motion.div\n className=\"ds-funnel-scaling__winning-lock\"\n initial={{ opacity: 0 }}\n animate={{ opacity: showInit ? 1 : 0 }}\n transition={{ delay: 0.8, duration: 0.4 }}\n >\n <LockIcon /> Validated & Locked\n </motion.div>\n </motion.div>\n\n {/* ================================================================\n SCENE 02 — LinkedIn Flow (center column, top)\n ================================================================ */}\n <motion.div\n className=\"ds-funnel-scaling__flow\"\n variants={containerStagger}\n initial=\"hidden\"\n animate={showFunnel ? 'show' : 'hidden'}\n >\n {LINKEDIN_STEPS.map((step, i) => (\n <React.Fragment key={step.id}>\n <motion.div\n className={clsx(\n 'ds-funnel-scaling__flow-node',\n showFunnel && 'ds-funnel-scaling__flow-node--active',\n )}\n variants={stepNode}\n custom={i}\n >\n <NodeDot />\n <span className=\"ds-funnel-scaling__flow-label\">{step.label}</span>\n </motion.div>\n\n {i < LINKEDIN_STEPS.length - 1 && (\n <motion.svg\n className=\"ds-funnel-scaling__flow-connector\"\n width=\"2\"\n height=\"12\"\n viewBox=\"0 0 2 12\"\n initial={{ scaleY: 0, opacity: 0 }}\n animate={showFunnel ? { scaleY: 1, opacity: 1 } : { scaleY: 0, opacity: 0 }}\n transition={{ duration: 0.3, delay: 0.1 * (i + 1), ease: EASE_PREMIUM }}\n style={{ transformOrigin: 'top' }}\n >\n <rect width=\"2\" height=\"12\" fill=\"url(#fscFlowGrad)\" rx=\"1\" />\n </motion.svg>\n )}\n </React.Fragment>\n ))}\n\n {/* Ghost ants appear at Message 3 to signal scaling */}\n {showFunnel && (\n <div style={{ position: 'relative', height: 0 }}>\n {[0, 1, 2].map((i) => (\n <motion.div\n key={`ghost-${i}`}\n className=\"ds-funnel-scaling__ant ds-funnel-scaling__ant--ghost\"\n initial={{ opacity: 0, x: -20 + i * 15, y: -10 }}\n animate={showFunnel ? { opacity: 0.35, x: -10 + i * 18, y: 0 } : { opacity: 0 }}\n transition={{ delay: 1.2 + i * 0.15, duration: 0.4, ease: EASE_PREMIUM }}\n style={{ position: 'absolute' }}\n >\n <AntSVG size={20} />\n </motion.div>\n ))}\n </div>\n )}\n </motion.div>\n\n {/* ================================================================\n SCENE 03 — Qualification Loop (center column, bottom)\n ================================================================ */}\n <motion.div\n className=\"ds-funnel-scaling__qualification\"\n initial={{ opacity: 0, scale: 0.9 }}\n animate={showQualification ? { opacity: 1, scale: 1 } : { opacity: 0, scale: 0.9 }}\n transition={{ duration: 0.6, ease: EASE_PREMIUM }}\n >\n <div className=\"ds-funnel-scaling__qual-ring\">\n <svg viewBox=\"0 0 180 180\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n {/* Track ring */}\n <circle cx=\"90\" cy=\"90\" r=\"70\" stroke=\"rgba(255,255,255,0.06)\" strokeWidth=\"1\" />\n {/* Animated circular arrows */}\n <motion.circle\n cx=\"90\"\n cy=\"90\"\n r=\"70\"\n stroke=\"url(#fscQualGrad)\"\n strokeWidth=\"2\"\n fill=\"none\"\n strokeLinecap=\"round\"\n strokeDasharray=\"440\"\n initial={{ strokeDashoffset: 440 }}\n animate={showQualification ? { strokeDashoffset: 0 } : { strokeDashoffset: 440 }}\n transition={{ duration: 0.8, ease: EASE_PREMIUM }}\n />\n {/* Arrowhead indicators */}\n <motion.polygon\n points=\"155,80 165,90 155,100\"\n fill=\"var(--brand-pink)\"\n initial={{ opacity: 0 }}\n animate={showQualification ? { opacity: 0.7 } : { opacity: 0 }}\n transition={{ delay: 0.6, duration: 0.3 }}\n />\n <motion.polygon\n points=\"25,100 15,90 25,80\"\n fill=\"var(--brand-yellow)\"\n initial={{ opacity: 0 }}\n animate={showQualification ? { opacity: 0.7 } : { opacity: 0 }}\n transition={{ delay: 0.7, duration: 0.3 }}\n />\n </svg>\n\n {/* Center text */}\n <motion.div\n className=\"ds-funnel-scaling__qual-center\"\n initial={{ opacity: 0 }}\n animate={showQualification ? { opacity: 1 } : { opacity: 0 }}\n transition={{ delay: 0.8, duration: 0.4 }}\n >\n <span className=\"ds-funnel-scaling__qual-text\">\n Qualification happens during the conversation\n </span>\n </motion.div>\n\n {/* Swarm ants orbiting (3 initially, 9 when scaling) */}\n {showQualification && !reducedMotion && (\n <>\n {Array.from({ length: showScaling ? 9 : 3 }).map((_, i) => (\n <motion.div\n key={`swarm-${i}`}\n className=\"ds-funnel-scaling__swarm-ant\"\n variants={swarmEntry}\n initial=\"hidden\"\n animate=\"show\"\n transition={{ delay: i * 0.08 }}\n style={{\n animationDelay: `${-(i * (3 / (showScaling ? 9 : 3)))}s`,\n }}\n >\n <SwarmAntSVG />\n </motion.div>\n ))}\n </>\n )}\n </div>\n\n {/* Reply / Follow-up blocks */}\n <div className=\"ds-funnel-scaling__qual-blocks\">\n <motion.div\n className=\"ds-funnel-scaling__qual-block\"\n variants={qualBlockLeft}\n initial=\"hidden\"\n animate={showQualification ? 'show' : 'hidden'}\n >\n Reply Handling\n </motion.div>\n <motion.div\n className=\"ds-funnel-scaling__qual-block\"\n variants={qualBlockRight}\n initial=\"hidden\"\n animate={showQualification ? 'show' : 'hidden'}\n >\n Follow-up Sequence\n </motion.div>\n </div>\n </motion.div>\n\n {/* ================================================================\n SCENE 05 — 6-Stage Funnel (right column)\n ================================================================ */}\n <motion.div\n className=\"ds-funnel-scaling__funnel\"\n variants={containerStagger}\n initial=\"hidden\"\n animate={showMapping ? 'show' : 'hidden'}\n >\n <div className=\"ds-funnel-scaling__funnel-header\">Sales Funnel Stages</div>\n {FUNNEL_STAGES.map((stage) => {\n const isHighlight = stage.id === 'evaluation' || stage.id === 'intent';\n const isDim = showMapping && !isHighlight;\n\n return (\n <motion.div\n key={stage.id}\n className={clsx(\n 'ds-funnel-scaling__funnel-stage',\n isHighlight && showMapping && 'ds-funnel-scaling__funnel-stage--highlight',\n isDim && 'ds-funnel-scaling__funnel-stage--dim',\n )}\n variants={funnelLayer}\n >\n <span className=\"ds-funnel-scaling__funnel-num\">{stage.num}</span>\n <span className=\"ds-funnel-scaling__funnel-label\">{stage.label}</span>\n </motion.div>\n );\n })}\n </motion.div>\n </div>\n\n {/* ==================================================================\n SCENE 04 — Meeting Booked (absolute positioned, center-bottom)\n ================================================================== */}\n <motion.div\n className=\"ds-funnel-scaling__meeting\"\n variants={fadeSlideUp}\n initial=\"hidden\"\n animate={showMeeting ? 'show' : 'hidden'}\n >\n <motion.div\n variants={scalePulse}\n initial=\"hidden\"\n animate={showMeeting ? 'show' : 'hidden'}\n style={{ display: 'flex', alignItems: 'center', gap: '12px' }}\n >\n <div className=\"ds-funnel-scaling__meeting-icon\">\n <CalendarIcon />\n </div>\n <span className=\"ds-funnel-scaling__meeting-label\">Meeting Booked</span>\n </motion.div>\n </motion.div>\n\n {/* Data line from Meeting to Funnel */}\n {showMeeting && showMapping && (\n <motion.svg\n className=\"ds-funnel-scaling__data-line\"\n style={{ right: 240, bottom: 80, width: 120, height: 200 }}\n viewBox=\"0 0 120 200\"\n initial={{ opacity: 0 }}\n animate={{ opacity: 0.4 }}\n transition={{ delay: 0.3, duration: 0.5 }}\n >\n <motion.path\n d=\"M 0 200 C 20 150, 80 100, 120 40\"\n stroke=\"url(#fscFlowGrad)\"\n strokeWidth=\"1.5\"\n fill=\"none\"\n strokeLinecap=\"round\"\n initial={{ pathLength: 0 }}\n animate={{ pathLength: 1 }}\n transition={{ duration: 0.8, ease: EASE_PREMIUM, delay: 0.2 }}\n />\n {/* Terminal dot */}\n <motion.circle\n cx=\"120\"\n cy=\"40\"\n r=\"3\"\n fill=\"var(--brand-pink)\"\n initial={{ opacity: 0, scale: 0 }}\n animate={{ opacity: 1, scale: 1 }}\n transition={{ delay: 1, duration: 0.3 }}\n />\n </motion.svg>\n )}\n\n {/* ==================================================================\n SCENE 06 — Scaling Mode Panel (absolute, bottom-right)\n ================================================================== */}\n <motion.div\n className=\"ds-funnel-scaling__scaling-panel\"\n initial={{ opacity: 0, y: 20 }}\n animate={showScaling ? { opacity: 1, y: 0 } : { opacity: 0, y: 20 }}\n transition={{ duration: 0.5, ease: EASE_PREMIUM }}\n >\n <div className=\"ds-funnel-scaling__scaling-header\">\n <svg width=\"12\" height=\"12\" viewBox=\"0 0 12 12\" fill=\"none\" aria-hidden=\"true\">\n <path d=\"M6 1L11 6L6 11L1 6Z\" stroke=\"currentColor\" strokeWidth=\"1.2\" />\n </svg>\n Scaling Mode\n </div>\n\n {SCALING_CHECKS.map((item, i) => (\n <motion.div\n key={item}\n className=\"ds-funnel-scaling__scaling-item\"\n initial={{ opacity: 0, x: -10 }}\n animate={showScaling ? { opacity: 1, x: 0 } : { opacity: 0, x: -10 }}\n transition={{ delay: 0.15 + i * 0.12, duration: 0.35, ease: EASE_PREMIUM }}\n >\n <motion.div\n initial={{ scale: 0 }}\n animate={showScaling ? { scale: 1 } : { scale: 0 }}\n transition={{ delay: 0.25 + i * 0.12, duration: 0.3, ease: EASE_PREMIUM }}\n >\n <CheckIcon />\n </motion.div>\n {item}\n </motion.div>\n ))}\n </motion.div>\n\n {/* Main Ant Mascot — follows scenes positionally via framer-motion */}\n <motion.div\n className=\"ds-funnel-scaling__ant\"\n initial={{ opacity: 0, x: -40, y: 100 }}\n animate={\n showScaling\n ? { opacity: 1, x: 280, y: 60 }\n : showMapping\n ? { opacity: 1, x: 240, y: 160 }\n : showMeeting\n ? { opacity: 1, x: 400, y: 280 }\n : showQualification\n ? { opacity: 1, x: 380, y: 200 }\n : showFunnel\n ? { opacity: 1, x: 320, y: 40 }\n : showInit\n ? { opacity: 1, x: 220, y: 30 }\n : { opacity: 0, x: -40, y: 100 }\n }\n transition={{\n duration: 0.8,\n ease: EASE_PREMIUM,\n opacity: { duration: 0.4 },\n }}\n >\n <AntSVG />\n </motion.div>\n </div>\n );\n};\n\nFunnelScalingSender.displayName = 'FunnelScalingSender';\n"]}
|
package/dist/chunk-3NKRFUAR.js
DELETED
|
@@ -1,37 +0,0 @@
|
|
|
1
|
-
import React from 'react';
|
|
2
|
-
import { Input } from '@base-ui/react/input';
|
|
3
|
-
import clsx from 'clsx';
|
|
4
|
-
import { jsxs, jsx } from 'react/jsx-runtime';
|
|
5
|
-
|
|
6
|
-
// src/components/TextField/TextField.tsx
|
|
7
|
-
var TextField = React.forwardRef(
|
|
8
|
-
({ className, label, error, helperText, endAdornment, id, ...props }, ref) => {
|
|
9
|
-
const generatedId = React.useId();
|
|
10
|
-
const inputId = id || generatedId;
|
|
11
|
-
return /* @__PURE__ */ jsxs("div", { className: clsx("ds-textfield", className), children: [
|
|
12
|
-
label && /* @__PURE__ */ jsx("label", { htmlFor: inputId, className: "ds-textfield__label", children: label }),
|
|
13
|
-
/* @__PURE__ */ jsxs("div", { className: "ds-textfield__input-wrapper", children: [
|
|
14
|
-
/* @__PURE__ */ jsx(
|
|
15
|
-
Input,
|
|
16
|
-
{
|
|
17
|
-
id: inputId,
|
|
18
|
-
ref,
|
|
19
|
-
className: clsx(
|
|
20
|
-
"ds-textfield__input",
|
|
21
|
-
error && "ds-textfield__input--error",
|
|
22
|
-
endAdornment && "ds-textfield__input--adorned"
|
|
23
|
-
),
|
|
24
|
-
...props
|
|
25
|
-
}
|
|
26
|
-
),
|
|
27
|
-
endAdornment && /* @__PURE__ */ jsx("div", { className: "ds-textfield__adornment", children: endAdornment })
|
|
28
|
-
] }),
|
|
29
|
-
helperText && /* @__PURE__ */ jsx("span", { className: clsx("ds-textfield__helper", error && "ds-textfield__helper--error"), children: helperText })
|
|
30
|
-
] });
|
|
31
|
-
}
|
|
32
|
-
);
|
|
33
|
-
TextField.displayName = "TextField";
|
|
34
|
-
|
|
35
|
-
export { TextField };
|
|
36
|
-
//# sourceMappingURL=out.js.map
|
|
37
|
-
//# sourceMappingURL=chunk-3NKRFUAR.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/components/TextField/TextField.tsx"],"names":[],"mappings":";AAAA,OAAO,WAAW;AAClB,SAAS,SAAS,iBAAiB;AACnC,OAAO,UAAU;AAkBP,cAIF,YAJE;AARH,IAAM,YAAY,MAAM;AAAA,EAC7B,CAAC,EAAE,WAAW,OAAO,OAAO,YAAY,cAAc,IAAI,GAAG,MAAM,GAAG,QAAQ;AAC5E,UAAM,cAAc,MAAM,MAAM;AAChC,UAAM,UAAU,MAAM;AAEtB,WACE,qBAAC,SAAI,WAAW,KAAK,gBAAgB,SAAS,GAC3C;AAAA,eACC,oBAAC,WAAM,SAAS,SAAS,WAAU,uBAChC,iBACH;AAAA,MAEF,qBAAC,SAAI,WAAU,+BACb;AAAA;AAAA,UAAC;AAAA;AAAA,YACC,IAAI;AAAA,YACJ;AAAA,YACA,WAAW;AAAA,cACT;AAAA,cACA,SAAS;AAAA,cACT,gBAAgB;AAAA,YAClB;AAAA,YACC,GAAG;AAAA;AAAA,QACN;AAAA,QACC,gBAAgB,oBAAC,SAAI,WAAU,2BAA2B,wBAAa;AAAA,SAC1E;AAAA,MACC,cACC,oBAAC,UAAK,WAAW,KAAK,wBAAwB,SAAS,6BAA6B,GACjF,sBACH;AAAA,OAEJ;AAAA,EAEJ;AACF;AAEA,UAAU,cAAc","sourcesContent":["import React from 'react';\nimport { Input as BaseInput } from '@base-ui/react/input';\nimport clsx from 'clsx';\nimport './TextField.css';\n\nexport interface TextFieldProps extends React.InputHTMLAttributes<HTMLInputElement> {\n label?: string;\n error?: boolean;\n helperText?: string;\n endAdornment?: React.ReactNode;\n}\n\nexport const TextField = React.forwardRef<HTMLInputElement, TextFieldProps>(\n ({ className, label, error, helperText, endAdornment, id, ...props }, ref) => {\n const generatedId = React.useId();\n const inputId = id || generatedId;\n\n return (\n <div className={clsx('ds-textfield', className)}>\n {label && (\n <label htmlFor={inputId} className=\"ds-textfield__label\">\n {label}\n </label>\n )}\n <div className=\"ds-textfield__input-wrapper\">\n <BaseInput\n id={inputId}\n ref={ref}\n className={clsx(\n 'ds-textfield__input',\n error && 'ds-textfield__input--error',\n endAdornment && 'ds-textfield__input--adorned',\n )}\n {...props}\n />\n {endAdornment && <div className=\"ds-textfield__adornment\">{endAdornment}</div>}\n </div>\n {helperText && (\n <span className={clsx('ds-textfield__helper', error && 'ds-textfield__helper--error')}>\n {helperText}\n </span>\n )}\n </div>\n );\n },\n);\n\nTextField.displayName = 'TextField';\n"]}
|
package/dist/chunk-3TGSIILM.cjs
DELETED
|
@@ -1,201 +0,0 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
var React = require('react');
|
|
4
|
-
var menu = require('@base-ui/react/menu');
|
|
5
|
-
var clsx = require('clsx');
|
|
6
|
-
var jsxRuntime = require('react/jsx-runtime');
|
|
7
|
-
var select = require('@base-ui/react/select');
|
|
8
|
-
|
|
9
|
-
function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
|
|
10
|
-
|
|
11
|
-
var React__default = /*#__PURE__*/_interopDefault(React);
|
|
12
|
-
var clsx__default = /*#__PURE__*/_interopDefault(clsx);
|
|
13
|
-
|
|
14
|
-
// src/components/DropdownMenu/DropdownMenu.tsx
|
|
15
|
-
var DropdownMenu = menu.Menu.Root;
|
|
16
|
-
var DropdownMenuTrigger = React__default.default.forwardRef(({ className, ...props }, ref) => {
|
|
17
|
-
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
18
|
-
menu.Menu.Trigger,
|
|
19
|
-
{
|
|
20
|
-
ref,
|
|
21
|
-
className: clsx__default.default("ds-dropdown-menu__trigger", className),
|
|
22
|
-
...props
|
|
23
|
-
}
|
|
24
|
-
);
|
|
25
|
-
});
|
|
26
|
-
DropdownMenuTrigger.displayName = "DropdownMenuTrigger";
|
|
27
|
-
var DropdownMenuContent = React__default.default.forwardRef(
|
|
28
|
-
({ className, side = "bottom", align = "start", sideOffset = 4, alignOffset = 0, ...props }, ref) => {
|
|
29
|
-
return /* @__PURE__ */ jsxRuntime.jsx(menu.Menu.Portal, { children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
30
|
-
menu.Menu.Positioner,
|
|
31
|
-
{
|
|
32
|
-
side,
|
|
33
|
-
align,
|
|
34
|
-
sideOffset,
|
|
35
|
-
alignOffset,
|
|
36
|
-
children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
37
|
-
menu.Menu.Popup,
|
|
38
|
-
{
|
|
39
|
-
ref,
|
|
40
|
-
className: clsx__default.default("ds-dropdown-menu__content", className),
|
|
41
|
-
...props
|
|
42
|
-
}
|
|
43
|
-
)
|
|
44
|
-
}
|
|
45
|
-
) });
|
|
46
|
-
}
|
|
47
|
-
);
|
|
48
|
-
DropdownMenuContent.displayName = "DropdownMenuContent";
|
|
49
|
-
var DropdownMenuItem = React__default.default.forwardRef(
|
|
50
|
-
({ className, ...props }, ref) => {
|
|
51
|
-
return /* @__PURE__ */ jsxRuntime.jsx(menu.Menu.Item, { ref, className: clsx__default.default("ds-dropdown-menu__item", className), ...props });
|
|
52
|
-
}
|
|
53
|
-
);
|
|
54
|
-
DropdownMenuItem.displayName = "DropdownMenuItem";
|
|
55
|
-
var DropdownMenuSeparator = React__default.default.forwardRef(({ className, ...props }, ref) => {
|
|
56
|
-
return /* @__PURE__ */ jsxRuntime.jsx("div", { ref, className: clsx__default.default("ds-dropdown-menu__separator", className), ...props });
|
|
57
|
-
});
|
|
58
|
-
DropdownMenuSeparator.displayName = "DropdownMenuSeparator";
|
|
59
|
-
var DropdownMenuLabel = React__default.default.forwardRef(({ className, ...props }, ref) => {
|
|
60
|
-
return /* @__PURE__ */ jsxRuntime.jsx("div", { ref, className: clsx__default.default("ds-dropdown-menu__label", className), ...props });
|
|
61
|
-
});
|
|
62
|
-
DropdownMenuLabel.displayName = "DropdownMenuLabel";
|
|
63
|
-
function Select({
|
|
64
|
-
value,
|
|
65
|
-
defaultValue,
|
|
66
|
-
onValueChange,
|
|
67
|
-
disabled,
|
|
68
|
-
required,
|
|
69
|
-
name,
|
|
70
|
-
items,
|
|
71
|
-
children
|
|
72
|
-
}) {
|
|
73
|
-
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
74
|
-
select.Select.Root,
|
|
75
|
-
{
|
|
76
|
-
value,
|
|
77
|
-
defaultValue,
|
|
78
|
-
onValueChange: onValueChange ? (val) => onValueChange(val) : void 0,
|
|
79
|
-
disabled,
|
|
80
|
-
required,
|
|
81
|
-
name,
|
|
82
|
-
items,
|
|
83
|
-
children
|
|
84
|
-
}
|
|
85
|
-
);
|
|
86
|
-
}
|
|
87
|
-
Select.displayName = "Select";
|
|
88
|
-
var SelectTrigger = React__default.default.forwardRef(
|
|
89
|
-
({ className, placeholder = "Select...", size = "md", ...props }, ref) => {
|
|
90
|
-
return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "ds-select__trigger-wrapper", children: /* @__PURE__ */ jsxRuntime.jsxs(
|
|
91
|
-
select.Select.Trigger,
|
|
92
|
-
{
|
|
93
|
-
ref,
|
|
94
|
-
className: clsx__default.default("ds-select__trigger", `ds-select__trigger--${size}`, className),
|
|
95
|
-
"aria-label": props["aria-label"] || (typeof placeholder === "string" ? placeholder : "Select"),
|
|
96
|
-
...props,
|
|
97
|
-
children: [
|
|
98
|
-
/* @__PURE__ */ jsxRuntime.jsx(select.Select.Value, { className: "ds-select__value", placeholder }),
|
|
99
|
-
/* @__PURE__ */ jsxRuntime.jsx(select.Select.Icon, { className: "ds-select__icon", "aria-hidden": true, children: /* @__PURE__ */ jsxRuntime.jsx(ChevronDownIcon, {}) })
|
|
100
|
-
]
|
|
101
|
-
}
|
|
102
|
-
) });
|
|
103
|
-
}
|
|
104
|
-
);
|
|
105
|
-
SelectTrigger.displayName = "SelectTrigger";
|
|
106
|
-
var SelectContent = React__default.default.forwardRef(
|
|
107
|
-
({ className, side = "bottom", sideOffset = 4, align = "start", children, ...props }, ref) => {
|
|
108
|
-
return /* @__PURE__ */ jsxRuntime.jsx(select.Select.Portal, { children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
109
|
-
select.Select.Positioner,
|
|
110
|
-
{
|
|
111
|
-
side,
|
|
112
|
-
sideOffset,
|
|
113
|
-
align,
|
|
114
|
-
alignItemWithTrigger: false,
|
|
115
|
-
children: /* @__PURE__ */ jsxRuntime.jsx(select.Select.Popup, { ref, className: clsx__default.default("ds-select__content", className), ...props, children: /* @__PURE__ */ jsxRuntime.jsx(select.Select.List, { className: "ds-select__list", children }) })
|
|
116
|
-
}
|
|
117
|
-
) });
|
|
118
|
-
}
|
|
119
|
-
);
|
|
120
|
-
SelectContent.displayName = "SelectContent";
|
|
121
|
-
var SelectItem = React__default.default.forwardRef(
|
|
122
|
-
({ className, value, children, disabled, ...props }, ref) => {
|
|
123
|
-
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
124
|
-
select.Select.Item,
|
|
125
|
-
{
|
|
126
|
-
ref,
|
|
127
|
-
value,
|
|
128
|
-
disabled,
|
|
129
|
-
className: clsx__default.default("ds-select__item", className),
|
|
130
|
-
...props,
|
|
131
|
-
children: [
|
|
132
|
-
/* @__PURE__ */ jsxRuntime.jsx(select.Select.ItemIndicator, { className: "ds-select__item-indicator", children: /* @__PURE__ */ jsxRuntime.jsx(CheckIcon, {}) }),
|
|
133
|
-
/* @__PURE__ */ jsxRuntime.jsx(select.Select.ItemText, { children })
|
|
134
|
-
]
|
|
135
|
-
}
|
|
136
|
-
);
|
|
137
|
-
}
|
|
138
|
-
);
|
|
139
|
-
SelectItem.displayName = "SelectItem";
|
|
140
|
-
var SelectGroup = React__default.default.forwardRef(
|
|
141
|
-
({ className, label, children, ...props }, ref) => {
|
|
142
|
-
return /* @__PURE__ */ jsxRuntime.jsxs(select.Select.Group, { ref, className: clsx__default.default("ds-select__group", className), ...props, children: [
|
|
143
|
-
label && /* @__PURE__ */ jsxRuntime.jsx(select.Select.GroupLabel, { className: "ds-select__group-label", children: label }),
|
|
144
|
-
children
|
|
145
|
-
] });
|
|
146
|
-
}
|
|
147
|
-
);
|
|
148
|
-
SelectGroup.displayName = "SelectGroup";
|
|
149
|
-
var SelectSeparator = React__default.default.forwardRef(({ className, ...props }, ref) => {
|
|
150
|
-
return /* @__PURE__ */ jsxRuntime.jsx("div", { ref, className: clsx__default.default("ds-select__separator", className), ...props });
|
|
151
|
-
});
|
|
152
|
-
SelectSeparator.displayName = "SelectSeparator";
|
|
153
|
-
function ChevronDownIcon() {
|
|
154
|
-
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
155
|
-
"svg",
|
|
156
|
-
{
|
|
157
|
-
xmlns: "http://www.w3.org/2000/svg",
|
|
158
|
-
width: "16",
|
|
159
|
-
height: "16",
|
|
160
|
-
viewBox: "0 0 24 24",
|
|
161
|
-
fill: "none",
|
|
162
|
-
stroke: "currentColor",
|
|
163
|
-
strokeWidth: "2",
|
|
164
|
-
strokeLinecap: "round",
|
|
165
|
-
strokeLinejoin: "round",
|
|
166
|
-
children: /* @__PURE__ */ jsxRuntime.jsx("path", { d: "m6 9 6 6 6-6" })
|
|
167
|
-
}
|
|
168
|
-
);
|
|
169
|
-
}
|
|
170
|
-
function CheckIcon() {
|
|
171
|
-
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
172
|
-
"svg",
|
|
173
|
-
{
|
|
174
|
-
xmlns: "http://www.w3.org/2000/svg",
|
|
175
|
-
width: "14",
|
|
176
|
-
height: "14",
|
|
177
|
-
viewBox: "0 0 24 24",
|
|
178
|
-
fill: "none",
|
|
179
|
-
stroke: "currentColor",
|
|
180
|
-
strokeWidth: "2",
|
|
181
|
-
strokeLinecap: "round",
|
|
182
|
-
strokeLinejoin: "round",
|
|
183
|
-
children: /* @__PURE__ */ jsxRuntime.jsx("polyline", { points: "20 6 9 17 4 12" })
|
|
184
|
-
}
|
|
185
|
-
);
|
|
186
|
-
}
|
|
187
|
-
|
|
188
|
-
exports.DropdownMenu = DropdownMenu;
|
|
189
|
-
exports.DropdownMenuContent = DropdownMenuContent;
|
|
190
|
-
exports.DropdownMenuItem = DropdownMenuItem;
|
|
191
|
-
exports.DropdownMenuLabel = DropdownMenuLabel;
|
|
192
|
-
exports.DropdownMenuSeparator = DropdownMenuSeparator;
|
|
193
|
-
exports.DropdownMenuTrigger = DropdownMenuTrigger;
|
|
194
|
-
exports.Select = Select;
|
|
195
|
-
exports.SelectContent = SelectContent;
|
|
196
|
-
exports.SelectGroup = SelectGroup;
|
|
197
|
-
exports.SelectItem = SelectItem;
|
|
198
|
-
exports.SelectSeparator = SelectSeparator;
|
|
199
|
-
exports.SelectTrigger = SelectTrigger;
|
|
200
|
-
//# sourceMappingURL=out.js.map
|
|
201
|
-
//# sourceMappingURL=chunk-3TGSIILM.cjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/components/DropdownMenu/DropdownMenu.tsx","../src/components/Select/Select.tsx"],"names":["React","clsx","jsx"],"mappings":"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","sourcesContent":["import React from 'react';\nimport { Menu as BaseMenu } from '@base-ui/react/menu';\nimport clsx from 'clsx';\nimport './DropdownMenu.css';\n\n/* ============================================================================\n DROPDOWN MENU ROOT\n ============================================================================ */\n\nexport const DropdownMenu = BaseMenu.Root;\n\n/* ============================================================================\n DROPDOWN MENU TRIGGER\n ============================================================================ */\n\nexport const DropdownMenuTrigger = React.forwardRef<\n HTMLButtonElement,\n React.ButtonHTMLAttributes<HTMLButtonElement> & { className?: string }\n>(({ className, ...props }, ref) => {\n return (\n <BaseMenu.Trigger\n ref={ref}\n className={clsx('ds-dropdown-menu__trigger', className)}\n {...props}\n />\n );\n});\n\nDropdownMenuTrigger.displayName = 'DropdownMenuTrigger';\n\n/* ============================================================================\n DROPDOWN MENU CONTENT\n ============================================================================ */\n\nexport interface DropdownMenuContentProps extends React.HTMLAttributes<HTMLDivElement> {\n side?: 'top' | 'right' | 'bottom' | 'left';\n align?: 'start' | 'center' | 'end';\n sideOffset?: number;\n alignOffset?: number;\n}\n\nexport const DropdownMenuContent = React.forwardRef<HTMLDivElement, DropdownMenuContentProps>(\n (\n { className, side = 'bottom', align = 'start', sideOffset = 4, alignOffset = 0, ...props },\n ref,\n ) => {\n return (\n <BaseMenu.Portal>\n <BaseMenu.Positioner\n side={side}\n align={align}\n sideOffset={sideOffset}\n alignOffset={alignOffset}\n >\n <BaseMenu.Popup\n ref={ref}\n className={clsx('ds-dropdown-menu__content', className)}\n {...props}\n />\n </BaseMenu.Positioner>\n </BaseMenu.Portal>\n );\n },\n);\n\nDropdownMenuContent.displayName = 'DropdownMenuContent';\n\n/* ============================================================================\n DROPDOWN MENU ITEM\n ============================================================================ */\n\nexport interface DropdownMenuItemProps extends React.HTMLAttributes<HTMLDivElement> {\n disabled?: boolean;\n}\n\nexport const DropdownMenuItem = React.forwardRef<HTMLDivElement, DropdownMenuItemProps>(\n ({ className, ...props }, ref) => {\n return (\n <BaseMenu.Item ref={ref} className={clsx('ds-dropdown-menu__item', className)} {...props} />\n );\n },\n);\n\nDropdownMenuItem.displayName = 'DropdownMenuItem';\n\n/* ============================================================================\n DROPDOWN MENU SEPARATOR\n ============================================================================ */\n\nexport const DropdownMenuSeparator = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement>\n>(({ className, ...props }, ref) => {\n return <div ref={ref} className={clsx('ds-dropdown-menu__separator', className)} {...props} />;\n});\n\nDropdownMenuSeparator.displayName = 'DropdownMenuSeparator';\n\n/* ============================================================================\n DROPDOWN MENU LABEL\n ============================================================================ */\n\nexport const DropdownMenuLabel = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement>\n>(({ className, ...props }, ref) => {\n return <div ref={ref} className={clsx('ds-dropdown-menu__label', className)} {...props} />;\n});\n\nDropdownMenuLabel.displayName = 'DropdownMenuLabel';\n","import React from 'react';\nimport { Select as BaseSelect } from '@base-ui/react/select';\nimport clsx from 'clsx';\nimport './Select.css';\n\n/* ============================================================================\n SELECT ROOT\n ============================================================================ */\n\nexport interface SelectProps {\n /** Current selected value */\n value?: string;\n /** Default value for uncontrolled mode */\n defaultValue?: string;\n /** Callback when value changes */\n onValueChange?: (value: string | null) => void;\n /** Whether the select is disabled */\n disabled?: boolean;\n /** Whether the select is required */\n required?: boolean;\n /** Name for form submission */\n name?: string;\n /**\n * Item label map for Value display resolution.\n * When provided, Select.Value renders the label instead of the raw value.\n * Accepts a record (e.g. `{ en: \"English\", fr: \"French\" }`) or an array\n * of `{ value, label }` objects.\n */\n items?: Record<string, React.ReactNode> | ReadonlyArray<{ label: React.ReactNode; value: string }>;\n /** Children (SelectTrigger, SelectContent, etc.) */\n children: React.ReactNode;\n}\n\nexport function Select({\n value,\n defaultValue,\n onValueChange,\n disabled,\n required,\n name,\n items,\n children,\n}: SelectProps) {\n return (\n <BaseSelect.Root\n value={value}\n defaultValue={defaultValue}\n onValueChange={onValueChange ? (val) => onValueChange(val) : undefined}\n disabled={disabled}\n required={required}\n name={name}\n items={items}\n >\n {children}\n </BaseSelect.Root>\n );\n}\n\nSelect.displayName = 'Select';\n\n/* ============================================================================\n SELECT TRIGGER\n ============================================================================ */\n\nexport interface SelectTriggerProps extends React.ButtonHTMLAttributes<HTMLButtonElement> {\n /** Placeholder text when no value selected */\n placeholder?: string;\n /** Size variant */\n size?: 'sm' | 'md' | 'lg';\n}\n\nexport const SelectTrigger = React.forwardRef<HTMLButtonElement, SelectTriggerProps>(\n ({ className, placeholder = 'Select...', size = 'md', ...props }, ref) => {\n return (\n <div className=\"ds-select__trigger-wrapper\">\n <BaseSelect.Trigger\n ref={ref}\n className={clsx('ds-select__trigger', `ds-select__trigger--${size}`, className)}\n aria-label={props['aria-label'] || (typeof placeholder === 'string' ? placeholder : 'Select')}\n {...props}\n >\n <BaseSelect.Value className=\"ds-select__value\" placeholder={placeholder} />\n <BaseSelect.Icon className=\"ds-select__icon\" aria-hidden>\n <ChevronDownIcon />\n </BaseSelect.Icon>\n </BaseSelect.Trigger>\n </div>\n );\n },\n);\n\nSelectTrigger.displayName = 'SelectTrigger';\n\n/* ============================================================================\n SELECT CONTENT\n ============================================================================ */\n\nexport interface SelectContentProps extends React.HTMLAttributes<HTMLDivElement> {\n /** Positioning side */\n side?: 'top' | 'bottom';\n /** Side offset in pixels */\n sideOffset?: number;\n /** Alignment */\n align?: 'start' | 'center' | 'end';\n}\n\nexport const SelectContent = React.forwardRef<HTMLDivElement, SelectContentProps>(\n ({ className, side = 'bottom', sideOffset = 4, align = 'start', children, ...props }, ref) => {\n return (\n <BaseSelect.Portal>\n <BaseSelect.Positioner\n side={side}\n sideOffset={sideOffset}\n align={align}\n alignItemWithTrigger={false}\n >\n <BaseSelect.Popup ref={ref} className={clsx('ds-select__content', className)} {...props}>\n <BaseSelect.List className=\"ds-select__list\">\n {children}\n </BaseSelect.List>\n </BaseSelect.Popup>\n </BaseSelect.Positioner>\n </BaseSelect.Portal>\n );\n },\n);\n\nSelectContent.displayName = 'SelectContent';\n\n/* ============================================================================\n SELECT ITEM\n ============================================================================ */\n\nexport interface SelectItemProps extends Omit<React.HTMLAttributes<HTMLDivElement>, 'children'> {\n /** Value for this option */\n value: string;\n /** Display text */\n children: React.ReactNode;\n /** Whether the item is disabled */\n disabled?: boolean;\n}\n\nexport const SelectItem = React.forwardRef<HTMLDivElement, SelectItemProps>(\n ({ className, value, children, disabled, ...props }, ref) => {\n return (\n <BaseSelect.Item\n ref={ref}\n value={value}\n disabled={disabled}\n className={clsx('ds-select__item', className)}\n {...props}\n >\n <BaseSelect.ItemIndicator className=\"ds-select__item-indicator\">\n <CheckIcon />\n </BaseSelect.ItemIndicator>\n <BaseSelect.ItemText>{children}</BaseSelect.ItemText>\n </BaseSelect.Item>\n );\n },\n);\n\nSelectItem.displayName = 'SelectItem';\n\n/* ============================================================================\n SELECT GROUP\n ============================================================================ */\n\nexport interface SelectGroupProps extends React.HTMLAttributes<HTMLDivElement> {\n /** Group label */\n label?: string;\n}\n\nexport const SelectGroup = React.forwardRef<HTMLDivElement, SelectGroupProps>(\n ({ className, label, children, ...props }, ref) => {\n return (\n <BaseSelect.Group ref={ref} className={clsx('ds-select__group', className)} {...props}>\n {label && (\n <BaseSelect.GroupLabel className=\"ds-select__group-label\">{label}</BaseSelect.GroupLabel>\n )}\n {children}\n </BaseSelect.Group>\n );\n },\n);\n\nSelectGroup.displayName = 'SelectGroup';\n\n/* ============================================================================\n SELECT SEPARATOR\n ============================================================================ */\n\nexport const SelectSeparator = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement>\n>(({ className, ...props }, ref) => {\n return <div ref={ref} className={clsx('ds-select__separator', className)} {...props} />;\n});\n\nSelectSeparator.displayName = 'SelectSeparator';\n\n/* ============================================================================\n ICONS\n ============================================================================ */\n\nfunction ChevronDownIcon() {\n return (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n >\n <path d=\"m6 9 6 6 6-6\" />\n </svg>\n );\n}\n\nfunction CheckIcon() {\n return (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"14\"\n height=\"14\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n >\n <polyline points=\"20 6 9 17 4 12\" />\n </svg>\n );\n}\n"]}
|