feat(game): 更新游戏规则并优化充值提现界面
- 在 api.type.ts 中为支付渠道、存款配置和取款字段添加新的接口属性 - 替换桌面端规则模态框中的纯文本内容为支持 Markdown 格式的组件 - 重构桌面端充值组件的 UI 结构,使用自定义按钮替代原生选择器 - 为取款组件添加最低最高金额验证及支付方式选择功能 - 更新英文本地化文件中的游戏规则内容,提供详细的玩法指南
This commit is contained in:
@@ -51,6 +51,8 @@
|
||||
"react-dom": "19.2.5",
|
||||
"react-hook-form": "^7.75.0",
|
||||
"react-i18next": "^17.0.3",
|
||||
"react-markdown": "^10.1.0",
|
||||
"remark-gfm": "^4.0.1",
|
||||
"shadcn": "^4.7.0",
|
||||
"tailwind-merge": "^3.5.0",
|
||||
"tw-animate-css": "^1.4.0",
|
||||
|
||||
1982
pnpm-lock.yaml
generated
1982
pnpm-lock.yaml
generated
@@ -10,10 +10,10 @@ importers:
|
||||
dependencies:
|
||||
'@fontsource-variable/geist':
|
||||
specifier: ^5.2.8
|
||||
version: 5.2.8
|
||||
version: 5.2.9
|
||||
'@hookform/resolvers':
|
||||
specifier: ^5.2.2
|
||||
version: 5.2.2(react-hook-form@7.75.0(react@19.2.5))
|
||||
version: 5.4.0(react-hook-form@7.75.0(react@19.2.5))
|
||||
'@tanstack/react-query':
|
||||
specifier: ^5.99.0
|
||||
version: 5.99.0(react@19.2.5)
|
||||
@@ -64,7 +64,7 @@ importers:
|
||||
version: 12.38.0(react-dom@19.2.5(react@19.2.5))(react@19.2.5)
|
||||
radix-ui:
|
||||
specifier: ^1.4.3
|
||||
version: 1.4.3(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)
|
||||
version: 1.6.2(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)
|
||||
react:
|
||||
specifier: 19.2.5
|
||||
version: 19.2.5
|
||||
@@ -77,6 +77,12 @@ importers:
|
||||
react-i18next:
|
||||
specifier: ^17.0.3
|
||||
version: 17.0.3(i18next@26.0.5(typescript@6.0.2))(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(typescript@6.0.2)
|
||||
react-markdown:
|
||||
specifier: ^10.1.0
|
||||
version: 10.1.0(@types/react@19.2.14)(react@19.2.5)
|
||||
remark-gfm:
|
||||
specifier: ^4.0.1
|
||||
version: 4.0.1
|
||||
shadcn:
|
||||
specifier: ^4.7.0
|
||||
version: 4.7.0(@types/node@24.12.2)(typescript@6.0.2)
|
||||
@@ -626,8 +632,8 @@ packages:
|
||||
'@floating-ui/utils@0.2.11':
|
||||
resolution: {integrity: sha512-RiB/yIh78pcIxl6lLMG0CgBXAZ2Y0eVHqMPYugu+9U0AeT6YBeiJpf7lbdJNIugFP5SIjwNRgo4DhR1Qxi26Gg==}
|
||||
|
||||
'@fontsource-variable/geist@5.2.8':
|
||||
resolution: {integrity: sha512-cJ6m9e+8MQ5dCYJsLylfZrgBh6KkG4bOLckB35Tr9J/EqdkEM6QllH5PxqP1dhTvFup+HtMRPuz9xOjxXJggxw==}
|
||||
'@fontsource-variable/geist@5.2.9':
|
||||
resolution: {integrity: sha512-TP+QSBG3wxKGPE33CbMy/L0Nu3qvJ6Fy81Yc4LnQ95xH+i+cfEp8fyU8/kfV14YwszxIFPhnoMTbjL71waVpyQ==}
|
||||
|
||||
'@hono/node-server@1.19.14':
|
||||
resolution: {integrity: sha512-GwtvgtXxnWsucXvbQXkRgqksiH2Qed37H9xHZocE5sA3N8O8O8/8FA3uclQXxXVzc9XBZuEOMK7+r02FmSpHtw==}
|
||||
@@ -635,8 +641,8 @@ packages:
|
||||
peerDependencies:
|
||||
hono: ^4
|
||||
|
||||
'@hookform/resolvers@5.2.2':
|
||||
resolution: {integrity: sha512-A/IxlMLShx3KjV/HeTcTfaMxdwy690+L/ZADoeaTltLx+CVuzkeVIPuybK3jrRfw7YZnmdKsVVHAlEPIAEUNlA==}
|
||||
'@hookform/resolvers@5.4.0':
|
||||
resolution: {integrity: sha512-EIsqr/t/qbinPIhGjMdtvutIN1Kk4uwbROE9/UQ93CAVGR7GkA7Y92+fX80OzXi/OB67jVFYwKGO1WzkxmkFZw==}
|
||||
peerDependencies:
|
||||
react-hook-form: ^7.55.0
|
||||
|
||||
@@ -903,14 +909,14 @@ packages:
|
||||
'@oxc-project/types@0.124.0':
|
||||
resolution: {integrity: sha512-VBFWMTBvHxS11Z5Lvlr3IWgrwhMTXV+Md+EQF0Xf60+wAdsGFTBx7X7K/hP4pi8N7dcm1RvcHwDxZ16Qx8keUg==}
|
||||
|
||||
'@radix-ui/number@1.1.1':
|
||||
resolution: {integrity: sha512-MkKCwxlXTgz6CFoJx3pCwn07GKp36+aZyu/u2Ln2VrA5DcdyCZkASEDBTd8x5whTQQL5CiYf4prXKLcgQdv29g==}
|
||||
'@radix-ui/number@1.1.2':
|
||||
resolution: {integrity: sha512-ceTwaxc4I5IOi97DgCotl3pqiyRGvffcc0oOsE2dQYaJOFIDsDt4VWG6xEbg1QePv9QWausCEIppud/tJ1wNig==}
|
||||
|
||||
'@radix-ui/primitive@1.1.3':
|
||||
resolution: {integrity: sha512-JTF99U/6XIjCBo0wqkU5sK10glYe27MRRsfwoiq5zzOEZLHU3A3KCMa5X/azekYRCJ0HlwI0crAXS/5dEHTzDg==}
|
||||
'@radix-ui/primitive@1.1.5':
|
||||
resolution: {integrity: sha512-d86WIWFYNtGA0H/d8exstrTRTp7eWJYlYJbtNofxr/3ljupZYn6EFDG/Qgu/0Kc8v7yMUxySagqJsL1+PdYjWg==}
|
||||
|
||||
'@radix-ui/react-accessible-icon@1.1.7':
|
||||
resolution: {integrity: sha512-XM+E4WXl0OqUJFovy6GjmxxFyx9opfCAIUku4dlKRd5YEPqt4kALOkQOp0Of6reHuUkJuiPBEc5k0o4z4lTC8A==}
|
||||
'@radix-ui/react-accessible-icon@1.1.11':
|
||||
resolution: {integrity: sha512-HQDOFTKwSnmUij6l54wYJJtxTAnxI71+YJLOrjm2ladFB8HAV5Jt7hwaZPhWTGBkYoW4+ZAOfNZrLDh/qvxSYA==}
|
||||
peerDependencies:
|
||||
'@types/react': '*'
|
||||
'@types/react-dom': '*'
|
||||
@@ -922,8 +928,8 @@ packages:
|
||||
'@types/react-dom':
|
||||
optional: true
|
||||
|
||||
'@radix-ui/react-accordion@1.2.12':
|
||||
resolution: {integrity: sha512-T4nygeh9YE9dLRPhAHSeOZi7HBXo+0kYIPJXayZfvWOWA0+n3dESrZbjfDPUABkUNym6Hd+f2IR113To8D2GPA==}
|
||||
'@radix-ui/react-accordion@1.2.16':
|
||||
resolution: {integrity: sha512-BpZJNmetujnGgUI6OX0jEhEmlA46WPqgub8Rv09Kyquwd0cc1ndMKpiPYCjmBU6KSSRPAMtgLpEoZSG/tdNIWQ==}
|
||||
peerDependencies:
|
||||
'@types/react': '*'
|
||||
'@types/react-dom': '*'
|
||||
@@ -935,8 +941,8 @@ packages:
|
||||
'@types/react-dom':
|
||||
optional: true
|
||||
|
||||
'@radix-ui/react-alert-dialog@1.1.15':
|
||||
resolution: {integrity: sha512-oTVLkEw5GpdRe29BqJ0LSDFWI3qu0vR1M0mUkOQWDIUnY/QIkLpgDMWuKxP94c2NAC2LGcgVhG1ImF3jkZ5wXw==}
|
||||
'@radix-ui/react-alert-dialog@1.1.19':
|
||||
resolution: {integrity: sha512-FA7n1f6D/DwGE0+AWxiY5LacNbbExQuEgMubeG06idEaH+mSLuf9dp/qBNqOnvbTQ+4gZ2ue1RATF1Ub91Mg5g==}
|
||||
peerDependencies:
|
||||
'@types/react': '*'
|
||||
'@types/react-dom': '*'
|
||||
@@ -948,8 +954,8 @@ packages:
|
||||
'@types/react-dom':
|
||||
optional: true
|
||||
|
||||
'@radix-ui/react-arrow@1.1.7':
|
||||
resolution: {integrity: sha512-F+M1tLhO+mlQaOWspE8Wstg+z6PwxwRd8oQ8IXceWz92kfAmalTRf0EjrouQeo7QssEPfCn05B4Ihs1K9WQ/7w==}
|
||||
'@radix-ui/react-arrow@1.1.11':
|
||||
resolution: {integrity: sha512-Kdil9BB1rIFC/khmf4hC35bn8701AJcizTU7G7cUbEbk5XqqbjDuHW60uUfKqO5WojjZcbAW51Q7P0hRmMLw8A==}
|
||||
peerDependencies:
|
||||
'@types/react': '*'
|
||||
'@types/react-dom': '*'
|
||||
@@ -961,8 +967,8 @@ packages:
|
||||
'@types/react-dom':
|
||||
optional: true
|
||||
|
||||
'@radix-ui/react-aspect-ratio@1.1.7':
|
||||
resolution: {integrity: sha512-Yq6lvO9HQyPwev1onK1daHCHqXVLzPhSVjmsNjCa2Zcxy2f7uJD2itDtxknv6FzAKCwD1qQkeVDmX/cev13n/g==}
|
||||
'@radix-ui/react-aspect-ratio@1.1.11':
|
||||
resolution: {integrity: sha512-IUAhIVpBUvP5NNICjlaB1OFmtRLGqQqTF3ZOSGPoq3XeLXRFtHiWTRxSVEULgOd9GQR2c7tsYqDnhUennapZnw==}
|
||||
peerDependencies:
|
||||
'@types/react': '*'
|
||||
'@types/react-dom': '*'
|
||||
@@ -974,8 +980,8 @@ packages:
|
||||
'@types/react-dom':
|
||||
optional: true
|
||||
|
||||
'@radix-ui/react-avatar@1.1.10':
|
||||
resolution: {integrity: sha512-V8piFfWapM5OmNCXTzVQY+E1rDa53zY+MQ4Y7356v4fFz6vqCyUtIz2rUD44ZEdwg78/jKmMJHj07+C/Z/rcog==}
|
||||
'@radix-ui/react-avatar@1.2.2':
|
||||
resolution: {integrity: sha512-sST0qh8GzOB7besQ3tMLWLyngnRuSk0gc/Hm+667KYKQFCt6Y6ZXv25WlqM7dIDK54ULCh5+CHmk4LIolzfz+A==}
|
||||
peerDependencies:
|
||||
'@types/react': '*'
|
||||
'@types/react-dom': '*'
|
||||
@@ -987,8 +993,8 @@ packages:
|
||||
'@types/react-dom':
|
||||
optional: true
|
||||
|
||||
'@radix-ui/react-checkbox@1.3.3':
|
||||
resolution: {integrity: sha512-wBbpv+NQftHDdG86Qc0pIyXk5IR3tM8Vd0nWLKDcX8nNn4nXFOFwsKuqw2okA/1D/mpaAkmuyndrPJTYDNZtFw==}
|
||||
'@radix-ui/react-checkbox@1.3.7':
|
||||
resolution: {integrity: sha512-JroKHfQBfh+fDuzpPsBC+pESkhuq8ql4hljTguz8MWnS35cISr3d/Jhl9kYrB44FlDtxCArYdDvTx+BSsJ64rQ==}
|
||||
peerDependencies:
|
||||
'@types/react': '*'
|
||||
'@types/react-dom': '*'
|
||||
@@ -1000,8 +1006,8 @@ packages:
|
||||
'@types/react-dom':
|
||||
optional: true
|
||||
|
||||
'@radix-ui/react-collapsible@1.1.12':
|
||||
resolution: {integrity: sha512-Uu+mSh4agx2ib1uIGPP4/CKNULyajb3p92LsVXmH2EHVMTfZWpll88XJ0j4W0z3f8NK1eYl1+Mf/szHPmcHzyA==}
|
||||
'@radix-ui/react-collapsible@1.1.16':
|
||||
resolution: {integrity: sha512-opfXRe6nnzyGmCDPx+l1Aqo/RbqWtQal2FnsBqF9hhePp6j0LsRoBaRxcMOlTv+uYTJVtWYZKg9t9wTe+BA/ZA==}
|
||||
peerDependencies:
|
||||
'@types/react': '*'
|
||||
'@types/react-dom': '*'
|
||||
@@ -1013,8 +1019,8 @@ packages:
|
||||
'@types/react-dom':
|
||||
optional: true
|
||||
|
||||
'@radix-ui/react-collection@1.1.7':
|
||||
resolution: {integrity: sha512-Fh9rGN0MoI4ZFUNyfFVNU4y9LUz93u9/0K+yLgA2bwRojxM8JU1DyvvMBabnZPBgMWREAJvU2jjVzq+LrFUglw==}
|
||||
'@radix-ui/react-collection@1.1.12':
|
||||
resolution: {integrity: sha512-nb67INpE0IahJKN7EYPp9m9YGwYeKlnzxT3MwXVkgCskaSJia97kG4T0ywpjNUSSnoJk/uvk12V8vbrEHEj+/Q==}
|
||||
peerDependencies:
|
||||
'@types/react': '*'
|
||||
'@types/react-dom': '*'
|
||||
@@ -1026,8 +1032,8 @@ packages:
|
||||
'@types/react-dom':
|
||||
optional: true
|
||||
|
||||
'@radix-ui/react-compose-refs@1.1.2':
|
||||
resolution: {integrity: sha512-z4eqJvfiNnFMHIIvXP3CY57y2WJs5g2v3X0zm9mEJkrkNv4rDxu+sg9Jh8EkXyeqBkB7SOcboo9dMVqhyrACIg==}
|
||||
'@radix-ui/react-compose-refs@1.1.3':
|
||||
resolution: {integrity: sha512-rYOP8OMnuuPMQF1uhPVlGNcCDlkokKqGFE3JcxFViIkAXP7EvFWUliJAstrapypaBLJNHbZL6jGhbVDGTwmVhA==}
|
||||
peerDependencies:
|
||||
'@types/react': '*'
|
||||
react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
|
||||
@@ -1035,8 +1041,8 @@ packages:
|
||||
'@types/react':
|
||||
optional: true
|
||||
|
||||
'@radix-ui/react-context-menu@2.2.16':
|
||||
resolution: {integrity: sha512-O8morBEW+HsVG28gYDZPTrT9UUovQUlJue5YO836tiTJhuIWBm/zQHc7j388sHWtdH/xUZurK9olD2+pcqx5ww==}
|
||||
'@radix-ui/react-context-menu@2.3.3':
|
||||
resolution: {integrity: sha512-PS+gKE0z2prJ74Y0sM+brAGK4mYOHIR7TlcV5EJgUQ6E0xMvyswkK2X4yRqyganrzsRL+WCSKAPu0NQITICRWg==}
|
||||
peerDependencies:
|
||||
'@types/react': '*'
|
||||
'@types/react-dom': '*'
|
||||
@@ -1048,8 +1054,8 @@ packages:
|
||||
'@types/react-dom':
|
||||
optional: true
|
||||
|
||||
'@radix-ui/react-context@1.1.2':
|
||||
resolution: {integrity: sha512-jCi/QKUM2r1Ju5a3J64TH2A5SpKAgh0LpknyqdQ4m6DCV0xJ2HG1xARRwNGPQfi1SLdLWZ1OJz6F4OMBBNiGJA==}
|
||||
'@radix-ui/react-context@1.2.0':
|
||||
resolution: {integrity: sha512-fOE+JtN9rygNZkCnHRBEP0TAvLldlhyOxMsbwFvTP4nAs+nBmfnna+o/Zski2wkmY1YMrFC0aSzsHoLY47iLrg==}
|
||||
peerDependencies:
|
||||
'@types/react': '*'
|
||||
react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
|
||||
@@ -1057,8 +1063,8 @@ packages:
|
||||
'@types/react':
|
||||
optional: true
|
||||
|
||||
'@radix-ui/react-dialog@1.1.15':
|
||||
resolution: {integrity: sha512-TCglVRtzlffRNxRMEyR36DGBLJpeusFcgMVD9PZEzAKnUs1lKCgX5u9BmC2Yg+LL9MgZDugFFs1Vl+Jp4t/PGw==}
|
||||
'@radix-ui/react-dialog@1.1.19':
|
||||
resolution: {integrity: sha512-+HhbN2+YtkRgVirjZ2afMeutQRuGOrdkWR5+EFC58SJojGmtyNQwYzgi6tHBpOxvFHefMtPeHdgtjz0BOGxFQg==}
|
||||
peerDependencies:
|
||||
'@types/react': '*'
|
||||
'@types/react-dom': '*'
|
||||
@@ -1070,8 +1076,8 @@ packages:
|
||||
'@types/react-dom':
|
||||
optional: true
|
||||
|
||||
'@radix-ui/react-direction@1.1.1':
|
||||
resolution: {integrity: sha512-1UEWRX6jnOA2y4H5WczZ44gOOjTEmlqv1uNW4GAJEO5+bauCBhv8snY65Iw5/VOS/ghKN9gr2KjnLKxrsvoMVw==}
|
||||
'@radix-ui/react-direction@1.1.2':
|
||||
resolution: {integrity: sha512-C3vFhbyi4SW3PmbAi6Awpu4OzJtd0MxGurvSsYtr7p7nM8RNB3VAF3CUmnp2j50knpkrRcB7+ycVXzgLgF6yNA==}
|
||||
peerDependencies:
|
||||
'@types/react': '*'
|
||||
react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
|
||||
@@ -1079,8 +1085,8 @@ packages:
|
||||
'@types/react':
|
||||
optional: true
|
||||
|
||||
'@radix-ui/react-dismissable-layer@1.1.11':
|
||||
resolution: {integrity: sha512-Nqcp+t5cTB8BinFkZgXiMJniQH0PsUt2k51FUhbdfeKvc4ACcG2uQniY/8+h1Yv6Kza4Q7lD7PQV0z0oicE0Mg==}
|
||||
'@radix-ui/react-dismissable-layer@1.1.15':
|
||||
resolution: {integrity: sha512-b0XaRlzn2QKuo10XyNgi2DAJDf5XC9d1nD3FJcuvCjbR7+4Ad28zmZsLsqx+hvDEzMnRuZaZxZm9gYObV6RmRA==}
|
||||
peerDependencies:
|
||||
'@types/react': '*'
|
||||
'@types/react-dom': '*'
|
||||
@@ -1092,8 +1098,8 @@ packages:
|
||||
'@types/react-dom':
|
||||
optional: true
|
||||
|
||||
'@radix-ui/react-dropdown-menu@2.1.16':
|
||||
resolution: {integrity: sha512-1PLGQEynI/3OX/ftV54COn+3Sud/Mn8vALg2rWnBLnRaGtJDduNW/22XjlGgPdpcIbiQxjKtb7BkcjP00nqfJw==}
|
||||
'@radix-ui/react-dropdown-menu@2.1.20':
|
||||
resolution: {integrity: sha512-slfm+rRaZRuQBvHq60lXvSVUPhid0IPtjSZzIuUlWZMUs01iYZNlGS3mJgRD3ChLQVBAYlKiL/tFyWGX+dz8Xw==}
|
||||
peerDependencies:
|
||||
'@types/react': '*'
|
||||
'@types/react-dom': '*'
|
||||
@@ -1105,8 +1111,8 @@ packages:
|
||||
'@types/react-dom':
|
||||
optional: true
|
||||
|
||||
'@radix-ui/react-focus-guards@1.1.3':
|
||||
resolution: {integrity: sha512-0rFg/Rj2Q62NCm62jZw0QX7a3sz6QCQU0LpZdNrJX8byRGaGVTqbrW9jAoIAHyMQqsNpeZ81YgSizOt5WXq0Pw==}
|
||||
'@radix-ui/react-focus-guards@1.1.4':
|
||||
resolution: {integrity: sha512-cot/aB/mOm0IYVYTTmQcEEK1M48lZWi8FlYe5nDPQQ8NYZUlXEFgncJ9p2Kzer3RKSrY7cTTpEMLZKNo9QoP5Q==}
|
||||
peerDependencies:
|
||||
'@types/react': '*'
|
||||
react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
|
||||
@@ -1114,8 +1120,8 @@ packages:
|
||||
'@types/react':
|
||||
optional: true
|
||||
|
||||
'@radix-ui/react-focus-scope@1.1.7':
|
||||
resolution: {integrity: sha512-t2ODlkXBQyn7jkl6TNaw/MtVEVvIGelJDCG41Okq/KwUsJBwQ4XVZsHAVUkK4mBv3ewiAS3PGuUWuY2BoK4ZUw==}
|
||||
'@radix-ui/react-focus-scope@1.1.12':
|
||||
resolution: {integrity: sha512-jjk/lqTeNL0azUx5ZYzVrl4NgaDIrdzTNE4mABV9yBFI7FQqN7pIgzV1bTleUezP2QiTGA1BFTqY8MegDgWX9A==}
|
||||
peerDependencies:
|
||||
'@types/react': '*'
|
||||
'@types/react-dom': '*'
|
||||
@@ -1127,8 +1133,8 @@ packages:
|
||||
'@types/react-dom':
|
||||
optional: true
|
||||
|
||||
'@radix-ui/react-form@0.1.8':
|
||||
resolution: {integrity: sha512-QM70k4Zwjttifr5a4sZFts9fn8FzHYvQ5PiB19O2HsYibaHSVt9fH9rzB0XZo/YcM+b7t/p7lYCT/F5eOeF5yQ==}
|
||||
'@radix-ui/react-form@0.1.12':
|
||||
resolution: {integrity: sha512-JTX94E4LDL91rzLg7X0mHPdxr0A8JEdVwZEmeOwZJSMDHCGW5DFtSlTSJozUyUs807IQmnvbfzKZFVCK5DmkqQ==}
|
||||
peerDependencies:
|
||||
'@types/react': '*'
|
||||
'@types/react-dom': '*'
|
||||
@@ -1140,8 +1146,8 @@ packages:
|
||||
'@types/react-dom':
|
||||
optional: true
|
||||
|
||||
'@radix-ui/react-hover-card@1.1.15':
|
||||
resolution: {integrity: sha512-qgTkjNT1CfKMoP0rcasmlH2r1DAiYicWsDsufxl940sT2wHNEWWv6FMWIQXWhVdmC1d/HYfbhQx60KYyAtKxjg==}
|
||||
'@radix-ui/react-hover-card@1.1.19':
|
||||
resolution: {integrity: sha512-2KTgMLQtKvicznQgbindEI2RZ3QbDIwU5gabjUPwFJsormjGDz+rUvO4NANmYwzEEpTcTONUt33vBHIfTIVSfw==}
|
||||
peerDependencies:
|
||||
'@types/react': '*'
|
||||
'@types/react-dom': '*'
|
||||
@@ -1153,8 +1159,8 @@ packages:
|
||||
'@types/react-dom':
|
||||
optional: true
|
||||
|
||||
'@radix-ui/react-id@1.1.1':
|
||||
resolution: {integrity: sha512-kGkGegYIdQsOb4XjsfM97rXsiHaBwco+hFI66oO4s9LU+PLAC5oJ7khdOVFxkhsmlbpUqDAvXw11CluXP+jkHg==}
|
||||
'@radix-ui/react-id@1.1.2':
|
||||
resolution: {integrity: sha512-orBC88futVpqCmhX1p4cvquNHsELQ+w+vBJnuj3ftETI5bJb0bZn3Tqu3SWN2IOcPycTnMGnhwoermvISt72sA==}
|
||||
peerDependencies:
|
||||
'@types/react': '*'
|
||||
react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
|
||||
@@ -1162,8 +1168,8 @@ packages:
|
||||
'@types/react':
|
||||
optional: true
|
||||
|
||||
'@radix-ui/react-label@2.1.7':
|
||||
resolution: {integrity: sha512-YT1GqPSL8kJn20djelMX7/cTRp/Y9w5IZHvfxQTVHrOqa2yMl7i/UfMqKRU5V7mEyKTrUVgJXhNQPVCG8PBLoQ==}
|
||||
'@radix-ui/react-label@2.1.11':
|
||||
resolution: {integrity: sha512-3PKvDDxOn62k0oV1n4QtNtD2vpu+zYjXR7ojLBPaO6SPvhy53yg0vAmgNeBQeJW5rV3dffoRG+HYfLBZuzw0CQ==}
|
||||
peerDependencies:
|
||||
'@types/react': '*'
|
||||
'@types/react-dom': '*'
|
||||
@@ -1175,8 +1181,8 @@ packages:
|
||||
'@types/react-dom':
|
||||
optional: true
|
||||
|
||||
'@radix-ui/react-menu@2.1.16':
|
||||
resolution: {integrity: sha512-72F2T+PLlphrqLcAotYPp0uJMr5SjP5SL01wfEspJbru5Zs5vQaSHb4VB3ZMJPimgHHCHG7gMOeOB9H3Hdmtxg==}
|
||||
'@radix-ui/react-menu@2.1.20':
|
||||
resolution: {integrity: sha512-VsUrXxFe9d2ScbZF0fR/oPR1+qjyeLs5p0jzG8h90puMoA9bq4SirYlXbE+USRg9Q2qTeJSFNqjw2nts8jJe4w==}
|
||||
peerDependencies:
|
||||
'@types/react': '*'
|
||||
'@types/react-dom': '*'
|
||||
@@ -1188,8 +1194,8 @@ packages:
|
||||
'@types/react-dom':
|
||||
optional: true
|
||||
|
||||
'@radix-ui/react-menubar@1.1.16':
|
||||
resolution: {integrity: sha512-EB1FktTz5xRRi2Er974AUQZWg2yVBb1yjip38/lgwtCVRd3a+maUoGHN/xs9Yv8SY8QwbSEb+YrxGadVWbEutA==}
|
||||
'@radix-ui/react-menubar@1.1.20':
|
||||
resolution: {integrity: sha512-gzFZvybgmwYsFBWDqanycIoEYnhyk8MMnuLamdFVHUZYGp4COM+sqXiwbnn0VMWqGLeeU7GV7jm+dXRa+Wufag==}
|
||||
peerDependencies:
|
||||
'@types/react': '*'
|
||||
'@types/react-dom': '*'
|
||||
@@ -1201,8 +1207,8 @@ packages:
|
||||
'@types/react-dom':
|
||||
optional: true
|
||||
|
||||
'@radix-ui/react-navigation-menu@1.2.14':
|
||||
resolution: {integrity: sha512-YB9mTFQvCOAQMHU+C/jVl96WmuWeltyUEpRJJky51huhds5W2FQr1J8D/16sQlf0ozxkPK8uF3niQMdUwZPv5w==}
|
||||
'@radix-ui/react-navigation-menu@1.2.18':
|
||||
resolution: {integrity: sha512-K9HiuxZ6xCwSaHcIuUpxyhy4w5gpwzWjh9dHTSbMN3Ix4qAyVObS9RlU3zMycb0PO3v9Tpk0BXMwWvXOUbVXew==}
|
||||
peerDependencies:
|
||||
'@types/react': '*'
|
||||
'@types/react-dom': '*'
|
||||
@@ -1214,8 +1220,8 @@ packages:
|
||||
'@types/react-dom':
|
||||
optional: true
|
||||
|
||||
'@radix-ui/react-one-time-password-field@0.1.8':
|
||||
resolution: {integrity: sha512-ycS4rbwURavDPVjCb5iS3aG4lURFDILi6sKI/WITUMZ13gMmn/xGjpLoqBAalhJaDk8I3UbCM5GzKHrnzwHbvg==}
|
||||
'@radix-ui/react-one-time-password-field@0.1.12':
|
||||
resolution: {integrity: sha512-nQLu5OAcORDQp1EHAv6k3mJGV1hjMTw2NTGVAsGE1g/mWeNqAd1R5jyaAs3U+A8ZD/W8XNPY2yKT0ZdQnqo3NA==}
|
||||
peerDependencies:
|
||||
'@types/react': '*'
|
||||
'@types/react-dom': '*'
|
||||
@@ -1227,8 +1233,8 @@ packages:
|
||||
'@types/react-dom':
|
||||
optional: true
|
||||
|
||||
'@radix-ui/react-password-toggle-field@0.1.3':
|
||||
resolution: {integrity: sha512-/UuCrDBWravcaMix4TdT+qlNdVwOM1Nck9kWx/vafXsdfj1ChfhOdfi3cy9SGBpWgTXwYCuboT/oYpJy3clqfw==}
|
||||
'@radix-ui/react-password-toggle-field@0.1.7':
|
||||
resolution: {integrity: sha512-gB1Mr8vzdv1XzDjrtJTXmL0JORRs1B4g7ngUs0F+H2VvMOwXTZMTmLCl0wZZ3m7ylX8TssI7NCvgiSHmLuTm/A==}
|
||||
peerDependencies:
|
||||
'@types/react': '*'
|
||||
'@types/react-dom': '*'
|
||||
@@ -1240,8 +1246,8 @@ packages:
|
||||
'@types/react-dom':
|
||||
optional: true
|
||||
|
||||
'@radix-ui/react-popover@1.1.15':
|
||||
resolution: {integrity: sha512-kr0X2+6Yy/vJzLYJUPCZEc8SfQcf+1COFoAqauJm74umQhta9M7lNJHP7QQS3vkvcGLQUbWpMzwrXYwrYztHKA==}
|
||||
'@radix-ui/react-popover@1.1.19':
|
||||
resolution: {integrity: sha512-jkrTdQVxnIB8fpn0NyyxW9CTB5aCXZZelVz5z+Xmii6g5WxMqS3fInNslZ63puP39+Puu4jYohUK31y3dT87gQ==}
|
||||
peerDependencies:
|
||||
'@types/react': '*'
|
||||
'@types/react-dom': '*'
|
||||
@@ -1253,8 +1259,8 @@ packages:
|
||||
'@types/react-dom':
|
||||
optional: true
|
||||
|
||||
'@radix-ui/react-popper@1.2.8':
|
||||
resolution: {integrity: sha512-0NJQ4LFFUuWkE7Oxf0htBKS6zLkkjBH+hM1uk7Ng705ReR8m/uelduy1DBo0PyBXPKVnBA6YBlU94MBGXrSBCw==}
|
||||
'@radix-ui/react-popper@1.3.3':
|
||||
resolution: {integrity: sha512-mS7dGpyjv6b+gsDjLF7e0ia1W4Im1B1hSCy2yuXlHuvnZxHKagfDaobt/KAKt27EpZMit2pss8eJBVyVjEWM+g==}
|
||||
peerDependencies:
|
||||
'@types/react': '*'
|
||||
'@types/react-dom': '*'
|
||||
@@ -1266,8 +1272,8 @@ packages:
|
||||
'@types/react-dom':
|
||||
optional: true
|
||||
|
||||
'@radix-ui/react-portal@1.1.9':
|
||||
resolution: {integrity: sha512-bpIxvq03if6UNwXZ+HTK71JLh4APvnXntDc6XOX8UVq4XQOVl7lwok0AvIl+b8zgCw3fSaVTZMpAPPagXbKmHQ==}
|
||||
'@radix-ui/react-portal@1.1.13':
|
||||
resolution: {integrity: sha512-z3oXfmaHLJTF1wktbjgD6cn9jiEbq3WSondB10LIuIt2m2Ym4iJlrW04/euMwENDdWDdE7z+OuY7Qyp1YpRSwA==}
|
||||
peerDependencies:
|
||||
'@types/react': '*'
|
||||
'@types/react-dom': '*'
|
||||
@@ -1279,8 +1285,8 @@ packages:
|
||||
'@types/react-dom':
|
||||
optional: true
|
||||
|
||||
'@radix-ui/react-presence@1.1.5':
|
||||
resolution: {integrity: sha512-/jfEwNDdQVBCNvjkGit4h6pMOzq8bHkopq458dPt2lMjx+eBQUohZNG9A7DtO/O5ukSbxuaNGXMjHicgwy6rQQ==}
|
||||
'@radix-ui/react-presence@1.1.7':
|
||||
resolution: {integrity: sha512-zBZ4QM5XG3JRanDmqXYf3MD6th4AFXFmgU6KNMFzUaV6F3uw9I5/zjMUvFriSEn5ewo1nxuibvyxJdmLlDcslA==}
|
||||
peerDependencies:
|
||||
'@types/react': '*'
|
||||
'@types/react-dom': '*'
|
||||
@@ -1292,8 +1298,8 @@ packages:
|
||||
'@types/react-dom':
|
||||
optional: true
|
||||
|
||||
'@radix-ui/react-primitive@2.1.3':
|
||||
resolution: {integrity: sha512-m9gTwRkhy2lvCPe6QJp4d3G1TYEUHn/FzJUtq9MjH46an1wJU+GdoGC5VLof8RX8Ft/DlpshApkhswDLZzHIcQ==}
|
||||
'@radix-ui/react-primitive@2.1.7':
|
||||
resolution: {integrity: sha512-bC3NiwsprbxKjuon9l7X6BUTw7FPVzEYaL92MPEY5SCd/9hUTPXVFtVwRix7778wtRsVao+zE062gL79FZleeQ==}
|
||||
peerDependencies:
|
||||
'@types/react': '*'
|
||||
'@types/react-dom': '*'
|
||||
@@ -1305,8 +1311,8 @@ packages:
|
||||
'@types/react-dom':
|
||||
optional: true
|
||||
|
||||
'@radix-ui/react-progress@1.1.7':
|
||||
resolution: {integrity: sha512-vPdg/tF6YC/ynuBIJlk1mm7Le0VgW6ub6J2UWnTQ7/D23KXcPI1qy+0vBkgKgd38RCMJavBXpB83HPNFMTb0Fg==}
|
||||
'@radix-ui/react-progress@1.1.12':
|
||||
resolution: {integrity: sha512-ZPHyI0JyzoH/rP0tq2uRaIZTj/4s8+kAbqPz+e2N8+ejHvwPJ889dHhqn+vh7PNvNeq+boAoH9yzqeoShzwF2w==}
|
||||
peerDependencies:
|
||||
'@types/react': '*'
|
||||
'@types/react-dom': '*'
|
||||
@@ -1318,8 +1324,8 @@ packages:
|
||||
'@types/react-dom':
|
||||
optional: true
|
||||
|
||||
'@radix-ui/react-radio-group@1.3.8':
|
||||
resolution: {integrity: sha512-VBKYIYImA5zsxACdisNQ3BjCBfmbGH3kQlnFVqlWU4tXwjy7cGX8ta80BcrO+WJXIn5iBylEH3K6ZTlee//lgQ==}
|
||||
'@radix-ui/react-radio-group@1.4.3':
|
||||
resolution: {integrity: sha512-WwZFjWV4s3aC1QtR3k04R+oANHtX2q6fgKlc7MCEiDNlnTxCZ3H8k3mHtEgVlOejystwk1WQgarQhNOQZ2bK1g==}
|
||||
peerDependencies:
|
||||
'@types/react': '*'
|
||||
'@types/react-dom': '*'
|
||||
@@ -1331,8 +1337,8 @@ packages:
|
||||
'@types/react-dom':
|
||||
optional: true
|
||||
|
||||
'@radix-ui/react-roving-focus@1.1.11':
|
||||
resolution: {integrity: sha512-7A6S9jSgm/S+7MdtNDSb+IU859vQqJ/QAtcYQcfFC6W8RS4IxIZDldLR0xqCFZ6DCyrQLjLPsxtTNch5jVA4lA==}
|
||||
'@radix-ui/react-roving-focus@1.1.15':
|
||||
resolution: {integrity: sha512-40svmmugfM3mUN7VUDGVE1tQGOhyi8enlGD0CNJEcMM36C1f71PKM21DFgNHUfem0XnA+d8H8oN3Z9ZpJjSslg==}
|
||||
peerDependencies:
|
||||
'@types/react': '*'
|
||||
'@types/react-dom': '*'
|
||||
@@ -1344,8 +1350,8 @@ packages:
|
||||
'@types/react-dom':
|
||||
optional: true
|
||||
|
||||
'@radix-ui/react-scroll-area@1.2.10':
|
||||
resolution: {integrity: sha512-tAXIa1g3sM5CGpVT0uIbUx/U3Gs5N8T52IICuCtObaos1S8fzsrPXG5WObkQN3S6NVl6wKgPhAIiBGbWnvc97A==}
|
||||
'@radix-ui/react-scroll-area@1.2.14':
|
||||
resolution: {integrity: sha512-bBODCWZK7JTbQLHs0uIP4f73wIWatakK4OS33UzkR1x897wu0PuO658a3f+6P2GEGyDzGYMuHRatMVoAk9WZTw==}
|
||||
peerDependencies:
|
||||
'@types/react': '*'
|
||||
'@types/react-dom': '*'
|
||||
@@ -1357,8 +1363,8 @@ packages:
|
||||
'@types/react-dom':
|
||||
optional: true
|
||||
|
||||
'@radix-ui/react-select@2.2.6':
|
||||
resolution: {integrity: sha512-I30RydO+bnn2PQztvo25tswPH+wFBjehVGtmagkU78yMdwTwVf12wnAOF+AeP8S2N8xD+5UPbGhkUfPyvT+mwQ==}
|
||||
'@radix-ui/react-select@2.3.3':
|
||||
resolution: {integrity: sha512-L5RQTXz6Anxsf9CCv+pTgiAsUpyVj7rJxsGtmhFaEOJ++cVfXucv4qWfsIO0AIB4NAhi3yovWGVMKKS1Xf1Wrg==}
|
||||
peerDependencies:
|
||||
'@types/react': '*'
|
||||
'@types/react-dom': '*'
|
||||
@@ -1370,8 +1376,8 @@ packages:
|
||||
'@types/react-dom':
|
||||
optional: true
|
||||
|
||||
'@radix-ui/react-separator@1.1.7':
|
||||
resolution: {integrity: sha512-0HEb8R9E8A+jZjvmFCy/J4xhbXy3TV+9XSnGJ3KvTtjlIUy/YQ/p6UYZvi7YbeoeXdyU9+Y3scizK6hkY37baA==}
|
||||
'@radix-ui/react-separator@1.1.11':
|
||||
resolution: {integrity: sha512-jRhe86+8PF7VZ1u14eOWVOuh2BuAhALg/FT1VcMC4OHedMTRUazDnDlKTt+yxo5cRNKHMfmvZ4sSQtWDeMV4CQ==}
|
||||
peerDependencies:
|
||||
'@types/react': '*'
|
||||
'@types/react-dom': '*'
|
||||
@@ -1383,8 +1389,8 @@ packages:
|
||||
'@types/react-dom':
|
||||
optional: true
|
||||
|
||||
'@radix-ui/react-slider@1.3.6':
|
||||
resolution: {integrity: sha512-JPYb1GuM1bxfjMRlNLE+BcmBC8onfCi60Blk7OBqi2MLTFdS+8401U4uFjnwkOr49BLmXxLC6JHkvAsx5OJvHw==}
|
||||
'@radix-ui/react-slider@1.4.3':
|
||||
resolution: {integrity: sha512-CWVVj+XaTom0SKCqw1EUgb0NuiLwS+N3OFG73mVEezKEjgNIvZiu0EevMelSSU+CbX3owbqJweG2gPU31WGC5A==}
|
||||
peerDependencies:
|
||||
'@types/react': '*'
|
||||
'@types/react-dom': '*'
|
||||
@@ -1396,8 +1402,8 @@ packages:
|
||||
'@types/react-dom':
|
||||
optional: true
|
||||
|
||||
'@radix-ui/react-slot@1.2.3':
|
||||
resolution: {integrity: sha512-aeNmHnBxbi2St0au6VBVC7JXFlhLlOnvIIlePNniyUNAClzmtAUEY8/pBiK3iHjufOlwA+c20/8jngo7xcrg8A==}
|
||||
'@radix-ui/react-slot@1.3.0':
|
||||
resolution: {integrity: sha512-MojKku4U/miO8Av4Dkb+ctMAQx7JmY96LmtDQlAarCRtd7rN52QCSzBF+XAvr5S6coSVj9HEPBgHAHKEJVk/WA==}
|
||||
peerDependencies:
|
||||
'@types/react': '*'
|
||||
react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
|
||||
@@ -1405,8 +1411,8 @@ packages:
|
||||
'@types/react':
|
||||
optional: true
|
||||
|
||||
'@radix-ui/react-switch@1.2.6':
|
||||
resolution: {integrity: sha512-bByzr1+ep1zk4VubeEVViV592vu2lHE2BZY5OnzehZqOOgogN80+mNtCqPkhn2gklJqOpxWgPoYTSnhBCqpOXQ==}
|
||||
'@radix-ui/react-switch@1.3.3':
|
||||
resolution: {integrity: sha512-1+mlB4/lxJfk5tgJ4g+R5mUCbRpPE1T9+UsEyeLYbGgMtwiMgmuTnfKz4Mw1nHALHjuwyxw4MLd4cSHn6pNSlQ==}
|
||||
peerDependencies:
|
||||
'@types/react': '*'
|
||||
'@types/react-dom': '*'
|
||||
@@ -1418,8 +1424,8 @@ packages:
|
||||
'@types/react-dom':
|
||||
optional: true
|
||||
|
||||
'@radix-ui/react-tabs@1.1.13':
|
||||
resolution: {integrity: sha512-7xdcatg7/U+7+Udyoj2zodtI9H/IIopqo+YOIcZOq1nJwXWBZ9p8xiu5llXlekDbZkca79a/fozEYQXIA4sW6A==}
|
||||
'@radix-ui/react-tabs@1.1.17':
|
||||
resolution: {integrity: sha512-nRyXnrAVCwjeXcHbvEbLS6ndbTeKHG1RqCP4A8Gw5L4cemDzPXdD8rAmr6wet0v57R69wGvuIIsFjHSVkZiMzQ==}
|
||||
peerDependencies:
|
||||
'@types/react': '*'
|
||||
'@types/react-dom': '*'
|
||||
@@ -1431,8 +1437,8 @@ packages:
|
||||
'@types/react-dom':
|
||||
optional: true
|
||||
|
||||
'@radix-ui/react-toast@1.2.15':
|
||||
resolution: {integrity: sha512-3OSz3TacUWy4WtOXV38DggwxoqJK4+eDkNMl5Z/MJZaoUPaP4/9lf81xXMe1I2ReTAptverZUpbPY4wWwWyL5g==}
|
||||
'@radix-ui/react-toast@1.2.19':
|
||||
resolution: {integrity: sha512-SxfVZfVOibWKWdkf0Xx1awW2d09fQu4V4PXDY1j5hi4MVf7MWdJZqTBJMa1KWtOr1S6GGtCk02nniZ0Iia+dHw==}
|
||||
peerDependencies:
|
||||
'@types/react': '*'
|
||||
'@types/react-dom': '*'
|
||||
@@ -1444,8 +1450,8 @@ packages:
|
||||
'@types/react-dom':
|
||||
optional: true
|
||||
|
||||
'@radix-ui/react-toggle-group@1.1.11':
|
||||
resolution: {integrity: sha512-5umnS0T8JQzQT6HbPyO7Hh9dgd82NmS36DQr+X/YJ9ctFNCiiQd6IJAYYZ33LUwm8M+taCz5t2ui29fHZc4Y6Q==}
|
||||
'@radix-ui/react-toggle-group@1.1.15':
|
||||
resolution: {integrity: sha512-gIC5Q+Xljg7lmUdzSuDoy0t97yZn1sZl00Ra37ZvKrYdWnQLU6sWLd09yG8cIB9jUAlQfHgJ2ACAG00MFwsqSQ==}
|
||||
peerDependencies:
|
||||
'@types/react': '*'
|
||||
'@types/react-dom': '*'
|
||||
@@ -1457,8 +1463,8 @@ packages:
|
||||
'@types/react-dom':
|
||||
optional: true
|
||||
|
||||
'@radix-ui/react-toggle@1.1.10':
|
||||
resolution: {integrity: sha512-lS1odchhFTeZv3xwHH31YPObmJn8gOg7Lq12inrr0+BH/l3Tsq32VfjqH1oh80ARM3mlkfMic15n0kg4sD1poQ==}
|
||||
'@radix-ui/react-toggle@1.1.14':
|
||||
resolution: {integrity: sha512-QI/hB65XKWACA66P64A+aHxtLUgHJeJLkaQa+awUNXT6T3swndtY5DojeHA+vldrTspMTtFBd7HfZ9QGbM1Qrw==}
|
||||
peerDependencies:
|
||||
'@types/react': '*'
|
||||
'@types/react-dom': '*'
|
||||
@@ -1470,8 +1476,8 @@ packages:
|
||||
'@types/react-dom':
|
||||
optional: true
|
||||
|
||||
'@radix-ui/react-toolbar@1.1.11':
|
||||
resolution: {integrity: sha512-4ol06/1bLoFu1nwUqzdD4Y5RZ9oDdKeiHIsntug54Hcr1pgaHiPqHFEaXI1IFP/EsOfROQZ8Mig9VTIRza6Tjg==}
|
||||
'@radix-ui/react-toolbar@1.1.15':
|
||||
resolution: {integrity: sha512-t/iEuVjUnXXtrsGK40AA43uIx37sn3AqZ7oAVnPICK6lFJP6dzMzWR3U9b6eCfFjb6wtSEqkJ9Rn9xDjiOx20g==}
|
||||
peerDependencies:
|
||||
'@types/react': '*'
|
||||
'@types/react-dom': '*'
|
||||
@@ -1483,8 +1489,8 @@ packages:
|
||||
'@types/react-dom':
|
||||
optional: true
|
||||
|
||||
'@radix-ui/react-tooltip@1.2.8':
|
||||
resolution: {integrity: sha512-tY7sVt1yL9ozIxvmbtN5qtmH2krXcBCfjEiCgKGLqunJHvgvZG2Pcl2oQ3kbcZARb1BGEHdkLzcYGO8ynVlieg==}
|
||||
'@radix-ui/react-tooltip@1.2.12':
|
||||
resolution: {integrity: sha512-U3HoftgWnmla78vzQbLvKKb7bUYJxoiiqYFzp1wu/TBMyDqMZSuCl3aRICsD6EfVEwcJD2mumGDGUXLFVqQHKA==}
|
||||
peerDependencies:
|
||||
'@types/react': '*'
|
||||
'@types/react-dom': '*'
|
||||
@@ -1496,8 +1502,8 @@ packages:
|
||||
'@types/react-dom':
|
||||
optional: true
|
||||
|
||||
'@radix-ui/react-use-callback-ref@1.1.1':
|
||||
resolution: {integrity: sha512-FkBMwD+qbGQeMu1cOHnuGB6x4yzPjho8ap5WtbEJ26umhgqVXbhekKUQO+hZEL1vU92a3wHwdp0HAcqAUF5iDg==}
|
||||
'@radix-ui/react-use-callback-ref@1.1.2':
|
||||
resolution: {integrity: sha512-xCso9j1/u8sEgP1RNHjFrXJLApL8LiqOkI1R4ywuN00rxWdYg4oQXuwKLS3i0j5NWLromUD27/4nlxj2UFVvIw==}
|
||||
peerDependencies:
|
||||
'@types/react': '*'
|
||||
react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
|
||||
@@ -1505,8 +1511,8 @@ packages:
|
||||
'@types/react':
|
||||
optional: true
|
||||
|
||||
'@radix-ui/react-use-controllable-state@1.2.2':
|
||||
resolution: {integrity: sha512-BjasUjixPFdS+NKkypcyyN5Pmg83Olst0+c6vGov0diwTEo6mgdqVR6hxcEgFuh4QrAs7Rc+9KuGJ9TVCj0Zzg==}
|
||||
'@radix-ui/react-use-controllable-state@1.2.3':
|
||||
resolution: {integrity: sha512-PLzC90MS+ReootmjC597dvopoelpZ8Q61HJkDXZSExitIq7PL55vHNnesAHwguHK0aPfBnpdNzQtv1uliaqQrA==}
|
||||
peerDependencies:
|
||||
'@types/react': '*'
|
||||
react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
|
||||
@@ -1514,8 +1520,8 @@ packages:
|
||||
'@types/react':
|
||||
optional: true
|
||||
|
||||
'@radix-ui/react-use-effect-event@0.0.2':
|
||||
resolution: {integrity: sha512-Qp8WbZOBe+blgpuUT+lw2xheLP8q0oatc9UpmiemEICxGvFLYmHm9QowVZGHtJlGbS6A6yJ3iViad/2cVjnOiA==}
|
||||
'@radix-ui/react-use-effect-event@0.0.3':
|
||||
resolution: {integrity: sha512-6c8ZqvPTWILEKnyVkP53EGRCcpnJiKTC21sS/6R1GF5xKyHJJWQEPfkqlcgUkdRQivd6tb23abUwe4ngWmY0JA==}
|
||||
peerDependencies:
|
||||
'@types/react': '*'
|
||||
react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
|
||||
@@ -1523,8 +1529,8 @@ packages:
|
||||
'@types/react':
|
||||
optional: true
|
||||
|
||||
'@radix-ui/react-use-escape-keydown@1.1.1':
|
||||
resolution: {integrity: sha512-Il0+boE7w/XebUHyBjroE+DbByORGR9KKmITzbR7MyQ4akpORYP/ZmbhAr0DG7RmmBqoOnZdy2QlvajJ2QA59g==}
|
||||
'@radix-ui/react-use-escape-keydown@1.1.3':
|
||||
resolution: {integrity: sha512-3wEkMiPHXha/2VadZ68rYBcmYnPINVGl4Y3gtcM7fKRjANk0OscK+cdqBgUWdozb7YJxsh0vefM7vgAMHXOjqg==}
|
||||
peerDependencies:
|
||||
'@types/react': '*'
|
||||
react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
|
||||
@@ -1532,8 +1538,8 @@ packages:
|
||||
'@types/react':
|
||||
optional: true
|
||||
|
||||
'@radix-ui/react-use-is-hydrated@0.1.0':
|
||||
resolution: {integrity: sha512-U+UORVEq+cTnRIaostJv9AGdV3G6Y+zbVd+12e18jQ5A3c0xL03IhnHuiU4UV69wolOQp5GfR58NW/EgdQhwOA==}
|
||||
'@radix-ui/react-use-is-hydrated@0.1.1':
|
||||
resolution: {integrity: sha512-qwOiz4Tjo8CNnrOLAYUMXeZwDzXgXpvK4TKQPmWLECM9XoWvA6+0Z2/7Ag3A4ivjS4ovbLJPbskkxioFyBhr8A==}
|
||||
peerDependencies:
|
||||
'@types/react': '*'
|
||||
react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
|
||||
@@ -1541,8 +1547,8 @@ packages:
|
||||
'@types/react':
|
||||
optional: true
|
||||
|
||||
'@radix-ui/react-use-layout-effect@1.1.1':
|
||||
resolution: {integrity: sha512-RbJRS4UWQFkzHTTwVymMTUv8EqYhOp8dOOviLj2ugtTiXRaRQS7GLGxZTLL1jWhMeoSCf5zmcZkqTl9IiYfXcQ==}
|
||||
'@radix-ui/react-use-layout-effect@1.1.2':
|
||||
resolution: {integrity: sha512-jrBWOxZITuGcnjRCM2t2U5ZPkCLxD+Ym6DjfssS5haTj2iiak/DOb64JeN6OdLfLgptb6/e2kKR+ZuTrGoZTPA==}
|
||||
peerDependencies:
|
||||
'@types/react': '*'
|
||||
react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
|
||||
@@ -1550,8 +1556,8 @@ packages:
|
||||
'@types/react':
|
||||
optional: true
|
||||
|
||||
'@radix-ui/react-use-previous@1.1.1':
|
||||
resolution: {integrity: sha512-2dHfToCj/pzca2Ck724OZ5L0EVrr3eHRNsG/b3xQJLA2hZpVCS99bLAX+hm1IHXDEnzU6by5z/5MIY794/a8NQ==}
|
||||
'@radix-ui/react-use-previous@1.1.2':
|
||||
resolution: {integrity: sha512-IGBQPtRFdhN6MQ8dbegVmBq1LVZluya3F1jWY+puIcQC3MHctRwTDSBWCkL/3ZcnMJLTMJ++Z+ktmvg0F89iCw==}
|
||||
peerDependencies:
|
||||
'@types/react': '*'
|
||||
react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
|
||||
@@ -1559,8 +1565,8 @@ packages:
|
||||
'@types/react':
|
||||
optional: true
|
||||
|
||||
'@radix-ui/react-use-rect@1.1.1':
|
||||
resolution: {integrity: sha512-QTYuDesS0VtuHNNvMh+CjlKJ4LJickCMUAqjlE3+j8w+RlRpwyX3apEQKGFzbZGdo7XNG1tXa+bQqIE7HIXT2w==}
|
||||
'@radix-ui/react-use-rect@1.1.2':
|
||||
resolution: {integrity: sha512-d8a+bBY/FxikNPlgJJoaBHZX+zKVbWHYJGTLnLvveQgFSTntkGdEKv3JDtHrMS0DNYpllz2nRsTLGLKYttbpmw==}
|
||||
peerDependencies:
|
||||
'@types/react': '*'
|
||||
react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
|
||||
@@ -1568,8 +1574,8 @@ packages:
|
||||
'@types/react':
|
||||
optional: true
|
||||
|
||||
'@radix-ui/react-use-size@1.1.1':
|
||||
resolution: {integrity: sha512-ewrXRDTAqAXlkl6t/fkXWNAhFX9I+CkKlw6zjEwk86RSPKwZr3xpBRso655aqYafwtnbpHLj6toFzmd6xdVptQ==}
|
||||
'@radix-ui/react-use-size@1.1.2':
|
||||
resolution: {integrity: sha512-giWQp+4mxjBPt4KZ0MmyuykFNWfbDxKt4x+fPkRYmgRFJSbCZFzUglvMb/Kjn38tm10YP4ufiQZDx3zna4LU6w==}
|
||||
peerDependencies:
|
||||
'@types/react': '*'
|
||||
react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
|
||||
@@ -1577,8 +1583,8 @@ packages:
|
||||
'@types/react':
|
||||
optional: true
|
||||
|
||||
'@radix-ui/react-visually-hidden@1.2.3':
|
||||
resolution: {integrity: sha512-pzJq12tEaaIhqjbzpCuv/OypJY/BPavOofm+dbab+MHLajy277+1lLm6JFcGgF5eskJ6mquGirhXY2GD/8u8Ug==}
|
||||
'@radix-ui/react-visually-hidden@1.2.7':
|
||||
resolution: {integrity: sha512-1wNZBggTDK3GRuuQ6nP4k2yi7a6l7I5qbMPbZcRsrGsGVead/f/d5FhEzUvqFs0bcrDLx7n1zKQ3JvLR6whaaw==}
|
||||
peerDependencies:
|
||||
'@types/react': '*'
|
||||
'@types/react-dom': '*'
|
||||
@@ -1590,8 +1596,8 @@ packages:
|
||||
'@types/react-dom':
|
||||
optional: true
|
||||
|
||||
'@radix-ui/rect@1.1.1':
|
||||
resolution: {integrity: sha512-HPwpGIzkl28mWyZqG52jiqDJ12waP11Pa1lGoiyUkIEuMLBP0oeK/C89esbXrxsky5we7dfd8U58nm0SgAWpVw==}
|
||||
'@radix-ui/rect@1.1.2':
|
||||
resolution: {integrity: sha512-xnXE7wG13PI+cxieVssYXlQJuYVRhH9NBoxt3KNwzghDIA69GMm7d4wXRouHIYjE+KvS6U/MsMO73NdS2MH9ZA==}
|
||||
|
||||
'@rolldown/binding-android-arm64@1.0.0-rc.15':
|
||||
resolution: {integrity: sha512-YYe6aWruPZDtHNpwu7+qAHEMbQ/yRl6atqb/AhznLTnD3UY99Q1jE7ihLSahNWkF4EqRPVC4SiR4O0UkLK02tA==}
|
||||
@@ -1932,9 +1938,27 @@ packages:
|
||||
'@types/babel__traverse@7.28.0':
|
||||
resolution: {integrity: sha512-8PvcXf70gTDZBgt9ptxJ8elBeBjcLOAcOtoO/mPJjtji1+CdGbHgm77om1GrsPxsiE+uXIpNSK64UYaIwQXd4Q==}
|
||||
|
||||
'@types/debug@4.1.13':
|
||||
resolution: {integrity: sha512-KSVgmQmzMwPlmtljOomayoR89W4FynCAi3E8PPs7vmDVPe84hT+vGPKkJfThkmXs0x0jAaa9U8uW8bbfyS2fWw==}
|
||||
|
||||
'@types/estree-jsx@1.0.5':
|
||||
resolution: {integrity: sha512-52CcUVNFyfb1A2ALocQw/Dd1BQFNmSdkuC3BkZ6iqhdMfQz7JWOFRuJFloOzjk+6WijU56m9oKXFAXc7o3Towg==}
|
||||
|
||||
'@types/estree@1.0.9':
|
||||
resolution: {integrity: sha512-GhdPgy1el4/ImP05X05Uw4cw2/M93BCUmnEvWZNStlCzEKME4Fkk+YpoA5OiHNQmoS7Cafb8Xa3Pya8m1Qrzeg==}
|
||||
|
||||
'@types/hast@3.0.4':
|
||||
resolution: {integrity: sha512-WPs+bbQw5aCj+x6laNGWLH3wviHtoCv/P3+otBhbOhJgG8qtpdAMlTCxLtsTWA7LH1Oh/bFCHsBn0TPS5m30EQ==}
|
||||
|
||||
'@types/md5@2.3.6':
|
||||
resolution: {integrity: sha512-WD69gNXtRBnpknfZcb4TRQ0XJQbUPZcai/Qdhmka3sxUR3Et8NrXoeAoknG/LghYHTf4ve795rInVYHBTQdNVA==}
|
||||
|
||||
'@types/mdast@4.0.4':
|
||||
resolution: {integrity: sha512-kGaNbPh1k7AFzgpud/gMdvIm5xuECykRR+JnWKQno9TAXVa6WIVCGTPvYGekIDL4uwCZQSYbUxNBSb1aUo79oA==}
|
||||
|
||||
'@types/ms@2.1.0':
|
||||
resolution: {integrity: sha512-GsCCIZDE/p3i96vtEqx+7dBUGXrc7zeSK3wwPHIaRThS+9OhWIXRqzs4d6k1SVU8g91DrNRWxWUGhp5KXQb2VA==}
|
||||
|
||||
'@types/node@24.12.2':
|
||||
resolution: {integrity: sha512-A1sre26ke7HDIuY/M23nd9gfB+nrmhtYyMINbjI1zHJxYteKR6qSMX56FsmjMcDb3SMcjJg5BiRRgOCC/yBD0g==}
|
||||
|
||||
@@ -1952,9 +1976,18 @@ packages:
|
||||
'@types/statuses@2.0.6':
|
||||
resolution: {integrity: sha512-xMAgYwceFhRA2zY+XbEA7mxYbA093wdiW8Vu6gZPGWy9cmOyU9XesH1tNcEWsKFd5Vzrqx5T3D38PWx1FIIXkA==}
|
||||
|
||||
'@types/unist@2.0.11':
|
||||
resolution: {integrity: sha512-CmBKiL6NNo/OqgmMn95Fk9Whlp2mtvIv+KNpQKN2F4SjvrEesubTRWGYSg+BnWZOnlCaSTU1sMpsBOzgbYhnsA==}
|
||||
|
||||
'@types/unist@3.0.3':
|
||||
resolution: {integrity: sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==}
|
||||
|
||||
'@types/validate-npm-package-name@4.0.2':
|
||||
resolution: {integrity: sha512-lrpDziQipxCEeK5kWxvljWYhUvOiB2A9izZd9B2AFarYAkqZshb4lPbRs7zKEic6eGtH8V/2qJW+dPp9OtF6bw==}
|
||||
|
||||
'@ungap/structured-clone@1.3.2':
|
||||
resolution: {integrity: sha512-5jsZFwgR5rTdKwidH9Qmat75RKwqfpKlWWB1frDkljN127mwqBu8K0PYo7/hFpF03IEJpfVPpCQDY/eDx3iHvA==}
|
||||
|
||||
'@vitejs/plugin-react@6.0.1':
|
||||
resolution: {integrity: sha512-l9X/E3cDb+xY3SWzlG1MOGt2usfEHGMNIaegaUGFsLkb3RCn/k8/TOXBcab+OndDI4TBtktT8/9BwwW8Vi9KUQ==}
|
||||
engines: {node: ^20.19.0 || >=22.12.0}
|
||||
@@ -2052,6 +2085,9 @@ packages:
|
||||
babel-plugin-react-compiler@1.0.0:
|
||||
resolution: {integrity: sha512-Ixm8tFfoKKIPYdCCKYTsqv+Fd4IJ0DQqMyEimo+pxUOMUR9cVPlwTrFt9Avu+3cb6Zp3mAzl+t1MrG2fxxKsxw==}
|
||||
|
||||
bail@2.0.2:
|
||||
resolution: {integrity: sha512-0xO6mYd7JB2YesxDKplafRpsiOzPt9V02ddPCLbY1xYGPOX24NTyN50qnUxgCPcSoYMhKpAuBTjQoRZCAkUDRw==}
|
||||
|
||||
balanced-match@1.0.2:
|
||||
resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==}
|
||||
|
||||
@@ -2124,6 +2160,9 @@ packages:
|
||||
caniuse-lite@1.0.30001788:
|
||||
resolution: {integrity: sha512-6q8HFp+lOQtcf7wBK+uEenxymVWkGKkjFpCvw5W25cmMwEDU45p1xQFBQv8JDlMMry7eNxyBaR+qxgmTUZkIRQ==}
|
||||
|
||||
ccount@2.0.1:
|
||||
resolution: {integrity: sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg==}
|
||||
|
||||
chalk@2.4.2:
|
||||
resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==}
|
||||
engines: {node: '>=4'}
|
||||
@@ -2136,6 +2175,18 @@ packages:
|
||||
resolution: {integrity: sha512-7NzBL0rN6fMUW+f7A6Io4h40qQlG+xGmtMxfbnH/K7TAtt8JQWVQK+6g0UXKMeVJoyV5EkkNsErQ8pVD3bLHbA==}
|
||||
engines: {node: ^12.17.0 || ^14.13 || >=16.0.0}
|
||||
|
||||
character-entities-html4@2.1.0:
|
||||
resolution: {integrity: sha512-1v7fgQRj6hnSwFpq1Eu0ynr/CDEw0rXo2B61qXrLNdHZmPKgb7fqS1a2JwF0rISo9q77jDI8VMEHoApn8qDoZA==}
|
||||
|
||||
character-entities-legacy@3.0.0:
|
||||
resolution: {integrity: sha512-RpPp0asT/6ufRm//AJVwpViZbGM/MkjQFxJccQRHmISF/22NBtsHqAWmL+/pmkPWoIUJdWyeVleTl1wydHATVQ==}
|
||||
|
||||
character-entities@2.0.2:
|
||||
resolution: {integrity: sha512-shx7oQ0Awen/BRIdkjkvz54PnEEI/EjwXDSIZp86/KKdbafHh1Df/RYGBhn4hbe2+uKC9FnT5UCEdyPz3ai9hQ==}
|
||||
|
||||
character-reference-invalid@2.0.1:
|
||||
resolution: {integrity: sha512-iBZ4F4wRbyORVsu0jPV7gXkOsGYjGHPmAyv+HiHG8gi5PtC9KI2j1+v8/tlibRvjoWX027ypmG/n0HtO5t7unw==}
|
||||
|
||||
chardet@0.7.0:
|
||||
resolution: {integrity: sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==}
|
||||
|
||||
@@ -2204,6 +2255,9 @@ packages:
|
||||
colorette@2.0.20:
|
||||
resolution: {integrity: sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==}
|
||||
|
||||
comma-separated-tokens@2.0.3:
|
||||
resolution: {integrity: sha512-Fu4hJdvzeylCfQPp9SGWidpzrMs7tTrlu6Vb8XGaRGck8QSNZJJp538Wrb60Lax4fPwR64ViY468OIUTbRlGZg==}
|
||||
|
||||
commander@11.1.0:
|
||||
resolution: {integrity: sha512-yPVavfyCcRhmorC7rWlkHn15b4wDVgVmBA7kV4QVBsF7kv/9TKJAbAXVTxvTnwP8HHKjRCJDClKbciiYS7p0DQ==}
|
||||
engines: {node: '>=16'}
|
||||
@@ -2321,6 +2375,9 @@ packages:
|
||||
supports-color:
|
||||
optional: true
|
||||
|
||||
decode-named-character-reference@1.3.0:
|
||||
resolution: {integrity: sha512-GtpQYB283KrPp6nRw50q3U9/VfOutZOe103qlN7BPP6Ad27xYnOIWv4lPzo8HCAL+mMZofJ9KEy30fq6MfaK6Q==}
|
||||
|
||||
dedent@0.7.0:
|
||||
resolution: {integrity: sha512-Q6fKUPqnAHAyhiUgFU7BUzLiv0kd8saH9al7tnu5Q/okj6dnupxyTgFIBjVzJATdfIAm9NAsvXNzjaKa+bxVyA==}
|
||||
|
||||
@@ -2355,6 +2412,10 @@ packages:
|
||||
resolution: {integrity: sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==}
|
||||
engines: {node: '>= 0.8'}
|
||||
|
||||
dequal@2.0.3:
|
||||
resolution: {integrity: sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==}
|
||||
engines: {node: '>=6'}
|
||||
|
||||
detect-file@1.0.0:
|
||||
resolution: {integrity: sha512-DtCOLG98P007x7wiiOmfI0fi3eIKyWiLTGJ2MDnVi/E04lWGbf+JzrRHMm0rgIIZJGtHpKpbVgLWHrv8xXpc3Q==}
|
||||
engines: {node: '>=0.10.0'}
|
||||
@@ -2370,6 +2431,9 @@ packages:
|
||||
detect-node-es@1.1.0:
|
||||
resolution: {integrity: sha512-ypdmJU/TbBby2Dxibuv7ZLW3Bs1QEmM7nHjEANfohJLvE0XVujisn1qPJcZxg+qDucsr+bP6fLD1rPS3AhJ7EQ==}
|
||||
|
||||
devlop@1.1.0:
|
||||
resolution: {integrity: sha512-RWmIqhcFf1lRYBvNmr7qTNuyCt/7/ns2jbpp1+PalgE/rDQcBT0fioSMUpJ93irlUhC5hrg4cYqe6U+0ImW0rA==}
|
||||
|
||||
diff@8.0.4:
|
||||
resolution: {integrity: sha512-DPi0FmjiSU5EvQV0++GFDOJ9ASQUVFh5kD+OzOnYdi7n3Wpm9hWWGfB/O2blfHcMVTL5WkQXSnRiK9makhrcnw==}
|
||||
engines: {node: '>=0.3.1'}
|
||||
@@ -2467,11 +2531,18 @@ packages:
|
||||
resolution: {integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==}
|
||||
engines: {node: '>=0.8.0'}
|
||||
|
||||
escape-string-regexp@5.0.0:
|
||||
resolution: {integrity: sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==}
|
||||
engines: {node: '>=12'}
|
||||
|
||||
esprima@4.0.1:
|
||||
resolution: {integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==}
|
||||
engines: {node: '>=4'}
|
||||
hasBin: true
|
||||
|
||||
estree-util-is-identifier-name@3.0.0:
|
||||
resolution: {integrity: sha512-hFtqIDZTIUZ9BXLb8y4pYGyk6+wekIivNVTcmvk8NoOh+VeRn5y6cEHzbURrWbfp1fIqdVipilzj+lfaadNZmg==}
|
||||
|
||||
etag@1.8.1:
|
||||
resolution: {integrity: sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==}
|
||||
engines: {node: '>= 0.6'}
|
||||
@@ -2713,6 +2784,12 @@ packages:
|
||||
resolution: {integrity: sha512-ej4AhfhfL2Q2zpMmLo7U1Uv9+PyhIZpgQLGT1F9miIGmiCJIoCgSmczFdrc97mWT4kVY72KA+WnnhJ5pghSvSg==}
|
||||
engines: {node: '>= 0.4'}
|
||||
|
||||
hast-util-to-jsx-runtime@2.3.6:
|
||||
resolution: {integrity: sha512-zl6s8LwNyo1P9uw+XJGvZtdFF1GdAkOg8ujOw+4Pyb76874fLps4ueHXDhXWdk6YHQ6OgUtinliG7RsYvCbbBg==}
|
||||
|
||||
hast-util-whitespace@3.0.0:
|
||||
resolution: {integrity: sha512-88JUN06ipLwsnv+dVn+OIYOvAuvBMy/Qoi6O7mQHxdPXpjy+Cd6xRkWwux7DKO+4sYILtLBRIKgsdpS2gQc7qw==}
|
||||
|
||||
headers-polyfill@5.0.1:
|
||||
resolution: {integrity: sha512-1TJ6Fih/b8h5TIcv+1+Hw0PDQWJTKDKzFZzcKOiW1wJza3XoAQlkCuXLbymPYB8+ZQyw8mHvdw560e8zVFIWyA==}
|
||||
|
||||
@@ -2727,6 +2804,9 @@ packages:
|
||||
html-parse-stringify@3.0.1:
|
||||
resolution: {integrity: sha512-KknJ50kTInJ7qIScF3jeaFRpMpE8/lfiTdzf/twXyPBLAGrLRTmkz3AdTnKeh40X8k9L2fdYwEp/42WGXIRGcg==}
|
||||
|
||||
html-url-attributes@3.0.1:
|
||||
resolution: {integrity: sha512-ol6UPyBWqsrO6EJySPz2O7ZSr856WDrEzM5zMqp+FJJLGMW35cLYmmZnl0vztAZxRUoNZJFTCohfjuIJ8I4QBQ==}
|
||||
|
||||
http-errors@2.0.1:
|
||||
resolution: {integrity: sha512-4FbRdAX+bSdmo4AUFuS0WNiPz8NgFt+r8ThgNWmlrjQjt1Q7ZR9+zTlce2859x4KSXrwIsaeTqDoKQmtP8pLmQ==}
|
||||
engines: {node: '>= 0.8'}
|
||||
@@ -2792,6 +2872,9 @@ packages:
|
||||
resolution: {integrity: sha512-QQnnxNyfvmHFIsj7gkPcYymR8Jdw/o7mp5ZFihxn6h8Ci6fh3Dx4E1gPjpQEpIuPo9XVNY/ZUwh4BPMjGyL01g==}
|
||||
engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
|
||||
|
||||
inline-style-parser@0.1.1:
|
||||
resolution: {integrity: sha512-7NXolsK4CAS5+xvdj5OMMbI962hU/wvwoxk+LWR9Ek9bVtyuuYScDN6eS0rUm6TxApFpw7CX1o4uJzcd4AyD3Q==}
|
||||
|
||||
inquirer@8.2.5:
|
||||
resolution: {integrity: sha512-QAgPDQMEgrDssk1XiwwHoOGYF9BAbUcc1+j+FhEvaOt8/cKRqyLn0U5qA6F74fGhTMGxf92pOvPBeh29jQJDTQ==}
|
||||
engines: {node: '>=12.0.0'}
|
||||
@@ -2804,6 +2887,12 @@ packages:
|
||||
resolution: {integrity: sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==}
|
||||
engines: {node: '>= 0.10'}
|
||||
|
||||
is-alphabetical@2.0.1:
|
||||
resolution: {integrity: sha512-FWyyY60MeTNyeSRpkM2Iry0G9hpr7/9kD40mD/cGQEuilcZYS4okz8SN2Q6rLCJ8gbCt6fN+rC+6tMGS99LaxQ==}
|
||||
|
||||
is-alphanumerical@2.0.1:
|
||||
resolution: {integrity: sha512-hmbYhX/9MUMF5uh7tOXyK/n0ZvWpad5caBA17GsC6vyuCqaWliRG5K1qS9inmUhEMaOBIW7/whAnSwveW/LtZw==}
|
||||
|
||||
is-arrayish@0.2.1:
|
||||
resolution: {integrity: sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==}
|
||||
|
||||
@@ -2814,6 +2903,9 @@ packages:
|
||||
is-buffer@1.1.6:
|
||||
resolution: {integrity: sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==}
|
||||
|
||||
is-decimal@2.0.1:
|
||||
resolution: {integrity: sha512-AAB9hiomQs5DXWcRB1rqsxGUstbRroFOPPVAomNk/3XHR5JyEZChOyTWe2oayKnsSsr/kcGqF+z6yuH6HHpN0A==}
|
||||
|
||||
is-docker@3.0.0:
|
||||
resolution: {integrity: sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ==}
|
||||
engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
|
||||
@@ -2835,6 +2927,9 @@ packages:
|
||||
resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==}
|
||||
engines: {node: '>=0.10.0'}
|
||||
|
||||
is-hexadecimal@2.0.1:
|
||||
resolution: {integrity: sha512-DgZQp241c8oO6cA1SbTEWiXeoxV42vlcJxgH+B3hi1AiqqKruZR3ZGF8In3fj4+/y/7rHvlOZLZtgJ/4ttYGZg==}
|
||||
|
||||
is-in-ssh@1.0.0:
|
||||
resolution: {integrity: sha512-jYa6Q9rH90kR1vKB6NM7qqd1mge3Fx4Dhw5TVlK1MUBqhEOuCagrEHMevNuCcbECmXZ0ThXkRm+Ymr51HwEPAw==}
|
||||
engines: {node: '>=20'}
|
||||
@@ -3090,6 +3185,9 @@ packages:
|
||||
resolution: {integrity: sha512-9ie8ItPR6tjY5uYJh8K/Zrv/RMZ5VOlOWvtZdEHYSTFKZfIBPQa9tOAEeAWhd+AnIneLJ22w5fjOYtoutpWq5w==}
|
||||
engines: {node: '>=18'}
|
||||
|
||||
longest-streak@3.1.0:
|
||||
resolution: {integrity: sha512-9Ri+o0JYgehTaVBBDoMqIl8GXtbWg711O3srftcHhZ0dqnETqLaoIK0x17fUw9rFSlK/0NlsKe0Ahhyl5pXE2g==}
|
||||
|
||||
longest@2.0.1:
|
||||
resolution: {integrity: sha512-Ajzxb8CM6WAnFjgiloPsI3bF+WCxcvhdIG3KNA2KN962+tdBsHcuQ4k4qX/EcS/2CRkcc0iAkR956Nib6aXU/Q==}
|
||||
engines: {node: '>=0.10.0'}
|
||||
@@ -3108,6 +3206,9 @@ packages:
|
||||
magic-string@0.30.21:
|
||||
resolution: {integrity: sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ==}
|
||||
|
||||
markdown-table@3.0.4:
|
||||
resolution: {integrity: sha512-wiYz4+JrLyb/DqW2hkFJxP7Vd7JuTDm77fvbM8VfEQdmSMqcImWeeRbHwZjBjIFki/VaMK2BhFi7oUUZeM5bqw==}
|
||||
|
||||
math-intrinsics@1.1.0:
|
||||
resolution: {integrity: sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==}
|
||||
engines: {node: '>= 0.4'}
|
||||
@@ -3115,6 +3216,51 @@ packages:
|
||||
md5@2.3.0:
|
||||
resolution: {integrity: sha512-T1GITYmFaKuO91vxyoQMFETst+O71VUPEU3ze5GNzDm0OWdP8v1ziTaAEPUr/3kLsY3Sftgz242A1SetQiDL7g==}
|
||||
|
||||
mdast-util-find-and-replace@3.0.2:
|
||||
resolution: {integrity: sha512-Tmd1Vg/m3Xz43afeNxDIhWRtFZgM2VLyaf4vSTYwudTyeuTneoL3qtWMA5jeLyz/O1vDJmmV4QuScFCA2tBPwg==}
|
||||
|
||||
mdast-util-from-markdown@2.0.3:
|
||||
resolution: {integrity: sha512-W4mAWTvSlKvf8L6J+VN9yLSqQ9AOAAvHuoDAmPkz4dHf553m5gVj2ejadHJhoJmcmxEnOv6Pa8XJhpxE93kb8Q==}
|
||||
|
||||
mdast-util-gfm-autolink-literal@2.0.1:
|
||||
resolution: {integrity: sha512-5HVP2MKaP6L+G6YaxPNjuL0BPrq9orG3TsrZ9YXbA3vDw/ACI4MEsnoDpn6ZNm7GnZgtAcONJyPhOP8tNJQavQ==}
|
||||
|
||||
mdast-util-gfm-footnote@2.1.0:
|
||||
resolution: {integrity: sha512-sqpDWlsHn7Ac9GNZQMeUzPQSMzR6Wv0WKRNvQRg0KqHh02fpTz69Qc1QSseNX29bhz1ROIyNyxExfawVKTm1GQ==}
|
||||
|
||||
mdast-util-gfm-strikethrough@2.0.0:
|
||||
resolution: {integrity: sha512-mKKb915TF+OC5ptj5bJ7WFRPdYtuHv0yTRxK2tJvi+BDqbkiG7h7u/9SI89nRAYcmap2xHQL9D+QG/6wSrTtXg==}
|
||||
|
||||
mdast-util-gfm-table@2.0.0:
|
||||
resolution: {integrity: sha512-78UEvebzz/rJIxLvE7ZtDd/vIQ0RHv+3Mh5DR96p7cS7HsBhYIICDBCu8csTNWNO6tBWfqXPWekRuj2FNOGOZg==}
|
||||
|
||||
mdast-util-gfm-task-list-item@2.0.0:
|
||||
resolution: {integrity: sha512-IrtvNvjxC1o06taBAVJznEnkiHxLFTzgonUdy8hzFVeDun0uTjxxrRGVaNFqkU1wJR3RBPEfsxmU6jDWPofrTQ==}
|
||||
|
||||
mdast-util-gfm@3.1.0:
|
||||
resolution: {integrity: sha512-0ulfdQOM3ysHhCJ1p06l0b0VKlhU0wuQs3thxZQagjcjPrlFRqY215uZGHHJan9GEAXd9MbfPjFJz+qMkVR6zQ==}
|
||||
|
||||
mdast-util-mdx-expression@2.0.1:
|
||||
resolution: {integrity: sha512-J6f+9hUp+ldTZqKRSg7Vw5V6MqjATc+3E4gf3CFNcuZNWD8XdyI6zQ8GqH7f8169MM6P7hMBRDVGnn7oHB9kXQ==}
|
||||
|
||||
mdast-util-mdx-jsx@3.2.0:
|
||||
resolution: {integrity: sha512-lj/z8v0r6ZtsN/cGNNtemmmfoLAFZnjMbNyLzBafjzikOM+glrjNHPlf6lQDOTccj9n5b0PPihEBbhneMyGs1Q==}
|
||||
|
||||
mdast-util-mdxjs-esm@2.0.1:
|
||||
resolution: {integrity: sha512-EcmOpxsZ96CvlP03NghtH1EsLtr0n9Tm4lPUJUBccV9RwUOneqSycg19n5HGzCf+10LozMRSObtVr3ee1WoHtg==}
|
||||
|
||||
mdast-util-phrasing@4.1.0:
|
||||
resolution: {integrity: sha512-TqICwyvJJpBwvGAMZjj4J2n0X8QWp21b9l0o7eXyVJ25YNWYbJDVIyD1bZXE6WtV6RmKJVYmQAKWa0zWOABz2w==}
|
||||
|
||||
mdast-util-to-hast@13.2.1:
|
||||
resolution: {integrity: sha512-cctsq2wp5vTsLIcaymblUriiTcZd0CwWtCbLvrOzYCDZoWyMNV8sZ7krj09FSnsiJi3WVsHLM4k6Dq/yaPyCXA==}
|
||||
|
||||
mdast-util-to-markdown@2.0.0:
|
||||
resolution: {integrity: sha512-Ov3aWCYpb31/SkHNRlREvSZsF9ETBW/rXw4PooawZO8qy2MviDq4TI6kxX6zFmGa/zUX36STKIC/IpASQk596w==}
|
||||
|
||||
mdast-util-to-string@4.0.0:
|
||||
resolution: {integrity: sha512-0H44vDimn51F0YwvxSJSm0eCDOJTRlmN0R1yBh4HLj9wiV1Dn0QoXGbvFAWj2hSItVTlCmBF1hqKlIyUBVFLPg==}
|
||||
|
||||
media-typer@1.1.0:
|
||||
resolution: {integrity: sha512-aisnrDP4GNe06UcKFnV5bfMNPBUw4jsLGaWwWfnH3v02GnBuXX2MCVn5RbrWo0j3pczUilYblq7fQ7Nw2t5XKw==}
|
||||
engines: {node: '>= 0.8'}
|
||||
@@ -3137,6 +3283,90 @@ packages:
|
||||
merge@2.1.1:
|
||||
resolution: {integrity: sha512-jz+Cfrg9GWOZbQAnDQ4hlVnQky+341Yk5ru8bZSe6sIDTCIg8n9i/u7hSQGSVOF3C7lH6mGtqjkiT9G4wFLL0w==}
|
||||
|
||||
micromark-core-commonmark@2.0.0:
|
||||
resolution: {integrity: sha512-jThOz/pVmAYUtkroV3D5c1osFXAMv9e0ypGDOIZuCeAe91/sD6BoE2Sjzt30yuXtwOYUmySOhMas/PVyh02itA==}
|
||||
|
||||
micromark-extension-gfm-autolink-literal@2.1.0:
|
||||
resolution: {integrity: sha512-oOg7knzhicgQ3t4QCjCWgTmfNhvQbDDnJeVu9v81r7NltNCVmhPy1fJRX27pISafdjL+SVc4d3l48Gb6pbRypw==}
|
||||
|
||||
micromark-extension-gfm-footnote@2.1.0:
|
||||
resolution: {integrity: sha512-/yPhxI1ntnDNsiHtzLKYnE3vf9JZ6cAisqVDauhp4CEHxlb4uoOTxOCJ+9s51bIB8U1N1FJ1RXOKTIlD5B/gqw==}
|
||||
|
||||
micromark-extension-gfm-strikethrough@2.1.0:
|
||||
resolution: {integrity: sha512-ADVjpOOkjz1hhkZLlBiYA9cR2Anf8F4HqZUO6e5eDcPQd0Txw5fxLzzxnEkSkfnD0wziSGiv7sYhk/ktvbf1uw==}
|
||||
|
||||
micromark-extension-gfm-table@2.1.1:
|
||||
resolution: {integrity: sha512-t2OU/dXXioARrC6yWfJ4hqB7rct14e8f7m0cbI5hUmDyyIlwv5vEtooptH8INkbLzOatzKuVbQmAYcbWoyz6Dg==}
|
||||
|
||||
micromark-extension-gfm-tagfilter@2.0.0:
|
||||
resolution: {integrity: sha512-xHlTOmuCSotIA8TW1mDIM6X2O1SiX5P9IuDtqGonFhEK0qgRI4yeC6vMxEV2dgyr2TiD+2PQ10o+cOhdVAcwfg==}
|
||||
|
||||
micromark-extension-gfm-task-list-item@2.1.0:
|
||||
resolution: {integrity: sha512-qIBZhqxqI6fjLDYFTBIa4eivDMnP+OZqsNwmQ3xNLE4Cxwc+zfQEfbs6tzAo2Hjq+bh6q5F+Z8/cksrLFYWQQw==}
|
||||
|
||||
micromark-extension-gfm@3.0.0:
|
||||
resolution: {integrity: sha512-vsKArQsicm7t0z2GugkCKtZehqUm31oeGBV/KVSorWSy8ZlNAv7ytjFhvaryUiCUJYqs+NoE6AFhpQvBTM6Q4w==}
|
||||
|
||||
micromark-factory-destination@2.0.0:
|
||||
resolution: {integrity: sha512-j9DGrQLm/Uhl2tCzcbLhy5kXsgkHUrjJHg4fFAeoMRwJmJerT9aw4FEhIbZStWN8A3qMwOp1uzHr4UL8AInxtA==}
|
||||
|
||||
micromark-factory-label@2.0.0:
|
||||
resolution: {integrity: sha512-RR3i96ohZGde//4WSe/dJsxOX6vxIg9TimLAS3i4EhBAFx8Sm5SmqVfR8E87DPSR31nEAjZfbt91OMZWcNgdZw==}
|
||||
|
||||
micromark-factory-space@2.0.0:
|
||||
resolution: {integrity: sha512-TKr+LIDX2pkBJXFLzpyPyljzYK3MtmllMUMODTQJIUfDGncESaqB90db9IAUcz4AZAJFdd8U9zOp9ty1458rxg==}
|
||||
|
||||
micromark-factory-title@2.0.0:
|
||||
resolution: {integrity: sha512-jY8CSxmpWLOxS+t8W+FG3Xigc0RDQA9bKMY/EwILvsesiRniiVMejYTE4wumNc2f4UbAa4WsHqe3J1QS1sli+A==}
|
||||
|
||||
micromark-factory-whitespace@2.0.0:
|
||||
resolution: {integrity: sha512-28kbwaBjc5yAI1XadbdPYHX/eDnqaUFVikLwrO7FDnKG7lpgxnvk/XGRhX/PN0mOZ+dBSZ+LgunHS+6tYQAzhA==}
|
||||
|
||||
micromark-util-character@2.0.0:
|
||||
resolution: {integrity: sha512-DtHHqgTRz32ylwiGSZwoK+BTx4gaq//ig71g20pwBwRLxo3CfInyD+NyTrriLOhPz5WQOfAOSLLbKOaaGXWz9Q==}
|
||||
|
||||
micromark-util-chunked@2.0.0:
|
||||
resolution: {integrity: sha512-anK8SWmNphkXdaKgz5hJvGa7l00qmcaUQoMYsBwDlSKFKjc6gjGXPDw3FNL3Nbwq5L8gE+RCbGqTw49FK5Qyvg==}
|
||||
|
||||
micromark-util-classify-character@2.0.0:
|
||||
resolution: {integrity: sha512-S0ze2R9GH+fu41FA7pbSqNWObo/kzwf8rN/+IGlW/4tC6oACOs8B++bh+i9bVyNnwCcuksbFwsBme5OCKXCwIw==}
|
||||
|
||||
micromark-util-combine-extensions@2.0.0:
|
||||
resolution: {integrity: sha512-vZZio48k7ON0fVS3CUgFatWHoKbbLTK/rT7pzpJ4Bjp5JjkZeasRfrS9wsBdDJK2cJLHMckXZdzPSSr1B8a4oQ==}
|
||||
|
||||
micromark-util-decode-numeric-character-reference@2.0.0:
|
||||
resolution: {integrity: sha512-pIgcsGxpHEtTG/rPJRz/HOLSqp5VTuIIjXlPI+6JSDlK2oljApusG6KzpS8AF0ENUMCHlC/IBb5B9xdFiVlm5Q==}
|
||||
|
||||
micromark-util-decode-string@2.0.1:
|
||||
resolution: {integrity: sha512-nDV/77Fj6eH1ynwscYTOsbK7rR//Uj0bZXBwJZRfaLEJ1iGBR6kIfNmlNqaqJf649EP0F3NWNdeJi03elllNUQ==}
|
||||
|
||||
micromark-util-encode@2.0.0:
|
||||
resolution: {integrity: sha512-pS+ROfCXAGLWCOc8egcBvT0kf27GoWMqtdarNfDcjb6YLuV5cM3ioG45Ys2qOVqeqSbjaKg72vU+Wby3eddPsA==}
|
||||
|
||||
micromark-util-html-tag-name@2.0.0:
|
||||
resolution: {integrity: sha512-xNn4Pqkj2puRhKdKTm8t1YHC/BAjx6CEwRFXntTaRf/x16aqka6ouVoutm+QdkISTlT7e2zU7U4ZdlDLJd2Mcw==}
|
||||
|
||||
micromark-util-normalize-identifier@2.0.0:
|
||||
resolution: {integrity: sha512-2xhYT0sfo85FMrUPtHcPo2rrp1lwbDEEzpx7jiH2xXJLqBuy4H0GgXk5ToU8IEwoROtXuL8ND0ttVa4rNqYK3w==}
|
||||
|
||||
micromark-util-resolve-all@2.0.0:
|
||||
resolution: {integrity: sha512-6KU6qO7DZ7GJkaCgwBNtplXCvGkJToU86ybBAUdavvgsCiG8lSSvYxr9MhwmQ+udpzywHsl4RpGJsYWG1pDOcA==}
|
||||
|
||||
micromark-util-sanitize-uri@2.0.0:
|
||||
resolution: {integrity: sha512-WhYv5UEcZrbAtlsnPuChHUAsu/iBPOVaEVsntLBIdpibO0ddy8OzavZz3iL2xVvBZOpolujSliP65Kq0/7KIYw==}
|
||||
|
||||
micromark-util-subtokenize@2.0.0:
|
||||
resolution: {integrity: sha512-vc93L1t+gpR3p8jxeVdaYlbV2jTYteDje19rNSS/H5dlhxUYll5Fy6vJ2cDwP8RnsXi818yGty1ayP55y3W6fg==}
|
||||
|
||||
micromark-util-symbol@2.0.0:
|
||||
resolution: {integrity: sha512-8JZt9ElZ5kyTnO94muPxIGS8oyElRJaiJO8EzV6ZSyGQ1Is8xwl4Q45qU5UOg+bGH4AikWziz0iN4sFLWs8PGw==}
|
||||
|
||||
micromark-util-types@2.0.0:
|
||||
resolution: {integrity: sha512-oNh6S2WMHWRZrmutsRmDDfkzKtxF+bc2VxLC9dvtrDIRFln627VsFP6fLMgTryGDljgLPjkrzQSDcPrjPyDJ5w==}
|
||||
|
||||
micromark@4.0.0:
|
||||
resolution: {integrity: sha512-o/sd0nMof8kYff+TqcDx3VSrgBTcZpSvYcAHIfHhv5VAuNmisCxjhx6YmxS8PFEpb9z5WKWKPdzf0jM23ro3RQ==}
|
||||
|
||||
micromatch@4.0.8:
|
||||
resolution: {integrity: sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==}
|
||||
engines: {node: '>=8.6'}
|
||||
@@ -3293,6 +3523,9 @@ packages:
|
||||
resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==}
|
||||
engines: {node: '>=6'}
|
||||
|
||||
parse-entities@4.0.2:
|
||||
resolution: {integrity: sha512-GG2AQYWoLgL877gQIKeRPGO1xF9+eG1ujIb5soS5gPvLQ1y2o8FL90w2QWNdf9I361Mpp7726c+lj3U0qK1uGw==}
|
||||
|
||||
parse-json@5.2.0:
|
||||
resolution: {integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==}
|
||||
engines: {node: '>=8'}
|
||||
@@ -3373,6 +3606,9 @@ packages:
|
||||
resolution: {integrity: sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==}
|
||||
engines: {node: '>= 6'}
|
||||
|
||||
property-information@7.2.0:
|
||||
resolution: {integrity: sha512-IAtzIB6sUiWaJYrX9smp3V46pBGbBeLFRGdh25kg1334VcBlD8HzhPeNIWQH9zhGmo2itIe25EHt9dQP7G5hmg==}
|
||||
|
||||
proxy-addr@2.0.7:
|
||||
resolution: {integrity: sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==}
|
||||
engines: {node: '>= 0.10'}
|
||||
@@ -3384,8 +3620,8 @@ packages:
|
||||
queue-microtask@1.2.3:
|
||||
resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==}
|
||||
|
||||
radix-ui@1.4.3:
|
||||
resolution: {integrity: sha512-aWizCQiyeAenIdUbqEpXgRA1ya65P13NKn/W8rWkcN0OPkRDxdBVLWnIEDsS2RpwCK2nobI7oMUSmexzTDyAmA==}
|
||||
radix-ui@1.6.2:
|
||||
resolution: {integrity: sha512-OwYUjzMwiInCUxgAWpPsavXC3Kh4iyi/49uU1/qZTG3RQDlvegyk1GOMiGvSkjua1RDb3JD3fo3eroL9FV4GQw==}
|
||||
peerDependencies:
|
||||
'@types/react': '*'
|
||||
'@types/react-dom': '*'
|
||||
@@ -3432,6 +3668,12 @@ packages:
|
||||
typescript:
|
||||
optional: true
|
||||
|
||||
react-markdown@10.1.0:
|
||||
resolution: {integrity: sha512-qKxVopLT/TyA6BX3Ue5NwabOsAzm0Q7kAPwq6L+wWDwisYs7R8vZ0nRXqq6rkueboxpkjvLGU9fWifiX/ZZFxQ==}
|
||||
peerDependencies:
|
||||
'@types/react': '>=18'
|
||||
react: '>=18'
|
||||
|
||||
react-remove-scroll-bar@2.3.8:
|
||||
resolution: {integrity: sha512-9r+yi9+mgU33AKcj6IbT9oRCO78WriSj6t/cF8DWBZJ9aOGPOTEDvdUDz1FwKim7QXWwmHqtdHnRJfhAxEG46Q==}
|
||||
engines: {node: '>=10'}
|
||||
@@ -3478,6 +3720,18 @@ packages:
|
||||
resolution: {integrity: sha512-YTUo+Flmw4ZXiWfQKGcwwc11KnoRAYgzAE2E7mXKCjSviTKShtxBsN6YUUBB2gtaBzKzeKunxhUwNHQuRryhWA==}
|
||||
engines: {node: '>= 4'}
|
||||
|
||||
remark-gfm@4.0.1:
|
||||
resolution: {integrity: sha512-1quofZ2RQ9EWdeN34S79+KExV1764+wCUGop5CPL1WGdD0ocPpu91lzPGbwWMECpEpd42kJGQwzRfyov9j4yNg==}
|
||||
|
||||
remark-parse@11.0.0:
|
||||
resolution: {integrity: sha512-FCxlKLNGknS5ba/1lmpYijMUzX2esxW5xQqjWxw2eHFfS2MSdaHVINFmhjo+qN1WhZhNimq0dZATN9pH0IDrpA==}
|
||||
|
||||
remark-rehype@11.1.2:
|
||||
resolution: {integrity: sha512-Dh7l57ianaEoIpzbp0PC9UKAdCSVklD8E5Rpw7ETfbTl3FqcOOgq5q2LVDhgGCkaBv7p24JXikPdvhhmHvKMsw==}
|
||||
|
||||
remark-stringify@11.0.0:
|
||||
resolution: {integrity: sha512-1OSmLd3awB/t8qdoEOMazZkNsfVTeY4fTsgzcQFdXNq8ToTN4ZGwrMnlda4K6smTFKD+GRV6O48i6Z4iKgPPpw==}
|
||||
|
||||
require-directory@2.1.1:
|
||||
resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==}
|
||||
engines: {node: '>=0.10.0'}
|
||||
@@ -3642,6 +3896,9 @@ packages:
|
||||
resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==}
|
||||
engines: {node: '>=0.10.0'}
|
||||
|
||||
space-separated-tokens@2.0.2:
|
||||
resolution: {integrity: sha512-PEGlAwrG8yXGXRjW32fGbg66JAlOAwbObuqVoJpv/mRgoWDQfgH1wDPvtzWyUSNAXBGSk8h755YDbbcEy3SH2Q==}
|
||||
|
||||
statuses@2.0.2:
|
||||
resolution: {integrity: sha512-DvEy55V3DB7uknRo+4iOGT5fP1slR8wQohVdknigZPMpMstaKJQWhwiYBACJE3Ul2pTnATihhBYnRhZQHGBiRw==}
|
||||
engines: {node: '>= 0.8'}
|
||||
@@ -3672,6 +3929,9 @@ packages:
|
||||
string_decoder@1.3.0:
|
||||
resolution: {integrity: sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==}
|
||||
|
||||
stringify-entities@4.0.4:
|
||||
resolution: {integrity: sha512-IwfBptatlO+QCJUo19AqvrPNqlVMpW9YEL2LIVY+Rpv2qsjCGxaDLNRgeGsQWJhfItebuJhsGSLjaBbNSQ+ieg==}
|
||||
|
||||
stringify-object@5.0.0:
|
||||
resolution: {integrity: sha512-zaJYxz2FtcMb4f+g60KsRNFOpVMUyuJgA51Zi5Z1DOTC3S59+OQiVOzE9GZt0x72uBGWKsQIuBKeF9iusmKFsg==}
|
||||
engines: {node: '>=14.16'}
|
||||
@@ -3704,6 +3964,12 @@ packages:
|
||||
resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==}
|
||||
engines: {node: '>=8'}
|
||||
|
||||
style-to-js@1.0.0:
|
||||
resolution: {integrity: sha512-OiaJVLD+ybcul+6oAdwTOKLFewvYapPLG4H3JiYBYUS0yoi29Ag1IiqprbVARaxiAXvkk+4B8aNcG7lyEDKebg==}
|
||||
|
||||
style-to-object@0.3.0:
|
||||
resolution: {integrity: sha512-CzFnRRXhzWIdItT3OmF8SQfWyahHhjq3HwcMNCNLn+N7klOOqPjMeG/4JSu77D7ypZdGvSzvkrbyeTMizz2VrA==}
|
||||
|
||||
supports-color@5.5.0:
|
||||
resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==}
|
||||
engines: {node: '>=4'}
|
||||
@@ -3763,6 +4029,12 @@ packages:
|
||||
resolution: {integrity: sha512-LktZQb3IeoUWB9lqR5EWTHgW/VTITCXg4D21M+lvybRVdylLrRMnqaIONLVb5mav8vM19m44HIcGq4qASeu2Qw==}
|
||||
engines: {node: '>=16'}
|
||||
|
||||
trim-lines@3.0.1:
|
||||
resolution: {integrity: sha512-kRj8B+YHZCc9kQYdWfJB2/oUl9rA99qbowYYBtr4ui4mZyAQ2JpvVBd/6U2YloATfqBhBTSMhTpgBHtU0Mf3Rg==}
|
||||
|
||||
trough@2.2.0:
|
||||
resolution: {integrity: sha512-tmMpK00BjZiUyVyvrBK7knerNgmgvcV/KLVyuma/SC+TQN167GrMRciANTz09+k3zW8L8t60jWO1GpfkZdjTaw==}
|
||||
|
||||
ts-morph@26.0.0:
|
||||
resolution: {integrity: sha512-ztMO++owQnz8c/gIENcM9XfCEzgoGphTv+nKpYNM1bgsdOVC/jRZuEBf6N+mLLDNg68Kl+GgUZfOySaRiG1/Ug==}
|
||||
|
||||
@@ -3805,6 +4077,24 @@ packages:
|
||||
resolution: {integrity: sha512-+QBBXBCvifc56fsbuxZQ6Sic3wqqc3WWaqxs58gvJrcOuN83HGTCwz3oS5phzU9LthRNE9VrJCFCLUgHeeFnfA==}
|
||||
engines: {node: '>=18'}
|
||||
|
||||
unified@11.0.0:
|
||||
resolution: {integrity: sha512-65zgPyv0vyXnJpw4fbGmoXjP0/6cBmnnesl4lSPGU2tYuzLWtuicRBFcaV6kgzitGrBHj6pgXYomMw1VQe/cQg==}
|
||||
|
||||
unist-util-is@6.0.1:
|
||||
resolution: {integrity: sha512-LsiILbtBETkDz8I9p1dQ0uyRUWuaQzd/cuEeS1hoRSyW5E5XGmTzlwY1OrNzzakGowI9Dr/I8HVaw4hTtnxy8g==}
|
||||
|
||||
unist-util-position@5.0.0:
|
||||
resolution: {integrity: sha512-fucsC7HjXvkB5R3kTCO7kUjRdrS0BJt3M/FPxmHMBOm8JQi2BsHAHFsy27E0EolP8rp0NzXsJ+jNPyDWvOJZPA==}
|
||||
|
||||
unist-util-stringify-position@4.0.0:
|
||||
resolution: {integrity: sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==}
|
||||
|
||||
unist-util-visit-parents@6.0.2:
|
||||
resolution: {integrity: sha512-goh1s1TBrqSqukSc8wrjwWhL0hiJxgA8m4kFxGlQ+8FYQ3C/m11FcTs4YYem7V664AhHVvgoQLk890Ssdsr2IQ==}
|
||||
|
||||
unist-util-visit@5.1.0:
|
||||
resolution: {integrity: sha512-m+vIdyeCOpdr/QeQCu2EzxX/ohgS8KbnPDgFni4dQsfSCtpz8UqDyY5GjRru8PDKuYn7Fq19j1CQ+nJSsGKOzg==}
|
||||
|
||||
universalify@2.0.1:
|
||||
resolution: {integrity: sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==}
|
||||
engines: {node: '>= 10.0.0'}
|
||||
@@ -3862,6 +4152,12 @@ packages:
|
||||
resolution: {integrity: sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==}
|
||||
engines: {node: '>= 0.8'}
|
||||
|
||||
vfile-message@4.0.3:
|
||||
resolution: {integrity: sha512-QTHzsGd1EhbZs4AsQ20JX1rC3cOlt/IWJruk893DfLRr57lcnOeMaWG4K0JrRta4mIJZKth2Au3mM3u03/JWKw==}
|
||||
|
||||
vfile@6.0.3:
|
||||
resolution: {integrity: sha512-KzIbH/9tXat2u30jf+smMwFCsno4wHVdNmzFyL+T/L3UGqqk6JKfVqOFOZEpZSHADH1k40ab6NUIXZq422ov3Q==}
|
||||
|
||||
vite@8.0.8:
|
||||
resolution: {integrity: sha512-dbU7/iLVa8KZALJyLOBOQ88nOXtNG8vxKuOT4I2mD+Ya70KPceF4IAmDsmU0h1Qsn5bPrvsY9HJstCRh3hG6Uw==}
|
||||
engines: {node: ^20.19.0 || >=22.12.0}
|
||||
@@ -4009,6 +4305,9 @@ packages:
|
||||
use-sync-external-store:
|
||||
optional: true
|
||||
|
||||
zwitch@2.0.4:
|
||||
resolution: {integrity: sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A==}
|
||||
|
||||
snapshots:
|
||||
|
||||
'@babel/code-frame@7.29.0':
|
||||
@@ -4484,13 +4783,13 @@ snapshots:
|
||||
|
||||
'@floating-ui/utils@0.2.11': {}
|
||||
|
||||
'@fontsource-variable/geist@5.2.8': {}
|
||||
'@fontsource-variable/geist@5.2.9': {}
|
||||
|
||||
'@hono/node-server@1.19.14(hono@4.12.18)':
|
||||
dependencies:
|
||||
hono: 4.12.18
|
||||
|
||||
'@hookform/resolvers@5.2.2(react-hook-form@7.75.0(react@19.2.5))':
|
||||
'@hookform/resolvers@5.4.0(react-hook-form@7.75.0(react@19.2.5))':
|
||||
dependencies:
|
||||
'@standard-schema/utils': 0.3.0
|
||||
react-hook-form: 7.75.0(react@19.2.5)
|
||||
@@ -4708,165 +5007,163 @@ snapshots:
|
||||
|
||||
'@oxc-project/types@0.124.0': {}
|
||||
|
||||
'@radix-ui/number@1.1.1': {}
|
||||
'@radix-ui/number@1.1.2': {}
|
||||
|
||||
'@radix-ui/primitive@1.1.3': {}
|
||||
'@radix-ui/primitive@1.1.5': {}
|
||||
|
||||
'@radix-ui/react-accessible-icon@1.1.7(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)':
|
||||
'@radix-ui/react-accessible-icon@1.1.11(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)':
|
||||
dependencies:
|
||||
'@radix-ui/react-visually-hidden': 1.2.3(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)
|
||||
'@radix-ui/react-visually-hidden': 1.2.7(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)
|
||||
react: 19.2.5
|
||||
react-dom: 19.2.5(react@19.2.5)
|
||||
optionalDependencies:
|
||||
'@types/react': 19.2.14
|
||||
'@types/react-dom': 19.2.3(@types/react@19.2.14)
|
||||
|
||||
'@radix-ui/react-accordion@1.2.12(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)':
|
||||
'@radix-ui/react-accordion@1.2.16(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)':
|
||||
dependencies:
|
||||
'@radix-ui/primitive': 1.1.3
|
||||
'@radix-ui/react-collapsible': 1.1.12(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)
|
||||
'@radix-ui/react-collection': 1.1.7(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)
|
||||
'@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.14)(react@19.2.5)
|
||||
'@radix-ui/react-context': 1.1.2(@types/react@19.2.14)(react@19.2.5)
|
||||
'@radix-ui/react-direction': 1.1.1(@types/react@19.2.14)(react@19.2.5)
|
||||
'@radix-ui/react-id': 1.1.1(@types/react@19.2.14)(react@19.2.5)
|
||||
'@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)
|
||||
'@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.2.14)(react@19.2.5)
|
||||
'@radix-ui/primitive': 1.1.5
|
||||
'@radix-ui/react-collapsible': 1.1.16(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)
|
||||
'@radix-ui/react-collection': 1.1.12(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)
|
||||
'@radix-ui/react-compose-refs': 1.1.3(@types/react@19.2.14)(react@19.2.5)
|
||||
'@radix-ui/react-context': 1.2.0(@types/react@19.2.14)(react@19.2.5)
|
||||
'@radix-ui/react-direction': 1.1.2(@types/react@19.2.14)(react@19.2.5)
|
||||
'@radix-ui/react-id': 1.1.2(@types/react@19.2.14)(react@19.2.5)
|
||||
'@radix-ui/react-primitive': 2.1.7(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)
|
||||
'@radix-ui/react-use-controllable-state': 1.2.3(@types/react@19.2.14)(react@19.2.5)
|
||||
react: 19.2.5
|
||||
react-dom: 19.2.5(react@19.2.5)
|
||||
optionalDependencies:
|
||||
'@types/react': 19.2.14
|
||||
'@types/react-dom': 19.2.3(@types/react@19.2.14)
|
||||
|
||||
'@radix-ui/react-alert-dialog@1.1.15(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)':
|
||||
'@radix-ui/react-alert-dialog@1.1.19(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)':
|
||||
dependencies:
|
||||
'@radix-ui/primitive': 1.1.3
|
||||
'@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.14)(react@19.2.5)
|
||||
'@radix-ui/react-context': 1.1.2(@types/react@19.2.14)(react@19.2.5)
|
||||
'@radix-ui/react-dialog': 1.1.15(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)
|
||||
'@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)
|
||||
'@radix-ui/react-slot': 1.2.3(@types/react@19.2.14)(react@19.2.5)
|
||||
'@radix-ui/primitive': 1.1.5
|
||||
'@radix-ui/react-compose-refs': 1.1.3(@types/react@19.2.14)(react@19.2.5)
|
||||
'@radix-ui/react-context': 1.2.0(@types/react@19.2.14)(react@19.2.5)
|
||||
'@radix-ui/react-dialog': 1.1.19(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)
|
||||
'@radix-ui/react-primitive': 2.1.7(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)
|
||||
react: 19.2.5
|
||||
react-dom: 19.2.5(react@19.2.5)
|
||||
optionalDependencies:
|
||||
'@types/react': 19.2.14
|
||||
'@types/react-dom': 19.2.3(@types/react@19.2.14)
|
||||
|
||||
'@radix-ui/react-arrow@1.1.7(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)':
|
||||
'@radix-ui/react-arrow@1.1.11(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)':
|
||||
dependencies:
|
||||
'@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)
|
||||
'@radix-ui/react-primitive': 2.1.7(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)
|
||||
react: 19.2.5
|
||||
react-dom: 19.2.5(react@19.2.5)
|
||||
optionalDependencies:
|
||||
'@types/react': 19.2.14
|
||||
'@types/react-dom': 19.2.3(@types/react@19.2.14)
|
||||
|
||||
'@radix-ui/react-aspect-ratio@1.1.7(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)':
|
||||
'@radix-ui/react-aspect-ratio@1.1.11(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)':
|
||||
dependencies:
|
||||
'@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)
|
||||
'@radix-ui/react-primitive': 2.1.7(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)
|
||||
react: 19.2.5
|
||||
react-dom: 19.2.5(react@19.2.5)
|
||||
optionalDependencies:
|
||||
'@types/react': 19.2.14
|
||||
'@types/react-dom': 19.2.3(@types/react@19.2.14)
|
||||
|
||||
'@radix-ui/react-avatar@1.1.10(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)':
|
||||
'@radix-ui/react-avatar@1.2.2(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)':
|
||||
dependencies:
|
||||
'@radix-ui/react-context': 1.1.2(@types/react@19.2.14)(react@19.2.5)
|
||||
'@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)
|
||||
'@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.2.14)(react@19.2.5)
|
||||
'@radix-ui/react-use-is-hydrated': 0.1.0(@types/react@19.2.14)(react@19.2.5)
|
||||
'@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.2.14)(react@19.2.5)
|
||||
'@radix-ui/react-context': 1.2.0(@types/react@19.2.14)(react@19.2.5)
|
||||
'@radix-ui/react-primitive': 2.1.7(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)
|
||||
'@radix-ui/react-use-callback-ref': 1.1.2(@types/react@19.2.14)(react@19.2.5)
|
||||
'@radix-ui/react-use-is-hydrated': 0.1.1(@types/react@19.2.14)(react@19.2.5)
|
||||
'@radix-ui/react-use-layout-effect': 1.1.2(@types/react@19.2.14)(react@19.2.5)
|
||||
react: 19.2.5
|
||||
react-dom: 19.2.5(react@19.2.5)
|
||||
optionalDependencies:
|
||||
'@types/react': 19.2.14
|
||||
'@types/react-dom': 19.2.3(@types/react@19.2.14)
|
||||
|
||||
'@radix-ui/react-checkbox@1.3.3(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)':
|
||||
'@radix-ui/react-checkbox@1.3.7(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)':
|
||||
dependencies:
|
||||
'@radix-ui/primitive': 1.1.3
|
||||
'@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.14)(react@19.2.5)
|
||||
'@radix-ui/react-context': 1.1.2(@types/react@19.2.14)(react@19.2.5)
|
||||
'@radix-ui/react-presence': 1.1.5(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)
|
||||
'@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)
|
||||
'@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.2.14)(react@19.2.5)
|
||||
'@radix-ui/react-use-previous': 1.1.1(@types/react@19.2.14)(react@19.2.5)
|
||||
'@radix-ui/react-use-size': 1.1.1(@types/react@19.2.14)(react@19.2.5)
|
||||
'@radix-ui/primitive': 1.1.5
|
||||
'@radix-ui/react-compose-refs': 1.1.3(@types/react@19.2.14)(react@19.2.5)
|
||||
'@radix-ui/react-context': 1.2.0(@types/react@19.2.14)(react@19.2.5)
|
||||
'@radix-ui/react-presence': 1.1.7(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)
|
||||
'@radix-ui/react-primitive': 2.1.7(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)
|
||||
'@radix-ui/react-use-controllable-state': 1.2.3(@types/react@19.2.14)(react@19.2.5)
|
||||
'@radix-ui/react-use-previous': 1.1.2(@types/react@19.2.14)(react@19.2.5)
|
||||
'@radix-ui/react-use-size': 1.1.2(@types/react@19.2.14)(react@19.2.5)
|
||||
react: 19.2.5
|
||||
react-dom: 19.2.5(react@19.2.5)
|
||||
optionalDependencies:
|
||||
'@types/react': 19.2.14
|
||||
'@types/react-dom': 19.2.3(@types/react@19.2.14)
|
||||
|
||||
'@radix-ui/react-collapsible@1.1.12(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)':
|
||||
'@radix-ui/react-collapsible@1.1.16(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)':
|
||||
dependencies:
|
||||
'@radix-ui/primitive': 1.1.3
|
||||
'@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.14)(react@19.2.5)
|
||||
'@radix-ui/react-context': 1.1.2(@types/react@19.2.14)(react@19.2.5)
|
||||
'@radix-ui/react-id': 1.1.1(@types/react@19.2.14)(react@19.2.5)
|
||||
'@radix-ui/react-presence': 1.1.5(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)
|
||||
'@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)
|
||||
'@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.2.14)(react@19.2.5)
|
||||
'@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.2.14)(react@19.2.5)
|
||||
'@radix-ui/primitive': 1.1.5
|
||||
'@radix-ui/react-compose-refs': 1.1.3(@types/react@19.2.14)(react@19.2.5)
|
||||
'@radix-ui/react-context': 1.2.0(@types/react@19.2.14)(react@19.2.5)
|
||||
'@radix-ui/react-id': 1.1.2(@types/react@19.2.14)(react@19.2.5)
|
||||
'@radix-ui/react-presence': 1.1.7(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)
|
||||
'@radix-ui/react-primitive': 2.1.7(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)
|
||||
'@radix-ui/react-use-controllable-state': 1.2.3(@types/react@19.2.14)(react@19.2.5)
|
||||
'@radix-ui/react-use-layout-effect': 1.1.2(@types/react@19.2.14)(react@19.2.5)
|
||||
react: 19.2.5
|
||||
react-dom: 19.2.5(react@19.2.5)
|
||||
optionalDependencies:
|
||||
'@types/react': 19.2.14
|
||||
'@types/react-dom': 19.2.3(@types/react@19.2.14)
|
||||
|
||||
'@radix-ui/react-collection@1.1.7(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)':
|
||||
'@radix-ui/react-collection@1.1.12(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)':
|
||||
dependencies:
|
||||
'@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.14)(react@19.2.5)
|
||||
'@radix-ui/react-context': 1.1.2(@types/react@19.2.14)(react@19.2.5)
|
||||
'@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)
|
||||
'@radix-ui/react-slot': 1.2.3(@types/react@19.2.14)(react@19.2.5)
|
||||
'@radix-ui/react-compose-refs': 1.1.3(@types/react@19.2.14)(react@19.2.5)
|
||||
'@radix-ui/react-context': 1.2.0(@types/react@19.2.14)(react@19.2.5)
|
||||
'@radix-ui/react-primitive': 2.1.7(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)
|
||||
'@radix-ui/react-slot': 1.3.0(@types/react@19.2.14)(react@19.2.5)
|
||||
react: 19.2.5
|
||||
react-dom: 19.2.5(react@19.2.5)
|
||||
optionalDependencies:
|
||||
'@types/react': 19.2.14
|
||||
'@types/react-dom': 19.2.3(@types/react@19.2.14)
|
||||
|
||||
'@radix-ui/react-compose-refs@1.1.2(@types/react@19.2.14)(react@19.2.5)':
|
||||
'@radix-ui/react-compose-refs@1.1.3(@types/react@19.2.14)(react@19.2.5)':
|
||||
dependencies:
|
||||
react: 19.2.5
|
||||
optionalDependencies:
|
||||
'@types/react': 19.2.14
|
||||
|
||||
'@radix-ui/react-context-menu@2.2.16(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)':
|
||||
'@radix-ui/react-context-menu@2.3.3(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)':
|
||||
dependencies:
|
||||
'@radix-ui/primitive': 1.1.3
|
||||
'@radix-ui/react-context': 1.1.2(@types/react@19.2.14)(react@19.2.5)
|
||||
'@radix-ui/react-menu': 2.1.16(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)
|
||||
'@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)
|
||||
'@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.2.14)(react@19.2.5)
|
||||
'@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.2.14)(react@19.2.5)
|
||||
'@radix-ui/primitive': 1.1.5
|
||||
'@radix-ui/react-context': 1.2.0(@types/react@19.2.14)(react@19.2.5)
|
||||
'@radix-ui/react-menu': 2.1.20(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)
|
||||
'@radix-ui/react-primitive': 2.1.7(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)
|
||||
'@radix-ui/react-use-controllable-state': 1.2.3(@types/react@19.2.14)(react@19.2.5)
|
||||
react: 19.2.5
|
||||
react-dom: 19.2.5(react@19.2.5)
|
||||
optionalDependencies:
|
||||
'@types/react': 19.2.14
|
||||
'@types/react-dom': 19.2.3(@types/react@19.2.14)
|
||||
|
||||
'@radix-ui/react-context@1.1.2(@types/react@19.2.14)(react@19.2.5)':
|
||||
'@radix-ui/react-context@1.2.0(@types/react@19.2.14)(react@19.2.5)':
|
||||
dependencies:
|
||||
react: 19.2.5
|
||||
optionalDependencies:
|
||||
'@types/react': 19.2.14
|
||||
|
||||
'@radix-ui/react-dialog@1.1.15(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)':
|
||||
'@radix-ui/react-dialog@1.1.19(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)':
|
||||
dependencies:
|
||||
'@radix-ui/primitive': 1.1.3
|
||||
'@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.14)(react@19.2.5)
|
||||
'@radix-ui/react-context': 1.1.2(@types/react@19.2.14)(react@19.2.5)
|
||||
'@radix-ui/react-dismissable-layer': 1.1.11(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)
|
||||
'@radix-ui/react-focus-guards': 1.1.3(@types/react@19.2.14)(react@19.2.5)
|
||||
'@radix-ui/react-focus-scope': 1.1.7(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)
|
||||
'@radix-ui/react-id': 1.1.1(@types/react@19.2.14)(react@19.2.5)
|
||||
'@radix-ui/react-portal': 1.1.9(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)
|
||||
'@radix-ui/react-presence': 1.1.5(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)
|
||||
'@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)
|
||||
'@radix-ui/react-slot': 1.2.3(@types/react@19.2.14)(react@19.2.5)
|
||||
'@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.2.14)(react@19.2.5)
|
||||
'@radix-ui/primitive': 1.1.5
|
||||
'@radix-ui/react-compose-refs': 1.1.3(@types/react@19.2.14)(react@19.2.5)
|
||||
'@radix-ui/react-context': 1.2.0(@types/react@19.2.14)(react@19.2.5)
|
||||
'@radix-ui/react-dismissable-layer': 1.1.15(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)
|
||||
'@radix-ui/react-focus-guards': 1.1.4(@types/react@19.2.14)(react@19.2.5)
|
||||
'@radix-ui/react-focus-scope': 1.1.12(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)
|
||||
'@radix-ui/react-id': 1.1.2(@types/react@19.2.14)(react@19.2.5)
|
||||
'@radix-ui/react-portal': 1.1.13(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)
|
||||
'@radix-ui/react-presence': 1.1.7(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)
|
||||
'@radix-ui/react-primitive': 2.1.7(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)
|
||||
'@radix-ui/react-slot': 1.3.0(@types/react@19.2.14)(react@19.2.5)
|
||||
'@radix-ui/react-use-controllable-state': 1.2.3(@types/react@19.2.14)(react@19.2.5)
|
||||
aria-hidden: 1.2.6
|
||||
react: 19.2.5
|
||||
react-dom: 19.2.5(react@19.2.5)
|
||||
@@ -4875,122 +5172,122 @@ snapshots:
|
||||
'@types/react': 19.2.14
|
||||
'@types/react-dom': 19.2.3(@types/react@19.2.14)
|
||||
|
||||
'@radix-ui/react-direction@1.1.1(@types/react@19.2.14)(react@19.2.5)':
|
||||
'@radix-ui/react-direction@1.1.2(@types/react@19.2.14)(react@19.2.5)':
|
||||
dependencies:
|
||||
react: 19.2.5
|
||||
optionalDependencies:
|
||||
'@types/react': 19.2.14
|
||||
|
||||
'@radix-ui/react-dismissable-layer@1.1.11(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)':
|
||||
'@radix-ui/react-dismissable-layer@1.1.15(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)':
|
||||
dependencies:
|
||||
'@radix-ui/primitive': 1.1.3
|
||||
'@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.14)(react@19.2.5)
|
||||
'@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)
|
||||
'@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.2.14)(react@19.2.5)
|
||||
'@radix-ui/react-use-escape-keydown': 1.1.1(@types/react@19.2.14)(react@19.2.5)
|
||||
'@radix-ui/primitive': 1.1.5
|
||||
'@radix-ui/react-compose-refs': 1.1.3(@types/react@19.2.14)(react@19.2.5)
|
||||
'@radix-ui/react-primitive': 2.1.7(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)
|
||||
'@radix-ui/react-use-callback-ref': 1.1.2(@types/react@19.2.14)(react@19.2.5)
|
||||
'@radix-ui/react-use-effect-event': 0.0.3(@types/react@19.2.14)(react@19.2.5)
|
||||
react: 19.2.5
|
||||
react-dom: 19.2.5(react@19.2.5)
|
||||
optionalDependencies:
|
||||
'@types/react': 19.2.14
|
||||
'@types/react-dom': 19.2.3(@types/react@19.2.14)
|
||||
|
||||
'@radix-ui/react-dropdown-menu@2.1.16(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)':
|
||||
'@radix-ui/react-dropdown-menu@2.1.20(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)':
|
||||
dependencies:
|
||||
'@radix-ui/primitive': 1.1.3
|
||||
'@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.14)(react@19.2.5)
|
||||
'@radix-ui/react-context': 1.1.2(@types/react@19.2.14)(react@19.2.5)
|
||||
'@radix-ui/react-id': 1.1.1(@types/react@19.2.14)(react@19.2.5)
|
||||
'@radix-ui/react-menu': 2.1.16(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)
|
||||
'@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)
|
||||
'@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.2.14)(react@19.2.5)
|
||||
'@radix-ui/primitive': 1.1.5
|
||||
'@radix-ui/react-compose-refs': 1.1.3(@types/react@19.2.14)(react@19.2.5)
|
||||
'@radix-ui/react-context': 1.2.0(@types/react@19.2.14)(react@19.2.5)
|
||||
'@radix-ui/react-id': 1.1.2(@types/react@19.2.14)(react@19.2.5)
|
||||
'@radix-ui/react-menu': 2.1.20(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)
|
||||
'@radix-ui/react-primitive': 2.1.7(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)
|
||||
'@radix-ui/react-use-controllable-state': 1.2.3(@types/react@19.2.14)(react@19.2.5)
|
||||
react: 19.2.5
|
||||
react-dom: 19.2.5(react@19.2.5)
|
||||
optionalDependencies:
|
||||
'@types/react': 19.2.14
|
||||
'@types/react-dom': 19.2.3(@types/react@19.2.14)
|
||||
|
||||
'@radix-ui/react-focus-guards@1.1.3(@types/react@19.2.14)(react@19.2.5)':
|
||||
'@radix-ui/react-focus-guards@1.1.4(@types/react@19.2.14)(react@19.2.5)':
|
||||
dependencies:
|
||||
react: 19.2.5
|
||||
optionalDependencies:
|
||||
'@types/react': 19.2.14
|
||||
|
||||
'@radix-ui/react-focus-scope@1.1.7(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)':
|
||||
'@radix-ui/react-focus-scope@1.1.12(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)':
|
||||
dependencies:
|
||||
'@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.14)(react@19.2.5)
|
||||
'@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)
|
||||
'@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.2.14)(react@19.2.5)
|
||||
'@radix-ui/react-compose-refs': 1.1.3(@types/react@19.2.14)(react@19.2.5)
|
||||
'@radix-ui/react-primitive': 2.1.7(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)
|
||||
'@radix-ui/react-use-callback-ref': 1.1.2(@types/react@19.2.14)(react@19.2.5)
|
||||
react: 19.2.5
|
||||
react-dom: 19.2.5(react@19.2.5)
|
||||
optionalDependencies:
|
||||
'@types/react': 19.2.14
|
||||
'@types/react-dom': 19.2.3(@types/react@19.2.14)
|
||||
|
||||
'@radix-ui/react-form@0.1.8(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)':
|
||||
'@radix-ui/react-form@0.1.12(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)':
|
||||
dependencies:
|
||||
'@radix-ui/primitive': 1.1.3
|
||||
'@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.14)(react@19.2.5)
|
||||
'@radix-ui/react-context': 1.1.2(@types/react@19.2.14)(react@19.2.5)
|
||||
'@radix-ui/react-id': 1.1.1(@types/react@19.2.14)(react@19.2.5)
|
||||
'@radix-ui/react-label': 2.1.7(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)
|
||||
'@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)
|
||||
'@radix-ui/primitive': 1.1.5
|
||||
'@radix-ui/react-compose-refs': 1.1.3(@types/react@19.2.14)(react@19.2.5)
|
||||
'@radix-ui/react-context': 1.2.0(@types/react@19.2.14)(react@19.2.5)
|
||||
'@radix-ui/react-id': 1.1.2(@types/react@19.2.14)(react@19.2.5)
|
||||
'@radix-ui/react-label': 2.1.11(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)
|
||||
'@radix-ui/react-primitive': 2.1.7(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)
|
||||
react: 19.2.5
|
||||
react-dom: 19.2.5(react@19.2.5)
|
||||
optionalDependencies:
|
||||
'@types/react': 19.2.14
|
||||
'@types/react-dom': 19.2.3(@types/react@19.2.14)
|
||||
|
||||
'@radix-ui/react-hover-card@1.1.15(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)':
|
||||
'@radix-ui/react-hover-card@1.1.19(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)':
|
||||
dependencies:
|
||||
'@radix-ui/primitive': 1.1.3
|
||||
'@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.14)(react@19.2.5)
|
||||
'@radix-ui/react-context': 1.1.2(@types/react@19.2.14)(react@19.2.5)
|
||||
'@radix-ui/react-dismissable-layer': 1.1.11(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)
|
||||
'@radix-ui/react-popper': 1.2.8(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)
|
||||
'@radix-ui/react-portal': 1.1.9(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)
|
||||
'@radix-ui/react-presence': 1.1.5(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)
|
||||
'@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)
|
||||
'@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.2.14)(react@19.2.5)
|
||||
'@radix-ui/primitive': 1.1.5
|
||||
'@radix-ui/react-compose-refs': 1.1.3(@types/react@19.2.14)(react@19.2.5)
|
||||
'@radix-ui/react-context': 1.2.0(@types/react@19.2.14)(react@19.2.5)
|
||||
'@radix-ui/react-dismissable-layer': 1.1.15(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)
|
||||
'@radix-ui/react-popper': 1.3.3(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)
|
||||
'@radix-ui/react-portal': 1.1.13(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)
|
||||
'@radix-ui/react-presence': 1.1.7(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)
|
||||
'@radix-ui/react-primitive': 2.1.7(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)
|
||||
'@radix-ui/react-use-controllable-state': 1.2.3(@types/react@19.2.14)(react@19.2.5)
|
||||
react: 19.2.5
|
||||
react-dom: 19.2.5(react@19.2.5)
|
||||
optionalDependencies:
|
||||
'@types/react': 19.2.14
|
||||
'@types/react-dom': 19.2.3(@types/react@19.2.14)
|
||||
|
||||
'@radix-ui/react-id@1.1.1(@types/react@19.2.14)(react@19.2.5)':
|
||||
'@radix-ui/react-id@1.1.2(@types/react@19.2.14)(react@19.2.5)':
|
||||
dependencies:
|
||||
'@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.2.14)(react@19.2.5)
|
||||
'@radix-ui/react-use-layout-effect': 1.1.2(@types/react@19.2.14)(react@19.2.5)
|
||||
react: 19.2.5
|
||||
optionalDependencies:
|
||||
'@types/react': 19.2.14
|
||||
|
||||
'@radix-ui/react-label@2.1.7(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)':
|
||||
'@radix-ui/react-label@2.1.11(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)':
|
||||
dependencies:
|
||||
'@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)
|
||||
'@radix-ui/react-primitive': 2.1.7(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)
|
||||
react: 19.2.5
|
||||
react-dom: 19.2.5(react@19.2.5)
|
||||
optionalDependencies:
|
||||
'@types/react': 19.2.14
|
||||
'@types/react-dom': 19.2.3(@types/react@19.2.14)
|
||||
|
||||
'@radix-ui/react-menu@2.1.16(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)':
|
||||
'@radix-ui/react-menu@2.1.20(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)':
|
||||
dependencies:
|
||||
'@radix-ui/primitive': 1.1.3
|
||||
'@radix-ui/react-collection': 1.1.7(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)
|
||||
'@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.14)(react@19.2.5)
|
||||
'@radix-ui/react-context': 1.1.2(@types/react@19.2.14)(react@19.2.5)
|
||||
'@radix-ui/react-direction': 1.1.1(@types/react@19.2.14)(react@19.2.5)
|
||||
'@radix-ui/react-dismissable-layer': 1.1.11(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)
|
||||
'@radix-ui/react-focus-guards': 1.1.3(@types/react@19.2.14)(react@19.2.5)
|
||||
'@radix-ui/react-focus-scope': 1.1.7(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)
|
||||
'@radix-ui/react-id': 1.1.1(@types/react@19.2.14)(react@19.2.5)
|
||||
'@radix-ui/react-popper': 1.2.8(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)
|
||||
'@radix-ui/react-portal': 1.1.9(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)
|
||||
'@radix-ui/react-presence': 1.1.5(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)
|
||||
'@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)
|
||||
'@radix-ui/react-roving-focus': 1.1.11(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)
|
||||
'@radix-ui/react-slot': 1.2.3(@types/react@19.2.14)(react@19.2.5)
|
||||
'@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.2.14)(react@19.2.5)
|
||||
'@radix-ui/primitive': 1.1.5
|
||||
'@radix-ui/react-collection': 1.1.12(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)
|
||||
'@radix-ui/react-compose-refs': 1.1.3(@types/react@19.2.14)(react@19.2.5)
|
||||
'@radix-ui/react-context': 1.2.0(@types/react@19.2.14)(react@19.2.5)
|
||||
'@radix-ui/react-direction': 1.1.2(@types/react@19.2.14)(react@19.2.5)
|
||||
'@radix-ui/react-dismissable-layer': 1.1.15(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)
|
||||
'@radix-ui/react-focus-guards': 1.1.4(@types/react@19.2.14)(react@19.2.5)
|
||||
'@radix-ui/react-focus-scope': 1.1.12(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)
|
||||
'@radix-ui/react-id': 1.1.2(@types/react@19.2.14)(react@19.2.5)
|
||||
'@radix-ui/react-popper': 1.3.3(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)
|
||||
'@radix-ui/react-portal': 1.1.13(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)
|
||||
'@radix-ui/react-presence': 1.1.7(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)
|
||||
'@radix-ui/react-primitive': 2.1.7(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)
|
||||
'@radix-ui/react-roving-focus': 1.1.15(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)
|
||||
'@radix-ui/react-slot': 1.3.0(@types/react@19.2.14)(react@19.2.5)
|
||||
'@radix-ui/react-use-callback-ref': 1.1.2(@types/react@19.2.14)(react@19.2.5)
|
||||
aria-hidden: 1.2.6
|
||||
react: 19.2.5
|
||||
react-dom: 19.2.5(react@19.2.5)
|
||||
@@ -4999,97 +5296,97 @@ snapshots:
|
||||
'@types/react': 19.2.14
|
||||
'@types/react-dom': 19.2.3(@types/react@19.2.14)
|
||||
|
||||
'@radix-ui/react-menubar@1.1.16(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)':
|
||||
'@radix-ui/react-menubar@1.1.20(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)':
|
||||
dependencies:
|
||||
'@radix-ui/primitive': 1.1.3
|
||||
'@radix-ui/react-collection': 1.1.7(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)
|
||||
'@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.14)(react@19.2.5)
|
||||
'@radix-ui/react-context': 1.1.2(@types/react@19.2.14)(react@19.2.5)
|
||||
'@radix-ui/react-direction': 1.1.1(@types/react@19.2.14)(react@19.2.5)
|
||||
'@radix-ui/react-id': 1.1.1(@types/react@19.2.14)(react@19.2.5)
|
||||
'@radix-ui/react-menu': 2.1.16(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)
|
||||
'@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)
|
||||
'@radix-ui/react-roving-focus': 1.1.11(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)
|
||||
'@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.2.14)(react@19.2.5)
|
||||
'@radix-ui/primitive': 1.1.5
|
||||
'@radix-ui/react-collection': 1.1.12(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)
|
||||
'@radix-ui/react-compose-refs': 1.1.3(@types/react@19.2.14)(react@19.2.5)
|
||||
'@radix-ui/react-context': 1.2.0(@types/react@19.2.14)(react@19.2.5)
|
||||
'@radix-ui/react-direction': 1.1.2(@types/react@19.2.14)(react@19.2.5)
|
||||
'@radix-ui/react-id': 1.1.2(@types/react@19.2.14)(react@19.2.5)
|
||||
'@radix-ui/react-menu': 2.1.20(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)
|
||||
'@radix-ui/react-primitive': 2.1.7(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)
|
||||
'@radix-ui/react-roving-focus': 1.1.15(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)
|
||||
'@radix-ui/react-use-controllable-state': 1.2.3(@types/react@19.2.14)(react@19.2.5)
|
||||
react: 19.2.5
|
||||
react-dom: 19.2.5(react@19.2.5)
|
||||
optionalDependencies:
|
||||
'@types/react': 19.2.14
|
||||
'@types/react-dom': 19.2.3(@types/react@19.2.14)
|
||||
|
||||
'@radix-ui/react-navigation-menu@1.2.14(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)':
|
||||
'@radix-ui/react-navigation-menu@1.2.18(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)':
|
||||
dependencies:
|
||||
'@radix-ui/primitive': 1.1.3
|
||||
'@radix-ui/react-collection': 1.1.7(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)
|
||||
'@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.14)(react@19.2.5)
|
||||
'@radix-ui/react-context': 1.1.2(@types/react@19.2.14)(react@19.2.5)
|
||||
'@radix-ui/react-direction': 1.1.1(@types/react@19.2.14)(react@19.2.5)
|
||||
'@radix-ui/react-dismissable-layer': 1.1.11(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)
|
||||
'@radix-ui/react-id': 1.1.1(@types/react@19.2.14)(react@19.2.5)
|
||||
'@radix-ui/react-presence': 1.1.5(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)
|
||||
'@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)
|
||||
'@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.2.14)(react@19.2.5)
|
||||
'@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.2.14)(react@19.2.5)
|
||||
'@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.2.14)(react@19.2.5)
|
||||
'@radix-ui/react-use-previous': 1.1.1(@types/react@19.2.14)(react@19.2.5)
|
||||
'@radix-ui/react-visually-hidden': 1.2.3(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)
|
||||
'@radix-ui/primitive': 1.1.5
|
||||
'@radix-ui/react-collection': 1.1.12(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)
|
||||
'@radix-ui/react-compose-refs': 1.1.3(@types/react@19.2.14)(react@19.2.5)
|
||||
'@radix-ui/react-context': 1.2.0(@types/react@19.2.14)(react@19.2.5)
|
||||
'@radix-ui/react-direction': 1.1.2(@types/react@19.2.14)(react@19.2.5)
|
||||
'@radix-ui/react-dismissable-layer': 1.1.15(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)
|
||||
'@radix-ui/react-id': 1.1.2(@types/react@19.2.14)(react@19.2.5)
|
||||
'@radix-ui/react-presence': 1.1.7(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)
|
||||
'@radix-ui/react-primitive': 2.1.7(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)
|
||||
'@radix-ui/react-use-callback-ref': 1.1.2(@types/react@19.2.14)(react@19.2.5)
|
||||
'@radix-ui/react-use-controllable-state': 1.2.3(@types/react@19.2.14)(react@19.2.5)
|
||||
'@radix-ui/react-use-layout-effect': 1.1.2(@types/react@19.2.14)(react@19.2.5)
|
||||
'@radix-ui/react-use-previous': 1.1.2(@types/react@19.2.14)(react@19.2.5)
|
||||
'@radix-ui/react-visually-hidden': 1.2.7(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)
|
||||
react: 19.2.5
|
||||
react-dom: 19.2.5(react@19.2.5)
|
||||
optionalDependencies:
|
||||
'@types/react': 19.2.14
|
||||
'@types/react-dom': 19.2.3(@types/react@19.2.14)
|
||||
|
||||
'@radix-ui/react-one-time-password-field@0.1.8(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)':
|
||||
'@radix-ui/react-one-time-password-field@0.1.12(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)':
|
||||
dependencies:
|
||||
'@radix-ui/number': 1.1.1
|
||||
'@radix-ui/primitive': 1.1.3
|
||||
'@radix-ui/react-collection': 1.1.7(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)
|
||||
'@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.14)(react@19.2.5)
|
||||
'@radix-ui/react-context': 1.1.2(@types/react@19.2.14)(react@19.2.5)
|
||||
'@radix-ui/react-direction': 1.1.1(@types/react@19.2.14)(react@19.2.5)
|
||||
'@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)
|
||||
'@radix-ui/react-roving-focus': 1.1.11(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)
|
||||
'@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.2.14)(react@19.2.5)
|
||||
'@radix-ui/react-use-effect-event': 0.0.2(@types/react@19.2.14)(react@19.2.5)
|
||||
'@radix-ui/react-use-is-hydrated': 0.1.0(@types/react@19.2.14)(react@19.2.5)
|
||||
'@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.2.14)(react@19.2.5)
|
||||
'@radix-ui/number': 1.1.2
|
||||
'@radix-ui/primitive': 1.1.5
|
||||
'@radix-ui/react-collection': 1.1.12(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)
|
||||
'@radix-ui/react-compose-refs': 1.1.3(@types/react@19.2.14)(react@19.2.5)
|
||||
'@radix-ui/react-context': 1.2.0(@types/react@19.2.14)(react@19.2.5)
|
||||
'@radix-ui/react-direction': 1.1.2(@types/react@19.2.14)(react@19.2.5)
|
||||
'@radix-ui/react-primitive': 2.1.7(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)
|
||||
'@radix-ui/react-roving-focus': 1.1.15(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)
|
||||
'@radix-ui/react-use-controllable-state': 1.2.3(@types/react@19.2.14)(react@19.2.5)
|
||||
'@radix-ui/react-use-effect-event': 0.0.3(@types/react@19.2.14)(react@19.2.5)
|
||||
'@radix-ui/react-use-is-hydrated': 0.1.1(@types/react@19.2.14)(react@19.2.5)
|
||||
'@radix-ui/react-use-layout-effect': 1.1.2(@types/react@19.2.14)(react@19.2.5)
|
||||
react: 19.2.5
|
||||
react-dom: 19.2.5(react@19.2.5)
|
||||
optionalDependencies:
|
||||
'@types/react': 19.2.14
|
||||
'@types/react-dom': 19.2.3(@types/react@19.2.14)
|
||||
|
||||
'@radix-ui/react-password-toggle-field@0.1.3(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)':
|
||||
'@radix-ui/react-password-toggle-field@0.1.7(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)':
|
||||
dependencies:
|
||||
'@radix-ui/primitive': 1.1.3
|
||||
'@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.14)(react@19.2.5)
|
||||
'@radix-ui/react-context': 1.1.2(@types/react@19.2.14)(react@19.2.5)
|
||||
'@radix-ui/react-id': 1.1.1(@types/react@19.2.14)(react@19.2.5)
|
||||
'@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)
|
||||
'@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.2.14)(react@19.2.5)
|
||||
'@radix-ui/react-use-effect-event': 0.0.2(@types/react@19.2.14)(react@19.2.5)
|
||||
'@radix-ui/react-use-is-hydrated': 0.1.0(@types/react@19.2.14)(react@19.2.5)
|
||||
'@radix-ui/primitive': 1.1.5
|
||||
'@radix-ui/react-compose-refs': 1.1.3(@types/react@19.2.14)(react@19.2.5)
|
||||
'@radix-ui/react-context': 1.2.0(@types/react@19.2.14)(react@19.2.5)
|
||||
'@radix-ui/react-id': 1.1.2(@types/react@19.2.14)(react@19.2.5)
|
||||
'@radix-ui/react-primitive': 2.1.7(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)
|
||||
'@radix-ui/react-use-controllable-state': 1.2.3(@types/react@19.2.14)(react@19.2.5)
|
||||
'@radix-ui/react-use-effect-event': 0.0.3(@types/react@19.2.14)(react@19.2.5)
|
||||
'@radix-ui/react-use-is-hydrated': 0.1.1(@types/react@19.2.14)(react@19.2.5)
|
||||
react: 19.2.5
|
||||
react-dom: 19.2.5(react@19.2.5)
|
||||
optionalDependencies:
|
||||
'@types/react': 19.2.14
|
||||
'@types/react-dom': 19.2.3(@types/react@19.2.14)
|
||||
|
||||
'@radix-ui/react-popover@1.1.15(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)':
|
||||
'@radix-ui/react-popover@1.1.19(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)':
|
||||
dependencies:
|
||||
'@radix-ui/primitive': 1.1.3
|
||||
'@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.14)(react@19.2.5)
|
||||
'@radix-ui/react-context': 1.1.2(@types/react@19.2.14)(react@19.2.5)
|
||||
'@radix-ui/react-dismissable-layer': 1.1.11(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)
|
||||
'@radix-ui/react-focus-guards': 1.1.3(@types/react@19.2.14)(react@19.2.5)
|
||||
'@radix-ui/react-focus-scope': 1.1.7(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)
|
||||
'@radix-ui/react-id': 1.1.1(@types/react@19.2.14)(react@19.2.5)
|
||||
'@radix-ui/react-popper': 1.2.8(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)
|
||||
'@radix-ui/react-portal': 1.1.9(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)
|
||||
'@radix-ui/react-presence': 1.1.5(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)
|
||||
'@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)
|
||||
'@radix-ui/react-slot': 1.2.3(@types/react@19.2.14)(react@19.2.5)
|
||||
'@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.2.14)(react@19.2.5)
|
||||
'@radix-ui/primitive': 1.1.5
|
||||
'@radix-ui/react-compose-refs': 1.1.3(@types/react@19.2.14)(react@19.2.5)
|
||||
'@radix-ui/react-context': 1.2.0(@types/react@19.2.14)(react@19.2.5)
|
||||
'@radix-ui/react-dismissable-layer': 1.1.15(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)
|
||||
'@radix-ui/react-focus-guards': 1.1.4(@types/react@19.2.14)(react@19.2.5)
|
||||
'@radix-ui/react-focus-scope': 1.1.12(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)
|
||||
'@radix-ui/react-id': 1.1.2(@types/react@19.2.14)(react@19.2.5)
|
||||
'@radix-ui/react-popper': 1.3.3(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)
|
||||
'@radix-ui/react-portal': 1.1.13(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)
|
||||
'@radix-ui/react-presence': 1.1.7(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)
|
||||
'@radix-ui/react-primitive': 2.1.7(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)
|
||||
'@radix-ui/react-slot': 1.3.0(@types/react@19.2.14)(react@19.2.5)
|
||||
'@radix-ui/react-use-controllable-state': 1.2.3(@types/react@19.2.14)(react@19.2.5)
|
||||
aria-hidden: 1.2.6
|
||||
react: 19.2.5
|
||||
react-dom: 19.2.5(react@19.2.5)
|
||||
@@ -5098,136 +5395,138 @@ snapshots:
|
||||
'@types/react': 19.2.14
|
||||
'@types/react-dom': 19.2.3(@types/react@19.2.14)
|
||||
|
||||
'@radix-ui/react-popper@1.2.8(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)':
|
||||
'@radix-ui/react-popper@1.3.3(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)':
|
||||
dependencies:
|
||||
'@floating-ui/react-dom': 2.1.8(react-dom@19.2.5(react@19.2.5))(react@19.2.5)
|
||||
'@radix-ui/react-arrow': 1.1.7(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)
|
||||
'@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.14)(react@19.2.5)
|
||||
'@radix-ui/react-context': 1.1.2(@types/react@19.2.14)(react@19.2.5)
|
||||
'@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)
|
||||
'@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.2.14)(react@19.2.5)
|
||||
'@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.2.14)(react@19.2.5)
|
||||
'@radix-ui/react-use-rect': 1.1.1(@types/react@19.2.14)(react@19.2.5)
|
||||
'@radix-ui/react-use-size': 1.1.1(@types/react@19.2.14)(react@19.2.5)
|
||||
'@radix-ui/rect': 1.1.1
|
||||
'@radix-ui/react-arrow': 1.1.11(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)
|
||||
'@radix-ui/react-compose-refs': 1.1.3(@types/react@19.2.14)(react@19.2.5)
|
||||
'@radix-ui/react-context': 1.2.0(@types/react@19.2.14)(react@19.2.5)
|
||||
'@radix-ui/react-primitive': 2.1.7(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)
|
||||
'@radix-ui/react-use-callback-ref': 1.1.2(@types/react@19.2.14)(react@19.2.5)
|
||||
'@radix-ui/react-use-layout-effect': 1.1.2(@types/react@19.2.14)(react@19.2.5)
|
||||
'@radix-ui/react-use-rect': 1.1.2(@types/react@19.2.14)(react@19.2.5)
|
||||
'@radix-ui/react-use-size': 1.1.2(@types/react@19.2.14)(react@19.2.5)
|
||||
'@radix-ui/rect': 1.1.2
|
||||
react: 19.2.5
|
||||
react-dom: 19.2.5(react@19.2.5)
|
||||
optionalDependencies:
|
||||
'@types/react': 19.2.14
|
||||
'@types/react-dom': 19.2.3(@types/react@19.2.14)
|
||||
|
||||
'@radix-ui/react-portal@1.1.9(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)':
|
||||
'@radix-ui/react-portal@1.1.13(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)':
|
||||
dependencies:
|
||||
'@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)
|
||||
'@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.2.14)(react@19.2.5)
|
||||
'@radix-ui/react-primitive': 2.1.7(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)
|
||||
'@radix-ui/react-use-layout-effect': 1.1.2(@types/react@19.2.14)(react@19.2.5)
|
||||
react: 19.2.5
|
||||
react-dom: 19.2.5(react@19.2.5)
|
||||
optionalDependencies:
|
||||
'@types/react': 19.2.14
|
||||
'@types/react-dom': 19.2.3(@types/react@19.2.14)
|
||||
|
||||
'@radix-ui/react-presence@1.1.5(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)':
|
||||
'@radix-ui/react-presence@1.1.7(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)':
|
||||
dependencies:
|
||||
'@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.14)(react@19.2.5)
|
||||
'@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.2.14)(react@19.2.5)
|
||||
'@radix-ui/react-use-layout-effect': 1.1.2(@types/react@19.2.14)(react@19.2.5)
|
||||
react: 19.2.5
|
||||
react-dom: 19.2.5(react@19.2.5)
|
||||
optionalDependencies:
|
||||
'@types/react': 19.2.14
|
||||
'@types/react-dom': 19.2.3(@types/react@19.2.14)
|
||||
|
||||
'@radix-ui/react-primitive@2.1.3(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)':
|
||||
'@radix-ui/react-primitive@2.1.7(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)':
|
||||
dependencies:
|
||||
'@radix-ui/react-slot': 1.2.3(@types/react@19.2.14)(react@19.2.5)
|
||||
'@radix-ui/react-slot': 1.3.0(@types/react@19.2.14)(react@19.2.5)
|
||||
react: 19.2.5
|
||||
react-dom: 19.2.5(react@19.2.5)
|
||||
optionalDependencies:
|
||||
'@types/react': 19.2.14
|
||||
'@types/react-dom': 19.2.3(@types/react@19.2.14)
|
||||
|
||||
'@radix-ui/react-progress@1.1.7(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)':
|
||||
'@radix-ui/react-progress@1.1.12(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)':
|
||||
dependencies:
|
||||
'@radix-ui/react-context': 1.1.2(@types/react@19.2.14)(react@19.2.5)
|
||||
'@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)
|
||||
'@radix-ui/react-context': 1.2.0(@types/react@19.2.14)(react@19.2.5)
|
||||
'@radix-ui/react-primitive': 2.1.7(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)
|
||||
react: 19.2.5
|
||||
react-dom: 19.2.5(react@19.2.5)
|
||||
optionalDependencies:
|
||||
'@types/react': 19.2.14
|
||||
'@types/react-dom': 19.2.3(@types/react@19.2.14)
|
||||
|
||||
'@radix-ui/react-radio-group@1.3.8(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)':
|
||||
'@radix-ui/react-radio-group@1.4.3(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)':
|
||||
dependencies:
|
||||
'@radix-ui/primitive': 1.1.3
|
||||
'@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.14)(react@19.2.5)
|
||||
'@radix-ui/react-context': 1.1.2(@types/react@19.2.14)(react@19.2.5)
|
||||
'@radix-ui/react-direction': 1.1.1(@types/react@19.2.14)(react@19.2.5)
|
||||
'@radix-ui/react-presence': 1.1.5(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)
|
||||
'@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)
|
||||
'@radix-ui/react-roving-focus': 1.1.11(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)
|
||||
'@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.2.14)(react@19.2.5)
|
||||
'@radix-ui/react-use-previous': 1.1.1(@types/react@19.2.14)(react@19.2.5)
|
||||
'@radix-ui/react-use-size': 1.1.1(@types/react@19.2.14)(react@19.2.5)
|
||||
'@radix-ui/primitive': 1.1.5
|
||||
'@radix-ui/react-compose-refs': 1.1.3(@types/react@19.2.14)(react@19.2.5)
|
||||
'@radix-ui/react-context': 1.2.0(@types/react@19.2.14)(react@19.2.5)
|
||||
'@radix-ui/react-direction': 1.1.2(@types/react@19.2.14)(react@19.2.5)
|
||||
'@radix-ui/react-presence': 1.1.7(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)
|
||||
'@radix-ui/react-primitive': 2.1.7(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)
|
||||
'@radix-ui/react-roving-focus': 1.1.15(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)
|
||||
'@radix-ui/react-use-controllable-state': 1.2.3(@types/react@19.2.14)(react@19.2.5)
|
||||
'@radix-ui/react-use-previous': 1.1.2(@types/react@19.2.14)(react@19.2.5)
|
||||
'@radix-ui/react-use-size': 1.1.2(@types/react@19.2.14)(react@19.2.5)
|
||||
react: 19.2.5
|
||||
react-dom: 19.2.5(react@19.2.5)
|
||||
optionalDependencies:
|
||||
'@types/react': 19.2.14
|
||||
'@types/react-dom': 19.2.3(@types/react@19.2.14)
|
||||
|
||||
'@radix-ui/react-roving-focus@1.1.11(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)':
|
||||
'@radix-ui/react-roving-focus@1.1.15(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)':
|
||||
dependencies:
|
||||
'@radix-ui/primitive': 1.1.3
|
||||
'@radix-ui/react-collection': 1.1.7(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)
|
||||
'@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.14)(react@19.2.5)
|
||||
'@radix-ui/react-context': 1.1.2(@types/react@19.2.14)(react@19.2.5)
|
||||
'@radix-ui/react-direction': 1.1.1(@types/react@19.2.14)(react@19.2.5)
|
||||
'@radix-ui/react-id': 1.1.1(@types/react@19.2.14)(react@19.2.5)
|
||||
'@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)
|
||||
'@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.2.14)(react@19.2.5)
|
||||
'@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.2.14)(react@19.2.5)
|
||||
'@radix-ui/primitive': 1.1.5
|
||||
'@radix-ui/react-collection': 1.1.12(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)
|
||||
'@radix-ui/react-compose-refs': 1.1.3(@types/react@19.2.14)(react@19.2.5)
|
||||
'@radix-ui/react-context': 1.2.0(@types/react@19.2.14)(react@19.2.5)
|
||||
'@radix-ui/react-direction': 1.1.2(@types/react@19.2.14)(react@19.2.5)
|
||||
'@radix-ui/react-id': 1.1.2(@types/react@19.2.14)(react@19.2.5)
|
||||
'@radix-ui/react-primitive': 2.1.7(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)
|
||||
'@radix-ui/react-use-callback-ref': 1.1.2(@types/react@19.2.14)(react@19.2.5)
|
||||
'@radix-ui/react-use-controllable-state': 1.2.3(@types/react@19.2.14)(react@19.2.5)
|
||||
'@radix-ui/react-use-is-hydrated': 0.1.1(@types/react@19.2.14)(react@19.2.5)
|
||||
'@radix-ui/react-use-layout-effect': 1.1.2(@types/react@19.2.14)(react@19.2.5)
|
||||
react: 19.2.5
|
||||
react-dom: 19.2.5(react@19.2.5)
|
||||
optionalDependencies:
|
||||
'@types/react': 19.2.14
|
||||
'@types/react-dom': 19.2.3(@types/react@19.2.14)
|
||||
|
||||
'@radix-ui/react-scroll-area@1.2.10(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)':
|
||||
'@radix-ui/react-scroll-area@1.2.14(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)':
|
||||
dependencies:
|
||||
'@radix-ui/number': 1.1.1
|
||||
'@radix-ui/primitive': 1.1.3
|
||||
'@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.14)(react@19.2.5)
|
||||
'@radix-ui/react-context': 1.1.2(@types/react@19.2.14)(react@19.2.5)
|
||||
'@radix-ui/react-direction': 1.1.1(@types/react@19.2.14)(react@19.2.5)
|
||||
'@radix-ui/react-presence': 1.1.5(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)
|
||||
'@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)
|
||||
'@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.2.14)(react@19.2.5)
|
||||
'@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.2.14)(react@19.2.5)
|
||||
'@radix-ui/number': 1.1.2
|
||||
'@radix-ui/primitive': 1.1.5
|
||||
'@radix-ui/react-compose-refs': 1.1.3(@types/react@19.2.14)(react@19.2.5)
|
||||
'@radix-ui/react-context': 1.2.0(@types/react@19.2.14)(react@19.2.5)
|
||||
'@radix-ui/react-direction': 1.1.2(@types/react@19.2.14)(react@19.2.5)
|
||||
'@radix-ui/react-presence': 1.1.7(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)
|
||||
'@radix-ui/react-primitive': 2.1.7(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)
|
||||
'@radix-ui/react-use-callback-ref': 1.1.2(@types/react@19.2.14)(react@19.2.5)
|
||||
'@radix-ui/react-use-layout-effect': 1.1.2(@types/react@19.2.14)(react@19.2.5)
|
||||
react: 19.2.5
|
||||
react-dom: 19.2.5(react@19.2.5)
|
||||
optionalDependencies:
|
||||
'@types/react': 19.2.14
|
||||
'@types/react-dom': 19.2.3(@types/react@19.2.14)
|
||||
|
||||
'@radix-ui/react-select@2.2.6(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)':
|
||||
'@radix-ui/react-select@2.3.3(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)':
|
||||
dependencies:
|
||||
'@radix-ui/number': 1.1.1
|
||||
'@radix-ui/primitive': 1.1.3
|
||||
'@radix-ui/react-collection': 1.1.7(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)
|
||||
'@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.14)(react@19.2.5)
|
||||
'@radix-ui/react-context': 1.1.2(@types/react@19.2.14)(react@19.2.5)
|
||||
'@radix-ui/react-direction': 1.1.1(@types/react@19.2.14)(react@19.2.5)
|
||||
'@radix-ui/react-dismissable-layer': 1.1.11(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)
|
||||
'@radix-ui/react-focus-guards': 1.1.3(@types/react@19.2.14)(react@19.2.5)
|
||||
'@radix-ui/react-focus-scope': 1.1.7(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)
|
||||
'@radix-ui/react-id': 1.1.1(@types/react@19.2.14)(react@19.2.5)
|
||||
'@radix-ui/react-popper': 1.2.8(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)
|
||||
'@radix-ui/react-portal': 1.1.9(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)
|
||||
'@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)
|
||||
'@radix-ui/react-slot': 1.2.3(@types/react@19.2.14)(react@19.2.5)
|
||||
'@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.2.14)(react@19.2.5)
|
||||
'@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.2.14)(react@19.2.5)
|
||||
'@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.2.14)(react@19.2.5)
|
||||
'@radix-ui/react-use-previous': 1.1.1(@types/react@19.2.14)(react@19.2.5)
|
||||
'@radix-ui/react-visually-hidden': 1.2.3(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)
|
||||
'@radix-ui/number': 1.1.2
|
||||
'@radix-ui/primitive': 1.1.5
|
||||
'@radix-ui/react-collection': 1.1.12(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)
|
||||
'@radix-ui/react-compose-refs': 1.1.3(@types/react@19.2.14)(react@19.2.5)
|
||||
'@radix-ui/react-context': 1.2.0(@types/react@19.2.14)(react@19.2.5)
|
||||
'@radix-ui/react-direction': 1.1.2(@types/react@19.2.14)(react@19.2.5)
|
||||
'@radix-ui/react-dismissable-layer': 1.1.15(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)
|
||||
'@radix-ui/react-focus-guards': 1.1.4(@types/react@19.2.14)(react@19.2.5)
|
||||
'@radix-ui/react-focus-scope': 1.1.12(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)
|
||||
'@radix-ui/react-id': 1.1.2(@types/react@19.2.14)(react@19.2.5)
|
||||
'@radix-ui/react-popper': 1.3.3(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)
|
||||
'@radix-ui/react-portal': 1.1.13(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)
|
||||
'@radix-ui/react-presence': 1.1.7(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)
|
||||
'@radix-ui/react-primitive': 2.1.7(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)
|
||||
'@radix-ui/react-slot': 1.3.0(@types/react@19.2.14)(react@19.2.5)
|
||||
'@radix-ui/react-use-callback-ref': 1.1.2(@types/react@19.2.14)(react@19.2.5)
|
||||
'@radix-ui/react-use-controllable-state': 1.2.3(@types/react@19.2.14)(react@19.2.5)
|
||||
'@radix-ui/react-use-layout-effect': 1.1.2(@types/react@19.2.14)(react@19.2.5)
|
||||
'@radix-ui/react-use-previous': 1.1.2(@types/react@19.2.14)(react@19.2.5)
|
||||
'@radix-ui/react-visually-hidden': 1.2.7(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)
|
||||
aria-hidden: 1.2.6
|
||||
react: 19.2.5
|
||||
react-dom: 19.2.5(react@19.2.5)
|
||||
@@ -5236,224 +5535,223 @@ snapshots:
|
||||
'@types/react': 19.2.14
|
||||
'@types/react-dom': 19.2.3(@types/react@19.2.14)
|
||||
|
||||
'@radix-ui/react-separator@1.1.7(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)':
|
||||
'@radix-ui/react-separator@1.1.11(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)':
|
||||
dependencies:
|
||||
'@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)
|
||||
'@radix-ui/react-primitive': 2.1.7(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)
|
||||
react: 19.2.5
|
||||
react-dom: 19.2.5(react@19.2.5)
|
||||
optionalDependencies:
|
||||
'@types/react': 19.2.14
|
||||
'@types/react-dom': 19.2.3(@types/react@19.2.14)
|
||||
|
||||
'@radix-ui/react-slider@1.3.6(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)':
|
||||
'@radix-ui/react-slider@1.4.3(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)':
|
||||
dependencies:
|
||||
'@radix-ui/number': 1.1.1
|
||||
'@radix-ui/primitive': 1.1.3
|
||||
'@radix-ui/react-collection': 1.1.7(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)
|
||||
'@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.14)(react@19.2.5)
|
||||
'@radix-ui/react-context': 1.1.2(@types/react@19.2.14)(react@19.2.5)
|
||||
'@radix-ui/react-direction': 1.1.1(@types/react@19.2.14)(react@19.2.5)
|
||||
'@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)
|
||||
'@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.2.14)(react@19.2.5)
|
||||
'@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.2.14)(react@19.2.5)
|
||||
'@radix-ui/react-use-previous': 1.1.1(@types/react@19.2.14)(react@19.2.5)
|
||||
'@radix-ui/react-use-size': 1.1.1(@types/react@19.2.14)(react@19.2.5)
|
||||
'@radix-ui/number': 1.1.2
|
||||
'@radix-ui/primitive': 1.1.5
|
||||
'@radix-ui/react-collection': 1.1.12(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)
|
||||
'@radix-ui/react-compose-refs': 1.1.3(@types/react@19.2.14)(react@19.2.5)
|
||||
'@radix-ui/react-context': 1.2.0(@types/react@19.2.14)(react@19.2.5)
|
||||
'@radix-ui/react-direction': 1.1.2(@types/react@19.2.14)(react@19.2.5)
|
||||
'@radix-ui/react-primitive': 2.1.7(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)
|
||||
'@radix-ui/react-use-controllable-state': 1.2.3(@types/react@19.2.14)(react@19.2.5)
|
||||
'@radix-ui/react-use-layout-effect': 1.1.2(@types/react@19.2.14)(react@19.2.5)
|
||||
'@radix-ui/react-use-previous': 1.1.2(@types/react@19.2.14)(react@19.2.5)
|
||||
'@radix-ui/react-use-size': 1.1.2(@types/react@19.2.14)(react@19.2.5)
|
||||
react: 19.2.5
|
||||
react-dom: 19.2.5(react@19.2.5)
|
||||
optionalDependencies:
|
||||
'@types/react': 19.2.14
|
||||
'@types/react-dom': 19.2.3(@types/react@19.2.14)
|
||||
|
||||
'@radix-ui/react-slot@1.2.3(@types/react@19.2.14)(react@19.2.5)':
|
||||
'@radix-ui/react-slot@1.3.0(@types/react@19.2.14)(react@19.2.5)':
|
||||
dependencies:
|
||||
'@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.14)(react@19.2.5)
|
||||
'@radix-ui/react-compose-refs': 1.1.3(@types/react@19.2.14)(react@19.2.5)
|
||||
react: 19.2.5
|
||||
optionalDependencies:
|
||||
'@types/react': 19.2.14
|
||||
|
||||
'@radix-ui/react-switch@1.2.6(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)':
|
||||
'@radix-ui/react-switch@1.3.3(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)':
|
||||
dependencies:
|
||||
'@radix-ui/primitive': 1.1.3
|
||||
'@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.14)(react@19.2.5)
|
||||
'@radix-ui/react-context': 1.1.2(@types/react@19.2.14)(react@19.2.5)
|
||||
'@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)
|
||||
'@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.2.14)(react@19.2.5)
|
||||
'@radix-ui/react-use-previous': 1.1.1(@types/react@19.2.14)(react@19.2.5)
|
||||
'@radix-ui/react-use-size': 1.1.1(@types/react@19.2.14)(react@19.2.5)
|
||||
'@radix-ui/primitive': 1.1.5
|
||||
'@radix-ui/react-compose-refs': 1.1.3(@types/react@19.2.14)(react@19.2.5)
|
||||
'@radix-ui/react-context': 1.2.0(@types/react@19.2.14)(react@19.2.5)
|
||||
'@radix-ui/react-primitive': 2.1.7(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)
|
||||
'@radix-ui/react-use-controllable-state': 1.2.3(@types/react@19.2.14)(react@19.2.5)
|
||||
'@radix-ui/react-use-previous': 1.1.2(@types/react@19.2.14)(react@19.2.5)
|
||||
'@radix-ui/react-use-size': 1.1.2(@types/react@19.2.14)(react@19.2.5)
|
||||
react: 19.2.5
|
||||
react-dom: 19.2.5(react@19.2.5)
|
||||
optionalDependencies:
|
||||
'@types/react': 19.2.14
|
||||
'@types/react-dom': 19.2.3(@types/react@19.2.14)
|
||||
|
||||
'@radix-ui/react-tabs@1.1.13(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)':
|
||||
'@radix-ui/react-tabs@1.1.17(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)':
|
||||
dependencies:
|
||||
'@radix-ui/primitive': 1.1.3
|
||||
'@radix-ui/react-context': 1.1.2(@types/react@19.2.14)(react@19.2.5)
|
||||
'@radix-ui/react-direction': 1.1.1(@types/react@19.2.14)(react@19.2.5)
|
||||
'@radix-ui/react-id': 1.1.1(@types/react@19.2.14)(react@19.2.5)
|
||||
'@radix-ui/react-presence': 1.1.5(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)
|
||||
'@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)
|
||||
'@radix-ui/react-roving-focus': 1.1.11(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)
|
||||
'@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.2.14)(react@19.2.5)
|
||||
'@radix-ui/primitive': 1.1.5
|
||||
'@radix-ui/react-context': 1.2.0(@types/react@19.2.14)(react@19.2.5)
|
||||
'@radix-ui/react-direction': 1.1.2(@types/react@19.2.14)(react@19.2.5)
|
||||
'@radix-ui/react-id': 1.1.2(@types/react@19.2.14)(react@19.2.5)
|
||||
'@radix-ui/react-presence': 1.1.7(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)
|
||||
'@radix-ui/react-primitive': 2.1.7(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)
|
||||
'@radix-ui/react-roving-focus': 1.1.15(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)
|
||||
'@radix-ui/react-use-controllable-state': 1.2.3(@types/react@19.2.14)(react@19.2.5)
|
||||
react: 19.2.5
|
||||
react-dom: 19.2.5(react@19.2.5)
|
||||
optionalDependencies:
|
||||
'@types/react': 19.2.14
|
||||
'@types/react-dom': 19.2.3(@types/react@19.2.14)
|
||||
|
||||
'@radix-ui/react-toast@1.2.15(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)':
|
||||
'@radix-ui/react-toast@1.2.19(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)':
|
||||
dependencies:
|
||||
'@radix-ui/primitive': 1.1.3
|
||||
'@radix-ui/react-collection': 1.1.7(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)
|
||||
'@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.14)(react@19.2.5)
|
||||
'@radix-ui/react-context': 1.1.2(@types/react@19.2.14)(react@19.2.5)
|
||||
'@radix-ui/react-dismissable-layer': 1.1.11(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)
|
||||
'@radix-ui/react-portal': 1.1.9(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)
|
||||
'@radix-ui/react-presence': 1.1.5(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)
|
||||
'@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)
|
||||
'@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.2.14)(react@19.2.5)
|
||||
'@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.2.14)(react@19.2.5)
|
||||
'@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.2.14)(react@19.2.5)
|
||||
'@radix-ui/react-visually-hidden': 1.2.3(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)
|
||||
'@radix-ui/primitive': 1.1.5
|
||||
'@radix-ui/react-collection': 1.1.12(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)
|
||||
'@radix-ui/react-compose-refs': 1.1.3(@types/react@19.2.14)(react@19.2.5)
|
||||
'@radix-ui/react-context': 1.2.0(@types/react@19.2.14)(react@19.2.5)
|
||||
'@radix-ui/react-dismissable-layer': 1.1.15(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)
|
||||
'@radix-ui/react-portal': 1.1.13(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)
|
||||
'@radix-ui/react-presence': 1.1.7(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)
|
||||
'@radix-ui/react-primitive': 2.1.7(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)
|
||||
'@radix-ui/react-use-callback-ref': 1.1.2(@types/react@19.2.14)(react@19.2.5)
|
||||
'@radix-ui/react-use-controllable-state': 1.2.3(@types/react@19.2.14)(react@19.2.5)
|
||||
'@radix-ui/react-use-layout-effect': 1.1.2(@types/react@19.2.14)(react@19.2.5)
|
||||
'@radix-ui/react-visually-hidden': 1.2.7(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)
|
||||
react: 19.2.5
|
||||
react-dom: 19.2.5(react@19.2.5)
|
||||
optionalDependencies:
|
||||
'@types/react': 19.2.14
|
||||
'@types/react-dom': 19.2.3(@types/react@19.2.14)
|
||||
|
||||
'@radix-ui/react-toggle-group@1.1.11(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)':
|
||||
'@radix-ui/react-toggle-group@1.1.15(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)':
|
||||
dependencies:
|
||||
'@radix-ui/primitive': 1.1.3
|
||||
'@radix-ui/react-context': 1.1.2(@types/react@19.2.14)(react@19.2.5)
|
||||
'@radix-ui/react-direction': 1.1.1(@types/react@19.2.14)(react@19.2.5)
|
||||
'@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)
|
||||
'@radix-ui/react-roving-focus': 1.1.11(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)
|
||||
'@radix-ui/react-toggle': 1.1.10(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)
|
||||
'@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.2.14)(react@19.2.5)
|
||||
'@radix-ui/primitive': 1.1.5
|
||||
'@radix-ui/react-context': 1.2.0(@types/react@19.2.14)(react@19.2.5)
|
||||
'@radix-ui/react-direction': 1.1.2(@types/react@19.2.14)(react@19.2.5)
|
||||
'@radix-ui/react-primitive': 2.1.7(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)
|
||||
'@radix-ui/react-roving-focus': 1.1.15(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)
|
||||
'@radix-ui/react-toggle': 1.1.14(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)
|
||||
'@radix-ui/react-use-controllable-state': 1.2.3(@types/react@19.2.14)(react@19.2.5)
|
||||
react: 19.2.5
|
||||
react-dom: 19.2.5(react@19.2.5)
|
||||
optionalDependencies:
|
||||
'@types/react': 19.2.14
|
||||
'@types/react-dom': 19.2.3(@types/react@19.2.14)
|
||||
|
||||
'@radix-ui/react-toggle@1.1.10(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)':
|
||||
'@radix-ui/react-toggle@1.1.14(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)':
|
||||
dependencies:
|
||||
'@radix-ui/primitive': 1.1.3
|
||||
'@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)
|
||||
'@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.2.14)(react@19.2.5)
|
||||
'@radix-ui/primitive': 1.1.5
|
||||
'@radix-ui/react-primitive': 2.1.7(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)
|
||||
'@radix-ui/react-use-controllable-state': 1.2.3(@types/react@19.2.14)(react@19.2.5)
|
||||
react: 19.2.5
|
||||
react-dom: 19.2.5(react@19.2.5)
|
||||
optionalDependencies:
|
||||
'@types/react': 19.2.14
|
||||
'@types/react-dom': 19.2.3(@types/react@19.2.14)
|
||||
|
||||
'@radix-ui/react-toolbar@1.1.11(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)':
|
||||
'@radix-ui/react-toolbar@1.1.15(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)':
|
||||
dependencies:
|
||||
'@radix-ui/primitive': 1.1.3
|
||||
'@radix-ui/react-context': 1.1.2(@types/react@19.2.14)(react@19.2.5)
|
||||
'@radix-ui/react-direction': 1.1.1(@types/react@19.2.14)(react@19.2.5)
|
||||
'@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)
|
||||
'@radix-ui/react-roving-focus': 1.1.11(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)
|
||||
'@radix-ui/react-separator': 1.1.7(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)
|
||||
'@radix-ui/react-toggle-group': 1.1.11(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)
|
||||
'@radix-ui/primitive': 1.1.5
|
||||
'@radix-ui/react-context': 1.2.0(@types/react@19.2.14)(react@19.2.5)
|
||||
'@radix-ui/react-direction': 1.1.2(@types/react@19.2.14)(react@19.2.5)
|
||||
'@radix-ui/react-primitive': 2.1.7(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)
|
||||
'@radix-ui/react-roving-focus': 1.1.15(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)
|
||||
'@radix-ui/react-separator': 1.1.11(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)
|
||||
'@radix-ui/react-toggle-group': 1.1.15(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)
|
||||
react: 19.2.5
|
||||
react-dom: 19.2.5(react@19.2.5)
|
||||
optionalDependencies:
|
||||
'@types/react': 19.2.14
|
||||
'@types/react-dom': 19.2.3(@types/react@19.2.14)
|
||||
|
||||
'@radix-ui/react-tooltip@1.2.8(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)':
|
||||
'@radix-ui/react-tooltip@1.2.12(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)':
|
||||
dependencies:
|
||||
'@radix-ui/primitive': 1.1.3
|
||||
'@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.14)(react@19.2.5)
|
||||
'@radix-ui/react-context': 1.1.2(@types/react@19.2.14)(react@19.2.5)
|
||||
'@radix-ui/react-dismissable-layer': 1.1.11(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)
|
||||
'@radix-ui/react-id': 1.1.1(@types/react@19.2.14)(react@19.2.5)
|
||||
'@radix-ui/react-popper': 1.2.8(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)
|
||||
'@radix-ui/react-portal': 1.1.9(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)
|
||||
'@radix-ui/react-presence': 1.1.5(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)
|
||||
'@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)
|
||||
'@radix-ui/react-slot': 1.2.3(@types/react@19.2.14)(react@19.2.5)
|
||||
'@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.2.14)(react@19.2.5)
|
||||
'@radix-ui/react-visually-hidden': 1.2.3(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)
|
||||
'@radix-ui/primitive': 1.1.5
|
||||
'@radix-ui/react-compose-refs': 1.1.3(@types/react@19.2.14)(react@19.2.5)
|
||||
'@radix-ui/react-context': 1.2.0(@types/react@19.2.14)(react@19.2.5)
|
||||
'@radix-ui/react-dismissable-layer': 1.1.15(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)
|
||||
'@radix-ui/react-id': 1.1.2(@types/react@19.2.14)(react@19.2.5)
|
||||
'@radix-ui/react-popper': 1.3.3(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)
|
||||
'@radix-ui/react-portal': 1.1.13(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)
|
||||
'@radix-ui/react-presence': 1.1.7(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)
|
||||
'@radix-ui/react-primitive': 2.1.7(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)
|
||||
'@radix-ui/react-slot': 1.3.0(@types/react@19.2.14)(react@19.2.5)
|
||||
'@radix-ui/react-use-controllable-state': 1.2.3(@types/react@19.2.14)(react@19.2.5)
|
||||
'@radix-ui/react-visually-hidden': 1.2.7(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)
|
||||
react: 19.2.5
|
||||
react-dom: 19.2.5(react@19.2.5)
|
||||
optionalDependencies:
|
||||
'@types/react': 19.2.14
|
||||
'@types/react-dom': 19.2.3(@types/react@19.2.14)
|
||||
|
||||
'@radix-ui/react-use-callback-ref@1.1.1(@types/react@19.2.14)(react@19.2.5)':
|
||||
'@radix-ui/react-use-callback-ref@1.1.2(@types/react@19.2.14)(react@19.2.5)':
|
||||
dependencies:
|
||||
react: 19.2.5
|
||||
optionalDependencies:
|
||||
'@types/react': 19.2.14
|
||||
|
||||
'@radix-ui/react-use-controllable-state@1.2.2(@types/react@19.2.14)(react@19.2.5)':
|
||||
'@radix-ui/react-use-controllable-state@1.2.3(@types/react@19.2.14)(react@19.2.5)':
|
||||
dependencies:
|
||||
'@radix-ui/react-use-effect-event': 0.0.2(@types/react@19.2.14)(react@19.2.5)
|
||||
'@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.2.14)(react@19.2.5)
|
||||
'@radix-ui/react-use-effect-event': 0.0.3(@types/react@19.2.14)(react@19.2.5)
|
||||
'@radix-ui/react-use-layout-effect': 1.1.2(@types/react@19.2.14)(react@19.2.5)
|
||||
react: 19.2.5
|
||||
optionalDependencies:
|
||||
'@types/react': 19.2.14
|
||||
|
||||
'@radix-ui/react-use-effect-event@0.0.2(@types/react@19.2.14)(react@19.2.5)':
|
||||
'@radix-ui/react-use-effect-event@0.0.3(@types/react@19.2.14)(react@19.2.5)':
|
||||
dependencies:
|
||||
'@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.2.14)(react@19.2.5)
|
||||
'@radix-ui/react-use-layout-effect': 1.1.2(@types/react@19.2.14)(react@19.2.5)
|
||||
react: 19.2.5
|
||||
optionalDependencies:
|
||||
'@types/react': 19.2.14
|
||||
|
||||
'@radix-ui/react-use-escape-keydown@1.1.1(@types/react@19.2.14)(react@19.2.5)':
|
||||
'@radix-ui/react-use-escape-keydown@1.1.3(@types/react@19.2.14)(react@19.2.5)':
|
||||
dependencies:
|
||||
'@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.2.14)(react@19.2.5)
|
||||
'@radix-ui/react-use-callback-ref': 1.1.2(@types/react@19.2.14)(react@19.2.5)
|
||||
react: 19.2.5
|
||||
optionalDependencies:
|
||||
'@types/react': 19.2.14
|
||||
|
||||
'@radix-ui/react-use-is-hydrated@0.1.0(@types/react@19.2.14)(react@19.2.5)':
|
||||
dependencies:
|
||||
react: 19.2.5
|
||||
use-sync-external-store: 1.6.0(react@19.2.5)
|
||||
optionalDependencies:
|
||||
'@types/react': 19.2.14
|
||||
|
||||
'@radix-ui/react-use-layout-effect@1.1.1(@types/react@19.2.14)(react@19.2.5)':
|
||||
'@radix-ui/react-use-is-hydrated@0.1.1(@types/react@19.2.14)(react@19.2.5)':
|
||||
dependencies:
|
||||
react: 19.2.5
|
||||
optionalDependencies:
|
||||
'@types/react': 19.2.14
|
||||
|
||||
'@radix-ui/react-use-previous@1.1.1(@types/react@19.2.14)(react@19.2.5)':
|
||||
'@radix-ui/react-use-layout-effect@1.1.2(@types/react@19.2.14)(react@19.2.5)':
|
||||
dependencies:
|
||||
react: 19.2.5
|
||||
optionalDependencies:
|
||||
'@types/react': 19.2.14
|
||||
|
||||
'@radix-ui/react-use-rect@1.1.1(@types/react@19.2.14)(react@19.2.5)':
|
||||
'@radix-ui/react-use-previous@1.1.2(@types/react@19.2.14)(react@19.2.5)':
|
||||
dependencies:
|
||||
'@radix-ui/rect': 1.1.1
|
||||
react: 19.2.5
|
||||
optionalDependencies:
|
||||
'@types/react': 19.2.14
|
||||
|
||||
'@radix-ui/react-use-size@1.1.1(@types/react@19.2.14)(react@19.2.5)':
|
||||
'@radix-ui/react-use-rect@1.1.2(@types/react@19.2.14)(react@19.2.5)':
|
||||
dependencies:
|
||||
'@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.2.14)(react@19.2.5)
|
||||
'@radix-ui/rect': 1.1.2
|
||||
react: 19.2.5
|
||||
optionalDependencies:
|
||||
'@types/react': 19.2.14
|
||||
|
||||
'@radix-ui/react-visually-hidden@1.2.3(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)':
|
||||
'@radix-ui/react-use-size@1.1.2(@types/react@19.2.14)(react@19.2.5)':
|
||||
dependencies:
|
||||
'@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)
|
||||
'@radix-ui/react-use-layout-effect': 1.1.2(@types/react@19.2.14)(react@19.2.5)
|
||||
react: 19.2.5
|
||||
optionalDependencies:
|
||||
'@types/react': 19.2.14
|
||||
|
||||
'@radix-ui/react-visually-hidden@1.2.7(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)':
|
||||
dependencies:
|
||||
'@radix-ui/react-primitive': 2.1.7(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)
|
||||
react: 19.2.5
|
||||
react-dom: 19.2.5(react@19.2.5)
|
||||
optionalDependencies:
|
||||
'@types/react': 19.2.14
|
||||
'@types/react-dom': 19.2.3(@types/react@19.2.14)
|
||||
|
||||
'@radix-ui/rect@1.1.1': {}
|
||||
'@radix-ui/rect@1.1.2': {}
|
||||
|
||||
'@rolldown/binding-android-arm64@1.0.0-rc.15':
|
||||
optional: true
|
||||
@@ -5737,8 +6035,28 @@ snapshots:
|
||||
dependencies:
|
||||
'@babel/types': 7.29.0
|
||||
|
||||
'@types/debug@4.1.13':
|
||||
dependencies:
|
||||
'@types/ms': 2.1.0
|
||||
|
||||
'@types/estree-jsx@1.0.5':
|
||||
dependencies:
|
||||
'@types/estree': 1.0.9
|
||||
|
||||
'@types/estree@1.0.9': {}
|
||||
|
||||
'@types/hast@3.0.4':
|
||||
dependencies:
|
||||
'@types/unist': 3.0.3
|
||||
|
||||
'@types/md5@2.3.6': {}
|
||||
|
||||
'@types/mdast@4.0.4':
|
||||
dependencies:
|
||||
'@types/unist': 3.0.3
|
||||
|
||||
'@types/ms@2.1.0': {}
|
||||
|
||||
'@types/node@24.12.2':
|
||||
dependencies:
|
||||
undici-types: 7.16.0
|
||||
@@ -5757,8 +6075,14 @@ snapshots:
|
||||
|
||||
'@types/statuses@2.0.6': {}
|
||||
|
||||
'@types/unist@2.0.11': {}
|
||||
|
||||
'@types/unist@3.0.3': {}
|
||||
|
||||
'@types/validate-npm-package-name@4.0.2': {}
|
||||
|
||||
'@ungap/structured-clone@1.3.2': {}
|
||||
|
||||
'@vitejs/plugin-react@6.0.1(@rolldown/plugin-babel@0.2.3(@babel/core@7.29.0)(@babel/runtime@7.29.2)(rolldown@1.0.0-rc.15)(vite@8.0.8(@types/node@24.12.2)(esbuild@0.27.7)(jiti@2.6.1)(tsx@4.21.0)(yaml@2.8.3)))(babel-plugin-react-compiler@1.0.0)(vite@8.0.8(@types/node@24.12.2)(esbuild@0.27.7)(jiti@2.6.1)(tsx@4.21.0)(yaml@2.8.3))':
|
||||
dependencies:
|
||||
'@rolldown/pluginutils': 1.0.0-rc.7
|
||||
@@ -5843,6 +6167,8 @@ snapshots:
|
||||
dependencies:
|
||||
'@babel/types': 7.29.0
|
||||
|
||||
bail@2.0.2: {}
|
||||
|
||||
balanced-match@1.0.2: {}
|
||||
|
||||
balanced-match@4.0.4: {}
|
||||
@@ -5921,6 +6247,8 @@ snapshots:
|
||||
|
||||
caniuse-lite@1.0.30001788: {}
|
||||
|
||||
ccount@2.0.1: {}
|
||||
|
||||
chalk@2.4.2:
|
||||
dependencies:
|
||||
ansi-styles: 3.2.1
|
||||
@@ -5934,6 +6262,14 @@ snapshots:
|
||||
|
||||
chalk@5.6.2: {}
|
||||
|
||||
character-entities-html4@2.1.0: {}
|
||||
|
||||
character-entities-legacy@3.0.0: {}
|
||||
|
||||
character-entities@2.0.2: {}
|
||||
|
||||
character-reference-invalid@2.0.1: {}
|
||||
|
||||
chardet@0.7.0: {}
|
||||
|
||||
charenc@0.0.2: {}
|
||||
@@ -5999,6 +6335,8 @@ snapshots:
|
||||
|
||||
colorette@2.0.20: {}
|
||||
|
||||
comma-separated-tokens@2.0.3: {}
|
||||
|
||||
commander@11.1.0: {}
|
||||
|
||||
commander@14.0.3: {}
|
||||
@@ -6114,6 +6452,10 @@ snapshots:
|
||||
dependencies:
|
||||
ms: 2.1.3
|
||||
|
||||
decode-named-character-reference@1.3.0:
|
||||
dependencies:
|
||||
character-entities: 2.0.2
|
||||
|
||||
dedent@0.7.0: {}
|
||||
|
||||
dedent@1.7.2: {}
|
||||
@@ -6135,6 +6477,8 @@ snapshots:
|
||||
|
||||
depd@2.0.0: {}
|
||||
|
||||
dequal@2.0.3: {}
|
||||
|
||||
detect-file@1.0.0: {}
|
||||
|
||||
detect-indent@6.1.0: {}
|
||||
@@ -6143,6 +6487,10 @@ snapshots:
|
||||
|
||||
detect-node-es@1.1.0: {}
|
||||
|
||||
devlop@1.1.0:
|
||||
dependencies:
|
||||
dequal: 2.0.3
|
||||
|
||||
diff@8.0.4: {}
|
||||
|
||||
dot-prop@5.3.0:
|
||||
@@ -6246,8 +6594,12 @@ snapshots:
|
||||
|
||||
escape-string-regexp@1.0.5: {}
|
||||
|
||||
escape-string-regexp@5.0.0: {}
|
||||
|
||||
esprima@4.0.1: {}
|
||||
|
||||
estree-util-is-identifier-name@3.0.0: {}
|
||||
|
||||
etag@1.8.1: {}
|
||||
|
||||
eventemitter3@5.0.4: {}
|
||||
@@ -6538,6 +6890,30 @@ snapshots:
|
||||
dependencies:
|
||||
function-bind: 1.1.2
|
||||
|
||||
hast-util-to-jsx-runtime@2.3.6:
|
||||
dependencies:
|
||||
'@types/estree': 1.0.9
|
||||
'@types/hast': 3.0.4
|
||||
'@types/unist': 3.0.3
|
||||
comma-separated-tokens: 2.0.3
|
||||
devlop: 1.1.0
|
||||
estree-util-is-identifier-name: 3.0.0
|
||||
hast-util-whitespace: 3.0.0
|
||||
mdast-util-mdx-expression: 2.0.1
|
||||
mdast-util-mdx-jsx: 3.2.0
|
||||
mdast-util-mdxjs-esm: 2.0.1
|
||||
property-information: 7.2.0
|
||||
space-separated-tokens: 2.0.2
|
||||
style-to-js: 1.0.0
|
||||
unist-util-position: 5.0.0
|
||||
vfile-message: 4.0.3
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
|
||||
hast-util-whitespace@3.0.0:
|
||||
dependencies:
|
||||
'@types/hast': 3.0.4
|
||||
|
||||
headers-polyfill@5.0.1:
|
||||
dependencies:
|
||||
'@types/set-cookie-parser': 2.4.10
|
||||
@@ -6553,6 +6929,8 @@ snapshots:
|
||||
dependencies:
|
||||
void-elements: 3.1.0
|
||||
|
||||
html-url-attributes@3.0.1: {}
|
||||
|
||||
http-errors@2.0.1:
|
||||
dependencies:
|
||||
depd: 2.0.0
|
||||
@@ -6610,6 +6988,8 @@ snapshots:
|
||||
|
||||
ini@4.1.1: {}
|
||||
|
||||
inline-style-parser@0.1.1: {}
|
||||
|
||||
inquirer@8.2.5:
|
||||
dependencies:
|
||||
ansi-escapes: 4.3.2
|
||||
@@ -6632,6 +7012,13 @@ snapshots:
|
||||
|
||||
ipaddr.js@1.9.1: {}
|
||||
|
||||
is-alphabetical@2.0.1: {}
|
||||
|
||||
is-alphanumerical@2.0.1:
|
||||
dependencies:
|
||||
is-alphabetical: 2.0.1
|
||||
is-decimal: 2.0.1
|
||||
|
||||
is-arrayish@0.2.1: {}
|
||||
|
||||
is-binary-path@2.1.0:
|
||||
@@ -6640,6 +7027,8 @@ snapshots:
|
||||
|
||||
is-buffer@1.1.6: {}
|
||||
|
||||
is-decimal@2.0.1: {}
|
||||
|
||||
is-docker@3.0.0: {}
|
||||
|
||||
is-extglob@2.1.1: {}
|
||||
@@ -6654,6 +7043,8 @@ snapshots:
|
||||
dependencies:
|
||||
is-extglob: 2.1.1
|
||||
|
||||
is-hexadecimal@2.0.1: {}
|
||||
|
||||
is-in-ssh@1.0.0: {}
|
||||
|
||||
is-inside-container@1.0.0:
|
||||
@@ -6837,6 +7228,8 @@ snapshots:
|
||||
strip-ansi: 7.2.0
|
||||
wrap-ansi: 9.0.2
|
||||
|
||||
longest-streak@3.1.0: {}
|
||||
|
||||
longest@2.0.1: {}
|
||||
|
||||
lottie-web@5.13.0: {}
|
||||
@@ -6853,6 +7246,8 @@ snapshots:
|
||||
dependencies:
|
||||
'@jridgewell/sourcemap-codec': 1.5.5
|
||||
|
||||
markdown-table@3.0.4: {}
|
||||
|
||||
math-intrinsics@1.1.0: {}
|
||||
|
||||
md5@2.3.0:
|
||||
@@ -6861,6 +7256,158 @@ snapshots:
|
||||
crypt: 0.0.2
|
||||
is-buffer: 1.1.6
|
||||
|
||||
mdast-util-find-and-replace@3.0.2:
|
||||
dependencies:
|
||||
'@types/mdast': 4.0.4
|
||||
escape-string-regexp: 5.0.0
|
||||
unist-util-is: 6.0.1
|
||||
unist-util-visit-parents: 6.0.2
|
||||
|
||||
mdast-util-from-markdown@2.0.3:
|
||||
dependencies:
|
||||
'@types/mdast': 4.0.4
|
||||
'@types/unist': 3.0.3
|
||||
decode-named-character-reference: 1.3.0
|
||||
devlop: 1.1.0
|
||||
mdast-util-to-string: 4.0.0
|
||||
micromark: 4.0.0
|
||||
micromark-util-decode-numeric-character-reference: 2.0.0
|
||||
micromark-util-decode-string: 2.0.1
|
||||
micromark-util-normalize-identifier: 2.0.0
|
||||
micromark-util-symbol: 2.0.0
|
||||
micromark-util-types: 2.0.0
|
||||
unist-util-stringify-position: 4.0.0
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
|
||||
mdast-util-gfm-autolink-literal@2.0.1:
|
||||
dependencies:
|
||||
'@types/mdast': 4.0.4
|
||||
ccount: 2.0.1
|
||||
devlop: 1.1.0
|
||||
mdast-util-find-and-replace: 3.0.2
|
||||
micromark-util-character: 2.0.0
|
||||
|
||||
mdast-util-gfm-footnote@2.1.0:
|
||||
dependencies:
|
||||
'@types/mdast': 4.0.4
|
||||
devlop: 1.1.0
|
||||
mdast-util-from-markdown: 2.0.3
|
||||
mdast-util-to-markdown: 2.0.0
|
||||
micromark-util-normalize-identifier: 2.0.0
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
|
||||
mdast-util-gfm-strikethrough@2.0.0:
|
||||
dependencies:
|
||||
'@types/mdast': 4.0.4
|
||||
mdast-util-from-markdown: 2.0.3
|
||||
mdast-util-to-markdown: 2.0.0
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
|
||||
mdast-util-gfm-table@2.0.0:
|
||||
dependencies:
|
||||
'@types/mdast': 4.0.4
|
||||
devlop: 1.1.0
|
||||
markdown-table: 3.0.4
|
||||
mdast-util-from-markdown: 2.0.3
|
||||
mdast-util-to-markdown: 2.0.0
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
|
||||
mdast-util-gfm-task-list-item@2.0.0:
|
||||
dependencies:
|
||||
'@types/mdast': 4.0.4
|
||||
devlop: 1.1.0
|
||||
mdast-util-from-markdown: 2.0.3
|
||||
mdast-util-to-markdown: 2.0.0
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
|
||||
mdast-util-gfm@3.1.0:
|
||||
dependencies:
|
||||
mdast-util-from-markdown: 2.0.3
|
||||
mdast-util-gfm-autolink-literal: 2.0.1
|
||||
mdast-util-gfm-footnote: 2.1.0
|
||||
mdast-util-gfm-strikethrough: 2.0.0
|
||||
mdast-util-gfm-table: 2.0.0
|
||||
mdast-util-gfm-task-list-item: 2.0.0
|
||||
mdast-util-to-markdown: 2.0.0
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
|
||||
mdast-util-mdx-expression@2.0.1:
|
||||
dependencies:
|
||||
'@types/estree-jsx': 1.0.5
|
||||
'@types/hast': 3.0.4
|
||||
'@types/mdast': 4.0.4
|
||||
devlop: 1.1.0
|
||||
mdast-util-from-markdown: 2.0.3
|
||||
mdast-util-to-markdown: 2.0.0
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
|
||||
mdast-util-mdx-jsx@3.2.0:
|
||||
dependencies:
|
||||
'@types/estree-jsx': 1.0.5
|
||||
'@types/hast': 3.0.4
|
||||
'@types/mdast': 4.0.4
|
||||
'@types/unist': 3.0.3
|
||||
ccount: 2.0.1
|
||||
devlop: 1.1.0
|
||||
mdast-util-from-markdown: 2.0.3
|
||||
mdast-util-to-markdown: 2.0.0
|
||||
parse-entities: 4.0.2
|
||||
stringify-entities: 4.0.4
|
||||
unist-util-stringify-position: 4.0.0
|
||||
vfile-message: 4.0.3
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
|
||||
mdast-util-mdxjs-esm@2.0.1:
|
||||
dependencies:
|
||||
'@types/estree-jsx': 1.0.5
|
||||
'@types/hast': 3.0.4
|
||||
'@types/mdast': 4.0.4
|
||||
devlop: 1.1.0
|
||||
mdast-util-from-markdown: 2.0.3
|
||||
mdast-util-to-markdown: 2.0.0
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
|
||||
mdast-util-phrasing@4.1.0:
|
||||
dependencies:
|
||||
'@types/mdast': 4.0.4
|
||||
unist-util-is: 6.0.1
|
||||
|
||||
mdast-util-to-hast@13.2.1:
|
||||
dependencies:
|
||||
'@types/hast': 3.0.4
|
||||
'@types/mdast': 4.0.4
|
||||
'@ungap/structured-clone': 1.3.2
|
||||
devlop: 1.1.0
|
||||
micromark-util-sanitize-uri: 2.0.0
|
||||
trim-lines: 3.0.1
|
||||
unist-util-position: 5.0.0
|
||||
unist-util-visit: 5.1.0
|
||||
vfile: 6.0.3
|
||||
|
||||
mdast-util-to-markdown@2.0.0:
|
||||
dependencies:
|
||||
'@types/mdast': 4.0.4
|
||||
'@types/unist': 3.0.3
|
||||
longest-streak: 3.1.0
|
||||
mdast-util-phrasing: 4.1.0
|
||||
mdast-util-to-string: 4.0.0
|
||||
micromark-util-decode-string: 2.0.1
|
||||
unist-util-visit: 5.1.0
|
||||
zwitch: 2.0.4
|
||||
|
||||
mdast-util-to-string@4.0.0:
|
||||
dependencies:
|
||||
'@types/mdast': 4.0.4
|
||||
|
||||
media-typer@1.1.0: {}
|
||||
|
||||
meow@13.2.0: {}
|
||||
@@ -6873,6 +7420,197 @@ snapshots:
|
||||
|
||||
merge@2.1.1: {}
|
||||
|
||||
micromark-core-commonmark@2.0.0:
|
||||
dependencies:
|
||||
decode-named-character-reference: 1.3.0
|
||||
devlop: 1.1.0
|
||||
micromark-factory-destination: 2.0.0
|
||||
micromark-factory-label: 2.0.0
|
||||
micromark-factory-space: 2.0.0
|
||||
micromark-factory-title: 2.0.0
|
||||
micromark-factory-whitespace: 2.0.0
|
||||
micromark-util-character: 2.0.0
|
||||
micromark-util-chunked: 2.0.0
|
||||
micromark-util-classify-character: 2.0.0
|
||||
micromark-util-html-tag-name: 2.0.0
|
||||
micromark-util-normalize-identifier: 2.0.0
|
||||
micromark-util-resolve-all: 2.0.0
|
||||
micromark-util-subtokenize: 2.0.0
|
||||
micromark-util-symbol: 2.0.0
|
||||
micromark-util-types: 2.0.0
|
||||
|
||||
micromark-extension-gfm-autolink-literal@2.1.0:
|
||||
dependencies:
|
||||
micromark-util-character: 2.0.0
|
||||
micromark-util-sanitize-uri: 2.0.0
|
||||
micromark-util-symbol: 2.0.0
|
||||
micromark-util-types: 2.0.0
|
||||
|
||||
micromark-extension-gfm-footnote@2.1.0:
|
||||
dependencies:
|
||||
devlop: 1.1.0
|
||||
micromark-core-commonmark: 2.0.0
|
||||
micromark-factory-space: 2.0.0
|
||||
micromark-util-character: 2.0.0
|
||||
micromark-util-normalize-identifier: 2.0.0
|
||||
micromark-util-sanitize-uri: 2.0.0
|
||||
micromark-util-symbol: 2.0.0
|
||||
micromark-util-types: 2.0.0
|
||||
|
||||
micromark-extension-gfm-strikethrough@2.1.0:
|
||||
dependencies:
|
||||
devlop: 1.1.0
|
||||
micromark-util-chunked: 2.0.0
|
||||
micromark-util-classify-character: 2.0.0
|
||||
micromark-util-resolve-all: 2.0.0
|
||||
micromark-util-symbol: 2.0.0
|
||||
micromark-util-types: 2.0.0
|
||||
|
||||
micromark-extension-gfm-table@2.1.1:
|
||||
dependencies:
|
||||
devlop: 1.1.0
|
||||
micromark-factory-space: 2.0.0
|
||||
micromark-util-character: 2.0.0
|
||||
micromark-util-symbol: 2.0.0
|
||||
micromark-util-types: 2.0.0
|
||||
|
||||
micromark-extension-gfm-tagfilter@2.0.0:
|
||||
dependencies:
|
||||
micromark-util-types: 2.0.0
|
||||
|
||||
micromark-extension-gfm-task-list-item@2.1.0:
|
||||
dependencies:
|
||||
devlop: 1.1.0
|
||||
micromark-factory-space: 2.0.0
|
||||
micromark-util-character: 2.0.0
|
||||
micromark-util-symbol: 2.0.0
|
||||
micromark-util-types: 2.0.0
|
||||
|
||||
micromark-extension-gfm@3.0.0:
|
||||
dependencies:
|
||||
micromark-extension-gfm-autolink-literal: 2.1.0
|
||||
micromark-extension-gfm-footnote: 2.1.0
|
||||
micromark-extension-gfm-strikethrough: 2.1.0
|
||||
micromark-extension-gfm-table: 2.1.1
|
||||
micromark-extension-gfm-tagfilter: 2.0.0
|
||||
micromark-extension-gfm-task-list-item: 2.1.0
|
||||
micromark-util-combine-extensions: 2.0.0
|
||||
micromark-util-types: 2.0.0
|
||||
|
||||
micromark-factory-destination@2.0.0:
|
||||
dependencies:
|
||||
micromark-util-character: 2.0.0
|
||||
micromark-util-symbol: 2.0.0
|
||||
micromark-util-types: 2.0.0
|
||||
|
||||
micromark-factory-label@2.0.0:
|
||||
dependencies:
|
||||
devlop: 1.1.0
|
||||
micromark-util-character: 2.0.0
|
||||
micromark-util-symbol: 2.0.0
|
||||
micromark-util-types: 2.0.0
|
||||
|
||||
micromark-factory-space@2.0.0:
|
||||
dependencies:
|
||||
micromark-util-character: 2.0.0
|
||||
micromark-util-types: 2.0.0
|
||||
|
||||
micromark-factory-title@2.0.0:
|
||||
dependencies:
|
||||
micromark-factory-space: 2.0.0
|
||||
micromark-util-character: 2.0.0
|
||||
micromark-util-symbol: 2.0.0
|
||||
micromark-util-types: 2.0.0
|
||||
|
||||
micromark-factory-whitespace@2.0.0:
|
||||
dependencies:
|
||||
micromark-factory-space: 2.0.0
|
||||
micromark-util-character: 2.0.0
|
||||
micromark-util-symbol: 2.0.0
|
||||
micromark-util-types: 2.0.0
|
||||
|
||||
micromark-util-character@2.0.0:
|
||||
dependencies:
|
||||
micromark-util-symbol: 2.0.0
|
||||
micromark-util-types: 2.0.0
|
||||
|
||||
micromark-util-chunked@2.0.0:
|
||||
dependencies:
|
||||
micromark-util-symbol: 2.0.0
|
||||
|
||||
micromark-util-classify-character@2.0.0:
|
||||
dependencies:
|
||||
micromark-util-character: 2.0.0
|
||||
micromark-util-symbol: 2.0.0
|
||||
micromark-util-types: 2.0.0
|
||||
|
||||
micromark-util-combine-extensions@2.0.0:
|
||||
dependencies:
|
||||
micromark-util-chunked: 2.0.0
|
||||
micromark-util-types: 2.0.0
|
||||
|
||||
micromark-util-decode-numeric-character-reference@2.0.0:
|
||||
dependencies:
|
||||
micromark-util-symbol: 2.0.0
|
||||
|
||||
micromark-util-decode-string@2.0.1:
|
||||
dependencies:
|
||||
decode-named-character-reference: 1.3.0
|
||||
micromark-util-character: 2.0.0
|
||||
micromark-util-decode-numeric-character-reference: 2.0.0
|
||||
micromark-util-symbol: 2.0.0
|
||||
|
||||
micromark-util-encode@2.0.0: {}
|
||||
|
||||
micromark-util-html-tag-name@2.0.0: {}
|
||||
|
||||
micromark-util-normalize-identifier@2.0.0:
|
||||
dependencies:
|
||||
micromark-util-symbol: 2.0.0
|
||||
|
||||
micromark-util-resolve-all@2.0.0:
|
||||
dependencies:
|
||||
micromark-util-types: 2.0.0
|
||||
|
||||
micromark-util-sanitize-uri@2.0.0:
|
||||
dependencies:
|
||||
micromark-util-character: 2.0.0
|
||||
micromark-util-encode: 2.0.0
|
||||
micromark-util-symbol: 2.0.0
|
||||
|
||||
micromark-util-subtokenize@2.0.0:
|
||||
dependencies:
|
||||
devlop: 1.1.0
|
||||
micromark-util-chunked: 2.0.0
|
||||
micromark-util-symbol: 2.0.0
|
||||
micromark-util-types: 2.0.0
|
||||
|
||||
micromark-util-symbol@2.0.0: {}
|
||||
|
||||
micromark-util-types@2.0.0: {}
|
||||
|
||||
micromark@4.0.0:
|
||||
dependencies:
|
||||
'@types/debug': 4.1.13
|
||||
debug: 4.4.3
|
||||
decode-named-character-reference: 1.3.0
|
||||
devlop: 1.1.0
|
||||
micromark-core-commonmark: 2.0.0
|
||||
micromark-factory-space: 2.0.0
|
||||
micromark-util-character: 2.0.0
|
||||
micromark-util-chunked: 2.0.0
|
||||
micromark-util-combine-extensions: 2.0.0
|
||||
micromark-util-decode-numeric-character-reference: 2.0.0
|
||||
micromark-util-encode: 2.0.0
|
||||
micromark-util-normalize-identifier: 2.0.0
|
||||
micromark-util-resolve-all: 2.0.0
|
||||
micromark-util-sanitize-uri: 2.0.0
|
||||
micromark-util-subtokenize: 2.0.0
|
||||
micromark-util-symbol: 2.0.0
|
||||
micromark-util-types: 2.0.0
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
|
||||
micromatch@4.0.8:
|
||||
dependencies:
|
||||
braces: 3.0.3
|
||||
@@ -7033,6 +7771,16 @@ snapshots:
|
||||
dependencies:
|
||||
callsites: 3.1.0
|
||||
|
||||
parse-entities@4.0.2:
|
||||
dependencies:
|
||||
'@types/unist': 2.0.11
|
||||
character-entities-legacy: 3.0.0
|
||||
character-reference-invalid: 2.0.1
|
||||
decode-named-character-reference: 1.3.0
|
||||
is-alphanumerical: 2.0.1
|
||||
is-decimal: 2.0.1
|
||||
is-hexadecimal: 2.0.1
|
||||
|
||||
parse-json@5.2.0:
|
||||
dependencies:
|
||||
'@babel/code-frame': 7.29.0
|
||||
@@ -7092,6 +7840,8 @@ snapshots:
|
||||
kleur: 3.0.3
|
||||
sisteransi: 1.0.5
|
||||
|
||||
property-information@7.2.0: {}
|
||||
|
||||
proxy-addr@2.0.7:
|
||||
dependencies:
|
||||
forwarded: 0.2.0
|
||||
@@ -7103,63 +7853,63 @@ snapshots:
|
||||
|
||||
queue-microtask@1.2.3: {}
|
||||
|
||||
radix-ui@1.4.3(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5):
|
||||
radix-ui@1.6.2(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5):
|
||||
dependencies:
|
||||
'@radix-ui/primitive': 1.1.3
|
||||
'@radix-ui/react-accessible-icon': 1.1.7(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)
|
||||
'@radix-ui/react-accordion': 1.2.12(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)
|
||||
'@radix-ui/react-alert-dialog': 1.1.15(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)
|
||||
'@radix-ui/react-arrow': 1.1.7(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)
|
||||
'@radix-ui/react-aspect-ratio': 1.1.7(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)
|
||||
'@radix-ui/react-avatar': 1.1.10(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)
|
||||
'@radix-ui/react-checkbox': 1.3.3(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)
|
||||
'@radix-ui/react-collapsible': 1.1.12(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)
|
||||
'@radix-ui/react-collection': 1.1.7(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)
|
||||
'@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.14)(react@19.2.5)
|
||||
'@radix-ui/react-context': 1.1.2(@types/react@19.2.14)(react@19.2.5)
|
||||
'@radix-ui/react-context-menu': 2.2.16(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)
|
||||
'@radix-ui/react-dialog': 1.1.15(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)
|
||||
'@radix-ui/react-direction': 1.1.1(@types/react@19.2.14)(react@19.2.5)
|
||||
'@radix-ui/react-dismissable-layer': 1.1.11(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)
|
||||
'@radix-ui/react-dropdown-menu': 2.1.16(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)
|
||||
'@radix-ui/react-focus-guards': 1.1.3(@types/react@19.2.14)(react@19.2.5)
|
||||
'@radix-ui/react-focus-scope': 1.1.7(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)
|
||||
'@radix-ui/react-form': 0.1.8(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)
|
||||
'@radix-ui/react-hover-card': 1.1.15(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)
|
||||
'@radix-ui/react-label': 2.1.7(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)
|
||||
'@radix-ui/react-menu': 2.1.16(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)
|
||||
'@radix-ui/react-menubar': 1.1.16(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)
|
||||
'@radix-ui/react-navigation-menu': 1.2.14(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)
|
||||
'@radix-ui/react-one-time-password-field': 0.1.8(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)
|
||||
'@radix-ui/react-password-toggle-field': 0.1.3(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)
|
||||
'@radix-ui/react-popover': 1.1.15(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)
|
||||
'@radix-ui/react-popper': 1.2.8(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)
|
||||
'@radix-ui/react-portal': 1.1.9(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)
|
||||
'@radix-ui/react-presence': 1.1.5(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)
|
||||
'@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)
|
||||
'@radix-ui/react-progress': 1.1.7(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)
|
||||
'@radix-ui/react-radio-group': 1.3.8(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)
|
||||
'@radix-ui/react-roving-focus': 1.1.11(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)
|
||||
'@radix-ui/react-scroll-area': 1.2.10(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)
|
||||
'@radix-ui/react-select': 2.2.6(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)
|
||||
'@radix-ui/react-separator': 1.1.7(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)
|
||||
'@radix-ui/react-slider': 1.3.6(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)
|
||||
'@radix-ui/react-slot': 1.2.3(@types/react@19.2.14)(react@19.2.5)
|
||||
'@radix-ui/react-switch': 1.2.6(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)
|
||||
'@radix-ui/react-tabs': 1.1.13(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)
|
||||
'@radix-ui/react-toast': 1.2.15(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)
|
||||
'@radix-ui/react-toggle': 1.1.10(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)
|
||||
'@radix-ui/react-toggle-group': 1.1.11(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)
|
||||
'@radix-ui/react-toolbar': 1.1.11(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)
|
||||
'@radix-ui/react-tooltip': 1.2.8(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)
|
||||
'@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.2.14)(react@19.2.5)
|
||||
'@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.2.14)(react@19.2.5)
|
||||
'@radix-ui/react-use-effect-event': 0.0.2(@types/react@19.2.14)(react@19.2.5)
|
||||
'@radix-ui/react-use-escape-keydown': 1.1.1(@types/react@19.2.14)(react@19.2.5)
|
||||
'@radix-ui/react-use-is-hydrated': 0.1.0(@types/react@19.2.14)(react@19.2.5)
|
||||
'@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.2.14)(react@19.2.5)
|
||||
'@radix-ui/react-use-size': 1.1.1(@types/react@19.2.14)(react@19.2.5)
|
||||
'@radix-ui/react-visually-hidden': 1.2.3(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)
|
||||
'@radix-ui/primitive': 1.1.5
|
||||
'@radix-ui/react-accessible-icon': 1.1.11(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)
|
||||
'@radix-ui/react-accordion': 1.2.16(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)
|
||||
'@radix-ui/react-alert-dialog': 1.1.19(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)
|
||||
'@radix-ui/react-arrow': 1.1.11(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)
|
||||
'@radix-ui/react-aspect-ratio': 1.1.11(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)
|
||||
'@radix-ui/react-avatar': 1.2.2(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)
|
||||
'@radix-ui/react-checkbox': 1.3.7(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)
|
||||
'@radix-ui/react-collapsible': 1.1.16(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)
|
||||
'@radix-ui/react-collection': 1.1.12(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)
|
||||
'@radix-ui/react-compose-refs': 1.1.3(@types/react@19.2.14)(react@19.2.5)
|
||||
'@radix-ui/react-context': 1.2.0(@types/react@19.2.14)(react@19.2.5)
|
||||
'@radix-ui/react-context-menu': 2.3.3(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)
|
||||
'@radix-ui/react-dialog': 1.1.19(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)
|
||||
'@radix-ui/react-direction': 1.1.2(@types/react@19.2.14)(react@19.2.5)
|
||||
'@radix-ui/react-dismissable-layer': 1.1.15(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)
|
||||
'@radix-ui/react-dropdown-menu': 2.1.20(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)
|
||||
'@radix-ui/react-focus-guards': 1.1.4(@types/react@19.2.14)(react@19.2.5)
|
||||
'@radix-ui/react-focus-scope': 1.1.12(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)
|
||||
'@radix-ui/react-form': 0.1.12(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)
|
||||
'@radix-ui/react-hover-card': 1.1.19(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)
|
||||
'@radix-ui/react-label': 2.1.11(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)
|
||||
'@radix-ui/react-menu': 2.1.20(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)
|
||||
'@radix-ui/react-menubar': 1.1.20(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)
|
||||
'@radix-ui/react-navigation-menu': 1.2.18(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)
|
||||
'@radix-ui/react-one-time-password-field': 0.1.12(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)
|
||||
'@radix-ui/react-password-toggle-field': 0.1.7(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)
|
||||
'@radix-ui/react-popover': 1.1.19(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)
|
||||
'@radix-ui/react-popper': 1.3.3(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)
|
||||
'@radix-ui/react-portal': 1.1.13(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)
|
||||
'@radix-ui/react-presence': 1.1.7(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)
|
||||
'@radix-ui/react-primitive': 2.1.7(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)
|
||||
'@radix-ui/react-progress': 1.1.12(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)
|
||||
'@radix-ui/react-radio-group': 1.4.3(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)
|
||||
'@radix-ui/react-roving-focus': 1.1.15(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)
|
||||
'@radix-ui/react-scroll-area': 1.2.14(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)
|
||||
'@radix-ui/react-select': 2.3.3(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)
|
||||
'@radix-ui/react-separator': 1.1.11(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)
|
||||
'@radix-ui/react-slider': 1.4.3(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)
|
||||
'@radix-ui/react-slot': 1.3.0(@types/react@19.2.14)(react@19.2.5)
|
||||
'@radix-ui/react-switch': 1.3.3(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)
|
||||
'@radix-ui/react-tabs': 1.1.17(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)
|
||||
'@radix-ui/react-toast': 1.2.19(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)
|
||||
'@radix-ui/react-toggle': 1.1.14(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)
|
||||
'@radix-ui/react-toggle-group': 1.1.15(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)
|
||||
'@radix-ui/react-toolbar': 1.1.15(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)
|
||||
'@radix-ui/react-tooltip': 1.2.12(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)
|
||||
'@radix-ui/react-use-callback-ref': 1.1.2(@types/react@19.2.14)(react@19.2.5)
|
||||
'@radix-ui/react-use-controllable-state': 1.2.3(@types/react@19.2.14)(react@19.2.5)
|
||||
'@radix-ui/react-use-effect-event': 0.0.3(@types/react@19.2.14)(react@19.2.5)
|
||||
'@radix-ui/react-use-escape-keydown': 1.1.3(@types/react@19.2.14)(react@19.2.5)
|
||||
'@radix-ui/react-use-is-hydrated': 0.1.1(@types/react@19.2.14)(react@19.2.5)
|
||||
'@radix-ui/react-use-layout-effect': 1.1.2(@types/react@19.2.14)(react@19.2.5)
|
||||
'@radix-ui/react-use-size': 1.1.2(@types/react@19.2.14)(react@19.2.5)
|
||||
'@radix-ui/react-visually-hidden': 1.2.7(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)
|
||||
react: 19.2.5
|
||||
react-dom: 19.2.5(react@19.2.5)
|
||||
optionalDependencies:
|
||||
@@ -7195,6 +7945,24 @@ snapshots:
|
||||
react-dom: 19.2.5(react@19.2.5)
|
||||
typescript: 6.0.2
|
||||
|
||||
react-markdown@10.1.0(@types/react@19.2.14)(react@19.2.5):
|
||||
dependencies:
|
||||
'@types/hast': 3.0.4
|
||||
'@types/mdast': 4.0.4
|
||||
'@types/react': 19.2.14
|
||||
devlop: 1.1.0
|
||||
hast-util-to-jsx-runtime: 2.3.6
|
||||
html-url-attributes: 3.0.1
|
||||
mdast-util-to-hast: 13.2.1
|
||||
react: 19.2.5
|
||||
remark-parse: 11.0.0
|
||||
remark-rehype: 11.1.2
|
||||
unified: 11.0.0
|
||||
unist-util-visit: 5.1.0
|
||||
vfile: 6.0.3
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
|
||||
react-remove-scroll-bar@2.3.8(@types/react@19.2.14)(react@19.2.5):
|
||||
dependencies:
|
||||
react: 19.2.5
|
||||
@@ -7242,6 +8010,40 @@ snapshots:
|
||||
tiny-invariant: 1.3.3
|
||||
tslib: 2.8.1
|
||||
|
||||
remark-gfm@4.0.1:
|
||||
dependencies:
|
||||
'@types/mdast': 4.0.4
|
||||
mdast-util-gfm: 3.1.0
|
||||
micromark-extension-gfm: 3.0.0
|
||||
remark-parse: 11.0.0
|
||||
remark-stringify: 11.0.0
|
||||
unified: 11.0.0
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
|
||||
remark-parse@11.0.0:
|
||||
dependencies:
|
||||
'@types/mdast': 4.0.4
|
||||
mdast-util-from-markdown: 2.0.3
|
||||
micromark-util-types: 2.0.0
|
||||
unified: 11.0.0
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
|
||||
remark-rehype@11.1.2:
|
||||
dependencies:
|
||||
'@types/hast': 3.0.4
|
||||
'@types/mdast': 4.0.4
|
||||
mdast-util-to-hast: 13.2.1
|
||||
unified: 11.0.0
|
||||
vfile: 6.0.3
|
||||
|
||||
remark-stringify@11.0.0:
|
||||
dependencies:
|
||||
'@types/mdast': 4.0.4
|
||||
mdast-util-to-markdown: 2.0.0
|
||||
unified: 11.0.0
|
||||
|
||||
require-directory@2.1.1: {}
|
||||
|
||||
require-from-string@2.0.2: {}
|
||||
@@ -7489,6 +8291,8 @@ snapshots:
|
||||
|
||||
source-map@0.6.1: {}
|
||||
|
||||
space-separated-tokens@2.0.2: {}
|
||||
|
||||
statuses@2.0.2: {}
|
||||
|
||||
stdin-discarder@0.2.2: {}
|
||||
@@ -7518,6 +8322,11 @@ snapshots:
|
||||
dependencies:
|
||||
safe-buffer: 5.2.1
|
||||
|
||||
stringify-entities@4.0.4:
|
||||
dependencies:
|
||||
character-entities-html4: 2.1.0
|
||||
character-entities-legacy: 3.0.0
|
||||
|
||||
stringify-object@5.0.0:
|
||||
dependencies:
|
||||
get-own-enumerable-keys: 1.0.0
|
||||
@@ -7542,6 +8351,14 @@ snapshots:
|
||||
|
||||
strip-json-comments@3.1.1: {}
|
||||
|
||||
style-to-js@1.0.0:
|
||||
dependencies:
|
||||
style-to-object: 0.3.0
|
||||
|
||||
style-to-object@0.3.0:
|
||||
dependencies:
|
||||
inline-style-parser: 0.1.1
|
||||
|
||||
supports-color@5.5.0:
|
||||
dependencies:
|
||||
has-flag: 3.0.0
|
||||
@@ -7589,6 +8406,10 @@ snapshots:
|
||||
dependencies:
|
||||
tldts: 7.0.30
|
||||
|
||||
trim-lines@3.0.1: {}
|
||||
|
||||
trough@2.2.0: {}
|
||||
|
||||
ts-morph@26.0.0:
|
||||
dependencies:
|
||||
'@ts-morph/common': 0.27.0
|
||||
@@ -7629,6 +8450,39 @@ snapshots:
|
||||
|
||||
unicorn-magic@0.3.0: {}
|
||||
|
||||
unified@11.0.0:
|
||||
dependencies:
|
||||
'@types/unist': 3.0.3
|
||||
'@ungap/structured-clone': 1.3.2
|
||||
bail: 2.0.2
|
||||
devlop: 1.1.0
|
||||
is-plain-obj: 4.1.0
|
||||
trough: 2.2.0
|
||||
vfile: 6.0.3
|
||||
|
||||
unist-util-is@6.0.1:
|
||||
dependencies:
|
||||
'@types/unist': 3.0.3
|
||||
|
||||
unist-util-position@5.0.0:
|
||||
dependencies:
|
||||
'@types/unist': 3.0.3
|
||||
|
||||
unist-util-stringify-position@4.0.0:
|
||||
dependencies:
|
||||
'@types/unist': 3.0.3
|
||||
|
||||
unist-util-visit-parents@6.0.2:
|
||||
dependencies:
|
||||
'@types/unist': 3.0.3
|
||||
unist-util-is: 6.0.1
|
||||
|
||||
unist-util-visit@5.1.0:
|
||||
dependencies:
|
||||
'@types/unist': 3.0.3
|
||||
unist-util-is: 6.0.1
|
||||
unist-util-visit-parents: 6.0.2
|
||||
|
||||
universalify@2.0.1: {}
|
||||
|
||||
unpipe@1.0.0: {}
|
||||
@@ -7673,6 +8527,16 @@ snapshots:
|
||||
|
||||
vary@1.1.2: {}
|
||||
|
||||
vfile-message@4.0.3:
|
||||
dependencies:
|
||||
'@types/unist': 3.0.3
|
||||
unist-util-stringify-position: 4.0.0
|
||||
|
||||
vfile@6.0.3:
|
||||
dependencies:
|
||||
'@types/unist': 3.0.3
|
||||
vfile-message: 4.0.3
|
||||
|
||||
vite@8.0.8(@types/node@24.12.2)(esbuild@0.27.7)(jiti@2.6.1)(tsx@4.21.0)(yaml@2.8.3):
|
||||
dependencies:
|
||||
lightningcss: 1.32.0
|
||||
@@ -7768,3 +8632,5 @@ snapshots:
|
||||
'@types/react': 19.2.14
|
||||
react: 19.2.5
|
||||
use-sync-external-store: 1.6.0(react@19.2.5)
|
||||
|
||||
zwitch@2.0.4: {}
|
||||
|
||||
@@ -59,6 +59,26 @@ function toFiniteNumber(value: string | number | null | undefined) {
|
||||
return Number.isFinite(numericValue) ? numericValue : 0
|
||||
}
|
||||
|
||||
const FINANCE_ASSET_BASE_URL = 'https://zihua-api.h55555game.top'
|
||||
|
||||
function normalizeFinanceAssetUrl(value: string | null | undefined) {
|
||||
const assetPath = value?.trim()
|
||||
|
||||
if (!assetPath) {
|
||||
return ''
|
||||
}
|
||||
|
||||
if (/^https?:\/\//i.test(assetPath)) {
|
||||
return assetPath
|
||||
}
|
||||
|
||||
if (assetPath.startsWith('/')) {
|
||||
return `${FINANCE_ASSET_BASE_URL}${assetPath}`
|
||||
}
|
||||
|
||||
return assetPath
|
||||
}
|
||||
|
||||
function normalizeCurrency(dto: FinanceCurrencyConfigDto) {
|
||||
return {
|
||||
code: dto.code,
|
||||
@@ -80,10 +100,19 @@ function normalizeRate(dto: FinanceRateConfigDto) {
|
||||
|
||||
function normalizePayChannel(dto: FinancePayChannelDto) {
|
||||
return {
|
||||
banks: (dto.banks ?? []).map(normalizeWithdrawBank),
|
||||
code: dto.code,
|
||||
currencyCodes: Array.isArray(dto.currency_codes) ? dto.currency_codes : [],
|
||||
depositBanks: (dto.deposit_banks ?? []).map(normalizeWithdrawBank),
|
||||
feeNote: dto.fee_note ?? '',
|
||||
methods: (dto.methods ?? []).map(normalizeDepositMethod),
|
||||
minBank: dto.min_bank ?? '',
|
||||
minEwallet: dto.min_ewallet ?? '',
|
||||
name: dto.name,
|
||||
processingNote: dto.processing_note ?? '',
|
||||
rateHint: dto.rate_hint ?? '',
|
||||
rateMode: dto.rate_mode ?? '',
|
||||
reviewThresholdCoin: dto.review_threshold_coin ?? '0',
|
||||
sort: Number.isFinite(dto.sort) ? dto.sort : 0,
|
||||
status: typeof dto.status === 'number' ? dto.status : 1,
|
||||
tierIds: Array.isArray(dto.tier_ids) ? dto.tier_ids : [],
|
||||
@@ -99,6 +128,8 @@ function normalizeWithdrawBank(dto: FinanceWithdrawBankDto, index: number) {
|
||||
currencyCode: dto.currency_code ?? null,
|
||||
gatewayCode: dto.gateway_code ?? null,
|
||||
label,
|
||||
logo: normalizeFinanceAssetUrl(dto.logo),
|
||||
paymentTypes: Array.isArray(dto.payment_types) ? dto.payment_types : [],
|
||||
sort:
|
||||
typeof dto.sort === 'number' && Number.isFinite(dto.sort)
|
||||
? dto.sort
|
||||
@@ -112,6 +143,8 @@ function normalizeDepositMethod(dto: FinanceDepositMethodDto) {
|
||||
code: dto.code,
|
||||
currencyCode: dto.currency_code,
|
||||
gatewayCode: dto.gateway_code,
|
||||
maximumAmount: dto.maximum_amount ?? '',
|
||||
minimumAmount: dto.minimum_amount ?? '',
|
||||
name: dto.name,
|
||||
requiresBank: dto.requires_bank,
|
||||
requiresBankAccount: dto.requires_bank_account,
|
||||
@@ -122,6 +155,7 @@ function normalizeDepositMethod(dto: FinanceDepositMethodDto) {
|
||||
|
||||
function normalizeDepositFields(dto: FinanceDepositFieldsDto | undefined = {}) {
|
||||
return {
|
||||
channelCodeParam: dto.channel_code_param ?? 'channel_code',
|
||||
depositBankAccountParam:
|
||||
dto.deposit_bank_account_param ?? 'deposit_bank_account',
|
||||
depositBankParam: dto.deposit_bank_param ?? 'deposit_bank',
|
||||
@@ -146,20 +180,24 @@ function normalizeDepositConfig(
|
||||
|
||||
return {
|
||||
banks: (dto?.banks ?? []).map(normalizeWithdrawBank),
|
||||
dadapayPendingExpireSeconds: dto?.dadapay_pending_expire_seconds ?? 0,
|
||||
defaultChannelCode: dto?.default_channel_code ?? '',
|
||||
defaultChannelByCurrency: dto?.default_channel_by_currency ?? {},
|
||||
fields: normalizeDepositFields(dto?.fields),
|
||||
methods: (dto?.methods ?? []).map(normalizeDepositMethod),
|
||||
payChannels: payChannels.map(normalizePayChannel),
|
||||
pendingExpireSeconds: dto?.pending_expire_seconds ?? 0,
|
||||
}
|
||||
}
|
||||
|
||||
function normalizeWithdrawFields(dto: FinanceWithdrawConfigDto['fields'] = {}) {
|
||||
return {
|
||||
paymentTypeParam: dto.payment_type_param ?? 'payment_type',
|
||||
receiveTypeBankOnly: dto.receive_type_bank_only ?? true,
|
||||
requireBankBranch: dto.require_bank_branch ?? false,
|
||||
requireBankCode: dto.require_bank_code ?? true,
|
||||
requireChannelCode: dto.require_channel_code ?? true,
|
||||
requirePaymentType: dto.require_payment_type ?? false,
|
||||
requireReceiveAccount: dto.require_receive_account ?? true,
|
||||
requireReceiverEmail: dto.require_receiver_email ?? true,
|
||||
requireReceiverMobile: dto.require_receiver_mobile ?? true,
|
||||
@@ -172,6 +210,7 @@ function normalizeWithdrawConfig(dto: FinanceWithdrawConfigDto) {
|
||||
banks: (dto.banks ?? []).map(normalizeWithdrawBank),
|
||||
feeNote: dto.fee_note,
|
||||
fields: normalizeWithdrawFields(dto.fields),
|
||||
methods: (dto.methods ?? []).map(normalizeDepositMethod),
|
||||
minBank: dto.min_bank,
|
||||
minEwallet: dto.min_ewallet,
|
||||
payChannels: (dto.pay_channels ?? []).map(normalizePayChannel),
|
||||
|
||||
177
src/components/rules-markdown-content.tsx
Normal file
177
src/components/rules-markdown-content.tsx
Normal file
@@ -0,0 +1,177 @@
|
||||
import ReactMarkdown from 'react-markdown'
|
||||
import remarkGfm from 'remark-gfm'
|
||||
import { cn } from '@/lib/utils'
|
||||
|
||||
interface RulesMarkdownContentProps {
|
||||
className?: string
|
||||
content: string
|
||||
compact?: boolean
|
||||
}
|
||||
|
||||
function RulesMarkdownContent({
|
||||
className,
|
||||
compact = false,
|
||||
content,
|
||||
}: RulesMarkdownContentProps) {
|
||||
return (
|
||||
<div className={className}>
|
||||
<ReactMarkdown
|
||||
remarkPlugins={[remarkGfm]}
|
||||
components={{
|
||||
h1: ({ children }) => (
|
||||
<h1
|
||||
className={cn(
|
||||
'font-bold leading-tight text-[#F4FFFF]',
|
||||
compact
|
||||
? 'mb-design-8 text-design-15'
|
||||
: 'mb-design-14 text-design-24',
|
||||
)}
|
||||
>
|
||||
{children}
|
||||
</h1>
|
||||
),
|
||||
h2: ({ children }) => (
|
||||
<h2
|
||||
className={cn(
|
||||
'font-bold leading-tight text-[#E7FFFF]',
|
||||
compact
|
||||
? 'mb-design-6 mt-design-12 text-design-14'
|
||||
: 'mb-design-10 mt-design-18 text-design-22',
|
||||
)}
|
||||
>
|
||||
{children}
|
||||
</h2>
|
||||
),
|
||||
h3: ({ children }) => (
|
||||
<h3
|
||||
className={cn(
|
||||
'font-bold leading-tight text-[#8FE7EF]',
|
||||
compact
|
||||
? 'mb-design-5 mt-design-10 text-design-13'
|
||||
: 'mb-design-8 mt-design-16 text-design-20',
|
||||
)}
|
||||
>
|
||||
{children}
|
||||
</h3>
|
||||
),
|
||||
h4: ({ children }) => (
|
||||
<h4
|
||||
className={cn(
|
||||
'font-semibold leading-tight text-[#FFF2B8]',
|
||||
compact
|
||||
? 'mb-design-4 mt-design-9 text-design-12'
|
||||
: 'mb-design-7 mt-design-14 text-design-18',
|
||||
)}
|
||||
>
|
||||
{children}
|
||||
</h4>
|
||||
),
|
||||
p: ({ children }) => (
|
||||
<p
|
||||
className={cn(
|
||||
'text-[#B9E7EA]',
|
||||
compact
|
||||
? 'mb-design-7 leading-[1.66]'
|
||||
: 'mb-design-11 leading-[1.76]',
|
||||
)}
|
||||
>
|
||||
{children}
|
||||
</p>
|
||||
),
|
||||
strong: ({ children }) => (
|
||||
<strong className="font-bold text-[#FFF2B8]">{children}</strong>
|
||||
),
|
||||
ul: ({ children }) => (
|
||||
<ul
|
||||
className={cn(
|
||||
'list-disc text-[#B9E7EA]',
|
||||
compact
|
||||
? 'mb-design-8 space-y-design-4 pl-design-15'
|
||||
: 'mb-design-12 space-y-design-6 pl-design-22',
|
||||
)}
|
||||
>
|
||||
{children}
|
||||
</ul>
|
||||
),
|
||||
ol: ({ children }) => (
|
||||
<ol
|
||||
className={cn(
|
||||
'list-decimal text-[#B9E7EA]',
|
||||
compact
|
||||
? 'mb-design-8 space-y-design-4 pl-design-15'
|
||||
: 'mb-design-12 space-y-design-6 pl-design-22',
|
||||
)}
|
||||
>
|
||||
{children}
|
||||
</ol>
|
||||
),
|
||||
li: ({ children }) => (
|
||||
<li className={compact ? 'leading-[1.62]' : 'leading-[1.72]'}>
|
||||
{children}
|
||||
</li>
|
||||
),
|
||||
code: ({ children }) => (
|
||||
<code className="rounded-[calc(var(--design-unit)*4)] border border-[rgba(255,226,41,0.18)] bg-[rgba(255,226,41,0.08)] px-design-5 py-[1px] font-mono text-[#FFF2B8]">
|
||||
{children}
|
||||
</code>
|
||||
),
|
||||
pre: ({ children }) => (
|
||||
<pre
|
||||
className={cn(
|
||||
'overflow-x-auto rounded-[calc(var(--design-unit)*8)] border border-[rgba(126,234,244,0.16)] bg-[rgba(2,15,26,0.72)] font-mono text-[#D8FCFF]',
|
||||
compact
|
||||
? 'mb-design-9 px-design-9 py-design-7 text-design-10'
|
||||
: 'mb-design-13 px-design-14 py-design-10 text-design-15',
|
||||
)}
|
||||
>
|
||||
{children}
|
||||
</pre>
|
||||
),
|
||||
table: ({ children }) => (
|
||||
<div className="mb-design-12 overflow-x-auto rounded-[calc(var(--design-unit)*8)] border border-[rgba(126,234,244,0.16)]">
|
||||
<table className="w-full min-w-max border-collapse bg-[rgba(2,15,26,0.58)]">
|
||||
{children}
|
||||
</table>
|
||||
</div>
|
||||
),
|
||||
thead: ({ children }) => (
|
||||
<thead className="bg-[rgba(126,234,244,0.12)] text-[#E9FFFF]">
|
||||
{children}
|
||||
</thead>
|
||||
),
|
||||
th: ({ children }) => (
|
||||
<th
|
||||
className={cn(
|
||||
'border border-[rgba(126,234,244,0.13)] text-center font-semibold',
|
||||
compact
|
||||
? 'px-design-7 py-design-6'
|
||||
: 'px-design-12 py-design-9',
|
||||
)}
|
||||
>
|
||||
{children}
|
||||
</th>
|
||||
),
|
||||
td: ({ children }) => (
|
||||
<td
|
||||
className={cn(
|
||||
'border border-[rgba(126,234,244,0.1)] text-center text-[#C8F4F7]',
|
||||
compact
|
||||
? 'px-design-7 py-design-6'
|
||||
: 'px-design-12 py-design-9',
|
||||
)}
|
||||
>
|
||||
{children}
|
||||
</td>
|
||||
),
|
||||
hr: () => (
|
||||
<hr className="my-design-12 border-0 border-t border-[rgba(126,234,244,0.16)]" />
|
||||
),
|
||||
}}
|
||||
>
|
||||
{content}
|
||||
</ReactMarkdown>
|
||||
</div>
|
||||
)
|
||||
}
|
||||
|
||||
export default RulesMarkdownContent
|
||||
@@ -288,9 +288,11 @@ export const DEFAULT_WITHDRAW_CONFIG: DepositWithdrawConfig = {
|
||||
defaultDepositChannelCode: '',
|
||||
deposit: {
|
||||
banks: [],
|
||||
dadapayPendingExpireSeconds: 0,
|
||||
defaultChannelCode: '',
|
||||
defaultChannelByCurrency: {},
|
||||
fields: {
|
||||
channelCodeParam: 'channel_code',
|
||||
depositBankAccountParam: 'deposit_bank_account',
|
||||
depositBankParam: 'deposit_bank',
|
||||
depositFromAddressParam: 'deposit_from_address',
|
||||
@@ -302,6 +304,7 @@ export const DEFAULT_WITHDRAW_CONFIG: DepositWithdrawConfig = {
|
||||
},
|
||||
methods: [],
|
||||
payChannels: [],
|
||||
pendingExpireSeconds: 0,
|
||||
},
|
||||
payChannels: [],
|
||||
platformCoinLabel: '钻石',
|
||||
@@ -316,10 +319,12 @@ export const DEFAULT_WITHDRAW_CONFIG: DepositWithdrawConfig = {
|
||||
banks: [],
|
||||
feeNote: 'RM10 - RM99.99 之间的交易将收取最低RM 1的提现手续费',
|
||||
fields: {
|
||||
paymentTypeParam: 'payment_type',
|
||||
receiveTypeBankOnly: true,
|
||||
requireBankBranch: false,
|
||||
requireBankCode: true,
|
||||
requireChannelCode: true,
|
||||
requirePaymentType: false,
|
||||
requireReceiveAccount: true,
|
||||
requireReceiverEmail: true,
|
||||
requireReceiverMobile: true,
|
||||
@@ -327,6 +332,7 @@ export const DEFAULT_WITHDRAW_CONFIG: DepositWithdrawConfig = {
|
||||
},
|
||||
minBank: '10',
|
||||
minEwallet: '10',
|
||||
methods: [],
|
||||
payChannels: [],
|
||||
processingNote: '30s即可到账',
|
||||
rateHint: '汇率为参考价格,实际以提现时为准。',
|
||||
|
||||
@@ -1,20 +1,17 @@
|
||||
import { useMutation } from '@tanstack/react-query'
|
||||
import { CircleDollarSign, CreditCard, Landmark } from 'lucide-react'
|
||||
import { useRef } from 'react'
|
||||
import { type ComponentType, useRef } from 'react'
|
||||
import { useTranslation } from 'react-i18next'
|
||||
import { createDeposit } from '@/api'
|
||||
import { DataLoadingIndicator } from '@/components/ui/data-loading-indicator'
|
||||
import {
|
||||
Select,
|
||||
SelectContent,
|
||||
SelectItem,
|
||||
SelectTrigger,
|
||||
SelectValue,
|
||||
} from '@/components/ui/select'
|
||||
import { useTopupVm } from '@/hooks/use-topup-vm'
|
||||
import { notify } from '@/lib/notify'
|
||||
import { cn } from '@/lib/utils'
|
||||
import type { DepositCreateRequestDto, DepositTierItem } from '@/type'
|
||||
import type {
|
||||
DepositCreateRequestDto,
|
||||
DepositTierItem,
|
||||
FinanceWithdrawBank,
|
||||
} from '@/type'
|
||||
|
||||
const PANEL_CLASS =
|
||||
'rounded-md border border-[rgba(126,234,244,0.22)] bg-[linear-gradient(180deg,rgba(4,18,29,0.98),rgba(1,8,16,0.99))] shadow-[inset_0_1px_0_rgba(255,255,255,0.06),0_0_calc(var(--design-unit)*16)_rgba(44,210,230,0.1)]'
|
||||
@@ -25,9 +22,6 @@ const FILTER_BAR_CLASS =
|
||||
const FIELD_LABEL_CLASS =
|
||||
'mb-design-5 flex items-center gap-design-5 text-design-11 font-semibold uppercase tracking-[0.08em] text-[#8FE7EF]'
|
||||
|
||||
const SELECT_TRIGGER_CLASS =
|
||||
'h-design-42 w-full rounded-[calc(var(--design-unit)*6)] border-[rgba(126,234,244,0.18)] bg-[rgba(2,15,26,0.78)] px-design-10 text-design-12 font-semibold text-[#E9FEFF] shadow-none hover:border-[rgba(170,247,255,0.48)] focus-visible:border-[#7CE3E8] focus-visible:ring-[#7CE3E8]/25 data-placeholder:text-[#6FAAB2]'
|
||||
|
||||
function formatNumber(value: number) {
|
||||
return new Intl.NumberFormat('en-US').format(value)
|
||||
}
|
||||
@@ -44,6 +38,115 @@ function getMethodIcon(gatewayCode: string) {
|
||||
return CircleDollarSign
|
||||
}
|
||||
|
||||
function OptionSection({
|
||||
children,
|
||||
className,
|
||||
icon: Icon,
|
||||
label,
|
||||
}: {
|
||||
children: React.ReactNode
|
||||
className?: string
|
||||
icon: ComponentType<{ className?: string }>
|
||||
label: string
|
||||
}) {
|
||||
return (
|
||||
<div className={cn('min-w-0', className)}>
|
||||
<div className={FIELD_LABEL_CLASS}>
|
||||
<Icon className="h-design-12 w-design-12" />
|
||||
<span>{label}</span>
|
||||
</div>
|
||||
{children}
|
||||
</div>
|
||||
)
|
||||
}
|
||||
|
||||
function ChoiceButton({
|
||||
active,
|
||||
disabled,
|
||||
icon: Icon,
|
||||
label,
|
||||
onClick,
|
||||
}: {
|
||||
active: boolean
|
||||
disabled?: boolean
|
||||
icon?: ComponentType<{ className?: string }>
|
||||
label: string
|
||||
onClick: () => void
|
||||
}) {
|
||||
return (
|
||||
<button
|
||||
type="button"
|
||||
aria-pressed={active}
|
||||
disabled={disabled}
|
||||
onClick={onClick}
|
||||
className={cn(
|
||||
'flex h-design-38 min-w-0 cursor-pointer items-center justify-center gap-design-6 rounded-[calc(var(--design-unit)*6)] border px-design-8 text-design-12 font-semibold transition-[border-color,background-color,box-shadow,color,filter] duration-150 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[#7CE3E8]/45',
|
||||
active
|
||||
? 'border-[#FFE229]/55 bg-[linear-gradient(180deg,rgba(98,75,21,0.85),rgba(51,39,15,0.94))] text-[#FFF4B6] shadow-[0_0_calc(var(--design-unit)*12)_rgba(255,226,41,0.1),inset_0_0_calc(var(--design-unit)*10)_rgba(255,226,41,0.08)]'
|
||||
: 'border-[rgba(126,234,244,0.18)] bg-[rgba(2,15,26,0.78)] text-[#D7FBFF] hover:border-[rgba(170,247,255,0.48)] hover:bg-[rgba(8,36,50,0.88)]',
|
||||
disabled &&
|
||||
'cursor-not-allowed opacity-45 hover:border-[rgba(126,234,244,0.18)] hover:bg-[rgba(2,15,26,0.78)]',
|
||||
)}
|
||||
>
|
||||
{Icon ? <Icon className="h-design-13 w-design-13 shrink-0" /> : null}
|
||||
<span className="min-w-0 truncate">{label}</span>
|
||||
</button>
|
||||
)
|
||||
}
|
||||
|
||||
function EmptyChoice({ label }: { label: string }) {
|
||||
return (
|
||||
<div className="flex h-design-38 items-center justify-center rounded-[calc(var(--design-unit)*6)] border border-[rgba(126,234,244,0.12)] bg-[rgba(2,15,26,0.48)] px-design-8 text-design-12 font-semibold text-[#6FAAB2]">
|
||||
{label}
|
||||
</div>
|
||||
)
|
||||
}
|
||||
|
||||
function BankLogo({ bank }: { bank: FinanceWithdrawBank }) {
|
||||
if (bank.logo.trim()) {
|
||||
return (
|
||||
<img
|
||||
src={bank.logo}
|
||||
alt={bank.label}
|
||||
className="h-design-22 w-design-22 rounded-[calc(var(--design-unit)*4)] object-contain"
|
||||
/>
|
||||
)
|
||||
}
|
||||
|
||||
return <Landmark className="h-design-18 w-design-18 text-[#8DE4EA]" />
|
||||
}
|
||||
|
||||
function BankButton({
|
||||
active,
|
||||
bank,
|
||||
onClick,
|
||||
}: {
|
||||
active: boolean
|
||||
bank: FinanceWithdrawBank
|
||||
onClick: () => void
|
||||
}) {
|
||||
return (
|
||||
<button
|
||||
type="button"
|
||||
aria-pressed={active}
|
||||
onClick={onClick}
|
||||
className={cn(
|
||||
'flex h-design-42 min-w-0 cursor-pointer items-center gap-design-7 rounded-[calc(var(--design-unit)*6)] border px-design-8 text-left transition-[border-color,background-color,box-shadow,color,filter] duration-150 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[#7CE3E8]/45',
|
||||
active
|
||||
? 'border-[#FFE229]/55 bg-[linear-gradient(180deg,rgba(98,75,21,0.85),rgba(51,39,15,0.94))] text-[#FFF4B6] shadow-[0_0_calc(var(--design-unit)*12)_rgba(255,226,41,0.1),inset_0_0_calc(var(--design-unit)*10)_rgba(255,226,41,0.08)]'
|
||||
: 'border-[rgba(126,234,244,0.18)] bg-[rgba(2,15,26,0.78)] text-[#D7FBFF] hover:border-[rgba(170,247,255,0.48)] hover:bg-[rgba(8,36,50,0.88)]',
|
||||
)}
|
||||
>
|
||||
<span className="flex h-design-28 w-design-28 shrink-0 items-center justify-center rounded-[calc(var(--design-unit)*5)] border border-[rgba(121,219,229,0.2)] bg-[rgba(10,39,52,0.72)]">
|
||||
<BankLogo bank={bank} />
|
||||
</span>
|
||||
<span className="min-w-0 truncate text-design-12 font-semibold">
|
||||
{bank.label}
|
||||
</span>
|
||||
</button>
|
||||
)
|
||||
}
|
||||
|
||||
function DesktopTopup() {
|
||||
const { t } = useTranslation()
|
||||
const vm = useTopupVm()
|
||||
@@ -130,168 +233,122 @@ function DesktopTopup() {
|
||||
</div>
|
||||
) : (
|
||||
<div className="flex h-full min-h-0 flex-col gap-design-10">
|
||||
<div className={FILTER_BAR_CLASS}>
|
||||
<div className="grid grid-cols-[1.15fr_0.78fr_1fr_1.15fr] gap-design-8">
|
||||
<div className="min-w-0">
|
||||
<label
|
||||
htmlFor="desktop-topup-channel"
|
||||
className={FIELD_LABEL_CLASS}
|
||||
<div
|
||||
className={cn(FILTER_BAR_CLASS, 'min-h-0 flex-1 overflow-hidden')}
|
||||
>
|
||||
<CreditCard className="h-design-12 w-design-12" />
|
||||
<span>{t('gameDesktop.topup.flow.channelTitle')}</span>
|
||||
</label>
|
||||
<Select
|
||||
value={vm.selectedPayChannelCode || undefined}
|
||||
onValueChange={vm.setSelectedPayChannelCode}
|
||||
disabled={vm.payChannels.length === 0}
|
||||
<div className="grid h-full min-h-0 grid-cols-[minmax(0,0.9fr)_minmax(0,1.45fr)] gap-design-10">
|
||||
<div className="flex min-h-0 flex-col gap-design-9 overflow-y-auto pr-design-1">
|
||||
<OptionSection
|
||||
icon={CreditCard}
|
||||
label={t('gameDesktop.topup.flow.channelTitle')}
|
||||
>
|
||||
<SelectTrigger
|
||||
id="desktop-topup-channel"
|
||||
className={SELECT_TRIGGER_CLASS}
|
||||
>
|
||||
<SelectValue
|
||||
placeholder={t('gameDesktop.topup.flow.channelTitle')}
|
||||
<div className="grid grid-cols-2 gap-design-6">
|
||||
{vm.payChannels.length === 0 ? (
|
||||
<EmptyChoice
|
||||
label={t('gameDesktop.topup.flow.channelTitle')}
|
||||
/>
|
||||
</SelectTrigger>
|
||||
<SelectContent className="max-h-design-240">
|
||||
{vm.payChannels.map((channel) => (
|
||||
<SelectItem
|
||||
) : (
|
||||
vm.payChannels.map((channel) => (
|
||||
<ChoiceButton
|
||||
key={channel.code}
|
||||
value={channel.code}
|
||||
className="py-design-7 text-design-12"
|
||||
>
|
||||
{channel.name}
|
||||
</SelectItem>
|
||||
))}
|
||||
</SelectContent>
|
||||
</Select>
|
||||
</div>
|
||||
|
||||
<div className="min-w-0">
|
||||
<label
|
||||
htmlFor="desktop-topup-currency"
|
||||
className={FIELD_LABEL_CLASS}
|
||||
>
|
||||
<CircleDollarSign className="h-design-12 w-design-12" />
|
||||
<span>{t('gameDesktop.topup.flow.currencyTitle')}</span>
|
||||
</label>
|
||||
<Select
|
||||
value={vm.selectedCurrencyCode || undefined}
|
||||
onValueChange={vm.setSelectedCurrencyCode}
|
||||
disabled={
|
||||
!vm.selectedPayChannel ||
|
||||
vm.selectedPayChannel.currencyCodes.length === 0
|
||||
active={channel.code === vm.selectedPayChannelCode}
|
||||
label={channel.name}
|
||||
onClick={() =>
|
||||
vm.setSelectedPayChannelCode(channel.code)
|
||||
}
|
||||
>
|
||||
<SelectTrigger
|
||||
id="desktop-topup-currency"
|
||||
className={SELECT_TRIGGER_CLASS}
|
||||
>
|
||||
<SelectValue
|
||||
placeholder={t('gameDesktop.topup.flow.currencyTitle')}
|
||||
/>
|
||||
</SelectTrigger>
|
||||
<SelectContent>
|
||||
{vm.selectedPayChannel?.currencyCodes.map(
|
||||
(currencyCode) => (
|
||||
<SelectItem
|
||||
key={currencyCode}
|
||||
value={currencyCode}
|
||||
className="py-design-7 text-design-12"
|
||||
>
|
||||
{currencyCode}
|
||||
</SelectItem>
|
||||
),
|
||||
))
|
||||
)}
|
||||
</SelectContent>
|
||||
</Select>
|
||||
</div>
|
||||
</OptionSection>
|
||||
|
||||
<div className="min-w-0">
|
||||
<label
|
||||
htmlFor="desktop-topup-method"
|
||||
className={FIELD_LABEL_CLASS}
|
||||
<OptionSection
|
||||
icon={CircleDollarSign}
|
||||
label={t('gameDesktop.topup.flow.currencyTitle')}
|
||||
>
|
||||
<CreditCard className="h-design-12 w-design-12" />
|
||||
<span>{t('gameDesktop.topup.flow.methodTitle')}</span>
|
||||
</label>
|
||||
<Select
|
||||
value={vm.selectedPaymentMethodCode || undefined}
|
||||
onValueChange={vm.setSelectedPaymentMethodCode}
|
||||
disabled={vm.methods.length === 0}
|
||||
>
|
||||
<SelectTrigger
|
||||
id="desktop-topup-method"
|
||||
className={SELECT_TRIGGER_CLASS}
|
||||
>
|
||||
<SelectValue
|
||||
placeholder={t('gameDesktop.topup.flow.methodTitle')}
|
||||
<div className="grid grid-cols-3 gap-design-6">
|
||||
{vm.selectedPayChannel?.currencyCodes.length ? (
|
||||
vm.selectedPayChannel.currencyCodes.map(
|
||||
(currencyCode) => (
|
||||
<ChoiceButton
|
||||
key={currencyCode}
|
||||
active={currencyCode === vm.selectedCurrencyCode}
|
||||
label={currencyCode}
|
||||
onClick={() =>
|
||||
vm.setSelectedCurrencyCode(currencyCode)
|
||||
}
|
||||
/>
|
||||
</SelectTrigger>
|
||||
<SelectContent>
|
||||
{vm.methods.map((method) => {
|
||||
),
|
||||
)
|
||||
) : (
|
||||
<EmptyChoice
|
||||
label={t('gameDesktop.topup.flow.currencyTitle')}
|
||||
/>
|
||||
)}
|
||||
</div>
|
||||
</OptionSection>
|
||||
|
||||
<OptionSection
|
||||
icon={CreditCard}
|
||||
label={t('gameDesktop.topup.flow.methodTitle')}
|
||||
>
|
||||
<div className="grid grid-cols-2 gap-design-6">
|
||||
{vm.methods.length === 0 ? (
|
||||
<EmptyChoice
|
||||
label={t('gameDesktop.topup.flow.methodTitle')}
|
||||
/>
|
||||
) : (
|
||||
vm.methods.map((method) => {
|
||||
const MethodIcon = getMethodIcon(method.gatewayCode)
|
||||
|
||||
return (
|
||||
<SelectItem
|
||||
<ChoiceButton
|
||||
key={method.code}
|
||||
value={method.code}
|
||||
className="py-design-7 text-design-12"
|
||||
>
|
||||
<span className="flex items-center gap-design-6">
|
||||
<MethodIcon className="h-design-12 w-design-12" />
|
||||
<span>{getPaymentMethodLabel(method)}</span>
|
||||
</span>
|
||||
</SelectItem>
|
||||
)
|
||||
})}
|
||||
</SelectContent>
|
||||
</Select>
|
||||
</div>
|
||||
|
||||
<div className="min-w-0">
|
||||
<label
|
||||
htmlFor="desktop-topup-bank"
|
||||
className={FIELD_LABEL_CLASS}
|
||||
>
|
||||
<Landmark className="h-design-12 w-design-12" />
|
||||
<span>{t('gameDesktop.topup.flow.bankTitle')}</span>
|
||||
</label>
|
||||
<Select
|
||||
value={vm.selectedBankCode || undefined}
|
||||
onValueChange={vm.setSelectedBankCode}
|
||||
disabled={vm.banks.length === 0}
|
||||
>
|
||||
<SelectTrigger
|
||||
id="desktop-topup-bank"
|
||||
className={SELECT_TRIGGER_CLASS}
|
||||
>
|
||||
<SelectValue
|
||||
placeholder={t(
|
||||
vm.banks.length === 0
|
||||
? 'gameDesktop.topup.flow.noBank'
|
||||
: 'gameDesktop.topup.flow.bankPlaceholder',
|
||||
)}
|
||||
active={
|
||||
method.code === vm.selectedPaymentMethodCode
|
||||
}
|
||||
icon={MethodIcon}
|
||||
label={getPaymentMethodLabel(method)}
|
||||
onClick={() =>
|
||||
vm.setSelectedPaymentMethodCode(method.code)
|
||||
}
|
||||
/>
|
||||
</SelectTrigger>
|
||||
<SelectContent className="max-h-design-240">
|
||||
{vm.banks.map((bank) => (
|
||||
<SelectItem
|
||||
key={bank.code}
|
||||
value={bank.code}
|
||||
className="py-design-7 text-design-12"
|
||||
>
|
||||
{bank.label}
|
||||
</SelectItem>
|
||||
))}
|
||||
</SelectContent>
|
||||
</Select>
|
||||
)
|
||||
})
|
||||
)}
|
||||
</div>
|
||||
</OptionSection>
|
||||
</div>
|
||||
|
||||
<OptionSection
|
||||
className="flex min-h-0 flex-col overflow-hidden"
|
||||
icon={Landmark}
|
||||
label={t('gameDesktop.topup.flow.bankTitle')}
|
||||
>
|
||||
<div className="min-h-0 flex-1 overflow-y-auto pr-design-1">
|
||||
<div className="grid grid-cols-3 gap-design-6">
|
||||
{vm.banks.length === 0 ? (
|
||||
<EmptyChoice
|
||||
label={t('gameDesktop.topup.flow.noBank')}
|
||||
/>
|
||||
) : (
|
||||
vm.banks.map((bank) => (
|
||||
<BankButton
|
||||
key={bank.code}
|
||||
active={bank.code === vm.selectedBankCode}
|
||||
bank={bank}
|
||||
onClick={() => vm.setSelectedBankCode(bank.code)}
|
||||
/>
|
||||
))
|
||||
)}
|
||||
</div>
|
||||
</div>
|
||||
</OptionSection>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div className="flex min-h-0 flex-1 flex-col rounded-[calc(var(--design-unit)*8)] border border-[rgba(126,234,244,0.13)] bg-[rgba(2,13,23,0.42)] p-design-10">
|
||||
<div className="mb-design-8 flex shrink-0 items-center justify-between gap-design-10">
|
||||
<div className="flex max-h-[calc(var(--design-unit)*150)] shrink-0 flex-col rounded-[calc(var(--design-unit)*8)] border border-[rgba(126,234,244,0.13)] bg-[rgba(2,13,23,0.42)] p-design-8">
|
||||
<div className="mb-design-6 flex shrink-0 items-center justify-between gap-design-10">
|
||||
<div className="min-w-0">
|
||||
<div className="text-design-15 font-semibold text-[#E8FDFF]">
|
||||
{t('gameDesktop.topup.tier.title')}
|
||||
@@ -309,11 +366,11 @@ function DesktopTopup() {
|
||||
</div>
|
||||
|
||||
{vm.filteredTiers.length === 0 ? (
|
||||
<div className="flex min-h-0 flex-1 items-center justify-center rounded-[calc(var(--design-unit)*7)] border border-[rgba(103,227,239,0.16)] bg-[rgba(6,24,35,0.44)] text-design-16 text-[#8FDDE6]">
|
||||
<div className="flex h-design-88 items-center justify-center rounded-[calc(var(--design-unit)*7)] border border-[rgba(103,227,239,0.16)] bg-[rgba(6,24,35,0.44)] text-design-14 text-[#8FDDE6]">
|
||||
{t('gameDesktop.topup.tier.empty')}
|
||||
</div>
|
||||
) : (
|
||||
<div className="grid min-h-0 min-w-0 grid-cols-4 content-start gap-design-8 overflow-y-auto pr-design-1">
|
||||
<div className="flex min-w-0 gap-design-7 overflow-x-auto pb-design-1">
|
||||
{vm.filteredTiers.map((tier) => (
|
||||
<button
|
||||
key={tier.id}
|
||||
@@ -322,32 +379,32 @@ function DesktopTopup() {
|
||||
void handleCreateDeposit(tier)
|
||||
}}
|
||||
className={cn(
|
||||
'group relative min-h-design-126 cursor-pointer overflow-hidden rounded-[calc(var(--design-unit)*7)] border border-[rgba(126,234,244,0.16)] bg-[linear-gradient(180deg,rgba(8,36,50,0.88),rgba(3,18,29,0.96))] px-design-10 py-design-10 text-left transition-[border-color,background-color,box-shadow,filter] duration-150 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[#7CE3E8]/50',
|
||||
'group relative h-design-82 w-design-168 shrink-0 cursor-pointer overflow-hidden rounded-[calc(var(--design-unit)*7)] border border-[rgba(126,234,244,0.16)] bg-[linear-gradient(180deg,rgba(8,36,50,0.88),rgba(3,18,29,0.96))] px-design-8 py-design-7 text-left transition-[border-color,background-color,box-shadow,filter] duration-150 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[#7CE3E8]/50',
|
||||
createDepositMutation.isPending
|
||||
? 'cursor-wait opacity-80'
|
||||
: 'hover:border-[rgba(255,226,41,0.5)] hover:bg-[linear-gradient(180deg,rgba(12,46,61,0.94),rgba(4,22,34,0.98))] hover:shadow-[0_0_calc(var(--design-unit)*14)_rgba(255,226,41,0.08)] active:brightness-90',
|
||||
)}
|
||||
>
|
||||
<div className="flex items-start justify-between gap-design-8">
|
||||
<div className="flex items-start justify-between gap-design-6">
|
||||
<div className="min-w-0">
|
||||
<div className="truncate text-design-11 uppercase tracking-[0.05em] text-[#65B2BA]">
|
||||
<div className="truncate text-design-10 uppercase tracking-[0.05em] text-[#65B2BA]">
|
||||
{tier.title}
|
||||
</div>
|
||||
<div className="pt-design-7 text-design-24 font-semibold leading-none text-[#FFE229]">
|
||||
<div className="pt-design-5 text-design-20 font-semibold leading-none text-[#FFE229]">
|
||||
{formatNumber(tier.amount)}
|
||||
</div>
|
||||
</div>
|
||||
<div className="shrink-0 rounded-full border border-[rgba(121,219,229,0.24)] bg-[rgba(10,39,52,0.72)] px-design-6 py-[2px] text-design-10 leading-none text-[#7CDDE7]">
|
||||
<div className="shrink-0 rounded-full border border-[rgba(121,219,229,0.24)] bg-[rgba(10,39,52,0.72)] px-design-5 py-[2px] text-design-9 leading-none text-[#7CDDE7]">
|
||||
{tier.currency ?? 'FIAT'}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div className="mt-design-9 rounded-[calc(var(--design-unit)*5)] bg-[rgba(255,226,41,0.06)] px-design-7 py-design-6">
|
||||
<div className="mt-design-5 rounded-[calc(var(--design-unit)*5)] bg-[rgba(255,226,41,0.06)] px-design-6 py-design-4">
|
||||
<div className="flex items-center justify-between gap-design-6">
|
||||
<span className="text-design-10 text-[#74B8C0]">
|
||||
<span className="text-design-9 text-[#74B8C0]">
|
||||
{t('gameDesktop.topup.tier.bonus')}
|
||||
</span>
|
||||
<span className="text-design-12 font-semibold text-[#FFF1C9]">
|
||||
<span className="text-design-10 font-semibold text-[#FFF1C9]">
|
||||
{formatNumber(tier.bonusAmount)}
|
||||
</span>
|
||||
</div>
|
||||
|
||||
@@ -330,9 +330,12 @@ function DesktopWithdraw() {
|
||||
if (
|
||||
vm.amountRequiredError ||
|
||||
vm.amountExceedsBalance ||
|
||||
vm.amountBelowPaymentMinimum ||
|
||||
vm.amountAbovePaymentMaximum ||
|
||||
vm.holderNameError ||
|
||||
vm.bankAccountError ||
|
||||
vm.paymentChannelCodeError ||
|
||||
vm.paymentTypeError ||
|
||||
vm.bankCodeError ||
|
||||
vm.receiverEmailError ||
|
||||
vm.receiverPhoneError
|
||||
@@ -345,6 +348,7 @@ function DesktopWithdraw() {
|
||||
bank_code: vm.bankCode,
|
||||
channel_code: vm.paymentChannelCode,
|
||||
idempotency_key: String(Date.now()),
|
||||
payment_type: vm.paymentType,
|
||||
receive_account: vm.bankAccount.trim(),
|
||||
receiver_email: vm.receiverEmail.trim(),
|
||||
receiver_mobile: vm.receiverPhone.trim(),
|
||||
@@ -393,6 +397,20 @@ function DesktopWithdraw() {
|
||||
{t('gameDesktop.withdraw.errors.amountExceedsBalance')}
|
||||
</div>
|
||||
) : null}
|
||||
{hasSubmitted && vm.amountBelowPaymentMinimum ? (
|
||||
<div className="pl-design-2 text-design-13 text-[#F44F4F]">
|
||||
{t('gameDesktop.withdraw.errors.amountBelowPaymentMinimum', {
|
||||
amount: vm.paymentMinimumAmountLabel,
|
||||
})}
|
||||
</div>
|
||||
) : null}
|
||||
{hasSubmitted && vm.amountAbovePaymentMaximum ? (
|
||||
<div className="pl-design-2 text-design-13 text-[#F44F4F]">
|
||||
{t('gameDesktop.withdraw.errors.amountAbovePaymentMaximum', {
|
||||
amount: vm.paymentMaximumAmountLabel,
|
||||
})}
|
||||
</div>
|
||||
) : null}
|
||||
</WithdrawField>
|
||||
|
||||
<div className="flex items-start gap-design-14">
|
||||
@@ -412,32 +430,6 @@ function DesktopWithdraw() {
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<WithdrawField
|
||||
label={t('gameDesktop.withdraw.fields.currencyType')}
|
||||
alignStart={false}
|
||||
>
|
||||
<Select
|
||||
value={vm.currencyCode}
|
||||
onValueChange={vm.setCurrencyCode}
|
||||
>
|
||||
<SelectTrigger
|
||||
className="h-design-42 w-full rounded-[calc(var(--design-unit)*5)] border-[rgba(103,227,239,0.3)] bg-[linear-gradient(180deg,rgba(12,61,72,0.82),rgba(6,28,39,0.9))] px-design-14 text-left !text-design-16 text-[#A5EDF4] shadow-[inset_0_0_calc(var(--design-unit)*12)_rgba(94,237,255,0.08)] data-[size=default]:h-design-42 data-[placeholder]:text-[rgba(109,170,176,0.55)] [&_svg]:h-design-18 [&_svg]:w-design-18 [&_svg]:text-[#79DFEA]"
|
||||
aria-label={t('gameDesktop.withdraw.currencySelection')}
|
||||
>
|
||||
<SelectValue
|
||||
placeholder={t('gameDesktop.withdraw.selectCurrency')}
|
||||
/>
|
||||
</SelectTrigger>
|
||||
<SelectContent>
|
||||
{vm.config.currencies.map((option: FinanceCurrencyConfig) => (
|
||||
<SelectItem key={option.code} value={option.code}>
|
||||
{option.label}
|
||||
</SelectItem>
|
||||
))}
|
||||
</SelectContent>
|
||||
</Select>
|
||||
</WithdrawField>
|
||||
|
||||
<WithdrawField
|
||||
label={t('gameDesktop.withdraw.fields.paymentChannel')}
|
||||
>
|
||||
@@ -467,6 +459,76 @@ function DesktopWithdraw() {
|
||||
</div>
|
||||
</WithdrawField>
|
||||
|
||||
<WithdrawField
|
||||
label={t('gameDesktop.withdraw.fields.paymentType')}
|
||||
alignStart={false}
|
||||
>
|
||||
<div className="flex w-full flex-col gap-design-5">
|
||||
<Select
|
||||
value={vm.paymentType || undefined}
|
||||
onValueChange={vm.setPaymentType}
|
||||
disabled={vm.availablePaymentMethods.length === 0}
|
||||
>
|
||||
<SelectTrigger
|
||||
className={cn(
|
||||
'h-design-42 w-full rounded-[calc(var(--design-unit)*5)] bg-[linear-gradient(180deg,rgba(12,61,72,0.82),rgba(6,28,39,0.9))] px-design-14 text-left !text-design-16 text-[#A5EDF4] shadow-[inset_0_0_calc(var(--design-unit)*12)_rgba(94,237,255,0.08)] data-[size=default]:h-design-42 data-[placeholder]:text-[rgba(109,170,176,0.55)] [&_svg]:h-design-18 [&_svg]:w-design-18 [&_svg]:text-[#79DFEA]',
|
||||
hasSubmitted && vm.paymentTypeError
|
||||
? 'border-[#B93F44]'
|
||||
: 'border-[rgba(103,227,239,0.3)]',
|
||||
)}
|
||||
aria-label={t('gameDesktop.withdraw.fields.paymentType')}
|
||||
>
|
||||
<SelectValue
|
||||
placeholder={t(
|
||||
'gameDesktop.withdraw.placeholders.paymentType',
|
||||
)}
|
||||
/>
|
||||
</SelectTrigger>
|
||||
<SelectContent>
|
||||
{vm.availablePaymentMethods.map((method) => (
|
||||
<SelectItem key={method.code} value={method.code}>
|
||||
{method.name}
|
||||
</SelectItem>
|
||||
))}
|
||||
</SelectContent>
|
||||
</Select>
|
||||
{hasSubmitted && vm.paymentTypeError ? (
|
||||
<div className="pl-design-2 text-design-13 text-[#F44F4F]">
|
||||
{t('gameDesktop.withdraw.errors.paymentTypeRequired')}
|
||||
</div>
|
||||
) : null}
|
||||
</div>
|
||||
</WithdrawField>
|
||||
|
||||
<WithdrawField
|
||||
label={t('gameDesktop.withdraw.fields.currencyType')}
|
||||
alignStart={false}
|
||||
>
|
||||
<Select
|
||||
value={vm.currencyCode || undefined}
|
||||
onValueChange={vm.setCurrencyCode}
|
||||
disabled={vm.availableCurrencies.length === 0}
|
||||
>
|
||||
<SelectTrigger
|
||||
className="h-design-42 w-full rounded-[calc(var(--design-unit)*5)] border-[rgba(103,227,239,0.3)] bg-[linear-gradient(180deg,rgba(12,61,72,0.82),rgba(6,28,39,0.9))] px-design-14 text-left !text-design-16 text-[#A5EDF4] shadow-[inset_0_0_calc(var(--design-unit)*12)_rgba(94,237,255,0.08)] data-[size=default]:h-design-42 data-[placeholder]:text-[rgba(109,170,176,0.55)] [&_svg]:h-design-18 [&_svg]:w-design-18 [&_svg]:text-[#79DFEA]"
|
||||
aria-label={t('gameDesktop.withdraw.currencySelection')}
|
||||
>
|
||||
<SelectValue
|
||||
placeholder={t('gameDesktop.withdraw.selectCurrency')}
|
||||
/>
|
||||
</SelectTrigger>
|
||||
<SelectContent>
|
||||
{vm.availableCurrencies.map(
|
||||
(option: FinanceCurrencyConfig) => (
|
||||
<SelectItem key={option.code} value={option.code}>
|
||||
{option.label}
|
||||
</SelectItem>
|
||||
),
|
||||
)}
|
||||
</SelectContent>
|
||||
</Select>
|
||||
</WithdrawField>
|
||||
|
||||
<WithdrawField
|
||||
label={t('gameDesktop.withdraw.fields.bankCode')}
|
||||
alignStart={false}
|
||||
|
||||
@@ -1,20 +1,17 @@
|
||||
import { useMutation } from '@tanstack/react-query'
|
||||
import { CircleDollarSign, CreditCard, Landmark } from 'lucide-react'
|
||||
import { useRef } from 'react'
|
||||
import { type ComponentType, useRef } from 'react'
|
||||
import { useTranslation } from 'react-i18next'
|
||||
import { createDeposit } from '@/api'
|
||||
import { DataLoadingIndicator } from '@/components/ui/data-loading-indicator'
|
||||
import {
|
||||
Select,
|
||||
SelectContent,
|
||||
SelectItem,
|
||||
SelectTrigger,
|
||||
SelectValue,
|
||||
} from '@/components/ui/select'
|
||||
import { useTopupVm } from '@/hooks/use-topup-vm'
|
||||
import { notify } from '@/lib/notify'
|
||||
import { cn } from '@/lib/utils'
|
||||
import type { DepositCreateRequestDto, DepositTierItem } from '@/type'
|
||||
import type {
|
||||
DepositCreateRequestDto,
|
||||
DepositTierItem,
|
||||
FinanceWithdrawBank,
|
||||
} from '@/type'
|
||||
|
||||
const PANEL_CLASS =
|
||||
'rounded-md border border-[rgba(126,234,244,0.22)] bg-[linear-gradient(180deg,rgba(4,18,29,0.98),rgba(1,8,16,0.99))] shadow-[inset_0_1px_0_rgba(255,255,255,0.06),0_0_calc(var(--design-unit)*12)_rgba(44,210,230,0.08)]'
|
||||
@@ -23,10 +20,7 @@ const FILTER_BAR_CLASS =
|
||||
'rounded-[calc(var(--design-unit)*7)] border border-[rgba(126,234,244,0.16)] bg-[linear-gradient(180deg,rgba(9,35,48,0.82),rgba(5,20,32,0.9))] p-design-7 shadow-[inset_0_1px_0_rgba(255,255,255,0.05)]'
|
||||
|
||||
const FIELD_LABEL_CLASS =
|
||||
'mb-design-3 flex items-center gap-design-4 text-design-9 font-semibold uppercase tracking-[0.07em] text-[#8FE7EF]'
|
||||
|
||||
const SELECT_TRIGGER_CLASS =
|
||||
'h-design-34 w-full rounded-[calc(var(--design-unit)*5)] border-[rgba(126,234,244,0.18)] bg-[rgba(2,15,26,0.78)] px-design-8 text-design-10 font-semibold text-[#E9FEFF] shadow-none focus-visible:border-[#7CE3E8] focus-visible:ring-[#7CE3E8]/25 data-placeholder:text-[#6FAAB2]'
|
||||
'mb-design-4 flex items-center gap-design-4 text-design-10 font-semibold uppercase tracking-[0.06em] text-[#8FE7EF]'
|
||||
|
||||
function formatNumber(value: number) {
|
||||
return new Intl.NumberFormat('en-US').format(value)
|
||||
@@ -44,6 +38,115 @@ function getMethodIcon(gatewayCode: string) {
|
||||
return CircleDollarSign
|
||||
}
|
||||
|
||||
function OptionSection({
|
||||
children,
|
||||
className,
|
||||
icon: Icon,
|
||||
label,
|
||||
}: {
|
||||
children: React.ReactNode
|
||||
className?: string
|
||||
icon: ComponentType<{ className?: string }>
|
||||
label: string
|
||||
}) {
|
||||
return (
|
||||
<div className={cn('min-w-0', className)}>
|
||||
<div className={FIELD_LABEL_CLASS}>
|
||||
<Icon className="h-design-10 w-design-10" />
|
||||
<span>{label}</span>
|
||||
</div>
|
||||
{children}
|
||||
</div>
|
||||
)
|
||||
}
|
||||
|
||||
function ChoiceButton({
|
||||
active,
|
||||
disabled,
|
||||
icon: Icon,
|
||||
label,
|
||||
onClick,
|
||||
}: {
|
||||
active: boolean
|
||||
disabled?: boolean
|
||||
icon?: ComponentType<{ className?: string }>
|
||||
label: string
|
||||
onClick: () => void
|
||||
}) {
|
||||
return (
|
||||
<button
|
||||
type="button"
|
||||
aria-pressed={active}
|
||||
disabled={disabled}
|
||||
onClick={onClick}
|
||||
className={cn(
|
||||
'flex h-design-36 w-full min-w-0 cursor-pointer items-center justify-center gap-design-4 rounded-[calc(var(--design-unit)*5)] border px-design-6 py-design-4 [font-size:calc(var(--design-unit)*9)] font-semibold leading-tight transition-[border-color,background-color,box-shadow,color,filter] duration-150 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[#7CE3E8]/45',
|
||||
active
|
||||
? 'border-[#FFE229]/60 bg-[linear-gradient(180deg,rgba(98,75,21,0.88),rgba(51,39,15,0.96))] text-[#FFF4B6] shadow-[0_0_calc(var(--design-unit)*10)_rgba(255,226,41,0.12),inset_0_0_calc(var(--design-unit)*8)_rgba(255,226,41,0.08)]'
|
||||
: 'border-[rgba(126,234,244,0.18)] bg-[rgba(2,15,26,0.78)] text-[#D7FBFF] hover:border-[rgba(170,247,255,0.48)] hover:bg-[rgba(8,36,50,0.88)]',
|
||||
disabled &&
|
||||
'cursor-not-allowed opacity-45 hover:border-[rgba(126,234,244,0.18)] hover:bg-[rgba(2,15,26,0.78)]',
|
||||
)}
|
||||
>
|
||||
{Icon ? <Icon className="h-design-11 w-design-11 shrink-0" /> : null}
|
||||
<span className="min-w-0 truncate">{label}</span>
|
||||
</button>
|
||||
)
|
||||
}
|
||||
|
||||
function EmptyChoice({ label }: { label: string }) {
|
||||
return (
|
||||
<div className="flex h-design-36 w-full min-w-0 items-center justify-center rounded-[calc(var(--design-unit)*5)] border border-[rgba(126,234,244,0.12)] bg-[rgba(2,15,26,0.48)] px-design-6 py-design-4 text-center [font-size:calc(var(--design-unit)*9)] font-semibold leading-tight text-[#6FAAB2]">
|
||||
{label}
|
||||
</div>
|
||||
)
|
||||
}
|
||||
|
||||
function BankLogo({ bank }: { bank: FinanceWithdrawBank }) {
|
||||
if (bank.logo.trim()) {
|
||||
return (
|
||||
<img
|
||||
src={bank.logo}
|
||||
alt={bank.label}
|
||||
className="h-design-22 w-design-22 rounded-[calc(var(--design-unit)*4)] object-contain"
|
||||
/>
|
||||
)
|
||||
}
|
||||
|
||||
return <Landmark className="h-design-16 w-design-16 text-[#8DE4EA]" />
|
||||
}
|
||||
|
||||
function BankButton({
|
||||
active,
|
||||
bank,
|
||||
onClick,
|
||||
}: {
|
||||
active: boolean
|
||||
bank: FinanceWithdrawBank
|
||||
onClick: () => void
|
||||
}) {
|
||||
return (
|
||||
<button
|
||||
type="button"
|
||||
aria-pressed={active}
|
||||
onClick={onClick}
|
||||
className={cn(
|
||||
'flex min-h-design-54 w-full min-w-0 cursor-pointer items-center gap-design-6 rounded-[calc(var(--design-unit)*6)] border px-design-7 py-design-6 text-left transition-[border-color,background-color,box-shadow,color,filter] duration-150 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[#7CE3E8]/45',
|
||||
active
|
||||
? 'border-[#FFE229]/60 bg-[linear-gradient(180deg,rgba(98,75,21,0.88),rgba(51,39,15,0.96))] text-[#FFF4B6] shadow-[0_0_calc(var(--design-unit)*10)_rgba(255,226,41,0.12),inset_0_0_calc(var(--design-unit)*8)_rgba(255,226,41,0.08)]'
|
||||
: 'border-[rgba(126,234,244,0.18)] bg-[rgba(2,15,26,0.78)] text-[#D7FBFF] hover:border-[rgba(170,247,255,0.48)] hover:bg-[rgba(8,36,50,0.88)]',
|
||||
)}
|
||||
>
|
||||
<span className="flex h-design-30 w-design-30 shrink-0 items-center justify-center rounded-[calc(var(--design-unit)*5)] border border-[rgba(121,219,229,0.2)] bg-[rgba(10,39,52,0.72)]">
|
||||
<BankLogo bank={bank} />
|
||||
</span>
|
||||
<span className="min-w-0 truncate text-design-11 font-semibold leading-tight">
|
||||
{bank.label}
|
||||
</span>
|
||||
</button>
|
||||
)
|
||||
}
|
||||
|
||||
function MobileTopup() {
|
||||
const { t } = useTranslation()
|
||||
const vm = useTopupVm()
|
||||
@@ -112,11 +215,11 @@ function MobileTopup() {
|
||||
}
|
||||
|
||||
return (
|
||||
<div className="flex h-full min-h-0 w-full px-design-8 pb-design-8 text-[#D9FFFF]">
|
||||
<div className="flex h-full min-h-0 w-full px-design-6 pb-design-6 text-[#D9FFFF]">
|
||||
<div
|
||||
className={cn(
|
||||
PANEL_CLASS,
|
||||
'flex h-full min-h-0 w-full min-w-0 flex-col overflow-hidden p-design-8',
|
||||
'flex h-full min-h-0 w-full min-w-0 flex-col overflow-hidden p-design-6',
|
||||
)}
|
||||
>
|
||||
{vm.isLoading ? (
|
||||
@@ -129,169 +232,119 @@ function MobileTopup() {
|
||||
{t('gameDesktop.topup.tier.failed')}
|
||||
</div>
|
||||
) : (
|
||||
<div className="flex h-full min-h-0 flex-col gap-design-7">
|
||||
<div className={FILTER_BAR_CLASS}>
|
||||
<div className="grid grid-cols-2 gap-design-6">
|
||||
<div className="col-span-2 min-w-0">
|
||||
<label
|
||||
htmlFor="mobile-topup-channel"
|
||||
className={FIELD_LABEL_CLASS}
|
||||
>
|
||||
<CreditCard className="h-design-10 w-design-10" />
|
||||
<span>{t('gameDesktop.topup.flow.channelTitle')}</span>
|
||||
</label>
|
||||
<Select
|
||||
value={vm.selectedPayChannelCode || undefined}
|
||||
onValueChange={vm.setSelectedPayChannelCode}
|
||||
disabled={vm.payChannels.length === 0}
|
||||
>
|
||||
<SelectTrigger
|
||||
id="mobile-topup-channel"
|
||||
className={SELECT_TRIGGER_CLASS}
|
||||
>
|
||||
<SelectValue
|
||||
placeholder={t('gameDesktop.topup.flow.channelTitle')}
|
||||
/>
|
||||
</SelectTrigger>
|
||||
<SelectContent className="max-h-design-200">
|
||||
{vm.payChannels.map((channel) => (
|
||||
<SelectItem
|
||||
key={channel.code}
|
||||
value={channel.code}
|
||||
className="py-design-6 text-design-10"
|
||||
>
|
||||
{channel.name}
|
||||
</SelectItem>
|
||||
))}
|
||||
</SelectContent>
|
||||
</Select>
|
||||
</div>
|
||||
|
||||
<div className="min-w-0">
|
||||
<label
|
||||
htmlFor="mobile-topup-currency"
|
||||
className={FIELD_LABEL_CLASS}
|
||||
>
|
||||
<CircleDollarSign className="h-design-10 w-design-10" />
|
||||
<span>{t('gameDesktop.topup.flow.currencyTitle')}</span>
|
||||
</label>
|
||||
<Select
|
||||
value={vm.selectedCurrencyCode || undefined}
|
||||
onValueChange={vm.setSelectedCurrencyCode}
|
||||
disabled={
|
||||
!vm.selectedPayChannel ||
|
||||
vm.selectedPayChannel.currencyCodes.length === 0
|
||||
}
|
||||
>
|
||||
<SelectTrigger
|
||||
id="mobile-topup-currency"
|
||||
className={SELECT_TRIGGER_CLASS}
|
||||
>
|
||||
<SelectValue
|
||||
placeholder={t('gameDesktop.topup.flow.currencyTitle')}
|
||||
/>
|
||||
</SelectTrigger>
|
||||
<SelectContent>
|
||||
{vm.selectedPayChannel?.currencyCodes.map(
|
||||
(currencyCode) => (
|
||||
<SelectItem
|
||||
key={currencyCode}
|
||||
value={currencyCode}
|
||||
className="py-design-6 text-design-10"
|
||||
>
|
||||
{currencyCode}
|
||||
</SelectItem>
|
||||
),
|
||||
<div className="flex h-full min-h-0 flex-col gap-design-6">
|
||||
<div
|
||||
className={cn(
|
||||
FILTER_BAR_CLASS,
|
||||
'min-h-0 flex-1 overflow-y-auto overscroll-contain',
|
||||
)}
|
||||
</SelectContent>
|
||||
</Select>
|
||||
</div>
|
||||
|
||||
<div className="min-w-0">
|
||||
<label
|
||||
htmlFor="mobile-topup-method"
|
||||
className={FIELD_LABEL_CLASS}
|
||||
>
|
||||
<CreditCard className="h-design-10 w-design-10" />
|
||||
<span>{t('gameDesktop.topup.flow.methodTitle')}</span>
|
||||
</label>
|
||||
<Select
|
||||
value={vm.selectedPaymentMethodCode || undefined}
|
||||
onValueChange={vm.setSelectedPaymentMethodCode}
|
||||
disabled={vm.methods.length === 0}
|
||||
<div className="flex flex-col gap-design-7">
|
||||
<OptionSection
|
||||
icon={CreditCard}
|
||||
label={t('gameDesktop.topup.flow.channelTitle')}
|
||||
>
|
||||
<SelectTrigger
|
||||
id="mobile-topup-method"
|
||||
className={SELECT_TRIGGER_CLASS}
|
||||
>
|
||||
<SelectValue
|
||||
placeholder={t('gameDesktop.topup.flow.methodTitle')}
|
||||
<div className="grid grid-cols-2 gap-design-6">
|
||||
{vm.payChannels.length === 0 ? (
|
||||
<EmptyChoice
|
||||
label={t('gameDesktop.topup.flow.channelTitle')}
|
||||
/>
|
||||
</SelectTrigger>
|
||||
<SelectContent>
|
||||
{vm.methods.map((method) => {
|
||||
) : (
|
||||
vm.payChannels.map((channel) => (
|
||||
<ChoiceButton
|
||||
key={channel.code}
|
||||
active={channel.code === vm.selectedPayChannelCode}
|
||||
label={channel.name}
|
||||
onClick={() =>
|
||||
vm.setSelectedPayChannelCode(channel.code)
|
||||
}
|
||||
/>
|
||||
))
|
||||
)}
|
||||
</div>
|
||||
</OptionSection>
|
||||
|
||||
<OptionSection
|
||||
icon={CircleDollarSign}
|
||||
label={t('gameDesktop.topup.flow.currencyTitle')}
|
||||
>
|
||||
<div className="grid grid-cols-3 gap-design-6">
|
||||
{vm.selectedPayChannel?.currencyCodes.length ? (
|
||||
vm.selectedPayChannel.currencyCodes.map(
|
||||
(currencyCode) => (
|
||||
<ChoiceButton
|
||||
key={currencyCode}
|
||||
active={currencyCode === vm.selectedCurrencyCode}
|
||||
label={currencyCode}
|
||||
onClick={() =>
|
||||
vm.setSelectedCurrencyCode(currencyCode)
|
||||
}
|
||||
/>
|
||||
),
|
||||
)
|
||||
) : (
|
||||
<EmptyChoice
|
||||
label={t('gameDesktop.topup.flow.currencyTitle')}
|
||||
/>
|
||||
)}
|
||||
</div>
|
||||
</OptionSection>
|
||||
|
||||
<OptionSection
|
||||
icon={CreditCard}
|
||||
label={t('gameDesktop.topup.flow.methodTitle')}
|
||||
>
|
||||
<div className="grid grid-cols-2 gap-design-6">
|
||||
{vm.methods.length === 0 ? (
|
||||
<EmptyChoice
|
||||
label={t('gameDesktop.topup.flow.methodTitle')}
|
||||
/>
|
||||
) : (
|
||||
vm.methods.map((method) => {
|
||||
const MethodIcon = getMethodIcon(method.gatewayCode)
|
||||
|
||||
return (
|
||||
<SelectItem
|
||||
<ChoiceButton
|
||||
key={method.code}
|
||||
value={method.code}
|
||||
className="py-design-6 text-design-10"
|
||||
>
|
||||
<span className="flex items-center gap-design-5">
|
||||
<MethodIcon className="h-design-10 w-design-10" />
|
||||
<span>{getPaymentMethodLabel(method)}</span>
|
||||
</span>
|
||||
</SelectItem>
|
||||
)
|
||||
})}
|
||||
</SelectContent>
|
||||
</Select>
|
||||
</div>
|
||||
|
||||
<div className="col-span-2 min-w-0">
|
||||
<label
|
||||
htmlFor="mobile-topup-bank"
|
||||
className={FIELD_LABEL_CLASS}
|
||||
>
|
||||
<Landmark className="h-design-10 w-design-10" />
|
||||
<span>{t('gameDesktop.topup.flow.bankTitle')}</span>
|
||||
</label>
|
||||
<Select
|
||||
value={vm.selectedBankCode || undefined}
|
||||
onValueChange={vm.setSelectedBankCode}
|
||||
disabled={vm.banks.length === 0}
|
||||
>
|
||||
<SelectTrigger
|
||||
id="mobile-topup-bank"
|
||||
className={SELECT_TRIGGER_CLASS}
|
||||
>
|
||||
<SelectValue
|
||||
placeholder={t(
|
||||
vm.banks.length === 0
|
||||
? 'gameDesktop.topup.flow.noBank'
|
||||
: 'gameDesktop.topup.flow.bankPlaceholder',
|
||||
)}
|
||||
active={
|
||||
method.code === vm.selectedPaymentMethodCode
|
||||
}
|
||||
icon={MethodIcon}
|
||||
label={getPaymentMethodLabel(method)}
|
||||
onClick={() =>
|
||||
vm.setSelectedPaymentMethodCode(method.code)
|
||||
}
|
||||
/>
|
||||
</SelectTrigger>
|
||||
<SelectContent className="max-h-design-200">
|
||||
{vm.banks.map((bank) => (
|
||||
<SelectItem
|
||||
key={bank.code}
|
||||
value={bank.code}
|
||||
className="py-design-6 text-design-10"
|
||||
>
|
||||
{bank.label}
|
||||
</SelectItem>
|
||||
))}
|
||||
</SelectContent>
|
||||
</Select>
|
||||
)
|
||||
})
|
||||
)}
|
||||
</div>
|
||||
</OptionSection>
|
||||
|
||||
<OptionSection
|
||||
icon={Landmark}
|
||||
label={t('gameDesktop.topup.flow.bankTitle')}
|
||||
>
|
||||
<div className="grid grid-cols-2 gap-design-6">
|
||||
{vm.banks.length === 0 ? (
|
||||
<EmptyChoice label={t('gameDesktop.topup.flow.noBank')} />
|
||||
) : (
|
||||
vm.banks.map((bank) => (
|
||||
<BankButton
|
||||
key={bank.code}
|
||||
active={bank.code === vm.selectedBankCode}
|
||||
bank={bank}
|
||||
onClick={() => vm.setSelectedBankCode(bank.code)}
|
||||
/>
|
||||
))
|
||||
)}
|
||||
</div>
|
||||
</OptionSection>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div className="flex min-h-0 flex-1 flex-col rounded-[calc(var(--design-unit)*7)] border border-[rgba(126,234,244,0.13)] bg-[rgba(2,13,23,0.42)] p-design-7">
|
||||
<div className="mb-design-6 flex shrink-0 items-center justify-between gap-design-6">
|
||||
<div className="flex max-h-design-128 shrink-0 flex-col rounded-[calc(var(--design-unit)*7)] border border-[rgba(126,234,244,0.13)] bg-[rgba(2,13,23,0.42)] p-design-6">
|
||||
<div className="mb-design-4 flex shrink-0 items-center justify-between gap-design-6">
|
||||
<div className="min-w-0">
|
||||
<div className="text-design-12 font-semibold text-[#E8FDFF]">
|
||||
{t('gameDesktop.topup.tier.title')}
|
||||
@@ -309,11 +362,11 @@ function MobileTopup() {
|
||||
</div>
|
||||
|
||||
{vm.filteredTiers.length === 0 ? (
|
||||
<div className="flex min-h-0 flex-1 items-center justify-center rounded-[calc(var(--design-unit)*6)] border border-[rgba(103,227,239,0.16)] bg-[rgba(6,24,35,0.44)] px-design-12 text-center text-design-14 text-[#8FDDE6]">
|
||||
<div className="flex h-design-64 items-center justify-center rounded-[calc(var(--design-unit)*6)] border border-[rgba(103,227,239,0.16)] bg-[rgba(6,24,35,0.44)] px-design-12 text-center text-design-12 text-[#8FDDE6]">
|
||||
{t('gameDesktop.topup.tier.empty')}
|
||||
</div>
|
||||
) : (
|
||||
<div className="grid min-h-0 min-w-0 grid-cols-2 content-start gap-design-7 overflow-y-auto pr-design-1">
|
||||
<div className="flex min-w-0 gap-design-5 overflow-x-auto pb-design-1">
|
||||
{vm.filteredTiers.map((tier) => (
|
||||
<button
|
||||
key={tier.id}
|
||||
@@ -322,28 +375,28 @@ function MobileTopup() {
|
||||
void handleCreateDeposit(tier)
|
||||
}}
|
||||
className={cn(
|
||||
'relative min-h-design-118 cursor-pointer overflow-hidden rounded-[calc(var(--design-unit)*6)] border border-[rgba(126,234,244,0.16)] bg-[linear-gradient(180deg,rgba(8,36,50,0.88),rgba(3,18,29,0.96))] px-design-8 py-design-8 text-left transition-[border-color,background-color,filter] duration-150 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[#7CE3E8]/50',
|
||||
'relative h-design-76 w-design-136 shrink-0 cursor-pointer overflow-hidden rounded-[calc(var(--design-unit)*6)] border border-[rgba(126,234,244,0.16)] bg-[linear-gradient(180deg,rgba(8,36,50,0.88),rgba(3,18,29,0.96))] px-design-7 py-design-6 text-left transition-[border-color,background-color,filter] duration-150 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[#7CE3E8]/50',
|
||||
createDepositMutation.isPending
|
||||
? 'cursor-wait opacity-80'
|
||||
: 'hover:border-[rgba(255,226,41,0.5)] active:brightness-90',
|
||||
)}
|
||||
>
|
||||
<div className="flex items-start justify-between gap-design-6">
|
||||
<div className="flex items-start justify-between gap-design-5">
|
||||
<div className="min-w-0">
|
||||
<div className="truncate text-design-10 uppercase tracking-[0.04em] text-[#65B2BA]">
|
||||
<div className="truncate text-design-8 uppercase tracking-[0.04em] text-[#65B2BA]">
|
||||
{tier.title}
|
||||
</div>
|
||||
<div className="pt-design-6 text-design-20 font-semibold leading-none text-[#FFE229]">
|
||||
<div className="pt-design-4 text-design-17 font-semibold leading-none text-[#FFE229]">
|
||||
{formatNumber(tier.amount)}
|
||||
</div>
|
||||
</div>
|
||||
<div className="shrink-0 rounded-full border border-[rgba(121,219,229,0.24)] bg-[rgba(10,39,52,0.72)] px-design-5 py-[2px] text-design-8 leading-none text-[#7CDDE7]">
|
||||
<div className="shrink-0 rounded-full border border-[rgba(121,219,229,0.24)] bg-[rgba(10,39,52,0.72)] px-design-4 py-[2px] text-design-7 leading-none text-[#7CDDE7]">
|
||||
{tier.currency ?? 'FIAT'}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div className="mt-design-7 rounded-[calc(var(--design-unit)*5)] bg-[rgba(255,226,41,0.06)] px-design-6 py-design-5">
|
||||
<div className="flex items-center justify-between gap-design-5 text-design-9">
|
||||
<div className="mt-design-4 rounded-[calc(var(--design-unit)*5)] bg-[rgba(255,226,41,0.06)] px-design-5 py-design-3">
|
||||
<div className="flex items-center justify-between gap-design-4 text-design-8">
|
||||
<span className="text-[#74B8C0]">
|
||||
{t('gameDesktop.topup.tier.bonus')}
|
||||
</span>
|
||||
|
||||
@@ -320,9 +320,12 @@ function MobileWithdraw() {
|
||||
if (
|
||||
vm.amountRequiredError ||
|
||||
vm.amountExceedsBalance ||
|
||||
vm.amountBelowPaymentMinimum ||
|
||||
vm.amountAbovePaymentMaximum ||
|
||||
vm.holderNameError ||
|
||||
vm.bankAccountError ||
|
||||
vm.paymentChannelCodeError ||
|
||||
vm.paymentTypeError ||
|
||||
vm.bankCodeError ||
|
||||
vm.receiverEmailError ||
|
||||
vm.receiverPhoneError
|
||||
@@ -335,6 +338,7 @@ function MobileWithdraw() {
|
||||
bank_code: vm.bankCode,
|
||||
channel_code: vm.paymentChannelCode,
|
||||
idempotency_key: String(Date.now()),
|
||||
payment_type: vm.paymentType,
|
||||
receive_account: vm.bankAccount.trim(),
|
||||
receiver_email: vm.receiverEmail.trim(),
|
||||
receiver_mobile: vm.receiverPhone.trim(),
|
||||
@@ -383,6 +387,20 @@ function MobileWithdraw() {
|
||||
{t('gameDesktop.withdraw.errors.amountExceedsBalance')}
|
||||
</div>
|
||||
) : null}
|
||||
{hasSubmitted && vm.amountBelowPaymentMinimum ? (
|
||||
<div className="pl-design-2 text-design-10 text-[#F44F4F]">
|
||||
{t('gameDesktop.withdraw.errors.amountBelowPaymentMinimum', {
|
||||
amount: vm.paymentMinimumAmountLabel,
|
||||
})}
|
||||
</div>
|
||||
) : null}
|
||||
{hasSubmitted && vm.amountAbovePaymentMaximum ? (
|
||||
<div className="pl-design-2 text-design-10 text-[#F44F4F]">
|
||||
{t('gameDesktop.withdraw.errors.amountAbovePaymentMaximum', {
|
||||
amount: vm.paymentMaximumAmountLabel,
|
||||
})}
|
||||
</div>
|
||||
) : null}
|
||||
</WithdrawField>
|
||||
|
||||
<div className="grid min-w-0 grid-cols-3 gap-design-5">
|
||||
@@ -399,31 +417,6 @@ function MobileWithdraw() {
|
||||
))}
|
||||
</div>
|
||||
|
||||
<WithdrawField
|
||||
label={t('gameDesktop.withdraw.fields.currencyType')}
|
||||
>
|
||||
<Select
|
||||
value={vm.currencyCode}
|
||||
onValueChange={vm.setCurrencyCode}
|
||||
>
|
||||
<SelectTrigger
|
||||
className="h-design-30 w-full rounded-[calc(var(--design-unit)*5)] border-[rgba(103,227,239,0.3)] bg-[linear-gradient(180deg,rgba(12,61,72,0.82),rgba(6,28,39,0.9))] px-design-8 text-left !text-design-12 text-[#A5EDF4] shadow-[inset_0_0_calc(var(--design-unit)*10)_rgba(94,237,255,0.08)] data-[size=default]:h-design-30 data-[placeholder]:text-[rgba(109,170,176,0.55)] [&_svg]:h-design-14 [&_svg]:w-design-14 [&_svg]:text-[#79DFEA]"
|
||||
aria-label={t('gameDesktop.withdraw.currencySelection')}
|
||||
>
|
||||
<SelectValue
|
||||
placeholder={t('gameDesktop.withdraw.selectCurrency')}
|
||||
/>
|
||||
</SelectTrigger>
|
||||
<SelectContent>
|
||||
{vm.config.currencies.map((option: FinanceCurrencyConfig) => (
|
||||
<SelectItem key={option.code} value={option.code}>
|
||||
{option.label}
|
||||
</SelectItem>
|
||||
))}
|
||||
</SelectContent>
|
||||
</Select>
|
||||
</WithdrawField>
|
||||
|
||||
<WithdrawField
|
||||
label={t('gameDesktop.withdraw.fields.paymentChannel')}
|
||||
>
|
||||
@@ -453,6 +446,72 @@ function MobileWithdraw() {
|
||||
</div>
|
||||
</WithdrawField>
|
||||
|
||||
<WithdrawField label={t('gameDesktop.withdraw.fields.paymentType')}>
|
||||
<div className="flex w-full flex-col gap-design-3">
|
||||
<Select
|
||||
value={vm.paymentType || undefined}
|
||||
onValueChange={vm.setPaymentType}
|
||||
disabled={vm.availablePaymentMethods.length === 0}
|
||||
>
|
||||
<SelectTrigger
|
||||
className={cn(
|
||||
'h-design-30 w-full rounded-[calc(var(--design-unit)*5)] bg-[linear-gradient(180deg,rgba(12,61,72,0.82),rgba(6,28,39,0.9))] px-design-8 text-left !text-design-12 text-[#A5EDF4] shadow-[inset_0_0_calc(var(--design-unit)*10)_rgba(94,237,255,0.08)] data-[size=default]:h-design-30 data-[placeholder]:text-[rgba(109,170,176,0.55)] [&_svg]:h-design-14 [&_svg]:w-design-14 [&_svg]:text-[#79DFEA]',
|
||||
hasSubmitted && vm.paymentTypeError
|
||||
? 'border-[#B93F44]'
|
||||
: 'border-[rgba(103,227,239,0.3)]',
|
||||
)}
|
||||
aria-label={t('gameDesktop.withdraw.fields.paymentType')}
|
||||
>
|
||||
<SelectValue
|
||||
placeholder={t(
|
||||
'gameDesktop.withdraw.placeholders.paymentType',
|
||||
)}
|
||||
/>
|
||||
</SelectTrigger>
|
||||
<SelectContent>
|
||||
{vm.availablePaymentMethods.map((method) => (
|
||||
<SelectItem key={method.code} value={method.code}>
|
||||
{method.name}
|
||||
</SelectItem>
|
||||
))}
|
||||
</SelectContent>
|
||||
</Select>
|
||||
{hasSubmitted && vm.paymentTypeError ? (
|
||||
<div className="pl-design-2 text-design-10 text-[#F44F4F]">
|
||||
{t('gameDesktop.withdraw.errors.paymentTypeRequired')}
|
||||
</div>
|
||||
) : null}
|
||||
</div>
|
||||
</WithdrawField>
|
||||
|
||||
<WithdrawField
|
||||
label={t('gameDesktop.withdraw.fields.currencyType')}
|
||||
>
|
||||
<Select
|
||||
value={vm.currencyCode || undefined}
|
||||
onValueChange={vm.setCurrencyCode}
|
||||
disabled={vm.availableCurrencies.length === 0}
|
||||
>
|
||||
<SelectTrigger
|
||||
className="h-design-30 w-full rounded-[calc(var(--design-unit)*5)] border-[rgba(103,227,239,0.3)] bg-[linear-gradient(180deg,rgba(12,61,72,0.82),rgba(6,28,39,0.9))] px-design-8 text-left !text-design-12 text-[#A5EDF4] shadow-[inset_0_0_calc(var(--design-unit)*10)_rgba(94,237,255,0.08)] data-[size=default]:h-design-30 data-[placeholder]:text-[rgba(109,170,176,0.55)] [&_svg]:h-design-14 [&_svg]:w-design-14 [&_svg]:text-[#79DFEA]"
|
||||
aria-label={t('gameDesktop.withdraw.currencySelection')}
|
||||
>
|
||||
<SelectValue
|
||||
placeholder={t('gameDesktop.withdraw.selectCurrency')}
|
||||
/>
|
||||
</SelectTrigger>
|
||||
<SelectContent>
|
||||
{vm.availableCurrencies.map(
|
||||
(option: FinanceCurrencyConfig) => (
|
||||
<SelectItem key={option.code} value={option.code}>
|
||||
{option.label}
|
||||
</SelectItem>
|
||||
),
|
||||
)}
|
||||
</SelectContent>
|
||||
</Select>
|
||||
</WithdrawField>
|
||||
|
||||
<WithdrawField label={t('gameDesktop.withdraw.fields.bankCode')}>
|
||||
<div className="flex w-full flex-col gap-design-3">
|
||||
<Select
|
||||
|
||||
@@ -26,6 +26,20 @@ function getChannelCurrencyCodes(channel: FinancePayChannel | null) {
|
||||
return channel?.currencyCodes ?? []
|
||||
}
|
||||
|
||||
function toOptionalNumber(value: string) {
|
||||
if (value.trim().length === 0) {
|
||||
return null
|
||||
}
|
||||
|
||||
const numericValue = Number(value)
|
||||
|
||||
return Number.isFinite(numericValue) ? numericValue : null
|
||||
}
|
||||
|
||||
function getTierPaymentAmount(tier: DepositTierItem) {
|
||||
return tier.payAmount > 0 ? tier.payAmount : tier.amount
|
||||
}
|
||||
|
||||
export function useTopupVm() {
|
||||
const depositWithdrawConfigQuery = useDepositWithdrawConfig()
|
||||
const tierListQuery = useDepositTierList()
|
||||
@@ -74,9 +88,16 @@ export function useTopupVm() {
|
||||
const banks = useMemo(
|
||||
() =>
|
||||
(selectedPayChannel?.depositBanks ?? []).filter(
|
||||
(bank) => bank.currencyCode === selectedCurrencyCode,
|
||||
(bank) =>
|
||||
bank.currencyCode === selectedCurrencyCode &&
|
||||
Boolean(selectedPaymentMethod?.gatewayCode) &&
|
||||
bank.paymentTypes.includes(selectedPaymentMethod.gatewayCode),
|
||||
),
|
||||
[selectedCurrencyCode, selectedPayChannel?.depositBanks],
|
||||
[
|
||||
selectedCurrencyCode,
|
||||
selectedPayChannel?.depositBanks,
|
||||
selectedPaymentMethod?.gatewayCode,
|
||||
],
|
||||
)
|
||||
const [selectedBankCode, setSelectedBankCode] = useState(
|
||||
() => banks[0]?.code ?? '',
|
||||
@@ -86,20 +107,41 @@ export function useTopupVm() {
|
||||
banks.find((bank) => bank.code === selectedBankCode) ?? banks[0] ?? null,
|
||||
[banks, selectedBankCode],
|
||||
)
|
||||
const selectedPaymentMinimumAmount = selectedPaymentMethod
|
||||
? toOptionalNumber(selectedPaymentMethod.minimumAmount)
|
||||
: null
|
||||
const selectedPaymentMaximumAmount = selectedPaymentMethod
|
||||
? toOptionalNumber(selectedPaymentMethod.maximumAmount)
|
||||
: null
|
||||
const tiers = tierListQuery.data ?? []
|
||||
const filteredTiers = useMemo(
|
||||
() =>
|
||||
tiers.filter((tier) => {
|
||||
const tierChannelCode = getTierChannelCode(tier)
|
||||
const tierPaymentAmount = getTierPaymentAmount(tier)
|
||||
const matchesChannel =
|
||||
selectedPayChannel === null ||
|
||||
tierChannelCode === selectedPayChannel.code
|
||||
const matchesCurrency =
|
||||
!selectedCurrencyCode || tier.currency === selectedCurrencyCode
|
||||
const matchesMinimum =
|
||||
selectedPaymentMinimumAmount === null ||
|
||||
tierPaymentAmount >= selectedPaymentMinimumAmount
|
||||
const matchesMaximum =
|
||||
selectedPaymentMaximumAmount === null ||
|
||||
tierPaymentAmount <= selectedPaymentMaximumAmount
|
||||
|
||||
return matchesChannel && matchesCurrency
|
||||
return (
|
||||
matchesChannel && matchesCurrency && matchesMinimum && matchesMaximum
|
||||
)
|
||||
}),
|
||||
[selectedCurrencyCode, selectedPayChannel, tiers],
|
||||
[
|
||||
selectedCurrencyCode,
|
||||
selectedPayChannel,
|
||||
selectedPaymentMaximumAmount,
|
||||
selectedPaymentMinimumAmount,
|
||||
tiers,
|
||||
],
|
||||
)
|
||||
|
||||
useEffect(() => {
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
import { useCallback, useEffect, useMemo, useState } from 'react'
|
||||
import { useTranslation } from 'react-i18next'
|
||||
import {
|
||||
DEFAULT_CURRENCY_CODE,
|
||||
DEFAULT_WITHDRAW_CONFIG,
|
||||
QUICK_FIAT_AMOUNTS,
|
||||
WITHDRAW_EMAIL_PATTERN,
|
||||
@@ -41,14 +40,33 @@ function getCurrencyExchangeRate(
|
||||
return configuredRate && configuredRate > 0 ? configuredRate : fallbackRate
|
||||
}
|
||||
|
||||
function getActiveCurrencyCode(
|
||||
currencies: DepositWithdrawConfig['currencies'],
|
||||
selectedCurrencyCode: string,
|
||||
function toOptionalNumber(value: string) {
|
||||
if (value.trim().length === 0) {
|
||||
return null
|
||||
}
|
||||
|
||||
const numericValue = Number(value)
|
||||
|
||||
return Number.isFinite(numericValue) ? numericValue : null
|
||||
}
|
||||
|
||||
function getChannelCurrencies(
|
||||
config: DepositWithdrawConfig,
|
||||
channel: DepositWithdrawConfig['withdraw']['payChannels'][number] | null,
|
||||
) {
|
||||
return (
|
||||
currencies.find((item) => item.code === selectedCurrencyCode) ??
|
||||
currencies[0] ??
|
||||
DEFAULT_WITHDRAW_CONFIG.currencies[0]
|
||||
if (!channel || channel.currencyCodes.length === 0) {
|
||||
return []
|
||||
}
|
||||
|
||||
const currencyMap = new Map(
|
||||
config.currencies.map((currency) => [currency.code, currency]),
|
||||
)
|
||||
|
||||
return channel.currencyCodes
|
||||
.map((currencyCode) => currencyMap.get(currencyCode))
|
||||
.filter(
|
||||
(currency): currency is DepositWithdrawConfig['currencies'][number] =>
|
||||
Boolean(currency),
|
||||
)
|
||||
}
|
||||
|
||||
@@ -105,53 +123,73 @@ export function useWithdrawVm() {
|
||||
|
||||
const [amount, setAmountState] = useState(0)
|
||||
const [hasInitializedAmount, setHasInitializedAmount] = useState(false)
|
||||
const [currencyCode, setCurrencyCode] = useState(
|
||||
config.currencies[0]?.code ?? DEFAULT_CURRENCY_CODE,
|
||||
)
|
||||
const [currencyCode, setCurrencyCode] = useState('')
|
||||
const [paymentChannelCode, setPaymentChannelCode] = useState('')
|
||||
const [paymentType, setPaymentType] = useState('')
|
||||
const [bankCode, setBankCode] = useState('')
|
||||
const [holderName, setHolderName] = useState('')
|
||||
const [bankAccount, setBankAccount] = useState('')
|
||||
const [receiverEmail, setReceiverEmail] = useState('')
|
||||
const [receiverPhone, setReceiverPhone] = useState('')
|
||||
|
||||
const selectedCurrency = getActiveCurrencyCode(
|
||||
config.currencies,
|
||||
currencyCode,
|
||||
)
|
||||
const selectedRate = selectedCurrency.withdrawCoinsPerFiatValue || 1
|
||||
const selectedExchangeRate = getCurrencyExchangeRate(
|
||||
config,
|
||||
selectedCurrency.code,
|
||||
selectedRate,
|
||||
)
|
||||
const sortedPayChannels = useMemo(
|
||||
() =>
|
||||
[
|
||||
...(config.withdraw.payChannels.length > 0
|
||||
? config.withdraw.payChannels
|
||||
: config.payChannels),
|
||||
]
|
||||
[...config.withdraw.payChannels]
|
||||
.filter((channel) => channel.status === 1)
|
||||
.sort((left, right) => left.sort - right.sort),
|
||||
[config.payChannels, config.withdraw.payChannels],
|
||||
)
|
||||
const sortedBanks = useMemo(
|
||||
() =>
|
||||
[...config.withdraw.banks]
|
||||
.filter(
|
||||
(bank) =>
|
||||
bank.status === 1 &&
|
||||
(!bank.currencyCode || bank.currencyCode === selectedCurrency.code),
|
||||
)
|
||||
.sort((left, right) => left.sort - right.sort),
|
||||
[config.withdraw.banks, selectedCurrency.code],
|
||||
[config.withdraw.payChannels],
|
||||
)
|
||||
const availableBalance = Number(currentUser?.coin ?? 0)
|
||||
const maxWithdrawAmount = Math.max(0, Math.floor(availableBalance))
|
||||
const selectedPaymentChannel =
|
||||
sortedPayChannels.find((channel) => channel.code === paymentChannelCode) ??
|
||||
null
|
||||
const availablePaymentMethods = useMemo(
|
||||
() => selectedPaymentChannel?.methods ?? [],
|
||||
[selectedPaymentChannel],
|
||||
)
|
||||
const selectedPaymentMethod =
|
||||
availablePaymentMethods.find((method) => method.code === paymentType) ??
|
||||
null
|
||||
const availableCurrencies = useMemo(
|
||||
() => getChannelCurrencies(config, selectedPaymentChannel),
|
||||
[config, selectedPaymentChannel],
|
||||
)
|
||||
const selectedCurrency =
|
||||
availableCurrencies.find((item) => item.code === currencyCode) ?? null
|
||||
const selectedCurrencyCode = selectedCurrency?.code ?? ''
|
||||
const selectedRate = selectedCurrency?.withdrawCoinsPerFiatValue ?? 0
|
||||
const selectedExchangeRate = selectedCurrency
|
||||
? getCurrencyExchangeRate(config, selectedCurrency.code, selectedRate || 1)
|
||||
: 0
|
||||
const convertedFiatAmount =
|
||||
selectedExchangeRate > 0 ? amount * selectedExchangeRate : 0
|
||||
const selectedPaymentMinimumAmount = selectedPaymentMethod
|
||||
? toOptionalNumber(selectedPaymentMethod.minimumAmount)
|
||||
: null
|
||||
const selectedPaymentMaximumAmount = selectedPaymentMethod
|
||||
? toOptionalNumber(selectedPaymentMethod.maximumAmount)
|
||||
: null
|
||||
const amountBelowPaymentMinimum =
|
||||
amount > 0 &&
|
||||
selectedPaymentMinimumAmount !== null &&
|
||||
convertedFiatAmount < selectedPaymentMinimumAmount
|
||||
const amountAbovePaymentMaximum =
|
||||
amount > 0 &&
|
||||
selectedPaymentMaximumAmount !== null &&
|
||||
convertedFiatAmount > selectedPaymentMaximumAmount
|
||||
const sortedBanks = useMemo(
|
||||
() =>
|
||||
[...config.withdraw.banks]
|
||||
.filter(
|
||||
(bank) =>
|
||||
bank.status === 1 &&
|
||||
selectedCurrencyCode.length > 0 &&
|
||||
(!bank.currencyCode || bank.currencyCode === selectedCurrencyCode),
|
||||
)
|
||||
.sort((left, right) => left.sort - right.sort),
|
||||
[config.withdraw.banks, selectedCurrencyCode],
|
||||
)
|
||||
const setAmount = useCallback(
|
||||
(nextAmount: number) => {
|
||||
setAmountState(
|
||||
@@ -161,20 +199,6 @@ export function useWithdrawVm() {
|
||||
[maxWithdrawAmount],
|
||||
)
|
||||
|
||||
useEffect(() => {
|
||||
if (
|
||||
selectedCurrency &&
|
||||
selectedCurrency.code !== currencyCode &&
|
||||
config.currencies.some((item) => item.code === currencyCode)
|
||||
) {
|
||||
return
|
||||
}
|
||||
|
||||
if (selectedCurrency && selectedCurrency.code !== currencyCode) {
|
||||
setCurrencyCode(selectedCurrency.code)
|
||||
}
|
||||
}, [config.currencies, currencyCode, selectedCurrency])
|
||||
|
||||
useEffect(() => {
|
||||
const firstAvailablePayChannel = sortedPayChannels[0]
|
||||
|
||||
@@ -195,6 +219,42 @@ export function useWithdrawVm() {
|
||||
}
|
||||
}, [paymentChannelCode, sortedPayChannels])
|
||||
|
||||
useEffect(() => {
|
||||
if (availablePaymentMethods.length === 0) {
|
||||
if (paymentType) {
|
||||
setPaymentType('')
|
||||
}
|
||||
|
||||
return
|
||||
}
|
||||
|
||||
const hasSelectedAvailablePaymentMethod = availablePaymentMethods.some(
|
||||
(method) => method.code === paymentType,
|
||||
)
|
||||
|
||||
if (!hasSelectedAvailablePaymentMethod) {
|
||||
setPaymentType(availablePaymentMethods[0].code)
|
||||
}
|
||||
}, [availablePaymentMethods, paymentType])
|
||||
|
||||
useEffect(() => {
|
||||
if (availableCurrencies.length === 0) {
|
||||
if (currencyCode) {
|
||||
setCurrencyCode('')
|
||||
}
|
||||
|
||||
return
|
||||
}
|
||||
|
||||
const hasSelectedAvailableCurrency = availableCurrencies.some(
|
||||
(currency) => currency.code === currencyCode,
|
||||
)
|
||||
|
||||
if (!hasSelectedAvailableCurrency) {
|
||||
setCurrencyCode(availableCurrencies[0].code)
|
||||
}
|
||||
}, [availableCurrencies, currencyCode])
|
||||
|
||||
useEffect(() => {
|
||||
if (sortedBanks.length === 0) {
|
||||
if (bankCode) {
|
||||
@@ -229,6 +289,10 @@ export function useWithdrawVm() {
|
||||
}, [amount, maxWithdrawAmount, setAmount])
|
||||
|
||||
const quickAmounts = useMemo(() => {
|
||||
if (!selectedCurrency || selectedExchangeRate <= 0) {
|
||||
return []
|
||||
}
|
||||
|
||||
return QUICK_FIAT_AMOUNTS.map((fiatAmount) => ({
|
||||
diamonds: Math.min(
|
||||
maxWithdrawAmount,
|
||||
@@ -237,26 +301,33 @@ export function useWithdrawVm() {
|
||||
id: `quick-${selectedCurrency.code}-${fiatAmount}`,
|
||||
preview: `${selectedCurrency.code} ${formatNumber(locale, fiatAmount)}`,
|
||||
}))
|
||||
}, [locale, maxWithdrawAmount, selectedCurrency.code, selectedExchangeRate])
|
||||
}, [locale, maxWithdrawAmount, selectedCurrency, selectedExchangeRate])
|
||||
|
||||
const resetForm = useCallback(() => {
|
||||
const nextCurrencyCode = config.currencies[0]?.code ?? DEFAULT_CURRENCY_CODE
|
||||
const nextCurrency = getActiveCurrencyCode(
|
||||
config.currencies,
|
||||
nextCurrencyCode,
|
||||
)
|
||||
const nextExchangeRate = getCurrencyExchangeRate(
|
||||
const nextPaymentChannelCode = sortedPayChannels[0]?.code ?? ''
|
||||
const nextPaymentChannel =
|
||||
sortedPayChannels.find(
|
||||
(channel) => channel.code === nextPaymentChannelCode,
|
||||
) ?? null
|
||||
const nextCurrency =
|
||||
getChannelCurrencies(config, nextPaymentChannel)[0] ?? null
|
||||
const nextExchangeRate = nextCurrency
|
||||
? getCurrencyExchangeRate(
|
||||
config,
|
||||
nextCurrency.code,
|
||||
nextCurrency.withdrawCoinsPerFiatValue || 1,
|
||||
)
|
||||
: 0
|
||||
|
||||
setAmountState(
|
||||
getInitialWithdrawAmount(nextExchangeRate, maxWithdrawAmount),
|
||||
nextExchangeRate > 0
|
||||
? getInitialWithdrawAmount(nextExchangeRate, maxWithdrawAmount)
|
||||
: 0,
|
||||
)
|
||||
setHasInitializedAmount(true)
|
||||
setCurrencyCode(nextCurrencyCode)
|
||||
setPaymentChannelCode(sortedPayChannels[0]?.code ?? '')
|
||||
setCurrencyCode(nextCurrency?.code ?? '')
|
||||
setPaymentChannelCode(nextPaymentChannelCode)
|
||||
setPaymentType(nextPaymentChannel?.methods[0]?.code ?? '')
|
||||
setBankCode('')
|
||||
setHolderName('')
|
||||
setBankAccount('')
|
||||
@@ -264,37 +335,41 @@ export function useWithdrawVm() {
|
||||
setReceiverPhone('')
|
||||
}, [config, maxWithdrawAmount, sortedPayChannels])
|
||||
|
||||
const selectedCurrencyPreview = useMemo(
|
||||
() => ({
|
||||
currencyCode: selectedCurrency.code,
|
||||
currencyLabel: selectedCurrency.label,
|
||||
const selectedCurrencyPreview = useMemo(() => {
|
||||
const previewCurrencyCode = selectedCurrency?.code ?? '--'
|
||||
|
||||
return {
|
||||
currencyCode: selectedCurrency?.code ?? '',
|
||||
currencyLabel: selectedCurrency?.label ?? '',
|
||||
exchangeRateLabel: t('gameDesktop.withdraw.preview.exchangeRate', {
|
||||
currency: selectedCurrency.code,
|
||||
currency: previewCurrencyCode,
|
||||
}),
|
||||
exchangeRateValue: `1:${formatNumber(locale, selectedExchangeRate)}`,
|
||||
exchangeRateValue:
|
||||
selectedCurrency && selectedExchangeRate > 0
|
||||
? `1:${formatNumber(locale, selectedExchangeRate)}`
|
||||
: '--',
|
||||
convertibleLabel: t('gameDesktop.withdraw.preview.convertible', {
|
||||
currency: selectedCurrency.code,
|
||||
currency: previewCurrencyCode,
|
||||
}),
|
||||
convertibleValue: `${formatNumber(
|
||||
convertibleValue:
|
||||
selectedCurrency && selectedExchangeRate > 0
|
||||
? `${formatNumber(
|
||||
locale,
|
||||
selectedExchangeRate > 0 ? amount * selectedExchangeRate : 0,
|
||||
)} ${selectedCurrency.code}`,
|
||||
}),
|
||||
[
|
||||
amount,
|
||||
locale,
|
||||
selectedCurrency.code,
|
||||
selectedCurrency.label,
|
||||
selectedExchangeRate,
|
||||
t,
|
||||
],
|
||||
)
|
||||
amount * selectedExchangeRate,
|
||||
)} ${selectedCurrency.code}`
|
||||
: '--',
|
||||
}
|
||||
}, [amount, locale, selectedCurrency, selectedExchangeRate, t])
|
||||
|
||||
return {
|
||||
amount,
|
||||
amountAbovePaymentMaximum,
|
||||
amountBelowPaymentMinimum,
|
||||
amountExceedsBalance: amount > maxWithdrawAmount,
|
||||
amountRequiredError: amount <= 0,
|
||||
availableBalance,
|
||||
availableCurrencies,
|
||||
availablePaymentMethods,
|
||||
bankAccount,
|
||||
bankAccountError: bankAccount.trim().length === 0,
|
||||
bankCode,
|
||||
@@ -308,6 +383,20 @@ export function useWithdrawVm() {
|
||||
maxWithdrawAmount,
|
||||
paymentChannelCode,
|
||||
paymentChannelCodeError: paymentChannelCode.trim().length === 0,
|
||||
paymentMaximumAmountLabel:
|
||||
selectedPaymentMaximumAmount !== null && selectedCurrency
|
||||
? `${formatNumber(locale, selectedPaymentMaximumAmount)} ${
|
||||
selectedCurrency.code
|
||||
}`
|
||||
: '',
|
||||
paymentMinimumAmountLabel:
|
||||
selectedPaymentMinimumAmount !== null && selectedCurrency
|
||||
? `${formatNumber(locale, selectedPaymentMinimumAmount)} ${
|
||||
selectedCurrency.code
|
||||
}`
|
||||
: '',
|
||||
paymentType,
|
||||
paymentTypeError: paymentType.trim().length === 0,
|
||||
quickAmounts,
|
||||
receiverEmail,
|
||||
receiverEmailError: !isValidEmail(receiverEmail),
|
||||
@@ -316,6 +405,7 @@ export function useWithdrawVm() {
|
||||
selectedCurrency,
|
||||
selectedCurrencyPreview,
|
||||
selectedPaymentChannel,
|
||||
selectedPaymentMethod,
|
||||
selectedRate,
|
||||
resetForm,
|
||||
setAmount,
|
||||
@@ -324,6 +414,7 @@ export function useWithdrawVm() {
|
||||
setCurrencyCode,
|
||||
setHolderName,
|
||||
setPaymentChannelCode,
|
||||
setPaymentType,
|
||||
setReceiverEmail,
|
||||
setReceiverPhone,
|
||||
sortedBanks,
|
||||
|
||||
@@ -214,8 +214,134 @@ export default {
|
||||
},
|
||||
rules: {
|
||||
title: 'Game Rules',
|
||||
content:
|
||||
'1. Basic Gameplay\n1) After each round starts, players may select one or more numbers on the board to place bets.\n2) After betting closes, the system enters the draw phase and settles rewards based on the round result.\n3) Different chip levels correspond to different bet amounts, subject to the current table limits and configuration.\n\n2. Betting Notes\n1) Bets can only be submitted during the betting phase.\n2) Before confirming, please verify your selected numbers, chip amount, and total bet.\n3) If your balance is insufficient, the round is no longer valid, or betting has closed, the request will be rejected.\n\n3. Draw and Settlement\n1) The final displayed draw result is the valid outcome.\n2) Hit rules, odds, payouts, and streak performance are settled in real time according to the current room configuration.\n3) In case of network fluctuation, please refer to the re-synced official data.\n\n4. Additional Notes\n1) Please manage your play time responsibly.\n2) Any abnormal behavior intended to interfere with the system, exploit rewards, or bypass risk control is strictly prohibited.\n3) The platform reserves the right to review orders, payouts, and account status in exceptional situations.',
|
||||
content: [
|
||||
'## 36 Zihua · Gameplay Guide',
|
||||
'',
|
||||
'### 1. Game Introduction',
|
||||
'',
|
||||
'**36 Zihua** is a fast-paced number guessing game with **one round every 30 seconds**. Each round, the system draws **one winning number** from **36 symbols** (Rat, Ox, Tiger… Azure Dragon, White Tiger, Vermilion Bird, Black Tortoise, and more). During the betting window, players pick numbers and place bets. Guess correctly to win prizes. Win consecutive rounds to increase your rewards — **10 wins in a row** can earn you the **Million Jackpot**.',
|
||||
'',
|
||||
'---',
|
||||
'',
|
||||
'### 2. How to Play',
|
||||
'',
|
||||
'Each round lasts about **30 seconds**:',
|
||||
'',
|
||||
'**Step 1 — Betting window (0–20 seconds)**',
|
||||
'Pick numbers on the 36-grid (up to **5 numbers** by default), choose a chip amount (e.g. 💎1, 5, 10, 25, 50, 100), then confirm your bet. Your balance is deducted and the bet is placed.',
|
||||
'',
|
||||
'**Step 2 — Lock (at 20 seconds)**',
|
||||
'No more bets are accepted. Any bet placed after lock is invalid.',
|
||||
'',
|
||||
'**Step 3 — Draw & settlement (20–30 seconds)**',
|
||||
'The winning number is announced and prizes are paid according to the reward rules.',
|
||||
'',
|
||||
'**Step 4 — Next round**',
|
||||
'After settlement, the next round begins automatically.',
|
||||
'',
|
||||
'---',
|
||||
'',
|
||||
'### 3. Winning Rules',
|
||||
'',
|
||||
'- Only **one** winning number is drawn each round (from 1 to 36).',
|
||||
'- You win if **your selected numbers include the winning number**.',
|
||||
'- If you don’t match, you receive no prize for that round.',
|
||||
'',
|
||||
'**Hit stake (amount on the winning number):**',
|
||||
'- When every selected number has the same stake:',
|
||||
' **Hit stake = total bet amount ÷ number of selected numbers**',
|
||||
'- Example: 5 numbers, total bet 💎50 → 💎10 per number. If the winning number is among your picks, 💎10 is used for prize calculation.',
|
||||
'',
|
||||
'---',
|
||||
'',
|
||||
'### 4. Reward Types',
|
||||
'',
|
||||
'Streak rewards come in **two types**. Each tier uses **one type only** — they are **not combined**:',
|
||||
'',
|
||||
'#### Type A — Coefficient Reward',
|
||||
'',
|
||||
'Prize is calculated using an odds multiplier:',
|
||||
'',
|
||||
'```',
|
||||
'Prize = hit stake × odds factor',
|
||||
'```',
|
||||
'',
|
||||
'#### Type B — Fixed Reward',
|
||||
'',
|
||||
'You receive a **fixed amount** set in the configuration.',
|
||||
'**It does not depend on your bet size and does not use an odds multiplier.**',
|
||||
'',
|
||||
'```',
|
||||
'Prize = fixed amount',
|
||||
'```',
|
||||
'',
|
||||
'**Comparison (Tier 10 example):**',
|
||||
'',
|
||||
'| Reward Type | Hit Stake | Prize |',
|
||||
'|:---:|:---:|:---:|',
|
||||
'| Coefficient (1:330) | 💎50 | 💎50 × 330 = **16,500** |',
|
||||
'| Fixed reward | Any | **1,000,000** (configured value) |',
|
||||
'',
|
||||
'---',
|
||||
'',
|
||||
'### 5. Win Streak Rules',
|
||||
'',
|
||||
'When you **win consecutive rounds**, rewards increase by streak tier. By default, **coefficient rewards** apply with escalating odds:',
|
||||
'',
|
||||
'| Streak | Odds | Factor |',
|
||||
'|:---:|:---:|:---:|',
|
||||
'| 1st win | 1:33 | 33 |',
|
||||
'| 2 in a row | 1:66 | 66 |',
|
||||
'| 3 in a row | 1:99 | 99 |',
|
||||
'| 4 in a row | 1:132 | 132 |',
|
||||
'| 5 in a row | 1:165 | 165 |',
|
||||
'| 6 in a row | 1:198 | 198 |',
|
||||
'| 7 in a row | 1:231 | 231 |',
|
||||
'| 8 in a row | 1:264 | 264 |',
|
||||
'| 9 in a row | 1:297 | 297 |',
|
||||
'| 10 in a row | 1:330 | 330 |',
|
||||
'',
|
||||
'**Streak rules:**',
|
||||
'',
|
||||
'- Rewards are based on your **streak at the time you place the bet**: if you already have N consecutive wins, a win this round pays at tier **(N+1)**.',
|
||||
'- **Any losing round** resets your streak to zero — you start again from tier 1.',
|
||||
'- **Skipping a round** (no bet placed) during an active streak also **resets your streak to zero**.',
|
||||
'',
|
||||
'**Examples (coefficient reward):**',
|
||||
'',
|
||||
'| Scenario | Hit Stake | Streak Tier | Odds | Prize |',
|
||||
'|:---:|:---:|:---:|:---:|:---:|',
|
||||
'| First win | 💎10 | 1st | 1:33 | **330** |',
|
||||
'| 3-win streak | 💎50 | 3rd | 1:99 | **4,950** |',
|
||||
'| 10-win streak | 💎50 | 10th | 1:330 | **16,500** |',
|
||||
'',
|
||||
'---',
|
||||
'',
|
||||
'### 6. Million Jackpot',
|
||||
'',
|
||||
'When a player **bets and wins 10 consecutive rounds**, and each bet during the streak is **at least 💎50**, the Million Jackpot is triggered.',
|
||||
'',
|
||||
'**Requirements:**',
|
||||
'',
|
||||
'1. **10 consecutive rounds** with a bet placed and won in each;',
|
||||
'2. **Every round** in the streak must have a stake of **at least 💎50**;',
|
||||
'3. If any round in the streak is below 💎50, you only receive the regular streak reward — **the Million Jackpot does not apply**.',
|
||||
'',
|
||||
'**How it is paid (depends on backend configuration):**',
|
||||
'',
|
||||
'- **Fixed reward**: If tier 10 is set as a fixed amount, 10 consecutive wins pay **💎1,000,000** directly.',
|
||||
'- **Coefficient reward**: If tier 10 uses coefficient odds, you first receive the regular prize at **1:330**, plus any additional jackpot per campaign rules.',
|
||||
'',
|
||||
'**Example — fixed reward at tier 10 (💎1,000,000), hit stake 💎50 each round:**',
|
||||
'',
|
||||
'- 10 wins in a row → **💎1,000,000**',
|
||||
'- Streak resets to **zero** after the jackpot is awarded',
|
||||
'',
|
||||
'**Example — coefficient reward at tier 10 (1:330), hit stake 💎50:**',
|
||||
'',
|
||||
'- Tier 10 regular prize: 💎50 × 330 = **💎16,500**',
|
||||
'- If a separate Jackpot campaign applies, an additional million-prize may be added on top',
|
||||
].join('\n'),
|
||||
confirm: 'Understood',
|
||||
},
|
||||
procedures: {
|
||||
@@ -647,6 +773,7 @@ export default {
|
||||
diamondAmount: 'Withdrawal Diamond Amount',
|
||||
currencyType: TEXT_CURRENCY_TYPE,
|
||||
paymentChannel: TEXT_PAYMENT_CHANNEL,
|
||||
paymentType: 'Payment Type',
|
||||
bankCode: 'Bank Code',
|
||||
cardHolderName: 'Card Holder Name',
|
||||
bankAccountNumber: 'Bank Account Number',
|
||||
@@ -655,6 +782,7 @@ export default {
|
||||
},
|
||||
placeholders: {
|
||||
bankCode: 'Select bank code',
|
||||
paymentType: 'Select payment type',
|
||||
cardHolderName: 'Enter card holder name',
|
||||
bankAccountNumber: 'Enter bank account number',
|
||||
receiverEmail: 'Enter receiver email',
|
||||
@@ -664,12 +792,17 @@ export default {
|
||||
amountRequired: 'Please enter the withdrawal diamond amount.',
|
||||
amountBelowMinimum:
|
||||
'The withdrawal amount cannot be lower than the minimum amount ({{currency}} {{amount}} / {{diamonds}} diamonds).',
|
||||
amountBelowPaymentMinimum:
|
||||
'The withdrawal amount cannot be lower than this payment type minimum ({{amount}}).',
|
||||
amountAbovePaymentMaximum:
|
||||
'The withdrawal amount cannot exceed this payment type maximum ({{amount}}).',
|
||||
bankCodeRequired: 'Please select a bank code.',
|
||||
bankCodeUnavailable: 'No bank code is currently available.',
|
||||
cardHolderNameRequired: 'Please enter the card holder name.',
|
||||
bankAccountRequired: 'Please enter the bank account number.',
|
||||
paymentChannelRequired: 'Please select a payment channel.',
|
||||
paymentChannelUnavailable: 'No payment channel is currently available.',
|
||||
paymentTypeRequired: 'Please select a payment type.',
|
||||
receiverEmailInvalid: 'Please enter a valid email address.',
|
||||
receiverPhoneInvalid: 'Please enter a valid phone number.',
|
||||
amountExceedsBalance:
|
||||
|
||||
@@ -213,8 +213,134 @@ export default {
|
||||
},
|
||||
rules: {
|
||||
title: 'Aturan Permainan',
|
||||
content:
|
||||
'1. Gameplay Dasar\n1) Setelah setiap ronde dimulai, pemain dapat memilih satu atau beberapa angka di papan untuk memasang taruhan.\n2) Setelah taruhan ditutup, sistem masuk ke fase undian dan menyelesaikan hadiah berdasarkan hasil ronde.\n3) Level chip yang berbeda mewakili jumlah taruhan yang berbeda, mengikuti batas meja dan konfigurasi saat ini.\n\n2. Catatan Taruhan\n1) Taruhan hanya bisa dikirim saat fase taruhan berlangsung.\n2) Sebelum konfirmasi, periksa kembali angka yang dipilih, nominal chip, dan total taruhan.\n3) Jika saldo tidak cukup, ronde tidak lagi valid, atau taruhan sudah ditutup, permintaan akan ditolak.\n\n3. Undian dan Penyelesaian\n1) Hasil undian akhir yang ditampilkan sistem adalah hasil yang berlaku.\n2) Aturan kena, odds, pembayaran, dan performa streak diselesaikan secara real time sesuai konfigurasi room saat ini.\n3) Jika terjadi gangguan jaringan, silakan mengacu pada data resmi setelah sinkronisasi ulang.\n\n4. Catatan Tambahan\n1) Mohon atur waktu bermain secara bertanggung jawab.\n2) Segala tindakan tidak wajar untuk mengganggu sistem, mengeksploitasi hadiah, atau menghindari kontrol risiko dilarang keras.\n3) Platform berhak meninjau pesanan, pembayaran, dan status akun dalam kondisi khusus.',
|
||||
content: [
|
||||
'## 36 Zihua · Panduan Permainan',
|
||||
'',
|
||||
'### 1. Pengenalan Permainan',
|
||||
'',
|
||||
'**36 Zihua** adalah permainan tebak angka berkecepatan tinggi dengan **satu putaran setiap 30 detik**. Setiap putaran, sistem mengeluarkan **satu nomor pemenang** dari **36 simbol** (Tikus, Kerbau, Harimau… Naga Biru, Harimau Putih, Burung Merah, Kura-kura Hitam, dan lainnya). Selama periode taruhan, pemain memilih nomor dan memasang taruhan. Tebak dengan benar untuk memenangkan hadiah. Menang berturut-turut dapat meningkatkan hadiah Anda — **10 kemenangan berturut-turut** dapat memberikan **Jackpot Satu Juta**.',
|
||||
'',
|
||||
'---',
|
||||
'',
|
||||
'### 2. Cara Bermain',
|
||||
'',
|
||||
'Setiap putaran berlangsung sekitar **30 detik**:',
|
||||
'',
|
||||
'**Langkah 1 — Periode taruhan (0–20 detik)**',
|
||||
'Pilih nomor pada grid 36 kotak (default maksimum **5 nomor**), pilih nilai chip (mis. 💎1, 5, 10, 25, 50, 100), lalu konfirmasi taruhan. Saldo Anda akan dipotong dan taruhan dikonfirmasi.',
|
||||
'',
|
||||
'**Langkah 2 — Penutupan (pada detik ke-20)**',
|
||||
'Tidak ada taruhan baru yang diterima. Taruhan yang dipasang setelah penutupan tidak berlaku.',
|
||||
'',
|
||||
'**Langkah 3 — Pengundian & penyelesaian (20–30 detik)**',
|
||||
'Nomor pemenang diumumkan dan hadiah dibayarkan sesuai aturan hadiah.',
|
||||
'',
|
||||
'**Langkah 4 — Putaran berikutnya**',
|
||||
'Setelah penyelesaian, putaran berikutnya dimulai secara otomatis.',
|
||||
'',
|
||||
'---',
|
||||
'',
|
||||
'### 3. Aturan Kemenangan',
|
||||
'',
|
||||
'- Hanya **satu** nomor pemenang yang dikeluarkan setiap putaran (dari 1 hingga 36).',
|
||||
'- Anda menang jika **nomor yang dipilih mencakup nomor pemenang**.',
|
||||
'- Jika tidak kena, tidak ada hadiah untuk putaran tersebut.',
|
||||
'',
|
||||
'**Jumlah taruhan pada nomor kena:**',
|
||||
'- Jika setiap nomor dipilih dengan jumlah taruhan yang sama:',
|
||||
' **Jumlah taruhan pada nomor kena = total taruhan ÷ jumlah nomor yang dipilih**',
|
||||
'- Contoh: 5 nomor, total taruhan 💎50 → 💎10 per nomor. Jika nomor pemenang termasuk dalam pilihan Anda, 💎10 digunakan untuk perhitungan hadiah.',
|
||||
'',
|
||||
'---',
|
||||
'',
|
||||
'### 4. Jenis Hadiah',
|
||||
'',
|
||||
'Hadiah kemenangan berturut-turut terdiri dari **dua jenis**. Setiap tingkat hanya menggunakan **satu jenis** — **tidak digabungkan**:',
|
||||
'',
|
||||
'#### Jenis A — Hadiah Koefisien',
|
||||
'',
|
||||
'Hadiah dihitung menggunakan pengali odds:',
|
||||
'',
|
||||
'```',
|
||||
'Hadiah = jumlah taruhan pada nomor kena × koefisien odds',
|
||||
'```',
|
||||
'',
|
||||
'#### Jenis B — Hadiah Tetap',
|
||||
'',
|
||||
'Anda menerima **jumlah tetap** yang ditetapkan dalam konfigurasi.',
|
||||
'**Tidak bergantung pada jumlah taruhan dan tidak menggunakan koefisien odds.**',
|
||||
'',
|
||||
'```',
|
||||
'Hadiah = jumlah tetap',
|
||||
'```',
|
||||
'',
|
||||
'**Perbandingan (contoh Tingkat 10):**',
|
||||
'',
|
||||
'| Jenis Hadiah | Jumlah Taruhan pada Nomor Kena | Hadiah |',
|
||||
'|:---:|:---:|:---:|',
|
||||
'| Koefisien (1:330) | 💎50 | 💎50 × 330 = **16.500** |',
|
||||
'| Hadiah tetap | Berapa pun | **1.000.000** (nilai konfigurasi) |',
|
||||
'',
|
||||
'---',
|
||||
'',
|
||||
'### 5. Aturan Kemenangan Berturut-turut',
|
||||
'',
|
||||
'Saat Anda **menang berturut-turut**, hadiah meningkat sesuai tingkat kemenangan. Secara default, **hadiah koefisien** digunakan dengan odds yang meningkat:',
|
||||
'',
|
||||
'| Kemenangan Berturut-turut | Odds | Koefisien |',
|
||||
'|:---:|:---:|:---:|',
|
||||
'| Kemenangan ke-1 | 1:33 | 33 |',
|
||||
'| 2 berturut-turut | 1:66 | 66 |',
|
||||
'| 3 berturut-turut | 1:99 | 99 |',
|
||||
'| 4 berturut-turut | 1:132 | 132 |',
|
||||
'| 5 berturut-turut | 1:165 | 165 |',
|
||||
'| 6 berturut-turut | 1:198 | 198 |',
|
||||
'| 7 berturut-turut | 1:231 | 231 |',
|
||||
'| 8 berturut-turut | 1:264 | 264 |',
|
||||
'| 9 berturut-turut | 1:297 | 297 |',
|
||||
'| 10 berturut-turut | 1:330 | 330 |',
|
||||
'',
|
||||
'**Aturan kemenangan berturut-turut:**',
|
||||
'',
|
||||
'- Hadiah dihitung berdasarkan **status kemenangan berturut-turut saat Anda memasang taruhan**: jika Anda sudah memiliki N kemenangan berturut-turut, kemenangan putaran ini dibayar pada tingkat **(N+1)**.',
|
||||
'- **Putaran tanpa kemenangan** akan mengatur ulang kemenangan berturut-turut ke nol — Anda mulai lagi dari tingkat 1.',
|
||||
'- **Melewatkan putaran** (tidak memasang taruhan) selama kemenangan berturut-turut aktif juga akan **mengatur ulang kemenangan berturut-turut ke nol**.',
|
||||
'',
|
||||
'**Contoh (hadiah koefisien):**',
|
||||
'',
|
||||
'| Skenario | Jumlah Taruhan pada Nomor Kena | Tingkat | Odds | Hadiah |',
|
||||
'|:---:|:---:|:---:|:---:|:---:|',
|
||||
'| Kemenangan pertama | 💎10 | Ke-1 | 1:33 | **330** |',
|
||||
'| 3 kemenangan berturut-turut | 💎50 | Ke-3 | 1:99 | **4.950** |',
|
||||
'| 10 kemenangan berturut-turut | 💎50 | Ke-10 | 1:330 | **16.500** |',
|
||||
'',
|
||||
'---',
|
||||
'',
|
||||
'### 6. Jackpot Satu Juta',
|
||||
'',
|
||||
'Saat pemain **bertaruh dan menang 10 putaran berturut-turut**, dan setiap taruhan selama kemenangan berturut-turut **minimal 💎50**, Jackpot Satu Juta akan dipicu.',
|
||||
'',
|
||||
'**Syarat:**',
|
||||
'',
|
||||
'1. **10 putaran berturut-turut** dengan taruhan dipasang dan dimenangkan di setiap putaran;',
|
||||
'2. **Setiap putaran** dalam kemenangan berturut-turut harus memiliki taruhan **minimal 💎50**;',
|
||||
'3. Jika ada putaran dalam kemenangan berturut-turut di bawah 💎50, Anda hanya menerima hadiah kemenangan berturut-turut biasa — **Jackpot Satu Juta tidak berlaku**.',
|
||||
'',
|
||||
'**Cara pembayaran (tergantung konfigurasi backend):**',
|
||||
'',
|
||||
'- **Hadiah tetap**: Jika tingkat 10 ditetapkan sebagai jumlah tetap, 10 kemenangan berturut-turut membayar **💎1.000.000** secara langsung.',
|
||||
'- **Hadiah koefisien**: Jika tingkat 10 menggunakan odds koefisien, Anda menerima hadiah reguler pada **1:330** terlebih dahulu, ditambah jackpot tambahan sesuai aturan kampanye.',
|
||||
'',
|
||||
'**Contoh — hadiah tetap pada tingkat 10 (💎1.000.000), jumlah taruhan pada nomor kena 💎50 setiap putaran:**',
|
||||
'',
|
||||
'- 10 kemenangan berturut-turut → **💎1.000.000**',
|
||||
'- Kemenangan berturut-turut diatur ulang ke **nol** setelah jackpot diberikan',
|
||||
'',
|
||||
'**Contoh — hadiah koefisien pada tingkat 10 (1:330), jumlah taruhan pada nomor kena 💎50:**',
|
||||
'',
|
||||
'- Hadiah reguler tingkat 10: 💎50 × 330 = **💎16.500**',
|
||||
'- Jika kampanye Jackpot terpisah berlaku, hadiah satu juta tambahan dapat ditambahkan di atasnya',
|
||||
].join('\n'),
|
||||
confirm: 'Saya Mengerti',
|
||||
},
|
||||
procedures: {
|
||||
@@ -648,6 +774,7 @@ export default {
|
||||
diamondAmount: 'Jumlah Berlian Penarikan',
|
||||
currencyType: TEXT_CURRENCY_TYPE,
|
||||
paymentChannel: TEXT_PAYMENT_CHANNEL,
|
||||
paymentType: 'Jenis Pembayaran',
|
||||
bankCode: 'Kode Bank',
|
||||
cardHolderName: 'Nama Pemilik Rekening',
|
||||
bankAccountNumber: 'Nomor Rekening Bank',
|
||||
@@ -656,6 +783,7 @@ export default {
|
||||
},
|
||||
placeholders: {
|
||||
bankCode: 'Pilih kode bank',
|
||||
paymentType: 'Pilih jenis pembayaran',
|
||||
cardHolderName: 'Masukkan nama pemilik rekening',
|
||||
bankAccountNumber: 'Masukkan nomor rekening bank',
|
||||
receiverEmail: 'Masukkan email penerima',
|
||||
@@ -665,6 +793,10 @@ export default {
|
||||
amountRequired: 'Silakan masukkan jumlah diamond penarikan.',
|
||||
amountBelowMinimum:
|
||||
'Jumlah penarikan tidak boleh lebih kecil dari minimum ({{currency}} {{amount}} / {{diamonds}} diamond).',
|
||||
amountBelowPaymentMinimum:
|
||||
'Jumlah penarikan tidak boleh lebih kecil dari minimum jenis pembayaran ini ({{amount}}).',
|
||||
amountAbovePaymentMaximum:
|
||||
'Jumlah penarikan tidak boleh melebihi maksimum jenis pembayaran ini ({{amount}}).',
|
||||
bankCodeRequired: 'Silakan pilih kode bank.',
|
||||
bankCodeUnavailable: 'Saat ini tidak ada kode bank yang tersedia.',
|
||||
cardHolderNameRequired: 'Silakan masukkan nama pemilik rekening.',
|
||||
@@ -672,6 +804,7 @@ export default {
|
||||
paymentChannelRequired: 'Silakan pilih saluran pembayaran.',
|
||||
paymentChannelUnavailable:
|
||||
'Saat ini tidak ada saluran pembayaran yang tersedia.',
|
||||
paymentTypeRequired: 'Silakan pilih jenis pembayaran.',
|
||||
receiverEmailInvalid: 'Silakan masukkan alamat email yang valid.',
|
||||
receiverPhoneInvalid: 'Silakan masukkan nomor telepon yang valid.',
|
||||
amountExceedsBalance:
|
||||
|
||||
@@ -216,8 +216,134 @@ export default {
|
||||
},
|
||||
rules: {
|
||||
title: 'Peraturan Permainan',
|
||||
content:
|
||||
'1. Permainan Asas\n1) Selepas setiap pusingan bermula, pemain boleh memilih satu atau beberapa nombor pada papan untuk membuat taruhan.\n2) Selepas taruhan ditutup, sistem memasuki fasa cabutan dan menyelesaikan ganjaran berdasarkan keputusan pusingan.\n3) Tahap cip yang berbeza mewakili jumlah taruhan yang berbeza, tertakluk kepada had meja dan konfigurasi semasa.\n\n2. Nota Taruhan\n1) Taruhan hanya boleh dihantar semasa fasa taruhan.\n2) Sebelum mengesahkan, sila semak nombor yang dipilih, jumlah cip, dan jumlah taruhan keseluruhan.\n3) Jika baki tidak mencukupi, pusingan tidak lagi sah, atau taruhan telah ditutup, permintaan akan ditolak.\n\n3. Cabutan dan Penyelesaian\n1) Keputusan cabutan akhir yang dipaparkan sistem ialah keputusan yang sah.\n2) Peraturan kena, odds, bayaran, dan prestasi streak diselesaikan secara masa nyata mengikut konfigurasi bilik semasa.\n3) Jika berlaku gangguan rangkaian, sila rujuk data rasmi selepas penyegerakan semula.\n\n4. Nota Tambahan\n1) Sila urus masa permainan anda dengan bertanggungjawab.\n2) Sebarang tingkah laku tidak normal untuk mengganggu sistem, mengeksploitasi ganjaran, atau memintas kawalan risiko adalah dilarang sama sekali.\n3) Platform berhak menyemak pesanan, bayaran, dan status akaun dalam keadaan khas.',
|
||||
content: [
|
||||
'## 36 Zihua · Panduan Permainan',
|
||||
'',
|
||||
'### 1. Pengenalan Permainan',
|
||||
'',
|
||||
'**36 Zihua** ialah permainan teka nombor berkelajuan tinggi dengan **satu pusingan setiap 30 saat**. Setiap pusingan, sistem akan mengeluarkan **satu nombor kemenangan** daripada **36 simbol** (Tikus, Lembu, Harimau… Naga Biru, Harimau Putih, Burung Merah, Kura-kura Hitam, dan lain-lain). Dalam tempoh pertaruhan, pemain memilih nombor dan membuat pertaruhan. Teka dengan betul untuk memenangi hadiah. Menang berturut-turut boleh meningkatkan ganjaran anda — **10 kemenangan berturut-turut** boleh membawa anda **Jackpot Sejuta**.',
|
||||
'',
|
||||
'---',
|
||||
'',
|
||||
'### 2. Cara Bermain',
|
||||
'',
|
||||
'Setiap pusingan mengambil masa kira-kira **30 saat**:',
|
||||
'',
|
||||
'**Langkah 1 — Tempoh pertaruhan (0–20 saat)**',
|
||||
'Pilih nombor pada grid 36 petak (lalai maksimum **5 nombor**), pilih nilai cip (cth. 💎1, 5, 10, 25, 50, 100), kemudian sahkan pertaruhan. Baki anda akan ditolak dan pertaruhan disahkan.',
|
||||
'',
|
||||
'**Langkah 2 — Penutupan (pada saat ke-20)**',
|
||||
'Tiada pertaruhan baharu diterima. Sebarang pertaruhan selepas penutupan adalah tidak sah.',
|
||||
'',
|
||||
'**Langkah 3 — Cabutan & penyelesaian (20–30 saat)**',
|
||||
'Nombor kemenangan diumumkan dan hadiah dibayar mengikut peraturan ganjaran.',
|
||||
'',
|
||||
'**Langkah 4 — Pusingan seterusnya**',
|
||||
'Selepas penyelesaian, pusingan seterusnya bermula secara automatik.',
|
||||
'',
|
||||
'---',
|
||||
'',
|
||||
'### 3. Peraturan Kemenangan',
|
||||
'',
|
||||
'- Hanya **satu** nombor kemenangan dikeluarkan setiap pusingan (daripada 1 hingga 36).',
|
||||
'- Anda menang jika **nombor yang dipilih termasuk nombor kemenangan**.',
|
||||
'- Jika tidak kena, tiada hadiah untuk pusingan tersebut.',
|
||||
'',
|
||||
'**Jumlah pertaruhan pada nombor kena:**',
|
||||
'- Apabila setiap nombor dipilih dengan jumlah pertaruhan yang sama:',
|
||||
' **Jumlah pertaruhan pada nombor kena = jumlah pertaruhan ÷ bilangan nombor dipilih**',
|
||||
'- Contoh: 5 nombor, jumlah pertaruhan 💎50 → 💎10 setiap nombor. Jika nombor kemenangan termasuk dalam pilihan anda, 💎10 digunakan untuk pengiraan hadiah.',
|
||||
'',
|
||||
'---',
|
||||
'',
|
||||
'### 4. Jenis Ganjaran',
|
||||
'',
|
||||
'Ganjaran kemenangan berturut-turut terdiri daripada **dua jenis**. Setiap peringkat hanya menggunakan **satu jenis** — **tidak digabungkan**:',
|
||||
'',
|
||||
'#### Jenis A — Ganjaran Pekali',
|
||||
'',
|
||||
'Hadiah dikira menggunakan pekali odds:',
|
||||
'',
|
||||
'```',
|
||||
'Hadiah = jumlah pertaruhan pada nombor kena × pekali odds',
|
||||
'```',
|
||||
'',
|
||||
'#### Jenis B — Ganjaran Tetap',
|
||||
'',
|
||||
'Anda menerima **jumlah tetap** yang ditetapkan dalam konfigurasi.',
|
||||
'**Tidak bergantung pada jumlah pertaruhan dan tidak menggunakan pekali odds.**',
|
||||
'',
|
||||
'```',
|
||||
'Hadiah = jumlah tetap',
|
||||
'```',
|
||||
'',
|
||||
'**Perbandingan (contoh Peringkat 10):**',
|
||||
'',
|
||||
'| Jenis Ganjaran | Jumlah Pertaruhan pada Nombor Kena | Hadiah |',
|
||||
'|:---:|:---:|:---:|',
|
||||
'| Pekali (1:330) | 💎50 | 💎50 × 330 = **16,500** |',
|
||||
'| Ganjaran tetap | Sebarang | **1,000,000** (nilai konfigurasi) |',
|
||||
'',
|
||||
'---',
|
||||
'',
|
||||
'### 5. Peraturan Kemenangan Berturut-turut',
|
||||
'',
|
||||
'Apabila anda **menang berturut-turut**, ganjaran meningkat mengikut peringkat kemenangan. Secara lalai, **ganjaran pekali** digunakan dengan odds yang meningkat:',
|
||||
'',
|
||||
'| Kemenangan Berturut-turut | Odds | Pekali |',
|
||||
'|:---:|:---:|:---:|',
|
||||
'| Kemenangan ke-1 | 1:33 | 33 |',
|
||||
'| 2 berturut-turut | 1:66 | 66 |',
|
||||
'| 3 berturut-turut | 1:99 | 99 |',
|
||||
'| 4 berturut-turut | 1:132 | 132 |',
|
||||
'| 5 berturut-turut | 1:165 | 165 |',
|
||||
'| 6 berturut-turut | 1:198 | 198 |',
|
||||
'| 7 berturut-turut | 1:231 | 231 |',
|
||||
'| 8 berturut-turut | 1:264 | 264 |',
|
||||
'| 9 berturut-turut | 1:297 | 297 |',
|
||||
'| 10 berturut-turut | 1:330 | 330 |',
|
||||
'',
|
||||
'**Peraturan kemenangan berturut-turut:**',
|
||||
'',
|
||||
'- Ganjaran dikira berdasarkan **status kemenangan berturut-turut semasa anda membuat pertaruhan**: jika anda sudah mempunyai N kemenangan berturut-turut, kemenangan pusingan ini dibayar pada peringkat **(N+1)**.',
|
||||
'- **Sebarang pusingan tanpa kemenangan** akan menetapkan semula kemenangan berturut-turut kepada sifar — anda bermula semula dari peringkat 1.',
|
||||
'- **Melangkau pusingan** (tiada pertaruhan dibuat) semasa kemenangan berturut-turut aktif juga akan **menetapkan semula kemenangan berturut-turut kepada sifar**.',
|
||||
'',
|
||||
'**Contoh (ganjaran pekali):**',
|
||||
'',
|
||||
'| Senario | Jumlah Pertaruhan pada Nombor Kena | Peringkat | Odds | Hadiah |',
|
||||
'|:---:|:---:|:---:|:---:|:---:|',
|
||||
'| Kemenangan pertama | 💎10 | Ke-1 | 1:33 | **330** |',
|
||||
'| 3 kemenangan berturut-turut | 💎50 | Ke-3 | 1:99 | **4,950** |',
|
||||
'| 10 kemenangan berturut-turut | 💎50 | Ke-10 | 1:330 | **16,500** |',
|
||||
'',
|
||||
'---',
|
||||
'',
|
||||
'### 6. Jackpot Sejuta',
|
||||
'',
|
||||
'Apabila pemain **bertaruh dan menang 10 pusingan berturut-turut**, dan setiap pertaruhan semasa kemenangan berturut-turut adalah **sekurang-kurangnya 💎50**, Jackpot Sejuta akan dicetuskan.',
|
||||
'',
|
||||
'**Syarat:**',
|
||||
'',
|
||||
'1. **10 pusingan berturut-turut** dengan pertaruhan dibuat dan dimenangi dalam setiap pusingan;',
|
||||
'2. **Setiap pusingan** dalam kemenangan berturut-turut mesti mempunyai pertaruhan **sekurang-kurangnya 💎50**;',
|
||||
'3. Jika mana-mana pusingan dalam kemenangan berturut-turut kurang daripada 💎50, anda hanya menerima ganjaran kemenangan berturut-turut biasa — **Jackpot Sejuta tidak terpakai**.',
|
||||
'',
|
||||
'**Cara pembayaran (bergantung pada konfigurasi backend):**',
|
||||
'',
|
||||
'- **Ganjaran tetap**: Jika peringkat 10 ditetapkan sebagai jumlah tetap, 10 kemenangan berturut-turut membayar **💎1,000,000** secara langsung.',
|
||||
'- **Ganjaran pekali**: Jika peringkat 10 menggunakan odds pekali, anda menerima hadiah biasa pada **1:330** terlebih dahulu, ditambah jackpot tambahan mengikut peraturan kempen.',
|
||||
'',
|
||||
'**Contoh — ganjaran tetap pada peringkat 10 (💎1,000,000), jumlah pertaruhan pada nombor kena 💎50 setiap pusingan:**',
|
||||
'',
|
||||
'- 10 kemenangan berturut-turut → **💎1,000,000**',
|
||||
'- Kemenangan berturut-turut ditetapkan semula kepada **sifar** selepas jackpot diberikan',
|
||||
'',
|
||||
'**Contoh — ganjaran pekali pada peringkat 10 (1:330), jumlah pertaruhan pada nombor kena 💎50:**',
|
||||
'',
|
||||
'- Hadiah biasa peringkat 10: 💎50 × 330 = **💎16,500**',
|
||||
'- Jika kempen Jackpot berasingan terpakai, hadiah sejuta tambahan mungkin ditambah di atasnya',
|
||||
].join('\n'),
|
||||
confirm: 'Saya Faham',
|
||||
},
|
||||
procedures: {
|
||||
@@ -652,6 +778,7 @@ export default {
|
||||
diamondAmount: 'Jumlah Berlian Pengeluaran',
|
||||
currencyType: TEXT_CURRENCY_TYPE,
|
||||
paymentChannel: TEXT_PAYMENT_CHANNEL,
|
||||
paymentType: 'Jenis Pembayaran',
|
||||
bankCode: 'Kod Bank',
|
||||
cardHolderName: 'Nama Pemegang Kad',
|
||||
bankAccountNumber: 'Nombor Akaun Bank',
|
||||
@@ -660,6 +787,7 @@ export default {
|
||||
},
|
||||
placeholders: {
|
||||
bankCode: 'Pilih kod bank',
|
||||
paymentType: 'Pilih jenis pembayaran',
|
||||
cardHolderName: 'Masukkan nama pemegang kad',
|
||||
bankAccountNumber: 'Masukkan nombor akaun bank',
|
||||
receiverEmail: 'Masukkan e-mel penerima',
|
||||
@@ -669,6 +797,10 @@ export default {
|
||||
amountRequired: 'Sila masukkan jumlah berlian pengeluaran.',
|
||||
amountBelowMinimum:
|
||||
'Jumlah pengeluaran tidak boleh kurang daripada minimum ({{currency}} {{amount}} / {{diamonds}} berlian).',
|
||||
amountBelowPaymentMinimum:
|
||||
'Jumlah pengeluaran tidak boleh kurang daripada minimum jenis pembayaran ini ({{amount}}).',
|
||||
amountAbovePaymentMaximum:
|
||||
'Jumlah pengeluaran tidak boleh melebihi maksimum jenis pembayaran ini ({{amount}}).',
|
||||
bankCodeRequired: 'Sila pilih kod bank.',
|
||||
bankCodeUnavailable: 'Tiada kod bank tersedia buat masa ini.',
|
||||
cardHolderNameRequired: 'Sila masukkan nama pemegang kad.',
|
||||
@@ -676,6 +808,7 @@ export default {
|
||||
paymentChannelRequired: 'Sila pilih saluran pembayaran.',
|
||||
paymentChannelUnavailable:
|
||||
'Tiada saluran pembayaran tersedia buat masa ini.',
|
||||
paymentTypeRequired: 'Sila pilih jenis pembayaran.',
|
||||
receiverEmailInvalid: 'Sila masukkan alamat e-mel yang sah.',
|
||||
receiverPhoneInvalid: 'Sila masukkan nombor telefon yang sah.',
|
||||
amountExceedsBalance:
|
||||
|
||||
@@ -210,8 +210,119 @@ export default {
|
||||
},
|
||||
rules: {
|
||||
title: '玩法规则',
|
||||
content:
|
||||
'一、基础玩法\n1. 每一局开始后,玩家可以在盘面上选择一个或多个号码进行下注。\n2. 系统会在封盘后进入开奖阶段,并根据当期结果结算对应奖金。\n3. 不同下注档位对应不同下注金额,实际以当前系统配置和桌限为准。\n\n二、下注说明\n1. 只有在“下注中”阶段可以提交下注。\n2. 每次提交前,请确认已选号码、下注金额和总下注额。\n3. 若余额不足、期号失效或已封盘,系统将拒绝该次下注请求。\n\n三、开奖与结算\n1. 开奖结果以系统最终展示为准。\n2. 命中规则、赔率、派彩与连中表现按当前房间配置实时结算。\n3. 如遇网络波动,请以重新同步后的官方数据为准。\n\n四、其他说明\n1. 请合理安排游戏时间,理性参与。\n2. 严禁使用任何异常手段干扰系统、刷取奖励或规避风控。\n3. 平台保留在异常情况下对订单、派奖和账户状态进行复核的权利。',
|
||||
content: [
|
||||
'## 36 字花 · 玩法指南',
|
||||
'',
|
||||
'### 一、游戏介绍',
|
||||
'',
|
||||
'「36字花」是一款 **30 秒一期** 的高频数字竞猜游戏。系统每期从 **36 个字号**(鼠、牛、虎……青龙、白虎、朱雀、玄武等)中开出 **1 个中奖号码**。玩家在下注期内选号押注,猜中即可获得奖金;连续猜中可提升奖励,**连中 10 场** 还可获得 **百万大奖**。',
|
||||
'',
|
||||
'### 二、玩法说明',
|
||||
'',
|
||||
'每期约 **30 秒**,流程如下:',
|
||||
'',
|
||||
'**1. 下注期(0~20 秒)**',
|
||||
'在 36 宫格中选择号码(默认最多 **5 个**),选择筹码面额(如 💎1、5、10、25、50、100),点击确认下注,系统扣款后注单生效。',
|
||||
'',
|
||||
'**2. 封盘(20 秒)**',
|
||||
'停止接受新注单,之后下注无效。',
|
||||
'',
|
||||
'**3. 开奖结算(20~30 秒)**',
|
||||
'公布本期中奖号码,系统按规则结算派彩。',
|
||||
'',
|
||||
'**4. 下一期**',
|
||||
'结算完成后自动进入下一期,循环进行。',
|
||||
'',
|
||||
'### 三、中奖说明',
|
||||
'',
|
||||
'- 每期只开出 **1 个** 中奖号码(1~36 中之一)。',
|
||||
'- 玩家押注的号码中,**包含开奖号码即算中奖**。',
|
||||
'- 未押中则本期无奖金。',
|
||||
'',
|
||||
'**压中号码面额** 计算方式:',
|
||||
'- 同一期内各号押注相同时:',
|
||||
' **压中号码面额 = 本笔压注总额 ÷ 所选号码个数**',
|
||||
'- 示例:选 5 个号、总押 💎50 → 每个号面额 💎10;若开奖号在其中,按 💎10 参与奖金计算。',
|
||||
'',
|
||||
'### 四、奖励说明',
|
||||
'',
|
||||
'连胜奖励分为 **两种类型**,每档 **二选一**,不会同时享受:',
|
||||
'',
|
||||
'#### 1. 系数奖励',
|
||||
'',
|
||||
'按赔率系数计算:',
|
||||
'',
|
||||
'`中奖金额 = 压中号码面额 × 赔率系数`',
|
||||
'',
|
||||
'#### 2. 固定奖励',
|
||||
'',
|
||||
'直接发放配置的 **固定金额**,**与押注面额无关,也不使用赔率系数**。',
|
||||
'',
|
||||
'`中奖金额 = 固定金额`',
|
||||
'',
|
||||
'**示例对比**(第 10 档):',
|
||||
'',
|
||||
'| 奖励类型 | 押中面额 | 中奖金额 |',
|
||||
'|:---:|:---:|:---:|',
|
||||
'| 系数奖励(1:330) | 💎50 | 💎50 × 330 = **16,500** |',
|
||||
'| 固定奖励 | 任意 | **1,000,000**(配置值) |',
|
||||
'',
|
||||
'### 五、连胜说明',
|
||||
'',
|
||||
'玩家 **连续中奖** 时,奖励按连胜场次递增。默认采用 **系数奖励**,赔率累加如下:',
|
||||
'',
|
||||
'| 连胜场次 | 赔率 | 系数 |',
|
||||
'|:---:|:---:|:---:|',
|
||||
'| 第 1 场中奖 | 1:33 | 33 |',
|
||||
'| 连中 2 场 | 1:66 | 66 |',
|
||||
'| 连中 3 场 | 1:99 | 99 |',
|
||||
'| 连中 4 场 | 1:132 | 132 |',
|
||||
'| 连中 5 场 | 1:165 | 165 |',
|
||||
'| 连中 6 场 | 1:198 | 198 |',
|
||||
'| 连中 7 场 | 1:231 | 231 |',
|
||||
'| 连中 8 场 | 1:264 | 264 |',
|
||||
'| 连中 9 场 | 1:297 | 297 |',
|
||||
'| 连中 10 场 | 1:330 | 330 |',
|
||||
'',
|
||||
'**连胜规则:**',
|
||||
'',
|
||||
'- 赔率按 **下注时的连胜状态** 计算:下注时已是 N 连胜,本期中奖则按第 **(N+1)** 场奖励结算。',
|
||||
'- **任意一期未中奖** → 连胜清零,从第 1 场重新计算。',
|
||||
'- **连胜期间跳局未下注** → 连胜也会清零。',
|
||||
'',
|
||||
'**计算示例**(系数奖励):',
|
||||
'',
|
||||
'| 场景 | 压中面额 | 连胜场次 | 赔率 | 中奖金额 |',
|
||||
'|:---:|:---:|:---:|:---:|:---:|',
|
||||
'| 首次中奖 | 💎10 | 第 1 场 | 1:33 | **330** |',
|
||||
'| 三连胜 | 💎50 | 第 3 场 | 1:99 | **4,950** |',
|
||||
'| 十连胜 | 💎50 | 第 10 场 | 1:330 | **16,500** |',
|
||||
'',
|
||||
'### 六、百万大奖',
|
||||
'',
|
||||
'当玩家 **连续 10 期均有下注且全部中奖**,且连胜期间 **每期押注不低于 💎50**,即可触发百万大奖。',
|
||||
'',
|
||||
'**触发条件:**',
|
||||
'',
|
||||
'1. 连续 **10 期** 均有下注且全部中奖;',
|
||||
'2. 连胜期间 **每一期押注面额均不低于 💎50**;',
|
||||
'3. 若连胜中有任意一期低于 💎50,仅享受常规连胜奖励,**不触发百万大奖**。',
|
||||
'',
|
||||
'**派发方式(视后台配置):**',
|
||||
'',
|
||||
'- **固定奖励**:第 10 档设为固定金额时,连中 10 场直接获得 **💎1,000,000**。',
|
||||
'- **系数奖励**:第 10 档为系数奖励时,先按 **1:330** 发放常规奖金,再按活动规则叠加额外大奖。',
|
||||
'',
|
||||
'**示例**(第 10 档为固定奖励 💎1,000,000,每局压中面额 💎50):',
|
||||
'',
|
||||
'- 连中 10 场 → 获得 **💎1,000,000**',
|
||||
'- 触发后连胜 **归零**,下一期从第 1 场重新计算',
|
||||
'',
|
||||
'**示例**(第 10 档为系数奖励 1:330,每局压中面额 💎50):',
|
||||
'',
|
||||
'- 第 10 场常规奖金:💎50 × 330 = **💎16,500**',
|
||||
'- 若另有 Jackpot 活动叠加,可额外获得百万奖金',
|
||||
].join('\n'),
|
||||
confirm: '我知道了',
|
||||
},
|
||||
procedures: {
|
||||
@@ -628,6 +739,7 @@ export default {
|
||||
diamondAmount: '提现钻石数量',
|
||||
currencyType: TEXT_CURRENCY_TYPE,
|
||||
paymentChannel: TEXT_PAYMENT_CHANNEL,
|
||||
paymentType: '支付方式',
|
||||
bankCode: '银行代码',
|
||||
cardHolderName: '持卡人姓名',
|
||||
bankAccountNumber: '银行账号',
|
||||
@@ -636,6 +748,7 @@ export default {
|
||||
},
|
||||
placeholders: {
|
||||
bankCode: '请选择银行代码',
|
||||
paymentType: '请选择支付方式',
|
||||
cardHolderName: '请输入持卡人姓名',
|
||||
bankAccountNumber: '请输入银行账号',
|
||||
receiverEmail: '请输入收款人邮箱',
|
||||
@@ -645,12 +758,17 @@ export default {
|
||||
amountRequired: '请输入提现钻石数量',
|
||||
amountBelowMinimum:
|
||||
'提现金额不能低于最低提现金额({{currency}} {{amount}} / {{diamonds}} 钻石)',
|
||||
amountBelowPaymentMinimum:
|
||||
'提现金额不能低于当前支付方式最低限额({{amount}})',
|
||||
amountAbovePaymentMaximum:
|
||||
'提现金额不能高于当前支付方式最高限额({{amount}})',
|
||||
bankCodeRequired: '请选择银行代码',
|
||||
bankCodeUnavailable: '当前暂无可用银行代码',
|
||||
cardHolderNameRequired: '请输入持卡人姓名',
|
||||
bankAccountRequired: '请输入银行账号',
|
||||
paymentChannelRequired: '请选择支付渠道',
|
||||
paymentChannelUnavailable: '当前暂无可用支付渠道',
|
||||
paymentTypeRequired: '请选择支付方式',
|
||||
receiverEmailInvalid: '请输入正确的邮箱',
|
||||
receiverPhoneInvalid: '请输入正确的手机号',
|
||||
amountExceedsBalance: '提现金额不能大于当前拥有的金额',
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
import { useTranslation } from 'react-i18next'
|
||||
import lengthBlueBtn from '@/assets/system/length-blue-btn.webp'
|
||||
import { CenterModal } from '@/components/center-modal.tsx'
|
||||
import RulesMarkdownContent from '@/components/rules-markdown-content.tsx'
|
||||
import { SmartBackground } from '@/components/smart-background.tsx'
|
||||
import { useModalStore } from '@/store'
|
||||
|
||||
@@ -27,8 +28,8 @@ function DesktopRulesModal() {
|
||||
className={'w-design-1040 h-design-720'}
|
||||
>
|
||||
<div className="flex h-full flex-col gap-design-24 px-design-28 pb-design-30 pt-design-10">
|
||||
<div className="flex-1 overflow-y-auto rounded-[12px] bg-black/35 p-design-20 text-design-18 leading-[1.8] text-[#B9E7EA] whitespace-pre-line">
|
||||
{t('game.modals.rules.content')}
|
||||
<div className="flex-1 overflow-y-auto rounded-[12px] bg-black/35 p-design-20 text-design-18 text-[#B9E7EA]">
|
||||
<RulesMarkdownContent content={t('game.modals.rules.content')} />
|
||||
</div>
|
||||
|
||||
<div className="flex justify-center">
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
import { useTranslation } from 'react-i18next'
|
||||
import lengthBlueBtn from '@/assets/system/length-blue-btn.webp'
|
||||
import { MobileCenterModal } from '@/components/mobile-center-modal.tsx'
|
||||
import RulesMarkdownContent from '@/components/rules-markdown-content.tsx'
|
||||
import { SmartBackground } from '@/components/smart-background.tsx'
|
||||
import { useModalStore } from '@/store'
|
||||
|
||||
@@ -27,8 +28,11 @@ function MobileRulesModal() {
|
||||
className="!h-design-320"
|
||||
>
|
||||
<div className="flex h-full min-h-0 flex-col gap-design-12 px-design-14 pb-design-16 pt-design-4">
|
||||
<div className="min-h-0 flex-1 overflow-y-auto rounded-[calc(var(--design-unit)*10)] bg-black/35 px-design-14 py-design-12 text-design-12 leading-[1.62] text-[#B9E7EA] whitespace-pre-line">
|
||||
{t('game.modals.rules.content')}
|
||||
<div className="min-h-0 flex-1 overflow-y-auto rounded-[calc(var(--design-unit)*10)] bg-black/35 px-design-14 py-design-12 text-design-12 text-[#B9E7EA]">
|
||||
<RulesMarkdownContent
|
||||
compact
|
||||
content={t('game.modals.rules.content')}
|
||||
/>
|
||||
</div>
|
||||
|
||||
<div className="flex shrink-0 justify-center">
|
||||
|
||||
@@ -25,10 +25,19 @@ export interface FinanceRateConfigDto {
|
||||
}
|
||||
|
||||
export interface FinancePayChannelDto {
|
||||
banks?: FinanceWithdrawBankDto[]
|
||||
code: string
|
||||
currency_codes?: string[]
|
||||
deposit_banks?: FinanceWithdrawBankDto[]
|
||||
fee_note?: string
|
||||
methods?: FinanceDepositMethodDto[]
|
||||
min_bank?: string
|
||||
min_ewallet?: string
|
||||
name: string
|
||||
processing_note?: string
|
||||
rate_hint?: string
|
||||
rate_mode?: FinanceWithdrawConfigDto['rate_mode']
|
||||
review_threshold_coin?: string
|
||||
sort: number
|
||||
status?: number
|
||||
tier_ids?: number[]
|
||||
@@ -40,7 +49,9 @@ export interface FinanceWithdrawBankDto {
|
||||
gateway_code?: string
|
||||
id?: string
|
||||
label?: string
|
||||
logo?: string
|
||||
name?: string
|
||||
payment_types?: string[]
|
||||
sort?: number
|
||||
status?: number
|
||||
}
|
||||
@@ -49,6 +60,8 @@ export interface FinanceDepositMethodDto {
|
||||
code: string
|
||||
currency_code: string
|
||||
gateway_code: string
|
||||
maximum_amount?: string
|
||||
minimum_amount?: string
|
||||
name: string
|
||||
requires_bank: boolean
|
||||
requires_bank_account: boolean
|
||||
@@ -57,6 +70,7 @@ export interface FinanceDepositMethodDto {
|
||||
}
|
||||
|
||||
export interface FinanceDepositFieldsDto {
|
||||
channel_code_param?: string
|
||||
deposit_bank_account_param?: string
|
||||
deposit_bank_param?: string
|
||||
deposit_from_address_param?: string
|
||||
@@ -69,18 +83,22 @@ export interface FinanceDepositFieldsDto {
|
||||
|
||||
export interface FinanceDepositConfigDto {
|
||||
banks?: FinanceWithdrawBankDto[]
|
||||
dadapay_pending_expire_seconds?: number
|
||||
default_channel_by_currency?: Record<string, string>
|
||||
default_channel_code?: string
|
||||
fields?: FinanceDepositFieldsDto
|
||||
methods?: FinanceDepositMethodDto[]
|
||||
pay_channels?: FinancePayChannelDto[]
|
||||
pending_expire_seconds?: number
|
||||
}
|
||||
|
||||
export interface FinanceWithdrawFieldsDto {
|
||||
payment_type_param?: string
|
||||
receive_type_bank_only?: boolean
|
||||
require_bank_branch?: boolean
|
||||
require_bank_code?: boolean
|
||||
require_channel_code?: boolean
|
||||
require_payment_type?: boolean
|
||||
require_receive_account?: boolean
|
||||
require_receiver_email?: boolean
|
||||
require_receiver_mobile?: boolean
|
||||
@@ -91,6 +109,7 @@ export interface FinanceWithdrawConfigDto {
|
||||
banks: FinanceWithdrawBankDto[]
|
||||
fee_note: string
|
||||
fields?: FinanceWithdrawFieldsDto
|
||||
methods?: FinanceDepositMethodDto[]
|
||||
min_bank: string
|
||||
min_ewallet: string
|
||||
pay_channels?: FinancePayChannelDto[]
|
||||
@@ -147,10 +166,19 @@ export interface FinanceRateConfig {
|
||||
}
|
||||
|
||||
export interface FinancePayChannel {
|
||||
banks: FinanceWithdrawBank[]
|
||||
code: string
|
||||
currencyCodes: string[]
|
||||
depositBanks: FinanceWithdrawBank[]
|
||||
feeNote: string
|
||||
methods: FinanceDepositMethod[]
|
||||
minBank: string
|
||||
minEwallet: string
|
||||
name: string
|
||||
processingNote: string
|
||||
rateHint: string
|
||||
rateMode: FinanceWithdrawConfigDto['rate_mode'] | ''
|
||||
reviewThresholdCoin: string
|
||||
sort: number
|
||||
status: number
|
||||
tierIds: number[]
|
||||
@@ -161,6 +189,8 @@ export interface FinanceWithdrawBank {
|
||||
currencyCode: string | null
|
||||
gatewayCode: string | null
|
||||
label: string
|
||||
logo: string
|
||||
paymentTypes: string[]
|
||||
sort: number
|
||||
status: number
|
||||
}
|
||||
@@ -169,6 +199,8 @@ export interface FinanceDepositMethod {
|
||||
code: string
|
||||
currencyCode: string
|
||||
gatewayCode: string
|
||||
maximumAmount: string
|
||||
minimumAmount: string
|
||||
name: string
|
||||
requiresBank: boolean
|
||||
requiresBankAccount: boolean
|
||||
@@ -177,6 +209,7 @@ export interface FinanceDepositMethod {
|
||||
}
|
||||
|
||||
export interface FinanceDepositFields {
|
||||
channelCodeParam: string
|
||||
depositBankAccountParam: string
|
||||
depositBankParam: string
|
||||
depositFromAddressParam: string
|
||||
@@ -189,18 +222,22 @@ export interface FinanceDepositFields {
|
||||
|
||||
export interface FinanceDepositConfig {
|
||||
banks: FinanceWithdrawBank[]
|
||||
dadapayPendingExpireSeconds: number
|
||||
defaultChannelCode: string
|
||||
defaultChannelByCurrency: Record<string, string>
|
||||
fields: FinanceDepositFields
|
||||
methods: FinanceDepositMethod[]
|
||||
payChannels: FinancePayChannel[]
|
||||
pendingExpireSeconds: number
|
||||
}
|
||||
|
||||
export interface FinanceWithdrawFields {
|
||||
paymentTypeParam: string
|
||||
receiveTypeBankOnly: boolean
|
||||
requireBankBranch: boolean
|
||||
requireBankCode: boolean
|
||||
requireChannelCode: boolean
|
||||
requirePaymentType: boolean
|
||||
requireReceiveAccount: boolean
|
||||
requireReceiverEmail: boolean
|
||||
requireReceiverMobile: boolean
|
||||
@@ -211,6 +248,7 @@ export interface FinanceWithdrawConfig {
|
||||
banks: FinanceWithdrawBank[]
|
||||
feeNote: string
|
||||
fields: FinanceWithdrawFields
|
||||
methods: FinanceDepositMethod[]
|
||||
minBank: string
|
||||
minEwallet: string
|
||||
payChannels: FinancePayChannel[]
|
||||
@@ -360,6 +398,7 @@ export interface WithdrawCreateRequestDto {
|
||||
bank_code: string
|
||||
channel_code: string
|
||||
idempotency_key: string
|
||||
payment_type: string
|
||||
receive_account: string
|
||||
receiver_email: string
|
||||
receiver_mobile: string
|
||||
|
||||
Reference in New Issue
Block a user