@stridge/kit 0.1.0-alpha.57 → 0.1.0-alpha.59

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.
Files changed (37) hide show
  1. package/dist/events/bus/createBus.d.ts +20 -1
  2. package/dist/events/bus/createBus.js +1 -1
  3. package/dist/events/emit/useDepositEmissions.js +1 -1
  4. package/dist/events/emit/useWithdrawEmissions.js +1 -1
  5. package/dist/events/hooks/useStridgeEvent.d.ts +2 -1
  6. package/dist/events/hooks/useStridgeEvent.js +1 -1
  7. package/dist/events/hooks/useStridgeEventBus.d.ts +5 -4
  8. package/dist/events/hooks/useStridgeEvents.d.ts +2 -1
  9. package/dist/events/hooks/useStridgeEvents.js +1 -1
  10. package/dist/events/index.d.ts +4 -2
  11. package/dist/events/index.js +1 -1
  12. package/dist/events/publish.js +1 -1
  13. package/dist/events/redact.d.ts +34 -0
  14. package/dist/events/redact.js +1 -0
  15. package/dist/flows/deposit/orchestrator/controller.js +1 -1
  16. package/dist/flows/deposit/widgets/asset-picker/AssetPicker.d.ts +2 -0
  17. package/dist/flows/deposit/widgets/asset-picker/AssetPicker.js +1 -1
  18. package/dist/flows/deposit/widgets/transfer-crypto/compound/components/Address.js +1 -1
  19. package/dist/i18n/locales/ar.js +1 -1
  20. package/dist/i18n/locales/es.js +1 -1
  21. package/dist/i18n/locales/source-keys.d.ts +1 -1
  22. package/dist/index.d.ts +4 -1
  23. package/dist/index.js +1 -1
  24. package/dist/package.js +1 -1
  25. package/dist/shared/orchestrator/toFailure.js +1 -1
  26. package/dist/shared/orchestrator/types.d.ts +8 -0
  27. package/dist/shared/widgets/asset-picker/compound/AssetPicker.d.ts +3 -0
  28. package/dist/shared/widgets/asset-picker/compound/AssetPicker.js +1 -1
  29. package/dist/shared/widgets/asset-picker/compound/AssetPicker.slots.d.ts +2 -0
  30. package/dist/shared/widgets/asset-picker/compound/AssetPicker.slots.js +1 -1
  31. package/dist/shared/widgets/asset-picker/compound/AssetPicker.styles.js +1 -1
  32. package/dist/shared/widgets/asset-picker/compound/components/Empty.d.ts +15 -0
  33. package/dist/shared/widgets/asset-picker/compound/components/Empty.js +1 -0
  34. package/dist/styles/index.css +2 -2
  35. package/dist/version.d.ts +10 -0
  36. package/dist/version.js +1 -0
  37. package/package.json +1 -1
@@ -3,5 +3,24 @@ import { StridgeEvent } from "../types/index.js";
3
3
  //#region src/events/bus/createBus.d.ts
4
4
  /** Handler shape — accepts a typed event, returns nothing (return values are ignored). */
5
5
  type EventHandler<TEvent extends StridgeEvent = StridgeEvent> = (event: TEvent) => void;
6
+ /**
7
+ * Per-subscription options shared by every subscribe method.
8
+ */
9
+ interface SubscribeOptions {
10
+ /**
11
+ * Immediately replay the active `<flow>.opened` event(s) to this handler at subscribe time,
12
+ * for any flow whose session is currently open. Lets a late subscriber recover the session
13
+ * start (and the `flowId` + frozen `metadata` it carries) instead of silently missing it.
14
+ *
15
+ * Only the `<flow>.opened` event is replayed — never `quote`, `settlement`, or other
16
+ * mid-flow events. The replayed envelope is identical to the one live subscribers received
17
+ * (same `timestamp`, `flowId`, `metadata`); it is not flagged as a replay. Because `opened`
18
+ * events are `tier: "ui"`, replay reaches `subscribeToAll` / `useStridgeEvents` and
19
+ * `subscribeToEvent("<flow>.opened", …)` — the flow-only surfaces never carry it.
20
+ *
21
+ * @defaultValue `false`
22
+ */
23
+ replayOpenSession?: boolean;
24
+ }
6
25
  //#endregion
7
- export { EventHandler };
26
+ export { EventHandler, SubscribeOptions };
@@ -1 +1 @@
1
- function e(){let e=new Set,t=new Set,n=new Map,r=!1;function i(e,t){try{e(t)}catch(e){console.error(`[stridge/kit] handler for "${t.type}" threw:`,e)}}function a(a){if(r)return;if(a.tier===`flow`)for(let t of e)i(t,a);for(let e of t)i(e,a);let o=n.get(a.type);if(o)for(let e of o)i(e,a)}function o(e,t){return e.add(t),()=>{e.delete(t)}}function s(e,t){let r=n.get(e);return r||(r=new Set,n.set(e,r)),r.add(t),()=>{let r=n.get(e);r&&(r.delete(t),r.size===0&&n.delete(e))}}return{emit:a,subscribeToFlow:t=>o(e,t),subscribeToFlowEvent:(e,t)=>s(e,t),subscribeToAll:e=>o(t,e),subscribeToEvent:(e,t)=>s(e,t),dispose:()=>{r=!0,e.clear(),t.clear(),n.clear()}}}export{e as createBus};
1
+ function e(){let e=new Set,t=new Set,n=new Map,r=new Map,i=!1;function a(e,t){try{e(t)}catch(e){console.error(`[stridge/kit] handler for "${t.type}" threw:`,e)}}function o(r){if(i)return;if(r.tier===`flow`)for(let t of e)a(t,r);for(let e of t)a(e,r);let o=n.get(r.type);if(o)for(let e of o)a(e,r)}function s(e,t){return e.add(t),()=>{e.delete(t)}}function c(e,t){let r=n.get(e);return r||(r=new Set,n.set(e,r)),r.add(t),()=>{let r=n.get(e);r&&(r.delete(t),r.size===0&&n.delete(e))}}function l(e,t,n){if(!(i||!t?.replayOpenSession))for(let t of r.values())n(t)&&a(e,t)}return{emit:o,subscribeToFlow:(t,n)=>{let r=s(e,t);return l(t,n,e=>e.tier===`flow`),r},subscribeToFlowEvent:(e,t,n)=>{let r=c(e,t);return l(t,n,t=>t.type===e),r},subscribeToAll:(e,n)=>{let r=s(t,e);return l(e,n,()=>!0),r},subscribeToEvent:(e,t,n)=>{let r=c(e,t);return l(t,n,t=>t.type===e),r},retainOpenSession:e=>{i||r.set(e.flow,e)},releaseOpenSession:e=>{r.delete(e)},dispose:()=>{i=!0,e.clear(),t.clear(),n.clear(),r.clear()}}}export{e as createBus};
@@ -1 +1 @@
1
- "use client";import{StridgeEventsContext as e}from"../context.js";import{useDialogLifecycle as t}from"../../shared/orchestrator/useDialogLifecycle.js";import"../../shared/orchestrator/index.js";import{mapFailureInfoToPayload as n}from"./mapFailure.js";import{closeFlowSession as r,openFlowSession as i,publishEvent as a}from"../publish.js";import{use as o,useRef as s}from"react";function c(n){let r=o(e),i=s(n.metadata);i.current=n.metadata,t({state:n.state,settlement:n.settlement,quote:n.quote,fireFsm:(e,t)=>{r&&d(r,e,t,i.current)},fireSettlement:(e,t)=>{r&&p(r,e,t,n.state)},fireQuote:(e,t)=>{r&&t.status===`ready`&&e!==`ready`&&a(r,{type:`deposit.quote.resolved`,flow:`deposit`,tier:`flow`,payload:{quote:t.payload}})}})}function l(e){if(e.name!==`deposit`){if(e.name===`transferCrypto`)return{method:`transfer`};if(e.name===`assetPicker`)return{method:`wallet`};if(e.name===`amountEntry`)return{method:`wallet`,asset:e.ctx.asset};if(e.name!==`cashAmountEntry`&&e.name!==`cashConfirm`){if(e.name===`confirmDeposit`)return{method:`wallet`,asset:e.ctx.asset};if(e.name===`processing`||e.name===`success`)return e.ctx.method===`transfer`?{method:`transfer`}:{method:`wallet`}}}}function u(e){return e.name===`confirmDeposit`?e.ctx.phase.kind===`submitting`?`submitting`:`confirming`:e.name===`processing`?`processing`:e.name===`deposit`||e.name===`assetPicker`||e.name===`amountEntry`||e.name===`cashAmountEntry`||e.name===`cashConfirm`||e.name===`transferCrypto`?`quoting`:`unknown`}function d(e,t,o,s){if(o.name===`confirmDeposit`&&t.name===`confirmDeposit`){f(e,t.ctx.phase,o.ctx.phase,o);return}if(t.name!==o.name){if(t.name===`closed`&&o.name!==`closed`&&i(e,`deposit`,s,{type:`deposit.opened`,flow:`deposit`,tier:`ui`,payload:{input:l(o)}}),a(e,{type:`deposit.step.changed`,flow:`deposit`,tier:`ui`,payload:{from:t.name,to:o.name}}),t.name===`deposit`&&o.name===`assetPicker`&&a(e,{type:`deposit.method.clicked`,flow:`deposit`,tier:`ui`,payload:{method:`wallet`}}),t.name===`deposit`&&o.name===`transferCrypto`&&a(e,{type:`deposit.method.clicked`,flow:`deposit`,tier:`ui`,payload:{method:`transfer`}}),t.name===`assetPicker`&&o.name===`amountEntry`&&a(e,{type:`deposit.asset.clicked`,flow:`deposit`,tier:`ui`,payload:{asset:o.ctx.asset}}),t.name===`amountEntry`&&o.name===`confirmDeposit`&&a(e,{type:`deposit.amount.submitted`,flow:`deposit`,tier:`ui`,payload:{amount:o.ctx.amount}}),o.name===`confirmDeposit`&&f(e,t.name===`confirmDeposit`?t.ctx.phase:void 0,o.ctx.phase,o),t.name===`confirmDeposit`&&o.name===`processing`&&a(e,{type:`deposit.submission.broadcast`,flow:`deposit`,tier:`flow`,payload:{tx:o.ctx.tx}}),t.name!==`error`&&o.name===`error`&&o.ctx.failure){let r=t.name===`confirmDeposit`?t.ctx.phase:void 0,i=n(o.ctx.failure);r?.kind===`submitting`&&a(e,{type:`deposit.submission.failed`,flow:`deposit`,tier:`flow`,payload:i}),a(e,{type:`deposit.settlement.failed`,flow:`deposit`,tier:`flow`,payload:{...i,kind:`unknown`}})}o.name!==`closed`&&t.name!==`closed`&&`backTarget`in t.ctx&&o.name===t.ctx.backTarget&&a(e,{type:`deposit.back.clicked`,flow:`deposit`,tier:`ui`,payload:{fromStep:t.name}}),t.name!==`closed`&&o.name===`closed`&&(t.name===`success`||t.name===`error`||a(e,{type:`deposit.cancelled`,flow:`deposit`,tier:`flow`,payload:{phase:u(t)}}),r(e,`deposit`,{type:`deposit.closed`,flow:`deposit`,tier:`ui`,payload:{atStep:t.name}}))}}function f(e,t,r,i){t?.kind!==r.kind&&((r.kind===`loading`||r.kind===`regenerating`)&&(a(e,{type:`deposit.quote.requested`,flow:`deposit`,tier:`flow`,payload:{input:{asset:i.ctx.asset,amount:i.ctx.amount}}}),r.kind===`regenerating`&&(t?.kind===`submitting`?a(e,{type:`deposit.submission.declined`,flow:`deposit`,tier:`flow`,payload:{}}):t?.kind===`ready`&&a(e,{type:`deposit.quote.expired`,flow:`deposit`,tier:`flow`,payload:{}}))),r.kind===`failed`&&a(e,{type:`deposit.quote.failed`,flow:`deposit`,tier:`flow`,payload:n(r.failure)}),r.kind===`submitting`&&a(e,{type:`deposit.submission.confirmed`,flow:`deposit`,tier:`ui`,payload:{}}))}function p(e,t,r,o){if(r.status!==`ready`&&r.status!==`stale`)return;let s=r.payload;if(s.kind===`pending`){t===null?(o.name===`closed`&&i(e,`deposit`,void 0,{type:`deposit.opened`,flow:`deposit`,tier:`ui`,payload:{input:void 0}}),a(e,{type:`deposit.settlement.resumed`,flow:`deposit`,tier:`flow`,payload:{settlement:s}})):a(e,{type:`deposit.settlement.progressed`,flow:`deposit`,tier:`flow`,payload:{settlement:s}});return}if(s.kind===`succeeded`){a(e,{type:`deposit.settlement.succeeded`,flow:`deposit`,tier:`flow`,payload:{settlement:s}});return}s.kind===`failed`&&a(e,{type:`deposit.settlement.failed`,flow:`deposit`,tier:`flow`,payload:{...n({reason:m(s.failureKind)}),kind:s.failureKind,...s.txHash?.value?{txHash:s.txHash.value}:{}}})}function m(e){return e===`slippage`?`Quote slipped before settlement landed.`:e===`insufficient-gas`?`Bridge gas budget exhausted before settlement.`:e===`execution-reverted`?`Destination transaction reverted on-chain.`:`Settlement failed.`}export{c as useDepositEmissions};
1
+ "use client";import{StridgeEventsContext as e}from"../context.js";import{useDialogLifecycle as t}from"../../shared/orchestrator/useDialogLifecycle.js";import"../../shared/orchestrator/index.js";import{mapFailureInfoToPayload as n}from"./mapFailure.js";import{closeFlowSession as r,openFlowSession as i,publishEvent as a}from"../publish.js";import{use as o,useRef as s}from"react";function c(n){let r=o(e),i=s(n.metadata);i.current=n.metadata,t({state:n.state,settlement:n.settlement,quote:n.quote,fireFsm:(e,t)=>{r&&d(r,e,t,i.current)},fireSettlement:(e,t)=>{r&&p(r,e,t,n.state)},fireQuote:(e,t)=>{r&&t.status===`ready`&&e!==`ready`&&a(r,{type:`deposit.quote.resolved`,flow:`deposit`,tier:`flow`,payload:{quote:t.payload}})}})}function l(e){if(e.name!==`deposit`){if(e.name===`transferCrypto`)return{method:`transfer`};if(e.name===`assetPicker`)return{method:`wallet`};if(e.name===`amountEntry`)return{method:`wallet`,asset:e.ctx.asset};if(e.name!==`cashAmountEntry`&&e.name!==`cashConfirm`){if(e.name===`confirmDeposit`)return{method:`wallet`,asset:e.ctx.asset};if(e.name===`processing`||e.name===`success`)return e.ctx.method===`transfer`?{method:`transfer`}:{method:`wallet`}}}}function u(e){return e.name===`confirmDeposit`?e.ctx.phase.kind===`submitting`?`submitting`:`confirming`:e.name===`processing`?`processing`:e.name===`deposit`||e.name===`assetPicker`||e.name===`amountEntry`||e.name===`cashAmountEntry`||e.name===`cashConfirm`||e.name===`transferCrypto`?`quoting`:`unknown`}function d(e,t,o,s){if(o.name===`confirmDeposit`&&t.name===`confirmDeposit`){f(e,t.ctx.phase,o.ctx.phase,o);return}if(t.name!==o.name){if(t.name===`closed`&&o.name!==`closed`&&i(e,`deposit`,s,{type:`deposit.opened`,flow:`deposit`,tier:`ui`,payload:{input:l(o)}}),a(e,{type:`deposit.step.changed`,flow:`deposit`,tier:`ui`,payload:{from:t.name,to:o.name}}),t.name===`deposit`&&o.name===`assetPicker`&&a(e,{type:`deposit.method.clicked`,flow:`deposit`,tier:`ui`,payload:{method:`wallet`}}),t.name===`deposit`&&o.name===`transferCrypto`&&a(e,{type:`deposit.method.clicked`,flow:`deposit`,tier:`ui`,payload:{method:`transfer`}}),t.name===`assetPicker`&&o.name===`amountEntry`&&a(e,{type:`deposit.asset.clicked`,flow:`deposit`,tier:`ui`,payload:{asset:o.ctx.asset}}),t.name===`amountEntry`&&o.name===`confirmDeposit`&&a(e,{type:`deposit.amount.submitted`,flow:`deposit`,tier:`ui`,payload:{amount:o.ctx.amount}}),o.name===`confirmDeposit`&&f(e,t.name===`confirmDeposit`?t.ctx.phase:void 0,o.ctx.phase,o),t.name===`confirmDeposit`&&o.name===`processing`&&a(e,{type:`deposit.submission.broadcast`,flow:`deposit`,tier:`flow`,payload:{tx:o.ctx.tx}}),t.name!==`error`&&o.name===`error`&&o.ctx.failure){let r=t.name===`confirmDeposit`?t.ctx.phase:void 0,i=n(o.ctx.failure,o.ctx.failure.cause);r?.kind===`submitting`&&a(e,{type:`deposit.submission.failed`,flow:`deposit`,tier:`flow`,payload:i}),a(e,{type:`deposit.settlement.failed`,flow:`deposit`,tier:`flow`,payload:{...i,kind:`unknown`}})}o.name!==`closed`&&t.name!==`closed`&&`backTarget`in t.ctx&&o.name===t.ctx.backTarget&&a(e,{type:`deposit.back.clicked`,flow:`deposit`,tier:`ui`,payload:{fromStep:t.name}}),t.name!==`closed`&&o.name===`closed`&&(t.name===`success`||t.name===`error`||a(e,{type:`deposit.cancelled`,flow:`deposit`,tier:`flow`,payload:{phase:u(t)}}),r(e,`deposit`,{type:`deposit.closed`,flow:`deposit`,tier:`ui`,payload:{atStep:t.name}}))}}function f(e,t,r,i){t?.kind!==r.kind&&((r.kind===`loading`||r.kind===`regenerating`)&&(a(e,{type:`deposit.quote.requested`,flow:`deposit`,tier:`flow`,payload:{input:{asset:i.ctx.asset,amount:i.ctx.amount}}}),r.kind===`regenerating`&&(t?.kind===`submitting`?a(e,{type:`deposit.submission.declined`,flow:`deposit`,tier:`flow`,payload:{}}):t?.kind===`ready`&&a(e,{type:`deposit.quote.expired`,flow:`deposit`,tier:`flow`,payload:{}}))),r.kind===`failed`&&a(e,{type:`deposit.quote.failed`,flow:`deposit`,tier:`flow`,payload:n(r.failure,r.failure.cause)}),r.kind===`submitting`&&a(e,{type:`deposit.submission.confirmed`,flow:`deposit`,tier:`ui`,payload:{}}))}function p(e,t,r,o){if(r.status!==`ready`&&r.status!==`stale`)return;let s=r.payload;if(s.kind===`pending`){t===null?(o.name===`closed`&&i(e,`deposit`,void 0,{type:`deposit.opened`,flow:`deposit`,tier:`ui`,payload:{input:void 0}}),a(e,{type:`deposit.settlement.resumed`,flow:`deposit`,tier:`flow`,payload:{settlement:s}})):a(e,{type:`deposit.settlement.progressed`,flow:`deposit`,tier:`flow`,payload:{settlement:s}});return}if(s.kind===`succeeded`){a(e,{type:`deposit.settlement.succeeded`,flow:`deposit`,tier:`flow`,payload:{settlement:s}});return}s.kind===`failed`&&a(e,{type:`deposit.settlement.failed`,flow:`deposit`,tier:`flow`,payload:{...n({reason:m(s.failureKind)}),kind:s.failureKind,...s.txHash?.value?{txHash:s.txHash.value}:{}}})}function m(e){return e===`slippage`?`Quote slipped before settlement landed.`:e===`insufficient-gas`?`Bridge gas budget exhausted before settlement.`:e===`execution-reverted`?`Destination transaction reverted on-chain.`:`Settlement failed.`}export{c as useDepositEmissions};
@@ -1 +1 @@
1
- "use client";import{StridgeEventsContext as e}from"../context.js";import{useDialogLifecycle as t}from"../../shared/orchestrator/useDialogLifecycle.js";import"../../shared/orchestrator/index.js";import{mapFailureInfoToPayload as n}from"./mapFailure.js";import{closeFlowSession as r,openFlowSession as i,publishEvent as a}from"../publish.js";import{use as o,useRef as s}from"react";function c(r){let i=o(e),c=s(r.metadata);c.current=r.metadata,t({state:r.state,settlement:r.settlement,quote:r.quote,fireFsm:(e,t)=>{i&&u(i,e,t,c.current)},fireSettlement:(e,t)=>{i&&d(i,t)},fireQuote:(e,t)=>{i&&t.status!==e&&(t.status===`ready`&&a(i,{type:`withdraw.quote.resolved`,flow:`withdraw`,tier:`flow`,payload:{quote:t.payload}}),t.status===`error`&&a(i,{type:`withdraw.quote.failed`,flow:`withdraw`,tier:`flow`,payload:n({reason:t.error.message||`Quote failed.`,...t.error.name?{code:t.error.name}:{}},t.error)}))}})}function l(e){return e.name===`form`?`quoting`:e.name===`submitting`?`confirming`:e.name===`inProgress`?`processing`:`unknown`}function u(e,t,o,s){let c=t.name===`form`&&!!t.ctx?.notice;if(o.name===`form`&&o.ctx?.notice&&!c&&a(e,{type:`withdraw.submission.declined`,flow:`withdraw`,tier:`flow`,payload:{}}),t.name!==o.name){if(t.name===`closed`&&o.name!==`closed`&&i(e,`withdraw`,s,{type:`withdraw.opened`,flow:`withdraw`,tier:`ui`,payload:{}}),a(e,{type:`withdraw.step.changed`,flow:`withdraw`,tier:`ui`,payload:{from:t.name,to:o.name}}),t.name===`form`&&o.name===`submitting`&&a(e,{type:`withdraw.submission.confirmed`,flow:`withdraw`,tier:`ui`,payload:{}}),t.name===`submitting`&&o.name===`inProgress`&&o.ctx.tx&&a(e,{type:`withdraw.submission.broadcast`,flow:`withdraw`,tier:`flow`,payload:{input:o.ctx.input,tx:o.ctx.tx}}),o.name===`error`){let t=o.ctx.failure;if(t!==void 0&&o.ctx.tx===void 0&&t){let r=n(t);a(e,{type:`withdraw.submission.failed`,flow:`withdraw`,tier:`flow`,payload:r}),a(e,{type:`withdraw.settlement.failed`,flow:`withdraw`,tier:`flow`,payload:{...r,kind:`unknown`}})}}t.name!==`closed`&&o.name===`closed`&&(t.name===`success`||t.name===`error`||a(e,{type:`withdraw.cancelled`,flow:`withdraw`,tier:`flow`,payload:{phase:l(t)}}),r(e,`withdraw`,{type:`withdraw.closed`,flow:`withdraw`,tier:`ui`,payload:{atStep:t.name}}))}}function d(e,t){if(t.status!==`ready`&&t.status!==`stale`)return;let r=t.payload;if(r.kind===`pending`){a(e,{type:`withdraw.settlement.progressed`,flow:`withdraw`,tier:`flow`,payload:{settlement:r}});return}if(r.kind===`succeeded`){a(e,{type:`withdraw.settlement.succeeded`,flow:`withdraw`,tier:`flow`,payload:{settlement:r}});return}r.kind===`failed`&&a(e,{type:`withdraw.settlement.failed`,flow:`withdraw`,tier:`flow`,payload:{...n({reason:f(r.failureKind)}),kind:r.failureKind,...r.txHash?.value?{txHash:r.txHash.value}:{}}})}function f(e){return e===`slippage`?`Quote slipped before settlement landed.`:e===`insufficient-gas`?`Bridge gas budget exhausted before settlement.`:e===`execution-reverted`?`Destination transaction reverted on-chain.`:`Settlement failed.`}export{c as useWithdrawEmissions};
1
+ "use client";import{StridgeEventsContext as e}from"../context.js";import{useDialogLifecycle as t}from"../../shared/orchestrator/useDialogLifecycle.js";import"../../shared/orchestrator/index.js";import{mapFailureInfoToPayload as n}from"./mapFailure.js";import{closeFlowSession as r,openFlowSession as i,publishEvent as a}from"../publish.js";import{use as o,useRef as s}from"react";function c(r){let i=o(e),c=s(r.metadata);c.current=r.metadata,t({state:r.state,settlement:r.settlement,quote:r.quote,fireFsm:(e,t)=>{i&&u(i,e,t,c.current)},fireSettlement:(e,t)=>{i&&d(i,t)},fireQuote:(e,t)=>{i&&t.status!==e&&(t.status===`ready`&&a(i,{type:`withdraw.quote.resolved`,flow:`withdraw`,tier:`flow`,payload:{quote:t.payload}}),t.status===`error`&&a(i,{type:`withdraw.quote.failed`,flow:`withdraw`,tier:`flow`,payload:n({reason:t.error.message||`Quote failed.`,...t.error.name?{code:t.error.name}:{}},t.error)}))}})}function l(e){return e.name===`form`?`quoting`:e.name===`submitting`?`confirming`:e.name===`inProgress`?`processing`:`unknown`}function u(e,t,o,s){let c=t.name===`form`&&!!t.ctx?.notice;if(o.name===`form`&&o.ctx?.notice&&!c&&a(e,{type:`withdraw.submission.declined`,flow:`withdraw`,tier:`flow`,payload:{}}),t.name!==o.name){if(t.name===`closed`&&o.name!==`closed`&&i(e,`withdraw`,s,{type:`withdraw.opened`,flow:`withdraw`,tier:`ui`,payload:{}}),a(e,{type:`withdraw.step.changed`,flow:`withdraw`,tier:`ui`,payload:{from:t.name,to:o.name}}),t.name===`form`&&o.name===`submitting`&&a(e,{type:`withdraw.submission.confirmed`,flow:`withdraw`,tier:`ui`,payload:{}}),t.name===`submitting`&&o.name===`inProgress`&&o.ctx.tx&&a(e,{type:`withdraw.submission.broadcast`,flow:`withdraw`,tier:`flow`,payload:{input:o.ctx.input,tx:o.ctx.tx}}),o.name===`error`){let t=o.ctx.failure;if(t!==void 0&&o.ctx.tx===void 0&&t){let r=n(t,t.cause);a(e,{type:`withdraw.submission.failed`,flow:`withdraw`,tier:`flow`,payload:r}),a(e,{type:`withdraw.settlement.failed`,flow:`withdraw`,tier:`flow`,payload:{...r,kind:`unknown`}})}}t.name!==`closed`&&o.name===`closed`&&(t.name===`success`||t.name===`error`||a(e,{type:`withdraw.cancelled`,flow:`withdraw`,tier:`flow`,payload:{phase:l(t)}}),r(e,`withdraw`,{type:`withdraw.closed`,flow:`withdraw`,tier:`ui`,payload:{atStep:t.name}}))}}function d(e,t){if(t.status!==`ready`&&t.status!==`stale`)return;let r=t.payload;if(r.kind===`pending`){a(e,{type:`withdraw.settlement.progressed`,flow:`withdraw`,tier:`flow`,payload:{settlement:r}});return}if(r.kind===`succeeded`){a(e,{type:`withdraw.settlement.succeeded`,flow:`withdraw`,tier:`flow`,payload:{settlement:r}});return}r.kind===`failed`&&a(e,{type:`withdraw.settlement.failed`,flow:`withdraw`,tier:`flow`,payload:{...n({reason:f(r.failureKind)}),kind:r.failureKind,...r.txHash?.value?{txHash:r.txHash.value}:{}}})}function f(e){return e===`slippage`?`Quote slipped before settlement landed.`:e===`insufficient-gas`?`Bridge gas budget exhausted before settlement.`:e===`execution-reverted`?`Destination transaction reverted on-chain.`:`Settlement failed.`}export{c as useWithdrawEmissions};
@@ -1,8 +1,9 @@
1
1
  import { StridgeEvent } from "../types/index.js";
