@stridge/kit 0.1.0-alpha.31 → 0.1.0-alpha.33

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 (66) hide show
  1. package/dist/deposit/compound/index.d.ts +1 -1
  2. package/dist/drivers/stridge/createStridgeWithdrawDriver.js +1 -1
  3. package/dist/events/bus/createBus.d.ts +7 -0
  4. package/dist/events/bus/createBus.js +1 -0
  5. package/dist/events/bus/flowIdRegistry.d.ts +17 -0
  6. package/dist/events/bus/flowIdRegistry.js +1 -0
  7. package/dist/events/bus/index.js +1 -0
  8. package/dist/events/bus/metadata.js +1 -0
  9. package/dist/events/context.js +1 -0
  10. package/dist/events/emit/index.js +1 -0
  11. package/dist/events/emit/mapFailure.js +1 -0
  12. package/dist/events/emit/useDepositEmissions.js +1 -0
  13. package/dist/events/emit/useKitEmitter.js +1 -0
  14. package/dist/events/emit/useWithdrawEmissions.js +1 -0
  15. package/dist/events/hooks/index.d.ts +6 -0
  16. package/dist/events/hooks/index.js +1 -0
  17. package/dist/events/hooks/useCurrentFlowId.d.ts +6 -0
  18. package/dist/events/hooks/useCurrentFlowId.js +1 -0
  19. package/dist/events/hooks/useStableHandler.js +1 -0
  20. package/dist/events/hooks/useStridgeEvent.d.ts +8 -0
  21. package/dist/events/hooks/useStridgeEvent.js +1 -0
  22. package/dist/events/hooks/useStridgeEventBus.d.ts +33 -0
  23. package/dist/events/hooks/useStridgeEventBus.js +1 -0
  24. package/dist/events/hooks/useStridgeEvents.d.ts +6 -0
  25. package/dist/events/hooks/useStridgeEvents.js +1 -0
  26. package/dist/events/hooks/useStridgeFlowEvent.d.ts +8 -0
  27. package/dist/events/hooks/useStridgeFlowEvent.js +1 -0
  28. package/dist/events/hooks/useStridgeFlowEvents.d.ts +6 -0
  29. package/dist/events/hooks/useStridgeFlowEvents.js +1 -0
  30. package/dist/events/index.d.ts +14 -0
  31. package/dist/events/index.js +1 -0
  32. package/dist/events/publish.js +1 -0
  33. package/dist/events/types/deposit.d.ts +235 -0
  34. package/dist/events/types/envelope.d.ts +145 -0
  35. package/dist/events/types/index.d.ts +31 -0
  36. package/dist/events/types/kit.d.ts +23 -0
  37. package/dist/events/types/withdraw.d.ts +150 -0
  38. package/dist/flows/deposit/dialog/DepositDialog.d.ts +14 -81
  39. package/dist/flows/deposit/dialog/DepositDialog.js +1 -1
  40. package/dist/flows/deposit/widgets/amount-entry/AmountEntry.js +1 -1
  41. package/dist/flows/deposit/widgets/confirm-deposit/ConfirmDeposit.js +1 -1
  42. package/dist/flows/deposit/widgets/transfer-crypto/TransferCrypto.js +1 -1
  43. package/dist/flows/deposit/widgets/transfer-crypto/compound/TransferCrypto.d.ts +1 -1
  44. package/dist/flows/withdraw/dialog/WithdrawDialog.d.ts +27 -109
  45. package/dist/flows/withdraw/dialog/WithdrawDialog.js +1 -1
  46. package/dist/flows/withdraw/driver/transformers/settlementToWithdrawalPayload.js +1 -1
  47. package/dist/flows/withdraw/orchestrator/controller.js +1 -1
  48. package/dist/flows/withdraw/orchestrator/types.d.ts +18 -1
  49. package/dist/flows/withdraw/widgets/withdraw-form/WithdrawForm.d.ts +5 -13
  50. package/dist/flows/withdraw/widgets/withdraw-form/WithdrawForm.js +1 -1
  51. package/dist/flows/withdraw/widgets/withdraw-in-progress/WithdrawInProgress.js +1 -1
  52. package/dist/flows/withdraw/widgets/withdraw-success/WithdrawSuccess.js +1 -1
  53. package/dist/i18n/locales/ar.js +1 -1
  54. package/dist/i18n/locales/es.js +1 -1
  55. package/dist/i18n/locales/source-keys.d.ts +1 -1
  56. package/dist/index.d.ts +9 -1
  57. package/dist/index.js +1 -1
  58. package/dist/package.js +1 -1
  59. package/dist/shared/support/SupportLink.js +1 -1
  60. package/dist/shared/terms/TermsLink.js +1 -1
  61. package/dist/shared/widgets/processing-state/compound/components/Hero.d.ts +4 -1
  62. package/dist/shared/widgets/processing-state/compound/components/Hero.js +1 -1
  63. package/dist/stridge/StridgeProvider.js +1 -1
  64. package/package.json +7 -3
  65. package/dist/flows/withdraw/dialog/WithdrawDialogEventsContext.d.ts +0 -36
  66. package/dist/flows/withdraw/dialog/WithdrawDialogEventsContext.js +0 -1
