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 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-dom:^7
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-dom'
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-dom'
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-dom';
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?: Options;
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
- * KeepAliveOutlet 组件
104
- * 路由级别的 KeepAlive,自动缓存所有通过 Outlet 渲染的组件
105
- * 使用 React 19 Activity API 实现,避免路由切换时组件被销毁
106
- *
107
- * @example
108
- * ```tsx
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
- game_group: string;
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-dom 路由地址,用于菜单项点击时跳转 */
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
- type RouteMatchRule = string | RegExp;
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
- declare function useAuth(code?: string | string[], config?: Options): {
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 menu, mixedStorage, _default as permission, useAuth, useDrawer, useDrawerStore, useFormDrawer, useFormModal, useGames, useInfiniteListStore, useKeepAlive, useKeepAliveContext, useMenuList, useModal, useModalStore, useQueryListStore, useToolkitsStore };
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 };