2
+ import { SubscribeOptions } from "../bus/createBus.js";
2
3
 
3
4
  //#region src/events/hooks/useStridgeEvent.d.ts
4
5
  declare function useStridgeEvent<TType extends StridgeEvent["type"]>(type: TType, handler: (event: Extract<StridgeEvent, {
5
6
  type: TType;
6
- }>) => void): void;
7
+ }>) => void, options?: SubscribeOptions): void;
7
8
  //#endregion
8
9
  export { useStridgeEvent };
@@ -1 +1 @@
1
- "use client";import{StridgeEventsContext as e}from"../context.js";import{useStableHandler as t}from"./useStableHandler.js";import{use as n,useEffect as r}from"react";function i(i,a){let o=n(e),s=t(a);r(()=>{if(o)return o.bus.subscribeToEvent(i,e=>s.current(e))},[o,s,i])}export{i as useStridgeEvent};
1
+ "use client";import{StridgeEventsContext as e}from"../context.js";import{useStableHandler as t}from"./useStableHandler.js";import{use as n,useEffect as r}from"react";function i(i,a,o){let s=n(e),c=t(a),l=o?.replayOpenSession??!1;r(()=>{if(s)return s.bus.subscribeToEvent(i,e=>c.current(e),{replayOpenSession:l})},[s,c,i,l])}export{i as useStridgeEvent};
@@ -1,5 +1,5 @@
1
1
  import { FlowEvent, StridgeEvent } from "../types/index.js";
2
- import { EventHandler } from "../bus/createBus.js";
2
+ import { EventHandler, SubscribeOptions } from "../bus/createBus.js";
3
3
 
4
4
  //#region src/events/hooks/useStridgeEventBus.d.ts
5
5
  /**
@@ -8,17 +8,18 @@ import { EventHandler } from "../bus/createBus.js";
8
8
  *
9
9
  * `subscribeToFlow` / `subscribeToFlowEvent` narrow the handler to `flow:*` events only
10
10
  * (headless-safe). `subscribeToAll` / `subscribeToEvent` are the firehose — they see every
11
- * event the kit emits regardless of tier.
11
+ * event the kit emits regardless of tier, and accept {@link SubscribeOptions} (e.g.
12
+ * `replayOpenSession`) since the `<flow>.opened` event they can replay is `tier: "ui"`.
12
13
  */
13
14
  interface PublicStridgeEventBus {
14
15
  subscribeToFlow: (handler: EventHandler<FlowEvent>) => () => void;
15
16
  subscribeToFlowEvent: <TType extends FlowEvent["type"]>(type: TType, handler: EventHandler<Extract<FlowEvent, {
16
17
  type: TType;
17
18
  }>>) => () => void;
18
- subscribeToAll: (handler: EventHandler<StridgeEvent>) => () => void;
19
+ subscribeToAll: (handler: EventHandler<StridgeEvent>, options?: SubscribeOptions) => () => void;
19
20
  subscribeToEvent: <TType extends StridgeEvent["type"]>(type: TType, handler: EventHandler<Extract<StridgeEvent, {
20
21
  type: TType;
21
- }>>) => () => void;
22
+ }>>, options?: SubscribeOptions) => () => void;
22
23
  }