@@ -1 +1 @@
1
- "use client";import{useSupportConfig as e}from"./SupportConfigContext.js";import{resolveSupport as t}from"./resolveSupport.js";import{SupportButton as n}from"./SupportButton.js";import{BRAND_LINKS as r}from"../constants/brand-links.js";import{ExternalLink as i}from"../ui/ExternalLink/ExternalLink.js";import"../ui/ExternalLink/index.js";import{SupportSpinner as a}from"./SupportSpinner.js";import{useSupportTrigger as o}from"./useSupportTrigger.js";import{useCallback as s}from"react";import{jsx as c}from"react/jsx-runtime";const l={cursor:`not-allowed`,opacity:.6,pointerEvents:`none`};function u(n){let{config:r,merchantContext:i}=e(),a=t(r);return a.kind===`stridge`?c(d,{...n}):a.kind===`url`?c(f,{...n,url:a.url}):c(p,{...n,url:a.url,onOpen:a.onOpen,merchantContext:i})}function d({children:e,suffix:t,onClick:n,style:u,...d}){let f=o(),p=f.status===`loading`,m=s(e=>{n?.(e),!e.defaultPrevented&&e.button===0&&(e.metaKey||e.ctrlKey||e.shiftKey||e.altKey||(e.preventDefault(),f.open()))},[f,n]),h=p?{...u,...l}:u;return c(i,{...d,href:r.support,suffix:p?c(a,{}):t,onClick:m,"aria-busy":p||void 0,"aria-disabled":p||void 0,style:h,children:e})}function f({url:e,children:t,...n}){return c(i,{...n,href:e,children:t})}function p({url:e,onOpen:t,merchantContext:r,children:a,suffix:o,onClick:l,...u}){let d=s(e=>{l?.(e),!e.defaultPrevented&&e.button===0&&(e.metaKey||e.ctrlKey||e.shiftKey||e.altKey||(e.preventDefault(),t({event:e,...m(r)})))},[l,t,r]),f=s(e=>{l?.(e),!e.defaultPrevented&&t({event:e,...m(r)})},[l,t,r]);return e?c(i,{...u,href:e,suffix:o,onClick:d,children:a}):c(n,{...u,suffix:o,onClick:f,children:a})}function m(e){return e??{gatewayKey:``,environment:``,assetChain:``,assetSymbol:``}}export{u as SupportLink};
1
+ "use client";import{useSupportConfig as e}from"./SupportConfigContext.js";import{resolveSupport as t}from"./resolveSupport.js";import{SupportButton as n}from"./SupportButton.js";import{useKitEmitter as r}from"../../events/emit/useKitEmitter.js";import"../../events/emit/index.js";import{BRAND_LINKS as i}from"../constants/brand-links.js";import{ExternalLink as a}from"../ui/ExternalLink/ExternalLink.js";import"../ui/ExternalLink/index.js";import{SupportSpinner as o}from"./SupportSpinner.js";import{useSupportTrigger as s}from"./useSupportTrigger.js";import{useCallback as c}from"react";import{jsx as l}from"react/jsx-runtime";const u={cursor:`not-allowed`,opacity:.6,pointerEvents:`none`};function d(n){let{config:r,merchantContext:i}=e(),a=t(r);return a.kind===`stridge`?l(f,{...n}):a.kind===`url`?l(p,{...n,url:a.url}):l(m,{...n,url:a.url,onOpen:a.onOpen,merchantContext:i})}function f({children:e,suffix:t,onClick:n,style:d,...f}){let p=s(),m=p.status===`loading`,h=r(),g=c(e=>{n?.(e),!e.defaultPrevented&&e.button===0&&(e.metaKey||e.ctrlKey||e.shiftKey||e.altKey||(e.preventDefault(),h({type:`kit.support.clicked`,flow:`kit`,tier:`ui`,payload:{context:{event:e}}}),p.open()))},[h,p,n]),_=m?{...d,...u}:d;return l(a,{...f,href:i.support,suffix:m?l(o,{}):t,onClick:g,"aria-busy":m||void 0,"aria-disabled":m||void 0,style:_,children:e})}function p({url:e,children:t,onClick:n,...i}){let o=r(),s=c(e=>{o({type:`kit.support.clicked`,flow:`kit`,tier:`ui`,payload:{context:{event:e}}}),n?.(e)},[o,n]);return l(a,{...i,href:e,onClick:s,children:t})}function m({url:e,onOpen:t,merchantContext:i,children:o,suffix:s,onClick:u,...d}){let f=r(),p=c(e=>{if(u?.(e),e.defaultPrevented||e.button!==0||e.metaKey||e.ctrlKey||e.shiftKey||e.altKey)return;e.preventDefault();let n={event:e,...h(i)};f({type:`kit.support.clicked`,flow:`kit`,tier:`ui`,payload:{context:n}}),t(n)},[f,u,t,i]),m=c(e=>{if(u?.(e),e.defaultPrevented)return;let n={event:e,...h(i)};f({type:`kit.support.clicked`,flow:`kit`,tier:`ui`,payload:{context:n}}),t(n)},[f,u,t,i]);return e?l(a,{...d,href:e,suffix:s,onClick:p,children:o}):l(n,{...d,suffix:s,onClick:m,children:o})}function h(e){return e??{gatewayKey:``,environment:``,assetChain:``,assetSymbol:``}}export{d as SupportLink};
@@ -1 +1 @@
1
- "use client";import{useTermsConfig as e}from"./TermsConfigContext.js";import{BRAND_LINKS as t}from"../constants/brand-links.js";import{ExternalLink as n}from"../ui/ExternalLink/ExternalLink.js";import"../ui/ExternalLink/index.js";import{resolveTerms as r}from"./resolveTerms.js";import{TermsButton as i}from"./TermsButton.js";import{useCallback as a}from"react";import{jsx as o}from"react/jsx-runtime";function s(t){let{config:n}=e(),i=r(n);return i.kind===`stridge`?o(c,{...t}):i.kind===`url`?o(l,{...t,url:i.url}):o(u,{...t,url:i.url,onSelect:i.onSelect})}function c(e){return o(n,{...e,href:t.terms})}function l({url:e,...t}){return o(n,{...t,href:e})}function u({url:e,onSelect:t,children:r,onClick:s,...c}){let l=a(e=>{s?.(e),!e.defaultPrevented&&e.button===0&&(e.metaKey||e.ctrlKey||e.shiftKey||e.altKey||(e.preventDefault(),t({event:e})))},[s,t]),u=a(e=>{s?.(e),!e.defaultPrevented&&t({event:e})},[s,t]);return e?o(n,{...c,href:e,onClick:l,children:r}):o(i,{...c,onClick:u,children:r})}export{s as TermsLink};
1
+ "use client";import{useTermsConfig as e}from"./TermsConfigContext.js";import{useKitEmitter as t}from"../../events/emit/useKitEmitter.js";import"../../events/emit/index.js";import{BRAND_LINKS as n}from"../constants/brand-links.js";import{ExternalLink as r}from"../ui/ExternalLink/ExternalLink.js";import"../ui/ExternalLink/index.js";import{resolveTerms as i}from"./resolveTerms.js";import{TermsButton as a}from"./TermsButton.js";import{useCallback as o}from"react";import{jsx as s}from"react/jsx-runtime";function c(t){let{config:n}=e(),r=i(n);return r.kind===`stridge`?s(l,{...t}):r.kind===`url`?s(u,{...t,url:r.url}):s(d,{...t,url:r.url,onSelect:r.onSelect})}function l({onClick:e,...i}){let a=t(),c=o(t=>{a({type:`kit.terms.clicked`,flow:`kit`,tier:`ui`,payload:{context:{event:t}}}),e?.(t)},[a,e]);return s(r,{...i,href:n.terms,onClick:c})}function u({url:e,onClick:n,...i}){let a=t(),c=o(e=>{a({type:`kit.terms.clicked`,flow:`kit`,tier:`ui`,payload:{context:{event:e}}}),n?.(e)},[a,n]);return s(r,{...i,href:e,onClick:c})}function d({url:e,onSelect:n,children:i,onClick:c,...l}){let u=t(),d=o(e=>{c?.(e),!e.defaultPrevented&&e.button===0&&(e.metaKey||e.ctrlKey||e.shiftKey||e.altKey||(e.preventDefault(),u({type:`kit.terms.clicked`,flow:`kit`,tier:`ui`,payload:{context:{event:e}}}),n({event:e})))},[u,c,n]),f=o(e=>{c?.(e),!e.defaultPrevented&&(u({type:`kit.terms.clicked`,flow:`kit`,tier:`ui`,payload:{context:{event:e}}}),n({event:e}))},[u,c,n]);return e?s(r,{...l,href:e,onClick:d,children:i}):s(a,{...l,onClick:f,children:i})}export{c as TermsLink};
@@ -13,7 +13,10 @@ import * as _$react_jsx_runtime0 from "react/jsx-runtime";
13
13
  * `0` reads as "credited zero" and a shimmer over a number we never had reads as fake).
