-
Executions
-
+
Executions
+
{executions.usage.toLocaleString()}
-
+
{" / "}
{executions.granted.toLocaleString()} this month
diff --git a/apps/cloud/src/routes/billing_.plans.tsx b/apps/cloud/src/routes/billing_.plans.tsx
index 85742add..a1114a0e 100644
--- a/apps/cloud/src/routes/billing_.plans.tsx
+++ b/apps/cloud/src/routes/billing_.plans.tsx
@@ -58,7 +58,7 @@ function PlansPage() {
@@ -117,7 +117,7 @@ function PlansPage() {
].join(" ")}
>
-
+
{plan.name}
{isCurrent && (
@@ -136,14 +136,14 @@ function PlansPage() {
)}
- {meta.tagline}
+ {meta.tagline}
${plan.price?.amount ?? 0}
{plan.price?.interval && (
-
+
USD / seat / {plan.price.interval}
)}
@@ -151,7 +151,7 @@ function PlansPage() {
{(isCurrent && !isCanceling) || isScheduled ? (
-
+
{isCurrent ? "Current plan" : "Scheduled"}
) : isCanceling ? (
@@ -159,7 +159,7 @@ function PlansPage() {
type="button"
disabled={loadingPlan !== null}
onClick={() => openCustomerPortal()}
- className="flex h-9 w-full items-center justify-center rounded-md bg-primary text-[0.8125rem] font-medium text-primary-foreground transition-colors hover:bg-primary/90 disabled:opacity-60"
+ className="flex h-9 w-full items-center justify-center rounded-md bg-primary text-sm font-medium text-primary-foreground transition-colors hover:bg-primary/90 disabled:opacity-60"
>
Resume
@@ -173,7 +173,7 @@ function PlansPage() {
setLoadingPlan(null);
}}
className={[
- "flex h-9 w-full items-center justify-center rounded-md text-[0.8125rem] font-medium transition-colors disabled:opacity-60",
+ "flex h-9 w-full items-center justify-center rounded-md text-sm font-medium transition-colors disabled:opacity-60",
isUpgradeAction
? "bg-primary text-primary-foreground hover:bg-primary/90"
: "border border-border bg-background text-foreground hover:bg-muted",
@@ -188,7 +188,7 @@ function PlansPage() {
{meta.features.map((f) => (
) : (
-
+
{member.name
? member.name
.split(" ")
@@ -368,7 +368,7 @@ function OrgPage() {
{/* Name + email */}
-
+
{member.name ?? member.email}
{member.isCurrentUser && (
@@ -381,19 +381,19 @@ function OrgPage() {
)}
{member.name && (
-
+
{member.email}
)}
{/* Role */}
-
+
{member.role}
{/* Last active */}
-
+
{formatLastActive(member.lastActiveAt)}
@@ -417,14 +417,14 @@ function OrgPage() {
{roles.length > 0 && (
<>
-
+
Change role
{roles.map((role) => (
handleChangeRole(member.id, role.slug, role.name)
@@ -452,7 +452,7 @@ function OrgPage() {
>
)}
handleRemove(member.id, member.name ?? member.email)}
>
Remove member
@@ -539,7 +539,7 @@ function DomainCard({
Remove domain
@@ -618,7 +618,7 @@ function InviteDialog(props: {
Invite member
-
+
Send an email invitation to join your organization.
@@ -627,7 +627,7 @@ function InviteDialog(props: {
@@ -642,7 +642,7 @@ function InviteDialog(props: {
onKeyDown={(e) => {
if (e.key === "Enter") handleInvite();
}}
- className="text-[0.8125rem] h-9"
+ className="text-sm h-9"
/>
@@ -650,7 +650,7 @@ function InviteDialog(props: {
@@ -658,7 +658,7 @@ function InviteDialog(props: {
value={state.roleSlug}
onValueChange={(v) => dispatch({ type: "setRole", roleSlug: v })}
>
-
+
@@ -674,7 +674,7 @@ function InviteDialog(props: {
{state.status === "error" && state.error && (
-
{state.error}
+
{state.error}
)}
diff --git a/apps/cloud/src/web/shell.tsx b/apps/cloud/src/web/shell.tsx
index 269ea6e0..e84916fa 100644
--- a/apps/cloud/src/web/shell.tsx
+++ b/apps/cloud/src/web/shell.tsx
@@ -28,7 +28,7 @@ function NavItem(props: { to: string; label: string; active: boolean; onNavigate
to={props.to}
onClick={props.onNavigate}
className={[
- "flex items-center gap-2.5 rounded-md px-2.5 py-1.5 text-[13px] transition-colors",
+ "flex items-center gap-2.5 rounded-md px-2.5 py-1.5 text-sm transition-colors",
props.active
? "bg-sidebar-active text-foreground font-medium"
: "text-sidebar-foreground hover:bg-sidebar-active/60 hover:text-foreground",
@@ -47,14 +47,14 @@ function SourceList(props: { pathname: string; onNavigate?: () => void }) {
return Result.match(sources, {
onInitial: () => (
- Loading…
+ Loading…
),
onFailure: () => (
- No sources yet
+ No sources yet
),
onSuccess: ({ value }) =>
value.length === 0 ? (
-
+
No sources yet
) : (
@@ -70,7 +70,7 @@ function SourceList(props: { pathname: string; onNavigate?: () => void }) {
params={{ namespace: s.id }}
onClick={props.onNavigate}
className={[
- "group flex items-center gap-2 rounded-md px-2.5 py-1.5 text-[13px] transition-colors",
+ "group flex items-center gap-2 rounded-md px-2.5 py-1.5 text-xs transition-colors",
active
? "bg-sidebar-active text-foreground font-medium"
: "text-sidebar-foreground hover:bg-sidebar-active/60 hover:text-foreground",
@@ -78,7 +78,7 @@ function SourceList(props: { pathname: string; onNavigate?: () => void }) {
>
{s.name}
-
+
{s.kind}
@@ -110,16 +110,16 @@ function UserFooter() {
{auth.user.avatarUrl ? (
) : (
-
+
{initials}
)}
-
+
{auth.user.name ?? auth.user.email}
{auth.organization && (
-
{auth.organization.name}
+
{auth.organization.name}
)}