23
24
  /**
24
25
  * Returns the provider-scoped bus accessor, or `null` when no `<StridgeProvider>` is
@@ -1,6 +1,7 @@
1
1
  import { StridgeEvent } from "../types/index.js";
2
+ import { SubscribeOptions } from "../bus/createBus.js";
2
3
 
3
4
  //#region src/events/hooks/useStridgeEvents.d.ts
4
- declare function useStridgeEvents(handler: (event: StridgeEvent) => void): void;
5
+ declare function useStridgeEvents(handler: (event: StridgeEvent) => void, options?: SubscribeOptions): void;
5
6
  //#endregion
6
7
  export { useStridgeEvents };
@@ -1 +1 @@
1
- "use client";import{StridgeEventsContext as e}from"../context.js";import{useStableHandler as t}from"./useStableHandler.js";import{use as n,useEffect as r}from"react";function i(i){let a=n(e),o=t(i);r(()=>{if(a)return a.bus.subscribeToAll(e=>o.current(e))},[a,o])}export{i as useStridgeEvents};
1
+ "use client";import{StridgeEventsContext as e}from"../context.js";import{useStableHandler as t}from"./useStableHandler.js";import{use as n,useEffect as r}from"react";function i(i,a){let o=n(e),s=t(i),c=a?.replayOpenSession??!1;r(()=>{if(o)return o.bus.subscribeToAll(e=>s.current(e),{replayOpenSession:c})},[o,s,c])}export{i as useStridgeEvents};
@@ -1,3 +1,4 @@
1
+ import { KIT_VERSION } from "../version.js";
1
2
  import { FlowIdKey } from "./bus/flowIdRegistry.js";
2
3
  import { useCurrentFlowId } from "./hooks/useCurrentFlowId.js";
3
4
  import { FailureCode, FailurePayloadBase, StridgeEventBase, StridgeEventFlow, StridgeEventTier } from "./types/envelope.js";
@@ -6,10 +7,11 @@ import { DepositAmountChangedEvent, DepositAmountSubmittedEvent, DepositAssetCli
6
7
  import { KitEvent, KitSupportClickedEvent, KitTermsClickedEvent } from "./types/kit.js";
7
8
  import { WithdrawAmountChangedEvent, WithdrawBreakdownClickedEvent, WithdrawCancelPhase, WithdrawCancelledEvent, WithdrawClosedEvent, WithdrawEvent, WithdrawFlowEvent, WithdrawMaxClickedEvent, WithdrawOpenedEvent, WithdrawQuoteExpiredEvent, WithdrawQuoteFailedEvent, WithdrawQuoteRequestedEvent, WithdrawQuoteResolvedEvent, WithdrawReceiveChainChangedEvent, WithdrawReceiveTokenChangedEvent, WithdrawRecipientChangedEvent, WithdrawSettlementFailedEvent, WithdrawSettlementFailurePayload, WithdrawSettlementProgressedEvent, WithdrawSettlementSucceededEvent, WithdrawStepChangedEvent, WithdrawSubmissionBroadcastEvent, WithdrawSubmissionConfirmedEvent, WithdrawSubmissionDeclinedEvent, WithdrawSubmissionFailedEvent, WithdrawSubmitClickedEvent, WithdrawUiEvent } from "./types/withdraw.js";
8
9
  import { FlowEvent, FlowEventType, StridgeEvent, StridgeEventType, UiEvent, UiEventType } from "./types/index.js";
10
+ import { EventHandler, SubscribeOptions } from "./bus/createBus.js";
9
11
  import { useStridgeEvent } from "./hooks/useStridgeEvent.js";
10
- import { EventHandler } from "./bus/createBus.js";
11
12
  import { PublicStridgeEventBus, useStridgeEventBus } from "./hooks/useStridgeEventBus.js";
12
13
  import { useStridgeEvents } from "./hooks/useStridgeEvents.js";
13
14
  import { useStridgeFlowEvent } from "./hooks/useStridgeFlowEvent.js";
14
15
  import { useStridgeFlowEvents } from "./hooks/useStridgeFlowEvents.js";
15
- export { type ActivityClosedEvent, type ActivityEvent, type ActivityOpenedEvent, type ActivitySelectionVia, type ActivitySettlementSelectedEvent, type ActivityStepChangedEvent, type ActivityUiEvent, type DepositAmountChangedEvent, type DepositAmountSubmittedEvent, type DepositAssetClickedEvent, type DepositBackClickedEvent, type DepositCancelPhase, type DepositCancelledEvent, type DepositClosedEvent, type DepositConfirmClickedEvent, type DepositEvent, type DepositFlowEvent, type DepositMaxClickedEvent, type DepositMethodClickedEvent, type DepositOpenedEvent, type DepositQuoteExpiredEvent, type DepositQuoteFailedEvent, type DepositQuoteRequestInput, type DepositQuoteRequestedEvent, type DepositQuoteResolvedEvent, type DepositSettlementFailedEvent, type DepositSettlementFailurePayload, type DepositSettlementProgressedEvent, type DepositSettlementResumedEvent, type DepositSettlementSucceededEvent, type DepositStepChangedEvent, type DepositSubmissionBroadcastEvent, type DepositSubmissionConfirmedEvent, type DepositSubmissionDeclinedEvent, type DepositSubmissionFailedEvent, type DepositTransferAddressCopiedEvent, type DepositTransferChainChangedEvent, type DepositTransferTokenChangedEvent, type DepositUiEvent, type EventHandler, type FailureCode, type FailurePayloadBase, type FlowEvent, type FlowEventType, type FlowIdKey, type KitEvent, type KitSupportClickedEvent, type KitTermsClickedEvent, type PublicStridgeEventBus, type StridgeEvent, type StridgeEventBase, type StridgeEventFlow, type StridgeEventTier, type StridgeEventType, type UiEvent, type UiEventType, type WithdrawAmountChangedEvent, type WithdrawBreakdownClickedEvent, type WithdrawCancelPhase, type WithdrawCancelledEvent, type WithdrawClosedEvent, type WithdrawEvent, type WithdrawFlowEvent, type WithdrawMaxClickedEvent, type WithdrawOpenedEvent, type WithdrawQuoteExpiredEvent, type WithdrawQuoteFailedEvent, type WithdrawQuoteRequestedEvent, type WithdrawQuoteResolvedEvent, type WithdrawReceiveChainChangedEvent, type WithdrawReceiveTokenChangedEvent, type WithdrawRecipientChangedEvent, type WithdrawSettlementFailedEvent, type WithdrawSettlementFailurePayload, type WithdrawSettlementProgressedEvent, type WithdrawSettlementSucceededEvent, type WithdrawStepChangedEvent, type WithdrawSubmissionBroadcastEvent, type WithdrawSubmissionConfirmedEvent, type WithdrawSubmissionDeclinedEvent, type WithdrawSubmissionFailedEvent, type WithdrawSubmitClickedEvent, type WithdrawUiEvent, useCurrentFlowId, useStridgeEvent, useStridgeEventBus, useStridgeEvents, useStridgeFlowEvent, useStridgeFlowEvents };
16
+ import { RedactEventOptions, redactEvent } from "./redact.js";
17
+ export { type ActivityClosedEvent, type ActivityEvent, type ActivityOpenedEvent, type ActivitySelectionVia, type ActivitySettlementSelectedEvent, type ActivityStepChangedEvent, type ActivityUiEvent, type DepositAmountChangedEvent, type DepositAmountSubmittedEvent, type DepositAssetClickedEvent, type DepositBackClickedEvent, type DepositCancelPhase, type DepositCancelledEvent, type DepositClosedEvent, type DepositConfirmClickedEvent, type DepositEvent, type DepositFlowEvent, type DepositMaxClickedEvent, type DepositMethodClickedEvent, type DepositOpenedEvent, type DepositQuoteExpiredEvent, type DepositQuoteFailedEvent, type DepositQuoteRequestInput, type DepositQuoteRequestedEvent, type DepositQuoteResolvedEvent, type DepositSettlementFailedEvent, type DepositSettlementFailurePayload, type DepositSettlementProgressedEvent, type DepositSettlementResumedEvent, type DepositSettlementSucceededEvent, type DepositStepChangedEvent, type DepositSubmissionBroadcastEvent, type DepositSubmissionConfirmedEvent, type DepositSubmissionDeclinedEvent, type DepositSubmissionFailedEvent, type DepositTransferAddressCopiedEvent, type DepositTransferChainChangedEvent, type DepositTransferTokenChangedEvent, type DepositUiEvent, type EventHandler, type FailureCode, type FailurePayloadBase, type FlowEvent, type FlowEventType, type FlowIdKey, KIT_VERSION, type KitEvent, type KitSupportClickedEvent, type KitTermsClickedEvent, type PublicStridgeEventBus, type RedactEventOptions, type StridgeEvent, type StridgeEventBase, type StridgeEventFlow, type StridgeEventTier, type StridgeEventType, type SubscribeOptions, type UiEvent, type UiEventType, type WithdrawAmountChangedEvent, type WithdrawBreakdownClickedEvent, type WithdrawCancelPhase, type WithdrawCancelledEvent, type WithdrawClosedEvent, type WithdrawEvent, type WithdrawFlowEvent, type WithdrawMaxClickedEvent, type WithdrawOpenedEvent, type WithdrawQuoteExpiredEvent, type WithdrawQuoteFailedEvent, type WithdrawQuoteRequestedEvent, type WithdrawQuoteResolvedEvent, type WithdrawReceiveChainChangedEvent, type WithdrawReceiveTokenChangedEvent, type WithdrawRecipientChangedEvent, type WithdrawSettlementFailedEvent, type WithdrawSettlementFailurePayload, type WithdrawSettlementProgressedEvent, type WithdrawSettlementSucceededEvent, type WithdrawStepChangedEvent, type WithdrawSubmissionBroadcastEvent, type WithdrawSubmissionConfirmedEvent, type WithdrawSubmissionDeclinedEvent, type WithdrawSubmissionFailedEvent, type WithdrawSubmitClickedEvent, type WithdrawUiEvent, redactEvent, useCurrentFlowId, useStridgeEvent, useStridgeEventBus, useStridgeEvents, useStridgeFlowEvent, useStridgeFlowEvents };
@@ -1 +1 @@
1
- import{useCurrentFlowId as e}from"./hooks/useCurrentFlowId.js";import{useStridgeEvent as t}from"./hooks/useStridgeEvent.js";import{useStridgeEventBus as n}from"./hooks/useStridgeEventBus.js";import{useStridgeEvents as r}from"./hooks/useStridgeEvents.js";import{useStridgeFlowEvent as i}from"./hooks/useStridgeFlowEvent.js";import{useStridgeFlowEvents as a}from"./hooks/useStridgeFlowEvents.js";import"./hooks/index.js";export{e as useCurrentFlowId,t as useStridgeEvent,n as useStridgeEventBus,r as useStridgeEvents,i as useStridgeFlowEvent,a as useStridgeFlowEvents};
1
+ import{KIT_VERSION as e}from"../version.js";import{useCurrentFlowId as t}from"./hooks/useCurrentFlowId.js";import{useStridgeEvent as n}from"./hooks/useStridgeEvent.js";import{useStridgeEventBus as r}from"./hooks/useStridgeEventBus.js";import{useStridgeEvents as i}from"./hooks/useStridgeEvents.js";import{useStridgeFlowEvent as a}from"./hooks/useStridgeFlowEvent.js";import{useStridgeFlowEvents as o}from"./hooks/useStridgeFlowEvents.js";import"./hooks/index.js";import{redactEvent as s}from"./redact.js";export{e as KIT_VERSION,s as redactEvent,t as useCurrentFlowId,n as useStridgeEvent,r as useStridgeEventBus,i as useStridgeEvents,a as useStridgeFlowEvent,o as useStridgeFlowEvents};
@@ -1 +1 @@
1
- function e({bus:e,flowIds:t,metadata:n},r){let i=null;if(r.flow!==`kit`&&(i=t.current(r.flow),i===null)){process.env.NODE_ENV!==`production`&&console.warn(`[stridge/kit] tried to emit "${r.type}" but no active "${r.flow}" flow — the event was dropped. This usually means an emit fired before "opened" or after the terminal event.`);return}let a=r.flow===`kit`?{}:n.read(r.flow),o={type:r.type,flow:r.flow,tier:r.tier,timestamp:Date.now(),flowId:i,payload:r.payload,metadata:a};e.emit(o)}function t(t,n,i,a){r(n,a.flow,`openFlowSession`),t.flowIds.open(n),t.metadata.snapshot(n,i),e(t,{...a,flow:n})}function n(t,n,i){r(n,i.flow,`closeFlowSession`),e(t,{...i,flow:n}),t.flowIds.close(n),t.metadata.clear(n)}function r(e,t,n){process.env.NODE_ENV!==`production`&&e!==t&&console.error(`[stridge/kit] ${n}() called with flow="${e}" but partial.flow="${t}". Override applied (envelope will carry "${e}") but this is a sign of a copy-paste bug in the emit site.`)}export{n as closeFlowSession,t as openFlowSession,e as publishEvent};
1
+ function e({bus:e,flowIds:t,metadata:n},r){let i=null;if(r.flow!==`kit`&&(i=t.current(r.flow),i===null))return process.env.NODE_ENV!==`production`&&console.warn(`[stridge/kit] tried to emit "${r.type}" but no active "${r.flow}" flow — the event was dropped. This usually means an emit fired before "opened" or after the terminal event.`),null;let a=r.flow===`kit`?{}:n.read(r.flow),o={type:r.type,flow:r.flow,tier:r.tier,timestamp:Date.now(),flowId:i,payload:r.payload,metadata:a};return e.emit(o),o}function t(t,n,i,a){r(n,a.flow,`openFlowSession`),t.flowIds.open(n),t.metadata.snapshot(n,i);let o=e(t,{...a,flow:n});o&&t.bus.retainOpenSession(o)}function n(t,n,i){r(n,i.flow,`closeFlowSession`),e(t,{...i,flow:n}),t.bus.releaseOpenSession(n),t.flowIds.close(n),t.metadata.clear(n)}function r(e,t,n){process.env.NODE_ENV!==`production`&&e!==t&&console.error(`[stridge/kit] ${n}() called with flow="${e}" but partial.flow="${t}". Override applied (envelope will carry "${e}") but this is a sign of a copy-paste bug in the emit site.`)}export{n as closeFlowSession,t as openFlowSession,e as publishEvent};
@@ -0,0 +1,34 @@
1
+ import { StridgeEvent } from "./types/index.js";
2
+
3
+ //#region src/events/redact.d.ts
4
+ /** Options for {@link redactEvent}. Both default to `true`. */
5
+ interface RedactEventOptions {
6
+ /**
7
+ * Mask EVM-address-like substrings (`0x` + 40 hex) anywhere in the payload to
8
+ * `0x1234…cdef`. Only EVM addresses are matched — the pattern is precise enough to avoid
9
+ * mangling unrelated hex (tx hashes are 64 hex and are left intact). Defaults to `true`.
10
+ */
11
+ maskAddresses?: boolean;
12
+ /**
13
+ * Drop `payload.cause` (the debug-only raw error). Defaults to `true`. Set `false` only if
14
+ * the destination is an error tracker that should keep the stack and you accept the
15
+ * forwarded contents.
16
+ */
17
+ dropCause?: boolean;
18
+ }
19
+ /**
20
+ * Return a privacy-redacted deep copy of `event`, safe to forward to a third-party analytics
21
+ * backend. Drops `payload.cause` and masks EVM addresses by default; preserves `type`, `flow`,
22
+ * `tier`, `timestamp`, `flowId`, and consumer-supplied `metadata`. The input is never mutated.
23
+ *
24
+ * @example
25
+ * ```ts
26
+ * useStridgeEvents((e) => {
27
+ * const safe = redactEvent(e);
28
+ * mixpanel.track(safe.type, { flowId: safe.flowId, ...safe.payload });
29
+ * });
30
+ * ```
31
+ */
32
+ declare function redactEvent<E extends StridgeEvent>(event: E, options?: RedactEventOptions): E;
33
+ //#endregion
34
+ export { RedactEventOptions, redactEvent };
@@ -0,0 +1 @@
1
+ const e=/0x[0-9a-fA-F]{40}(?![0-9a-fA-F])/g;function t(t){return t.replace(e,e=>`${e.slice(0,6)}…${e.slice(-4)}`)}function n(e,r,i,a){if(typeof e==`string`)return r.maskAddresses?t(e):e;if(typeof e!=`object`||!e||a>=8)return e;let o=i.get(e);if(o!==void 0)return o;if(Array.isArray(e)){let t=[];i.set(e,t);for(let o of e)t.push(n(o,r,i,a+1));return t}let s={};i.set(e,s);for(let[t,o]of Object.entries(e)){if(t===`cause`){if(r.dropCause)continue;s[t]=o;continue}s[t]=n(o,r,i,a+1)}return s}function r(e,t){let r={maskAddresses:t?.maskAddresses??!0,dropCause:t?.dropCause??!0},i=n(e.payload,r,new WeakMap,0);return{...e,payload:i}}export{r as redactEvent};
@@ -1 +1 @@
1
- "use client";import{useOptionalActivityDriverInstance as e}from"../../activity/driver/context.js";import{useLingui as t}from"../../../shared/i18n/useLingui.js";import"../../../i18n/index.js";import{toFailure as n}from"../../../shared/orchestrator/toFailure.js";import{useDriverSettlementListener as r}from"../../../shared/orchestrator/useDriverSettlementListener.js";import{useEffectiveState as i}from"../../../shared/orchestrator/useEffectiveState.js";import{isUserRejectionFailure as a}from"../../../shared/orchestrator/userRejection.js";import{useSettlementWatcher as o}from"../../../shared/orchestrator/useSettlementWatcher.js";import"../../../shared/orchestrator/index.js";import{useDepositDriverInstance as s}from"../driver/context.js";import{initialState as c,reducer as l}from"./reducer.js";import{resolveAssetById as u}from"./resolveAssetById.js";import{createContext as d,use as f,useCallback as p,useEffect as m,useMemo as h,useReducer as g,useRef as _}from"react";import{jsx as v}from"react/jsx-runtime";const y={id:`ELhVSL`,message:`Failed to submit deposit.`},b={id:`Ej5HL9`,message:`Signature declined. Please try again.`},x=d(null);x.displayName=`GatewayControllerStateContext`;const S=d(null);S.displayName=`GatewayControllerStableContext`;function C(){let e=f(x),t=f(S);if(!e||!t)throw Error(`useDeposit / GatewayController must be used inside <KitProvider deposit={…} />. Mount KitProvider once at the host's app root.`);return{...e,...t}}function w(){let e=f(S);if(!e)throw Error(`useDeposit / GatewayController must be used inside <KitProvider deposit={…} />. Mount KitProvider once at the host's app root.`);return e}function T(){return f(S)}const E=d(void 0);E.displayName=`DepositMethodsConfigContext`;function D(){return f(E)}const O=d(!1);O.displayName=`CashRailUnlockedContext`;function k(){return f(O)}function A(e){let t=D();return h(()=>t?e.filter(e=>e.value===`cash`?t.cashRail?.disabled!==!0:!0):e,[e,t])}function j(){let e=f(x);if(!e)throw Error(`useDeposit / GatewayController must be used inside <KitProvider deposit={…} />. Mount KitProvider once at the host's app root.`);return e.state}function M(){let e=f(x);if(!e)throw Error(`useDeposit / GatewayController must be used inside <KitProvider deposit={…} />. Mount KitProvider once at the host's app root.`);return e.effectiveState}function N(){return w().actions}function P({methodsConfig:t,cashRailUnlocked:n=!1,children:r}){let a=s(),o=e(),[u,d]=g(l,c),f=I(u,d,a,o);L(u,d,a),R(u,d,a,o);let p=i(u),m=F(u,d,a,f,t);return v(E,{value:t,children:v(O,{value:n,children:v(S,{value:h(()=>({dispatch:d,controller:m,actions:f}),[d,m,f]),children:v(x,{value:h(()=>({state:u,effectiveState:p}),[u,p]),children:r})})})})}function F(e,t,n,r,i){let a=_(n);a.current=n;let o=_(i);o.current=i;let s=p(e=>{if(!e)return a.current.arm(),t({type:`OPEN`,input:void 0}),!0;if(o.current?.[e.method]?.disabled)return!1;if(e.method===`transfer`)return a.current.arm(),t({type:`OPEN`,input:{method:`transfer`}}),!0;if(e.method===`wallet`&&e.assetId!==void 0){let n=u(a.current.getSnapshot(),e.assetId);return a.current.arm(),n?(t({type:`OPEN`,input:{method:`wallet`,asset:n}}),!0):(t({type:`OPEN`,input:{method:`wallet`}}),!0)}return a.current.arm(),t({type:`OPEN`,input:{method:`wallet`}}),!0},[t]),c=p(()=>{t({type:`CLOSE`})},[t]);return h(()=>({open:s,close:c,actions:r}),[s,c,r])}function I(e,r,i,o){let s=_(e);s.current=e;let c=_(i);c.current=i;let l=_(o);l.current=o;let u=_(r);u.current=r;let{i18n:d}=t(),f=_(d);f.current=d;let m=p((e,t)=>{let r=c.current,i=new AbortController,o=B(e,t);r.submitDeposit(o,i.signal).then(e=>{if(!i.signal.aborted){try{r.invalidateBalances?.()}catch{}try{l.current?.invalidateActivity?.()}catch{}u.current({type:`DEPOSIT_SUBMITTED`,tx:e})}}).catch(e=>{if(i.signal.aborted)return;let t=n(e,f.current._(y));if(a(t)){u.current({type:`DEPOSIT_SIGNATURE_DECLINED`,notice:f.current._(b)});return}u.current({type:`DEPOSIT_SUBMISSION_FAILED`,failure:t})})},[]),g=p(e=>{u.current({type:`DEPOSIT_METHOD_SELECTED`,method:e})},[]),v=p(e=>{u.current({type:`CASH_METHOD_SELECTED`,cashMethod:e})},[]),x=p(e=>{u.current({type:`CASH_AMOUNT_CONFIRMED`,amount:e})},[]),S=p(()=>{u.current({type:`CASH_METHOD_READY`})},[]),C=p(e=>{u.current({type:`ASSET_CONFIRMED`,asset:e})},[]),w=p(e=>{s.current.name===`amountEntry`&&u.current({type:`AMOUNT_CONFIRMED`,amount:e})},[]),T=p(()=>{let e=s.current;if(e.name!==`confirmDeposit`)return;let t=e.ctx.phase;if(t.kind===`failed`){u.current({type:`QUOTE_RETRY`});return}if(t.kind!==`ready`)return;let{asset:n,amount:r}=e.ctx;u.current({type:`DEPOSIT_CONFIRMED`}),m(n,r)},[m]),E=p(()=>{u.current({type:`BACK`})},[]),D=p(()=>{u.current({type:`CLOSE`})},[]),O=p(()=>{u.current({type:`SUCCESS_DONE`})},[]),k=p(()=>{u.current({type:`ERROR_TRY_AGAIN`})},[]),A=p((e,t)=>{u.current({type:`RESUME_TO_PROCESSING`,method:e,tx:t})},[]),j=p((e,t)=>{u.current({type:`RESUME_TO_SUCCESS`,method:e,tx:t})},[]),M=p(e=>{u.current({type:`RESUME_TO_ERROR`,...e?{tx:e}:{}})},[]),N=p(()=>{if(l.current==null){process.env.NODE_ENV!==`production`&&console.warn("[@stridge/kit] useDepositActions().openActivity() was called but no activity driver is mounted. Wrap the host with `<KitProvider activity={…}>` (or `<StridgeProvider>` with any flow enabled) to enable the activity surface.");return}let e=s.current;e.name!==`deposit`&&e.name!==`assetPicker`&&e.name!==`amountEntry`&&e.name!==`transferCrypto`||u.current({type:`OPEN_ACTIVITY`})},[]),P=p(e=>{u.current({type:`SELECT_SETTLEMENT`,settlementId:e})},[]);return h(()=>({selectMethod:g,selectCashMethod:v,confirmCashAmount:x,cashMethodReady:S,confirmAsset:C,confirmAmount:w,confirmDeposit:T,back:E,close:D,successDone:O,tryAgain:k,resumeToProcessing:A,resumeToSuccess:j,resumeToError:M,openActivity:N,selectSettlement:P}),[g,v,x,S,C,w,T,E,D,O,k,A,j,M,N,P])}function L(e,t,r){m(()=>{if(e.name!==`confirmDeposit`||e.ctx.phase.kind!==`loading`&&e.ctx.phase.kind!==`regenerating`)return;let i=new AbortController,a=z(e.ctx.asset,e.ctx.amount);return r.requestQuote(a,i.signal).catch(e=>{i.signal.aborted||t({type:`QUOTE_FAILED`,failure:n(e,`Failed to fetch quote.`)})}),()=>i.abort()},[e.name,e.name===`confirmDeposit`?e.ctx.phase.kind:void 0,e.name===`confirmDeposit`?e.ctx.asset:void 0,e.name===`confirmDeposit`?e.ctx.amount:void 0,r,t]),m(()=>{if(e.name!==`confirmDeposit`||e.ctx.phase.kind!==`ready`)return;let n=e.ctx.phase.quoteExpiresAt,r=Math.max(0,n-Date.now()),i=setTimeout(()=>{t({type:`QUOTE_EXPIRED`})},r);return()=>clearTimeout(i)},[e.name,e.name===`confirmDeposit`&&e.ctx.phase.kind===`ready`?e.ctx.phase.quoteExpiresAt:void 0,t])}function R(e,t,n,i){let a=_(i);a.current=i;let s=e.name===`processing`?e.ctx.tx:void 0;o(n,s?{tx:s}:void 0,s?.hash),m(()=>{if(e.name!==`transferCrypto`||!n.watchSourceTx)return;let t=new AbortController,r;return n.watchSourceTx({},e=>{if(!t.signal.aborted&&!r){r=new AbortController,n.watchSettlement({tx:e},()=>{},r.signal);try{a.current?.invalidateActivity?.()}catch{}}},t.signal),()=>{t.abort(),r?.abort()}},[e.name,n]);let c=e.name===`activityList`||e.name===`activityDetail`;m(()=>{if(!c||!i)return;let e=new AbortController;return i.watchActivity(e.signal),()=>e.abort()},[c,i]),m(()=>{if(e.name===`closed`||e.name===`transferCrypto`||e.name===`processing`||c||!n.fetchActiveSettlement)return;let t=new AbortController,r,i,a=!1,o=async()=>{try{let e=await n.fetchActiveSettlement({},t.signal);if(a)return;if(e&&!r&&e.payload.kind===`pending`){let t=e.payload.txHash?.value;t&&(r=new AbortController,n.watchSettlement({tx:{hash:t}},()=>{},r.signal))}}catch{}a||(i=setTimeout(o,5e3))};return o(),()=>{a=!0,t.abort(),r?.abort(),i&&clearTimeout(i)}},[e.name,c,n]);let l=_(e);l.current=e,r(n,e=>{if(e===`pending`||e===`succeeded`||e===`failed`)try{n.invalidateBalances?.()}catch{}l.current.name===`processing`&&(e===`succeeded`?t({type:`PROCESSING_SUCCEEDED`}):e===`failed`&&t({type:`PROCESSING_FAILED`}))});let u=_(null);m(()=>{let e=()=>{let e=n.getSnapshot(),r=l.current,i=e.quote;i.status!==u.current&&(u.current=i.status,i.status===`ready`&&r.name===`confirmDeposit`?(r.ctx.phase.kind===`loading`||r.ctx.phase.kind===`regenerating`)&&t({type:`QUOTE_RESOLVED`,expiresAt:i.payload.expiresAt}):i.status===`error`&&r.name===`confirmDeposit`&&(r.ctx.phase.kind===`loading`||r.ctx.phase.kind===`regenerating`)&&t({type:`QUOTE_FAILED`,failure:{reason:i.error.message,code:i.error.name}}))},r=n.subscribe(e);return e(),r},[n,t])}function z(e,t){let n=e.eip155Id;if(!n)throw Error(`Asset ${e.symbol} is missing eip155Id; cannot build quote input.`);return{sourceChainId:Number(n),sourceTokenAddress:e.address,sourceTokenDecimals:e.decimals,sourceTokenSymbol:e.symbol,sourceIsNative:e.isNative,amount:t,...e.priceUsd===void 0?{}:{sourcePriceUsd:e.priceUsd}}}function B(e,t){let n=e.eip155Id;if(!n)throw Error(`Asset ${e.symbol} is missing eip155Id; cannot build submit input.`);return{sourceChainId:Number(n),sourceTokenAddress:e.address,sourceTokenDecimals:e.decimals,sourceIsNative:e.isNative,amount:t}}export{P as GatewayController,k as useCashRailUnlocked,C as useControllerContext,N as useDepositActions,M as useDepositEffectiveState,D as useDepositMethodsConfig,j as useDepositState,A as useEnabledRails,T as useOptionalStableControllerContext,w as useStableControllerContext};
1
+ "use client";import{useOptionalActivityDriverInstance as e}from"../../activity/driver/context.js";import{useLingui as t}from"../../../shared/i18n/useLingui.js";import"../../../i18n/index.js";import{toFailure as n}from"../../../shared/orchestrator/toFailure.js";import{useDriverSettlementListener as r}from"../../../shared/orchestrator/useDriverSettlementListener.js";import{useEffectiveState as i}from"../../../shared/orchestrator/useEffectiveState.js";import{isUserRejectionFailure as a}from"../../../shared/orchestrator/userRejection.js";import{useSettlementWatcher as o}from"../../../shared/orchestrator/useSettlementWatcher.js";import"../../../shared/orchestrator/index.js";import{useDepositDriverInstance as s}from"../driver/context.js";import{initialState as c,reducer as l}from"./reducer.js";import{resolveAssetById as u}from"./resolveAssetById.js";import{createContext as d,use as f,useCallback as p,useEffect as m,useMemo as h,useReducer as g,useRef as _}from"react";import{jsx as v}from"react/jsx-runtime";const y={id:`ELhVSL`,message:`Failed to submit deposit.`},b={id:`Ej5HL9`,message:`Signature declined. Please try again.`},x=d(null);x.displayName=`GatewayControllerStateContext`;const S=d(null);S.displayName=`GatewayControllerStableContext`;function C(){let e=f(x),t=f(S);if(!e||!t)throw Error(`useDeposit / GatewayController must be used inside <KitProvider deposit={…} />. Mount KitProvider once at the host's app root.`);return{...e,...t}}function w(){let e=f(S);if(!e)throw Error(`useDeposit / GatewayController must be used inside <KitProvider deposit={…} />. Mount KitProvider once at the host's app root.`);return e}function T(){return f(S)}const E=d(void 0);E.displayName=`DepositMethodsConfigContext`;function D(){return f(E)}const O=d(!1);O.displayName=`CashRailUnlockedContext`;function k(){return f(O)}function A(e){let t=D();return h(()=>t?e.filter(e=>e.value===`cash`?t.cashRail?.disabled!==!0:!0):e,[e,t])}function j(){let e=f(x);if(!e)throw Error(`useDeposit / GatewayController must be used inside <KitProvider deposit={…} />. Mount KitProvider once at the host's app root.`);return e.state}function M(){let e=f(x);if(!e)throw Error(`useDeposit / GatewayController must be used inside <KitProvider deposit={…} />. Mount KitProvider once at the host's app root.`);return e.effectiveState}function N(){return w().actions}function P({methodsConfig:t,cashRailUnlocked:n=!1,children:r}){let a=s(),o=e(),[u,d]=g(l,c),f=I(u,d,a,o);L(u,d,a),R(u,d,a,o);let p=i(u),m=F(u,d,a,f,t);return v(E,{value:t,children:v(O,{value:n,children:v(S,{value:h(()=>({dispatch:d,controller:m,actions:f}),[d,m,f]),children:v(x,{value:h(()=>({state:u,effectiveState:p}),[u,p]),children:r})})})})}function F(e,t,n,r,i){let a=_(n);a.current=n;let o=_(i);o.current=i;let s=p(e=>{if(!e)return a.current.arm(),t({type:`OPEN`,input:void 0}),!0;if(o.current?.[e.method]?.disabled)return!1;if(e.method===`transfer`)return a.current.arm(),t({type:`OPEN`,input:{method:`transfer`}}),!0;if(e.method===`wallet`&&e.assetId!==void 0){let n=u(a.current.getSnapshot(),e.assetId);return a.current.arm(),n?(t({type:`OPEN`,input:{method:`wallet`,asset:n}}),!0):(t({type:`OPEN`,input:{method:`wallet`}}),!0)}return a.current.arm(),t({type:`OPEN`,input:{method:`wallet`}}),!0},[t]),c=p(()=>{t({type:`CLOSE`})},[t]);return h(()=>({open:s,close:c,actions:r}),[s,c,r])}function I(e,r,i,o){let s=_(e);s.current=e;let c=_(i);c.current=i;let l=_(o);l.current=o;let u=_(r);u.current=r;let{i18n:d}=t(),f=_(d);f.current=d;let m=p((e,t)=>{let r=c.current,i=new AbortController,o=B(e,t);r.submitDeposit(o,i.signal).then(e=>{if(!i.signal.aborted){try{r.invalidateBalances?.()}catch{}try{l.current?.invalidateActivity?.()}catch{}u.current({type:`DEPOSIT_SUBMITTED`,tx:e})}}).catch(e=>{if(i.signal.aborted)return;let t=n(e,f.current._(y));if(a(t)){u.current({type:`DEPOSIT_SIGNATURE_DECLINED`,notice:f.current._(b)});return}u.current({type:`DEPOSIT_SUBMISSION_FAILED`,failure:t})})},[]),g=p(e=>{u.current({type:`DEPOSIT_METHOD_SELECTED`,method:e})},[]),v=p(e=>{u.current({type:`CASH_METHOD_SELECTED`,cashMethod:e})},[]),x=p(e=>{u.current({type:`CASH_AMOUNT_CONFIRMED`,amount:e})},[]),S=p(()=>{u.current({type:`CASH_METHOD_READY`})},[]),C=p(e=>{u.current({type:`ASSET_CONFIRMED`,asset:e})},[]),w=p(e=>{s.current.name===`amountEntry`&&u.current({type:`AMOUNT_CONFIRMED`,amount:e})},[]),T=p(()=>{let e=s.current;if(e.name!==`confirmDeposit`)return;let t=e.ctx.phase;if(t.kind===`failed`){u.current({type:`QUOTE_RETRY`});return}if(t.kind!==`ready`)return;let{asset:n,amount:r}=e.ctx;u.current({type:`DEPOSIT_CONFIRMED`}),m(n,r)},[m]),E=p(()=>{u.current({type:`BACK`})},[]),D=p(()=>{u.current({type:`CLOSE`})},[]),O=p(()=>{u.current({type:`SUCCESS_DONE`})},[]),k=p(()=>{u.current({type:`ERROR_TRY_AGAIN`})},[]),A=p((e,t)=>{u.current({type:`RESUME_TO_PROCESSING`,method:e,tx:t})},[]),j=p((e,t)=>{u.current({type:`RESUME_TO_SUCCESS`,method:e,tx:t})},[]),M=p(e=>{u.current({type:`RESUME_TO_ERROR`,...e?{tx:e}:{}})},[]),N=p(()=>{if(l.current==null){process.env.NODE_ENV!==`production`&&console.warn("[@stridge/kit] useDepositActions().openActivity() was called but no activity driver is mounted. Wrap the host with `<KitProvider activity={…}>` (or `<StridgeProvider>` with any flow enabled) to enable the activity surface.");return}let e=s.current;e.name!==`deposit`&&e.name!==`assetPicker`&&e.name!==`amountEntry`&&e.name!==`transferCrypto`||u.current({type:`OPEN_ACTIVITY`})},[]),P=p(e=>{u.current({type:`SELECT_SETTLEMENT`,settlementId:e})},[]);return h(()=>({selectMethod:g,selectCashMethod:v,confirmCashAmount:x,cashMethodReady:S,confirmAsset:C,confirmAmount:w,confirmDeposit:T,back:E,close:D,successDone:O,tryAgain:k,resumeToProcessing:A,resumeToSuccess:j,resumeToError:M,openActivity:N,selectSettlement:P}),[g,v,x,S,C,w,T,E,D,O,k,A,j,M,N,P])}function L(e,t,r){m(()=>{if(e.name!==`confirmDeposit`||e.ctx.phase.kind!==`loading`&&e.ctx.phase.kind!==`regenerating`)return;let i=new AbortController,a=z(e.ctx.asset,e.ctx.amount);return r.requestQuote(a,i.signal).catch(e=>{i.signal.aborted||t({type:`QUOTE_FAILED`,failure:n(e,`Failed to fetch quote.`)})}),()=>i.abort()},[e.name,e.name===`confirmDeposit`?e.ctx.phase.kind:void 0,e.name===`confirmDeposit`?e.ctx.asset:void 0,e.name===`confirmDeposit`?e.ctx.amount:void 0,r,t]),m(()=>{if(e.name!==`confirmDeposit`||e.ctx.phase.kind!==`ready`)return;let n=e.ctx.phase.quoteExpiresAt,r=Math.max(0,n-Date.now()),i=setTimeout(()=>{t({type:`QUOTE_EXPIRED`})},r);return()=>clearTimeout(i)},[e.name,e.name===`confirmDeposit`&&e.ctx.phase.kind===`ready`?e.ctx.phase.quoteExpiresAt:void 0,t])}function R(e,t,n,i){let a=_(i);a.current=i;let s=e.name===`processing`?e.ctx.tx:void 0;o(n,s?{tx:s}:void 0,s?.hash),m(()=>{if(e.name!==`transferCrypto`||!n.watchSourceTx)return;let t=new AbortController,r;return n.watchSourceTx({},e=>{if(!t.signal.aborted&&!r){r=new AbortController,n.watchSettlement({tx:e},()=>{},r.signal);try{a.current?.invalidateActivity?.()}catch{}}},t.signal),()=>{t.abort(),r?.abort()}},[e.name,n]);let c=e.name===`activityList`||e.name===`activityDetail`;m(()=>{if(!c||!i)return;let e=new AbortController;return i.watchActivity(e.signal),()=>e.abort()},[c,i]),m(()=>{if(e.name===`closed`||e.name===`transferCrypto`||e.name===`processing`||c||!n.fetchActiveSettlement)return;let t=new AbortController,r,i,a=!1,o=async()=>{try{let e=await n.fetchActiveSettlement({},t.signal);if(a)return;if(e&&!r&&e.payload.kind===`pending`){let t=e.payload.txHash?.value;t&&(r=new AbortController,n.watchSettlement({tx:{hash:t}},()=>{},r.signal))}}catch{}a||(i=setTimeout(o,5e3))};return o(),()=>{a=!0,t.abort(),r?.abort(),i&&clearTimeout(i)}},[e.name,c,n]);let l=_(e);l.current=e,r(n,e=>{if(e===`pending`||e===`succeeded`||e===`failed`)try{n.invalidateBalances?.()}catch{}l.current.name===`processing`&&(e===`succeeded`?t({type:`PROCESSING_SUCCEEDED`}):e===`failed`&&t({type:`PROCESSING_FAILED`}))});let u=_(null);m(()=>{let e=()=>{let e=n.getSnapshot(),r=l.current,i=e.quote;i.status!==u.current&&(u.current=i.status,i.status===`ready`&&r.name===`confirmDeposit`?(r.ctx.phase.kind===`loading`||r.ctx.phase.kind===`regenerating`)&&t({type:`QUOTE_RESOLVED`,expiresAt:i.payload.expiresAt}):i.status===`error`&&r.name===`confirmDeposit`&&(r.ctx.phase.kind===`loading`||r.ctx.phase.kind===`regenerating`)&&t({type:`QUOTE_FAILED`,failure:{reason:i.error.message,code:i.error.name,cause:i.error}}))},r=n.subscribe(e);return e(),r},[n,t])}function z(e,t){let n=e.eip155Id;if(!n)throw Error(`Asset ${e.symbol} is missing eip155Id; cannot build quote input.`);return{sourceChainId:Number(n),sourceTokenAddress:e.address,sourceTokenDecimals:e.decimals,sourceTokenSymbol:e.symbol,sourceIsNative:e.isNative,amount:t,...e.priceUsd===void 0?{}:{sourcePriceUsd:e.priceUsd}}}function B(e,t){let n=e.eip155Id;if(!n)throw Error(`Asset ${e.symbol} is missing eip155Id; cannot build submit input.`);return{sourceChainId:Number(n),sourceTokenAddress:e.address,sourceTokenDecimals:e.decimals,sourceIsNative:e.isNative,amount:t}}export{P as GatewayController,k as useCashRailUnlocked,C as useControllerContext,N as useDepositActions,M as useDepositEffectiveState,D as useDepositMethodsConfig,j as useDepositState,A as useEnabledRails,T as useOptionalStableControllerContext,w as useStableControllerContext};
@@ -1,5 +1,6 @@
1
1
  import { DialogShellControls } from "../../../../shared/dialog/DialogShell.js";
