@mintmoney/react 0.1.0-alpha-1

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 (104) hide show
  1. package/LICENSE +21 -0
  2. package/dist/css/styles.css +119 -0
  3. package/dist/esm/components/buttons/index.js +25 -0
  4. package/dist/esm/components/buttons/index.js.map +1 -0
  5. package/dist/esm/components/icons/close.js +20 -0
  6. package/dist/esm/components/icons/close.js.map +1 -0
  7. package/dist/esm/components/icons/index.js +2 -0
  8. package/dist/esm/components/icons/index.js.map +1 -0
  9. package/dist/esm/components/index.js +4 -0
  10. package/dist/esm/components/index.js.map +1 -0
  11. package/dist/esm/components/modals/index.js +4 -0
  12. package/dist/esm/components/modals/index.js.map +1 -0
  13. package/dist/esm/components/modals/modal-with-views.js +29 -0
  14. package/dist/esm/components/modals/modal-with-views.js.map +1 -0
  15. package/dist/esm/components/modals/modal.js +14 -0
  16. package/dist/esm/components/modals/modal.js.map +1 -0
  17. package/dist/esm/components/modals/use-modal-with-views.js +29 -0
  18. package/dist/esm/components/modals/use-modal-with-views.js.map +1 -0
  19. package/dist/esm/config.js +10 -0
  20. package/dist/esm/config.js.map +1 -0
  21. package/dist/esm/context.js +15 -0
  22. package/dist/esm/context.js.map +1 -0
  23. package/dist/esm/exports/components.js +2 -0
  24. package/dist/esm/exports/components.js.map +1 -0
  25. package/dist/esm/exports/config.js +3 -0
  26. package/dist/esm/exports/config.js.map +1 -0
  27. package/dist/esm/exports/hooks.js +2 -0
  28. package/dist/esm/exports/hooks.js.map +1 -0
  29. package/dist/esm/exports/index.js +4 -0
  30. package/dist/esm/exports/index.js.map +1 -0
  31. package/dist/esm/exports/themes.js +2 -0
  32. package/dist/esm/exports/themes.js.map +1 -0
  33. package/dist/esm/hooks/index.js +3 -0
  34. package/dist/esm/hooks/index.js.map +1 -0
  35. package/dist/esm/hooks/useCheckout.js +36 -0
  36. package/dist/esm/hooks/useCheckout.js.map +1 -0
  37. package/dist/esm/hooks/usePayment.js +31 -0
  38. package/dist/esm/hooks/usePayment.js.map +1 -0
  39. package/dist/esm/index.js +2 -0
  40. package/dist/esm/index.js.map +1 -0
  41. package/dist/esm/themes/default.js +45 -0
  42. package/dist/esm/themes/default.js.map +1 -0
  43. package/dist/esm/themes/index.js +3 -0
  44. package/dist/esm/themes/index.js.map +1 -0
  45. package/dist/esm/themes/types.js +2 -0
  46. package/dist/esm/themes/types.js.map +1 -0
  47. package/dist/types/components/buttons/index.d.ts +25 -0
  48. package/dist/types/components/buttons/index.d.ts.map +1 -0
  49. package/dist/types/components/icons/close.d.ts +6 -0
  50. package/dist/types/components/icons/close.d.ts.map +1 -0
  51. package/dist/types/components/icons/index.d.ts +2 -0
  52. package/dist/types/components/icons/index.d.ts.map +1 -0
  53. package/dist/types/components/index.d.ts +4 -0
  54. package/dist/types/components/index.d.ts.map +1 -0
  55. package/dist/types/components/modals/index.d.ts +4 -0
  56. package/dist/types/components/modals/index.d.ts.map +1 -0
  57. package/dist/types/components/modals/modal-with-views.d.ts +20 -0
  58. package/dist/types/components/modals/modal-with-views.d.ts.map +1 -0
  59. package/dist/types/components/modals/modal.d.ts +11 -0
  60. package/dist/types/components/modals/modal.d.ts.map +1 -0
  61. package/dist/types/components/modals/use-modal-with-views.d.ts +14 -0
  62. package/dist/types/components/modals/use-modal-with-views.d.ts.map +1 -0
  63. package/dist/types/config.d.ts +13 -0
  64. package/dist/types/config.d.ts.map +1 -0
  65. package/dist/types/context.d.ts +9 -0
  66. package/dist/types/context.d.ts.map +1 -0
  67. package/dist/types/exports/components.d.ts +2 -0
  68. package/dist/types/exports/components.d.ts.map +1 -0
  69. package/dist/types/exports/config.d.ts +3 -0
  70. package/dist/types/exports/config.d.ts.map +1 -0
  71. package/dist/types/exports/hooks.d.ts +2 -0
  72. package/dist/types/exports/hooks.d.ts.map +1 -0
  73. package/dist/types/exports/index.d.ts +6 -0
  74. package/dist/types/exports/index.d.ts.map +1 -0
  75. package/dist/types/exports/themes.d.ts +2 -0
  76. package/dist/types/exports/themes.d.ts.map +1 -0
  77. package/dist/types/hooks/index.d.ts +3 -0
  78. package/dist/types/hooks/index.d.ts.map +1 -0
  79. package/dist/types/hooks/useCheckout.d.ts +9 -0
  80. package/dist/types/hooks/useCheckout.d.ts.map +1 -0
  81. package/dist/types/hooks/usePayment.d.ts +9 -0
  82. package/dist/types/hooks/usePayment.d.ts.map +1 -0
  83. package/dist/types/index.d.ts +2 -0
  84. package/dist/types/index.d.ts.map +1 -0
  85. package/dist/types/themes/default.d.ts +3 -0
  86. package/dist/types/themes/default.d.ts.map +1 -0
  87. package/dist/types/themes/index.d.ts +3 -0
  88. package/dist/types/themes/index.d.ts.map +1 -0
  89. package/dist/types/themes/types.d.ts +24 -0
  90. package/dist/types/themes/types.d.ts.map +1 -0
  91. package/package.json +96 -0
  92. package/src/components/index.ts +3 -0
  93. package/src/components/modals/index.ts +3 -0
  94. package/src/config.ts +27 -0
  95. package/src/exports/components.ts +1 -0
  96. package/src/exports/config.ts +2 -0
  97. package/src/exports/hooks.ts +1 -0
  98. package/src/exports/index.ts +9 -0
  99. package/src/exports/themes.ts +1 -0
  100. package/src/hooks/index.ts +2 -0
  101. package/src/hooks/useCheckout.ts +38 -0
  102. package/src/hooks/usePayment.ts +37 -0
  103. package/src/index.ts +0 -0
  104. package/src/themes/types.ts +26 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/modals/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,uBAAuB,CAAC;AACtC,cAAc,2BAA2B,CAAC"}
