@ramp-kit/react
Advanced tools
| import type { CSSProperties } from "react"; | ||
| /** | ||
| * Theme tokens for <RampWidget/>. Every field maps to a `--rk-*` CSS variable | ||
| * the styles read, so setting one (e.g. `background`) overrides just that and | ||
| * leaves the rest at their preset defaults. Numbers become px. | ||
| */ | ||
| export interface RampTheme { | ||
| /** Widget container background. */ | ||
| background?: string; | ||
| /** Raised surfaces (quote box). */ | ||
| surface?: string; | ||
| /** Faint fills (pills, step dots). */ | ||
| subtle?: string; | ||
| /** Borders and separators. */ | ||
| border?: string; | ||
| /** Primary text. */ | ||
| text?: string; | ||
| /** Secondary / muted text. */ | ||
| textMuted?: string; | ||
| /** Primary action color (buttons, active step, progress bar). */ | ||
| primary?: string; | ||
| /** Text on top of `primary`. */ | ||
| primaryText?: string; | ||
| /** Success accent (completed steps, rail badge). */ | ||
| accent?: string; | ||
| /** Success accent background. */ | ||
| accentBg?: string; | ||
| /** Error / failure color. */ | ||
| danger?: string; | ||
| /** In-progress status color. */ | ||
| warning?: string; | ||
| /** Neutral/pending status color. */ | ||
| info?: string; | ||
| /** Control corner radius (px when a number). */ | ||
| radius?: number | string; | ||
| /** Container corner radius (px when a number). */ | ||
| radiusLg?: number | string; | ||
| fontFamily?: string; | ||
| } | ||
| /** A named preset or a custom token set. */ | ||
| export type RampThemeInput = "light" | "dark" | RampTheme; | ||
| /** Turn a theme input into the `--rk-*` custom properties to set on the root. */ | ||
| export declare function resolveTheme(input?: RampThemeInput): CSSProperties; | ||
| /** Visible copy, all overridable. Currency/asset/amount are appended by the widget. */ | ||
| export interface RampLabels { | ||
| steps: { | ||
| amount: string; | ||
| deposit: string; | ||
| done: string; | ||
| }; | ||
| status: Record<string, string>; | ||
| youPay: string; | ||
| youSell: string; | ||
| youReceive: string; | ||
| assetToSell: string; | ||
| fetchingQuote: string; | ||
| rate: string; | ||
| fee: string; | ||
| continueButton: string; | ||
| creatingOrder: string; | ||
| fundsDelivered: string; | ||
| signAndSend: string; | ||
| signing: string; | ||
| loadingDeposit: string; | ||
| noSigner: string; | ||
| } | ||
| export declare const DEFAULT_LABELS: RampLabels; | ||
| /** Deep-merge caller overrides over the defaults (steps/status merged too). */ | ||
| export declare function resolveLabels(overrides?: DeepPartial<RampLabels>): RampLabels; | ||
| type DeepPartial<T> = { | ||
| [K in keyof T]?: T[K] extends object ? Partial<T[K]> : T[K]; | ||
| }; | ||
| /** Compact vs. default spacing, exposed as `--rk-pad` / `--rk-gap`. */ | ||
| export declare function sizeVars(size: "sm" | "md"): CSSProperties; | ||
| export {}; | ||
| //# sourceMappingURL=theme.d.ts.map |
| {"version":3,"file":"theme.d.ts","sourceRoot":"","sources":["../src/theme.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAE3C;;;;GAIG;AACH,MAAM,WAAW,SAAS;IACxB,mCAAmC;IACnC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,mCAAmC;IACnC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,sCAAsC;IACtC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,8BAA8B;IAC9B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,oBAAoB;IACpB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,8BAA8B;IAC9B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,iEAAiE;IACjE,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,gCAAgC;IAChC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,oDAAoD;IACpD,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,iCAAiC;IACjC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,6BAA6B;IAC7B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,gCAAgC;IAChC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,oCAAoC;IACpC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,gDAAgD;IAChD,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACzB,kDAAkD;IAClD,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAC3B,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,4CAA4C;AAC5C,MAAM,MAAM,cAAc,GAAG,OAAO,GAAG,MAAM,GAAG,SAAS,CAAC;AAsC1D,iFAAiF;AACjF,wBAAgB,YAAY,CAAC,KAAK,GAAE,cAAwB,GAAG,aAAa,CAW3E;AAED,uFAAuF;AACvF,MAAM,WAAW,UAAU;IACzB,KAAK,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;IACzD,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC/B,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,MAAM,CAAC;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,cAAc,EAAE,MAAM,CAAC;IACvB,aAAa,EAAE,MAAM,CAAC;IACtB,cAAc,EAAE,MAAM,CAAC;IACvB,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,cAAc,EAAE,MAAM,CAAC;IACvB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,eAAO,MAAM,cAAc,EAAE,UAyB5B,CAAC;AAEF,+EAA+E;AAC/E,wBAAgB,aAAa,CAAC,SAAS,CAAC,EAAE,WAAW,CAAC,UAAU,CAAC,GAAG,UAAU,CAQ7E;AAED,KAAK,WAAW,CAAC,CAAC,IAAI;KACnB,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;CAC5D,CAAC;AAEF,uEAAuE;AACvE,wBAAgB,QAAQ,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI,GAAG,aAAa,CAMzD"} |
| const VARS = { | ||
| background: "--rk-bg", | ||
| surface: "--rk-surface", | ||
| subtle: "--rk-subtle", | ||
| border: "--rk-border", | ||
| text: "--rk-text", | ||
| textMuted: "--rk-text-muted", | ||
| primary: "--rk-primary", | ||
| primaryText: "--rk-primary-text", | ||
| accent: "--rk-accent", | ||
| accentBg: "--rk-accent-bg", | ||
| danger: "--rk-danger", | ||
| warning: "--rk-warning", | ||
| info: "--rk-info", | ||
| radius: "--rk-radius", | ||
| radiusLg: "--rk-radius-lg", | ||
| fontFamily: "--rk-font", | ||
| }; | ||
| /** Dark preset. Light is the styles' built-in fallbacks, so its preset is {}. */ | ||
| const DARK = { | ||
| background: "#18181b", | ||
| surface: "#27272a", | ||
| subtle: "#3f3f46", | ||
| border: "#3f3f46", | ||
| text: "#fafafa", | ||
| textMuted: "#a1a1aa", | ||
| primary: "#fafafa", | ||
| primaryText: "#18181b", | ||
| accent: "#4ade80", | ||
| accentBg: "#14532d", | ||
| danger: "#f87171", | ||
| warning: "#fb923c", | ||
| info: "#60a5fa", | ||
| }; | ||
| /** Turn a theme input into the `--rk-*` custom properties to set on the root. */ | ||
| export function resolveTheme(input = "light") { | ||
| const theme = input === "light" ? {} : input === "dark" ? DARK : input; | ||
| const vars = {}; | ||
| for (const key of Object.keys(VARS)) { | ||
| const value = theme[key]; | ||
| if (value !== undefined) { | ||
| vars[VARS[key]] = typeof value === "number" ? `${value}px` : String(value); | ||
| } | ||
| } | ||
| return vars; | ||
| } | ||
| export const DEFAULT_LABELS = { | ||
| steps: { amount: "Amount", deposit: "Transfer", done: "Done" }, | ||
| status: { | ||
| created: "Order created", | ||
| awaiting_deposit: "Waiting for your deposit", | ||
| awaiting_signature: "Waiting for your signature", | ||
| processing: "Exchanging & settling on-chain", | ||
| settled: "Funds delivered", | ||
| failed: "Order failed", | ||
| cancelled: "Order cancelled", | ||
| }, | ||
| youPay: "You pay", | ||
| youSell: "You sell", | ||
| youReceive: "You receive", | ||
| assetToSell: "Asset to sell", | ||
| fetchingQuote: "Fetching live quote…", | ||
| rate: "Rate", | ||
| fee: "fee", | ||
| continueButton: "Continue", | ||
| creatingOrder: "Creating order…", | ||
| fundsDelivered: "Funds delivered", | ||
| signAndSend: "Sign & send", | ||
| signing: "Signing & sending…", | ||
| loadingDeposit: "Loading deposit instructions…", | ||
| noSigner: "No signer configured — pass the `signer` prop to enable in-widget signing.", | ||
| }; | ||
| /** Deep-merge caller overrides over the defaults (steps/status merged too). */ | ||
| export function resolveLabels(overrides) { | ||
| if (!overrides) | ||
| return DEFAULT_LABELS; | ||
| return { | ||
| ...DEFAULT_LABELS, | ||
| ...overrides, | ||
| steps: { ...DEFAULT_LABELS.steps, ...overrides.steps }, | ||
| status: { ...DEFAULT_LABELS.status, ...overrides.status }, | ||
| }; | ||
| } | ||
| /** Compact vs. default spacing, exposed as `--rk-pad` / `--rk-gap`. */ | ||
| export function sizeVars(size) { | ||
| const vars = size === "sm" | ||
| ? { "--rk-pad": "14px", "--rk-gap": "10px" } | ||
| : { "--rk-pad": "20px", "--rk-gap": "14px" }; | ||
| return vars; | ||
| } | ||
| //# sourceMappingURL=theme.js.map |
| {"version":3,"file":"theme.js","sourceRoot":"","sources":["../src/theme.ts"],"names":[],"mappings":"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"} |
+2
-0
@@ -5,2 +5,4 @@ export { useQuote, useOrder } from "./hooks.js"; | ||
| export type { RampWidgetProps } from "./RampWidget.js"; | ||
| export { resolveTheme, resolveLabels, DEFAULT_LABELS } from "./theme.js"; | ||
| export type { RampTheme, RampThemeInput, RampLabels } from "./theme.js"; | ||
| //# sourceMappingURL=index.d.ts.map |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAChD,YAAY,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AACjE,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,YAAY,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC"} | ||
| {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAChD,YAAY,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AACjE,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,YAAY,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AACvD,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AACzE,YAAY,EAAE,SAAS,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC"} |
+1
-0
| export { useQuote, useOrder } from "./hooks.js"; | ||
| export { RampWidget } from "./RampWidget.js"; | ||
| export { resolveTheme, resolveLabels, DEFAULT_LABELS } from "./theme.js"; | ||
| //# sourceMappingURL=index.js.map |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAEhD,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC"} | ||
| {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAEhD,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAE7C,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC"} |
+53
-7
@@ -1,2 +0,3 @@ | ||
| import { type FiatCurrency, type Network, type RampAsset, type RampDirection, type RampProvider, type StellarConfig } from "@ramp-kit/core"; | ||
| import { type FiatCurrency, type Network, type RampAsset, type RampDirection, type RampProvider, type RampQuote, type StellarConfig } from "@ramp-kit/core"; | ||
| import { type RampLabels, type RampThemeInput } from "./theme.js"; | ||
| export interface RampWidgetProps { | ||
@@ -12,2 +13,11 @@ provider: RampProvider; | ||
| walletAddress?: string; | ||
| /** | ||
| * Offramp fiat payout account (CBU, CLABE, IBAN, PIX key…) plus any | ||
| * provider-specific extras. Required for Manteca offramps; ignored by | ||
| * providers with pre-registered accounts (Etherfuse). | ||
| */ | ||
| payoutDestination?: { | ||
| address: string; | ||
| [key: string]: unknown; | ||
| }; | ||
| /** Assets to offer. Fetch with provider.listAssets() and pass down. */ | ||
@@ -21,15 +31,51 @@ assets: RampAsset[]; | ||
| signer?: (xdr: string, networkPassphrase: string) => Promise<string>; | ||
| /** Horizon/network for signing (use stellarConfigFor(environment)). */ | ||
| /** | ||
| * Network the whole flow runs on: "testnet" (default) or "mainnet". Also | ||
| * accepts the core vocabulary ("sandbox"/"production") so you can pass the | ||
| * SAME value you gave the provider. When `stellarConfig` is omitted it is | ||
| * derived from this; it also selects the block explorer and warns if the | ||
| * provider was built for a different environment. | ||
| */ | ||
| environment?: "testnet" | "mainnet" | "sandbox" | "production"; | ||
| /** | ||
| * Horizon/network for signing. Overrides `environment`; usually you set one | ||
| * or the other. Use stellarConfigFor("sandbox" | "production"). | ||
| */ | ||
| stellarConfig?: StellarConfig; | ||
| /** "light" (default), "dark", or a custom token set. */ | ||
| theme?: RampThemeInput; | ||
| /** Compact ("sm") or default ("md") spacing. */ | ||
| size?: "sm" | "md"; | ||
| /** Show the numbered step header. Default true. */ | ||
| showStepper?: boolean; | ||
| /** Class added to the root, alongside "rk-widget". */ | ||
| className?: string; | ||
| /** Inline styles merged onto the root (wins over the theme). */ | ||
| style?: React.CSSProperties; | ||
| /** Override any visible copy (steps, statuses, buttons) — e.g. for i18n. */ | ||
| labels?: DeepPartial<RampLabels>; | ||
| /** BCP-47 locale for amount formatting. Default "en-US". */ | ||
| locale?: string; | ||
| onOrderCreated?: (orderId: string) => void; | ||
| onSettled?: (orderId: string) => void; | ||
| /** Fired whenever a fresh quote arrives. */ | ||
| onQuote?: (quote: RampQuote) => void; | ||
| /** Fired when the flow advances between steps. */ | ||
| onStepChange?: (step: Step) => void; | ||
| /** Fired on any error, tagged with where it happened. */ | ||
| onError?: (error: Error, context: "quote" | "order" | "sign") => void; | ||
| } | ||
| type DeepPartial<T> = { | ||
| [K in keyof T]?: T[K] extends object ? Partial<T[K]> : T[K]; | ||
| }; | ||
| type Step = "amount" | "deposit" | "done"; | ||
| /** | ||
| * Embeddable onramp flow: amount + asset → live quote → order → | ||
| * deposit instructions → status tracking until settled. | ||
| * Embeddable ramp flow: amount + asset → live quote → order → deposit | ||
| * instructions → status tracking until settled. | ||
| * | ||
| * Neutral inline styles + `rk-` class names so it drops into any app | ||
| * and can be themed via CSS. | ||
| * Themeable via the `theme` prop (or `--rk-*` CSS variables) and `rk-` class | ||
| * hooks; all copy is overridable through `labels`. | ||
| */ | ||
| export declare function RampWidget({ provider, customerId, fiatCurrency, direction, network, walletAddress, assets, signer, stellarConfig, onOrderCreated, onSettled, }: RampWidgetProps): import("react").JSX.Element | null; | ||
| export declare function RampWidget({ provider, customerId, fiatCurrency, direction, network, walletAddress, payoutDestination, assets, signer, environment, stellarConfig, theme, size, showStepper, className, style, labels: labelOverrides, locale, onOrderCreated, onSettled, onQuote, onStepChange, onError, }: RampWidgetProps): import("react").JSX.Element | null; | ||
| export {}; | ||
| //# sourceMappingURL=RampWidget.d.ts.map |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"RampWidget.d.ts","sourceRoot":"","sources":["../src/RampWidget.tsx"],"names":[],"mappings":"AACA,OAAO,EAGL,KAAK,YAAY,EACjB,KAAK,OAAO,EAEZ,KAAK,SAAS,EACd,KAAK,aAAa,EAClB,KAAK,YAAY,EACjB,KAAK,aAAa,EACnB,MAAM,gBAAgB,CAAC;AAGxB,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE,YAAY,CAAC;IACvB,iFAAiF;IACjF,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,YAAY,CAAC;IAC3B,sEAAsE;IACtE,SAAS,CAAC,EAAE,aAAa,CAAC;IAC1B,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,kEAAkE;IAClE,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,uEAAuE;IACvE,MAAM,EAAE,SAAS,EAAE,CAAC;IACpB;;;;OAIG;IACH,MAAM,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,iBAAiB,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;IACrE,uEAAuE;IACvE,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B,cAAc,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IAC3C,SAAS,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;CACvC;AAoBD;;;;;;GAMG;AACH,wBAAgB,UAAU,CAAC,EACzB,QAAQ,EACR,UAAU,EACV,YAAY,EACZ,SAAoB,EACpB,OAAmB,EACnB,aAAa,EACb,MAAM,EACN,MAAM,EACN,aAAa,EACb,cAAc,EACd,SAAS,GACV,EAAE,eAAe,sCA4VjB"} | ||
| {"version":3,"file":"RampWidget.d.ts","sourceRoot":"","sources":["../src/RampWidget.tsx"],"names":[],"mappings":"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"} |
+152
-82
| import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime"; | ||
| import { useEffect, useMemo, useState } from "react"; | ||
| import { RampError, signAndSubmit, } from "@ramp-kit/core"; | ||
| import { RampError, signAndSubmit, stellarConfigFor, } from "@ramp-kit/core"; | ||
| import { useQuote, useOrder } from "./hooks.js"; | ||
| const STEPS = [ | ||
| { key: "amount", label: "Amount" }, | ||
| { key: "deposit", label: "Transfer" }, | ||
| { key: "done", label: "Done" }, | ||
| ]; | ||
| const STATUS_LABEL = { | ||
| created: "Order created", | ||
| awaiting_deposit: "Waiting for your deposit", | ||
| awaiting_signature: "Waiting for your signature", | ||
| processing: "Exchanging & settling on-chain", | ||
| settled: "Funds delivered", | ||
| failed: "Order failed", | ||
| cancelled: "Order cancelled", | ||
| }; | ||
| import { resolveLabels, resolveTheme, sizeVars, } from "./theme.js"; | ||
| const STEP_ORDER = ["amount", "deposit", "done"]; | ||
| /** | ||
| * Embeddable onramp flow: amount + asset → live quote → order → | ||
| * deposit instructions → status tracking until settled. | ||
| * Embeddable ramp flow: amount + asset → live quote → order → deposit | ||
| * instructions → status tracking until settled. | ||
| * | ||
| * Neutral inline styles + `rk-` class names so it drops into any app | ||
| * and can be themed via CSS. | ||
| * Themeable via the `theme` prop (or `--rk-*` CSS variables) and `rk-` class | ||
| * hooks; all copy is overridable through `labels`. | ||
| */ | ||
| export function RampWidget({ provider, customerId, fiatCurrency, direction = "onramp", network = "stellar", walletAddress, assets, signer, stellarConfig, onOrderCreated, onSettled, }) { | ||
| export function RampWidget({ provider, customerId, fiatCurrency, direction = "onramp", network = "stellar", walletAddress, payoutDestination, assets, signer, environment, stellarConfig, theme = "light", size = "md", showStepper = true, className, style, labels: labelOverrides, locale = "en-US", onOrderCreated, onSettled, onQuote, onStepChange, onError, }) { | ||
| const [amount, setAmount] = useState(""); | ||
@@ -36,2 +24,14 @@ const [assetId, setAssetId] = useState(assets[0]?.identifier ?? ""); | ||
| const [signError, setSignError] = useState(null); | ||
| const labels = useMemo(() => resolveLabels(labelOverrides), [labelOverrides]); | ||
| const goStep = (next) => { | ||
| setStep(next); | ||
| onStepChange?.(next); | ||
| }; | ||
| // Normalize "testnet/mainnet" and "sandbox/production" to one vocabulary. | ||
| const isMainnet = environment === "mainnet" || environment === "production"; | ||
| const coreEnv = environment | ||
| ? isMainnet | ||
| ? "production" | ||
| : "sandbox" | ||
| : undefined; | ||
| // Keep selection valid when the asset list changes (e.g. provider swap). | ||
@@ -55,9 +55,35 @@ useEffect(() => { | ||
| walletAddress, | ||
| payoutDestination, | ||
| }; | ||
| }, [amount, assetId, direction, fiatCurrency, network, customerId, walletAddress]); | ||
| // eslint-disable-next-line react-hooks/exhaustive-deps | ||
| }, [ | ||
| amount, | ||
| assetId, | ||
| direction, | ||
| fiatCurrency, | ||
| network, | ||
| customerId, | ||
| walletAddress, | ||
| payoutDestination?.address, | ||
| ]); | ||
| const { quote, loading, error, secondsLeft } = useQuote(step === "amount" ? provider : null, request); | ||
| const { order } = useOrder(provider, orderId); | ||
| const { order, error: orderError } = useOrder(provider, orderId); | ||
| useEffect(() => { | ||
| if (quote) | ||
| onQuote?.(quote); | ||
| // eslint-disable-next-line react-hooks/exhaustive-deps | ||
| }, [quote?.id]); | ||
| useEffect(() => { | ||
| if (error) | ||
| onError?.(error, "quote"); | ||
| // eslint-disable-next-line react-hooks/exhaustive-deps | ||
| }, [error]); | ||
| useEffect(() => { | ||
| if (orderError) | ||
| onError?.(orderError, "order"); | ||
| // eslint-disable-next-line react-hooks/exhaustive-deps | ||
| }, [orderError]); | ||
| useEffect(() => { | ||
| if (order?.status === "settled") { | ||
| setStep("done"); | ||
| goStep("done"); | ||
| onSettled?.(order.id); | ||
@@ -67,2 +93,9 @@ } | ||
| }, [order?.status, order?.id]); | ||
| // Catch a testnet/mainnet mismatch before it moves funds on the wrong net. | ||
| useEffect(() => { | ||
| if (coreEnv && provider?.environment && provider.environment !== coreEnv) { | ||
| console.warn(`[RampWidget] environment="${environment}" but the provider targets "${provider.environment}" — API calls and funds would hit different networks. Build the provider with the matching environment.`); | ||
| } | ||
| // eslint-disable-next-line react-hooks/exhaustive-deps | ||
| }, [coreEnv, provider]); | ||
| const confirm = async () => { | ||
@@ -77,5 +110,6 @@ if (!quote) | ||
| onOrderCreated?.(created.id); | ||
| setStep("deposit"); | ||
| goStep("deposit"); | ||
| } | ||
| catch (err) { | ||
| onError?.(err, "order"); | ||
| const message = err.message; | ||
@@ -97,3 +131,3 @@ // Sandbox accounts can be compliant yet lack rail provisioning. | ||
| const selectedAsset = assets.find((a) => a.identifier === assetId); | ||
| const stepIndex = STEPS.findIndex((s) => s.key === step); | ||
| const stepIndex = STEP_ORDER.indexOf(step); | ||
| const deposit = order?.depositInstructions; | ||
@@ -105,7 +139,14 @@ const isTerminalFailure = order?.status === "failed" || order?.status === "cancelled"; | ||
| const isLiveStellar = provider.name !== "mock" && network === "stellar"; | ||
| const explorerNet = stellarConfig?.horizonUrl?.includes("testnet") !== false | ||
| ? "testnet" | ||
| : "public"; | ||
| // `environment` overrides; fall back to sniffing the Horizon URL. | ||
| const resolvedStellarConfig = stellarConfig ?? (coreEnv ? stellarConfigFor(coreEnv) : undefined); | ||
| const explorerNet = environment | ||
| ? isMainnet | ||
| ? "public" | ||
| : "testnet" | ||
| : resolvedStellarConfig?.horizonUrl?.includes("testnet") !== false | ||
| ? "testnet" | ||
| : "public"; | ||
| const txUrl = (hash) => `https://stellar.expert/explorer/${explorerNet}/tx/${hash}`; | ||
| const needsSignature = isOfframp && order?.status === "awaiting_signature" && order.unsignedTx; | ||
| const fmt = (value) => formatAmount(value, locale); | ||
| const signAndSend = async () => { | ||
@@ -116,6 +157,11 @@ if (!order?.unsignedTx || !signer) | ||
| setSignError(null); | ||
| // On mainnet the user pays a fee-bump if the provider's fee is too low | ||
| // for current congestion; Horizon timeouts resubmit automatically. | ||
| const submitOpts = walletAddress?.startsWith("G") | ||
| ? { feeBump: { feeSourcePublicKey: walletAddress } } | ||
| : undefined; | ||
| try { | ||
| let res; | ||
| try { | ||
| res = await signAndSubmit(order.unsignedTx, signer, stellarConfig); | ||
| res = await signAndSubmit(order.unsignedTx, signer, resolvedStellarConfig, submitOpts); | ||
| } | ||
@@ -130,3 +176,3 @@ catch (err) { | ||
| throw err; | ||
| res = await signAndSubmit(fresh.unsignedTx, signer, stellarConfig); | ||
| res = await signAndSubmit(fresh.unsignedTx, signer, resolvedStellarConfig, submitOpts); | ||
| } | ||
@@ -140,2 +186,3 @@ else { | ||
| catch (err) { | ||
| onError?.(err, "sign"); | ||
| setSignError(err.message); | ||
@@ -147,3 +194,9 @@ } | ||
| }; | ||
| return (_jsxs("div", { className: "rk-widget", style: styles.widget, children: [_jsx("div", { className: "rk-steps", style: styles.steps, children: STEPS.map((s, i) => (_jsxs("div", { style: styles.stepItem, children: [_jsx("div", { style: { | ||
| const rootStyle = { | ||
| ...styles.widget, | ||
| ...resolveTheme(theme), | ||
| ...sizeVars(size), | ||
| ...style, | ||
| }; | ||
| return (_jsxs("div", { className: ["rk-widget", className].filter(Boolean).join(" "), style: rootStyle, children: [showStepper && (_jsx("div", { className: "rk-steps", style: styles.steps, children: STEP_ORDER.map((key, i) => (_jsxs("div", { style: styles.stepItem, children: [_jsx("div", { style: { | ||
| ...styles.stepDot, | ||
@@ -155,39 +208,43 @@ ...(i < stepIndex ? styles.stepDotPast : {}), | ||
| ...(i === stepIndex ? styles.stepLabelActive : {}), | ||
| }, children: s.label }), i < STEPS.length - 1 && _jsx("div", { style: styles.stepLine })] }, s.key))) }), step === "amount" && (_jsxs(_Fragment, { children: [_jsxs("label", { style: styles.label, children: [isOfframp | ||
| ? `You sell (${selectedAsset?.symbol ?? "asset"})` | ||
| : `You pay (${fiatCurrency})`, _jsx("input", { style: styles.input, type: "number", min: "0", value: amount, placeholder: isOfframp ? "5" : "100", onChange: (e) => setAmount(e.target.value) })] }), _jsxs("label", { style: styles.label, children: [isOfframp ? "Asset to sell" : "You receive", _jsx("select", { style: styles.input, value: assetId, onChange: (e) => setAssetId(e.target.value), children: assets.map((a) => (_jsxs("option", { value: a.identifier, children: [a.symbol, " \u00B7 ", a.network] }, a.identifier))) })] }), loading && _jsx("p", { style: styles.muted, children: "Fetching live quote\u2026" }), error && _jsx("p", { style: styles.error, children: error.message }), quote && !loading && (_jsxs("div", { className: "rk-quote", style: styles.quoteBox, children: [_jsxs("div", { style: styles.quoteRow, children: [_jsxs("span", { style: styles.big, children: ["\u2248 ", trim(quote.targetAmount), " ", receiveUnit] }), _jsxs("span", { style: styles.pill, children: [secondsLeft, "s"] })] }), _jsx("div", { style: styles.countdownTrack, children: _jsx("div", { style: { | ||
| }, children: labels.steps[key] }), i < STEP_ORDER.length - 1 && _jsx("div", { style: styles.stepLine })] }, key))) })), step === "amount" && (_jsxs(_Fragment, { children: [_jsxs("label", { style: styles.label, children: [isOfframp | ||
| ? `${labels.youSell} (${selectedAsset?.symbol ?? "asset"})` | ||
| : `${labels.youPay} (${fiatCurrency})`, _jsx("input", { style: styles.input, type: "number", min: "0", value: amount, placeholder: isOfframp ? "5" : "100", onChange: (e) => setAmount(e.target.value) })] }), _jsxs("label", { style: styles.label, children: [isOfframp ? labels.assetToSell : labels.youReceive, _jsx("select", { style: styles.input, value: assetId, onChange: (e) => setAssetId(e.target.value), children: assets.map((a) => (_jsxs("option", { value: a.identifier, children: [a.symbol, " \u00B7 ", a.network] }, a.identifier))) })] }), loading && _jsx("p", { style: styles.muted, children: labels.fetchingQuote }), error && _jsx("p", { style: styles.error, children: error.message }), quote && !loading && (_jsxs("div", { className: "rk-quote", style: styles.quoteBox, children: [_jsxs("div", { style: styles.quoteRow, children: [_jsxs("span", { style: styles.big, children: ["\u2248 ", fmt(quote.targetAmount), " ", receiveUnit] }), _jsxs("span", { style: styles.pill, children: [secondsLeft, "s"] })] }), _jsx("div", { style: styles.countdownTrack, children: _jsx("div", { style: { | ||
| ...styles.countdownBar, | ||
| width: `${Math.min(100, (secondsLeft / 120) * 100)}%`, | ||
| } }) }), _jsxs("p", { style: styles.muted, children: ["Rate ", trim(quote.rate), quote.fees ? ` · fee ${quote.fees} ${fiatCurrency}` : ""] }), _jsx("button", { style: styles.button, disabled: submitting, onClick: confirm, children: submitting ? "Creating order…" : "Continue" }), submitError && _jsx("p", { style: styles.error, children: submitError })] }))] })), step === "deposit" && (_jsxs("div", { className: "rk-deposit", style: styles.depositBox, children: [isOfframp ? (_jsxs(_Fragment, { children: [needsSignature && !signedTxHash && (_jsxs(_Fragment, { children: [_jsxs("p", { style: styles.muted, children: ["Send your ", selectedAsset?.symbol, " on-chain to fund the payout \u2014 the provider pre-built the transaction, your wallet just signs it:"] }), signer ? (_jsx("button", { style: styles.button, disabled: signing, onClick: signAndSend, children: signing | ||
| ? "Signing & sending…" | ||
| : `Sign & send ${amount} ${selectedAsset?.symbol}` })) : (_jsx("p", { style: styles.error, children: "No signer configured \u2014 pass the `signer` prop to enable in-widget signing." })), signError && _jsx("p", { style: styles.error, children: signError })] })), signedTxHash && (_jsxs("p", { style: styles.muted, children: ["Transaction sent", " ", isLiveStellar ? (_jsxs("a", { href: txUrl(signedTxHash), target: "_blank", rel: "noreferrer", children: [signedTxHash.slice(0, 10), "\u2026 \u2197"] })) : (_jsxs(_Fragment, { children: ["(", signedTxHash.slice(0, 10), "\u2026)"] })), " ", "\u2014 the provider pays out ", fiatCurrency, " once it confirms."] }))] })) : deposit ? (_jsxs(_Fragment, { children: [_jsxs("div", { style: styles.quoteRow, children: [_jsx("span", { style: styles.railBadge, children: deposit.rail }), _jsxs("span", { style: styles.big, children: [deposit.amount, " ", deposit.currency] })] }), _jsx("p", { style: styles.muted, children: deposit.rail === "PIX" | ||
| } }) }), _jsxs("p", { style: styles.muted, children: [labels.rate, " ", fmt(quote.rate), quote.fees ? ` · ${labels.fee} ${quote.fees} ${fiatCurrency}` : ""] }), _jsx("button", { style: styles.button, disabled: submitting, onClick: confirm, children: submitting ? labels.creatingOrder : labels.continueButton }), submitError && _jsx("p", { style: styles.error, children: submitError })] }))] })), step === "deposit" && (_jsxs("div", { className: "rk-deposit", style: styles.depositBox, children: [isOfframp ? (_jsxs(_Fragment, { children: [needsSignature && !signedTxHash && (_jsxs(_Fragment, { children: [_jsxs("p", { style: styles.muted, children: ["Send your ", selectedAsset?.symbol, " on-chain to fund the payout \u2014 the provider pre-built the transaction, your wallet just signs it:"] }), signer ? (_jsx("button", { style: styles.button, disabled: signing, onClick: signAndSend, children: signing | ||
| ? labels.signing | ||
| : `${labels.signAndSend} ${amount} ${selectedAsset?.symbol}` })) : (_jsx("p", { style: styles.error, children: labels.noSigner })), signError && _jsx("p", { style: styles.error, children: signError })] })), signedTxHash && (_jsxs("p", { style: styles.muted, children: ["Transaction sent", " ", isLiveStellar ? (_jsxs("a", { href: txUrl(signedTxHash), target: "_blank", rel: "noreferrer", children: [signedTxHash.slice(0, 10), "\u2026 \u2197"] })) : (_jsxs(_Fragment, { children: ["(", signedTxHash.slice(0, 10), "\u2026)"] })), " ", "\u2014 the provider pays out ", fiatCurrency, " once it confirms."] }))] })) : deposit ? (_jsxs(_Fragment, { children: [_jsxs("div", { style: styles.quoteRow, children: [_jsx("span", { style: styles.railBadge, children: deposit.rail }), _jsxs("span", { style: styles.big, children: [deposit.amount, " ", deposit.currency] })] }), _jsx("p", { style: styles.muted, children: deposit.rail === "PIX" | ||
| ? "Pay this PIX charge to fund your order:" | ||
| : "Send the exact amount to this account:" }), _jsxs("p", { style: styles.mono, children: [deposit.address, deposit.alias ? ` · ${deposit.alias}` : ""] })] })) : (_jsx("p", { style: styles.muted, children: "Loading deposit instructions\u2026" })), _jsxs("div", { style: styles.statusRow, children: [_jsx("span", { style: { | ||
| : "Send the exact amount to this account:" }), _jsxs("p", { style: styles.mono, children: [deposit.address, deposit.alias ? ` · ${deposit.alias}` : ""] })] })) : (_jsx("p", { style: styles.muted, children: labels.loadingDeposit })), _jsxs("div", { style: styles.statusRow, children: [_jsx("span", { style: { | ||
| ...styles.statusDot, | ||
| background: isTerminalFailure | ||
| ? "#c0392b" | ||
| ? "var(--rk-danger, #c0392b)" | ||
| : order?.status === "processing" | ||
| ? "#e67e22" | ||
| : "#3498db", | ||
| } }), _jsx("span", { style: styles.statusText, children: STATUS_LABEL[order?.status ?? "created"] })] }), isTerminalFailure && (_jsx("p", { style: styles.error, children: order?.failureReason ?? "Order failed" }))] })), step === "done" && (_jsxs("div", { className: "rk-done", style: styles.doneBox, children: [_jsx("div", { style: styles.doneIcon, children: "\u2713" }), _jsx("p", { style: styles.big, children: "Funds delivered" }), order?.quote && (_jsxs("p", { style: styles.muted, children: [order.quote.request.sourceAmount, " ", isOfframp | ||
| ? "var(--rk-warning, #e67e22)" | ||
| : "var(--rk-info, #3498db)", | ||
| } }), _jsx("span", { style: styles.statusText, children: labels.status[order?.status ?? "created"] })] }), isTerminalFailure && (_jsx("p", { style: styles.error, children: order?.failureReason ?? labels.status.failed }))] })), step === "done" && (_jsxs("div", { className: "rk-done", style: styles.doneBox, children: [_jsx("div", { style: styles.doneIcon, children: "\u2713" }), _jsx("p", { style: styles.big, children: labels.fundsDelivered }), order?.quote && (_jsxs("p", { style: styles.muted, children: [order.quote.request.sourceAmount, " ", isOfframp | ||
| ? selectedAsset?.symbol | ||
| : order.quote.request.fiatCurrency, " ", "\u2192 ", trim(order.quote.targetAmount), " ", receiveUnit, isOfframp ? " via PIX/SPEI" : ` on ${network}`] })), (order?.txHash ?? signedTxHash) && (_jsx("p", { style: styles.mono, children: isLiveStellar ? (_jsx("a", { href: txUrl((order?.txHash ?? signedTxHash)), target: "_blank", rel: "noreferrer", children: "View transaction on Stellar Expert \u2197" })) : (_jsxs(_Fragment, { children: ["tx ", (order?.txHash ?? signedTxHash).slice(0, 10), "\u2026", (order?.txHash ?? signedTxHash).slice(-8)] })) })), isOfframp && (_jsxs("p", { style: styles.muted, children: [fiatCurrency, " payout is processed by the provider to your registered bank account", provider.name === "etherfuse" | ||
| : order.quote.request.fiatCurrency, " ", "\u2192 ", fmt(order.quote.targetAmount), " ", receiveUnit, isOfframp ? " via PIX/SPEI" : ` on ${network}`] })), (order?.txHash ?? signedTxHash) && (_jsx("p", { style: styles.mono, children: isLiveStellar ? (_jsx("a", { href: txUrl((order?.txHash ?? signedTxHash)), target: "_blank", rel: "noreferrer", children: "View transaction on Stellar Expert \u2197" })) : (_jsxs(_Fragment, { children: ["tx ", (order?.txHash ?? signedTxHash).slice(0, 10), "\u2026", (order?.txHash ?? signedTxHash).slice(-8)] })) })), isOfframp && (_jsxs("p", { style: styles.muted, children: [fiatCurrency, " payout is processed by the provider to your registered bank account", provider.name === "etherfuse" | ||
| ? " (sandbox payouts run in batches)" | ||
| : "", "."] }))] }))] })); | ||
| } | ||
| function trim(value) { | ||
| function formatAmount(value, locale) { | ||
| const n = Number(value); | ||
| return Number.isFinite(n) ? n.toLocaleString("en-US", { maximumFractionDigits: 4 }) : value; | ||
| return Number.isFinite(n) | ||
| ? n.toLocaleString(locale, { maximumFractionDigits: 4 }) | ||
| : value; | ||
| } | ||
| /** Static styles read theme tokens via `var(--rk-*, fallback)`; the fallbacks are the light preset. */ | ||
| const styles = { | ||
| widget: { | ||
| maxWidth: 400, | ||
| padding: 20, | ||
| borderRadius: 14, | ||
| border: "1px solid #e4e4e7", | ||
| background: "#fff", | ||
| fontFamily: "system-ui, sans-serif", | ||
| padding: "var(--rk-pad, 20px)", | ||
| borderRadius: "var(--rk-radius-lg, 14px)", | ||
| border: "1px solid var(--rk-border, #e4e4e7)", | ||
| background: "var(--rk-bg, #fff)", | ||
| color: "var(--rk-text, #18181b)", | ||
| fontFamily: "var(--rk-font, system-ui, sans-serif)", | ||
| display: "flex", | ||
| flexDirection: "column", | ||
| gap: 14, | ||
| gap: "var(--rk-gap, 14px)", | ||
| }, | ||
@@ -205,24 +262,37 @@ steps: { display: "flex", alignItems: "center", gap: 6 }, | ||
| fontWeight: 600, | ||
| background: "#f4f4f5", | ||
| color: "#71717a", | ||
| background: "var(--rk-subtle, #f4f4f5)", | ||
| color: "var(--rk-text-muted, #71717a)", | ||
| flexShrink: 0, | ||
| }, | ||
| stepDotActive: { background: "#18181b", color: "#fff" }, | ||
| stepDotPast: { background: "#dcfce7", color: "#16a34a" }, | ||
| stepLabel: { fontSize: 12, color: "#a1a1aa" }, | ||
| stepLabelActive: { color: "#18181b", fontWeight: 600 }, | ||
| stepLine: { flex: 1, height: 1, background: "#e4e4e7" }, | ||
| label: { display: "flex", flexDirection: "column", gap: 4, fontSize: 13, color: "#3f3f46" }, | ||
| stepDotActive: { | ||
| background: "var(--rk-primary, #18181b)", | ||
| color: "var(--rk-primary-text, #fff)", | ||
| }, | ||
| stepDotPast: { | ||
| background: "var(--rk-accent-bg, #dcfce7)", | ||
| color: "var(--rk-accent, #16a34a)", | ||
| }, | ||
| stepLabel: { fontSize: 12, color: "var(--rk-text-muted, #a1a1aa)" }, | ||
| stepLabelActive: { color: "var(--rk-text, #18181b)", fontWeight: 600 }, | ||
| stepLine: { flex: 1, height: 1, background: "var(--rk-border, #e4e4e7)" }, | ||
| label: { | ||
| display: "flex", | ||
| flexDirection: "column", | ||
| gap: 4, | ||
| fontSize: 13, | ||
| color: "var(--rk-text-muted, #3f3f46)", | ||
| }, | ||
| input: { | ||
| padding: 10, | ||
| borderRadius: 10, | ||
| border: "1px solid #d4d4d8", | ||
| borderRadius: "var(--rk-radius, 10px)", | ||
| border: "1px solid var(--rk-border, #d4d4d8)", | ||
| fontSize: 16, | ||
| background: "#fff", | ||
| background: "var(--rk-surface, #fff)", | ||
| color: "var(--rk-text, #18181b)", | ||
| }, | ||
| quoteBox: { | ||
| padding: 14, | ||
| borderRadius: 10, | ||
| background: "#fafafa", | ||
| border: "1px solid #f0f0f1", | ||
| borderRadius: "var(--rk-radius, 10px)", | ||
| background: "var(--rk-surface, #fafafa)", | ||
| border: "1px solid var(--rk-border, #f0f0f1)", | ||
| display: "flex", | ||
@@ -241,3 +311,3 @@ flexDirection: "column", | ||
| borderRadius: 2, | ||
| background: "#e4e4e7", | ||
| background: "var(--rk-border, #e4e4e7)", | ||
| overflow: "hidden", | ||
@@ -247,3 +317,3 @@ }, | ||
| height: "100%", | ||
| background: "#18181b", | ||
| background: "var(--rk-primary, #18181b)", | ||
| transition: "width 1s linear", | ||
@@ -255,4 +325,4 @@ }, | ||
| borderRadius: 999, | ||
| background: "#f4f4f5", | ||
| color: "#52525b", | ||
| background: "var(--rk-subtle, #f4f4f5)", | ||
| color: "var(--rk-text-muted, #52525b)", | ||
| fontVariantNumeric: "tabular-nums", | ||
@@ -266,12 +336,12 @@ }, | ||
| borderRadius: 999, | ||
| background: "#ecfdf5", | ||
| color: "#047857", | ||
| border: "1px solid #a7f3d0", | ||
| background: "var(--rk-accent-bg, #ecfdf5)", | ||
| color: "var(--rk-accent, #047857)", | ||
| border: "1px solid var(--rk-accent, #a7f3d0)", | ||
| }, | ||
| button: { | ||
| padding: "11px 16px", | ||
| borderRadius: 10, | ||
| borderRadius: "var(--rk-radius, 10px)", | ||
| border: "none", | ||
| background: "#18181b", | ||
| color: "#fff", | ||
| background: "var(--rk-primary, #18181b)", | ||
| color: "var(--rk-primary-text, #fff)", | ||
| fontSize: 15, | ||
@@ -284,3 +354,3 @@ fontWeight: 600, | ||
| statusDot: { width: 8, height: 8, borderRadius: "50%", flexShrink: 0 }, | ||
| statusText: { fontSize: 13, color: "#3f3f46" }, | ||
| statusText: { fontSize: 13, color: "var(--rk-text-muted, #3f3f46)" }, | ||
| doneBox: { | ||
@@ -298,4 +368,4 @@ display: "flex", | ||
| borderRadius: "50%", | ||
| background: "#dcfce7", | ||
| color: "#16a34a", | ||
| background: "var(--rk-accent-bg, #dcfce7)", | ||
| color: "var(--rk-accent, #16a34a)", | ||
| display: "flex", | ||
@@ -307,4 +377,4 @@ alignItems: "center", | ||
| }, | ||
| big: { fontSize: 19, fontWeight: 600, margin: 0, color: "#18181b" }, | ||
| muted: { fontSize: 13, color: "#71717a", margin: 0 }, | ||
| big: { fontSize: 19, fontWeight: 600, margin: 0, color: "var(--rk-text, #18181b)" }, | ||
| muted: { fontSize: 13, color: "var(--rk-text-muted, #71717a)", margin: 0 }, | ||
| mono: { | ||
@@ -314,7 +384,7 @@ fontFamily: "ui-monospace, monospace", | ||
| fontSize: 13, | ||
| color: "#3f3f46", | ||
| color: "var(--rk-text-muted, #3f3f46)", | ||
| margin: 0, | ||
| }, | ||
| error: { color: "#c0392b", fontSize: 13, margin: 0 }, | ||
| error: { color: "var(--rk-danger, #c0392b)", fontSize: 13, margin: 0 }, | ||
| }; | ||
| //# sourceMappingURL=RampWidget.js.map |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"RampWidget.js","sourceRoot":"","sources":["../src/RampWidget.tsx"],"names":[],"mappings":"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"} | ||
| {"version":3,"file":"RampWidget.js","sourceRoot":"","sources":["../src/RampWidget.tsx"],"names":[],"mappings":"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"} |
+2
-2
| { | ||
| "name": "@ramp-kit/react", | ||
| "version": "0.1.4", | ||
| "version": "0.1.5", | ||
| "description": "React onramp widget and hooks for LATAM ramps on Stellar: 3-step embeddable flow with live quote countdown, PIX/SPEI deposit instructions and order tracking to settlement, over any @ramp-kit/core provider", | ||
@@ -20,3 +20,3 @@ "type": "module", | ||
| "dependencies": { | ||
| "@ramp-kit/core": "0.1.4" | ||
| "@ramp-kit/core": "0.1.6" | ||
| }, | ||
@@ -23,0 +23,0 @@ "peerDependencies": { |
+96
-3
@@ -55,8 +55,57 @@ # @ramp-kit/react | ||
| | `walletAddress` | `string?` | Destination wallet (onramp) / source wallet (offramp) | | ||
| | `payoutDestination` | `{ address: string }?` | Offramp fiat payout account (CBU/CLABE/IBAN/PIX key). Required for Manteca offramps | | ||
| | `assets` | `RampAsset[]` | Assets to offer (from `provider.listAssets()`) | | ||
| | `signer` | `(xdr, passphrase) => Promise<string>` | Wallet signing callback for offramps (Freighter, hardware, local key) | | ||
| | `stellarConfig` | `StellarConfig` | Network for signing — `stellarConfigFor("sandbox" \| "production")` | | ||
| | `environment` | `"testnet" \| "mainnet" \| "sandbox" \| "production"` | Network the flow runs on. Derives `stellarConfig`, picks the explorer, and warns on a provider mismatch | | ||
| | `stellarConfig` | `StellarConfig` | Explicit signing network — overrides `environment`. Use `stellarConfigFor(...)` | | ||
| | `theme` | `"light" \| "dark" \| RampTheme` | Color/radius/font tokens (default `"light"`) | | ||
| | `size` | `"sm" \| "md"` | Compact or default spacing (default `"md"`) | | ||
| | `showStepper` | `boolean` | Show the numbered step header (default `true`) | | ||
| | `className` | `string?` | Extra class on the root, alongside `rk-widget` | | ||
| | `style` | `CSSProperties?` | Inline styles merged onto the root (wins over the theme) | | ||
| | `labels` | `Partial<RampLabels>` | Override any visible copy (steps, statuses, buttons) — e.g. for i18n | | ||
| | `locale` | `string` | BCP-47 locale for amount formatting (default `"en-US"`) | | ||
| | `onOrderCreated` | `(orderId) => void` | Fired when the order is accepted | | ||
| | `onSettled` | `(orderId) => void` | Fired when funds are delivered | | ||
| | `onQuote` | `(quote) => void` | Fired whenever a fresh quote arrives | | ||
| | `onStepChange` | `(step) => void` | Fired when the flow advances between steps | | ||
| | `onError` | `(error, context) => void` | Fired on any error, tagged `"quote" \| "order" \| "sign"` | | ||
| ### Theming | ||
| Every color, radius and font is a `--rk-*` CSS variable. Pass a `theme` preset | ||
| or a token set — set only what you want; the rest keep their defaults: | ||
| ```tsx | ||
| <RampWidget | ||
| {...props} | ||
| theme={{ | ||
| background: "#0b1e2d", | ||
| surface: "#12293b", | ||
| text: "#e6f1f7", | ||
| primary: "#38bdf8", | ||
| primaryText: "#04222f", | ||
| accent: "#34d399", | ||
| radius: 16, | ||
| }} | ||
| />; | ||
| ``` | ||
| `theme="dark"` ships a full dark palette. You can also override the | ||
| `--rk-*` variables (or the `rk-widget` / `rk-quote` / `rk-deposit` / `rk-done` | ||
| classes) from your own CSS. Translate the copy with `labels`: | ||
| ```tsx | ||
| <RampWidget | ||
| {...props} | ||
| locale="pt-BR" | ||
| labels={{ | ||
| steps: { amount: "Valor", deposit: "Transferência", done: "Pronto" }, | ||
| youPay: "Você paga", | ||
| youReceive: "Você recebe", | ||
| continueButton: "Continuar", | ||
| }} | ||
| />; | ||
| ``` | ||
| ### Sell flow (offramp) with Freighter | ||
@@ -87,5 +136,49 @@ | ||
| Styling: neutral inline styles plus `rk-` class names (`rk-widget`, | ||
| `rk-quote`, `rk-deposit`, `rk-done`) so you can theme it from your own CSS. | ||
| Styling: theme tokens via the `theme` prop or `--rk-*` CSS variables, plus | ||
| `rk-` class hooks (`rk-widget`, `rk-quote`, `rk-deposit`, `rk-done`). | ||
| ## Going to production (testnet → mainnet) | ||
| Once you hold **production credentials** (see the checklist below), flipping to | ||
| mainnet is a single value used in two places — the provider and the widget: | ||
| ```tsx | ||
| import { EtherfuseProvider } from "@ramp-kit/core"; | ||
| // One flag drives everything. "production" and "mainnet" are equivalent here. | ||
| const environment = "production"; | ||
| const provider = new EtherfuseProvider({ | ||
| apiKey: process.env.ETHERFUSE_API_KEY!, // production key | ||
| environment, // flips the API base URL to mainnet | ||
| baseUrl: "https://api.myapp.com/ramp/etherfuse", // your @ramp-kit/server | ||
| }); | ||
| <RampWidget | ||
| provider={provider} | ||
| environment={environment} // derives mainnet Horizon + passphrase + explorer | ||
| customerId={realCustomerId} | ||
| fiatCurrency="BRL" | ||
| walletAddress={userWallet} | ||
| assets={await provider.listAssets("stellar")} | ||
| />; | ||
| ``` | ||
| Pass the **same** `environment` to the provider and the widget. If they differ, | ||
| the widget logs a console warning so a testnet UI never signs against mainnet | ||
| funds by accident. Omit `environment` and it stays on testnet (default). | ||
| **The switch is code; it doesn't create the credentials.** Working on mainnet | ||
| also requires, per provider (one-time, outside the SDK): | ||
| - **Etherfuse:** production KYB approval → `api_prod_…` key; real registered | ||
| bank accounts (real CLABE/RFC/PIX); real end-user KYC (no sandbox auto-approve). | ||
| - **Manteca:** commercial onboarding → production `md-api-key`, per-country | ||
| permissions, real onboarded users. | ||
| - **Stellar:** the wallet must be on the Public network with real XLM for fees | ||
| and reserves. The kit already prices fees dynamically and fee-bumps under | ||
| congestion, so mainnet submission is handled. | ||
| Full operational checklist: `skills/ramp-kit/references/production.md` in the repo. | ||
| ## Hooks (build your own UI) | ||
@@ -92,0 +185,0 @@ |
73410
47.45%19
26.67%762
60.76%223
71.54%+ Added
- Removed
Updated