2
2
  import { AssetPickerBodyProps } from "../../../../shared/widgets/asset-picker/compound/types.js";
3
+ import { AssetPickerEmpty } from "../../../../shared/widgets/asset-picker/compound/components/Empty.js";
3
4
  import { AssetPickerFooter } from "../../../../shared/widgets/asset-picker/compound/components/Footer.js";
4
5
  import { AssetPickerHeader } from "../../../../shared/widgets/asset-picker/compound/components/Header.js";
5
6
  import { AssetPickerList } from "../../../../shared/widgets/asset-picker/compound/components/List.js";
@@ -38,6 +39,7 @@ declare namespace AssetPicker {
38
39
  const Body: (props: AssetPickerBodyProps) => _$react_jsx_runtime0.JSX.Element;
39
40
  const List: typeof AssetPickerList;
40
41
  const Footer: typeof AssetPickerFooter;
42
+ const Empty: typeof AssetPickerEmpty;
41
43
  }
42
44
  //#endregion
43
45
  export { AssetPicker };
@@ -1 +1 @@
1
- "use client";import{useOptionalActivityDriverInstance as e}from"../../../activity/driver/context.js";import{useDepositSnapshot as t}from"../../driver/context.js";import{useDepositActions as n,useDepositEffectiveState as r}from"../../orchestrator/controller.js";import{DialogShell as i}from"../../../../shared/dialog/DialogShell.js";import{ActivityTrigger as a}from"../../../../shared/widgets/activity/ActivityTrigger.js";import"../../../../shared/widgets/activity/index.js";import{AssetPicker as o}from"../../../../shared/widgets/asset-picker/compound/AssetPicker.js";import"../../../../shared/widgets/asset-picker/compound/index.js";import{useMemo as s,useState as c}from"react";import{Fragment as l,jsx as u,jsxs as d}from"react/jsx-runtime";const f=d(l,{children:[u(o.Header,{}),u(o.Body,{children:u(o.List,{})}),u(o.Footer,{})]});function p({children:i,...l}){let d=t(),p=r(),{confirmAsset:g,back:_,openActivity:v}=n(),y=e()!==null,[b,x]=c(void 0),S=d.balances,C=S.status===`ready`||S.status===`stale`?S.payload:[],w=s(()=>C.map(m),[C]),T=s(()=>(e=>e!==void 0&&w.some(t=>t.id===e&&!t.disabled))(b)?b:w.find(e=>!e.disabled)?.id,[b,w]),E=d.target,D=E.status===`ready`||E.status===`stale`?E.payload:void 0;if(p.name!==`assetPicker`)return null;let O=p.ctx.backTarget===`closed`?void 0:_,k=()=>{if(!T)return;let e=C.find(e=>h(e)===T);e&&g(e)};return u(o,{...l,...D?{token:{symbol:D.symbol}}:{},...T?{selectedId:T}:{},onSelect:x,assets:w,...O?{onBack:O}:{},onContinue:k,...y?{headerTrailing:u(a,{onOpen:v})}:{},children:i??f})}function m(e){let t=h(e),n=`${e.amount.formatted} ${e.symbol}`,r=e.amountUsd?.formatted??`—`;return{id:t,symbol:e.symbol,chain:e.networkName,balance:e.amount.value,balanceFormatted:n,fiatFormatted:r,...e.eip155Id?{chainId:Number(e.eip155Id)}:{},...e.address?{contractAddress:e.address}:{},isNative:e.isNative,...e.assetLogoUrl?{logoUrl:e.assetLogoUrl}:{},...e.chainLogoUrl?{chainLogoUrl:e.chainLogoUrl}:{},decimals:e.decimals,...e.priceUsd===void 0?{}:{priceUsd:e.priceUsd},...e.lowBalance?{lowBalance:!0}:{},...e.disabled?{disabled:!0}:{}}}function h(e){return e.eip155Id?`${e.eip155Id}:${e.address||`native`}`:e.symbol.toLowerCase()}function g({open:e,defaultOpen:t,onOpenChange:n,trigger:r,...a}){return u(i,{open:e,defaultOpen:t,onOpenChange:n,trigger:r,children:u(p,{...a})})}(function(e){e.Dialog=g,e.Header=o.Header,e.Body=o.Body,e.List=o.List,e.Footer=o.Footer})(p||={});export{p as AssetPicker};
1
+ "use client";import{useOptionalActivityDriverInstance as e}from"../../../activity/driver/context.js";import{useDepositSnapshot as t}from"../../driver/context.js";import{useDepositActions as n,useDepositEffectiveState as r}from"../../orchestrator/controller.js";import{DialogShell as i}from"../../../../shared/dialog/DialogShell.js";import{ActivityTrigger as a}from"../../../../shared/widgets/activity/ActivityTrigger.js";import"../../../../shared/widgets/activity/index.js";import{AssetPicker as o}from"../../../../shared/widgets/asset-picker/compound/AssetPicker.js";import"../../../../shared/widgets/asset-picker/compound/index.js";import{useMemo as s,useState as c}from"react";import{Fragment as l,jsx as u,jsxs as d}from"react/jsx-runtime";const f=d(l,{children:[u(o.Header,{}),u(o.Body,{children:u(o.List,{})}),u(o.Footer,{})]}),p=d(l,{children:[u(o.Header,{}),u(o.Body,{children:u(o.Empty,{})})]});function m({children:i,...l}){let d=t(),m=r(),{confirmAsset:_,back:v,openActivity:y}=n(),b=e()!==null,[x,S]=c(void 0),C=d.balances,w=C.status===`ready`||C.status===`stale`?C.payload:[],T=s(()=>w.map(h),[w]),E=(C.status===`ready`||C.status===`stale`)&&T.length===0,D=s(()=>(e=>e!==void 0&&T.some(t=>t.id===e&&!t.disabled))(x)?x:T.find(e=>!e.disabled)?.id,[x,T]),O=d.target,k=O.status===`ready`||O.status===`stale`?O.payload:void 0;if(m.name!==`assetPicker`)return null;let A=m.ctx.backTarget===`closed`?void 0:v,j=()=>{if(!D)return;let e=w.find(e=>g(e)===D);e&&_(e)};return u(o,{...l,...k?{token:{symbol:k.symbol}}:{},...D?{selectedId:D}:{},onSelect:S,assets:T,...A?{onBack:A}:{},onContinue:j,...b?{headerTrailing:u(a,{onOpen:y})}:{},children:i??(E?p:f)})}function h(e){let t=g(e),n=`${e.amount.formatted} ${e.symbol}`,r=e.amountUsd?.formatted??`—`;return{id:t,symbol:e.symbol,chain:e.networkName,balance:e.amount.value,balanceFormatted:n,fiatFormatted:r,...e.eip155Id?{chainId:Number(e.eip155Id)}:{},...e.address?{contractAddress:e.address}:{},isNative:e.isNative,...e.assetLogoUrl?{logoUrl:e.assetLogoUrl}:{},...e.chainLogoUrl?{chainLogoUrl:e.chainLogoUrl}:{},decimals:e.decimals,...e.priceUsd===void 0?{}:{priceUsd:e.priceUsd},...e.lowBalance?{lowBalance:!0}:{},...e.disabled?{disabled:!0}:{}}}function g(e){return e.eip155Id?`${e.eip155Id}:${e.address||`native`}`:e.symbol.toLowerCase()}function _({open:e,defaultOpen:t,onOpenChange:n,trigger:r,...a}){return u(i,{open:e,defaultOpen:t,onOpenChange:n,trigger:r,children:u(m,{...a})})}(function(e){e.Dialog=_,e.Header=o.Header,e.Body=o.Body,e.List=o.List,e.Footer=o.Footer,e.Empty=o.Empty})(m||={});export{m as AssetPicker};
@@ -1 +1 @@
1
- "use client";import{useLingui as e}from"../../../../../../shared/i18n/useLingui.js";import"../../../../../../i18n/index.js";import{CopyIcon as t}from"../../../../../../shared/icons/CopyIcon.js";import{InfoIcon as n}from"../../../../../../shared/icons/InfoIcon.js";import"../../../../../../icons/index.js";import{Button as r}from"../../../../../../shared/ui/Button/Button.js";import"../../../../../../shared/ui/Button/index.js";import{Card as i}from"../../../../../../shared/ui/Card/Card.js";import{text as a}from"../../../../../../shared/ui/Text/Text.js";import"../../../../../../ui/index.js";import{TermsLink as o}from"../../../../../../shared/terms/TermsLink.js";import"../../../../../../shared/terms/index.js";import{useCopyToClipboard as s}from"../../../../../../shared/utils/useCopyToClipboard.js";import{useTransferCryptoContext as c}from"../context.js";import{TRANSFER_CRYPTO_SLOTS as l}from"../TransferCrypto.slots.js";import{styles as u}from"../TransferCrypto.styles.js";import{InfoTooltip as d}from"./InfoTooltip.js";import{useCallback as f}from"react";import{jsx as p,jsxs as m}from"react/jsx-runtime";import*as h from"@stylexjs/stylex";function g(){let g=c(`TransferCrypto.Address`),{_}=e(),{isCopied:v,copy:y}=s(g.depositAddress),b=_({id:`6D8qH6`,message:`Send the selected token on the selected chain to this address. Funds appear in your account once the network confirms the transfer.`}),x=f(async()=>{await y()&&g.onCopy?.(g.depositAddress)},[y,g]);return m(`div`,{"data-stridge-slot":l.address,...h.props(u.addressSection),children:[m(`div`,{...h.props(u.addressLabelRow),children:[m(a.span,{size:`meta`,fontWeight:`medium`,leading:`tight`,...h.props(u.addressLabel),children:[_({id:`pCzTTC`,message:`Your deposit address`}),p(d,{content:b,children:p(n,{"aria-hidden":!0,...h.props(u.addressLabelInfo)})})]}),p(o,{...h.props(u.termsLink),children:p(a.span,{size:`xs`,fontWeight:`medium`,leading:`tight`,color:`inherit`,children:_({id:`cGYrpE`,message:`Terms apply`})})})]}),m(i,{variant:`subdued`,dir:`ltr`,...h.props(u.addressPill),children:[p(a.span,{size:`xs`,fontWeight:`medium`,leading:`tight`,tracking:`normal`,font:`mono`,...h.props(u.addressText),children:g.depositAddress}),m(r,{variant:`secondary`,onClick:x,"aria-label":_({id:`SOVBoe`,message:`Copy deposit address`}),...h.props(u.copyButton),children:[p(t,{"aria-hidden":!0,...h.props(u.copyIcon)}),p(a.span,{size:`meta`,fontWeight:`semibold`,leading:`tight`,tracking:`tight`,color:`inherit`,children:_(v?{id:`PiH3UR`,message:`Copied!`}:{id:`he3ygx`,message:`Copy`})})]})]})]})}export{g as TransferCryptoAddress};
1
+ "use client";import{useLingui as e}from"../../../../../../shared/i18n/useLingui.js";import"../../../../../../i18n/index.js";import{CopyIcon as t}from"../../../../../../shared/icons/CopyIcon.js";import{InfoIcon as n}from"../../../../../../shared/icons/InfoIcon.js";import"../../../../../../icons/index.js";import{Button as r}from"../../../../../../shared/ui/Button/Button.js";import"../../../../../../shared/ui/Button/index.js";import{Card as i}from"../../../../../../shared/ui/Card/Card.js";import{text as a}from"../../../../../../shared/ui/Text/Text.js";import"../../../../../../ui/index.js";import{TermsLink as o}from"../../../../../../shared/terms/TermsLink.js";import"../../../../../../shared/terms/index.js";import{useCopyToClipboard as s}from"../../../../../../shared/utils/useCopyToClipboard.js";import{useTransferCryptoContext as c}from"../context.js";import{TRANSFER_CRYPTO_SLOTS as l}from"../TransferCrypto.slots.js";import{styles as u}from"../TransferCrypto.styles.js";import{InfoTooltip as d}from"./InfoTooltip.js";import{useCallback as f}from"react";import{jsx as p,jsxs as m}from"react/jsx-runtime";import*as h from"@stylexjs/stylex";function g(){let g=c(`TransferCrypto.Address`),{_}=e(),{isCopied:v,copy:y}=s(g.depositAddress),b=_({id:`6D8qH6`,message:`Send the selected token on the selected chain to this address. Funds appear in your account once the network confirms the transfer.`}),x=f(async()=>{await y()&&g.onCopy?.(g.depositAddress)},[y,g]);return m(`div`,{"data-stridge-slot":l.address,...h.props(u.addressSection),children:[m(`div`,{...h.props(u.addressLabelRow),children:[m(a.span,{size:`meta`,fontWeight:`medium`,leading:`tight`,...h.props(u.addressLabel),children:[_({id:`pCzTTC`,message:`Your deposit address`}),p(d,{content:b,children:p(n,{"aria-hidden":!0,...h.props(u.addressLabelInfo)})})]}),p(o,{...h.props(u.termsLink),children:p(a.span,{size:`xs`,fontWeight:`medium`,leading:`tight`,color:`inherit`,children:_({id:`cGYrpE`,message:`Terms apply`})})})]}),m(i,{variant:`subdued`,dir:`ltr`,...h.props(u.addressPill),children:[p(a.span,{size:`xs`,fontWeight:`medium`,leading:`tight`,tracking:`normal`,font:`mono`,"data-stridge-selectable":``,...h.props(u.addressText),children:g.depositAddress}),m(r,{variant:`secondary`,onClick:x,"aria-label":_({id:`SOVBoe`,message:`Copy deposit address`}),...h.props(u.copyButton),children:[p(t,{"aria-hidden":!0,...h.props(u.copyIcon)}),p(a.span,{size:`meta`,fontWeight:`semibold`,leading:`tight`,tracking:`tight`,color:`inherit`,children:_(v?{id:`PiH3UR`,message:`Copied!`}:{id:`he3ygx`,message:`Copy`})})]})]})]})}export{g as TransferCryptoAddress};
@@ -1 +1 @@
1
- const e=JSON.parse(`{"--OGth":["نجح الإيداع"],"-I_tc5":["الحد الأقصى ",["formattedCap"]],"-nuEh_":["الوقت المُقدَّر"],"-tu7Q8":["المزيد عن ",["0"]],"02NghK":["أغلق هذا الحوار وحاول مرة أخرى بعد قليل. إذا استمرت المشكلة، فتحقق من مفتاح البوابة في تكاملك."],"0eg2g7":["جاري تقدير الغاز…"],"0lHlRj":["قيد النقل"],"1zDzn9":["الدفع عبر Google Pay"],"2Eoi_a":["عرض التفاصيل"],"3dqPLT":["تحويل العملة الرقمية"],"3eKjkO":["الحد الأدنى للإيداع ",["formattedMin"]],"3kg1gB":["اكتمل الإيداع"],"3qkDVZ":["عرض التفاصيل"],"3yd3IL":["فشل برنامج تشغيل الإيداع في تحميل إعدادات البوابة."],"5AApJw":["اتصل بمحفظة للمتابعة"],"5joj8M":["تفاصيل المعاملة"],"60ahSE":["معاملة السحب"],"64M0UA":["رمز الأمان غير مكتمل"],"69Gavs":["التفاصيل التقنية"],"6D8qH6":["أرسل العملة المختارة على الشبكة المختارة إلى هذا العنوان. تظهر الأموال في حسابك بمجرد تأكيد الشبكة للتحويل."],"6RDwJM":["العملات"],"6ja7nr":["اضغط للدفع"],"6ws9A3":["Apple Pay"],"6yS5kL":["السحب قيد التنفيذ"],"72c5Qo":["الإجمالي"],"7Bj3x9":["فشل"],"7evBec":["وقت المعالجة: ",["resolvedProcessingTime"]],"88cUW-":["تستلم"],"9JHY2T":["تمت إضافة أموال إيداعك إلى حسابك."],"9XIJb8":["T…"],"9cCjMJ":["إيداع الحد الأقصى من الرصيد"],"< 1 min":["< دقيقة"],"AHyker":["الحد الأقصى ",["0"]],"AO44G_":["عرض الإيصال"],"AOPSKq":["إيداع ",["0"]],"AWtGgd":["احصل على المساعدة"],"AeXO77":["حساب"],"AeZIvT":["ستستلم"],"AikETk":["الحد الأدنى ",["minDeposit"]],"B-4zEC":["تعذر تحميل النشاط. حاول مرة أخرى."],"BhQhbU":["استخدم عنوان المستلم المقترح"],"BoQOH3":["يلزم وجود محفظة لإجراء الإيداع"],"C7cyXd":["تغطي رسوم المعالجة تكلفة معالجة دفعتك عبر طريقة الدفع المختارة."],"CK1KXz":["الأقصى"],"CS69m9":["الدفع بالعملة الرقمية"],"Ck1xL4":["ترسل"],"Cs44l6":["الإيداع قيد التنفيذ"],"D79cZK":["فوري"],"DO0IYK":["تاريخ الانتهاء غير صالح"],"DPfwMq":["تم"],"Dd7jP5":["تواجه مشكلات؟"],"DoS2vD":["إخفاء التفاصيل التقنية"],"ELhVSL":["فشل إرسال الإيداع."],"Ej5HL9":["رُفض التوقيع. حاول مرة أخرى."],"Enslfm":["الوجهة"],"FWbwx6":["Cash deposit unavailable for your account"],"FkAVbF":["جاري الدفع عبر Google Pay"],"G-SK3q":["واجهت الواجهة خطأً غير متوقع وتعذَّر إكمال العرض. حاول مرة أخرى، أو أغلق هذا الحوار وأعد المحاولة من التطبيق."],"GX8GKD":["الأصول"],"GXkBas":["الحد الأقصى ",["formattedLimit"]],"GZPxmc":["أدخل عنوان مستلم صالحاً"],"GcuGHR":["تمت الإضافة إلى ",["captionSuffix"]],"GwkmPx":["تبديل المبلغ المعروض"],"HalPBQ":["الشحن إلى"],"I2Iug_":["ادفع ",["amountFormatted"]," بأمان"],"IDt4jm":[["0","plural",{"zero":["#"," ثانية"],"one":["#"," ثانية"],"two":["#"," ثانية"],"few":["#"," ثوانٍ"],"many":["#"," ثانية"],"other":["#"," ثانية"]}]," متبقية على عرض السعر"],"IRogzB":["تمت إضافة أموال إيداعك إلى ",["brand"],"."],"JYp-ic":["Deposit processing"],"KDw4GX":["حاول مرة أخرى"],"KGoAE6":["تلقائي · ",["value"]],"KTNWsg":["فشل السحب"],"KuqCAK":["~ 2 دقيقة"],"LEbOpR":["مزيد من التفاصيل"],"LSs4cd":["الدفع نقداً"],"Ly6geA":["جاري إعادة احتساب عرض السعر…"],"MZ_nQf":["عنوان المستلم"],"N2DUxS":["رصيد غير كافٍ"],"OLF0i7":["تعذَّر تحميل خيارات الإيداع"],"OSBXx5":["الآن"],"Offl0a":["ستُضاف أموال إيداعك إلى حسابك."],"Oi8TiZ":["عرض التقدم"],"OsyKSt":["سحب"],"P9fBwv":["Stack"],"PiH3UR":["تم النسخ!"],"PknXwq":["ادفع الآن"],"Q12Rrs":["معاملة الإيداع"],"QFwptY":["رسوم المعالجة"],"QU2cIs":["لديك أسئلة؟"],"Qdn2XH":["الشراء عبر Google Pay"],"Rm325-":["سحب ",["amount"],"، ",["date"]],"Rxjdjn":["لم يكتمل الإيداع"],"SMl3YV":["رقم البطاقة غير مكتمل"],"SOVBoe":["نسخ عنوان الإيداع"],"SZRUQ4":["أقصى انزلاق سعري"],"Sjplg3":["عرض في المستكشف"],"SlfejT":["خطأ"],"TG4WOd":["ستُضاف أموال إيداعك إلى ",["brand"],"."],"TMA5Ot":["جاري الدفع عبر Apple Pay"],"TT0aVH":["تم إرسال الطلب"],"Uevt3L":["جاري تقدير العرض"],"UqHbdz":["إغلاق إشعار الإيداع قيد التنفيذ"],"V1fa9u":["عرض المزيد"],"VAZUpd":["فشل الطلب"],"VAxOSg":["تدفع"],"VHOVEJ":["اتصل بالمحفظة"],"WkRH60":["الحد الأدنى ",["0"]],"Wqz0SO":["رصيد منخفض"],"WsByvK":["الدفع عبر Apple Pay"],"XFvFyp":["تم إرسال تفاصيل البطاقة"],"XJOV1Y":["Activity"],"Xzw7uC":["ستظهر إيداعاتك وعمليات السحب هنا."],"YKfMl6":["جاري تحميل إدخال البطاقة الآمن..."],"YruUmm":["تاريخ الانتهاء غير مكتمل"],"Z1WbO6":["الأموال آمنة على شبكة المصدر — تواصل مع الدعم للاسترجاع."],"ZqugiS":["الرصيد: ",["0"]," ",["1"]],"_QZdX-":["تم سحب أموالك بنجاح."],"_girqu":["نجح السحب"],"_kXBrK":["إجمالي الوقت"],"a2WllD":["العملة المستلمة"],"aXFOuf":["لا يوجد نشاط بعد"],"aiEUrg":["إظهار التفاصيل التقنية"],"bAy57M":["الدفع بالبطاقة"],"bGtkfz":["تاريخ الانتهاء"],"bOZXx5":["تحديث الطلب"],"bZnukT":["تكلفة الشبكة"],"c3aao_":["View activity"],"c6Bl9M":["تبديل التفاصيل التقنية"],"cGYrpE":["تطبَّق الشروط"],"cHPbBJ":["تعذَّر على الجسر تمويل معاملة الوجهة (نفد رصيد الغاز)."],"cxR5Qy":["معاملة التسوية"],"e3xU5E":["تم استلام الإيداع"],"eUbBqz":["1 ",["0"]," = ",["1"]],"f-nEg4":["تُدفع رسوم الشبكة لعمَّال التعدين ومدققي البلوكشين لضمان معالجة المعاملة وتأكيدها."],"fKSGnu":["الحد الأدنى للمبلغ المطلوب على هذه الشبكة لتغطية رسوم الشبكة والتوجيه."],"fWsBTs":["حدث خطأ. حاول مرة أخرى."],"flMR3h":["تم سحب أموالك بنجاح."],"g2UNkE":["مشغل بواسطة"],"gfh8CC":["الشبكات"],"hBIHD-":["إيداع ",["amount"],"، ",["date"]],"hKMHs1":["الفرق بين الناتج المتوقع للمسار وسعر السوق الأوسط الأساسي."],"he3ygx":["نسخ"],"hehnjM":["المبلغ"],"i-4Fbp":["فشل الإيداع"],"i-EgW-":["التكلفة التقديرية لبث هذه المعاملة على سلسلة الوجهة."],"iH8pgl":["رجوع"],"iROlQr":["تفاصيل البطاقة"],"jKZO-R":["اكتمل السحب"],"jtKSW-":["حد ",["0"]],"junZX6":["تم استلام الإيداع وجاري المعالجة…"],"kH6wUX":["تأثير السعر"],"kR8ayx":["بالنقر على تأكيد الإيداع، فإنك توافق على <0>الشروط</0>."],"kUFhUv":["فشل السحب."],"kj3M8S":["إيداع"],"kjrq_8":["مزيد من المعلومات"],"kryGs-":["بطاقة"],"lDgVWA":["استلام"],"lOEm_1":["تم تنفيذ الطلب"],"ldK3jJ":["فشل إرسال السحب."],"lxjao1":["مسار السيولة المختار المستخدم لتسوية هذا السحب."],"mF_ucv":["اتصل بمحفظة حتى تتمكن البوابة من توفير عنوان إيداع وتوجيه تحويلك."],"meq3YR":["رقم البطاقة غير صالح"],"mgLWEL":["تراجعت معاملة الوجهة على السلسلة."],"mvYQx_":["تم الاكتشاف"],"njn4bC":["أكِّد المعاملة في محفظتك"],"nr03QI":["أدخل عنوان المستلم"],"nwtY4N":["حدث خطأ"],"o-XJ9D":["تغيير"],"oBNGNc":["تغيَّر الناتج المتوقَّع للمسار أثناء انتظار معاملتك."],"oFmN8a":["إيداع ",["symbol"]],"oW1G8i":["تم إيداع أموالك بنجاح."],"ob8R_m":["حاول مرة أخرى أو تواصل معنا إذا استمرت المشكلة."],"ogD_nm":["إيداع إلى ",["0"]],"olEUh2":["ناجح"],"pCzTTC":["عنوان الإيداع الخاص بك"],"pfAinS":["امسح للدفع"],"q32Nt8":["اكتمل السحب"],"qQ5VJt":["يتعذَّر الوصول إلى البوابة الآن"],"qj0vvX":["تأكيد الإيداع"],"qtoOYG":["بدون حد"],"rT8e1f":["المسار"],"rZdp61":["معاملة الإكمال"],"sSiLKx":["شبكة الاستلام"],"sb9Y58":["محفظة"],"sbwbC0":["طريقة الدفع"],"srsA0x":["رُفض السحب."],"t-aixw":["أكّد في محفظة Google"],"t1k2Bt":["إخفاء التفاصيل"],"tInLgk":["جاري الدفع بالبطاقة"],"uPo3PQ":["عرض أقل"],"vepIdX":["سعر العملة الرقمية"],"vrnnn9":["جاري المعالجة"],"w-2VR9":["جاري السحب…"],"wB8KqP":["امسح بكاميرا iPhone"],"wLmRnI":["رمز الأمان"],"wdxz7K":["المصدر"],"wkskq5":["استخدام الحد الأقصى"],"xDAtGP":["الرسالة"],"xGVfLh":["متابعة"],"xHIEQ5":["رقم البطاقة"],"xOUCt3":["خيارات أخرى"],"y1ypMV":["الأكثر شيوعاً"],"y62Dys":["رسوم الشبكة"],"yH9V_J":["أدخل المبلغ"],"yLEjmm":[["resolvedPriceImpact"],"% price impact"],"yMg5R0":["انتهت صلاحية البطاقة"],"yQE2r9":["جارٍ التحميل"],"y_0uwd":["أمس"],"ybKOj4":["Google Pay"],"yrvWai":["معاملة المصدر"],"yxnt3y":["حالة التنفيذ"],"yy2rkt":["0x…"],"yz7wBu":["إغلاق"],"zYD5xm":["جاري الإضافة"],"zbtijb":["إيداع ",["0"]," إلى ",["1"]],"znqB4T":["رصيد غير كافٍ"],"{hours} hr":[["hours"]," ساعة"],"{minutes} min":[["minutes"]," دقيقة"],"{n}h":[["n"],"س"],"{n}m":[["n"],"د"],"{n}s":[["n"],"ث"]}`);export{e as messages};
1
+ const e=JSON.parse(`{"--OGth":["نجح الإيداع"],"-I_tc5":["الحد الأقصى ",["formattedCap"]],"-nuEh_":["الوقت المُقدَّر"],"-tu7Q8":["المزيد عن ",["0"]],"02NghK":["أغلق هذا الحوار وحاول مرة أخرى بعد قليل. إذا استمرت المشكلة، فتحقق من مفتاح البوابة في تكاملك."],"0eg2g7":["جاري تقدير الغاز…"],"0lHlRj":["قيد النقل"],"1zDzn9":["الدفع عبر Google Pay"],"2Eoi_a":["عرض التفاصيل"],"3dqPLT":["تحويل العملة الرقمية"],"3eKjkO":["الحد الأدنى للإيداع ",["formattedMin"]],"3kg1gB":["اكتمل الإيداع"],"3qkDVZ":["عرض التفاصيل"],"3yd3IL":["فشل برنامج تشغيل الإيداع في تحميل إعدادات البوابة."],"5AApJw":["اتصل بمحفظة للمتابعة"],"5joj8M":["تفاصيل المعاملة"],"60ahSE":["معاملة السحب"],"64M0UA":["رمز الأمان غير مكتمل"],"69Gavs":["التفاصيل التقنية"],"6D8qH6":["أرسل العملة المختارة على الشبكة المختارة إلى هذا العنوان. تظهر الأموال في حسابك بمجرد تأكيد الشبكة للتحويل."],"6RDwJM":["العملات"],"6ja7nr":["اضغط للدفع"],"6ws9A3":["Apple Pay"],"6yS5kL":["السحب قيد التنفيذ"],"72c5Qo":["الإجمالي"],"7Bj3x9":["فشل"],"7evBec":["وقت المعالجة: ",["resolvedProcessingTime"]],"88cUW-":["تستلم"],"9JHY2T":["تمت إضافة أموال إيداعك إلى حسابك."],"9XIJb8":["T…"],"9cCjMJ":["إيداع الحد الأقصى من الرصيد"],"< 1 min":["< دقيقة"],"AHyker":["الحد الأقصى ",["0"]],"AO44G_":["عرض الإيصال"],"AOPSKq":["إيداع ",["0"]],"AWtGgd":["احصل على المساعدة"],"AeXO77":["حساب"],"AeZIvT":["ستستلم"],"AikETk":["الحد الأدنى ",["minDeposit"]],"B-4zEC":["تعذر تحميل النشاط. حاول مرة أخرى."],"BhQhbU":["استخدم عنوان المستلم المقترح"],"BoQOH3":["يلزم وجود محفظة لإجراء الإيداع"],"C7cyXd":["تغطي رسوم المعالجة تكلفة معالجة دفعتك عبر طريقة الدفع المختارة."],"CK1KXz":["الأقصى"],"CS69m9":["الدفع بالعملة الرقمية"],"Ck1xL4":["ترسل"],"Cs44l6":["الإيداع قيد التنفيذ"],"D79cZK":["فوري"],"DO0IYK":["تاريخ الانتهاء غير صالح"],"DPfwMq":["تم"],"Dd7jP5":["تواجه مشكلات؟"],"DoS2vD":["إخفاء التفاصيل التقنية"],"ELhVSL":["فشل إرسال الإيداع."],"Ej5HL9":["رُفض التوقيع. حاول مرة أخرى."],"Enslfm":["الوجهة"],"FWbwx6":["Cash deposit unavailable for your account"],"FkAVbF":["جاري الدفع عبر Google Pay"],"G-SK3q":["واجهت الواجهة خطأً غير متوقع وتعذَّر إكمال العرض. حاول مرة أخرى، أو أغلق هذا الحوار وأعد المحاولة من التطبيق."],"GX8GKD":["الأصول"],"GXkBas":["الحد الأقصى ",["formattedLimit"]],"GZPxmc":["أدخل عنوان مستلم صالحاً"],"GcuGHR":["تمت الإضافة إلى ",["captionSuffix"]],"GwkmPx":["تبديل المبلغ المعروض"],"HalPBQ":["الشحن إلى"],"I2Iug_":["ادفع ",["amountFormatted"]," بأمان"],"IDt4jm":[["0","plural",{"zero":["#"," ثانية"],"one":["#"," ثانية"],"two":["#"," ثانية"],"few":["#"," ثوانٍ"],"many":["#"," ثانية"],"other":["#"," ثانية"]}]," متبقية على عرض السعر"],"IRogzB":["تمت إضافة أموال إيداعك إلى ",["brand"],"."],"JYp-ic":["Deposit processing"],"KDw4GX":["حاول مرة أخرى"],"KGoAE6":["تلقائي · ",["value"]],"KTNWsg":["فشل السحب"],"KuqCAK":["~ 2 دقيقة"],"LEbOpR":["مزيد من التفاصيل"],"LSs4cd":["الدفع نقداً"],"Ly6geA":["جاري إعادة احتساب عرض السعر…"],"MZ_nQf":["عنوان المستلم"],"N2DUxS":["رصيد غير كافٍ"],"OLF0i7":["تعذَّر تحميل خيارات الإيداع"],"OSBXx5":["الآن"],"Offl0a":["ستُضاف أموال إيداعك إلى حسابك."],"Oi8TiZ":["عرض التقدم"],"OsyKSt":["سحب"],"P9fBwv":["Stack"],"PiH3UR":["تم النسخ!"],"PknXwq":["ادفع الآن"],"Q12Rrs":["معاملة الإيداع"],"QFwptY":["رسوم المعالجة"],"QU2cIs":["لديك أسئلة؟"],"Qdn2XH":["الشراء عبر Google Pay"],"Rm325-":["سحب ",["amount"],"، ",["date"]],"Rxjdjn":["لم يكتمل الإيداع"],"SMl3YV":["رقم البطاقة غير مكتمل"],"SOVBoe":["نسخ عنوان الإيداع"],"SZRUQ4":["أقصى انزلاق سعري"],"Sjplg3":["عرض في المستكشف"],"SlfejT":["خطأ"],"TG4WOd":["ستُضاف أموال إيداعك إلى ",["brand"],"."],"TMA5Ot":["جاري الدفع عبر Apple Pay"],"TT0aVH":["تم إرسال الطلب"],"Uevt3L":["جاري تقدير العرض"],"UqHbdz":["إغلاق إشعار الإيداع قيد التنفيذ"],"V1fa9u":["عرض المزيد"],"VAZUpd":["فشل الطلب"],"VAxOSg":["تدفع"],"VHOVEJ":["اتصل بالمحفظة"],"WkRH60":["الحد الأدنى ",["0"]],"Wqz0SO":["رصيد منخفض"],"WsByvK":["الدفع عبر Apple Pay"],"XFvFyp":["تم إرسال تفاصيل البطاقة"],"XJOV1Y":["Activity"],"Xzw7uC":["ستظهر إيداعاتك وعمليات السحب هنا."],"YKfMl6":["جاري تحميل إدخال البطاقة الآمن..."],"YruUmm":["تاريخ الانتهاء غير مكتمل"],"Z1WbO6":["الأموال آمنة على شبكة المصدر — تواصل مع الدعم للاسترجاع."],"ZqugiS":["الرصيد: ",["0"]," ",["1"]],"_QZdX-":["تم سحب أموالك بنجاح."],"_girqu":["نجح السحب"],"_kXBrK":["إجمالي الوقت"],"a2WllD":["العملة المستلمة"],"aXFOuf":["لا يوجد نشاط بعد"],"aiEUrg":["إظهار التفاصيل التقنية"],"bAy57M":["الدفع بالبطاقة"],"bGtkfz":["تاريخ الانتهاء"],"bOZXx5":["تحديث الطلب"],"bZnukT":["تكلفة الشبكة"],"c3aao_":["View activity"],"c6Bl9M":["تبديل التفاصيل التقنية"],"cGYrpE":["تطبَّق الشروط"],"cHPbBJ":["تعذَّر على الجسر تمويل معاملة الوجهة (نفد رصيد الغاز)."],"cxR5Qy":["معاملة التسوية"],"e3xU5E":["تم استلام الإيداع"],"eUbBqz":["1 ",["0"]," = ",["1"]],"f-nEg4":["تُدفع رسوم الشبكة لعمَّال التعدين ومدققي البلوكشين لضمان معالجة المعاملة وتأكيدها."],"fKSGnu":["الحد الأدنى للمبلغ المطلوب على هذه الشبكة لتغطية رسوم الشبكة والتوجيه."],"fWsBTs":["حدث خطأ. حاول مرة أخرى."],"flMR3h":["تم سحب أموالك بنجاح."],"g2UNkE":["مشغل بواسطة"],"gfh8CC":["الشبكات"],"hBIHD-":["إيداع ",["amount"],"، ",["date"]],"hKMHs1":["الفرق بين الناتج المتوقع للمسار وسعر السوق الأوسط الأساسي."],"he3ygx":["نسخ"],"hehnjM":["المبلغ"],"i-4Fbp":["فشل الإيداع"],"i-EgW-":["التكلفة التقديرية لبث هذه المعاملة على سلسلة الوجهة."],"i1MfcA":["ستظهر هنا العملات المتاحة للإيداع من محفظتك."],"iH8pgl":["رجوع"],"iROlQr":["تفاصيل البطاقة"],"jKZO-R":["اكتمل السحب"],"jtKSW-":["حد ",["0"]],"junZX6":["تم استلام الإيداع وجاري المعالجة…"],"kH6wUX":["تأثير السعر"],"kR8ayx":["بالنقر على تأكيد الإيداع، فإنك توافق على <0>الشروط</0>."],"kUFhUv":["فشل السحب."],"kj3M8S":["إيداع"],"kjrq_8":["مزيد من المعلومات"],"kryGs-":["بطاقة"],"lDgVWA":["استلام"],"lOEm_1":["تم تنفيذ الطلب"],"ldK3jJ":["فشل إرسال السحب."],"lxjao1":["مسار السيولة المختار المستخدم لتسوية هذا السحب."],"mF_ucv":["اتصل بمحفظة حتى تتمكن البوابة من توفير عنوان إيداع وتوجيه تحويلك."],"meq3YR":["رقم البطاقة غير صالح"],"mgLWEL":["تراجعت معاملة الوجهة على السلسلة."],"mvYQx_":["تم الاكتشاف"],"njn4bC":["أكِّد المعاملة في محفظتك"],"nr03QI":["أدخل عنوان المستلم"],"nwtY4N":["حدث خطأ"],"o-XJ9D":["تغيير"],"oBNGNc":["تغيَّر الناتج المتوقَّع للمسار أثناء انتظار معاملتك."],"oFmN8a":["إيداع ",["symbol"]],"oW1G8i":["تم إيداع أموالك بنجاح."],"ob8R_m":["حاول مرة أخرى أو تواصل معنا إذا استمرت المشكلة."],"ogD_nm":["إيداع إلى ",["0"]],"olEUh2":["ناجح"],"pCzTTC":["عنوان الإيداع الخاص بك"],"pfAinS":["امسح للدفع"],"q32Nt8":["اكتمل السحب"],"qQ5VJt":["يتعذَّر الوصول إلى البوابة الآن"],"qj0vvX":["تأكيد الإيداع"],"qtoOYG":["بدون حد"],"rT8e1f":["المسار"],"rZdp61":["معاملة الإكمال"],"sSiLKx":["شبكة الاستلام"],"sb9Y58":["محفظة"],"sbwbC0":["طريقة الدفع"],"srsA0x":["رُفض السحب."],"t-aixw":["أكّد في محفظة Google"],"t1k2Bt":["إخفاء التفاصيل"],"tInLgk":["جاري الدفع بالبطاقة"],"tTnE4T":["لا توجد أصول للإيداع"],"uPo3PQ":["عرض أقل"],"vepIdX":["سعر العملة الرقمية"],"vrnnn9":["جاري المعالجة"],"w-2VR9":["جاري السحب…"],"wB8KqP":["امسح بكاميرا iPhone"],"wLmRnI":["رمز الأمان"],"wdxz7K":["المصدر"],"wkskq5":["استخدام الحد الأقصى"],"xDAtGP":["الرسالة"],"xGVfLh":["متابعة"],"xHIEQ5":["رقم البطاقة"],"xOUCt3":["خيارات أخرى"],"y1ypMV":["الأكثر شيوعاً"],"y62Dys":["رسوم الشبكة"],"yH9V_J":["أدخل المبلغ"],"yLEjmm":[["resolvedPriceImpact"],"% price impact"],"yMg5R0":["انتهت صلاحية البطاقة"],"yQE2r9":["جارٍ التحميل"],"y_0uwd":["أمس"],"ybKOj4":["Google Pay"],"yrvWai":["معاملة المصدر"],"yxnt3y":["حالة التنفيذ"],"yy2rkt":["0x…"],"yz7wBu":["إغلاق"],"zYD5xm":["جاري الإضافة"],"zbtijb":["إيداع ",["0"]," إلى ",["1"]],"znqB4T":["رصيد غير كافٍ"],"{hours} hr":[["hours"]," ساعة"],"{minutes} min":[["minutes"]," دقيقة"],"{n}h":[["n"],"س"],"{n}m":[["n"],"د"],"{n}s":[["n"],"ث"]}`);export{e as messages};
@@ -1 +1 @@
1
- const e=JSON.parse(`{"--OGth":["Depósito exitoso"],"-I_tc5":["Máx ",["formattedCap"]],"-nuEh_":["Tiempo estimado"],"-tu7Q8":["Más sobre ",["0"]],"02NghK":["Cierra este diálogo y vuelve a intentarlo en un momento. Si el problema persiste, verifica la clave del gateway en tu integración."],"0eg2g7":["Estimando gas…"],"0lHlRj":["En tránsito"],"1zDzn9":["Pagar con Google Pay"],"2Eoi_a":["Ver detalles"],"3dqPLT":["Transferir cripto"],"3eKjkO":["Depósito mínimo de ",["formattedMin"]],"3kg1gB":["Depósito completado"],"3qkDVZ":["Ver desglose"],"3yd3IL":["El controlador de depósito no pudo cargar la configuración del gateway."],"5AApJw":["Conecta una billetera para continuar"],"5joj8M":["Desglose de la transacción"],"60ahSE":["Tx del retiro"],"64M0UA":["El código de seguridad está incompleto"],"69Gavs":["Detalles técnicos"],"6D8qH6":["Envía el token seleccionado en la red elegida a esta dirección. Los fondos aparecerán en tu cuenta cuando la red confirme la transferencia."],"6RDwJM":["Tokens"],"6ja7nr":["Toca para pagar"],"6ws9A3":["Apple Pay"],"6yS5kL":["Retiro en curso"],"72c5Qo":["Total"],"7Bj3x9":["Fallido"],"7evBec":["Tiempo de procesamiento: ",["resolvedProcessingTime"]],"88cUW-":["Recibes"],"9JHY2T":["Tu depósito se acreditó en tu cuenta."],"9XIJb8":["T…"],"9cCjMJ":["Depositar saldo máximo"],"< 1 min":["< 1 min"],"AHyker":["Máx ",["0"]],"AO44G_":["Ver recibo"],"AOPSKq":["Depositar ",["0"]],"AWtGgd":["Obtener ayuda"],"AeXO77":["Cuenta"],"AeZIvT":["Recibirás"],"AikETk":["Mín ",["minDeposit"]],"B-4zEC":["No se pudo cargar la actividad. Inténtalo de nuevo."],"BhQhbU":["Usar la dirección sugerida del destinatario"],"BoQOH3":["Se requiere una billetera para depositar"],"C7cyXd":["La comisión de procesamiento cubre el costo de procesar tu pago a través del método de pago seleccionado."],"CK1KXz":["Máx"],"CS69m9":["Usar cripto"],"Ck1xL4":["Envías"],"Cs44l6":["Depósito en curso"],"D79cZK":["Instantáneo"],"DO0IYK":["La fecha de vencimiento no es válida"],"DPfwMq":["Listo"],"Dd7jP5":["¿Tienes problemas?"],"DoS2vD":["Ocultar detalles técnicos"],"ELhVSL":["No se pudo enviar el depósito."],"Ej5HL9":["Firma rechazada. Vuelve a intentarlo."],"Enslfm":["Destino"],"FWbwx6":["Cash deposit unavailable for your account"],"FkAVbF":["Pagando con Google Pay"],"G-SK3q":["El kit encontró un error inesperado y no pudo terminar de renderizar. Vuelve a intentarlo, o cierra este diálogo y reinténtalo desde la aplicación."],"GX8GKD":["Activos"],"GXkBas":["Máx ",["formattedLimit"]],"GZPxmc":["Ingresa una dirección de destinatario válida"],"GcuGHR":["Acreditado a ",["captionSuffix"]],"GwkmPx":["Cambiar el importe mostrado"],"HalPBQ":["Recargar en"],"I2Iug_":["Paga ",["amountFormatted"]," de forma segura"],"IDt4jm":[["0","plural",{"one":["#"," segundo"],"other":["#"," segundos"]}]," restantes en la cotización"],"IRogzB":["Tu depósito se acreditó a ",["brand"],"."],"JYp-ic":["Deposit processing"],"KDw4GX":["Reintentar"],"KGoAE6":["Auto · ",["value"]],"KTNWsg":["El retiro falló"],"KuqCAK":["~ 2 min"],"LEbOpR":["Más detalles"],"LSs4cd":["Usar efectivo"],"Ly6geA":["Regenerando cotización…"],"MZ_nQf":["Dirección del destinatario"],"N2DUxS":["Saldo insuficiente"],"OLF0i7":["No se pudieron cargar las opciones de depósito"],"OSBXx5":["Ahora mismo"],"Offl0a":["Tu depósito se acreditará en tu cuenta."],"Oi8TiZ":["Ver progreso"],"OsyKSt":["Retirar"],"P9fBwv":["Stack"],"PiH3UR":["¡Copiado!"],"PknXwq":["Pagar ahora"],"Q12Rrs":["Tx depósito"],"QFwptY":["Comisión de procesamiento"],"QU2cIs":["¿Tienes preguntas?"],"Qdn2XH":["Comprar con Google Pay"],"Rm325-":["Retiro de ",["amount"],", ",["date"]],"Rxjdjn":["El depósito no se completó"],"SMl3YV":["El número de tarjeta está incompleto"],"SOVBoe":["Copiar dirección de depósito"],"SZRUQ4":["Deslizamiento máximo"],"Sjplg3":["Ver en el explorador"],"SlfejT":["Error"],"TG4WOd":["Tu depósito se acreditará a ",["brand"],"."],"TMA5Ot":["Pagando con Apple Pay"],"TT0aVH":["Orden enviada"],"Uevt3L":["Estimando cotización"],"UqHbdz":["Descartar aviso de depósito pendiente"],"V1fa9u":["Ver más"],"VAZUpd":["Orden fallida"],"VAxOSg":["Tú pagas"],"VHOVEJ":["Conectar billetera"],"WkRH60":["Mín ",["0"]],"Wqz0SO":["Saldo bajo"],"WsByvK":["Pagar con Apple Pay"],"XFvFyp":["Detalles de la tarjeta enviados"],"XJOV1Y":["Actividad"],"Xzw7uC":["Tus depósitos y retiros aparecerán aquí."],"YKfMl6":["Cargando entrada segura de tarjeta..."],"YruUmm":["La fecha de vencimiento está incompleta"],"Z1WbO6":["Los fondos están seguros en la red de origen — contacta a soporte para recuperarlos."],"ZqugiS":["Saldo: ",["0"]," ",["1"]],"_QZdX-":["Tu retiro se completó con éxito."],"_girqu":["Retiro exitoso"],"_kXBrK":["Tiempo total"],"a2WllD":["Token a recibir"],"aXFOuf":["Aún no hay actividad"],"aiEUrg":["Mostrar detalles técnicos"],"bAy57M":["Pagar con tarjeta"],"bGtkfz":["Fecha de vencimiento"],"bOZXx5":["Actualizar orden"],"bZnukT":["Costo de red"],"c3aao_":["Ver actividad"],"c6Bl9M":["Alternar detalles técnicos"],"cGYrpE":["Aplican términos"],"cHPbBJ":["El puente no pudo financiar la transacción de destino (presupuesto de gas agotado)."],"cxR5Qy":["Tx liquidación"],"e3xU5E":["Depósito recibido"],"eUbBqz":["1 ",["0"]," = ",["1"]],"f-nEg4":["La comisión de red se paga a los mineros y validadores de la blockchain para asegurar que la transacción se procese y confirme."],"fKSGnu":["Cantidad mínima requerida para que esta red cubra las tarifas y el enrutamiento."],"fWsBTs":["Algo salió mal. Vuelve a intentarlo."],"flMR3h":["Tus fondos fueron retirados con éxito."],"g2UNkE":["Con tecnología de"],"gfh8CC":["Redes"],"hBIHD-":["Depósito de ",["amount"],", ",["date"]],"hKMHs1":["Diferencia entre el resultado esperado de la ruta y el precio medio de mercado subyacente."],"he3ygx":["Copiar"],"hehnjM":["Monto"],"i-4Fbp":["Depósito fallido"],"i-EgW-":["El costo estimado para emitir esta transacción en la red de destino."],"iH8pgl":["Atrás"],"iROlQr":["Detalles de la tarjeta"],"jKZO-R":["Retiro completado"],"jtKSW-":["Límite ",["0"]],"junZX6":["Depósito recibido y procesando…"],"kH6wUX":["Impacto en precio"],"kR8ayx":["Al hacer clic en Confirmar depósito, aceptas nuestros <0>términos</0>."],"kUFhUv":["El retiro falló."],"kj3M8S":["Depositar"],"kjrq_8":["Más información"],"kryGs-":["Tarjeta"],"lDgVWA":["Recibir"],"lOEm_1":["Orden completada"],"ldK3jJ":["No se pudo enviar el retiro."],"lxjao1":["La ruta de liquidez seleccionada para liquidar este retiro."],"mF_ucv":["Conecta una billetera para que el gateway pueda provisionar una dirección de depósito y enrutar tu transferencia."],"meq3YR":["El número de tarjeta no es válido"],"mgLWEL":["La transacción del tramo de destino se revirtió en cadena."],"mvYQx_":["Detectado"],"njn4bC":["Confirma la transacción en tu billetera"],"nr03QI":["Ingresa la dirección del destinatario"],"nwtY4N":["Algo salió mal"],"o-XJ9D":["Cambiar"],"oBNGNc":["El resultado esperado de la ruta varió mientras tu transacción estaba pendiente."],"oFmN8a":["Depositar ",["symbol"]],"oW1G8i":["Tus fondos se depositaron correctamente."],"ob8R_m":["Inténtalo nuevamente o contáctanos si el problema persiste."],"ogD_nm":["Depositar a ",["0"]],"olEUh2":["Exitoso"],"pCzTTC":["Tu dirección de depósito"],"pfAinS":["Escanea para pagar"],"q32Nt8":["Retiro completado"],"qQ5VJt":["No podemos contactar el gateway en este momento"],"qj0vvX":["Confirmar depósito"],"qtoOYG":["Sin límite"],"rT8e1f":["Ruta"],"rZdp61":["Tx finalización"],"sSiLKx":["Red a recibir"],"sb9Y58":["Billetera"],"sbwbC0":["Método de pago"],"srsA0x":["Retiro rechazado."],"t-aixw":["Confirma en tu Google Wallet"],"t1k2Bt":["Ocultar desglose"],"tInLgk":["Pagando con tarjeta"],"uPo3PQ":["Ver menos"],"vepIdX":["Precio cripto"],"vrnnn9":["Procesando"],"w-2VR9":["Retiro en curso…"],"wB8KqP":["Escanea con la cámara de tu iPhone"],"wLmRnI":["Código de seguridad"],"wdxz7K":["Origen"],"wkskq5":["Usar máx"],"xDAtGP":["Mensaje"],"xGVfLh":["Continuar"],"xHIEQ5":["Número de tarjeta"],"xOUCt3":["Otras opciones"],"y1ypMV":["Más popular"],"y62Dys":["Comisión de red"],"yH9V_J":["Ingresa el monto"],"yLEjmm":[["resolvedPriceImpact"],"% price impact"],"yMg5R0":["La tarjeta ha caducado"],"yQE2r9":["Cargando"],"y_0uwd":["Ayer"],"ybKOj4":["Google Pay"],"yrvWai":["Tx origen"],"yxnt3y":["Estado de ejecución"],"yy2rkt":["0x…"],"yz7wBu":["Cerrar"],"zYD5xm":["Acreditando"],"zbtijb":["Depositar ",["0"]," a ",["1"]],"znqB4T":["Saldo insuficiente"],"{hours} hr":[["hours"]," h"],"{minutes} min":[["minutes"]," min"],"{n}h":[["n"],"h"],"{n}m":[["n"],"m"],"{n}s":[["n"],"s"]}`);export{e as messages};
1
+ const e=JSON.parse(`{"--OGth":["Depósito exitoso"],"-I_tc5":["Máx ",["formattedCap"]],"-nuEh_":["Tiempo estimado"],"-tu7Q8":["Más sobre ",["0"]],"02NghK":["Cierra este diálogo y vuelve a intentarlo en un momento. Si el problema persiste, verifica la clave del gateway en tu integración."],"0eg2g7":["Estimando gas…"],"0lHlRj":["En tránsito"],"1zDzn9":["Pagar con Google Pay"],"2Eoi_a":["Ver detalles"],"3dqPLT":["Transferir cripto"],"3eKjkO":["Depósito mínimo de ",["formattedMin"]],"3kg1gB":["Depósito completado"],"3qkDVZ":["Ver desglose"],"3yd3IL":["El controlador de depósito no pudo cargar la configuración del gateway."],"5AApJw":["Conecta una billetera para continuar"],"5joj8M":["Desglose de la transacción"],"60ahSE":["Tx del retiro"],"64M0UA":["El código de seguridad está incompleto"],"69Gavs":["Detalles técnicos"],"6D8qH6":["Envía el token seleccionado en la red elegida a esta dirección. Los fondos aparecerán en tu cuenta cuando la red confirme la transferencia."],"6RDwJM":["Tokens"],"6ja7nr":["Toca para pagar"],"6ws9A3":["Apple Pay"],"6yS5kL":["Retiro en curso"],"72c5Qo":["Total"],"7Bj3x9":["Fallido"],"7evBec":["Tiempo de procesamiento: ",["resolvedProcessingTime"]],"88cUW-":["Recibes"],"9JHY2T":["Tu depósito se acreditó en tu cuenta."],"9XIJb8":["T…"],"9cCjMJ":["Depositar saldo máximo"],"< 1 min":["< 1 min"],"AHyker":["Máx ",["0"]],"AO44G_":["Ver recibo"],"AOPSKq":["Depositar ",["0"]],"AWtGgd":["Obtener ayuda"],"AeXO77":["Cuenta"],"AeZIvT":["Recibirás"],"AikETk":["Mín ",["minDeposit"]],"B-4zEC":["No se pudo cargar la actividad. Inténtalo de nuevo."],"BhQhbU":["Usar la dirección sugerida del destinatario"],"BoQOH3":["Se requiere una billetera para depositar"],"C7cyXd":["La comisión de procesamiento cubre el costo de procesar tu pago a través del método de pago seleccionado."],"CK1KXz":["Máx"],"CS69m9":["Usar cripto"],"Ck1xL4":["Envías"],"Cs44l6":["Depósito en curso"],"D79cZK":["Instantáneo"],"DO0IYK":["La fecha de vencimiento no es válida"],"DPfwMq":["Listo"],"Dd7jP5":["¿Tienes problemas?"],"DoS2vD":["Ocultar detalles técnicos"],"ELhVSL":["No se pudo enviar el depósito."],"Ej5HL9":["Firma rechazada. Vuelve a intentarlo."],"Enslfm":["Destino"],"FWbwx6":["Cash deposit unavailable for your account"],"FkAVbF":["Pagando con Google Pay"],"G-SK3q":["El kit encontró un error inesperado y no pudo terminar de renderizar. Vuelve a intentarlo, o cierra este diálogo y reinténtalo desde la aplicación."],"GX8GKD":["Activos"],"GXkBas":["Máx ",["formattedLimit"]],"GZPxmc":["Ingresa una dirección de destinatario válida"],"GcuGHR":["Acreditado a ",["captionSuffix"]],"GwkmPx":["Cambiar el importe mostrado"],"HalPBQ":["Recargar en"],"I2Iug_":["Paga ",["amountFormatted"]," de forma segura"],"IDt4jm":[["0","plural",{"one":["#"," segundo"],"other":["#"," segundos"]}]," restantes en la cotización"],"IRogzB":["Tu depósito se acreditó a ",["brand"],"."],"JYp-ic":["Deposit processing"],"KDw4GX":["Reintentar"],"KGoAE6":["Auto · ",["value"]],"KTNWsg":["El retiro falló"],"KuqCAK":["~ 2 min"],"LEbOpR":["Más detalles"],"LSs4cd":["Usar efectivo"],"Ly6geA":["Regenerando cotización…"],"MZ_nQf":["Dirección del destinatario"],"N2DUxS":["Saldo insuficiente"],"OLF0i7":["No se pudieron cargar las opciones de depósito"],"OSBXx5":["Ahora mismo"],"Offl0a":["Tu depósito se acreditará en tu cuenta."],"Oi8TiZ":["Ver progreso"],"OsyKSt":["Retirar"],"P9fBwv":["Stack"],"PiH3UR":["¡Copiado!"],"PknXwq":["Pagar ahora"],"Q12Rrs":["Tx depósito"],"QFwptY":["Comisión de procesamiento"],"QU2cIs":["¿Tienes preguntas?"],"Qdn2XH":["Comprar con Google Pay"],"Rm325-":["Retiro de ",["amount"],", ",["date"]],"Rxjdjn":["El depósito no se completó"],"SMl3YV":["El número de tarjeta está incompleto"],"SOVBoe":["Copiar dirección de depósito"],"SZRUQ4":["Deslizamiento máximo"],"Sjplg3":["Ver en el explorador"],"SlfejT":["Error"],"TG4WOd":["Tu depósito se acreditará a ",["brand"],"."],"TMA5Ot":["Pagando con Apple Pay"],"TT0aVH":["Orden enviada"],"Uevt3L":["Estimando cotización"],"UqHbdz":["Descartar aviso de depósito pendiente"],"V1fa9u":["Ver más"],"VAZUpd":["Orden fallida"],"VAxOSg":["Tú pagas"],"VHOVEJ":["Conectar billetera"],"WkRH60":["Mín ",["0"]],"Wqz0SO":["Saldo bajo"],"WsByvK":["Pagar con Apple Pay"],"XFvFyp":["Detalles de la tarjeta enviados"],"XJOV1Y":["Actividad"],"Xzw7uC":["Tus depósitos y retiros aparecerán aquí."],"YKfMl6":["Cargando entrada segura de tarjeta..."],"YruUmm":["La fecha de vencimiento está incompleta"],"Z1WbO6":["Los fondos están seguros en la red de origen — contacta a soporte para recuperarlos."],"ZqugiS":["Saldo: ",["0"]," ",["1"]],"_QZdX-":["Tu retiro se completó con éxito."],"_girqu":["Retiro exitoso"],"_kXBrK":["Tiempo total"],"a2WllD":["Token a recibir"],"aXFOuf":["Aún no hay actividad"],"aiEUrg":["Mostrar detalles técnicos"],"bAy57M":["Pagar con tarjeta"],"bGtkfz":["Fecha de vencimiento"],"bOZXx5":["Actualizar orden"],"bZnukT":["Costo de red"],"c3aao_":["Ver actividad"],"c6Bl9M":["Alternar detalles técnicos"],"cGYrpE":["Aplican términos"],"cHPbBJ":["El puente no pudo financiar la transacción de destino (presupuesto de gas agotado)."],"cxR5Qy":["Tx liquidación"],"e3xU5E":["Depósito recibido"],"eUbBqz":["1 ",["0"]," = ",["1"]],"f-nEg4":["La comisión de red se paga a los mineros y validadores de la blockchain para asegurar que la transacción se procese y confirme."],"fKSGnu":["Cantidad mínima requerida para que esta red cubra las tarifas y el enrutamiento."],"fWsBTs":["Algo salió mal. Vuelve a intentarlo."],"flMR3h":["Tus fondos fueron retirados con éxito."],"g2UNkE":["Con tecnología de"],"gfh8CC":["Redes"],"hBIHD-":["Depósito de ",["amount"],", ",["date"]],"hKMHs1":["Diferencia entre el resultado esperado de la ruta y el precio medio de mercado subyacente."],"he3ygx":["Copiar"],"hehnjM":["Monto"],"i-4Fbp":["Depósito fallido"],"i-EgW-":["El costo estimado para emitir esta transacción en la red de destino."],"i1MfcA":["Los tokens disponibles para depositar desde tu billetera aparecerán aquí."],"iH8pgl":["Atrás"],"iROlQr":["Detalles de la tarjeta"],"jKZO-R":["Retiro completado"],"jtKSW-":["Límite ",["0"]],"junZX6":["Depósito recibido y procesando…"],"kH6wUX":["Impacto en precio"],"kR8ayx":["Al hacer clic en Confirmar depósito, aceptas nuestros <0>términos</0>."],"kUFhUv":["El retiro falló."],"kj3M8S":["Depositar"],"kjrq_8":["Más información"],"kryGs-":["Tarjeta"],"lDgVWA":["Recibir"],"lOEm_1":["Orden completada"],"ldK3jJ":["No se pudo enviar el retiro."],"lxjao1":["La ruta de liquidez seleccionada para liquidar este retiro."],"mF_ucv":["Conecta una billetera para que el gateway pueda provisionar una dirección de depósito y enrutar tu transferencia."],"meq3YR":["El número de tarjeta no es válido"],"mgLWEL":["La transacción del tramo de destino se revirtió en cadena."],"mvYQx_":["Detectado"],"njn4bC":["Confirma la transacción en tu billetera"],"nr03QI":["Ingresa la dirección del destinatario"],"nwtY4N":["Algo salió mal"],"o-XJ9D":["Cambiar"],"oBNGNc":["El resultado esperado de la ruta varió mientras tu transacción estaba pendiente."],"oFmN8a":["Depositar ",["symbol"]],"oW1G8i":["Tus fondos se depositaron correctamente."],"ob8R_m":["Inténtalo nuevamente o contáctanos si el problema persiste."],"ogD_nm":["Depositar a ",["0"]],"olEUh2":["Exitoso"],"pCzTTC":["Tu dirección de depósito"],"pfAinS":["Escanea para pagar"],"q32Nt8":["Retiro completado"],"qQ5VJt":["No podemos contactar el gateway en este momento"],"qj0vvX":["Confirmar depósito"],"qtoOYG":["Sin límite"],"rT8e1f":["Ruta"],"rZdp61":["Tx finalización"],"sSiLKx":["Red a recibir"],"sb9Y58":["Billetera"],"sbwbC0":["Método de pago"],"srsA0x":["Retiro rechazado."],"t-aixw":["Confirma en tu Google Wallet"],"t1k2Bt":["Ocultar desglose"],"tInLgk":["Pagando con tarjeta"],"tTnE4T":["No hay activos para depositar"],"uPo3PQ":["Ver menos"],"vepIdX":["Precio cripto"],"vrnnn9":["Procesando"],"w-2VR9":["Retiro en curso…"],"wB8KqP":["Escanea con la cámara de tu iPhone"],"wLmRnI":["Código de seguridad"],"wdxz7K":["Origen"],"wkskq5":["Usar máx"],"xDAtGP":["Mensaje"],"xGVfLh":["Continuar"],"xHIEQ5":["Número de tarjeta"],"xOUCt3":["Otras opciones"],"y1ypMV":["Más popular"],"y62Dys":["Comisión de red"],"yH9V_J":["Ingresa el monto"],"yLEjmm":[["resolvedPriceImpact"],"% price impact"],"yMg5R0":["La tarjeta ha caducado"],"yQE2r9":["Cargando"],"y_0uwd":["Ayer"],"ybKOj4":["Google Pay"],"yrvWai":["Tx origen"],"yxnt3y":["Estado de ejecución"],"yy2rkt":["0x…"],"yz7wBu":["Cerrar"],"zYD5xm":["Acreditando"],"zbtijb":["Depositar ",["0"]," a ",["1"]],"znqB4T":["Saldo insuficiente"],"{hours} hr":[["hours"]," h"],"{minutes} min":[["minutes"]," min"],"{n}h":[["n"],"h"],"{n}m":[["n"],"m"],"{n}s":[["n"],"s"]}`);export{e as messages};
@@ -7,6 +7,6 @@
7
7
  * as the typed contract for {@link defineMessages}: callers get autocomplete on every key the
