@contractspec/bundle.marketing 3.7.5 → 3.7.7
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/.turbo/turbo-build.log +84 -84
- package/AGENTS.md +29 -21
- package/CHANGELOG.md +27 -0
- package/README.md +36 -49
- package/dist/browser/components/marketing/ChangelogPage.js +8 -8
- package/dist/browser/components/marketing/CofounderPage.js +167 -523
- package/dist/browser/components/marketing/ContactClient.js +200 -207
- package/dist/browser/components/marketing/ContributePage.js +211 -463
- package/dist/browser/components/marketing/DesignPartnerPage.js +165 -218
- package/dist/browser/components/marketing/LandingPage.js +464 -568
- package/dist/browser/components/marketing/PricingClient.js +213 -839
- package/dist/browser/components/marketing/ProductClientPage.js +265 -463
- package/dist/browser/components/marketing/index.js +2007 -3338
- package/dist/browser/components/marketing/pricing-thinking-modal.js +12 -12
- package/dist/browser/components/marketing/sections/AudienceSection.js +2 -2
- package/dist/browser/components/marketing/sections/CorePositioningSection.js +2 -2
- package/dist/browser/components/marketing/sections/CtaSection.js +3 -3
- package/dist/browser/components/marketing/sections/FearsSection.js +3 -3
- package/dist/browser/components/marketing/sections/HeroMarketingSection.js +6 -6
- package/dist/browser/components/marketing/sections/IconGridSection.js +2 -2
- package/dist/browser/components/marketing/sections/OutputsSection.js +2 -2
- package/dist/browser/components/marketing/sections/ProblemSection.js +2 -2
- package/dist/browser/components/marketing/sections/SolutionSection.js +2 -2
- package/dist/browser/components/marketing/sections/StepsSection.js +4 -4
- package/dist/browser/components/marketing/studio-signup-section.js +25 -41
- package/dist/browser/components/templates/TemplatesClientPage.js +2324 -3578
- package/dist/browser/components/templates/TemplatesPage.js +1 -1
- package/dist/browser/components/templates/TemplatesPreviewModal.js +3 -3
- package/dist/browser/components/templates/index.js +2361 -3615
- package/dist/browser/index.js +2363 -3617
- package/dist/browser/libs/email/client.js +1 -1
- package/dist/browser/libs/email/contact.js +1 -1
- package/dist/browser/libs/email/newsletter.js +1 -1
- package/dist/browser/libs/email/waitlist-application.js +1 -1
- package/dist/browser/libs/email/waitlist.js +1 -1
- package/dist/browser/registry/engine.js +2003 -3334
- package/dist/browser/registry/index.js +2003 -3334
- package/dist/browser/registry/registry-docs.js +2 -2
- package/dist/browser/registry/registry-landing.js +2007 -3338
- package/dist/browser/registry/registry.js +2003 -3334
- package/dist/browser/registry/utils.js +2003 -3334
- package/dist/components/marketing/ChangelogPage.js +8 -8
- package/dist/components/marketing/CofounderPage.js +167 -523
- package/dist/components/marketing/ContactClient.js +200 -207
- package/dist/components/marketing/ContributePage.d.ts +0 -2
- package/dist/components/marketing/ContributePage.js +211 -463
- package/dist/components/marketing/DesignPartnerPage.js +165 -218
- package/dist/components/marketing/LandingPage.js +464 -568
- package/dist/components/marketing/PricingClient.js +213 -839
- package/dist/components/marketing/ProductClientPage.js +265 -463
- package/dist/components/marketing/index.d.ts +5 -5
- package/dist/components/marketing/index.js +2007 -3338
- package/dist/components/marketing/pricing-thinking-modal.js +12 -12
- package/dist/components/marketing/sections/AudienceSection.js +2 -2
- package/dist/components/marketing/sections/CorePositioningSection.js +2 -2
- package/dist/components/marketing/sections/CtaSection.js +3 -3
- package/dist/components/marketing/sections/FearsSection.js +3 -3
- package/dist/components/marketing/sections/HeroMarketingSection.js +6 -6
- package/dist/components/marketing/sections/IconGridSection.d.ts +3 -3
- package/dist/components/marketing/sections/IconGridSection.js +2 -2
- package/dist/components/marketing/sections/OutputsSection.js +2 -2
- package/dist/components/marketing/sections/ProblemSection.js +2 -2
- package/dist/components/marketing/sections/SolutionSection.js +2 -2
- package/dist/components/marketing/sections/StepsSection.js +4 -4
- package/dist/components/marketing/studio-signup-section.js +25 -41
- package/dist/components/templates/TemplatesClientPage.js +2324 -3578
- package/dist/components/templates/TemplatesPage.js +1 -1
- package/dist/components/templates/TemplatesPreviewModal.js +3 -3
- package/dist/components/templates/index.js +2361 -3615
- package/dist/index.js +2363 -3617
- package/dist/libs/email/client.js +1 -1
- package/dist/libs/email/contact.js +1 -1
- package/dist/libs/email/newsletter.js +1 -1
- package/dist/libs/email/waitlist-application.js +1 -1
- package/dist/libs/email/waitlist.js +1 -1
- package/dist/node/components/marketing/ChangelogPage.js +8 -8
- package/dist/node/components/marketing/CofounderPage.js +167 -523
- package/dist/node/components/marketing/ContactClient.js +200 -207
- package/dist/node/components/marketing/ContributePage.js +211 -463
- package/dist/node/components/marketing/DesignPartnerPage.js +165 -218
- package/dist/node/components/marketing/LandingPage.js +464 -568
- package/dist/node/components/marketing/PricingClient.js +213 -839
- package/dist/node/components/marketing/ProductClientPage.js +265 -463
- package/dist/node/components/marketing/index.js +2007 -3338
- package/dist/node/components/marketing/pricing-thinking-modal.js +12 -12
- package/dist/node/components/marketing/sections/AudienceSection.js +2 -2
- package/dist/node/components/marketing/sections/CorePositioningSection.js +2 -2
- package/dist/node/components/marketing/sections/CtaSection.js +3 -3
- package/dist/node/components/marketing/sections/FearsSection.js +3 -3
- package/dist/node/components/marketing/sections/HeroMarketingSection.js +6 -6
- package/dist/node/components/marketing/sections/IconGridSection.js +2 -2
- package/dist/node/components/marketing/sections/OutputsSection.js +2 -2
- package/dist/node/components/marketing/sections/ProblemSection.js +2 -2
- package/dist/node/components/marketing/sections/SolutionSection.js +2 -2
- package/dist/node/components/marketing/sections/StepsSection.js +4 -4
- package/dist/node/components/marketing/studio-signup-section.js +25 -41
- package/dist/node/components/templates/TemplatesClientPage.js +2324 -3578
- package/dist/node/components/templates/TemplatesPage.js +1 -1
- package/dist/node/components/templates/TemplatesPreviewModal.js +3 -3
- package/dist/node/components/templates/index.js +2361 -3615
- package/dist/node/index.js +2363 -3617
- package/dist/node/libs/email/client.js +1 -1
- package/dist/node/libs/email/contact.js +1 -1
- package/dist/node/libs/email/newsletter.js +1 -1
- package/dist/node/libs/email/waitlist-application.js +1 -1
- package/dist/node/libs/email/waitlist.js +1 -1
- package/dist/node/registry/engine.js +2003 -3334
- package/dist/node/registry/index.js +2003 -3334
- package/dist/node/registry/registry-docs.js +2 -2
- package/dist/node/registry/registry-landing.js +2007 -3338
- package/dist/node/registry/registry.js +2003 -3334
- package/dist/node/registry/utils.js +2003 -3334
- package/dist/registry/engine.js +2003 -3334
- package/dist/registry/index.js +2003 -3334
- package/dist/registry/registry-docs.js +2 -2
- package/dist/registry/registry-landing.js +2007 -3338
- package/dist/registry/registry.js +2003 -3334
- package/dist/registry/utils.js +2003 -3334
- package/package.json +29 -29
- package/src/bundles/MarketingBundle.ts +273 -273
- package/src/components/marketing/ChangelogPage.tsx +72 -100
- package/src/components/marketing/CofounderPage.tsx +120 -384
- package/src/components/marketing/ContactClient.tsx +164 -154
- package/src/components/marketing/ContributePage.tsx +139 -313
- package/src/components/marketing/DesignPartnerPage.tsx +133 -171
- package/src/components/marketing/LandingPage.tsx +353 -25
- package/src/components/marketing/PricingClient.tsx +192 -437
- package/src/components/marketing/ProductClientPage.tsx +255 -377
- package/src/components/marketing/index.ts +5 -5
- package/src/components/marketing/pricing-thinking-modal.tsx +197 -197
- package/src/components/marketing/sections/AudienceSection.tsx +55 -56
- package/src/components/marketing/sections/CorePositioningSection.tsx +37 -37
- package/src/components/marketing/sections/CtaSection.tsx +49 -50
- package/src/components/marketing/sections/DevelopersSection.tsx +26 -27
- package/src/components/marketing/sections/FearsSection.tsx +36 -37
- package/src/components/marketing/sections/HeroMarketingSection.tsx +59 -59
- package/src/components/marketing/sections/IconGridSection.tsx +71 -71
- package/src/components/marketing/sections/OutputsSection.tsx +51 -52
- package/src/components/marketing/sections/ProblemSection.tsx +39 -40
- package/src/components/marketing/sections/SolutionSection.tsx +39 -40
- package/src/components/marketing/sections/StepsSection.tsx +47 -48
- package/src/components/marketing/studio-signup-section.tsx +39 -41
- package/src/components/templates/TemplatesClientPage.tsx +727 -685
- package/src/components/templates/TemplatesPage.tsx +110 -110
- package/src/components/templates/TemplatesPreviewModal.tsx +197 -198
- package/src/index.ts +4 -4
- package/src/libs/email/client.test.ts +81 -81
- package/src/libs/email/client.ts +111 -111
- package/src/libs/email/contact.ts +35 -35
- package/src/libs/email/newsletter.ts +46 -46
- package/src/libs/email/types.ts +29 -29
- package/src/libs/email/utils.ts +5 -5
- package/src/libs/email/waitlist-application.ts +72 -72
- package/src/libs/email/waitlist.ts +46 -46
- package/src/libs/pricing-examples.ts +12 -12
- package/src/registry/engine.ts +16 -16
- package/src/registry/factory.ts +57 -57
- package/src/registry/registry-docs.ts +656 -666
- package/src/registry/registry-landing.ts +94 -95
- package/src/registry/registry.ts +36 -37
- package/src/registry/types.ts +2 -2
- package/src/registry/utils.ts +56 -56
- package/tsconfig.json +11 -11
- package/tsdown.config.js +5 -5
|
@@ -2,8 +2,8 @@ import { createRequire } from "node:module";
|
|
|
2
2
|
var __require = /* @__PURE__ */ createRequire(import.meta.url);
|
|
3
3
|
|
|
4
4
|
// src/libs/email/client.ts
|
|
5
|
-
import { createClient, Temv1alpha1 } from "@scaleway/sdk";
|
|
6
5
|
import { Logger } from "@contractspec/lib.logger";
|
|
6
|
+
import { createClient, Temv1alpha1 } from "@scaleway/sdk";
|
|
7
7
|
var DEFAULT_FROM = {
|
|
8
8
|
email: "noreply@transactional.contractspec.io",
|
|
9
9
|
name: "ContractSpec"
|
|
@@ -182,9 +182,8 @@ Submitted via ContractSpec contact form
|
|
|
182
182
|
};
|
|
183
183
|
|
|
184
184
|
// src/components/marketing/studio-signup-section.tsx
|
|
185
|
+
import { ArrowRight, Sparkles } from "lucide-react";
|
|
185
186
|
import Link from "next/link";
|
|
186
|
-
import { ArrowRight, Rocket } from "lucide-react";
|
|
187
|
-
import { Button } from "@contractspec/lib.design-system";
|
|
188
187
|
import { jsxDEV } from "react/jsx-dev-runtime";
|
|
189
188
|
"use client";
|
|
190
189
|
var studioUrl = "https://www.contractspec.studio";
|
|
@@ -195,62 +194,47 @@ function StudioSignupSection({
|
|
|
195
194
|
const isCompact = variant === "compact";
|
|
196
195
|
return /* @__PURE__ */ jsxDEV("div", {
|
|
197
196
|
id: "studio-signup",
|
|
198
|
-
className: isCompact ? "space-y-
|
|
197
|
+
className: `${isCompact ? "space-y-5 rounded-[28px] border border-border bg-card p-6" : "editorial-panel space-y-6"}`,
|
|
199
198
|
children: [
|
|
200
199
|
/* @__PURE__ */ jsxDEV("div", {
|
|
201
200
|
className: "space-y-4",
|
|
202
201
|
children: [
|
|
203
202
|
/* @__PURE__ */ jsxDEV("div", {
|
|
204
|
-
className: "
|
|
203
|
+
className: "badge",
|
|
205
204
|
children: [
|
|
206
|
-
/* @__PURE__ */ jsxDEV(
|
|
207
|
-
size: 14
|
|
208
|
-
className: "text-violet-300"
|
|
205
|
+
/* @__PURE__ */ jsxDEV(Sparkles, {
|
|
206
|
+
size: 14
|
|
209
207
|
}, undefined, false, undefined, this),
|
|
210
|
-
|
|
211
|
-
className: "text-sm font-medium text-violet-300",
|
|
212
|
-
children: "ContractSpec Studio"
|
|
213
|
-
}, undefined, false, undefined, this)
|
|
208
|
+
"Studio on top"
|
|
214
209
|
]
|
|
215
210
|
}, undefined, true, undefined, this),
|
|
216
211
|
/* @__PURE__ */ jsxDEV("h2", {
|
|
217
|
-
className: isCompact ? "text-
|
|
218
|
-
children: "
|
|
219
|
-
}, undefined, false, undefined, this),
|
|
220
|
-
/* @__PURE__ */ jsxDEV("p", {
|
|
221
|
-
className: "text-muted-foreground text-sm",
|
|
222
|
-
children: "The AI-powered product decision engine that turns product signals into spec-first deliverables."
|
|
212
|
+
className: isCompact ? "font-serif text-3xl tracking-[-0.04em]" : "font-serif text-4xl tracking-[-0.04em]",
|
|
213
|
+
children: "See the operating layer built on top of the open system."
|
|
223
214
|
}, undefined, false, undefined, this),
|
|
224
215
|
/* @__PURE__ */ jsxDEV("p", {
|
|
225
|
-
className: "text-muted-foreground text-
|
|
226
|
-
children: "
|
|
216
|
+
className: "text-muted-foreground text-sm leading-7",
|
|
217
|
+
children: "Studio packages the workflow for evidence, drafting, review, export, and follow-up. It should feel like the best product built on top of ContractSpec, not a different story."
|
|
227
218
|
}, undefined, false, undefined, this)
|
|
228
219
|
]
|
|
229
220
|
}, undefined, true, undefined, this),
|
|
230
221
|
/* @__PURE__ */ jsxDEV("div", {
|
|
231
|
-
className: "
|
|
222
|
+
className: "grid gap-3 sm:grid-cols-2",
|
|
232
223
|
children: [
|
|
233
|
-
/* @__PURE__ */ jsxDEV(
|
|
234
|
-
|
|
235
|
-
className: "
|
|
236
|
-
children:
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
"
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
asChild: true,
|
|
248
|
-
variant: "outline",
|
|
249
|
-
className: "w-full sm:w-auto",
|
|
250
|
-
children: /* @__PURE__ */ jsxDEV(Link, {
|
|
251
|
-
href: studioDocsUrl,
|
|
252
|
-
children: "Read Studio Docs"
|
|
253
|
-
}, undefined, false, undefined, this)
|
|
224
|
+
/* @__PURE__ */ jsxDEV(Link, {
|
|
225
|
+
href: studioUrl,
|
|
226
|
+
className: "btn-primary",
|
|
227
|
+
children: [
|
|
228
|
+
"Explore Studio ",
|
|
229
|
+
/* @__PURE__ */ jsxDEV(ArrowRight, {
|
|
230
|
+
className: "ml-2 h-4 w-4"
|
|
231
|
+
}, undefined, false, undefined, this)
|
|
232
|
+
]
|
|
233
|
+
}, undefined, true, undefined, this),
|
|
234
|
+
/* @__PURE__ */ jsxDEV(Link, {
|
|
235
|
+
href: studioDocsUrl,
|
|
236
|
+
className: "btn-ghost",
|
|
237
|
+
children: "Read Studio docs"
|
|
254
238
|
}, undefined, false, undefined, this)
|
|
255
239
|
]
|
|
256
240
|
}, undefined, true, undefined, this)
|
|
@@ -259,26 +243,19 @@ function StudioSignupSection({
|
|
|
259
243
|
}
|
|
260
244
|
|
|
261
245
|
// src/components/marketing/ContactClient.tsx
|
|
262
|
-
import { useActionState } from "react";
|
|
263
|
-
import {
|
|
264
|
-
Calendar,
|
|
265
|
-
MessageSquare,
|
|
266
|
-
CheckCircle,
|
|
267
|
-
AlertCircle
|
|
268
|
-
} from "lucide-react";
|
|
269
246
|
import {
|
|
270
247
|
ActionForm,
|
|
271
|
-
Button
|
|
248
|
+
Button,
|
|
272
249
|
Input,
|
|
273
250
|
Textarea
|
|
274
251
|
} from "@contractspec/lib.design-system";
|
|
275
|
-
import { VStack, HStack } from "@contractspec/lib.ui-kit-web/ui/stack";
|
|
276
252
|
import {
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
} from "
|
|
253
|
+
AlertCircle,
|
|
254
|
+
Calendar,
|
|
255
|
+
CheckCircle,
|
|
256
|
+
MessageSquare
|
|
257
|
+
} from "lucide-react";
|
|
258
|
+
import { useActionState } from "react";
|
|
282
259
|
import { jsxDEV as jsxDEV2 } from "react/jsx-dev-runtime";
|
|
283
260
|
"use client";
|
|
284
261
|
function ContactClient() {
|
|
@@ -287,183 +264,199 @@ function ContactClient() {
|
|
|
287
264
|
if (result.success) {
|
|
288
265
|
return {
|
|
289
266
|
success: true,
|
|
290
|
-
text: "Message sent successfully
|
|
291
|
-
};
|
|
292
|
-
} else {
|
|
293
|
-
return {
|
|
294
|
-
success: false,
|
|
295
|
-
text: result.text || "Failed to send message. Please try again."
|
|
267
|
+
text: "Message sent successfully. We'll get back to you soon."
|
|
296
268
|
};
|
|
297
269
|
}
|
|
270
|
+
return {
|
|
271
|
+
success: false,
|
|
272
|
+
text: result.text || "Failed to send message. Please try again."
|
|
273
|
+
};
|
|
298
274
|
};
|
|
299
275
|
const [contactResult, contactAction, contactPending] = useActionState(handleContactSubmit, null);
|
|
300
|
-
return /* @__PURE__ */ jsxDEV2("
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
className: "gap-4 text-center",
|
|
276
|
+
return /* @__PURE__ */ jsxDEV2("main", {
|
|
277
|
+
children: [
|
|
278
|
+
/* @__PURE__ */ jsxDEV2("section", {
|
|
279
|
+
className: "section-padding hero-gradient border-border/70 border-b",
|
|
280
|
+
children: /* @__PURE__ */ jsxDEV2("div", {
|
|
281
|
+
className: "editorial-shell grid gap-8 lg:grid-cols-[1.05fr_0.95fr]",
|
|
307
282
|
children: [
|
|
308
|
-
/* @__PURE__ */ jsxDEV2(
|
|
309
|
-
className: "
|
|
310
|
-
children:
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
283
|
+
/* @__PURE__ */ jsxDEV2("div", {
|
|
284
|
+
className: "space-y-5",
|
|
285
|
+
children: [
|
|
286
|
+
/* @__PURE__ */ jsxDEV2("p", {
|
|
287
|
+
className: "editorial-kicker",
|
|
288
|
+
children: "Contact"
|
|
289
|
+
}, undefined, false, undefined, this),
|
|
290
|
+
/* @__PURE__ */ jsxDEV2("h1", {
|
|
291
|
+
className: "editorial-title max-w-4xl",
|
|
292
|
+
children: "Talk to the team behind the open system and the Studio product."
|
|
293
|
+
}, undefined, false, undefined, this),
|
|
294
|
+
/* @__PURE__ */ jsxDEV2("p", {
|
|
295
|
+
className: "editorial-subtitle",
|
|
296
|
+
children: "Reach out when you are evaluating the OSS foundation, deciding whether Studio fits your workflow, or want a direct conversation about adoption."
|
|
297
|
+
}, undefined, false, undefined, this)
|
|
298
|
+
]
|
|
299
|
+
}, undefined, true, undefined, this),
|
|
300
|
+
/* @__PURE__ */ jsxDEV2(StudioSignupSection, {
|
|
301
|
+
variant: "compact"
|
|
315
302
|
}, undefined, false, undefined, this)
|
|
316
303
|
]
|
|
317
|
-
}, undefined, true, undefined, this)
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
304
|
+
}, undefined, true, undefined, this)
|
|
305
|
+
}, undefined, false, undefined, this),
|
|
306
|
+
/* @__PURE__ */ jsxDEV2("section", {
|
|
307
|
+
className: "editorial-section",
|
|
308
|
+
children: /* @__PURE__ */ jsxDEV2("div", {
|
|
309
|
+
className: "editorial-shell grid gap-8 lg:grid-cols-2",
|
|
322
310
|
children: [
|
|
323
|
-
/* @__PURE__ */ jsxDEV2(
|
|
324
|
-
className: "
|
|
311
|
+
/* @__PURE__ */ jsxDEV2("div", {
|
|
312
|
+
className: "editorial-panel space-y-6",
|
|
313
|
+
id: "call",
|
|
325
314
|
children: [
|
|
326
|
-
/* @__PURE__ */ jsxDEV2(
|
|
327
|
-
className: "
|
|
328
|
-
size: 24
|
|
329
|
-
}, undefined, false, undefined, this),
|
|
330
|
-
/* @__PURE__ */ jsxDEV2(VStack, {
|
|
331
|
-
className: "items-start gap-1",
|
|
315
|
+
/* @__PURE__ */ jsxDEV2("div", {
|
|
316
|
+
className: "space-y-3",
|
|
332
317
|
children: [
|
|
333
|
-
/* @__PURE__ */ jsxDEV2(
|
|
334
|
-
className: "
|
|
335
|
-
children:
|
|
318
|
+
/* @__PURE__ */ jsxDEV2("div", {
|
|
319
|
+
className: "badge",
|
|
320
|
+
children: [
|
|
321
|
+
/* @__PURE__ */ jsxDEV2(Calendar, {
|
|
322
|
+
size: 14
|
|
323
|
+
}, undefined, false, undefined, this),
|
|
324
|
+
"Book a conversation"
|
|
325
|
+
]
|
|
326
|
+
}, undefined, true, undefined, this),
|
|
327
|
+
/* @__PURE__ */ jsxDEV2("h2", {
|
|
328
|
+
className: "font-serif text-4xl tracking-[-0.04em]",
|
|
329
|
+
children: "Walk through your current system with us."
|
|
336
330
|
}, undefined, false, undefined, this),
|
|
337
|
-
/* @__PURE__ */ jsxDEV2(
|
|
338
|
-
className: "text-sm",
|
|
339
|
-
children: "
|
|
331
|
+
/* @__PURE__ */ jsxDEV2("p", {
|
|
332
|
+
className: "text-muted-foreground text-sm leading-7",
|
|
333
|
+
children: "Use the call when you want a direct conversation about fit, adoption order, or the right entry point between OSS and Studio."
|
|
340
334
|
}, undefined, false, undefined, this)
|
|
341
335
|
]
|
|
342
|
-
}, undefined, true, undefined, this)
|
|
336
|
+
}, undefined, true, undefined, this),
|
|
337
|
+
/* @__PURE__ */ jsxDEV2("div", {
|
|
338
|
+
className: "overflow-hidden rounded-[28px] border border-border",
|
|
339
|
+
children: /* @__PURE__ */ jsxDEV2("object", {
|
|
340
|
+
data: "https://meet.reclaimai.com/e/f863cb29-caac-44b6-972b-1407dd9545a3",
|
|
341
|
+
width: "100%",
|
|
342
|
+
height: "700px",
|
|
343
|
+
style: { outline: "none" },
|
|
344
|
+
"aria-label": "Calendar booking widget"
|
|
345
|
+
}, undefined, false, undefined, this)
|
|
346
|
+
}, undefined, false, undefined, this)
|
|
343
347
|
]
|
|
344
348
|
}, undefined, true, undefined, this),
|
|
345
349
|
/* @__PURE__ */ jsxDEV2("div", {
|
|
346
|
-
className: "
|
|
347
|
-
|
|
348
|
-
data: "https://meet.reclaimai.com/e/f863cb29-caac-44b6-972b-1407dd9545a3",
|
|
349
|
-
width: "100%",
|
|
350
|
-
height: "700px",
|
|
351
|
-
style: { outline: "none" },
|
|
352
|
-
"aria-label": "Calendar booking widget"
|
|
353
|
-
}, undefined, false, undefined, this)
|
|
354
|
-
}, undefined, false, undefined, this)
|
|
355
|
-
]
|
|
356
|
-
}, undefined, true, undefined, this),
|
|
357
|
-
/* @__PURE__ */ jsxDEV2(VStack, {
|
|
358
|
-
className: "card-subtle gap-6 p-8",
|
|
359
|
-
id: "message",
|
|
360
|
-
children: [
|
|
361
|
-
/* @__PURE__ */ jsxDEV2(HStack, {
|
|
362
|
-
className: "items-center gap-3",
|
|
350
|
+
className: "editorial-panel space-y-6",
|
|
351
|
+
id: "message",
|
|
363
352
|
children: [
|
|
364
|
-
/* @__PURE__ */ jsxDEV2(
|
|
365
|
-
className: "
|
|
366
|
-
size: 24
|
|
367
|
-
}, undefined, false, undefined, this),
|
|
368
|
-
/* @__PURE__ */ jsxDEV2(VStack, {
|
|
369
|
-
className: "items-start gap-1",
|
|
353
|
+
/* @__PURE__ */ jsxDEV2("div", {
|
|
354
|
+
className: "space-y-3",
|
|
370
355
|
children: [
|
|
371
|
-
/* @__PURE__ */ jsxDEV2(
|
|
372
|
-
className: "
|
|
373
|
-
children:
|
|
374
|
-
|
|
375
|
-
|
|
376
|
-
|
|
377
|
-
|
|
356
|
+
/* @__PURE__ */ jsxDEV2("div", {
|
|
357
|
+
className: "badge",
|
|
358
|
+
children: [
|
|
359
|
+
/* @__PURE__ */ jsxDEV2(MessageSquare, {
|
|
360
|
+
size: 14
|
|
361
|
+
}, undefined, false, undefined, this),
|
|
362
|
+
"Send a message"
|
|
363
|
+
]
|
|
364
|
+
}, undefined, true, undefined, this),
|
|
365
|
+
/* @__PURE__ */ jsxDEV2("h2", {
|
|
366
|
+
className: "font-serif text-4xl tracking-[-0.04em]",
|
|
367
|
+
children: "Share context, questions, or a project we should understand."
|
|
378
368
|
}, undefined, false, undefined, this)
|
|
379
369
|
]
|
|
380
|
-
}, undefined, true, undefined, this)
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
|
|
385
|
-
children: /* @__PURE__ */ jsxDEV2(VStack, {
|
|
386
|
-
className: "gap-4",
|
|
387
|
-
children: [
|
|
388
|
-
/* @__PURE__ */ jsxDEV2(VStack, {
|
|
389
|
-
className: "gap-2",
|
|
390
|
-
children: [
|
|
391
|
-
/* @__PURE__ */ jsxDEV2(Small, {
|
|
392
|
-
className: "text-sm font-medium",
|
|
393
|
-
children: "Name"
|
|
394
|
-
}, undefined, false, undefined, this),
|
|
395
|
-
/* @__PURE__ */ jsxDEV2(Input, {
|
|
396
|
-
id: "contact-name",
|
|
397
|
-
name: "name",
|
|
398
|
-
type: "text",
|
|
399
|
-
placeholder: "Your name",
|
|
400
|
-
disabled: contactPending || contactResult?.success,
|
|
401
|
-
required: true
|
|
402
|
-
}, undefined, false, undefined, this)
|
|
403
|
-
]
|
|
404
|
-
}, undefined, true, undefined, this),
|
|
405
|
-
/* @__PURE__ */ jsxDEV2(VStack, {
|
|
406
|
-
className: "gap-2",
|
|
370
|
+
}, undefined, true, undefined, this),
|
|
371
|
+
/* @__PURE__ */ jsxDEV2(ActionForm, {
|
|
372
|
+
action: contactAction,
|
|
373
|
+
children: /* @__PURE__ */ jsxDEV2("div", {
|
|
374
|
+
className: "space-y-4",
|
|
407
375
|
children: [
|
|
408
|
-
/* @__PURE__ */ jsxDEV2(
|
|
409
|
-
className: "
|
|
410
|
-
children:
|
|
411
|
-
|
|
412
|
-
|
|
413
|
-
|
|
414
|
-
|
|
415
|
-
|
|
416
|
-
|
|
417
|
-
|
|
376
|
+
/* @__PURE__ */ jsxDEV2("div", {
|
|
377
|
+
className: "space-y-2",
|
|
378
|
+
children: [
|
|
379
|
+
/* @__PURE__ */ jsxDEV2("label", {
|
|
380
|
+
htmlFor: "contact-name",
|
|
381
|
+
className: "font-medium text-sm",
|
|
382
|
+
children: "Name"
|
|
383
|
+
}, undefined, false, undefined, this),
|
|
384
|
+
/* @__PURE__ */ jsxDEV2(Input, {
|
|
385
|
+
id: "contact-name",
|
|
386
|
+
name: "name",
|
|
387
|
+
type: "text",
|
|
388
|
+
placeholder: "Your name",
|
|
389
|
+
disabled: contactPending || contactResult?.success,
|
|
390
|
+
required: true
|
|
391
|
+
}, undefined, false, undefined, this)
|
|
392
|
+
]
|
|
393
|
+
}, undefined, true, undefined, this),
|
|
394
|
+
/* @__PURE__ */ jsxDEV2("div", {
|
|
395
|
+
className: "space-y-2",
|
|
396
|
+
children: [
|
|
397
|
+
/* @__PURE__ */ jsxDEV2("label", {
|
|
398
|
+
htmlFor: "contact-email",
|
|
399
|
+
className: "font-medium text-sm",
|
|
400
|
+
children: "Email"
|
|
401
|
+
}, undefined, false, undefined, this),
|
|
402
|
+
/* @__PURE__ */ jsxDEV2(Input, {
|
|
403
|
+
id: "contact-email",
|
|
404
|
+
name: "email",
|
|
405
|
+
type: "email",
|
|
406
|
+
keyboard: { kind: "email" },
|
|
407
|
+
placeholder: "you@company.com",
|
|
408
|
+
disabled: contactPending || contactResult?.success,
|
|
409
|
+
required: true
|
|
410
|
+
}, undefined, false, undefined, this)
|
|
411
|
+
]
|
|
412
|
+
}, undefined, true, undefined, this),
|
|
413
|
+
/* @__PURE__ */ jsxDEV2("div", {
|
|
414
|
+
className: "space-y-2",
|
|
415
|
+
children: [
|
|
416
|
+
/* @__PURE__ */ jsxDEV2("label", {
|
|
417
|
+
htmlFor: "contact-message",
|
|
418
|
+
className: "font-medium text-sm",
|
|
419
|
+
children: "Message"
|
|
420
|
+
}, undefined, false, undefined, this),
|
|
421
|
+
/* @__PURE__ */ jsxDEV2(Textarea, {
|
|
422
|
+
id: "contact-message",
|
|
423
|
+
name: "message",
|
|
424
|
+
placeholder: "What are you trying to stabilize, and where is the current system breaking down?",
|
|
425
|
+
disabled: contactPending || contactResult?.success,
|
|
426
|
+
rows: 7,
|
|
427
|
+
required: true
|
|
428
|
+
}, undefined, false, undefined, this)
|
|
429
|
+
]
|
|
430
|
+
}, undefined, true, undefined, this),
|
|
431
|
+
contactResult && !contactPending ? /* @__PURE__ */ jsxDEV2("div", {
|
|
432
|
+
className: `flex items-center gap-2 rounded-2xl border px-4 py-3 text-sm ${contactResult.success ? "border-green-600/20 bg-green-600/10 text-green-700" : "border-red-600/20 bg-red-600/10 text-red-700"}`,
|
|
433
|
+
children: [
|
|
434
|
+
contactResult.success ? /* @__PURE__ */ jsxDEV2(CheckCircle, {
|
|
435
|
+
size: 16
|
|
436
|
+
}, undefined, false, undefined, this) : /* @__PURE__ */ jsxDEV2(AlertCircle, {
|
|
437
|
+
size: 16
|
|
438
|
+
}, undefined, false, undefined, this),
|
|
439
|
+
/* @__PURE__ */ jsxDEV2("span", {
|
|
440
|
+
children: contactResult.text
|
|
441
|
+
}, undefined, false, undefined, this)
|
|
442
|
+
]
|
|
443
|
+
}, undefined, true, undefined, this) : null,
|
|
444
|
+
/* @__PURE__ */ jsxDEV2(Button, {
|
|
445
|
+
type: "submit",
|
|
418
446
|
disabled: contactPending || contactResult?.success,
|
|
419
|
-
|
|
447
|
+
className: "w-full",
|
|
448
|
+
children: contactPending ? "Sending..." : "Send message"
|
|
420
449
|
}, undefined, false, undefined, this)
|
|
421
450
|
]
|
|
422
|
-
}, undefined, true, undefined, this)
|
|
423
|
-
|
|
424
|
-
|
|
425
|
-
|
|
426
|
-
/* @__PURE__ */ jsxDEV2(Small, {
|
|
427
|
-
className: "text-sm font-medium",
|
|
428
|
-
children: "Message"
|
|
429
|
-
}, undefined, false, undefined, this),
|
|
430
|
-
/* @__PURE__ */ jsxDEV2(Textarea, {
|
|
431
|
-
id: "contact-message",
|
|
432
|
-
name: "message",
|
|
433
|
-
placeholder: "Tell us what's on your mind...",
|
|
434
|
-
disabled: contactPending || contactResult?.success,
|
|
435
|
-
rows: 6,
|
|
436
|
-
required: true
|
|
437
|
-
}, undefined, false, undefined, this)
|
|
438
|
-
]
|
|
439
|
-
}, undefined, true, undefined, this),
|
|
440
|
-
contactResult && !contactPending && /* @__PURE__ */ jsxDEV2(HStack, {
|
|
441
|
-
className: `items-center gap-2 rounded-lg p-3 text-sm ${contactResult.success ? "border border-green-500/20 bg-green-500/10 text-green-400" : "border border-red-500/20 bg-red-500/10 text-red-400"}`,
|
|
442
|
-
children: [
|
|
443
|
-
contactResult.success ? /* @__PURE__ */ jsxDEV2(CheckCircle, {
|
|
444
|
-
size: 16
|
|
445
|
-
}, undefined, false, undefined, this) : /* @__PURE__ */ jsxDEV2(AlertCircle, {
|
|
446
|
-
size: 16
|
|
447
|
-
}, undefined, false, undefined, this),
|
|
448
|
-
/* @__PURE__ */ jsxDEV2(Small, {
|
|
449
|
-
children: contactResult.text
|
|
450
|
-
}, undefined, false, undefined, this)
|
|
451
|
-
]
|
|
452
|
-
}, undefined, true, undefined, this),
|
|
453
|
-
/* @__PURE__ */ jsxDEV2(Button2, {
|
|
454
|
-
type: "submit",
|
|
455
|
-
disabled: contactPending || contactResult?.success,
|
|
456
|
-
className: "w-full",
|
|
457
|
-
children: contactPending ? "Sending..." : "Send message"
|
|
458
|
-
}, undefined, false, undefined, this)
|
|
459
|
-
]
|
|
460
|
-
}, undefined, true, undefined, this)
|
|
461
|
-
}, undefined, false, undefined, this)
|
|
451
|
+
}, undefined, true, undefined, this)
|
|
452
|
+
}, undefined, false, undefined, this)
|
|
453
|
+
]
|
|
454
|
+
}, undefined, true, undefined, this)
|
|
462
455
|
]
|
|
463
456
|
}, undefined, true, undefined, this)
|
|
464
|
-
|
|
465
|
-
|
|
466
|
-
}, undefined,
|
|
457
|
+
}, undefined, false, undefined, this)
|
|
458
|
+
]
|
|
459
|
+
}, undefined, true, undefined, this);
|
|
467
460
|
}
|
|
468
461
|
export {
|
|
469
462
|
ContactClient
|