@medialane/ui 0.6.0 → 0.8.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/dist/components/launchpad-services.cjs +166 -129
- package/dist/components/launchpad-services.cjs.map +1 -1
- package/dist/components/launchpad-services.d.cts +30 -9
- package/dist/components/launchpad-services.d.ts +30 -9
- package/dist/components/launchpad-services.js +166 -128
- package/dist/components/launchpad-services.js.map +1 -1
- package/dist/data/launchpad-services.cjs +151 -35
- package/dist/data/launchpad-services.cjs.map +1 -1
- package/dist/data/launchpad-services.d.cts +15 -1
- package/dist/data/launchpad-services.d.ts +15 -1
- package/dist/data/launchpad-services.js +152 -35
- package/dist/data/launchpad-services.js.map +1 -1
- package/dist/index.cjs +8 -5
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +2 -3
- package/dist/index.d.ts +2 -3
- package/dist/index.js +6 -5
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
- package/dist/components/launchpad-grid.cjs +0 -77
- package/dist/components/launchpad-grid.cjs.map +0 -1
- package/dist/components/launchpad-grid.d.cts +0 -20
- package/dist/components/launchpad-grid.d.ts +0 -20
- package/dist/components/launchpad-grid.js +0 -43
- package/dist/components/launchpad-grid.js.map +0 -1
package/package.json
CHANGED
|
@@ -1,77 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
"use client";
|
|
3
|
-
var __create = Object.create;
|
|
4
|
-
var __defProp = Object.defineProperty;
|
|
5
|
-
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
6
|
-
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
7
|
-
var __getProtoOf = Object.getPrototypeOf;
|
|
8
|
-
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
9
|
-
var __export = (target, all) => {
|
|
10
|
-
for (var name in all)
|
|
11
|
-
__defProp(target, name, { get: all[name], enumerable: true });
|
|
12
|
-
};
|
|
13
|
-
var __copyProps = (to, from, except, desc) => {
|
|
14
|
-
if (from && typeof from === "object" || typeof from === "function") {
|
|
15
|
-
for (let key of __getOwnPropNames(from))
|
|
16
|
-
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
17
|
-
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
18
|
-
}
|
|
19
|
-
return to;
|
|
20
|
-
};
|
|
21
|
-
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
22
|
-
// If the importer is in node compatibility mode or this is not an ESM
|
|
23
|
-
// file that has been converted to a CommonJS file using a Babel-
|
|
24
|
-
// compatible transform (i.e. "__esModule" has not been set), then set
|
|
25
|
-
// "default" to the CommonJS "module.exports" for node compatibility.
|
|
26
|
-
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
|
27
|
-
mod
|
|
28
|
-
));
|
|
29
|
-
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
30
|
-
var launchpad_grid_exports = {};
|
|
31
|
-
__export(launchpad_grid_exports, {
|
|
32
|
-
LaunchpadGrid: () => LaunchpadGrid
|
|
33
|
-
});
|
|
34
|
-
module.exports = __toCommonJS(launchpad_grid_exports);
|
|
35
|
-
var import_jsx_runtime = require("react/jsx-runtime");
|
|
36
|
-
var import_link = __toESM(require("next/link"), 1);
|
|
37
|
-
var import_lucide_react = require("lucide-react");
|
|
38
|
-
function ServiceCard({ feature }) {
|
|
39
|
-
const { icon: Icon, label, subtitle, accent, href } = feature;
|
|
40
|
-
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_link.default, { href, className: "group block", children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { className: "card-base overflow-hidden", children: /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { className: `relative aspect-[3/4] w-full bg-gradient-to-br ${accent}`, children: [
|
|
41
|
-
/* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { className: "absolute inset-0 bg-[radial-gradient(ellipse_at_30%_25%,rgba(255,255,255,0.14),transparent_60%)]" }),
|
|
42
|
-
/* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { className: "absolute -bottom-6 -right-6 opacity-[0.12] pointer-events-none", children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon, { className: "h-36 w-36 text-white" }) }),
|
|
43
|
-
/* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { className: "absolute inset-0 flex flex-col justify-between p-4", children: [
|
|
44
|
-
/* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { className: "h-11 w-11 rounded-2xl bg-white/10 backdrop-blur-sm flex items-center justify-center ring-1 ring-white/20 group-hover:bg-white/[0.18] transition-colors duration-300", children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon, { className: "h-5 w-5 text-white" }) }),
|
|
45
|
-
/* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { children: [
|
|
46
|
-
/* @__PURE__ */ (0, import_jsx_runtime.jsx)("p", { className: "text-lg font-black text-white leading-tight tracking-tight", children: label }),
|
|
47
|
-
/* @__PURE__ */ (0, import_jsx_runtime.jsx)("p", { className: "text-xs text-white/65 mt-1.5 leading-relaxed", children: subtitle })
|
|
48
|
-
] })
|
|
49
|
-
] })
|
|
50
|
-
] }) }) });
|
|
51
|
-
}
|
|
52
|
-
function LaunchpadGrid({
|
|
53
|
-
title = "Creator Launchpad",
|
|
54
|
-
titleHref = "/launchpad",
|
|
55
|
-
titleHrefLabel = "All services",
|
|
56
|
-
features
|
|
57
|
-
}) {
|
|
58
|
-
return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("section", { className: "space-y-4", children: [
|
|
59
|
-
/* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { className: "flex items-center justify-between", children: [
|
|
60
|
-
/* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { className: "flex items-center gap-2.5", children: [
|
|
61
|
-
/* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { className: "h-7 w-7 rounded-lg bg-gradient-to-br from-primary to-purple-600 flex items-center justify-center shadow-md shadow-primary/20", children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_lucide_react.Rocket, { className: "h-3.5 w-3.5 text-white" }) }),
|
|
62
|
-
/* @__PURE__ */ (0, import_jsx_runtime.jsx)("h2", { className: "text-lg sm:text-xl font-semibold", children: title })
|
|
63
|
-
] }),
|
|
64
|
-
/* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_link.default, { href: titleHref, className: "inline-flex items-center gap-1 text-sm text-muted-foreground hover:text-foreground px-3 py-1.5 rounded-md hover:bg-accent transition-colors", children: [
|
|
65
|
-
titleHrefLabel,
|
|
66
|
-
" ",
|
|
67
|
-
/* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_lucide_react.ArrowRight, { className: "h-3.5 w-3.5" })
|
|
68
|
-
] })
|
|
69
|
-
] }),
|
|
70
|
-
/* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { className: "w-full overflow-x-auto scrollbar-hide", children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { className: "flex gap-3 snap-x snap-mandatory pb-2", style: { width: "max-content" }, children: features.map((f) => /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { className: "w-56 sm:w-64 snap-start shrink-0", children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(ServiceCard, { feature: f }) }, f.label)) }) })
|
|
71
|
-
] });
|
|
72
|
-
}
|
|
73
|
-
// Annotate the CommonJS export names for ESM import in node:
|
|
74
|
-
0 && (module.exports = {
|
|
75
|
-
LaunchpadGrid
|
|
76
|
-
});
|
|
77
|
-
//# sourceMappingURL=launchpad-grid.cjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/components/launchpad-grid.tsx"],"sourcesContent":["\"use client\";\n\nimport Link from \"next/link\";\nimport { ArrowRight, Rocket, type LucideIcon } from \"lucide-react\";\n\nexport interface FeatureItem {\n icon: LucideIcon;\n label: string;\n subtitle: string;\n /** Tailwind gradient string e.g. \"from-violet-500 to-purple-600\" */\n accent: string;\n href: string;\n}\n\nexport interface LaunchpadGridProps {\n title?: string;\n titleHref?: string;\n titleHrefLabel?: string;\n features: FeatureItem[];\n}\n\nfunction ServiceCard({ feature }: { feature: FeatureItem }) {\n const { icon: Icon, label, subtitle, accent, href } = feature;\n return (\n <Link href={href} className=\"group block\">\n <div className=\"card-base overflow-hidden\">\n <div className={`relative aspect-[3/4] w-full bg-gradient-to-br ${accent}`}>\n <div className=\"absolute inset-0 bg-[radial-gradient(ellipse_at_30%_25%,rgba(255,255,255,0.14),transparent_60%)]\" />\n <div className=\"absolute -bottom-6 -right-6 opacity-[0.12] pointer-events-none\">\n <Icon className=\"h-36 w-36 text-white\" />\n </div>\n <div className=\"absolute inset-0 flex flex-col justify-between p-4\">\n <div className=\"h-11 w-11 rounded-2xl bg-white/10 backdrop-blur-sm flex items-center justify-center ring-1 ring-white/20 group-hover:bg-white/[0.18] transition-colors duration-300\">\n <Icon className=\"h-5 w-5 text-white\" />\n </div>\n <div>\n <p className=\"text-lg font-black text-white leading-tight tracking-tight\">{label}</p>\n <p className=\"text-xs text-white/65 mt-1.5 leading-relaxed\">{subtitle}</p>\n </div>\n </div>\n </div>\n </div>\n </Link>\n );\n}\n\nexport function LaunchpadGrid({\n title = \"Creator Launchpad\",\n titleHref = \"/launchpad\",\n titleHrefLabel = \"All services\",\n features,\n}: LaunchpadGridProps) {\n return (\n <section className=\"space-y-4\">\n <div className=\"flex items-center justify-between\">\n <div className=\"flex items-center gap-2.5\">\n <div className=\"h-7 w-7 rounded-lg bg-gradient-to-br from-primary to-purple-600 flex items-center justify-center shadow-md shadow-primary/20\">\n <Rocket className=\"h-3.5 w-3.5 text-white\" />\n </div>\n <h2 className=\"text-lg sm:text-xl font-semibold\">{title}</h2>\n </div>\n <Link href={titleHref} className=\"inline-flex items-center gap-1 text-sm text-muted-foreground hover:text-foreground px-3 py-1.5 rounded-md hover:bg-accent transition-colors\">\n {titleHrefLabel} <ArrowRight className=\"h-3.5 w-3.5\" />\n </Link>\n </div>\n\n <div className=\"w-full overflow-x-auto scrollbar-hide\">\n <div className=\"flex gap-3 snap-x snap-mandatory pb-2\" style={{ width: \"max-content\" }}>\n {features.map((f) => (\n <div key={f.label} className=\"w-56 sm:w-64 snap-start shrink-0\">\n <ServiceCard feature={f} />\n </div>\n ))}\n </div>\n </div>\n </section>\n );\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AA2BU;AAzBV,kBAAiB;AACjB,0BAAoD;AAkBpD,SAAS,YAAY,EAAE,QAAQ,GAA6B;AAC1D,QAAM,EAAE,MAAM,MAAM,OAAO,UAAU,QAAQ,KAAK,IAAI;AACtD,SACE,4CAAC,YAAAA,SAAA,EAAK,MAAY,WAAU,eAC1B,sDAAC,SAAI,WAAU,6BACb,uDAAC,SAAI,WAAW,kDAAkD,MAAM,IACtE;AAAA,gDAAC,SAAI,WAAU,oGAAmG;AAAA,IAClH,4CAAC,SAAI,WAAU,kEACb,sDAAC,QAAK,WAAU,wBAAuB,GACzC;AAAA,IACA,6CAAC,SAAI,WAAU,sDACb;AAAA,kDAAC,SAAI,WAAU,uKACb,sDAAC,QAAK,WAAU,sBAAqB,GACvC;AAAA,MACA,6CAAC,SACC;AAAA,oDAAC,OAAE,WAAU,8DAA8D,iBAAM;AAAA,QACjF,4CAAC,OAAE,WAAU,gDAAgD,oBAAS;AAAA,SACxE;AAAA,OACF;AAAA,KACF,GACF,GACF;AAEJ;AAEO,SAAS,cAAc;AAAA,EAC5B,QAAQ;AAAA,EACR,YAAY;AAAA,EACZ,iBAAiB;AAAA,EACjB;AACF,GAAuB;AACrB,SACE,6CAAC,aAAQ,WAAU,aACjB;AAAA,iDAAC,SAAI,WAAU,qCACb;AAAA,mDAAC,SAAI,WAAU,6BACb;AAAA,oDAAC,SAAI,WAAU,gIACb,sDAAC,8BAAO,WAAU,0BAAyB,GAC7C;AAAA,QACA,4CAAC,QAAG,WAAU,oCAAoC,iBAAM;AAAA,SAC1D;AAAA,MACA,6CAAC,YAAAA,SAAA,EAAK,MAAM,WAAW,WAAU,+IAC9B;AAAA;AAAA,QAAe;AAAA,QAAC,4CAAC,kCAAW,WAAU,eAAc;AAAA,SACvD;AAAA,OACF;AAAA,IAEA,4CAAC,SAAI,WAAU,yCACb,sDAAC,SAAI,WAAU,yCAAwC,OAAO,EAAE,OAAO,cAAc,GAClF,mBAAS,IAAI,CAAC,MACb,4CAAC,SAAkB,WAAU,oCAC3B,sDAAC,eAAY,SAAS,GAAG,KADjB,EAAE,KAEZ,CACD,GACH,GACF;AAAA,KACF;AAEJ;","names":["Link"]}
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
2
|
-
import { LucideIcon } from 'lucide-react';
|
|
3
|
-
|
|
4
|
-
interface FeatureItem {
|
|
5
|
-
icon: LucideIcon;
|
|
6
|
-
label: string;
|
|
7
|
-
subtitle: string;
|
|
8
|
-
/** Tailwind gradient string e.g. "from-violet-500 to-purple-600" */
|
|
9
|
-
accent: string;
|
|
10
|
-
href: string;
|
|
11
|
-
}
|
|
12
|
-
interface LaunchpadGridProps {
|
|
13
|
-
title?: string;
|
|
14
|
-
titleHref?: string;
|
|
15
|
-
titleHrefLabel?: string;
|
|
16
|
-
features: FeatureItem[];
|
|
17
|
-
}
|
|
18
|
-
declare function LaunchpadGrid({ title, titleHref, titleHrefLabel, features, }: LaunchpadGridProps): react_jsx_runtime.JSX.Element;
|
|
19
|
-
|
|
20
|
-
export { type FeatureItem, LaunchpadGrid, type LaunchpadGridProps };
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
2
|
-
import { LucideIcon } from 'lucide-react';
|
|
3
|
-
|
|
4
|
-
interface FeatureItem {
|
|
5
|
-
icon: LucideIcon;
|
|
6
|
-
label: string;
|
|
7
|
-
subtitle: string;
|
|
8
|
-
/** Tailwind gradient string e.g. "from-violet-500 to-purple-600" */
|
|
9
|
-
accent: string;
|
|
10
|
-
href: string;
|
|
11
|
-
}
|
|
12
|
-
interface LaunchpadGridProps {
|
|
13
|
-
title?: string;
|
|
14
|
-
titleHref?: string;
|
|
15
|
-
titleHrefLabel?: string;
|
|
16
|
-
features: FeatureItem[];
|
|
17
|
-
}
|
|
18
|
-
declare function LaunchpadGrid({ title, titleHref, titleHrefLabel, features, }: LaunchpadGridProps): react_jsx_runtime.JSX.Element;
|
|
19
|
-
|
|
20
|
-
export { type FeatureItem, LaunchpadGrid, type LaunchpadGridProps };
|
|
@@ -1,43 +0,0 @@
|
|
|
1
|
-
"use client";
|
|
2
|
-
import { jsx, jsxs } from "react/jsx-runtime";
|
|
3
|
-
import Link from "next/link";
|
|
4
|
-
import { ArrowRight, Rocket } from "lucide-react";
|
|
5
|
-
function ServiceCard({ feature }) {
|
|
6
|
-
const { icon: Icon, label, subtitle, accent, href } = feature;
|
|
7
|
-
return /* @__PURE__ */ jsx(Link, { href, className: "group block", children: /* @__PURE__ */ jsx("div", { className: "card-base overflow-hidden", children: /* @__PURE__ */ jsxs("div", { className: `relative aspect-[3/4] w-full bg-gradient-to-br ${accent}`, children: [
|
|
8
|
-
/* @__PURE__ */ jsx("div", { className: "absolute inset-0 bg-[radial-gradient(ellipse_at_30%_25%,rgba(255,255,255,0.14),transparent_60%)]" }),
|
|
9
|
-
/* @__PURE__ */ jsx("div", { className: "absolute -bottom-6 -right-6 opacity-[0.12] pointer-events-none", children: /* @__PURE__ */ jsx(Icon, { className: "h-36 w-36 text-white" }) }),
|
|
10
|
-
/* @__PURE__ */ jsxs("div", { className: "absolute inset-0 flex flex-col justify-between p-4", children: [
|
|
11
|
-
/* @__PURE__ */ jsx("div", { className: "h-11 w-11 rounded-2xl bg-white/10 backdrop-blur-sm flex items-center justify-center ring-1 ring-white/20 group-hover:bg-white/[0.18] transition-colors duration-300", children: /* @__PURE__ */ jsx(Icon, { className: "h-5 w-5 text-white" }) }),
|
|
12
|
-
/* @__PURE__ */ jsxs("div", { children: [
|
|
13
|
-
/* @__PURE__ */ jsx("p", { className: "text-lg font-black text-white leading-tight tracking-tight", children: label }),
|
|
14
|
-
/* @__PURE__ */ jsx("p", { className: "text-xs text-white/65 mt-1.5 leading-relaxed", children: subtitle })
|
|
15
|
-
] })
|
|
16
|
-
] })
|
|
17
|
-
] }) }) });
|
|
18
|
-
}
|
|
19
|
-
function LaunchpadGrid({
|
|
20
|
-
title = "Creator Launchpad",
|
|
21
|
-
titleHref = "/launchpad",
|
|
22
|
-
titleHrefLabel = "All services",
|
|
23
|
-
features
|
|
24
|
-
}) {
|
|
25
|
-
return /* @__PURE__ */ jsxs("section", { className: "space-y-4", children: [
|
|
26
|
-
/* @__PURE__ */ jsxs("div", { className: "flex items-center justify-between", children: [
|
|
27
|
-
/* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2.5", children: [
|
|
28
|
-
/* @__PURE__ */ jsx("div", { className: "h-7 w-7 rounded-lg bg-gradient-to-br from-primary to-purple-600 flex items-center justify-center shadow-md shadow-primary/20", children: /* @__PURE__ */ jsx(Rocket, { className: "h-3.5 w-3.5 text-white" }) }),
|
|
29
|
-
/* @__PURE__ */ jsx("h2", { className: "text-lg sm:text-xl font-semibold", children: title })
|
|
30
|
-
] }),
|
|
31
|
-
/* @__PURE__ */ jsxs(Link, { href: titleHref, className: "inline-flex items-center gap-1 text-sm text-muted-foreground hover:text-foreground px-3 py-1.5 rounded-md hover:bg-accent transition-colors", children: [
|
|
32
|
-
titleHrefLabel,
|
|
33
|
-
" ",
|
|
34
|
-
/* @__PURE__ */ jsx(ArrowRight, { className: "h-3.5 w-3.5" })
|
|
35
|
-
] })
|
|
36
|
-
] }),
|
|
37
|
-
/* @__PURE__ */ jsx("div", { className: "w-full overflow-x-auto scrollbar-hide", children: /* @__PURE__ */ jsx("div", { className: "flex gap-3 snap-x snap-mandatory pb-2", style: { width: "max-content" }, children: features.map((f) => /* @__PURE__ */ jsx("div", { className: "w-56 sm:w-64 snap-start shrink-0", children: /* @__PURE__ */ jsx(ServiceCard, { feature: f }) }, f.label)) }) })
|
|
38
|
-
] });
|
|
39
|
-
}
|
|
40
|
-
export {
|
|
41
|
-
LaunchpadGrid
|
|
42
|
-
};
|
|
43
|
-
//# sourceMappingURL=launchpad-grid.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/components/launchpad-grid.tsx"],"sourcesContent":["\"use client\";\n\nimport Link from \"next/link\";\nimport { ArrowRight, Rocket, type LucideIcon } from \"lucide-react\";\n\nexport interface FeatureItem {\n icon: LucideIcon;\n label: string;\n subtitle: string;\n /** Tailwind gradient string e.g. \"from-violet-500 to-purple-600\" */\n accent: string;\n href: string;\n}\n\nexport interface LaunchpadGridProps {\n title?: string;\n titleHref?: string;\n titleHrefLabel?: string;\n features: FeatureItem[];\n}\n\nfunction ServiceCard({ feature }: { feature: FeatureItem }) {\n const { icon: Icon, label, subtitle, accent, href } = feature;\n return (\n <Link href={href} className=\"group block\">\n <div className=\"card-base overflow-hidden\">\n <div className={`relative aspect-[3/4] w-full bg-gradient-to-br ${accent}`}>\n <div className=\"absolute inset-0 bg-[radial-gradient(ellipse_at_30%_25%,rgba(255,255,255,0.14),transparent_60%)]\" />\n <div className=\"absolute -bottom-6 -right-6 opacity-[0.12] pointer-events-none\">\n <Icon className=\"h-36 w-36 text-white\" />\n </div>\n <div className=\"absolute inset-0 flex flex-col justify-between p-4\">\n <div className=\"h-11 w-11 rounded-2xl bg-white/10 backdrop-blur-sm flex items-center justify-center ring-1 ring-white/20 group-hover:bg-white/[0.18] transition-colors duration-300\">\n <Icon className=\"h-5 w-5 text-white\" />\n </div>\n <div>\n <p className=\"text-lg font-black text-white leading-tight tracking-tight\">{label}</p>\n <p className=\"text-xs text-white/65 mt-1.5 leading-relaxed\">{subtitle}</p>\n </div>\n </div>\n </div>\n </div>\n </Link>\n );\n}\n\nexport function LaunchpadGrid({\n title = \"Creator Launchpad\",\n titleHref = \"/launchpad\",\n titleHrefLabel = \"All services\",\n features,\n}: LaunchpadGridProps) {\n return (\n <section className=\"space-y-4\">\n <div className=\"flex items-center justify-between\">\n <div className=\"flex items-center gap-2.5\">\n <div className=\"h-7 w-7 rounded-lg bg-gradient-to-br from-primary to-purple-600 flex items-center justify-center shadow-md shadow-primary/20\">\n <Rocket className=\"h-3.5 w-3.5 text-white\" />\n </div>\n <h2 className=\"text-lg sm:text-xl font-semibold\">{title}</h2>\n </div>\n <Link href={titleHref} className=\"inline-flex items-center gap-1 text-sm text-muted-foreground hover:text-foreground px-3 py-1.5 rounded-md hover:bg-accent transition-colors\">\n {titleHrefLabel} <ArrowRight className=\"h-3.5 w-3.5\" />\n </Link>\n </div>\n\n <div className=\"w-full overflow-x-auto scrollbar-hide\">\n <div className=\"flex gap-3 snap-x snap-mandatory pb-2\" style={{ width: \"max-content\" }}>\n {features.map((f) => (\n <div key={f.label} className=\"w-56 sm:w-64 snap-start shrink-0\">\n <ServiceCard feature={f} />\n </div>\n ))}\n </div>\n </div>\n </section>\n );\n}\n"],"mappings":";AA2BU,cAQE,YARF;AAzBV,OAAO,UAAU;AACjB,SAAS,YAAY,cAA+B;AAkBpD,SAAS,YAAY,EAAE,QAAQ,GAA6B;AAC1D,QAAM,EAAE,MAAM,MAAM,OAAO,UAAU,QAAQ,KAAK,IAAI;AACtD,SACE,oBAAC,QAAK,MAAY,WAAU,eAC1B,8BAAC,SAAI,WAAU,6BACb,+BAAC,SAAI,WAAW,kDAAkD,MAAM,IACtE;AAAA,wBAAC,SAAI,WAAU,oGAAmG;AAAA,IAClH,oBAAC,SAAI,WAAU,kEACb,8BAAC,QAAK,WAAU,wBAAuB,GACzC;AAAA,IACA,qBAAC,SAAI,WAAU,sDACb;AAAA,0BAAC,SAAI,WAAU,uKACb,8BAAC,QAAK,WAAU,sBAAqB,GACvC;AAAA,MACA,qBAAC,SACC;AAAA,4BAAC,OAAE,WAAU,8DAA8D,iBAAM;AAAA,QACjF,oBAAC,OAAE,WAAU,gDAAgD,oBAAS;AAAA,SACxE;AAAA,OACF;AAAA,KACF,GACF,GACF;AAEJ;AAEO,SAAS,cAAc;AAAA,EAC5B,QAAQ;AAAA,EACR,YAAY;AAAA,EACZ,iBAAiB;AAAA,EACjB;AACF,GAAuB;AACrB,SACE,qBAAC,aAAQ,WAAU,aACjB;AAAA,yBAAC,SAAI,WAAU,qCACb;AAAA,2BAAC,SAAI,WAAU,6BACb;AAAA,4BAAC,SAAI,WAAU,gIACb,8BAAC,UAAO,WAAU,0BAAyB,GAC7C;AAAA,QACA,oBAAC,QAAG,WAAU,oCAAoC,iBAAM;AAAA,SAC1D;AAAA,MACA,qBAAC,QAAK,MAAM,WAAW,WAAU,+IAC9B;AAAA;AAAA,QAAe;AAAA,QAAC,oBAAC,cAAW,WAAU,eAAc;AAAA,SACvD;AAAA,OACF;AAAA,IAEA,oBAAC,SAAI,WAAU,yCACb,8BAAC,SAAI,WAAU,yCAAwC,OAAO,EAAE,OAAO,cAAc,GAClF,mBAAS,IAAI,CAAC,MACb,oBAAC,SAAkB,WAAU,oCAC3B,8BAAC,eAAY,SAAS,GAAG,KADjB,EAAE,KAEZ,CACD,GACH,GACF;AAAA,KACF;AAEJ;","names":[]}
|