14
14
  * - **USD hero** — when `amountUsd` is set, the fiat figure becomes the primary line and
15
15
  * `[icon] <amount> <symbol>` is demoted to a subline beneath it. Mirrors the deposit confirm
16
- * screen's hero treatment.
16
+ * screen's hero treatment. When `loading=true` the subline drops the amount the same way the
17
+ * token-hero variant does, so the row reads `[icon] USDC` instead of leaving a phantom space
18
+ * between the icon and the symbol (the withdraw flow can resolve `amountUsd` from the priced
19
+ * settlement leg before the token-side `amount` lands).
17
20
  */
18
21
  declare function ProcessingStateHero(): _$react_jsx_runtime0.JSX.Element;
19
22
  //#endregion
@@ -1 +1 @@
1
- "use client";import{useLingui as e}from"../../../../i18n/useLingui.js";import"../../../../../i18n/index.js";import{text as t}from"../../../../ui/Text/Text.js";import{TokenLogo as n}from"../../../../ui/TokenLogo/TokenLogo.js";import"../../../../ui/TokenLogo/index.js";import"../../../../../ui/index.js";import{PROCESSING_STATE_SLOTS as r}from"../ProcessingState.slots.js";import{useProcessingStateContext as i}from"../context.js";import{styles as a}from"../ProcessingState.styles.js";import{splitAmount as o}from"./splitAmount.js";import{Fragment as s,jsx as c,jsxs as l}from"react/jsx-runtime";import*as u from"@stylexjs/stylex";function d(){let d=i(`ProcessingState.Hero`),{_:f}=e(),p=d.creditedTo??d.creditedAsset.symbol,m={symbol:d.creditedAsset.symbol,...d.creditedAsset.chainId===void 0?{}:{chainId:d.creditedAsset.chainId},...d.creditedAsset.address===void 0?{}:{address:d.creditedAsset.address},...d.creditedAsset.isNative===void 0?{}:{isNative:d.creditedAsset.isNative},...d.creditedAsset.logoUrl===void 0?{}:{logoUrl:d.creditedAsset.logoUrl}},h=d.amountUsd?o(d.amountUsd):void 0;return l(`div`,{"data-stridge-slot":r.hero,...u.props(a.hero),children:[c(t.span,{size:`caption`,fontWeight:`semibold`,leading:`tight`,tracking:`widest`,transform:`uppercase`,align:`center`,color:`tertiary`,children:f({id:`zYD5xm`,message:`Crediting`})}),h?l(s,{children:[l(`div`,{dir:`ltr`,...u.props(a.heroAmountRow),children:[h.glyph?c(t.span,{size:`2xl`,fontWeight:`semibold`,leading:`none`,tracking:`tight`,children:h.glyph}):null,c(t.span,{size:`4xl`,fontWeight:`semibold`,leading:`none`,tracking:`tight`,children:h.digits})]}),l(`div`,{dir:`ltr`,...u.props(a.heroSubLine),children:[c(n,{size:18,...m,hideChainBadge:!0,...u.props(a.heroSubLineIcon)}),l(t.span,{size:`sm`,fontWeight:`medium`,leading:`tight`,tracking:`tight`,color:`subdued`,children:[d.amount,` `,d.creditedAsset.symbol]})]})]}):l(`div`,{dir:`ltr`,...u.props(a.heroAmountRow),children:[c(n,{size:30,...m,hideChainBadge:!0,...u.props(a.heroAmountIcon)}),d.loading?null:c(t.span,{size:`4xl`,fontWeight:`semibold`,leading:`none`,tracking:`tight`,children:d.amount}),c(t.span,{size:d.loading?`4xl`:`xl`,fontWeight:`semibold`,leading:`none`,tracking:`tight`,children:d.creditedAsset.symbol})]}),c(t.span,{size:`meta`,fontWeight:`medium`,leading:`tight`,align:`center`,color:`subdued`,children:p})]})}export{d as ProcessingStateHero};
1
+ "use client";import{useLingui as e}from"../../../../i18n/useLingui.js";import"../../../../../i18n/index.js";import{text as t}from"../../../../ui/Text/Text.js";import{TokenLogo as n}from"../../../../ui/TokenLogo/TokenLogo.js";import"../../../../ui/TokenLogo/index.js";import"../../../../../ui/index.js";import{PROCESSING_STATE_SLOTS as r}from"../ProcessingState.slots.js";import{useProcessingStateContext as i}from"../context.js";import{styles as a}from"../ProcessingState.styles.js";import{splitAmount as o}from"./splitAmount.js";import{Fragment as s,jsx as c,jsxs as l}from"react/jsx-runtime";import*as u from"@stylexjs/stylex";function d(){let d=i(`ProcessingState.Hero`),{_:f}=e(),p=d.creditedTo??d.creditedAsset.symbol,m={symbol:d.creditedAsset.symbol,...d.creditedAsset.chainId===void 0?{}:{chainId:d.creditedAsset.chainId},...d.creditedAsset.address===void 0?{}:{address:d.creditedAsset.address},...d.creditedAsset.isNative===void 0?{}:{isNative:d.creditedAsset.isNative},...d.creditedAsset.logoUrl===void 0?{}:{logoUrl:d.creditedAsset.logoUrl}},h=d.amountUsd?o(d.amountUsd):void 0;return l(`div`,{"data-stridge-slot":r.hero,...u.props(a.hero),children:[c(t.span,{size:`caption`,fontWeight:`semibold`,leading:`tight`,tracking:`widest`,transform:`uppercase`,align:`center`,color:`tertiary`,children:f({id:`zYD5xm`,message:`Crediting`})}),h?l(s,{children:[l(`div`,{dir:`ltr`,...u.props(a.heroAmountRow),children:[h.glyph?c(t.span,{size:`2xl`,fontWeight:`semibold`,leading:`none`,tracking:`tight`,children:h.glyph}):null,c(t.span,{size:`4xl`,fontWeight:`semibold`,leading:`none`,tracking:`tight`,children:h.digits})]}),l(`div`,{dir:`ltr`,...u.props(a.heroSubLine),children:[c(n,{size:18,...m,hideChainBadge:!0,...u.props(a.heroSubLineIcon)}),c(t.span,{size:`sm`,fontWeight:`medium`,leading:`tight`,tracking:`tight`,color:`subdued`,children:d.loading?d.creditedAsset.symbol:`${d.amount} ${d.creditedAsset.symbol}`})]})]}):l(`div`,{dir:`ltr`,...u.props(a.heroAmountRow),children:[c(n,{size:30,...m,hideChainBadge:!0,...u.props(a.heroAmountIcon)}),d.loading?null:c(t.span,{size:`4xl`,fontWeight:`semibold`,leading:`none`,tracking:`tight`,children:d.amount}),c(t.span,{size:d.loading?`4xl`:`xl`,fontWeight:`semibold`,leading:`none`,tracking:`tight`,children:d.creditedAsset.symbol})]}),c(t.span,{size:`meta`,fontWeight:`medium`,leading:`tight`,align:`center`,color:`subdued`,children:p})]})}export{d as ProcessingStateHero};
@@ -1 +1 @@
1
- "use client";import{createKitI18n as e}from"../shared/i18n/createKitI18n.js";import"../i18n/index.js";import{StridgeContext as t}from"./StridgeContext.js";import{createStridgeDepositDriver as n}from"../drivers/stridge/createStridgeDepositDriver.js";import{createStridgeWithdrawDriver as r}from"../drivers/stridge/createStridgeWithdrawDriver.js";import"../_internal/drivers/stridge/index.js";import{KitProvider as i}from"../KitProvider.js";import{resolveSupport as a}from"../shared/support/resolveSupport.js";import{useIntercomMerchantContext as o}from"../shared/support/useIntercomMerchantContext.js";import{useMerchantContext as s}from"../shared/support/useMerchantContext.js";import"../shared/support/index.js";import{useOptionalWagmi as c}from"./optionalWagmi.js";import{createStubDepositDriver as l,createStubWithdrawDriver as u}from"./stubs.js";import{useMemo as d,useRef as f,useSyncExternalStore as p}from"react";import{jsx as m}from"react/jsx-runtime";function h({gatewayKey:h,environment:g,asset:_,flows:v,appearance:y,i18n:b,storage:x,dev:S,support:C,terms:w,className:T,children:E}){if(!v.deposit&&!v.withdraw)throw Error("<StridgeProvider /> requires at least one of `flows.deposit` or `flows.withdraw`.");if(!_)throw Error("<StridgeProvider /> requires `asset: { networkId, symbol }`.");let{config:D,address:O}=c(),k=d(()=>e(b??{}),[b?.locale,b?.messages]),A=f(k);A.current=k;let j=_.networkId,M=_.symbol,N=v.deposit,P=v.withdraw,F=N?.owner?.address??O??S?.userAddressOverride,I=P?.owner.address,L=d(()=>{if(!(!N||!F))return n({userAddress:F,projectKey:h,destination:{network_id:j,asset_symbol:M,to_address:N.destination.address},wagmiConfig:D,getI18n:()=>A.current,...g?{environment:g}:{},...N.minAmountUsd===void 0?{}:{minAmountUsd:N.minAmountUsd},...N.maxAmountUsd===void 0?{}:{maxAmountUsd:N.maxAmountUsd},...N.metadata?{metadata:N.metadata}:{}})},[N,F,h,g,j,M,D]),R=d(()=>l(),[]),z=N?L??R:void 0,B=d(()=>{if(!(!P||!I))return r({userAddress:I,projectKey:h,currency:{networkId:j,assetSymbol:M},wagmiConfig:D,getI18n:()=>A.current,...g?{environment:g}:{},...P.minAmountUsd===void 0?{}:{minAmountUsd:P.minAmountUsd},...P.maxAmountUsd===void 0?{}:{maxAmountUsd:P.maxAmountUsd},...P.metadata?{metadata:P.metadata}:{}})},[P,I,h,g,j,M,D]),V=d(()=>u(),[]),H=P?B??V:void 0,U=L??B,W=p(e=>U?.subscribe(e)??(()=>{}),()=>{if(L){let e=L.getSnapshot();return e.brand.status===`ready`&&e.target.status===`ready`}return B?B.getSnapshot().receiveOptions.status===`ready`:!1},()=>!1),G=F??I,K=s({gatewayKey:h,environment:g??`production`,assetChain:j,assetSymbol:M,...G?{userAddress:G}:{},...L?{depositDriver:L}:{}});return o(a(C).kind===`stridge`?K:null),m(t,{value:d(()=>({isReady:W,driver:L}),[W,L]),children:m(i,{theme:y?.theme,accent:y?.accent,radius:y?.radius,direction:y?.direction,attribution:y?.attribution,i18n:b,storage:x?.driver,storageNamespace:x?.namespace,className:T,support:C,merchantContext:K,terms:w,...z?{deposit:z}:{},...N?.methods?{depositMethods:N.methods}:{},...H?{withdraw:H}:{},children:E})})}export{h as StridgeProvider};
1
+ "use client";import{StridgeEventsContext as e}from"../events/context.js";import{createKitI18n as t}from"../shared/i18n/createKitI18n.js";import"../i18n/index.js";import{StridgeContext as n}from"./StridgeContext.js";import{createStridgeDepositDriver as r}from"../drivers/stridge/createStridgeDepositDriver.js";import{createStridgeWithdrawDriver as i}from"../drivers/stridge/createStridgeWithdrawDriver.js";import"../_internal/drivers/stridge/index.js";import{createBus as a}from"../events/bus/createBus.js";import{createFlowIdRegistry as o}from"../events/bus/flowIdRegistry.js";import{createMetadataStore as s}from"../events/bus/metadata.js";import"../events/bus/index.js";import{KitProvider as c}from"../KitProvider.js";import{resolveSupport as l}from"../shared/support/resolveSupport.js";import{useIntercomMerchantContext as u}from"../shared/support/useIntercomMerchantContext.js";import{useMerchantContext as d}from"../shared/support/useMerchantContext.js";import"../shared/support/index.js";import{useOptionalWagmi as f}from"./optionalWagmi.js";import{createStubDepositDriver as p,createStubWithdrawDriver as m}from"./stubs.js";import{useMemo as h,useRef as g,useSyncExternalStore as _}from"react";import{jsx as v}from"react/jsx-runtime";function y({gatewayKey:y,environment:b,asset:x,flows:S,appearance:C,i18n:w,storage:T,dev:E,support:D,terms:O,className:k,children:A}){if(!S.deposit&&!S.withdraw)throw Error("<StridgeProvider /> requires at least one of `flows.deposit` or `flows.withdraw`.");if(!x)throw Error("<StridgeProvider /> requires `asset: { networkId, symbol }`.");let{config:j,address:M}=f(),N=h(()=>t(w??{}),[w?.locale,w?.messages]),P=g(N);P.current=N;let F=x.networkId,I=x.symbol,L=S.deposit,R=S.withdraw,z=L?.owner?.address??M??E?.userAddressOverride,B=R?.owner.address,V=h(()=>{if(!(!L||!z))return r({userAddress:z,projectKey:y,destination:{network_id:F,asset_symbol:I,to_address:L.destination.address},wagmiConfig:j,getI18n:()=>P.current,...b?{environment:b}:{},...L.minAmountUsd===void 0?{}:{minAmountUsd:L.minAmountUsd},...L.maxAmountUsd===void 0?{}:{maxAmountUsd:L.maxAmountUsd},...L.metadata?{metadata:L.metadata}:{}})},[L,z,y,b,F,I,j]),H=h(()=>p(),[]),U=L?V??H:void 0,W=h(()=>{if(!(!R||!B))return i({userAddress:B,projectKey:y,currency:{networkId:F,assetSymbol:I},wagmiConfig:j,getI18n:()=>P.current,...b?{environment:b}:{},...R.minAmountUsd===void 0?{}:{minAmountUsd:R.minAmountUsd},...R.maxAmountUsd===void 0?{}:{maxAmountUsd:R.maxAmountUsd},...R.metadata?{metadata:R.metadata}:{}})},[R,B,y,b,F,I,j]),G=h(()=>m(),[]),K=R?W??G:void 0,q=V??W,J=_(e=>q?.subscribe(e)??(()=>{}),()=>{if(V){let e=V.getSnapshot();return e.brand.status===`ready`&&e.target.status===`ready`}return W?W.getSnapshot().receiveOptions.status===`ready`:!1},()=>!1),Y=z??B,X=d({gatewayKey:y,environment:b??`production`,assetChain:F,assetSymbol:I,...Y?{userAddress:Y}:{},...V?{depositDriver:V}:{}});u(l(D).kind===`stridge`?X:null);let Z=h(()=>({isReady:J,driver:V}),[J,V]);return v(e,{value:h(()=>({bus:a(),flowIds:o(),metadata:s()}),[]),children:v(n,{value:Z,children:v(c,{theme:C?.theme,accent:C?.accent,radius:C?.radius,direction:C?.direction,attribution:C?.attribution,i18n:w,storage:T?.driver,storageNamespace:T?.namespace,className:k,support:D,merchantContext:X,terms:O,...U?{deposit:U}:{},...L?.methods?{depositMethods:L.methods}:{},...K?{withdraw:K}:{},children:A})})})}export{y as StridgeProvider};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@stridge/kit",
3
- "version": "0.1.0-alpha.31",
3
+ "version": "0.1.0-alpha.33",
4
4
  "license": "MIT",
