@farzadbagheri/fb-components 0.1.0 → 0.1.4
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/COMPONENTS.md +1101 -0
- package/EXAMPLES.md +1064 -0
- package/LICENSE +20 -20
- package/README.md +744 -131
- package/dist/ai.cjs +3 -3
- package/dist/ai.css.map +1 -1
- package/dist/ai.js +1 -1
- package/dist/backgrounds.cjs +7 -7
- package/dist/backgrounds.css.map +1 -1
- package/dist/backgrounds.js +1 -1
- package/dist/buttons.cjs +4 -4
- package/dist/buttons.css.map +1 -1
- package/dist/buttons.js +1 -1
- package/dist/{chunk-MKCSRMHF.cjs → chunk-4YAFXF3T.cjs} +2 -2
- package/dist/chunk-4YAFXF3T.cjs.map +1 -0
- package/dist/{chunk-H2AV67DY.cjs → chunk-7PUXKRNW.cjs} +7 -5
- package/dist/chunk-7PUXKRNW.cjs.map +1 -0
- package/dist/{chunk-CTD2GDO6.cjs → chunk-B5HDPUQK.cjs} +2 -2
- package/dist/chunk-B5HDPUQK.cjs.map +1 -0
- package/dist/{chunk-K5QRX5CZ.js → chunk-ENCZZRVK.js} +2 -2
- package/dist/chunk-ENCZZRVK.js.map +1 -0
- package/dist/{chunk-H6Y3EJPA.cjs → chunk-F4XFUSPM.cjs} +2 -2
- package/dist/chunk-F4XFUSPM.cjs.map +1 -0
- package/dist/{chunk-4FWJRWS5.cjs → chunk-HPWZ5OL2.cjs} +2 -2
- package/dist/chunk-HPWZ5OL2.cjs.map +1 -0
- package/dist/{chunk-JHOJY54P.js → chunk-HSY72AJ4.js} +2 -2
- package/dist/chunk-HSY72AJ4.js.map +1 -0
- package/dist/{chunk-R2F3FTBL.js → chunk-IZJHBS5M.js} +2 -2
- package/dist/chunk-IZJHBS5M.js.map +1 -0
- package/dist/{chunk-T7CC3CLH.js → chunk-J4ZYYB2O.js} +2 -2
- package/dist/chunk-J4ZYYB2O.js.map +1 -0
- package/dist/{chunk-C3ASXASL.cjs → chunk-MWSE4C6T.cjs} +2 -2
- package/dist/chunk-MWSE4C6T.cjs.map +1 -0
- package/dist/{chunk-WDUETPNG.js → chunk-P77GGWU6.js} +7 -5
- package/dist/chunk-P77GGWU6.js.map +1 -0
- package/dist/{chunk-ROKPXWY2.cjs → chunk-QTX5BFS6.cjs} +2 -2
- package/dist/chunk-QTX5BFS6.cjs.map +1 -0
- package/dist/{chunk-YQSTEIU5.js → chunk-RFI4526D.js} +2 -2
- package/dist/chunk-RFI4526D.js.map +1 -0
- package/dist/{chunk-BSEOOGOV.cjs → chunk-SS4GAAED.cjs} +2 -2
- package/dist/chunk-SS4GAAED.cjs.map +1 -0
- package/dist/{chunk-UWQ5QNE3.cjs → chunk-TG7XM34D.cjs} +2 -2
- package/dist/chunk-TG7XM34D.cjs.map +1 -0
- package/dist/{chunk-EIE6FLCL.js → chunk-VODRAWMB.js} +2 -2
- package/dist/chunk-VODRAWMB.js.map +1 -0
- package/dist/{chunk-RUSFF3MZ.js → chunk-XJGKXWK3.js} +2 -2
- package/dist/chunk-XJGKXWK3.js.map +1 -0
- package/dist/{chunk-JWV3IITG.js → chunk-YPBGV2B5.js} +2 -2
- package/dist/chunk-YPBGV2B5.js.map +1 -0
- package/dist/data.cjs +4 -4
- package/dist/data.css.map +1 -1
- package/dist/data.d.cts +2 -1
- package/dist/data.d.ts +2 -1
- package/dist/data.js +1 -1
- package/dist/heroes.cjs +2 -2
- package/dist/heroes.css.map +1 -1
- package/dist/heroes.js +1 -1
- package/dist/index.cjs +31 -31
- package/dist/index.css.map +1 -1
- package/dist/index.js +9 -9
- package/dist/landing.cjs +2 -2
- package/dist/landing.css.map +1 -1
- package/dist/landing.js +1 -1
- package/dist/motion.cjs +3 -3
- package/dist/motion.css.map +1 -1
- package/dist/motion.js +1 -1
- package/dist/text.cjs +3 -3
- package/dist/text.css.map +1 -1
- package/dist/text.js +1 -1
- package/dist/ui.cjs +3 -3
- package/dist/ui.css.map +1 -1
- package/dist/ui.js +1 -1
- package/package.json +167 -134
- package/dist/chunk-4FWJRWS5.cjs.map +0 -1
- package/dist/chunk-BSEOOGOV.cjs.map +0 -1
- package/dist/chunk-C3ASXASL.cjs.map +0 -1
- package/dist/chunk-CTD2GDO6.cjs.map +0 -1
- package/dist/chunk-EIE6FLCL.js.map +0 -1
- package/dist/chunk-H2AV67DY.cjs.map +0 -1
- package/dist/chunk-H6Y3EJPA.cjs.map +0 -1
- package/dist/chunk-JHOJY54P.js.map +0 -1
- package/dist/chunk-JWV3IITG.js.map +0 -1
- package/dist/chunk-K5QRX5CZ.js.map +0 -1
- package/dist/chunk-MKCSRMHF.cjs.map +0 -1
- package/dist/chunk-R2F3FTBL.js.map +0 -1
- package/dist/chunk-ROKPXWY2.cjs.map +0 -1
- package/dist/chunk-RUSFF3MZ.js.map +0 -1
- package/dist/chunk-T7CC3CLH.js.map +0 -1
- package/dist/chunk-UWQ5QNE3.cjs.map +0 -1
- package/dist/chunk-WDUETPNG.js.map +0 -1
- package/dist/chunk-YQSTEIU5.js.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/ui/SpotlightCard.tsx","../src/ui/GlassCard.tsx"],"names":["jsxs","Fragment","jsx","useState"],"mappings":"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","file":"chunk-MWSE4C6T.cjs","sourcesContent":["import {\n useState,\n} from \"react\";\n\nimport \"./SpotlightCard.css\";\n\nexport interface SpotlightCardProps {\n children?:\n React.ReactNode;\n\n background?:\n string;\n\n spotlightColor?:\n string;\n\n radius?:\n number;\n\n glow?:\n number;\n\n borderOpacity?:\n number;\n\n className?:\n string;\n}\n\nexport function SpotlightCard({\n children = (\n <>\n <span>\n FB\n </span>\n\n <strong>\n Spotlight\n </strong>\n\n <p>\n Move your pointer\n across the card.\n </p>\n </>\n ),\n\n background =\n \"#111116\",\n\n spotlightColor =\n \"#9b7cff\",\n\n radius =\n 14,\n\n glow =\n 35,\n\n borderOpacity =\n 0.12,\n\n className =\n \"\",\n}: SpotlightCardProps) {\n const [\n point,\n setPoint,\n ] =\n useState({\n x: 50,\n y: 30,\n });\n\n function handleMove(\n event:\n React.MouseEvent<HTMLDivElement>\n ) {\n const rect =\n event.currentTarget.getBoundingClientRect();\n\n setPoint({\n x:\n ((event.clientX -\n rect.left) /\n rect.width) *\n 100,\n\n y:\n ((event.clientY -\n rect.top) /\n rect.height) *\n 100,\n });\n }\n\n return (\n <div\n className={`fb-spotlight-card ${className}`}\n onMouseMove={\n handleMove\n }\n style={{\n borderRadius:\n radius,\n\n borderColor:\n `rgba(\n 255,\n 255,\n 255,\n ${borderOpacity}\n )`,\n\n background: `\n radial-gradient(\n circle at\n ${point.x}%\n ${point.y}%,\n ${spotlightColor}${hexAlpha(\n glow /\n 100\n )},\n transparent 38%\n ),\n ${background}\n `,\n }}\n >\n {children}\n </div>\n );\n}\n\nfunction hexAlpha(\n opacity: number\n) {\n return Math.round(\n Math.min(\n 1,\n Math.max(\n 0,\n opacity\n )\n ) *\n 255\n )\n .toString(16)\n .padStart(\n 2,\n \"0\"\n );\n}","import type {\n HTMLAttributes,\n ReactNode,\n} from \"react\";\n\nimport \"./GlassCard.css\";\n\nexport interface GlassCardProps\n extends HTMLAttributes<HTMLDivElement> {\n children?: ReactNode;\n\n tint?: string;\n\n opacity?: number;\n\n blur?: number;\n\n radius?: number;\n\n borderOpacity?: number;\n\n glowColor?: string;\n\n glow?: number;\n\n className?: string;\n}\n\nfunction hexToRgb(\n value: string\n) {\n const clean =\n value\n .replace(\n \"#\",\n \"\"\n )\n .trim();\n\n const normalized =\n clean.length ===\n 3\n ? clean\n .split(\"\")\n .map(\n (\n character\n ) =>\n character +\n character\n )\n .join(\"\")\n : clean;\n\n if (\n normalized.length !==\n 6\n ) {\n return {\n r: 143,\n g: 115,\n b: 255,\n };\n }\n\n return {\n r:\n Number.parseInt(\n normalized.slice(\n 0,\n 2\n ),\n 16\n ),\n\n g:\n Number.parseInt(\n normalized.slice(\n 2,\n 4\n ),\n 16\n ),\n\n b:\n Number.parseInt(\n normalized.slice(\n 4,\n 6\n ),\n 16\n ),\n };\n}\n\nexport function GlassCard({\n children = (\n <>\n <span className=\"fb-glass-card__eyebrow\">\n 01 / FEATURE\n </span>\n\n <div className=\"fb-glass-card__content\">\n <strong>\n Built for\n <br />\n motion.\n </strong>\n\n <p>\n Premium interaction\n without visual noise.\n </p>\n </div>\n </>\n ),\n\n tint = \"#8f73ff\",\n\n opacity = 0.08,\n\n blur = 18,\n\n radius = 22,\n\n borderOpacity = 0.16,\n\n glowColor = \"#8f73ff\",\n\n glow = 34,\n\n className = \"\",\n\n style,\n\n ...props\n}: GlassCardProps) {\n const tintRgb =\n hexToRgb(\n tint\n );\n\n const glowRgb =\n hexToRgb(\n glowColor\n );\n\n return (\n <div\n {...props}\n className={`fb-glass-card ${className}`}\n style={{\n ...style,\n\n borderRadius:\n radius,\n\n borderColor:\n `rgba(\n 255,\n 255,\n 255,\n ${borderOpacity}\n )`,\n\n background:\n `linear-gradient(\n 145deg,\n rgba(\n ${tintRgb.r},\n ${tintRgb.g},\n ${tintRgb.b},\n ${opacity}\n ),\n rgba(\n 255,\n 255,\n 255,\n ${opacity * 0.35}\n )\n )`,\n\n backdropFilter:\n `blur(${blur}px)`,\n\n WebkitBackdropFilter:\n `blur(${blur}px)`,\n\n boxShadow:\n `0 24px 80px rgba(\n ${glowRgb.r},\n ${glowRgb.g},\n ${glowRgb.b},\n ${glow / 400}\n )`,\n }}\n >\n <span\n className=\"fb-glass-card__glow\"\n aria-hidden=\"true\"\n style={{\n background:\n glowColor,\n\n filter:\n `blur(${glow}px)`,\n }}\n />\n\n <div className=\"fb-glass-card__inner\">\n {children}\n </div>\n </div>\n );\n}"]}
|
|
@@ -99,6 +99,7 @@ function RadialProgress({
|
|
|
99
99
|
trackColor = "#24242c",
|
|
100
100
|
animated = true,
|
|
101
101
|
label = "COMPLETE",
|
|
102
|
+
ariaLabel = "Progress",
|
|
102
103
|
className = "",
|
|
103
104
|
style,
|
|
104
105
|
...props
|
|
@@ -125,15 +126,18 @@ function RadialProgress({
|
|
|
125
126
|
["--fb-radial-color"]: color
|
|
126
127
|
},
|
|
127
128
|
role: "progressbar",
|
|
129
|
+
"aria-label": ariaLabel,
|
|
128
130
|
"aria-valuemin": 0,
|
|
129
131
|
"aria-valuemax": 100,
|
|
130
132
|
"aria-valuenow": clamped,
|
|
133
|
+
"aria-valuetext": `${Math.round(clamped)}%`,
|
|
131
134
|
children: [
|
|
132
135
|
/* @__PURE__ */ jsxs(
|
|
133
136
|
"svg",
|
|
134
137
|
{
|
|
135
138
|
viewBox: "0 0 100 100",
|
|
136
139
|
"aria-hidden": "true",
|
|
140
|
+
focusable: "false",
|
|
137
141
|
children: [
|
|
138
142
|
/* @__PURE__ */ jsx(
|
|
139
143
|
"circle",
|
|
@@ -166,9 +170,7 @@ function RadialProgress({
|
|
|
166
170
|
),
|
|
167
171
|
/* @__PURE__ */ jsxs("div", { className: "fb-radial-progress__content", children: [
|
|
168
172
|
/* @__PURE__ */ jsxs("strong", { children: [
|
|
169
|
-
Math.round(
|
|
170
|
-
clamped
|
|
171
|
-
),
|
|
173
|
+
Math.round(clamped),
|
|
172
174
|
/* @__PURE__ */ jsx("small", { children: "%" })
|
|
173
175
|
] }),
|
|
174
176
|
/* @__PURE__ */ jsx("span", { children: label })
|
|
@@ -252,5 +254,5 @@ function MetricGrid({
|
|
|
252
254
|
}
|
|
253
255
|
|
|
254
256
|
export { AnimatedCounter, MetricGrid, RadialProgress };
|
|
255
|
-
//# sourceMappingURL=chunk-
|
|
256
|
-
//# sourceMappingURL=chunk-
|
|
257
|
+
//# sourceMappingURL=chunk-P77GGWU6.js.map
|
|
258
|
+
//# sourceMappingURL=chunk-P77GGWU6.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/data/AnimatedCounter.tsx","../src/data/RadialProgress.tsx","../src/data/MetricGrid.tsx"],"names":["jsxs","jsx"],"mappings":"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","file":"chunk-P77GGWU6.js","sourcesContent":["import {\n useEffect,\n useRef,\n useState,\n} from \"react\";\n\nimport type {\n HTMLAttributes,\n} from \"react\";\n\nimport \"./AnimatedCounter.css\";\n\nexport interface AnimatedCounterProps\n extends HTMLAttributes<HTMLDivElement> {\n value?: number;\n duration?: number;\n\n color?: string;\n accent?: string;\n\n fontSize?: number;\n\n prefix?: string;\n suffix?: string;\n\n label?: string;\n delta?: string;\n\n decimals?: number;\n\n className?: string;\n}\n\nexport function AnimatedCounter({\n value = 128,\n duration = 1.5,\n\n color = \"#ffffff\",\n accent = \"#9b7cff\",\n\n fontSize = 72,\n\n prefix = \"\",\n suffix = \"K\",\n\n label =\n \"ACTIVE USERS\",\n\n delta =\n \"+18.4%\",\n\n decimals = 0,\n\n className = \"\",\n style,\n\n ...props\n}: AnimatedCounterProps) {\n const [\n displayed,\n setDisplayed,\n ] =\n useState(0);\n\n const frameRef =\n useRef<number | null>(\n null\n );\n\n useEffect(() => {\n const start =\n performance.now();\n\n const total =\n Math.max(\n duration,\n 0.01\n ) *\n 1000;\n\n function animate(\n now: number\n ) {\n const progress =\n Math.min(\n (\n now -\n start\n ) /\n total,\n 1\n );\n\n const eased =\n 1 -\n Math.pow(\n 1 -\n progress,\n 3\n );\n\n setDisplayed(\n value *\n eased\n );\n\n if (\n progress <\n 1\n ) {\n frameRef.current =\n requestAnimationFrame(\n animate\n );\n }\n }\n\n frameRef.current =\n requestAnimationFrame(\n animate\n );\n\n return () => {\n if (\n frameRef.current !==\n null\n ) {\n cancelAnimationFrame(\n frameRef.current\n );\n }\n };\n }, [\n value,\n duration,\n ]);\n\n return (\n <div\n {...props}\n className={`fb-animated-counter ${className}`}\n style={{\n ...style,\n\n color,\n\n [\"--fb-counter-accent\" as string]:\n accent,\n\n [\"--fb-counter-size\" as string]:\n `${fontSize}px`,\n }}\n >\n <span className=\"fb-animated-counter__label\">\n {label}\n </span>\n\n <strong>\n {prefix}\n\n {displayed.toLocaleString(\n undefined,\n {\n minimumFractionDigits:\n decimals,\n\n maximumFractionDigits:\n decimals,\n }\n )}\n\n {suffix}\n </strong>\n\n {delta && (\n <small>\n {delta}\n </small>\n )}\n </div>\n );\n}","import type {\n HTMLAttributes,\n} from \"react\";\n\nimport \"./RadialProgress.css\";\n\nexport interface RadialProgressProps\n extends HTMLAttributes<HTMLDivElement> {\n value?: number;\n\n size?: number;\n strokeWidth?: number;\n\n color?: string;\n trackColor?: string;\n\n animated?: boolean;\n\n label?: string;\n\n ariaLabel?: string;\n\n className?: string;\n}\n\nexport function RadialProgress({\n value = 72,\n\n size = 180,\n strokeWidth = 10,\n\n color = \"#9b7cff\",\n trackColor = \"#24242c\",\n\n animated = true,\n\n label = \"COMPLETE\",\n\n ariaLabel = \"Progress\",\n\n className = \"\",\n style,\n\n ...props\n}: RadialProgressProps) {\n const clamped =\n Math.min(\n 100,\n Math.max(\n 0,\n value\n )\n );\n\n const radius =\n 50 -\n strokeWidth /\n 2;\n\n const circumference =\n 2 *\n Math.PI *\n radius;\n\n const offset =\n circumference *\n (\n 1 -\n clamped /\n 100\n );\n\n return (\n <div\n {...props}\n className={`fb-radial-progress ${className}`}\n style={{\n ...style,\n\n width:\n size,\n\n height:\n size,\n\n [\"--fb-radial-color\" as string]:\n color,\n }}\n role=\"progressbar\"\n aria-label={ariaLabel}\n aria-valuemin={0}\n aria-valuemax={100}\n aria-valuenow={clamped}\n aria-valuetext={`${Math.round(clamped)}%`}\n >\n <svg\n viewBox=\"0 0 100 100\"\n aria-hidden=\"true\"\n focusable=\"false\"\n >\n <circle\n cx=\"50\"\n cy=\"50\"\n r={radius}\n fill=\"none\"\n stroke={trackColor}\n strokeWidth={strokeWidth}\n />\n\n <circle\n cx=\"50\"\n cy=\"50\"\n r={radius}\n fill=\"none\"\n stroke={color}\n strokeWidth={strokeWidth}\n strokeLinecap=\"round\"\n strokeDasharray={circumference}\n strokeDashoffset={offset}\n className={\n animated\n ? \"fb-radial-progress__value fb-radial-progress__value--animated\"\n : \"fb-radial-progress__value\"\n }\n />\n </svg>\n\n <div className=\"fb-radial-progress__content\">\n <strong>\n {Math.round(clamped)}\n <small>\n %\n </small>\n </strong>\n\n <span>\n {label}\n </span>\n </div>\n </div>\n );\n}","import type {\n HTMLAttributes,\n} from \"react\";\n\nimport \"./MetricGrid.css\";\n\nexport interface MetricItem {\n label: string;\n value: string;\n delta?: string;\n positive?: boolean;\n}\n\nexport interface MetricGridProps\n extends HTMLAttributes<HTMLDivElement> {\n accent?: string;\n background?: string;\n\n columns?: number;\n radius?: number;\n\n items?: MetricItem[];\n\n className?: string;\n}\n\nconst defaultItems:\n MetricItem[] = [\n {\n label:\n \"Revenue\",\n\n value:\n \"$84.2K\",\n\n delta:\n \"+12.6%\",\n\n positive:\n true,\n },\n\n {\n label:\n \"Users\",\n\n value:\n \"18.4K\",\n\n delta:\n \"+8.1%\",\n\n positive:\n true,\n },\n\n {\n label:\n \"Conversion\",\n\n value:\n \"7.8%\",\n\n delta:\n \"+2.4%\",\n\n positive:\n true,\n },\n\n {\n label:\n \"Latency\",\n\n value:\n \"94ms\",\n\n delta:\n \"-11%\",\n\n positive:\n true,\n },\n ];\n\nexport function MetricGrid({\n accent = \"#9b7cff\",\n background = \"#111116\",\n\n columns = 3,\n radius = 18,\n\n items =\n defaultItems,\n\n className = \"\",\n style,\n\n ...props\n}: MetricGridProps) {\n return (\n <div\n {...props}\n className={`fb-metric-grid ${className}`}\n style={{\n ...style,\n\n gridTemplateColumns:\n `repeat(${Math.max(\n 1,\n columns\n )}, minmax(0, 1fr))`,\n\n [\"--fb-metric-accent\" as string]:\n accent,\n\n [\"--fb-metric-background\" as string]:\n background,\n\n [\"--fb-metric-radius\" as string]:\n `${radius}px`,\n }}\n >\n {items.map(\n (\n item\n ) => (\n <article\n key={\n item.label\n }\n >\n <span>\n {\n item.label\n }\n </span>\n\n <strong>\n {\n item.value\n }\n </strong>\n\n {item.delta && (\n <small\n className={\n item.positive ===\n false\n ? \"is-negative\"\n : \"\"\n }\n >\n {\n item.delta\n }\n </small>\n )}\n </article>\n )\n )}\n </div>\n );\n}"]}
|
|
@@ -194,5 +194,5 @@ function GlassButton({
|
|
|
194
194
|
exports.GlassButton = GlassButton;
|
|
195
195
|
exports.GlowButton = GlowButton;
|
|
196
196
|
exports.MagneticButton = MagneticButton;
|
|
197
|
-
//# sourceMappingURL=chunk-
|
|
198
|
-
//# sourceMappingURL=chunk-
|
|
197
|
+
//# sourceMappingURL=chunk-QTX5BFS6.cjs.map
|
|
198
|
+
//# sourceMappingURL=chunk-QTX5BFS6.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/buttons/MagneticButton.tsx","../src/buttons/GlowButton.tsx","../src/buttons/GlassButton.tsx"],"names":["useState","jsx","jsxs"],"mappings":"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","file":"chunk-QTX5BFS6.cjs","sourcesContent":["import {\n useState,\n} from \"react\";\n\nimport \"./MagneticButton.css\";\n\nexport interface MagneticButtonProps {\n children?: React.ReactNode;\n\n background?: string;\n textColor?: string;\n fontSize?: number;\n radius?: number;\n paddingX?: number;\n paddingY?: number;\n strength?: number;\n\n className?: string;\n}\n\nexport function MagneticButton({\n children = \"Explore\",\n\n background =\n \"#ffffff\",\n\n textColor =\n \"#000000\",\n\n fontSize =\n 14,\n\n radius =\n 999,\n\n paddingX =\n 22,\n\n paddingY =\n 13,\n\n strength =\n 0.3,\n\n className =\n \"\",\n}: MagneticButtonProps) {\n const [\n offset,\n setOffset,\n ] =\n useState({\n x: 0,\n y: 0,\n });\n\n function handleMove(\n event:\n React.MouseEvent<HTMLButtonElement>\n ) {\n const rect =\n event.currentTarget.getBoundingClientRect();\n\n const centerX =\n rect.width /\n 2;\n\n const centerY =\n rect.height /\n 2;\n\n const x =\n event.clientX -\n rect.left -\n centerX;\n\n const y =\n event.clientY -\n rect.top -\n centerY;\n\n setOffset({\n x:\n x *\n strength,\n\n y:\n y *\n strength,\n });\n }\n\n return (\n <button\n type=\"button\"\n className={`fb-magnetic-button ${className}`}\n onMouseMove={\n handleMove\n }\n onMouseLeave={() =>\n setOffset({\n x: 0,\n y: 0,\n })\n }\n style={{\n background,\n color:\n textColor,\n\n fontSize,\n\n borderRadius:\n radius,\n\n padding:\n `${paddingY}px ${paddingX}px`,\n\n transform:\n `translate3d(\n ${offset.x}px,\n ${offset.y}px,\n 0\n )`,\n }}\n >\n {children}\n </button>\n );\n}","import type {\n ButtonHTMLAttributes,\n ReactNode,\n} from \"react\";\n\nimport \"./GlowButton.css\";\n\nexport interface GlowButtonProps\n extends Omit<\n ButtonHTMLAttributes<HTMLButtonElement>,\n \"color\"\n > {\n children?: ReactNode;\n\n background?: string;\n\n textColor?: string;\n\n glowColor?: string;\n\n glow?: number;\n\n radius?: number;\n\n fontSize?: number;\n\n paddingX?: number;\n}\n\nexport function GlowButton({\n children = \"Get started\",\n\n background = \"#7b5cff\",\n\n textColor = \"#ffffff\",\n\n glowColor = \"#9b7cff\",\n\n glow = 32,\n\n radius = 14,\n\n fontSize = 14,\n\n paddingX = 24,\n\n className = \"\",\n\n style,\n\n ...props\n}: GlowButtonProps) {\n return (\n <button\n {...props}\n type={\n props.type ??\n \"button\"\n }\n className={`fb-glow-button ${className}`}\n style={{\n ...style,\n\n background,\n\n color:\n textColor,\n\n borderRadius:\n radius,\n\n fontSize,\n\n padding:\n `13px ${paddingX}px`,\n\n boxShadow:\n `0 0 ${glow}px ${glowColor}66`,\n\n [\"--fb-glow-button-color\" as string]:\n glowColor,\n }}\n >\n <span className=\"fb-glow-button__content\">\n {\n children\n }\n </span>\n\n <span\n className=\"fb-glow-button__glow\"\n aria-hidden=\"true\"\n />\n </button>\n );\n}","import type {\n ButtonHTMLAttributes,\n ReactNode,\n} from \"react\";\n\nimport \"./GlassButton.css\";\n\nexport interface GlassButtonProps\n extends Omit<\n ButtonHTMLAttributes<HTMLButtonElement>,\n \"color\"\n > {\n children?: ReactNode;\n\n textColor?: string;\n\n tint?: string;\n\n opacity?: number;\n\n blur?: number;\n\n radius?: number;\n\n borderOpacity?: number;\n}\n\nfunction hexToRgb(\n hex: string\n) {\n const clean =\n hex.replace(\n \"#\",\n \"\"\n );\n\n if (\n clean.length !==\n 6\n ) {\n return {\n r: 255,\n g: 255,\n b: 255,\n };\n }\n\n return {\n r:\n parseInt(\n clean.slice(\n 0,\n 2\n ),\n 16\n ),\n\n g:\n parseInt(\n clean.slice(\n 2,\n 4\n ),\n 16\n ),\n\n b:\n parseInt(\n clean.slice(\n 4,\n 6\n ),\n 16\n ),\n };\n}\n\nexport function GlassButton({\n children = \"Explore\",\n\n textColor = \"#ffffff\",\n\n tint = \"#ffffff\",\n\n opacity = 0.08,\n\n blur = 16,\n\n radius = 16,\n\n borderOpacity = 0.18,\n\n className = \"\",\n\n style,\n\n ...props\n}: GlassButtonProps) {\n const rgb =\n hexToRgb(\n tint\n );\n\n return (\n <button\n {...props}\n type={\n props.type ??\n \"button\"\n }\n className={`fb-glass-button ${className}`}\n style={{\n ...style,\n\n color:\n textColor,\n\n background:\n `rgba(\n ${rgb.r},\n ${rgb.g},\n ${rgb.b},\n ${opacity}\n )`,\n\n backdropFilter:\n `blur(${blur}px)`,\n\n WebkitBackdropFilter:\n `blur(${blur}px)`,\n\n borderRadius:\n radius,\n\n borderColor:\n `rgba(\n 255,\n 255,\n 255,\n ${borderOpacity}\n )`,\n }}\n >\n {\n children\n }\n\n <span\n className=\"fb-glass-button__shine\"\n aria-hidden=\"true\"\n />\n </button>\n );\n}"]}
|
|
@@ -300,5 +300,5 @@ function NoiseField({
|
|
|
300
300
|
}
|
|
301
301
|
|
|
302
302
|
export { AuroraGrid, DotMatrix, GradientMesh, NoiseField, PredictiveArc, SignalParticles };
|
|
303
|
-
//# sourceMappingURL=chunk-
|
|
304
|
-
//# sourceMappingURL=chunk-
|
|
303
|
+
//# sourceMappingURL=chunk-RFI4526D.js.map
|
|
304
|
+
//# sourceMappingURL=chunk-RFI4526D.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/backgrounds/PredictiveArc.tsx","../src/backgrounds/SignalParticles.tsx","../src/backgrounds/DotMatrix.tsx","../src/backgrounds/GradientMesh.tsx","../src/backgrounds/AuroraGrid.tsx","../src/backgrounds/NoiseField.tsx"],"names":["jsx","jsxs"],"mappings":"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","file":"chunk-RFI4526D.js","sourcesContent":["import {\n useEffect,\n useRef,\n} from \"react\";\nimport \"./PredictiveArc.css\";\n\nexport interface PredictiveArcProps {\n color?: string;\n background?: string;\n size?: number;\n thickness?: number;\n glow?: number;\n animated?: boolean;\n className?: string;\n}\n\nexport function PredictiveArc({\n color = \"#9b7cff\",\n background = \"#0d0d11\",\n size = 70,\n thickness = 3,\n glow = 16,\n animated = true,\n className = \"\",\n}: PredictiveArcProps) {\n const containerRef =\n useRef<HTMLDivElement>(\n null\n );\n\n useEffect(() => {\n const element =\n containerRef.current;\n\n if (!element) {\n return;\n }\n\n element.style.setProperty(\n \"--predictive-arc-color\",\n color\n );\n\n element.style.setProperty(\n \"--predictive-arc-background\",\n background\n );\n\n element.style.setProperty(\n \"--predictive-arc-size\",\n `${size}%`\n );\n\n element.style.setProperty(\n \"--predictive-arc-thickness\",\n `${thickness}px`\n );\n\n element.style.setProperty(\n \"--predictive-arc-glow\",\n `${glow}px`\n );\n }, [\n color,\n background,\n size,\n thickness,\n glow,\n ]);\n\n return (\n <div\n ref={containerRef}\n className={`fb-predictive-arc ${\n animated\n ? \"fb-predictive-arc--animated\"\n : \"\"\n } ${className}`}\n >\n <div className=\"fb-predictive-arc__line fb-predictive-arc__line--outer\" />\n\n <div className=\"fb-predictive-arc__line fb-predictive-arc__line--inner\" />\n\n <span className=\"fb-predictive-arc__point fb-predictive-arc__point--left\" />\n\n <span className=\"fb-predictive-arc__point fb-predictive-arc__point--right\" />\n </div>\n );\n}","import {\n useMemo,\n} from \"react\";\n\nimport \"./SignalParticles.css\";\n\nexport interface SignalParticlesProps {\n color?: string;\n background?: string;\n density?: number;\n size?: number;\n speed?: number;\n animated?: boolean;\n className?: string;\n}\n\nexport function SignalParticles({\n color = \"#b99cff\",\n background = \"#0d0d11\",\n density = 30,\n size = 3,\n speed = 1,\n animated = true,\n className = \"\",\n}: SignalParticlesProps) {\n const particles =\n useMemo(\n () =>\n Array.from({\n length:\n Math.max(\n 1,\n density\n ),\n }).map(\n (\n _,\n index\n ) => ({\n id:\n index,\n\n left:\n (index *\n 37) %\n 100,\n\n top:\n (index *\n 53) %\n 100,\n\n delay:\n (index %\n 10) *\n 0.12,\n })\n ),\n [\n density,\n ]\n );\n\n return (\n <div\n className={`fb-signal-particles ${className}`}\n style={{\n background,\n }}\n >\n {particles.map(\n (\n particle\n ) => (\n <span\n key={\n particle.id\n }\n className={\n animated\n ? \"fb-signal-particles__particle fb-signal-particles__particle--animated\"\n : \"fb-signal-particles__particle\"\n }\n style={{\n left:\n `${particle.left}%`,\n\n top:\n `${particle.top}%`,\n\n width:\n size,\n\n height:\n size,\n\n background:\n color,\n\n animationDuration:\n `${3 / speed}s`,\n\n animationDelay:\n `${particle.delay}s`,\n\n boxShadow:\n `0 0 ${size * 4}px ${color}`,\n }}\n />\n )\n )}\n </div>\n );\n}","import \"./DotMatrix.css\";\n\nexport interface DotMatrixProps {\n color?: string;\n background?: string;\n dotSize?: number;\n gap?: number;\n opacity?: number;\n fade?: boolean;\n className?: string;\n}\n\nexport function DotMatrix({\n color = \"#9b7cff\",\n background = \"#0d0d11\",\n dotSize = 2,\n gap = 20,\n opacity = 0.8,\n fade = true,\n className = \"\",\n}: DotMatrixProps) {\n return (\n <div\n className={`fb-dot-matrix ${\n fade\n ? \"fb-dot-matrix--fade\"\n : \"\"\n } ${className}`}\n style={{\n backgroundColor:\n background,\n\n opacity,\n\n backgroundImage:\n `radial-gradient(\n circle,\n ${color} ${dotSize}px,\n transparent ${\n dotSize +\n 0.8\n }px\n )`,\n\n backgroundSize:\n `${gap}px ${gap}px`,\n }}\n />\n );\n}","import \"./GradientMesh.css\";\n\nexport interface GradientMeshProps {\n primary?: string;\n secondary?: string;\n accent?: string;\n background?: string;\n blur?: number;\n speed?: number;\n animated?: boolean;\n className?: string;\n}\n\nexport function GradientMesh({\n primary = \"#654cff\",\n secondary = \"#3c6dff\",\n accent = \"#a44cff\",\n background = \"#0d0d11\",\n blur = 35,\n speed = 8,\n animated = true,\n className = \"\",\n}: GradientMeshProps) {\n return (\n <div\n className={`fb-gradient-mesh ${className}`}\n style={{\n background,\n }}\n >\n <div\n className={`fb-gradient-mesh__layer ${\n animated\n ? \"fb-gradient-mesh__layer--animated\"\n : \"\"\n }`}\n style={{\n background: `\n radial-gradient(\n circle at 30% 30%,\n ${primary},\n transparent 35%\n ),\n radial-gradient(\n circle at 65% 60%,\n ${secondary},\n transparent 32%\n ),\n radial-gradient(\n circle at 50% 50%,\n ${accent},\n transparent 40%\n )\n `,\n\n filter:\n `blur(${blur}px)`,\n\n animationDuration:\n `${speed}s`,\n }}\n />\n </div>\n );\n}","import \"./AuroraGrid.css\";\n\nexport interface AuroraGridProps {\n gridColor?: string;\n auroraColor?: string;\n background?: string;\n gridSize?: number;\n glow?: number;\n speed?: number;\n animated?: boolean;\n className?: string;\n}\n\nexport function AuroraGrid({\n gridColor = \"#765cff\",\n auroraColor = \"#7c5cff\",\n background = \"#09090d\",\n gridSize = 34,\n glow = 55,\n speed = 8,\n animated = true,\n className = \"\",\n}: AuroraGridProps) {\n return (\n <div\n className={`fb-aurora-grid ${className}`}\n style={{\n background,\n }}\n >\n <div\n className={`fb-aurora-grid__grid ${\n animated\n ? \"fb-aurora-grid__grid--animated\"\n : \"\"\n }`}\n style={{\n backgroundImage: `\n linear-gradient(\n ${gridColor}33 1px,\n transparent 1px\n ),\n linear-gradient(\n 90deg,\n ${gridColor}33 1px,\n transparent 1px\n )\n `,\n\n backgroundSize:\n `${gridSize}px ${gridSize}px`,\n\n animationDuration:\n `${speed}s`,\n }}\n />\n\n <div\n className={`fb-aurora-grid__glow ${\n animated\n ? \"fb-aurora-grid__glow--animated\"\n : \"\"\n }`}\n style={{\n background:\n auroraColor,\n\n filter:\n `blur(${glow}px)`,\n\n animationDuration:\n `${speed * 0.8}s`,\n }}\n />\n </div>\n );\n}","import \"./NoiseField.css\";\n\nexport interface NoiseFieldProps {\n color?: string;\n background?: string;\n opacity?: number;\n scale?: number;\n speed?: number;\n animated?: boolean;\n className?: string;\n}\n\nexport function NoiseField({\n color = \"#8f73ff\",\n background = \"#0b0b0f\",\n opacity = 0.3,\n scale = 1,\n speed = 6,\n animated = true,\n className = \"\",\n}: NoiseFieldProps) {\n return (\n <div\n className={`fb-noise-field ${className}`}\n style={{\n background,\n }}\n >\n <div\n className={`fb-noise-field__blob fb-noise-field__blob--one ${\n animated\n ? \"fb-noise-field__blob--animated\"\n : \"\"\n }`}\n style={{\n background:\n color,\n\n opacity,\n\n transform:\n `scale(${scale})`,\n\n animationDuration:\n `${speed}s`,\n }}\n />\n\n <div\n className={`fb-noise-field__blob fb-noise-field__blob--two ${\n animated\n ? \"fb-noise-field__blob--animated\"\n : \"\"\n }`}\n style={{\n background:\n color,\n\n opacity:\n opacity * 0.7,\n\n transform:\n `scale(${scale * 0.8})`,\n\n animationDuration:\n `${speed * 1.2}s`,\n }}\n />\n\n <div\n className={`fb-noise-field__texture ${\n animated\n ? \"fb-noise-field__texture--animated\"\n : \"\"\n }`}\n style={{\n opacity:\n opacity * 0.5,\n\n animationDuration:\n `${speed * 0.85}s`,\n }}\n />\n </div>\n );\n}"]}
|
|
@@ -213,5 +213,5 @@ function StreamingResponse({
|
|
|
213
213
|
|
|
214
214
|
exports.AiPromptBox = AiPromptBox;
|
|
215
215
|
exports.StreamingResponse = StreamingResponse;
|
|
216
|
-
//# sourceMappingURL=chunk-
|
|
217
|
-
//# sourceMappingURL=chunk-
|
|
216
|
+
//# sourceMappingURL=chunk-SS4GAAED.cjs.map
|
|
217
|
+
//# sourceMappingURL=chunk-SS4GAAED.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/ai/AiPromptBox.tsx","../src/ai/StreamingResponse.tsx"],"names":["useState","jsx","jsxs","Sparkles","Paperclip","ArrowUp","useEffect"],"mappings":"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","file":"chunk-SS4GAAED.cjs","sourcesContent":["import {\n useState,\n} from \"react\";\n\nimport type {\n FormEvent,\n HTMLAttributes,\n} from \"react\";\n\nimport {\n ArrowUp,\n Paperclip,\n Sparkles,\n} from \"lucide-react\";\n\nimport \"./AiPromptBox.css\";\n\nexport interface AiPromptBoxProps\n extends Omit<\n HTMLAttributes<HTMLDivElement>,\n \"onSubmit\"\n > {\n background?: string;\n\n accent?: string;\n\n textColor?: string;\n\n radius?: number;\n\n minHeight?: number;\n\n showModel?: boolean;\n\n showAttachment?: boolean;\n\n modelLabel?: string;\n\n placeholder?: string;\n\n defaultValue?: string;\n\n disabled?: boolean;\n\n onSubmit?: (\n value: string\n ) => void;\n\n className?: string;\n}\n\nexport function AiPromptBox({\n background = \"#111116\",\n\n accent = \"#9b7cff\",\n\n textColor = \"#ffffff\",\n\n radius = 20,\n\n minHeight = 150,\n\n showModel = true,\n\n showAttachment = true,\n\n modelLabel = \"FB AI · Fast\",\n\n placeholder =\n \"Ask anything...\",\n\n defaultValue = \"\",\n\n disabled = false,\n\n onSubmit,\n\n className = \"\",\n\n style,\n\n ...props\n}: AiPromptBoxProps) {\n const [\n value,\n setValue,\n ] =\n useState(\n defaultValue\n );\n\n function handleSubmit(\n event:\n FormEvent<HTMLFormElement>\n ) {\n event.preventDefault();\n\n const trimmed =\n value.trim();\n\n if (\n disabled ||\n !trimmed\n ) {\n return;\n }\n\n onSubmit?.(\n trimmed\n );\n }\n\n return (\n <div\n {...props}\n className={`fb-ai-prompt-box ${className}`}\n style={{\n ...style,\n\n background,\n\n color:\n textColor,\n\n borderRadius:\n radius,\n\n minHeight,\n\n [\"--fb-ai-prompt-accent\" as string]:\n accent,\n }}\n >\n <form\n className=\"fb-ai-prompt-box__form\"\n onSubmit={\n handleSubmit\n }\n >\n <div className=\"fb-ai-prompt-box__field\">\n <Sparkles\n className=\"fb-ai-prompt-box__spark\"\n size={16}\n aria-hidden=\"true\"\n />\n\n <textarea\n value={\n value\n }\n disabled={\n disabled\n }\n placeholder={\n placeholder\n }\n aria-label={\n placeholder\n }\n onChange={(\n event\n ) =>\n setValue(\n event.target\n .value\n )\n }\n />\n </div>\n\n <div className=\"fb-ai-prompt-box__footer\">\n <div className=\"fb-ai-prompt-box__actions\">\n {showAttachment && (\n <button\n type=\"button\"\n aria-label=\"Attach file\"\n className=\"fb-ai-prompt-box__secondary\"\n >\n <Paperclip\n size={15}\n aria-hidden=\"true\"\n />\n </button>\n )}\n\n {showModel && (\n <span className=\"fb-ai-prompt-box__model\">\n {\n modelLabel\n }\n </span>\n )}\n </div>\n\n <button\n type=\"submit\"\n disabled={\n disabled ||\n !value.trim()\n }\n className=\"fb-ai-prompt-box__submit\"\n aria-label=\"Submit prompt\"\n >\n <ArrowUp\n size={16}\n aria-hidden=\"true\"\n />\n </button>\n </div>\n </form>\n </div>\n );\n}","import {\n useEffect,\n useState,\n} from \"react\";\n\nimport type {\n HTMLAttributes,\n} from \"react\";\n\nimport \"./StreamingResponse.css\";\n\nexport interface StreamingResponseProps\n extends HTMLAttributes<HTMLDivElement> {\n text?: string;\n\n accent?: string;\n textColor?: string;\n\n speed?: number;\n\n showCursor?: boolean;\n showStatus?: boolean;\n\n statusLabel?: string;\n\n className?: string;\n}\n\nexport function StreamingResponse({\n text =\n \"FB Components gives your application a reusable system for motion, interaction and AI-native interfaces.\",\n\n accent = \"#9b7cff\",\n textColor = \"#ffffff\",\n\n speed = 24,\n\n showCursor = true,\n showStatus = true,\n\n statusLabel =\n \"GENERATING\",\n\n className = \"\",\n style,\n\n ...props\n}: StreamingResponseProps) {\n const [\n length,\n setLength,\n ] =\n useState(0);\n\n useEffect(() => {\n setLength(\n 0\n );\n\n if (\n text.length ===\n 0\n ) {\n return;\n }\n\n const interval =\n window.setInterval(\n () => {\n setLength(\n (\n current\n ) => {\n if (\n current >=\n text.length\n ) {\n window.clearInterval(\n interval\n );\n\n return current;\n }\n\n return (\n current +\n 1\n );\n }\n );\n },\n Math.max(\n 5,\n speed\n )\n );\n\n return () =>\n window.clearInterval(\n interval\n );\n }, [\n text,\n speed,\n ]);\n\n const complete =\n length >=\n text.length;\n\n return (\n <div\n {...props}\n className={`fb-streaming-response ${className}`}\n style={{\n ...style,\n\n color:\n textColor,\n\n [\"--fb-streaming-accent\" as string]:\n accent,\n }}\n aria-live=\"polite\"\n >\n {showStatus && (\n <div className=\"fb-streaming-response__status\">\n <span\n className={\n complete\n ? \"is-complete\"\n : \"\"\n }\n aria-hidden=\"true\"\n />\n\n {complete\n ? \"COMPLETE\"\n : statusLabel}\n </div>\n )}\n\n <p>\n {text.slice(\n 0,\n length\n )}\n\n {showCursor &&\n !complete && (\n <span\n className=\"fb-streaming-response__cursor\"\n aria-hidden=\"true\"\n />\n )}\n </p>\n </div>\n );\n}"]}
|
|
@@ -307,5 +307,5 @@ exports.GradientMesh = GradientMesh;
|
|
|
307
307
|
exports.NoiseField = NoiseField;
|
|
308
308
|
exports.PredictiveArc = PredictiveArc;
|
|
309
309
|
exports.SignalParticles = SignalParticles;
|
|
310
|
-
//# sourceMappingURL=chunk-
|
|
311
|
-
//# sourceMappingURL=chunk-
|
|
310
|
+
//# sourceMappingURL=chunk-TG7XM34D.cjs.map
|
|
311
|
+
//# sourceMappingURL=chunk-TG7XM34D.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/backgrounds/PredictiveArc.tsx","../src/backgrounds/SignalParticles.tsx","../src/backgrounds/DotMatrix.tsx","../src/backgrounds/GradientMesh.tsx","../src/backgrounds/AuroraGrid.tsx","../src/backgrounds/NoiseField.tsx"],"names":["useRef","useEffect","jsxs","jsx","useMemo"],"mappings":"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","file":"chunk-TG7XM34D.cjs","sourcesContent":["import {\n useEffect,\n useRef,\n} from \"react\";\nimport \"./PredictiveArc.css\";\n\nexport interface PredictiveArcProps {\n color?: string;\n background?: string;\n size?: number;\n thickness?: number;\n glow?: number;\n animated?: boolean;\n className?: string;\n}\n\nexport function PredictiveArc({\n color = \"#9b7cff\",\n background = \"#0d0d11\",\n size = 70,\n thickness = 3,\n glow = 16,\n animated = true,\n className = \"\",\n}: PredictiveArcProps) {\n const containerRef =\n useRef<HTMLDivElement>(\n null\n );\n\n useEffect(() => {\n const element =\n containerRef.current;\n\n if (!element) {\n return;\n }\n\n element.style.setProperty(\n \"--predictive-arc-color\",\n color\n );\n\n element.style.setProperty(\n \"--predictive-arc-background\",\n background\n );\n\n element.style.setProperty(\n \"--predictive-arc-size\",\n `${size}%`\n );\n\n element.style.setProperty(\n \"--predictive-arc-thickness\",\n `${thickness}px`\n );\n\n element.style.setProperty(\n \"--predictive-arc-glow\",\n `${glow}px`\n );\n }, [\n color,\n background,\n size,\n thickness,\n glow,\n ]);\n\n return (\n <div\n ref={containerRef}\n className={`fb-predictive-arc ${\n animated\n ? \"fb-predictive-arc--animated\"\n : \"\"\n } ${className}`}\n >\n <div className=\"fb-predictive-arc__line fb-predictive-arc__line--outer\" />\n\n <div className=\"fb-predictive-arc__line fb-predictive-arc__line--inner\" />\n\n <span className=\"fb-predictive-arc__point fb-predictive-arc__point--left\" />\n\n <span className=\"fb-predictive-arc__point fb-predictive-arc__point--right\" />\n </div>\n );\n}","import {\n useMemo,\n} from \"react\";\n\nimport \"./SignalParticles.css\";\n\nexport interface SignalParticlesProps {\n color?: string;\n background?: string;\n density?: number;\n size?: number;\n speed?: number;\n animated?: boolean;\n className?: string;\n}\n\nexport function SignalParticles({\n color = \"#b99cff\",\n background = \"#0d0d11\",\n density = 30,\n size = 3,\n speed = 1,\n animated = true,\n className = \"\",\n}: SignalParticlesProps) {\n const particles =\n useMemo(\n () =>\n Array.from({\n length:\n Math.max(\n 1,\n density\n ),\n }).map(\n (\n _,\n index\n ) => ({\n id:\n index,\n\n left:\n (index *\n 37) %\n 100,\n\n top:\n (index *\n 53) %\n 100,\n\n delay:\n (index %\n 10) *\n 0.12,\n })\n ),\n [\n density,\n ]\n );\n\n return (\n <div\n className={`fb-signal-particles ${className}`}\n style={{\n background,\n }}\n >\n {particles.map(\n (\n particle\n ) => (\n <span\n key={\n particle.id\n }\n className={\n animated\n ? \"fb-signal-particles__particle fb-signal-particles__particle--animated\"\n : \"fb-signal-particles__particle\"\n }\n style={{\n left:\n `${particle.left}%`,\n\n top:\n `${particle.top}%`,\n\n width:\n size,\n\n height:\n size,\n\n background:\n color,\n\n animationDuration:\n `${3 / speed}s`,\n\n animationDelay:\n `${particle.delay}s`,\n\n boxShadow:\n `0 0 ${size * 4}px ${color}`,\n }}\n />\n )\n )}\n </div>\n );\n}","import \"./DotMatrix.css\";\n\nexport interface DotMatrixProps {\n color?: string;\n background?: string;\n dotSize?: number;\n gap?: number;\n opacity?: number;\n fade?: boolean;\n className?: string;\n}\n\nexport function DotMatrix({\n color = \"#9b7cff\",\n background = \"#0d0d11\",\n dotSize = 2,\n gap = 20,\n opacity = 0.8,\n fade = true,\n className = \"\",\n}: DotMatrixProps) {\n return (\n <div\n className={`fb-dot-matrix ${\n fade\n ? \"fb-dot-matrix--fade\"\n : \"\"\n } ${className}`}\n style={{\n backgroundColor:\n background,\n\n opacity,\n\n backgroundImage:\n `radial-gradient(\n circle,\n ${color} ${dotSize}px,\n transparent ${\n dotSize +\n 0.8\n }px\n )`,\n\n backgroundSize:\n `${gap}px ${gap}px`,\n }}\n />\n );\n}","import \"./GradientMesh.css\";\n\nexport interface GradientMeshProps {\n primary?: string;\n secondary?: string;\n accent?: string;\n background?: string;\n blur?: number;\n speed?: number;\n animated?: boolean;\n className?: string;\n}\n\nexport function GradientMesh({\n primary = \"#654cff\",\n secondary = \"#3c6dff\",\n accent = \"#a44cff\",\n background = \"#0d0d11\",\n blur = 35,\n speed = 8,\n animated = true,\n className = \"\",\n}: GradientMeshProps) {\n return (\n <div\n className={`fb-gradient-mesh ${className}`}\n style={{\n background,\n }}\n >\n <div\n className={`fb-gradient-mesh__layer ${\n animated\n ? \"fb-gradient-mesh__layer--animated\"\n : \"\"\n }`}\n style={{\n background: `\n radial-gradient(\n circle at 30% 30%,\n ${primary},\n transparent 35%\n ),\n radial-gradient(\n circle at 65% 60%,\n ${secondary},\n transparent 32%\n ),\n radial-gradient(\n circle at 50% 50%,\n ${accent},\n transparent 40%\n )\n `,\n\n filter:\n `blur(${blur}px)`,\n\n animationDuration:\n `${speed}s`,\n }}\n />\n </div>\n );\n}","import \"./AuroraGrid.css\";\n\nexport interface AuroraGridProps {\n gridColor?: string;\n auroraColor?: string;\n background?: string;\n gridSize?: number;\n glow?: number;\n speed?: number;\n animated?: boolean;\n className?: string;\n}\n\nexport function AuroraGrid({\n gridColor = \"#765cff\",\n auroraColor = \"#7c5cff\",\n background = \"#09090d\",\n gridSize = 34,\n glow = 55,\n speed = 8,\n animated = true,\n className = \"\",\n}: AuroraGridProps) {\n return (\n <div\n className={`fb-aurora-grid ${className}`}\n style={{\n background,\n }}\n >\n <div\n className={`fb-aurora-grid__grid ${\n animated\n ? \"fb-aurora-grid__grid--animated\"\n : \"\"\n }`}\n style={{\n backgroundImage: `\n linear-gradient(\n ${gridColor}33 1px,\n transparent 1px\n ),\n linear-gradient(\n 90deg,\n ${gridColor}33 1px,\n transparent 1px\n )\n `,\n\n backgroundSize:\n `${gridSize}px ${gridSize}px`,\n\n animationDuration:\n `${speed}s`,\n }}\n />\n\n <div\n className={`fb-aurora-grid__glow ${\n animated\n ? \"fb-aurora-grid__glow--animated\"\n : \"\"\n }`}\n style={{\n background:\n auroraColor,\n\n filter:\n `blur(${glow}px)`,\n\n animationDuration:\n `${speed * 0.8}s`,\n }}\n />\n </div>\n );\n}","import \"./NoiseField.css\";\n\nexport interface NoiseFieldProps {\n color?: string;\n background?: string;\n opacity?: number;\n scale?: number;\n speed?: number;\n animated?: boolean;\n className?: string;\n}\n\nexport function NoiseField({\n color = \"#8f73ff\",\n background = \"#0b0b0f\",\n opacity = 0.3,\n scale = 1,\n speed = 6,\n animated = true,\n className = \"\",\n}: NoiseFieldProps) {\n return (\n <div\n className={`fb-noise-field ${className}`}\n style={{\n background,\n }}\n >\n <div\n className={`fb-noise-field__blob fb-noise-field__blob--one ${\n animated\n ? \"fb-noise-field__blob--animated\"\n : \"\"\n }`}\n style={{\n background:\n color,\n\n opacity,\n\n transform:\n `scale(${scale})`,\n\n animationDuration:\n `${speed}s`,\n }}\n />\n\n <div\n className={`fb-noise-field__blob fb-noise-field__blob--two ${\n animated\n ? \"fb-noise-field__blob--animated\"\n : \"\"\n }`}\n style={{\n background:\n color,\n\n opacity:\n opacity * 0.7,\n\n transform:\n `scale(${scale * 0.8})`,\n\n animationDuration:\n `${speed * 1.2}s`,\n }}\n />\n\n <div\n className={`fb-noise-field__texture ${\n animated\n ? \"fb-noise-field__texture--animated\"\n : \"\"\n }`}\n style={{\n opacity:\n opacity * 0.5,\n\n animationDuration:\n `${speed * 0.85}s`,\n }}\n />\n </div>\n );\n}"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/ui/SpotlightCard.tsx","../src/ui/GlassCard.tsx"],"names":["jsxs","Fragment","jsx"],"mappings":"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","file":"chunk-VODRAWMB.js","sourcesContent":["import {\n useState,\n} from \"react\";\n\nimport \"./SpotlightCard.css\";\n\nexport interface SpotlightCardProps {\n children?:\n React.ReactNode;\n\n background?:\n string;\n\n spotlightColor?:\n string;\n\n radius?:\n number;\n\n glow?:\n number;\n\n borderOpacity?:\n number;\n\n className?:\n string;\n}\n\nexport function SpotlightCard({\n children = (\n <>\n <span>\n FB\n </span>\n\n <strong>\n Spotlight\n </strong>\n\n <p>\n Move your pointer\n across the card.\n </p>\n </>\n ),\n\n background =\n \"#111116\",\n\n spotlightColor =\n \"#9b7cff\",\n\n radius =\n 14,\n\n glow =\n 35,\n\n borderOpacity =\n 0.12,\n\n className =\n \"\",\n}: SpotlightCardProps) {\n const [\n point,\n setPoint,\n ] =\n useState({\n x: 50,\n y: 30,\n });\n\n function handleMove(\n event:\n React.MouseEvent<HTMLDivElement>\n ) {\n const rect =\n event.currentTarget.getBoundingClientRect();\n\n setPoint({\n x:\n ((event.clientX -\n rect.left) /\n rect.width) *\n 100,\n\n y:\n ((event.clientY -\n rect.top) /\n rect.height) *\n 100,\n });\n }\n\n return (\n <div\n className={`fb-spotlight-card ${className}`}\n onMouseMove={\n handleMove\n }\n style={{\n borderRadius:\n radius,\n\n borderColor:\n `rgba(\n 255,\n 255,\n 255,\n ${borderOpacity}\n )`,\n\n background: `\n radial-gradient(\n circle at\n ${point.x}%\n ${point.y}%,\n ${spotlightColor}${hexAlpha(\n glow /\n 100\n )},\n transparent 38%\n ),\n ${background}\n `,\n }}\n >\n {children}\n </div>\n );\n}\n\nfunction hexAlpha(\n opacity: number\n) {\n return Math.round(\n Math.min(\n 1,\n Math.max(\n 0,\n opacity\n )\n ) *\n 255\n )\n .toString(16)\n .padStart(\n 2,\n \"0\"\n );\n}","import type {\n HTMLAttributes,\n ReactNode,\n} from \"react\";\n\nimport \"./GlassCard.css\";\n\nexport interface GlassCardProps\n extends HTMLAttributes<HTMLDivElement> {\n children?: ReactNode;\n\n tint?: string;\n\n opacity?: number;\n\n blur?: number;\n\n radius?: number;\n\n borderOpacity?: number;\n\n glowColor?: string;\n\n glow?: number;\n\n className?: string;\n}\n\nfunction hexToRgb(\n value: string\n) {\n const clean =\n value\n .replace(\n \"#\",\n \"\"\n )\n .trim();\n\n const normalized =\n clean.length ===\n 3\n ? clean\n .split(\"\")\n .map(\n (\n character\n ) =>\n character +\n character\n )\n .join(\"\")\n : clean;\n\n if (\n normalized.length !==\n 6\n ) {\n return {\n r: 143,\n g: 115,\n b: 255,\n };\n }\n\n return {\n r:\n Number.parseInt(\n normalized.slice(\n 0,\n 2\n ),\n 16\n ),\n\n g:\n Number.parseInt(\n normalized.slice(\n 2,\n 4\n ),\n 16\n ),\n\n b:\n Number.parseInt(\n normalized.slice(\n 4,\n 6\n ),\n 16\n ),\n };\n}\n\nexport function GlassCard({\n children = (\n <>\n <span className=\"fb-glass-card__eyebrow\">\n 01 / FEATURE\n </span>\n\n <div className=\"fb-glass-card__content\">\n <strong>\n Built for\n <br />\n motion.\n </strong>\n\n <p>\n Premium interaction\n without visual noise.\n </p>\n </div>\n </>\n ),\n\n tint = \"#8f73ff\",\n\n opacity = 0.08,\n\n blur = 18,\n\n radius = 22,\n\n borderOpacity = 0.16,\n\n glowColor = \"#8f73ff\",\n\n glow = 34,\n\n className = \"\",\n\n style,\n\n ...props\n}: GlassCardProps) {\n const tintRgb =\n hexToRgb(\n tint\n );\n\n const glowRgb =\n hexToRgb(\n glowColor\n );\n\n return (\n <div\n {...props}\n className={`fb-glass-card ${className}`}\n style={{\n ...style,\n\n borderRadius:\n radius,\n\n borderColor:\n `rgba(\n 255,\n 255,\n 255,\n ${borderOpacity}\n )`,\n\n background:\n `linear-gradient(\n 145deg,\n rgba(\n ${tintRgb.r},\n ${tintRgb.g},\n ${tintRgb.b},\n ${opacity}\n ),\n rgba(\n 255,\n 255,\n 255,\n ${opacity * 0.35}\n )\n )`,\n\n backdropFilter:\n `blur(${blur}px)`,\n\n WebkitBackdropFilter:\n `blur(${blur}px)`,\n\n boxShadow:\n `0 24px 80px rgba(\n ${glowRgb.r},\n ${glowRgb.g},\n ${glowRgb.b},\n ${glow / 400}\n )`,\n }}\n >\n <span\n className=\"fb-glass-card__glow\"\n aria-hidden=\"true\"\n style={{\n background:\n glowColor,\n\n filter:\n `blur(${glow}px)`,\n }}\n />\n\n <div className=\"fb-glass-card__inner\">\n {children}\n </div>\n </div>\n );\n}"]}
|
|
@@ -210,5 +210,5 @@ function StreamingResponse({
|
|
|
210
210
|
}
|
|
211
211
|
|
|
212
212
|
export { AiPromptBox, StreamingResponse };
|
|
213
|
-
//# sourceMappingURL=chunk-
|
|
214
|
-
//# sourceMappingURL=chunk-
|
|
213
|
+
//# sourceMappingURL=chunk-XJGKXWK3.js.map
|
|
214
|
+
//# sourceMappingURL=chunk-XJGKXWK3.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/ai/AiPromptBox.tsx","../src/ai/StreamingResponse.tsx"],"names":["useState","jsxs","jsx"],"mappings":"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","file":"chunk-XJGKXWK3.js","sourcesContent":["import {\n useState,\n} from \"react\";\n\nimport type {\n FormEvent,\n HTMLAttributes,\n} from \"react\";\n\nimport {\n ArrowUp,\n Paperclip,\n Sparkles,\n} from \"lucide-react\";\n\nimport \"./AiPromptBox.css\";\n\nexport interface AiPromptBoxProps\n extends Omit<\n HTMLAttributes<HTMLDivElement>,\n \"onSubmit\"\n > {\n background?: string;\n\n accent?: string;\n\n textColor?: string;\n\n radius?: number;\n\n minHeight?: number;\n\n showModel?: boolean;\n\n showAttachment?: boolean;\n\n modelLabel?: string;\n\n placeholder?: string;\n\n defaultValue?: string;\n\n disabled?: boolean;\n\n onSubmit?: (\n value: string\n ) => void;\n\n className?: string;\n}\n\nexport function AiPromptBox({\n background = \"#111116\",\n\n accent = \"#9b7cff\",\n\n textColor = \"#ffffff\",\n\n radius = 20,\n\n minHeight = 150,\n\n showModel = true,\n\n showAttachment = true,\n\n modelLabel = \"FB AI · Fast\",\n\n placeholder =\n \"Ask anything...\",\n\n defaultValue = \"\",\n\n disabled = false,\n\n onSubmit,\n\n className = \"\",\n\n style,\n\n ...props\n}: AiPromptBoxProps) {\n const [\n value,\n setValue,\n ] =\n useState(\n defaultValue\n );\n\n function handleSubmit(\n event:\n FormEvent<HTMLFormElement>\n ) {\n event.preventDefault();\n\n const trimmed =\n value.trim();\n\n if (\n disabled ||\n !trimmed\n ) {\n return;\n }\n\n onSubmit?.(\n trimmed\n );\n }\n\n return (\n <div\n {...props}\n className={`fb-ai-prompt-box ${className}`}\n style={{\n ...style,\n\n background,\n\n color:\n textColor,\n\n borderRadius:\n radius,\n\n minHeight,\n\n [\"--fb-ai-prompt-accent\" as string]:\n accent,\n }}\n >\n <form\n className=\"fb-ai-prompt-box__form\"\n onSubmit={\n handleSubmit\n }\n >\n <div className=\"fb-ai-prompt-box__field\">\n <Sparkles\n className=\"fb-ai-prompt-box__spark\"\n size={16}\n aria-hidden=\"true\"\n />\n\n <textarea\n value={\n value\n }\n disabled={\n disabled\n }\n placeholder={\n placeholder\n }\n aria-label={\n placeholder\n }\n onChange={(\n event\n ) =>\n setValue(\n event.target\n .value\n )\n }\n />\n </div>\n\n <div className=\"fb-ai-prompt-box__footer\">\n <div className=\"fb-ai-prompt-box__actions\">\n {showAttachment && (\n <button\n type=\"button\"\n aria-label=\"Attach file\"\n className=\"fb-ai-prompt-box__secondary\"\n >\n <Paperclip\n size={15}\n aria-hidden=\"true\"\n />\n </button>\n )}\n\n {showModel && (\n <span className=\"fb-ai-prompt-box__model\">\n {\n modelLabel\n }\n </span>\n )}\n </div>\n\n <button\n type=\"submit\"\n disabled={\n disabled ||\n !value.trim()\n }\n className=\"fb-ai-prompt-box__submit\"\n aria-label=\"Submit prompt\"\n >\n <ArrowUp\n size={16}\n aria-hidden=\"true\"\n />\n </button>\n </div>\n </form>\n </div>\n );\n}","import {\n useEffect,\n useState,\n} from \"react\";\n\nimport type {\n HTMLAttributes,\n} from \"react\";\n\nimport \"./StreamingResponse.css\";\n\nexport interface StreamingResponseProps\n extends HTMLAttributes<HTMLDivElement> {\n text?: string;\n\n accent?: string;\n textColor?: string;\n\n speed?: number;\n\n showCursor?: boolean;\n showStatus?: boolean;\n\n statusLabel?: string;\n\n className?: string;\n}\n\nexport function StreamingResponse({\n text =\n \"FB Components gives your application a reusable system for motion, interaction and AI-native interfaces.\",\n\n accent = \"#9b7cff\",\n textColor = \"#ffffff\",\n\n speed = 24,\n\n showCursor = true,\n showStatus = true,\n\n statusLabel =\n \"GENERATING\",\n\n className = \"\",\n style,\n\n ...props\n}: StreamingResponseProps) {\n const [\n length,\n setLength,\n ] =\n useState(0);\n\n useEffect(() => {\n setLength(\n 0\n );\n\n if (\n text.length ===\n 0\n ) {\n return;\n }\n\n const interval =\n window.setInterval(\n () => {\n setLength(\n (\n current\n ) => {\n if (\n current >=\n text.length\n ) {\n window.clearInterval(\n interval\n );\n\n return current;\n }\n\n return (\n current +\n 1\n );\n }\n );\n },\n Math.max(\n 5,\n speed\n )\n );\n\n return () =>\n window.clearInterval(\n interval\n );\n }, [\n text,\n speed,\n ]);\n\n const complete =\n length >=\n text.length;\n\n return (\n <div\n {...props}\n className={`fb-streaming-response ${className}`}\n style={{\n ...style,\n\n color:\n textColor,\n\n [\"--fb-streaming-accent\" as string]:\n accent,\n }}\n aria-live=\"polite\"\n >\n {showStatus && (\n <div className=\"fb-streaming-response__status\">\n <span\n className={\n complete\n ? \"is-complete\"\n : \"\"\n }\n aria-hidden=\"true\"\n />\n\n {complete\n ? \"COMPLETE\"\n : statusLabel}\n </div>\n )}\n\n <p>\n {text.slice(\n 0,\n length\n )}\n\n {showCursor &&\n !complete && (\n <span\n className=\"fb-streaming-response__cursor\"\n aria-hidden=\"true\"\n />\n )}\n </p>\n </div>\n );\n}"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/text/RevealText.tsx","../src/text/BlurReveal.tsx"],"names":["jsxs","Fragment","jsx"],"mappings":";;;AAmBO,SAAS,UAAA,CAAW;AAAA,EACzB,2BACE,IAAA,CAAA,QAAA,EAAA,EAAE,QAAA,EAAA;AAAA,IAAA,OAAA;AAAA,wBAEC,IAAA,EAAA,EAAG,CAAA;AAAA,IAAE,QAAA;AAAA,wBAEL,IAAA,EAAA,EAAG,CAAA;AAAA,IAAE;AAAA,GAAA,EAER,CAAA;AAAA,EAGF,KAAA,GACE,SAAA;AAAA,EAEF,MAAA,GACE,SAAA;AAAA,EAEF,QAAA,GACE,EAAA;AAAA,EAEF,UAAA,GACE,IAAA;AAAA,EAEF,QAAA,GACE,GAAA;AAAA,EAEF,SAAA,GACE,IAAA;AAAA,EAEF,SAAA,GACE;AACJ,CAAA,EAAoB;AAClB,EAAA,uBACE,GAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,SAAA,EAAW,kBAAkB,SAAS,CAAA,CAAA;AAAA,MACtC,KAAA,EAAO;AAAA,QACL,QAAA,EAEE,GAAG,QAAQ,CAAA,EAAA,CAAA;AAAA,QAEb,UAAA;AAAA,QAEA,iBAAA,EACE,GAAG,QAAQ,CAAA,CAAA,CAAA;AAAA,QAEb,aAAA,EACE,YACI,WAAA,GACA,MAAA;AAAA,QAEN,UAAA,EACE,CAAA;AAAA;AAAA,YAAA,EAEI,KAAK,CAAA;AAAA,YAAA,EACL,MAAM;AAAA,WAAA,CAAA;AAAA,QAGZ,cAAA,EACE,MAAA;AAAA,QAEF,oBAAA,EACE,MAAA;AAAA,QAEF,KAAA,EACE;AAAA,OACJ;AAAA,MAEC;AAAA;AAAA,GACH;AAEJ;AC/DO,SAAS,UAAA,CAAW;AAAA,EACzB,QAAA,mBACEA,IAAAA,CAAAC,QAAAA,EAAA,EAAE,QAAA,EAAA;AAAA,IAAA,YAAA;AAAA,oBAEAC,IAAC,IAAA,EAAA,EAAG,CAAA;AAAA,IAAE,OAAA;AAAA,oBAENA,IAAC,IAAA,EAAA,EAAG,CAAA;AAAA,IAAE;AAAA,GAAA,EAER,CAAA;AAAA,EAGF,KAAA,GAAQ,SAAA;AAAA,EAER,QAAA,GAAW,EAAA;AAAA,EAEX,IAAA,GAAO,EAAA;AAAA,EAEP,QAAA,GAAW,EAAA;AAAA,EAEX,QAAA,GAAW,GAAA;AAAA,EAEX,MAAA,GAAS,KAAA;AAAA,EAET,SAAA,GAAY,EAAA;AAAA,EAEZ,KAAA;AAAA,EAEA,GAAG;AACL,CAAA,EAAoB;AAClB,EAAA,uBACEA,GAAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACE,GAAG,KAAA;AAAA,MACJ,WAAW,CAAA,eAAA,EACT,MAAA,GACI,wBAAA,GACA,EACN,IAAI,SAAS,CAAA,CAAA;AAAA,MACb,KAAA,EAAO;AAAA,QACL,GAAG,KAAA;AAAA,QAEH,KAAA;AAAA,QAEA,QAAA,EACE,GAAG,QAAQ,CAAA,EAAA,CAAA;AAAA,QAEb,CAAC,uBAAiC,GAChC,CAAA,EAAG,IAAI,CAAA,EAAA,CAAA;AAAA,QAET,CAAC,2BAAqC,GACpC,CAAA,EAAG,QAAQ,CAAA,EAAA,CAAA;AAAA,QAEb,CAAC,2BAAqC,GACpC,CAAA,EAAG,QAAQ,CAAA,CAAA;AAAA,OACf;AAAA,MAEC;AAAA;AAAA,GACH;AAEJ","file":"chunk-YPBGV2B5.js","sourcesContent":["import \"./RevealText.css\";\n\nexport interface RevealTextProps {\n children?: React.ReactNode;\n\n color?: string;\n accent?: string;\n\n fontSize?: number;\n\n lineHeight?: number;\n\n duration?: number;\n\n uppercase?: boolean;\n\n className?: string;\n}\n\nexport function RevealText({\n children = (\n <>\n Build\n <br />\n better\n <br />\n interfaces\n </>\n ),\n\n color =\n \"#ffffff\",\n\n accent =\n \"#866cff\",\n\n fontSize =\n 42,\n\n lineHeight =\n 0.86,\n\n duration =\n 0.7,\n\n uppercase =\n true,\n\n className =\n \"\",\n}: RevealTextProps) {\n return (\n <div\n className={`fb-reveal-text ${className}`}\n style={{\n fontSize:\n\n `${fontSize}px`,\n\n lineHeight,\n\n animationDuration:\n `${duration}s`,\n\n textTransform:\n uppercase\n ? \"uppercase\"\n : \"none\",\n\n background:\n `linear-gradient(\n 90deg,\n ${color},\n ${accent}\n )`,\n\n backgroundClip:\n \"text\",\n\n WebkitBackgroundClip:\n \"text\",\n\n color:\n \"transparent\",\n }}\n >\n {children}\n </div>\n );\n}","import type {\n HTMLAttributes,\n ReactNode,\n} from \"react\";\n\nimport \"./BlurReveal.css\";\n\nexport interface BlurRevealProps\n extends HTMLAttributes<HTMLDivElement> {\n children?: ReactNode;\n\n color?: string;\n\n fontSize?: number;\n\n blur?: number;\n\n distance?: number;\n\n duration?: number;\n\n repeat?: boolean;\n\n className?: string;\n}\n\nexport function BlurReveal({\n children = (\n <>\n Interfaces\n <br />\n worth\n <br />\n remembering.\n </>\n ),\n\n color = \"#ffffff\",\n\n fontSize = 48,\n\n blur = 14,\n\n distance = 24,\n\n duration = 0.8,\n\n repeat = false,\n\n className = \"\",\n\n style,\n\n ...props\n}: BlurRevealProps) {\n return (\n <div\n {...props}\n className={`fb-blur-reveal ${\n repeat\n ? \"fb-blur-reveal--repeat\"\n : \"\"\n } ${className}`}\n style={{\n ...style,\n\n color,\n\n fontSize:\n `${fontSize}px`,\n\n [\"--fb-blur-reveal-blur\" as string]:\n `${blur}px`,\n\n [\"--fb-blur-reveal-distance\" as string]:\n `${distance}px`,\n\n [\"--fb-blur-reveal-duration\" as string]:\n `${duration}s`,\n }}\n >\n {children}\n </div>\n );\n}"]}
|
package/dist/data.cjs
CHANGED
|
@@ -1,20 +1,20 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var
|
|
3
|
+
var chunk7PUXKRNW_cjs = require('./chunk-7PUXKRNW.cjs');
|
|
4
4
|
|
|
5
5
|
|
|
6
6
|
|
|
7
7
|
Object.defineProperty(exports, "AnimatedCounter", {
|
|
8
8
|
enumerable: true,
|
|
9
|
-
get: function () { return
|
|
9
|
+
get: function () { return chunk7PUXKRNW_cjs.AnimatedCounter; }
|
|
10
10
|
});
|
|
11
11
|
Object.defineProperty(exports, "MetricGrid", {
|
|
12
12
|
enumerable: true,
|
|
13
|
-
get: function () { return
|
|
13
|
+
get: function () { return chunk7PUXKRNW_cjs.MetricGrid; }
|
|
14
14
|
});
|
|
15
15
|
Object.defineProperty(exports, "RadialProgress", {
|
|
16
16
|
enumerable: true,
|
|
17
|
-
get: function () { return
|
|
17
|
+
get: function () { return chunk7PUXKRNW_cjs.RadialProgress; }
|
|
18
18
|
});
|
|
19
19
|
//# sourceMappingURL=data.cjs.map
|
|
20
20
|
//# sourceMappingURL=data.cjs.map
|
package/dist/data.css.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/data/AnimatedCounter.css","../src/data/RadialProgress.css","../src/data/MetricGrid.css"],"sourcesContent":[".fb-animated-counter {\
|
|
1
|
+
{"version":3,"sources":["../src/data/AnimatedCounter.css","../src/data/RadialProgress.css","../src/data/MetricGrid.css"],"sourcesContent":[".fb-animated-counter {\n display: flex;\n\n flex-direction: column;\n\n align-items: center;\n\n text-align: center;\n}\n\n.fb-animated-counter__label {\n color:\n rgba(\n 255,\n 255,\n 255,\n 0.38\n );\n\n font-family:\n \"DM Mono\",\n monospace;\n\n font-size: 9px;\n\n letter-spacing: 1.7px;\n}\n\n.fb-animated-counter\nstrong {\n margin-top: 10px;\n\n color: inherit;\n\n font-size:\n var(\n --fb-counter-size,\n 72px\n );\n\n font-weight: 550;\n\n line-height: 1;\n\n letter-spacing: -0.065em;\n}\n\n.fb-animated-counter\nsmall {\n margin-top: 12px;\n\n padding:\n 5px\n 9px;\n\n border-radius: 999px;\n\n background:\n color-mix(\n in srgb,\n var(\n --fb-counter-accent\n )\n 12%,\n transparent\n );\n\n color:\n var(\n --fb-counter-accent\n );\n\n font-size: 9px;\n}",".fb-radial-progress {\n position: relative;\n\n display: inline-flex;\n\n align-items: center;\n\n justify-content: center;\n}\n\n.fb-radial-progress\nsvg {\n position: absolute;\n\n inset: 0;\n\n width: 100%;\n height: 100%;\n\n transform:\n rotate(-90deg);\n}\n\n.fb-radial-progress__value {\n filter:\n drop-shadow(\n 0\n 0\n 7px\n color-mix(\n in srgb,\n var(\n --fb-radial-color\n )\n 55%,\n transparent\n )\n );\n\n transition:\n stroke-dashoffset\n 0.7s\n cubic-bezier(\n 0.16,\n 1,\n 0.3,\n 1\n );\n}\n\n.fb-radial-progress__value--animated {\n animation:\n fbRadialAppear\n 0.65s\n ease-out\n both;\n}\n\n@keyframes fbRadialAppear {\n from {\n opacity:\n 0;\n }\n\n to {\n opacity:\n 1;\n }\n}\n\n.fb-radial-progress__content {\n position: relative;\n\n z-index: 1;\n\n text-align: center;\n}\n\n.fb-radial-progress__content\nstrong {\n display: block;\n\n color: white;\n\n font-size: 38px;\n\n line-height: 1;\n\n letter-spacing: -0.06em;\n}\n\n.fb-radial-progress__content\nstrong\nsmall {\n font-size: 14px;\n\n color:\n rgba(\n 255,\n 255,\n 255,\n 0.42\n );\n}\n\n.fb-radial-progress__content\n> span {\n display: block;\n\n margin-top: 6px;\n\n color:\n rgba(\n 255,\n 255,\n 255,\n 0.32\n );\n\n font-family:\n \"DM Mono\",\n monospace;\n\n font-size: 7px;\n\n letter-spacing: 1.3px;\n}\n\n@keyframes fbRadialAppear {\n from {\n opacity: 0;\n\n stroke-dashoffset:\n 999;\n }\n\n to {\n opacity: 1;\n }\n}\n\n@media (\n prefers-reduced-motion:\n reduce\n) {\n .fb-radial-progress__value {\n animation:\n none !important;\n\n transition:\n none !important;\n }\n}",".fb-metric-grid {\n width: 100%;\n\n display: grid;\n\n gap: 12px;\n}\n\n.fb-metric-grid\narticle {\n min-width: 0;\n\n padding:\n clamp(\n 18px,\n 3vw,\n 28px\n );\n\n border:\n 1px solid\n rgba(\n 255,\n 255,\n 255,\n 0.08\n );\n\n border-radius:\n var(\n --fb-metric-radius\n );\n\n background:\n var(\n --fb-metric-background\n );\n\n transition:\n transform\n 0.22s\n ease,\n border-color\n 0.22s\n ease;\n}\n\n.fb-metric-grid\narticle:hover {\n transform:\n translateY(-4px);\n\n border-color:\n color-mix(\n in srgb,\n var(\n --fb-metric-accent\n )\n 35%,\n transparent\n );\n}\n\n.fb-metric-grid\narticle\n> span {\n color:\n rgba(\n 255,\n 255,\n 255,\n 0.36\n );\n\n font-size: 10px;\n}\n\n.fb-metric-grid\nstrong {\n display: block;\n\n margin-top: 10px;\n\n color: white;\n\n font-size:\n clamp(\n 24px,\n 4vw,\n 38px\n );\n\n letter-spacing: -0.045em;\n}\n\n.fb-metric-grid\nsmall {\n display: inline-block;\n\n margin-top: 10px;\n\n padding:\n 4px\n 7px;\n\n border-radius: 999px;\n\n background:\n rgba(\n 86,\n 217,\n 151,\n 0.08\n );\n\n color: #75dfa7;\n}\n\n.fb-metric-grid\nsmall.is-negative {\n background:\n rgba(\n 255,\n 100,\n 115,\n 0.08\n );\n\n color: #ff7c89;\n}\n\n@media (\n max-width:\n 650px\n) {\n .fb-metric-grid {\n grid-template-columns:\n 1fr !important;\n }\n}\n\n@media (\n prefers-reduced-motion:\n reduce\n) {\n .fb-metric-grid\n article {\n transition:\n none !important;\n }\n}"],"mappings":"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","names":[]}
|
package/dist/data.d.cts
CHANGED
|
@@ -24,9 +24,10 @@ interface RadialProgressProps extends HTMLAttributes<HTMLDivElement> {
|
|
|
24
24
|
trackColor?: string;
|
|
25
25
|
animated?: boolean;
|
|
26
26
|
label?: string;
|
|
27
|
+
ariaLabel?: string;
|
|
27
28
|
className?: string;
|
|
28
29
|
}
|
|
29
|
-
declare function RadialProgress({ value, size, strokeWidth, color, trackColor, animated, label, className, style, ...props }: RadialProgressProps): react.JSX.Element;
|
|
30
|
+
declare function RadialProgress({ value, size, strokeWidth, color, trackColor, animated, label, ariaLabel, className, style, ...props }: RadialProgressProps): react.JSX.Element;
|
|
30
31
|
|
|
31
32
|
interface MetricItem {
|
|
32
33
|
label: string;
|
package/dist/data.d.ts
CHANGED
|
@@ -24,9 +24,10 @@ interface RadialProgressProps extends HTMLAttributes<HTMLDivElement> {
|
|
|
24
24
|
trackColor?: string;
|
|
25
25
|
animated?: boolean;
|
|
26
26
|
label?: string;
|
|
27
|
+
ariaLabel?: string;
|
|
27
28
|
className?: string;
|
|
28
29
|
}
|
|
29
|
-
declare function RadialProgress({ value, size, strokeWidth, color, trackColor, animated, label, className, style, ...props }: RadialProgressProps): react.JSX.Element;
|
|
30
|
+
declare function RadialProgress({ value, size, strokeWidth, color, trackColor, animated, label, ariaLabel, className, style, ...props }: RadialProgressProps): react.JSX.Element;
|
|
30
31
|
|
|
31
32
|
interface MetricItem {
|
|
32
33
|
label: string;
|
package/dist/data.js
CHANGED
package/dist/heroes.cjs
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var
|
|
3
|
+
var chunkHPWZ5OL2_cjs = require('./chunk-HPWZ5OL2.cjs');
|
|
4
4
|
|
|
5
5
|
|
|
6
6
|
|
|
7
7
|
Object.defineProperty(exports, "SaasLaunchHero", {
|
|
8
8
|
enumerable: true,
|
|
9
|
-
get: function () { return
|
|
9
|
+
get: function () { return chunkHPWZ5OL2_cjs.SaasLaunchHero; }
|
|
10
10
|
});
|
|
11
11
|
//# sourceMappingURL=heroes.cjs.map
|
|
12
12
|
//# sourceMappingURL=heroes.cjs.map
|
package/dist/heroes.css.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/heroes/SaasLaunchHero.css"],"sourcesContent":[".fb-saas-launch-hero {\
|
|
1
|
+
{"version":3,"sources":["../src/heroes/SaasLaunchHero.css"],"sourcesContent":[".fb-saas-launch-hero {\n position: relative;\n\n width: 100%;\n min-height: 100%;\n\n overflow: hidden;\n\n display: grid;\n\n grid-template-columns:\n minmax(0, 1.05fr)\n minmax(260px, 0.95fr);\n\n align-items: center;\n\n gap: 50px;\n\n padding:\n clamp(\n 35px,\n 7vw,\n 90px\n );\n\n color: white;\n}\n\n.fb-saas-launch-hero__glow {\n position: absolute;\n\n right: -8%;\n top: -25%;\n\n width: 55%;\n aspect-ratio: 1;\n\n border-radius: 50%;\n\n background:\n var(\n --fb-saas-accent\n );\n\n opacity: 0.16;\n\n filter: blur(85px);\n\n animation:\n fbSaasGlow\n 7s\n ease-in-out\n infinite alternate;\n}\n\n.fb-saas-launch-hero__content {\n position: relative;\n\n z-index: 2;\n}\n\n.fb-saas-launch-hero__eyebrow {\n display: block;\n\n color:\n var(\n --fb-saas-accent\n );\n\n font-family:\n \"DM Mono\",\n monospace;\n\n font-size: 9px;\n\n letter-spacing: 1.8px;\n}\n\n.fb-saas-launch-hero h2 {\n margin:\n 20px\n 0\n 0;\n\n font-size:\n clamp(\n 42px,\n 7vw,\n var(\n --fb-saas-headline-size\n )\n );\n\n font-weight: 550;\n\n line-height: 0.89;\n\n letter-spacing: -0.06em;\n}\n\n.fb-saas-launch-hero h2\nspan {\n display: block;\n}\n\n.fb-saas-launch-hero__content\n> p {\n max-width: 580px;\n\n margin:\n 24px\n 0\n 0;\n\n color:\n rgba(\n 255,\n 255,\n 255,\n 0.55\n );\n\n font-size: 14px;\n\n line-height: 1.7;\n}\n\n.fb-saas-launch-hero__actions {\n margin-top: 30px;\n\n display: flex;\n\n flex-wrap: wrap;\n\n gap: 10px;\n}\n\n.fb-saas-launch-hero__actions\nbutton {\n padding:\n 13px\n 20px;\n\n border-radius: 999px;\n\n font: inherit;\n\n font-size: 12px;\n\n cursor: pointer;\n\n transition:\n transform\n 0.2s\n ease;\n}\n\n.fb-saas-launch-hero__actions\nbutton:hover {\n transform:\n translateY(-2px);\n}\n\n.fb-saas-launch-hero__primary {\n border: 0;\n\n background: white;\n\n color: #08080b;\n}\n\n.fb-saas-launch-hero__secondary {\n border:\n 1px solid\n rgba(\n 255,\n 255,\n 255,\n 0.14\n );\n\n background:\n rgba(\n 255,\n 255,\n 255,\n 0.035\n );\n\n color: white;\n}\n\n.fb-saas-launch-hero__proof {\n margin-top: 32px;\n\n display: flex;\n\n align-items: center;\n\n gap: 12px;\n}\n\n.fb-saas-launch-hero__proof\n> div {\n display: flex;\n}\n\n.fb-saas-launch-hero__proof\n> div\nspan {\n width: 25px;\n height: 25px;\n\n margin-left: -6px;\n\n border:\n 2px solid\n #09090d;\n\n border-radius: 50%;\n\n background:\n linear-gradient(\n 135deg,\n var(\n --fb-saas-accent\n ),\n #d6cbff\n );\n}\n\n.fb-saas-launch-hero__proof\n> div\nspan:first-child {\n margin-left: 0;\n}\n\n.fb-saas-launch-hero__proof\np {\n margin: 0;\n\n max-width: 220px;\n\n color:\n rgba(\n 255,\n 255,\n 255,\n 0.38\n );\n\n font-size: 9px;\n\n line-height: 1.5;\n}\n\n.fb-saas-launch-hero__visual {\n position: relative;\n\n z-index: 2;\n\n min-height: 330px;\n\n padding: 28px;\n\n display: flex;\n\n flex-direction: column;\n\n justify-content:\n space-between;\n\n border:\n 1px solid\n rgba(\n 255,\n 255,\n 255,\n 0.1\n );\n\n border-radius: 24px;\n\n background:\n linear-gradient(\n 145deg,\n rgba(\n 255,\n 255,\n 255,\n 0.055\n ),\n rgba(\n 255,\n 255,\n 255,\n 0.015\n )\n );\n\n box-shadow:\n inset\n 0\n 1px\n 0\n rgba(\n 255,\n 255,\n 255,\n 0.08\n );\n}\n\n.fb-saas-launch-hero__visual-card\nspan {\n color:\n rgba(\n 255,\n 255,\n 255,\n 0.35\n );\n\n font-family:\n \"DM Mono\",\n monospace;\n\n font-size: 8px;\n}\n\n.fb-saas-launch-hero__visual-card\nstrong {\n display: block;\n\n margin-top: 8px;\n\n font-size: 38px;\n\n letter-spacing: -0.05em;\n}\n\n.fb-saas-launch-hero__visual-card\nsmall {\n display: inline-block;\n\n margin-top: 6px;\n\n color: #79e3a9;\n}\n\n.fb-saas-launch-hero__bars {\n height: 120px;\n\n display: flex;\n\n align-items: flex-end;\n\n gap: 8px;\n}\n\n.fb-saas-launch-hero__bars\nspan {\n flex: 1;\n\n border-radius:\n 5px\n 5px\n 2px\n 2px;\n\n background:\n linear-gradient(\n 180deg,\n var(\n --fb-saas-accent\n ),\n rgba(\n 143,\n 115,\n 255,\n 0.14\n )\n );\n\n animation:\n fbSaasBar\n 2.8s\n ease-in-out\n infinite alternate;\n}\n\n.fb-saas-launch-hero__bars\nspan:nth-child(even) {\n animation-delay:\n -1.2s;\n}\n\n@keyframes fbSaasGlow {\n to {\n transform:\n translate3d(\n -35px,\n 30px,\n 0\n )\n scale(1.15);\n }\n}\n\n@keyframes fbSaasBar {\n from {\n opacity: 0.55;\n\n transform:\n scaleY(0.82);\n\n transform-origin:\n bottom;\n }\n\n to {\n opacity: 1;\n\n transform:\n scaleY(1);\n }\n}\n\n@media (\n max-width:\n 760px\n) {\n .fb-saas-launch-hero {\n grid-template-columns:\n 1fr;\n }\n}\n\n@media (\n prefers-reduced-motion:\n reduce\n) {\n .fb-saas-launch-hero * {\n animation:\n none !important;\n }\n}"],"mappings":"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","names":[]}
|
package/dist/heroes.js
CHANGED