import { createRequire } from "node:module";
var __require = /* @__PURE__ */ createRequire(import.meta.url);

// src/libs/pricing-examples.ts
var PRICING_EXAMPLES = {
  free: {
    regenerationsPerMonth: 200,
    aiActionsPerMonth: 100,
    projects: 1
  },
  builder: {
    regenerationsPerMonthHint: "1,000–2,000+",
    aiActionsPerMonthHint: "1,000+"
  },
  team: {
    description: "Higher limits + cheaper per-regen at scale"
  }
};

// src/components/marketing/pricing-thinking-modal.tsx
import { CheckCircle } from "lucide-react";
import {
  Dialog,
  DialogContent,
  DialogDescription,
  DialogHeader,
  DialogTitle
} from "@contractspec/lib.ui-kit-web/ui/dialog";
import { Button } from "@contractspec/lib.design-system";
import { jsxDEV } from "react/jsx-dev-runtime";
"use client";
var pricingTiers = [
  {
    tag: "Planned",
    title: "Free",
    priceLine: "For hobbyists and pre-PMF teams",
    bullets: [
      "1 active project",
      "Small spec size",
      `Example: ~${PRICING_EXAMPLES.free.regenerationsPerMonth} free regenerations per month`,
      `Example: ~${PRICING_EXAMPLES.free.aiActionsPerMonth} free AI agent actions per month`,
      "Unlimited collaborators"
    ],
    note: "Good enough to build and launch a real product before paying."
  },
  {
    tag: "Planned",
    title: "Builder",
    priceLine: "Usage-based, for solo builders and small teams",
    bullets: [
      "More projects",
      `More monthly regenerations included (e.g. ${PRICING_EXAMPLES.builder.regenerationsPerMonthHint})`,
      `More AI agent actions included (e.g. ${PRICING_EXAMPLES.builder.aiActionsPerMonthHint})`,
      "Pay-as-you-go for extra regenerations and AI",
      "Basic environments (dev / prod)"
    ],
    note: "Pay for how fast and how often you evolve your system, not for seats."
  },
  {
    tag: "Planned",
    title: "Team & Platform",
    priceLine: "For teams standardizing on ContractSpec",
    bullets: [
      "Multiple projects and environments",
      "Higher regeneration and AI action limits",
      "Cheaper overages as you scale",
      "Advanced RBAC and governance",
      "SSO, audit trails, and longer retention"
    ],
    note: "For platform teams using ContractSpec as infra for multiple apps."
  }
];
var usageMetrics = [
  {
    name: "Regenerations",
    freeTier: `Free tier: e.g. ~${PRICING_EXAMPLES.free.regenerationsPerMonth} regenerations / month`,
    beyond: "Beyond: pay per additional regeneration, with volume discounts."
  },
  {
    name: "AI agent actions",
    freeTier: `Free tier: e.g. ~${PRICING_EXAMPLES.free.aiActionsPerMonth} AI agent actions / month`,
    beyond: "Beyond: pay-as-you-go for extra AI usage."
  },
  {
    name: "Projects",
    freeTier: `Free tier: ${PRICING_EXAMPLES.free.projects} project`,
    beyond: "Builder / Team: more projects included; extra projects available as you scale."
  }
];
function PricingThinkingModal({
  open,
  onOpenChange,
  onApplyClick
}) {
  return /* @__PURE__ */ jsxDEV(Dialog, {
    open,
    onOpenChange,
    children: /* @__PURE__ */ jsxDEV(DialogContent, {
      className: "max-h-[90vh] w-full overflow-y-auto md:max-w-5xl",
      children: [
        /* @__PURE__ */ jsxDEV(DialogHeader, {
          children: [
            /* @__PURE__ */ jsxDEV(DialogTitle, {
              children: "Tentative pricing (work in progress)"
            }, undefined, false, undefined, this),
            /* @__PURE__ */ jsxDEV(DialogDescription, {
              children: "We're still in design-partner mode. This is a draft of how we expect pricing to look once we open public access."
            }, undefined, false, undefined, this)
          ]
        }, undefined, true, undefined, this),
        /* @__PURE__ */ jsxDEV("div", {
          className: "space-y-8",
          children: [
            /* @__PURE__ */ jsxDEV("div", {
              className: "space-y-4",
              children: [
                /* @__PURE__ */ jsxDEV("div", {
                  className: "flex items-center gap-2",
                  children: [
                    /* @__PURE__ */ jsxDEV("span", {
                      className: "text-muted-foreground text-xs font-medium",
                      children: "Draft"
                    }, undefined, false, undefined, this),
                    /* @__PURE__ */ jsxDEV("span", {
                      className: "text-muted-foreground text-xs",
                      children: "•"
                    }, undefined, false, undefined, this),
                    /* @__PURE__ */ jsxDEV("span", {
                      className: "text-muted-foreground text-xs",
                      children: "Subject to change"
                    }, undefined, false, undefined, this)
                  ]
                }, undefined, true, undefined, this),
                /* @__PURE__ */ jsxDEV("div", {
                  className: "grid gap-4 md:grid-cols-3",
                  children: pricingTiers.map((tier) => /* @__PURE__ */ jsxDEV("div", {
                    className: "card-subtle relative space-y-4 p-6",
                    children: [
                      /* @__PURE__ */ jsxDEV("div", {
                        className: "bg-muted border-border absolute -top-2 left-1/2 -translate-x-1/2 rounded-full border px-2 py-0.5 text-xs font-medium",
                        children: tier.tag
                      }, undefined, false, undefined, this),
                      /* @__PURE__ */ jsxDEV("div", {
                        className: "space-y-2 pt-2",
                        children: [
                          /* @__PURE__ */ jsxDEV("h3", {
                            className: "text-xl font-bold",
                            children: tier.title
                          }, undefined, false, undefined, this),
                          /* @__PURE__ */ jsxDEV("p", {
                            className: "text-muted-foreground text-sm",
                            children: tier.priceLine
                          }, undefined, false, undefined, this)
                        ]
                      }, undefined, true, undefined, this),
                      /* @__PURE__ */ jsxDEV("ul", {
                        className: "space-y-2",
                        children: tier.bullets.map((bullet, i) => /* @__PURE__ */ jsxDEV("li", {
                          className: "text-muted-foreground flex gap-2 text-sm",
                          children: [
                            /* @__PURE__ */ jsxDEV(CheckCircle, {
                              size: 14,
                              className: "mt-0.5 shrink-0 text-violet-400"
                            }, undefined, false, undefined, this),
                            bullet
                          ]
                        }, i, true, undefined, this))
                      }, undefined, false, undefined, this),
                      /* @__PURE__ */ jsxDEV("p", {
                        className: "text-muted-foreground text-xs italic",
                        children: tier.note
                      }, undefined, false, undefined, this)
                    ]
                  }, tier.title, true, undefined, this))
                }, undefined, false, undefined, this)
              ]
            }, undefined, true, undefined, this),
            /* @__PURE__ */ jsxDEV("div", {
              className: "border-border space-y-4 border-t pt-6",
              children: [
                /* @__PURE__ */ jsxDEV("div", {
                  children: [
                    /* @__PURE__ */ jsxDEV("h3", {
                      className: "text-lg font-bold",
                      children: "Usage-based, with a generous free tier"
                    }, undefined, false, undefined, this),
                    /* @__PURE__ */ jsxDEV("p", {
                      className: "text-muted-foreground mt-2 text-sm",
                      children: "Inspired by products like PostHog, we plan to keep a generous free tier on all plans, then charge based on actual usage: regenerations, AI agent actions, and the number of projects you run on ContractSpec."
                    }, undefined, false, undefined, this),
                    /* @__PURE__ */ jsxDEV("p", {
                      className: "text-muted-foreground mt-3 text-xs italic",
                      children: "Free tier limits are intentionally small but useful: enough to try the agent and regenerate a real project, not enough to run a full team's workload for free."
                    }, undefined, false, undefined, this)
                  ]
                }, undefined, true, undefined, this),
                /* @__PURE__ */ jsxDEV("div", {
                  className: "grid gap-4 md:grid-cols-3",
                  children: usageMetrics.map((metric) => /* @__PURE__ */ jsxDEV("div", {
                    className: "card-subtle space-y-2 p-4",
                    children: [
                      /* @__PURE__ */ jsxDEV("h4", {
                        className: "text-sm font-semibold",
                        children: metric.name
                      }, undefined, false, undefined, this),
                      /* @__PURE__ */ jsxDEV("p", {
                        className: "text-muted-foreground text-xs",
                        children: metric.freeTier
                      }, undefined, false, undefined, this),
                      /* @__PURE__ */ jsxDEV("p", {
                        className: "text-muted-foreground text-xs",
                        children: metric.beyond
                      }, undefined, false, undefined, this)
                    ]
                  }, metric.name, true, undefined, this))
                }, undefined, false, undefined, this)
              ]
            }, undefined, true, undefined, this),
            /* @__PURE__ */ jsxDEV("div", {
              className: "border-border space-y-4 border-t pt-6",
              children: [
                /* @__PURE__ */ jsxDEV("p", {
                  className: "text-muted-foreground text-xs",
                  children: "These numbers are examples only. Final pricing and limits will evolve as we learn from design partners."
                }, undefined, false, undefined, this),
                /* @__PURE__ */ jsxDEV("p", {
                  className: "text-muted-foreground text-xs",
                  children: "This is a tentative pricing model. We're pre-PMF and pricing is still in draft, subject to change based on what we learn."
                }, undefined, false, undefined, this),
                /* @__PURE__ */ jsxDEV("p", {
                  className: "text-muted-foreground text-xs",
                  children: "Design partners get early access and a founding discount when paid plans launch."
                }, undefined, false, undefined, this),
                onApplyClick && /* @__PURE__ */ jsxDEV(Button, {
                  onClick: () => {
                    onOpenChange(false);
                    onApplyClick();
                  },
                  className: "w-full",
                  variant: "outline",
                  children: "Apply as a design partner"
                }, undefined, false, undefined, this)
              ]
            }, undefined, true, undefined, this)
          ]
        }, undefined, true, undefined, this)
      ]
    }, undefined, true, undefined, this)
  }, undefined, false, undefined, this);
}
export {
  PricingThinkingModal
};