8
8
  * kit translates, and unknown keys fail at compile time via excess-property checks.
9
9
  */
10
- type KitTranslatableKey = "0x…" | "1 {0} = {1}" | "< 1 min" | "A wallet is required to deposit" | "Account" | "Activity" | "Amount" | "Apple Pay" | "Assets" | "Auto · {value}" | "Back" | "Balance: {0} {1}" | "Buy with Google Pay" | "By clicking Confirm Deposit, you agree to our <0>terms</0>." | "Card" | "Card details" | "Card details submitted" | "Card expiration" | "Card has expired" | "Card number" | "Card number is incomplete" | "Card number is invalid" | "Cash deposit unavailable for your account" | "Chains" | "Change" | "Close" | "Close this dialog and try again in a moment. If the problem persists, double-check the gateway key on your integration." | "Completion tx" | "Confirm Deposit" | "Confirm in your Google Wallet" | "Confirm transaction in your wallet" | "Connect a wallet so the gateway can provision a deposit address and route your transfer." | "Connect a wallet to continue" | "Connect wallet" | "Continue" | "Copied!" | "Copy" | "Copy deposit address" | "Couldn't load activity. Please try again." | "Couldn't load deposit options" | "Credited to {captionSuffix}" | "Crediting" | "Crypto price" | "Deposit" | "Deposit completed" | "Deposit didn't complete" | "Deposit failed" | "Deposit in progress" | "Deposit max balance" | "Deposit of {amount}, {date}" | "Deposit processing" | "Deposit received" | "Deposit received and processing…" | "Deposit successful" | "Deposit to {0}" | "Deposit tx" | "Deposit {0}" | "Deposit {0} to {1}" | "Deposit {symbol}" | "Destination" | "Detected" | "Difference between the route's expected output and the underlying market mid-price." | "Dismiss pending deposit notice" | "Done" | "Enter Amount" | "Enter Recipient Address" | "Enter Valid Recipient Address" | "Error" | "Estimated time" | "Estimating gas…" | "Estimating quote" | "Experiencing problems?" | "Expiry date is incomplete" | "Expiry date is invalid" | "Failed" | "Failed to submit deposit." | "Failed to submit withdrawal." | "Fill status" | "Funds are safe on the source chain — contact support to recover." | "Get help" | "Google Pay" | "Have questions?" | "Hide breakdown" | "Hide technical details" | "In transit" | "Instant" | "Insufficient Balance" | "Insufficient balance" | "Just now" | "Loading" | "Loading secure card input..." | "Low Balance" | "Max" | "Max slippage" | "Max {0}" | "Max {formattedCap}" | "Max {formattedLimit}" | "Message" | "Min {0}" | "Min {minDeposit}" | "More about {0}" | "More details" | "More information" | "Most popular" | "Network cost" | "Network fee" | "No activity yet" | "No limit" | "Order failed" | "Order filled" | "Order submitted" | "Other options" | "Pay Now" | "Pay with Apple Pay" | "Pay with Card" | "Pay with Google Pay" | "Pay {amountFormatted} securely" | "Paying with Apple Pay" | "Paying with Card" | "Paying with Google Pay" | "Payment Method" | "Please try again or contact us if the issue persists." | "Powered by" | "Price impact" | "Processing" | "Processing fee" | "Processing time: {resolvedProcessingTime}" | "Receive" | "Receive chain" | "Receive token" | "Recipient address" | "Regenerating quote…" | "Route" | "Scan to pay" | "Scan with your iPhone camera" | "Security code" | "Security code is incomplete" | "See less" | "See more" | "Send the selected token on the selected chain to this address. Funds appear in your account once the network confirms the transfer." | "Settlement tx" | "Show technical details" | "Signature declined. Please try again." | "Something went wrong" | "Something went wrong. Please try again." | "Source" | "Source tx" | "Stack" | "Successful" | "Swap displayed amount" | "Tap to pay" | "Technical details" | "Terms apply" | "The bridge could not fund the destination transaction (gas budget exhausted)." | "The deposit driver failed to load gateway configuration." | "The destination-leg transaction reverted on-chain." | "The estimated cost to broadcast this transaction on the destination chain." | "The kit hit an unexpected error and could not finish rendering. Try again, or close this dialog and retry from the host." | "The minimum amount required for this chain to cover network fees and routing." | "The network fee is paid to miners and validators of the blockchain to make sure the transaction is processed and confirmed." | "The processing fee covers the cost of processing your payment through the selected payment method." | "The route's expected output drifted while your transaction was pending." | "The selected liquidity route used to settle this withdrawal." | "Toggle technical details" | "Tokens" | "Top up on" | "Total" | "Total time" | "Transaction breakdown" | "Transfer Crypto" | "Try again" | "T…" | "Update order" | "Use Cash" | "Use Crypto" | "Use max" | "Use suggested recipient address" | "View activity" | "View breakdown" | "View details" | "View on Explorer" | "View progress" | "View receipt" | "Wallet" | "We can't reach the gateway right now" | "Withdraw" | "Withdrawal complete" | "Withdrawal completed" | "Withdrawal declined." | "Withdrawal failed" | "Withdrawal failed." | "Withdrawal in progress" | "Withdrawal in progress…" | "Withdrawal of {amount}, {date}" | "Withdrawal successful" | "Withdrawal tx" | "Yesterday" | "You pay" | "You receive" | "You send" | "You will receive" | "Your deposit address" | "Your deposit has been credited to your account." | "Your deposit has been credited to {brand}." | "Your deposit will be credited to your account." | "Your deposit will be credited to {brand}." | "Your deposits and withdrawals will appear here." | "Your funds were successfully deposited." | "Your funds were successfully withdrawn." | "Your withdrawal was completed successfully." | "{0, plural, one {# second} other {# seconds}} left on quote" | "{0} limit" | "{formattedMin} minimum deposit" | "{hours} hr" | "{minutes} min" | "{n}h" | "{n}m" | "{n}s" | "{resolvedPriceImpact}% price impact" | "~ 2 min";
10
+ type KitTranslatableKey = "0x…" | "1 {0} = {1}" | "< 1 min" | "A wallet is required to deposit" | "Account" | "Activity" | "Amount" | "Apple Pay" | "Assets" | "Auto · {value}" | "Back" | "Balance: {0} {1}" | "Buy with Google Pay" | "By clicking Confirm Deposit, you agree to our <0>terms</0>." | "Card" | "Card details" | "Card details submitted" | "Card expiration" | "Card has expired" | "Card number" | "Card number is incomplete" | "Card number is invalid" | "Cash deposit unavailable for your account" | "Chains" | "Change" | "Close" | "Close this dialog and try again in a moment. If the problem persists, double-check the gateway key on your integration." | "Completion tx" | "Confirm Deposit" | "Confirm in your Google Wallet" | "Confirm transaction in your wallet" | "Connect a wallet so the gateway can provision a deposit address and route your transfer." | "Connect a wallet to continue" | "Connect wallet" | "Continue" | "Copied!" | "Copy" | "Copy deposit address" | "Couldn't load activity. Please try again." | "Couldn't load deposit options" | "Credited to {captionSuffix}" | "Crediting" | "Crypto price" | "Deposit" | "Deposit completed" | "Deposit didn't complete" | "Deposit failed" | "Deposit in progress" | "Deposit max balance" | "Deposit of {amount}, {date}" | "Deposit processing" | "Deposit received" | "Deposit received and processing…" | "Deposit successful" | "Deposit to {0}" | "Deposit tx" | "Deposit {0}" | "Deposit {0} to {1}" | "Deposit {symbol}" | "Destination" | "Detected" | "Difference between the route's expected output and the underlying market mid-price." | "Dismiss pending deposit notice" | "Done" | "Enter Amount" | "Enter Recipient Address" | "Enter Valid Recipient Address" | "Error" | "Estimated time" | "Estimating gas…" | "Estimating quote" | "Experiencing problems?" | "Expiry date is incomplete" | "Expiry date is invalid" | "Failed" | "Failed to submit deposit." | "Failed to submit withdrawal." | "Fill status" | "Funds are safe on the source chain — contact support to recover." | "Get help" | "Google Pay" | "Have questions?" | "Hide breakdown" | "Hide technical details" | "In transit" | "Instant" | "Insufficient Balance" | "Insufficient balance" | "Just now" | "Loading" | "Loading secure card input..." | "Low Balance" | "Max" | "Max slippage" | "Max {0}" | "Max {formattedCap}" | "Max {formattedLimit}" | "Message" | "Min {0}" | "Min {minDeposit}" | "More about {0}" | "More details" | "More information" | "Most popular" | "Network cost" | "Network fee" | "No activity yet" | "No assets to deposit" | "No limit" | "Order failed" | "Order filled" | "Order submitted" | "Other options" | "Pay Now" | "Pay with Apple Pay" | "Pay with Card" | "Pay with Google Pay" | "Pay {amountFormatted} securely" | "Paying with Apple Pay" | "Paying with Card" | "Paying with Google Pay" | "Payment Method" | "Please try again or contact us if the issue persists." | "Powered by" | "Price impact" | "Processing" | "Processing fee" | "Processing time: {resolvedProcessingTime}" | "Receive" | "Receive chain" | "Receive token" | "Recipient address" | "Regenerating quote…" | "Route" | "Scan to pay" | "Scan with your iPhone camera" | "Security code" | "Security code is incomplete" | "See less" | "See more" | "Send the selected token on the selected chain to this address. Funds appear in your account once the network confirms the transfer." | "Settlement tx" | "Show technical details" | "Signature declined. Please try again." | "Something went wrong" | "Something went wrong. Please try again." | "Source" | "Source tx" | "Stack" | "Successful" | "Swap displayed amount" | "Tap to pay" | "Technical details" | "Terms apply" | "The bridge could not fund the destination transaction (gas budget exhausted)." | "The deposit driver failed to load gateway configuration." | "The destination-leg transaction reverted on-chain." | "The estimated cost to broadcast this transaction on the destination chain." | "The kit hit an unexpected error and could not finish rendering. Try again, or close this dialog and retry from the host." | "The minimum amount required for this chain to cover network fees and routing." | "The network fee is paid to miners and validators of the blockchain to make sure the transaction is processed and confirmed." | "The processing fee covers the cost of processing your payment through the selected payment method." | "The route's expected output drifted while your transaction was pending." | "The selected liquidity route used to settle this withdrawal." | "Toggle technical details" | "Tokens" | "Tokens available to deposit from your wallet will appear here." | "Top up on" | "Total" | "Total time" | "Transaction breakdown" | "Transfer Crypto" | "Try again" | "T…" | "Update order" | "Use Cash" | "Use Crypto" | "Use max" | "Use suggested recipient address" | "View activity" | "View breakdown" | "View details" | "View on Explorer" | "View progress" | "View receipt" | "Wallet" | "We can't reach the gateway right now" | "Withdraw" | "Withdrawal complete" | "Withdrawal completed" | "Withdrawal declined." | "Withdrawal failed" | "Withdrawal failed." | "Withdrawal in progress" | "Withdrawal in progress…" | "Withdrawal of {amount}, {date}" | "Withdrawal successful" | "Withdrawal tx" | "Yesterday" | "You pay" | "You receive" | "You send" | "You will receive" | "Your deposit address" | "Your deposit has been credited to your account." | "Your deposit has been credited to {brand}." | "Your deposit will be credited to your account." | "Your deposit will be credited to {brand}." | "Your deposits and withdrawals will appear here." | "Your funds were successfully deposited." | "Your funds were successfully withdrawn." | "Your withdrawal was completed successfully." | "{0, plural, one {# second} other {# seconds}} left on quote" | "{0} limit" | "{formattedMin} minimum deposit" | "{hours} hr" | "{minutes} min" | "{n}h" | "{n}m" | "{n}s" | "{resolvedPriceImpact}% price impact" | "~ 2 min";
11
11
  //#endregion