@@ -0,0 +1,20 @@
1
+ import React from "react";
2
+ export interface ModalWithViewProps {
3
+ isOpen: boolean;
4
+ className?: string;
5
+ onOpenChange?: (open: boolean) => void;
6
+ initialView: string;
7
+ views: Record<string, {
8
+ title: string;
9
+ header?: (viewProps: Record<string, unknown>) => React.ReactNode;
10
+ content: (viewProps: Record<string, unknown>) => React.ReactNode;
11
+ footer?: (viewProps: Record<string, unknown>) => React.ReactNode;
12
+ navigateButtonPosition?: "left" | "center" | "right";
13
+ navigateComponent?: React.ReactNode;
14
+ navigateShouldGoToView?: string;
15
+ }>;
16
+ defaultNavigateButtonPosition?: "left" | "center" | "right";
17
+ defaultNavigateButtonComponent?: React.ReactNode;
18
+ }
19
+ export declare function ModalWithView(props: ModalWithViewProps): import("react/jsx-runtime").JSX.Element;
20
+ //# sourceMappingURL=modal-with-views.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"modal-with-views.d.ts","sourceRoot":"","sources":["../../../../src/components/modals/modal-with-views.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAoB,MAAM,OAAO,CAAC;AASzC,MAAM,WAAW,kBAAkB;IACjC,MAAM,EAAE,OAAO,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;IACvC,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,MAAM,CACX,MAAM,EACN;QACE,KAAK,EAAE,MAAM,CAAC;QACd,MAAM,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,KAAK,CAAC,SAAS,CAAC;QACjE,OAAO,EAAE,CAAC,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,KAAK,CAAC,SAAS,CAAC;QACjE,MAAM,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,KAAK,CAAC,SAAS,CAAC;QACjE,sBAAsB,CAAC,EAAE,MAAM,GAAG,QAAQ,GAAG,OAAO,CAAC;QACrD,iBAAiB,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;QACpC,sBAAsB,CAAC,EAAE,MAAM,CAAC;KACjC,CACF,CAAC;IACF,6BAA6B,CAAC,EAAE,MAAM,GAAG,QAAQ,GAAG,OAAO,CAAC;IAC5D,8BAA8B,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CAClD;AA6DD,wBAAgB,aAAa,CAAC,KAAK,EAAE,kBAAkB,2CAMtD"}
@@ -0,0 +1,11 @@
1
+ export interface ModalProps {
2
+ className?: string;
3
+ open: boolean;
4
+ onOpenChange?: (open: boolean) => void;
5
+ navBarComponent?: React.ReactNode;
6
+ disableCloseOnInteractOutside?: boolean;
7
+ children: React.ReactNode;
8
+ title: string;
9
+ }
10
+ export declare const Modal: ({ className, open, onOpenChange, navBarComponent, disableCloseOnInteractOutside, title, children, }: ModalProps) => import("react/jsx-runtime").JSX.Element;
11
+ //# sourceMappingURL=modal.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"modal.d.ts","sourceRoot":"","sources":["../../../../src/components/modals/modal.tsx"],"names":[],"mappings":"AAIA,MAAM,WAAW,UAAU;IACzB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,OAAO,CAAC;IACd,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;IACvC,eAAe,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAClC,6BAA6B,CAAC,EAAE,OAAO,CAAC;IACxC,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,KAAK,EAAE,MAAM,CAAC;CACf;AAED,eAAO,MAAM,KAAK,wGAQf,UAAU,4CAwCZ,CAAC"}
@@ -0,0 +1,14 @@
1
+ import React from "react";
2
+ import { ModalWithViewProps } from "./modal-with-views.jsx";
3
+ type ModalContext = {
4
+ currentView: string;
5
+ goToView: (view: string, props?: Record<string, unknown>) => void;
6
+ viewProps: Record<string, unknown>;
7
+ };
8
+ declare const ModalContext: React.Context<ModalContext | undefined>;
9
+ export declare const ModalWithViewProvider: ({ children, initialView, }: Pick<ModalWithViewProps, "initialView"> & {
10
+ children: React.ReactNode;
11
+ }) => import("react/jsx-runtime").JSX.Element;
12
+ export declare const useModalWithView: () => ModalContext;
13
+ export {};
14
+ //# sourceMappingURL=use-modal-with-views.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-modal-with-views.d.ts","sourceRoot":"","sources":["../../../../src/components/modals/use-modal-with-views.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAyD,MAAM,OAAO,CAAC;AAE9E,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAE5D,KAAK,YAAY,GAAG;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI,CAAC;IAClE,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACpC,CAAC;AAEF,QAAA,MAAM,YAAY,yCAIhB,CAAC;AAEH,eAAO,MAAM,qBAAqB,+BAG/B,IAAI,CAAC,kBAAkB,EAAE,aAAa,CAAC,GAAG;IAC3C,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;CAC3B,4CAuBA,CAAC;AAEF,eAAO,MAAM,gBAAgB,QAAO,YAEnC,CAAC"}
@@ -0,0 +1,13 @@
1
+ import { ThemeConfig } from "./themes/types.js";
2
+ export type Config = {
3
+ publicKey: string;
4
+ apiUrl: string;
5
+ theme: ThemeConfig;
6
+ };
7
+ type ConfigOptions = {
8
+ apiUrl?: string;
9
+ theme: Partial<ThemeConfig>;
10
+ };
11
+ export declare const createConfig: (publicKey: string, options?: ConfigOptions) => Config;
12
+ export {};
13
+ //# sourceMappingURL=config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/config.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAGhD,MAAM,MAAM,MAAM,GAAG;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,WAAW,CAAC;CACpB,CAAC;AAEF,KAAK,aAAa,GAAG;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,OAAO,CAAC,WAAW,CAAC,CAAC;CAC7B,CAAC;AAIF,eAAO,MAAM,YAAY,cACZ,MAAM,YACP,aAAa,KACtB,MAKF,CAAC"}
@@ -0,0 +1,9 @@
1
+ import React from "react";
2
+ import type { Config } from "./config.js";
3
+ export type MintMoneyProviderProps = {
4
+ config: Config;
5
+ children: React.ReactNode;
6
+ };
7
+ export declare function MintMoneyProvider({ config, children, }: MintMoneyProviderProps): import("react/jsx-runtime").JSX.Element;
8
+ export declare function useMintMoneyConfig(): Config;
9
+ //# sourceMappingURL=context.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../src/context.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAoC,MAAM,OAAO,CAAC;AACzD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAI1C,MAAM,MAAM,sBAAsB,GAAG;IACnC,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;CAC3B,CAAC;AAEF,wBAAgB,iBAAiB,CAAC,EAChC,MAAM,EACN,QAAQ,GACT,EAAE,sBAAsB,2CAMxB;AAED,wBAAgB,kBAAkB,WAQjC"}
@@ -0,0 +1,2 @@
1
+ export * from "../components/index.js";
2
+ //# sourceMappingURL=components.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"components.d.ts","sourceRoot":"","sources":["../../../src/exports/components.ts"],"names":[],"mappings":"AAAA,cAAc,wBAAwB,CAAC"}
@@ -0,0 +1,3 @@
1
+ export { type Config, createConfig } from "../config.js";
2
+ export { useMintMoneyConfig, MintMoneyProvider } from "../context.js";
3
+ //# sourceMappingURL=config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../../src/exports/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,MAAM,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AACzD,OAAO,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC"}
@@ -0,0 +1,2 @@
1
+ export { useCheckout, usePayments } from "../hooks/index.js";
2
+ //# sourceMappingURL=hooks.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hooks.d.ts","sourceRoot":"","sources":["../../../src/exports/hooks.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC"}
@@ -0,0 +1,6 @@
1
+ export { ThemeConfig } from "../themes/index.jsx";
2
+ export { type Config, createConfig } from "../config.js";
3
+ export { useMintMoneyConfig, MintMoneyProvider } from "../context.js";
4
+ export { Payment } from "@mintmoney/core/payments";
5
+ export * from "../components/index.js";
6
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/exports/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAElD,OAAO,EAAE,KAAK,MAAM,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAEzD,OAAO,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAEtE,OAAO,EAAE,OAAO,EAAE,MAAM,0BAA0B,CAAC;AAEnD,cAAc,wBAAwB,CAAC"}
@@ -0,0 +1,2 @@
1
+ export * from "../themes/index.js";
2
+ //# sourceMappingURL=themes.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"themes.d.ts","sourceRoot":"","sources":["../../../src/exports/themes.ts"],"names":[],"mappings":"AAAA,cAAc,oBAAoB,CAAC"}
@@ -0,0 +1,3 @@
1
+ export { useCheckout } from "./useCheckout.js";
2
+ export { usePayments } from "./usePayment.js";
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/hooks/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC"}
@@ -0,0 +1,9 @@
1
+ import { Checkout } from "@mintmoney/core/checkouts";
2
+ export declare function useCheckout(checkoutId: string): {
3
+ checkout: Checkout | null;
4
+ loading: boolean;
5
+ error: string | null;
6
+ refresh: () => Promise<void>;
7
+ isReady: boolean;
8
+ };
9
+ //# sourceMappingURL=useCheckout.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useCheckout.d.ts","sourceRoot":"","sources":["../../../src/hooks/useCheckout.ts"],"names":[],"mappings":"AAEA,OAAO,EAAmB,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AAEtE,wBAAgB,WAAW,CAAC,UAAU,EAAE,MAAM;;;;;;EAiC7C"}
@@ -0,0 +1,9 @@
1
+ import { Payment, CreatePaymentParams } from "@mintmoney/core/payments";
2
+ export declare function usePayments(): {
3
+ payment: Payment | null;
4
+ loading: boolean;
5
+ error: string | null;
6
+ createPayment: (params: CreatePaymentParams) => Promise<Payment | null>;
7
+ isReady: boolean;
8
+ };
9
+ //# sourceMappingURL=usePayment.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"usePayment.d.ts","sourceRoot":"","sources":["../../../src/hooks/usePayment.ts"],"names":[],"mappings":"AACA,OAAO,EAEL,OAAO,EACP,mBAAmB,EACpB,MAAM,0BAA0B,CAAC;AAElC,wBAAgB,WAAW;;;;4BAKkB,mBAAmB;;EAwB/D"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":""}
@@ -0,0 +1,3 @@
1
+ import { ThemeConfig } from "./types.js";
2
+ export declare const defaultTheme: ThemeConfig;
3
+ //# sourceMappingURL=default.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"default.d.ts","sourceRoot":"","sources":["../../../src/themes/default.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAEzC,eAAO,MAAM,YAAY,EA2CpB,WAAW,CAAC"}
@@ -0,0 +1,3 @@
1
+ export { defaultTheme } from "./default.js";
2
+ export * from "./types.js";
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/themes/index.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAC5C,cAAc,YAAY,CAAC"}
@@ -0,0 +1,24 @@
1
+ export type BtnThemeOptions = {
2
+ backgroundColor: string;
3
+ borderColor: string;
4
+ textColor: string;
5
+ };
6
+ export type BtnOptions = {
7
+ default: BtnThemeOptions;
8
+ hover: BtnThemeOptions;
9
+ disabled: BtnThemeOptions;
10
+ };
11
+ export type SvgIconOptions = {
12
+ strokeColor: string;
13
+ color: string;
14
+ };
15
+ export type ThemeConfig = {
16
+ btn: {
17
+ primary: BtnOptions;
18
+ back: BtnOptions;
19
+ };
20
+ icon: {
21
+ close: SvgIconOptions;
22
+ };
23
+ };
24
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/themes/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,eAAe,GAAG;IAC5B,eAAe,EAAE,MAAM,CAAC;IACxB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF,MAAM,MAAM,UAAU,GAAG;IACvB,OAAO,EAAE,eAAe,CAAC;IACzB,KAAK,EAAE,eAAe,CAAC;IACvB,QAAQ,EAAE,eAAe,CAAC;CAC3B,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG;IAC3B,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC;CACf,CAAC;AAEF,MAAM,MAAM,WAAW,GAAG;IACxB,GAAG,EAAE;QACH,OAAO,EAAE,UAAU,CAAC;QACpB,IAAI,EAAE,UAAU,CAAC;KAClB,CAAC;IACF,IAAI,EAAE;QACJ,KAAK,EAAE,cAAc,CAAC;KACvB,CAAC;CACH,CAAC"}
package/package.json ADDED
@@ -0,0 +1,96 @@
1
+ {
2
+ "name": "@mintmoney/react",
3
+ "description": "React SDK library for the mintmoney playments network",
4
+ "version": "0.1.0-alpha-1",
5
+ "license": "MIT",
6
+ "repository": {
7
+ "type": "git",
8
+ "url": "https://github.com/getmintmoney/mintmoney-js.git",
9
+ "directory": "packages/react"
10
+ },
11
+ "files": [
12
+ "dist/**",
13
+ "!dist/**/*.tsbuildinfo",
14
+ "src/**/*.ts",
15
+ "!src/**/*.test.ts",
16
+ "!src/**/*.test-d.ts",
17
+ "/ui"
18
+ ],
19
+ "sideEffects": false,
20
+ "type": "module",
21
+ "main": "./dist/esm/exports/index.js",
22
+ "types": "./dist/types/exports/index.d.ts",
23
+ "typings": "./dist/types/exports/index.d.ts",
24
+ "exports": {
25
+ ".": {
26
+ "types": "./dist/types/exports/index.d.ts",
27
+ "default": "./dist/esm/exports/index.js"
28
+ },
29
+ "./hooks": {
30
+ "types": "./dist/types/exports/hooks.d.ts",
31
+ "default": "./dist/esm/exports/hooks.js"
32
+ },
33
+ "./config": {
34
+ "types": "./dist/types/exports/config.d.ts",
35
+ "default": "./dist/esm/exports/config.js"
36
+ },
37
+ "./components": {
38
+ "types": "./dist/types/exports/components.d.ts",
39
+ "default": "./dist/esm/exports/components.js"
40
+ },
41
+ "./css/styles.css": "./dist/css/styles.css",
42
+ "./package.json": "./package.json"
43
+ },
44
+ "typesVersions": {
45
+ "*": {
46
+ "hooks": [
47
+ "./dist/types/exports/hooks.d.ts"
48
+ ]
49
+ }
50
+ },
51
+ "peerDependencies": {
52
+ "react": ">=18 <20",
53
+ "react-dom": ">=18 <20",
54
+ "typescript": ">=5.0.4"
55
+ },
56
+ "peerDependenciesMeta": {
57
+ "typescript": {
58
+ "optional": true
59
+ }
60
+ },
61
+ "dependencies": {
62
+ "@radix-ui/react-dialog": "^1.1.6",
63
+ "@radix-ui/react-visually-hidden": "^1.1.2",
64
+ "@types/lodash.merge": "^4.6.9",
65
+ "lodash.merge": "^4.6.2",
66
+ "react": "18.3.1",
67
+ "react-dom": "18.3.1",
68
+ "styled-components": "^6.1.15",
69
+ "@mintmoney/core": "0.1.0-alpha-1"
70
+ },
71
+ "devDependencies": {
72
+ "@types/react": "18.3.1",
73
+ "@types/react-dom": "18.3.0",
74
+ "postcss": "^8.5.1",
75
+ "postcss-cli": "^11.0.0"
76
+ },
77
+ "keywords": [
78
+ "payments",
79
+ "react",
80
+ "hooks",
81
+ "eth",
82
+ "ethereum",
83
+ "dapps",
84
+ "wallet",
85
+ "web3"
86
+ ],
87
+ "scripts": {
88
+ "build": "pnpm run clean && pnpm run build:css && pnpm run build:esm+types",
89
+ "build:watch": "pnpm run clean && pnpm run build:css && tsc --project tsconfig.build.json --outDir ./dist/esm --declaration --declarationMap --declarationDir ./dist/types --watch",
90
+ "build:css": "postcss src/css/styles.css -o dist/css/styles.css",
91
+ "build:esm+types": "tsc --project tsconfig.build.json --outDir ./dist/esm --declaration --declarationMap --declarationDir ./dist/types",
92
+ "check:types": "tsc --noEmit",
93
+ "clean": "rm -rf dist tsconfig.tsbuildinfo components",
94
+ "test:build": "publint --strict && attw --pack --ignore-rules cjs-resolves-to-esm"
95
+ }
96
+ }
@@ -0,0 +1,3 @@
1
+ export * from "./modals/index.js";
2
+ export * from "./icons/index.js";
3
+ export * from "./buttons/index.js";
@@ -0,0 +1,3 @@
1
+ export * from "./modal.js";
2
+ export * from "./modal-with-views.js";
3
+ export * from "./use-modal-with-views.js";
package/src/config.ts ADDED
@@ -0,0 +1,27 @@
1
+ import merge from "lodash.merge";
2
+
3
+ import { ThemeConfig } from "./themes/types.js";
4
+ import { defaultTheme } from "./themes/default.js";
5
+
6
+ export type Config = {
7
+ publicKey: string;
8
+ apiUrl: string;
9
+ theme: ThemeConfig;
10
+ };
11
+
12
+ type ConfigOptions = {
13
+ apiUrl?: string;
14
+ theme: Partial<ThemeConfig>;
15
+ };
16
+
17
+ const _MINT_API = "https://api.getmint.money";
18
+
19
+ export const createConfig = (
20
+ publicKey: string,
21
+ options?: ConfigOptions,
22
+ ): Config => {
23
+ return {
24
+ publicKey: publicKey,
25
+ ...merge({ apiUrl: _MINT_API, theme: defaultTheme }, options),
26
+ };
27
+ };
@@ -0,0 +1 @@
1
+ export * from "../components/index.js";
@@ -0,0 +1,2 @@
1
+ export { type Config, createConfig } from "../config.js";
2
+ export { useMintMoneyConfig, MintMoneyProvider } from "../context.js";
@@ -0,0 +1 @@
1
+ export { useCheckout, usePayments } from "../hooks/index.js";
@@ -0,0 +1,9 @@
1
+ export { ThemeConfig } from "../themes/index.jsx";
2
+
3
+ export { type Config, createConfig } from "../config.js";
4
+
5
+ export { useMintMoneyConfig, MintMoneyProvider } from "../context.js";
6
+
7
+ export { Payment } from "@mintmoney/core/payments";
8
+
9
+ export * from "../components/index.js";
@@ -0,0 +1 @@
1
+ export * from "../themes/index.js";
@@ -0,0 +1,2 @@
1
+ export { useCheckout } from "./useCheckout.js";
2
+ export { usePayments } from "./usePayment.js";
@@ -0,0 +1,38 @@
1
+ import { useEffect, useState } from "react";
2
+ import { useMintMoneyConfig } from "@mintmoney/react";
3
+ import { getCheckoutById, Checkout } from "@mintmoney/core/checkouts";
4
+
5
+ export function useCheckout(checkoutId: string) {
6
+ const config = useMintMoneyConfig();
7
+ const [checkout, setCheckout] = useState<Checkout | null>(null);
8
+ const [loading, setLoading] = useState(true);
9
+ const [error, setError] = useState<string | null>(null);
10
+
11
+ useEffect(() => {
12
+ async function fetchCheckout() {
13
+ try {
14
+ setLoading(true);
15
+ setError(null);
16
+
17
+ const checkoutData = await getCheckoutById(checkoutId);
18
+ setCheckout(checkoutData);
19
+ } catch (err) {
20
+ setError("Failed to fetch checkout details");
21
+ } finally {
22
+ setLoading(false);
23
+ }
24
+ }
25
+
26
+ if (checkoutId) {
27
+ fetchCheckout();
28
+ }
29
+ }, [config.apiUrl, checkoutId]);
30
+
31
+ return {
32
+ checkout,
33
+ loading,
34
+ error,
35
+ refresh: () => getCheckoutById(checkoutId).then(setCheckout),
36
+ isReady: checkout !== null && !loading && !error,
37
+ };
38
+ }
@@ -0,0 +1,37 @@
1
+ import { useState } from "react";
2
+ import {
3
+ createPayment,
4
+ Payment,
5
+ CreatePaymentParams,
6
+ } from "@mintmoney/core/payments";
7
+
8
+ export function usePayments() {
9
+ const [payment, setPayment] = useState<Payment | null>(null);
10
+ const [loading, setLoading] = useState(false);
11
+ const [error, setError] = useState<string | null>(null);
12
+
13
+ async function handleCreatePayment(params: CreatePaymentParams) {
14
+ try {
15
+ setLoading(true);
16
+ setError(null);
17
+
18
+ const newPayment = await createPayment({ ...params });
19
+ setPayment(newPayment);
20
+
21
+ return newPayment;
22
+ } catch (err) {
23
+ setError("Failed to create payment");
24
+ return null;
25
+ } finally {
26
+ setLoading(false);
27
+ }
28
+ }
29
+
30
+ return {
31
+ payment,
32
+ loading,
33
+ error,
34
+ createPayment: handleCreatePayment,
35
+ isReady: payment !== null && !loading && !error,
36
+ };
37
+ }
package/src/index.ts ADDED
File without changes
@@ -0,0 +1,26 @@
1
+ export type BtnThemeOptions = {
2
+ backgroundColor: string;
3
+ borderColor: string;
4
+ textColor: string;
5
+ };
6
+
7
+ export type BtnOptions = {
8
+ default: BtnThemeOptions;
9
+ hover: BtnThemeOptions;
10
+ disabled: BtnThemeOptions;
11
+ };
12
+
13
+ export type SvgIconOptions = {
14
+ strokeColor: string;
15
+ color: string;
16
+ };
17
+
18
+ export type ThemeConfig = {
19
+ btn: {
20
+ primary: BtnOptions;
21
+ back: BtnOptions;
22
+ };
23
+ icon: {
24
+ close: SvgIconOptions;
25
+ };
26
+ };