@mantle-rwa/react 0.1.0

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/cjs/components/InvestorDashboard/index.js +156 -0
  2. package/dist/cjs/components/InvestorDashboard/index.js.map +1 -0
  3. package/dist/cjs/components/KYCFlow/index.js +231 -0
  4. package/dist/cjs/components/KYCFlow/index.js.map +1 -0
  5. package/dist/cjs/components/TokenMintForm/index.js +286 -0
  6. package/dist/cjs/components/TokenMintForm/index.js.map +1 -0
  7. package/dist/cjs/components/YieldCalculator/index.js +245 -0
  8. package/dist/cjs/components/YieldCalculator/index.js.map +1 -0
  9. package/dist/cjs/components/index.js +15 -0
  10. package/dist/cjs/components/index.js.map +1 -0
  11. package/dist/cjs/hooks/index.js +9 -0
  12. package/dist/cjs/hooks/index.js.map +1 -0
  13. package/dist/cjs/hooks/useRWA.js +54 -0
  14. package/dist/cjs/hooks/useRWA.js.map +1 -0
  15. package/dist/cjs/index.js +20 -0
  16. package/dist/cjs/index.js.map +1 -0
  17. package/dist/cjs/types/index.js +10 -0
  18. package/dist/cjs/types/index.js.map +1 -0
  19. package/dist/esm/components/InvestorDashboard/index.js +153 -0
  20. package/dist/esm/components/InvestorDashboard/index.js.map +1 -0
  21. package/dist/esm/components/KYCFlow/index.js +228 -0
  22. package/dist/esm/components/KYCFlow/index.js.map +1 -0
  23. package/dist/esm/components/TokenMintForm/index.js +279 -0
  24. package/dist/esm/components/TokenMintForm/index.js.map +1 -0
  25. package/dist/esm/components/YieldCalculator/index.js +236 -0
  26. package/dist/esm/components/YieldCalculator/index.js.map +1 -0
  27. package/dist/esm/components/index.js +8 -0
  28. package/dist/esm/components/index.js.map +1 -0
  29. package/dist/esm/hooks/index.js +5 -0
  30. package/dist/esm/hooks/index.js.map +1 -0
  31. package/dist/esm/hooks/useRWA.js +51 -0
  32. package/dist/esm/hooks/useRWA.js.map +1 -0
  33. package/dist/esm/index.js +12 -0
  34. package/dist/esm/index.js.map +1 -0
  35. package/dist/esm/types/index.js +6 -0
  36. package/dist/esm/types/index.js.map +1 -0
  37. package/dist/styles.css +1 -0
  38. package/dist/types/components/InvestorDashboard/index.d.ts +25 -0
  39. package/dist/types/components/InvestorDashboard/index.d.ts.map +1 -0
  40. package/dist/types/components/KYCFlow/index.d.ts +25 -0
  41. package/dist/types/components/KYCFlow/index.d.ts.map +1 -0
  42. package/dist/types/components/TokenMintForm/index.d.ts +60 -0
  43. package/dist/types/components/TokenMintForm/index.d.ts.map +1 -0
  44. package/dist/types/components/YieldCalculator/index.d.ts +59 -0
  45. package/dist/types/components/YieldCalculator/index.d.ts.map +1 -0
  46. package/dist/types/components/index.d.ts +8 -0
  47. package/dist/types/components/index.d.ts.map +1 -0
  48. package/dist/types/hooks/index.d.ts +5 -0
  49. package/dist/types/hooks/index.d.ts.map +1 -0
  50. package/dist/types/hooks/useRWA.d.ts +22 -0
  51. package/dist/types/hooks/useRWA.d.ts.map +1 -0
  52. package/dist/types/index.d.ts +11 -0
  53. package/dist/types/index.d.ts.map +1 -0
  54. package/dist/types/types/index.d.ts +177 -0
  55. package/dist/types/types/index.d.ts.map +1 -0
  56. package/package.json +66 -0
  57. package/src/components/InvestorDashboard/index.tsx +359 -0
  58. package/src/components/KYCFlow/index.tsx +434 -0
  59. package/src/components/TokenMintForm/index.tsx +590 -0
  60. package/src/components/YieldCalculator/index.tsx +541 -0
  61. package/src/components/index.ts +8 -0
  62. package/src/hooks/index.ts +5 -0
  63. package/src/hooks/useRWA.ts +70 -0
  64. package/src/index.ts +32 -0
  65. package/src/styles/index.css +197 -0
  66. package/src/types/index.ts +193 -0