12
12
  export { KitTranslatableKey };
package/dist/index.d.ts CHANGED
@@ -21,16 +21,19 @@ import { createKitStorage } from "./storage/createKitStorage.js";
21
21
  import { DEFAULT_KIT_STORAGE_NAMESPACE, KitStorageProvider, useKitStorage, useKitStorageValue, useOptionalKitStorage } from "./storage/context.js";
22
22
  import { useActivitySnapshot } from "./flows/activity/driver/context.js";
23
23
  import { StridgeEnvironment } from "./drivers/stridge/types.js";
24
+ import { KIT_VERSION } from "./version.js";
24
25
  import { FlowIdKey } from "./events/bus/flowIdRegistry.js";
25
26
  import { useCurrentFlowId } from "./events/hooks/useCurrentFlowId.js";
26
27
  import { ActivityActions, ActivityController, ActivityState, ActivityStateName } from "./flows/activity/orchestrator/types.js";
27
28
  import { WithdrawActions, WithdrawController, WithdrawState, WithdrawStateName, WithdrawSubmitActions, WithdrawSubmitCallback, WithdrawSubmitInput, WithdrawalFormSnapshot } from "./flows/withdraw/orchestrator/types.js";
28
29
  import { FlowEvent, StridgeEvent, UiEvent } from "./events/types/index.js";
