react-toolkits 2.30.2 → 2.31.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +17 -0
- package/README.md +3 -3
- package/lib/index.css +1 -1
- package/lib/index.d.ts +209 -179
- package/lib/index.js +3 -3
- package/lib/index.js.map +1 -1
- package/locale/hooks.js +1 -339
- package/locale/index.js +1 -339
- package/package.json +6 -5
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,22 @@
|
|
|
1
1
|
# react-toolkits
|
|
2
2
|
|
|
3
|
+
## 2.31.0
|
|
4
|
+
|
|
5
|
+
### Minor Changes
|
|
6
|
+
|
|
7
|
+
- 21eb0d4: refactor: update routing to use react-router and enhance package dependencies
|
|
8
|
+
|
|
9
|
+
### Patch Changes
|
|
10
|
+
|
|
11
|
+
- 4e2191f: refactor: update routing and game interface definitions
|
|
12
|
+
- 94c57cb: feat: integrate useKyClient hook for improved API client management
|
|
13
|
+
|
|
14
|
+
## 2.30.3
|
|
15
|
+
|
|
16
|
+
### Patch Changes
|
|
17
|
+
|
|
18
|
+
- f0f10c2: feat: enhance KeepAliveOutlet for nested routing support
|
|
19
|
+
|
|
3
20
|
## 2.30.2
|
|
4
21
|
|
|
5
22
|
### Patch Changes
|
package/README.md
CHANGED
|
@@ -21,7 +21,7 @@ pnpm add react-toolkits
|
|
|
21
21
|
|
|
22
22
|
- react、react-dom:^19
|
|
23
23
|
- antd:^6
|
|
24
|
-
- react-router
|
|
24
|
+
- react-router:^7
|
|
25
25
|
- @tanstack/react-query:^5
|
|
26
26
|
|
|
27
27
|
样式:
|
|
@@ -36,7 +36,7 @@ import 'react-toolkits/style.css'
|
|
|
36
36
|
import { QueryClient, QueryClientProvider } from '@tanstack/react-query'
|
|
37
37
|
import 'react-toolkits/style.css'
|
|
38
38
|
import { createRoot } from 'react-dom/client'
|
|
39
|
-
import { RouterProvider } from 'react-router
|
|
39
|
+
import { RouterProvider } from 'react-router'
|
|
40
40
|
import { ToolkitsProvider } from 'react-toolkits/components'
|
|
41
41
|
import { PermissionMode } from 'react-toolkits/constants'
|
|
42
42
|
|
|
@@ -110,7 +110,7 @@ import type { NavMenuItem } from 'react-toolkits/types'
|
|
|
110
110
|
### 权限与菜单集成示例
|
|
111
111
|
|
|
112
112
|
```tsx
|
|
113
|
-
import { createBrowserRouter } from 'react-router
|
|
113
|
+
import { createBrowserRouter } from 'react-router'
|
|
114
114
|
import { Layout } from 'react-toolkits/components'
|
|
115
115
|
import { permissionRoutes, menuRoutes, SignIn } from 'react-toolkits/pages'
|
|
116
116
|
|
package/lib/index.css
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
@layer properties{@supports ((-webkit-hyphens:none) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,::backdrop,:after,:before{--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0;--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-border-style:solid;--tw-gradient-position:initial;--tw-gradient-from:#0000;--tw-gradient-via:#0000;--tw-gradient-to:#0000;--tw-gradient-stops:initial;--tw-gradient-via-stops:initial;--tw-gradient-from-position:0%;--tw-gradient-via-position:50%;--tw-gradient-to-position:100%;--tw-leading:initial;--tw-font-weight:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial;--tw-backdrop-blur:initial;--tw-backdrop-brightness:initial;--tw-backdrop-contrast:initial;--tw-backdrop-grayscale:initial;--tw-backdrop-hue-rotate:initial;--tw-backdrop-invert:initial;--tw-backdrop-opacity:initial;--tw-backdrop-saturate:initial;--tw-backdrop-sepia:initial;--tw-duration:initial;--tw-ease:initial}}}@layer theme{:host,:root{--font-sans:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";--font-mono:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;--color-blue-50:oklch(97% .014 254.604);--color-indigo-50:oklch(96.2% .018 272.314);--color-purple-50:oklch(97.7% .014 308.299);--color-gray-50:oklch(98.5% .002 247.839);--color-gray-200:oklch(92.8% .006 264.531);--color-gray-500:oklch(55.1% .027 264.364);--color-gray-600:oklch(44.6% .03 256.802);--color-gray-700:oklch(37.3% .034 259.733);--color-gray-800:oklch(27.8% .033 256.848);--color-white:#fff;--spacing:.25rem;--text-sm:.875rem;--text-sm--line-height:1.42857;--text-base:1rem;--text-base--line-height:1.5;--text-xl:1.25rem;--text-xl--line-height:1.4;--text-2xl:1.5rem;--text-2xl--line-height:1.33333;--text-3xl:1.875rem;--text-3xl--line-height:1.2;--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--leading-tight:1.25;--radius-lg:.5rem;--radius-2xl:1rem;--ease-out:cubic-bezier(0,0,.2,1);--blur-sm:8px;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4,0,.2,1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,::backdrop,:after,:before{border:0 solid;box-sizing:border-box;margin:0;padding:0}::file-selector-button{border:0 solid;box-sizing:border-box;margin:0;padding:0}:host,html{-webkit-text-size-adjust:100%;font-family:var(--default-font-family,ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);line-height:1.5;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-tap-highlight-color:transparent}hr{border-top-width:1px;color:inherit;height:0}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,pre,samp{font-family:var(--default-mono-font-family,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-size:1em;font-variation-settings:var(--default-mono-font-variation-settings,normal)}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{border-collapse:collapse;border-color:inherit;text-indent:0}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}menu,ol,ul{list-style:none}audio,canvas,embed,iframe,img,object,svg,video{display:block;vertical-align:middle}img,video{height:auto;max-width:100%}button,input,optgroup,select,textarea{background-color:#0000;border-radius:0;color:inherit;font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;opacity:1}::file-selector-button{background-color:#0000;border-radius:0;color:inherit;font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;opacity:1}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::-moz-placeholder{opacity:1}::placeholder{opacity:1}@supports (not (-webkit-appearance:-apple-pay-button)) or (contain-intrinsic-size:1px){::-moz-placeholder{color:currentColor}::placeholder{color:currentColor}@supports (color:color-mix(in lab,red,red)){::-moz-placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}::placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit,::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-day-field,::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-hour-field,::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-millisecond-field,::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){-webkit-appearance:button;-moz-appearance:button;appearance:button}::file-selector-button{-webkit-appearance:button;-moz-appearance:button;appearance:button}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer antd,components;@layer utilities{.collapse{visibility:collapse}.visible{visibility:visible}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.top-0{top:calc(var(--spacing)*0)}.top-1\/2{top:50%}.top-6{top:calc(var(--spacing)*6)}.right-6{right:calc(var(--spacing)*6)}.right-\[100px\]{right:100px}.right-\[550px\]{right:550px}.bottom-0{bottom:calc(var(--spacing)*0)}.left-0{left:calc(var(--spacing)*0)}.left-6{left:calc(var(--spacing)*6)}.z-10{z-index:10}.z-20{z-index:20}.container{width:100%}@media (min-width:40rem){.container{max-width:40rem}}@media (min-width:48rem){.container{max-width:48rem}}@media (min-width:64rem){.container{max-width:64rem}}@media (min-width:80rem){.container{max-width:80rem}}@media (min-width:96rem){.container{max-width:96rem}}.mx-4{margin-inline:calc(var(--spacing)*4)}.my-6{margin-block:calc(var(--spacing)*6)}.my-12{margin-block:calc(var(--spacing)*12)}.mt-2{margin-top:calc(var(--spacing)*2)}.mt-4{margin-top:calc(var(--spacing)*4)}.mr-6{margin-right:calc(var(--spacing)*6)}.mb-0{margin-bottom:calc(var(--spacing)*0)}.mb-0\!{margin-bottom:calc(var(--spacing)*0)!important}.mb-2{margin-bottom:calc(var(--spacing)*2)}.mb-4{margin-bottom:calc(var(--spacing)*4)}.mb-6{margin-bottom:calc(var(--spacing)*6)}.mb-8{margin-bottom:calc(var(--spacing)*8)}.mb-12{margin-bottom:calc(var(--spacing)*12)}.ml-4{margin-left:calc(var(--spacing)*4)}.block{display:block}.contents{display:contents}.flex{display:flex}.hidden{display:none}.inline{display:inline}.h-12{height:calc(var(--spacing)*12)}.h-\[200px\]{height:200px}.h-\[300px\]{height:300px}.h-\[400px\]{height:400px}.h-\[calc\(100vh-64px\)\]{height:calc(100vh - 64px)}.h-auto{height:auto}.h-full{height:100%}.h-screen{height:100vh}.w-5\/6{width:83.3333%}.w-8{width:calc(var(--spacing)*8)}.w-40{width:calc(var(--spacing)*40)}.w-\[78px\]{width:78px}.w-\[100px\]{width:100px}.w-\[250px\]{width:250px}.w-\[450px\]{width:450px}.w-full{width:100%}.w-screen{width:100vw}.max-w-full{max-width:100%}.max-w-none{max-width:none}.min-w-0{min-width:calc(var(--spacing)*0)}.flex-1{flex:1}.grow-0{flex-grow:0}.-translate-y-3\/4{--tw-translate-y:-75%;translate:var(--tw-translate-x)var(--tw-translate-y)}.transform{transform:var(--tw-rotate-x,)var(--tw-rotate-y,)var(--tw-rotate-z,)var(--tw-skew-x,)var(--tw-skew-y,)}.flex-col{flex-direction:column}.flex-row{flex-direction:row}.items-center{align-items:center}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.gap-4{gap:calc(var(--spacing)*4)}.gap-8{gap:calc(var(--spacing)*8)}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-x-hidden{overflow-x:hidden}.overflow-y-auto{overflow-y:auto}.rounded-2xl{border-radius:var(--radius-2xl)}.rounded-lg{border-radius:var(--radius-lg)}.border{border-style:var(--tw-border-style);border-width:1px}.border-0{border-style:var(--tw-border-style);border-width:0}.border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.border-r{border-right-style:var(--tw-border-style);border-right-width:1px}.border-r-0{border-right-style:var(--tw-border-style);border-right-width:0}.border-dashed{--tw-border-style:dashed;border-style:dashed}.border-gray-200{border-color:var(--color-gray-200)}.bg-linear-to-br{--tw-gradient-position:to bottom right}@supports (background-image:linear-gradient(in lab,red,red)){.bg-linear-to-br{--tw-gradient-position:to bottom right in oklab}}.bg-linear-to-br{background-image:linear-gradient(var(--tw-gradient-stops))}.bg-linear-to-r{--tw-gradient-position:to right}@supports (background-image:linear-gradient(in lab,red,red)){.bg-linear-to-r{--tw-gradient-position:to right in oklab}}.bg-linear-to-r{background-image:linear-gradient(var(--tw-gradient-stops))}.from-blue-50{--tw-gradient-from:var(--color-blue-50);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.from-gray-800{--tw-gradient-from:var(--color-gray-800);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.from-white{--tw-gradient-from:var(--color-white);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.via-gray-700{--tw-gradient-via:var(--color-gray-700);--tw-gradient-via-stops:var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-via)var(--tw-gradient-via-position),var(--tw-gradient-to)var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-via-stops)}.via-indigo-50\/50{--tw-gradient-via:#eef2ff80}@supports (color:color-mix(in lab,red,red)){.via-indigo-50\/50{--tw-gradient-via:color-mix(in oklab,var(--color-indigo-50)50%,transparent)}}.via-indigo-50\/50{--tw-gradient-via-stops:var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-via)var(--tw-gradient-via-position),var(--tw-gradient-to)var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-via-stops)}.to-gray-50\/30{--tw-gradient-to:#f9fafb4d}@supports (color:color-mix(in lab,red,red)){.to-gray-50\/30{--tw-gradient-to:color-mix(in oklab,var(--color-gray-50)30%,transparent)}}.to-gray-50\/30{--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.to-gray-600{--tw-gradient-to:var(--color-gray-600);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.to-purple-50{--tw-gradient-to:var(--color-purple-50);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.bg-clip-text{-webkit-background-clip:text;background-clip:text}.object-contain{-o-object-fit:contain;object-fit:contain}.p-1{padding:calc(var(--spacing)*1)}.p-6{padding:calc(var(--spacing)*6)}.px-2{padding-inline:calc(var(--spacing)*2)}.px-3{padding-inline:calc(var(--spacing)*3)}.px-4{padding-inline:calc(var(--spacing)*4)}.px-6{padding-inline:calc(var(--spacing)*6)}.py-1{padding-block:calc(var(--spacing)*1)}.py-2{padding-block:calc(var(--spacing)*2)}.py-6{padding-block:calc(var(--spacing)*6)}.text-center{text-align:center}.text-end{text-align:end}.text-start{text-align:start}.align-top{vertical-align:top}.text-2xl{font-size:var(--text-2xl);line-height:var(--tw-leading,var(--text-2xl--line-height))}.text-3xl\!{font-size:var(--text-3xl)!important;line-height:var(--tw-leading,var(--text-3xl--line-height))!important}.text-base{font-size:var(--text-base);line-height:var(--tw-leading,var(--text-base--line-height))}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-xl{font-size:var(--text-xl);line-height:var(--tw-leading,var(--text-xl--line-height))}.leading-tight{--tw-leading:var(--leading-tight);line-height:var(--leading-tight)}.font-bold{--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold)}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.text-ellipsis{text-overflow:ellipsis}.whitespace-nowrap{white-space:nowrap}.text-gray-500{color:var(--color-gray-500)}.text-transparent{color:#0000}.shadow-2xl{--tw-shadow:0 25px 50px -12px var(--tw-shadow-color,#00000040)}.shadow-2xl,.shadow-md{box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-md{--tw-shadow:0 4px 6px -1px var(--tw-shadow-color,#0000001a),0 2px 4px -2px var(--tw-shadow-color,#0000001a)}.filter{filter:var(--tw-blur,)var(--tw-brightness,)var(--tw-contrast,)var(--tw-grayscale,)var(--tw-hue-rotate,)var(--tw-invert,)var(--tw-saturate,)var(--tw-sepia,)var(--tw-drop-shadow,)}.backdrop-blur-sm{--tw-backdrop-blur:blur(var(--blur-sm));backdrop-filter:var(--tw-backdrop-blur,)var(--tw-backdrop-brightness,)var(--tw-backdrop-contrast,)var(--tw-backdrop-grayscale,)var(--tw-backdrop-hue-rotate,)var(--tw-backdrop-invert,)var(--tw-backdrop-opacity,)var(--tw-backdrop-saturate,)var(--tw-backdrop-sepia,)}.transition{transition-duration:var(--tw-duration,var(--default-transition-duration));transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function))}.transition-all{transition-duration:var(--tw-duration,var(--default-transition-duration));transition-property:all;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function))}.duration-200{--tw-duration:.2s;transition-duration:.2s}.duration-300{--tw-duration:.3s;transition-duration:.3s}.ease-out{--tw-ease:var(--ease-out);transition-timing-function:var(--ease-out)}.select-none{-webkit-user-select:none;-moz-user-select:none;user-select:none}@media (hover:hover){.hover\:scale-\[1\.02\]:hover{scale:1.02}.hover\:shadow-\[0_20px_60px_-15px_rgba\(0\,0\,0\,0\.3\)\]:hover{--tw-shadow:0 20px 60px -15px var(--tw-shadow-color,#0000004d)}.hover\:shadow-\[0_20px_60px_-15px_rgba\(0\,0\,0\,0\.3\)\]:hover,.hover\:shadow-lg:hover{box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.hover\:shadow-lg:hover{--tw-shadow:0 10px 15px -3px var(--tw-shadow-color,#0000001a),0 4px 6px -4px var(--tw-shadow-color,#0000001a)}}@media (min-width:48rem){.md\:top-10{top:calc(var(--spacing)*10)}.md\:top-16{top:calc(var(--spacing)*16)}.md\:right-16{right:calc(var(--spacing)*16)}.md\:left-14{left:calc(var(--spacing)*14)}}}@property --tw-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-z{syntax:"*";inherits:false;initial-value:0}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-gradient-position{syntax:"*";inherits:false}@property --tw-gradient-from{syntax:"<color>";inherits:false;initial-value:#0000}@property --tw-gradient-via{syntax:"<color>";inherits:false;initial-value:#0000}@property --tw-gradient-to{syntax:"<color>";inherits:false;initial-value:#0000}@property --tw-gradient-stops{syntax:"*";inherits:false}@property --tw-gradient-via-stops{syntax:"*";inherits:false}@property --tw-gradient-from-position{syntax:"<length-percentage>";inherits:false;initial-value:0%}@property --tw-gradient-via-position{syntax:"<length-percentage>";inherits:false;initial-value:50%}@property --tw-gradient-to-position{syntax:"<length-percentage>";inherits:false;initial-value:100%}@property --tw-leading{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}@property --tw-backdrop-blur{syntax:"*";inherits:false}@property --tw-backdrop-brightness{syntax:"*";inherits:false}@property --tw-backdrop-contrast{syntax:"*";inherits:false}@property --tw-backdrop-grayscale{syntax:"*";inherits:false}@property --tw-backdrop-hue-rotate{syntax:"*";inherits:false}@property --tw-backdrop-invert{syntax:"*";inherits:false}@property --tw-backdrop-opacity{syntax:"*";inherits:false}@property --tw-backdrop-saturate{syntax:"*";inherits:false}@property --tw-backdrop-sepia{syntax:"*";inherits:false}@property --tw-duration{syntax:"*";inherits:false}@property --tw-ease{syntax:"*";inherits:false}
|
|
1
|
+
@layer properties{@supports ((-webkit-hyphens:none) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,::backdrop,:after,:before{--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0;--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-border-style:solid;--tw-gradient-position:initial;--tw-gradient-from:#0000;--tw-gradient-via:#0000;--tw-gradient-to:#0000;--tw-gradient-stops:initial;--tw-gradient-via-stops:initial;--tw-gradient-from-position:0%;--tw-gradient-via-position:50%;--tw-gradient-to-position:100%;--tw-leading:initial;--tw-font-weight:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial;--tw-backdrop-blur:initial;--tw-backdrop-brightness:initial;--tw-backdrop-contrast:initial;--tw-backdrop-grayscale:initial;--tw-backdrop-hue-rotate:initial;--tw-backdrop-invert:initial;--tw-backdrop-opacity:initial;--tw-backdrop-saturate:initial;--tw-backdrop-sepia:initial;--tw-duration:initial;--tw-ease:initial}}}@layer theme{:host,:root{--font-sans:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";--font-mono:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;--color-blue-50:oklch(97% .014 254.604);--color-indigo-50:oklch(96.2% .018 272.314);--color-purple-50:oklch(97.7% .014 308.299);--color-gray-50:oklch(98.5% .002 247.839);--color-gray-200:oklch(92.8% .006 264.531);--color-gray-500:oklch(55.1% .027 264.364);--color-gray-600:oklch(44.6% .03 256.802);--color-gray-700:oklch(37.3% .034 259.733);--color-gray-800:oklch(27.8% .033 256.848);--color-white:#fff;--spacing:.25rem;--text-sm:.875rem;--text-sm--line-height:1.42857;--text-base:1rem;--text-base--line-height:1.5;--text-xl:1.25rem;--text-xl--line-height:1.4;--text-2xl:1.5rem;--text-2xl--line-height:1.33333;--text-3xl:1.875rem;--text-3xl--line-height:1.2;--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--leading-tight:1.25;--radius-lg:.5rem;--radius-2xl:1rem;--ease-out:cubic-bezier(0,0,.2,1);--blur-sm:8px;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4,0,.2,1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,::backdrop,:after,:before{border:0 solid;box-sizing:border-box;margin:0;padding:0}::file-selector-button{border:0 solid;box-sizing:border-box;margin:0;padding:0}:host,html{-webkit-text-size-adjust:100%;font-family:var(--default-font-family,ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);line-height:1.5;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-tap-highlight-color:transparent}hr{border-top-width:1px;color:inherit;height:0}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,pre,samp{font-family:var(--default-mono-font-family,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-size:1em;font-variation-settings:var(--default-mono-font-variation-settings,normal)}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{border-collapse:collapse;border-color:inherit;text-indent:0}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}menu,ol,ul{list-style:none}audio,canvas,embed,iframe,img,object,svg,video{display:block;vertical-align:middle}img,video{height:auto;max-width:100%}button,input,optgroup,select,textarea{background-color:#0000;border-radius:0;color:inherit;font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;opacity:1}::file-selector-button{background-color:#0000;border-radius:0;color:inherit;font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;opacity:1}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::-moz-placeholder{opacity:1}::placeholder{opacity:1}@supports (not (-webkit-appearance:-apple-pay-button)) or (contain-intrinsic-size:1px){::-moz-placeholder{color:currentColor}::placeholder{color:currentColor}@supports (color:color-mix(in lab,red,red)){::-moz-placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}::placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit,::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-day-field,::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-hour-field,::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-millisecond-field,::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){-webkit-appearance:button;-moz-appearance:button;appearance:button}::file-selector-button{-webkit-appearance:button;-moz-appearance:button;appearance:button}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer antd,components;@layer utilities{.collapse{visibility:collapse}.visible{visibility:visible}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.static{position:static}.top-0{top:calc(var(--spacing)*0)}.top-1\/2{top:50%}.top-6{top:calc(var(--spacing)*6)}.right-6{right:calc(var(--spacing)*6)}.right-\[100px\]{right:100px}.right-\[550px\]{right:550px}.bottom-0{bottom:calc(var(--spacing)*0)}.left-0{left:calc(var(--spacing)*0)}.left-6{left:calc(var(--spacing)*6)}.z-10{z-index:10}.z-20{z-index:20}.container{width:100%}@media (min-width:40rem){.container{max-width:40rem}}@media (min-width:48rem){.container{max-width:48rem}}@media (min-width:64rem){.container{max-width:64rem}}@media (min-width:80rem){.container{max-width:80rem}}@media (min-width:96rem){.container{max-width:96rem}}.mx-4{margin-inline:calc(var(--spacing)*4)}.my-6{margin-block:calc(var(--spacing)*6)}.my-12{margin-block:calc(var(--spacing)*12)}.mt-2{margin-top:calc(var(--spacing)*2)}.mt-4{margin-top:calc(var(--spacing)*4)}.mr-6{margin-right:calc(var(--spacing)*6)}.mb-0{margin-bottom:calc(var(--spacing)*0)}.mb-0\!{margin-bottom:calc(var(--spacing)*0)!important}.mb-2{margin-bottom:calc(var(--spacing)*2)}.mb-4{margin-bottom:calc(var(--spacing)*4)}.mb-6{margin-bottom:calc(var(--spacing)*6)}.mb-8{margin-bottom:calc(var(--spacing)*8)}.mb-12{margin-bottom:calc(var(--spacing)*12)}.ml-4{margin-left:calc(var(--spacing)*4)}.block{display:block}.contents{display:contents}.flex{display:flex}.hidden{display:none}.inline{display:inline}.h-12{height:calc(var(--spacing)*12)}.h-\[200px\]{height:200px}.h-\[300px\]{height:300px}.h-\[400px\]{height:400px}.h-\[calc\(100vh-64px\)\]{height:calc(100vh - 64px)}.h-auto{height:auto}.h-full{height:100%}.h-screen{height:100vh}.w-5\/6{width:83.3333%}.w-8{width:calc(var(--spacing)*8)}.w-40{width:calc(var(--spacing)*40)}.w-\[78px\]{width:78px}.w-\[100px\]{width:100px}.w-\[250px\]{width:250px}.w-\[450px\]{width:450px}.w-full{width:100%}.w-screen{width:100vw}.max-w-full{max-width:100%}.max-w-none{max-width:none}.min-w-0{min-width:calc(var(--spacing)*0)}.flex-1{flex:1}.grow-0{flex-grow:0}.-translate-y-3\/4{--tw-translate-y:-75%;translate:var(--tw-translate-x)var(--tw-translate-y)}.transform{transform:var(--tw-rotate-x,)var(--tw-rotate-y,)var(--tw-rotate-z,)var(--tw-skew-x,)var(--tw-skew-y,)}.flex-col{flex-direction:column}.flex-row{flex-direction:row}.items-center{align-items:center}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.gap-4{gap:calc(var(--spacing)*4)}.gap-8{gap:calc(var(--spacing)*8)}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-x-hidden{overflow-x:hidden}.overflow-y-auto{overflow-y:auto}.rounded-2xl{border-radius:var(--radius-2xl)}.rounded-lg{border-radius:var(--radius-lg)}.border{border-style:var(--tw-border-style);border-width:1px}.border-0{border-style:var(--tw-border-style);border-width:0}.border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.border-r{border-right-style:var(--tw-border-style);border-right-width:1px}.border-r-0{border-right-style:var(--tw-border-style);border-right-width:0}.border-dashed{--tw-border-style:dashed;border-style:dashed}.border-gray-200{border-color:var(--color-gray-200)}.bg-linear-to-br{--tw-gradient-position:to bottom right}@supports (background-image:linear-gradient(in lab,red,red)){.bg-linear-to-br{--tw-gradient-position:to bottom right in oklab}}.bg-linear-to-br{background-image:linear-gradient(var(--tw-gradient-stops))}.bg-linear-to-r{--tw-gradient-position:to right}@supports (background-image:linear-gradient(in lab,red,red)){.bg-linear-to-r{--tw-gradient-position:to right in oklab}}.bg-linear-to-r{background-image:linear-gradient(var(--tw-gradient-stops))}.from-blue-50{--tw-gradient-from:var(--color-blue-50);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.from-gray-800{--tw-gradient-from:var(--color-gray-800);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.from-white{--tw-gradient-from:var(--color-white);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.via-gray-700{--tw-gradient-via:var(--color-gray-700);--tw-gradient-via-stops:var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-via)var(--tw-gradient-via-position),var(--tw-gradient-to)var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-via-stops)}.via-indigo-50\/50{--tw-gradient-via:#eef2ff80}@supports (color:color-mix(in lab,red,red)){.via-indigo-50\/50{--tw-gradient-via:color-mix(in oklab,var(--color-indigo-50)50%,transparent)}}.via-indigo-50\/50{--tw-gradient-via-stops:var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-via)var(--tw-gradient-via-position),var(--tw-gradient-to)var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-via-stops)}.to-gray-50\/30{--tw-gradient-to:#f9fafb4d}@supports (color:color-mix(in lab,red,red)){.to-gray-50\/30{--tw-gradient-to:color-mix(in oklab,var(--color-gray-50)30%,transparent)}}.to-gray-50\/30{--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.to-gray-600{--tw-gradient-to:var(--color-gray-600);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.to-purple-50{--tw-gradient-to:var(--color-purple-50);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.bg-clip-text{-webkit-background-clip:text;background-clip:text}.object-contain{-o-object-fit:contain;object-fit:contain}.p-1{padding:calc(var(--spacing)*1)}.p-6{padding:calc(var(--spacing)*6)}.px-2{padding-inline:calc(var(--spacing)*2)}.px-3{padding-inline:calc(var(--spacing)*3)}.px-4{padding-inline:calc(var(--spacing)*4)}.px-6{padding-inline:calc(var(--spacing)*6)}.py-1{padding-block:calc(var(--spacing)*1)}.py-2{padding-block:calc(var(--spacing)*2)}.py-6{padding-block:calc(var(--spacing)*6)}.text-center{text-align:center}.text-end{text-align:end}.text-start{text-align:start}.align-top{vertical-align:top}.text-2xl{font-size:var(--text-2xl);line-height:var(--tw-leading,var(--text-2xl--line-height))}.text-3xl\!{font-size:var(--text-3xl)!important;line-height:var(--tw-leading,var(--text-3xl--line-height))!important}.text-base{font-size:var(--text-base);line-height:var(--tw-leading,var(--text-base--line-height))}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-xl{font-size:var(--text-xl);line-height:var(--tw-leading,var(--text-xl--line-height))}.leading-tight{--tw-leading:var(--leading-tight);line-height:var(--leading-tight)}.font-bold{--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold)}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.text-ellipsis{text-overflow:ellipsis}.whitespace-nowrap{white-space:nowrap}.text-gray-500{color:var(--color-gray-500)}.text-transparent{color:#0000}.shadow-2xl{--tw-shadow:0 25px 50px -12px var(--tw-shadow-color,#00000040)}.shadow-2xl,.shadow-md{box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-md{--tw-shadow:0 4px 6px -1px var(--tw-shadow-color,#0000001a),0 2px 4px -2px var(--tw-shadow-color,#0000001a)}.filter{filter:var(--tw-blur,)var(--tw-brightness,)var(--tw-contrast,)var(--tw-grayscale,)var(--tw-hue-rotate,)var(--tw-invert,)var(--tw-saturate,)var(--tw-sepia,)var(--tw-drop-shadow,)}.backdrop-blur-sm{--tw-backdrop-blur:blur(var(--blur-sm));backdrop-filter:var(--tw-backdrop-blur,)var(--tw-backdrop-brightness,)var(--tw-backdrop-contrast,)var(--tw-backdrop-grayscale,)var(--tw-backdrop-hue-rotate,)var(--tw-backdrop-invert,)var(--tw-backdrop-opacity,)var(--tw-backdrop-saturate,)var(--tw-backdrop-sepia,)}.transition{transition-duration:var(--tw-duration,var(--default-transition-duration));transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function))}.transition-all{transition-duration:var(--tw-duration,var(--default-transition-duration));transition-property:all;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function))}.duration-200{--tw-duration:.2s;transition-duration:.2s}.duration-300{--tw-duration:.3s;transition-duration:.3s}.ease-out{--tw-ease:var(--ease-out);transition-timing-function:var(--ease-out)}.select-none{-webkit-user-select:none;-moz-user-select:none;user-select:none}@media (hover:hover){.hover\:scale-\[1\.02\]:hover{scale:1.02}.hover\:shadow-\[0_20px_60px_-15px_rgba\(0\,0\,0\,0\.3\)\]:hover{--tw-shadow:0 20px 60px -15px var(--tw-shadow-color,#0000004d)}.hover\:shadow-\[0_20px_60px_-15px_rgba\(0\,0\,0\,0\.3\)\]:hover,.hover\:shadow-lg:hover{box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.hover\:shadow-lg:hover{--tw-shadow:0 10px 15px -3px var(--tw-shadow-color,#0000001a),0 4px 6px -4px var(--tw-shadow-color,#0000001a)}}@media (min-width:48rem){.md\:top-10{top:calc(var(--spacing)*10)}.md\:top-16{top:calc(var(--spacing)*16)}.md\:right-16{right:calc(var(--spacing)*16)}.md\:left-14{left:calc(var(--spacing)*14)}}}@property --tw-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-z{syntax:"*";inherits:false;initial-value:0}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-gradient-position{syntax:"*";inherits:false}@property --tw-gradient-from{syntax:"<color>";inherits:false;initial-value:#0000}@property --tw-gradient-via{syntax:"<color>";inherits:false;initial-value:#0000}@property --tw-gradient-to{syntax:"<color>";inherits:false;initial-value:#0000}@property --tw-gradient-stops{syntax:"*";inherits:false}@property --tw-gradient-via-stops{syntax:"*";inherits:false}@property --tw-gradient-from-position{syntax:"<length-percentage>";inherits:false;initial-value:0%}@property --tw-gradient-via-position{syntax:"<length-percentage>";inherits:false;initial-value:50%}@property --tw-gradient-to-position{syntax:"<length-percentage>";inherits:false;initial-value:100%}@property --tw-leading{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}@property --tw-backdrop-blur{syntax:"*";inherits:false}@property --tw-backdrop-brightness{syntax:"*";inherits:false}@property --tw-backdrop-contrast{syntax:"*";inherits:false}@property --tw-backdrop-grayscale{syntax:"*";inherits:false}@property --tw-backdrop-hue-rotate{syntax:"*";inherits:false}@property --tw-backdrop-invert{syntax:"*";inherits:false}@property --tw-backdrop-opacity{syntax:"*";inherits:false}@property --tw-backdrop-saturate{syntax:"*";inherits:false}@property --tw-backdrop-sepia{syntax:"*";inherits:false}@property --tw-duration{syntax:"*";inherits:false}@property --tw-ease{syntax:"*";inherits:false}
|
package/lib/index.d.ts
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { ButtonProps, SelectProps, FormInstance, DrawerProps, Button, FormProps, ModalProps } from 'antd';
|
|
2
|
-
import { Options, KyInstance } from 'ky';
|
|
3
2
|
import { FC, PropsWithChildren, Key, ReactNode, ReactElement, Ref, DetailedHTMLProps, ImgHTMLAttributes, ComponentProps } from 'react';
|
|
3
|
+
import { Options, KyInstance } from 'ky';
|
|
4
4
|
import { ParagraphProps } from 'antd/es/typography/Paragraph';
|
|
5
5
|
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
6
|
-
import { useLocation } from 'react-router
|
|
6
|
+
import { useLocation, PathPattern } from 'react-router';
|
|
7
7
|
import { ItemType, SubMenuType, MenuItemGroupType, MenuItemType } from 'antd/es/menu/interface';
|
|
8
8
|
import { AnyObject } from 'antd/es/_util/type';
|
|
9
9
|
import { TableProps } from 'antd/es/table';
|
|
@@ -12,13 +12,160 @@ import { StateCreator } from 'zustand';
|
|
|
12
12
|
import * as _tanstack_react_query from '@tanstack/react-query';
|
|
13
13
|
import { StateStorage } from 'zustand/middleware';
|
|
14
14
|
|
|
15
|
+
/** 成功响应状态码字段类型 */
|
|
16
|
+
type StatusField = 'code' | 'status' | 'errno';
|
|
17
|
+
/** 响应类型 */
|
|
18
|
+
type ResponseType = 'json' | 'blob' | 'text' | 'arrayBuffer' | 'formData';
|
|
19
|
+
/** 通用请求选项接口 */
|
|
20
|
+
interface RequestOptions extends Options {
|
|
21
|
+
responseType?: ResponseType;
|
|
22
|
+
/** 是否使用全局模式(覆盖 context 中的 isGlobalMode) */
|
|
23
|
+
isGlobalMode?: boolean;
|
|
24
|
+
}
|
|
25
|
+
/** 业务状态码字段配置 */
|
|
26
|
+
interface BusinessStatusCodeConfig {
|
|
27
|
+
/** 成功状态码列表,默认为 [0, 1, 200] */
|
|
28
|
+
successCodes?: readonly number[];
|
|
29
|
+
/** 需要检查的业务状态码字段,默认为 ['code', 'status', 'errno'] */
|
|
30
|
+
statusFields?: readonly StatusField[];
|
|
31
|
+
}
|
|
32
|
+
/** 错误消息提取配置 */
|
|
33
|
+
interface ErrorMessageConfig {
|
|
34
|
+
/** 错误消息字段列表(按优先级),默认为 ['msg', 'message', 'error'] */
|
|
35
|
+
errorFields?: readonly string[];
|
|
36
|
+
/** 自定义错误消息提取函数,优先级高于 errorFields */
|
|
37
|
+
extractErrorMessage?: (data: unknown) => string;
|
|
38
|
+
}
|
|
39
|
+
/** HTTP 状态码错误处理回调 */
|
|
40
|
+
interface HttpErrorHandlers {
|
|
41
|
+
/** 401 未授权处理 */
|
|
42
|
+
onUnauthorized?: (data?: unknown) => void;
|
|
43
|
+
/** 403 禁止访问处理 */
|
|
44
|
+
onForbidden?: (data?: unknown) => void;
|
|
45
|
+
/** 412 未注册处理 */
|
|
46
|
+
onUnregistered?: (data?: unknown) => void;
|
|
47
|
+
/** 其他 HTTP 错误处理 */
|
|
48
|
+
onError?: (status: number, data?: unknown, errorMessage?: string) => void;
|
|
49
|
+
/** 网络错误处理 */
|
|
50
|
+
onNetworkError?: (error: Error) => void;
|
|
51
|
+
}
|
|
52
|
+
/** 响应验证配置 */
|
|
53
|
+
interface ResponseValidationConfig {
|
|
54
|
+
/** 自定义响应成功判断函数,优先级高于业务状态码配置 */
|
|
55
|
+
isSuccess?: (data: unknown, status: number) => boolean;
|
|
56
|
+
}
|
|
57
|
+
/** React 上下文信息接口 */
|
|
58
|
+
interface KyClientContext {
|
|
59
|
+
token?: string;
|
|
60
|
+
isGlobalMode?: boolean;
|
|
61
|
+
loginPath?: string;
|
|
62
|
+
apiBaseUrl?: string;
|
|
63
|
+
appId?: string | number;
|
|
64
|
+
clear?: () => void;
|
|
65
|
+
notifyError?: (title: string, description: string) => void;
|
|
66
|
+
}
|
|
67
|
+
/** KyClient 构造函数配置 */
|
|
68
|
+
interface KyClientOptions extends BusinessStatusCodeConfig, ErrorMessageConfig, HttpErrorHandlers, ResponseValidationConfig {
|
|
69
|
+
/** 基础 URL */
|
|
70
|
+
baseURL?: string;
|
|
71
|
+
/** 是否禁用默认的错误提示(notification),默认为 false */
|
|
72
|
+
disableDefaultErrorNotification?: boolean;
|
|
73
|
+
/** React 上下文信息 */
|
|
74
|
+
context?: KyClientContext;
|
|
75
|
+
}
|
|
76
|
+
/** HTTP客户端方法接口 */
|
|
77
|
+
interface KyMethods {
|
|
78
|
+
get: <T = unknown>(url: string, options?: RequestOptions) => Promise<T>;
|
|
79
|
+
post: <T = unknown>(url: string, data?: unknown, options?: RequestOptions) => Promise<T>;
|
|
80
|
+
put: <T = unknown>(url: string, data?: unknown, options?: RequestOptions) => Promise<T>;
|
|
81
|
+
delete: <T = unknown>(url: string, options?: RequestOptions) => Promise<T>;
|
|
82
|
+
patch: <T = unknown>(url: string, data?: unknown, options?: RequestOptions) => Promise<T>;
|
|
83
|
+
options: <T = unknown>(url: string, options?: RequestOptions) => Promise<T>;
|
|
84
|
+
head: <T = unknown>(url: string, options?: RequestOptions) => Promise<T>;
|
|
85
|
+
request: <T = unknown>(options: RequestOptions & {
|
|
86
|
+
url: string;
|
|
87
|
+
}) => Promise<T>;
|
|
88
|
+
instance: KyInstance;
|
|
89
|
+
}
|
|
90
|
+
/**
|
|
91
|
+
* Ky HTTP 客户端类
|
|
92
|
+
* 封装了基于 ky 的 HTTP 请求逻辑,包括认证、错误处理、响应验证等
|
|
93
|
+
*/
|
|
94
|
+
declare class KyClient implements KyMethods {
|
|
95
|
+
private readonly _instance;
|
|
96
|
+
private readonly businessConfig;
|
|
97
|
+
private readonly errorConfig;
|
|
98
|
+
private readonly errorHandlers;
|
|
99
|
+
private context?;
|
|
100
|
+
private readonly disableDefaultErrorNotification;
|
|
101
|
+
constructor(options?: KyClientOptions);
|
|
102
|
+
/** 获取 ky 实例(用于高级用法) */
|
|
103
|
+
get instance(): KyInstance;
|
|
104
|
+
get: <T = unknown>(url: string, options?: RequestOptions) => Promise<T>;
|
|
105
|
+
post: <T = unknown>(url: string, data?: unknown, options?: RequestOptions) => Promise<T>;
|
|
106
|
+
put: <T = unknown>(url: string, data?: unknown, options?: RequestOptions) => Promise<T>;
|
|
107
|
+
delete: <T = unknown>(url: string, options?: RequestOptions) => Promise<T>;
|
|
108
|
+
patch: <T = unknown>(url: string, data?: unknown, options?: RequestOptions) => Promise<T>;
|
|
109
|
+
options: <T = unknown>(url: string, requestOptions?: RequestOptions) => Promise<T>;
|
|
110
|
+
head: <T = unknown>(url: string, requestOptions?: RequestOptions) => Promise<T>;
|
|
111
|
+
request: <T = unknown>(requestOptions: RequestOptions & {
|
|
112
|
+
url: string;
|
|
113
|
+
}) => Promise<T>;
|
|
114
|
+
/**
|
|
115
|
+
* 通用请求处理函数
|
|
116
|
+
*/
|
|
117
|
+
private makeRequest;
|
|
118
|
+
/**
|
|
119
|
+
* 创建响应处理函数
|
|
120
|
+
*/
|
|
121
|
+
private createResponseHandler;
|
|
122
|
+
/**
|
|
123
|
+
* 请求前处理:设置认证和 appId headers
|
|
124
|
+
*/
|
|
125
|
+
private handleBeforeRequest;
|
|
126
|
+
/**
|
|
127
|
+
* 错误前处理:处理 HTTP 状态码错误
|
|
128
|
+
*/
|
|
129
|
+
private handleBeforeError;
|
|
130
|
+
/**
|
|
131
|
+
* 处理 HTTP 状态码错误
|
|
132
|
+
*/
|
|
133
|
+
private handleHttpStatusError;
|
|
134
|
+
/**
|
|
135
|
+
* 默认处理未授权错误
|
|
136
|
+
*/
|
|
137
|
+
private defaultHandleUnauthorized;
|
|
138
|
+
/**
|
|
139
|
+
* 默认处理未注册错误
|
|
140
|
+
*/
|
|
141
|
+
private defaultHandleUnregistered;
|
|
142
|
+
/**
|
|
143
|
+
* 默认处理禁止访问错误
|
|
144
|
+
*/
|
|
145
|
+
private defaultHandleForbidden;
|
|
146
|
+
}
|
|
147
|
+
/**
|
|
148
|
+
* 在组件中使用 KyClient 的 Hook
|
|
149
|
+
* 创建新的 KyClient 实例,并从 ToolkitsProvider 获取 context
|
|
150
|
+
* 这样可以确保每个组件使用正确的 context(特别是 isGlobalMode)
|
|
151
|
+
*
|
|
152
|
+
* @example
|
|
153
|
+
* import { useKyClient } from '@/libs'
|
|
154
|
+
*
|
|
155
|
+
* function MyComponent() {
|
|
156
|
+
* const { get, post } = useKyClient()
|
|
157
|
+
* // 使用 get, post 等方法
|
|
158
|
+
* }
|
|
159
|
+
*/
|
|
160
|
+
declare function useKyClient(): KyClient;
|
|
161
|
+
|
|
15
162
|
interface AuthButtonProps extends ButtonProps {
|
|
16
163
|
/** 权限码,支持单个或多个 */
|
|
17
164
|
code?: string | string[];
|
|
18
165
|
/** 加载时是否显示 loading 状态 */
|
|
19
166
|
showLoading?: boolean;
|
|
20
167
|
/** 请求配置 */
|
|
21
|
-
config?:
|
|
168
|
+
config?: RequestOptions;
|
|
22
169
|
}
|
|
23
170
|
/**
|
|
24
171
|
* 授权按钮组件
|
|
@@ -98,22 +245,14 @@ declare const KeepAlive: ({ cacheKey, children, disabled, getCacheKey }: KeepAli
|
|
|
98
245
|
interface KeepAliveOutletProps {
|
|
99
246
|
/** 是否禁用缓存,默认 false */
|
|
100
247
|
disabled?: boolean;
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
* <Route path="/" element={<Layout />}>
|
|
110
|
-
* <KeepAliveProvider maxCache={10}>
|
|
111
|
-
* <KeepAliveOutlet />
|
|
112
|
-
* </KeepAliveProvider>
|
|
113
|
-
* </Route>
|
|
114
|
-
* ```
|
|
115
|
-
*/
|
|
116
|
-
declare const KeepAliveOutlet: ({ disabled }: KeepAliveOutletProps) => react_jsx_runtime.JSX.Element;
|
|
248
|
+
/** 自定义缓存 key 前缀,用于区分不同的 KeepAliveOutlet 实例 */
|
|
249
|
+
cacheKeyPrefix?: string;
|
|
250
|
+
/** 是否启用路由切换过渡动画,默认 true */
|
|
251
|
+
enableTransition?: boolean;
|
|
252
|
+
/** 过渡动画时长(毫秒),默认 200 */
|
|
253
|
+
transitionDuration?: number;
|
|
254
|
+
}
|
|
255
|
+
declare const KeepAliveOutlet: ({ disabled, cacheKeyPrefix, enableTransition, transitionDuration, }: KeepAliveOutletProps) => react_jsx_runtime.JSX.Element;
|
|
117
256
|
|
|
118
257
|
/**
|
|
119
258
|
* KeepAlive 缓存项
|
|
@@ -205,29 +344,16 @@ type Merge<Object1, Object2> = Prettify<Omit<Object1, keyof Object2> & Object2>;
|
|
|
205
344
|
|
|
206
345
|
type MarkRequired<Type, Keys extends keyof Type> = Type extends Type ? Prettify<Type & Required<Omit<Type, Exclude<keyof Type, Keys>>>> : never;
|
|
207
346
|
|
|
208
|
-
type Area = 'all' | 'cn' | 'global';
|
|
209
|
-
type ScreenOrientation = 0 | 1;
|
|
210
347
|
interface Game {
|
|
211
|
-
id: number;
|
|
212
348
|
game_id: string | number;
|
|
213
|
-
|
|
214
|
-
name: string;
|
|
215
|
-
screen_type: ScreenOrientation;
|
|
216
|
-
area: Area;
|
|
217
|
-
icon: string;
|
|
218
|
-
auth: string;
|
|
219
|
-
ctime: string;
|
|
220
|
-
mtime: string;
|
|
221
|
-
is_delete: 0 | 1;
|
|
222
|
-
is_new_game: 0 | 1;
|
|
223
|
-
server_type: string;
|
|
349
|
+
[key: string]: any;
|
|
224
350
|
}
|
|
225
351
|
/**
|
|
226
352
|
* 导航菜单项类型
|
|
227
353
|
* 扩展 antd MenuItemType,添加路由支持
|
|
228
354
|
*/
|
|
229
355
|
type NavMenuItemType = Merge<MenuItemType, {
|
|
230
|
-
/** react-router
|
|
356
|
+
/** react-router 路由地址,用于菜单项点击时跳转 */
|
|
231
357
|
route?: string;
|
|
232
358
|
}>;
|
|
233
359
|
/**
|
|
@@ -280,15 +406,19 @@ interface NavigationConfig {
|
|
|
280
406
|
/** 菜单加载状态 */
|
|
281
407
|
loading?: boolean;
|
|
282
408
|
}
|
|
283
|
-
/** 路由匹配规则类型
|
|
284
|
-
|
|
409
|
+
/** 路由匹配规则类型
|
|
410
|
+
* 支持:
|
|
411
|
+
* - PathPattern 对象(React Router 路由模式,支持 caseSensitive 和 end 选项)
|
|
412
|
+
* - 正则表达式(用于更复杂的匹配需求)
|
|
413
|
+
*/
|
|
414
|
+
type RouteMatchRule = PathPattern | RegExp;
|
|
285
415
|
/** 游戏选择器配置 */
|
|
286
416
|
interface GameSelectConfig<T extends Game = Game> {
|
|
287
417
|
/** 游戏过滤函数 */
|
|
288
418
|
filter?: GameSelectProps<T>['filter'];
|
|
289
419
|
/** 选项自定义函数 */
|
|
290
420
|
options?: GameSelectProps<T>['options'];
|
|
291
|
-
/**
|
|
421
|
+
/** 在这些路由路径下隐藏游戏选择器(支持 PathPattern 对象或正则表达式) */
|
|
292
422
|
hideOnRoutes?: RouteMatchRule[];
|
|
293
423
|
}
|
|
294
424
|
/** Layout 组件属性 */
|
|
@@ -397,6 +527,8 @@ interface InfiniteListRequestConfig<Values = any, PageParamType = PageParam> ext
|
|
|
397
527
|
searchParams?: RequestParamsResolver<Values, PageParamType>;
|
|
398
528
|
/** 请求头,可以是静态对象或动态函数 */
|
|
399
529
|
headers?: Record<string, string> | ((form: FormInstance<Values>) => Record<string, string>);
|
|
530
|
+
/** 是否为全局模式请求 */
|
|
531
|
+
isGlobalMode?: boolean;
|
|
400
532
|
}
|
|
401
533
|
/**
|
|
402
534
|
* 无限列表请求配置类型
|
|
@@ -600,6 +732,8 @@ interface QueryListRequestConfig extends CacheConfig {
|
|
|
600
732
|
body?: FormData | Record<string | number, any>;
|
|
601
733
|
searchParams?: Record<string | number, any>;
|
|
602
734
|
headers?: Record<string, string>;
|
|
735
|
+
/** 是否使用全局模式(覆盖 ToolkitsProvider 中的 isGlobalMode) */
|
|
736
|
+
isGlobalMode?: boolean;
|
|
603
737
|
}
|
|
604
738
|
/**
|
|
605
739
|
* 请求配置类型
|
|
@@ -1157,146 +1291,6 @@ declare function useFormModal<Values extends AnyObject = AnyObject, ExtraValues
|
|
|
1157
1291
|
*/
|
|
1158
1292
|
declare function useModalStore(): VisibilityState;
|
|
1159
1293
|
|
|
1160
|
-
/** 成功响应状态码字段类型 */
|
|
1161
|
-
type StatusField = 'code' | 'status' | 'errno';
|
|
1162
|
-
/** 响应类型 */
|
|
1163
|
-
type ResponseType = 'json' | 'blob' | 'text' | 'arrayBuffer' | 'formData';
|
|
1164
|
-
/** 通用请求选项接口 */
|
|
1165
|
-
interface RequestOptions extends Options {
|
|
1166
|
-
responseType?: ResponseType;
|
|
1167
|
-
}
|
|
1168
|
-
/** 业务状态码字段配置 */
|
|
1169
|
-
interface BusinessStatusCodeConfig {
|
|
1170
|
-
/** 成功状态码列表,默认为 [0, 1, 200] */
|
|
1171
|
-
successCodes?: readonly number[];
|
|
1172
|
-
/** 需要检查的业务状态码字段,默认为 ['code', 'status', 'errno'] */
|
|
1173
|
-
statusFields?: readonly StatusField[];
|
|
1174
|
-
}
|
|
1175
|
-
/** 错误消息提取配置 */
|
|
1176
|
-
interface ErrorMessageConfig {
|
|
1177
|
-
/** 错误消息字段列表(按优先级),默认为 ['msg', 'message', 'error'] */
|
|
1178
|
-
errorFields?: readonly string[];
|
|
1179
|
-
/** 自定义错误消息提取函数,优先级高于 errorFields */
|
|
1180
|
-
extractErrorMessage?: (data: unknown) => string;
|
|
1181
|
-
}
|
|
1182
|
-
/** HTTP 状态码错误处理回调 */
|
|
1183
|
-
interface HttpErrorHandlers {
|
|
1184
|
-
/** 401 未授权处理 */
|
|
1185
|
-
onUnauthorized?: (data?: unknown) => void;
|
|
1186
|
-
/** 403 禁止访问处理 */
|
|
1187
|
-
onForbidden?: (data?: unknown) => void;
|
|
1188
|
-
/** 412 未注册处理 */
|
|
1189
|
-
onUnregistered?: (data?: unknown) => void;
|
|
1190
|
-
/** 其他 HTTP 错误处理 */
|
|
1191
|
-
onError?: (status: number, data?: unknown, errorMessage?: string) => void;
|
|
1192
|
-
/** 网络错误处理 */
|
|
1193
|
-
onNetworkError?: (error: Error) => void;
|
|
1194
|
-
}
|
|
1195
|
-
/** 响应验证配置 */
|
|
1196
|
-
interface ResponseValidationConfig {
|
|
1197
|
-
/** 自定义响应成功判断函数,优先级高于业务状态码配置 */
|
|
1198
|
-
isSuccess?: (data: unknown, status: number) => boolean;
|
|
1199
|
-
}
|
|
1200
|
-
/** React 上下文信息接口 */
|
|
1201
|
-
interface KyClientContext {
|
|
1202
|
-
token?: string;
|
|
1203
|
-
isGlobalMode?: boolean;
|
|
1204
|
-
loginPath?: string;
|
|
1205
|
-
apiBaseUrl?: string;
|
|
1206
|
-
appId?: string | number;
|
|
1207
|
-
clear?: () => void;
|
|
1208
|
-
notifyError?: (title: string, description: string) => void;
|
|
1209
|
-
}
|
|
1210
|
-
/** KyClient 构造函数配置 */
|
|
1211
|
-
interface KyClientOptions extends BusinessStatusCodeConfig, ErrorMessageConfig, HttpErrorHandlers, ResponseValidationConfig {
|
|
1212
|
-
/** 基础 URL */
|
|
1213
|
-
baseURL?: string;
|
|
1214
|
-
/** 是否禁用默认的错误提示(notification),默认为 false */
|
|
1215
|
-
disableDefaultErrorNotification?: boolean;
|
|
1216
|
-
/** React 上下文信息 */
|
|
1217
|
-
context?: KyClientContext;
|
|
1218
|
-
}
|
|
1219
|
-
/** HTTP客户端方法接口 */
|
|
1220
|
-
interface KyMethods {
|
|
1221
|
-
get: <T = unknown>(url: string, options?: RequestOptions) => Promise<T>;
|
|
1222
|
-
post: <T = unknown>(url: string, data?: unknown, options?: RequestOptions) => Promise<T>;
|
|
1223
|
-
put: <T = unknown>(url: string, data?: unknown, options?: RequestOptions) => Promise<T>;
|
|
1224
|
-
delete: <T = unknown>(url: string, options?: RequestOptions) => Promise<T>;
|
|
1225
|
-
patch: <T = unknown>(url: string, data?: unknown, options?: RequestOptions) => Promise<T>;
|
|
1226
|
-
options: <T = unknown>(url: string, options?: RequestOptions) => Promise<T>;
|
|
1227
|
-
head: <T = unknown>(url: string, options?: RequestOptions) => Promise<T>;
|
|
1228
|
-
request: <T = unknown>(options: RequestOptions & {
|
|
1229
|
-
url: string;
|
|
1230
|
-
}) => Promise<T>;
|
|
1231
|
-
instance: KyInstance;
|
|
1232
|
-
}
|
|
1233
|
-
/**
|
|
1234
|
-
* Ky HTTP 客户端类
|
|
1235
|
-
* 封装了基于 ky 的 HTTP 请求逻辑,包括认证、错误处理、响应验证等
|
|
1236
|
-
*/
|
|
1237
|
-
declare class KyClient implements KyMethods {
|
|
1238
|
-
private readonly _instance;
|
|
1239
|
-
private readonly businessConfig;
|
|
1240
|
-
private readonly errorConfig;
|
|
1241
|
-
private readonly errorHandlers;
|
|
1242
|
-
private context?;
|
|
1243
|
-
private readonly disableDefaultErrorNotification;
|
|
1244
|
-
constructor(options?: KyClientOptions);
|
|
1245
|
-
/** 获取 ky 实例(用于高级用法) */
|
|
1246
|
-
get instance(): KyInstance;
|
|
1247
|
-
get: <T = unknown>(url: string, options?: RequestOptions) => Promise<T>;
|
|
1248
|
-
post: <T = unknown>(url: string, data?: unknown, options?: RequestOptions) => Promise<T>;
|
|
1249
|
-
put: <T = unknown>(url: string, data?: unknown, options?: RequestOptions) => Promise<T>;
|
|
1250
|
-
delete: <T = unknown>(url: string, options?: RequestOptions) => Promise<T>;
|
|
1251
|
-
patch: <T = unknown>(url: string, data?: unknown, options?: RequestOptions) => Promise<T>;
|
|
1252
|
-
options: <T = unknown>(url: string, requestOptions?: RequestOptions) => Promise<T>;
|
|
1253
|
-
head: <T = unknown>(url: string, requestOptions?: RequestOptions) => Promise<T>;
|
|
1254
|
-
request: <T = unknown>(requestOptions: RequestOptions & {
|
|
1255
|
-
url: string;
|
|
1256
|
-
}) => Promise<T>;
|
|
1257
|
-
/**
|
|
1258
|
-
* 通用请求处理函数
|
|
1259
|
-
*/
|
|
1260
|
-
private makeRequest;
|
|
1261
|
-
/**
|
|
1262
|
-
* 创建响应处理函数
|
|
1263
|
-
*/
|
|
1264
|
-
private createResponseHandler;
|
|
1265
|
-
/**
|
|
1266
|
-
* 请求前处理:设置认证和 appId headers
|
|
1267
|
-
*/
|
|
1268
|
-
private handleBeforeRequest;
|
|
1269
|
-
/**
|
|
1270
|
-
* 错误前处理:处理 HTTP 状态码错误
|
|
1271
|
-
*/
|
|
1272
|
-
private handleBeforeError;
|
|
1273
|
-
/**
|
|
1274
|
-
* 处理 HTTP 状态码错误
|
|
1275
|
-
*/
|
|
1276
|
-
private handleHttpStatusError;
|
|
1277
|
-
/**
|
|
1278
|
-
* 默认处理未授权错误
|
|
1279
|
-
*/
|
|
1280
|
-
private defaultHandleUnauthorized;
|
|
1281
|
-
/**
|
|
1282
|
-
* 默认处理未注册错误
|
|
1283
|
-
*/
|
|
1284
|
-
private defaultHandleUnregistered;
|
|
1285
|
-
/**
|
|
1286
|
-
* 默认处理禁止访问错误
|
|
1287
|
-
*/
|
|
1288
|
-
private defaultHandleForbidden;
|
|
1289
|
-
/**
|
|
1290
|
-
* 更新上下文信息
|
|
1291
|
-
* 用于在运行时更新 context(例如在 React 组件中从 context 获取最新信息)
|
|
1292
|
-
*/
|
|
1293
|
-
updateContext(context: KyClientContext): void;
|
|
1294
|
-
}
|
|
1295
|
-
|
|
1296
|
-
declare const _default$1: react_jsx_runtime.JSX.Element;
|
|
1297
|
-
|
|
1298
|
-
declare const _default: react_jsx_runtime.JSX.Element;
|
|
1299
|
-
|
|
1300
1294
|
interface NotFoundProps {
|
|
1301
1295
|
redirectUrl?: string;
|
|
1302
1296
|
}
|
|
@@ -1310,7 +1304,43 @@ interface SignInProps {
|
|
|
1310
1304
|
}
|
|
1311
1305
|
declare const SignIn: FC<SignInProps>;
|
|
1312
1306
|
|
|
1313
|
-
|
|
1307
|
+
/**
|
|
1308
|
+
* 菜单管理路由配置
|
|
1309
|
+
* 用于在 React Router 的 createRoutesFromElements 中使用
|
|
1310
|
+
*
|
|
1311
|
+
* @example
|
|
1312
|
+
* ```tsx
|
|
1313
|
+
* import { menuRoutes } from 'react-toolkits'
|
|
1314
|
+
* import { createRoutesFromElements, Outlet, Route } from 'react-router'
|
|
1315
|
+
*
|
|
1316
|
+
* createRoutesFromElements(
|
|
1317
|
+
* <Route path="menu/*">
|
|
1318
|
+
* {menuRoutes}
|
|
1319
|
+
* </Route>
|
|
1320
|
+
* )
|
|
1321
|
+
* ```
|
|
1322
|
+
*/
|
|
1323
|
+
declare const _default$1: react_jsx_runtime.JSX.Element;
|
|
1324
|
+
|
|
1325
|
+
/**
|
|
1326
|
+
* 权限管理路由配置
|
|
1327
|
+
* 用于在 React Router 的 createRoutesFromElements 中使用
|
|
1328
|
+
*
|
|
1329
|
+
* @example
|
|
1330
|
+
* ```tsx
|
|
1331
|
+
* import { permissionRoutes, PermissionRoutesWrapper } from 'react-toolkits'
|
|
1332
|
+
* import { createRoutesFromElements, Route } from 'react-router'
|
|
1333
|
+
*
|
|
1334
|
+
* createRoutesFromElements(
|
|
1335
|
+
* <Route path="permission/*" element={<PermissionRoutesWrapper />}>
|
|
1336
|
+
* {permissionRoutes}
|
|
1337
|
+
* </Route>
|
|
1338
|
+
* )
|
|
1339
|
+
* ```
|
|
1340
|
+
*/
|
|
1341
|
+
declare const _default: react_jsx_runtime.JSX.Element;
|
|
1342
|
+
|
|
1343
|
+
declare function useAuth(code?: string | string[], config?: RequestOptions): {
|
|
1314
1344
|
data: boolean | Record<string, boolean>;
|
|
1315
1345
|
error: Error;
|
|
1316
1346
|
isError: true;
|
|
@@ -1500,4 +1530,4 @@ declare function useAuth(code?: string | string[], config?: Options): {
|
|
|
1500
1530
|
declare function useMenuList(): _tanstack_react_query.UseQueryResult<MenuListItem[], Error>;
|
|
1501
1531
|
declare const useGames: () => _tanstack_react_query.UseQueryResult<Game[], Error>;
|
|
1502
1532
|
|
|
1503
|
-
export { APP_ID_HEADER, AuthButton, type AuthButtonProps, type BusinessStatusCodeConfig, DynamicTags, type DynamicTagsProps, type ErrorMessageConfig, ExpandableParagraph, type ExpandableParagraphProps, FRONTEND_ROUTE_PREFIX, FilterFormWrapper, type FilterFormWrapperProps, type Game, type GameSelectConfig, type GameSelectProps, type HeaderExtra, type HeaderExtraConfig, Highlight, type HighlightProps, type HttpErrorHandlers, InfiniteList, type InfiniteListDataAdapter, type InfiniteListPayload, type InfiniteListProps, type InfiniteListRef, type InfiniteListRequestConfig, type InfiniteListRequestConfigType, type JsonResponse, KeepAlive, type KeepAliveCacheItem, KeepAliveOutlet, type KeepAliveOutletProps, type KeepAliveProps, KeepAliveProvider, type KeepAliveProviderProps, KyClient, type KyClientContext, type KyClientOptions, Layout, type LayoutProps, Logo, type LogoProps, type MenuListItem, type NavItem, type NavMenuItemGroupType, type NavMenuItemType, type NavSubMenuType, type NavigationConfig, NotFound, OperationLogList, type PageParam, type Permission, PermissionMode, QueryList, QueryListAction, type QueryListPayload, type QueryListProps, type QueryListRef, type RecursivePartial, RequireAuth, type RequireAuthProps, RequireGame, type ResponseType, type ResponseValidationConfig, type RouteMatchRule, SSO_URL, SelectAll, type SelectAllProps, type ShowFormOptions$1 as ShowFormDrawerOptions, type ShowFormOptions as ShowFormModalOptions, SignIn, ToolkitsProvider, type ToolkitsProviderProps, type UseDrawerOperation, type UseDrawerProps, type UseFormDrawerProps, type UseFormDrawerReturn, type UseFormModalProps, type UseFormModalReturn, type UseKeepAliveReturn, type UseModalOperation, type UseModalProps, UserDropdown, type VisibilityState, WILDCARD, createVisibilityStoreConfig, generateId, _default$1 as
|
|
1533
|
+
export { APP_ID_HEADER, AuthButton, type AuthButtonProps, type BusinessStatusCodeConfig, DynamicTags, type DynamicTagsProps, type ErrorMessageConfig, ExpandableParagraph, type ExpandableParagraphProps, FRONTEND_ROUTE_PREFIX, FilterFormWrapper, type FilterFormWrapperProps, type Game, type GameSelectConfig, type GameSelectProps, type HeaderExtra, type HeaderExtraConfig, Highlight, type HighlightProps, type HttpErrorHandlers, InfiniteList, type InfiniteListDataAdapter, type InfiniteListPayload, type InfiniteListProps, type InfiniteListRef, type InfiniteListRequestConfig, type InfiniteListRequestConfigType, type JsonResponse, KeepAlive, type KeepAliveCacheItem, KeepAliveOutlet, type KeepAliveOutletProps, type KeepAliveProps, KeepAliveProvider, type KeepAliveProviderProps, KyClient, type KyClientContext, type KyClientOptions, Layout, type LayoutProps, Logo, type LogoProps, type MenuListItem, type NavItem, type NavMenuItemGroupType, type NavMenuItemType, type NavSubMenuType, type NavigationConfig, NotFound, OperationLogList, type PageParam, type Permission, PermissionMode, QueryList, QueryListAction, type QueryListPayload, type QueryListProps, type QueryListRef, type RecursivePartial, RequireAuth, type RequireAuthProps, RequireGame, type ResponseType, type ResponseValidationConfig, type RouteMatchRule, SSO_URL, SelectAll, type SelectAllProps, type ShowFormOptions$1 as ShowFormDrawerOptions, type ShowFormOptions as ShowFormModalOptions, SignIn, ToolkitsProvider, type ToolkitsProviderProps, type UseDrawerOperation, type UseDrawerProps, type UseFormDrawerProps, type UseFormDrawerReturn, type UseFormModalProps, type UseFormModalReturn, type UseKeepAliveReturn, type UseModalOperation, type UseModalProps, UserDropdown, type VisibilityState, WILDCARD, createVisibilityStoreConfig, generateId, _default$1 as menuRoutes, mixedStorage, _default as permissionRoutes, useAuth, useDrawer, useDrawerStore, useFormDrawer, useFormModal, useGames, useInfiniteListStore, useKeepAlive, useKeepAliveContext, useKyClient, useMenuList, useModal, useModalStore, useQueryListStore, useToolkitsStore };
|