@@ -0,0 +1,51 @@
1
+ /**
2
+ * useRWA hook for accessing RWA SDK functionality in React components
3
+ */
4
+ import { useState, useEffect } from 'react';
5
+ /**
6
+ * Hook for accessing RWA SDK functionality
7
+ * Provides connection status and SDK client access
8
+ */
9
+ export function useRWA() {
10
+ const [isInitialized, setIsInitialized] = useState(false);
11
+ const [chainId, setChainId] = useState(undefined);
12
+ const [address, setAddress] = useState(undefined);
13
+ const [isConnected, setIsConnected] = useState(false);
14
+ const [error, setError] = useState(null);
15
+ useEffect(() => {
16
+ // Initialize SDK client
17
+ const initializeSDK = async () => {
18
+ try {
19
+ // Check if window.ethereum is available (browser wallet)
20
+ if (typeof window !== 'undefined' && window.ethereum) {
21
+ const accounts = await window.ethereum.request?.({
22
+ method: 'eth_accounts',
23
+ });
24
+ if (accounts && accounts.length > 0) {
25
+ setAddress(accounts[0]);
26
+ setIsConnected(true);
27
+ }
28
+ const chainIdHex = await window.ethereum.request?.({
29
+ method: 'eth_chainId',
30
+ });
31
+ if (chainIdHex) {
32
+ setChainId(parseInt(chainIdHex, 16));
33
+ }
34
+ }
35
+ setIsInitialized(true);
36
+ }
37
+ catch (err) {
38
+ setError(err instanceof Error ? err : new Error('Failed to initialize RWA SDK'));
39
+ }
40
+ };
41
+ initializeSDK();
42
+ }, []);
43
+ return {
44
+ isInitialized,
45
+ chainId,
46
+ address,
47
+ isConnected,
48
+ error,
49
+ };
50
+ }
51
+ //# sourceMappingURL=useRWA.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useRWA.js","sourceRoot":"","sources":["../../../src/hooks/useRWA.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAG5C;;;GAGG;AACH,MAAM,UAAU,MAAM;IAClB,MAAM,CAAC,aAAa,EAAE,gBAAgB,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAC1D,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,QAAQ,CAAqB,SAAS,CAAC,CAAC;IACtE,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,QAAQ,CAAqB,SAAS,CAAC,CAAC;IACtE,MAAM,CAAC,WAAW,EAAE,cAAc,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IACtD,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAe,IAAI,CAAC,CAAC;IAEvD,SAAS,CAAC,GAAG,EAAE;QACX,wBAAwB;QACxB,MAAM,aAAa,GAAG,KAAK,IAAI,EAAE;YAC7B,IAAI,CAAC;gBACD,yDAAyD;gBACzD,IAAI,OAAO,MAAM,KAAK,WAAW,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;oBACnD,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC;wBAC7C,MAAM,EAAE,cAAc;qBACzB,CAAyB,CAAC;oBAE3B,IAAI,QAAQ,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;wBAClC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;wBACxB,cAAc,CAAC,IAAI,CAAC,CAAC;oBACzB,CAAC;oBAED,MAAM,UAAU,GAAG,MAAM,MAAM,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC;wBAC/C,MAAM,EAAE,aAAa;qBACxB,CAAuB,CAAC;oBAEzB,IAAI,UAAU,EAAE,CAAC;wBACb,UAAU,CAAC,QAAQ,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC,CAAC;oBACzC,CAAC;gBACL,CAAC;gBAED,gBAAgB,CAAC,IAAI,CAAC,CAAC;YAC3B,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACX,QAAQ,CAAC,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAC,CAAC;YACrF,CAAC;QACL,CAAC,CAAC;QAEF,aAAa,EAAE,CAAC;IACpB,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,OAAO;QACH,aAAa;QACb,OAAO;QACP,OAAO;QACP,WAAW;QACX,KAAK;KACR,CAAC;AACN,CAAC"}
@@ -0,0 +1,12 @@
1
+ /**
2
+ * @mantle-rwa/react
3
+ * React components for Real-World Asset tokenization on Mantle Network
4
+ */
5
+ // Components
6
+ export { KYCFlow } from './components/KYCFlow';
7
+ export { InvestorDashboard } from './components/InvestorDashboard';
8
+ export { TokenMintForm } from './components/TokenMintForm';
9
+ export { YieldCalculator } from './components/YieldCalculator';
10
+ // Hooks
11
+ export { useRWA } from './hooks/useRWA';
12
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,aAAa;AACb,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAC/C,OAAO,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAC;AACnE,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAC3D,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAE/D,QAAQ;AACR,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Type definitions for @mantle-rwa/react components
3
+ */
4
+ // Re-export SDK types that are commonly used
5
+ export { AccreditationTier } from '@mantle-rwa/sdk';
6
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/types/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,6CAA6C;AAC7C,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC"}
@@ -0,0 +1 @@
1
+ *,:after,:before{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(59,130,246,.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(59,130,246,.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }/*! tailwindcss v3.4.19 | MIT License | https://tailwindcss.com*/*,:after,:before{box-sizing:border-box;border:0 solid #e5e7eb}:after,:before{--tw-content:""}:host,html{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:ui-sans-serif,system-ui,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{margin:0;line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,pre,samp{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dd,dl,figure,h1,h2,h3,h4,h5,h6,hr,p,pre{margin:0}fieldset{margin:0}fieldset,legend{padding:0}menu,ol,ul{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}[role=button],button{cursor:pointer}:disabled{cursor:default}audio,canvas,embed,iframe,img,object,svg,video{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]:where(:not([hidden=until-found])){display:none}.container{width:100%}@media (min-width:640px){.container{max-width:640px}}@media (min-width:768px){.container{max-width:768px}}@media (min-width:1024px){.container{max-width:1024px}}@media (min-width:1280px){.container{max-width:1280px}}@media (min-width:1536px){.container{max-width:1536px}}.mb-2{margin-bottom:.5rem}.mb-4{margin-bottom:1rem}.mb-6{margin-bottom:1.5rem}.ml-2{margin-left:.5rem}.ml-3{margin-left:.75rem}.ml-4{margin-left:1rem}.mr-2{margin-right:.5rem}.mt-1{margin-top:.25rem}.mt-2{margin-top:.5rem}.block{display:block}.inline-block{display:inline-block}.flex{display:flex}.table{display:table}.grid{display:grid}.h-3{height:.75rem}.h-4{height:1rem}.h-48{height:12rem}.h-8{height:2rem}.h-full{height:100%}.max-h-40{max-height:10rem}.w-16{width:4rem}.w-24{width:6rem}.w-3{width:.75rem}.w-4{width:1rem}.w-48{width:12rem}.w-8{width:2rem}.w-full{width:100%}.max-w-\[100px\]{max-width:100px}.flex-1{flex:1 1 0%}@keyframes spin{to{transform:rotate(1turn)}}.animate-spin{animation:spin 1s linear infinite}.list-inside{list-style-position:inside}.list-disc{list-style-type:disc}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.flex-wrap{flex-wrap:wrap}.items-center{align-items:center}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-4{gap:1rem}.space-x-1>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-right:calc(.25rem*var(--tw-space-x-reverse));margin-left:calc(.25rem*(1 - var(--tw-space-x-reverse)))}.space-x-2>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-right:calc(.5rem*var(--tw-space-x-reverse));margin-left:calc(.5rem*(1 - var(--tw-space-x-reverse)))}.space-x-4>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-right:calc(1rem*var(--tw-space-x-reverse));margin-left:calc(1rem*(1 - var(--tw-space-x-reverse)))}.space-y-1>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(.25rem*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.25rem*var(--tw-space-y-reverse))}.space-y-2>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(.5rem*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.5rem*var(--tw-space-y-reverse))}.space-y-4>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(1rem*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1rem*var(--tw-space-y-reverse))}.overflow-hidden{overflow:hidden}.overflow-x-auto{overflow-x:auto}.overflow-y-auto{overflow-y:auto}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.whitespace-pre-line{white-space:pre-line}.rounded{border-radius:.25rem}.rounded-full{border-radius:9999px}.rounded-lg{border-radius:.5rem}.rounded-md{border-radius:.375rem}.rounded-sm{border-radius:.125rem}.border{border-width:1px}.border-2{border-width:2px}.border-b{border-bottom-width:1px}.border-b-2{border-bottom-width:2px}.border-gray-400{--tw-border-opacity:1;border-color:rgb(156 163 175/var(--tw-border-opacity,1))}.border-mantle-600{--tw-border-opacity:1;border-color:rgb(22 163 74/var(--tw-border-opacity,1))}.border-red-200{--tw-border-opacity:1;border-color:rgb(254 202 202/var(--tw-border-opacity,1))}.border-red-500{--tw-border-opacity:1;border-color:rgb(239 68 68/var(--tw-border-opacity,1))}.border-white{--tw-border-opacity:1;border-color:rgb(255 255 255/var(--tw-border-opacity,1))}.border-t-transparent{border-top-color:transparent}.bg-blue-100{--tw-bg-opacity:1;background-color:rgb(219 234 254/var(--tw-bg-opacity,1))}.bg-gray-100{--tw-bg-opacity:1;background-color:rgb(243 244 246/var(--tw-bg-opacity,1))}.bg-gray-200{--tw-bg-opacity:1;background-color:rgb(229 231 235/var(--tw-bg-opacity,1))}.bg-gray-50{--tw-bg-opacity:1;background-color:rgb(249 250 251/var(--tw-bg-opacity,1))}.bg-green-100{--tw-bg-opacity:1;background-color:rgb(220 252 231/var(--tw-bg-opacity,1))}.bg-green-50{--tw-bg-opacity:1;background-color:rgb(240 253 244/var(--tw-bg-opacity,1))}.bg-green-500{--tw-bg-opacity:1;background-color:rgb(34 197 94/var(--tw-bg-opacity,1))}.bg-mantle-600{--tw-bg-opacity:1;background-color:rgb(22 163 74/var(--tw-bg-opacity,1))}.bg-red-100{--tw-bg-opacity:1;background-color:rgb(254 226 226/var(--tw-bg-opacity,1))}.bg-red-50{--tw-bg-opacity:1;background-color:rgb(254 242 242/var(--tw-bg-opacity,1))}.bg-red-500{--tw-bg-opacity:1;background-color:rgb(239 68 68/var(--tw-bg-opacity,1))}.bg-yellow-100{--tw-bg-opacity:1;background-color:rgb(254 249 195/var(--tw-bg-opacity,1))}.p-2{padding:.5rem}.p-3{padding:.75rem}.p-4{padding:1rem}.px-2{padding-left:.5rem;padding-right:.5rem}.px-3{padding-left:.75rem;padding-right:.75rem}.py-0\.5{padding-top:.125rem;padding-bottom:.125rem}.py-1{padding-top:.25rem;padding-bottom:.25rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.py-8{padding-top:2rem;padding-bottom:2rem}.pb-1{padding-bottom:.25rem}.text-left{text-align:left}.text-center{text-align:center}.text-right{text-align:right}.text-2xl{font-size:1.5rem;line-height:2rem}.text-lg{font-size:1.125rem;line-height:1.75rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-xs{font-size:.75rem;line-height:1rem}.font-bold{font-weight:700}.font-medium{font-weight:500}.font-semibold{font-weight:600}.text-blue-700{--tw-text-opacity:1;color:rgb(29 78 216/var(--tw-text-opacity,1))}.text-gray-500{--tw-text-opacity:1;color:rgb(107 114 128/var(--tw-text-opacity,1))}.text-gray-600{--tw-text-opacity:1;color:rgb(75 85 99/var(--tw-text-opacity,1))}.text-gray-700{--tw-text-opacity:1;color:rgb(55 65 81/var(--tw-text-opacity,1))}.text-gray-900{--tw-text-opacity:1;color:rgb(17 24 39/var(--tw-text-opacity,1))}.text-green-600{--tw-text-opacity:1;color:rgb(22 163 74/var(--tw-text-opacity,1))}.text-green-700{--tw-text-opacity:1;color:rgb(21 128 61/var(--tw-text-opacity,1))}.text-mantle-600{--tw-text-opacity:1;color:rgb(22 163 74/var(--tw-text-opacity,1))}.text-red-500{--tw-text-opacity:1;color:rgb(239 68 68/var(--tw-text-opacity,1))}.text-red-600{--tw-text-opacity:1;color:rgb(220 38 38/var(--tw-text-opacity,1))}.text-red-700{--tw-text-opacity:1;color:rgb(185 28 28/var(--tw-text-opacity,1))}.text-white{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity,1))}.text-yellow-700{--tw-text-opacity:1;color:rgb(161 98 7/var(--tw-text-opacity,1))}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.transition-all{transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.duration-300{transition-duration:.3s}.rwa-card{border-radius:.5rem;border-width:1px;--tw-border-opacity:1;border-color:rgb(229 231 235/var(--tw-border-opacity,1));--tw-bg-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity,1));padding:1rem;--tw-shadow:0 1px 2px 0 rgba(0,0,0,.05);--tw-shadow-colored:0 1px 2px 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.rwa-card:is(.dark *){--tw-border-opacity:1;border-color:rgb(55 65 81/var(--tw-border-opacity,1));--tw-bg-opacity:1;background-color:rgb(31 41 55/var(--tw-bg-opacity,1))}.rwa-button{display:inline-flex;align-items:center;justify-content:center;border-radius:.375rem;padding:.5rem 1rem;font-size:.875rem;line-height:1.25rem;font-weight:500;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.rwa-button:focus{outline:2px solid transparent;outline-offset:2px;--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000);--tw-ring-offset-width:2px}.rwa-button:disabled{cursor:not-allowed;opacity:.5}.rwa-button-primary{--tw-bg-opacity:1;background-color:rgb(22 163 74/var(--tw-bg-opacity,1));--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity,1));display:inline-flex;align-items:center;justify-content:center;border-radius:.375rem;padding:.5rem 1rem;font-size:.875rem;line-height:1.25rem;font-weight:500;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.rwa-button-primary:focus{outline:2px solid transparent;outline-offset:2px;--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000);--tw-ring-offset-width:2px}.rwa-button-primary:disabled{cursor:not-allowed;opacity:.5}.rwa-button-primary:hover{--tw-bg-opacity:1;background-color:rgb(21 128 61/var(--tw-bg-opacity,1))}.rwa-button-primary:focus{--tw-ring-opacity:1;--tw-ring-color:rgb(34 197 94/var(--tw-ring-opacity,1))}.rwa-button-secondary{border-width:1px;--tw-border-opacity:1;border-color:rgb(209 213 219/var(--tw-border-opacity,1));--tw-bg-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity,1));--tw-text-opacity:1;color:rgb(55 65 81/var(--tw-text-opacity,1));display:inline-flex;align-items:center;justify-content:center;border-radius:.375rem;padding:.5rem 1rem;font-size:.875rem;line-height:1.25rem;font-weight:500;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.rwa-button-secondary:focus{outline:2px solid transparent;outline-offset:2px;--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000);--tw-ring-offset-width:2px}.rwa-button-secondary:disabled{cursor:not-allowed;opacity:.5}.rwa-button-secondary:hover{--tw-bg-opacity:1;background-color:rgb(249 250 251/var(--tw-bg-opacity,1))}.rwa-button-secondary:focus{--tw-ring-opacity:1;--tw-ring-color:rgb(34 197 94/var(--tw-ring-opacity,1))}.rwa-button-secondary:is(.dark *){--tw-border-opacity:1;border-color:rgb(75 85 99/var(--tw-border-opacity,1));--tw-bg-opacity:1;background-color:rgb(31 41 55/var(--tw-bg-opacity,1));--tw-text-opacity:1;color:rgb(229 231 235/var(--tw-text-opacity,1))}.rwa-button-secondary:hover:is(.dark *){--tw-bg-opacity:1;background-color:rgb(55 65 81/var(--tw-bg-opacity,1))}.rwa-input{display:block;width:100%;border-radius:.375rem;border-width:1px;--tw-border-opacity:1;border-color:rgb(209 213 219/var(--tw-border-opacity,1));padding:.5rem .75rem;font-size:.875rem;line-height:1.25rem}.rwa-input::-moz-placeholder{--tw-placeholder-opacity:1;color:rgb(156 163 175/var(--tw-placeholder-opacity,1))}.rwa-input::placeholder{--tw-placeholder-opacity:1;color:rgb(156 163 175/var(--tw-placeholder-opacity,1))}.rwa-input:focus{--tw-border-opacity:1;border-color:rgb(34 197 94/var(--tw-border-opacity,1));outline:2px solid transparent;outline-offset:2px;--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000);--tw-ring-opacity:1;--tw-ring-color:rgb(34 197 94/var(--tw-ring-opacity,1))}.rwa-input:is(.dark *){--tw-border-opacity:1;border-color:rgb(75 85 99/var(--tw-border-opacity,1));--tw-bg-opacity:1;background-color:rgb(31 41 55/var(--tw-bg-opacity,1));--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity,1))}.rwa-input:is(.dark *)::-moz-placeholder{--tw-placeholder-opacity:1;color:rgb(107 114 128/var(--tw-placeholder-opacity,1))}.rwa-input:is(.dark *)::placeholder{--tw-placeholder-opacity:1;color:rgb(107 114 128/var(--tw-placeholder-opacity,1))}.rwa-label{display:block;font-size:.875rem;line-height:1.25rem;font-weight:500;--tw-text-opacity:1;color:rgb(55 65 81/var(--tw-text-opacity,1))}.rwa-label:is(.dark *){--tw-text-opacity:1;color:rgb(229 231 235/var(--tw-text-opacity,1))}.rwa-kyc-flow{border-radius:.5rem;border-width:1px;--tw-border-opacity:1;border-color:rgb(229 231 235/var(--tw-border-opacity,1));--tw-bg-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity,1));padding:1.5rem;--tw-shadow:0 1px 2px 0 rgba(0,0,0,.05);--tw-shadow-colored:0 1px 2px 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.rwa-kyc-flow.dark{--tw-border-opacity:1;border-color:rgb(55 65 81/var(--tw-border-opacity,1));--tw-bg-opacity:1;background-color:rgb(31 41 55/var(--tw-bg-opacity,1))}.rwa-kyc-header{margin-bottom:1rem;font-size:1.125rem;line-height:1.75rem;font-weight:600;--tw-text-opacity:1;color:rgb(17 24 39/var(--tw-text-opacity,1))}.rwa-kyc-flow.dark .rwa-kyc-header{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity,1))}.rwa-kyc-error{margin-bottom:1rem;display:flex;align-items:center;gap:.5rem;border-radius:.375rem;border-width:1px;--tw-border-opacity:1;border-color:rgb(254 202 202/var(--tw-border-opacity,1));--tw-bg-opacity:1;background-color:rgb(254 242 242/var(--tw-bg-opacity,1));padding:.75rem;--tw-text-opacity:1;color:rgb(185 28 28/var(--tw-text-opacity,1))}.rwa-kyc-flow.dark .rwa-kyc-error{--tw-border-opacity:1;border-color:rgb(153 27 27/var(--tw-border-opacity,1));background-color:rgba(127,29,29,.2);--tw-text-opacity:1;color:rgb(252 165 165/var(--tw-text-opacity,1))}.rwa-kyc-error-icon{flex-shrink:0}.rwa-kyc-provider{margin-bottom:1.5rem;display:flex;align-items:center;gap:.75rem;border-radius:.375rem;--tw-bg-opacity:1;background-color:rgb(249 250 251/var(--tw-bg-opacity,1));padding:.75rem}.rwa-kyc-flow.dark .rwa-kyc-provider{background-color:rgba(55,65,81,.5)}.rwa-kyc-provider-logo{font-size:1.5rem;line-height:2rem}.rwa-kyc-provider-details{display:flex;flex-direction:column}.rwa-kyc-provider-name{font-weight:500;--tw-text-opacity:1;color:rgb(17 24 39/var(--tw-text-opacity,1))}.rwa-kyc-flow.dark .rwa-kyc-provider-name{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity,1))}.rwa-kyc-provider-description{font-size:.875rem;line-height:1.25rem;--tw-text-opacity:1;color:rgb(107 114 128/var(--tw-text-opacity,1))}.rwa-kyc-flow.dark .rwa-kyc-provider-description{--tw-text-opacity:1;color:rgb(156 163 175/var(--tw-text-opacity,1))}.rwa-kyc-steps{margin-bottom:1.5rem}.rwa-kyc-steps>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(.75rem*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.75rem*var(--tw-space-y-reverse))}.rwa-kyc-step{display:flex;align-items:flex-start;gap:.75rem;border-radius:.375rem;padding:.75rem;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.rwa-kyc-step.pending{--tw-bg-opacity:1;background-color:rgb(249 250 251/var(--tw-bg-opacity,1))}.rwa-kyc-flow.dark .rwa-kyc-step.pending{background-color:rgba(55,65,81,.3)}.rwa-kyc-step.in_progress{border-width:1px;--tw-border-opacity:1;border-color:rgb(191 219 254/var(--tw-border-opacity,1));--tw-bg-opacity:1;background-color:rgb(239 246 255/var(--tw-bg-opacity,1))}.rwa-kyc-flow.dark .rwa-kyc-step.in_progress{--tw-border-opacity:1;border-color:rgb(30 64 175/var(--tw-border-opacity,1));background-color:rgba(30,58,138,.2)}.rwa-kyc-step.completed{--tw-bg-opacity:1;background-color:rgb(240 253 244/var(--tw-bg-opacity,1))}.rwa-kyc-flow.dark .rwa-kyc-step.completed{background-color:rgba(20,83,45,.2)}.rwa-kyc-step.failed{--tw-bg-opacity:1;background-color:rgb(254 242 242/var(--tw-bg-opacity,1))}.rwa-kyc-flow.dark .rwa-kyc-step.failed{background-color:rgba(127,29,29,.2)}.rwa-kyc-step-indicator{display:flex;height:2rem;width:2rem;flex-shrink:0;align-items:center;justify-content:center;border-radius:9999px;font-size:.875rem;line-height:1.25rem;font-weight:500}.rwa-kyc-step.pending .rwa-kyc-step-indicator{--tw-bg-opacity:1;background-color:rgb(229 231 235/var(--tw-bg-opacity,1));--tw-text-opacity:1;color:rgb(75 85 99/var(--tw-text-opacity,1))}.rwa-kyc-flow.dark .rwa-kyc-step.pending .rwa-kyc-step-indicator{--tw-bg-opacity:1;background-color:rgb(75 85 99/var(--tw-bg-opacity,1));--tw-text-opacity:1;color:rgb(209 213 219/var(--tw-text-opacity,1))}.rwa-kyc-step.in_progress .rwa-kyc-step-indicator{--tw-bg-opacity:1;background-color:rgb(59 130 246/var(--tw-bg-opacity,1));--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity,1))}.rwa-kyc-step.completed .rwa-kyc-step-indicator{--tw-bg-opacity:1;background-color:rgb(34 197 94/var(--tw-bg-opacity,1));--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity,1))}.rwa-kyc-step.failed .rwa-kyc-step-indicator{--tw-bg-opacity:1;background-color:rgb(239 68 68/var(--tw-bg-opacity,1));--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity,1))}.rwa-kyc-step-content{display:flex;flex-direction:column}.rwa-kyc-step-label{font-weight:500;--tw-text-opacity:1;color:rgb(17 24 39/var(--tw-text-opacity,1))}.rwa-kyc-flow.dark .rwa-kyc-step-label{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity,1))}.rwa-kyc-step-description{margin-top:.125rem;font-size:.875rem;line-height:1.25rem;--tw-text-opacity:1;color:rgb(107 114 128/var(--tw-text-opacity,1))}.rwa-kyc-flow.dark .rwa-kyc-step-description{--tw-text-opacity:1;color:rgb(156 163 175/var(--tw-text-opacity,1))}.rwa-kyc-actions{margin-top:1.5rem}.rwa-kyc-actions button{width:100%}.rwa-kyc-success{display:flex;align-items:center;justify-content:center;gap:.5rem;border-radius:.375rem;--tw-bg-opacity:1;background-color:rgb(240 253 244/var(--tw-bg-opacity,1));padding:.75rem;font-weight:500;--tw-text-opacity:1;color:rgb(21 128 61/var(--tw-text-opacity,1))}.rwa-kyc-flow.dark .rwa-kyc-success{background-color:rgba(20,83,45,.2);--tw-text-opacity:1;color:rgb(134 239 172/var(--tw-text-opacity,1))}.rwa-kyc-success-icon{font-size:1.125rem;line-height:1.75rem}.rwa-kyc-session{margin-top:1rem;text-align:center}.file\:mr-4::file-selector-button{margin-right:1rem}.file\:rounded-md::file-selector-button{border-radius:.375rem}.file\:border-0::file-selector-button{border-width:0}.file\:bg-mantle-50::file-selector-button{--tw-bg-opacity:1;background-color:rgb(240 253 244/var(--tw-bg-opacity,1))}.file\:px-4::file-selector-button{padding-left:1rem;padding-right:1rem}.file\:py-2::file-selector-button{padding-top:.5rem;padding-bottom:.5rem}.file\:text-sm::file-selector-button{font-size:.875rem;line-height:1.25rem}.file\:font-medium::file-selector-button{font-weight:500}.file\:text-mantle-700::file-selector-button{--tw-text-opacity:1;color:rgb(21 128 61/var(--tw-text-opacity,1))}.hover\:text-mantle-700:hover{--tw-text-opacity:1;color:rgb(21 128 61/var(--tw-text-opacity,1))}.hover\:file\:bg-mantle-100::file-selector-button:hover{--tw-bg-opacity:1;background-color:rgb(220 252 231/var(--tw-bg-opacity,1))}.dark\:border-gray-600:is(.dark *){--tw-border-opacity:1;border-color:rgb(75 85 99/var(--tw-border-opacity,1))}.dark\:border-gray-700:is(.dark *){--tw-border-opacity:1;border-color:rgb(55 65 81/var(--tw-border-opacity,1))}.dark\:border-red-800:is(.dark *){--tw-border-opacity:1;border-color:rgb(153 27 27/var(--tw-border-opacity,1))}.dark\:bg-blue-900:is(.dark *){--tw-bg-opacity:1;background-color:rgb(30 58 138/var(--tw-bg-opacity,1))}.dark\:bg-gray-700:is(.dark *){--tw-bg-opacity:1;background-color:rgb(55 65 81/var(--tw-bg-opacity,1))}.dark\:bg-green-900:is(.dark *){--tw-bg-opacity:1;background-color:rgb(20 83 45/var(--tw-bg-opacity,1))}.dark\:bg-green-900\/20:is(.dark *){background-color:rgba(20,83,45,.2)}.dark\:bg-red-900:is(.dark *){--tw-bg-opacity:1;background-color:rgb(127 29 29/var(--tw-bg-opacity,1))}.dark\:bg-red-900\/20:is(.dark *){background-color:rgba(127,29,29,.2)}.dark\:bg-yellow-900:is(.dark *){--tw-bg-opacity:1;background-color:rgb(113 63 18/var(--tw-bg-opacity,1))}.dark\:text-blue-200:is(.dark *){--tw-text-opacity:1;color:rgb(191 219 254/var(--tw-text-opacity,1))}.dark\:text-gray-300:is(.dark *){--tw-text-opacity:1;color:rgb(209 213 219/var(--tw-text-opacity,1))}.dark\:text-gray-400:is(.dark *){--tw-text-opacity:1;color:rgb(156 163 175/var(--tw-text-opacity,1))}.dark\:text-green-200:is(.dark *){--tw-text-opacity:1;color:rgb(187 247 208/var(--tw-text-opacity,1))}.dark\:text-green-300:is(.dark *){--tw-text-opacity:1;color:rgb(134 239 172/var(--tw-text-opacity,1))}.dark\:text-red-200:is(.dark *){--tw-text-opacity:1;color:rgb(254 202 202/var(--tw-text-opacity,1))}.dark\:text-red-300:is(.dark *){--tw-text-opacity:1;color:rgb(252 165 165/var(--tw-text-opacity,1))}.dark\:text-white:is(.dark *){--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity,1))}.dark\:text-yellow-200:is(.dark *){--tw-text-opacity:1;color:rgb(254 240 138/var(--tw-text-opacity,1))}@media (min-width:640px){.sm\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}}
@@ -0,0 +1,25 @@
1
+ /**
2
+ * InvestorDashboard Component
3
+ * Displays investor portfolio, yield history, and compliance status
4
+ *
5
+ * @see Requirements 11.1, 11.2, 11.3, 11.4, 11.5
6
+ */
7
+ import React from 'react';
8
+ import type { InvestorDashboardProps } from '../../types';
9
+ /**
10
+ * InvestorDashboard component for displaying investor portfolio
11
+ * Shows token balance, yield history, and compliance status
12
+ *
13
+ * @example
14
+ * ```tsx
15
+ * <InvestorDashboard
16
+ * tokenAddress="0x..."
17
+ * yieldDistributorAddress="0x..."
18
+ * kycRegistryAddress="0x..."
19
+ * onClaimYield={(id) => console.log('Claiming:', id)}
20
+ * />
21
+ * ```
22
+ */
23
+ export declare function InvestorDashboard({ tokenAddress, yieldDistributorAddress, kycRegistryAddress, theme, onClaimYield, showPortfolioValue, priceOracle: _priceOracle, }: InvestorDashboardProps): React.ReactElement;
24
+ export default InvestorDashboard;
25
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/InvestorDashboard/index.tsx"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAA2C,MAAM,OAAO,CAAC;AAChE,OAAO,KAAK,EAAE,sBAAsB,EAAqB,MAAM,aAAa,CAAC;AAmC7E;;;;;;;;;;;;;GAaG;AACH,wBAAgB,iBAAiB,CAAC,EAC9B,YAAY,EACZ,uBAAuB,EACvB,kBAAkB,EAClB,KAAe,EACf,YAAY,EACZ,kBAAyB,EACzB,WAAW,EAAE,YAAY,GAC5B,EAAE,sBAAsB,GAAG,KAAK,CAAC,YAAY,CAmS7C;AAED,eAAe,iBAAiB,CAAC"}
@@ -0,0 +1,25 @@
1
+ /**
2
+ * KYCFlow Component
3
+ * Multi-step KYC verification flow with provider integration
4
+ *
5
+ * @see Requirements 10.1, 10.2, 10.3, 10.4, 10.5
6
+ */
7
+ import React from 'react';
8
+ import type { KYCFlowProps } from '../../types';
9
+ /**
10
+ * KYCFlow component for investor verification
11
+ * Supports Persona, Synaps, and Jumio providers
12
+ *
13
+ * @example
14
+ * ```tsx
15
+ * <KYCFlow
16
+ * provider="persona"
17
+ * requiredFields={['identity', 'accreditation']}
18
+ * onComplete={(result) => console.log('KYC complete:', result)}
19
+ * theme="light"
20
+ * />
21
+ * ```
22
+ */
23
+ export declare function KYCFlow({ provider, onComplete, onError, requiredFields, theme, customStyles, registryAddress, autoUpdateRegistry, }: KYCFlowProps): React.ReactElement;
24
+ export default KYCFlow;
25
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/KYCFlow/index.tsx"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAoD,MAAM,OAAO,CAAC;AACzE,OAAO,KAAK,EAAE,YAAY,EAA+B,MAAM,aAAa,CAAC;AAmE7E;;;;;;;;;;;;;GAaG;AACH,wBAAgB,OAAO,CAAC,EACpB,QAAQ,EACR,UAAU,EACV,OAAO,EACP,cAAc,EACd,KAAe,EACf,YAAY,EACZ,eAAe,EACf,kBAA0B,GAC7B,EAAE,YAAY,GAAG,KAAK,CAAC,YAAY,CA6UnC;AAED,eAAe,OAAO,CAAC"}
@@ -0,0 +1,60 @@
1
+ /**
2
+ * TokenMintForm Component
3
+ * Form for minting RWA tokens with compliance pre-checks
4
+ *
5
+ * @see Requirements 12.1, 12.2, 12.3, 12.4
6
+ */
7
+ import React from 'react';
8
+ import type { TokenMintFormProps, BatchMintEntry } from '../../types';
9
+ /**
10
+ * Compliance check result interface
11
+ */
12
+ export interface ComplianceCheckResult {
13
+ eligible: boolean;
14
+ reason?: string;
15
+ checks?: Array<{
16
+ name: string;
17
+ passed: boolean;
18
+ details?: string;
19
+ }>;
20
+ }
21
+ /**
22
+ * Parse CSV content into batch mint entries
23
+ * Exported for testing purposes
24
+ */
25
+ export declare function parseCSV(content: string, maxBatchSize: number): {
26
+ entries: BatchMintEntry[];
27
+ errors: string[];
28
+ };
29
+ /**
30
+ * Validate Ethereum address format
31
+ */
32
+ export declare function validateAddress(address: string): boolean;
33
+ /**
34
+ * Validate amount is a positive number
35
+ */
36
+ export declare function validateAmount(value: string): boolean;
37
+ /**
38
+ * Check compliance for a recipient address
39
+ * This is the core compliance pre-check function (Property 25)
40
+ * In production, this would call the KYC registry contract
41
+ */
42
+ export declare function checkCompliance(address: string, _kycRegistryAddress?: string): Promise<ComplianceCheckResult>;
43
+ /**
44
+ * TokenMintForm component for issuing tokens to investors
45
+ * Supports single and batch minting with compliance pre-checks
46
+ *
47
+ * @example
48
+ * ```tsx
49
+ * <TokenMintForm
50
+ * tokenAddress="0x..."
51
+ * kycRegistryAddress="0x..."
52
+ * onMintComplete={(hash, recipient, amount) => console.log('Minted:', hash)}
53
+ * allowBatchMint={true}
54
+ * />
55
+ * ```
56
+ */
57
+ export declare function TokenMintForm({ tokenAddress: _tokenAddress, // Reserved for future contract interaction
58
+ kycRegistryAddress, onMintComplete, onError, allowBatchMint, maxBatchSize, theme, }: TokenMintFormProps): React.ReactElement;
59
+ export default TokenMintForm;
60
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/TokenMintForm/index.tsx"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAyC,MAAM,OAAO,CAAC;AAC9D,OAAO,KAAK,EAAE,kBAAkB,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAEtE;;GAEG;AACH,MAAM,WAAW,qBAAqB;IAClC,QAAQ,EAAE,OAAO,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,KAAK,CAAC;QACX,IAAI,EAAE,MAAM,CAAC;QACb,MAAM,EAAE,OAAO,CAAC;QAChB,OAAO,CAAC,EAAE,MAAM,CAAC;KACpB,CAAC,CAAC;CACN;AAED;;;GAGG;AACH,wBAAgB,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG;IAAE,OAAO,EAAE,cAAc,EAAE,CAAC;IAAC,MAAM,EAAE,MAAM,EAAE,CAAA;CAAE,CA+C/G;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAExD;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAGrD;AAED;;;;GAIG;AACH,wBAAsB,eAAe,CACjC,OAAO,EAAE,MAAM,EACf,mBAAmB,CAAC,EAAE,MAAM,GAC7B,OAAO,CAAC,qBAAqB,CAAC,CA6ChC;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,aAAa,CAAC,EAC1B,YAAY,EAAE,aAAa,EAAE,2CAA2C;AACxE,kBAAkB,EAClB,cAAc,EACd,OAAO,EACP,cAAsB,EACtB,YAAkB,EAClB,KAAe,GAClB,EAAE,kBAAkB,GAAG,KAAK,CAAC,YAAY,CAmazC;AAED,eAAe,aAAa,CAAC"}
@@ -0,0 +1,59 @@
1
+ /**
2
+ * YieldCalculator Component
3
+ * Preview and calculate yield distributions before execution
4
+ *
5
+ * @see Requirements 13.1, 13.2, 13.3, 13.4
6
+ */
7
+ import React from 'react';
8
+ import type { YieldCalculatorProps, DistributionPreviewEntry } from '../../types';
9
+ /**
10
+ * Calculate proportional yield distribution for holders
11
+ * This is the core calculation function for Property 26
12
+ *
13
+ * @param totalAmount - Total amount to distribute (in smallest unit)
14
+ * @param holders - Array of holder addresses and balances
15
+ * @returns Array of distribution preview entries
16
+ */
17
+ export declare function calculateDistribution(totalAmount: bigint, holders: Array<{
18
+ address: string;
19
+ balance: bigint;
20
+ }>): DistributionPreviewEntry[];
21
+ /**
22
+ * Calculate the sum of all yield amounts in a distribution
23
+ * Used to verify Property 26 (distribution accuracy)
24
+ */
25
+ export declare function sumDistributionAmounts(entries: DistributionPreviewEntry[]): bigint;
26
+ /**
27
+ * Format a bigint amount for display with decimals
28
+ */
29
+ export declare function formatAmount(value: bigint, decimals: number): string;
30
+ /**
31
+ * Parse a decimal string amount to bigint with given decimals
32
+ */
33
+ export declare function parseAmount(value: string, decimals: number): bigint;
34
+ /**
35
+ * Export distribution preview to CSV format
36
+ */
37
+ export declare function exportToCSV(entries: DistributionPreviewEntry[], tokenSymbol: string, decimals: number): string;
38
+ /**
39
+ * Export distribution preview to JSON format
40
+ */
41
+ export declare function exportToJSON(entries: DistributionPreviewEntry[]): string;
42
+ /**
43
+ * YieldCalculator component for previewing yield distributions
44
+ * Shows per-holder breakdown with optional chart visualization
45
+ *
46
+ * @example
47
+ * ```tsx
48
+ * <YieldCalculator
49
+ * tokenAddress="0x..."
50
+ * yieldDistributorAddress="0x..."
51
+ * supportedPaymentTokens={[{ address: '0x...', symbol: 'USDC', decimals: 6 }]}
52
+ * onDistribute={(config) => console.log('Distributing:', config)}
53
+ * />
54
+ * ```
55
+ */
56
+ export declare function YieldCalculator({ tokenAddress, yieldDistributorAddress: _yieldDistributorAddress, // Reserved for future contract interaction
57
+ supportedPaymentTokens, onDistribute, showChart, allowExport, theme, }: YieldCalculatorProps): React.ReactElement;
58
+ export default YieldCalculator;
59
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/YieldCalculator/index.tsx"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAyC,MAAM,OAAO,CAAC;AAC9D,OAAO,KAAK,EAAE,oBAAoB,EAAE,wBAAwB,EAAoC,MAAM,aAAa,CAAC;AAEpH;;;;;;;GAOG;AACH,wBAAgB,qBAAqB,CACjC,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,KAAK,CAAC;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC,GACrD,wBAAwB,EAAE,CA2B5B;AAED;;;GAGG;AACH,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,wBAAwB,EAAE,GAAG,MAAM,CAElF;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAUpE;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAMnE;AAED;;GAEG;AACH,wBAAgB,WAAW,CACvB,OAAO,EAAE,wBAAwB,EAAE,EACnC,WAAW,EAAE,MAAM,EACnB,QAAQ,EAAE,MAAM,GACjB,MAAM,CAMR;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,OAAO,EAAE,wBAAwB,EAAE,GAAG,MAAM,CAOxE;AAwBD;;;;;;;;;;;;;GAaG;AACH,wBAAgB,eAAe,CAAC,EAC5B,YAAY,EACZ,uBAAuB,EAAE,wBAAwB,EAAE,2CAA2C;AAC9F,sBAAsB,EACtB,YAAY,EACZ,SAAgB,EAChB,WAAkB,EAClB,KAAe,GAClB,EAAE,oBAAoB,GAAG,KAAK,CAAC,YAAY,CA+X3C;AAED,eAAe,eAAe,CAAC"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * React components for RWA tokenization
3
+ */
4
+ export { KYCFlow } from './KYCFlow';
5
+ export { InvestorDashboard } from './InvestorDashboard';
6
+ export { TokenMintForm } from './TokenMintForm';
7
+ export { YieldCalculator } from './YieldCalculator';
8
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC"}
@@ -0,0 +1,5 @@
1
+ /**
2
+ * React hooks for RWA functionality
3
+ */
4
+ export { useRWA } from './useRWA';
5
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/hooks/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC"}
@@ -0,0 +1,22 @@
1
+ /**
2
+ * useRWA hook for accessing RWA SDK functionality in React components
3
+ */
4
+ import type { UseRWAReturn } from '../types';
5
+ /**
6
+ * Hook for accessing RWA SDK functionality
7
+ * Provides connection status and SDK client access
8
+ */
9
+ export declare function useRWA(): UseRWAReturn;
10
+ declare global {
11
+ interface Window {
12
+ ethereum?: {
13
+ request?: (args: {
14
+ method: string;
15
+ params?: unknown[];
16
+ }) => Promise<unknown>;
17
+ on?: (event: string, callback: (...args: unknown[]) => void) => void;
18
+ removeListener?: (event: string, callback: (...args: unknown[]) => void) => void;
19
+ };
20
+ }
21
+ }
22
+ //# sourceMappingURL=useRWA.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useRWA.d.ts","sourceRoot":"","sources":["../../../src/hooks/useRWA.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAE7C;;;GAGG;AACH,wBAAgB,MAAM,IAAI,YAAY,CA+CrC;AAGD,OAAO,CAAC,MAAM,CAAC;IACX,UAAU,MAAM;QACZ,QAAQ,CAAC,EAAE;YACP,OAAO,CAAC,EAAE,CAAC,IAAI,EAAE;gBAAE,MAAM,EAAE,MAAM,CAAC;gBAAC,MAAM,CAAC,EAAE,OAAO,EAAE,CAAA;aAAE,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;YAC7E,EAAE,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,IAAI,KAAK,IAAI,CAAC;YACrE,cAAc,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,IAAI,KAAK,IAAI,CAAC;SACpF,CAAC;KACL;CACJ"}
@@ -0,0 +1,11 @@
1
+ /**
2
+ * @mantle-rwa/react
3
+ * React components for Real-World Asset tokenization on Mantle Network
4
+ */
5
+ export { KYCFlow } from './components/KYCFlow';
6
+ export { InvestorDashboard } from './components/InvestorDashboard';
7
+ export { TokenMintForm } from './components/TokenMintForm';
8
+ export { YieldCalculator } from './components/YieldCalculator';
9
+ export { useRWA } from './hooks/useRWA';
10
+ export type { Theme, KYCProviderType, KYCRequiredField, KYCResult, KYCFlowProps, KYCFlowStyles, InvestorDashboardProps, YieldHistoryEntry, TokenMintFormProps, BatchMintEntry, YieldCalculatorProps, PaymentToken, DistributionConfig, DistributionPreviewEntry, UseRWAReturn, } from './types';
11
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAC/C,OAAO,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAC;AACnE,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAC3D,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAG/D,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AAGxC,YAAY,EACR,KAAK,EACL,eAAe,EACf,gBAAgB,EAChB,SAAS,EACT,YAAY,EACZ,aAAa,EACb,sBAAsB,EACtB,iBAAiB,EACjB,kBAAkB,EAClB,cAAc,EACd,oBAAoB,EACpB,YAAY,EACZ,kBAAkB,EAClB,wBAAwB,EACxB,YAAY,GACf,MAAM,SAAS,CAAC"}
@@ -0,0 +1,177 @@
1
+ /**
2
+ * Type definitions for @mantle-rwa/react components
3
+ */
4
+ export { AccreditationTier } from '@mantle-rwa/sdk';
5
+ /**
6
+ * Theme options for components
7
+ */
8
+ export type Theme = 'light' | 'dark';
9
+ /**
10
+ * KYC Provider options
11
+ */
12
+ export type KYCProviderType = 'persona' | 'synaps' | 'jumio';
13
+ /**
14
+ * Required fields for KYC verification
15
+ */
16
+ export type KYCRequiredField = 'identity' | 'accreditation' | 'address' | 'tax';
17
+ /**
18
+ * KYC verification result
19
+ */
20
+ export interface KYCResult {
21
+ verified: boolean;
22
+ tier: number;
23
+ identityHash: string;
24
+ sessionId: string;
25
+ }
26
+ /**
27
+ * KYCFlow component props
28
+ * @see Requirements 10.1, 10.2, 10.3, 10.4, 10.5
29
+ */
30
+ export interface KYCFlowProps {
31
+ /** KYC provider to use */
32
+ provider: KYCProviderType;
33
+ /** Callback when KYC verification completes */
34
+ onComplete: (kycData: KYCResult) => void;
35
+ /** Callback when an error occurs */
36
+ onError?: (error: Error) => void;
37
+ /** Required verification fields */
38
+ requiredFields: KYCRequiredField[];
39
+ /** Theme mode */
40
+ theme?: Theme;
41
+ /** Custom styles override */
42
+ customStyles?: Partial<KYCFlowStyles>;
43
+ /** KYC Registry contract address for auto-update */
44
+ registryAddress?: string;
45
+ /** Whether to automatically update the on-chain registry */
46
+ autoUpdateRegistry?: boolean;
47
+ }
48
+ /**
49
+ * Custom styles for KYCFlow component
50
+ */
51
+ export interface KYCFlowStyles {
52
+ container?: string;
53
+ header?: string;
54
+ content?: string;
55
+ button?: string;
56
+ input?: string;
57
+ error?: string;
58
+ }
59
+ /**
60
+ * InvestorDashboard component props
61
+ * @see Requirements 11.1, 11.2, 11.3, 11.4, 11.5
62
+ */
63
+ export interface InvestorDashboardProps {
64
+ /** RWA Token contract address */
65
+ tokenAddress: string;
66
+ /** Yield Distributor contract address */
67
+ yieldDistributorAddress: string;
68
+ /** KYC Registry contract address */
69
+ kycRegistryAddress: string;
70
+ /** Theme mode */
71
+ theme?: Theme;
72
+ /** Callback when yield is claimed */
73
+ onClaimYield?: (distributionId: number) => void;
74
+ /** Whether to show portfolio value */
75
+ showPortfolioValue?: boolean;
76
+ /** Price oracle address for portfolio value calculation */
77
+ priceOracle?: string;
78
+ }
79
+ /**
80
+ * Yield history entry
81
+ */
82
+ export interface YieldHistoryEntry {
83
+ distributionId: number;
84
+ amount: bigint;
85
+ paymentToken: string;
86
+ claimedAt: Date;
87
+ }
88
+ /**
89
+ * TokenMintForm component props
90
+ * @see Requirements 12.1, 12.2, 12.3, 12.4
91
+ */
92
+ export interface TokenMintFormProps {
93
+ /** RWA Token contract address */
94
+ tokenAddress: string;
95
+ /** KYC Registry contract address */
96
+ kycRegistryAddress: string;
97
+ /** Callback when minting completes */
98
+ onMintComplete?: (txHash: string, recipient: string, amount: string) => void;
99
+ /** Callback when an error occurs */
100
+ onError?: (error: Error) => void;
101
+ /** Whether to allow batch minting via CSV */
102
+ allowBatchMint?: boolean;
103
+ /** Maximum batch size for CSV uploads */
104
+ maxBatchSize?: number;
105
+ /** Theme mode */
106
+ theme?: Theme;
107
+ }
108
+ /**
109
+ * Batch mint entry from CSV
110
+ */
111
+ export interface BatchMintEntry {
112
+ recipient: string;
113
+ amount: string;
114
+ }
115
+ /**
116
+ * YieldCalculator component props
117
+ * @see Requirements 13.1, 13.2, 13.3, 13.4
118
+ */
119
+ export interface YieldCalculatorProps {
120
+ /** RWA Token contract address */
121
+ tokenAddress: string;
122
+ /** Yield Distributor contract address */
123
+ yieldDistributorAddress: string;
124
+ /** Supported payment tokens */
125
+ supportedPaymentTokens: PaymentToken[];
126
+ /** Callback when distribution is initiated */
127
+ onDistribute?: (config: DistributionConfig) => void;
128
+ /** Whether to show distribution chart */
129
+ showChart?: boolean;
130
+ /** Whether to allow export functionality */
131
+ allowExport?: boolean;
132
+ /** Theme mode */
133
+ theme?: Theme;
134
+ }
135
+ /**
136
+ * Payment token configuration
137
+ */
138
+ export interface PaymentToken {
139
+ address: string;
140
+ symbol: string;
141
+ decimals: number;
142
+ }
143
+ /**
144
+ * Distribution configuration
145
+ */
146
+ export interface DistributionConfig {
147
+ tokenAddress: string;
148
+ paymentToken: string;
149
+ totalAmount: string;
150
+ snapshotDate?: Date;
151
+ claimWindowDays?: number;
152
+ }
153
+ /**
154
+ * Distribution preview entry
155
+ */
156
+ export interface DistributionPreviewEntry {
157
+ address: string;
158
+ balance: bigint;
159
+ yieldAmount: bigint;
160
+ percentage: number;
161
+ }
162
+ /**
163
+ * useRWA hook return type
164
+ */
165
+ export interface UseRWAReturn {
166
+ /** Whether the SDK client is initialized */
167
+ isInitialized: boolean;
168
+ /** Current network chain ID */
169
+ chainId: number | undefined;
170
+ /** Connected wallet address */
171
+ address: string | undefined;
172
+ /** Whether wallet is connected */
173
+ isConnected: boolean;
174
+ /** Error if initialization failed */
175
+ error: Error | null;
176
+ }
177
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/types/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAEpD;;GAEG;AACH,MAAM,MAAM,KAAK,GAAG,OAAO,GAAG,MAAM,CAAC;AAErC;;GAEG;AACH,MAAM,MAAM,eAAe,GAAG,SAAS,GAAG,QAAQ,GAAG,OAAO,CAAC;AAE7D;;GAEG;AACH,MAAM,MAAM,gBAAgB,GAAG,UAAU,GAAG,eAAe,GAAG,SAAS,GAAG,KAAK,CAAC;AAEhF;;GAEG;AACH,MAAM,WAAW,SAAS;IACtB,QAAQ,EAAE,OAAO,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;CACrB;AAED;;;GAGG;AACH,MAAM,WAAW,YAAY;IACzB,0BAA0B;IAC1B,QAAQ,EAAE,eAAe,CAAC;IAC1B,+CAA+C;IAC/C,UAAU,EAAE,CAAC,OAAO,EAAE,SAAS,KAAK,IAAI,CAAC;IACzC,oCAAoC;IACpC,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;IACjC,mCAAmC;IACnC,cAAc,EAAE,gBAAgB,EAAE,CAAC;IACnC,iBAAiB;IACjB,KAAK,CAAC,EAAE,KAAK,CAAC;IACd,6BAA6B;IAC7B,YAAY,CAAC,EAAE,OAAO,CAAC,aAAa,CAAC,CAAC;IACtC,oDAAoD;IACpD,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,4DAA4D;IAC5D,kBAAkB,CAAC,EAAE,OAAO,CAAC;CAChC;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC1B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;;GAGG;AACH,MAAM,WAAW,sBAAsB;IACnC,iCAAiC;IACjC,YAAY,EAAE,MAAM,CAAC;IACrB,yCAAyC;IACzC,uBAAuB,EAAE,MAAM,CAAC;IAChC,oCAAoC;IACpC,kBAAkB,EAAE,MAAM,CAAC;IAC3B,iBAAiB;IACjB,KAAK,CAAC,EAAE,KAAK,CAAC;IACd,qCAAqC;IACrC,YAAY,CAAC,EAAE,CAAC,cAAc,EAAE,MAAM,KAAK,IAAI,CAAC;IAChD,sCAAsC;IACtC,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,2DAA2D;IAC3D,WAAW,CAAC,EAAE,MAAM,CAAC;CACxB;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAC9B,cAAc,EAAE,MAAM,CAAC;IACvB,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,IAAI,CAAC;CACnB;AAED;;;GAGG;AACH,MAAM,WAAW,kBAAkB;IAC/B,iCAAiC;IACjC,YAAY,EAAE,MAAM,CAAC;IACrB,oCAAoC;IACpC,kBAAkB,EAAE,MAAM,CAAC;IAC3B,sCAAsC;IACtC,cAAc,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IAC7E,oCAAoC;IACpC,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;IACjC,6CAA6C;IAC7C,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,yCAAyC;IACzC,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,iBAAiB;IACjB,KAAK,CAAC,EAAE,KAAK,CAAC;CACjB;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC3B,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;CAClB;AAED;;;GAGG;AACH,MAAM,WAAW,oBAAoB;IACjC,iCAAiC;IACjC,YAAY,EAAE,MAAM,CAAC;IACrB,yCAAyC;IACzC,uBAAuB,EAAE,MAAM,CAAC;IAChC,+BAA+B;IAC/B,sBAAsB,EAAE,YAAY,EAAE,CAAC;IACvC,8CAA8C;IAC9C,YAAY,CAAC,EAAE,CAAC,MAAM,EAAE,kBAAkB,KAAK,IAAI,CAAC;IACpD,yCAAyC;IACzC,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,4CAA4C;IAC5C,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,iBAAiB;IACjB,KAAK,CAAC,EAAE,KAAK,CAAC;CACjB;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IACzB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IAC/B,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,CAAC,EAAE,IAAI,CAAC;IACpB,eAAe,CAAC,EAAE,MAAM,CAAC;CAC5B;AAED;;GAEG;AACH,MAAM,WAAW,wBAAwB;IACrC,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;CACtB;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IACzB,4CAA4C;IAC5C,aAAa,EAAE,OAAO,CAAC;IACvB,+BAA+B;IAC/B,OAAO,EAAE,MAAM,GAAG,SAAS,CAAC;IAC5B,+BAA+B;IAC/B,OAAO,EAAE,MAAM,GAAG,SAAS,CAAC;IAC5B,kCAAkC;IAClC,WAAW,EAAE,OAAO,CAAC;IACrB,qCAAqC;IACrC,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;CACvB"}