30
+ import { SubscribeOptions } from "./events/bus/createBus.js";
29
31
  import { useStridgeEvent } from "./events/hooks/useStridgeEvent.js";
30
32
  import { PublicStridgeEventBus, useStridgeEventBus } from "./events/hooks/useStridgeEventBus.js";
31
33
  import { useStridgeEvents } from "./events/hooks/useStridgeEvents.js";
32
34
  import { useStridgeFlowEvent } from "./events/hooks/useStridgeFlowEvent.js";
33
35
  import { useStridgeFlowEvents } from "./events/hooks/useStridgeFlowEvents.js";
36
+ import { RedactEventOptions, redactEvent } from "./events/redact.js";
34
37
  import { useActivityState } from "./flows/activity/orchestrator/controller.js";
35
38
  import { useActivity, useOptionalActivity, useOptionalPrefetchActivity, usePrefetchActivity } from "./flows/activity/orchestrator/useActivity.js";
36
39
  import { useDepositState } from "./flows/deposit/orchestrator/controller.js";
@@ -45,4 +48,4 @@ import { useWithdrawState } from "./flows/withdraw/orchestrator/controller.js";
45
48
  import { useOptionalWithdraw, usePrefetchWithdraw, useWithdraw } from "./flows/withdraw/orchestrator/useWithdraw.js";
46
49
  import { ConnectWalletConfig } from "./shared/wallet/ConnectWalletContext.js";
47
50
  import { StridgeAppearance, StridgeAsset, StridgeDepositDestination, StridgeDepositFlowConfig, StridgeDepositMethodConfig, StridgeDepositMethodsConfig, StridgeFlowOwner, StridgePrefetchConfig, StridgeProvider, StridgeStorageConfig, StridgeWithdrawFlowConfig } from "./stridge/StridgeProvider.js";
48
- export { type ActivityActions, type ActivityAmount, type ActivityController, type ActivityDirection, type ActivityDriver, type ActivityOpenInput, type ActivityPayload, type ActivityRowPayload, type ActivitySnapshot, type ActivityState, type ActivityStateName, type ActivityStatus, type ActivityStatusType, type BannerAckBucket, type CardBrand, type CardData, type CashMethodCapability, type CashMethodId, type CashMethodsPayload, type ChainLogoInput, type ChainLogoMeta, type ChainType, type ConnectWalletConfig, DEFAULT_KIT_STORAGE_NAMESPACE, type DepositActions, type DepositBindings, type DepositController, type DepositMethod, type DepositMethodConfig, type DepositMethodsConfig, type OpenInput as DepositOpenInput, type DepositRailConfig, type DepositSnapshot, type DepositState, type DepositStateName, type FailureInfo, type FlowEvent, type FlowIdKey, type IntercomMerchantContext, KitPortalScope, KitStorageProvider, type LogosNamespace, type Presentation, type PresentationConfig, type PresentationMode, type PublicStridgeEventBus, type StridgeAppearance, type StridgeAsset, type StridgeDepositDestination, type StridgeDepositFlowConfig, type StridgeDepositMethodConfig, type StridgeDepositMethodsConfig, type StridgeEnvironment, type StridgeEvent, type StridgeFlowOwner, type StridgePrefetchConfig, StridgeProvider, type StridgeStorageConfig, type StridgeWithdrawFlowConfig, type SupportConfig, type SupportOpenContext, type TermsConfig, type TermsSelectContext, type TokenLogoInput, type TokenizationResult, type TxRef, type UiEvent, type WithdrawActions, type WithdrawBalanceInput, type WithdrawBindings, type WithdrawController, type WithdrawSnapshot, type WithdrawState, type WithdrawStateName, type WithdrawSubmitActions, type WithdrawSubmitCallback, type WithdrawSubmitInput, type WithdrawSuggestedRecipient, type WithdrawalFormSnapshot, bannerAckStorageKey, bucketFromSettlement, createKitStorage, createLocalStorageAdapter, createMemoryStorageAdapter, createSessionStorageAdapter, isValidAddressForChainType, isValidEvmAddress, isValidTronAddress, logos, resolveStorageAdapter, toChainType, useActivity, useActivitySnapshot, useActivityState, useBannerAck, useBannerAckForSettlement, useCurrentFlowId, useDeposit, useDepositBindings, useDepositSnapshot, useDepositState, useKitConfig, useKitStorage, useKitStorageValue, useOptionalActivity, useOptionalDeposit, useOptionalKitStorage, useOptionalPrefetchActivity, useOptionalWithdraw, usePrefetchActivity, usePrefetchDeposit, usePrefetchWithdraw, useStridgeEvent, useStridgeEventBus, useStridgeEvents, useStridgeFlowEvent, useStridgeFlowEvents, useWithdraw, useWithdrawBindings, useWithdrawSnapshot, useWithdrawState };
51
+ export { type ActivityActions, type ActivityAmount, type ActivityController, type ActivityDirection, type ActivityDriver, type ActivityOpenInput, type ActivityPayload, type ActivityRowPayload, type ActivitySnapshot, type ActivityState, type ActivityStateName, type ActivityStatus, type ActivityStatusType, type BannerAckBucket, type CardBrand, type CardData, type CashMethodCapability, type CashMethodId, type CashMethodsPayload, type ChainLogoInput, type ChainLogoMeta, type ChainType, type ConnectWalletConfig, DEFAULT_KIT_STORAGE_NAMESPACE, type DepositActions, type DepositBindings, type DepositController, type DepositMethod, type DepositMethodConfig, type DepositMethodsConfig, type OpenInput as DepositOpenInput, type DepositRailConfig, type DepositSnapshot, type DepositState, type DepositStateName, type FailureInfo, type FlowEvent, type FlowIdKey, type IntercomMerchantContext, KIT_VERSION, KitPortalScope, KitStorageProvider, type LogosNamespace, type Presentation, type PresentationConfig, type PresentationMode, type PublicStridgeEventBus, type RedactEventOptions, type StridgeAppearance, type StridgeAsset, type StridgeDepositDestination, type StridgeDepositFlowConfig, type StridgeDepositMethodConfig, type StridgeDepositMethodsConfig, type StridgeEnvironment, type StridgeEvent, type StridgeFlowOwner, type StridgePrefetchConfig, StridgeProvider, type StridgeStorageConfig, type StridgeWithdrawFlowConfig, type SubscribeOptions, type SupportConfig, type SupportOpenContext, type TermsConfig, type TermsSelectContext, type TokenLogoInput, type TokenizationResult, type TxRef, type UiEvent, type WithdrawActions, type WithdrawBalanceInput, type WithdrawBindings, type WithdrawController, type WithdrawSnapshot, type WithdrawState, type WithdrawStateName, type WithdrawSubmitActions, type WithdrawSubmitCallback, type WithdrawSubmitInput, type WithdrawSuggestedRecipient, type WithdrawalFormSnapshot, bannerAckStorageKey, bucketFromSettlement, createKitStorage, createLocalStorageAdapter, createMemoryStorageAdapter, createSessionStorageAdapter, isValidAddressForChainType, isValidEvmAddress, isValidTronAddress, logos, redactEvent, resolveStorageAdapter, toChainType, useActivity, useActivitySnapshot, useActivityState, useBannerAck, useBannerAckForSettlement, useCurrentFlowId, useDeposit, useDepositBindings, useDepositSnapshot, useDepositState, useKitConfig, useKitStorage, useKitStorageValue, useOptionalActivity, useOptionalDeposit, useOptionalKitStorage, useOptionalPrefetchActivity, useOptionalWithdraw, usePrefetchActivity, usePrefetchDeposit, usePrefetchWithdraw, useStridgeEvent, useStridgeEventBus, useStridgeEvents, useStridgeFlowEvent, useStridgeFlowEvents, useWithdraw, useWithdrawBindings, useWithdrawSnapshot, useWithdrawState };
package/dist/index.js CHANGED
@@ -1 +1 @@
1
- import{isValidAddressForChainType as e,isValidEvmAddress as t,isValidTronAddress as n,toChainType as r}from"./shared/chains/index.js";import{logos as i}from"./shared/utils/logos/api.js";import"./shared/utils/logos/index.js";import{createLocalStorageAdapter as a,createMemoryStorageAdapter as o,createSessionStorageAdapter as s,resolveStorageAdapter as c}from"./storage/adapters.js";import{createKitStorage as l}from"./storage/createKitStorage.js";import{DEFAULT_KIT_STORAGE_NAMESPACE as u,KitStorageProvider as d,useKitStorage as f,useKitStorageValue as p,useOptionalKitStorage as m}from"./storage/context.js";import"./storage/index.js";import{bannerAckStorageKey as h,bucketFromSettlement as g,useBannerAck as _,useBannerAckForSettlement as v}from"./banners/useBannerAck.js";import"./banners/index.js";import{useCurrentFlowId as y}from"./events/hooks/useCurrentFlowId.js";import{useStridgeEvent as b}from"./events/hooks/useStridgeEvent.js";import{useStridgeEventBus as x}from"./events/hooks/useStridgeEventBus.js";import{useStridgeEvents as S}from"./events/hooks/useStridgeEvents.js";import{useStridgeFlowEvent as C}from"./events/hooks/useStridgeFlowEvent.js";import{useStridgeFlowEvents as w}from"./events/hooks/useStridgeFlowEvents.js";import"./events/index.js";import{useActivitySnapshot as T}from"./flows/activity/driver/context.js";import{useActivityState as E}from"./flows/activity/orchestrator/controller.js";import{useActivity as D,useOptionalActivity as O,useOptionalPrefetchActivity as k,usePrefetchActivity as A}from"./flows/activity/orchestrator/useActivity.js";import"./flows/activity/orchestrator/index.js";import{useDepositBindings as j}from"./flows/deposit/bindings/DepositBindings.js";import"./flows/deposit/bindings/index.js";import{useDepositSnapshot as M}from"./flows/deposit/driver/context.js";import{useDepositState as N}from"./flows/deposit/orchestrator/controller.js";import{useDeposit as P,useOptionalDeposit as F,usePrefetchDeposit as I}from"./flows/deposit/orchestrator/useDeposit.js";import{useWithdrawBindings as L}from"./flows/withdraw/bindings/WithdrawBindings.js";import"./flows/withdraw/bindings/index.js";import{useWithdrawSnapshot as R}from"./flows/withdraw/driver/context.js";import{useWithdrawState as z}from"./flows/withdraw/orchestrator/controller.js";import{useOptionalWithdraw as B,usePrefetchWithdraw as V,useWithdraw as H}from"./flows/withdraw/orchestrator/useWithdraw.js";import"./flows/withdraw/orchestrator/index.js";import{useKitConfig as U}from"./scope/context.js";import{KitPortalScope as W}from"./scope/KitPortalScope.js";import{StridgeProvider as G}from"./stridge/StridgeProvider.js";export{u as DEFAULT_KIT_STORAGE_NAMESPACE,W as KitPortalScope,d as KitStorageProvider,G as StridgeProvider,h as bannerAckStorageKey,g as bucketFromSettlement,l as createKitStorage,a as createLocalStorageAdapter,o as createMemoryStorageAdapter,s as createSessionStorageAdapter,e as isValidAddressForChainType,t as isValidEvmAddress,n as isValidTronAddress,i as logos,c as resolveStorageAdapter,r as toChainType,D as useActivity,T as useActivitySnapshot,E as useActivityState,_ as useBannerAck,v as useBannerAckForSettlement,y as useCurrentFlowId,P as useDeposit,j as useDepositBindings,M as useDepositSnapshot,N as useDepositState,U as useKitConfig,f as useKitStorage,p as useKitStorageValue,O as useOptionalActivity,F as useOptionalDeposit,m as useOptionalKitStorage,k as useOptionalPrefetchActivity,B as useOptionalWithdraw,A as usePrefetchActivity,I as usePrefetchDeposit,V as usePrefetchWithdraw,b as useStridgeEvent,x as useStridgeEventBus,S as useStridgeEvents,C as useStridgeFlowEvent,w as useStridgeFlowEvents,H as useWithdraw,L as useWithdrawBindings,R as useWithdrawSnapshot,z as useWithdrawState};
1
+ import{isValidAddressForChainType as e,isValidEvmAddress as t,isValidTronAddress as n,toChainType as r}from"./shared/chains/index.js";import{logos as i}from"./shared/utils/logos/api.js";import"./shared/utils/logos/index.js";import{createLocalStorageAdapter as a,createMemoryStorageAdapter as o,createSessionStorageAdapter as s,resolveStorageAdapter as c}from"./storage/adapters.js";import{createKitStorage as l}from"./storage/createKitStorage.js";import{DEFAULT_KIT_STORAGE_NAMESPACE as u,KitStorageProvider as d,useKitStorage as f,useKitStorageValue as p,useOptionalKitStorage as m}from"./storage/context.js";import"./storage/index.js";import{bannerAckStorageKey as h,bucketFromSettlement as g,useBannerAck as _,useBannerAckForSettlement as v}from"./banners/useBannerAck.js";import"./banners/index.js";import{KIT_VERSION as y}from"./version.js";import{useCurrentFlowId as b}from"./events/hooks/useCurrentFlowId.js";import{useStridgeEvent as x}from"./events/hooks/useStridgeEvent.js";import{useStridgeEventBus as S}from"./events/hooks/useStridgeEventBus.js";import{useStridgeEvents as C}from"./events/hooks/useStridgeEvents.js";import{useStridgeFlowEvent as w}from"./events/hooks/useStridgeFlowEvent.js";import{useStridgeFlowEvents as T}from"./events/hooks/useStridgeFlowEvents.js";import{redactEvent as E}from"./events/redact.js";import"./events/index.js";import{useActivitySnapshot as D}from"./flows/activity/driver/context.js";import{useActivityState as O}from"./flows/activity/orchestrator/controller.js";import{useActivity as k,useOptionalActivity as A,useOptionalPrefetchActivity as j,usePrefetchActivity as M}from"./flows/activity/orchestrator/useActivity.js";import"./flows/activity/orchestrator/index.js";import{useDepositBindings as N}from"./flows/deposit/bindings/DepositBindings.js";import"./flows/deposit/bindings/index.js";import{useDepositSnapshot as P}from"./flows/deposit/driver/context.js";import{useDepositState as F}from"./flows/deposit/orchestrator/controller.js";import{useDeposit as I,useOptionalDeposit as L,usePrefetchDeposit as R}from"./flows/deposit/orchestrator/useDeposit.js";import{useWithdrawBindings as z}from"./flows/withdraw/bindings/WithdrawBindings.js";import"./flows/withdraw/bindings/index.js";import{useWithdrawSnapshot as B}from"./flows/withdraw/driver/context.js";import{useWithdrawState as V}from"./flows/withdraw/orchestrator/controller.js";import{useOptionalWithdraw as H,usePrefetchWithdraw as U,useWithdraw as W}from"./flows/withdraw/orchestrator/useWithdraw.js";import"./flows/withdraw/orchestrator/index.js";import{useKitConfig as G}from"./scope/context.js";import{KitPortalScope as K}from"./scope/KitPortalScope.js";import{StridgeProvider as q}from"./stridge/StridgeProvider.js";export{u as DEFAULT_KIT_STORAGE_NAMESPACE,y as KIT_VERSION,K as KitPortalScope,d as KitStorageProvider,q as StridgeProvider,h as bannerAckStorageKey,g as bucketFromSettlement,l as createKitStorage,a as createLocalStorageAdapter,o as createMemoryStorageAdapter,s as createSessionStorageAdapter,e as isValidAddressForChainType,t as isValidEvmAddress,n as isValidTronAddress,i as logos,E as redactEvent,c as resolveStorageAdapter,r as toChainType,k as useActivity,D as useActivitySnapshot,O as useActivityState,_ as useBannerAck,v as useBannerAckForSettlement,b as useCurrentFlowId,I as useDeposit,N as useDepositBindings,P as useDepositSnapshot,F as useDepositState,G as useKitConfig,f as useKitStorage,p as useKitStorageValue,A as useOptionalActivity,L as useOptionalDeposit,m as useOptionalKitStorage,j as useOptionalPrefetchActivity,H as useOptionalWithdraw,M as usePrefetchActivity,R as usePrefetchDeposit,U as usePrefetchWithdraw,x as useStridgeEvent,S as useStridgeEventBus,C as useStridgeEvents,w as useStridgeFlowEvent,T as useStridgeFlowEvents,W as useWithdraw,z as useWithdrawBindings,B as useWithdrawSnapshot,V as useWithdrawState};
package/dist/package.js CHANGED
@@ -1 +1 @@
1
- var e=`0.1.0-alpha.57`;export{e as version};
1
+ var e=`0.1.0-alpha.59`;export{e as version};
@@ -1 +1 @@
1
- function e(e,t){if(e instanceof Error){let n=e.cause;if(n&&typeof n==`object`){let r=n;if(r.success===!1&&typeof r.error==`string`&&r.error.trim())return{reason:e.message||t,code:r.error}}return{reason:e.message||t,code:e.name}}return{reason:t}}export{e as toFailure};
1
+ function e(e,t){if(e instanceof Error){let n=e.cause;if(n&&typeof n==`object`){let r=n;if(r.success===!1&&typeof r.error==`string`&&r.error.trim())return{reason:e.message||t,code:r.error,cause:e}}return{reason:e.message||t,code:e.name,cause:e}}return{reason:t,cause:e}}export{e as toFailure};
@@ -15,6 +15,14 @@
15
15
  interface FailureInfo {
16
16
  reason: string;
17
17
  code?: string;
18
+ /**
19
+ * The original thrown value (typically an `Error` with a stack), retained for debugging and
20
+ * error reporting. Rides through to the event bus as {@link FailurePayloadBase.cause} so
21
+ * consumers can `Sentry.captureException(e.payload.cause)` with a real stack instead of a
22
+ * bare reason string. `undefined` for failures with no JS error origin (e.g. settlement
23
+ * failures decoded from a driver `failureKind` enum). Never rendered to users.
24
+ */
25
+ cause?: unknown;
18
26
  }
19
27
  //#endregion
20
28
  export { FailureInfo };
@@ -1,5 +1,6 @@
1
1
  import { AssetPickerAssetProps, AssetPickerBodyProps, AssetPickerDialogProps, AssetPickerFooterProps, AssetPickerHeaderProps, AssetPickerListProps, AssetPickerProps } from "./types.js";
2
2
  import { AssetPickerAsset } from "./components/Asset.js";
3
+ import { AssetPickerEmpty } from "./components/Empty.js";
3
4
  import { AssetPickerFooter } from "./components/Footer.js";
4
5
  import { AssetPickerHeader } from "./components/Header.js";