5
5
  "type": "module",
6
6
  "files": [
@@ -14,6 +14,10 @@
14
14
  "import": "./dist/index.js"
15
15
  },
16
16
  "./styles.css": "./dist/styles/index.css",
17
+ "./events": {
18
+ "types": "./dist/events/index.d.ts",
19
+ "import": "./dist/events/index.js"
20
+ },
17
21
  "./deposit/compound": {
18
22
  "types": "./dist/deposit/compound/index.d.ts",
19
23
  "import": "./dist/deposit/compound/index.js"
@@ -135,8 +139,8 @@
135
139
  },
136
140
  "scripts": {
137
141
  "build": "pnpm run i18n:compile && tsdown",
138
- "check:api": "api-extractor run && api-extractor run --config api-extractor.i18n.json",
139
- "check:api:update": "api-extractor run --local && api-extractor run --local --config api-extractor.i18n.json",
142
+ "check:api": "api-extractor run && api-extractor run --config api-extractor.i18n.json && api-extractor run --config api-extractor.events.json",
143
+ "check:api:update": "api-extractor run --local && api-extractor run --local --config api-extractor.i18n.json && api-extractor run --local --config api-extractor.events.json",
140
144
  "check:attw": "attw --pack . --profile esm-only --exclude-entrypoints ./styles.css",
141
145
  "check:isolation": "depcruise src",
142
146
  "check:publint": "publint",
@@ -1,36 +0,0 @@
1
- import { ReceiveChainPayload, ReceiveTokenOptionPayload } from "../driver/payloads.js";
2
- import { RequestWithdrawalQuoteInput } from "../driver/types.js";
3
- import { ReactNode } from "react";
4
- //#region src/flows/withdraw/dialog/WithdrawDialogEventsContext.d.ts
5
- /**
6
- * Form-level event payload — the parsed amount the user typed, alongside the raw input string.
7
- * `numeric` is `null` when the input is empty or unparseable; the host can treat that as "user
8
- * cleared the amount" rather than re-parse the raw string.
9
- */
10
- interface AmountChangedPayload {
11
- raw: string;
12
- numeric: number | null;
13
- }
14
- /**
15
- * Form-level callbacks reading off `WithdrawForm`'s local state. Optional — hosts wiring
16
- * `<WithdrawDialog>` configure them via the `events` prop, hosts using `<WithdrawForm>` directly
17
- * pass them via the form's `events` prop.
18
- */
19
- interface WithdrawFormEventCallbacks {
20
- /** Fires on every recipient-input change (no debounce). */
21
- onRecipientChanged?: (value: string) => void;
22
- /** Fires on every amount-input change with both the raw string and the parsed numeric value. */
23
- onAmountChanged?: (payload: AmountChangedPayload) => void;
24
- /** Fires when the user picks a different receive token in the form's receive-token dropdown. */
25
- onReceiveTokenChanged?: (token: ReceiveTokenOptionPayload) => void;
26
- /** Fires when the user picks a different receive chain in the form's receive-chain dropdown. */
27
- onReceiveChainChanged?: (chain: ReceiveChainPayload) => void;
28
- /**
29
- * Fires when the form fires a fresh `requestQuote` (after the 400ms debounce). The input
30
- * carries everything the driver received so the host can mirror the request shape into
31
- * analytics or pre-warm host-side caches.
32
- */
33
- onQuoteRequested?: (input: RequestWithdrawalQuoteInput) => void;
34
- }
35
- //#endregion
36
- export { WithdrawFormEventCallbacks };
@@ -1 +0,0 @@
1
- "use client";import{createContext as e,use as t}from"react";import{jsx as n}from"react/jsx-runtime";const r=e({});r.displayName=`WithdrawDialogEventsContext`;function i({events:e,children:t}){return n(r,{value:e,children:t})}function a(){return t(r)}export{i as WithdrawDialogEventsProvider,a as useWithdrawDialogEvents};