5
6
  import { AssetPickerList } from "./components/List.js";
@@ -16,6 +17,7 @@ import * as _$react_jsx_runtime0 from "react/jsx-runtime";
16
17
  * - {@link AssetPicker.List}
17
18
  * - {@link AssetPicker.Asset}
18
19
  * - {@link AssetPicker.Footer}
20
+ * - {@link AssetPicker.Empty} — empty-state body, shown when the wallet holds no depositable assets.
19
21
  *
20
22
  * Dialog form: {@link AssetPicker.Dialog} pre-composes the widget into
21
23
  * a `Dialog.Root + Dialog.Trigger + Dialog.Content` shell — the
@@ -45,6 +47,7 @@ declare namespace AssetPicker {
45
47
  const List: typeof AssetPickerList;
46
48
  const Asset: typeof AssetPickerAsset;
47
49
  const Footer: typeof AssetPickerFooter;
50
+ const Empty: typeof AssetPickerEmpty;
48
51
  const Dialog: typeof AssetPickerDialog;
49
52
  }
50
53
  //#endregion
@@ -1 +1 @@
1
- "use client";import{DialogShell as e}from"../../../dialog/DialogShell.js";import{Card as t}from"../../../ui/Card/Card.js";import{Tooltip as n}from"../../../ui/Tooltip/Tooltip.js";import"../../../ui/Tooltip/index.js";import"../../../../ui/index.js";import{Frame as r}from"../../../dialog/Frame.js";import{ASSET_PICKER_SLOTS as i}from"./AssetPicker.slots.js";import{styles as a}from"./AssetPicker.styles.js";import{AssetPickerContext as o}from"./context.js";import{AssetPickerAsset as s}from"./components/Asset.js";import{AssetPickerFooter as c}from"./components/Footer.js";import{AssetPickerHeader as l}from"./components/Header.js";import{AssetPickerList as u}from"./components/List.js";import{useMemo as d}from"react";import{jsx as f}from"react/jsx-runtime";import*as p from"@stylexjs/stylex";const m=[];function h(e){let{token:t,selectedId:s,onSelect:c,assets:l=m,headerTitle:u,onBack:h,footerLabel:g,onContinue:_,headerTrailing:v,children:y}=e,b=d(()=>({token:t,selectedId:s,onSelect:c,assets:l,headerTitle:u,onBack:h,footerLabel:g,onContinue:_,headerTrailing:v}),[t,s,c,l,u,h,g,_,v]);return f(o.Provider,{value:b,children:f(n.Provider,{children:f(r,{"data-stridge-slot":i.root,...p.props(a.root),children:y})})})}function g(e){return f(t.Body,{"data-stridge-slot":i.body,...e})}function _({open:t,defaultOpen:n,onOpenChange:r,trigger:i,children:a,...o}){return f(e,{open:t,defaultOpen:n,onOpenChange:r,trigger:i,children:f(h,{...o,children:a})})}(function(e){e.Header=l,e.Body=g,e.List=u,e.Asset=s,e.Footer=c,e.Dialog=_})(h||={});export{h as AssetPicker};
1
+ "use client";import{DialogShell as e}from"../../../dialog/DialogShell.js";import{Card as t}from"../../../ui/Card/Card.js";import{Tooltip as n}from"../../../ui/Tooltip/Tooltip.js";import"../../../ui/Tooltip/index.js";import"../../../../ui/index.js";import{Frame as r}from"../../../dialog/Frame.js";import{ASSET_PICKER_SLOTS as i}from"./AssetPicker.slots.js";import{styles as a}from"./AssetPicker.styles.js";import{AssetPickerContext as o}from"./context.js";import{AssetPickerAsset as s}from"./components/Asset.js";import{AssetPickerEmpty as c}from"./components/Empty.js";import{AssetPickerFooter as l}from"./components/Footer.js";import{AssetPickerHeader as u}from"./components/Header.js";import{AssetPickerList as d}from"./components/List.js";import{useMemo as f}from"react";import{jsx as p}from"react/jsx-runtime";import*as m from"@stylexjs/stylex";const h=[];function g(e){let{token:t,selectedId:s,onSelect:c,assets:l=h,headerTitle:u,onBack:d,footerLabel:g,onContinue:_,headerTrailing:v,children:y}=e,b=f(()=>({token:t,selectedId:s,onSelect:c,assets:l,headerTitle:u,onBack:d,footerLabel:g,onContinue:_,headerTrailing:v}),[t,s,c,l,u,d,g,_,v]);return p(o.Provider,{value:b,children:p(n.Provider,{children:p(r,{"data-stridge-slot":i.root,...m.props(a.root),children:y})})})}function _(e){return p(t.Body,{"data-stridge-slot":i.body,...e})}function v({open:t,defaultOpen:n,onOpenChange:r,trigger:i,children:a,...o}){return p(e,{open:t,defaultOpen:n,onOpenChange:r,trigger:i,children:p(g,{...o,children:a})})}(function(e){e.Header=u,e.Body=_,e.List=d,e.Asset=s,e.Footer=l,e.Empty=c,e.Dialog=v})(g||={});export{g as AssetPicker};
@@ -5,6 +5,8 @@ declare const ASSET_PICKER_SLOTS: {
5
5
  readonly body: "asset-picker-body";
6
6
  readonly footer: "asset-picker-footer";
7
7
  readonly list: "asset-picker-list";
8
+ readonly empty: "asset-picker-empty";
9
+ readonly emptyIcon: "asset-picker-empty-icon";
8
10
  };
9
11
  type AssetPickerSlot = (typeof ASSET_PICKER_SLOTS)[keyof typeof ASSET_PICKER_SLOTS];
10
12
  //#endregion
@@ -1 +1 @@
1
- const e={root:`asset-picker`,header:`asset-picker-header`,body:`asset-picker-body`,footer:`asset-picker-footer`,list:`asset-picker-list`};export{e as ASSET_PICKER_SLOTS};
1
+ const e={root:`asset-picker`,header:`asset-picker-header`,body:`asset-picker-body`,footer:`asset-picker-footer`,list:`asset-picker-list`,empty:`asset-picker-empty`,emptyIcon:`asset-picker-empty-icon`};export{e as ASSET_PICKER_SLOTS};
@@ -1 +1 @@
1
- const e={root:{"AssetPicker__styles.root":`AssetPicker__styles.root`,"position-kVAEAm":`x1n2onr6`,"width-kzqmXN":`xh8yej3`,"maxWidth-ks0D6T":`x17fpy1y`,$$css:`@stridge/kit:src/shared/widgets/asset-picker/compound/AssetPicker.styles.ts:5`},header:{"AssetPicker__styles.header":`AssetPicker__styles.header`,"gap-kOIVth":`x1v2ro7d`,"paddingTop-kLKAdn":`xyamay9`,"paddingInlineEnd-kwRFfy":`x1x5flf6`,"paddingBottom-kGO01o":`x1l90r2v`,"paddingInlineStart-kZCmMZ":`xf7dkkf`,$$css:`@stridge/kit:src/shared/widgets/asset-picker/compound/AssetPicker.styles.ts:12`},headerTitle:{"AssetPicker__styles.headerTitle":`AssetPicker__styles.headerTitle`,"flexGrow-kzQI83":`x1iyjqo2`,"margin-kogj98":`x1ghz6dp`,$$css:`@stridge/kit:src/shared/widgets/asset-picker/compound/AssetPicker.styles.ts:19`},headerTrailing:{"AssetPicker__styles.headerTrailing":`AssetPicker__styles.headerTrailing`,"display-k1xSpc":`x78zum5`,"alignItems-kGNEyG":`x6s0dn4`,"gap-kOIVth":`x1a6yh9e`,$$css:`@stridge/kit:src/shared/widgets/asset-picker/compound/AssetPicker.styles.ts:26`},backIcon:{"AssetPicker__styles.backIcon":`AssetPicker__styles.backIcon`,"width-kzqmXN":`x6jxa94`,"height-kZKoxP":`x1v9usgg`,"flexShrink-kmuXW":`x2lah0s`,"color-kMwMTN":`xzn0pkc`,"strokeWidth-kfJifR":`xhxwl1`,$$css:`@stridge/kit:src/shared/widgets/asset-picker/compound/AssetPicker.styles.ts:31`},closeIcon:{"AssetPicker__styles.closeIcon":`AssetPicker__styles.closeIcon`,"width-kzqmXN":`xsmyaan`,"height-kZKoxP":`x1kpxq89`,"flexShrink-kmuXW":`x2lah0s`,"color-kMwMTN":`xzn0pkc`,"strokeWidth-kfJifR":`xhr4kjn`,$$css:`@stridge/kit:src/shared/widgets/asset-picker/compound/AssetPicker.styles.ts:38`},list:{"AssetPicker__styles.list":`AssetPicker__styles.list`,"display-k1xSpc":`x78zum5`,"flexDirection-kXwgrk":`xdt5ytf`,"gap-kOIVth":`x167g77z`,"paddingTop-kLKAdn":`x109j2v6`,"paddingInlineEnd-kwRFfy":`x1x5flf6`,"paddingInlineStart-kZCmMZ":`xwn43p0`,$$css:`@stridge/kit:src/shared/widgets/asset-picker/compound/AssetPicker.styles.ts:46`},assetRow:{"AssetPicker__styles.assetRow":`AssetPicker__styles.assetRow`,"gap-kOIVth":`x1af02g3`,$$css:`@stridge/kit:src/shared/widgets/asset-picker/compound/AssetPicker.styles.ts:59`},textBlock:{"AssetPicker__styles.textBlock":`AssetPicker__styles.textBlock`,"display-k1xSpc":`x78zum5`,"flexDirection-kXwgrk":`xdt5ytf`,"flexBasis-kCS8Yb":`x1r8uery`,"flexGrow-kzQI83":`x1iyjqo2`,"flexShrink-kmuXW":`xs83m0k`,"minWidth-k7Eaqz":`xeuugli`,"gap-kOIVth":`x195vfkc`,$$css:`@stridge/kit:src/shared/widgets/asset-picker/compound/AssetPicker.styles.ts:63`},fiat:{"AssetPicker__styles.fiat":`AssetPicker__styles.fiat`,"flexShrink-kmuXW":`x2lah0s`,"whiteSpace-khDVqt":`xuxw1ft`,$$css:`@stridge/kit:src/shared/widgets/asset-picker/compound/AssetPicker.styles.ts:73`},lowBalanceBadge:{"AssetPicker__styles.lowBalanceBadge":`AssetPicker__styles.lowBalanceBadge`,"flexShrink-kmuXW":`x2lah0s`,"backgroundColor-kWkggS":`xp5aqsh`,"borderColor-kVAM5u":`x1bue7yx`,"color-kMwMTN":`x137ha3m`,"fontSize-kGuDYH":`x1j6dyjg`,"fontWeight-k63SB2":`xk50ysn`,"lineHeight-kLWn49":`x1xxsxie`,"letterSpacing-kb6lSQ":`x1ixy4ik`,"minHeight-kAzted":`xj9xw9b`,"paddingInlineStart-kZCmMZ":`x7coems`,"paddingInlineEnd-kwRFfy":`xrw5ot4`,$$css:`@stridge/kit:src/shared/widgets/asset-picker/compound/AssetPicker.styles.ts:86`},footer:{"AssetPicker__styles.footer":`AssetPicker__styles.footer`,"display-k1xSpc":`x78zum5`,"flexDirection-kXwgrk":`xdt5ytf`,"paddingTop-kLKAdn":`xyamay9`,"paddingInlineEnd-kwRFfy":`x1x5flf6`,"paddingBottom-kGO01o":`x1t4gjm`,"paddingInlineStart-kZCmMZ":`xwn43p0`,$$css:`@stridge/kit:src/shared/widgets/asset-picker/compound/AssetPicker.styles.ts:100`},cta:{"AssetPicker__styles.cta":`AssetPicker__styles.cta`,"width-kzqmXN":`xh8yej3`,$$css:`@stridge/kit:src/shared/widgets/asset-picker/compound/AssetPicker.styles.ts:108`},ctaInteractive:{"AssetPicker__styles.ctaInteractive":`AssetPicker__styles.ctaInteractive`,"cursor-kkrTdU":`x1ypdohk`,$$css:`@stridge/kit:src/shared/widgets/asset-picker/compound/AssetPicker.styles.ts:111`},ctaInert:{"AssetPicker__styles.ctaInert":`AssetPicker__styles.ctaInert`,"cursor-kkrTdU":`xt0e3qv`,$$css:`@stridge/kit:src/shared/widgets/asset-picker/compound/AssetPicker.styles.ts:114`}};export{e as styles};
1
+ const e={root:{"AssetPicker__styles.root":`AssetPicker__styles.root`,"position-kVAEAm":`x1n2onr6`,"width-kzqmXN":`xh8yej3`,"maxWidth-ks0D6T":`x17fpy1y`,$$css:`@stridge/kit:src/shared/widgets/asset-picker/compound/AssetPicker.styles.ts:5`},header:{"AssetPicker__styles.header":`AssetPicker__styles.header`,"gap-kOIVth":`x1v2ro7d`,"paddingTop-kLKAdn":`xyamay9`,"paddingInlineEnd-kwRFfy":`x1x5flf6`,"paddingBottom-kGO01o":`x1l90r2v`,"paddingInlineStart-kZCmMZ":`xf7dkkf`,$$css:`@stridge/kit:src/shared/widgets/asset-picker/compound/AssetPicker.styles.ts:12`},headerTitle:{"AssetPicker__styles.headerTitle":`AssetPicker__styles.headerTitle`,"flexGrow-kzQI83":`x1iyjqo2`,"margin-kogj98":`x1ghz6dp`,$$css:`@stridge/kit:src/shared/widgets/asset-picker/compound/AssetPicker.styles.ts:19`},headerTrailing:{"AssetPicker__styles.headerTrailing":`AssetPicker__styles.headerTrailing`,"display-k1xSpc":`x78zum5`,"alignItems-kGNEyG":`x6s0dn4`,"gap-kOIVth":`x1a6yh9e`,$$css:`@stridge/kit:src/shared/widgets/asset-picker/compound/AssetPicker.styles.ts:26`},backIcon:{"AssetPicker__styles.backIcon":`AssetPicker__styles.backIcon`,"width-kzqmXN":`x6jxa94`,"height-kZKoxP":`x1v9usgg`,"flexShrink-kmuXW":`x2lah0s`,"color-kMwMTN":`xzn0pkc`,"strokeWidth-kfJifR":`xhxwl1`,$$css:`@stridge/kit:src/shared/widgets/asset-picker/compound/AssetPicker.styles.ts:31`},closeIcon:{"AssetPicker__styles.closeIcon":`AssetPicker__styles.closeIcon`,"width-kzqmXN":`xsmyaan`,"height-kZKoxP":`x1kpxq89`,"flexShrink-kmuXW":`x2lah0s`,"color-kMwMTN":`xzn0pkc`,"strokeWidth-kfJifR":`xhr4kjn`,$$css:`@stridge/kit:src/shared/widgets/asset-picker/compound/AssetPicker.styles.ts:38`},list:{"AssetPicker__styles.list":`AssetPicker__styles.list`,"display-k1xSpc":`x78zum5`,"flexDirection-kXwgrk":`xdt5ytf`,"gap-kOIVth":`x167g77z`,"paddingTop-kLKAdn":`x109j2v6`,"paddingInlineEnd-kwRFfy":`x1x5flf6`,"paddingInlineStart-kZCmMZ":`xwn43p0`,$$css:`@stridge/kit:src/shared/widgets/asset-picker/compound/AssetPicker.styles.ts:46`},assetRow:{"AssetPicker__styles.assetRow":`AssetPicker__styles.assetRow`,"gap-kOIVth":`x1af02g3`,$$css:`@stridge/kit:src/shared/widgets/asset-picker/compound/AssetPicker.styles.ts:59`},textBlock:{"AssetPicker__styles.textBlock":`AssetPicker__styles.textBlock`,"display-k1xSpc":`x78zum5`,"flexDirection-kXwgrk":`xdt5ytf`,"flexBasis-kCS8Yb":`x1r8uery`,"flexGrow-kzQI83":`x1iyjqo2`,"flexShrink-kmuXW":`xs83m0k`,"minWidth-k7Eaqz":`xeuugli`,"gap-kOIVth":`x195vfkc`,$$css:`@stridge/kit:src/shared/widgets/asset-picker/compound/AssetPicker.styles.ts:63`},fiat:{"AssetPicker__styles.fiat":`AssetPicker__styles.fiat`,"flexShrink-kmuXW":`x2lah0s`,"whiteSpace-khDVqt":`xuxw1ft`,$$css:`@stridge/kit:src/shared/widgets/asset-picker/compound/AssetPicker.styles.ts:73`},lowBalanceBadge:{"AssetPicker__styles.lowBalanceBadge":`AssetPicker__styles.lowBalanceBadge`,"flexShrink-kmuXW":`x2lah0s`,"backgroundColor-kWkggS":`xp5aqsh`,"borderColor-kVAM5u":`x1bue7yx`,"color-kMwMTN":`x137ha3m`,"fontSize-kGuDYH":`x1j6dyjg`,"fontWeight-k63SB2":`xk50ysn`,"lineHeight-kLWn49":`x1xxsxie`,"letterSpacing-kb6lSQ":`x1ixy4ik`,"minHeight-kAzted":`xj9xw9b`,"paddingInlineStart-kZCmMZ":`x7coems`,"paddingInlineEnd-kwRFfy":`xrw5ot4`,$$css:`@stridge/kit:src/shared/widgets/asset-picker/compound/AssetPicker.styles.ts:86`},footer:{"AssetPicker__styles.footer":`AssetPicker__styles.footer`,"display-k1xSpc":`x78zum5`,"flexDirection-kXwgrk":`xdt5ytf`,"paddingTop-kLKAdn":`xyamay9`,"paddingInlineEnd-kwRFfy":`x1x5flf6`,"paddingBottom-kGO01o":`x1t4gjm`,"paddingInlineStart-kZCmMZ":`xwn43p0`,$$css:`@stridge/kit:src/shared/widgets/asset-picker/compound/AssetPicker.styles.ts:100`},cta:{"AssetPicker__styles.cta":`AssetPicker__styles.cta`,"width-kzqmXN":`xh8yej3`,$$css:`@stridge/kit:src/shared/widgets/asset-picker/compound/AssetPicker.styles.ts:108`},ctaInteractive:{"AssetPicker__styles.ctaInteractive":`AssetPicker__styles.ctaInteractive`,"cursor-kkrTdU":`x1ypdohk`,$$css:`@stridge/kit:src/shared/widgets/asset-picker/compound/AssetPicker.styles.ts:111`},ctaInert:{"AssetPicker__styles.ctaInert":`AssetPicker__styles.ctaInert`,"cursor-kkrTdU":`xt0e3qv`,$$css:`@stridge/kit:src/shared/widgets/asset-picker/compound/AssetPicker.styles.ts:114`},empty:{"AssetPicker__styles.empty":`AssetPicker__styles.empty`,"display-k1xSpc":`x78zum5`,"flexDirection-kXwgrk":`xdt5ytf`,"alignItems-kGNEyG":`x6s0dn4`,"justifyContent-kjj79g":`xl56j7k`,"gap-kOIVth":`x1a6yh9e`,"paddingTop-kLKAdn":`x1saie51`,"paddingBottom-kGO01o":`x1ej8hiu`,"paddingInlineStart-kZCmMZ":`xmg6hw8`,"paddingInlineEnd-kwRFfy":`x1hvdk87`,"textAlign-k9WMMc":`x2b8uid`,$$css:`@stridge/kit:src/shared/widgets/asset-picker/compound/AssetPicker.styles.ts:119`},emptyIcon:{"AssetPicker__styles.emptyIcon":`AssetPicker__styles.emptyIcon`,"width-kzqmXN":`x1td3qas`,"height-kZKoxP":`x10w6t97`,"color-kMwMTN":`x137ha3m`,"strokeWidth-kfJifR":`x1k315e8`,$$css:`@stridge/kit:src/shared/widgets/asset-picker/compound/AssetPicker.styles.ts:131`}};export{e as styles};
@@ -0,0 +1,15 @@
1
+ import * as _$react_jsx_runtime0 from "react/jsx-runtime";
2
+
3
+ //#region src/shared/widgets/asset-picker/compound/components/Empty.d.ts
4
+ /**
5
+ * Empty-state body for the asset picker. Reached when the on-chain balance lookup resolved but
6
+ * surfaced no depositable assets for the connected wallet — a fresh wallet, or one whose holdings
7
+ * are all spam / unsupported / below the gateway's dust floor. Mirrors {@link ActivityEmpty}:
8
+ * centered icon + headline + subline, no CTA — the user is inside an active dialog, so its header
9
+ * (back / close) is the implicit next step.
10
+ *
11
+ * @internal
12
+ */
13
+ declare function AssetPickerEmpty(): _$react_jsx_runtime0.JSX.Element;
14
+ //#endregion
15
+ export { AssetPickerEmpty };
@@ -0,0 +1 @@
1
+ "use client";import{useLingui as e}from"../../../../i18n/useLingui.js";import"../../../../../i18n/index.js";import{WalletIcon as t}from"../../../../icons/WalletIcon.js";import"../../../../../icons/index.js";import{text as n}from"../../../../ui/Text/Text.js";import"../../../../ui/Text/index.js";import{ASSET_PICKER_SLOTS as r}from"../AssetPicker.slots.js";import{styles as i}from"../AssetPicker.styles.js";import{jsx as a,jsxs as o}from"react/jsx-runtime";import*as s from"@stylexjs/stylex";function c(){let{_:c}=e();return o(`div`,{"data-stridge-slot":r.empty,...s.props(i.empty),children:[a(t,{"aria-hidden":!0,"data-stridge-slot":r.emptyIcon,...s.props(i.emptyIcon)}),a(n.span,{size:`base`,fontWeight:`semibold`,color:`default`,children:c({id:`tTnE4T`,message:`No assets to deposit`})}),a(n.span,{size:`sm`,fontWeight:`medium`,color:`subdued`,children:c({id:`i1MfcA`,message:`Tokens available to deposit from your wallet will appear here.`})})]})}export{c as AssetPickerEmpty};
@@ -300,12 +300,12 @@
300
300
  --stridge-kit-shadow-xl: 0 24px 56px -12px oklch(0% 0 0 / .1), 0 8px 16px -4px oklch(0% 0 0 / .06);
301
301
  }
302
302
 
303
- [data-stridge-scope] {
303
+ [data-stridge-scope] [data-stridge-slot] {
304
304
  -webkit-user-select: none;
305
305
  user-select: none;
306
306
  }
307
307
 
308
- [data-stridge-scope] :is(input, textarea, [contenteditable="true"]) {
308
+ [data-stridge-scope] [data-stridge-slot]:is(input, textarea, [contenteditable="true"], [data-stridge-selectable]), [data-stridge-scope] :is(input, textarea, [contenteditable="true"], [data-stridge-selectable]) {
309
309
  -webkit-user-select: text;
310
310
  user-select: text;
311
311
  }
@@ -0,0 +1,10 @@
1
+ //#region src/version.d.ts
2
+ /**
3
+ * Resolved at build time by tsdown's `define` (the `__STRIDGE_KIT_VERSION__` token is replaced
4
+ * with the `package.json` version string). The `typeof` guard keeps the reference safe in test
5
+ * runners and any environment where the token was not substituted — there it falls back to the
6
+ * sentinel `"0.0.0-dev"` instead of throwing on an undeclared identifier.
7
+ */
8
+ declare const KIT_VERSION: string;
9
+ //#endregion
10
+ export { KIT_VERSION };
@@ -0,0 +1 @@
1
+ const e=`0.1.0-alpha.59`;export{e as KIT_VERSION};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@stridge/kit",
3
- "version": "0.1.0-alpha.57",
3
+ "version": "0.1.0-alpha.59",
4
4
  "license": "MIT",
5
5
  "type": "module",
6
6
  "files": [