vxui-re 1.0.4 → 1.0.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (173) hide show
  1. package/LICENSE +0 -0
  2. package/dist/404.html +0 -0
  3. package/dist/assets/index-CnEehOVd.js +1279 -0
  4. package/dist/assets/index-rt2jc-43.css +1 -0
  5. package/dist/colorful_flat_icon.ico +0 -0
  6. package/dist/colorful_flat_icon.svg +0 -0
  7. package/dist/index.html +47 -0
  8. package/dist/wrangler.json +1 -1
  9. package/llms.txt +0 -0
  10. package/package.json +1 -1
  11. package/dist/index.cjs +0 -144
  12. package/dist/index.css +0 -1
  13. package/dist/index.d.ts +0 -2
  14. package/dist/index.js +0 -13289
  15. package/dist/src/components/Accordion.d.ts +0 -14
  16. package/dist/src/components/Alert.d.ts +0 -10
  17. package/dist/src/components/AppShell.d.ts +0 -33
  18. package/dist/src/components/Article.d.ts +0 -72
  19. package/dist/src/components/Avatar.d.ts +0 -12
  20. package/dist/src/components/Badge.d.ts +0 -7
  21. package/dist/src/components/Breadcrumb.d.ts +0 -12
  22. package/dist/src/components/Button.d.ts +0 -18
  23. package/dist/src/components/Calendar.d.ts +0 -10
  24. package/dist/src/components/Card.d.ts +0 -17
  25. package/dist/src/components/Carousel.d.ts +0 -15
  26. package/dist/src/components/Checkbox.d.ts +0 -7
  27. package/dist/src/components/CodeBlock.d.ts +0 -9
  28. package/dist/src/components/ColorPicker.d.ts +0 -13
  29. package/dist/src/components/CommandPalette.d.ts +0 -22
  30. package/dist/src/components/ContextMenu.d.ts +0 -20
  31. package/dist/src/components/DatePicker.d.ts +0 -15
  32. package/dist/src/components/Descriptions.d.ts +0 -29
  33. package/dist/src/components/Dialog.d.ts +0 -49
  34. package/dist/src/components/DropdownMenu.d.ts +0 -55
  35. package/dist/src/components/EmptyState.d.ts +0 -9
  36. package/dist/src/components/FileUpload.d.ts +0 -17
  37. package/dist/src/components/Form.d.ts +0 -28
  38. package/dist/src/components/Heading.d.ts +0 -13
  39. package/dist/src/components/HoverCard.d.ts +0 -11
  40. package/dist/src/components/Image.d.ts +0 -30
  41. package/dist/src/components/Input.d.ts +0 -18
  42. package/dist/src/components/Label.d.ts +0 -5
  43. package/dist/src/components/LanguageSwitcher.d.ts +0 -9
  44. package/dist/src/components/Menubar.d.ts +0 -24
  45. package/dist/src/components/MultiSelect.d.ts +0 -27
  46. package/dist/src/components/NavigationMenu.d.ts +0 -20
  47. package/dist/src/components/Notification.d.ts +0 -30
  48. package/dist/src/components/NumberInput.d.ts +0 -12
  49. package/dist/src/components/Pagination.d.ts +0 -9
  50. package/dist/src/components/PinInput.d.ts +0 -37
  51. package/dist/src/components/Popover.d.ts +0 -13
  52. package/dist/src/components/Progress.d.ts +0 -11
  53. package/dist/src/components/Radio.d.ts +0 -12
  54. package/dist/src/components/Rating.d.ts +0 -14
  55. package/dist/src/components/Resizable.d.ts +0 -35
  56. package/dist/src/components/Responsive.d.ts +0 -25
  57. package/dist/src/components/Result.d.ts +0 -18
  58. package/dist/src/components/ScrollArea.d.ts +0 -21
  59. package/dist/src/components/SegmentedControl.d.ts +0 -16
  60. package/dist/src/components/Select.d.ts +0 -31
  61. package/dist/src/components/Separator.d.ts +0 -6
  62. package/dist/src/components/Sheet/Sheet.d.ts +0 -30
  63. package/dist/src/components/Sheet/SheetPanel.d.ts +0 -44
  64. package/dist/src/components/Sheet/index.d.ts +0 -2
  65. package/dist/src/components/Sheet/useSheetState.d.ts +0 -34
  66. package/dist/src/components/Shell.d.ts +0 -88
  67. package/dist/src/components/Skeleton.d.ts +0 -8
  68. package/dist/src/components/Slider.d.ts +0 -7
  69. package/dist/src/components/Spinner.d.ts +0 -8
  70. package/dist/src/components/Stepper.d.ts +0 -14
  71. package/dist/src/components/Switch.d.ts +0 -7
  72. package/dist/src/components/Table.d.ts +0 -90
  73. package/dist/src/components/Tabs.d.ts +0 -5
  74. package/dist/src/components/TagInput.d.ts +0 -18
  75. package/dist/src/components/Text.d.ts +0 -14
  76. package/dist/src/components/Textarea.d.ts +0 -7
  77. package/dist/src/components/ThemeProvider.d.ts +0 -51
  78. package/dist/src/components/TimePicker.d.ts +0 -14
  79. package/dist/src/components/Timeline.d.ts +0 -14
  80. package/dist/src/components/Toast.d.ts +0 -15
  81. package/dist/src/components/Toggle.d.ts +0 -24
  82. package/dist/src/components/Tooltip.d.ts +0 -11
  83. package/dist/src/components/TreeView.d.ts +0 -20
  84. package/dist/src/components/__tests__/Accordion.test.d.ts +0 -1
  85. package/dist/src/components/__tests__/ActionSheet.test.d.ts +0 -1
  86. package/dist/src/components/__tests__/Alert.test.d.ts +0 -1
  87. package/dist/src/components/__tests__/AlertDialog.test.d.ts +0 -1
  88. package/dist/src/components/__tests__/AppShell.test.d.ts +0 -1
  89. package/dist/src/components/__tests__/Avatar.test.d.ts +0 -1
  90. package/dist/src/components/__tests__/Badge.test.d.ts +0 -1
  91. package/dist/src/components/__tests__/BottomNav.test.d.ts +0 -1
  92. package/dist/src/components/__tests__/Breadcrumb.test.d.ts +0 -1
  93. package/dist/src/components/__tests__/Button.test.d.ts +0 -1
  94. package/dist/src/components/__tests__/Calendar.test.d.ts +0 -1
  95. package/dist/src/components/__tests__/Card.test.d.ts +0 -1
  96. package/dist/src/components/__tests__/Carousel.test.d.ts +0 -1
  97. package/dist/src/components/__tests__/Checkbox.test.d.ts +0 -1
  98. package/dist/src/components/__tests__/CodeBlock.test.d.ts +0 -1
  99. package/dist/src/components/__tests__/ColorPicker.test.d.ts +0 -1
  100. package/dist/src/components/__tests__/CommandPalette.test.d.ts +0 -1
  101. package/dist/src/components/__tests__/ContextMenu.test.d.ts +0 -1
  102. package/dist/src/components/__tests__/DatePicker.test.d.ts +0 -1
  103. package/dist/src/components/__tests__/Dialog.test.d.ts +0 -1
  104. package/dist/src/components/__tests__/DialogFormControls.test.d.ts +0 -1
  105. package/dist/src/components/__tests__/DropdownMenu.test.d.ts +0 -1
  106. package/dist/src/components/__tests__/EmptyState.test.d.ts +0 -1
  107. package/dist/src/components/__tests__/FileUpload.test.d.ts +0 -1
  108. package/dist/src/components/__tests__/Form.test.d.ts +0 -1
  109. package/dist/src/components/__tests__/Heading.test.d.ts +0 -1
  110. package/dist/src/components/__tests__/HoverCard.test.d.ts +0 -1
  111. package/dist/src/components/__tests__/Input.test.d.ts +0 -1
  112. package/dist/src/components/__tests__/Label.test.d.ts +0 -1
  113. package/dist/src/components/__tests__/LanguageSwitcher.test.d.ts +0 -1
  114. package/dist/src/components/__tests__/Menubar.test.d.ts +0 -1
  115. package/dist/src/components/__tests__/MobileDrawer.test.d.ts +0 -1
  116. package/dist/src/components/__tests__/MobileList.test.d.ts +0 -1
  117. package/dist/src/components/__tests__/MultiSelect.test.d.ts +0 -1
  118. package/dist/src/components/__tests__/NavigationMenu.test.d.ts +0 -1
  119. package/dist/src/components/__tests__/NumberInput.test.d.ts +0 -1
  120. package/dist/src/components/__tests__/Pagination.test.d.ts +0 -1
  121. package/dist/src/components/__tests__/Popover.test.d.ts +0 -1
  122. package/dist/src/components/__tests__/Progress.test.d.ts +0 -1
  123. package/dist/src/components/__tests__/Radio.test.d.ts +0 -1
  124. package/dist/src/components/__tests__/Rating.test.d.ts +0 -1
  125. package/dist/src/components/__tests__/Resizable.test.d.ts +0 -1
  126. package/dist/src/components/__tests__/Responsive.test.d.ts +0 -1
  127. package/dist/src/components/__tests__/ScrollArea.test.d.ts +0 -1
  128. package/dist/src/components/__tests__/SegmentedControl.test.d.ts +0 -1
  129. package/dist/src/components/__tests__/Select.test.d.ts +0 -1
  130. package/dist/src/components/__tests__/Separator.test.d.ts +0 -1
  131. package/dist/src/components/__tests__/Sheet.test.d.ts +0 -1
  132. package/dist/src/components/__tests__/Shell.test.d.ts +0 -1
  133. package/dist/src/components/__tests__/Skeleton.test.d.ts +0 -1
  134. package/dist/src/components/__tests__/Slider.test.d.ts +0 -1
  135. package/dist/src/components/__tests__/Spinner.test.d.ts +0 -1
  136. package/dist/src/components/__tests__/Stepper.test.d.ts +0 -1
  137. package/dist/src/components/__tests__/Switch.test.d.ts +0 -1
  138. package/dist/src/components/__tests__/Table.test.d.ts +0 -1
  139. package/dist/src/components/__tests__/Tabs.test.d.ts +0 -1
  140. package/dist/src/components/__tests__/TagInput.test.d.ts +0 -1
  141. package/dist/src/components/__tests__/Text.test.d.ts +0 -1
  142. package/dist/src/components/__tests__/Textarea.test.d.ts +0 -1
  143. package/dist/src/components/__tests__/ThemeProvider.test.d.ts +0 -1
  144. package/dist/src/components/__tests__/TimePicker.test.d.ts +0 -1
  145. package/dist/src/components/__tests__/Timeline.test.d.ts +0 -1
  146. package/dist/src/components/__tests__/Toast.test.d.ts +0 -1
  147. package/dist/src/components/__tests__/Toggle.test.d.ts +0 -1
  148. package/dist/src/components/__tests__/Tooltip.test.d.ts +0 -1
  149. package/dist/src/components/__tests__/TreeView.test.d.ts +0 -1
  150. package/dist/src/components/mobile/ActionSheet.d.ts +0 -15
  151. package/dist/src/components/mobile/BottomNav.d.ts +0 -23
  152. package/dist/src/components/mobile/MobileApp.d.ts +0 -1
  153. package/dist/src/components/mobile/MobileDrawer.d.ts +0 -31
  154. package/dist/src/components/mobile/MobileList.d.ts +0 -24
  155. package/dist/src/components/mobile/MobilePreviewPage.d.ts +0 -5
  156. package/dist/src/components/mobile/MobileShell.d.ts +0 -24
  157. package/dist/src/components/pages/ErrorPage.d.ts +0 -9
  158. package/dist/src/components/pages/HomePage.d.ts +0 -10
  159. package/dist/src/components/pages/LoginPage.d.ts +0 -12
  160. package/dist/src/components/pages/PrivacyPolicyPage.d.ts +0 -5
  161. package/dist/src/components/pages/RegisterPage.d.ts +0 -14
  162. package/dist/src/components/pages/TermsOfServicePage.d.ts +0 -5
  163. package/dist/src/components/pages/homePageContent.d.ts +0 -25
  164. package/dist/src/components/pages/legalPageContent.d.ts +0 -15
  165. package/dist/src/lib/VXUIProvider.d.ts +0 -29
  166. package/dist/src/lib/__tests__/cx.test.d.ts +0 -1
  167. package/dist/src/lib/__tests__/viewport.test.d.ts +0 -1
  168. package/dist/src/lib/breakpoints.d.ts +0 -63
  169. package/dist/src/lib/cx.d.ts +0 -1
  170. package/dist/src/lib/dialogPopover.d.ts +0 -30
  171. package/dist/src/lib/index.d.ts +0 -152
  172. package/dist/src/lib/version.d.ts +0 -1
  173. package/dist/src/lib/viewport.d.ts +0 -21
@@ -0,0 +1,1279 @@
1
+ var dy=Object.defineProperty,uy=Object.defineProperties;var py=Object.getOwnPropertyDescriptors;var Wl=Object.getOwnPropertySymbols;var Lh=Object.prototype.hasOwnProperty,Bh=Object.prototype.propertyIsEnumerable;var Oh=(s,c,r)=>c in s?dy(s,c,{enumerable:!0,configurable:!0,writable:!0,value:r}):s[c]=r,le=(s,c)=>{for(var r in c||(c={}))Lh.call(c,r)&&Oh(s,r,c[r]);if(Wl)for(var r of Wl(c))Bh.call(c,r)&&Oh(s,r,c[r]);return s},we=(s,c)=>uy(s,py(c));var be=(s,c)=>{var r={};for(var d in s)Lh.call(s,d)&&c.indexOf(d)<0&&(r[d]=s[d]);if(s!=null&&Wl)for(var d of Wl(s))c.indexOf(d)<0&&Bh.call(s,d)&&(r[d]=s[d]);return r};var Xd=(s,c,r)=>new Promise((d,p)=>{var f=b=>{try{x(r.next(b))}catch(g){p(g)}},v=b=>{try{x(r.throw(b))}catch(g){p(g)}},x=b=>b.done?d(b.value):Promise.resolve(b.value).then(f,v);x((r=r.apply(s,c)).next())});function fy(s,c){for(var r=0;r<c.length;r++){const d=c[r];if(typeof d!="string"&&!Array.isArray(d)){for(const p in d)if(p!=="default"&&!(p in s)){const f=Object.getOwnPropertyDescriptor(d,p);f&&Object.defineProperty(s,p,f.get?f:{enumerable:!0,get:()=>d[p]})}}}return Object.freeze(Object.defineProperty(s,Symbol.toStringTag,{value:"Module"}))}(function(){const c=document.createElement("link").relList;if(c&&c.supports&&c.supports("modulepreload"))return;for(const p of document.querySelectorAll('link[rel="modulepreload"]'))d(p);new MutationObserver(p=>{for(const f of p)if(f.type==="childList")for(const v of f.addedNodes)v.tagName==="LINK"&&v.rel==="modulepreload"&&d(v)}).observe(document,{childList:!0,subtree:!0});function r(p){const f={};return p.integrity&&(f.integrity=p.integrity),p.referrerPolicy&&(f.referrerPolicy=p.referrerPolicy),p.crossOrigin==="use-credentials"?f.credentials="include":p.crossOrigin==="anonymous"?f.credentials="omit":f.credentials="same-origin",f}function d(p){if(p.ep)return;p.ep=!0;const f=r(p);fetch(p.href,f)}})();var Hh=typeof globalThis!="undefined"?globalThis:typeof window!="undefined"?window:typeof global!="undefined"?global:typeof self!="undefined"?self:{};function Ao(s){return s&&s.__esModule&&Object.prototype.hasOwnProperty.call(s,"default")?s.default:s}var $d={exports:{}},kr={};/**
2
+ * @license React
3
+ * react-jsx-runtime.production.js
4
+ *
5
+ * Copyright (c) Meta Platforms, Inc. and affiliates.
6
+ *
7
+ * This source code is licensed under the MIT license found in the
8
+ * LICENSE file in the root directory of this source tree.
9
+ */var Uh;function my(){if(Uh)return kr;Uh=1;var s=Symbol.for("react.transitional.element"),c=Symbol.for("react.fragment");function r(d,p,f){var v=null;if(f!==void 0&&(v=""+f),p.key!==void 0&&(v=""+p.key),"key"in p){f={};for(var x in p)x!=="key"&&(f[x]=p[x])}else f=p;return p=f.ref,{$$typeof:s,type:d,key:v,ref:p!==void 0?p:null,props:f}}return kr.Fragment=c,kr.jsx=r,kr.jsxs=r,kr}var Ph;function hy(){return Ph||(Ph=1,$d.exports=my()),$d.exports}var a=hy(),Kd={exports:{}},Ae={};/**
10
+ * @license React
11
+ * react.production.js
12
+ *
13
+ * Copyright (c) Meta Platforms, Inc. and affiliates.
14
+ *
15
+ * This source code is licensed under the MIT license found in the
16
+ * LICENSE file in the root directory of this source tree.
17
+ */var qh;function vy(){if(qh)return Ae;qh=1;var s=Symbol.for("react.transitional.element"),c=Symbol.for("react.portal"),r=Symbol.for("react.fragment"),d=Symbol.for("react.strict_mode"),p=Symbol.for("react.profiler"),f=Symbol.for("react.consumer"),v=Symbol.for("react.context"),x=Symbol.for("react.forward_ref"),b=Symbol.for("react.suspense"),g=Symbol.for("react.memo"),y=Symbol.for("react.lazy"),j=Symbol.for("react.activity"),k=Symbol.iterator;function A(R){return R===null||typeof R!="object"?null:(R=k&&R[k]||R["@@iterator"],typeof R=="function"?R:null)}var L={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},D=Object.assign,E={};function T(R,W,B){this.props=R,this.context=W,this.refs=E,this.updater=B||L}T.prototype.isReactComponent={},T.prototype.setState=function(R,W){if(typeof R!="object"&&typeof R!="function"&&R!=null)throw Error("takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,R,W,"setState")},T.prototype.forceUpdate=function(R){this.updater.enqueueForceUpdate(this,R,"forceUpdate")};function C(){}C.prototype=T.prototype;function _(R,W,B){this.props=R,this.context=W,this.refs=E,this.updater=B||L}var u=_.prototype=new C;u.constructor=_,D(u,T.prototype),u.isPureReactComponent=!0;var S=Array.isArray;function N(){}var z={H:null,A:null,T:null,S:null},V=Object.prototype.hasOwnProperty;function O(R,W,B){var te=B.ref;return{$$typeof:s,type:R,key:W,ref:te!==void 0?te:null,props:B}}function Q(R,W){return O(R.type,W,R.props)}function U(R){return typeof R=="object"&&R!==null&&R.$$typeof===s}function F(R){var W={"=":"=0",":":"=2"};return"$"+R.replace(/[=:]/g,function(B){return W[B]})}var ie=/\/+/g;function fe(R,W){return typeof R=="object"&&R!==null&&R.key!=null?F(""+R.key):W.toString(36)}function Z(R){switch(R.status){case"fulfilled":return R.value;case"rejected":throw R.reason;default:switch(typeof R.status=="string"?R.then(N,N):(R.status="pending",R.then(function(W){R.status==="pending"&&(R.status="fulfilled",R.value=W)},function(W){R.status==="pending"&&(R.status="rejected",R.reason=W)})),R.status){case"fulfilled":return R.value;case"rejected":throw R.reason}}throw R}function P(R,W,B,te,pe){var J=typeof R;(J==="undefined"||J==="boolean")&&(R=null);var I=!1;if(R===null)I=!0;else switch(J){case"bigint":case"string":case"number":I=!0;break;case"object":switch(R.$$typeof){case s:case c:I=!0;break;case y:return I=R._init,P(I(R._payload),W,B,te,pe)}}if(I)return pe=pe(R),I=te===""?"."+fe(R,0):te,S(pe)?(B="",I!=null&&(B=I.replace(ie,"$&/")+"/"),P(pe,W,B,"",function(oe){return oe})):pe!=null&&(U(pe)&&(pe=Q(pe,B+(pe.key==null||R&&R.key===pe.key?"":(""+pe.key).replace(ie,"$&/")+"/")+I)),W.push(pe)),1;I=0;var he=te===""?".":te+":";if(S(R))for(var ce=0;ce<R.length;ce++)te=R[ce],J=he+fe(te,ce),I+=P(te,W,B,J,pe);else if(ce=A(R),typeof ce=="function")for(R=ce.call(R),ce=0;!(te=R.next()).done;)te=te.value,J=he+fe(te,ce++),I+=P(te,W,B,J,pe);else if(J==="object"){if(typeof R.then=="function")return P(Z(R),W,B,te,pe);throw W=String(R),Error("Objects are not valid as a React child (found: "+(W==="[object Object]"?"object with keys {"+Object.keys(R).join(", ")+"}":W)+"). If you meant to render a collection of children, use an array instead.")}return I}function $(R,W,B){if(R==null)return R;var te=[],pe=0;return P(R,te,"","",function(J){return W.call(B,J,pe++)}),te}function re(R){if(R._status===-1){var W=R._result;W=W(),W.then(function(B){(R._status===0||R._status===-1)&&(R._status=1,R._result=B)},function(B){(R._status===0||R._status===-1)&&(R._status=2,R._result=B)}),R._status===-1&&(R._status=0,R._result=W)}if(R._status===1)return R._result.default;throw R._result}var ge=typeof reportError=="function"?reportError:function(R){if(typeof window=="object"&&typeof window.ErrorEvent=="function"){var W=new window.ErrorEvent("error",{bubbles:!0,cancelable:!0,message:typeof R=="object"&&R!==null&&typeof R.message=="string"?String(R.message):String(R),error:R});if(!window.dispatchEvent(W))return}else if(typeof process=="object"&&typeof process.emit=="function"){process.emit("uncaughtException",R);return}console.error(R)},xe={map:$,forEach:function(R,W,B){$(R,function(){W.apply(this,arguments)},B)},count:function(R){var W=0;return $(R,function(){W++}),W},toArray:function(R){return $(R,function(W){return W})||[]},only:function(R){if(!U(R))throw Error("React.Children.only expected to receive a single React element child.");return R}};return Ae.Activity=j,Ae.Children=xe,Ae.Component=T,Ae.Fragment=r,Ae.Profiler=p,Ae.PureComponent=_,Ae.StrictMode=d,Ae.Suspense=b,Ae.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE=z,Ae.__COMPILER_RUNTIME={__proto__:null,c:function(R){return z.H.useMemoCache(R)}},Ae.cache=function(R){return function(){return R.apply(null,arguments)}},Ae.cacheSignal=function(){return null},Ae.cloneElement=function(R,W,B){if(R==null)throw Error("The argument must be a React element, but you passed "+R+".");var te=D({},R.props),pe=R.key;if(W!=null)for(J in W.key!==void 0&&(pe=""+W.key),W)!V.call(W,J)||J==="key"||J==="__self"||J==="__source"||J==="ref"&&W.ref===void 0||(te[J]=W[J]);var J=arguments.length-2;if(J===1)te.children=B;else if(1<J){for(var I=Array(J),he=0;he<J;he++)I[he]=arguments[he+2];te.children=I}return O(R.type,pe,te)},Ae.createContext=function(R){return R={$$typeof:v,_currentValue:R,_currentValue2:R,_threadCount:0,Provider:null,Consumer:null},R.Provider=R,R.Consumer={$$typeof:f,_context:R},R},Ae.createElement=function(R,W,B){var te,pe={},J=null;if(W!=null)for(te in W.key!==void 0&&(J=""+W.key),W)V.call(W,te)&&te!=="key"&&te!=="__self"&&te!=="__source"&&(pe[te]=W[te]);var I=arguments.length-2;if(I===1)pe.children=B;else if(1<I){for(var he=Array(I),ce=0;ce<I;ce++)he[ce]=arguments[ce+2];pe.children=he}if(R&&R.defaultProps)for(te in I=R.defaultProps,I)pe[te]===void 0&&(pe[te]=I[te]);return O(R,J,pe)},Ae.createRef=function(){return{current:null}},Ae.forwardRef=function(R){return{$$typeof:x,render:R}},Ae.isValidElement=U,Ae.lazy=function(R){return{$$typeof:y,_payload:{_status:-1,_result:R},_init:re}},Ae.memo=function(R,W){return{$$typeof:g,type:R,compare:W===void 0?null:W}},Ae.startTransition=function(R){var W=z.T,B={};z.T=B;try{var te=R(),pe=z.S;pe!==null&&pe(B,te),typeof te=="object"&&te!==null&&typeof te.then=="function"&&te.then(N,ge)}catch(J){ge(J)}finally{W!==null&&B.types!==null&&(W.types=B.types),z.T=W}},Ae.unstable_useCacheRefresh=function(){return z.H.useCacheRefresh()},Ae.use=function(R){return z.H.use(R)},Ae.useActionState=function(R,W,B){return z.H.useActionState(R,W,B)},Ae.useCallback=function(R,W){return z.H.useCallback(R,W)},Ae.useContext=function(R){return z.H.useContext(R)},Ae.useDebugValue=function(){},Ae.useDeferredValue=function(R,W){return z.H.useDeferredValue(R,W)},Ae.useEffect=function(R,W){return z.H.useEffect(R,W)},Ae.useEffectEvent=function(R){return z.H.useEffectEvent(R)},Ae.useId=function(){return z.H.useId()},Ae.useImperativeHandle=function(R,W,B){return z.H.useImperativeHandle(R,W,B)},Ae.useInsertionEffect=function(R,W){return z.H.useInsertionEffect(R,W)},Ae.useLayoutEffect=function(R,W){return z.H.useLayoutEffect(R,W)},Ae.useMemo=function(R,W){return z.H.useMemo(R,W)},Ae.useOptimistic=function(R,W){return z.H.useOptimistic(R,W)},Ae.useReducer=function(R,W,B){return z.H.useReducer(R,W,B)},Ae.useRef=function(R){return z.H.useRef(R)},Ae.useState=function(R){return z.H.useState(R)},Ae.useSyncExternalStore=function(R,W,B){return z.H.useSyncExternalStore(R,W,B)},Ae.useTransition=function(){return z.H.useTransition()},Ae.version="19.2.6",Ae}var Ih;function ku(){return Ih||(Ih=1,Kd.exports=vy()),Kd.exports}var m=ku();const bn=Ao(m),jv=fy({__proto__:null,default:bn},[m]);var Qd={exports:{}},Nr={},Wd={exports:{}},Zd={};/**
18
+ * @license React
19
+ * scheduler.production.js
20
+ *
21
+ * Copyright (c) Meta Platforms, Inc. and affiliates.
22
+ *
23
+ * This source code is licensed under the MIT license found in the
24
+ * LICENSE file in the root directory of this source tree.
25
+ */var Vh;function gy(){return Vh||(Vh=1,(function(s){function c(P,$){var re=P.length;P.push($);e:for(;0<re;){var ge=re-1>>>1,xe=P[ge];if(0<p(xe,$))P[ge]=$,P[re]=xe,re=ge;else break e}}function r(P){return P.length===0?null:P[0]}function d(P){if(P.length===0)return null;var $=P[0],re=P.pop();if(re!==$){P[0]=re;e:for(var ge=0,xe=P.length,R=xe>>>1;ge<R;){var W=2*(ge+1)-1,B=P[W],te=W+1,pe=P[te];if(0>p(B,re))te<xe&&0>p(pe,B)?(P[ge]=pe,P[te]=re,ge=te):(P[ge]=B,P[W]=re,ge=W);else if(te<xe&&0>p(pe,re))P[ge]=pe,P[te]=re,ge=te;else break e}}return $}function p(P,$){var re=P.sortIndex-$.sortIndex;return re!==0?re:P.id-$.id}if(s.unstable_now=void 0,typeof performance=="object"&&typeof performance.now=="function"){var f=performance;s.unstable_now=function(){return f.now()}}else{var v=Date,x=v.now();s.unstable_now=function(){return v.now()-x}}var b=[],g=[],y=1,j=null,k=3,A=!1,L=!1,D=!1,E=!1,T=typeof setTimeout=="function"?setTimeout:null,C=typeof clearTimeout=="function"?clearTimeout:null,_=typeof setImmediate!="undefined"?setImmediate:null;function u(P){for(var $=r(g);$!==null;){if($.callback===null)d(g);else if($.startTime<=P)d(g),$.sortIndex=$.expirationTime,c(b,$);else break;$=r(g)}}function S(P){if(D=!1,u(P),!L)if(r(b)!==null)L=!0,N||(N=!0,F());else{var $=r(g);$!==null&&Z(S,$.startTime-P)}}var N=!1,z=-1,V=5,O=-1;function Q(){return E?!0:!(s.unstable_now()-O<V)}function U(){if(E=!1,N){var P=s.unstable_now();O=P;var $=!0;try{e:{L=!1,D&&(D=!1,C(z),z=-1),A=!0;var re=k;try{t:{for(u(P),j=r(b);j!==null&&!(j.expirationTime>P&&Q());){var ge=j.callback;if(typeof ge=="function"){j.callback=null,k=j.priorityLevel;var xe=ge(j.expirationTime<=P);if(P=s.unstable_now(),typeof xe=="function"){j.callback=xe,u(P),$=!0;break t}j===r(b)&&d(b),u(P)}else d(b);j=r(b)}if(j!==null)$=!0;else{var R=r(g);R!==null&&Z(S,R.startTime-P),$=!1}}break e}finally{j=null,k=re,A=!1}$=void 0}}finally{$?F():N=!1}}}var F;if(typeof _=="function")F=function(){_(U)};else if(typeof MessageChannel!="undefined"){var ie=new MessageChannel,fe=ie.port2;ie.port1.onmessage=U,F=function(){fe.postMessage(null)}}else F=function(){T(U,0)};function Z(P,$){z=T(function(){P(s.unstable_now())},$)}s.unstable_IdlePriority=5,s.unstable_ImmediatePriority=1,s.unstable_LowPriority=4,s.unstable_NormalPriority=3,s.unstable_Profiling=null,s.unstable_UserBlockingPriority=2,s.unstable_cancelCallback=function(P){P.callback=null},s.unstable_forceFrameRate=function(P){0>P||125<P?console.error("forceFrameRate takes a positive int between 0 and 125, forcing frame rates higher than 125 fps is not supported"):V=0<P?Math.floor(1e3/P):5},s.unstable_getCurrentPriorityLevel=function(){return k},s.unstable_next=function(P){switch(k){case 1:case 2:case 3:var $=3;break;default:$=k}var re=k;k=$;try{return P()}finally{k=re}},s.unstable_requestPaint=function(){E=!0},s.unstable_runWithPriority=function(P,$){switch(P){case 1:case 2:case 3:case 4:case 5:break;default:P=3}var re=k;k=P;try{return $()}finally{k=re}},s.unstable_scheduleCallback=function(P,$,re){var ge=s.unstable_now();switch(typeof re=="object"&&re!==null?(re=re.delay,re=typeof re=="number"&&0<re?ge+re:ge):re=ge,P){case 1:var xe=-1;break;case 2:xe=250;break;case 5:xe=1073741823;break;case 4:xe=1e4;break;default:xe=5e3}return xe=re+xe,P={id:y++,callback:$,priorityLevel:P,startTime:re,expirationTime:xe,sortIndex:-1},re>ge?(P.sortIndex=re,c(g,P),r(b)===null&&P===r(g)&&(D?(C(z),z=-1):D=!0,Z(S,re-ge))):(P.sortIndex=xe,c(b,P),L||A||(L=!0,N||(N=!0,F()))),P},s.unstable_shouldYield=Q,s.unstable_wrapCallback=function(P){var $=k;return function(){var re=k;k=$;try{return P.apply(this,arguments)}finally{k=re}}}})(Zd)),Zd}var Fh;function xy(){return Fh||(Fh=1,Wd.exports=gy()),Wd.exports}var Jd={exports:{}},Ht={};/**
26
+ * @license React
27
+ * react-dom.production.js
28
+ *
29
+ * Copyright (c) Meta Platforms, Inc. and affiliates.
30
+ *
31
+ * This source code is licensed under the MIT license found in the
32
+ * LICENSE file in the root directory of this source tree.
33
+ */var Gh;function by(){if(Gh)return Ht;Gh=1;var s=ku();function c(b){var g="https://react.dev/errors/"+b;if(1<arguments.length){g+="?args[]="+encodeURIComponent(arguments[1]);for(var y=2;y<arguments.length;y++)g+="&args[]="+encodeURIComponent(arguments[y])}return"Minified React error #"+b+"; visit "+g+" for the full message or use the non-minified dev environment for full errors and additional helpful warnings."}function r(){}var d={d:{f:r,r:function(){throw Error(c(522))},D:r,C:r,L:r,m:r,X:r,S:r,M:r},p:0,findDOMNode:null},p=Symbol.for("react.portal");function f(b,g,y){var j=3<arguments.length&&arguments[3]!==void 0?arguments[3]:null;return{$$typeof:p,key:j==null?null:""+j,children:b,containerInfo:g,implementation:y}}var v=s.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE;function x(b,g){if(b==="font")return"";if(typeof g=="string")return g==="use-credentials"?g:""}return Ht.__DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE=d,Ht.createPortal=function(b,g){var y=2<arguments.length&&arguments[2]!==void 0?arguments[2]:null;if(!g||g.nodeType!==1&&g.nodeType!==9&&g.nodeType!==11)throw Error(c(299));return f(b,g,null,y)},Ht.flushSync=function(b){var g=v.T,y=d.p;try{if(v.T=null,d.p=2,b)return b()}finally{v.T=g,d.p=y,d.d.f()}},Ht.preconnect=function(b,g){typeof b=="string"&&(g?(g=g.crossOrigin,g=typeof g=="string"?g==="use-credentials"?g:"":void 0):g=null,d.d.C(b,g))},Ht.prefetchDNS=function(b){typeof b=="string"&&d.d.D(b)},Ht.preinit=function(b,g){if(typeof b=="string"&&g&&typeof g.as=="string"){var y=g.as,j=x(y,g.crossOrigin),k=typeof g.integrity=="string"?g.integrity:void 0,A=typeof g.fetchPriority=="string"?g.fetchPriority:void 0;y==="style"?d.d.S(b,typeof g.precedence=="string"?g.precedence:void 0,{crossOrigin:j,integrity:k,fetchPriority:A}):y==="script"&&d.d.X(b,{crossOrigin:j,integrity:k,fetchPriority:A,nonce:typeof g.nonce=="string"?g.nonce:void 0})}},Ht.preinitModule=function(b,g){if(typeof b=="string")if(typeof g=="object"&&g!==null){if(g.as==null||g.as==="script"){var y=x(g.as,g.crossOrigin);d.d.M(b,{crossOrigin:y,integrity:typeof g.integrity=="string"?g.integrity:void 0,nonce:typeof g.nonce=="string"?g.nonce:void 0})}}else g==null&&d.d.M(b)},Ht.preload=function(b,g){if(typeof b=="string"&&typeof g=="object"&&g!==null&&typeof g.as=="string"){var y=g.as,j=x(y,g.crossOrigin);d.d.L(b,y,{crossOrigin:j,integrity:typeof g.integrity=="string"?g.integrity:void 0,nonce:typeof g.nonce=="string"?g.nonce:void 0,type:typeof g.type=="string"?g.type:void 0,fetchPriority:typeof g.fetchPriority=="string"?g.fetchPriority:void 0,referrerPolicy:typeof g.referrerPolicy=="string"?g.referrerPolicy:void 0,imageSrcSet:typeof g.imageSrcSet=="string"?g.imageSrcSet:void 0,imageSizes:typeof g.imageSizes=="string"?g.imageSizes:void 0,media:typeof g.media=="string"?g.media:void 0})}},Ht.preloadModule=function(b,g){if(typeof b=="string")if(g){var y=x(g.as,g.crossOrigin);d.d.m(b,{as:typeof g.as=="string"&&g.as!=="script"?g.as:void 0,crossOrigin:y,integrity:typeof g.integrity=="string"?g.integrity:void 0})}else d.d.m(b)},Ht.requestFormReset=function(b){d.d.r(b)},Ht.unstable_batchedUpdates=function(b,g){return b(g)},Ht.useFormState=function(b,g,y){return v.H.useFormState(b,g,y)},Ht.useFormStatus=function(){return v.H.useHostTransitionStatus()},Ht.version="19.2.6",Ht}var Yh;function wv(){if(Yh)return Jd.exports;Yh=1;function s(){if(!(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__=="undefined"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(s)}catch(c){console.error(c)}}return s(),Jd.exports=by(),Jd.exports}/**
34
+ * @license React
35
+ * react-dom-client.production.js
36
+ *
37
+ * Copyright (c) Meta Platforms, Inc. and affiliates.
38
+ *
39
+ * This source code is licensed under the MIT license found in the
40
+ * LICENSE file in the root directory of this source tree.
41
+ */var Xh;function yy(){if(Xh)return Nr;Xh=1;var s=xy(),c=ku(),r=wv();function d(e){var t="https://react.dev/errors/"+e;if(1<arguments.length){t+="?args[]="+encodeURIComponent(arguments[1]);for(var n=2;n<arguments.length;n++)t+="&args[]="+encodeURIComponent(arguments[n])}return"Minified React error #"+e+"; visit "+t+" for the full message or use the non-minified dev environment for full errors and additional helpful warnings."}function p(e){return!(!e||e.nodeType!==1&&e.nodeType!==9&&e.nodeType!==11)}function f(e){var t=e,n=e;if(e.alternate)for(;t.return;)t=t.return;else{e=t;do t=e,(t.flags&4098)!==0&&(n=t.return),e=t.return;while(e)}return t.tag===3?n:null}function v(e){if(e.tag===13){var t=e.memoizedState;if(t===null&&(e=e.alternate,e!==null&&(t=e.memoizedState)),t!==null)return t.dehydrated}return null}function x(e){if(e.tag===31){var t=e.memoizedState;if(t===null&&(e=e.alternate,e!==null&&(t=e.memoizedState)),t!==null)return t.dehydrated}return null}function b(e){if(f(e)!==e)throw Error(d(188))}function g(e){var t=e.alternate;if(!t){if(t=f(e),t===null)throw Error(d(188));return t!==e?null:e}for(var n=e,i=t;;){var l=n.return;if(l===null)break;var o=l.alternate;if(o===null){if(i=l.return,i!==null){n=i;continue}break}if(l.child===o.child){for(o=l.child;o;){if(o===n)return b(l),e;if(o===i)return b(l),t;o=o.sibling}throw Error(d(188))}if(n.return!==i.return)n=l,i=o;else{for(var h=!1,w=l.child;w;){if(w===n){h=!0,n=l,i=o;break}if(w===i){h=!0,i=l,n=o;break}w=w.sibling}if(!h){for(w=o.child;w;){if(w===n){h=!0,n=o,i=l;break}if(w===i){h=!0,i=o,n=l;break}w=w.sibling}if(!h)throw Error(d(189))}}if(n.alternate!==i)throw Error(d(190))}if(n.tag!==3)throw Error(d(188));return n.stateNode.current===n?e:t}function y(e){var t=e.tag;if(t===5||t===26||t===27||t===6)return e;for(e=e.child;e!==null;){if(t=y(e),t!==null)return t;e=e.sibling}return null}var j=Object.assign,k=Symbol.for("react.element"),A=Symbol.for("react.transitional.element"),L=Symbol.for("react.portal"),D=Symbol.for("react.fragment"),E=Symbol.for("react.strict_mode"),T=Symbol.for("react.profiler"),C=Symbol.for("react.consumer"),_=Symbol.for("react.context"),u=Symbol.for("react.forward_ref"),S=Symbol.for("react.suspense"),N=Symbol.for("react.suspense_list"),z=Symbol.for("react.memo"),V=Symbol.for("react.lazy"),O=Symbol.for("react.activity"),Q=Symbol.for("react.memo_cache_sentinel"),U=Symbol.iterator;function F(e){return e===null||typeof e!="object"?null:(e=U&&e[U]||e["@@iterator"],typeof e=="function"?e:null)}var ie=Symbol.for("react.client.reference");function fe(e){if(e==null)return null;if(typeof e=="function")return e.$$typeof===ie?null:e.displayName||e.name||null;if(typeof e=="string")return e;switch(e){case D:return"Fragment";case T:return"Profiler";case E:return"StrictMode";case S:return"Suspense";case N:return"SuspenseList";case O:return"Activity"}if(typeof e=="object")switch(e.$$typeof){case L:return"Portal";case _:return e.displayName||"Context";case C:return(e._context.displayName||"Context")+".Consumer";case u:var t=e.render;return e=e.displayName,e||(e=t.displayName||t.name||"",e=e!==""?"ForwardRef("+e+")":"ForwardRef"),e;case z:return t=e.displayName||null,t!==null?t:fe(e.type)||"Memo";case V:t=e._payload,e=e._init;try{return fe(e(t))}catch(n){}}return null}var Z=Array.isArray,P=c.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,$=r.__DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,re={pending:!1,data:null,method:null,action:null},ge=[],xe=-1;function R(e){return{current:e}}function W(e){0>xe||(e.current=ge[xe],ge[xe]=null,xe--)}function B(e,t){xe++,ge[xe]=e.current,e.current=t}var te=R(null),pe=R(null),J=R(null),I=R(null);function he(e,t){switch(B(J,t),B(pe,e),B(te,null),t.nodeType){case 9:case 11:e=(e=t.documentElement)&&(e=e.namespaceURI)?ih(e):0;break;default:if(e=t.tagName,t=t.namespaceURI)t=ih(t),e=sh(t,e);else switch(e){case"svg":e=1;break;case"math":e=2;break;default:e=0}}W(te),B(te,e)}function ce(){W(te),W(pe),W(J)}function oe(e){e.memoizedState!==null&&B(I,e);var t=te.current,n=sh(t,e.type);t!==n&&(B(pe,e),B(te,n))}function ke(e){pe.current===e&&(W(te),W(pe)),I.current===e&&(W(I),jr._currentValue=re)}var Ee,Ge;function ut(e){if(Ee===void 0)try{throw Error()}catch(n){var t=n.stack.trim().match(/\n( *(at )?)/);Ee=t&&t[1]||"",Ge=-1<n.stack.indexOf(`
42
+ at`)?" (<anonymous>)":-1<n.stack.indexOf("@")?"@unknown:0:0":""}return`
43
+ `+Ee+e+Ge}var At=!1;function Ua(e,t){if(!e||At)return"";At=!0;var n=Error.prepareStackTrace;Error.prepareStackTrace=void 0;try{var i={DetermineComponentFrameRoot:function(){try{if(t){var se=function(){throw Error()};if(Object.defineProperty(se.prototype,"props",{set:function(){throw Error()}}),typeof Reflect=="object"&&Reflect.construct){try{Reflect.construct(se,[])}catch(ee){var X=ee}Reflect.construct(e,[],se)}else{try{se.call()}catch(ee){X=ee}e.call(se.prototype)}}else{try{throw Error()}catch(ee){X=ee}(se=e())&&typeof se.catch=="function"&&se.catch(function(){})}}catch(ee){if(ee&&X&&typeof ee.stack=="string")return[ee.stack,X.stack]}return[null,null]}};i.DetermineComponentFrameRoot.displayName="DetermineComponentFrameRoot";var l=Object.getOwnPropertyDescriptor(i.DetermineComponentFrameRoot,"name");l&&l.configurable&&Object.defineProperty(i.DetermineComponentFrameRoot,"name",{value:"DetermineComponentFrameRoot"});var o=i.DetermineComponentFrameRoot(),h=o[0],w=o[1];if(h&&w){var M=h.split(`
44
+ `),Y=w.split(`
45
+ `);for(l=i=0;i<M.length&&!M[i].includes("DetermineComponentFrameRoot");)i++;for(;l<Y.length&&!Y[l].includes("DetermineComponentFrameRoot");)l++;if(i===M.length||l===Y.length)for(i=M.length-1,l=Y.length-1;1<=i&&0<=l&&M[i]!==Y[l];)l--;for(;1<=i&&0<=l;i--,l--)if(M[i]!==Y[l]){if(i!==1||l!==1)do if(i--,l--,0>l||M[i]!==Y[l]){var ae=`
46
+ `+M[i].replace(" at new "," at ");return e.displayName&&ae.includes("<anonymous>")&&(ae=ae.replace("<anonymous>",e.displayName)),ae}while(1<=i&&0<=l);break}}}finally{At=!1,Error.prepareStackTrace=n}return(n=e?e.displayName||e.name:"")?ut(n):""}function Wa(e,t){switch(e.tag){case 26:case 27:case 5:return ut(e.type);case 16:return ut("Lazy");case 13:return e.child!==t&&t!==null?ut("Suspense Fallback"):ut("Suspense");case 19:return ut("SuspenseList");case 0:case 15:return Ua(e.type,!1);case 11:return Ua(e.type.render,!1);case 1:return Ua(e.type,!0);case 31:return ut("Activity");default:return""}}function Sn(e){try{var t="",n=null;do t+=Wa(e,n),n=e,e=e.return;while(e);return t}catch(i){return`
47
+ Error generating stack: `+i.message+`
48
+ `+i.stack}}var qe=Object.prototype.hasOwnProperty,_n=s.unstable_scheduleCallback,Wt=s.unstable_cancelCallback,kn=s.unstable_shouldYield,ui=s.unstable_requestPaint,zt=s.unstable_now,Ca=s.unstable_getCurrentPriorityLevel,Za=s.unstable_ImmediatePriority,Li=s.unstable_UserBlockingPriority,Pa=s.unstable_NormalPriority,da=s.unstable_LowPriority,Ta=s.unstable_IdlePriority,Bi=s.log,zs=s.unstable_setDisableYieldValue,Ea=null,St=null;function ua(e){if(typeof Bi=="function"&&zs(e),St&&typeof St.setStrictMode=="function")try{St.setStrictMode(Ea,e)}catch(t){}}var Dt=Math.clz32?Math.clz32:Ja,pi=Math.log,Hi=Math.LN2;function Ja(e){return e>>>=0,e===0?32:31-(pi(e)/Hi|0)|0}var ve=256,Ne=262144,Ue=4194304;function me(e){var t=e&42;if(t!==0)return t;switch(e&-e){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:return 64;case 128:return 128;case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:return e&261888;case 262144:case 524288:case 1048576:case 2097152:return e&3932160;case 4194304:case 8388608:case 16777216:case 33554432:return e&62914560;case 67108864:return 67108864;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 0;default:return e}}function De(e,t,n){var i=e.pendingLanes;if(i===0)return 0;var l=0,o=e.suspendedLanes,h=e.pingedLanes;e=e.warmLanes;var w=i&134217727;return w!==0?(i=w&~o,i!==0?l=me(i):(h&=w,h!==0?l=me(h):n||(n=w&~e,n!==0&&(l=me(n))))):(w=i&~o,w!==0?l=me(w):h!==0?l=me(h):n||(n=i&~e,n!==0&&(l=me(n)))),l===0?0:t!==0&&t!==l&&(t&o)===0&&(o=l&-l,n=t&-t,o>=n||o===32&&(n&4194048)!==0)?t:l}function et(e,t){return(e.pendingLanes&~(e.suspendedLanes&~e.pingedLanes)&t)===0}function Bt(e,t){switch(e){case 1:case 2:case 4:case 8:case 64:return t+250;case 16:case 32:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return t+5e3;case 4194304:case 8388608:case 16777216:case 33554432:return-1;case 67108864:case 134217728:case 268435456:case 536870912:case 1073741824:return-1;default:return-1}}function Ds(){var e=Ue;return Ue<<=1,(Ue&62914560)===0&&(Ue=4194304),e}function Ui(e){for(var t=[],n=0;31>n;n++)t.push(e);return t}function Nn(e,t){e.pendingLanes|=t,t!==268435456&&(e.suspendedLanes=0,e.pingedLanes=0,e.warmLanes=0)}function Br(e,t,n,i,l,o){var h=e.pendingLanes;e.pendingLanes=n,e.suspendedLanes=0,e.pingedLanes=0,e.warmLanes=0,e.expiredLanes&=n,e.entangledLanes&=n,e.errorRecoveryDisabledLanes&=n,e.shellSuspendCounter=0;var w=e.entanglements,M=e.expirationTimes,Y=e.hiddenUpdates;for(n=h&~n;0<n;){var ae=31-Dt(n),se=1<<ae;w[ae]=0,M[ae]=-1;var X=Y[ae];if(X!==null)for(Y[ae]=null,ae=0;ae<X.length;ae++){var ee=X[ae];ee!==null&&(ee.lane&=-536870913)}n&=~se}i!==0&&Ms(e,i,0),o!==0&&l===0&&e.tag!==0&&(e.suspendedLanes|=o&~(h&~t))}function Ms(e,t,n){e.pendingLanes|=t,e.suspendedLanes&=~t;var i=31-Dt(t);e.entangledLanes|=t,e.entanglements[i]=e.entanglements[i]|1073741824|n&261930}function Rs(e,t){var n=e.entangledLanes|=t;for(e=e.entanglements;n;){var i=31-Dt(n),l=1<<i;l&t|e[i]&t&&(e[i]|=t),n&=~l}}function Os(e,t){var n=t&-t;return n=(n&42)!==0?1:Pi(n),(n&(e.suspendedLanes|t))!==0?0:n}function Pi(e){switch(e){case 2:e=1;break;case 8:e=4;break;case 32:e=16;break;case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:case 4194304:case 8388608:case 16777216:case 33554432:e=128;break;case 268435456:e=134217728;break;default:e=0}return e}function Te(e){return e&=-e,2<e?8<e?(e&134217727)!==0?32:268435456:8:2}function $e(){var e=$.p;return e!==0?e:(e=window.event,e===void 0?32:Th(e.type))}function fi(e,t){var n=$.p;try{return $.p=e,t()}finally{$.p=n}}var qt=Math.random().toString(36).slice(2),Ze="__reactFiber$"+qt,de="__reactProps$"+qt,_t="__reactContainer$"+qt,mi="__reactEvents$"+qt,Ho="__reactListeners$"+qt,Uo="__reactHandles$"+qt,Hr="__reactResources$"+qt,hi="__reactMarker$"+qt;function Ls(e){delete e[Ze],delete e[de],delete e[mi],delete e[Ho],delete e[Uo]}function Cn(e){var t=e[Ze];if(t)return t;for(var n=e.parentNode;n;){if(t=n[_t]||n[Ze]){if(n=t.alternate,t.child!==null||n!==null&&n.child!==null)for(e=ph(e);e!==null;){if(n=e[Ze])return n;e=ph(e)}return t}e=n,n=e.parentNode}return null}function qi(e){if(e=e[Ze]||e[_t]){var t=e.tag;if(t===5||t===6||t===13||t===31||t===26||t===27||t===3)return e}return null}function Bs(e){var t=e.tag;if(t===5||t===26||t===27||t===6)return e.stateNode;throw Error(d(33))}function Ii(e){var t=e[Hr];return t||(t=e[Hr]={hoistableStyles:new Map,hoistableScripts:new Map}),t}function kt(e){e[hi]=!0}var Gu=new Set,Yu={};function vi(e,t){Vi(e,t),Vi(e+"Capture",t)}function Vi(e,t){for(Yu[e]=t,e=0;e<t.length;e++)Gu.add(t[e])}var tx=RegExp("^[:A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD][:A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD\\-.0-9\\u00B7\\u0300-\\u036F\\u203F-\\u2040]*$"),Xu={},$u={};function ax(e){return qe.call($u,e)?!0:qe.call(Xu,e)?!1:tx.test(e)?$u[e]=!0:(Xu[e]=!0,!1)}function Ur(e,t,n){if(ax(t))if(n===null)e.removeAttribute(t);else{switch(typeof n){case"undefined":case"function":case"symbol":e.removeAttribute(t);return;case"boolean":var i=t.toLowerCase().slice(0,5);if(i!=="data-"&&i!=="aria-"){e.removeAttribute(t);return}}e.setAttribute(t,""+n)}}function Pr(e,t,n){if(n===null)e.removeAttribute(t);else{switch(typeof n){case"undefined":case"function":case"symbol":case"boolean":e.removeAttribute(t);return}e.setAttribute(t,""+n)}}function en(e,t,n,i){if(i===null)e.removeAttribute(n);else{switch(typeof i){case"undefined":case"function":case"symbol":case"boolean":e.removeAttribute(n);return}e.setAttributeNS(t,n,""+i)}}function pa(e){switch(typeof e){case"bigint":case"boolean":case"number":case"string":case"undefined":return e;case"object":return e;default:return""}}function Ku(e){var t=e.type;return(e=e.nodeName)&&e.toLowerCase()==="input"&&(t==="checkbox"||t==="radio")}function nx(e,t,n){var i=Object.getOwnPropertyDescriptor(e.constructor.prototype,t);if(!e.hasOwnProperty(t)&&typeof i!="undefined"&&typeof i.get=="function"&&typeof i.set=="function"){var l=i.get,o=i.set;return Object.defineProperty(e,t,{configurable:!0,get:function(){return l.call(this)},set:function(h){n=""+h,o.call(this,h)}}),Object.defineProperty(e,t,{enumerable:i.enumerable}),{getValue:function(){return n},setValue:function(h){n=""+h},stopTracking:function(){e._valueTracker=null,delete e[t]}}}}function Po(e){if(!e._valueTracker){var t=Ku(e)?"checked":"value";e._valueTracker=nx(e,t,""+e[t])}}function Qu(e){if(!e)return!1;var t=e._valueTracker;if(!t)return!0;var n=t.getValue(),i="";return e&&(i=Ku(e)?e.checked?"true":"false":e.value),e=i,e!==n?(t.setValue(e),!0):!1}function qr(e){if(e=e||(typeof document!="undefined"?document:void 0),typeof e=="undefined")return null;try{return e.activeElement||e.body}catch(t){return e.body}}var ix=/[\n"\\]/g;function fa(e){return e.replace(ix,function(t){return"\\"+t.charCodeAt(0).toString(16)+" "})}function qo(e,t,n,i,l,o,h,w){e.name="",h!=null&&typeof h!="function"&&typeof h!="symbol"&&typeof h!="boolean"?e.type=h:e.removeAttribute("type"),t!=null?h==="number"?(t===0&&e.value===""||e.value!=t)&&(e.value=""+pa(t)):e.value!==""+pa(t)&&(e.value=""+pa(t)):h!=="submit"&&h!=="reset"||e.removeAttribute("value"),t!=null?Io(e,h,pa(t)):n!=null?Io(e,h,pa(n)):i!=null&&e.removeAttribute("value"),l==null&&o!=null&&(e.defaultChecked=!!o),l!=null&&(e.checked=l&&typeof l!="function"&&typeof l!="symbol"),w!=null&&typeof w!="function"&&typeof w!="symbol"&&typeof w!="boolean"?e.name=""+pa(w):e.removeAttribute("name")}function Wu(e,t,n,i,l,o,h,w){if(o!=null&&typeof o!="function"&&typeof o!="symbol"&&typeof o!="boolean"&&(e.type=o),t!=null||n!=null){if(!(o!=="submit"&&o!=="reset"||t!=null)){Po(e);return}n=n!=null?""+pa(n):"",t=t!=null?""+pa(t):n,w||t===e.value||(e.value=t),e.defaultValue=t}i=i!=null?i:l,i=typeof i!="function"&&typeof i!="symbol"&&!!i,e.checked=w?e.checked:!!i,e.defaultChecked=!!i,h!=null&&typeof h!="function"&&typeof h!="symbol"&&typeof h!="boolean"&&(e.name=h),Po(e)}function Io(e,t,n){t==="number"&&qr(e.ownerDocument)===e||e.defaultValue===""+n||(e.defaultValue=""+n)}function Fi(e,t,n,i){if(e=e.options,t){t={};for(var l=0;l<n.length;l++)t["$"+n[l]]=!0;for(n=0;n<e.length;n++)l=t.hasOwnProperty("$"+e[n].value),e[n].selected!==l&&(e[n].selected=l),l&&i&&(e[n].defaultSelected=!0)}else{for(n=""+pa(n),t=null,l=0;l<e.length;l++){if(e[l].value===n){e[l].selected=!0,i&&(e[l].defaultSelected=!0);return}t!==null||e[l].disabled||(t=e[l])}t!==null&&(t.selected=!0)}}function Zu(e,t,n){if(t!=null&&(t=""+pa(t),t!==e.value&&(e.value=t),n==null)){e.defaultValue!==t&&(e.defaultValue=t);return}e.defaultValue=n!=null?""+pa(n):""}function Ju(e,t,n,i){if(t==null){if(i!=null){if(n!=null)throw Error(d(92));if(Z(i)){if(1<i.length)throw Error(d(93));i=i[0]}n=i}n==null&&(n=""),t=n}n=pa(t),e.defaultValue=n,i=e.textContent,i===n&&i!==""&&i!==null&&(e.value=i),Po(e)}function Gi(e,t){if(t){var n=e.firstChild;if(n&&n===e.lastChild&&n.nodeType===3){n.nodeValue=t;return}}e.textContent=t}var sx=new Set("animationIterationCount aspectRatio borderImageOutset borderImageSlice borderImageWidth boxFlex boxFlexGroup boxOrdinalGroup columnCount columns flex flexGrow flexPositive flexShrink flexNegative flexOrder gridArea gridRow gridRowEnd gridRowSpan gridRowStart gridColumn gridColumnEnd gridColumnSpan gridColumnStart fontWeight lineClamp lineHeight opacity order orphans scale tabSize widows zIndex zoom fillOpacity floodOpacity stopOpacity strokeDasharray strokeDashoffset strokeMiterlimit strokeOpacity strokeWidth MozAnimationIterationCount MozBoxFlex MozBoxFlexGroup MozLineClamp msAnimationIterationCount msFlex msZoom msFlexGrow msFlexNegative msFlexOrder msFlexPositive msFlexShrink msGridColumn msGridColumnSpan msGridRow msGridRowSpan WebkitAnimationIterationCount WebkitBoxFlex WebKitBoxFlexGroup WebkitBoxOrdinalGroup WebkitColumnCount WebkitColumns WebkitFlex WebkitFlexGrow WebkitFlexPositive WebkitFlexShrink WebkitLineClamp".split(" "));function ep(e,t,n){var i=t.indexOf("--")===0;n==null||typeof n=="boolean"||n===""?i?e.setProperty(t,""):t==="float"?e.cssFloat="":e[t]="":i?e.setProperty(t,n):typeof n!="number"||n===0||sx.has(t)?t==="float"?e.cssFloat=n:e[t]=(""+n).trim():e[t]=n+"px"}function tp(e,t,n){if(t!=null&&typeof t!="object")throw Error(d(62));if(e=e.style,n!=null){for(var i in n)!n.hasOwnProperty(i)||t!=null&&t.hasOwnProperty(i)||(i.indexOf("--")===0?e.setProperty(i,""):i==="float"?e.cssFloat="":e[i]="");for(var l in t)i=t[l],t.hasOwnProperty(l)&&n[l]!==i&&ep(e,l,i)}else for(var o in t)t.hasOwnProperty(o)&&ep(e,o,t[o])}function Vo(e){if(e.indexOf("-")===-1)return!1;switch(e){case"annotation-xml":case"color-profile":case"font-face":case"font-face-src":case"font-face-uri":case"font-face-format":case"font-face-name":case"missing-glyph":return!1;default:return!0}}var rx=new Map([["acceptCharset","accept-charset"],["htmlFor","for"],["httpEquiv","http-equiv"],["crossOrigin","crossorigin"],["accentHeight","accent-height"],["alignmentBaseline","alignment-baseline"],["arabicForm","arabic-form"],["baselineShift","baseline-shift"],["capHeight","cap-height"],["clipPath","clip-path"],["clipRule","clip-rule"],["colorInterpolation","color-interpolation"],["colorInterpolationFilters","color-interpolation-filters"],["colorProfile","color-profile"],["colorRendering","color-rendering"],["dominantBaseline","dominant-baseline"],["enableBackground","enable-background"],["fillOpacity","fill-opacity"],["fillRule","fill-rule"],["floodColor","flood-color"],["floodOpacity","flood-opacity"],["fontFamily","font-family"],["fontSize","font-size"],["fontSizeAdjust","font-size-adjust"],["fontStretch","font-stretch"],["fontStyle","font-style"],["fontVariant","font-variant"],["fontWeight","font-weight"],["glyphName","glyph-name"],["glyphOrientationHorizontal","glyph-orientation-horizontal"],["glyphOrientationVertical","glyph-orientation-vertical"],["horizAdvX","horiz-adv-x"],["horizOriginX","horiz-origin-x"],["imageRendering","image-rendering"],["letterSpacing","letter-spacing"],["lightingColor","lighting-color"],["markerEnd","marker-end"],["markerMid","marker-mid"],["markerStart","marker-start"],["overlinePosition","overline-position"],["overlineThickness","overline-thickness"],["paintOrder","paint-order"],["panose-1","panose-1"],["pointerEvents","pointer-events"],["renderingIntent","rendering-intent"],["shapeRendering","shape-rendering"],["stopColor","stop-color"],["stopOpacity","stop-opacity"],["strikethroughPosition","strikethrough-position"],["strikethroughThickness","strikethrough-thickness"],["strokeDasharray","stroke-dasharray"],["strokeDashoffset","stroke-dashoffset"],["strokeLinecap","stroke-linecap"],["strokeLinejoin","stroke-linejoin"],["strokeMiterlimit","stroke-miterlimit"],["strokeOpacity","stroke-opacity"],["strokeWidth","stroke-width"],["textAnchor","text-anchor"],["textDecoration","text-decoration"],["textRendering","text-rendering"],["transformOrigin","transform-origin"],["underlinePosition","underline-position"],["underlineThickness","underline-thickness"],["unicodeBidi","unicode-bidi"],["unicodeRange","unicode-range"],["unitsPerEm","units-per-em"],["vAlphabetic","v-alphabetic"],["vHanging","v-hanging"],["vIdeographic","v-ideographic"],["vMathematical","v-mathematical"],["vectorEffect","vector-effect"],["vertAdvY","vert-adv-y"],["vertOriginX","vert-origin-x"],["vertOriginY","vert-origin-y"],["wordSpacing","word-spacing"],["writingMode","writing-mode"],["xmlnsXlink","xmlns:xlink"],["xHeight","x-height"]]),lx=/^[\u0000-\u001F ]*j[\r\n\t]*a[\r\n\t]*v[\r\n\t]*a[\r\n\t]*s[\r\n\t]*c[\r\n\t]*r[\r\n\t]*i[\r\n\t]*p[\r\n\t]*t[\r\n\t]*:/i;function Ir(e){return lx.test(""+e)?"javascript:throw new Error('React has blocked a javascript: URL as a security precaution.')":e}function tn(){}var Fo=null;function Go(e){return e=e.target||e.srcElement||window,e.correspondingUseElement&&(e=e.correspondingUseElement),e.nodeType===3?e.parentNode:e}var Yi=null,Xi=null;function ap(e){var t=qi(e);if(t&&(e=t.stateNode)){var n=e[de]||null;e:switch(e=t.stateNode,t.type){case"input":if(qo(e,n.value,n.defaultValue,n.defaultValue,n.checked,n.defaultChecked,n.type,n.name),t=n.name,n.type==="radio"&&t!=null){for(n=e;n.parentNode;)n=n.parentNode;for(n=n.querySelectorAll('input[name="'+fa(""+t)+'"][type="radio"]'),t=0;t<n.length;t++){var i=n[t];if(i!==e&&i.form===e.form){var l=i[de]||null;if(!l)throw Error(d(90));qo(i,l.value,l.defaultValue,l.defaultValue,l.checked,l.defaultChecked,l.type,l.name)}}for(t=0;t<n.length;t++)i=n[t],i.form===e.form&&Qu(i)}break e;case"textarea":Zu(e,n.value,n.defaultValue);break e;case"select":t=n.value,t!=null&&Fi(e,!!n.multiple,t,!1)}}}var Yo=!1;function np(e,t,n){if(Yo)return e(t,n);Yo=!0;try{var i=e(t);return i}finally{if(Yo=!1,(Yi!==null||Xi!==null)&&(El(),Yi&&(t=Yi,e=Xi,Xi=Yi=null,ap(t),e)))for(t=0;t<e.length;t++)ap(e[t])}}function Hs(e,t){var n=e.stateNode;if(n===null)return null;var i=n[de]||null;if(i===null)return null;n=i[t];e:switch(t){case"onClick":case"onClickCapture":case"onDoubleClick":case"onDoubleClickCapture":case"onMouseDown":case"onMouseDownCapture":case"onMouseMove":case"onMouseMoveCapture":case"onMouseUp":case"onMouseUpCapture":case"onMouseEnter":(i=!i.disabled)||(e=e.type,i=!(e==="button"||e==="input"||e==="select"||e==="textarea")),e=!i;break e;default:e=!1}if(e)return null;if(n&&typeof n!="function")throw Error(d(231,t,typeof n));return n}var an=!(typeof window=="undefined"||typeof window.document=="undefined"||typeof window.document.createElement=="undefined"),Xo=!1;if(an)try{var Us={};Object.defineProperty(Us,"passive",{get:function(){Xo=!0}}),window.addEventListener("test",Us,Us),window.removeEventListener("test",Us,Us)}catch(e){Xo=!1}var Tn=null,$o=null,Vr=null;function ip(){if(Vr)return Vr;var e,t=$o,n=t.length,i,l="value"in Tn?Tn.value:Tn.textContent,o=l.length;for(e=0;e<n&&t[e]===l[e];e++);var h=n-e;for(i=1;i<=h&&t[n-i]===l[o-i];i++);return Vr=l.slice(e,1<i?1-i:void 0)}function Fr(e){var t=e.keyCode;return"charCode"in e?(e=e.charCode,e===0&&t===13&&(e=13)):e=t,e===10&&(e=13),32<=e||e===13?e:0}function Gr(){return!0}function sp(){return!1}function It(e){function t(n,i,l,o,h){this._reactName=n,this._targetInst=l,this.type=i,this.nativeEvent=o,this.target=h,this.currentTarget=null;for(var w in e)e.hasOwnProperty(w)&&(n=e[w],this[w]=n?n(o):o[w]);return this.isDefaultPrevented=(o.defaultPrevented!=null?o.defaultPrevented:o.returnValue===!1)?Gr:sp,this.isPropagationStopped=sp,this}return j(t.prototype,{preventDefault:function(){this.defaultPrevented=!0;var n=this.nativeEvent;n&&(n.preventDefault?n.preventDefault():typeof n.returnValue!="unknown"&&(n.returnValue=!1),this.isDefaultPrevented=Gr)},stopPropagation:function(){var n=this.nativeEvent;n&&(n.stopPropagation?n.stopPropagation():typeof n.cancelBubble!="unknown"&&(n.cancelBubble=!0),this.isPropagationStopped=Gr)},persist:function(){},isPersistent:Gr}),t}var gi={eventPhase:0,bubbles:0,cancelable:0,timeStamp:function(e){return e.timeStamp||Date.now()},defaultPrevented:0,isTrusted:0},Yr=It(gi),Ps=j({},gi,{view:0,detail:0}),ox=It(Ps),Ko,Qo,qs,Xr=j({},Ps,{screenX:0,screenY:0,clientX:0,clientY:0,pageX:0,pageY:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,getModifierState:Zo,button:0,buttons:0,relatedTarget:function(e){return e.relatedTarget===void 0?e.fromElement===e.srcElement?e.toElement:e.fromElement:e.relatedTarget},movementX:function(e){return"movementX"in e?e.movementX:(e!==qs&&(qs&&e.type==="mousemove"?(Ko=e.screenX-qs.screenX,Qo=e.screenY-qs.screenY):Qo=Ko=0,qs=e),Ko)},movementY:function(e){return"movementY"in e?e.movementY:Qo}}),rp=It(Xr),cx=j({},Xr,{dataTransfer:0}),dx=It(cx),ux=j({},Ps,{relatedTarget:0}),Wo=It(ux),px=j({},gi,{animationName:0,elapsedTime:0,pseudoElement:0}),fx=It(px),mx=j({},gi,{clipboardData:function(e){return"clipboardData"in e?e.clipboardData:window.clipboardData}}),hx=It(mx),vx=j({},gi,{data:0}),lp=It(vx),gx={Esc:"Escape",Spacebar:" ",Left:"ArrowLeft",Up:"ArrowUp",Right:"ArrowRight",Down:"ArrowDown",Del:"Delete",Win:"OS",Menu:"ContextMenu",Apps:"ContextMenu",Scroll:"ScrollLock",MozPrintableKey:"Unidentified"},xx={8:"Backspace",9:"Tab",12:"Clear",13:"Enter",16:"Shift",17:"Control",18:"Alt",19:"Pause",20:"CapsLock",27:"Escape",32:" ",33:"PageUp",34:"PageDown",35:"End",36:"Home",37:"ArrowLeft",38:"ArrowUp",39:"ArrowRight",40:"ArrowDown",45:"Insert",46:"Delete",112:"F1",113:"F2",114:"F3",115:"F4",116:"F5",117:"F6",118:"F7",119:"F8",120:"F9",121:"F10",122:"F11",123:"F12",144:"NumLock",145:"ScrollLock",224:"Meta"},bx={Alt:"altKey",Control:"ctrlKey",Meta:"metaKey",Shift:"shiftKey"};function yx(e){var t=this.nativeEvent;return t.getModifierState?t.getModifierState(e):(e=bx[e])?!!t[e]:!1}function Zo(){return yx}var jx=j({},Ps,{key:function(e){if(e.key){var t=gx[e.key]||e.key;if(t!=="Unidentified")return t}return e.type==="keypress"?(e=Fr(e),e===13?"Enter":String.fromCharCode(e)):e.type==="keydown"||e.type==="keyup"?xx[e.keyCode]||"Unidentified":""},code:0,location:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,repeat:0,locale:0,getModifierState:Zo,charCode:function(e){return e.type==="keypress"?Fr(e):0},keyCode:function(e){return e.type==="keydown"||e.type==="keyup"?e.keyCode:0},which:function(e){return e.type==="keypress"?Fr(e):e.type==="keydown"||e.type==="keyup"?e.keyCode:0}}),wx=It(jx),Sx=j({},Xr,{pointerId:0,width:0,height:0,pressure:0,tangentialPressure:0,tiltX:0,tiltY:0,twist:0,pointerType:0,isPrimary:0}),op=It(Sx),_x=j({},Ps,{touches:0,targetTouches:0,changedTouches:0,altKey:0,metaKey:0,ctrlKey:0,shiftKey:0,getModifierState:Zo}),kx=It(_x),Nx=j({},gi,{propertyName:0,elapsedTime:0,pseudoElement:0}),Cx=It(Nx),Tx=j({},Xr,{deltaX:function(e){return"deltaX"in e?e.deltaX:"wheelDeltaX"in e?-e.wheelDeltaX:0},deltaY:function(e){return"deltaY"in e?e.deltaY:"wheelDeltaY"in e?-e.wheelDeltaY:"wheelDelta"in e?-e.wheelDelta:0},deltaZ:0,deltaMode:0}),Ex=It(Tx),Ax=j({},gi,{newState:0,oldState:0}),zx=It(Ax),Dx=[9,13,27,32],Jo=an&&"CompositionEvent"in window,Is=null;an&&"documentMode"in document&&(Is=document.documentMode);var Mx=an&&"TextEvent"in window&&!Is,cp=an&&(!Jo||Is&&8<Is&&11>=Is),dp=" ",up=!1;function pp(e,t){switch(e){case"keyup":return Dx.indexOf(t.keyCode)!==-1;case"keydown":return t.keyCode!==229;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function fp(e){return e=e.detail,typeof e=="object"&&"data"in e?e.data:null}var $i=!1;function Rx(e,t){switch(e){case"compositionend":return fp(t);case"keypress":return t.which!==32?null:(up=!0,dp);case"textInput":return e=t.data,e===dp&&up?null:e;default:return null}}function Ox(e,t){if($i)return e==="compositionend"||!Jo&&pp(e,t)?(e=ip(),Vr=$o=Tn=null,$i=!1,e):null;switch(e){case"paste":return null;case"keypress":if(!(t.ctrlKey||t.altKey||t.metaKey)||t.ctrlKey&&t.altKey){if(t.char&&1<t.char.length)return t.char;if(t.which)return String.fromCharCode(t.which)}return null;case"compositionend":return cp&&t.locale!=="ko"?null:t.data;default:return null}}var Lx={color:!0,date:!0,datetime:!0,"datetime-local":!0,email:!0,month:!0,number:!0,password:!0,range:!0,search:!0,tel:!0,text:!0,time:!0,url:!0,week:!0};function mp(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return t==="input"?!!Lx[e.type]:t==="textarea"}function hp(e,t,n,i){Yi?Xi?Xi.push(i):Xi=[i]:Yi=i,t=Ll(t,"onChange"),0<t.length&&(n=new Yr("onChange","change",null,n,i),e.push({event:n,listeners:t}))}var Vs=null,Fs=null;function Bx(e){Zm(e,0)}function $r(e){var t=Bs(e);if(Qu(t))return e}function vp(e,t){if(e==="change")return t}var gp=!1;if(an){var ec;if(an){var tc="oninput"in document;if(!tc){var xp=document.createElement("div");xp.setAttribute("oninput","return;"),tc=typeof xp.oninput=="function"}ec=tc}else ec=!1;gp=ec&&(!document.documentMode||9<document.documentMode)}function bp(){Vs&&(Vs.detachEvent("onpropertychange",yp),Fs=Vs=null)}function yp(e){if(e.propertyName==="value"&&$r(Fs)){var t=[];hp(t,Fs,e,Go(e)),np(Bx,t)}}function Hx(e,t,n){e==="focusin"?(bp(),Vs=t,Fs=n,Vs.attachEvent("onpropertychange",yp)):e==="focusout"&&bp()}function Ux(e){if(e==="selectionchange"||e==="keyup"||e==="keydown")return $r(Fs)}function Px(e,t){if(e==="click")return $r(t)}function qx(e,t){if(e==="input"||e==="change")return $r(t)}function Ix(e,t){return e===t&&(e!==0||1/e===1/t)||e!==e&&t!==t}var Zt=typeof Object.is=="function"?Object.is:Ix;function Gs(e,t){if(Zt(e,t))return!0;if(typeof e!="object"||e===null||typeof t!="object"||t===null)return!1;var n=Object.keys(e),i=Object.keys(t);if(n.length!==i.length)return!1;for(i=0;i<n.length;i++){var l=n[i];if(!qe.call(t,l)||!Zt(e[l],t[l]))return!1}return!0}function jp(e){for(;e&&e.firstChild;)e=e.firstChild;return e}function wp(e,t){var n=jp(e);e=0;for(var i;n;){if(n.nodeType===3){if(i=e+n.textContent.length,e<=t&&i>=t)return{node:n,offset:t-e};e=i}e:{for(;n;){if(n.nextSibling){n=n.nextSibling;break e}n=n.parentNode}n=void 0}n=jp(n)}}function Sp(e,t){return e&&t?e===t?!0:e&&e.nodeType===3?!1:t&&t.nodeType===3?Sp(e,t.parentNode):"contains"in e?e.contains(t):e.compareDocumentPosition?!!(e.compareDocumentPosition(t)&16):!1:!1}function _p(e){e=e!=null&&e.ownerDocument!=null&&e.ownerDocument.defaultView!=null?e.ownerDocument.defaultView:window;for(var t=qr(e.document);t instanceof e.HTMLIFrameElement;){try{var n=typeof t.contentWindow.location.href=="string"}catch(i){n=!1}if(n)e=t.contentWindow;else break;t=qr(e.document)}return t}function ac(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return t&&(t==="input"&&(e.type==="text"||e.type==="search"||e.type==="tel"||e.type==="url"||e.type==="password")||t==="textarea"||e.contentEditable==="true")}var Vx=an&&"documentMode"in document&&11>=document.documentMode,Ki=null,nc=null,Ys=null,ic=!1;function kp(e,t,n){var i=n.window===n?n.document:n.nodeType===9?n:n.ownerDocument;ic||Ki==null||Ki!==qr(i)||(i=Ki,"selectionStart"in i&&ac(i)?i={start:i.selectionStart,end:i.selectionEnd}:(i=(i.ownerDocument&&i.ownerDocument.defaultView||window).getSelection(),i={anchorNode:i.anchorNode,anchorOffset:i.anchorOffset,focusNode:i.focusNode,focusOffset:i.focusOffset}),Ys&&Gs(Ys,i)||(Ys=i,i=Ll(nc,"onSelect"),0<i.length&&(t=new Yr("onSelect","select",null,t,n),e.push({event:t,listeners:i}),t.target=Ki)))}function xi(e,t){var n={};return n[e.toLowerCase()]=t.toLowerCase(),n["Webkit"+e]="webkit"+t,n["Moz"+e]="moz"+t,n}var Qi={animationend:xi("Animation","AnimationEnd"),animationiteration:xi("Animation","AnimationIteration"),animationstart:xi("Animation","AnimationStart"),transitionrun:xi("Transition","TransitionRun"),transitionstart:xi("Transition","TransitionStart"),transitioncancel:xi("Transition","TransitionCancel"),transitionend:xi("Transition","TransitionEnd")},sc={},Np={};an&&(Np=document.createElement("div").style,"AnimationEvent"in window||(delete Qi.animationend.animation,delete Qi.animationiteration.animation,delete Qi.animationstart.animation),"TransitionEvent"in window||delete Qi.transitionend.transition);function bi(e){if(sc[e])return sc[e];if(!Qi[e])return e;var t=Qi[e],n;for(n in t)if(t.hasOwnProperty(n)&&n in Np)return sc[e]=t[n];return e}var Cp=bi("animationend"),Tp=bi("animationiteration"),Ep=bi("animationstart"),Fx=bi("transitionrun"),Gx=bi("transitionstart"),Yx=bi("transitioncancel"),Ap=bi("transitionend"),zp=new Map,rc="abort auxClick beforeToggle cancel canPlay canPlayThrough click close contextMenu copy cut drag dragEnd dragEnter dragExit dragLeave dragOver dragStart drop durationChange emptied encrypted ended error gotPointerCapture input invalid keyDown keyPress keyUp load loadedData loadedMetadata loadStart lostPointerCapture mouseDown mouseMove mouseOut mouseOver mouseUp paste pause play playing pointerCancel pointerDown pointerMove pointerOut pointerOver pointerUp progress rateChange reset resize seeked seeking stalled submit suspend timeUpdate touchCancel touchEnd touchStart volumeChange scroll toggle touchMove waiting wheel".split(" ");rc.push("scrollEnd");function Aa(e,t){zp.set(e,t),vi(t,[e])}var Kr=typeof reportError=="function"?reportError:function(e){if(typeof window=="object"&&typeof window.ErrorEvent=="function"){var t=new window.ErrorEvent("error",{bubbles:!0,cancelable:!0,message:typeof e=="object"&&e!==null&&typeof e.message=="string"?String(e.message):String(e),error:e});if(!window.dispatchEvent(t))return}else if(typeof process=="object"&&typeof process.emit=="function"){process.emit("uncaughtException",e);return}console.error(e)},ma=[],Wi=0,lc=0;function Qr(){for(var e=Wi,t=lc=Wi=0;t<e;){var n=ma[t];ma[t++]=null;var i=ma[t];ma[t++]=null;var l=ma[t];ma[t++]=null;var o=ma[t];if(ma[t++]=null,i!==null&&l!==null){var h=i.pending;h===null?l.next=l:(l.next=h.next,h.next=l),i.pending=l}o!==0&&Dp(n,l,o)}}function Wr(e,t,n,i){ma[Wi++]=e,ma[Wi++]=t,ma[Wi++]=n,ma[Wi++]=i,lc|=i,e.lanes|=i,e=e.alternate,e!==null&&(e.lanes|=i)}function oc(e,t,n,i){return Wr(e,t,n,i),Zr(e)}function yi(e,t){return Wr(e,null,null,t),Zr(e)}function Dp(e,t,n){e.lanes|=n;var i=e.alternate;i!==null&&(i.lanes|=n);for(var l=!1,o=e.return;o!==null;)o.childLanes|=n,i=o.alternate,i!==null&&(i.childLanes|=n),o.tag===22&&(e=o.stateNode,e===null||e._visibility&1||(l=!0)),e=o,o=o.return;return e.tag===3?(o=e.stateNode,l&&t!==null&&(l=31-Dt(n),e=o.hiddenUpdates,i=e[l],i===null?e[l]=[t]:i.push(t),t.lane=n|536870912),o):null}function Zr(e){if(50<mr)throw mr=0,gd=null,Error(d(185));for(var t=e.return;t!==null;)e=t,t=e.return;return e.tag===3?e.stateNode:null}var Zi={};function Xx(e,t,n,i){this.tag=e,this.key=n,this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null,this.index=0,this.refCleanup=this.ref=null,this.pendingProps=t,this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null,this.mode=i,this.subtreeFlags=this.flags=0,this.deletions=null,this.childLanes=this.lanes=0,this.alternate=null}function Jt(e,t,n,i){return new Xx(e,t,n,i)}function cc(e){return e=e.prototype,!(!e||!e.isReactComponent)}function nn(e,t){var n=e.alternate;return n===null?(n=Jt(e.tag,t,e.key,e.mode),n.elementType=e.elementType,n.type=e.type,n.stateNode=e.stateNode,n.alternate=e,e.alternate=n):(n.pendingProps=t,n.type=e.type,n.flags=0,n.subtreeFlags=0,n.deletions=null),n.flags=e.flags&65011712,n.childLanes=e.childLanes,n.lanes=e.lanes,n.child=e.child,n.memoizedProps=e.memoizedProps,n.memoizedState=e.memoizedState,n.updateQueue=e.updateQueue,t=e.dependencies,n.dependencies=t===null?null:{lanes:t.lanes,firstContext:t.firstContext},n.sibling=e.sibling,n.index=e.index,n.ref=e.ref,n.refCleanup=e.refCleanup,n}function Mp(e,t){e.flags&=65011714;var n=e.alternate;return n===null?(e.childLanes=0,e.lanes=t,e.child=null,e.subtreeFlags=0,e.memoizedProps=null,e.memoizedState=null,e.updateQueue=null,e.dependencies=null,e.stateNode=null):(e.childLanes=n.childLanes,e.lanes=n.lanes,e.child=n.child,e.subtreeFlags=0,e.deletions=null,e.memoizedProps=n.memoizedProps,e.memoizedState=n.memoizedState,e.updateQueue=n.updateQueue,e.type=n.type,t=n.dependencies,e.dependencies=t===null?null:{lanes:t.lanes,firstContext:t.firstContext}),e}function Jr(e,t,n,i,l,o){var h=0;if(i=e,typeof e=="function")cc(e)&&(h=1);else if(typeof e=="string")h=Zb(e,n,te.current)?26:e==="html"||e==="head"||e==="body"?27:5;else e:switch(e){case O:return e=Jt(31,n,t,l),e.elementType=O,e.lanes=o,e;case D:return ji(n.children,l,o,t);case E:h=8,l|=24;break;case T:return e=Jt(12,n,t,l|2),e.elementType=T,e.lanes=o,e;case S:return e=Jt(13,n,t,l),e.elementType=S,e.lanes=o,e;case N:return e=Jt(19,n,t,l),e.elementType=N,e.lanes=o,e;default:if(typeof e=="object"&&e!==null)switch(e.$$typeof){case _:h=10;break e;case C:h=9;break e;case u:h=11;break e;case z:h=14;break e;case V:h=16,i=null;break e}h=29,n=Error(d(130,e===null?"null":typeof e,"")),i=null}return t=Jt(h,n,t,l),t.elementType=e,t.type=i,t.lanes=o,t}function ji(e,t,n,i){return e=Jt(7,e,i,t),e.lanes=n,e}function dc(e,t,n){return e=Jt(6,e,null,t),e.lanes=n,e}function Rp(e){var t=Jt(18,null,null,0);return t.stateNode=e,t}function uc(e,t,n){return t=Jt(4,e.children!==null?e.children:[],e.key,t),t.lanes=n,t.stateNode={containerInfo:e.containerInfo,pendingChildren:null,implementation:e.implementation},t}var Op=new WeakMap;function ha(e,t){if(typeof e=="object"&&e!==null){var n=Op.get(e);return n!==void 0?n:(t={value:e,source:t,stack:Sn(t)},Op.set(e,t),t)}return{value:e,source:t,stack:Sn(t)}}var Ji=[],es=0,el=null,Xs=0,va=[],ga=0,En=null,qa=1,Ia="";function sn(e,t){Ji[es++]=Xs,Ji[es++]=el,el=e,Xs=t}function Lp(e,t,n){va[ga++]=qa,va[ga++]=Ia,va[ga++]=En,En=e;var i=qa;e=Ia;var l=32-Dt(i)-1;i&=~(1<<l),n+=1;var o=32-Dt(t)+l;if(30<o){var h=l-l%5;o=(i&(1<<h)-1).toString(32),i>>=h,l-=h,qa=1<<32-Dt(t)+l|n<<l|i,Ia=o+e}else qa=1<<o|n<<l|i,Ia=e}function pc(e){e.return!==null&&(sn(e,1),Lp(e,1,0))}function fc(e){for(;e===el;)el=Ji[--es],Ji[es]=null,Xs=Ji[--es],Ji[es]=null;for(;e===En;)En=va[--ga],va[ga]=null,Ia=va[--ga],va[ga]=null,qa=va[--ga],va[ga]=null}function Bp(e,t){va[ga++]=qa,va[ga++]=Ia,va[ga++]=En,qa=t.id,Ia=t.overflow,En=e}var Mt=null,tt=null,Pe=!1,An=null,xa=!1,mc=Error(d(519));function zn(e){var t=Error(d(418,1<arguments.length&&arguments[1]!==void 0&&arguments[1]?"text":"HTML",""));throw $s(ha(t,e)),mc}function Hp(e){var t=e.stateNode,n=e.type,i=e.memoizedProps;switch(t[Ze]=e,t[de]=i,n){case"dialog":Oe("cancel",t),Oe("close",t);break;case"iframe":case"object":case"embed":Oe("load",t);break;case"video":case"audio":for(n=0;n<vr.length;n++)Oe(vr[n],t);break;case"source":Oe("error",t);break;case"img":case"image":case"link":Oe("error",t),Oe("load",t);break;case"details":Oe("toggle",t);break;case"input":Oe("invalid",t),Wu(t,i.value,i.defaultValue,i.checked,i.defaultChecked,i.type,i.name,!0);break;case"select":Oe("invalid",t);break;case"textarea":Oe("invalid",t),Ju(t,i.value,i.defaultValue,i.children)}n=i.children,typeof n!="string"&&typeof n!="number"&&typeof n!="bigint"||t.textContent===""+n||i.suppressHydrationWarning===!0||ah(t.textContent,n)?(i.popover!=null&&(Oe("beforetoggle",t),Oe("toggle",t)),i.onScroll!=null&&Oe("scroll",t),i.onScrollEnd!=null&&Oe("scrollend",t),i.onClick!=null&&(t.onclick=tn),t=!0):t=!1,t||zn(e,!0)}function Up(e){for(Mt=e.return;Mt;)switch(Mt.tag){case 5:case 31:case 13:xa=!1;return;case 27:case 3:xa=!0;return;default:Mt=Mt.return}}function ts(e){if(e!==Mt)return!1;if(!Pe)return Up(e),Pe=!0,!1;var t=e.tag,n;if((n=t!==3&&t!==27)&&((n=t===5)&&(n=e.type,n=!(n!=="form"&&n!=="button")||Dd(e.type,e.memoizedProps)),n=!n),n&&tt&&zn(e),Up(e),t===13){if(e=e.memoizedState,e=e!==null?e.dehydrated:null,!e)throw Error(d(317));tt=uh(e)}else if(t===31){if(e=e.memoizedState,e=e!==null?e.dehydrated:null,!e)throw Error(d(317));tt=uh(e)}else t===27?(t=tt,Gn(e.type)?(e=Bd,Bd=null,tt=e):tt=t):tt=Mt?ya(e.stateNode.nextSibling):null;return!0}function wi(){tt=Mt=null,Pe=!1}function hc(){var e=An;return e!==null&&(Yt===null?Yt=e:Yt.push.apply(Yt,e),An=null),e}function $s(e){An===null?An=[e]:An.push(e)}var vc=R(null),Si=null,rn=null;function Dn(e,t,n){B(vc,t._currentValue),t._currentValue=n}function ln(e){e._currentValue=vc.current,W(vc)}function gc(e,t,n){for(;e!==null;){var i=e.alternate;if((e.childLanes&t)!==t?(e.childLanes|=t,i!==null&&(i.childLanes|=t)):i!==null&&(i.childLanes&t)!==t&&(i.childLanes|=t),e===n)break;e=e.return}}function xc(e,t,n,i){var l=e.child;for(l!==null&&(l.return=e);l!==null;){var o=l.dependencies;if(o!==null){var h=l.child;o=o.firstContext;e:for(;o!==null;){var w=o;o=l;for(var M=0;M<t.length;M++)if(w.context===t[M]){o.lanes|=n,w=o.alternate,w!==null&&(w.lanes|=n),gc(o.return,n,e),i||(h=null);break e}o=w.next}}else if(l.tag===18){if(h=l.return,h===null)throw Error(d(341));h.lanes|=n,o=h.alternate,o!==null&&(o.lanes|=n),gc(h,n,e),h=null}else h=l.child;if(h!==null)h.return=l;else for(h=l;h!==null;){if(h===e){h=null;break}if(l=h.sibling,l!==null){l.return=h.return,h=l;break}h=h.return}l=h}}function as(e,t,n,i){e=null;for(var l=t,o=!1;l!==null;){if(!o){if((l.flags&524288)!==0)o=!0;else if((l.flags&262144)!==0)break}if(l.tag===10){var h=l.alternate;if(h===null)throw Error(d(387));if(h=h.memoizedProps,h!==null){var w=l.type;Zt(l.pendingProps.value,h.value)||(e!==null?e.push(w):e=[w])}}else if(l===I.current){if(h=l.alternate,h===null)throw Error(d(387));h.memoizedState.memoizedState!==l.memoizedState.memoizedState&&(e!==null?e.push(jr):e=[jr])}l=l.return}e!==null&&xc(t,e,n,i),t.flags|=262144}function tl(e){for(e=e.firstContext;e!==null;){if(!Zt(e.context._currentValue,e.memoizedValue))return!0;e=e.next}return!1}function _i(e){Si=e,rn=null,e=e.dependencies,e!==null&&(e.firstContext=null)}function Rt(e){return Pp(Si,e)}function al(e,t){return Si===null&&_i(e),Pp(e,t)}function Pp(e,t){var n=t._currentValue;if(t={context:t,memoizedValue:n,next:null},rn===null){if(e===null)throw Error(d(308));rn=t,e.dependencies={lanes:0,firstContext:t},e.flags|=524288}else rn=rn.next=t;return n}var $x=typeof AbortController!="undefined"?AbortController:function(){var e=[],t=this.signal={aborted:!1,addEventListener:function(n,i){e.push(i)}};this.abort=function(){t.aborted=!0,e.forEach(function(n){return n()})}},Kx=s.unstable_scheduleCallback,Qx=s.unstable_NormalPriority,mt={$$typeof:_,Consumer:null,Provider:null,_currentValue:null,_currentValue2:null,_threadCount:0};function bc(){return{controller:new $x,data:new Map,refCount:0}}function Ks(e){e.refCount--,e.refCount===0&&Kx(Qx,function(){e.controller.abort()})}var Qs=null,yc=0,ns=0,is=null;function Wx(e,t){if(Qs===null){var n=Qs=[];yc=0,ns=Sd(),is={status:"pending",value:void 0,then:function(i){n.push(i)}}}return yc++,t.then(qp,qp),t}function qp(){if(--yc===0&&Qs!==null){is!==null&&(is.status="fulfilled");var e=Qs;Qs=null,ns=0,is=null;for(var t=0;t<e.length;t++)(0,e[t])()}}function Zx(e,t){var n=[],i={status:"pending",value:null,reason:null,then:function(l){n.push(l)}};return e.then(function(){i.status="fulfilled",i.value=t;for(var l=0;l<n.length;l++)(0,n[l])(t)},function(l){for(i.status="rejected",i.reason=l,l=0;l<n.length;l++)(0,n[l])(void 0)}),i}var Ip=P.S;P.S=function(e,t){Nm=zt(),typeof t=="object"&&t!==null&&typeof t.then=="function"&&Wx(e,t),Ip!==null&&Ip(e,t)};var ki=R(null);function jc(){var e=ki.current;return e!==null?e:Je.pooledCache}function nl(e,t){t===null?B(ki,ki.current):B(ki,t.pool)}function Vp(){var e=jc();return e===null?null:{parent:mt._currentValue,pool:e}}var ss=Error(d(460)),wc=Error(d(474)),il=Error(d(542)),sl={then:function(){}};function Fp(e){return e=e.status,e==="fulfilled"||e==="rejected"}function Gp(e,t,n){switch(n=e[n],n===void 0?e.push(t):n!==t&&(t.then(tn,tn),t=n),t.status){case"fulfilled":return t.value;case"rejected":throw e=t.reason,Xp(e),e;default:if(typeof t.status=="string")t.then(tn,tn);else{if(e=Je,e!==null&&100<e.shellSuspendCounter)throw Error(d(482));e=t,e.status="pending",e.then(function(i){if(t.status==="pending"){var l=t;l.status="fulfilled",l.value=i}},function(i){if(t.status==="pending"){var l=t;l.status="rejected",l.reason=i}})}switch(t.status){case"fulfilled":return t.value;case"rejected":throw e=t.reason,Xp(e),e}throw Ci=t,ss}}function Ni(e){try{var t=e._init;return t(e._payload)}catch(n){throw n!==null&&typeof n=="object"&&typeof n.then=="function"?(Ci=n,ss):n}}var Ci=null;function Yp(){if(Ci===null)throw Error(d(459));var e=Ci;return Ci=null,e}function Xp(e){if(e===ss||e===il)throw Error(d(483))}var rs=null,Ws=0;function rl(e){var t=Ws;return Ws+=1,rs===null&&(rs=[]),Gp(rs,e,t)}function Zs(e,t){t=t.props.ref,e.ref=t!==void 0?t:null}function ll(e,t){throw t.$$typeof===k?Error(d(525)):(e=Object.prototype.toString.call(t),Error(d(31,e==="[object Object]"?"object with keys {"+Object.keys(t).join(", ")+"}":e)))}function $p(e){function t(q,H){if(e){var G=q.deletions;G===null?(q.deletions=[H],q.flags|=16):G.push(H)}}function n(q,H){if(!e)return null;for(;H!==null;)t(q,H),H=H.sibling;return null}function i(q){for(var H=new Map;q!==null;)q.key!==null?H.set(q.key,q):H.set(q.index,q),q=q.sibling;return H}function l(q,H){return q=nn(q,H),q.index=0,q.sibling=null,q}function o(q,H,G){return q.index=G,e?(G=q.alternate,G!==null?(G=G.index,G<H?(q.flags|=67108866,H):G):(q.flags|=67108866,H)):(q.flags|=1048576,H)}function h(q){return e&&q.alternate===null&&(q.flags|=67108866),q}function w(q,H,G,ne){return H===null||H.tag!==6?(H=dc(G,q.mode,ne),H.return=q,H):(H=l(H,G),H.return=q,H)}function M(q,H,G,ne){var _e=G.type;return _e===D?ae(q,H,G.props.children,ne,G.key):H!==null&&(H.elementType===_e||typeof _e=="object"&&_e!==null&&_e.$$typeof===V&&Ni(_e)===H.type)?(H=l(H,G.props),Zs(H,G),H.return=q,H):(H=Jr(G.type,G.key,G.props,null,q.mode,ne),Zs(H,G),H.return=q,H)}function Y(q,H,G,ne){return H===null||H.tag!==4||H.stateNode.containerInfo!==G.containerInfo||H.stateNode.implementation!==G.implementation?(H=uc(G,q.mode,ne),H.return=q,H):(H=l(H,G.children||[]),H.return=q,H)}function ae(q,H,G,ne,_e){return H===null||H.tag!==7?(H=ji(G,q.mode,ne,_e),H.return=q,H):(H=l(H,G),H.return=q,H)}function se(q,H,G){if(typeof H=="string"&&H!==""||typeof H=="number"||typeof H=="bigint")return H=dc(""+H,q.mode,G),H.return=q,H;if(typeof H=="object"&&H!==null){switch(H.$$typeof){case A:return G=Jr(H.type,H.key,H.props,null,q.mode,G),Zs(G,H),G.return=q,G;case L:return H=uc(H,q.mode,G),H.return=q,H;case V:return H=Ni(H),se(q,H,G)}if(Z(H)||F(H))return H=ji(H,q.mode,G,null),H.return=q,H;if(typeof H.then=="function")return se(q,rl(H),G);if(H.$$typeof===_)return se(q,al(q,H),G);ll(q,H)}return null}function X(q,H,G,ne){var _e=H!==null?H.key:null;if(typeof G=="string"&&G!==""||typeof G=="number"||typeof G=="bigint")return _e!==null?null:w(q,H,""+G,ne);if(typeof G=="object"&&G!==null){switch(G.$$typeof){case A:return G.key===_e?M(q,H,G,ne):null;case L:return G.key===_e?Y(q,H,G,ne):null;case V:return G=Ni(G),X(q,H,G,ne)}if(Z(G)||F(G))return _e!==null?null:ae(q,H,G,ne,null);if(typeof G.then=="function")return X(q,H,rl(G),ne);if(G.$$typeof===_)return X(q,H,al(q,G),ne);ll(q,G)}return null}function ee(q,H,G,ne,_e){if(typeof ne=="string"&&ne!==""||typeof ne=="number"||typeof ne=="bigint")return q=q.get(G)||null,w(H,q,""+ne,_e);if(typeof ne=="object"&&ne!==null){switch(ne.$$typeof){case A:return q=q.get(ne.key===null?G:ne.key)||null,M(H,q,ne,_e);case L:return q=q.get(ne.key===null?G:ne.key)||null,Y(H,q,ne,_e);case V:return ne=Ni(ne),ee(q,H,G,ne,_e)}if(Z(ne)||F(ne))return q=q.get(G)||null,ae(H,q,ne,_e,null);if(typeof ne.then=="function")return ee(q,H,G,rl(ne),_e);if(ne.$$typeof===_)return ee(q,H,G,al(H,ne),_e);ll(H,ne)}return null}function ye(q,H,G,ne){for(var _e=null,Ie=null,Se=H,Me=H=0,Be=null;Se!==null&&Me<G.length;Me++){Se.index>Me?(Be=Se,Se=null):Be=Se.sibling;var Ve=X(q,Se,G[Me],ne);if(Ve===null){Se===null&&(Se=Be);break}e&&Se&&Ve.alternate===null&&t(q,Se),H=o(Ve,H,Me),Ie===null?_e=Ve:Ie.sibling=Ve,Ie=Ve,Se=Be}if(Me===G.length)return n(q,Se),Pe&&sn(q,Me),_e;if(Se===null){for(;Me<G.length;Me++)Se=se(q,G[Me],ne),Se!==null&&(H=o(Se,H,Me),Ie===null?_e=Se:Ie.sibling=Se,Ie=Se);return Pe&&sn(q,Me),_e}for(Se=i(Se);Me<G.length;Me++)Be=ee(Se,q,Me,G[Me],ne),Be!==null&&(e&&Be.alternate!==null&&Se.delete(Be.key===null?Me:Be.key),H=o(Be,H,Me),Ie===null?_e=Be:Ie.sibling=Be,Ie=Be);return e&&Se.forEach(function(Qn){return t(q,Qn)}),Pe&&sn(q,Me),_e}function Ce(q,H,G,ne){if(G==null)throw Error(d(151));for(var _e=null,Ie=null,Se=H,Me=H=0,Be=null,Ve=G.next();Se!==null&&!Ve.done;Me++,Ve=G.next()){Se.index>Me?(Be=Se,Se=null):Be=Se.sibling;var Qn=X(q,Se,Ve.value,ne);if(Qn===null){Se===null&&(Se=Be);break}e&&Se&&Qn.alternate===null&&t(q,Se),H=o(Qn,H,Me),Ie===null?_e=Qn:Ie.sibling=Qn,Ie=Qn,Se=Be}if(Ve.done)return n(q,Se),Pe&&sn(q,Me),_e;if(Se===null){for(;!Ve.done;Me++,Ve=G.next())Ve=se(q,Ve.value,ne),Ve!==null&&(H=o(Ve,H,Me),Ie===null?_e=Ve:Ie.sibling=Ve,Ie=Ve);return Pe&&sn(q,Me),_e}for(Se=i(Se);!Ve.done;Me++,Ve=G.next())Ve=ee(Se,q,Me,Ve.value,ne),Ve!==null&&(e&&Ve.alternate!==null&&Se.delete(Ve.key===null?Me:Ve.key),H=o(Ve,H,Me),Ie===null?_e=Ve:Ie.sibling=Ve,Ie=Ve);return e&&Se.forEach(function(cy){return t(q,cy)}),Pe&&sn(q,Me),_e}function We(q,H,G,ne){if(typeof G=="object"&&G!==null&&G.type===D&&G.key===null&&(G=G.props.children),typeof G=="object"&&G!==null){switch(G.$$typeof){case A:e:{for(var _e=G.key;H!==null;){if(H.key===_e){if(_e=G.type,_e===D){if(H.tag===7){n(q,H.sibling),ne=l(H,G.props.children),ne.return=q,q=ne;break e}}else if(H.elementType===_e||typeof _e=="object"&&_e!==null&&_e.$$typeof===V&&Ni(_e)===H.type){n(q,H.sibling),ne=l(H,G.props),Zs(ne,G),ne.return=q,q=ne;break e}n(q,H);break}else t(q,H);H=H.sibling}G.type===D?(ne=ji(G.props.children,q.mode,ne,G.key),ne.return=q,q=ne):(ne=Jr(G.type,G.key,G.props,null,q.mode,ne),Zs(ne,G),ne.return=q,q=ne)}return h(q);case L:e:{for(_e=G.key;H!==null;){if(H.key===_e)if(H.tag===4&&H.stateNode.containerInfo===G.containerInfo&&H.stateNode.implementation===G.implementation){n(q,H.sibling),ne=l(H,G.children||[]),ne.return=q,q=ne;break e}else{n(q,H);break}else t(q,H);H=H.sibling}ne=uc(G,q.mode,ne),ne.return=q,q=ne}return h(q);case V:return G=Ni(G),We(q,H,G,ne)}if(Z(G))return ye(q,H,G,ne);if(F(G)){if(_e=F(G),typeof _e!="function")throw Error(d(150));return G=_e.call(G),Ce(q,H,G,ne)}if(typeof G.then=="function")return We(q,H,rl(G),ne);if(G.$$typeof===_)return We(q,H,al(q,G),ne);ll(q,G)}return typeof G=="string"&&G!==""||typeof G=="number"||typeof G=="bigint"?(G=""+G,H!==null&&H.tag===6?(n(q,H.sibling),ne=l(H,G),ne.return=q,q=ne):(n(q,H),ne=dc(G,q.mode,ne),ne.return=q,q=ne),h(q)):n(q,H)}return function(q,H,G,ne){try{Ws=0;var _e=We(q,H,G,ne);return rs=null,_e}catch(Se){if(Se===ss||Se===il)throw Se;var Ie=Jt(29,Se,null,q.mode);return Ie.lanes=ne,Ie.return=q,Ie}finally{}}}var Ti=$p(!0),Kp=$p(!1),Mn=!1;function Sc(e){e.updateQueue={baseState:e.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,lanes:0,hiddenCallbacks:null},callbacks:null}}function _c(e,t){e=e.updateQueue,t.updateQueue===e&&(t.updateQueue={baseState:e.baseState,firstBaseUpdate:e.firstBaseUpdate,lastBaseUpdate:e.lastBaseUpdate,shared:e.shared,callbacks:null})}function Rn(e){return{lane:e,tag:0,payload:null,callback:null,next:null}}function On(e,t,n){var i=e.updateQueue;if(i===null)return null;if(i=i.shared,(Fe&2)!==0){var l=i.pending;return l===null?t.next=t:(t.next=l.next,l.next=t),i.pending=t,t=Zr(e),Dp(e,null,n),t}return Wr(e,i,t,n),Zr(e)}function Js(e,t,n){if(t=t.updateQueue,t!==null&&(t=t.shared,(n&4194048)!==0)){var i=t.lanes;i&=e.pendingLanes,n|=i,t.lanes=n,Rs(e,n)}}function kc(e,t){var n=e.updateQueue,i=e.alternate;if(i!==null&&(i=i.updateQueue,n===i)){var l=null,o=null;if(n=n.firstBaseUpdate,n!==null){do{var h={lane:n.lane,tag:n.tag,payload:n.payload,callback:null,next:null};o===null?l=o=h:o=o.next=h,n=n.next}while(n!==null);o===null?l=o=t:o=o.next=t}else l=o=t;n={baseState:i.baseState,firstBaseUpdate:l,lastBaseUpdate:o,shared:i.shared,callbacks:i.callbacks},e.updateQueue=n;return}e=n.lastBaseUpdate,e===null?n.firstBaseUpdate=t:e.next=t,n.lastBaseUpdate=t}var Nc=!1;function er(){if(Nc){var e=is;if(e!==null)throw e}}function tr(e,t,n,i){Nc=!1;var l=e.updateQueue;Mn=!1;var o=l.firstBaseUpdate,h=l.lastBaseUpdate,w=l.shared.pending;if(w!==null){l.shared.pending=null;var M=w,Y=M.next;M.next=null,h===null?o=Y:h.next=Y,h=M;var ae=e.alternate;ae!==null&&(ae=ae.updateQueue,w=ae.lastBaseUpdate,w!==h&&(w===null?ae.firstBaseUpdate=Y:w.next=Y,ae.lastBaseUpdate=M))}if(o!==null){var se=l.baseState;h=0,ae=Y=M=null,w=o;do{var X=w.lane&-536870913,ee=X!==w.lane;if(ee?(Le&X)===X:(i&X)===X){X!==0&&X===ns&&(Nc=!0),ae!==null&&(ae=ae.next={lane:0,tag:w.tag,payload:w.payload,callback:null,next:null});e:{var ye=e,Ce=w;X=t;var We=n;switch(Ce.tag){case 1:if(ye=Ce.payload,typeof ye=="function"){se=ye.call(We,se,X);break e}se=ye;break e;case 3:ye.flags=ye.flags&-65537|128;case 0:if(ye=Ce.payload,X=typeof ye=="function"?ye.call(We,se,X):ye,X==null)break e;se=j({},se,X);break e;case 2:Mn=!0}}X=w.callback,X!==null&&(e.flags|=64,ee&&(e.flags|=8192),ee=l.callbacks,ee===null?l.callbacks=[X]:ee.push(X))}else ee={lane:X,tag:w.tag,payload:w.payload,callback:w.callback,next:null},ae===null?(Y=ae=ee,M=se):ae=ae.next=ee,h|=X;if(w=w.next,w===null){if(w=l.shared.pending,w===null)break;ee=w,w=ee.next,ee.next=null,l.lastBaseUpdate=ee,l.shared.pending=null}}while(!0);ae===null&&(M=se),l.baseState=M,l.firstBaseUpdate=Y,l.lastBaseUpdate=ae,o===null&&(l.shared.lanes=0),Pn|=h,e.lanes=h,e.memoizedState=se}}function Qp(e,t){if(typeof e!="function")throw Error(d(191,e));e.call(t)}function Wp(e,t){var n=e.callbacks;if(n!==null)for(e.callbacks=null,e=0;e<n.length;e++)Qp(n[e],t)}var ls=R(null),ol=R(0);function Zp(e,t){e=vn,B(ol,e),B(ls,t),vn=e|t.baseLanes}function Cc(){B(ol,vn),B(ls,ls.current)}function Tc(){vn=ol.current,W(ls),W(ol)}var ea=R(null),ba=null;function Ln(e){var t=e.alternate;B(pt,pt.current&1),B(ea,e),ba===null&&(t===null||ls.current!==null||t.memoizedState!==null)&&(ba=e)}function Ec(e){B(pt,pt.current),B(ea,e),ba===null&&(ba=e)}function Jp(e){e.tag===22?(B(pt,pt.current),B(ea,e),ba===null&&(ba=e)):Bn()}function Bn(){B(pt,pt.current),B(ea,ea.current)}function ta(e){W(ea),ba===e&&(ba=null),W(pt)}var pt=R(0);function cl(e){for(var t=e;t!==null;){if(t.tag===13){var n=t.memoizedState;if(n!==null&&(n=n.dehydrated,n===null||Od(n)||Ld(n)))return t}else if(t.tag===19&&(t.memoizedProps.revealOrder==="forwards"||t.memoizedProps.revealOrder==="backwards"||t.memoizedProps.revealOrder==="unstable_legacy-backwards"||t.memoizedProps.revealOrder==="together")){if((t.flags&128)!==0)return t}else if(t.child!==null){t.child.return=t,t=t.child;continue}if(t===e)break;for(;t.sibling===null;){if(t.return===null||t.return===e)return null;t=t.return}t.sibling.return=t.return,t=t.sibling}return null}var on=0,ze=null,Ke=null,ht=null,dl=!1,os=!1,Ei=!1,ul=0,ar=0,cs=null,Jx=0;function ot(){throw Error(d(321))}function Ac(e,t){if(t===null)return!1;for(var n=0;n<t.length&&n<e.length;n++)if(!Zt(e[n],t[n]))return!1;return!0}function zc(e,t,n,i,l,o){return on=o,ze=t,t.memoizedState=null,t.updateQueue=null,t.lanes=0,P.H=e===null||e.memoizedState===null?Bf:Yc,Ei=!1,o=n(i,l),Ei=!1,os&&(o=tf(t,n,i,l)),ef(e),o}function ef(e){P.H=sr;var t=Ke!==null&&Ke.next!==null;if(on=0,ht=Ke=ze=null,dl=!1,ar=0,cs=null,t)throw Error(d(300));e===null||vt||(e=e.dependencies,e!==null&&tl(e)&&(vt=!0))}function tf(e,t,n,i){ze=e;var l=0;do{if(os&&(cs=null),ar=0,os=!1,25<=l)throw Error(d(301));if(l+=1,ht=Ke=null,e.updateQueue!=null){var o=e.updateQueue;o.lastEffect=null,o.events=null,o.stores=null,o.memoCache!=null&&(o.memoCache.index=0)}P.H=Hf,o=t(n,i)}while(os);return o}function eb(){var e=P.H,t=e.useState()[0];return t=typeof t.then=="function"?nr(t):t,e=e.useState()[0],(Ke!==null?Ke.memoizedState:null)!==e&&(ze.flags|=1024),t}function Dc(){var e=ul!==0;return ul=0,e}function Mc(e,t,n){t.updateQueue=e.updateQueue,t.flags&=-2053,e.lanes&=~n}function Rc(e){if(dl){for(e=e.memoizedState;e!==null;){var t=e.queue;t!==null&&(t.pending=null),e=e.next}dl=!1}on=0,ht=Ke=ze=null,os=!1,ar=ul=0,cs=null}function Pt(){var e={memoizedState:null,baseState:null,baseQueue:null,queue:null,next:null};return ht===null?ze.memoizedState=ht=e:ht=ht.next=e,ht}function ft(){if(Ke===null){var e=ze.alternate;e=e!==null?e.memoizedState:null}else e=Ke.next;var t=ht===null?ze.memoizedState:ht.next;if(t!==null)ht=t,Ke=e;else{if(e===null)throw ze.alternate===null?Error(d(467)):Error(d(310));Ke=e,e={memoizedState:Ke.memoizedState,baseState:Ke.baseState,baseQueue:Ke.baseQueue,queue:Ke.queue,next:null},ht===null?ze.memoizedState=ht=e:ht=ht.next=e}return ht}function pl(){return{lastEffect:null,events:null,stores:null,memoCache:null}}function nr(e){var t=ar;return ar+=1,cs===null&&(cs=[]),e=Gp(cs,e,t),t=ze,(ht===null?t.memoizedState:ht.next)===null&&(t=t.alternate,P.H=t===null||t.memoizedState===null?Bf:Yc),e}function fl(e){if(e!==null&&typeof e=="object"){if(typeof e.then=="function")return nr(e);if(e.$$typeof===_)return Rt(e)}throw Error(d(438,String(e)))}function Oc(e){var t=null,n=ze.updateQueue;if(n!==null&&(t=n.memoCache),t==null){var i=ze.alternate;i!==null&&(i=i.updateQueue,i!==null&&(i=i.memoCache,i!=null&&(t={data:i.data.map(function(l){return l.slice()}),index:0})))}if(t==null&&(t={data:[],index:0}),n===null&&(n=pl(),ze.updateQueue=n),n.memoCache=t,n=t.data[t.index],n===void 0)for(n=t.data[t.index]=Array(e),i=0;i<e;i++)n[i]=Q;return t.index++,n}function cn(e,t){return typeof t=="function"?t(e):t}function ml(e){var t=ft();return Lc(t,Ke,e)}function Lc(e,t,n){var i=e.queue;if(i===null)throw Error(d(311));i.lastRenderedReducer=n;var l=e.baseQueue,o=i.pending;if(o!==null){if(l!==null){var h=l.next;l.next=o.next,o.next=h}t.baseQueue=l=o,i.pending=null}if(o=e.baseState,l===null)e.memoizedState=o;else{t=l.next;var w=h=null,M=null,Y=t,ae=!1;do{var se=Y.lane&-536870913;if(se!==Y.lane?(Le&se)===se:(on&se)===se){var X=Y.revertLane;if(X===0)M!==null&&(M=M.next={lane:0,revertLane:0,gesture:null,action:Y.action,hasEagerState:Y.hasEagerState,eagerState:Y.eagerState,next:null}),se===ns&&(ae=!0);else if((on&X)===X){Y=Y.next,X===ns&&(ae=!0);continue}else se={lane:0,revertLane:Y.revertLane,gesture:null,action:Y.action,hasEagerState:Y.hasEagerState,eagerState:Y.eagerState,next:null},M===null?(w=M=se,h=o):M=M.next=se,ze.lanes|=X,Pn|=X;se=Y.action,Ei&&n(o,se),o=Y.hasEagerState?Y.eagerState:n(o,se)}else X={lane:se,revertLane:Y.revertLane,gesture:Y.gesture,action:Y.action,hasEagerState:Y.hasEagerState,eagerState:Y.eagerState,next:null},M===null?(w=M=X,h=o):M=M.next=X,ze.lanes|=se,Pn|=se;Y=Y.next}while(Y!==null&&Y!==t);if(M===null?h=o:M.next=w,!Zt(o,e.memoizedState)&&(vt=!0,ae&&(n=is,n!==null)))throw n;e.memoizedState=o,e.baseState=h,e.baseQueue=M,i.lastRenderedState=o}return l===null&&(i.lanes=0),[e.memoizedState,i.dispatch]}function Bc(e){var t=ft(),n=t.queue;if(n===null)throw Error(d(311));n.lastRenderedReducer=e;var i=n.dispatch,l=n.pending,o=t.memoizedState;if(l!==null){n.pending=null;var h=l=l.next;do o=e(o,h.action),h=h.next;while(h!==l);Zt(o,t.memoizedState)||(vt=!0),t.memoizedState=o,t.baseQueue===null&&(t.baseState=o),n.lastRenderedState=o}return[o,i]}function af(e,t,n){var i=ze,l=ft(),o=Pe;if(o){if(n===void 0)throw Error(d(407));n=n()}else n=t();var h=!Zt((Ke||l).memoizedState,n);if(h&&(l.memoizedState=n,vt=!0),l=l.queue,Pc(rf.bind(null,i,l,e),[e]),l.getSnapshot!==t||h||ht!==null&&ht.memoizedState.tag&1){if(i.flags|=2048,ds(9,{destroy:void 0},sf.bind(null,i,l,n,t),null),Je===null)throw Error(d(349));o||(on&127)!==0||nf(i,t,n)}return n}function nf(e,t,n){e.flags|=16384,e={getSnapshot:t,value:n},t=ze.updateQueue,t===null?(t=pl(),ze.updateQueue=t,t.stores=[e]):(n=t.stores,n===null?t.stores=[e]:n.push(e))}function sf(e,t,n,i){t.value=n,t.getSnapshot=i,lf(t)&&of(e)}function rf(e,t,n){return n(function(){lf(t)&&of(e)})}function lf(e){var t=e.getSnapshot;e=e.value;try{var n=t();return!Zt(e,n)}catch(i){return!0}}function of(e){var t=yi(e,2);t!==null&&Xt(t,e,2)}function Hc(e){var t=Pt();if(typeof e=="function"){var n=e;if(e=n(),Ei){ua(!0);try{n()}finally{ua(!1)}}}return t.memoizedState=t.baseState=e,t.queue={pending:null,lanes:0,dispatch:null,lastRenderedReducer:cn,lastRenderedState:e},t}function cf(e,t,n,i){return e.baseState=n,Lc(e,Ke,typeof i=="function"?i:cn)}function tb(e,t,n,i,l){if(gl(e))throw Error(d(485));if(e=t.action,e!==null){var o={payload:l,action:e,next:null,isTransition:!0,status:"pending",value:null,reason:null,listeners:[],then:function(h){o.listeners.push(h)}};P.T!==null?n(!0):o.isTransition=!1,i(o),n=t.pending,n===null?(o.next=t.pending=o,df(t,o)):(o.next=n.next,t.pending=n.next=o)}}function df(e,t){var n=t.action,i=t.payload,l=e.state;if(t.isTransition){var o=P.T,h={};P.T=h;try{var w=n(l,i),M=P.S;M!==null&&M(h,w),uf(e,t,w)}catch(Y){Uc(e,t,Y)}finally{o!==null&&h.types!==null&&(o.types=h.types),P.T=o}}else try{o=n(l,i),uf(e,t,o)}catch(Y){Uc(e,t,Y)}}function uf(e,t,n){n!==null&&typeof n=="object"&&typeof n.then=="function"?n.then(function(i){pf(e,t,i)},function(i){return Uc(e,t,i)}):pf(e,t,n)}function pf(e,t,n){t.status="fulfilled",t.value=n,ff(t),e.state=n,t=e.pending,t!==null&&(n=t.next,n===t?e.pending=null:(n=n.next,t.next=n,df(e,n)))}function Uc(e,t,n){var i=e.pending;if(e.pending=null,i!==null){i=i.next;do t.status="rejected",t.reason=n,ff(t),t=t.next;while(t!==i)}e.action=null}function ff(e){e=e.listeners;for(var t=0;t<e.length;t++)(0,e[t])()}function mf(e,t){return t}function hf(e,t){if(Pe){var n=Je.formState;if(n!==null){e:{var i=ze;if(Pe){if(tt){t:{for(var l=tt,o=xa;l.nodeType!==8;){if(!o){l=null;break t}if(l=ya(l.nextSibling),l===null){l=null;break t}}o=l.data,l=o==="F!"||o==="F"?l:null}if(l){tt=ya(l.nextSibling),i=l.data==="F!";break e}}zn(i)}i=!1}i&&(t=n[0])}}return n=Pt(),n.memoizedState=n.baseState=t,i={pending:null,lanes:0,dispatch:null,lastRenderedReducer:mf,lastRenderedState:t},n.queue=i,n=Rf.bind(null,ze,i),i.dispatch=n,i=Hc(!1),o=Gc.bind(null,ze,!1,i.queue),i=Pt(),l={state:t,dispatch:null,action:e,pending:null},i.queue=l,n=tb.bind(null,ze,l,o,n),l.dispatch=n,i.memoizedState=e,[t,n,!1]}function vf(e){var t=ft();return gf(t,Ke,e)}function gf(e,t,n){if(t=Lc(e,t,mf)[0],e=ml(cn)[0],typeof t=="object"&&t!==null&&typeof t.then=="function")try{var i=nr(t)}catch(h){throw h===ss?il:h}else i=t;t=ft();var l=t.queue,o=l.dispatch;return n!==t.memoizedState&&(ze.flags|=2048,ds(9,{destroy:void 0},ab.bind(null,l,n),null)),[i,o,e]}function ab(e,t){e.action=t}function xf(e){var t=ft(),n=Ke;if(n!==null)return gf(t,n,e);ft(),t=t.memoizedState,n=ft();var i=n.queue.dispatch;return n.memoizedState=e,[t,i,!1]}function ds(e,t,n,i){return e={tag:e,create:n,deps:i,inst:t,next:null},t=ze.updateQueue,t===null&&(t=pl(),ze.updateQueue=t),n=t.lastEffect,n===null?t.lastEffect=e.next=e:(i=n.next,n.next=e,e.next=i,t.lastEffect=e),e}function bf(){return ft().memoizedState}function hl(e,t,n,i){var l=Pt();ze.flags|=e,l.memoizedState=ds(1|t,{destroy:void 0},n,i===void 0?null:i)}function vl(e,t,n,i){var l=ft();i=i===void 0?null:i;var o=l.memoizedState.inst;Ke!==null&&i!==null&&Ac(i,Ke.memoizedState.deps)?l.memoizedState=ds(t,o,n,i):(ze.flags|=e,l.memoizedState=ds(1|t,o,n,i))}function yf(e,t){hl(8390656,8,e,t)}function Pc(e,t){vl(2048,8,e,t)}function nb(e){ze.flags|=4;var t=ze.updateQueue;if(t===null)t=pl(),ze.updateQueue=t,t.events=[e];else{var n=t.events;n===null?t.events=[e]:n.push(e)}}function jf(e){var t=ft().memoizedState;return nb({ref:t,nextImpl:e}),function(){if((Fe&2)!==0)throw Error(d(440));return t.impl.apply(void 0,arguments)}}function wf(e,t){return vl(4,2,e,t)}function Sf(e,t){return vl(4,4,e,t)}function _f(e,t){if(typeof t=="function"){e=e();var n=t(e);return function(){typeof n=="function"?n():t(null)}}if(t!=null)return e=e(),t.current=e,function(){t.current=null}}function kf(e,t,n){n=n!=null?n.concat([e]):null,vl(4,4,_f.bind(null,t,e),n)}function qc(){}function Nf(e,t){var n=ft();t=t===void 0?null:t;var i=n.memoizedState;return t!==null&&Ac(t,i[1])?i[0]:(n.memoizedState=[e,t],e)}function Cf(e,t){var n=ft();t=t===void 0?null:t;var i=n.memoizedState;if(t!==null&&Ac(t,i[1]))return i[0];if(i=e(),Ei){ua(!0);try{e()}finally{ua(!1)}}return n.memoizedState=[i,t],i}function Ic(e,t,n){return n===void 0||(on&1073741824)!==0&&(Le&261930)===0?e.memoizedState=t:(e.memoizedState=n,e=Tm(),ze.lanes|=e,Pn|=e,n)}function Tf(e,t,n,i){return Zt(n,t)?n:ls.current!==null?(e=Ic(e,n,i),Zt(e,t)||(vt=!0),e):(on&42)===0||(on&1073741824)!==0&&(Le&261930)===0?(vt=!0,e.memoizedState=n):(e=Tm(),ze.lanes|=e,Pn|=e,t)}function Ef(e,t,n,i,l){var o=$.p;$.p=o!==0&&8>o?o:8;var h=P.T,w={};P.T=w,Gc(e,!1,t,n);try{var M=l(),Y=P.S;if(Y!==null&&Y(w,M),M!==null&&typeof M=="object"&&typeof M.then=="function"){var ae=Zx(M,i);ir(e,t,ae,ia(e))}else ir(e,t,i,ia(e))}catch(se){ir(e,t,{then:function(){},status:"rejected",reason:se},ia())}finally{$.p=o,h!==null&&w.types!==null&&(h.types=w.types),P.T=h}}function ib(){}function Vc(e,t,n,i){if(e.tag!==5)throw Error(d(476));var l=Af(e).queue;Ef(e,l,t,re,n===null?ib:function(){return zf(e),n(i)})}function Af(e){var t=e.memoizedState;if(t!==null)return t;t={memoizedState:re,baseState:re,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:cn,lastRenderedState:re},next:null};var n={};return t.next={memoizedState:n,baseState:n,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:cn,lastRenderedState:n},next:null},e.memoizedState=t,e=e.alternate,e!==null&&(e.memoizedState=t),t}function zf(e){var t=Af(e);t.next===null&&(t=e.alternate.memoizedState),ir(e,t.next.queue,{},ia())}function Fc(){return Rt(jr)}function Df(){return ft().memoizedState}function Mf(){return ft().memoizedState}function sb(e){for(var t=e.return;t!==null;){switch(t.tag){case 24:case 3:var n=ia();e=Rn(n);var i=On(t,e,n);i!==null&&(Xt(i,t,n),Js(i,t,n)),t={cache:bc()},e.payload=t;return}t=t.return}}function rb(e,t,n){var i=ia();n={lane:i,revertLane:0,gesture:null,action:n,hasEagerState:!1,eagerState:null,next:null},gl(e)?Of(t,n):(n=oc(e,t,n,i),n!==null&&(Xt(n,e,i),Lf(n,t,i)))}function Rf(e,t,n){var i=ia();ir(e,t,n,i)}function ir(e,t,n,i){var l={lane:i,revertLane:0,gesture:null,action:n,hasEagerState:!1,eagerState:null,next:null};if(gl(e))Of(t,l);else{var o=e.alternate;if(e.lanes===0&&(o===null||o.lanes===0)&&(o=t.lastRenderedReducer,o!==null))try{var h=t.lastRenderedState,w=o(h,n);if(l.hasEagerState=!0,l.eagerState=w,Zt(w,h))return Wr(e,t,l,0),Je===null&&Qr(),!1}catch(M){}finally{}if(n=oc(e,t,l,i),n!==null)return Xt(n,e,i),Lf(n,t,i),!0}return!1}function Gc(e,t,n,i){if(i={lane:2,revertLane:Sd(),gesture:null,action:i,hasEagerState:!1,eagerState:null,next:null},gl(e)){if(t)throw Error(d(479))}else t=oc(e,n,i,2),t!==null&&Xt(t,e,2)}function gl(e){var t=e.alternate;return e===ze||t!==null&&t===ze}function Of(e,t){os=dl=!0;var n=e.pending;n===null?t.next=t:(t.next=n.next,n.next=t),e.pending=t}function Lf(e,t,n){if((n&4194048)!==0){var i=t.lanes;i&=e.pendingLanes,n|=i,t.lanes=n,Rs(e,n)}}var sr={readContext:Rt,use:fl,useCallback:ot,useContext:ot,useEffect:ot,useImperativeHandle:ot,useLayoutEffect:ot,useInsertionEffect:ot,useMemo:ot,useReducer:ot,useRef:ot,useState:ot,useDebugValue:ot,useDeferredValue:ot,useTransition:ot,useSyncExternalStore:ot,useId:ot,useHostTransitionStatus:ot,useFormState:ot,useActionState:ot,useOptimistic:ot,useMemoCache:ot,useCacheRefresh:ot};sr.useEffectEvent=ot;var Bf={readContext:Rt,use:fl,useCallback:function(e,t){return Pt().memoizedState=[e,t===void 0?null:t],e},useContext:Rt,useEffect:yf,useImperativeHandle:function(e,t,n){n=n!=null?n.concat([e]):null,hl(4194308,4,_f.bind(null,t,e),n)},useLayoutEffect:function(e,t){return hl(4194308,4,e,t)},useInsertionEffect:function(e,t){hl(4,2,e,t)},useMemo:function(e,t){var n=Pt();t=t===void 0?null:t;var i=e();if(Ei){ua(!0);try{e()}finally{ua(!1)}}return n.memoizedState=[i,t],i},useReducer:function(e,t,n){var i=Pt();if(n!==void 0){var l=n(t);if(Ei){ua(!0);try{n(t)}finally{ua(!1)}}}else l=t;return i.memoizedState=i.baseState=l,e={pending:null,lanes:0,dispatch:null,lastRenderedReducer:e,lastRenderedState:l},i.queue=e,e=e.dispatch=rb.bind(null,ze,e),[i.memoizedState,e]},useRef:function(e){var t=Pt();return e={current:e},t.memoizedState=e},useState:function(e){e=Hc(e);var t=e.queue,n=Rf.bind(null,ze,t);return t.dispatch=n,[e.memoizedState,n]},useDebugValue:qc,useDeferredValue:function(e,t){var n=Pt();return Ic(n,e,t)},useTransition:function(){var e=Hc(!1);return e=Ef.bind(null,ze,e.queue,!0,!1),Pt().memoizedState=e,[!1,e]},useSyncExternalStore:function(e,t,n){var i=ze,l=Pt();if(Pe){if(n===void 0)throw Error(d(407));n=n()}else{if(n=t(),Je===null)throw Error(d(349));(Le&127)!==0||nf(i,t,n)}l.memoizedState=n;var o={value:n,getSnapshot:t};return l.queue=o,yf(rf.bind(null,i,o,e),[e]),i.flags|=2048,ds(9,{destroy:void 0},sf.bind(null,i,o,n,t),null),n},useId:function(){var e=Pt(),t=Je.identifierPrefix;if(Pe){var n=Ia,i=qa;n=(i&~(1<<32-Dt(i)-1)).toString(32)+n,t="_"+t+"R_"+n,n=ul++,0<n&&(t+="H"+n.toString(32)),t+="_"}else n=Jx++,t="_"+t+"r_"+n.toString(32)+"_";return e.memoizedState=t},useHostTransitionStatus:Fc,useFormState:hf,useActionState:hf,useOptimistic:function(e){var t=Pt();t.memoizedState=t.baseState=e;var n={pending:null,lanes:0,dispatch:null,lastRenderedReducer:null,lastRenderedState:null};return t.queue=n,t=Gc.bind(null,ze,!0,n),n.dispatch=t,[e,t]},useMemoCache:Oc,useCacheRefresh:function(){return Pt().memoizedState=sb.bind(null,ze)},useEffectEvent:function(e){var t=Pt(),n={impl:e};return t.memoizedState=n,function(){if((Fe&2)!==0)throw Error(d(440));return n.impl.apply(void 0,arguments)}}},Yc={readContext:Rt,use:fl,useCallback:Nf,useContext:Rt,useEffect:Pc,useImperativeHandle:kf,useInsertionEffect:wf,useLayoutEffect:Sf,useMemo:Cf,useReducer:ml,useRef:bf,useState:function(){return ml(cn)},useDebugValue:qc,useDeferredValue:function(e,t){var n=ft();return Tf(n,Ke.memoizedState,e,t)},useTransition:function(){var e=ml(cn)[0],t=ft().memoizedState;return[typeof e=="boolean"?e:nr(e),t]},useSyncExternalStore:af,useId:Df,useHostTransitionStatus:Fc,useFormState:vf,useActionState:vf,useOptimistic:function(e,t){var n=ft();return cf(n,Ke,e,t)},useMemoCache:Oc,useCacheRefresh:Mf};Yc.useEffectEvent=jf;var Hf={readContext:Rt,use:fl,useCallback:Nf,useContext:Rt,useEffect:Pc,useImperativeHandle:kf,useInsertionEffect:wf,useLayoutEffect:Sf,useMemo:Cf,useReducer:Bc,useRef:bf,useState:function(){return Bc(cn)},useDebugValue:qc,useDeferredValue:function(e,t){var n=ft();return Ke===null?Ic(n,e,t):Tf(n,Ke.memoizedState,e,t)},useTransition:function(){var e=Bc(cn)[0],t=ft().memoizedState;return[typeof e=="boolean"?e:nr(e),t]},useSyncExternalStore:af,useId:Df,useHostTransitionStatus:Fc,useFormState:xf,useActionState:xf,useOptimistic:function(e,t){var n=ft();return Ke!==null?cf(n,Ke,e,t):(n.baseState=e,[e,n.queue.dispatch])},useMemoCache:Oc,useCacheRefresh:Mf};Hf.useEffectEvent=jf;function Xc(e,t,n,i){t=e.memoizedState,n=n(i,t),n=n==null?t:j({},t,n),e.memoizedState=n,e.lanes===0&&(e.updateQueue.baseState=n)}var $c={enqueueSetState:function(e,t,n){e=e._reactInternals;var i=ia(),l=Rn(i);l.payload=t,n!=null&&(l.callback=n),t=On(e,l,i),t!==null&&(Xt(t,e,i),Js(t,e,i))},enqueueReplaceState:function(e,t,n){e=e._reactInternals;var i=ia(),l=Rn(i);l.tag=1,l.payload=t,n!=null&&(l.callback=n),t=On(e,l,i),t!==null&&(Xt(t,e,i),Js(t,e,i))},enqueueForceUpdate:function(e,t){e=e._reactInternals;var n=ia(),i=Rn(n);i.tag=2,t!=null&&(i.callback=t),t=On(e,i,n),t!==null&&(Xt(t,e,n),Js(t,e,n))}};function Uf(e,t,n,i,l,o,h){return e=e.stateNode,typeof e.shouldComponentUpdate=="function"?e.shouldComponentUpdate(i,o,h):t.prototype&&t.prototype.isPureReactComponent?!Gs(n,i)||!Gs(l,o):!0}function Pf(e,t,n,i){e=t.state,typeof t.componentWillReceiveProps=="function"&&t.componentWillReceiveProps(n,i),typeof t.UNSAFE_componentWillReceiveProps=="function"&&t.UNSAFE_componentWillReceiveProps(n,i),t.state!==e&&$c.enqueueReplaceState(t,t.state,null)}function Ai(e,t){var n=t;if("ref"in t){n={};for(var i in t)i!=="ref"&&(n[i]=t[i])}if(e=e.defaultProps){n===t&&(n=j({},n));for(var l in e)n[l]===void 0&&(n[l]=e[l])}return n}function qf(e){Kr(e)}function If(e){console.error(e)}function Vf(e){Kr(e)}function xl(e,t){try{var n=e.onUncaughtError;n(t.value,{componentStack:t.stack})}catch(i){setTimeout(function(){throw i})}}function Ff(e,t,n){try{var i=e.onCaughtError;i(n.value,{componentStack:n.stack,errorBoundary:t.tag===1?t.stateNode:null})}catch(l){setTimeout(function(){throw l})}}function Kc(e,t,n){return n=Rn(n),n.tag=3,n.payload={element:null},n.callback=function(){xl(e,t)},n}function Gf(e){return e=Rn(e),e.tag=3,e}function Yf(e,t,n,i){var l=n.type.getDerivedStateFromError;if(typeof l=="function"){var o=i.value;e.payload=function(){return l(o)},e.callback=function(){Ff(t,n,i)}}var h=n.stateNode;h!==null&&typeof h.componentDidCatch=="function"&&(e.callback=function(){Ff(t,n,i),typeof l!="function"&&(qn===null?qn=new Set([this]):qn.add(this));var w=i.stack;this.componentDidCatch(i.value,{componentStack:w!==null?w:""})})}function lb(e,t,n,i,l){if(n.flags|=32768,i!==null&&typeof i=="object"&&typeof i.then=="function"){if(t=n.alternate,t!==null&&as(t,n,l,!0),n=ea.current,n!==null){switch(n.tag){case 31:case 13:return ba===null?Al():n.alternate===null&&ct===0&&(ct=3),n.flags&=-257,n.flags|=65536,n.lanes=l,i===sl?n.flags|=16384:(t=n.updateQueue,t===null?n.updateQueue=new Set([i]):t.add(i),yd(e,i,l)),!1;case 22:return n.flags|=65536,i===sl?n.flags|=16384:(t=n.updateQueue,t===null?(t={transitions:null,markerInstances:null,retryQueue:new Set([i])},n.updateQueue=t):(n=t.retryQueue,n===null?t.retryQueue=new Set([i]):n.add(i)),yd(e,i,l)),!1}throw Error(d(435,n.tag))}return yd(e,i,l),Al(),!1}if(Pe)return t=ea.current,t!==null?((t.flags&65536)===0&&(t.flags|=256),t.flags|=65536,t.lanes=l,i!==mc&&(e=Error(d(422),{cause:i}),$s(ha(e,n)))):(i!==mc&&(t=Error(d(423),{cause:i}),$s(ha(t,n))),e=e.current.alternate,e.flags|=65536,l&=-l,e.lanes|=l,i=ha(i,n),l=Kc(e.stateNode,i,l),kc(e,l),ct!==4&&(ct=2)),!1;var o=Error(d(520),{cause:i});if(o=ha(o,n),fr===null?fr=[o]:fr.push(o),ct!==4&&(ct=2),t===null)return!0;i=ha(i,n),n=t;do{switch(n.tag){case 3:return n.flags|=65536,e=l&-l,n.lanes|=e,e=Kc(n.stateNode,i,e),kc(n,e),!1;case 1:if(t=n.type,o=n.stateNode,(n.flags&128)===0&&(typeof t.getDerivedStateFromError=="function"||o!==null&&typeof o.componentDidCatch=="function"&&(qn===null||!qn.has(o))))return n.flags|=65536,l&=-l,n.lanes|=l,l=Gf(l),Yf(l,e,n,i),kc(n,l),!1}n=n.return}while(n!==null);return!1}var Qc=Error(d(461)),vt=!1;function Ot(e,t,n,i){t.child=e===null?Kp(t,null,n,i):Ti(t,e.child,n,i)}function Xf(e,t,n,i,l){n=n.render;var o=t.ref;if("ref"in i){var h={};for(var w in i)w!=="ref"&&(h[w]=i[w])}else h=i;return _i(t),i=zc(e,t,n,h,o,l),w=Dc(),e!==null&&!vt?(Mc(e,t,l),dn(e,t,l)):(Pe&&w&&pc(t),t.flags|=1,Ot(e,t,i,l),t.child)}function $f(e,t,n,i,l){if(e===null){var o=n.type;return typeof o=="function"&&!cc(o)&&o.defaultProps===void 0&&n.compare===null?(t.tag=15,t.type=o,Kf(e,t,o,i,l)):(e=Jr(n.type,null,i,t,t.mode,l),e.ref=t.ref,e.return=t,t.child=e)}if(o=e.child,!id(e,l)){var h=o.memoizedProps;if(n=n.compare,n=n!==null?n:Gs,n(h,i)&&e.ref===t.ref)return dn(e,t,l)}return t.flags|=1,e=nn(o,i),e.ref=t.ref,e.return=t,t.child=e}function Kf(e,t,n,i,l){if(e!==null){var o=e.memoizedProps;if(Gs(o,i)&&e.ref===t.ref)if(vt=!1,t.pendingProps=i=o,id(e,l))(e.flags&131072)!==0&&(vt=!0);else return t.lanes=e.lanes,dn(e,t,l)}return Wc(e,t,n,i,l)}function Qf(e,t,n,i){var l=i.children,o=e!==null?e.memoizedState:null;if(e===null&&t.stateNode===null&&(t.stateNode={_visibility:1,_pendingMarkers:null,_retryCache:null,_transitions:null}),i.mode==="hidden"){if((t.flags&128)!==0){if(o=o!==null?o.baseLanes|n:n,e!==null){for(i=t.child=e.child,l=0;i!==null;)l=l|i.lanes|i.childLanes,i=i.sibling;i=l&~o}else i=0,t.child=null;return Wf(e,t,o,n,i)}if((n&536870912)!==0)t.memoizedState={baseLanes:0,cachePool:null},e!==null&&nl(t,o!==null?o.cachePool:null),o!==null?Zp(t,o):Cc(),Jp(t);else return i=t.lanes=536870912,Wf(e,t,o!==null?o.baseLanes|n:n,n,i)}else o!==null?(nl(t,o.cachePool),Zp(t,o),Bn(),t.memoizedState=null):(e!==null&&nl(t,null),Cc(),Bn());return Ot(e,t,l,n),t.child}function rr(e,t){return e!==null&&e.tag===22||t.stateNode!==null||(t.stateNode={_visibility:1,_pendingMarkers:null,_retryCache:null,_transitions:null}),t.sibling}function Wf(e,t,n,i,l){var o=jc();return o=o===null?null:{parent:mt._currentValue,pool:o},t.memoizedState={baseLanes:n,cachePool:o},e!==null&&nl(t,null),Cc(),Jp(t),e!==null&&as(e,t,i,!0),t.childLanes=l,null}function bl(e,t){return t=jl({mode:t.mode,children:t.children},e.mode),t.ref=e.ref,e.child=t,t.return=e,t}function Zf(e,t,n){return Ti(t,e.child,null,n),e=bl(t,t.pendingProps),e.flags|=2,ta(t),t.memoizedState=null,e}function ob(e,t,n){var i=t.pendingProps,l=(t.flags&128)!==0;if(t.flags&=-129,e===null){if(Pe){if(i.mode==="hidden")return e=bl(t,i),t.lanes=536870912,rr(null,e);if(Ec(t),(e=tt)?(e=dh(e,xa),e=e!==null&&e.data==="&"?e:null,e!==null&&(t.memoizedState={dehydrated:e,treeContext:En!==null?{id:qa,overflow:Ia}:null,retryLane:536870912,hydrationErrors:null},n=Rp(e),n.return=t,t.child=n,Mt=t,tt=null)):e=null,e===null)throw zn(t);return t.lanes=536870912,null}return bl(t,i)}var o=e.memoizedState;if(o!==null){var h=o.dehydrated;if(Ec(t),l)if(t.flags&256)t.flags&=-257,t=Zf(e,t,n);else if(t.memoizedState!==null)t.child=e.child,t.flags|=128,t=null;else throw Error(d(558));else if(vt||as(e,t,n,!1),l=(n&e.childLanes)!==0,vt||l){if(i=Je,i!==null&&(h=Os(i,n),h!==0&&h!==o.retryLane))throw o.retryLane=h,yi(e,h),Xt(i,e,h),Qc;Al(),t=Zf(e,t,n)}else e=o.treeContext,tt=ya(h.nextSibling),Mt=t,Pe=!0,An=null,xa=!1,e!==null&&Bp(t,e),t=bl(t,i),t.flags|=4096;return t}return e=nn(e.child,{mode:i.mode,children:i.children}),e.ref=t.ref,t.child=e,e.return=t,e}function yl(e,t){var n=t.ref;if(n===null)e!==null&&e.ref!==null&&(t.flags|=4194816);else{if(typeof n!="function"&&typeof n!="object")throw Error(d(284));(e===null||e.ref!==n)&&(t.flags|=4194816)}}function Wc(e,t,n,i,l){return _i(t),n=zc(e,t,n,i,void 0,l),i=Dc(),e!==null&&!vt?(Mc(e,t,l),dn(e,t,l)):(Pe&&i&&pc(t),t.flags|=1,Ot(e,t,n,l),t.child)}function Jf(e,t,n,i,l,o){return _i(t),t.updateQueue=null,n=tf(t,i,n,l),ef(e),i=Dc(),e!==null&&!vt?(Mc(e,t,o),dn(e,t,o)):(Pe&&i&&pc(t),t.flags|=1,Ot(e,t,n,o),t.child)}function em(e,t,n,i,l){if(_i(t),t.stateNode===null){var o=Zi,h=n.contextType;typeof h=="object"&&h!==null&&(o=Rt(h)),o=new n(i,o),t.memoizedState=o.state!==null&&o.state!==void 0?o.state:null,o.updater=$c,t.stateNode=o,o._reactInternals=t,o=t.stateNode,o.props=i,o.state=t.memoizedState,o.refs={},Sc(t),h=n.contextType,o.context=typeof h=="object"&&h!==null?Rt(h):Zi,o.state=t.memoizedState,h=n.getDerivedStateFromProps,typeof h=="function"&&(Xc(t,n,h,i),o.state=t.memoizedState),typeof n.getDerivedStateFromProps=="function"||typeof o.getSnapshotBeforeUpdate=="function"||typeof o.UNSAFE_componentWillMount!="function"&&typeof o.componentWillMount!="function"||(h=o.state,typeof o.componentWillMount=="function"&&o.componentWillMount(),typeof o.UNSAFE_componentWillMount=="function"&&o.UNSAFE_componentWillMount(),h!==o.state&&$c.enqueueReplaceState(o,o.state,null),tr(t,i,o,l),er(),o.state=t.memoizedState),typeof o.componentDidMount=="function"&&(t.flags|=4194308),i=!0}else if(e===null){o=t.stateNode;var w=t.memoizedProps,M=Ai(n,w);o.props=M;var Y=o.context,ae=n.contextType;h=Zi,typeof ae=="object"&&ae!==null&&(h=Rt(ae));var se=n.getDerivedStateFromProps;ae=typeof se=="function"||typeof o.getSnapshotBeforeUpdate=="function",w=t.pendingProps!==w,ae||typeof o.UNSAFE_componentWillReceiveProps!="function"&&typeof o.componentWillReceiveProps!="function"||(w||Y!==h)&&Pf(t,o,i,h),Mn=!1;var X=t.memoizedState;o.state=X,tr(t,i,o,l),er(),Y=t.memoizedState,w||X!==Y||Mn?(typeof se=="function"&&(Xc(t,n,se,i),Y=t.memoizedState),(M=Mn||Uf(t,n,M,i,X,Y,h))?(ae||typeof o.UNSAFE_componentWillMount!="function"&&typeof o.componentWillMount!="function"||(typeof o.componentWillMount=="function"&&o.componentWillMount(),typeof o.UNSAFE_componentWillMount=="function"&&o.UNSAFE_componentWillMount()),typeof o.componentDidMount=="function"&&(t.flags|=4194308)):(typeof o.componentDidMount=="function"&&(t.flags|=4194308),t.memoizedProps=i,t.memoizedState=Y),o.props=i,o.state=Y,o.context=h,i=M):(typeof o.componentDidMount=="function"&&(t.flags|=4194308),i=!1)}else{o=t.stateNode,_c(e,t),h=t.memoizedProps,ae=Ai(n,h),o.props=ae,se=t.pendingProps,X=o.context,Y=n.contextType,M=Zi,typeof Y=="object"&&Y!==null&&(M=Rt(Y)),w=n.getDerivedStateFromProps,(Y=typeof w=="function"||typeof o.getSnapshotBeforeUpdate=="function")||typeof o.UNSAFE_componentWillReceiveProps!="function"&&typeof o.componentWillReceiveProps!="function"||(h!==se||X!==M)&&Pf(t,o,i,M),Mn=!1,X=t.memoizedState,o.state=X,tr(t,i,o,l),er();var ee=t.memoizedState;h!==se||X!==ee||Mn||e!==null&&e.dependencies!==null&&tl(e.dependencies)?(typeof w=="function"&&(Xc(t,n,w,i),ee=t.memoizedState),(ae=Mn||Uf(t,n,ae,i,X,ee,M)||e!==null&&e.dependencies!==null&&tl(e.dependencies))?(Y||typeof o.UNSAFE_componentWillUpdate!="function"&&typeof o.componentWillUpdate!="function"||(typeof o.componentWillUpdate=="function"&&o.componentWillUpdate(i,ee,M),typeof o.UNSAFE_componentWillUpdate=="function"&&o.UNSAFE_componentWillUpdate(i,ee,M)),typeof o.componentDidUpdate=="function"&&(t.flags|=4),typeof o.getSnapshotBeforeUpdate=="function"&&(t.flags|=1024)):(typeof o.componentDidUpdate!="function"||h===e.memoizedProps&&X===e.memoizedState||(t.flags|=4),typeof o.getSnapshotBeforeUpdate!="function"||h===e.memoizedProps&&X===e.memoizedState||(t.flags|=1024),t.memoizedProps=i,t.memoizedState=ee),o.props=i,o.state=ee,o.context=M,i=ae):(typeof o.componentDidUpdate!="function"||h===e.memoizedProps&&X===e.memoizedState||(t.flags|=4),typeof o.getSnapshotBeforeUpdate!="function"||h===e.memoizedProps&&X===e.memoizedState||(t.flags|=1024),i=!1)}return o=i,yl(e,t),i=(t.flags&128)!==0,o||i?(o=t.stateNode,n=i&&typeof n.getDerivedStateFromError!="function"?null:o.render(),t.flags|=1,e!==null&&i?(t.child=Ti(t,e.child,null,l),t.child=Ti(t,null,n,l)):Ot(e,t,n,l),t.memoizedState=o.state,e=t.child):e=dn(e,t,l),e}function tm(e,t,n,i){return wi(),t.flags|=256,Ot(e,t,n,i),t.child}var Zc={dehydrated:null,treeContext:null,retryLane:0,hydrationErrors:null};function Jc(e){return{baseLanes:e,cachePool:Vp()}}function ed(e,t,n){return e=e!==null?e.childLanes&~n:0,t&&(e|=na),e}function am(e,t,n){var i=t.pendingProps,l=!1,o=(t.flags&128)!==0,h;if((h=o)||(h=e!==null&&e.memoizedState===null?!1:(pt.current&2)!==0),h&&(l=!0,t.flags&=-129),h=(t.flags&32)!==0,t.flags&=-33,e===null){if(Pe){if(l?Ln(t):Bn(),(e=tt)?(e=dh(e,xa),e=e!==null&&e.data!=="&"?e:null,e!==null&&(t.memoizedState={dehydrated:e,treeContext:En!==null?{id:qa,overflow:Ia}:null,retryLane:536870912,hydrationErrors:null},n=Rp(e),n.return=t,t.child=n,Mt=t,tt=null)):e=null,e===null)throw zn(t);return Ld(e)?t.lanes=32:t.lanes=536870912,null}var w=i.children;return i=i.fallback,l?(Bn(),l=t.mode,w=jl({mode:"hidden",children:w},l),i=ji(i,l,n,null),w.return=t,i.return=t,w.sibling=i,t.child=w,i=t.child,i.memoizedState=Jc(n),i.childLanes=ed(e,h,n),t.memoizedState=Zc,rr(null,i)):(Ln(t),td(t,w))}var M=e.memoizedState;if(M!==null&&(w=M.dehydrated,w!==null)){if(o)t.flags&256?(Ln(t),t.flags&=-257,t=ad(e,t,n)):t.memoizedState!==null?(Bn(),t.child=e.child,t.flags|=128,t=null):(Bn(),w=i.fallback,l=t.mode,i=jl({mode:"visible",children:i.children},l),w=ji(w,l,n,null),w.flags|=2,i.return=t,w.return=t,i.sibling=w,t.child=i,Ti(t,e.child,null,n),i=t.child,i.memoizedState=Jc(n),i.childLanes=ed(e,h,n),t.memoizedState=Zc,t=rr(null,i));else if(Ln(t),Ld(w)){if(h=w.nextSibling&&w.nextSibling.dataset,h)var Y=h.dgst;h=Y,i=Error(d(419)),i.stack="",i.digest=h,$s({value:i,source:null,stack:null}),t=ad(e,t,n)}else if(vt||as(e,t,n,!1),h=(n&e.childLanes)!==0,vt||h){if(h=Je,h!==null&&(i=Os(h,n),i!==0&&i!==M.retryLane))throw M.retryLane=i,yi(e,i),Xt(h,e,i),Qc;Od(w)||Al(),t=ad(e,t,n)}else Od(w)?(t.flags|=192,t.child=e.child,t=null):(e=M.treeContext,tt=ya(w.nextSibling),Mt=t,Pe=!0,An=null,xa=!1,e!==null&&Bp(t,e),t=td(t,i.children),t.flags|=4096);return t}return l?(Bn(),w=i.fallback,l=t.mode,M=e.child,Y=M.sibling,i=nn(M,{mode:"hidden",children:i.children}),i.subtreeFlags=M.subtreeFlags&65011712,Y!==null?w=nn(Y,w):(w=ji(w,l,n,null),w.flags|=2),w.return=t,i.return=t,i.sibling=w,t.child=i,rr(null,i),i=t.child,w=e.child.memoizedState,w===null?w=Jc(n):(l=w.cachePool,l!==null?(M=mt._currentValue,l=l.parent!==M?{parent:M,pool:M}:l):l=Vp(),w={baseLanes:w.baseLanes|n,cachePool:l}),i.memoizedState=w,i.childLanes=ed(e,h,n),t.memoizedState=Zc,rr(e.child,i)):(Ln(t),n=e.child,e=n.sibling,n=nn(n,{mode:"visible",children:i.children}),n.return=t,n.sibling=null,e!==null&&(h=t.deletions,h===null?(t.deletions=[e],t.flags|=16):h.push(e)),t.child=n,t.memoizedState=null,n)}function td(e,t){return t=jl({mode:"visible",children:t},e.mode),t.return=e,e.child=t}function jl(e,t){return e=Jt(22,e,null,t),e.lanes=0,e}function ad(e,t,n){return Ti(t,e.child,null,n),e=td(t,t.pendingProps.children),e.flags|=2,t.memoizedState=null,e}function nm(e,t,n){e.lanes|=t;var i=e.alternate;i!==null&&(i.lanes|=t),gc(e.return,t,n)}function nd(e,t,n,i,l,o){var h=e.memoizedState;h===null?e.memoizedState={isBackwards:t,rendering:null,renderingStartTime:0,last:i,tail:n,tailMode:l,treeForkCount:o}:(h.isBackwards=t,h.rendering=null,h.renderingStartTime=0,h.last=i,h.tail=n,h.tailMode=l,h.treeForkCount=o)}function im(e,t,n){var i=t.pendingProps,l=i.revealOrder,o=i.tail;i=i.children;var h=pt.current,w=(h&2)!==0;if(w?(h=h&1|2,t.flags|=128):h&=1,B(pt,h),Ot(e,t,i,n),i=Pe?Xs:0,!w&&e!==null&&(e.flags&128)!==0)e:for(e=t.child;e!==null;){if(e.tag===13)e.memoizedState!==null&&nm(e,n,t);else if(e.tag===19)nm(e,n,t);else if(e.child!==null){e.child.return=e,e=e.child;continue}if(e===t)break e;for(;e.sibling===null;){if(e.return===null||e.return===t)break e;e=e.return}e.sibling.return=e.return,e=e.sibling}switch(l){case"forwards":for(n=t.child,l=null;n!==null;)e=n.alternate,e!==null&&cl(e)===null&&(l=n),n=n.sibling;n=l,n===null?(l=t.child,t.child=null):(l=n.sibling,n.sibling=null),nd(t,!1,l,n,o,i);break;case"backwards":case"unstable_legacy-backwards":for(n=null,l=t.child,t.child=null;l!==null;){if(e=l.alternate,e!==null&&cl(e)===null){t.child=l;break}e=l.sibling,l.sibling=n,n=l,l=e}nd(t,!0,n,null,o,i);break;case"together":nd(t,!1,null,null,void 0,i);break;default:t.memoizedState=null}return t.child}function dn(e,t,n){if(e!==null&&(t.dependencies=e.dependencies),Pn|=t.lanes,(n&t.childLanes)===0)if(e!==null){if(as(e,t,n,!1),(n&t.childLanes)===0)return null}else return null;if(e!==null&&t.child!==e.child)throw Error(d(153));if(t.child!==null){for(e=t.child,n=nn(e,e.pendingProps),t.child=n,n.return=t;e.sibling!==null;)e=e.sibling,n=n.sibling=nn(e,e.pendingProps),n.return=t;n.sibling=null}return t.child}function id(e,t){return(e.lanes&t)!==0?!0:(e=e.dependencies,!!(e!==null&&tl(e)))}function cb(e,t,n){switch(t.tag){case 3:he(t,t.stateNode.containerInfo),Dn(t,mt,e.memoizedState.cache),wi();break;case 27:case 5:oe(t);break;case 4:he(t,t.stateNode.containerInfo);break;case 10:Dn(t,t.type,t.memoizedProps.value);break;case 31:if(t.memoizedState!==null)return t.flags|=128,Ec(t),null;break;case 13:var i=t.memoizedState;if(i!==null)return i.dehydrated!==null?(Ln(t),t.flags|=128,null):(n&t.child.childLanes)!==0?am(e,t,n):(Ln(t),e=dn(e,t,n),e!==null?e.sibling:null);Ln(t);break;case 19:var l=(e.flags&128)!==0;if(i=(n&t.childLanes)!==0,i||(as(e,t,n,!1),i=(n&t.childLanes)!==0),l){if(i)return im(e,t,n);t.flags|=128}if(l=t.memoizedState,l!==null&&(l.rendering=null,l.tail=null,l.lastEffect=null),B(pt,pt.current),i)break;return null;case 22:return t.lanes=0,Qf(e,t,n,t.pendingProps);case 24:Dn(t,mt,e.memoizedState.cache)}return dn(e,t,n)}function sm(e,t,n){if(e!==null)if(e.memoizedProps!==t.pendingProps)vt=!0;else{if(!id(e,n)&&(t.flags&128)===0)return vt=!1,cb(e,t,n);vt=(e.flags&131072)!==0}else vt=!1,Pe&&(t.flags&1048576)!==0&&Lp(t,Xs,t.index);switch(t.lanes=0,t.tag){case 16:e:{var i=t.pendingProps;if(e=Ni(t.elementType),t.type=e,typeof e=="function")cc(e)?(i=Ai(e,i),t.tag=1,t=em(null,t,e,i,n)):(t.tag=0,t=Wc(null,t,e,i,n));else{if(e!=null){var l=e.$$typeof;if(l===u){t.tag=11,t=Xf(null,t,e,i,n);break e}else if(l===z){t.tag=14,t=$f(null,t,e,i,n);break e}}throw t=fe(e)||e,Error(d(306,t,""))}}return t;case 0:return Wc(e,t,t.type,t.pendingProps,n);case 1:return i=t.type,l=Ai(i,t.pendingProps),em(e,t,i,l,n);case 3:e:{if(he(t,t.stateNode.containerInfo),e===null)throw Error(d(387));i=t.pendingProps;var o=t.memoizedState;l=o.element,_c(e,t),tr(t,i,null,n);var h=t.memoizedState;if(i=h.cache,Dn(t,mt,i),i!==o.cache&&xc(t,[mt],n,!0),er(),i=h.element,o.isDehydrated)if(o={element:i,isDehydrated:!1,cache:h.cache},t.updateQueue.baseState=o,t.memoizedState=o,t.flags&256){t=tm(e,t,i,n);break e}else if(i!==l){l=ha(Error(d(424)),t),$s(l),t=tm(e,t,i,n);break e}else{switch(e=t.stateNode.containerInfo,e.nodeType){case 9:e=e.body;break;default:e=e.nodeName==="HTML"?e.ownerDocument.body:e}for(tt=ya(e.firstChild),Mt=t,Pe=!0,An=null,xa=!0,n=Kp(t,null,i,n),t.child=n;n;)n.flags=n.flags&-3|4096,n=n.sibling}else{if(wi(),i===l){t=dn(e,t,n);break e}Ot(e,t,i,n)}t=t.child}return t;case 26:return yl(e,t),e===null?(n=vh(t.type,null,t.pendingProps,null))?t.memoizedState=n:Pe||(n=t.type,e=t.pendingProps,i=Bl(J.current).createElement(n),i[Ze]=t,i[de]=e,Lt(i,n,e),kt(i),t.stateNode=i):t.memoizedState=vh(t.type,e.memoizedProps,t.pendingProps,e.memoizedState),null;case 27:return oe(t),e===null&&Pe&&(i=t.stateNode=fh(t.type,t.pendingProps,J.current),Mt=t,xa=!0,l=tt,Gn(t.type)?(Bd=l,tt=ya(i.firstChild)):tt=l),Ot(e,t,t.pendingProps.children,n),yl(e,t),e===null&&(t.flags|=4194304),t.child;case 5:return e===null&&Pe&&((l=i=tt)&&(i=Ub(i,t.type,t.pendingProps,xa),i!==null?(t.stateNode=i,Mt=t,tt=ya(i.firstChild),xa=!1,l=!0):l=!1),l||zn(t)),oe(t),l=t.type,o=t.pendingProps,h=e!==null?e.memoizedProps:null,i=o.children,Dd(l,o)?i=null:h!==null&&Dd(l,h)&&(t.flags|=32),t.memoizedState!==null&&(l=zc(e,t,eb,null,null,n),jr._currentValue=l),yl(e,t),Ot(e,t,i,n),t.child;case 6:return e===null&&Pe&&((e=n=tt)&&(n=Pb(n,t.pendingProps,xa),n!==null?(t.stateNode=n,Mt=t,tt=null,e=!0):e=!1),e||zn(t)),null;case 13:return am(e,t,n);case 4:return he(t,t.stateNode.containerInfo),i=t.pendingProps,e===null?t.child=Ti(t,null,i,n):Ot(e,t,i,n),t.child;case 11:return Xf(e,t,t.type,t.pendingProps,n);case 7:return Ot(e,t,t.pendingProps,n),t.child;case 8:return Ot(e,t,t.pendingProps.children,n),t.child;case 12:return Ot(e,t,t.pendingProps.children,n),t.child;case 10:return i=t.pendingProps,Dn(t,t.type,i.value),Ot(e,t,i.children,n),t.child;case 9:return l=t.type._context,i=t.pendingProps.children,_i(t),l=Rt(l),i=i(l),t.flags|=1,Ot(e,t,i,n),t.child;case 14:return $f(e,t,t.type,t.pendingProps,n);case 15:return Kf(e,t,t.type,t.pendingProps,n);case 19:return im(e,t,n);case 31:return ob(e,t,n);case 22:return Qf(e,t,n,t.pendingProps);case 24:return _i(t),i=Rt(mt),e===null?(l=jc(),l===null&&(l=Je,o=bc(),l.pooledCache=o,o.refCount++,o!==null&&(l.pooledCacheLanes|=n),l=o),t.memoizedState={parent:i,cache:l},Sc(t),Dn(t,mt,l)):((e.lanes&n)!==0&&(_c(e,t),tr(t,null,null,n),er()),l=e.memoizedState,o=t.memoizedState,l.parent!==i?(l={parent:i,cache:i},t.memoizedState=l,t.lanes===0&&(t.memoizedState=t.updateQueue.baseState=l),Dn(t,mt,i)):(i=o.cache,Dn(t,mt,i),i!==l.cache&&xc(t,[mt],n,!0))),Ot(e,t,t.pendingProps.children,n),t.child;case 29:throw t.pendingProps}throw Error(d(156,t.tag))}function un(e){e.flags|=4}function sd(e,t,n,i,l){if((t=(e.mode&32)!==0)&&(t=!1),t){if(e.flags|=16777216,(l&335544128)===l)if(e.stateNode.complete)e.flags|=8192;else if(Dm())e.flags|=8192;else throw Ci=sl,wc}else e.flags&=-16777217}function rm(e,t){if(t.type!=="stylesheet"||(t.state.loading&4)!==0)e.flags&=-16777217;else if(e.flags|=16777216,!jh(t))if(Dm())e.flags|=8192;else throw Ci=sl,wc}function wl(e,t){t!==null&&(e.flags|=4),e.flags&16384&&(t=e.tag!==22?Ds():536870912,e.lanes|=t,ms|=t)}function lr(e,t){if(!Pe)switch(e.tailMode){case"hidden":t=e.tail;for(var n=null;t!==null;)t.alternate!==null&&(n=t),t=t.sibling;n===null?e.tail=null:n.sibling=null;break;case"collapsed":n=e.tail;for(var i=null;n!==null;)n.alternate!==null&&(i=n),n=n.sibling;i===null?t||e.tail===null?e.tail=null:e.tail.sibling=null:i.sibling=null}}function at(e){var t=e.alternate!==null&&e.alternate.child===e.child,n=0,i=0;if(t)for(var l=e.child;l!==null;)n|=l.lanes|l.childLanes,i|=l.subtreeFlags&65011712,i|=l.flags&65011712,l.return=e,l=l.sibling;else for(l=e.child;l!==null;)n|=l.lanes|l.childLanes,i|=l.subtreeFlags,i|=l.flags,l.return=e,l=l.sibling;return e.subtreeFlags|=i,e.childLanes=n,t}function db(e,t,n){var i=t.pendingProps;switch(fc(t),t.tag){case 16:case 15:case 0:case 11:case 7:case 8:case 12:case 9:case 14:return at(t),null;case 1:return at(t),null;case 3:return n=t.stateNode,i=null,e!==null&&(i=e.memoizedState.cache),t.memoizedState.cache!==i&&(t.flags|=2048),ln(mt),ce(),n.pendingContext&&(n.context=n.pendingContext,n.pendingContext=null),(e===null||e.child===null)&&(ts(t)?un(t):e===null||e.memoizedState.isDehydrated&&(t.flags&256)===0||(t.flags|=1024,hc())),at(t),null;case 26:var l=t.type,o=t.memoizedState;return e===null?(un(t),o!==null?(at(t),rm(t,o)):(at(t),sd(t,l,null,i,n))):o?o!==e.memoizedState?(un(t),at(t),rm(t,o)):(at(t),t.flags&=-16777217):(e=e.memoizedProps,e!==i&&un(t),at(t),sd(t,l,e,i,n)),null;case 27:if(ke(t),n=J.current,l=t.type,e!==null&&t.stateNode!=null)e.memoizedProps!==i&&un(t);else{if(!i){if(t.stateNode===null)throw Error(d(166));return at(t),null}e=te.current,ts(t)?Hp(t):(e=fh(l,i,n),t.stateNode=e,un(t))}return at(t),null;case 5:if(ke(t),l=t.type,e!==null&&t.stateNode!=null)e.memoizedProps!==i&&un(t);else{if(!i){if(t.stateNode===null)throw Error(d(166));return at(t),null}if(o=te.current,ts(t))Hp(t);else{var h=Bl(J.current);switch(o){case 1:o=h.createElementNS("http://www.w3.org/2000/svg",l);break;case 2:o=h.createElementNS("http://www.w3.org/1998/Math/MathML",l);break;default:switch(l){case"svg":o=h.createElementNS("http://www.w3.org/2000/svg",l);break;case"math":o=h.createElementNS("http://www.w3.org/1998/Math/MathML",l);break;case"script":o=h.createElement("div"),o.innerHTML="<script><\/script>",o=o.removeChild(o.firstChild);break;case"select":o=typeof i.is=="string"?h.createElement("select",{is:i.is}):h.createElement("select"),i.multiple?o.multiple=!0:i.size&&(o.size=i.size);break;default:o=typeof i.is=="string"?h.createElement(l,{is:i.is}):h.createElement(l)}}o[Ze]=t,o[de]=i;e:for(h=t.child;h!==null;){if(h.tag===5||h.tag===6)o.appendChild(h.stateNode);else if(h.tag!==4&&h.tag!==27&&h.child!==null){h.child.return=h,h=h.child;continue}if(h===t)break e;for(;h.sibling===null;){if(h.return===null||h.return===t)break e;h=h.return}h.sibling.return=h.return,h=h.sibling}t.stateNode=o;e:switch(Lt(o,l,i),l){case"button":case"input":case"select":case"textarea":i=!!i.autoFocus;break e;case"img":i=!0;break e;default:i=!1}i&&un(t)}}return at(t),sd(t,t.type,e===null?null:e.memoizedProps,t.pendingProps,n),null;case 6:if(e&&t.stateNode!=null)e.memoizedProps!==i&&un(t);else{if(typeof i!="string"&&t.stateNode===null)throw Error(d(166));if(e=J.current,ts(t)){if(e=t.stateNode,n=t.memoizedProps,i=null,l=Mt,l!==null)switch(l.tag){case 27:case 5:i=l.memoizedProps}e[Ze]=t,e=!!(e.nodeValue===n||i!==null&&i.suppressHydrationWarning===!0||ah(e.nodeValue,n)),e||zn(t,!0)}else e=Bl(e).createTextNode(i),e[Ze]=t,t.stateNode=e}return at(t),null;case 31:if(n=t.memoizedState,e===null||e.memoizedState!==null){if(i=ts(t),n!==null){if(e===null){if(!i)throw Error(d(318));if(e=t.memoizedState,e=e!==null?e.dehydrated:null,!e)throw Error(d(557));e[Ze]=t}else wi(),(t.flags&128)===0&&(t.memoizedState=null),t.flags|=4;at(t),e=!1}else n=hc(),e!==null&&e.memoizedState!==null&&(e.memoizedState.hydrationErrors=n),e=!0;if(!e)return t.flags&256?(ta(t),t):(ta(t),null);if((t.flags&128)!==0)throw Error(d(558))}return at(t),null;case 13:if(i=t.memoizedState,e===null||e.memoizedState!==null&&e.memoizedState.dehydrated!==null){if(l=ts(t),i!==null&&i.dehydrated!==null){if(e===null){if(!l)throw Error(d(318));if(l=t.memoizedState,l=l!==null?l.dehydrated:null,!l)throw Error(d(317));l[Ze]=t}else wi(),(t.flags&128)===0&&(t.memoizedState=null),t.flags|=4;at(t),l=!1}else l=hc(),e!==null&&e.memoizedState!==null&&(e.memoizedState.hydrationErrors=l),l=!0;if(!l)return t.flags&256?(ta(t),t):(ta(t),null)}return ta(t),(t.flags&128)!==0?(t.lanes=n,t):(n=i!==null,e=e!==null&&e.memoizedState!==null,n&&(i=t.child,l=null,i.alternate!==null&&i.alternate.memoizedState!==null&&i.alternate.memoizedState.cachePool!==null&&(l=i.alternate.memoizedState.cachePool.pool),o=null,i.memoizedState!==null&&i.memoizedState.cachePool!==null&&(o=i.memoizedState.cachePool.pool),o!==l&&(i.flags|=2048)),n!==e&&n&&(t.child.flags|=8192),wl(t,t.updateQueue),at(t),null);case 4:return ce(),e===null&&Cd(t.stateNode.containerInfo),at(t),null;case 10:return ln(t.type),at(t),null;case 19:if(W(pt),i=t.memoizedState,i===null)return at(t),null;if(l=(t.flags&128)!==0,o=i.rendering,o===null)if(l)lr(i,!1);else{if(ct!==0||e!==null&&(e.flags&128)!==0)for(e=t.child;e!==null;){if(o=cl(e),o!==null){for(t.flags|=128,lr(i,!1),e=o.updateQueue,t.updateQueue=e,wl(t,e),t.subtreeFlags=0,e=n,n=t.child;n!==null;)Mp(n,e),n=n.sibling;return B(pt,pt.current&1|2),Pe&&sn(t,i.treeForkCount),t.child}e=e.sibling}i.tail!==null&&zt()>Cl&&(t.flags|=128,l=!0,lr(i,!1),t.lanes=4194304)}else{if(!l)if(e=cl(o),e!==null){if(t.flags|=128,l=!0,e=e.updateQueue,t.updateQueue=e,wl(t,e),lr(i,!0),i.tail===null&&i.tailMode==="hidden"&&!o.alternate&&!Pe)return at(t),null}else 2*zt()-i.renderingStartTime>Cl&&n!==536870912&&(t.flags|=128,l=!0,lr(i,!1),t.lanes=4194304);i.isBackwards?(o.sibling=t.child,t.child=o):(e=i.last,e!==null?e.sibling=o:t.child=o,i.last=o)}return i.tail!==null?(e=i.tail,i.rendering=e,i.tail=e.sibling,i.renderingStartTime=zt(),e.sibling=null,n=pt.current,B(pt,l?n&1|2:n&1),Pe&&sn(t,i.treeForkCount),e):(at(t),null);case 22:case 23:return ta(t),Tc(),i=t.memoizedState!==null,e!==null?e.memoizedState!==null!==i&&(t.flags|=8192):i&&(t.flags|=8192),i?(n&536870912)!==0&&(t.flags&128)===0&&(at(t),t.subtreeFlags&6&&(t.flags|=8192)):at(t),n=t.updateQueue,n!==null&&wl(t,n.retryQueue),n=null,e!==null&&e.memoizedState!==null&&e.memoizedState.cachePool!==null&&(n=e.memoizedState.cachePool.pool),i=null,t.memoizedState!==null&&t.memoizedState.cachePool!==null&&(i=t.memoizedState.cachePool.pool),i!==n&&(t.flags|=2048),e!==null&&W(ki),null;case 24:return n=null,e!==null&&(n=e.memoizedState.cache),t.memoizedState.cache!==n&&(t.flags|=2048),ln(mt),at(t),null;case 25:return null;case 30:return null}throw Error(d(156,t.tag))}function ub(e,t){switch(fc(t),t.tag){case 1:return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 3:return ln(mt),ce(),e=t.flags,(e&65536)!==0&&(e&128)===0?(t.flags=e&-65537|128,t):null;case 26:case 27:case 5:return ke(t),null;case 31:if(t.memoizedState!==null){if(ta(t),t.alternate===null)throw Error(d(340));wi()}return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 13:if(ta(t),e=t.memoizedState,e!==null&&e.dehydrated!==null){if(t.alternate===null)throw Error(d(340));wi()}return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 19:return W(pt),null;case 4:return ce(),null;case 10:return ln(t.type),null;case 22:case 23:return ta(t),Tc(),e!==null&&W(ki),e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 24:return ln(mt),null;case 25:return null;default:return null}}function lm(e,t){switch(fc(t),t.tag){case 3:ln(mt),ce();break;case 26:case 27:case 5:ke(t);break;case 4:ce();break;case 31:t.memoizedState!==null&&ta(t);break;case 13:ta(t);break;case 19:W(pt);break;case 10:ln(t.type);break;case 22:case 23:ta(t),Tc(),e!==null&&W(ki);break;case 24:ln(mt)}}function or(e,t){try{var n=t.updateQueue,i=n!==null?n.lastEffect:null;if(i!==null){var l=i.next;n=l;do{if((n.tag&e)===e){i=void 0;var o=n.create,h=n.inst;i=o(),h.destroy=i}n=n.next}while(n!==l)}}catch(w){Xe(t,t.return,w)}}function Hn(e,t,n){try{var i=t.updateQueue,l=i!==null?i.lastEffect:null;if(l!==null){var o=l.next;i=o;do{if((i.tag&e)===e){var h=i.inst,w=h.destroy;if(w!==void 0){h.destroy=void 0,l=t;var M=n,Y=w;try{Y()}catch(ae){Xe(l,M,ae)}}}i=i.next}while(i!==o)}}catch(ae){Xe(t,t.return,ae)}}function om(e){var t=e.updateQueue;if(t!==null){var n=e.stateNode;try{Wp(t,n)}catch(i){Xe(e,e.return,i)}}}function cm(e,t,n){n.props=Ai(e.type,e.memoizedProps),n.state=e.memoizedState;try{n.componentWillUnmount()}catch(i){Xe(e,t,i)}}function cr(e,t){try{var n=e.ref;if(n!==null){switch(e.tag){case 26:case 27:case 5:var i=e.stateNode;break;case 30:i=e.stateNode;break;default:i=e.stateNode}typeof n=="function"?e.refCleanup=n(i):n.current=i}}catch(l){Xe(e,t,l)}}function Va(e,t){var n=e.ref,i=e.refCleanup;if(n!==null)if(typeof i=="function")try{i()}catch(l){Xe(e,t,l)}finally{e.refCleanup=null,e=e.alternate,e!=null&&(e.refCleanup=null)}else if(typeof n=="function")try{n(null)}catch(l){Xe(e,t,l)}else n.current=null}function dm(e){var t=e.type,n=e.memoizedProps,i=e.stateNode;try{e:switch(t){case"button":case"input":case"select":case"textarea":n.autoFocus&&i.focus();break e;case"img":n.src?i.src=n.src:n.srcSet&&(i.srcset=n.srcSet)}}catch(l){Xe(e,e.return,l)}}function rd(e,t,n){try{var i=e.stateNode;Mb(i,e.type,n,t),i[de]=t}catch(l){Xe(e,e.return,l)}}function um(e){return e.tag===5||e.tag===3||e.tag===26||e.tag===27&&Gn(e.type)||e.tag===4}function ld(e){e:for(;;){for(;e.sibling===null;){if(e.return===null||um(e.return))return null;e=e.return}for(e.sibling.return=e.return,e=e.sibling;e.tag!==5&&e.tag!==6&&e.tag!==18;){if(e.tag===27&&Gn(e.type)||e.flags&2||e.child===null||e.tag===4)continue e;e.child.return=e,e=e.child}if(!(e.flags&2))return e.stateNode}}function od(e,t,n){var i=e.tag;if(i===5||i===6)e=e.stateNode,t?(n.nodeType===9?n.body:n.nodeName==="HTML"?n.ownerDocument.body:n).insertBefore(e,t):(t=n.nodeType===9?n.body:n.nodeName==="HTML"?n.ownerDocument.body:n,t.appendChild(e),n=n._reactRootContainer,n!=null||t.onclick!==null||(t.onclick=tn));else if(i!==4&&(i===27&&Gn(e.type)&&(n=e.stateNode,t=null),e=e.child,e!==null))for(od(e,t,n),e=e.sibling;e!==null;)od(e,t,n),e=e.sibling}function Sl(e,t,n){var i=e.tag;if(i===5||i===6)e=e.stateNode,t?n.insertBefore(e,t):n.appendChild(e);else if(i!==4&&(i===27&&Gn(e.type)&&(n=e.stateNode),e=e.child,e!==null))for(Sl(e,t,n),e=e.sibling;e!==null;)Sl(e,t,n),e=e.sibling}function pm(e){var t=e.stateNode,n=e.memoizedProps;try{for(var i=e.type,l=t.attributes;l.length;)t.removeAttributeNode(l[0]);Lt(t,i,n),t[Ze]=e,t[de]=n}catch(o){Xe(e,e.return,o)}}var pn=!1,gt=!1,cd=!1,fm=typeof WeakSet=="function"?WeakSet:Set,Nt=null;function pb(e,t){if(e=e.containerInfo,Ad=Fl,e=_p(e),ac(e)){if("selectionStart"in e)var n={start:e.selectionStart,end:e.selectionEnd};else e:{n=(n=e.ownerDocument)&&n.defaultView||window;var i=n.getSelection&&n.getSelection();if(i&&i.rangeCount!==0){n=i.anchorNode;var l=i.anchorOffset,o=i.focusNode;i=i.focusOffset;try{n.nodeType,o.nodeType}catch(Ce){n=null;break e}var h=0,w=-1,M=-1,Y=0,ae=0,se=e,X=null;t:for(;;){for(var ee;se!==n||l!==0&&se.nodeType!==3||(w=h+l),se!==o||i!==0&&se.nodeType!==3||(M=h+i),se.nodeType===3&&(h+=se.nodeValue.length),(ee=se.firstChild)!==null;)X=se,se=ee;for(;;){if(se===e)break t;if(X===n&&++Y===l&&(w=h),X===o&&++ae===i&&(M=h),(ee=se.nextSibling)!==null)break;se=X,X=se.parentNode}se=ee}n=w===-1||M===-1?null:{start:w,end:M}}else n=null}n=n||{start:0,end:0}}else n=null;for(zd={focusedElem:e,selectionRange:n},Fl=!1,Nt=t;Nt!==null;)if(t=Nt,e=t.child,(t.subtreeFlags&1028)!==0&&e!==null)e.return=t,Nt=e;else for(;Nt!==null;){switch(t=Nt,o=t.alternate,e=t.flags,t.tag){case 0:if((e&4)!==0&&(e=t.updateQueue,e=e!==null?e.events:null,e!==null))for(n=0;n<e.length;n++)l=e[n],l.ref.impl=l.nextImpl;break;case 11:case 15:break;case 1:if((e&1024)!==0&&o!==null){e=void 0,n=t,l=o.memoizedProps,o=o.memoizedState,i=n.stateNode;try{var ye=Ai(n.type,l);e=i.getSnapshotBeforeUpdate(ye,o),i.__reactInternalSnapshotBeforeUpdate=e}catch(Ce){Xe(n,n.return,Ce)}}break;case 3:if((e&1024)!==0){if(e=t.stateNode.containerInfo,n=e.nodeType,n===9)Rd(e);else if(n===1)switch(e.nodeName){case"HEAD":case"HTML":case"BODY":Rd(e);break;default:e.textContent=""}}break;case 5:case 26:case 27:case 6:case 4:case 17:break;default:if((e&1024)!==0)throw Error(d(163))}if(e=t.sibling,e!==null){e.return=t.return,Nt=e;break}Nt=t.return}}function mm(e,t,n){var i=n.flags;switch(n.tag){case 0:case 11:case 15:mn(e,n),i&4&&or(5,n);break;case 1:if(mn(e,n),i&4)if(e=n.stateNode,t===null)try{e.componentDidMount()}catch(h){Xe(n,n.return,h)}else{var l=Ai(n.type,t.memoizedProps);t=t.memoizedState;try{e.componentDidUpdate(l,t,e.__reactInternalSnapshotBeforeUpdate)}catch(h){Xe(n,n.return,h)}}i&64&&om(n),i&512&&cr(n,n.return);break;case 3:if(mn(e,n),i&64&&(e=n.updateQueue,e!==null)){if(t=null,n.child!==null)switch(n.child.tag){case 27:case 5:t=n.child.stateNode;break;case 1:t=n.child.stateNode}try{Wp(e,t)}catch(h){Xe(n,n.return,h)}}break;case 27:t===null&&i&4&&pm(n);case 26:case 5:mn(e,n),t===null&&i&4&&dm(n),i&512&&cr(n,n.return);break;case 12:mn(e,n);break;case 31:mn(e,n),i&4&&gm(e,n);break;case 13:mn(e,n),i&4&&xm(e,n),i&64&&(e=n.memoizedState,e!==null&&(e=e.dehydrated,e!==null&&(n=jb.bind(null,n),qb(e,n))));break;case 22:if(i=n.memoizedState!==null||pn,!i){t=t!==null&&t.memoizedState!==null||gt,l=pn;var o=gt;pn=i,(gt=t)&&!o?hn(e,n,(n.subtreeFlags&8772)!==0):mn(e,n),pn=l,gt=o}break;case 30:break;default:mn(e,n)}}function hm(e){var t=e.alternate;t!==null&&(e.alternate=null,hm(t)),e.child=null,e.deletions=null,e.sibling=null,e.tag===5&&(t=e.stateNode,t!==null&&Ls(t)),e.stateNode=null,e.return=null,e.dependencies=null,e.memoizedProps=null,e.memoizedState=null,e.pendingProps=null,e.stateNode=null,e.updateQueue=null}var nt=null,Vt=!1;function fn(e,t,n){for(n=n.child;n!==null;)vm(e,t,n),n=n.sibling}function vm(e,t,n){if(St&&typeof St.onCommitFiberUnmount=="function")try{St.onCommitFiberUnmount(Ea,n)}catch(o){}switch(n.tag){case 26:gt||Va(n,t),fn(e,t,n),n.memoizedState?n.memoizedState.count--:n.stateNode&&(n=n.stateNode,n.parentNode.removeChild(n));break;case 27:gt||Va(n,t);var i=nt,l=Vt;Gn(n.type)&&(nt=n.stateNode,Vt=!1),fn(e,t,n),xr(n.stateNode),nt=i,Vt=l;break;case 5:gt||Va(n,t);case 6:if(i=nt,l=Vt,nt=null,fn(e,t,n),nt=i,Vt=l,nt!==null)if(Vt)try{(nt.nodeType===9?nt.body:nt.nodeName==="HTML"?nt.ownerDocument.body:nt).removeChild(n.stateNode)}catch(o){Xe(n,t,o)}else try{nt.removeChild(n.stateNode)}catch(o){Xe(n,t,o)}break;case 18:nt!==null&&(Vt?(e=nt,oh(e.nodeType===9?e.body:e.nodeName==="HTML"?e.ownerDocument.body:e,n.stateNode),ws(e)):oh(nt,n.stateNode));break;case 4:i=nt,l=Vt,nt=n.stateNode.containerInfo,Vt=!0,fn(e,t,n),nt=i,Vt=l;break;case 0:case 11:case 14:case 15:Hn(2,n,t),gt||Hn(4,n,t),fn(e,t,n);break;case 1:gt||(Va(n,t),i=n.stateNode,typeof i.componentWillUnmount=="function"&&cm(n,t,i)),fn(e,t,n);break;case 21:fn(e,t,n);break;case 22:gt=(i=gt)||n.memoizedState!==null,fn(e,t,n),gt=i;break;default:fn(e,t,n)}}function gm(e,t){if(t.memoizedState===null&&(e=t.alternate,e!==null&&(e=e.memoizedState,e!==null))){e=e.dehydrated;try{ws(e)}catch(n){Xe(t,t.return,n)}}}function xm(e,t){if(t.memoizedState===null&&(e=t.alternate,e!==null&&(e=e.memoizedState,e!==null&&(e=e.dehydrated,e!==null))))try{ws(e)}catch(n){Xe(t,t.return,n)}}function fb(e){switch(e.tag){case 31:case 13:case 19:var t=e.stateNode;return t===null&&(t=e.stateNode=new fm),t;case 22:return e=e.stateNode,t=e._retryCache,t===null&&(t=e._retryCache=new fm),t;default:throw Error(d(435,e.tag))}}function _l(e,t){var n=fb(e);t.forEach(function(i){if(!n.has(i)){n.add(i);var l=wb.bind(null,e,i);i.then(l,l)}})}function Ft(e,t){var n=t.deletions;if(n!==null)for(var i=0;i<n.length;i++){var l=n[i],o=e,h=t,w=h;e:for(;w!==null;){switch(w.tag){case 27:if(Gn(w.type)){nt=w.stateNode,Vt=!1;break e}break;case 5:nt=w.stateNode,Vt=!1;break e;case 3:case 4:nt=w.stateNode.containerInfo,Vt=!0;break e}w=w.return}if(nt===null)throw Error(d(160));vm(o,h,l),nt=null,Vt=!1,o=l.alternate,o!==null&&(o.return=null),l.return=null}if(t.subtreeFlags&13886)for(t=t.child;t!==null;)bm(t,e),t=t.sibling}var za=null;function bm(e,t){var n=e.alternate,i=e.flags;switch(e.tag){case 0:case 11:case 14:case 15:Ft(t,e),Gt(e),i&4&&(Hn(3,e,e.return),or(3,e),Hn(5,e,e.return));break;case 1:Ft(t,e),Gt(e),i&512&&(gt||n===null||Va(n,n.return)),i&64&&pn&&(e=e.updateQueue,e!==null&&(i=e.callbacks,i!==null&&(n=e.shared.hiddenCallbacks,e.shared.hiddenCallbacks=n===null?i:n.concat(i))));break;case 26:var l=za;if(Ft(t,e),Gt(e),i&512&&(gt||n===null||Va(n,n.return)),i&4){var o=n!==null?n.memoizedState:null;if(i=e.memoizedState,n===null)if(i===null)if(e.stateNode===null){e:{i=e.type,n=e.memoizedProps,l=l.ownerDocument||l;t:switch(i){case"title":o=l.getElementsByTagName("title")[0],(!o||o[hi]||o[Ze]||o.namespaceURI==="http://www.w3.org/2000/svg"||o.hasAttribute("itemprop"))&&(o=l.createElement(i),l.head.insertBefore(o,l.querySelector("head > title"))),Lt(o,i,n),o[Ze]=e,kt(o),i=o;break e;case"link":var h=bh("link","href",l).get(i+(n.href||""));if(h){for(var w=0;w<h.length;w++)if(o=h[w],o.getAttribute("href")===(n.href==null||n.href===""?null:n.href)&&o.getAttribute("rel")===(n.rel==null?null:n.rel)&&o.getAttribute("title")===(n.title==null?null:n.title)&&o.getAttribute("crossorigin")===(n.crossOrigin==null?null:n.crossOrigin)){h.splice(w,1);break t}}o=l.createElement(i),Lt(o,i,n),l.head.appendChild(o);break;case"meta":if(h=bh("meta","content",l).get(i+(n.content||""))){for(w=0;w<h.length;w++)if(o=h[w],o.getAttribute("content")===(n.content==null?null:""+n.content)&&o.getAttribute("name")===(n.name==null?null:n.name)&&o.getAttribute("property")===(n.property==null?null:n.property)&&o.getAttribute("http-equiv")===(n.httpEquiv==null?null:n.httpEquiv)&&o.getAttribute("charset")===(n.charSet==null?null:n.charSet)){h.splice(w,1);break t}}o=l.createElement(i),Lt(o,i,n),l.head.appendChild(o);break;default:throw Error(d(468,i))}o[Ze]=e,kt(o),i=o}e.stateNode=i}else yh(l,e.type,e.stateNode);else e.stateNode=xh(l,i,e.memoizedProps);else o!==i?(o===null?n.stateNode!==null&&(n=n.stateNode,n.parentNode.removeChild(n)):o.count--,i===null?yh(l,e.type,e.stateNode):xh(l,i,e.memoizedProps)):i===null&&e.stateNode!==null&&rd(e,e.memoizedProps,n.memoizedProps)}break;case 27:Ft(t,e),Gt(e),i&512&&(gt||n===null||Va(n,n.return)),n!==null&&i&4&&rd(e,e.memoizedProps,n.memoizedProps);break;case 5:if(Ft(t,e),Gt(e),i&512&&(gt||n===null||Va(n,n.return)),e.flags&32){l=e.stateNode;try{Gi(l,"")}catch(ye){Xe(e,e.return,ye)}}i&4&&e.stateNode!=null&&(l=e.memoizedProps,rd(e,l,n!==null?n.memoizedProps:l)),i&1024&&(cd=!0);break;case 6:if(Ft(t,e),Gt(e),i&4){if(e.stateNode===null)throw Error(d(162));i=e.memoizedProps,n=e.stateNode;try{n.nodeValue=i}catch(ye){Xe(e,e.return,ye)}}break;case 3:if(Pl=null,l=za,za=Hl(t.containerInfo),Ft(t,e),za=l,Gt(e),i&4&&n!==null&&n.memoizedState.isDehydrated)try{ws(t.containerInfo)}catch(ye){Xe(e,e.return,ye)}cd&&(cd=!1,ym(e));break;case 4:i=za,za=Hl(e.stateNode.containerInfo),Ft(t,e),Gt(e),za=i;break;case 12:Ft(t,e),Gt(e);break;case 31:Ft(t,e),Gt(e),i&4&&(i=e.updateQueue,i!==null&&(e.updateQueue=null,_l(e,i)));break;case 13:Ft(t,e),Gt(e),e.child.flags&8192&&e.memoizedState!==null!=(n!==null&&n.memoizedState!==null)&&(Nl=zt()),i&4&&(i=e.updateQueue,i!==null&&(e.updateQueue=null,_l(e,i)));break;case 22:l=e.memoizedState!==null;var M=n!==null&&n.memoizedState!==null,Y=pn,ae=gt;if(pn=Y||l,gt=ae||M,Ft(t,e),gt=ae,pn=Y,Gt(e),i&8192)e:for(t=e.stateNode,t._visibility=l?t._visibility&-2:t._visibility|1,l&&(n===null||M||pn||gt||zi(e)),n=null,t=e;;){if(t.tag===5||t.tag===26){if(n===null){M=n=t;try{if(o=M.stateNode,l)h=o.style,typeof h.setProperty=="function"?h.setProperty("display","none","important"):h.display="none";else{w=M.stateNode;var se=M.memoizedProps.style,X=se!=null&&se.hasOwnProperty("display")?se.display:null;w.style.display=X==null||typeof X=="boolean"?"":(""+X).trim()}}catch(ye){Xe(M,M.return,ye)}}}else if(t.tag===6){if(n===null){M=t;try{M.stateNode.nodeValue=l?"":M.memoizedProps}catch(ye){Xe(M,M.return,ye)}}}else if(t.tag===18){if(n===null){M=t;try{var ee=M.stateNode;l?ch(ee,!0):ch(M.stateNode,!1)}catch(ye){Xe(M,M.return,ye)}}}else if((t.tag!==22&&t.tag!==23||t.memoizedState===null||t===e)&&t.child!==null){t.child.return=t,t=t.child;continue}if(t===e)break e;for(;t.sibling===null;){if(t.return===null||t.return===e)break e;n===t&&(n=null),t=t.return}n===t&&(n=null),t.sibling.return=t.return,t=t.sibling}i&4&&(i=e.updateQueue,i!==null&&(n=i.retryQueue,n!==null&&(i.retryQueue=null,_l(e,n))));break;case 19:Ft(t,e),Gt(e),i&4&&(i=e.updateQueue,i!==null&&(e.updateQueue=null,_l(e,i)));break;case 30:break;case 21:break;default:Ft(t,e),Gt(e)}}function Gt(e){var t=e.flags;if(t&2){try{for(var n,i=e.return;i!==null;){if(um(i)){n=i;break}i=i.return}if(n==null)throw Error(d(160));switch(n.tag){case 27:var l=n.stateNode,o=ld(e);Sl(e,o,l);break;case 5:var h=n.stateNode;n.flags&32&&(Gi(h,""),n.flags&=-33);var w=ld(e);Sl(e,w,h);break;case 3:case 4:var M=n.stateNode.containerInfo,Y=ld(e);od(e,Y,M);break;default:throw Error(d(161))}}catch(ae){Xe(e,e.return,ae)}e.flags&=-3}t&4096&&(e.flags&=-4097)}function ym(e){if(e.subtreeFlags&1024)for(e=e.child;e!==null;){var t=e;ym(t),t.tag===5&&t.flags&1024&&t.stateNode.reset(),e=e.sibling}}function mn(e,t){if(t.subtreeFlags&8772)for(t=t.child;t!==null;)mm(e,t.alternate,t),t=t.sibling}function zi(e){for(e=e.child;e!==null;){var t=e;switch(t.tag){case 0:case 11:case 14:case 15:Hn(4,t,t.return),zi(t);break;case 1:Va(t,t.return);var n=t.stateNode;typeof n.componentWillUnmount=="function"&&cm(t,t.return,n),zi(t);break;case 27:xr(t.stateNode);case 26:case 5:Va(t,t.return),zi(t);break;case 22:t.memoizedState===null&&zi(t);break;case 30:zi(t);break;default:zi(t)}e=e.sibling}}function hn(e,t,n){for(n=n&&(t.subtreeFlags&8772)!==0,t=t.child;t!==null;){var i=t.alternate,l=e,o=t,h=o.flags;switch(o.tag){case 0:case 11:case 15:hn(l,o,n),or(4,o);break;case 1:if(hn(l,o,n),i=o,l=i.stateNode,typeof l.componentDidMount=="function")try{l.componentDidMount()}catch(Y){Xe(i,i.return,Y)}if(i=o,l=i.updateQueue,l!==null){var w=i.stateNode;try{var M=l.shared.hiddenCallbacks;if(M!==null)for(l.shared.hiddenCallbacks=null,l=0;l<M.length;l++)Qp(M[l],w)}catch(Y){Xe(i,i.return,Y)}}n&&h&64&&om(o),cr(o,o.return);break;case 27:pm(o);case 26:case 5:hn(l,o,n),n&&i===null&&h&4&&dm(o),cr(o,o.return);break;case 12:hn(l,o,n);break;case 31:hn(l,o,n),n&&h&4&&gm(l,o);break;case 13:hn(l,o,n),n&&h&4&&xm(l,o);break;case 22:o.memoizedState===null&&hn(l,o,n),cr(o,o.return);break;case 30:break;default:hn(l,o,n)}t=t.sibling}}function dd(e,t){var n=null;e!==null&&e.memoizedState!==null&&e.memoizedState.cachePool!==null&&(n=e.memoizedState.cachePool.pool),e=null,t.memoizedState!==null&&t.memoizedState.cachePool!==null&&(e=t.memoizedState.cachePool.pool),e!==n&&(e!=null&&e.refCount++,n!=null&&Ks(n))}function ud(e,t){e=null,t.alternate!==null&&(e=t.alternate.memoizedState.cache),t=t.memoizedState.cache,t!==e&&(t.refCount++,e!=null&&Ks(e))}function Da(e,t,n,i){if(t.subtreeFlags&10256)for(t=t.child;t!==null;)jm(e,t,n,i),t=t.sibling}function jm(e,t,n,i){var l=t.flags;switch(t.tag){case 0:case 11:case 15:Da(e,t,n,i),l&2048&&or(9,t);break;case 1:Da(e,t,n,i);break;case 3:Da(e,t,n,i),l&2048&&(e=null,t.alternate!==null&&(e=t.alternate.memoizedState.cache),t=t.memoizedState.cache,t!==e&&(t.refCount++,e!=null&&Ks(e)));break;case 12:if(l&2048){Da(e,t,n,i),e=t.stateNode;try{var o=t.memoizedProps,h=o.id,w=o.onPostCommit;typeof w=="function"&&w(h,t.alternate===null?"mount":"update",e.passiveEffectDuration,-0)}catch(M){Xe(t,t.return,M)}}else Da(e,t,n,i);break;case 31:Da(e,t,n,i);break;case 13:Da(e,t,n,i);break;case 23:break;case 22:o=t.stateNode,h=t.alternate,t.memoizedState!==null?o._visibility&2?Da(e,t,n,i):dr(e,t):o._visibility&2?Da(e,t,n,i):(o._visibility|=2,us(e,t,n,i,(t.subtreeFlags&10256)!==0||!1)),l&2048&&dd(h,t);break;case 24:Da(e,t,n,i),l&2048&&ud(t.alternate,t);break;default:Da(e,t,n,i)}}function us(e,t,n,i,l){for(l=l&&((t.subtreeFlags&10256)!==0||!1),t=t.child;t!==null;){var o=e,h=t,w=n,M=i,Y=h.flags;switch(h.tag){case 0:case 11:case 15:us(o,h,w,M,l),or(8,h);break;case 23:break;case 22:var ae=h.stateNode;h.memoizedState!==null?ae._visibility&2?us(o,h,w,M,l):dr(o,h):(ae._visibility|=2,us(o,h,w,M,l)),l&&Y&2048&&dd(h.alternate,h);break;case 24:us(o,h,w,M,l),l&&Y&2048&&ud(h.alternate,h);break;default:us(o,h,w,M,l)}t=t.sibling}}function dr(e,t){if(t.subtreeFlags&10256)for(t=t.child;t!==null;){var n=e,i=t,l=i.flags;switch(i.tag){case 22:dr(n,i),l&2048&&dd(i.alternate,i);break;case 24:dr(n,i),l&2048&&ud(i.alternate,i);break;default:dr(n,i)}t=t.sibling}}var ur=8192;function ps(e,t,n){if(e.subtreeFlags&ur)for(e=e.child;e!==null;)wm(e,t,n),e=e.sibling}function wm(e,t,n){switch(e.tag){case 26:ps(e,t,n),e.flags&ur&&e.memoizedState!==null&&Jb(n,za,e.memoizedState,e.memoizedProps);break;case 5:ps(e,t,n);break;case 3:case 4:var i=za;za=Hl(e.stateNode.containerInfo),ps(e,t,n),za=i;break;case 22:e.memoizedState===null&&(i=e.alternate,i!==null&&i.memoizedState!==null?(i=ur,ur=16777216,ps(e,t,n),ur=i):ps(e,t,n));break;default:ps(e,t,n)}}function Sm(e){var t=e.alternate;if(t!==null&&(e=t.child,e!==null)){t.child=null;do t=e.sibling,e.sibling=null,e=t;while(e!==null)}}function pr(e){var t=e.deletions;if((e.flags&16)!==0){if(t!==null)for(var n=0;n<t.length;n++){var i=t[n];Nt=i,km(i,e)}Sm(e)}if(e.subtreeFlags&10256)for(e=e.child;e!==null;)_m(e),e=e.sibling}function _m(e){switch(e.tag){case 0:case 11:case 15:pr(e),e.flags&2048&&Hn(9,e,e.return);break;case 3:pr(e);break;case 12:pr(e);break;case 22:var t=e.stateNode;e.memoizedState!==null&&t._visibility&2&&(e.return===null||e.return.tag!==13)?(t._visibility&=-3,kl(e)):pr(e);break;default:pr(e)}}function kl(e){var t=e.deletions;if((e.flags&16)!==0){if(t!==null)for(var n=0;n<t.length;n++){var i=t[n];Nt=i,km(i,e)}Sm(e)}for(e=e.child;e!==null;){switch(t=e,t.tag){case 0:case 11:case 15:Hn(8,t,t.return),kl(t);break;case 22:n=t.stateNode,n._visibility&2&&(n._visibility&=-3,kl(t));break;default:kl(t)}e=e.sibling}}function km(e,t){for(;Nt!==null;){var n=Nt;switch(n.tag){case 0:case 11:case 15:Hn(8,n,t);break;case 23:case 22:if(n.memoizedState!==null&&n.memoizedState.cachePool!==null){var i=n.memoizedState.cachePool.pool;i!=null&&i.refCount++}break;case 24:Ks(n.memoizedState.cache)}if(i=n.child,i!==null)i.return=n,Nt=i;else e:for(n=e;Nt!==null;){i=Nt;var l=i.sibling,o=i.return;if(hm(i),i===n){Nt=null;break e}if(l!==null){l.return=o,Nt=l;break e}Nt=o}}}var mb={getCacheForType:function(e){var t=Rt(mt),n=t.data.get(e);return n===void 0&&(n=e(),t.data.set(e,n)),n},cacheSignal:function(){return Rt(mt).controller.signal}},hb=typeof WeakMap=="function"?WeakMap:Map,Fe=0,Je=null,Re=null,Le=0,Ye=0,aa=null,Un=!1,fs=!1,pd=!1,vn=0,ct=0,Pn=0,Di=0,fd=0,na=0,ms=0,fr=null,Yt=null,md=!1,Nl=0,Nm=0,Cl=1/0,Tl=null,qn=null,bt=0,In=null,hs=null,gn=0,hd=0,vd=null,Cm=null,mr=0,gd=null;function ia(){return(Fe&2)!==0&&Le!==0?Le&-Le:P.T!==null?Sd():$e()}function Tm(){if(na===0)if((Le&536870912)===0||Pe){var e=Ne;Ne<<=1,(Ne&3932160)===0&&(Ne=262144),na=e}else na=536870912;return e=ea.current,e!==null&&(e.flags|=32),na}function Xt(e,t,n){(e===Je&&(Ye===2||Ye===9)||e.cancelPendingCommit!==null)&&(vs(e,0),Vn(e,Le,na,!1)),Nn(e,n),((Fe&2)===0||e!==Je)&&(e===Je&&((Fe&2)===0&&(Di|=n),ct===4&&Vn(e,Le,na,!1)),Fa(e))}function Em(e,t,n){if((Fe&6)!==0)throw Error(d(327));var i=!n&&(t&127)===0&&(t&e.expiredLanes)===0||et(e,t),l=i?xb(e,t):bd(e,t,!0),o=i;do{if(l===0){fs&&!i&&Vn(e,t,0,!1);break}else{if(n=e.current.alternate,o&&!vb(n)){l=bd(e,t,!1),o=!1;continue}if(l===2){if(o=t,e.errorRecoveryDisabledLanes&o)var h=0;else h=e.pendingLanes&-536870913,h=h!==0?h:h&536870912?536870912:0;if(h!==0){t=h;e:{var w=e;l=fr;var M=w.current.memoizedState.isDehydrated;if(M&&(vs(w,h).flags|=256),h=bd(w,h,!1),h!==2){if(pd&&!M){w.errorRecoveryDisabledLanes|=o,Di|=o,l=4;break e}o=Yt,Yt=l,o!==null&&(Yt===null?Yt=o:Yt.push.apply(Yt,o))}l=h}if(o=!1,l!==2)continue}}if(l===1){vs(e,0),Vn(e,t,0,!0);break}e:{switch(i=e,o=l,o){case 0:case 1:throw Error(d(345));case 4:if((t&4194048)!==t)break;case 6:Vn(i,t,na,!Un);break e;case 2:Yt=null;break;case 3:case 5:break;default:throw Error(d(329))}if((t&62914560)===t&&(l=Nl+300-zt(),10<l)){if(Vn(i,t,na,!Un),De(i,0,!0)!==0)break e;gn=t,i.timeoutHandle=rh(Am.bind(null,i,n,Yt,Tl,md,t,na,Di,ms,Un,o,"Throttled",-0,0),l);break e}Am(i,n,Yt,Tl,md,t,na,Di,ms,Un,o,null,-0,0)}}break}while(!0);Fa(e)}function Am(e,t,n,i,l,o,h,w,M,Y,ae,se,X,ee){if(e.timeoutHandle=-1,se=t.subtreeFlags,se&8192||(se&16785408)===16785408){se={stylesheets:null,count:0,imgCount:0,imgBytes:0,suspenseyImages:[],waitingForImages:!0,waitingForViewTransition:!1,unsuspend:tn},wm(t,o,se);var ye=(o&62914560)===o?Nl-zt():(o&4194048)===o?Nm-zt():0;if(ye=ey(se,ye),ye!==null){gn=o,e.cancelPendingCommit=ye(Hm.bind(null,e,t,o,n,i,l,h,w,M,ae,se,null,X,ee)),Vn(e,o,h,!Y);return}}Hm(e,t,o,n,i,l,h,w,M)}function vb(e){for(var t=e;;){var n=t.tag;if((n===0||n===11||n===15)&&t.flags&16384&&(n=t.updateQueue,n!==null&&(n=n.stores,n!==null)))for(var i=0;i<n.length;i++){var l=n[i],o=l.getSnapshot;l=l.value;try{if(!Zt(o(),l))return!1}catch(h){return!1}}if(n=t.child,t.subtreeFlags&16384&&n!==null)n.return=t,t=n;else{if(t===e)break;for(;t.sibling===null;){if(t.return===null||t.return===e)return!0;t=t.return}t.sibling.return=t.return,t=t.sibling}}return!0}function Vn(e,t,n,i){t&=~fd,t&=~Di,e.suspendedLanes|=t,e.pingedLanes&=~t,i&&(e.warmLanes|=t),i=e.expirationTimes;for(var l=t;0<l;){var o=31-Dt(l),h=1<<o;i[o]=-1,l&=~h}n!==0&&Ms(e,n,t)}function El(){return(Fe&6)===0?(hr(0),!1):!0}function xd(){if(Re!==null){if(Ye===0)var e=Re.return;else e=Re,rn=Si=null,Rc(e),rs=null,Ws=0,e=Re;for(;e!==null;)lm(e.alternate,e),e=e.return;Re=null}}function vs(e,t){var n=e.timeoutHandle;n!==-1&&(e.timeoutHandle=-1,Lb(n)),n=e.cancelPendingCommit,n!==null&&(e.cancelPendingCommit=null,n()),gn=0,xd(),Je=e,Re=n=nn(e.current,null),Le=t,Ye=0,aa=null,Un=!1,fs=et(e,t),pd=!1,ms=na=fd=Di=Pn=ct=0,Yt=fr=null,md=!1,(t&8)!==0&&(t|=t&32);var i=e.entangledLanes;if(i!==0)for(e=e.entanglements,i&=t;0<i;){var l=31-Dt(i),o=1<<l;t|=e[l],i&=~o}return vn=t,Qr(),n}function zm(e,t){ze=null,P.H=sr,t===ss||t===il?(t=Yp(),Ye=3):t===wc?(t=Yp(),Ye=4):Ye=t===Qc?8:t!==null&&typeof t=="object"&&typeof t.then=="function"?6:1,aa=t,Re===null&&(ct=1,xl(e,ha(t,e.current)))}function Dm(){var e=ea.current;return e===null?!0:(Le&4194048)===Le?ba===null:(Le&62914560)===Le||(Le&536870912)!==0?e===ba:!1}function Mm(){var e=P.H;return P.H=sr,e===null?sr:e}function Rm(){var e=P.A;return P.A=mb,e}function Al(){ct=4,Un||(Le&4194048)!==Le&&ea.current!==null||(fs=!0),(Pn&134217727)===0&&(Di&134217727)===0||Je===null||Vn(Je,Le,na,!1)}function bd(e,t,n){var i=Fe;Fe|=2;var l=Mm(),o=Rm();(Je!==e||Le!==t)&&(Tl=null,vs(e,t)),t=!1;var h=ct;e:do try{if(Ye!==0&&Re!==null){var w=Re,M=aa;switch(Ye){case 8:xd(),h=6;break e;case 3:case 2:case 9:case 6:ea.current===null&&(t=!0);var Y=Ye;if(Ye=0,aa=null,gs(e,w,M,Y),n&&fs){h=0;break e}break;default:Y=Ye,Ye=0,aa=null,gs(e,w,M,Y)}}gb(),h=ct;break}catch(ae){zm(e,ae)}while(!0);return t&&e.shellSuspendCounter++,rn=Si=null,Fe=i,P.H=l,P.A=o,Re===null&&(Je=null,Le=0,Qr()),h}function gb(){for(;Re!==null;)Om(Re)}function xb(e,t){var n=Fe;Fe|=2;var i=Mm(),l=Rm();Je!==e||Le!==t?(Tl=null,Cl=zt()+500,vs(e,t)):fs=et(e,t);e:do try{if(Ye!==0&&Re!==null){t=Re;var o=aa;t:switch(Ye){case 1:Ye=0,aa=null,gs(e,t,o,1);break;case 2:case 9:if(Fp(o)){Ye=0,aa=null,Lm(t);break}t=function(){Ye!==2&&Ye!==9||Je!==e||(Ye=7),Fa(e)},o.then(t,t);break e;case 3:Ye=7;break e;case 4:Ye=5;break e;case 7:Fp(o)?(Ye=0,aa=null,Lm(t)):(Ye=0,aa=null,gs(e,t,o,7));break;case 5:var h=null;switch(Re.tag){case 26:h=Re.memoizedState;case 5:case 27:var w=Re;if(h?jh(h):w.stateNode.complete){Ye=0,aa=null;var M=w.sibling;if(M!==null)Re=M;else{var Y=w.return;Y!==null?(Re=Y,zl(Y)):Re=null}break t}}Ye=0,aa=null,gs(e,t,o,5);break;case 6:Ye=0,aa=null,gs(e,t,o,6);break;case 8:xd(),ct=6;break e;default:throw Error(d(462))}}bb();break}catch(ae){zm(e,ae)}while(!0);return rn=Si=null,P.H=i,P.A=l,Fe=n,Re!==null?0:(Je=null,Le=0,Qr(),ct)}function bb(){for(;Re!==null&&!kn();)Om(Re)}function Om(e){var t=sm(e.alternate,e,vn);e.memoizedProps=e.pendingProps,t===null?zl(e):Re=t}function Lm(e){var t=e,n=t.alternate;switch(t.tag){case 15:case 0:t=Jf(n,t,t.pendingProps,t.type,void 0,Le);break;case 11:t=Jf(n,t,t.pendingProps,t.type.render,t.ref,Le);break;case 5:Rc(t);default:lm(n,t),t=Re=Mp(t,vn),t=sm(n,t,vn)}e.memoizedProps=e.pendingProps,t===null?zl(e):Re=t}function gs(e,t,n,i){rn=Si=null,Rc(t),rs=null,Ws=0;var l=t.return;try{if(lb(e,l,t,n,Le)){ct=1,xl(e,ha(n,e.current)),Re=null;return}}catch(o){if(l!==null)throw Re=l,o;ct=1,xl(e,ha(n,e.current)),Re=null;return}t.flags&32768?(Pe||i===1?e=!0:fs||(Le&536870912)!==0?e=!1:(Un=e=!0,(i===2||i===9||i===3||i===6)&&(i=ea.current,i!==null&&i.tag===13&&(i.flags|=16384))),Bm(t,e)):zl(t)}function zl(e){var t=e;do{if((t.flags&32768)!==0){Bm(t,Un);return}e=t.return;var n=db(t.alternate,t,vn);if(n!==null){Re=n;return}if(t=t.sibling,t!==null){Re=t;return}Re=t=e}while(t!==null);ct===0&&(ct=5)}function Bm(e,t){do{var n=ub(e.alternate,e);if(n!==null){n.flags&=32767,Re=n;return}if(n=e.return,n!==null&&(n.flags|=32768,n.subtreeFlags=0,n.deletions=null),!t&&(e=e.sibling,e!==null)){Re=e;return}Re=e=n}while(e!==null);ct=6,Re=null}function Hm(e,t,n,i,l,o,h,w,M){e.cancelPendingCommit=null;do Dl();while(bt!==0);if((Fe&6)!==0)throw Error(d(327));if(t!==null){if(t===e.current)throw Error(d(177));if(o=t.lanes|t.childLanes,o|=lc,Br(e,n,o,h,w,M),e===Je&&(Re=Je=null,Le=0),hs=t,In=e,gn=n,hd=o,vd=l,Cm=i,(t.subtreeFlags&10256)!==0||(t.flags&10256)!==0?(e.callbackNode=null,e.callbackPriority=0,Sb(Pa,function(){return Vm(),null})):(e.callbackNode=null,e.callbackPriority=0),i=(t.flags&13878)!==0,(t.subtreeFlags&13878)!==0||i){i=P.T,P.T=null,l=$.p,$.p=2,h=Fe,Fe|=4;try{pb(e,t,n)}finally{Fe=h,$.p=l,P.T=i}}bt=1,Um(),Pm(),qm()}}function Um(){if(bt===1){bt=0;var e=In,t=hs,n=(t.flags&13878)!==0;if((t.subtreeFlags&13878)!==0||n){n=P.T,P.T=null;var i=$.p;$.p=2;var l=Fe;Fe|=4;try{bm(t,e);var o=zd,h=_p(e.containerInfo),w=o.focusedElem,M=o.selectionRange;if(h!==w&&w&&w.ownerDocument&&Sp(w.ownerDocument.documentElement,w)){if(M!==null&&ac(w)){var Y=M.start,ae=M.end;if(ae===void 0&&(ae=Y),"selectionStart"in w)w.selectionStart=Y,w.selectionEnd=Math.min(ae,w.value.length);else{var se=w.ownerDocument||document,X=se&&se.defaultView||window;if(X.getSelection){var ee=X.getSelection(),ye=w.textContent.length,Ce=Math.min(M.start,ye),We=M.end===void 0?Ce:Math.min(M.end,ye);!ee.extend&&Ce>We&&(h=We,We=Ce,Ce=h);var q=wp(w,Ce),H=wp(w,We);if(q&&H&&(ee.rangeCount!==1||ee.anchorNode!==q.node||ee.anchorOffset!==q.offset||ee.focusNode!==H.node||ee.focusOffset!==H.offset)){var G=se.createRange();G.setStart(q.node,q.offset),ee.removeAllRanges(),Ce>We?(ee.addRange(G),ee.extend(H.node,H.offset)):(G.setEnd(H.node,H.offset),ee.addRange(G))}}}}for(se=[],ee=w;ee=ee.parentNode;)ee.nodeType===1&&se.push({element:ee,left:ee.scrollLeft,top:ee.scrollTop});for(typeof w.focus=="function"&&w.focus(),w=0;w<se.length;w++){var ne=se[w];ne.element.scrollLeft=ne.left,ne.element.scrollTop=ne.top}}Fl=!!Ad,zd=Ad=null}finally{Fe=l,$.p=i,P.T=n}}e.current=t,bt=2}}function Pm(){if(bt===2){bt=0;var e=In,t=hs,n=(t.flags&8772)!==0;if((t.subtreeFlags&8772)!==0||n){n=P.T,P.T=null;var i=$.p;$.p=2;var l=Fe;Fe|=4;try{mm(e,t.alternate,t)}finally{Fe=l,$.p=i,P.T=n}}bt=3}}function qm(){if(bt===4||bt===3){bt=0,ui();var e=In,t=hs,n=gn,i=Cm;(t.subtreeFlags&10256)!==0||(t.flags&10256)!==0?bt=5:(bt=0,hs=In=null,Im(e,e.pendingLanes));var l=e.pendingLanes;if(l===0&&(qn=null),Te(n),t=t.stateNode,St&&typeof St.onCommitFiberRoot=="function")try{St.onCommitFiberRoot(Ea,t,void 0,(t.current.flags&128)===128)}catch(M){}if(i!==null){t=P.T,l=$.p,$.p=2,P.T=null;try{for(var o=e.onRecoverableError,h=0;h<i.length;h++){var w=i[h];o(w.value,{componentStack:w.stack})}}finally{P.T=t,$.p=l}}(gn&3)!==0&&Dl(),Fa(e),l=e.pendingLanes,(n&261930)!==0&&(l&42)!==0?e===gd?mr++:(mr=0,gd=e):mr=0,hr(0)}}function Im(e,t){(e.pooledCacheLanes&=t)===0&&(t=e.pooledCache,t!=null&&(e.pooledCache=null,Ks(t)))}function Dl(){return Um(),Pm(),qm(),Vm()}function Vm(){if(bt!==5)return!1;var e=In,t=hd;hd=0;var n=Te(gn),i=P.T,l=$.p;try{$.p=32>n?32:n,P.T=null,n=vd,vd=null;var o=In,h=gn;if(bt=0,hs=In=null,gn=0,(Fe&6)!==0)throw Error(d(331));var w=Fe;if(Fe|=4,_m(o.current),jm(o,o.current,h,n),Fe=w,hr(0,!1),St&&typeof St.onPostCommitFiberRoot=="function")try{St.onPostCommitFiberRoot(Ea,o)}catch(M){}return!0}finally{$.p=l,P.T=i,Im(e,t)}}function Fm(e,t,n){t=ha(n,t),t=Kc(e.stateNode,t,2),e=On(e,t,2),e!==null&&(Nn(e,2),Fa(e))}function Xe(e,t,n){if(e.tag===3)Fm(e,e,n);else for(;t!==null;){if(t.tag===3){Fm(t,e,n);break}else if(t.tag===1){var i=t.stateNode;if(typeof t.type.getDerivedStateFromError=="function"||typeof i.componentDidCatch=="function"&&(qn===null||!qn.has(i))){e=ha(n,e),n=Gf(2),i=On(t,n,2),i!==null&&(Yf(n,i,t,e),Nn(i,2),Fa(i));break}}t=t.return}}function yd(e,t,n){var i=e.pingCache;if(i===null){i=e.pingCache=new hb;var l=new Set;i.set(t,l)}else l=i.get(t),l===void 0&&(l=new Set,i.set(t,l));l.has(n)||(pd=!0,l.add(n),e=yb.bind(null,e,t,n),t.then(e,e))}function yb(e,t,n){var i=e.pingCache;i!==null&&i.delete(t),e.pingedLanes|=e.suspendedLanes&n,e.warmLanes&=~n,Je===e&&(Le&n)===n&&(ct===4||ct===3&&(Le&62914560)===Le&&300>zt()-Nl?(Fe&2)===0&&vs(e,0):fd|=n,ms===Le&&(ms=0)),Fa(e)}function Gm(e,t){t===0&&(t=Ds()),e=yi(e,t),e!==null&&(Nn(e,t),Fa(e))}function jb(e){var t=e.memoizedState,n=0;t!==null&&(n=t.retryLane),Gm(e,n)}function wb(e,t){var n=0;switch(e.tag){case 31:case 13:var i=e.stateNode,l=e.memoizedState;l!==null&&(n=l.retryLane);break;case 19:i=e.stateNode;break;case 22:i=e.stateNode._retryCache;break;default:throw Error(d(314))}i!==null&&i.delete(t),Gm(e,n)}function Sb(e,t){return _n(e,t)}var Ml=null,xs=null,jd=!1,Rl=!1,wd=!1,Fn=0;function Fa(e){e!==xs&&e.next===null&&(xs===null?Ml=xs=e:xs=xs.next=e),Rl=!0,jd||(jd=!0,kb())}function hr(e,t){if(!wd&&Rl){wd=!0;do for(var n=!1,i=Ml;i!==null;){if(e!==0){var l=i.pendingLanes;if(l===0)var o=0;else{var h=i.suspendedLanes,w=i.pingedLanes;o=(1<<31-Dt(42|e)+1)-1,o&=l&~(h&~w),o=o&201326741?o&201326741|1:o?o|2:0}o!==0&&(n=!0,Km(i,o))}else o=Le,o=De(i,i===Je?o:0,i.cancelPendingCommit!==null||i.timeoutHandle!==-1),(o&3)===0||et(i,o)||(n=!0,Km(i,o));i=i.next}while(n);wd=!1}}function _b(){Ym()}function Ym(){Rl=jd=!1;var e=0;Fn!==0&&Ob()&&(e=Fn);for(var t=zt(),n=null,i=Ml;i!==null;){var l=i.next,o=Xm(i,t);o===0?(i.next=null,n===null?Ml=l:n.next=l,l===null&&(xs=n)):(n=i,(e!==0||(o&3)!==0)&&(Rl=!0)),i=l}bt!==0&&bt!==5||hr(e),Fn!==0&&(Fn=0)}function Xm(e,t){for(var n=e.suspendedLanes,i=e.pingedLanes,l=e.expirationTimes,o=e.pendingLanes&-62914561;0<o;){var h=31-Dt(o),w=1<<h,M=l[h];M===-1?((w&n)===0||(w&i)!==0)&&(l[h]=Bt(w,t)):M<=t&&(e.expiredLanes|=w),o&=~w}if(t=Je,n=Le,n=De(e,e===t?n:0,e.cancelPendingCommit!==null||e.timeoutHandle!==-1),i=e.callbackNode,n===0||e===t&&(Ye===2||Ye===9)||e.cancelPendingCommit!==null)return i!==null&&i!==null&&Wt(i),e.callbackNode=null,e.callbackPriority=0;if((n&3)===0||et(e,n)){if(t=n&-n,t===e.callbackPriority)return t;switch(i!==null&&Wt(i),Te(n)){case 2:case 8:n=Li;break;case 32:n=Pa;break;case 268435456:n=Ta;break;default:n=Pa}return i=$m.bind(null,e),n=_n(n,i),e.callbackPriority=t,e.callbackNode=n,t}return i!==null&&i!==null&&Wt(i),e.callbackPriority=2,e.callbackNode=null,2}function $m(e,t){if(bt!==0&&bt!==5)return e.callbackNode=null,e.callbackPriority=0,null;var n=e.callbackNode;if(Dl()&&e.callbackNode!==n)return null;var i=Le;return i=De(e,e===Je?i:0,e.cancelPendingCommit!==null||e.timeoutHandle!==-1),i===0?null:(Em(e,i,t),Xm(e,zt()),e.callbackNode!=null&&e.callbackNode===n?$m.bind(null,e):null)}function Km(e,t){if(Dl())return null;Em(e,t,!0)}function kb(){Bb(function(){(Fe&6)!==0?_n(Za,_b):Ym()})}function Sd(){if(Fn===0){var e=ns;e===0&&(e=ve,ve<<=1,(ve&261888)===0&&(ve=256)),Fn=e}return Fn}function Qm(e){return e==null||typeof e=="symbol"||typeof e=="boolean"?null:typeof e=="function"?e:Ir(""+e)}function Wm(e,t){var n=t.ownerDocument.createElement("input");return n.name=t.name,n.value=t.value,e.id&&n.setAttribute("form",e.id),t.parentNode.insertBefore(n,t),e=new FormData(e),n.parentNode.removeChild(n),e}function Nb(e,t,n,i,l){if(t==="submit"&&n&&n.stateNode===l){var o=Qm((l[de]||null).action),h=i.submitter;h&&(t=(t=h[de]||null)?Qm(t.formAction):h.getAttribute("formAction"),t!==null&&(o=t,h=null));var w=new Yr("action","action",null,i,l);e.push({event:w,listeners:[{instance:null,listener:function(){if(i.defaultPrevented){if(Fn!==0){var M=h?Wm(l,h):new FormData(l);Vc(n,{pending:!0,data:M,method:l.method,action:o},null,M)}}else typeof o=="function"&&(w.preventDefault(),M=h?Wm(l,h):new FormData(l),Vc(n,{pending:!0,data:M,method:l.method,action:o},o,M))},currentTarget:l}]})}}for(var _d=0;_d<rc.length;_d++){var kd=rc[_d],Cb=kd.toLowerCase(),Tb=kd[0].toUpperCase()+kd.slice(1);Aa(Cb,"on"+Tb)}Aa(Cp,"onAnimationEnd"),Aa(Tp,"onAnimationIteration"),Aa(Ep,"onAnimationStart"),Aa("dblclick","onDoubleClick"),Aa("focusin","onFocus"),Aa("focusout","onBlur"),Aa(Fx,"onTransitionRun"),Aa(Gx,"onTransitionStart"),Aa(Yx,"onTransitionCancel"),Aa(Ap,"onTransitionEnd"),Vi("onMouseEnter",["mouseout","mouseover"]),Vi("onMouseLeave",["mouseout","mouseover"]),Vi("onPointerEnter",["pointerout","pointerover"]),Vi("onPointerLeave",["pointerout","pointerover"]),vi("onChange","change click focusin focusout input keydown keyup selectionchange".split(" ")),vi("onSelect","focusout contextmenu dragend focusin keydown keyup mousedown mouseup selectionchange".split(" ")),vi("onBeforeInput",["compositionend","keypress","textInput","paste"]),vi("onCompositionEnd","compositionend focusout keydown keypress keyup mousedown".split(" ")),vi("onCompositionStart","compositionstart focusout keydown keypress keyup mousedown".split(" ")),vi("onCompositionUpdate","compositionupdate focusout keydown keypress keyup mousedown".split(" "));var vr="abort canplay canplaythrough durationchange emptied encrypted ended error loadeddata loadedmetadata loadstart pause play playing progress ratechange resize seeked seeking stalled suspend timeupdate volumechange waiting".split(" "),Eb=new Set("beforetoggle cancel close invalid load scroll scrollend toggle".split(" ").concat(vr));function Zm(e,t){t=(t&4)!==0;for(var n=0;n<e.length;n++){var i=e[n],l=i.event;i=i.listeners;e:{var o=void 0;if(t)for(var h=i.length-1;0<=h;h--){var w=i[h],M=w.instance,Y=w.currentTarget;if(w=w.listener,M!==o&&l.isPropagationStopped())break e;o=w,l.currentTarget=Y;try{o(l)}catch(ae){Kr(ae)}l.currentTarget=null,o=M}else for(h=0;h<i.length;h++){if(w=i[h],M=w.instance,Y=w.currentTarget,w=w.listener,M!==o&&l.isPropagationStopped())break e;o=w,l.currentTarget=Y;try{o(l)}catch(ae){Kr(ae)}l.currentTarget=null,o=M}}}}function Oe(e,t){var n=t[mi];n===void 0&&(n=t[mi]=new Set);var i=e+"__bubble";n.has(i)||(Jm(t,e,2,!1),n.add(i))}function Nd(e,t,n){var i=0;t&&(i|=4),Jm(n,e,i,t)}var Ol="_reactListening"+Math.random().toString(36).slice(2);function Cd(e){if(!e[Ol]){e[Ol]=!0,Gu.forEach(function(n){n!=="selectionchange"&&(Eb.has(n)||Nd(n,!1,e),Nd(n,!0,e))});var t=e.nodeType===9?e:e.ownerDocument;t===null||t[Ol]||(t[Ol]=!0,Nd("selectionchange",!1,t))}}function Jm(e,t,n,i){switch(Th(t)){case 2:var l=ny;break;case 8:l=iy;break;default:l=Id}n=l.bind(null,t,n,e),l=void 0,!Xo||t!=="touchstart"&&t!=="touchmove"&&t!=="wheel"||(l=!0),i?l!==void 0?e.addEventListener(t,n,{capture:!0,passive:l}):e.addEventListener(t,n,!0):l!==void 0?e.addEventListener(t,n,{passive:l}):e.addEventListener(t,n,!1)}function Td(e,t,n,i,l){var o=i;if((t&1)===0&&(t&2)===0&&i!==null)e:for(;;){if(i===null)return;var h=i.tag;if(h===3||h===4){var w=i.stateNode.containerInfo;if(w===l)break;if(h===4)for(h=i.return;h!==null;){var M=h.tag;if((M===3||M===4)&&h.stateNode.containerInfo===l)return;h=h.return}for(;w!==null;){if(h=Cn(w),h===null)return;if(M=h.tag,M===5||M===6||M===26||M===27){i=o=h;continue e}w=w.parentNode}}i=i.return}np(function(){var Y=o,ae=Go(n),se=[];e:{var X=zp.get(e);if(X!==void 0){var ee=Yr,ye=e;switch(e){case"keypress":if(Fr(n)===0)break e;case"keydown":case"keyup":ee=wx;break;case"focusin":ye="focus",ee=Wo;break;case"focusout":ye="blur",ee=Wo;break;case"beforeblur":case"afterblur":ee=Wo;break;case"click":if(n.button===2)break e;case"auxclick":case"dblclick":case"mousedown":case"mousemove":case"mouseup":case"mouseout":case"mouseover":case"contextmenu":ee=rp;break;case"drag":case"dragend":case"dragenter":case"dragexit":case"dragleave":case"dragover":case"dragstart":case"drop":ee=dx;break;case"touchcancel":case"touchend":case"touchmove":case"touchstart":ee=kx;break;case Cp:case Tp:case Ep:ee=fx;break;case Ap:ee=Cx;break;case"scroll":case"scrollend":ee=ox;break;case"wheel":ee=Ex;break;case"copy":case"cut":case"paste":ee=hx;break;case"gotpointercapture":case"lostpointercapture":case"pointercancel":case"pointerdown":case"pointermove":case"pointerout":case"pointerover":case"pointerup":ee=op;break;case"toggle":case"beforetoggle":ee=zx}var Ce=(t&4)!==0,We=!Ce&&(e==="scroll"||e==="scrollend"),q=Ce?X!==null?X+"Capture":null:X;Ce=[];for(var H=Y,G;H!==null;){var ne=H;if(G=ne.stateNode,ne=ne.tag,ne!==5&&ne!==26&&ne!==27||G===null||q===null||(ne=Hs(H,q),ne!=null&&Ce.push(gr(H,ne,G))),We)break;H=H.return}0<Ce.length&&(X=new ee(X,ye,null,n,ae),se.push({event:X,listeners:Ce}))}}if((t&7)===0){e:{if(X=e==="mouseover"||e==="pointerover",ee=e==="mouseout"||e==="pointerout",X&&n!==Fo&&(ye=n.relatedTarget||n.fromElement)&&(Cn(ye)||ye[_t]))break e;if((ee||X)&&(X=ae.window===ae?ae:(X=ae.ownerDocument)?X.defaultView||X.parentWindow:window,ee?(ye=n.relatedTarget||n.toElement,ee=Y,ye=ye?Cn(ye):null,ye!==null&&(We=f(ye),Ce=ye.tag,ye!==We||Ce!==5&&Ce!==27&&Ce!==6)&&(ye=null)):(ee=null,ye=Y),ee!==ye)){if(Ce=rp,ne="onMouseLeave",q="onMouseEnter",H="mouse",(e==="pointerout"||e==="pointerover")&&(Ce=op,ne="onPointerLeave",q="onPointerEnter",H="pointer"),We=ee==null?X:Bs(ee),G=ye==null?X:Bs(ye),X=new Ce(ne,H+"leave",ee,n,ae),X.target=We,X.relatedTarget=G,ne=null,Cn(ae)===Y&&(Ce=new Ce(q,H+"enter",ye,n,ae),Ce.target=G,Ce.relatedTarget=We,ne=Ce),We=ne,ee&&ye)t:{for(Ce=Ab,q=ee,H=ye,G=0,ne=q;ne;ne=Ce(ne))G++;ne=0;for(var _e=H;_e;_e=Ce(_e))ne++;for(;0<G-ne;)q=Ce(q),G--;for(;0<ne-G;)H=Ce(H),ne--;for(;G--;){if(q===H||H!==null&&q===H.alternate){Ce=q;break t}q=Ce(q),H=Ce(H)}Ce=null}else Ce=null;ee!==null&&eh(se,X,ee,Ce,!1),ye!==null&&We!==null&&eh(se,We,ye,Ce,!0)}}e:{if(X=Y?Bs(Y):window,ee=X.nodeName&&X.nodeName.toLowerCase(),ee==="select"||ee==="input"&&X.type==="file")var Ie=vp;else if(mp(X))if(gp)Ie=qx;else{Ie=Ux;var Se=Hx}else ee=X.nodeName,!ee||ee.toLowerCase()!=="input"||X.type!=="checkbox"&&X.type!=="radio"?Y&&Vo(Y.elementType)&&(Ie=vp):Ie=Px;if(Ie&&(Ie=Ie(e,Y))){hp(se,Ie,n,ae);break e}Se&&Se(e,X,Y),e==="focusout"&&Y&&X.type==="number"&&Y.memoizedProps.value!=null&&Io(X,"number",X.value)}switch(Se=Y?Bs(Y):window,e){case"focusin":(mp(Se)||Se.contentEditable==="true")&&(Ki=Se,nc=Y,Ys=null);break;case"focusout":Ys=nc=Ki=null;break;case"mousedown":ic=!0;break;case"contextmenu":case"mouseup":case"dragend":ic=!1,kp(se,n,ae);break;case"selectionchange":if(Vx)break;case"keydown":case"keyup":kp(se,n,ae)}var Me;if(Jo)e:{switch(e){case"compositionstart":var Be="onCompositionStart";break e;case"compositionend":Be="onCompositionEnd";break e;case"compositionupdate":Be="onCompositionUpdate";break e}Be=void 0}else $i?pp(e,n)&&(Be="onCompositionEnd"):e==="keydown"&&n.keyCode===229&&(Be="onCompositionStart");Be&&(cp&&n.locale!=="ko"&&($i||Be!=="onCompositionStart"?Be==="onCompositionEnd"&&$i&&(Me=ip()):(Tn=ae,$o="value"in Tn?Tn.value:Tn.textContent,$i=!0)),Se=Ll(Y,Be),0<Se.length&&(Be=new lp(Be,e,null,n,ae),se.push({event:Be,listeners:Se}),Me?Be.data=Me:(Me=fp(n),Me!==null&&(Be.data=Me)))),(Me=Mx?Rx(e,n):Ox(e,n))&&(Be=Ll(Y,"onBeforeInput"),0<Be.length&&(Se=new lp("onBeforeInput","beforeinput",null,n,ae),se.push({event:Se,listeners:Be}),Se.data=Me)),Nb(se,e,Y,n,ae)}Zm(se,t)})}function gr(e,t,n){return{instance:e,listener:t,currentTarget:n}}function Ll(e,t){for(var n=t+"Capture",i=[];e!==null;){var l=e,o=l.stateNode;if(l=l.tag,l!==5&&l!==26&&l!==27||o===null||(l=Hs(e,n),l!=null&&i.unshift(gr(e,l,o)),l=Hs(e,t),l!=null&&i.push(gr(e,l,o))),e.tag===3)return i;e=e.return}return[]}function Ab(e){if(e===null)return null;do e=e.return;while(e&&e.tag!==5&&e.tag!==27);return e||null}function eh(e,t,n,i,l){for(var o=t._reactName,h=[];n!==null&&n!==i;){var w=n,M=w.alternate,Y=w.stateNode;if(w=w.tag,M!==null&&M===i)break;w!==5&&w!==26&&w!==27||Y===null||(M=Y,l?(Y=Hs(n,o),Y!=null&&h.unshift(gr(n,Y,M))):l||(Y=Hs(n,o),Y!=null&&h.push(gr(n,Y,M)))),n=n.return}h.length!==0&&e.push({event:t,listeners:h})}var zb=/\r\n?/g,Db=/\u0000|\uFFFD/g;function th(e){return(typeof e=="string"?e:""+e).replace(zb,`
49
+ `).replace(Db,"")}function ah(e,t){return t=th(t),th(e)===t}function Qe(e,t,n,i,l,o){switch(n){case"children":typeof i=="string"?t==="body"||t==="textarea"&&i===""||Gi(e,i):(typeof i=="number"||typeof i=="bigint")&&t!=="body"&&Gi(e,""+i);break;case"className":Pr(e,"class",i);break;case"tabIndex":Pr(e,"tabindex",i);break;case"dir":case"role":case"viewBox":case"width":case"height":Pr(e,n,i);break;case"style":tp(e,i,o);break;case"data":if(t!=="object"){Pr(e,"data",i);break}case"src":case"href":if(i===""&&(t!=="a"||n!=="href")){e.removeAttribute(n);break}if(i==null||typeof i=="function"||typeof i=="symbol"||typeof i=="boolean"){e.removeAttribute(n);break}i=Ir(""+i),e.setAttribute(n,i);break;case"action":case"formAction":if(typeof i=="function"){e.setAttribute(n,"javascript:throw new Error('A React form was unexpectedly submitted. If you called form.submit() manually, consider using form.requestSubmit() instead. If you\\'re trying to use event.stopPropagation() in a submit event handler, consider also calling event.preventDefault().')");break}else typeof o=="function"&&(n==="formAction"?(t!=="input"&&Qe(e,t,"name",l.name,l,null),Qe(e,t,"formEncType",l.formEncType,l,null),Qe(e,t,"formMethod",l.formMethod,l,null),Qe(e,t,"formTarget",l.formTarget,l,null)):(Qe(e,t,"encType",l.encType,l,null),Qe(e,t,"method",l.method,l,null),Qe(e,t,"target",l.target,l,null)));if(i==null||typeof i=="symbol"||typeof i=="boolean"){e.removeAttribute(n);break}i=Ir(""+i),e.setAttribute(n,i);break;case"onClick":i!=null&&(e.onclick=tn);break;case"onScroll":i!=null&&Oe("scroll",e);break;case"onScrollEnd":i!=null&&Oe("scrollend",e);break;case"dangerouslySetInnerHTML":if(i!=null){if(typeof i!="object"||!("__html"in i))throw Error(d(61));if(n=i.__html,n!=null){if(l.children!=null)throw Error(d(60));e.innerHTML=n}}break;case"multiple":e.multiple=i&&typeof i!="function"&&typeof i!="symbol";break;case"muted":e.muted=i&&typeof i!="function"&&typeof i!="symbol";break;case"suppressContentEditableWarning":case"suppressHydrationWarning":case"defaultValue":case"defaultChecked":case"innerHTML":case"ref":break;case"autoFocus":break;case"xlinkHref":if(i==null||typeof i=="function"||typeof i=="boolean"||typeof i=="symbol"){e.removeAttribute("xlink:href");break}n=Ir(""+i),e.setAttributeNS("http://www.w3.org/1999/xlink","xlink:href",n);break;case"contentEditable":case"spellCheck":case"draggable":case"value":case"autoReverse":case"externalResourcesRequired":case"focusable":case"preserveAlpha":i!=null&&typeof i!="function"&&typeof i!="symbol"?e.setAttribute(n,""+i):e.removeAttribute(n);break;case"inert":case"allowFullScreen":case"async":case"autoPlay":case"controls":case"default":case"defer":case"disabled":case"disablePictureInPicture":case"disableRemotePlayback":case"formNoValidate":case"hidden":case"loop":case"noModule":case"noValidate":case"open":case"playsInline":case"readOnly":case"required":case"reversed":case"scoped":case"seamless":case"itemScope":i&&typeof i!="function"&&typeof i!="symbol"?e.setAttribute(n,""):e.removeAttribute(n);break;case"capture":case"download":i===!0?e.setAttribute(n,""):i!==!1&&i!=null&&typeof i!="function"&&typeof i!="symbol"?e.setAttribute(n,i):e.removeAttribute(n);break;case"cols":case"rows":case"size":case"span":i!=null&&typeof i!="function"&&typeof i!="symbol"&&!isNaN(i)&&1<=i?e.setAttribute(n,i):e.removeAttribute(n);break;case"rowSpan":case"start":i==null||typeof i=="function"||typeof i=="symbol"||isNaN(i)?e.removeAttribute(n):e.setAttribute(n,i);break;case"popover":Oe("beforetoggle",e),Oe("toggle",e),Ur(e,"popover",i);break;case"xlinkActuate":en(e,"http://www.w3.org/1999/xlink","xlink:actuate",i);break;case"xlinkArcrole":en(e,"http://www.w3.org/1999/xlink","xlink:arcrole",i);break;case"xlinkRole":en(e,"http://www.w3.org/1999/xlink","xlink:role",i);break;case"xlinkShow":en(e,"http://www.w3.org/1999/xlink","xlink:show",i);break;case"xlinkTitle":en(e,"http://www.w3.org/1999/xlink","xlink:title",i);break;case"xlinkType":en(e,"http://www.w3.org/1999/xlink","xlink:type",i);break;case"xmlBase":en(e,"http://www.w3.org/XML/1998/namespace","xml:base",i);break;case"xmlLang":en(e,"http://www.w3.org/XML/1998/namespace","xml:lang",i);break;case"xmlSpace":en(e,"http://www.w3.org/XML/1998/namespace","xml:space",i);break;case"is":Ur(e,"is",i);break;case"innerText":case"textContent":break;default:(!(2<n.length)||n[0]!=="o"&&n[0]!=="O"||n[1]!=="n"&&n[1]!=="N")&&(n=rx.get(n)||n,Ur(e,n,i))}}function Ed(e,t,n,i,l,o){switch(n){case"style":tp(e,i,o);break;case"dangerouslySetInnerHTML":if(i!=null){if(typeof i!="object"||!("__html"in i))throw Error(d(61));if(n=i.__html,n!=null){if(l.children!=null)throw Error(d(60));e.innerHTML=n}}break;case"children":typeof i=="string"?Gi(e,i):(typeof i=="number"||typeof i=="bigint")&&Gi(e,""+i);break;case"onScroll":i!=null&&Oe("scroll",e);break;case"onScrollEnd":i!=null&&Oe("scrollend",e);break;case"onClick":i!=null&&(e.onclick=tn);break;case"suppressContentEditableWarning":case"suppressHydrationWarning":case"innerHTML":case"ref":break;case"innerText":case"textContent":break;default:if(!Yu.hasOwnProperty(n))e:{if(n[0]==="o"&&n[1]==="n"&&(l=n.endsWith("Capture"),t=n.slice(2,l?n.length-7:void 0),o=e[de]||null,o=o!=null?o[n]:null,typeof o=="function"&&e.removeEventListener(t,o,l),typeof i=="function")){typeof o!="function"&&o!==null&&(n in e?e[n]=null:e.hasAttribute(n)&&e.removeAttribute(n)),e.addEventListener(t,i,l);break e}n in e?e[n]=i:i===!0?e.setAttribute(n,""):Ur(e,n,i)}}}function Lt(e,t,n){switch(t){case"div":case"span":case"svg":case"path":case"a":case"g":case"p":case"li":break;case"img":Oe("error",e),Oe("load",e);var i=!1,l=!1,o;for(o in n)if(n.hasOwnProperty(o)){var h=n[o];if(h!=null)switch(o){case"src":i=!0;break;case"srcSet":l=!0;break;case"children":case"dangerouslySetInnerHTML":throw Error(d(137,t));default:Qe(e,t,o,h,n,null)}}l&&Qe(e,t,"srcSet",n.srcSet,n,null),i&&Qe(e,t,"src",n.src,n,null);return;case"input":Oe("invalid",e);var w=o=h=l=null,M=null,Y=null;for(i in n)if(n.hasOwnProperty(i)){var ae=n[i];if(ae!=null)switch(i){case"name":l=ae;break;case"type":h=ae;break;case"checked":M=ae;break;case"defaultChecked":Y=ae;break;case"value":o=ae;break;case"defaultValue":w=ae;break;case"children":case"dangerouslySetInnerHTML":if(ae!=null)throw Error(d(137,t));break;default:Qe(e,t,i,ae,n,null)}}Wu(e,o,w,M,Y,h,l,!1);return;case"select":Oe("invalid",e),i=h=o=null;for(l in n)if(n.hasOwnProperty(l)&&(w=n[l],w!=null))switch(l){case"value":o=w;break;case"defaultValue":h=w;break;case"multiple":i=w;default:Qe(e,t,l,w,n,null)}t=o,n=h,e.multiple=!!i,t!=null?Fi(e,!!i,t,!1):n!=null&&Fi(e,!!i,n,!0);return;case"textarea":Oe("invalid",e),o=l=i=null;for(h in n)if(n.hasOwnProperty(h)&&(w=n[h],w!=null))switch(h){case"value":i=w;break;case"defaultValue":l=w;break;case"children":o=w;break;case"dangerouslySetInnerHTML":if(w!=null)throw Error(d(91));break;default:Qe(e,t,h,w,n,null)}Ju(e,i,l,o);return;case"option":for(M in n)if(n.hasOwnProperty(M)&&(i=n[M],i!=null))switch(M){case"selected":e.selected=i&&typeof i!="function"&&typeof i!="symbol";break;default:Qe(e,t,M,i,n,null)}return;case"dialog":Oe("beforetoggle",e),Oe("toggle",e),Oe("cancel",e),Oe("close",e);break;case"iframe":case"object":Oe("load",e);break;case"video":case"audio":for(i=0;i<vr.length;i++)Oe(vr[i],e);break;case"image":Oe("error",e),Oe("load",e);break;case"details":Oe("toggle",e);break;case"embed":case"source":case"link":Oe("error",e),Oe("load",e);case"area":case"base":case"br":case"col":case"hr":case"keygen":case"meta":case"param":case"track":case"wbr":case"menuitem":for(Y in n)if(n.hasOwnProperty(Y)&&(i=n[Y],i!=null))switch(Y){case"children":case"dangerouslySetInnerHTML":throw Error(d(137,t));default:Qe(e,t,Y,i,n,null)}return;default:if(Vo(t)){for(ae in n)n.hasOwnProperty(ae)&&(i=n[ae],i!==void 0&&Ed(e,t,ae,i,n,void 0));return}}for(w in n)n.hasOwnProperty(w)&&(i=n[w],i!=null&&Qe(e,t,w,i,n,null))}function Mb(e,t,n,i){switch(t){case"div":case"span":case"svg":case"path":case"a":case"g":case"p":case"li":break;case"input":var l=null,o=null,h=null,w=null,M=null,Y=null,ae=null;for(ee in n){var se=n[ee];if(n.hasOwnProperty(ee)&&se!=null)switch(ee){case"checked":break;case"value":break;case"defaultValue":M=se;default:i.hasOwnProperty(ee)||Qe(e,t,ee,null,i,se)}}for(var X in i){var ee=i[X];if(se=n[X],i.hasOwnProperty(X)&&(ee!=null||se!=null))switch(X){case"type":o=ee;break;case"name":l=ee;break;case"checked":Y=ee;break;case"defaultChecked":ae=ee;break;case"value":h=ee;break;case"defaultValue":w=ee;break;case"children":case"dangerouslySetInnerHTML":if(ee!=null)throw Error(d(137,t));break;default:ee!==se&&Qe(e,t,X,ee,i,se)}}qo(e,h,w,M,Y,ae,o,l);return;case"select":ee=h=w=X=null;for(o in n)if(M=n[o],n.hasOwnProperty(o)&&M!=null)switch(o){case"value":break;case"multiple":ee=M;default:i.hasOwnProperty(o)||Qe(e,t,o,null,i,M)}for(l in i)if(o=i[l],M=n[l],i.hasOwnProperty(l)&&(o!=null||M!=null))switch(l){case"value":X=o;break;case"defaultValue":w=o;break;case"multiple":h=o;default:o!==M&&Qe(e,t,l,o,i,M)}t=w,n=h,i=ee,X!=null?Fi(e,!!n,X,!1):!!i!=!!n&&(t!=null?Fi(e,!!n,t,!0):Fi(e,!!n,n?[]:"",!1));return;case"textarea":ee=X=null;for(w in n)if(l=n[w],n.hasOwnProperty(w)&&l!=null&&!i.hasOwnProperty(w))switch(w){case"value":break;case"children":break;default:Qe(e,t,w,null,i,l)}for(h in i)if(l=i[h],o=n[h],i.hasOwnProperty(h)&&(l!=null||o!=null))switch(h){case"value":X=l;break;case"defaultValue":ee=l;break;case"children":break;case"dangerouslySetInnerHTML":if(l!=null)throw Error(d(91));break;default:l!==o&&Qe(e,t,h,l,i,o)}Zu(e,X,ee);return;case"option":for(var ye in n)if(X=n[ye],n.hasOwnProperty(ye)&&X!=null&&!i.hasOwnProperty(ye))switch(ye){case"selected":e.selected=!1;break;default:Qe(e,t,ye,null,i,X)}for(M in i)if(X=i[M],ee=n[M],i.hasOwnProperty(M)&&X!==ee&&(X!=null||ee!=null))switch(M){case"selected":e.selected=X&&typeof X!="function"&&typeof X!="symbol";break;default:Qe(e,t,M,X,i,ee)}return;case"img":case"link":case"area":case"base":case"br":case"col":case"embed":case"hr":case"keygen":case"meta":case"param":case"source":case"track":case"wbr":case"menuitem":for(var Ce in n)X=n[Ce],n.hasOwnProperty(Ce)&&X!=null&&!i.hasOwnProperty(Ce)&&Qe(e,t,Ce,null,i,X);for(Y in i)if(X=i[Y],ee=n[Y],i.hasOwnProperty(Y)&&X!==ee&&(X!=null||ee!=null))switch(Y){case"children":case"dangerouslySetInnerHTML":if(X!=null)throw Error(d(137,t));break;default:Qe(e,t,Y,X,i,ee)}return;default:if(Vo(t)){for(var We in n)X=n[We],n.hasOwnProperty(We)&&X!==void 0&&!i.hasOwnProperty(We)&&Ed(e,t,We,void 0,i,X);for(ae in i)X=i[ae],ee=n[ae],!i.hasOwnProperty(ae)||X===ee||X===void 0&&ee===void 0||Ed(e,t,ae,X,i,ee);return}}for(var q in n)X=n[q],n.hasOwnProperty(q)&&X!=null&&!i.hasOwnProperty(q)&&Qe(e,t,q,null,i,X);for(se in i)X=i[se],ee=n[se],!i.hasOwnProperty(se)||X===ee||X==null&&ee==null||Qe(e,t,se,X,i,ee)}function nh(e){switch(e){case"css":case"script":case"font":case"img":case"image":case"input":case"link":return!0;default:return!1}}function Rb(){if(typeof performance.getEntriesByType=="function"){for(var e=0,t=0,n=performance.getEntriesByType("resource"),i=0;i<n.length;i++){var l=n[i],o=l.transferSize,h=l.initiatorType,w=l.duration;if(o&&w&&nh(h)){for(h=0,w=l.responseEnd,i+=1;i<n.length;i++){var M=n[i],Y=M.startTime;if(Y>w)break;var ae=M.transferSize,se=M.initiatorType;ae&&nh(se)&&(M=M.responseEnd,h+=ae*(M<w?1:(w-Y)/(M-Y)))}if(--i,t+=8*(o+h)/(l.duration/1e3),e++,10<e)break}}if(0<e)return t/e/1e6}return navigator.connection&&(e=navigator.connection.downlink,typeof e=="number")?e:5}var Ad=null,zd=null;function Bl(e){return e.nodeType===9?e:e.ownerDocument}function ih(e){switch(e){case"http://www.w3.org/2000/svg":return 1;case"http://www.w3.org/1998/Math/MathML":return 2;default:return 0}}function sh(e,t){if(e===0)switch(t){case"svg":return 1;case"math":return 2;default:return 0}return e===1&&t==="foreignObject"?0:e}function Dd(e,t){return e==="textarea"||e==="noscript"||typeof t.children=="string"||typeof t.children=="number"||typeof t.children=="bigint"||typeof t.dangerouslySetInnerHTML=="object"&&t.dangerouslySetInnerHTML!==null&&t.dangerouslySetInnerHTML.__html!=null}var Md=null;function Ob(){var e=window.event;return e&&e.type==="popstate"?e===Md?!1:(Md=e,!0):(Md=null,!1)}var rh=typeof setTimeout=="function"?setTimeout:void 0,Lb=typeof clearTimeout=="function"?clearTimeout:void 0,lh=typeof Promise=="function"?Promise:void 0,Bb=typeof queueMicrotask=="function"?queueMicrotask:typeof lh!="undefined"?function(e){return lh.resolve(null).then(e).catch(Hb)}:rh;function Hb(e){setTimeout(function(){throw e})}function Gn(e){return e==="head"}function oh(e,t){var n=t,i=0;do{var l=n.nextSibling;if(e.removeChild(n),l&&l.nodeType===8)if(n=l.data,n==="/$"||n==="/&"){if(i===0){e.removeChild(l),ws(t);return}i--}else if(n==="$"||n==="$?"||n==="$~"||n==="$!"||n==="&")i++;else if(n==="html")xr(e.ownerDocument.documentElement);else if(n==="head"){n=e.ownerDocument.head,xr(n);for(var o=n.firstChild;o;){var h=o.nextSibling,w=o.nodeName;o[hi]||w==="SCRIPT"||w==="STYLE"||w==="LINK"&&o.rel.toLowerCase()==="stylesheet"||n.removeChild(o),o=h}}else n==="body"&&xr(e.ownerDocument.body);n=l}while(n);ws(t)}function ch(e,t){var n=e;e=0;do{var i=n.nextSibling;if(n.nodeType===1?t?(n._stashedDisplay=n.style.display,n.style.display="none"):(n.style.display=n._stashedDisplay||"",n.getAttribute("style")===""&&n.removeAttribute("style")):n.nodeType===3&&(t?(n._stashedText=n.nodeValue,n.nodeValue=""):n.nodeValue=n._stashedText||""),i&&i.nodeType===8)if(n=i.data,n==="/$"){if(e===0)break;e--}else n!=="$"&&n!=="$?"&&n!=="$~"&&n!=="$!"||e++;n=i}while(n)}function Rd(e){var t=e.firstChild;for(t&&t.nodeType===10&&(t=t.nextSibling);t;){var n=t;switch(t=t.nextSibling,n.nodeName){case"HTML":case"HEAD":case"BODY":Rd(n),Ls(n);continue;case"SCRIPT":case"STYLE":continue;case"LINK":if(n.rel.toLowerCase()==="stylesheet")continue}e.removeChild(n)}}function Ub(e,t,n,i){for(;e.nodeType===1;){var l=n;if(e.nodeName.toLowerCase()!==t.toLowerCase()){if(!i&&(e.nodeName!=="INPUT"||e.type!=="hidden"))break}else if(i){if(!e[hi])switch(t){case"meta":if(!e.hasAttribute("itemprop"))break;return e;case"link":if(o=e.getAttribute("rel"),o==="stylesheet"&&e.hasAttribute("data-precedence"))break;if(o!==l.rel||e.getAttribute("href")!==(l.href==null||l.href===""?null:l.href)||e.getAttribute("crossorigin")!==(l.crossOrigin==null?null:l.crossOrigin)||e.getAttribute("title")!==(l.title==null?null:l.title))break;return e;case"style":if(e.hasAttribute("data-precedence"))break;return e;case"script":if(o=e.getAttribute("src"),(o!==(l.src==null?null:l.src)||e.getAttribute("type")!==(l.type==null?null:l.type)||e.getAttribute("crossorigin")!==(l.crossOrigin==null?null:l.crossOrigin))&&o&&e.hasAttribute("async")&&!e.hasAttribute("itemprop"))break;return e;default:return e}}else if(t==="input"&&e.type==="hidden"){var o=l.name==null?null:""+l.name;if(l.type==="hidden"&&e.getAttribute("name")===o)return e}else return e;if(e=ya(e.nextSibling),e===null)break}return null}function Pb(e,t,n){if(t==="")return null;for(;e.nodeType!==3;)if((e.nodeType!==1||e.nodeName!=="INPUT"||e.type!=="hidden")&&!n||(e=ya(e.nextSibling),e===null))return null;return e}function dh(e,t){for(;e.nodeType!==8;)if((e.nodeType!==1||e.nodeName!=="INPUT"||e.type!=="hidden")&&!t||(e=ya(e.nextSibling),e===null))return null;return e}function Od(e){return e.data==="$?"||e.data==="$~"}function Ld(e){return e.data==="$!"||e.data==="$?"&&e.ownerDocument.readyState!=="loading"}function qb(e,t){var n=e.ownerDocument;if(e.data==="$~")e._reactRetry=t;else if(e.data!=="$?"||n.readyState!=="loading")t();else{var i=function(){t(),n.removeEventListener("DOMContentLoaded",i)};n.addEventListener("DOMContentLoaded",i),e._reactRetry=i}}function ya(e){for(;e!=null;e=e.nextSibling){var t=e.nodeType;if(t===1||t===3)break;if(t===8){if(t=e.data,t==="$"||t==="$!"||t==="$?"||t==="$~"||t==="&"||t==="F!"||t==="F")break;if(t==="/$"||t==="/&")return null}}return e}var Bd=null;function uh(e){e=e.nextSibling;for(var t=0;e;){if(e.nodeType===8){var n=e.data;if(n==="/$"||n==="/&"){if(t===0)return ya(e.nextSibling);t--}else n!=="$"&&n!=="$!"&&n!=="$?"&&n!=="$~"&&n!=="&"||t++}e=e.nextSibling}return null}function ph(e){e=e.previousSibling;for(var t=0;e;){if(e.nodeType===8){var n=e.data;if(n==="$"||n==="$!"||n==="$?"||n==="$~"||n==="&"){if(t===0)return e;t--}else n!=="/$"&&n!=="/&"||t++}e=e.previousSibling}return null}function fh(e,t,n){switch(t=Bl(n),e){case"html":if(e=t.documentElement,!e)throw Error(d(452));return e;case"head":if(e=t.head,!e)throw Error(d(453));return e;case"body":if(e=t.body,!e)throw Error(d(454));return e;default:throw Error(d(451))}}function xr(e){for(var t=e.attributes;t.length;)e.removeAttributeNode(t[0]);Ls(e)}var ja=new Map,mh=new Set;function Hl(e){return typeof e.getRootNode=="function"?e.getRootNode():e.nodeType===9?e:e.ownerDocument}var xn=$.d;$.d={f:Ib,r:Vb,D:Fb,C:Gb,L:Yb,m:Xb,X:Kb,S:$b,M:Qb};function Ib(){var e=xn.f(),t=El();return e||t}function Vb(e){var t=qi(e);t!==null&&t.tag===5&&t.type==="form"?zf(t):xn.r(e)}var bs=typeof document=="undefined"?null:document;function hh(e,t,n){var i=bs;if(i&&typeof t=="string"&&t){var l=fa(t);l='link[rel="'+e+'"][href="'+l+'"]',typeof n=="string"&&(l+='[crossorigin="'+n+'"]'),mh.has(l)||(mh.add(l),e={rel:e,crossOrigin:n,href:t},i.querySelector(l)===null&&(t=i.createElement("link"),Lt(t,"link",e),kt(t),i.head.appendChild(t)))}}function Fb(e){xn.D(e),hh("dns-prefetch",e,null)}function Gb(e,t){xn.C(e,t),hh("preconnect",e,t)}function Yb(e,t,n){xn.L(e,t,n);var i=bs;if(i&&e&&t){var l='link[rel="preload"][as="'+fa(t)+'"]';t==="image"&&n&&n.imageSrcSet?(l+='[imagesrcset="'+fa(n.imageSrcSet)+'"]',typeof n.imageSizes=="string"&&(l+='[imagesizes="'+fa(n.imageSizes)+'"]')):l+='[href="'+fa(e)+'"]';var o=l;switch(t){case"style":o=ys(e);break;case"script":o=js(e)}ja.has(o)||(e=j({rel:"preload",href:t==="image"&&n&&n.imageSrcSet?void 0:e,as:t},n),ja.set(o,e),i.querySelector(l)!==null||t==="style"&&i.querySelector(br(o))||t==="script"&&i.querySelector(yr(o))||(t=i.createElement("link"),Lt(t,"link",e),kt(t),i.head.appendChild(t)))}}function Xb(e,t){xn.m(e,t);var n=bs;if(n&&e){var i=t&&typeof t.as=="string"?t.as:"script",l='link[rel="modulepreload"][as="'+fa(i)+'"][href="'+fa(e)+'"]',o=l;switch(i){case"audioworklet":case"paintworklet":case"serviceworker":case"sharedworker":case"worker":case"script":o=js(e)}if(!ja.has(o)&&(e=j({rel:"modulepreload",href:e},t),ja.set(o,e),n.querySelector(l)===null)){switch(i){case"audioworklet":case"paintworklet":case"serviceworker":case"sharedworker":case"worker":case"script":if(n.querySelector(yr(o)))return}i=n.createElement("link"),Lt(i,"link",e),kt(i),n.head.appendChild(i)}}}function $b(e,t,n){xn.S(e,t,n);var i=bs;if(i&&e){var l=Ii(i).hoistableStyles,o=ys(e);t=t||"default";var h=l.get(o);if(!h){var w={loading:0,preload:null};if(h=i.querySelector(br(o)))w.loading=5;else{e=j({rel:"stylesheet",href:e,"data-precedence":t},n),(n=ja.get(o))&&Hd(e,n);var M=h=i.createElement("link");kt(M),Lt(M,"link",e),M._p=new Promise(function(Y,ae){M.onload=Y,M.onerror=ae}),M.addEventListener("load",function(){w.loading|=1}),M.addEventListener("error",function(){w.loading|=2}),w.loading|=4,Ul(h,t,i)}h={type:"stylesheet",instance:h,count:1,state:w},l.set(o,h)}}}function Kb(e,t){xn.X(e,t);var n=bs;if(n&&e){var i=Ii(n).hoistableScripts,l=js(e),o=i.get(l);o||(o=n.querySelector(yr(l)),o||(e=j({src:e,async:!0},t),(t=ja.get(l))&&Ud(e,t),o=n.createElement("script"),kt(o),Lt(o,"link",e),n.head.appendChild(o)),o={type:"script",instance:o,count:1,state:null},i.set(l,o))}}function Qb(e,t){xn.M(e,t);var n=bs;if(n&&e){var i=Ii(n).hoistableScripts,l=js(e),o=i.get(l);o||(o=n.querySelector(yr(l)),o||(e=j({src:e,async:!0,type:"module"},t),(t=ja.get(l))&&Ud(e,t),o=n.createElement("script"),kt(o),Lt(o,"link",e),n.head.appendChild(o)),o={type:"script",instance:o,count:1,state:null},i.set(l,o))}}function vh(e,t,n,i){var l=(l=J.current)?Hl(l):null;if(!l)throw Error(d(446));switch(e){case"meta":case"title":return null;case"style":return typeof n.precedence=="string"&&typeof n.href=="string"?(t=ys(n.href),n=Ii(l).hoistableStyles,i=n.get(t),i||(i={type:"style",instance:null,count:0,state:null},n.set(t,i)),i):{type:"void",instance:null,count:0,state:null};case"link":if(n.rel==="stylesheet"&&typeof n.href=="string"&&typeof n.precedence=="string"){e=ys(n.href);var o=Ii(l).hoistableStyles,h=o.get(e);if(h||(l=l.ownerDocument||l,h={type:"stylesheet",instance:null,count:0,state:{loading:0,preload:null}},o.set(e,h),(o=l.querySelector(br(e)))&&!o._p&&(h.instance=o,h.state.loading=5),ja.has(e)||(n={rel:"preload",as:"style",href:n.href,crossOrigin:n.crossOrigin,integrity:n.integrity,media:n.media,hrefLang:n.hrefLang,referrerPolicy:n.referrerPolicy},ja.set(e,n),o||Wb(l,e,n,h.state))),t&&i===null)throw Error(d(528,""));return h}if(t&&i!==null)throw Error(d(529,""));return null;case"script":return t=n.async,n=n.src,typeof n=="string"&&t&&typeof t!="function"&&typeof t!="symbol"?(t=js(n),n=Ii(l).hoistableScripts,i=n.get(t),i||(i={type:"script",instance:null,count:0,state:null},n.set(t,i)),i):{type:"void",instance:null,count:0,state:null};default:throw Error(d(444,e))}}function ys(e){return'href="'+fa(e)+'"'}function br(e){return'link[rel="stylesheet"]['+e+"]"}function gh(e){return j({},e,{"data-precedence":e.precedence,precedence:null})}function Wb(e,t,n,i){e.querySelector('link[rel="preload"][as="style"]['+t+"]")?i.loading=1:(t=e.createElement("link"),i.preload=t,t.addEventListener("load",function(){return i.loading|=1}),t.addEventListener("error",function(){return i.loading|=2}),Lt(t,"link",n),kt(t),e.head.appendChild(t))}function js(e){return'[src="'+fa(e)+'"]'}function yr(e){return"script[async]"+e}function xh(e,t,n){if(t.count++,t.instance===null)switch(t.type){case"style":var i=e.querySelector('style[data-href~="'+fa(n.href)+'"]');if(i)return t.instance=i,kt(i),i;var l=j({},n,{"data-href":n.href,"data-precedence":n.precedence,href:null,precedence:null});return i=(e.ownerDocument||e).createElement("style"),kt(i),Lt(i,"style",l),Ul(i,n.precedence,e),t.instance=i;case"stylesheet":l=ys(n.href);var o=e.querySelector(br(l));if(o)return t.state.loading|=4,t.instance=o,kt(o),o;i=gh(n),(l=ja.get(l))&&Hd(i,l),o=(e.ownerDocument||e).createElement("link"),kt(o);var h=o;return h._p=new Promise(function(w,M){h.onload=w,h.onerror=M}),Lt(o,"link",i),t.state.loading|=4,Ul(o,n.precedence,e),t.instance=o;case"script":return o=js(n.src),(l=e.querySelector(yr(o)))?(t.instance=l,kt(l),l):(i=n,(l=ja.get(o))&&(i=j({},n),Ud(i,l)),e=e.ownerDocument||e,l=e.createElement("script"),kt(l),Lt(l,"link",i),e.head.appendChild(l),t.instance=l);case"void":return null;default:throw Error(d(443,t.type))}else t.type==="stylesheet"&&(t.state.loading&4)===0&&(i=t.instance,t.state.loading|=4,Ul(i,n.precedence,e));return t.instance}function Ul(e,t,n){for(var i=n.querySelectorAll('link[rel="stylesheet"][data-precedence],style[data-precedence]'),l=i.length?i[i.length-1]:null,o=l,h=0;h<i.length;h++){var w=i[h];if(w.dataset.precedence===t)o=w;else if(o!==l)break}o?o.parentNode.insertBefore(e,o.nextSibling):(t=n.nodeType===9?n.head:n,t.insertBefore(e,t.firstChild))}function Hd(e,t){e.crossOrigin==null&&(e.crossOrigin=t.crossOrigin),e.referrerPolicy==null&&(e.referrerPolicy=t.referrerPolicy),e.title==null&&(e.title=t.title)}function Ud(e,t){e.crossOrigin==null&&(e.crossOrigin=t.crossOrigin),e.referrerPolicy==null&&(e.referrerPolicy=t.referrerPolicy),e.integrity==null&&(e.integrity=t.integrity)}var Pl=null;function bh(e,t,n){if(Pl===null){var i=new Map,l=Pl=new Map;l.set(n,i)}else l=Pl,i=l.get(n),i||(i=new Map,l.set(n,i));if(i.has(e))return i;for(i.set(e,null),n=n.getElementsByTagName(e),l=0;l<n.length;l++){var o=n[l];if(!(o[hi]||o[Ze]||e==="link"&&o.getAttribute("rel")==="stylesheet")&&o.namespaceURI!=="http://www.w3.org/2000/svg"){var h=o.getAttribute(t)||"";h=e+h;var w=i.get(h);w?w.push(o):i.set(h,[o])}}return i}function yh(e,t,n){e=e.ownerDocument||e,e.head.insertBefore(n,t==="title"?e.querySelector("head > title"):null)}function Zb(e,t,n){if(n===1||t.itemProp!=null)return!1;switch(e){case"meta":case"title":return!0;case"style":if(typeof t.precedence!="string"||typeof t.href!="string"||t.href==="")break;return!0;case"link":if(typeof t.rel!="string"||typeof t.href!="string"||t.href===""||t.onLoad||t.onError)break;switch(t.rel){case"stylesheet":return e=t.disabled,typeof t.precedence=="string"&&e==null;default:return!0}case"script":if(t.async&&typeof t.async!="function"&&typeof t.async!="symbol"&&!t.onLoad&&!t.onError&&t.src&&typeof t.src=="string")return!0}return!1}function jh(e){return!(e.type==="stylesheet"&&(e.state.loading&3)===0)}function Jb(e,t,n,i){if(n.type==="stylesheet"&&(typeof i.media!="string"||matchMedia(i.media).matches!==!1)&&(n.state.loading&4)===0){if(n.instance===null){var l=ys(i.href),o=t.querySelector(br(l));if(o){t=o._p,t!==null&&typeof t=="object"&&typeof t.then=="function"&&(e.count++,e=ql.bind(e),t.then(e,e)),n.state.loading|=4,n.instance=o,kt(o);return}o=t.ownerDocument||t,i=gh(i),(l=ja.get(l))&&Hd(i,l),o=o.createElement("link"),kt(o);var h=o;h._p=new Promise(function(w,M){h.onload=w,h.onerror=M}),Lt(o,"link",i),n.instance=o}e.stylesheets===null&&(e.stylesheets=new Map),e.stylesheets.set(n,t),(t=n.state.preload)&&(n.state.loading&3)===0&&(e.count++,n=ql.bind(e),t.addEventListener("load",n),t.addEventListener("error",n))}}var Pd=0;function ey(e,t){return e.stylesheets&&e.count===0&&Vl(e,e.stylesheets),0<e.count||0<e.imgCount?function(n){var i=setTimeout(function(){if(e.stylesheets&&Vl(e,e.stylesheets),e.unsuspend){var o=e.unsuspend;e.unsuspend=null,o()}},6e4+t);0<e.imgBytes&&Pd===0&&(Pd=62500*Rb());var l=setTimeout(function(){if(e.waitingForImages=!1,e.count===0&&(e.stylesheets&&Vl(e,e.stylesheets),e.unsuspend)){var o=e.unsuspend;e.unsuspend=null,o()}},(e.imgBytes>Pd?50:800)+t);return e.unsuspend=n,function(){e.unsuspend=null,clearTimeout(i),clearTimeout(l)}}:null}function ql(){if(this.count--,this.count===0&&(this.imgCount===0||!this.waitingForImages)){if(this.stylesheets)Vl(this,this.stylesheets);else if(this.unsuspend){var e=this.unsuspend;this.unsuspend=null,e()}}}var Il=null;function Vl(e,t){e.stylesheets=null,e.unsuspend!==null&&(e.count++,Il=new Map,t.forEach(ty,e),Il=null,ql.call(e))}function ty(e,t){if(!(t.state.loading&4)){var n=Il.get(e);if(n)var i=n.get(null);else{n=new Map,Il.set(e,n);for(var l=e.querySelectorAll("link[data-precedence],style[data-precedence]"),o=0;o<l.length;o++){var h=l[o];(h.nodeName==="LINK"||h.getAttribute("media")!=="not all")&&(n.set(h.dataset.precedence,h),i=h)}i&&n.set(null,i)}l=t.instance,h=l.getAttribute("data-precedence"),o=n.get(h)||i,o===i&&n.set(null,l),n.set(h,l),this.count++,i=ql.bind(this),l.addEventListener("load",i),l.addEventListener("error",i),o?o.parentNode.insertBefore(l,o.nextSibling):(e=e.nodeType===9?e.head:e,e.insertBefore(l,e.firstChild)),t.state.loading|=4}}var jr={$$typeof:_,Provider:null,Consumer:null,_currentValue:re,_currentValue2:re,_threadCount:0};function ay(e,t,n,i,l,o,h,w,M){this.tag=1,this.containerInfo=e,this.pingCache=this.current=this.pendingChildren=null,this.timeoutHandle=-1,this.callbackNode=this.next=this.pendingContext=this.context=this.cancelPendingCommit=null,this.callbackPriority=0,this.expirationTimes=Ui(-1),this.entangledLanes=this.shellSuspendCounter=this.errorRecoveryDisabledLanes=this.expiredLanes=this.warmLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=Ui(0),this.hiddenUpdates=Ui(null),this.identifierPrefix=i,this.onUncaughtError=l,this.onCaughtError=o,this.onRecoverableError=h,this.pooledCache=null,this.pooledCacheLanes=0,this.formState=M,this.incompleteTransitions=new Map}function wh(e,t,n,i,l,o,h,w,M,Y,ae,se){return e=new ay(e,t,n,h,M,Y,ae,se,w),t=1,o===!0&&(t|=24),o=Jt(3,null,null,t),e.current=o,o.stateNode=e,t=bc(),t.refCount++,e.pooledCache=t,t.refCount++,o.memoizedState={element:i,isDehydrated:n,cache:t},Sc(o),e}function Sh(e){return e?(e=Zi,e):Zi}function _h(e,t,n,i,l,o){l=Sh(l),i.context===null?i.context=l:i.pendingContext=l,i=Rn(t),i.payload={element:n},o=o===void 0?null:o,o!==null&&(i.callback=o),n=On(e,i,t),n!==null&&(Xt(n,e,t),Js(n,e,t))}function kh(e,t){if(e=e.memoizedState,e!==null&&e.dehydrated!==null){var n=e.retryLane;e.retryLane=n!==0&&n<t?n:t}}function qd(e,t){kh(e,t),(e=e.alternate)&&kh(e,t)}function Nh(e){if(e.tag===13||e.tag===31){var t=yi(e,67108864);t!==null&&Xt(t,e,67108864),qd(e,67108864)}}function Ch(e){if(e.tag===13||e.tag===31){var t=ia();t=Pi(t);var n=yi(e,t);n!==null&&Xt(n,e,t),qd(e,t)}}var Fl=!0;function ny(e,t,n,i){var l=P.T;P.T=null;var o=$.p;try{$.p=2,Id(e,t,n,i)}finally{$.p=o,P.T=l}}function iy(e,t,n,i){var l=P.T;P.T=null;var o=$.p;try{$.p=8,Id(e,t,n,i)}finally{$.p=o,P.T=l}}function Id(e,t,n,i){if(Fl){var l=Vd(i);if(l===null)Td(e,t,i,Gl,n),Eh(e,i);else if(ry(l,e,t,n,i))i.stopPropagation();else if(Eh(e,i),t&4&&-1<sy.indexOf(e)){for(;l!==null;){var o=qi(l);if(o!==null)switch(o.tag){case 3:if(o=o.stateNode,o.current.memoizedState.isDehydrated){var h=me(o.pendingLanes);if(h!==0){var w=o;for(w.pendingLanes|=2,w.entangledLanes|=2;h;){var M=1<<31-Dt(h);w.entanglements[1]|=M,h&=~M}Fa(o),(Fe&6)===0&&(Cl=zt()+500,hr(0))}}break;case 31:case 13:w=yi(o,2),w!==null&&Xt(w,o,2),El(),qd(o,2)}if(o=Vd(i),o===null&&Td(e,t,i,Gl,n),o===l)break;l=o}l!==null&&i.stopPropagation()}else Td(e,t,i,null,n)}}function Vd(e){return e=Go(e),Fd(e)}var Gl=null;function Fd(e){if(Gl=null,e=Cn(e),e!==null){var t=f(e);if(t===null)e=null;else{var n=t.tag;if(n===13){if(e=v(t),e!==null)return e;e=null}else if(n===31){if(e=x(t),e!==null)return e;e=null}else if(n===3){if(t.stateNode.current.memoizedState.isDehydrated)return t.tag===3?t.stateNode.containerInfo:null;e=null}else t!==e&&(e=null)}}return Gl=e,null}function Th(e){switch(e){case"beforetoggle":case"cancel":case"click":case"close":case"contextmenu":case"copy":case"cut":case"auxclick":case"dblclick":case"dragend":case"dragstart":case"drop":case"focusin":case"focusout":case"input":case"invalid":case"keydown":case"keypress":case"keyup":case"mousedown":case"mouseup":case"paste":case"pause":case"play":case"pointercancel":case"pointerdown":case"pointerup":case"ratechange":case"reset":case"resize":case"seeked":case"submit":case"toggle":case"touchcancel":case"touchend":case"touchstart":case"volumechange":case"change":case"selectionchange":case"textInput":case"compositionstart":case"compositionend":case"compositionupdate":case"beforeblur":case"afterblur":case"beforeinput":case"blur":case"fullscreenchange":case"focus":case"hashchange":case"popstate":case"select":case"selectstart":return 2;case"drag":case"dragenter":case"dragexit":case"dragleave":case"dragover":case"mousemove":case"mouseout":case"mouseover":case"pointermove":case"pointerout":case"pointerover":case"scroll":case"touchmove":case"wheel":case"mouseenter":case"mouseleave":case"pointerenter":case"pointerleave":return 8;case"message":switch(Ca()){case Za:return 2;case Li:return 8;case Pa:case da:return 32;case Ta:return 268435456;default:return 32}default:return 32}}var Gd=!1,Yn=null,Xn=null,$n=null,wr=new Map,Sr=new Map,Kn=[],sy="mousedown mouseup touchcancel touchend touchstart auxclick dblclick pointercancel pointerdown pointerup dragend dragstart drop compositionend compositionstart keydown keypress keyup input textInput copy cut paste click change contextmenu reset".split(" ");function Eh(e,t){switch(e){case"focusin":case"focusout":Yn=null;break;case"dragenter":case"dragleave":Xn=null;break;case"mouseover":case"mouseout":$n=null;break;case"pointerover":case"pointerout":wr.delete(t.pointerId);break;case"gotpointercapture":case"lostpointercapture":Sr.delete(t.pointerId)}}function _r(e,t,n,i,l,o){return e===null||e.nativeEvent!==o?(e={blockedOn:t,domEventName:n,eventSystemFlags:i,nativeEvent:o,targetContainers:[l]},t!==null&&(t=qi(t),t!==null&&Nh(t)),e):(e.eventSystemFlags|=i,t=e.targetContainers,l!==null&&t.indexOf(l)===-1&&t.push(l),e)}function ry(e,t,n,i,l){switch(t){case"focusin":return Yn=_r(Yn,e,t,n,i,l),!0;case"dragenter":return Xn=_r(Xn,e,t,n,i,l),!0;case"mouseover":return $n=_r($n,e,t,n,i,l),!0;case"pointerover":var o=l.pointerId;return wr.set(o,_r(wr.get(o)||null,e,t,n,i,l)),!0;case"gotpointercapture":return o=l.pointerId,Sr.set(o,_r(Sr.get(o)||null,e,t,n,i,l)),!0}return!1}function Ah(e){var t=Cn(e.target);if(t!==null){var n=f(t);if(n!==null){if(t=n.tag,t===13){if(t=v(n),t!==null){e.blockedOn=t,fi(e.priority,function(){Ch(n)});return}}else if(t===31){if(t=x(n),t!==null){e.blockedOn=t,fi(e.priority,function(){Ch(n)});return}}else if(t===3&&n.stateNode.current.memoizedState.isDehydrated){e.blockedOn=n.tag===3?n.stateNode.containerInfo:null;return}}}e.blockedOn=null}function Yl(e){if(e.blockedOn!==null)return!1;for(var t=e.targetContainers;0<t.length;){var n=Vd(e.nativeEvent);if(n===null){n=e.nativeEvent;var i=new n.constructor(n.type,n);Fo=i,n.target.dispatchEvent(i),Fo=null}else return t=qi(n),t!==null&&Nh(t),e.blockedOn=n,!1;t.shift()}return!0}function zh(e,t,n){Yl(e)&&n.delete(t)}function ly(){Gd=!1,Yn!==null&&Yl(Yn)&&(Yn=null),Xn!==null&&Yl(Xn)&&(Xn=null),$n!==null&&Yl($n)&&($n=null),wr.forEach(zh),Sr.forEach(zh)}function Xl(e,t){e.blockedOn===t&&(e.blockedOn=null,Gd||(Gd=!0,s.unstable_scheduleCallback(s.unstable_NormalPriority,ly)))}var $l=null;function Dh(e){$l!==e&&($l=e,s.unstable_scheduleCallback(s.unstable_NormalPriority,function(){$l===e&&($l=null);for(var t=0;t<e.length;t+=3){var n=e[t],i=e[t+1],l=e[t+2];if(typeof i!="function"){if(Fd(i||n)===null)continue;break}var o=qi(n);o!==null&&(e.splice(t,3),t-=3,Vc(o,{pending:!0,data:l,method:n.method,action:i},i,l))}}))}function ws(e){function t(M){return Xl(M,e)}Yn!==null&&Xl(Yn,e),Xn!==null&&Xl(Xn,e),$n!==null&&Xl($n,e),wr.forEach(t),Sr.forEach(t);for(var n=0;n<Kn.length;n++){var i=Kn[n];i.blockedOn===e&&(i.blockedOn=null)}for(;0<Kn.length&&(n=Kn[0],n.blockedOn===null);)Ah(n),n.blockedOn===null&&Kn.shift();if(n=(e.ownerDocument||e).$$reactFormReplay,n!=null)for(i=0;i<n.length;i+=3){var l=n[i],o=n[i+1],h=l[de]||null;if(typeof o=="function")h||Dh(n);else if(h){var w=null;if(o&&o.hasAttribute("formAction")){if(l=o,h=o[de]||null)w=h.formAction;else if(Fd(l)!==null)continue}else w=h.action;typeof w=="function"?n[i+1]=w:(n.splice(i,3),i-=3),Dh(n)}}}function Mh(){function e(o){o.canIntercept&&o.info==="react-transition"&&o.intercept({handler:function(){return new Promise(function(h){return l=h})},focusReset:"manual",scroll:"manual"})}function t(){l!==null&&(l(),l=null),i||setTimeout(n,20)}function n(){if(!i&&!navigation.transition){var o=navigation.currentEntry;o&&o.url!=null&&navigation.navigate(o.url,{state:o.getState(),info:"react-transition",history:"replace"})}}if(typeof navigation=="object"){var i=!1,l=null;return navigation.addEventListener("navigate",e),navigation.addEventListener("navigatesuccess",t),navigation.addEventListener("navigateerror",t),setTimeout(n,100),function(){i=!0,navigation.removeEventListener("navigate",e),navigation.removeEventListener("navigatesuccess",t),navigation.removeEventListener("navigateerror",t),l!==null&&(l(),l=null)}}}function Yd(e){this._internalRoot=e}Kl.prototype.render=Yd.prototype.render=function(e){var t=this._internalRoot;if(t===null)throw Error(d(409));var n=t.current,i=ia();_h(n,i,e,t,null,null)},Kl.prototype.unmount=Yd.prototype.unmount=function(){var e=this._internalRoot;if(e!==null){this._internalRoot=null;var t=e.containerInfo;_h(e.current,2,null,e,null,null),El(),t[_t]=null}};function Kl(e){this._internalRoot=e}Kl.prototype.unstable_scheduleHydration=function(e){if(e){var t=$e();e={blockedOn:null,target:e,priority:t};for(var n=0;n<Kn.length&&t!==0&&t<Kn[n].priority;n++);Kn.splice(n,0,e),n===0&&Ah(e)}};var Rh=c.version;if(Rh!=="19.2.6")throw Error(d(527,Rh,"19.2.6"));$.findDOMNode=function(e){var t=e._reactInternals;if(t===void 0)throw typeof e.render=="function"?Error(d(188)):(e=Object.keys(e).join(","),Error(d(268,e)));return e=g(t),e=e!==null?y(e):null,e=e===null?null:e.stateNode,e};var oy={bundleType:0,version:"19.2.6",rendererPackageName:"react-dom",currentDispatcherRef:P,reconcilerVersion:"19.2.6"};if(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__!="undefined"){var Ql=__REACT_DEVTOOLS_GLOBAL_HOOK__;if(!Ql.isDisabled&&Ql.supportsFiber)try{Ea=Ql.inject(oy),St=Ql}catch(e){}}return Nr.createRoot=function(e,t){if(!p(e))throw Error(d(299));var n=!1,i="",l=qf,o=If,h=Vf;return t!=null&&(t.unstable_strictMode===!0&&(n=!0),t.identifierPrefix!==void 0&&(i=t.identifierPrefix),t.onUncaughtError!==void 0&&(l=t.onUncaughtError),t.onCaughtError!==void 0&&(o=t.onCaughtError),t.onRecoverableError!==void 0&&(h=t.onRecoverableError)),t=wh(e,1,!1,null,null,n,i,null,l,o,h,Mh),e[_t]=t.current,Cd(e),new Yd(t)},Nr.hydrateRoot=function(e,t,n){if(!p(e))throw Error(d(299));var i=!1,l="",o=qf,h=If,w=Vf,M=null;return n!=null&&(n.unstable_strictMode===!0&&(i=!0),n.identifierPrefix!==void 0&&(l=n.identifierPrefix),n.onUncaughtError!==void 0&&(o=n.onUncaughtError),n.onCaughtError!==void 0&&(h=n.onCaughtError),n.onRecoverableError!==void 0&&(w=n.onRecoverableError),n.formState!==void 0&&(M=n.formState)),t=wh(e,1,!0,t,n!=null?n:null,i,l,M,o,h,w,Mh),t.context=Sh(null),n=t.current,i=ia(),i=Pi(i),l=Rn(i),l.callback=null,On(n,l,i),n=i,t.current.lanes=n,Nn(t,n),Fa(t),e[_t]=t.current,Cd(e),new Kl(t)},Nr.version="19.2.6",Nr}var $h;function jy(){if($h)return Qd.exports;$h=1;function s(){if(!(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__=="undefined"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(s)}catch(c){console.error(c)}}return s(),Qd.exports=yy(),Qd.exports}var wy=jy();const Sy=Ao(wy),ao={sm:640,md:768,lg:1e3},Nu=ao.lg,Sv=.7,_v=.75;function eu(){if(typeof window=="undefined")return"desktop";const s=window.screen.width,c=window.screen.height;return s>Nu?"desktop":s/c<Sv?"phone":"tablet"}const kv=m.createContext({viewport:"desktop",isPhone:!1,isTablet:!1,isTabletPortrait:!1,isDesktop:!0,screenWidth:0,screenHeight:0,aspectRatio:0});function Kh(){return typeof window=="undefined"?!1:window.innerHeight>window.innerWidth}function _y({children:s}){const[c,r]=m.useState(eu),[d,p]=m.useState(Kh);m.useEffect(()=>{const y=()=>{const j=eu();r(A=>A===j?A:j);const k=Kh();p(A=>A===k?A:k)};if(window.addEventListener("resize",y,{passive:!0}),typeof window!="undefined"&&window.matchMedia){const j=window.matchMedia("(orientation: portrait)"),k=()=>{const A=j.matches;p(D=>D===A?D:A);const L=eu();r(D=>D===L?D:L)};return j.addEventListener("change",k),()=>{window.removeEventListener("resize",y),j.removeEventListener("change",k)}}return()=>window.removeEventListener("resize",y)},[]);const f=c==="tablet",v=window.screen.width,x=window.screen.height,b=v/x,g={viewport:c,isPhone:c==="phone",isTablet:f,isTabletPortrait:f&&d,isDesktop:c==="desktop",screenWidth:v,screenHeight:x,aspectRatio:b};return a.jsx(kv.Provider,{value:g,children:s})}function zo(){return m.useContext(kv)}function ky({desktop:s,mobile:c,tablet:r}){const{viewport:d}=zo();return d==="phone"?a.jsx(a.Fragment,{children:c}):d==="tablet"?a.jsx(a.Fragment,{children:r!=null?r:s}):a.jsx(a.Fragment,{children:s})}/**
50
+ * @license lucide-react v0.511.0 - ISC
51
+ *
52
+ * This source code is licensed under the ISC license.
53
+ * See the LICENSE file in the root directory of this source tree.
54
+ */const Ny=s=>s.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase(),Cy=s=>s.replace(/^([A-Z])|[\s-_]+(\w)/g,(c,r,d)=>d?d.toUpperCase():r.toLowerCase()),Qh=s=>{const c=Cy(s);return c.charAt(0).toUpperCase()+c.slice(1)},Nv=(...s)=>s.filter((c,r,d)=>!!c&&c.trim()!==""&&d.indexOf(c)===r).join(" ").trim(),Ty=s=>{for(const c in s)if(c.startsWith("aria-")||c==="role"||c==="title")return!0};/**
55
+ * @license lucide-react v0.511.0 - ISC
56
+ *
57
+ * This source code is licensed under the ISC license.
58
+ * See the LICENSE file in the root directory of this source tree.
59
+ */var Ey={xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"};/**
60
+ * @license lucide-react v0.511.0 - ISC
61
+ *
62
+ * This source code is licensed under the ISC license.
63
+ * See the LICENSE file in the root directory of this source tree.
64
+ */const Ay=m.forwardRef((g,b)=>{var y=g,{color:s="currentColor",size:c=24,strokeWidth:r=2,absoluteStrokeWidth:d,className:p="",children:f,iconNode:v}=y,x=be(y,["color","size","strokeWidth","absoluteStrokeWidth","className","children","iconNode"]);return m.createElement("svg",le(le(we(le({ref:b},Ey),{width:c,height:c,stroke:s,strokeWidth:d?Number(r)*24/Number(c):r,className:Nv("lucide",p)}),!f&&!Ty(x)&&{"aria-hidden":"true"}),x),[...v.map(([j,k])=>m.createElement(j,k)),...Array.isArray(f)?f:[f]])});/**
65
+ * @license lucide-react v0.511.0 - ISC
66
+ *
67
+ * This source code is licensed under the ISC license.
68
+ * See the LICENSE file in the root directory of this source tree.
69
+ */const je=(s,c)=>{const r=m.forwardRef((v,f)=>{var x=v,{className:d}=x,p=be(x,["className"]);return m.createElement(Ay,le({ref:f,iconNode:c,className:Nv(`lucide-${Ny(Qh(s))}`,`lucide-${s}`,d)},p))});return r.displayName=Qh(s),r};/**
70
+ * @license lucide-react v0.511.0 - ISC
71
+ *
72
+ * This source code is licensed under the ISC license.
73
+ * See the LICENSE file in the root directory of this source tree.
74
+ */const zy=[["path",{d:"M12 5v14",key:"s699le"}],["path",{d:"m19 12-7 7-7-7",key:"1idqje"}]],Dy=je("arrow-down",zy);/**
75
+ * @license lucide-react v0.511.0 - ISC
76
+ *
77
+ * This source code is licensed under the ISC license.
78
+ * See the LICENSE file in the root directory of this source tree.
79
+ */const My=[["path",{d:"M5 12h14",key:"1ays0h"}],["path",{d:"m12 5 7 7-7 7",key:"xquz4c"}]],Cv=je("arrow-right",My);/**
80
+ * @license lucide-react v0.511.0 - ISC
81
+ *
82
+ * This source code is licensed under the ISC license.
83
+ * See the LICENSE file in the root directory of this source tree.
84
+ */const Ry=[["path",{d:"m21 16-4 4-4-4",key:"f6ql7i"}],["path",{d:"M17 20V4",key:"1ejh1v"}],["path",{d:"m3 8 4-4 4 4",key:"11wl7u"}],["path",{d:"M7 4v16",key:"1glfcx"}]],Oy=je("arrow-up-down",Ry);/**
85
+ * @license lucide-react v0.511.0 - ISC
86
+ *
87
+ * This source code is licensed under the ISC license.
88
+ * See the LICENSE file in the root directory of this source tree.
89
+ */const Ly=[["path",{d:"m5 12 7-7 7 7",key:"hav0vg"}],["path",{d:"M12 19V5",key:"x0mq9r"}]],By=je("arrow-up",Ly);/**
90
+ * @license lucide-react v0.511.0 - ISC
91
+ *
92
+ * This source code is licensed under the ISC license.
93
+ * See the LICENSE file in the root directory of this source tree.
94
+ */const Hy=[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"m4.9 4.9 14.2 14.2",key:"1m5liu"}]],Uy=je("ban",Hy);/**
95
+ * @license lucide-react v0.511.0 - ISC
96
+ *
97
+ * This source code is licensed under the ISC license.
98
+ * See the LICENSE file in the root directory of this source tree.
99
+ */const Py=[["path",{d:"M10.268 21a2 2 0 0 0 3.464 0",key:"vwvbt9"}],["path",{d:"M3.262 15.326A1 1 0 0 0 4 17h16a1 1 0 0 0 .74-1.673C19.41 13.956 18 12.499 18 8A6 6 0 0 0 6 8c0 4.499-1.411 5.956-2.738 7.326",key:"11g9vi"}]],Er=je("bell",Py);/**
100
+ * @license lucide-react v0.511.0 - ISC
101
+ *
102
+ * This source code is licensed under the ISC license.
103
+ * See the LICENSE file in the root directory of this source tree.
104
+ */const qy=[["path",{d:"M2.97 12.92A2 2 0 0 0 2 14.63v3.24a2 2 0 0 0 .97 1.71l3 1.8a2 2 0 0 0 2.06 0L12 19v-5.5l-5-3-4.03 2.42Z",key:"lc1i9w"}],["path",{d:"m7 16.5-4.74-2.85",key:"1o9zyk"}],["path",{d:"m7 16.5 5-3",key:"va8pkn"}],["path",{d:"M7 16.5v5.17",key:"jnp8gn"}],["path",{d:"M12 13.5V19l3.97 2.38a2 2 0 0 0 2.06 0l3-1.8a2 2 0 0 0 .97-1.71v-3.24a2 2 0 0 0-.97-1.71L17 10.5l-5 3Z",key:"8zsnat"}],["path",{d:"m17 16.5-5-3",key:"8arw3v"}],["path",{d:"m17 16.5 4.74-2.85",key:"8rfmw"}],["path",{d:"M17 16.5v5.17",key:"k6z78m"}],["path",{d:"M7.97 4.42A2 2 0 0 0 7 6.13v4.37l5 3 5-3V6.13a2 2 0 0 0-.97-1.71l-3-1.8a2 2 0 0 0-2.06 0l-3 1.8Z",key:"1xygjf"}],["path",{d:"M12 8 7.26 5.15",key:"1vbdud"}],["path",{d:"m12 8 4.74-2.85",key:"3rx089"}],["path",{d:"M12 13.5V8",key:"1io7kd"}]],Cr=je("boxes",qy);/**
105
+ * @license lucide-react v0.511.0 - ISC
106
+ *
107
+ * This source code is licensed under the ISC license.
108
+ * See the LICENSE file in the root directory of this source tree.
109
+ */const Iy=[["path",{d:"M8 2v4",key:"1cmpym"}],["path",{d:"M16 2v4",key:"4m81vk"}],["rect",{width:"18",height:"18",x:"3",y:"4",rx:"2",key:"1hopcy"}],["path",{d:"M3 10h18",key:"8toen8"}],["path",{d:"M8 14h.01",key:"6423bh"}],["path",{d:"M12 14h.01",key:"1etili"}],["path",{d:"M16 14h.01",key:"1gbofw"}],["path",{d:"M8 18h.01",key:"lrp35t"}],["path",{d:"M12 18h.01",key:"mhygvu"}],["path",{d:"M16 18h.01",key:"kzsmim"}]],uu=je("calendar-days",Iy);/**
110
+ * @license lucide-react v0.511.0 - ISC
111
+ *
112
+ * This source code is licensed under the ISC license.
113
+ * See the LICENSE file in the root directory of this source tree.
114
+ */const Vy=[["path",{d:"M20 6 9 17l-5-5",key:"1gmf2c"}]],Ka=je("check",Vy);/**
115
+ * @license lucide-react v0.511.0 - ISC
116
+ *
117
+ * This source code is licensed under the ISC license.
118
+ * See the LICENSE file in the root directory of this source tree.
119
+ */const Fy=[["path",{d:"m6 9 6 6 6-6",key:"qrunsl"}]],Cu=je("chevron-down",Fy);/**
120
+ * @license lucide-react v0.511.0 - ISC
121
+ *
122
+ * This source code is licensed under the ISC license.
123
+ * See the LICENSE file in the root directory of this source tree.
124
+ */const Gy=[["path",{d:"m15 18-6-6 6-6",key:"1wnfg3"}]],Tu=je("chevron-left",Gy);/**
125
+ * @license lucide-react v0.511.0 - ISC
126
+ *
127
+ * This source code is licensed under the ISC license.
128
+ * See the LICENSE file in the root directory of this source tree.
129
+ */const Yy=[["path",{d:"m9 18 6-6-6-6",key:"mthhwq"}]],xt=je("chevron-right",Yy);/**
130
+ * @license lucide-react v0.511.0 - ISC
131
+ *
132
+ * This source code is licensed under the ISC license.
133
+ * See the LICENSE file in the root directory of this source tree.
134
+ */const Xy=[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["line",{x1:"12",x2:"12",y1:"8",y2:"12",key:"1pkeuh"}],["line",{x1:"12",x2:"12.01",y1:"16",y2:"16",key:"4dfq90"}]],Tv=je("circle-alert",Xy);/**
135
+ * @license lucide-react v0.511.0 - ISC
136
+ *
137
+ * This source code is licensed under the ISC license.
138
+ * See the LICENSE file in the root directory of this source tree.
139
+ */const $y=[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"m9 12 2 2 4-4",key:"dzmm74"}]],Do=je("circle-check",$y);/**
140
+ * @license lucide-react v0.511.0 - ISC
141
+ *
142
+ * This source code is licensed under the ISC license.
143
+ * See the LICENSE file in the root directory of this source tree.
144
+ */const Ky=[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"m15 9-6 6",key:"1uzhvr"}],["path",{d:"m9 9 6 6",key:"z0biqf"}]],Qy=je("circle-x",Ky);/**
145
+ * @license lucide-react v0.511.0 - ISC
146
+ *
147
+ * This source code is licensed under the ISC license.
148
+ * See the LICENSE file in the root directory of this source tree.
149
+ */const Wy=[["path",{d:"m16.24 7.76-1.804 5.411a2 2 0 0 1-1.265 1.265L7.76 16.24l1.804-5.411a2 2 0 0 1 1.265-1.265z",key:"9ktpf1"}],["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}]],ro=je("compass",Wy);/**
150
+ * @license lucide-react v0.511.0 - ISC
151
+ *
152
+ * This source code is licensed under the ISC license.
153
+ * See the LICENSE file in the root directory of this source tree.
154
+ */const Zy=[["rect",{width:"14",height:"14",x:"8",y:"8",rx:"2",ry:"2",key:"17jyea"}],["path",{d:"M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2",key:"zix9uf"}]],Jy=je("copy",Zy);/**
155
+ * @license lucide-react v0.511.0 - ISC
156
+ *
157
+ * This source code is licensed under the ISC license.
158
+ * See the LICENSE file in the root directory of this source tree.
159
+ */const e0=[["path",{d:"M12 15V3",key:"m9g1x1"}],["path",{d:"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4",key:"ih7n3h"}],["path",{d:"m7 10 5 5 5-5",key:"brsn70"}]],t0=je("download",e0);/**
160
+ * @license lucide-react v0.511.0 - ISC
161
+ *
162
+ * This source code is licensed under the ISC license.
163
+ * See the LICENSE file in the root directory of this source tree.
164
+ */const a0=[["circle",{cx:"12",cy:"12",r:"1",key:"41hilf"}],["circle",{cx:"19",cy:"12",r:"1",key:"1wjl8i"}],["circle",{cx:"5",cy:"12",r:"1",key:"1pcz8c"}]],n0=je("ellipsis",a0);/**
165
+ * @license lucide-react v0.511.0 - ISC
166
+ *
167
+ * This source code is licensed under the ISC license.
168
+ * See the LICENSE file in the root directory of this source tree.
169
+ */const i0=[["path",{d:"M4 22h14a2 2 0 0 0 2-2V7l-5-5H6a2 2 0 0 0-2 2v4",key:"1pf5j1"}],["path",{d:"M14 2v4a2 2 0 0 0 2 2h4",key:"tnqrlb"}],["path",{d:"m5 12-3 3 3 3",key:"oke12k"}],["path",{d:"m9 18 3-3-3-3",key:"112psh"}]],Tr=je("file-code-2",i0);/**
170
+ * @license lucide-react v0.511.0 - ISC
171
+ *
172
+ * This source code is licensed under the ISC license.
173
+ * See the LICENSE file in the root directory of this source tree.
174
+ */const s0=[["path",{d:"M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7Z",key:"1rqfz7"}],["path",{d:"M14 2v4a2 2 0 0 0 2 2h4",key:"tnqrlb"}],["path",{d:"M10 9H8",key:"b1mrlr"}],["path",{d:"M16 13H8",key:"t4e002"}],["path",{d:"M16 17H8",key:"z1uh3a"}]],wa=je("file-text",s0);/**
175
+ * @license lucide-react v0.511.0 - ISC
176
+ *
177
+ * This source code is licensed under the ISC license.
178
+ * See the LICENSE file in the root directory of this source tree.
179
+ */const r0=[["path",{d:"M4 22h14a2 2 0 0 0 2-2V7l-5-5H6a2 2 0 0 0-2 2v4",key:"1pf5j1"}],["path",{d:"M14 2v4a2 2 0 0 0 2 2h4",key:"tnqrlb"}],["path",{d:"m8 12.5-5 5",key:"b853mi"}],["path",{d:"m3 12.5 5 5",key:"1qls4r"}]],l0=je("file-x-2",r0);/**
180
+ * @license lucide-react v0.511.0 - ISC
181
+ *
182
+ * This source code is licensed under the ISC license.
183
+ * See the LICENSE file in the root directory of this source tree.
184
+ */const o0=[["path",{d:"M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7Z",key:"1rqfz7"}],["path",{d:"M14 2v4a2 2 0 0 0 2 2h4",key:"tnqrlb"}]],c0=je("file",o0);/**
185
+ * @license lucide-react v0.511.0 - ISC
186
+ *
187
+ * This source code is licensed under the ISC license.
188
+ * See the LICENSE file in the root directory of this source tree.
189
+ */const d0=[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M12 2a14.5 14.5 0 0 0 0 20 14.5 14.5 0 0 0 0-20",key:"13o1zl"}],["path",{d:"M2 12h20",key:"9i4pu4"}]],Eu=je("globe",d0);/**
190
+ * @license lucide-react v0.511.0 - ISC
191
+ *
192
+ * This source code is licensed under the ISC license.
193
+ * See the LICENSE file in the root directory of this source tree.
194
+ */const u0=[["circle",{cx:"12",cy:"9",r:"1",key:"124mty"}],["circle",{cx:"19",cy:"9",r:"1",key:"1ruzo2"}],["circle",{cx:"5",cy:"9",r:"1",key:"1a8b28"}],["circle",{cx:"12",cy:"15",r:"1",key:"1e56xg"}],["circle",{cx:"19",cy:"15",r:"1",key:"1a92ep"}],["circle",{cx:"5",cy:"15",r:"1",key:"5r1jwy"}]],Ev=je("grip-horizontal",u0);/**
195
+ * @license lucide-react v0.511.0 - ISC
196
+ *
197
+ * This source code is licensed under the ISC license.
198
+ * See the LICENSE file in the root directory of this source tree.
199
+ */const p0=[["line",{x1:"4",x2:"20",y1:"9",y2:"9",key:"4lhtct"}],["line",{x1:"4",x2:"20",y1:"15",y2:"15",key:"vyu0kd"}],["line",{x1:"10",x2:"8",y1:"3",y2:"21",key:"1ggp8o"}],["line",{x1:"16",x2:"14",y1:"3",y2:"21",key:"weycgp"}]],f0=je("hash",p0);/**
200
+ * @license lucide-react v0.511.0 - ISC
201
+ *
202
+ * This source code is licensed under the ISC license.
203
+ * See the LICENSE file in the root directory of this source tree.
204
+ */const m0=[["path",{d:"M15 21v-8a1 1 0 0 0-1-1h-4a1 1 0 0 0-1 1v8",key:"5wwlr5"}],["path",{d:"M3 10a2 2 0 0 1 .709-1.528l7-5.999a2 2 0 0 1 2.582 0l7 5.999A2 2 0 0 1 21 10v9a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z",key:"1d0kgt"}]],Mi=je("house",m0);/**
205
+ * @license lucide-react v0.511.0 - ISC
206
+ *
207
+ * This source code is licensed under the ISC license.
208
+ * See the LICENSE file in the root directory of this source tree.
209
+ */const h0=[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",ry:"2",key:"1m3agn"}],["circle",{cx:"9",cy:"9",r:"2",key:"af1f0g"}],["path",{d:"m21 15-3.086-3.086a2 2 0 0 0-2.828 0L6 21",key:"1xmnt7"}]],v0=je("image",h0);/**
210
+ * @license lucide-react v0.511.0 - ISC
211
+ *
212
+ * This source code is licensed under the ISC license.
213
+ * See the LICENSE file in the root directory of this source tree.
214
+ */const g0=[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M12 16v-4",key:"1dtifu"}],["path",{d:"M12 8h.01",key:"e9boi3"}]],Au=je("info",g0);/**
215
+ * @license lucide-react v0.511.0 - ISC
216
+ *
217
+ * This source code is licensed under the ISC license.
218
+ * See the LICENSE file in the root directory of this source tree.
219
+ */const x0=[["rect",{width:"7",height:"9",x:"3",y:"3",rx:"1",key:"10lvy0"}],["rect",{width:"7",height:"5",x:"14",y:"3",rx:"1",key:"16une8"}],["rect",{width:"7",height:"9",x:"14",y:"12",rx:"1",key:"1hutg5"}],["rect",{width:"7",height:"5",x:"3",y:"16",rx:"1",key:"ldoo1y"}]],Sa=je("layout-dashboard",x0);/**
220
+ * @license lucide-react v0.511.0 - ISC
221
+ *
222
+ * This source code is licensed under the ISC license.
223
+ * See the LICENSE file in the root directory of this source tree.
224
+ */const b0=[["path",{d:"M3 12h.01",key:"nlz23k"}],["path",{d:"M3 18h.01",key:"1tta3j"}],["path",{d:"M3 6h.01",key:"1rqtza"}],["path",{d:"M8 12h13",key:"1za7za"}],["path",{d:"M8 18h13",key:"1lx6n3"}],["path",{d:"M8 6h13",key:"ik3vkj"}]],yt=je("list",b0);/**
225
+ * @license lucide-react v0.511.0 - ISC
226
+ *
227
+ * This source code is licensed under the ISC license.
228
+ * See the LICENSE file in the root directory of this source tree.
229
+ */const y0=[["path",{d:"m10 17 5-5-5-5",key:"1bsop3"}],["path",{d:"M15 12H3",key:"6jk70r"}],["path",{d:"M15 3h4a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2h-4",key:"u53s6r"}]],lo=je("log-in",y0);/**
230
+ * @license lucide-react v0.511.0 - ISC
231
+ *
232
+ * This source code is licensed under the ISC license.
233
+ * See the LICENSE file in the root directory of this source tree.
234
+ */const j0=[["path",{d:"M4 12h16",key:"1lakjw"}],["path",{d:"M4 18h16",key:"19g7jn"}],["path",{d:"M4 6h16",key:"1o0s65"}]],oo=je("menu",j0);/**
235
+ * @license lucide-react v0.511.0 - ISC
236
+ *
237
+ * This source code is licensed under the ISC license.
238
+ * See the LICENSE file in the root directory of this source tree.
239
+ */const w0=[["path",{d:"M5 12h14",key:"1ays0h"}]],Av=je("minus",w0);/**
240
+ * @license lucide-react v0.511.0 - ISC
241
+ *
242
+ * This source code is licensed under the ISC license.
243
+ * See the LICENSE file in the root directory of this source tree.
244
+ */const S0=[["rect",{width:"20",height:"14",x:"2",y:"3",rx:"2",key:"48i651"}],["line",{x1:"8",x2:"16",y1:"21",y2:"21",key:"1svkeh"}],["line",{x1:"12",x2:"12",y1:"17",y2:"21",key:"vw1qmm"}]],zu=je("monitor",S0);/**
245
+ * @license lucide-react v0.511.0 - ISC
246
+ *
247
+ * This source code is licensed under the ISC license.
248
+ * See the LICENSE file in the root directory of this source tree.
249
+ */const _0=[["path",{d:"M12 3a6 6 0 0 0 9 9 9 9 0 1 1-9-9",key:"4ay0iu"}],["path",{d:"M20 3v4",key:"1olli1"}],["path",{d:"M22 5h-4",key:"1gvqau"}]],k0=je("moon-star",_0);/**
250
+ * @license lucide-react v0.511.0 - ISC
251
+ *
252
+ * This source code is licensed under the ISC license.
253
+ * See the LICENSE file in the root directory of this source tree.
254
+ */const N0=[["path",{d:"M12 3a6 6 0 0 0 9 9 9 9 0 1 1-9-9Z",key:"a7tn18"}]],zv=je("moon",N0);/**
255
+ * @license lucide-react v0.511.0 - ISC
256
+ *
257
+ * This source code is licensed under the ISC license.
258
+ * See the LICENSE file in the root directory of this source tree.
259
+ */const C0=[["polygon",{points:"3 11 22 2 13 21 11 13 3 11",key:"1ltx0t"}]],Dv=je("navigation",C0);/**
260
+ * @license lucide-react v0.511.0 - ISC
261
+ *
262
+ * This source code is licensed under the ISC license.
263
+ * See the LICENSE file in the root directory of this source tree.
264
+ */const T0=[["path",{d:"M12 3v6",key:"1holv5"}],["path",{d:"M16.76 3a2 2 0 0 1 1.8 1.1l2.23 4.479a2 2 0 0 1 .21.891V19a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V9.472a2 2 0 0 1 .211-.894L5.45 4.1A2 2 0 0 1 7.24 3z",key:"187q7i"}],["path",{d:"M3.054 9.013h17.893",key:"grwhos"}]],Wh=je("package-2",T0);/**
265
+ * @license lucide-react v0.511.0 - ISC
266
+ *
267
+ * This source code is licensed under the ISC license.
268
+ * See the LICENSE file in the root directory of this source tree.
269
+ */const E0=[["path",{d:"M11 21.73a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73z",key:"1a0edw"}],["path",{d:"M12 22V12",key:"d0xqtd"}],["polyline",{points:"3.29 7 12 12 20.71 7",key:"ousv84"}],["path",{d:"m7.5 4.27 9 5.15",key:"1c824w"}]],A0=je("package",E0);/**
270
+ * @license lucide-react v0.511.0 - ISC
271
+ *
272
+ * This source code is licensed under the ISC license.
273
+ * See the LICENSE file in the root directory of this source tree.
274
+ */const z0=[["path",{d:"M12 22a1 1 0 0 1 0-20 10 9 0 0 1 10 9 5 5 0 0 1-5 5h-2.25a1.75 1.75 0 0 0-1.4 2.8l.3.4a1.75 1.75 0 0 1-1.4 2.8z",key:"e79jfc"}],["circle",{cx:"13.5",cy:"6.5",r:".5",fill:"currentColor",key:"1okk4w"}],["circle",{cx:"17.5",cy:"10.5",r:".5",fill:"currentColor",key:"f64h9f"}],["circle",{cx:"6.5",cy:"12.5",r:".5",fill:"currentColor",key:"qy21gx"}],["circle",{cx:"8.5",cy:"7.5",r:".5",fill:"currentColor",key:"fotxhn"}]],li=je("palette",z0);/**
275
+ * @license lucide-react v0.511.0 - ISC
276
+ *
277
+ * This source code is licensed under the ISC license.
278
+ * See the LICENSE file in the root directory of this source tree.
279
+ */const D0=[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}],["path",{d:"M9 3v18",key:"fh3hqa"}],["path",{d:"m16 15-3-3 3-3",key:"14y99z"}]],Mv=je("panel-left-close",D0);/**
280
+ * @license lucide-react v0.511.0 - ISC
281
+ *
282
+ * This source code is licensed under the ISC license.
283
+ * See the LICENSE file in the root directory of this source tree.
284
+ */const M0=[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}],["path",{d:"M9 3v18",key:"fh3hqa"}],["path",{d:"m14 9 3 3-3 3",key:"8010ee"}]],Rv=je("panel-left-open",M0);/**
285
+ * @license lucide-react v0.511.0 - ISC
286
+ *
287
+ * This source code is licensed under the ISC license.
288
+ * See the LICENSE file in the root directory of this source tree.
289
+ */const R0=[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}],["path",{d:"M15 3v18",key:"14nvp0"}],["path",{d:"m8 9 3 3-3 3",key:"12hl5m"}]],Ov=je("panel-right-close",R0);/**
290
+ * @license lucide-react v0.511.0 - ISC
291
+ *
292
+ * This source code is licensed under the ISC license.
293
+ * See the LICENSE file in the root directory of this source tree.
294
+ */const O0=[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}],["path",{d:"M3 9h18",key:"1pudct"}],["path",{d:"M9 21V9",key:"1oto5p"}]],Lv=je("panels-top-left",O0);/**
295
+ * @license lucide-react v0.511.0 - ISC
296
+ *
297
+ * This source code is licensed under the ISC license.
298
+ * See the LICENSE file in the root directory of this source tree.
299
+ */const L0=[["path",{d:"m13.5 8.5-5 5",key:"1cs55j"}],["path",{d:"m8.5 8.5 5 5",key:"a8mexj"}],["circle",{cx:"11",cy:"11",r:"8",key:"4ej97u"}],["path",{d:"m21 21-4.3-4.3",key:"1qie3q"}]],B0=je("search-x",L0);/**
300
+ * @license lucide-react v0.511.0 - ISC
301
+ *
302
+ * This source code is licensed under the ISC license.
303
+ * See the LICENSE file in the root directory of this source tree.
304
+ */const H0=[["path",{d:"m21 21-4.34-4.34",key:"14j7rj"}],["circle",{cx:"11",cy:"11",r:"8",key:"4ej97u"}]],jn=je("search",H0);/**
305
+ * @license lucide-react v0.511.0 - ISC
306
+ *
307
+ * This source code is licensed under the ISC license.
308
+ * See the LICENSE file in the root directory of this source tree.
309
+ */const U0=[["path",{d:"M6 10H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2v4a2 2 0 0 1-2 2h-2",key:"4b9dqc"}],["path",{d:"M6 14H4a2 2 0 0 0-2 2v4a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2v-4a2 2 0 0 0-2-2h-2",key:"22nnkd"}],["path",{d:"M6 6h.01",key:"1utrut"}],["path",{d:"M6 18h.01",key:"uhywen"}],["path",{d:"m13 6-4 6h6l-4 6",key:"14hqih"}]],P0=je("server-crash",U0);/**
310
+ * @license lucide-react v0.511.0 - ISC
311
+ *
312
+ * This source code is licensed under the ISC license.
313
+ * See the LICENSE file in the root directory of this source tree.
314
+ */const q0=[["circle",{cx:"18",cy:"5",r:"3",key:"gq8acd"}],["circle",{cx:"6",cy:"12",r:"3",key:"w7nqdw"}],["circle",{cx:"18",cy:"19",r:"3",key:"1xt0gg"}],["line",{x1:"8.59",x2:"15.42",y1:"13.51",y2:"17.49",key:"47mynk"}],["line",{x1:"15.41",x2:"8.59",y1:"6.51",y2:"10.49",key:"1n3mei"}]],I0=je("share-2",q0);/**
315
+ * @license lucide-react v0.511.0 - ISC
316
+ *
317
+ * This source code is licensed under the ISC license.
318
+ * See the LICENSE file in the root directory of this source tree.
319
+ */const V0=[["path",{d:"M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z",key:"oel41y"}],["path",{d:"m9 12 2 2 4-4",key:"dzmm74"}]],Zn=je("shield-check",V0);/**
320
+ * @license lucide-react v0.511.0 - ISC
321
+ *
322
+ * This source code is licensed under the ISC license.
323
+ * See the LICENSE file in the root directory of this source tree.
324
+ */const F0=[["line",{x1:"21",x2:"14",y1:"4",y2:"4",key:"obuewd"}],["line",{x1:"10",x2:"3",y1:"4",y2:"4",key:"1q6298"}],["line",{x1:"21",x2:"12",y1:"12",y2:"12",key:"1iu8h1"}],["line",{x1:"8",x2:"3",y1:"12",y2:"12",key:"ntss68"}],["line",{x1:"21",x2:"16",y1:"20",y2:"20",key:"14d8ph"}],["line",{x1:"12",x2:"3",y1:"20",y2:"20",key:"m0wm8r"}],["line",{x1:"14",x2:"14",y1:"2",y2:"6",key:"14e1ph"}],["line",{x1:"8",x2:"8",y1:"10",y2:"14",key:"1i6ji0"}],["line",{x1:"16",x2:"16",y1:"18",y2:"22",key:"1lctlv"}]],ii=je("sliders-horizontal",F0);/**
325
+ * @license lucide-react v0.511.0 - ISC
326
+ *
327
+ * This source code is licensed under the ISC license.
328
+ * See the LICENSE file in the root directory of this source tree.
329
+ */const G0=[["rect",{width:"14",height:"20",x:"5",y:"2",rx:"2",ry:"2",key:"1yt0o3"}],["path",{d:"M12 18h.01",key:"mhygvu"}]],ks=je("smartphone",G0);/**
330
+ * @license lucide-react v0.511.0 - ISC
331
+ *
332
+ * This source code is licensed under the ISC license.
333
+ * See the LICENSE file in the root directory of this source tree.
334
+ */const Y0=[["path",{d:"M9.937 15.5A2 2 0 0 0 8.5 14.063l-6.135-1.582a.5.5 0 0 1 0-.962L8.5 9.936A2 2 0 0 0 9.937 8.5l1.582-6.135a.5.5 0 0 1 .963 0L14.063 8.5A2 2 0 0 0 15.5 9.937l6.135 1.581a.5.5 0 0 1 0 .964L15.5 14.063a2 2 0 0 0-1.437 1.437l-1.582 6.135a.5.5 0 0 1-.963 0z",key:"4pj2yx"}],["path",{d:"M20 3v4",key:"1olli1"}],["path",{d:"M22 5h-4",key:"1gvqau"}],["path",{d:"M4 17v2",key:"vumght"}],["path",{d:"M5 18H3",key:"zchphs"}]],co=je("sparkles",Y0);/**
335
+ * @license lucide-react v0.511.0 - ISC
336
+ *
337
+ * This source code is licensed under the ISC license.
338
+ * See the LICENSE file in the root directory of this source tree.
339
+ */const X0=[["path",{d:"M11.525 2.295a.53.53 0 0 1 .95 0l2.31 4.679a2.123 2.123 0 0 0 1.595 1.16l5.166.756a.53.53 0 0 1 .294.904l-3.736 3.638a2.123 2.123 0 0 0-.611 1.878l.882 5.14a.53.53 0 0 1-.771.56l-4.618-2.428a2.122 2.122 0 0 0-1.973 0L6.396 21.01a.53.53 0 0 1-.77-.56l.881-5.139a2.122 2.122 0 0 0-.611-1.879L2.16 9.795a.53.53 0 0 1 .294-.906l5.165-.755a2.122 2.122 0 0 0 1.597-1.16z",key:"r04s7s"}]],pu=je("star",X0);/**
340
+ * @license lucide-react v0.511.0 - ISC
341
+ *
342
+ * This source code is licensed under the ISC license.
343
+ * See the LICENSE file in the root directory of this source tree.
344
+ */const $0=[["circle",{cx:"12",cy:"12",r:"4",key:"4exip2"}],["path",{d:"M12 2v2",key:"tus03m"}],["path",{d:"M12 20v2",key:"1lh1kg"}],["path",{d:"m4.93 4.93 1.41 1.41",key:"149t6j"}],["path",{d:"m17.66 17.66 1.41 1.41",key:"ptbguv"}],["path",{d:"M2 12h2",key:"1t8f8n"}],["path",{d:"M20 12h2",key:"1q8mjw"}],["path",{d:"m6.34 17.66-1.41 1.41",key:"1m8zz5"}],["path",{d:"m19.07 4.93-1.41 1.41",key:"1shlcs"}]],Bv=je("sun",$0);/**
345
+ * @license lucide-react v0.511.0 - ISC
346
+ *
347
+ * This source code is licensed under the ISC license.
348
+ * See the LICENSE file in the root directory of this source tree.
349
+ */const K0=[["path",{d:"M12.586 2.586A2 2 0 0 0 11.172 2H4a2 2 0 0 0-2 2v7.172a2 2 0 0 0 .586 1.414l8.704 8.704a2.426 2.426 0 0 0 3.42 0l6.58-6.58a2.426 2.426 0 0 0 0-3.42z",key:"vktsd0"}],["circle",{cx:"7.5",cy:"7.5",r:".5",fill:"currentColor",key:"kqv944"}]],Hv=je("tag",K0);/**
350
+ * @license lucide-react v0.511.0 - ISC
351
+ *
352
+ * This source code is licensed under the ISC license.
353
+ * See the LICENSE file in the root directory of this source tree.
354
+ */const Q0=[["path",{d:"M3 6h18",key:"d0wm0j"}],["path",{d:"M19 6v14c0 1-1 2-2 2H7c-1 0-2-1-2-2V6",key:"4alrt4"}],["path",{d:"M8 6V4c0-1 1-2 2-2h4c1 0 2 1 2 2v2",key:"v07s0e"}],["line",{x1:"10",x2:"10",y1:"11",y2:"17",key:"1uufr5"}],["line",{x1:"14",x2:"14",y1:"11",y2:"17",key:"xtxkd"}]],W0=je("trash-2",Q0);/**
355
+ * @license lucide-react v0.511.0 - ISC
356
+ *
357
+ * This source code is licensed under the ISC license.
358
+ * See the LICENSE file in the root directory of this source tree.
359
+ */const Z0=[["path",{d:"m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3",key:"wmoenq"}],["path",{d:"M12 9v4",key:"juzpu7"}],["path",{d:"M12 17h.01",key:"p32p05"}]],Ba=je("triangle-alert",Z0);/**
360
+ * @license lucide-react v0.511.0 - ISC
361
+ *
362
+ * This source code is licensed under the ISC license.
363
+ * See the LICENSE file in the root directory of this source tree.
364
+ */const J0=[["path",{d:"M12 3v12",key:"1x0j5s"}],["path",{d:"m17 8-5-5-5 5",key:"7q97r8"}],["path",{d:"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4",key:"ih7n3h"}]],Du=je("upload",J0);/**
365
+ * @license lucide-react v0.511.0 - ISC
366
+ *
367
+ * This source code is licensed under the ISC license.
368
+ * See the LICENSE file in the root directory of this source tree.
369
+ */const e1=[["path",{d:"M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2",key:"1yyitq"}],["circle",{cx:"9",cy:"7",r:"4",key:"nufk8"}],["line",{x1:"19",x2:"19",y1:"8",y2:"14",key:"1bvyxn"}],["line",{x1:"22",x2:"16",y1:"11",y2:"11",key:"1shjgl"}]],uo=je("user-plus",e1);/**
370
+ * @license lucide-react v0.511.0 - ISC
371
+ *
372
+ * This source code is licensed under the ISC license.
373
+ * See the LICENSE file in the root directory of this source tree.
374
+ */const t1=[["path",{d:"M19 21v-2a4 4 0 0 0-4-4H9a4 4 0 0 0-4 4v2",key:"975kel"}],["circle",{cx:"12",cy:"7",r:"4",key:"17ys0d"}]],Ns=je("user",t1);/**
375
+ * @license lucide-react v0.511.0 - ISC
376
+ *
377
+ * This source code is licensed under the ISC license.
378
+ * See the LICENSE file in the root directory of this source tree.
379
+ */const a1=[["path",{d:"M18 6 6 18",key:"1bl5f8"}],["path",{d:"m6 6 12 12",key:"d8bk6v"}]],Ha=je("x",a1);/**
380
+ * @license lucide-react v0.511.0 - ISC
381
+ *
382
+ * This source code is licensed under the ISC license.
383
+ * See the LICENSE file in the root directory of this source tree.
384
+ */const n1=[["path",{d:"M4 14a1 1 0 0 1-.78-1.63l9.9-10.2a.5.5 0 0 1 .86.46l-1.92 6.02A1 1 0 0 0 13 10h7a1 1 0 0 1 .78 1.63l-9.9 10.2a.5.5 0 0 1-.86-.46l1.92-6.02A1 1 0 0 0 11 14z",key:"1xq2db"}]],oi=je("zap",n1);/**
385
+ * @license lucide-react v0.511.0 - ISC
386
+ *
387
+ * This source code is licensed under the ISC license.
388
+ * See the LICENSE file in the root directory of this source tree.
389
+ */const i1=[["circle",{cx:"11",cy:"11",r:"8",key:"4ej97u"}],["line",{x1:"21",x2:"16.65",y1:"21",y2:"16.65",key:"13gj7c"}],["line",{x1:"11",x2:"11",y1:"8",y2:"14",key:"1vmskp"}],["line",{x1:"8",x2:"14",y1:"11",y2:"11",key:"durymu"}]],s1=je("zoom-in",i1);function K(...s){return s.filter(Boolean).join(" ")}function r1({topBar:s,bottomNav:c,children:r,className:d}){return a.jsxs("div",{className:K("vxm-shell",d),children:[s&&a.jsx("div",{className:"vxm-shell__topbar",children:s}),a.jsx("main",{className:"vxm-shell__main",children:r}),c&&a.jsx("div",{className:"vxm-shell__bottomnav",children:c})]})}function l1({title:s,leading:c,trailing:r,className:d}){return a.jsxs("div",{className:K("vxm-topbar",d),children:[a.jsx("div",{className:"vxm-topbar__leading",children:c}),a.jsx("div",{className:"vxm-topbar__title",children:s}),a.jsx("div",{className:"vxm-topbar__trailing",children:r})]})}function tu(p){var f=p,{label:s,className:c,children:r}=f,d=be(f,["label","className","children"]);return a.jsx("button",we(le({type:"button",className:K("vxm-icon-btn",c),"aria-label":s},d),{children:r}))}function Mu({items:s,className:c}){const[r,d]=m.useState(null),p=r?s.find(v=>v.key===r):null,f=v=>{var x,b;(x=v.submenu)!=null&&x.length?d(g=>g===v.key?null:v.key):(d(null),(b=v.onSelect)==null||b.call(v))};return a.jsxs("div",{className:"vxm-bottomnav-wrap",children:[r&&(p==null?void 0:p.submenu)&&a.jsxs(a.Fragment,{children:[a.jsx("div",{className:"vxm-bottomnav__scrim",onClick:()=>d(null),"aria-hidden":"true"}),a.jsx("div",{className:"vxm-bottomnav__submenu",role:"menu",children:p.submenu.map(v=>a.jsxs("button",{type:"button",role:"menuitem",className:"vxm-bottomnav__submenu-item",onClick:()=>{var x;(x=v.onSelect)==null||x.call(v),d(null)},children:[v.icon&&a.jsx("span",{className:"vxm-bottomnav__submenu-icon",children:v.icon}),a.jsx("span",{children:v.label})]},v.key))})]}),a.jsx("nav",{className:K("vxm-bottomnav",c),"aria-label":"底部导航",children:s.map(v=>{var x,b,g;return a.jsxs("button",{type:"button",className:K("vxm-bottomnav__item",v.active&&"vxm-bottomnav__item--active",!!((x=v.submenu)!=null&&x.length&&r===v.key)&&"vxm-bottomnav__item--submenu-open"),onClick:()=>f(v),"aria-current":v.active?"page":void 0,"aria-expanded":(b=v.submenu)!=null&&b.length?r===v.key:void 0,"aria-haspopup":(g=v.submenu)!=null&&g.length?"menu":void 0,children:[a.jsxs("span",{className:"vxm-bottomnav__icon",children:[v.icon,v.badge!=null&&a.jsx("span",{className:"vxm-bottomnav__badge","aria-label":`${v.badge} 条未读`,children:v.badge})]}),a.jsx("span",{className:"vxm-bottomnav__label",children:v.label})]},v.key)})})]})}const o1="1.0.6",c1={version:o1},po=`v${c1.version}`,Ru={locale:"en",label:"English",searchPlaceholder:"Search components, pages, keywords…",searchAriaLabel:"Search",searchEmpty:s=>`No results for "${s}"`,searchNavigate:"Navigate",searchGo:"Go",searchClose:"Close",sidebarCollapse:"Collapse",sidebarExpand:"Expand",sidebarCloseLabel:"Close sidebar",searchTrigger:"Search",versionLabel:po,mobilePreview:"Mobile Preview",nav:{gettingStarted:"Getting Started",layout:"Layout",content:"Content",forms:"Forms",components:"Components",overlays:"Overlays",navigation:"Navigation",feedback:"Feedback",templates:"Templates",mobile:"Responsive"},pages:{introduction:"Introduction","quick-start":"Quick Start","shell-sidebar":"Shell & Sidebar","grid-page":"Grid & Page","nav-layout":"Navigation & Layout","scroll-area":"ScrollArea",separator:"Separator",resizable:"Resizable",typography:"Typography","typography-base":"Typography Base",badge:"Badge",avatar:"Avatar",skeleton:"Skeleton",card:"Card","code-block":"Code Block","language-switcher":"Language Switcher",button:"Button",elements:"Elements","form-controls":"Form Controls","form-inputs":"Form Inputs",toggle:"Toggle",rating:"Rating",label:"Label","date-pickers":"Date Pickers","file-upload":"File Upload","color-picker":"Color Picker",form:"Form",accordion:"Accordion",tabs:"Tabs",breadcrumb:"Breadcrumb",pagination:"Pagination",stepper:"Stepper",progress:"Progress",spinner:"Spinner",alert:"Alert",toasts:"Toasts",table:"Table","data-list":"Data List",timeline:"Timeline","tree-view":"Tree View",carousel:"Carousel","empty-states":"Empty States",overlays:"Overlays","data-display":"Data Display",navigation:"Navigation",feedback:"Feedback",dialog:"Dialog",sheet:"Sheet",popover:"Popover",tooltip:"Tooltip","hover-card":"Hover Card","dropdown-menu":"Dropdown Menu","context-menu":"Context Menu","command-palette":"Command Palette","navigation-menu":"Navigation Menu",menubar:"Menubar",mobile:"Mobile Components","mobile-list":"Mobile List",image:"Image","pin-input":"Pin Input",descriptions:"Descriptions",notification:"Notification",result:"Result","home-page":"Home Page","login-page":"Login Page","register-page":"Register Page","error-page":"Error Page","privacy-policy":"Privacy Policy","terms-of-service":"Terms of Service","vxui-provider":"VXUI Provider",viewport:"Viewport",constants:"Constants",calendar:"Calendar","bottom-nav":"Bottom Nav"},docs:{guidance:"Guidance",guidanceDesc:"Keep the implementation tight and let the design system do most of the visual work.",preview:"Preview",previewDesc:"A compact example of how this area should feel inside the system.",notes:"Notes",primaryTheme:"Primary Theme",primaryThemeDesc:"Blue-gray neutrals keep emphasis reserved for actions, not decoration.",tokenScale:"Token Scale",tokenScaleDesc:"Reuse the shared surface, border, and text variables before introducing page-specific styles.",themeStudio:"Theme Studio",themeStudioDesc:"Register named themes once, then switch every component with a single key.",liveControls:"Live Controls",liveControlsDesc:"A few reusable primitives are still available inside the docs surface.",searchDocs:"Search docs",searchDocsPlaceholder:"Buttons, tokens, layout...",compactDensity:"Compact density",compactDensityDesc:"Tighten the vertical rhythm for denser operator views.",systemPreview:"System Preview",openSection:"Open section"},intro:{tagline:"A lightweight, dependency-free UI framework for building clean admin interfaces. Design tokens, components, and a minimal SPA runtime live behind one consistent visual language.",getStarted:"Get Started",browseComponents:"Browse Components",atAGlance:"At a Glance",designTokens:"Design Tokens",designTokensLead:"All colors, spacing, and typography values are exposed as CSS custom properties under the vx namespace. Register named light and dark themes once, then swap the whole framework by theme key.",componentFamilies:"Component Families"},glance:{zeroDeps:"Zero dependencies",zeroDepsHint:"Original shell runtime does not require a build pipeline.",components:"Components",componentsHint:"Layout, form, feedback, and list primitives in one system.",coreCSS:"Core CSS",coreCSSHint:"Neutral tokens and structural styles stay compact.",darkMode:"Dark mode",darkModeHint:"Semantic variables keep the same components reusable."},tokens:{primary:"Primary",primaryDesc:"Accent color for primary actions, active navigation, and emphasis.",surface:"Surface",surfaceDesc:"Default panel and content background for documentation cards and shell regions.",border:"Border",borderDesc:"Light separators that keep the UI structured without adding visual weight.",text:"Text",textDesc:"Primary foreground used for headings, dense data, and body copy."},families:{layout:"Layout",layoutDesc:"App shell, sticky header, section rhythm, and responsive content framing.",content:"Content",contentDesc:"Typography, badges, avatars, cards, and code blocks.",elements:"Elements",elementsDesc:"Quiet primitives for actions, metadata, and structured content blocks.",forms:"Forms",formsDesc:"Inputs, switches, dialogs, and field composition patterns.",inputs:"Inputs",inputsDesc:"Text inputs, selects, textareas, and number pickers.",overlays:"Overlays",overlaysDesc:"Modals, popovers, tooltips, and sheet panels.",navigation:"Navigation",navigationDesc:"Menus, nav bars, and breadcrumbs.",feedback:"Feedback",feedbackDesc:"Transient toasts and interruptive confirmation flows."},dataList:{name:"Name",kind:"Kind",updated:"Updated"},modeLabel:s=>`${s} mode`,publicPages:{navLogin:"Log in",navSignup:"Sign up",navDocs:"Docs",navLogout:"Log out",heroTag:`New · ${po}`,heroTitle:"Lightweight React UI library",heroLead:"Zero dependencies · 30+ components · Built-in theming & dark mode",heroCta:"Get started",heroCtaAlt:"Browse docs",previewLead:"",previewAccessTitle:"Access modes",previewAccessMember:"Sign in to keep a session and return to your workspace.",previewAccessGuest:"Open the docs as a guest when you just need to browse.",previewMobileTitle:"Mobile-ready",previewMobileLead:"Navigation and auth layouts adapt naturally on mobile.",featuresSectionTitle:"Why vxUI",feat1:"Zero dependencies",feat1Desc:"Pure CSS + TypeScript, no peer dependencies.",feat2:"30+ components",feat2Desc:"Layout, form, feedback and list primitives in one system.",feat3:"Themeable",feat3Desc:"CSS variable-driven, swap the whole theme with one key.",feat4:"Dark mode",feat4Desc:"Semantic tokens work across light and dark themes.",footerCopy:"© 2026 vxUI. All rights reserved.",footerPrivacy:"Privacy Policy",footerGithub:"GitHub",footerWebsite:"Website",loginTitle:"Welcome back",loginSubtitle:"Sign in to access the documentation.",loginEmail:"Email",loginEmailPlaceholder:"you@example.com",loginPassword:"Password",loginPasswordPlaceholder:"At least 8 characters",loginCta:"Sign in",loginNoAccount:"Don't have an account?",loginRegister:"Register",loginGuest:"Continue without an account →",rememberMe:"Remember this device",showPassword:"Show",hidePassword:"Hide",authInfoTitle:"Guest access is available",authInfoBody:"You can go straight to the docs without an account. Sign in only if you want a persisted session example.",registerTitle:"Create account",registerSubtitle:"Get started with vxUI today.",registerName:"Full name",registerNamePlaceholder:"Jane Smith",registerEmail:"Email",registerEmailPlaceholder:"jane@company.com",registerPassword:"Password",registerPasswordPlaceholder:"Create a strong password",registerTermsAgree:"I agree to the",registerTermsLink:"Terms of Service",registerTermsAnd:"and",registerPrivacyLink:"Privacy Policy",registerCta:"Create account",registerHasAccount:"Already have an account?",registerLogin:"Sign in",registerGuest:"Continue without an account →",validationNameRequired:"Enter your full name.",validationNameShort:"Use at least 2 characters for your name.",validationEmailRequired:"Enter your email address.",validationEmailInvalid:"Enter a valid email address.",validationPasswordRequired:"Enter your password.",validationPasswordShort:"Use at least 8 characters for the password.",validationTermsRequired:"You must agree to the terms before creating an account.",sessionLoginTitle:"Signed in",sessionLoginBody:"Your session is active. You can now browse the docs as a signed-in user.",sessionRegisterTitle:"Account created",sessionRegisterBody:"Your sample account is ready and the docs are now unlocked.",sessionGuestTitle:"Browsing as guest",sessionGuestBody:"You entered the docs without a saved account session.",sessionLogoutTitle:"Signed out",sessionLogoutBody:"Your persisted session was cleared. You are back on the public site.",signedInAs:"Signed in as",guestLabel:"Guest",backHome:"← Back to home",backToDocs:"Back to docs"},pageDefs:{introduction:{section:"Introduction",title:"Introduction",description:"A lightweight, dependency-free UI framework for building clean admin interfaces. Design tokens, components, and a minimal SPA runtime live behind one consistent visual language.",guidance:["Start from the shell and navigation rhythm before styling isolated controls.","Keep tokens semantic so a theme swap does not require page-specific overrides.","Treat documentation, examples, and production surfaces as the same design system."]},"quick-start":{section:"Installation",title:"Quick Start",description:"Install the package, wrap your app with providers, and mount a page shell before composing business screens.",guidance:["Import the shared stylesheet once near the application root.","Use AppShell for product chrome and keep page content inside the main slot.","Add ThemeProvider and ToastProvider only when the app needs them."]},"shell-sidebar":{section:"Components",title:"Shell & Sidebar",description:"The shell is responsible for sidebar hierarchy, sticky header spacing, and content width. Navigation items support nested sub-menus via the `children` prop — click a parent to expand or collapse its sub-items.",guidance:["Keep navigation labels short so collapsed mode stays scannable.","Use section titles to separate page groups instead of visual noise.","Add `children` to a nav item to make it expandable; set `defaultOpen: true` to start it expanded.","If any child is active, AppShell auto-opens the parent group.",'Customize the sidebar width via the `sidebarWidth` prop (e.g. `sidebarWidth={280}` or `"18rem"`).'],props:[{prop:"brand",type:"string",default:'"VXUI"',description:"Brand / product name shown in the sidebar header."},{prop:"brandCaption",type:"string",description:"Secondary subtitle displayed below the brand name."},{prop:"brandIcon",type:"ReactNode",description:"Logo element (image or icon) rendered in the sidebar header."},{prop:"title",type:"string",description:"Page title shown in the topbar."},{prop:"description",type:"string",description:"Page subtitle / description shown below the topbar title."},{prop:"breadcrumb",type:"ReactNode",description:"Breadcrumb element rendered in the topbar."},{prop:"navSections",type:"AppShellNavSection[]",description:"Structured navigation tree grouped by sections. Preferred over navItems."},{prop:"navItems",type:"AppShellNavItem[]",description:"Flat navigation list. Automatically wrapped in a single unnamed section."},{prop:"sidebarCollapsed",type:"boolean",default:"false",description:"Collapse sidebar to icon-only rail mode."},{prop:"sidebarWidth",type:"number | string",default:"240px",description:'Custom sidebar width. Pass a number for px (e.g. 280) or a CSS string (e.g. "18rem").'},{prop:"density",type:'"comfortable" | "compact"',description:'Layout density. "compact" tightens vertical rhythm for high-density operator UIs.'},{prop:"headerActions",type:"ReactNode",description:"Slot for right-aligned topbar actions (buttons, dropdowns, user menu, etc.)."},{prop:"sidebarFooter",type:"ReactNode",description:"Slot rendered at the bottom of the sidebar (user info, settings link, etc.)."},{prop:"mobileNavOpen",type:"boolean",default:"false",description:"Controls whether the mobile navigation overlay is visible."},{prop:"onSidebarToggle",type:"() => void",description:"Called when the collapse / expand button is clicked."},{prop:"onMobileNavToggle",type:"() => void",description:"Called when the mobile overlay toggle button is clicked. Required to enable mobile nav."},{prop:"children",type:"ReactNode",required:!0,description:"Main page content rendered inside ShellContent."}]},"grid-page":{section:"Components",title:"Grid & Page",description:"Use simple responsive grids for cards, tokens, and documentation blocks. The page surface should stay neutral and let content carry emphasis.",guidance:["Prefer 12 to 16 pixel gaps for dense documentation surfaces.","Reserve larger spacing for section boundaries, not every card.","Keep max width constrained so long paragraphs remain readable."]},button:{section:"Components",title:"Button",description:"Buttons carry the primary action hierarchy for the system. Variants, sizes, and width should communicate intent without requiring extra styling.",guidance:["Use the solid variant for the primary action in a given area.","Use secondary or ghost variants for supporting actions that should stay visually quieter.","Use fullWidth for stacked mobile actions or single-column forms."],props:[{prop:"variant",type:'"solid" | "secondary" | "ghost" | "danger" | "outline" | "soft" | "danger-outline" | "primary-outline" | "gradient"',default:'"solid"',description:"Visual style variant."},{prop:"size",type:'"sm" | "md" | "lg"',default:'"md"',description:"Button size preset."},{prop:"fullWidth",type:"boolean",default:"false",description:"Stretch to fill container width."},{prop:"shape",type:'"rect" | "square" | "pill" | "circle"',default:'"rect"',description:"Button shape preset."},{prop:"loading",type:"boolean",default:"false",description:"Show a spinner and disable the button."},{prop:"startIcon",type:"ReactNode",description:"Left-side icon slot."},{prop:"endIcon",type:"ReactNode",description:"Right-side icon slot."}]},elements:{section:"Components",title:"Elements",description:"Button forms the atomic foundation of actions. Other atomic components (Badge, Text, Heading, CodeBlock, LanguageSwitcher) each have their own dedicated pages under Content.",guidance:["One primary action per area is usually enough.","Use the solid variant for the primary action in a given area.","Use secondary or ghost variants for supporting actions."]},"form-controls":{section:"Components",title:"Form Controls",description:"A complete set of form primitives: single-line inputs, multi-line textarea, searchable single-select (Select), multi-select with tag display (MultiSelect), and time selection (TimePicker). All share the same label / hint / error layout system.",guidance:["Always pair form controls with visible labels in admin surfaces.","Use Select for single-select with optional search; set `searchable={N}` to show the search input only when options exceed N.","Use MultiSelect when users need to pick several values from a bounded list.","TimePicker supports 24-hour format and an optional seconds column via the `seconds` prop.","Short helper text is better than placeholder-only instruction."],props:[{prop:"Select.options",type:"SelectOption[]",required:!0,description:"Array of selectable options."},{prop:"Select.value",type:"string",description:"Controlled selected value."},{prop:"Select.defaultValue",type:"string",description:"Uncontrolled initial value."},{prop:"Select.onChange",type:"(value: string | undefined) => void",description:"Called when selection changes."},{prop:"Select.placeholder",type:"string",default:'"Select..."',description:"Placeholder when nothing selected."},{prop:"Select.label",type:"string",description:"Field label."},{prop:"Select.hint",type:"string",description:"Helper text."},{prop:"Select.error",type:"string",description:"Error message."},{prop:"Select.disabled",type:"boolean",description:"Disable the select."},{prop:"Select.clearable",type:"boolean",default:"false",description:"Show clear button."},{prop:"Select.searchable",type:"boolean | number",default:"true",description:"Enable search. Number enables search above that option count."},{prop:"MultiSelect.options",type:"MultiSelectOption[]",required:!0,description:"Array of selectable options."},{prop:"MultiSelect.value",type:"string[]",description:"Controlled selected values."},{prop:"MultiSelect.defaultValue",type:"string[]",default:"[]",description:"Uncontrolled initial values."},{prop:"MultiSelect.onChange",type:"(value: string[]) => void",description:"Called when selection changes."},{prop:"MultiSelect.placeholder",type:"string",default:'"Select..."',description:"Placeholder when nothing selected."},{prop:"MultiSelect.label",type:"string",description:"Field label."},{prop:"MultiSelect.hint",type:"string",description:"Helper text."},{prop:"MultiSelect.error",type:"string",description:"Error message."},{prop:"MultiSelect.disabled",type:"boolean",description:"Disable the multi-select."},{prop:"MultiSelect.clearable",type:"boolean",default:"false",description:"Show clear-all button."},{prop:"MultiSelect.maxDisplay",type:"number",description:'Max visible tags before "+N more" badge.'},{prop:"Textarea.label",type:"string",description:"Label above the textarea."},{prop:"Textarea.hint",type:"string",description:"Helper text below."},{prop:"Textarea.resize",type:'"none" | "vertical" | "horizontal" | "both"',default:'"vertical"',description:"CSS resize direction."},{prop:"TimePicker.value",type:"string",description:"Controlled time value (HH:MM or HH:MM:SS)."},{prop:"TimePicker.defaultValue",type:"string",description:"Uncontrolled initial time."},{prop:"TimePicker.onChange",type:"(value: string) => void",description:"Called when time changes."},{prop:"TimePicker.label",type:"string",description:"Field label."},{prop:"TimePicker.seconds",type:"boolean",default:"false",description:"Show seconds column."}]},navigation:{section:"Components",title:"Navigation",description:"Navigation patterns should communicate location first, then available movement. Tabs work best for sibling views within a single page context.",guidance:["Mirror information architecture in the control structure.","Make the active state obvious without relying on color alone.","Avoid mixing route navigation and local view state in one control."]},"data-list":{section:"Components",title:"Data List",description:"Lists and tables should prioritize scanning over ornament. Use generous alignment, light separators, and action density only where needed.",guidance:["Align headers and row content precisely to reduce visual drift.","Use subtle borders instead of heavy card chrome around every row.","Reserve destructive affordances for row action groups, not inline text links."]},dialog:{section:"Overlays",title:"Dialog",description:"A modal dialog that interrupts the user to confirm an action or show critical information. Supports multiple sizes, placement options, and a close button.",guidance:["Use Dialog for confirmations that require a decision before continuing.",'Choose the appropriate size — "sm" for quick confirmations, "lg" for forms or details.',"Dialog traps focus and blocks interaction with the page behind it.","When content overflows the max height, the body scrolls while the header and footer stay fixed."],props:[{prop:"trigger",type:"ReactNode",required:!0,description:"Element that opens the dialog."},{prop:"title",type:"string",required:!0,description:"Dialog title."},{prop:"description",type:"string",description:"Optional description text."},{prop:"children",type:"ReactNode",description:"Dialog body content."},{prop:"footer",type:"ReactNode",description:"Custom footer content."},{prop:"size",type:'"sm" | "md" | "lg" | "xl" | "full"',default:'"md"',description:"Dialog width preset."},{prop:"placement",type:'"center" | "top" | "right" | "bottom" | "left" | "top-left" | "top-right" | "bottom-left" | "bottom-right" | "top-half" | "right-half" | "bottom-half" | "left-half"',default:'"center"',description:"Dialog placement."},{prop:"scrollable",type:"boolean",default:"true",description:"Allow body scrolling on overflow."},{prop:"closable",type:"boolean",default:"true",description:"Show the close button."},{prop:"fullscreen",type:"boolean",default:"false",description:"Display in fullscreen mode."},{prop:"open",type:"boolean",description:"Controlled open state."},{prop:"defaultOpen",type:"boolean",description:"Default open state (uncontrolled)."},{prop:"onOpenChange",type:"(open: boolean) => void",description:"Callback when open state changes."},{prop:"onConfirm",type:"() => void",description:"Shows built-in confirm button."},{prop:"onCancel",type:"() => void",description:"Shows built-in cancel button."},{prop:"confirmLabel",type:"string",default:'"Confirm"',description:"Confirm button label."},{prop:"cancelLabel",type:"string",default:'"Cancel"',description:"Cancel button label."},{prop:"confirmVariant",type:'"solid" | "danger"',default:'"solid"',description:"Confirm button variant."},{prop:"className",type:"string",description:"Additional CSS class names."},{prop:"padding",type:'"none" | "sm" | "md" | "lg"',default:'"md"',description:"Content padding preset."}]},popover:{section:"Overlays",title:"Popover",description:"A rich popup that can contain forms, buttons, and structured content. Unlike Tooltip, Popover can hold interactive elements and requires an explicit dismiss action.",guidance:["Popover can contain interactive content — forms, buttons, links.","Always provide a close mechanism (click outside or explicit close button).","Use Tooltip for read-only labels and Popover for interactive content."],props:[{prop:"content",type:"ReactNode",required:!0,description:"Popover content (forms, buttons, links)."},{prop:"children",type:"ReactNode",required:!0,description:"Trigger element."},{prop:"placement",type:'"top" | "bottom" | "left" | "right"',default:'"bottom"',description:"Popover placement."},{prop:"trigger",type:'"click" | "hover"',default:'"click"',description:"Open trigger method."},{prop:"open",type:"boolean",description:"Controlled open state."},{prop:"onOpenChange",type:"(open: boolean) => void",description:"Callback when open state changes."},{prop:"className",type:"string",description:"Additional CSS class names."}]},tooltip:{section:"Overlays",title:"Tooltip",description:"A short, non-interactive label that appears on hover or focus to describe a UI element. Tooltips contain text only — no links, buttons, or forms.",guidance:["Tooltips are for supplementary text only — never place interactive content inside.","Tooltips appear on hover and focus; they do not require a close action.","Keep tooltip text short — one to five words is ideal."],props:[{prop:"content",type:"ReactNode",required:!0,description:"Tooltip text content."},{prop:"children",type:"ReactNode",required:!0,description:"Trigger element."},{prop:"placement",type:'"top" | "bottom" | "left" | "right"',default:'"top"',description:"Tooltip placement."},{prop:"delay",type:"number",default:"600",description:"Delay in ms before showing."}]},"hover-card":{section:"Overlays",title:"Hover Card",description:"A card that appears on hover, showing a richer preview of a linked element. Useful for user profiles, document previews, or reference summaries.",guidance:["Use HoverCard to preview related content without navigating away.","HoverCard can contain richer content than Tooltip — images, metadata, links.","Ensure the HoverCard trigger area is large enough to reach without the card disappearing."],props:[{prop:"content",type:"ReactNode",required:!0,description:"Card content (images, metadata, links)."},{prop:"children",type:"ReactNode",required:!0,description:"Trigger element."},{prop:"placement",type:'"top" | "bottom" | "left" | "right"',default:'"bottom"',description:"HoverCard placement."},{prop:"delay",type:"number",default:"400",description:"Delay in ms before showing."},{prop:"className",type:"string",description:"Additional CSS class names."}]},"dropdown-menu":{section:"Overlays",title:"Dropdown Menu",description:"A menu that opens on click, presenting a list of grouped actions or navigation items. Supports nested groups, keyboard navigation, and disabled items.",guidance:["Group related actions under labeled menu groups.","Use separators between unrelated action groups.","DropdownMenu supports keyboard navigation — arrow keys, Enter, and Escape."],props:[{prop:"trigger",type:"ReactNode",required:!0,description:"Element that opens the menu."},{prop:"groups",type:"DropdownMenuGroupProps[]",description:"Grouped menu items (renders separators between groups)."},{prop:"items",type:"DropdownMenuItemProps[]",description:"Flat list of menu items."},{prop:"align",type:'"left" | "right"',default:'"left"',description:"Menu alignment relative to trigger."},{prop:"open",type:"boolean",description:"Controlled open state."},{prop:"onOpenChange",type:"(open: boolean) => void",description:"Callback when open state changes."},{prop:"DropdownMenuItem.label",type:"ReactNode",required:!0,description:"Item display content."},{prop:"DropdownMenuItem.icon",type:"ReactNode",description:"Item icon."},{prop:"DropdownMenuItem.shortcut",type:"string",description:"Keyboard shortcut hint."},{prop:"DropdownMenuItem.disabled",type:"boolean",description:"Disable the item."},{prop:"DropdownMenuItem.danger",type:"boolean",description:"Apply danger styling."},{prop:"DropdownMenuItem.onClick",type:"() => void",description:"Click handler."},{prop:"className",type:"string",description:"Additional CSS class names."}]},"context-menu":{section:"Overlays",title:"Context Menu",description:"A right-click menu that provides actions relevant to the clicked element. Supports the same item and group API as DropdownMenu.",guidance:["Use ContextMenu to expose secondary actions that users discover through right-click.","Always provide an alternative way to access the same actions (toolbar, button).","Keep the menu short — long context menus are hard to scan at a glance."],props:[{prop:"groups",type:"ContextMenuGroupProps[]",description:"Grouped menu items."},{prop:"items",type:"ContextMenuItemProps[]",description:"Flat list of items."},{prop:"children",type:"ReactNode",required:!0,description:"Element that triggers on right-click."},{prop:"ContextMenuItem.label",type:"ReactNode",required:!0,description:"Item display content."},{prop:"ContextMenuItem.icon",type:"ReactNode",description:"Item icon."},{prop:"ContextMenuItem.shortcut",type:"string",description:"Keyboard shortcut hint."},{prop:"ContextMenuItem.disabled",type:"boolean",description:"Disable the item."},{prop:"ContextMenuItem.danger",type:"boolean",description:"Apply danger styling."},{prop:"ContextMenuItem.onClick",type:"() => void",description:"Click handler."},{prop:"className",type:"string",description:"Additional CSS class names."}]},"command-palette":{section:"Overlays",title:"Command Palette",description:"A keyboard-driven search overlay that lets users jump to any page or action without leaving the keyboard. Render it globally, wire a hotkey, then pass a flat list of entries.",guidance:["Keep the entries list flat and label-searchable — avoid nesting pages under hidden categories.","Populate entries from the same nav data you use for the sidebar so the two surfaces stay in sync.","Bind to ⌘K (Mac) or Ctrl+K (Windows) for a familiar shortcut."],props:[{prop:"entries",type:"SearchEntry[]",required:!0,description:"Flat list of searchable entries."},{prop:"open",type:"boolean",required:!0,description:"Controlled open state."},{prop:"onClose",type:"() => void",required:!0,description:"Called when the palette is dismissed."},{prop:"onSelect",type:"(key: string) => void",required:!0,description:"Called when an entry is selected."},{prop:"placeholder",type:"string",default:'"Search components, pages, keywords..."',description:"Search input placeholder."},{prop:"emptyText",type:"(query: string) => string",description:"Function returning empty results message."},{prop:"ariaLabel",type:"string",default:'"Search"',description:"Accessible label for the dialog."},{prop:"labelNavigate",type:"string",default:'"Navigate"',description:"Footer navigation hint text."},{prop:"labelGo",type:"string",default:'"Go"',description:"Footer go hint text."},{prop:"labelClose",type:"string",default:'"Close"',description:"Footer close hint text."}]},"navigation-menu":{section:"Navigation",title:"Navigation Menu",description:"A horizontal navigation bar that supports multi-level dropdown menus on hover. Suitable for top-level site navigation with nested sections.",guidance:["Use NavigationMenu for site-level navigation with multiple tiers of content.","Each item can have sub-items for second-level navigation.","Keep the top-level items short — one or two words each."],props:[{prop:"items",type:"NavMenuItem[]",required:!0,description:"Top-level navigation items."},{prop:"NavMenuItem.label",type:"string",required:!0,description:"Item display text."},{prop:"NavMenuItem.href",type:"string",description:"Link URL (for items without sub-items)."},{prop:"NavMenuItem.onClick",type:"() => void",description:"Click handler."},{prop:"NavMenuItem.items",type:"NavMenuSubItem[]",description:"Sub-menu items (triggers dropdown)."},{prop:"NavMenuItem.active",type:"boolean",description:"Active state."}]},menubar:{section:"Navigation",title:"Menubar",description:"A horizontal menu bar typically used for application-level actions (File, Edit, View). Supports keyboard-driven navigation between menus.",guidance:["Menubar follows desktop application conventions — use it for app-level command menus.","Each menu can contain items, groups, and separators.","Arrow keys navigate between menus; Escape closes the current menu."],props:[{prop:"menus",type:"MenubarMenuProps[]",required:!0,description:"Top-level menu definitions."},{prop:"MenubarMenu.label",type:"string",required:!0,description:"Menu trigger label."},{prop:"MenubarMenu.groups",type:"MenubarGroupProps[]",description:"Grouped items with separators."},{prop:"MenubarMenu.items",type:"MenubarItemProps[]",description:"Flat list of items."},{prop:"MenubarMenu.disabled",type:"boolean",description:"Disable the menu trigger."},{prop:"MenubarItem.label",type:"ReactNode",required:!0,description:"Item display content."},{prop:"MenubarItem.icon",type:"ReactNode",description:"Item icon."},{prop:"MenubarItem.shortcut",type:"string",description:"Keyboard shortcut text."},{prop:"MenubarItem.disabled",type:"boolean",description:"Disable the item."},{prop:"MenubarItem.danger",type:"boolean",description:"Apply danger styling."},{prop:"MenubarItem.onClick",type:"() => void",description:"Click handler."}]},resizable:{section:"Layout",title:"Resizable",description:"A set of three components — ResizablePanelGroup, ResizablePanel, ResizableHandle — for building split-panel layouts with draggable dividers. Supports horizontal and vertical arrangements.",guidance:["Use ResizablePanelGroup as the outer container, then nest ResizablePanel and ResizableHandle inside.",'Set direction to "horizontal" for side-by-side panels, "vertical" for stacked panels.',"Panels can be collapsed or resized by dragging the handle between them."],props:[{prop:"ResizablePanelGroup.direction",type:'"horizontal" | "vertical"',default:'"horizontal"',description:"Layout axis."},{prop:"ResizablePanelGroup.disabled",type:"boolean",default:"false",description:"Disable resize on all handles."},{prop:"ResizablePanel.defaultSize",type:"number",default:"50",description:"Initial size as percentage."},{prop:"ResizablePanel.minSize",type:"number",default:"10",description:"Minimum size percentage."},{prop:"ResizablePanel.maxSize",type:"number",default:"90",description:"Maximum size percentage."},{prop:"ResizableHandle.ariaLabel",type:"string",description:"Accessible label for the handle."}]},"file-upload":{section:"Forms",title:"File Upload",description:"A drag-and-drop file upload area with click-to-browse fallback. Supports multiple files, previews, and removal.",guidance:["Accept multiple files with the multiple prop — each file renders a preview card.","Uploaded files are surfaced via the onChange callback with name, size, and file object.","The component handles its own drag state and visual feedback."],props:[{prop:"label",type:"string",description:"Field label text."},{prop:"hint",type:"string",description:"Helper text below the drop zone."},{prop:"error",type:"string",description:"Error message text."},{prop:"accept",type:"string",description:'File input accept attribute (e.g. ".png,.jpg").'},{prop:"multiple",type:"boolean",default:"false",description:"Allow multiple file selection."},{prop:"maxSize",type:"number",description:"Maximum file size in bytes."},{prop:"disabled",type:"boolean",description:"Disable the upload zone."},{prop:"onFiles",type:"(files: File[]) => void",description:"Callback with selected files."}]},"color-picker":{section:"Forms",title:"Color Picker",description:"A color selection control that opens a popup with hue, saturation, and brightness sliders. Supports predefined swatches and custom hex input.",guidance:["Use ColorPicker for brand color configuration, tag colors, or theme customization.","The component provides both a visual picker and a hex input for precision.","Swatches can be customized via the swatches prop for brand-specific palettes."],props:[{prop:"value",type:"string",description:'Controlled hex color value (e.g. "#ff0000").'},{prop:"defaultValue",type:"string",default:'"#3b82f6"',description:"Uncontrolled initial color."},{prop:"onChange",type:"(color: string) => void",description:"Change callback (receives hex string)."},{prop:"label",type:"string",description:"Field label text."},{prop:"hint",type:"string",description:"Helper text below the picker."},{prop:"error",type:"string",description:"Error message text."},{prop:"disabled",type:"boolean",description:"Disable the picker."},{prop:"presets",type:"string[]",description:"Array of preset swatch hex colors."},{prop:"showPresets",type:"boolean",default:"true",description:"Show/hide preset color swatches."}]},accordion:{section:"Components",title:"Accordion",description:"A vertically stacked list of collapsible panels. Each panel has a header that toggles its content open or closed. Supports single and multiple open panels.",guidance:["Accordion is ideal for FAQ sections, settings panels, and progressive disclosure patterns.",'By default, only one panel is open at a time (type="single").',"For accordions where multiple panels should stay open simultaneously, allowMultiple enables independent toggling."],props:[{prop:"items",type:"AccordionItem[]",required:!0,description:"Array of accordion panel definitions."},{prop:"multiple",type:"boolean",default:"false",description:"Allow multiple panels open simultaneously."},{prop:"defaultOpen",type:"string[]",default:"[]",description:"Keys of initially open panels."},{prop:"className",type:"string",description:"Additional CSS class names."},{prop:"AccordionItem.key",type:"string",required:!0,description:"Unique key for the panel."},{prop:"AccordionItem.title",type:"ReactNode",required:!0,description:"Panel header content."},{prop:"AccordionItem.content",type:"ReactNode",required:!0,description:"Panel body content."},{prop:"AccordionItem.disabled",type:"boolean",description:"Disable the panel."}]},tabs:{section:"Components",title:"Tabs",description:"A tabbed interface for switching between multiple content panels. Supports controlled and uncontrolled modes with keyboard navigation.",guidance:["Use Tabs to organize related content into separate panels without navigating to a new page.","TabsList holds the trigger buttons; TabsContent holds the panel content.","Use the defaultValue prop for uncontrolled usage, or value/onValueChange for controlled mode."],props:[{prop:"value",type:"string",description:"Controlled selected tab value."},{prop:"defaultValue",type:"string",description:"Uncontrolled initial tab."},{prop:"onValueChange",type:"(value: string) => void",description:"Called when a new tab is selected."},{prop:"orientation",type:'"horizontal" | "vertical"',default:'"horizontal"',description:"Layout orientation."}]},breadcrumb:{section:"Components",title:"Breadcrumb",description:"A navigation aid that shows the user's location within the page hierarchy. Each segment is a link to the corresponding level.",guidance:["Breadcrumb reflects URL depth — single-level pages may omit it entirely.","Use the separator prop to customize the divider between segments.","The last segment should be the current page (not a link) for accessibility."],props:[{prop:"items",type:"BreadcrumbItem[]",required:!0,description:"Ordered list of breadcrumb segments."},{prop:"separator",type:"ReactNode",default:"Chevron",description:"Custom separator between items."},{prop:"className",type:"string",description:"Additional CSS class names."},{prop:"BreadcrumbItem.href",type:"string",description:"Link URL for the item."},{prop:"BreadcrumbItem.onClick",type:"() => void",description:"Click handler for the item."}]},pagination:{section:"Components",title:"Pagination",description:"A page navigation control that breaks large datasets into manageable pages. Shows page numbers with prev/next buttons and an optional page size selector.",guidance:["Show the total page count so users know the dataset size.","Use the siblings prop to control how many page numbers appear around the current page.","The onPageChange callback receives the new page number for external data fetching."],props:[{prop:"page",type:"number",required:!0,description:"Current active page (1-indexed)."},{prop:"total",type:"number",required:!0,description:"Total number of items."},{prop:"pageSize",type:"number",default:"10",description:"Items per page."},{prop:"siblingCount",type:"number",default:"1",description:"Page buttons around current page."},{prop:"onChange",type:"(page: number) => void",required:!0,description:"Callback when a page is clicked."},{prop:"className",type:"string",description:"Additional CSS class names."}]},stepper:{section:"Components",title:"Progress Steps",description:"A multi-step progress indicator that visualizes the user's current position in a linear workflow. Supports completed, active, pending, and error states.",guidance:["Use Stepper for multi-page forms, checkout flows, or setup wizards.",'Each step can be in "completed", "active", "pending", or "error" status.',"Steps with error status draw attention to the failed step so users can navigate back to fix it."],props:[{prop:"steps",type:"StepItem[]",required:!0,description:"Array of step definitions."},{prop:"currentStep",type:"number",default:"0",description:"0-based index of the active step."},{prop:"orientation",type:'"horizontal" | "vertical"',default:'"horizontal"',description:"Layout direction."},{prop:"className",type:"string",description:"Additional CSS class names."}]},progress:{section:"Components",title:"Progress Bar",description:"A horizontal progress bar that indicates the completion percentage of a deterministic operation. Supports labeled and unlabeled variants.",guidance:["Use Progress for deterministic operations where the duration is known (e.g., file upload, data export).","Use Spinner for indeterminate waits where the duration is unknown.","The value prop represents progress toward max; set value equal to max for completion."],props:[{prop:"value",type:"number",default:"0",description:"Current progress value."},{prop:"max",type:"number",default:"100",description:"Maximum value (denominator)."},{prop:"label",type:"string",description:"Text label above the bar."},{prop:"showLabel",type:"boolean",default:"false",description:"Show percentage text."},{prop:"size",type:'"sm" | "md" | "lg"',default:'"md"',description:"Bar thickness preset."},{prop:"variant",type:'"default" | "success" | "warning" | "danger" | "rainbow"',default:'"default"',description:"Bar color variant."},{prop:"indeterminate",type:"boolean",default:"false",description:"Indeterminate (animated) mode."}]},spinner:{section:"Components",title:"Spinner",description:"A rotating indicator for indeterminate loading states. Use it while content is being fetched or processed without a known duration.",guidance:["Use Spinner for short, indeterminate waits where the remaining time is unknown.","Use Progress for deterministic operations with a known duration.",'Spinner accepts size prop ("sm", "md", "lg") to match the surrounding context.'],props:[{prop:"size",type:'"sm" | "md" | "lg"',default:'"md"',description:"Spinner dimension (16/24/36 px)."},{prop:"label",type:"string",default:'"Loading…"',description:"Accessible aria-label text."}]},alert:{section:"Components",title:"Alert",description:"A prominent status message that communicates success, warning, danger, or informational states. Can optionally be dismissed by the user.",guidance:["Use Alert for persistent or page-level status messages — prefer it over Toasts for important information.",'Alert supports "info", "success", "warning", and "danger" variants.',"The onClose prop adds a close button for user-dismissable alerts."],props:[{prop:"variant",type:'"info" | "success" | "warning" | "danger"',default:'"info"',description:"Visual style variant."},{prop:"title",type:"string",description:"Alert title text."},{prop:"icon",type:"ReactNode",description:"Custom icon override."},{prop:"onClose",type:"() => void",description:"Close button callback (hidden when omitted)."}]},table:{section:"Components",title:"Table",description:"A data table with sortable columns, multiple visual variants, row selection, and built-in auto search with debounce. Supports borderless, headless, fixed layout, and clickable rows.",guidance:["Table supports sortable columns — delegate sort state up when the data comes from a server.",'Use variant="dark" for emphasis or variant="outline" for minimal chrome.',"Enable selectable to add checkbox row selection; control state via selectedRows/onSelectionChange.","Built-in search is debounced (200ms default) and works automatically — no external state needed.","Set searchable: false on a column to exclude it from text search."],props:[{prop:"columns",type:"TableColumn[]",required:!0,description:"Column definitions."},{prop:"data",type:"T[]",required:!0,description:"Row data."},{prop:"size",type:'"sm" | "md" | "lg"',default:'"md"',description:"Row height preset."},{prop:"striped",type:"boolean",default:"false",description:"Alternating row background."},{prop:"hoverable",type:"boolean",default:"true",description:"Row hover highlight."},{prop:"bordered",type:"boolean",default:"false",description:"Inner cell borders."},{prop:"stickyHeader",type:"boolean",default:"false",description:"Sticky table header."},{prop:"stickyFilter",type:"boolean",default:"false",description:"Sticky filter bar, keeps search box visible when scrolling."},{prop:"borderless",type:"boolean",default:"false",description:"Remove all borders including the outer wrapper."},{prop:"headless",type:"boolean",default:"false",description:"Hide the header row."},{prop:"loading",type:"boolean",default:"false",description:"Show loading overlay."},{prop:"variant",type:'"default" | "dark" | "outline"',default:'"default"',description:"Visual style variant."},{prop:"fixed",type:"boolean",default:"false",description:"Fixed table layout (column widths honored strictly, text truncated)."},{prop:"removeBorders",type:'"all" | ("top" | "right" | "bottom" | "left")[]',description:"Remove specific side borders or all. Adjusts border-radius accordingly."},{prop:"flush",type:"boolean",default:"false",description:"Flush mode: removes border, border-radius, and padding for embedding inside Card."},{prop:"onRowClick",type:"(row: T, index: number) => void",description:"Row click callback."},{prop:"rowClassName",type:"string | ((row: T, index: number) => string)",description:"Custom row class name."},{prop:"selectable",type:"boolean",default:"false",description:"Enable checkbox row selection."},{prop:"selectedRows",type:"Set<number>",description:"Controlled selected row indices."},{prop:"onSelectionChange",type:"(selected: Set<number>) => void",description:"Selection change callback."},{prop:"searchDebounce",type:"number",default:"200",description:"Search debounce delay in ms. Set 0 to disable."},{prop:"searchColumns",type:"string[]",description:"Limit text search to specific column keys."},{prop:"sortColumn",type:"string",description:"Controlled sort column key."},{prop:"sortDirection",type:'"asc" | "desc"',description:"Controlled sort direction."},{prop:"onSortChange",type:"(column: string, direction: SortDirection) => void",description:"Sort change callback."},{prop:"emptyText",type:"ReactNode",default:'"No data"',description:"Text when data is empty."},{prop:"rounded",type:"boolean",default:"false",description:"Remove outer wrapper border-radius."},{prop:"caption",type:"string",description:"Table caption for accessibility."}]},"empty-states":{section:"Components",title:"Empty States",description:"An empty state should explain what is missing, why it matters, and what the next action is. It should never feel like a dead end. The EmptyState component provides a consistent layout with icon, title, description, and an action slot.",guidance:["Name the object that is absent so users know what they are looking at.","Offer one clear recovery action via the action prop.","Keep the visual weight lighter than success or alert feedback."],props:[{prop:"icon",type:"ReactNode",description:"Illustration or icon displayed above the title."},{prop:"title",type:"string",required:!0,description:"Main heading explaining what is missing."},{prop:"description",type:"string",description:"Optional explanatory text below the title."},{prop:"action",type:"ReactNode",description:"Call-to-action button or link for recovery."},{prop:"className",type:"string",description:"Additional CSS class names."}]},toasts:{section:"Components",title:"Toasts",description:"Toasts confirm short-lived events without interrupting task flow. Keep them brief, specific, and easy to dismiss.",guidance:["Use success and info to confirm background actions.","Escalate blocking or destructive states to dialogs instead of stacking toasts.","Avoid repeating the same message on every page transition."],props:[{prop:"push",type:"(toast: ToastInput) => void",description:"Show a toast notification."},{prop:"ToastInput.title",type:"string",required:!0,description:"Toast title text."},{prop:"ToastInput.description",type:"string",description:"Optional description text."},{prop:"ToastInput.tone",type:'"info" | "success" | "warning" | "danger"',default:'"info"',description:"Toast visual tone."}]},feedback:{section:"Feedback",title:"Feedback Components",description:"Alert, Progress, Spinner, Stepper, and Toast indicate application state without interrupting the layout.",guidance:["Use Spinner for short, indeterminate waits; use Progress for deterministic operations.","Prefer Alert over Toast for persistent or page-level status messages."]},overlays:{section:"Components",title:"Overlays",description:"Dialog, ContextMenu, HoverCard, Tooltip, Popover, and DropdownMenu layer transient content and actions above the page.",guidance:["Tooltips are for supplementary text only — never interactive content.","Popovers can contain forms and rich content; they require explicit close triggers.","DropdownMenus should group related actions and support keyboard navigation."]},"nav-layout":{section:"Components",title:"Navigation & Layout",description:"Tabs, Accordion, Breadcrumb, Menubar, NavigationMenu, ScrollArea, Separator, Resizable, and Sheet structure content hierarchically.",guidance:["Breadcrumb mirrors route depth — omit it on single-level pages.","Pagination should show page count so users understand the data set size.","Accordion works best for progressive disclosure, not primary navigation."]},"data-display":{section:"Components",title:"Data Display",description:"Table and EmptyState present structured data compactly. Other data components (Avatar, Badge, Card, Carousel, Timeline, TreeView) each have their own dedicated pages.",guidance:["Table supports sortable columns — delegate sort state up when the data is server-side.","Use striped rows in dense tables to help eyes track across long rows.","EmptyState should include a clear recovery action whenever possible."]},"form-inputs":{section:"Forms",title:"Form Inputs",description:"Checkbox, Radio, Switch, Slider, NumberInput, TagInput, SegmentedControl, and Input extend the form vocabulary beyond text inputs. Other form components (Label, Toggle, Rating, DatePicker) each have their own dedicated pages.",guidance:["Group radio buttons with RadioGroup to share name and semantics.","Slider is ideal for numeric ranges; pair it with showValue for immediate feedback.","Textarea defaults to vertical resize — disable resize only in fixed-height containers.","Use Switch for immediate state toggles (like settings), and Checkbox for form submissions or multi-selections."],props:[{prop:"Checkbox.label",type:"ReactNode",description:"Label next to the checkbox."},{prop:"Checkbox.description",type:"string",description:"Description under the label."},{prop:"Checkbox.indeterminate",type:"boolean",description:"Show indeterminate visual state."},{prop:"Radio.label",type:"ReactNode",description:"Label next to the radio circle."},{prop:"Radio.description",type:"string",description:"Description under the label."},{prop:"RadioGroup.label",type:"string",description:"Group label rendered as <legend>."},{prop:"RadioGroup.children",type:"ReactNode",required:!0,description:"Radio components inside the group."},{prop:"RadioGroup.className",type:"string",description:"Additional CSS class names."},{prop:"Switch.label",type:"string",required:!0,description:"Visible label text."},{prop:"Switch.description",type:"string",description:"Description below the label."},{prop:"Slider.label",type:"string",description:"Label above the slider."},{prop:"Slider.showValue",type:"boolean",default:"false",description:"Show current value next to label."},{prop:"Slider.hint",type:"string",description:"Helper text below."},{prop:"NumberInput.label",type:"string",description:"Label above the input."},{prop:"NumberInput.hint",type:"string",description:"Helper text below."},{prop:"NumberInput.error",type:"string",description:"Error message."},{prop:"NumberInput.value",type:"number",description:"Controlled value."},{prop:"NumberInput.onChange",type:"(value: number) => void",description:"Called when value changes."},{prop:"NumberInput.min",type:"number",description:"Minimum value."},{prop:"NumberInput.max",type:"number",description:"Maximum value."},{prop:"NumberInput.step",type:"number",default:"1",description:"Step increment."},{prop:"TagInput.value",type:"string[]",description:"Controlled tags."},{prop:"TagInput.defaultValue",type:"string[]",default:"[]",description:"Uncontrolled default tags."},{prop:"TagInput.onChange",type:"(tags: string[]) => void",description:"Called when tags change."},{prop:"TagInput.label",type:"string",description:"Field label."},{prop:"TagInput.placeholder",type:"string",default:'"Add tag..."',description:"Placeholder."},{prop:"TagInput.maxTags",type:"number",description:"Maximum number of tags."},{prop:"SegmentedControl.options",type:"SegmentedControlOption[]",required:!0,description:"Array of options."},{prop:"SegmentedControl.value",type:"string",description:"Controlled value."},{prop:"SegmentedControl.defaultValue",type:"string",description:"Uncontrolled initial value."},{prop:"SegmentedControl.onChange",type:"(value: string) => void",description:"Called when selection changes."},{prop:"SegmentedControl.fullWidth",type:"boolean",description:"Stretch to fill container width."},{prop:"SegmentedControl.size",type:'"sm" | "md" | "lg"',default:'"md"',description:"Control size preset."},{prop:"Input.label",type:"string",description:"Label above the input."},{prop:"Input.hint",type:"string",description:"Helper text below."},{prop:"Input.error",type:"string",description:"Error message."},{prop:"Input.prefix",type:"ReactNode",description:"Ornament prepended inside the input."},{prop:"Input.suffix",type:"ReactNode",description:"Ornament appended inside the input."},{prop:"Input.variant",type:'"default" | "filled" | "underline" | "borderless"',default:'"default"',description:"Visual style variant."},{prop:"Input.size",type:'"sm" | "md" | "lg"',default:'"md"',description:"Size preset."},{prop:"Input.rounded",type:"boolean",description:"Pill-shaped input."}]},"mobile-list":{section:"Responsive",title:"Mobile List",description:"MobileList, MobileListSection, and MobileListItem provide a native-feeling list suitable for mobile navigation, settings, and data display. Each item supports leading icons, trailing content, chevron indicators, and destructive or disabled states.",guidance:["Use MobileListSection with a title prop to group related items under a section header.","Set chevron on items that navigate to a detail view — omit it for static or toggle items.","Use destructive for irreversible actions (delete, leave, remove) — the text turns red.","Disabled items render visually muted and block click events."],props:[{prop:"MobileList",type:"—",description:"Root <ul> element with list styling."},{prop:"MobileListSection.title",type:"string",description:"Section header text."},{prop:"MobileListItem.leading",type:"ReactNode",description:"Icon or avatar on the left side."},{prop:"MobileListItem.trailing",type:"ReactNode",description:"Custom content on the right (badge, value, etc.)."},{prop:"MobileListItem.label",type:"ReactNode",required:!0,description:"Primary label text."},{prop:"MobileListItem.description",type:"ReactNode",description:"Secondary descriptive text."},{prop:"MobileListItem.chevron",type:"boolean",default:"false",description:"Show a right chevron arrow."},{prop:"MobileListItem.destructive",type:"boolean",default:"false",description:"Style as destructive action (red text)."},{prop:"MobileListItem.disabled",type:"boolean",default:"false",description:"Disable the item."},{prop:"MobileListItem.onClick",type:"() => void",description:"Click handler."}]},mobile:{section:"Responsive",title:"Responsive Patterns",description:"A single responsive system for phone, tablet, and desktop. One route tree, one content model, and one set of components adapt through layout instead of duplicate applications.",guidance:["Keep the route tree identical across breakpoints; only the shell and density should change.","Turn persistent side navigation into a drawer on narrow screens instead of forking the page implementation.","Design cards, forms, and tables to reflow from three columns to one without changing component ownership."]},image:{section:"Content",title:"Image",description:"A progressive image component with lazy loading via IntersectionObserver, error fallback, and an optional click-to-preview lightbox. Supports fixed dimensions, border-radius presets, and captions.",guidance:["Set lazy={true} (default) to defer off-screen images and improve initial load time.","Provide a fallback node to replace the default placeholder when the image fails to load.","Enable preview={true} for gallery-style layouts where users expect to inspect images.","Use width and height props to prevent layout shift (CLS) during loading."],props:[{prop:"src",type:"string",required:!0,description:"Image source URL."},{prop:"alt",type:"string",description:"Alt text for accessibility."},{prop:"width",type:"string | number",description:"Fixed width (CSS value or px number)."},{prop:"height",type:"string | number",description:"Fixed height (CSS value or px number)."},{prop:"radius",type:"'none' | 'sm' | 'md' | 'lg' | 'full'",default:"'md'",description:"Border radius preset."},{prop:"fit",type:"'cover' | 'contain' | 'fill' | 'none'",default:"'cover'",description:"Object-fit CSS value."},{prop:"lazy",type:"boolean",default:"true",description:"Enable lazy loading."},{prop:"placeholder",type:"ReactNode",description:"Placeholder shown while loading."},{prop:"fallback",type:"ReactNode",description:"Fallback shown on error."},{prop:"preview",type:"boolean",default:"false",description:"Enable click-to-preview lightbox."},{prop:"caption",type:"ReactNode",description:"Caption text below the image."}]},"pin-input":{section:"Forms",title:"Pin Input",description:"A segmented input for verification codes, OTPs, and PINs. Supports numeric or alphanumeric modes, auto-advance, paste handling, and mask mode.",guidance:["Use length={6} for standard verification codes or length={4} for PINs.",'Set type="numeric" (default) for number-only codes; use "alphanumeric" for mixed.',"Provide an onComplete callback to auto-submit once all fields are filled.","Enable mask={true} for sensitive codes that should not be visible."],props:[{prop:"length",type:"number",default:"6",description:"Number of input fields."},{prop:"value",type:"string",description:"Controlled value."},{prop:"onChange",type:"(value: string) => void",description:"Called when any field changes."},{prop:"onComplete",type:"(value: string) => void",description:"Called when all fields are filled."},{prop:"type",type:"'numeric' | 'alphanumeric'",default:"'numeric'",description:"Input type."},{prop:"size",type:"'sm' | 'md' | 'lg'",default:"'md'",description:"Size preset."},{prop:"mask",type:"boolean",default:"false",description:"Mask input (show dots)."},{prop:"error",type:"string",description:"Error message below the input group."},{prop:"label",type:"string",description:"Label above the input group."},{prop:"autoFocus",type:"boolean",default:"false",description:"Auto-focus the first input."}]},descriptions:{section:"Content",title:"Descriptions",description:"A key-value display component for detail pages. Organizes metadata in a structured horizontal or vertical layout with optional borders, column spanning, and size presets.",guidance:["Use horizontal layout for wide screens; vertical for narrow or single-column details.","Set column={2} or column={3} to arrange items in multi-column rows.","Use the span property on individual items to stretch across multiple columns.","Combine with the title and extra props for a section header with actions."],props:[{prop:"items",type:"DescriptionsItem[]",required:!0,description:"List of description items."},{prop:"layout",type:"'horizontal' | 'vertical'",default:"'horizontal'",description:"Layout direction."},{prop:"column",type:"number",default:"3",description:"Number of columns per row."},{prop:"size",type:"'sm' | 'md' | 'lg'",default:"'md'",description:"Size preset."},{prop:"bordered",type:"boolean",default:"true",description:"Show border around the descriptions."},{prop:"title",type:"ReactNode",description:"Title above the descriptions."},{prop:"extra",type:"ReactNode",description:"Extra content next to the title."}]},notification:{section:"Components",title:"Notification",description:"A persistent notification system with NotificationProvider and useNotification hook. Unlike Toast (auto-dismiss), notifications remain visible until dismissed manually or via duration.",guidance:["Wrap your app with NotificationProvider and set the desired placement.","Use push() to show a notification — it returns an id for programmatic dismiss.","Set duration > 0 for auto-dismiss; use 0 (default) for persistent notifications.",'Use the action prop for inline buttons like "View details" or "Undo".'],props:[{prop:"NotificationProvider.placement",type:"'top-right' | 'top-left' | 'top-center' | 'bottom-right' | 'bottom-left' | 'bottom-center'",default:"'top-right'",description:"Stack position."},{prop:"NotificationProvider.maxCount",type:"number",default:"5",description:"Maximum visible notifications."},{prop:"push",type:"(input: NotificationInput) => number",description:"Show a notification; returns the id."},{prop:"dismiss",type:"(id: number) => void",description:"Dismiss a notification by id."},{prop:"clear",type:"() => void",description:"Dismiss all notifications."}]},result:{section:"Components",title:"Result",description:"A result/status page component for operation feedback. Provides pre-built status presets (success, error, warning, info, forbidden, not-found, server-error) with default icons and colors.",guidance:["Use the status prop for common outcomes; override icon for custom branding.",'Always provide a clear next action via the actions prop (e.g., "Back to Home").',"Keep the description to one or two sentences explaining the result.","Use the extra slot for supplementary content like order details or error logs."],props:[{prop:"status",type:"'success' | 'error' | 'warning' | 'info' | 'forbidden' | 'not-found' | 'server-error'",required:!0,description:"Pre-built status preset."},{prop:"title",type:"string",required:!0,description:"Title text."},{prop:"description",type:"string",description:"Description below the title."},{prop:"icon",type:"ReactNode",description:"Custom icon (overrides default)."},{prop:"actions",type:"ReactNode",description:"Action area for buttons/links."},{prop:"extra",type:"ReactNode",description:"Extra content below actions."}]},"home-page":{section:"Templates",title:"Home Page",description:"A landing-style home page with a hero section, key feature highlights, and primary call-to-action buttons. Suitable for product sites, internal portals, and marketing pages.",guidance:["Keep the hero message to one compelling sentence — let the CTA do the work.","Feature cards should each solve one problem, not list all capabilities.","Balance a primary action with a softer secondary one to reduce decision fatigue."]},"login-page":{section:"Templates",title:"Login Page",description:"A minimal login form centered on the screen. Collect credentials with clear labels, visible error states, and a single primary action.",guidance:["Never hide the password label — placeholder text alone fails accessibility.","Show inline validation errors as soon as the field loses focus.","Offer a password-visible toggle to reduce login friction."]},"register-page":{section:"Templates",title:"Register Page",description:"A registration form that collects the minimum fields needed to create an account. Reduce friction by asking only what is essential at sign-up.",guidance:["Request only name, email, and password at registration — profile details can come later.","Show password strength inline without blocking submission on minor issues.","The terms-of-service checkbox must be explicit; do not pre-check it."]},"error-page":{section:"Templates",title:"Error Page",description:"A graceful fallback for 404, 500, and other error states. Give users a clear explanation and a direct path back to safety.",guidance:["State the error code and a plain-language explanation — avoid technical jargon.","Always provide a go-home action alongside a go-back option.","Match the error page visual weight to the rest of the product, not a generic OS page."]},"privacy-policy":{section:"Templates",title:"Privacy Policy",description:"A structured legal document page with section headings, readable prose, and clear separators. Designed to remain accessible and scannable without sacrificing completeness.",guidance:["Use headings to break long policy text into scannable sections.","Link directly to the relevant section from any consent flow that references the policy.","Version and date the policy at the top so users know when it was last updated."]},"terms-of-service":{section:"Templates",title:"Terms of Service",description:"A service terms page with clear headings, plain-language obligations, and a layout that stays readable from narrow phones to wide desktop viewports.",guidance:["State the usage permission, limitations, and disclaimer in separate sections to reduce legal ambiguity.","Keep the document scannable with short paragraphs and a compact summary rail.","Link to the terms directly from registration and pricing flows so consent is contextual."]},"code-block":{section:"Components",title:"Code Block",description:"A syntax-highlighted, read-only code display with optional filename label. Use it to render installation snippets, usage examples, or any formatted code string.",guidance:["Set the language prop to the language of the code — tsx, bash, json, etc. — for correct highlighting.","Pass a filename to give readers context on where the snippet belongs in a project.","Keep code snippets minimal; show only the lines needed to illustrate the concept being documented."],props:[{prop:"code",type:"string",required:!0,description:"Source code string to highlight."},{prop:"language",type:'"tsx" | "typescript" | "javascript" | "jsx" | "bash" | "json" | "markup"',default:'"tsx"',description:"Prism language identifier."},{prop:"copyLabel",type:"string",required:!0,description:"Label for the copy button (idle state)."},{prop:"copiedLabel",type:"string",required:!0,description:"Label for the copy button (copied state)."},{prop:"onCopy",type:"(code: string) => Promise<boolean> | boolean",required:!0,description:"Copy handler returning success status."}]},"language-switcher":{section:"Components",title:"Language Switcher",description:"A locale toggle component that updates the entire UI copy when clicked. Drop it into any topbar or settings area — the i18n provider broadcasts the change automatically.",guidance:["Place the switcher in a persistent surface (topbar or settings page) so users can find it from anywhere.","The switcher reflects the current locale; no extra state wiring is needed beyond the i18n provider.","Use the inline variant for topbars and the default variant for settings pages to match visual density."],props:[{prop:"variant",type:'"inline" | "sidebar"',default:'"inline"',description:'"inline" for topbars; "sidebar" for sidebar footer.'}]},"scroll-area":{section:"Layout",title:"ScrollArea",description:'A unified scrollable container. Defaults to overlay scrollbars that float above content without taking layout space. Use variant="native" for browser-native scrollbars.',guidance:['ScrollArea has two variants — "overlay" (default, custom floating scrollbar that auto-hides) and "native" (zero JS overhead, browser-native scrollbar).',"Set maxHeight to constrain vertical overflow — all content outside the viewport scrolls inside.","Set maxWidth to constrain horizontal overflow, useful for wide tables or code blocks.",'Pass a number for pixels (e.g. 200) or a string like "50vh" / "100%" for relative sizing.',"Overlay mode supports drag-to-scroll: click and drag on the scrollbar thumb.","ScrollArea is purely presentational; it does not virtualize or lazy-render children."],props:[{prop:"variant",type:'"overlay" | "native"',default:'"overlay"',description:'Scrollbar style. "overlay" uses a custom floating scrollbar; "native" uses the browser default.'},{prop:"maxHeight",type:"string | number",description:"Maximum height before content scrolls. Numbers are treated as pixels."},{prop:"maxWidth",type:"string | number",description:"Maximum width before content scrolls. Numbers are treated as pixels."},{prop:"children",type:"ReactNode",required:!0,description:"Content inside the scrollable viewport."},{prop:"className",type:"string",description:"Additional CSS class names."}]},separator:{section:"Layout",title:"Separator",description:"A visual divider that separates content sections. Renders as an <hr> element with horizontal or vertical orientation.",guidance:["Use horizontal separators between stacked sections; use vertical ones in toolbars or inline contexts.","The decorative prop controls the role attribute — set to false when the separator conveys semantic meaning.","Vertical separators need an explicit height to render visibly."],props:[{prop:"orientation",type:'"horizontal" | "vertical"',default:'"horizontal"',description:"The axis of the separator line."},{prop:"decorative",type:"boolean",default:"true",description:'When true, sets role="none"; when false, role="separator" with aria-orientation.'}]},timeline:{section:"Components",title:"Timeline",description:"A vertical list of chronologically ordered events. Each item shows a title, optional description, time, icon, and status indicator.",guidance:["Use Timeline for activity feeds, order tracking, or deployment history.",'Set status to "success", "warning", "danger", or "info" to color the timeline dot.',"Pass an icon on individual items to replace the default dot icon."],props:[{prop:"items",type:"TimelineItem[]",required:!0,description:"Array of timeline entries."},{prop:"items[].title",type:"string",required:!0,description:"Event title."},{prop:"items[].description",type:"string",description:"Optional event description."},{prop:"items[].time",type:"string",description:"Timestamp or date label."},{prop:"items[].icon",type:"ReactNode",description:"Custom icon replacing the default dot."},{prop:"items[].status",type:'"default" | "success" | "warning" | "danger" | "info"',description:"Visual status color for the dot."},{prop:"className",type:"string",description:"Additional CSS class names."}]},"tree-view":{section:"Components",title:"Tree View",description:"A hierarchical tree control with expandable/collapsible nodes, keyboard navigation, and optional selection state. Suitable for file browsers, organization charts, or nested settings.",guidance:["Use defaultExpanded to pre-expand certain nodes on initial render.","Each node requires a unique id for selection and expansion tracking.","TreeView supports controlled (selected/expanded) or uncontrolled modes via the corresponding props.","Disabled nodes cannot be selected or expanded but remain visible."],props:[{prop:"nodes",type:"TreeNode[]",required:!0,description:"Root-level tree nodes."},{prop:"selected",type:"string",description:"Controlled selected node id."},{prop:"defaultSelected",type:"string",description:"Uncontrolled initial selected node id."},{prop:"onSelect",type:"(id: string, node: TreeNode) => void",description:"Called when a node is selected."},{prop:"expanded",type:"string[]",description:"Controlled expanded node ids."},{prop:"defaultExpanded",type:"string[]",description:"Uncontrolled initial expanded node ids."},{prop:"onExpandedChange",type:"(ids: string[]) => void",description:"Called when expansion state changes."},{prop:"className",type:"string",description:"Additional CSS class names."}]},carousel:{section:"Components",title:"Carousel",description:"A slide-based carousel with dot indicators, arrow navigation, optional auto-play, and loop support. Each slide accepts arbitrary React content.",guidance:["Set autoPlay for unattended rotation — useful for hero banners or kiosks.","Disable loop for linear walkthroughs where users should not wrap around.","Carousel respects controlled index via the index prop for external pagination sync.","Hide arrows or dots with showArrows / showDots when building minimal variants."],props:[{prop:"items",type:"ReactNode[]",required:!0,description:"Array of slide content."},{prop:"defaultIndex",type:"number",default:"0",description:"Initial slide index (uncontrolled)."},{prop:"index",type:"number",description:"Controlled current slide index."},{prop:"onIndexChange",type:"(index: number) => void",description:"Called when the active slide changes."},{prop:"autoPlay",type:"boolean",default:"false",description:"Automatically advance slides on an interval."},{prop:"interval",type:"number",default:"3000",description:"Auto-play interval in milliseconds."},{prop:"loop",type:"boolean",default:"true",description:"Wrap from last slide back to first."},{prop:"showDots",type:"boolean",default:"true",description:"Show dot indicators."},{prop:"showArrows",type:"boolean",default:"true",description:"Show prev/next arrow buttons."},{prop:"className",type:"string",description:"Additional CSS class names."}]},toggle:{section:"Forms",title:"Toggle",description:"A two-state button that toggles between pressed and unpressed. ToggleGroup extends this to single/multiple selection among a set of options.",guidance:["Use Toggle for toolbar toggles (bold/italic, filter pills) and ToggleGroup for view mode switching.",'ToggleGroup type="single" behaves like a radio group; type="multiple" allows any combination.',"Both controlled (pressed/value) and uncontrolled (defaultPressed/defaultValue) modes are supported."],props:[{prop:"Toggle.pressed",type:"boolean",description:"Controlled pressed state."},{prop:"Toggle.defaultPressed",type:"boolean",default:"false",description:"Uncontrolled initial pressed state."},{prop:"Toggle.onPressedChange",type:"(pressed: boolean) => void",description:"Called when pressed state changes."},{prop:"Toggle.size",type:'"sm" | "md" | "lg"',default:'"md"',description:"Button size."},{prop:"Toggle.children",type:"ReactNode",required:!0,description:"Toggle button content (icon or text)."},{prop:"ToggleGroup.items",type:"ToggleGroupItem[]",required:!0,description:"Array of toggle options."},{prop:"ToggleGroup.value",type:"string | string[]",description:"Controlled selection value."},{prop:"ToggleGroup.defaultValue",type:"string | string[]",description:"Uncontrolled initial selection."},{prop:"ToggleGroup.onValueChange",type:"(value: string | string[]) => void",description:"Called when selection changes."},{prop:"ToggleGroup.type",type:'"single" | "multiple"',default:'"single"',description:"Selection mode."},{prop:"ToggleGroup.size",type:'"sm" | "md" | "lg"',default:'"md"',description:"Toggle group size preset."},{prop:"ToggleGroup.className",type:"string",description:"Additional CSS class names."},{prop:"ToggleGroupItem.value",type:"string",required:!0,description:"Unique item value."},{prop:"ToggleGroupItem.label",type:"ReactNode",required:!0,description:"Item display content."},{prop:"ToggleGroupItem.disabled",type:"boolean",description:"Disable the item."}]},rating:{section:"Forms",title:"Rating",description:"A star-based rating input that supports whole and half-star precision, controlled/uncontrolled modes, and read-only or disabled states.",guidance:["Set allowHalf to permit half-star precision for detailed feedback.","Use readOnly for display-only ratings (historical averages) and disabled when interaction should be blocked entirely.","The size prop adjusts star dimensions for different visual contexts."],props:[{prop:"value",type:"number",description:"Controlled rating value."},{prop:"defaultValue",type:"number",default:"0",description:"Uncontrolled initial value."},{prop:"onChange",type:"(value: number) => void",description:"Called when the rating changes."},{prop:"max",type:"number",default:"5",description:"Maximum number of stars."},{prop:"allowHalf",type:"boolean",default:"false",description:"Allow half-star values."},{prop:"disabled",type:"boolean",description:"Disable interaction."},{prop:"readOnly",type:"boolean",description:"Display-only mode."},{prop:"size",type:'"sm" | "md" | "lg"',default:'"md"',description:"Star size."},{prop:"label",type:"string",description:"Accessible label for the rating group."},{prop:"className",type:"string",description:"Additional CSS class names."}]},label:{section:"Forms",title:"Label",description:"A styled <label> element with an optional required indicator. Use it alongside any form control to provide accessible labelling.",guidance:["Always associate a Label with its form control — either by wrapping the input or using htmlFor.","Set required to automatically append a red asterisk after the label text.","Label is a thin wrapper; it passes all standard label attributes to the underlying element."],props:[{prop:"required",type:"boolean",description:"Show a required indicator (red asterisk) after the label text."},{prop:"children",type:"ReactNode",required:!0,description:"Label text content."}]},avatar:{section:"Content",title:"Avatar",description:"Displays a user avatar with image, fallback initials, or a placeholder icon. Supports multiple sizes and shapes.",guidance:["Always provide an accessible label via the name or alt prop.","The src prop accepts an image URL; on load failure it falls back to initials or fallback text.","Initials are generated from the name prop (up to 2 characters).","The circle shape is the default; use square for data-dense layouts."],props:[{prop:"src",type:"string",description:"Image URL for the avatar."},{prop:"name",type:"string",description:"User name used for initials and accessible label."},{prop:"size",type:'"xs" | "sm" | "md" | "lg" | "xl"',default:'"md"',description:"Avatar size."},{prop:"shape",type:'"circle" | "square"',default:'"circle"',description:"Avatar shape."},{prop:"fallback",type:"string",description:"Custom fallback text when no image or name is provided."}]},badge:{section:"Content",title:"Badge",description:"A compact label for status, category, or metadata. Use it inline with text or inside buttons, cards, and table cells.",guidance:["Use badges for compact status or category metadata, not decoration.","The accent variant is reserved for the primary brand color; success and warning convey semantic states.","Badges are inline elements — they flow naturally alongside text and other inline content."],props:[{prop:"variant",type:'"neutral" | "accent" | "success" | "warning"',default:'"neutral"',description:"Visual style variant."}]},skeleton:{section:"Content",title:"Skeleton",description:"A placeholder that mimics content shape while data loads. Supports text, rectangle, and circle variants, as well as multi-line text blocks.",guidance:["Match the skeleton shape to the real content to reduce layout shift.",'Use variant="text" with lines > 1 to simulate a paragraph placeholder.',"The last line of a multi-line text skeleton is shorter (70% width) to look more natural."],props:[{prop:"variant",type:'"text" | "rect" | "circle"',default:'"rect"',description:"Shape variant."},{prop:"width",type:"string | number",description:"Width. Numbers are treated as pixels."},{prop:"height",type:"string | number",description:"Height. Numbers are treated as pixels."},{prop:"lines",type:"number",default:"1",description:"Number of lines for text variant."}]},typography:{section:"Content",title:"Typography",description:"Heading and Text provide the core typography system. Heading renders <h1>-<h6> with level-based sizing; Text renders <p>, <span>, or <div> with variant, size, and weight options.",guidance:["Use Heading for section titles and hierarchical content structure.",'Use Text with variant="secondary" or "muted" for lower-emphasis content.',"The truncate prop clips overflow with an ellipsis — useful for table cells and sidebars.","Set the as prop on Heading to override the rendered HTML element without changing visual style."],props:[{prop:"Heading.level",type:"1 | 2 | 3 | 4 | 5 | 6",default:"2",description:"Heading level determines font size."},{prop:"Heading.as",type:'"h1" | "h2" | "h3" | "h4" | "h5" | "h6"',description:"Override the rendered HTML element."},{prop:"Heading.variant",type:'"default" | "secondary"',default:'"default"',description:"Visual variant."},{prop:"Heading.weight",type:'"normal" | "medium" | "semibold" | "bold"',default:'"bold"',description:"Font weight."},{prop:"Heading.truncate",type:"boolean",default:"false",description:"Truncate with ellipsis on overflow."},{prop:"Text.as",type:'"p" | "span" | "div"',default:'"p"',description:"Rendered HTML element."},{prop:"Text.variant",type:'"default" | "secondary" | "muted" | "danger" | "success"',default:'"default"',description:"Color variant."},{prop:"Text.size",type:'"sm" | "base" | "lg" | "xl"',default:'"base"',description:"Font size."},{prop:"Text.weight",type:'"normal" | "medium" | "semibold" | "bold"',default:'"normal"',description:"Font weight."},{prop:"Text.truncate",type:"boolean",default:"false",description:"Truncate with ellipsis on overflow."}]},"typography-base":{section:"Content",title:"Typography Base",description:"Ready-to-use typography CSS utilities and React components inspired by Bootstrap naming conventions. Ideal for articles, documentation, and API reference pages.",guidance:['Typography styles are loaded automatically when you import "vxui-re".',"Use className directly (e.g., vx-article, vx-section) or use React components (e.g., Article, Section).","All colors use CSS variables and automatically adapt to light/dark themes.","Built-in responsive breakpoints ensure a consistent experience on mobile and desktop."],props:[{prop:"Article",type:"Component",description:"Article container with standard document layout."},{prop:"ArticleHeader",type:"Component",description:"Article header containing title and description."},{prop:"ArticleTitle",type:"Component",description:"Article title (h1)."},{prop:"ArticleBody",type:"Component",description:"Article body container."},{prop:"Section",type:"Component",description:"Document section with anchor support."},{prop:"SectionHeading",type:"Component",description:"Section heading (h2) with optional anchor link."},{prop:"Pager",type:"Component",description:"Previous/next page navigation."},{prop:"PropsTable",type:"Component",description:"API props reference table."},{prop:"ArticleEmptyState",type:"Component",description:"Empty state display."},{prop:"StatsGrid",type:"Component",description:"Statistics metrics grid."}]},"date-pickers":{section:"Forms",title:"Date Pickers",description:"DatePicker provides a text-input with a popup calendar for date selection. Calendar is the standalone month-grid component used internally by DatePicker.",guidance:["Use DatePicker for form fields; use Calendar directly when embedding a date grid into a custom widget.","Set min/max to constrain the selectable date range.","The weekStartsOnMonday prop changes the first day of the week — default is Sunday.","DatePicker falls back to a Sheet-based layout on mobile viewports automatically."],props:[{prop:"DatePicker.value",type:"Date",description:"Controlled selected date."},{prop:"DatePicker.defaultValue",type:"Date",description:"Uncontrolled initial date."},{prop:"DatePicker.onChange",type:"(date: Date | undefined) => void",description:"Called when the date changes."},{prop:"DatePicker.label",type:"string",description:"Input label."},{prop:"DatePicker.hint",type:"string",description:"Helper text below the input."},{prop:"DatePicker.error",type:"string",description:"Error message."},{prop:"DatePicker.min",type:"Date",description:"Minimum selectable date."},{prop:"DatePicker.max",type:"Date",description:"Maximum selectable date."},{prop:"DatePicker.disabled",type:"boolean",description:"Disable the date picker."},{prop:"DatePicker.weekStartsOnMonday",type:"boolean",default:"false",description:"Start the week on Monday instead of Sunday."},{prop:"Calendar.value",type:"Date",description:"Controlled selected date."},{prop:"Calendar.defaultValue",type:"Date",description:"Uncontrolled initial date."},{prop:"Calendar.onChange",type:"(date: Date) => void",description:"Called when a date is clicked."},{prop:"Calendar.min",type:"Date",description:"Minimum selectable date."},{prop:"Calendar.max",type:"Date",description:"Maximum selectable date."},{prop:"Calendar.weekStartsOnMonday",type:"boolean",default:"false",description:"Start the week on Monday."}]},card:{section:"Content",title:"Card",description:"A flexible content container with multiple visual variants. Use Card as the outer wrapper, then compose CardHeader, CardTitle, CardDescription, and CardContent inside.",guidance:["Use the elevated variant for interactive cards that invite clicks.","Set hoverable to add a lift effect on hover — ideal for gallery or dashboard tiles.","Padding defaults to the card’s internal spacing; use the padding prop to adjust for dense or spacious layouts.","Card itself is a <section> — always include a heading (CardTitle) for accessibility."],props:[{prop:"variant",type:'"default" | "flat" | "elevated" | "outlined" | "ghost" | "filled"',default:'"default"',description:"Visual style preset."},{prop:"padding",type:'"none" | "sm" | "md" | "lg"',description:"Inner padding size. Defaults to the card's internal spacing."},{prop:"hoverable",type:"boolean",default:"false",description:"Add a hover lift effect — useful for clickable cards."}]},form:{section:"Forms",title:"Form",description:"A form composition system built from Form, FormField, FormLabel, FormDescription, FormMessage, and useFormField. Works with any input component to provide consistent label, hint, and error layout.",guidance:["Wrap each logical field group in a FormField to share error state via context.","Use FormLabel with required to show a required indicator automatically.","FormMessage renders the error from FormField context — no manual prop drilling needed.","Form sets noValidate by default; handle validation yourself or with a library."],props:[{prop:"Form",type:"—",description:"Standard <form> wrapper with noValidate and vx-form class."},{prop:"FormField",type:"—",description:"Wraps a field group; provides error context to FormMessage."},{prop:"FormField.error",type:"string",description:"Error message shown by FormMessage in this field."},{prop:"FormLabel",type:"—",description:"Renders a <label> with an optional required asterisk."},{prop:"FormLabel.required",type:"boolean",description:"Shows a red asterisk after the label text."},{prop:"FormDescription",type:"—",description:"Helper text rendered below the label."},{prop:"FormMessage",type:"—",description:"Error or helper message; auto-reads error from FormField context."},{prop:"useFormField",type:"() => { error?: string }",description:"Hook to read the current field's error context."}]},sheet:{section:"Overlays",title:"Sheet",description:"A slide-out panel that enters from the left, right, top, or bottom edge. Supports title, description, optional confirm action, and controlled or uncontrolled open state.",guidance:["Use Sheet for secondary content that does not require a full page navigation.",'Set side to "right" for detail panels, "bottom" for mobile-like action sheets.','The variant="action" preset hides the close button and shows a confirm footer — suitable for destructive or confirm actions.',"Control open state with the open/onOpenChange props or use defaultOpen for uncontrolled usage."],props:[{prop:"trigger",type:"ReactNode",description:"Element that opens the sheet on click."},{prop:"children",type:"ReactNode",required:!0,description:"Sheet body content."},{prop:"side",type:'"left" | "right" | "top" | "bottom"',default:'"right"',description:"Edge from which the sheet slides in."},{prop:"variant",type:'"default" | "action"',default:'"default"',description:'"action" hides close button and shows a confirm footer.'},{prop:"title",type:"ReactNode",description:"Sheet header title."},{prop:"description",type:"ReactNode",description:"Sheet header description."},{prop:"header",type:"ReactNode",description:"Custom header content (replaces title/description)."},{prop:"footer",type:"ReactNode",description:"Custom footer content."},{prop:"open",type:"boolean",description:"Controlled open state."},{prop:"defaultOpen",type:"boolean",description:"Uncontrolled initial open state."},{prop:"onOpenChange",type:"(open: boolean) => void",description:"Callback when open state changes."},{prop:"showClose",type:"boolean",default:"true",description:"Show the close button in the header."},{prop:"closeOnOverlayClick",type:"boolean",default:"true",description:"Close when clicking the backdrop."},{prop:"showConfirm",type:"boolean",default:"false",description:"Show a confirm button in the footer."},{prop:"confirmText",type:"string",default:'"Confirm"',description:"Confirm button label."},{prop:"confirmDisabled",type:"boolean",default:"false",description:"Disable the confirm button."},{prop:"onConfirm",type:"() => void",description:"Callback when confirm is clicked."},{prop:"width",type:"number",description:"Custom panel width in pixels."}]},"vxui-provider":{section:"Getting Started",title:"VXUI Provider",description:"A combined provider that wraps ThemeProvider, ViewportProvider, and ToastProvider into a single component. Use it at the app root to reduce nesting.",guidance:["VXUIProvider replaces the need to manually nest ThemeProvider + ViewportProvider + ToastProvider.","Pass themes, defaultTheme, and storageKey exactly as you would to ThemeProvider.","The component is fully optional — you can use the individual providers separately if you need more control."],props:[{prop:"themes",type:"ThemeRegistry",description:"Theme configuration passed to ThemeProvider."},{prop:"defaultTheme",type:"string",description:"Default theme name."},{prop:"storageKey",type:"string",default:'"vxui-theme"',description:"localStorage key for persisting the theme choice."},{prop:"children",type:"ReactNode",required:!0,description:"Application content."}]},viewport:{section:"Getting Started",title:"Viewport",description:"ViewportProvider monitors screen dimensions and exposes device type, orientation, and breakpoint information via the useViewport hook.",guidance:["ViewportProvider uses physical screen size (window.screen.width) for device type classification.","A screen width ≤ 1000px is classified as tablet or phone (distinguished by aspect ratio).","useViewport() returns isPhone, isTablet, isDesktop, isTabletPortrait, and raw screenWidth/screenHeight.",'Unlike CSS breakpoints, device detection uses physical screen size so a split-screen tablet is still detected as "tablet".'],props:[{prop:"children",type:"ReactNode",required:!0,description:"Application content."},{prop:"useViewport()",type:"ViewportContextValue",description:"Hook returning viewport state."},{prop:"useViewport().viewport",type:'"phone" | "tablet" | "desktop"',description:"Current device type classification."},{prop:"useViewport().isPhone",type:"boolean",description:"True when device is a phone (narrow screen)."},{prop:"useViewport().isTablet",type:"boolean",description:"True when device is a tablet."},{prop:"useViewport().isDesktop",type:"boolean",description:"True when device is a desktop (width > 1000px)."},{prop:"useViewport().isTabletPortrait",type:"boolean",description:"True when tablet AND portrait orientation."},{prop:"useViewport().screenWidth",type:"number",description:"Physical screen width in CSS pixels."},{prop:"useViewport().screenHeight",type:"number",description:"Physical screen height in CSS pixels."}]},constants:{section:"Getting Started",title:"Constants",description:"Layout breakpoints and device detection thresholds used by the responsive system. These constants are available for custom responsive logic.",guidance:["BREAKPOINTS.sm (640) is the phone-to-tablet CSS viewport breakpoint.","BREAKPOINTS.md (768) is the tablet-to-desktop CSS viewport breakpoint.","BREAKPOINTS.lg (1000) is used as PHONE_MAX_WIDTH for device type detection.","PHONE_ASPECT_RATIO_THRESHOLD (0.7) and TABLET_ASPECT_RATIO_THRESHOLD (0.75) distinguish phone vs tablet by aspect ratio.","CSS layout breakpoints and device detection thresholds serve different purposes and have different values."],props:[{prop:"BREAKPOINTS.sm",type:"640",description:"CSS layout breakpoint for phone-to-tablet (max-width: 640px)."},{prop:"BREAKPOINTS.md",type:"768",description:"CSS layout breakpoint for tablet (max-width: 768px)."},{prop:"BREAKPOINTS.lg",type:"1000",description:"CSS layout breakpoint for desktop (min-width: 1000px)."},{prop:"PHONE_MAX_WIDTH",type:"1000",description:"Physical screen width threshold for device detection."},{prop:"PHONE_ASPECT_RATIO_THRESHOLD",type:"0.7",description:"Aspect ratio (w/h) threshold — below this value the device is classified as phone."},{prop:"TABLET_ASPECT_RATIO_THRESHOLD",type:"0.75",description:"Aspect ratio threshold used as the upper bound for tablet classification."}]},calendar:{section:"Forms",title:"Calendar",description:"A month-based calendar view for selecting dates. Supports controlled and uncontrolled modes, min/max date constraints, and configurable start-of-week.",guidance:["Use Calendar standalone or inside DatePicker for a date selection experience.","Set value for controlled mode or defaultValue for uncontrolled mode.","Use min and max to restrict the selectable date range.","Set weekStartsOnMonday if your locale requires weeks to start on Monday."],props:[{prop:"value",type:"Date",description:"Controlled selected date."},{prop:"defaultValue",type:"Date",description:"Uncontrolled initial selected date."},{prop:"onChange",type:"(date: Date) => void",description:"Called when a day is selected."},{prop:"min",type:"Date",description:"Minimum selectable date."},{prop:"max",type:"Date",description:"Maximum selectable date."},{prop:"weekStartsOnMonday",type:"boolean",default:"false",description:"Start the week on Monday instead of Sunday."},{prop:"className",type:"string",description:"Additional CSS class."}]},"bottom-nav":{section:"Responsive",title:"Bottom Nav",description:"A mobile-style bottom navigation bar with support for active states, badges, and submenu popups. Ideal for phone-sized viewports where sidebar navigation is impractical.",guidance:["Use BottomNav inside MobileShell for a native mobile navigation experience.","Each item requires an icon and label — icons are rendered above labels.","Set the submenu prop on an item to show a popup menu instead of direct navigation.",'Badges support numeric values and string overflow (e.g., "99+").','The active item is marked with aria-current="page" for accessibility.'],props:[{prop:"items",type:"BottomNavItem[]",required:!0,description:"Array of navigation items."},{prop:"items[].key",type:"string",required:!0,description:"Unique item key."},{prop:"items[].label",type:"string",required:!0,description:"Display label below the icon."},{prop:"items[].icon",type:"ReactNode",required:!0,description:"Icon rendered above the label."},{prop:"items[].badge",type:"string | number",description:"Badge value displayed on the icon corner."},{prop:"items[].active",type:"boolean",description:"Mark this item as the active/current page."},{prop:"items[].onSelect",type:"() => void",description:"Click handler (ignored if submenu is set)."},{prop:"items[].submenu",type:"BottomNavSubMenuItem[]",description:"Submenu items shown on click as a popup."},{prop:"className",type:"string",description:"Additional CSS class."}]}}},d1={locale:"zh",label:"中文",searchPlaceholder:"搜索组件、页面、关键词…",searchAriaLabel:"搜索",searchEmpty:s=>`未找到与"${s}"匹配的结果`,searchNavigate:"导航",searchGo:"跳转",searchClose:"关闭",sidebarCollapse:"收起",sidebarExpand:"展开",sidebarCloseLabel:"关闭侧边栏",searchTrigger:"搜索",versionLabel:po,mobilePreview:"移动端预览",nav:{gettingStarted:"开始使用",layout:"布局",content:"内容",forms:"表单",components:"组件",overlays:"浮层",navigation:"导航",feedback:"反馈",templates:"模板",mobile:"响应式"},pages:{introduction:"简介","quick-start":"快速开始","shell-sidebar":"框架与侧边栏","grid-page":"网格与页面","nav-layout":"导航与布局","scroll-area":"滚动区域",separator:"分隔线",resizable:"可拖拽面板",typography:"排版","typography-base":"排版基础",badge:"徽章",avatar:"头像",skeleton:"骨架屏",card:"卡片","code-block":"代码块","language-switcher":"语言切换器",button:"按钮",elements:"基础元素","form-controls":"表单控件","form-inputs":"表单输入",toggle:"开关按钮",rating:"评分",label:"标签","date-pickers":"日期选择器","file-upload":"文件上传","color-picker":"颜色选择器",form:"表单组合",accordion:"折叠面板",tabs:"标签页",breadcrumb:"面包屑",pagination:"分页",stepper:"步骤条",progress:"进度条",spinner:"加载器",alert:"提示",toasts:"消息提示",table:"表格","data-list":"数据列表",timeline:"时间线","tree-view":"树形视图",carousel:"轮播","empty-states":"空状态",overlays:"浮层","data-display":"数据展示",navigation:"导航",feedback:"反馈组件",dialog:"弹窗",sheet:"侧滑面板",popover:"弹出框",tooltip:"工具提示","hover-card":"悬停卡片","dropdown-menu":"下拉菜单","context-menu":"右键菜单","command-palette":"命令面板","navigation-menu":"导航菜单",menubar:"菜单栏",mobile:"移动端组件","mobile-list":"移动端列表",image:"图片","pin-input":"验证码输入",descriptions:"描述列表",notification:"通知",result:"结果页","home-page":"主页","login-page":"登录页","register-page":"注册页","error-page":"错误页","privacy-policy":"隐私政策","terms-of-service":"服务条款","vxui-provider":"VXUI Provider",viewport:"视口",constants:"常量",calendar:"日历","bottom-nav":"底部导航"},docs:{guidance:"使用指南",guidanceDesc:"保持实现简洁,让设计系统完成大部分视觉工作。",preview:"预览",previewDesc:"该区域在系统中呈现效果的精简示例。",notes:"备注",primaryTheme:"主色调",primaryThemeDesc:"蓝灰色中性调将视觉重点保留给操作,而非装饰。",tokenScale:"Token 体系",tokenScaleDesc:"在引入页面特定样式之前,优先复用共享的 surface、border 和 text 变量。",themeStudio:"主题工作室",themeStudioDesc:"一次注册命名主题,用单个 key 即可切换所有组件。",liveControls:"交互控件",liveControlsDesc:"文档界面中仍有若干可复用的基础原语。",searchDocs:"搜索文档",searchDocsPlaceholder:"按钮、Token、布局…",compactDensity:"紧凑模式",compactDensityDesc:"收紧垂直间距,适合高密度操作界面。",systemPreview:"系统预览",openSection:"打开章节"},intro:{tagline:"一个轻量无依赖的 UI 框架,用于构建简洁的后台管理界面。设计 Token、组件和极简 SPA 运行时,统一在一套一致的视觉语言之下。",getStarted:"开始使用",browseComponents:"浏览组件",atAGlance:"概览",designTokens:"设计 Token",designTokensLead:"所有颜色、间距和字体值均以 vx 命名空间下的 CSS 自定义属性暴露。一次注册命名的亮色和暗色主题,之后通过主题 key 即可切换整个框架。",componentFamilies:"组件系列"},glance:{zeroDeps:"零依赖",zeroDepsHint:"原始 shell 运行时无需构建流水线。",components:"组件数",componentsHint:"布局、表单、反馈和列表原语,一套搞定。",coreCSS:"核心 CSS",coreCSSHint:"中性 Token 和结构样式保持精简。",darkMode:"深色模式",darkModeHint:"语义变量让相同组件可在多主题下复用。"},tokens:{primary:"主色",primaryDesc:"用于主要操作、活跃导航和强调的点缀色。",surface:"表面色",surfaceDesc:"文档卡片和框架区域的默认面板与内容背景色。",border:"边框色",borderDesc:"保持 UI 结构清晰且不增加视觉重量的轻量分隔色。",text:"文字色",textDesc:"用于标题、密集数据和正文的主前景色。"},families:{layout:"布局",layoutDesc:"应用框架、固定顶栏、章节节奏和响应式内容框架。",content:"内容展示",contentDesc:"排版、徽章、头像、卡片和代码块。",elements:"基础元素",elementsDesc:"用于操作、元数据和结构化内容块的低调原语。",forms:"表单",formsDesc:"输入框、开关、对话框和字段组合模式。",inputs:"输入类",inputsDesc:"文本输入框、下拉选择、文本域和数字选择器。",overlays:"浮层",overlaysDesc:"弹窗、弹出框、工具提示和侧滑面板。",navigation:"导航",navigationDesc:"菜单、导航栏和面包屑。",feedback:"反馈",feedbackDesc:"短暂的消息提示与打断性确认流程。"},dataList:{name:"名称",kind:"类型",updated:"更新时间"},modeLabel:s=>{var r;return`${(r={light:"浅色",dark:"深色",black:"纯黑"}[s])!=null?r:s}模式`},publicPages:{navLogin:"登录",navSignup:"注册",navDocs:"文档",navLogout:"退出登录",heroTag:`最新 · ${po}`,heroTitle:"轻量 React 组件库",heroLead:"零依赖 · 30+ 组件 · 内置主题与深色模式",heroCta:"立即开始",heroCtaAlt:"浏览文档",previewLead:"",previewAccessTitle:"访问方式",previewAccessMember:"登录后保留会话状态,随时回到你的工作区。",previewAccessGuest:"无需登录,直接以访客身份访问文档。",previewMobileTitle:"移动端适配",previewMobileLead:"导航与认证布局在移动端自然适配。",featuresSectionTitle:"为什么选择 vxUI",feat1:"零依赖",feat1Desc:"纯 CSS + TypeScript,无第三方依赖。",feat2:"30+ 组件",feat2Desc:"布局、表单、反馈和列表,一套搞定。",feat3:"可主题化",feat3Desc:"CSS 变量驱动,一键切换整套主题。",feat4:"深色模式",feat4Desc:"语义化 Token,浅色与深色主题均适配。",footerCopy:"© 2026 vxUI. 保留所有权利。",footerPrivacy:"隐私政策",footerGithub:"GitHub",footerWebsite:"官网",loginTitle:"欢迎回来",loginSubtitle:"登录以访问文档。",loginEmail:"邮箱",loginEmailPlaceholder:"you@example.com",loginPassword:"密码",loginPasswordPlaceholder:"至少 8 位字符",loginCta:"登录",loginNoAccount:"还没有账号?",loginRegister:"注册",loginGuest:"无需登录,直接继续 →",rememberMe:"记住这台设备",showPassword:"显示",hidePassword:"隐藏",authInfoTitle:"支持访客访问",authInfoBody:"如果你只是想查看文档,可以不登录直接进入。登录仅用于演示持久化会话的真实流程。",registerTitle:"创建账号",registerSubtitle:"立即开始使用 vxUI。",registerName:"姓名",registerNamePlaceholder:"张三",registerEmail:"邮箱",registerEmailPlaceholder:"zhangsan@company.com",registerPassword:"密码",registerPasswordPlaceholder:"创建一个强密码",registerTermsAgree:"我同意",registerTermsLink:"服务条款",registerTermsAnd:"和",registerPrivacyLink:"隐私政策",registerCta:"创建账号",registerHasAccount:"已有账号?",registerLogin:"登录",registerGuest:"无需登录,直接继续 →",validationNameRequired:"请输入你的姓名。",validationNameShort:"姓名至少需要 2 个字符。",validationEmailRequired:"请输入邮箱地址。",validationEmailInvalid:"请输入有效的邮箱地址。",validationPasswordRequired:"请输入密码。",validationPasswordShort:"密码至少需要 8 位字符。",validationTermsRequired:"创建账号前必须同意条款。",sessionLoginTitle:"已登录",sessionLoginBody:"你的会话已生效,现在可以以登录用户身份查看文档。",sessionRegisterTitle:"账号已创建",sessionRegisterBody:"示例账号已创建完成,文档后台现已可用。",sessionGuestTitle:"当前为访客模式",sessionGuestBody:"你正在无账号状态下浏览文档。",sessionLogoutTitle:"已退出登录",sessionLogoutBody:"持久化会话已清除,你已返回公共首页。",signedInAs:"当前登录",guestLabel:"访客",backHome:"← 返回首页",backToDocs:"返回文档"},pageDefs:{introduction:{section:"介绍",title:"简介",description:"一个轻量无依赖的 UI 框架,用于构建简洁的后台管理界面。设计 Token、组件和极简 SPA 运行时,统一在一套一致的视觉语言之下。",guidance:["先从框架和导航节奏开始,再对独立控件进行样式调整。","保持 Token 语义化,主题切换时无需逐页覆盖样式。","将文档、示例和生产界面视为同一套设计系统。"]},"quick-start":{section:"安装",title:"快速开始",description:"安装包,用 Provider 包裹应用,在组合业务页面前先挂载页面框架。",guidance:["在应用根组件附近统一引入共享样式表。","使用 AppShell 承载产品外壳,页面内容保持在 main 插槽内。","仅在应用需要时才添加 ThemeProvider 和 ToastProvider。"]},"shell-sidebar":{section:"组件",title:"框架与侧边栏",description:"Shell 负责侧边栏层级、固定顶栏间距和内容宽度。导航项支持通过 `children` 字段嵌套子菜单,点击父级项可展开或折叠子项。",guidance:["保持导航标签简短,确保折叠模式下仍可快速扫读。","使用章节标题分隔页面分组,而非添加视觉噪音。","在导航项中添加 `children` 即可实现可展开子菜单;设置 `defaultOpen: true` 可默认展开。","如果某子项为 active 状态,AppShell 会自动展开对应父级分组。",'你可以通过 `sidebarWidth` 属性轻松配置侧边栏的固定宽度(例如 `sidebarWidth={280}` 或 `"18rem"`)。'],props:[{prop:"brand",type:"string",default:'"VXUI"',description:"侧边栏顶部显示的品牌/产品名称。"},{prop:"brandCaption",type:"string",description:"品牌名称下方显示的次级说明文字。"},{prop:"brandIcon",type:"ReactNode",description:"侧边栏顶部渲染的 Logo 元素(图片或图标)。"},{prop:"title",type:"string",description:"顶栏中显示的页面标题。"},{prop:"description",type:"string",description:"顶栏标题下方的页面副标题/描述。"},{prop:"breadcrumb",type:"ReactNode",description:"顶栏中渲染的面包屑元素。"},{prop:"navSections",type:"AppShellNavSection[]",description:"按章节分组的结构化导航树。推荐优先使用此属性。"},{prop:"navItems",type:"AppShellNavItem[]",description:"平铺导航列表,自动归入单个无标题章节。"},{prop:"sidebarCollapsed",type:"boolean",default:"false",description:"将侧边栏折叠为仅显示图标的窄轨模式。"},{prop:"sidebarWidth",type:"number | string",default:"240px",description:'自定义侧边栏宽度,数字为 px 单位(如 280),也可传入 CSS 字符串(如 "18rem")。'},{prop:"density",type:'"comfortable" | "compact"',description:'布局密度。"compact" 收紧垂直间距,适合高密度操作界面。'},{prop:"headerActions",type:"ReactNode",description:"顶栏右侧操作区插槽(按钮、下拉菜单、用户菜单等)。"},{prop:"sidebarFooter",type:"ReactNode",description:"侧边栏底部内容插槽(用户信息、设置链接等)。"},{prop:"mobileNavOpen",type:"boolean",default:"false",description:"控制移动端导航遮罩层是否显示。"},{prop:"onSidebarToggle",type:"() => void",description:"点击折叠/展开按钮时的回调。"},{prop:"onMobileNavToggle",type:"() => void",description:"移动端导航遮罩切换按钮的回调,提供后才会启用移动端导航。"},{prop:"children",type:"ReactNode",required:!0,description:"渲染在 ShellContent 内的主页面内容。"}]},"grid-page":{section:"组件",title:"网格与页面",description:"为卡片、Token 和文档块使用简单的响应式网格。页面表面应保持中性,由内容承载视觉重点。",guidance:["在密集文档界面中优先使用 12 至 16 像素的间距。","较大间距应保留给章节边界,而非每张卡片。","限制最大宽度,确保长段落保持可读性。"]},button:{section:"组件",title:"按钮",description:"按钮承担系统中的主操作层级。变体、尺寸和宽度应该直接表达操作意图,而不需要额外拼样式。",guidance:["在同一区域内,实心按钮通常只保留给一个主操作。","次级和幽灵按钮更适合辅助动作,避免和主操作竞争视觉优先级。","在移动端单列布局或堆叠表单中,优先使用 fullWidth 提升点击面积。"],props:[{prop:"variant",type:'"solid" | "secondary" | "ghost" | "danger" | "outline" | "soft" | "danger-outline" | "primary-outline" | "gradient"',default:'"solid"',description:"按钮样式变体。"},{prop:"size",type:'"sm" | "md" | "lg"',default:'"md"',description:"按钮尺寸预设。"},{prop:"fullWidth",type:"boolean",default:"false",description:"拉伸填满容器宽度。"},{prop:"shape",type:'"rect" | "square" | "pill" | "circle"',default:'"rect"',description:"按钮形状预设。"},{prop:"loading",type:"boolean",default:"false",description:"显示加载旋转器并禁用按钮。"},{prop:"startIcon",type:"ReactNode",description:"左侧图标插槽。"},{prop:"endIcon",type:"ReactNode",description:"右侧图标插槽。"}]},elements:{section:"组件",title:"基础元素",description:'Button 构成操作的原子基础。其他原子组件(Badge、Text、Heading、CodeBlock、LanguageSwitcher)各有独立文档页,位于"内容展示"分类下。',guidance:["每个区域通常一个主操作就足够了。","使用 solid 变体作为区域内的主操作。","使用 secondary 或 ghost 变体作为辅助操作。"]},"form-controls":{section:"组件",title:"表单控件",description:"完整的表单原语集:单行输入框、多行文本域、可搜索单选下拉(Select)、带标签显示的多选下拉(MultiSelect)和时间选择器(TimePicker)。所有组件共享统一的 label / hint / error 布局体系。",guidance:["在管理界面中,表单控件始终应配有可见标签。","使用 Select 实现单选下拉;通过 `searchable={N}` 可设为仅当选项超过 N 条时显示搜索框。","当用户需要从有限列表中选择多个值时,使用 MultiSelect。","TimePicker 支持 24 小时制,通过 `seconds` prop 可启用秒选择列。","简短的辅助文本优于仅依赖 placeholder 的说明。"],props:[{prop:"Select.options",type:"SelectOption[]",required:!0,description:"可选项数组。"},{prop:"Select.value",type:"string",description:"受控选中值。"},{prop:"Select.defaultValue",type:"string",description:"非受控初始值。"},{prop:"Select.onChange",type:"(value: string | undefined) => void",description:"选中项变化时回调。"},{prop:"Select.placeholder",type:"string",default:'"Select..."',description:"未选择时的占位文本。"},{prop:"Select.label",type:"string",description:"字段标签。"},{prop:"Select.hint",type:"string",description:"辅助文本。"},{prop:"Select.error",type:"string",description:"错误信息。"},{prop:"Select.disabled",type:"boolean",description:"禁用选择器。"},{prop:"Select.clearable",type:"boolean",default:"false",description:"显示清除按钮。"},{prop:"Select.searchable",type:"boolean | number",default:"true",description:"启用搜索。设为数字时超过该数量才显示搜索。"},{prop:"MultiSelect.options",type:"MultiSelectOption[]",required:!0,description:"可选项数组。"},{prop:"MultiSelect.value",type:"string[]",description:"受控选中值。"},{prop:"MultiSelect.defaultValue",type:"string[]",default:"[]",description:"非受控初始值。"},{prop:"MultiSelect.onChange",type:"(value: string[]) => void",description:"选中项变化时回调。"},{prop:"MultiSelect.placeholder",type:"string",default:'"Select..."',description:"未选择时的占位文本。"},{prop:"MultiSelect.label",type:"string",description:"字段标签。"},{prop:"MultiSelect.hint",type:"string",description:"辅助文本。"},{prop:"MultiSelect.error",type:"string",description:"错误信息。"},{prop:"MultiSelect.disabled",type:"boolean",description:"禁用多选。"},{prop:"MultiSelect.clearable",type:"boolean",default:"false",description:"显示清除全部按钮。"},{prop:"MultiSelect.maxDisplay",type:"number",description:'最多可见标签数,超出显示 "+N more"。'},{prop:"Textarea.label",type:"string",description:"文本域上方的标签。"},{prop:"Textarea.hint",type:"string",description:"下方的辅助文本。"},{prop:"Textarea.resize",type:'"none" | "vertical" | "horizontal" | "both"',default:'"vertical"',description:"CSS 缩放方向。"},{prop:"TimePicker.value",type:"string",description:"受控时间值(HH:MM 或 HH:MM:SS)。"},{prop:"TimePicker.defaultValue",type:"string",description:"非受控初始时间。"},{prop:"TimePicker.onChange",type:"(value: string) => void",description:"时间变化时回调。"},{prop:"TimePicker.label",type:"string",description:"字段标签。"},{prop:"TimePicker.seconds",type:"boolean",default:"false",description:"显示秒列。"}]},navigation:{section:"组件",title:"导航",description:"导航模式应首先传达位置,其次才是可用的移动方向。Tabs 最适合在单个页面上下文中切换兄弟视图。",guidance:["在控件结构中镜像信息架构。","使活跃状态明显,而不仅依赖颜色。","避免在一个控件中混用路由导航和本地视图状态。"]},"data-list":{section:"组件",title:"数据列表",description:"列表和表格应优先考虑扫读效率而非装饰。使用宽松的对齐、轻量分隔线,仅在需要时增加操作密度。",guidance:["精确对齐表头和行内容,减少视觉偏移。","使用细微边框而非为每一行添加重型卡片外壳。","将破坏性操作保留在行操作组中,而非内联文字链接。"]},dialog:{section:"浮层",title:"弹窗",description:"中断用户操作以确认操作或展示关键信息的模态对话框。支持多种尺寸、放置选项和关闭按钮。",guidance:["在需要用户做出决定才能继续时使用 Dialog。",'"sm" 适用于快速确认,"lg" 适用于表单或详细信息展示。',"Dialog 会捕获焦点并阻止与背景页面的交互。","当内容超出最大高度时,主体区域会滚动,标题与底部按钮保持固定。"],props:[{prop:"trigger",type:"ReactNode",required:!0,description:"打开弹窗的触发元素。"},{prop:"title",type:"string",required:!0,description:"弹窗标题。"},{prop:"description",type:"string",description:"可选的描述文字。"},{prop:"children",type:"ReactNode",description:"弹窗主体内容。"},{prop:"footer",type:"ReactNode",description:"自定义页脚内容。"},{prop:"size",type:'"sm" | "md" | "lg" | "xl" | "full"',default:'"md"',description:"弹窗宽度预设。"},{prop:"placement",type:'"center" | "top" | "right" | "bottom" | "left" | "top-left" | "top-right" | "bottom-left" | "bottom-right" | "top-half" | "right-half" | "bottom-half" | "left-half"',default:'"center"',description:"弹窗放置位置。"},{prop:"scrollable",type:"boolean",default:"true",description:"内容溢出时允许滚动。"},{prop:"closable",type:"boolean",default:"true",description:"显示关闭按钮。"},{prop:"open",type:"boolean",description:"受控打开状态。"},{prop:"defaultOpen",type:"boolean",description:"非受控初始打开状态。"},{prop:"onOpenChange",type:"(open: boolean) => void",description:"打开状态变化时回调。"},{prop:"onConfirm",type:"() => void",description:"显示内置确认按钮。"},{prop:"confirmLabel",type:"string",default:'"Confirm"',description:"确认按钮文本。"},{prop:"onCancel",type:"() => void",description:"显示内置取消按钮。"},{prop:"cancelLabel",type:"string",default:'"Cancel"',description:"取消按钮文本。"},{prop:"confirmVariant",type:'"solid" | "danger"',default:'"solid"',description:"确认按钮样式变体。"},{prop:"className",type:"string",description:"额外的 CSS 类名。"},{prop:"padding",type:'"none" | "sm" | "md" | "lg"',default:'"md"',description:"内容内边距预设。"}]},popover:{section:"浮层",title:"弹出框",description:"可包含表单、按钮和结构化内容的丰富弹出面板。与 Tooltip 不同,Popover 可包含交互元素,需要明确的关闭操作。",guidance:["Popover 可包含交互内容——表单、按钮、链接。","始终提供关闭机制(点击外部或显式关闭按钮)。","Tooltip 用于只读标签,Popover 用于交互内容。"],props:[{prop:"content",type:"ReactNode",required:!0,description:"弹出内容(表单、按钮、链接)。"},{prop:"children",type:"ReactNode",required:!0,description:"触发元素。"},{prop:"placement",type:'"top" | "bottom" | "left" | "right"',default:'"bottom"',description:"弹出位置。"},{prop:"trigger",type:'"click" | "hover"',default:'"click"',description:"触发方式。"},{prop:"open",type:"boolean",description:"受控打开状态。"},{prop:"onOpenChange",type:"(open: boolean) => void",description:"打开状态变化时回调。"},{prop:"className",type:"string",description:"额外的 CSS 类名。"}]},tooltip:{section:"浮层",title:"工具提示",description:"悬停或聚焦时出现的简短非交互标签,用于描述 UI 元素。仅包含文本——无链接、按钮或表单。",guidance:["Tooltip 仅用于补充文本——绝不可放入交互内容。","Tooltip 在悬停和聚焦时出现,无需关闭操作。","保持 Tooltip 文本简短——一到五个词为最佳。"],props:[{prop:"content",type:"ReactNode",required:!0,description:"工具提示文本内容。"},{prop:"children",type:"ReactNode",required:!0,description:"触发元素。"},{prop:"placement",type:'"top" | "bottom" | "left" | "right"',default:'"top"',description:"提示位置。"},{prop:"delay",type:"number",default:"600",description:"显示前延迟(毫秒)。"}]},"hover-card":{section:"浮层",title:"悬停卡片",description:"悬停时出现的卡片,展示链接元素的更丰富预览。适用于用户资料、文档预览或引用摘要。",guidance:["使用 HoverCard 预览相关内容,无需导航离开。","HoverCard 可包含比 Tooltip 更丰富的内容——图片、元数据、链接。","确保触发器区域足够大,避免卡片在到达前消失。"],props:[{prop:"content",type:"ReactNode",required:!0,description:"卡片内容(图片、元数据、链接)。"},{prop:"children",type:"ReactNode",required:!0,description:"触发元素。"},{prop:"placement",type:'"top" | "bottom" | "left" | "right"',default:'"bottom"',description:"卡片位置。"},{prop:"delay",type:"number",default:"400",description:"显示前延迟(毫秒)。"},{prop:"className",type:"string",description:"额外的 CSS 类名。"}]},"dropdown-menu":{section:"浮层",title:"下拉菜单",description:"点击时打开的菜单,展示分组操作或导航项列表。支持嵌套分组、键盘导航和禁用项。",guidance:["在带标签的菜单组中对相关操作分组。","在无关操作组之间使用分隔线。","支持键盘导航——方向键、Enter 和 Escape。"],props:[{prop:"trigger",type:"ReactNode",required:!0,description:"打开菜单的触发元素。"},{prop:"groups",type:"DropdownMenuGroupProps[]",description:"分组菜单项(组间显示分隔线)。"},{prop:"items",type:"DropdownMenuItemProps[]",description:"平铺菜单项列表。"},{prop:"align",type:'"left" | "right"',default:'"left"',description:"菜单相对触发器的对齐方式。"},{prop:"open",type:"boolean",description:"受控打开状态。"},{prop:"onOpenChange",type:"(open: boolean) => void",description:"打开状态变化时回调。"},{prop:"className",type:"string",description:"额外的 CSS 类名。"}]},"context-menu":{section:"浮层",title:"右键菜单",description:"右键点击时出现的菜单,提供与点击元素相关的操作列表。支持与 DropdownMenu 相同的项和分组 API。",guidance:["使用 ContextMenu 公开用户通过右键发现的次要操作。","始终提供访问相同操作的替代方式(工具栏、按钮)。","保持菜单简短——长右键菜单难以快速扫读。"],props:[{prop:"groups",type:"ContextMenuGroupProps[]",description:"分组菜单项。"},{prop:"items",type:"ContextMenuItemProps[]",description:"平铺菜单项列表。"},{prop:"children",type:"ReactNode",required:!0,description:"触发右键菜单的元素。"},{prop:"className",type:"string",description:"额外的 CSS 类名。"}]},"command-palette":{section:"浮层",title:"命令面板",description:"键盘驱动的搜索浮层,让用户无需离开键盘即可跳转到任意页面或触发任意操作。全局挂载、绑定快捷键,传入扁平的条目列表即可使用。",guidance:["保持条目列表扁平且按标签可搜索——避免隐藏分类嵌套。","从与侧边栏相同的导航数据填充条目,保持两个入口同步。","绑定 ⌘K(Mac)或 Ctrl+K(Windows)快捷键。"],props:[{prop:"entries",type:"SearchEntry[]",required:!0,description:"可搜索条目的扁平列表。"},{prop:"open",type:"boolean",required:!0,description:"受控打开状态。"},{prop:"onClose",type:"() => void",required:!0,description:"面板关闭时回调。"},{prop:"onSelect",type:"(key: string) => void",required:!0,description:"条目被选中时回调。"},{prop:"placeholder",type:"string",default:'"Search components, pages, keywords..."',description:"搜索输入框占位符。"},{prop:"ariaLabel",type:"string",default:'"Search"',description:"对话框的无障碍标签。"},{prop:"labelNavigate",type:"string",default:'"Navigate"',description:"底部导航提示文字。"},{prop:"labelGo",type:"string",default:'"Go"',description:"底部确认提示文字。"},{prop:"labelClose",type:"string",default:'"Close"',description:"底部关闭提示文字。"}]},"navigation-menu":{section:"导航",title:"导航菜单",description:"支持悬停时多级下拉菜单的横向导航栏。适用于具有嵌套章节的顶级站点导航。",guidance:["在具有多层内容的站点级导航中使用 NavigationMenu。","每个项可包含子项用于次级导航。","保持顶级项简短——每个一两个词即可。"],props:[{prop:"items",type:"NavMenuItem[]",required:!0,description:"顶级导航项。"},{prop:"NavMenuItem.label",type:"string",required:!0,description:"项显示文本。"},{prop:"NavMenuItem.href",type:"string",description:"链接 URL(无子项时使用)。"},{prop:"NavMenuItem.items",type:"NavMenuSubItem[]",description:"子菜单项。"}]},menubar:{section:"导航",title:"菜单栏",description:"通常用于应用级操作(文件、编辑、视图)的横向菜单栏。支持菜单间的键盘导航。",guidance:["Menubar 遵循桌面应用惯例——用于应用级命令菜单。","每个菜单可包含项、分组和分隔线。","方向键在菜单间导航;Escape 关闭当前菜单。"],props:[{prop:"menus",type:"MenubarMenuProps[]",required:!0,description:"顶级菜单定义。"},{prop:"MenubarMenu.label",type:"string",required:!0,description:"菜单触发标签。"},{prop:"MenubarMenu.groups",type:"MenubarGroupProps[]",description:"分组项(含分隔线)。"},{prop:"MenubarMenu.items",type:"MenubarItemProps[]",description:"平铺项列表。"},{prop:"MenubarItem.label",type:"ReactNode",required:!0,description:"项显示内容。"},{prop:"MenubarItem.icon",type:"ReactNode",description:"项图标。"},{prop:"MenubarItem.shortcut",type:"string",description:"快捷键文本。"},{prop:"MenubarItem.disabled",type:"boolean",description:"禁用该项。"},{prop:"MenubarItem.danger",type:"boolean",description:"应用危险样式。"},{prop:"MenubarItem.onClick",type:"() => void",description:"点击回调。"}]},resizable:{section:"布局",title:"可拖拽面板",description:"由 ResizablePanelGroup、ResizablePanel 和 ResizableHandle 组成的分割面板布局组件,支持水平和垂直排列且分隔线可拖拽。",guidance:["使用 ResizablePanelGroup 作为外层容器,内部嵌套 ResizablePanel 和 ResizableHandle。",'direction 设为 "horizontal" 实现左右布局,"vertical" 实现上下布局。',"面板之间的拖拽手柄可拖动调整各面板尺寸。"],props:[{prop:"ResizablePanelGroup.direction",type:'"horizontal" | "vertical"',default:'"horizontal"',description:"面板布局方向。"},{prop:"ResizablePanelGroup.disabled",type:"boolean",default:"false",description:"禁用所有分隔线拖拽。"},{prop:"ResizablePanel.defaultSize",type:"number",default:"50",description:"初始大小百分比。"},{prop:"ResizablePanel.minSize",type:"number",default:"10",description:"最小大小百分比。"},{prop:"ResizablePanel.maxSize",type:"number",default:"90",description:"最大大小百分比。"}]},"file-upload":{section:"表单",title:"文件上传",description:"支持拖拽上传和点击浏览的文件上传区域。支持多文件上传、预览和移除。",guidance:["使用 multiple 属性接受多个文件——每个文件以预览卡片展示。","通过 onChange 回调获取上传文件的信息(名称、大小和文件对象)。","组件自带拖拽状态管理和视觉反馈。"],props:[{prop:"label",type:"string",description:"字段标签文本。"},{prop:"hint",type:"string",description:"上传区域下方的辅助文本。"},{prop:"error",type:"string",description:"错误信息文本。"},{prop:"accept",type:"string",description:'文件输入 accept 属性(如 ".png,.jpg")。'},{prop:"multiple",type:"boolean",default:"false",description:"允许多文件选择。"},{prop:"maxSize",type:"number",description:"最大文件大小(字节)。"},{prop:"disabled",type:"boolean",description:"禁用上传区域。"},{prop:"onFiles",type:"(files: File[]) => void",description:"选择文件后的回调。"}]},"color-picker":{section:"表单",title:"颜色选择器",description:"弹出式颜色选择控件,包含色相、饱和度和亮度滑块。支持预设色板和自定义十六进制输入。",guidance:["适用于品牌颜色配置、标签颜色或主题自定义。","同时提供可视化选取器和精确十六进制输入。","可通过 swatches 属性定制品牌专属色板。"],props:[{prop:"value",type:"string",description:"受控十六进制颜色值。"},{prop:"defaultValue",type:"string",default:'"#3b82f6"',description:"非受控初始颜色。"},{prop:"onChange",type:"(color: string) => void",description:"颜色变化时回调。"},{prop:"label",type:"string",description:"字段标签文本。"},{prop:"hint",type:"string",description:"选择器下方辅助文本。"},{prop:"error",type:"string",description:"错误信息文本。"},{prop:"disabled",type:"boolean",description:"禁用选择器。"},{prop:"presets",type:"string[]",description:"预设色块十六进制颜色数组。"},{prop:"showPresets",type:"boolean",default:"true",description:"显示/隐藏预设色块。"}]},accordion:{section:"组件",title:"折叠面板",description:"垂直堆叠的可折叠面板列表。每个面板有可切换展开/折叠的标题区域。支持单面板和双面板同时展开。",guidance:["适用于 FAQ、设置面板和渐进式披露模式。",'默认每次只能展开一个面板(type="single")。',"设置 allowMultiple 可允许多个面板同时保持展开状态。"],props:[{prop:"items",type:"AccordionItem[]",required:!0,description:"折叠面板定义数组。"},{prop:"multiple",type:"boolean",default:"false",description:"允许多个面板同时展开。"},{prop:"defaultOpen",type:"string[]",default:"[]",description:"初始展开面板的键名数组。"},{prop:"className",type:"string",description:"额外的 CSS 类名。"},{prop:"AccordionItem.key",type:"string",required:!0,description:"面板的唯一键。"},{prop:"AccordionItem.title",type:"ReactNode",required:!0,description:"面板标题内容。"},{prop:"AccordionItem.content",type:"ReactNode",required:!0,description:"面板正文内容。"},{prop:"AccordionItem.disabled",type:"boolean",description:"禁用该面板。"}]},tabs:{section:"组件",title:"标签页",description:"用于在多个内容面板间切换的标签页组件。支持受控和非受控模式及键盘导航。",guidance:["使用 Tabs 将相关内容组织到独立面板中,无需跳转到新页面。","TabsList 存放触发按钮,TabsContent 存放面板内容。","非受控使用 defaultValue,受控模式使用 value/onValueChange。"],props:[{prop:"value",type:"string",description:"受控选中标签值。"},{prop:"defaultValue",type:"string",description:"非受控初始标签。"},{prop:"onValueChange",type:"(value: string) => void",description:"标签切换时回调。"},{prop:"orientation",type:'"horizontal" | "vertical"',default:'"horizontal"',description:"标签布局方向。"}]},breadcrumb:{section:"组件",title:"面包屑",description:"显示用户在页面层级中当前位置的导航辅助。每个分段对应相应层级的链接。",guidance:["面包屑反映 URL 深度——单层页面可完全省略。","使用 separator 属性自定义分段之间的分隔符。","最后一个分段应为当前页面(非链接),以确保无障碍。"],props:[{prop:"items",type:"BreadcrumbItem[]",required:!0,description:"面包屑分段的有序列表。"},{prop:"separator",type:"ReactNode",default:"Chevron",description:"分段间的自定义分隔符。"},{prop:"className",type:"string",description:"额外的 CSS 类名。"},{prop:"BreadcrumbItem.href",type:"string",description:"分段的链接 URL。"},{prop:"BreadcrumbItem.onClick",type:"() => void",description:"分段点击处理函数。"}]},pagination:{section:"组件",title:"分页",description:"将大数据集分页展示的导航控件。显示页码及上/下翻页按钮,可选页面大小选择器。",guidance:["显示总页数,让用户了解数据集大小。","使用 siblings 属性控制在当前页周围显示的页码数量。","onPageChange 回调返回新页码,用于外部数据加载。"],props:[{prop:"page",type:"number",required:!0,description:"当前页码(从 1 开始)。"},{prop:"total",type:"number",required:!0,description:"数据总条数。"},{prop:"pageSize",type:"number",default:"10",description:"每页条数。"},{prop:"siblingCount",type:"number",default:"1",description:"当前页两侧显示的页码按钮数。"},{prop:"onChange",type:"(page: number) => void",required:!0,description:"点击页码时回调。"},{prop:"className",type:"string",description:"额外的 CSS 类名。"}]},stepper:{section:"组件",title:"步骤条",description:"在线性工作流中可视化用户当前位置的多步骤进度指示器。支持已完成、进行中、待处理和错误状态。",guidance:["适用于多页表单、结账流程或设置向导。",'每一步可以是 "completed"、"active"、"pending" 或 "error" 状态。',"错误状态的步骤将吸引注意力,方便用户导航回去修复。"],props:[{prop:"steps",type:"StepItem[]",required:!0,description:"步骤定义数组。"},{prop:"currentStep",type:"number",default:"0",description:"当前激活步骤的索引(从 0 开始)。"},{prop:"orientation",type:'"horizontal" | "vertical"',default:'"horizontal"',description:"布局方向。"},{prop:"className",type:"string",description:"额外的 CSS 类名。"}]},progress:{section:"组件",title:"进度条",description:"指示确定性操作完成百分比的横向进度条。支持带标签和不带标签的变体。",guidance:["对已知持续时间的确定性操作使用 Progress(如文件上传、数据导出)。","对未知持续时间的等待使用 Spinner。","value 属性表示相对于 max 的当前进度,value 等于 max 时表示完成。"],props:[{prop:"value",type:"number",default:"0",description:"当前进度值。"},{prop:"max",type:"number",default:"100",description:"最大值(分母)。"},{prop:"label",type:"string",description:"进度条上方文本标签。"},{prop:"showLabel",type:"boolean",default:"false",description:"显示百分比文字。"},{prop:"size",type:'"sm" | "md" | "lg"',default:'"md"',description:"进度条粗细预设。"},{prop:"variant",type:'"default" | "success" | "warning" | "danger" | "rainbow"',default:'"default"',description:"进度条颜色变体。"},{prop:"indeterminate",type:"boolean",default:"false",description:"不确定模式(动画)。"}]},spinner:{section:"组件",title:"加载器",description:"用于不确定等待状态的旋转指示器。在内容正在加载或处理且时长未知时使用。",guidance:["对短暂且剩余时间未知的等待使用 Spinner。","对已知持续时间的确定性操作使用 Progress。",'Spinner 支持 size 属性("sm"、"md"、"lg")以匹配周围上下文。'],props:[{prop:"size",type:'"sm" | "md" | "lg"',default:'"md"',description:"旋转器尺寸(16/24/36 px)。"},{prop:"label",type:"string",default:'"Loading…"',description:"无障碍 aria-label 文本。"}]},alert:{section:"组件",title:"提示",description:"传达成功、警告、危险或信息状态的重要状态消息。用户可选择关闭。",guidance:["对持久性或页面级状态消息使用 Alert——重要信息优先于 Toast。",'支持 "info"、"success"、"warning" 和 "danger" 变体。',"onClose 属性可添加关闭按钮,用户可手动关闭提示。"],props:[{prop:"variant",type:'"info" | "success" | "warning" | "danger"',default:'"info"',description:"样式变体。"},{prop:"title",type:"string",description:"提示标题文本。"},{prop:"icon",type:"ReactNode",description:"自定义图标覆盖。"},{prop:"onClose",type:"() => void",description:"关闭按钮回调(省略时不显示关闭按钮)。"}]},table:{section:"组件",title:"表格",description:"支持可排序列、多种视觉变体、行选择和内置防抖自动搜索的数据表格。支持无边框、无头部、固定布局和可点击行。",guidance:["Table 支持可排序列——后端数据时请将排序状态向上委托。",'使用 variant="dark" 强调视觉,或用 variant="outline" 极简风格。',"开启 selectable 添加复选框行选择,通过 selectedRows/onSelectionChange 控制状态。","内置搜索自动防抖(默认 200ms),无需外部状态管理。","对列设置 searchable: false 可将其排除在文本搜索之外。"],props:[{prop:"columns",type:"TableColumn[]",required:!0,description:"列定义。"},{prop:"data",type:"T[]",required:!0,description:"行数据。"},{prop:"size",type:'"sm" | "md" | "lg"',default:'"md"',description:"行高预设。"},{prop:"striped",type:"boolean",default:"false",description:"斑马纹交替背景。"},{prop:"hoverable",type:"boolean",default:"true",description:"行悬停高亮。"},{prop:"bordered",type:"boolean",default:"false",description:"单元格内边框。"},{prop:"stickyHeader",type:"boolean",default:"false",description:"固定表头。"},{prop:"stickyFilter",type:"boolean",default:"false",description:"搜索栏吸顶,滚动时保持搜索框可见。"},{prop:"borderless",type:"boolean",default:"false",description:"移除所有边框(包括外层包裹器边框)。"},{prop:"headless",type:"boolean",default:"false",description:"隐藏表头行。"},{prop:"loading",type:"boolean",default:"false",description:"显示加载遮罩。"},{prop:"variant",type:'"default" | "dark" | "outline"',default:'"default"',description:"视觉风格变体。"},{prop:"fixed",type:"boolean",default:"false",description:"固定表格布局(列宽严格执行,文本截断不换行)。"},{prop:"removeBorders",type:'"all" | ("top" | "right" | "bottom" | "left")[]',description:"移除指定边边框或四边全部移除,同步调整圆角。"},{prop:"flush",type:"boolean",default:"false",description:"嵌入模式:移除外边框、圆角和内边距,适合直接放入 Card 等容器。"},{prop:"onRowClick",type:"(row: T, index: number) => void",description:"行点击回调。"},{prop:"rowClassName",type:"string | ((row: T, index: number) => string)",description:"自定义行类名。"},{prop:"selectable",type:"boolean",default:"false",description:"启用复选框行选择。"},{prop:"selectedRows",type:"Set<number>",description:"受控选中行索引集合。"},{prop:"onSelectionChange",type:"(selected: Set<number>) => void",description:"选中行变化回调。"},{prop:"searchDebounce",type:"number",default:"200",description:"搜索防抖延迟(毫秒),设为 0 禁用。"},{prop:"searchColumns",type:"string[]",description:"限定文本搜索的列 key 列表。"},{prop:"sortColumn",type:"string",description:"受控排序列键名。"},{prop:"sortDirection",type:'"asc" | "desc"',description:"受控排序方向。"},{prop:"onSortChange",type:"(column: string, direction: SortDirection) => void",description:"排序变化回调。"},{prop:"rounded",type:"boolean",default:"false",description:"移除外层包裹器圆角。"},{prop:"caption",type:"string",description:"表格标题,用于无障碍说明。"}]},"empty-states":{section:"组件",title:"空状态",description:"空状态应解释缺少什么、为何重要以及下一步操作是什么。它不应让用户感到走投无路。EmptyState 组件提供了包含图标、标题、描述和操作插槽的一致布局。",guidance:["指明缺失的对象,让用户清楚自己在看什么。","通过 action 属性提供一个清晰的恢复操作。","视觉重量应轻于成功或警告反馈。"],props:[{prop:"icon",type:"ReactNode",description:"标题上方展示的插画或图标。"},{prop:"title",type:"string",required:!0,description:"解释缺失对象的主标题。"},{prop:"description",type:"string",description:"标题下方的可选说明文字。"},{prop:"action",type:"ReactNode",description:"用于恢复的操作按钮或链接。"},{prop:"className",type:"string",description:"额外的 CSS 类名。"}]},toasts:{section:"组件",title:"消息提示",description:"Toast 在不打断任务流程的情况下确认短暂事件。保持简洁、具体且易于关闭。",guidance:["使用 success 和 info 确认后台操作。","将阻塞性或破坏性状态升级为对话框,而非堆叠 Toast。","避免在每次页面切换时重复相同消息。"],props:[{prop:"push",type:"(toast: ToastInput) => void",description:"显示 Toast 通知。"},{prop:"ToastInput.title",type:"string",required:!0,description:"Toast 标题文本。"},{prop:"ToastInput.description",type:"string",description:"可选的描述文本。"},{prop:"ToastInput.tone",type:'"info" | "success" | "warning" | "danger"',default:'"info"',description:"Toast 视觉风格。"}]},feedback:{section:"反馈",title:"反馈组件",description:"Alert、Progress、Spinner、Stepper 和 Toast 在不阻塞布局的情况下指示应用状态。",guidance:["对短暂的不确定等待使用 Spinner;对确定性操作使用 Progress。","对持久性或页面级状态消息,优先使用 Alert 而非 Toast。"]},overlays:{section:"组件",title:"浮层",description:"Dialog、ContextMenu、HoverCard、Tooltip、Popover 和 DropdownMenu 在页面上方将临时内容和操作置于上方。",guidance:["Tooltip 仅用于补充文本,绝不放置可交互内容。","Popover 可包含表单和富内容;需要明确的关闭触发器。","DropdownMenu 应对相关操作分组,并支持键盘导航。"]},"nav-layout":{section:"布局",title:"导航与布局",description:"Tabs、Accordion、Breadcrumb 和 Resizable 帮助结构化展示内容。其他布局组件(ScrollArea、Separator)各有独立文档页。",guidance:["Breadcrumb 反映路由深度——单层页面可省略。","Pagination 应显示总页数,让用户了解数据集大小。","Accordion 最适合渐进式披露,而非主导航。"]},"data-display":{section:"组件",title:"数据展示",description:"Table 和 EmptyState 以紧凑方式呈现结构化数据。其他数据组件(Avatar、Badge、Card、Carousel、Timeline、TreeView)各有独立文档页。",guidance:["Table 支持可排序列——后端数据时请将排序状态向上委托。","在密集表格中使用斑马纹可帮助视线在大段行间对齐追踪。","EmptyState 应尽可能包含一个明确的恢复操作。"]},"form-inputs":{section:"表单",title:"表单输入",description:"Checkbox、Radio、Switch、Slider、NumberInput、TagInput、SegmentedControl 和 Input 在文本输入框之外扩展了表单词汇。其他表单组件(Label、Toggle、Rating、DatePicker)各有独立文档页。",guidance:["使用 RadioGroup 对单选按钮分组,共享 name 和语义。","Slider 适合数值范围,配合 showValue 可提供即时反馈。","Textarea 默认可垂直调整尺寸——仅在固定高度容器中禁用调整。","Switch 用于即时状态切换(如设置开关),Checkbox 用于表单提交或多选。"],props:[{prop:"Checkbox.label",type:"ReactNode",description:"复选框旁边的标签。"},{prop:"Checkbox.description",type:"string",description:"标签下方的描述。"},{prop:"Checkbox.indeterminate",type:"boolean",description:"显示不确定状态。"},{prop:"Radio.label",type:"ReactNode",description:"单选按钮旁边的标签。"},{prop:"Radio.description",type:"string",description:"标签下方的描述。"},{prop:"RadioGroup.label",type:"string",description:"作为 <legend> 渲染的分组标签。"},{prop:"RadioGroup.children",type:"ReactNode",required:!0,description:"分组内的 Radio 组件。"},{prop:"RadioGroup.className",type:"string",description:"额外的 CSS 类名。"},{prop:"Switch.label",type:"string",required:!0,description:"可见标签文本。"},{prop:"Switch.description",type:"string",description:"标签下方的描述。"},{prop:"Slider.label",type:"string",description:"滑块上方标签。"},{prop:"Slider.showValue",type:"boolean",default:"false",description:"显示当前值。"},{prop:"Slider.hint",type:"string",description:"下方的辅助文本。"},{prop:"NumberInput.label",type:"string",description:"输入框上方标签。"},{prop:"NumberInput.hint",type:"string",description:"下方的辅助文本。"},{prop:"NumberInput.error",type:"string",description:"错误信息。"},{prop:"NumberInput.value",type:"number",description:"受控值。"},{prop:"NumberInput.onChange",type:"(value: number) => void",description:"值变化时回调。"},{prop:"NumberInput.min",type:"number",description:"最小值。"},{prop:"NumberInput.max",type:"number",description:"最大值。"},{prop:"NumberInput.step",type:"number",default:"1",description:"步进增量。"},{prop:"TagInput.value",type:"string[]",description:"受控标签值。"},{prop:"TagInput.defaultValue",type:"string[]",default:"[]",description:"非受控默认标签。"},{prop:"TagInput.onChange",type:"(tags: string[]) => void",description:"标签变化时回调。"},{prop:"TagInput.label",type:"string",description:"字段标签。"},{prop:"TagInput.placeholder",type:"string",default:'"Add tag..."',description:"占位符。"},{prop:"TagInput.maxTags",type:"number",description:"最大标签数量。"},{prop:"SegmentedControl.options",type:"SegmentedControlOption[]",required:!0,description:"选项数组。"},{prop:"SegmentedControl.value",type:"string",description:"受控值。"},{prop:"SegmentedControl.defaultValue",type:"string",description:"非受控初始值。"},{prop:"SegmentedControl.onChange",type:"(value: string) => void",description:"选择变化时回调。"},{prop:"SegmentedControl.fullWidth",type:"boolean",description:"拉伸填满容器宽度。"},{prop:"SegmentedControl.size",type:'"sm" | "md" | "lg"',default:'"md"',description:"控件尺寸预设。"},{prop:"Input.label",type:"string",description:"输入框上方标签。"},{prop:"Input.hint",type:"string",description:"输入框下方的辅助文本。"},{prop:"Input.error",type:"string",description:"错误信息。"},{prop:"Input.prefix",type:"ReactNode",description:"输入框内部前置装饰。"},{prop:"Input.suffix",type:"ReactNode",description:"输入框内部后置装饰。"},{prop:"Input.variant",type:'"default" | "filled" | "underline" | "borderless"',default:'"default"',description:"样式变体。"},{prop:"Input.size",type:'"sm" | "md" | "lg"',default:'"md"',description:"尺寸预设。"},{prop:"Input.rounded",type:"boolean",description:"药丸形状输入框。"}]},"mobile-list":{section:"响应式",title:"移动端列表",description:"MobileList、MobileListSection 和 MobileListItem 提供原生感的列表,适用于移动端导航、设置和数据展示。每个条目支持前置图标、尾部内容、箭头指示器以及破坏性或禁用状态。",guidance:["使用 MobileListSection 的 title 属性对相关条目分组。","对于导航到详情页的条目设置 chevron 箭头——静态或切换条目省略。","对于不可逆操作(删除、退出、移除)使用 destructive 样式,文字变红。","禁用条目以低视觉权重渲染并阻止点击事件。"],props:[{prop:"MobileList",type:"—",description:"带列表样式的根 <ul> 元素。"},{prop:"MobileListSection.title",type:"string",description:"分组标题文字。"},{prop:"MobileListItem.leading",type:"ReactNode",description:"左侧图标或头像。"},{prop:"MobileListItem.trailing",type:"ReactNode",description:"右侧自定义内容(徽章、数值等)。"},{prop:"MobileListItem.label",type:"ReactNode",required:!0,description:"主标签文字。"},{prop:"MobileListItem.description",type:"ReactNode",description:"次要描述文字。"},{prop:"MobileListItem.chevron",type:"boolean",default:"false",description:"显示右侧箭头。"},{prop:"MobileListItem.destructive",type:"boolean",default:"false",description:"破坏性操作样式(红色文字)。"},{prop:"MobileListItem.disabled",type:"boolean",default:"false",description:"禁用条目。"},{prop:"MobileListItem.onClick",type:"() => void",description:"点击回调。"}]},mobile:{section:"响应式",title:"响应式布局",description:"一套同时覆盖手机、平板与桌面的响应式系统。通过布局与密度变化适配不同设备,而不是维护两套应用与两套页面树。",guidance:["保持所有断点上的路由树一致,只调整壳层结构和内容密度。","在窄屏上把常驻侧边导航转成抽屉,而不是复制一套页面实现。","让卡片、表单和表格从三列到单列平滑重排,不改变组件归属。"]},image:{section:"内容展示",title:"图片",description:"支持 IntersectionObserver 懒加载、错误回退和可选点击预览灯箱的图片组件。支持固定尺寸、圆角预设和说明文字。",guidance:["设置 lazy={true}(默认)延迟屏幕外图片加载,提升初始加载速度。","提供 fallback 节点在图片加载失败时替换默认占位符。","启用 preview={true} 适用于用户需要查看大图的画廊式布局。","使用 width 和 height 属性防止加载期间的布局偏移(CLS)。"],props:[{prop:"src",type:"string",required:!0,description:"图片来源 URL。"},{prop:"alt",type:"string",description:"无障碍替代文本。"},{prop:"width",type:"string | number",description:"固定宽度(CSS 值或 px 数字)。"},{prop:"height",type:"string | number",description:"固定高度(CSS 值或 px 数字)。"},{prop:"radius",type:"'none' | 'sm' | 'md' | 'lg' | 'full'",default:"'md'",description:"圆角预设。"},{prop:"fit",type:"'cover' | 'contain' | 'fill' | 'none'",default:"'cover'",description:"object-fit CSS 值。"},{prop:"lazy",type:"boolean",default:"true",description:"启用懒加载。"},{prop:"placeholder",type:"ReactNode",description:"加载中显示的占位符。"},{prop:"fallback",type:"ReactNode",description:"错误时显示的回调内容。"},{prop:"preview",type:"boolean",default:"false",description:"启用点击预览灯箱。"},{prop:"caption",type:"ReactNode",description:"图片下方的说明文字。"}]},"pin-input":{section:"表单",title:"验证码输入",description:"用于验证码、OTP 和 PIN 的分段输入组件。支持数字或字母模式、自动前进、粘贴处理和掩码模式。",guidance:["使用 length={6} 作为标准验证码,length={4} 作为 PIN 码。",'设置 type="numeric"(默认)仅输入数字;使用 "alphanumeric" 支持混合输入。',"提供 onComplete 回调在所有字段填满时自动提交。","启用 mask={true} 用于不应可见的敏感码。"],props:[{prop:"length",type:"number",default:"6",description:"输入字段数量。"},{prop:"value",type:"string",description:"受控值。"},{prop:"onChange",type:"(value: string) => void",description:"任意字段变化时调用。"},{prop:"onComplete",type:"(value: string) => void",description:"所有字段填满时调用。"},{prop:"type",type:"'numeric' | 'alphanumeric'",default:"'numeric'",description:"输入类型。"},{prop:"size",type:"'sm' | 'md' | 'lg'",default:"'md'",description:"尺寸预设。"},{prop:"mask",type:"boolean",default:"false",description:"掩码输入(显示圆点)。"},{prop:"error",type:"string",description:"输入组下方的错误信息。"},{prop:"label",type:"string",description:"输入组上方的标签。"},{prop:"autoFocus",type:"boolean",default:"false",description:"自动聚焦第一个输入框。"}]},descriptions:{section:"内容展示",title:"描述列表",description:"用于详情页的键值对展示组件。以结构化的水平或垂直布局组织元数据,支持可选边框、跨列和尺寸预设。",guidance:["宽屏使用水平布局;窄屏或单列详情使用垂直布局。","设置 column={2} 或 column={3} 将项目排成多列行。","使用单项的 span 属性跨越多列。","结合 title 和 extra 属性实现带操作的区块标题。"],props:[{prop:"items",type:"DescriptionsItem[]",required:!0,description:"描述项列表。"},{prop:"layout",type:"'horizontal' | 'vertical'",default:"'horizontal'",description:"布局方向。"},{prop:"column",type:"number",default:"3",description:"每行列数。"},{prop:"size",type:"'sm' | 'md' | 'lg'",default:"'md'",description:"尺寸预设。"},{prop:"bordered",type:"boolean",default:"true",description:"显示边框。"},{prop:"title",type:"ReactNode",description:"描述列表上方的标题。"},{prop:"extra",type:"ReactNode",description:"标题旁的额外内容。"}]},notification:{section:"组件",title:"通知",description:"持久化通知系统,包含 NotificationProvider 和 useNotification hook。与 Toast(自动消失)不同,通知保持可见直到手动关闭或设置 duration。",guidance:["用 NotificationProvider 包裹应用并设置期望的位置。","使用 push() 显示通知——它返回一个 id 用于程序化关闭。","设置 duration > 0 自动消失;使用 0(默认)持久显示。","使用 action 属性放置内联按钮如“查看详情”或“撤销”。"],props:[{prop:"NotificationProvider.placement",type:"'top-right' | 'top-left' | 'top-center' | 'bottom-right' | 'bottom-left' | 'bottom-center'",default:"'top-right'",description:"堆叠位置。"},{prop:"NotificationProvider.maxCount",type:"number",default:"5",description:"最大可见通知数。"},{prop:"push",type:"(input: NotificationInput) => number",description:"显示通知;返回 id。"},{prop:"dismiss",type:"(id: number) => void",description:"按 id 关闭通知。"},{prop:"clear",type:"() => void",description:"关闭所有通知。"}]},result:{section:"组件",title:"结果页",description:"用于操作反馈的结果/状态页组件。提供预设状态(success、error、warning、info、forbidden、not-found、server-error)及默认图标和颜色。",guidance:["使用 status 属性处理常见结果;自定义 icon 属性实现品牌化。","始终通过 actions 属性提供清晰的下一步操作(如“返回首页”)。","description 保持一两句话说明结果。","使用 extra 插槽放置补充内容,如订单详情或错误日志。"],props:[{prop:"status",type:"'success' | 'error' | 'warning' | 'info' | 'forbidden' | 'not-found' | 'server-error'",required:!0,description:"预置状态。"},{prop:"title",type:"string",required:!0,description:"标题文字。"},{prop:"description",type:"string",description:"标题下方的描述。"},{prop:"icon",type:"ReactNode",description:"自定义图标(覆盖默认)。"},{prop:"actions",type:"ReactNode",description:"按钮/链接操作区。"},{prop:"extra",type:"ReactNode",description:"操作区下方的额外内容。"}]},"home-page":{section:"模板",title:"主页",description:"带有 Hero 区块、核心功能亮点和主要行动召唤按钮的落地式主页。适用于产品官网、内部门户和营销页面。",guidance:["Hero 信息保持一句话——让行动召唤按钮来完成说服工作。","功能卡片各自聚焦一个问题,而非罗列所有能力。","主操作与次操作相配合,降低用户决策疲劳。"]},"login-page":{section:"模板",title:"登录页",description:"居中的极简登录表单。清晰的标签、可见的错误状态和单一主操作,降低登录摩擦。",guidance:["不要隐藏密码标签——仅靠 placeholder 无法满足无障碍要求。","字段失去焦点后立即显示内联校验错误。","提供密码可见切换,降低登录摩擦。"]},"register-page":{section:"模板",title:"注册页",description:"只收集创建账号所需最少字段的注册表单。通过仅询问必要信息来降低注册阻力。",guidance:["注册时只需姓名、邮箱和密码——个人资料可在之后完善。","内联显示密码强度,但不因细微问题阻止提交。","服务条款复选框必须明确,不得预先勾选。"]},"error-page":{section:"模板",title:"错误页",description:"404、500 及其他错误状态的优雅降级页面。给用户清晰的解释和直接返回的路径。",guidance:["说明错误码和通俗解释——避免技术术语。",'始终提供"返回首页"和"后退"两个操作。',"错误页的视觉风格应与产品保持一致,而非系统默认页。"]},"privacy-policy":{section:"模板",title:"隐私政策",description:"带有章节标题、可读段落和清晰分隔线的结构化法律文档页面。在不牺牲完整性的前提下保持无障碍和可扫读性。",guidance:["使用标题将长篇政策文本分成可扫读的章节。","从任何引用政策的同意流程中直接链接到相关章节。","在顶部注明政策版本和日期,让用户了解最近更新时间。"]},"terms-of-service":{section:"模板",title:"服务条款",description:"具备清晰标题、通俗义务说明且在手机到桌面端都保持可读性的服务条款页面。",guidance:["将许可范围、使用限制和免责声明拆成独立段落,降低法律歧义。","正文使用短段落与摘要侧栏,保证长文档依旧可扫读。","在注册和定价流程中直接链接条款页面,让同意动作具备上下文。"]},"code-block":{section:"组件",title:"代码块",description:"带语法高亮的只读代码展示组件,支持可选的文件名标签。用于渲染安装步骤、用法示例或任意格式化的代码字符串。",guidance:["通过 language 属性指定代码语言(tsx、bash、json 等),以获得正确高亮。","传入 filename 可为读者提供该代码片段在项目中所属位置的上下文。","保持示例代码精简——只展示说明当前概念所需的最少行数。"],props:[{prop:"code",type:"string",required:!0,description:"要高亮显示的源代码字符串。"},{prop:"language",type:'"tsx" | "typescript" | "javascript" | "jsx" | "bash" | "json" | "markup"',default:'"tsx"',description:"Prism 语言标识符。"},{prop:"copyLabel",type:"string",required:!0,description:"复制按钮的标签(空闲状态)。"},{prop:"copiedLabel",type:"string",required:!0,description:"复制按钮的标签(已复制状态)。"},{prop:"onCopy",type:"(code: string) => Promise<boolean> | boolean",required:!0,description:"复制处理函数,返回是否成功。"}]},"language-switcher":{section:"组件",title:"语言切换器",description:"点击后即可更新整套 UI 文案的语言切换组件。放入任意顶栏或设置区域——i18n Provider 会自动广播变更,无需额外状态绑定。",guidance:["将切换器放置在持久性界面(顶栏或设置页)中,方便用户在任何位置找到它。","切换器自动反映当前语言,除 i18n Provider 外无需额外的状态绑定。","顶栏中使用 inline 变体,设置页中使用默认变体,以匹配对应场景的视觉密度。"],props:[{prop:"variant",type:'"inline" | "sidebar"',default:'"inline"',description:'"inline" 用于顶栏;"sidebar" 用于侧边栏底部。'}]},"scroll-area":{section:"布局",title:"滚动区域",description:'统一的滚动容器组件。默认使用悬浮滚动条(overlay),不占用布局空间。可通过 variant="native" 切换为浏览器原生滚动条。',guidance:["设置 maxHeight 限制垂直溢出——超出视口的内容可在内部滚动。",'传入数字按像素计算,传入字符串如 "50vh" 按相对尺寸计算。',"Overlay 模式(默认):自定义滚动条自动隐藏,不占布局空间,支持拖拽滚动。",'Native 模式(variant="native"):零 JS 开销,使用浏览器原生滚动条样式。',"ScrollArea 纯属展示性组件,不支持虚拟化或延迟渲染子元素。"],props:[{prop:"variant",type:'"overlay" | "native"',default:'"overlay"',description:'滚动条样式。"overlay" 使用自定义悬浮滚动条;"native" 使用浏览器原生滚动条。'},{prop:"maxHeight",type:"string | number",description:"内容滚动前的最大高度,数字按像素处理。"},{prop:"maxWidth",type:"string | number",description:"内容滚动前的最大宽度,数字按像素处理。"},{prop:"children",type:"ReactNode",required:!0,description:"滚动视口内的内容。"},{prop:"className",type:"string",description:"额外的 CSS 类名。"}]},separator:{section:"布局",title:"分隔线",description:"用于分隔内容区域的视觉分割线。渲染为 <hr> 元素,支持水平或垂直方向。",guidance:["水平分隔线用于堆叠的章节之间;垂直分隔线用于工具栏或行内上下文。","decorative 属性控制 role 属性——当分隔线具有语义含义时应设为 false。","垂直分隔线需要指定显式高度才能正确渲染。"],props:[{prop:"orientation",type:'"horizontal" | "vertical"',default:'"horizontal"',description:"分隔线的方向。"},{prop:"decorative",type:"boolean",default:"true",description:'为 true 时设置 role="none",否则设置 role="separator"。'}]},timeline:{section:"组件",title:"时间线",description:"按时间顺序排列的垂直事件列表。每个条目显示标题、可选描述、时间、图标和状态指示器。",guidance:["适用于活动动态、订单跟踪或部署历史。",'将 status 设为 "success"、"warning"、"danger" 或 "info" 可设置时间点颜色。',"在条目中传入 icon 可替换默认的点图标。"],props:[{prop:"items",type:"TimelineItem[]",required:!0,description:"时间线条目数组。"},{prop:"items[].title",type:"string",required:!0,description:"事件标题。"},{prop:"items[].description",type:"string",description:"事件描述。"},{prop:"items[].time",type:"string",description:"时间戳或日期标签。"},{prop:"items[].icon",type:"ReactNode",description:"替换默认点的自定义图标。"},{prop:"items[].status",type:'"default" | "success" | "warning" | "danger" | "info"',description:"点的状态颜色。"},{prop:"className",type:"string",description:"额外的 CSS 类名。"}]},"tree-view":{section:"组件",title:"树形视图",description:"支持展开/折叠节点、键盘导航和可选选中状态的层级树控件。适用于文件浏览器、组织架构或嵌套设置。",guidance:["使用 defaultExpanded 在初始渲染时预展开某些节点。","每个节点需要唯一的 id 用于选择和展开状态跟踪。","TreeView 支持受控(selected/expanded)或非受控模式。","disabled 的节点不可选中或展开,但仍可见。"],props:[{prop:"nodes",type:"TreeNode[]",required:!0,description:"根级树节点。"},{prop:"selected",type:"string",description:"受控选中的节点 id。"},{prop:"defaultSelected",type:"string",description:"非受控初始选中节点 id。"},{prop:"onSelect",type:"(id: string, node: TreeNode) => void",description:"节点选中时调用。"},{prop:"expanded",type:"string[]",description:"受控展开的节点 id 数组。"},{prop:"defaultExpanded",type:"string[]",description:"非受控初始展开节点 id 数组。"},{prop:"onExpandedChange",type:"(ids: string[]) => void",description:"展开状态变化时调用。"},{prop:"className",type:"string",description:"额外的 CSS 类名。"}]},carousel:{section:"组件",title:"轮播",description:"基于滑块的轮播组件,支持圆点指示器、箭头导航、自动播放和循环。每个滑块可接受任意 React 内容。",guidance:["设置 autoPlay 实现无人值守轮播——适用于横幅广告或信息亭。","禁用 loop 用于线性引导流程,用户不应循环回到开头。","通过 index 属性支持受控索引,便于外部分页同步。","在构建极简变体时,使用 showArrows / showDots 隐藏箭头或圆点。"],props:[{prop:"items",type:"ReactNode[]",required:!0,description:"滑块内容数组。"},{prop:"defaultIndex",type:"number",default:"0",description:"初始滑块索引(非受控)。"},{prop:"index",type:"number",description:"受控的当前滑块索引。"},{prop:"onIndexChange",type:"(index: number) => void",description:"活动滑块变化时调用。"},{prop:"autoPlay",type:"boolean",default:"false",description:"按时间间隔自动前进滑块。"},{prop:"interval",type:"number",default:"3000",description:"自动播放间隔(毫秒)。"},{prop:"loop",type:"boolean",default:"true",description:"从最后一张循环回到第一张。"},{prop:"showDots",type:"boolean",default:"true",description:"显示圆点指示器。"},{prop:"showArrows",type:"boolean",default:"true",description:"显示上一张/下一张箭头按钮。"},{prop:"className",type:"string",description:"额外的 CSS 类名。"}]},toggle:{section:"表单",title:"开关按钮",description:"在按下和未按下状态之间切换的双状态按钮。ToggleGroup 将其扩展为一组选项间的单选/多选。",guidance:["Toggle 适用于工具栏开关(加粗/斜体、筛选标签),ToggleGroup 适用于视图模式切换。",'ToggleGroup type="single" 类似单选按钮组,type="multiple" 允许多选。',"同时支持受控(pressed/value)和非受控(defaultPressed/defaultValue)模式。"],props:[{prop:"Toggle.pressed",type:"boolean",description:"受控按下状态。"},{prop:"Toggle.defaultPressed",type:"boolean",default:"false",description:"非受控初始按下状态。"},{prop:"Toggle.onPressedChange",type:"(pressed: boolean) => void",description:"按下状态变化时调用。"},{prop:"Toggle.size",type:'"sm" | "md" | "lg"',default:'"md"',description:"按钮尺寸。"},{prop:"ToggleGroup.items",type:"ToggleGroupItem[]",required:!0,description:"开关选项数组。"},{prop:"ToggleGroup.value",type:"string | string[]",description:"受控选中值。"},{prop:"ToggleGroup.defaultValue",type:"string | string[]",description:"非受控初始选中值。"},{prop:"ToggleGroup.onValueChange",type:"(value: string | string[]) => void",description:"选中值变化时调用。"},{prop:"ToggleGroup.type",type:'"single" | "multiple"',default:'"single"',description:"选择模式。"},{prop:"Toggle.children",type:"ReactNode",required:!0,description:"开关按钮内容(图标或文字)。"},{prop:"ToggleGroup.size",type:'"sm" | "md" | "lg"',default:'"md"',description:"开关组尺寸预设。"},{prop:"ToggleGroup.className",type:"string",description:"额外的 CSS 类名。"},{prop:"ToggleGroupItem.value",type:"string",required:!0,description:"选项的唯一值。"},{prop:"ToggleGroupItem.label",type:"ReactNode",required:!0,description:"选项显示内容。"},{prop:"ToggleGroupItem.disabled",type:"boolean",description:"禁用该选项。"}]},rating:{section:"表单",title:"评分",description:"基于星形的评分输入组件,支持整星和半星精度、受控/非受控模式和只读/禁用状态。",guidance:["设置 allowHalf 允许半星精度,用于需要精细反馈的场景。","使用 readOnly 作为仅展示评分(如历史平均值),disabled 完全阻止交互。","size 属性调整星形尺寸以适配不同的视觉语境。"],props:[{prop:"value",type:"number",description:"受控评分值。"},{prop:"defaultValue",type:"number",default:"0",description:"非受控初始值。"},{prop:"onChange",type:"(value: number) => void",description:"评分变化时调用。"},{prop:"max",type:"number",default:"5",description:"最大星数。"},{prop:"allowHalf",type:"boolean",default:"false",description:"允许半星值。"},{prop:"disabled",type:"boolean",description:"禁用交互。"},{prop:"readOnly",type:"boolean",description:"只读展示模式。"},{prop:"size",type:'"sm" | "md" | "lg"',default:'"md"',description:"星形尺寸。"},{prop:"label",type:"string",description:"评分组的无障碍标签。"},{prop:"className",type:"string",description:"额外的 CSS 类名。"}]},label:{section:"表单",title:"标签",description:"带可选必填标记的样式化 <label> 元素。与任意表单控件配合使用,提供无障碍标签。",guidance:["始终将 Label 与其表单控件关联——可以包裹输入组件或使用 htmlFor。","设置 required 可在标签文本后自动追加红色星号。","Label 是轻量封装,透传所有标准 label 属性到底层元素。"],props:[{prop:"required",type:"boolean",description:"在标签文本后显示必填标记(红色星号)。"},{prop:"children",type:"ReactNode",required:!0,description:"标签文本内容。"}]},avatar:{section:"内容展示",title:"头像",description:"显示用户头像,支持图片、首字母回退或占位图标。支持多种尺寸和形状。",guidance:["始终通过 name 或 alt 属性提供无障碍标签。","src 属性接受图片 URL;加载失败时自动回退为首字母或 fallback 文本。","首字母从 name 属性自动生成(最多 2 个字符)。","圆形为默认形状,数据密集布局可使用方形。"],props:[{prop:"src",type:"string",description:"头像图片 URL。"},{prop:"name",type:"string",description:"用户名,用于生成首字母和无障碍标签。"},{prop:"size",type:'"xs" | "sm" | "md" | "lg" | "xl"',default:'"md"',description:"头像尺寸。"},{prop:"shape",type:'"circle" | "square"',default:'"circle"',description:"头像形状。"},{prop:"fallback",type:"string",description:"当无图片和名称时的自定义回退文字。"}]},badge:{section:"内容展示",title:"徽章",description:"用于状态、分类或元数据的紧凑标签。可内联于文本中,或放在按钮、卡片和表格单元格内。",guidance:["徽章用于紧凑的状态或分类元数据,而非纯装饰。","accent 变体保留给品牌的颜色;success 和 warning 传达语义状态。","徽章是内联元素,与文本和其他内联内容自然排列。"],props:[{prop:"variant",type:'"neutral" | "accent" | "success" | "warning"',default:'"neutral"',description:"视觉样式变体。"}]},skeleton:{section:"内容展示",title:"骨架屏",description:"在数据加载时模拟内容形状的占位组件。支持文本、矩形和圆形变体,以及多行文本块。",guidance:["骨架屏形状与实际内容匹配,减少布局偏移。",'使用 variant="text" 配合 lines > 1 模拟段落占位。',"多行文本骨架屏的最后一行宽度为 70%,视觉效果更自然。"],props:[{prop:"variant",type:'"text" | "rect" | "circle"',default:'"rect"',description:"形状变体。"},{prop:"width",type:"string | number",description:"宽度,数字按像素计算。"},{prop:"height",type:"string | number",description:"高度,数字按像素计算。"},{prop:"lines",type:"number",default:"1",description:"文本变体的行数。"}]},typography:{section:"内容展示",title:"排版",description:"Heading 和 Text 提供核心排版系统。Heading 渲染 <h1>-<h6> 并基于级别调整字号;Text 渲染 <p>、<span> 或 <div>,支持变体、尺寸和字重选项。",guidance:["使用 Heading 作为章节标题和层级内容结构。",'使用 variant="secondary" 或 "muted" 降低内容强调程度。',"truncate 属性超出时以省略号截断——适用于表格单元格和侧边栏。","Heading 的 as 属性可覆盖渲染的 HTML 元素而不改变视觉样式。"],props:[{prop:"Heading.level",type:"1 | 2 | 3 | 4 | 5 | 6",default:"2",description:"标题级别,决定字号大小。"},{prop:"Heading.as",type:'"h1" | "h2" | "h3" | "h4" | "h5" | "h6"',description:"覆盖渲染的 HTML 元素。"},{prop:"Heading.variant",type:'"default" | "secondary"',default:'"default"',description:"视觉变体。"},{prop:"Heading.weight",type:'"normal" | "medium" | "semibold" | "bold"',default:'"bold"',description:"字重。"},{prop:"Heading.truncate",type:"boolean",default:"false",description:"超出时以省略号截断。"},{prop:"Text.as",type:'"p" | "span" | "div"',default:'"p"',description:"渲染的 HTML 元素。"},{prop:"Text.variant",type:'"default" | "secondary" | "muted" | "danger" | "success"',default:'"default"',description:"颜色变体。"},{prop:"Text.size",type:'"sm" | "base" | "lg" | "xl"',default:'"base"',description:"字号。"},{prop:"Text.weight",type:'"normal" | "medium" | "semibold" | "bold"',default:'"normal"',description:"字重。"},{prop:"Text.truncate",type:"boolean",default:"false",description:"超出时以省略号截断。"}]},"typography-base":{section:"内容展示",title:"排版基础",description:"开箱即用的排版 CSS 工具类和 React 组件,参考 Bootstrap 命名风格,适用于文章、文档、API 参考等页面。",guidance:['排版样式通过 import "vxui-re" 自动加载,无需额外配置。',"可直接使用 className(如 vx-article、vx-section),也可使用 React 组件(如 Article、Section)。","所有颜色使用 CSS 变量,自动适配亮/暗主题。","内置响应式断点,移动端和桌面端体验统一。"],props:[{prop:"Article",type:"Component",description:"文章容器,提供标准文档排版布局。"},{prop:"ArticleHeader",type:"Component",description:"文章头部,包含标题和描述。"},{prop:"ArticleTitle",type:"Component",description:"文章标题(h1)。"},{prop:"ArticleBody",type:"Component",description:"文章正文容器。"},{prop:"Section",type:"Component",description:"文档章节,支持锚点跳转。"},{prop:"SectionHeading",type:"Component",description:"章节标题(h2),可选锚点链接。"},{prop:"Pager",type:"Component",description:"上下页导航。"},{prop:"PropsTable",type:"Component",description:"API 属性表格。"},{prop:"ArticleEmptyState",type:"Component",description:"空状态展示。"},{prop:"StatsGrid",type:"Component",description:"统计指标网格。"}]},"date-pickers":{section:"表单",title:"日期选择器",description:"DatePicker 提供带弹出日历的文本输入框用于日期选择。Calendar 是独立的月历网格组件,由 DatePicker 内部使用。",guidance:["表单字段中使用 DatePicker;内嵌日历网格到自定义组件中使用 Calendar。","设置 min/max 限制可选日期范围。","weekStartsOnMonday 属性更改每周第一天——默认为周日。","DatePicker 在移动端视口自动切换为基于 Sheet 的布局。"],props:[{prop:"DatePicker.value",type:"Date",description:"受控选中日期。"},{prop:"DatePicker.defaultValue",type:"Date",description:"非受控初始日期。"},{prop:"DatePicker.onChange",type:"(date: Date | undefined) => void",description:"日期变化时调用。"},{prop:"DatePicker.label",type:"string",description:"输入框标签。"},{prop:"DatePicker.hint",type:"string",description:"输入框下方的帮助文字。"},{prop:"DatePicker.error",type:"string",description:"错误信息。"},{prop:"DatePicker.min",type:"Date",description:"最小可选日期。"},{prop:"DatePicker.max",type:"Date",description:"最大可选日期。"},{prop:"DatePicker.disabled",type:"boolean",description:"禁用日期选择器。"},{prop:"DatePicker.weekStartsOnMonday",type:"boolean",default:"false",description:"每周从周一开始而非周日。"},{prop:"Calendar.value",type:"Date",description:"受控选中日期。"},{prop:"Calendar.defaultValue",type:"Date",description:"非受控初始日期。"},{prop:"Calendar.onChange",type:"(date: Date) => void",description:"点击日期时调用。"},{prop:"Calendar.min",type:"Date",description:"最小可选日期。"},{prop:"Calendar.max",type:"Date",description:"最大可选日期。"},{prop:"Calendar.weekStartsOnMonday",type:"boolean",default:"false",description:"每周从周一开始。"}]},card:{section:"内容展示",title:"卡片",description:"灵活的内容容器,支持多种视觉变体。使用 Card 作为外层容器,内部组合 CardHeader、CardTitle、CardDescription 和 CardContent。",guidance:["对于可交互的卡片,使用 elevated 变体增强视觉层次。","设置 hoverable 可以在悬停时添加浮起效果,适用于图库或仪表盘磁贴。","padding 属性可调整内边距,适应密集或宽松的布局需求。","Card 本身是 <section> 元素,为无障碍考虑,始终应包含 CardTitle。"],props:[{prop:"variant",type:'"default" | "flat" | "elevated" | "outlined" | "ghost" | "filled"',default:'"default"',description:"视觉样式预设。"},{prop:"padding",type:'"none" | "sm" | "md" | "lg"',description:"内边距大小,默认为卡片的内部间距。"},{prop:"hoverable",type:"boolean",default:"false",description:"悬停时添加浮起效果,适用于可点击的卡片。"}]},form:{section:"表单",title:"表单组合",description:"由 Form、FormField、FormLabel、FormDescription、FormMessage 和 useFormField 构成的表单组合系统。可与任意输入组件配合,提供一致的标签、提示和错误布局。",guidance:["将每个逻辑字段组包裹在 FormField 中,通过 context 共享错误状态。","使用 FormLabel 的 required 属性可自动显示必填标记。","FormMessage 自动读取 FormField context 中的错误信息,无需手动传参。","Form 默认启用 noValidate,你需要自行处理验证逻辑或使用验证库。"],props:[{prop:"Form",type:"—",description:"表单根组件,携带 noValidate 和 vx-form 类名。"},{prop:"FormField",type:"—",description:"包裹字段组,向 FormMessage 提供错误上下文。"},{prop:"FormField.error",type:"string",description:"当前字段的错误信息,会被 FormMessage 显示。"},{prop:"FormLabel",type:"—",description:"渲染 <label>,支持可选的必填星号。"},{prop:"FormLabel.required",type:"boolean",description:"在标签文本后显示红色星号。"},{prop:"FormDescription",type:"—",description:"标签下方渲染的帮助提示文字。"},{prop:"FormMessage",type:"—",description:"错误或帮助提示消息,自动从 FormField context 读取错误。"},{prop:"useFormField",type:"() => { error?: string }",description:"Hook,用于读取当前字段的错误上下文。"}]},sheet:{section:"浮层",title:"侧滑面板",description:"从左侧、右侧、顶部或底部边缘滑出的面板。支持标题、描述、可选的确认操作,以及受控或非受控的打开状态。",guidance:["在需要展示次级内容但无需整页导航时使用 Sheet。",'将 side 设为 "right" 用于详情面板,"bottom" 用于类似移动端的操作面板。','variant="action" 预设隐藏关闭按钮并显示确认底部栏,适用于删除等破坏性操作。',"通过 open/onOpenChange 控制打开状态,或使用 defaultOpen 实现非受控使用。"],props:[{prop:"trigger",type:"ReactNode",description:"点击后打开面板的触发器元素。"},{prop:"children",type:"ReactNode",required:!0,description:"面板主体内容。"},{prop:"side",type:'"left" | "right" | "top" | "bottom"',default:'"right"',description:"面板滑入的起始边缘。"},{prop:"variant",type:'"default" | "action"',default:'"default"',description:'"action" 隐藏关闭按钮并显示确认底部栏。'},{prop:"title",type:"ReactNode",description:"面板标题。"},{prop:"description",type:"ReactNode",description:"面板描述。"},{prop:"header",type:"ReactNode",description:"自定义顶部内容(替换 title/description)。"},{prop:"footer",type:"ReactNode",description:"自定义底部内容。"},{prop:"open",type:"boolean",description:"受控打开状态。"},{prop:"defaultOpen",type:"boolean",description:"非受控初始打开状态。"},{prop:"onOpenChange",type:"(open: boolean) => void",description:"打开状态变化时的回调。"},{prop:"showClose",type:"boolean",default:"true",description:"是否显示关闭按钮。"},{prop:"closeOnOverlayClick",type:"boolean",default:"true",description:"点击遮罩层时是否关闭面板。"},{prop:"showConfirm",type:"boolean",default:"false",description:"是否在底部显示确认按钮。"},{prop:"confirmText",type:"string",default:'"确认"',description:"确认按钮的文字。"},{prop:"confirmDisabled",type:"boolean",default:"false",description:"是否禁用确认按钮。"},{prop:"onConfirm",type:"() => void",description:"确认按钮回调。"},{prop:"width",type:"number",description:"自定义面板宽度(像素)。"}]},"vxui-provider":{section:"开始使用",title:"VXUI Provider",description:"组合 Provider,将 ThemeProvider、ViewportProvider 和 ToastProvider 合并为一个组件。在应用根节点使用以减少嵌套层级。",guidance:["VXUIProvider 替代了手动嵌套 ThemeProvider + ViewportProvider + ToastProvider。","themes、defaultTheme 和 storageKey 的用法与 ThemeProvider 完全相同。","此组件完全可选——如果需要更精细的控制,可以分别使用独立的 Provider。"],props:[{prop:"themes",type:"ThemeRegistry",description:"传递给 ThemeProvider 的主题配置。"},{prop:"defaultTheme",type:"string",description:"默认主题名称。"},{prop:"storageKey",type:"string",default:'"vxui-theme"',description:"用于持久化主题选择的 localStorage 键名。"},{prop:"children",type:"ReactNode",required:!0,description:"应用内容。"}]},viewport:{section:"开始使用",title:"视口",description:"ViewportProvider 监听屏幕尺寸,通过 useViewport hook 暴露设备类型、方向和断点信息。",guidance:["ViewportProvider 使用物理屏幕尺寸 (window.screen.width) 进行设备类型分类。","屏幕宽度 ≤ 1000px 时被归类为平板或手机(通过宽高比区分)。","useViewport() 返回 isPhone、isTablet、isDesktop、isTabletPortrait 和原始 screenWidth/screenHeight。",'与 CSS 断点不同,设备检测使用物理屏幕尺寸,因此分屏平板仍被识别为"平板"。'],props:[{prop:"children",type:"ReactNode",required:!0,description:"应用内容。"},{prop:"useViewport()",type:"ViewportContextValue",description:"返回视口状态的 Hook。"},{prop:"useViewport().viewport",type:'"phone" | "tablet" | "desktop"',description:"当前设备类型分类。"},{prop:"useViewport().isPhone",type:"boolean",description:"当前设备是否为手机(窄屏)。"},{prop:"useViewport().isTablet",type:"boolean",description:"当前设备是否为平板。"},{prop:"useViewport().isDesktop",type:"boolean",description:"当前设备是否为桌面端(宽度 > 1000px)。"},{prop:"useViewport().isTabletPortrait",type:"boolean",description:"平板且为竖屏时返回 true。"},{prop:"useViewport().screenWidth",type:"number",description:"物理屏幕宽度(CSS 像素)。"},{prop:"useViewport().screenHeight",type:"number",description:"物理屏幕高度(CSS 像素)。"}]},constants:{section:"开始使用",title:"常量",description:"响应式系统使用的布局断点和设备检测阈值。这些常量可用于自定义响应式逻辑。",guidance:["BREAKPOINTS.sm (640) 是手机到平板的 CSS 视口断点。","BREAKPOINTS.md (768) 是平板到桌面的 CSS 视口断点。","BREAKPOINTS.lg (1000) 同时作为 PHONE_MAX_WIDTH 用于设备类型检测。","PHONE_ASPECT_RATIO_THRESHOLD (0.7) 和 TABLET_ASPECT_RATIO_THRESHOLD (0.75) 通过宽高比区分手机和平板。","CSS 布局断点和设备检测阈值目的不同,值也不同。"],props:[{prop:"BREAKPOINTS.sm",type:"640",description:"手机到平板的 CSS 布局断点 (max-width: 640px)。"},{prop:"BREAKPOINTS.md",type:"768",description:"平板的 CSS 布局断点 (max-width: 768px)。"},{prop:"BREAKPOINTS.lg",type:"1000",description:"桌面端的 CSS 布局断点 (min-width: 1000px)。"},{prop:"PHONE_MAX_WIDTH",type:"1000",description:"设备检测的物理屏幕宽度阈值。"},{prop:"PHONE_ASPECT_RATIO_THRESHOLD",type:"0.7",description:"宽高比阈值——低于此值则归类为手机。"},{prop:"TABLET_ASPECT_RATIO_THRESHOLD",type:"0.75",description:"平板分类的宽高比上限阈值。"}]},calendar:{section:"表单",title:"日历",description:"基于月份的日历视图,用于选择日期。支持受控/非受控模式、日期范围限制和可配置的每周起始日。",guidance:["Calendar 可独立使用,也可嵌入 DatePicker 提供日期选择体验。","使用 value 进行受控模式,或 defaultValue 进行非受控模式。","通过 min 和 max 限制可选日期范围。","如果需要周一作为每周第一天,设置 weekStartsOnMonday。"],props:[{prop:"value",type:"Date",description:"受控模式下当前选中的日期。"},{prop:"defaultValue",type:"Date",description:"非受控模式的初始日期。"},{prop:"onChange",type:"(date: Date) => void",description:"选择日期时的回调。"},{prop:"min",type:"Date",description:"最小可选日期。"},{prop:"max",type:"Date",description:"最大可选日期。"},{prop:"weekStartsOnMonday",type:"boolean",default:"false",description:"设置周一为一周的第一天。"},{prop:"className",type:"string",description:"自定义 CSS 类名。"}]},"bottom-nav":{section:"响应式",title:"底部导航",description:"移动端风格的底部导航栏,支持激活状态、角标和子菜单弹出。适用于侧边栏不实用的手机尺寸视口。",guidance:["在 MobileShell 中使用 BottomNav 获得原生移动端导航体验。","每个导航项需要 icon 和 label——图标显示在标签上方。","在导航项上设置 submenu 属性可显示弹出子菜单而非直接导航。",'角标支持数值和字符串溢出(如 "99+")。','激活的导航项会设置 aria-current="page" 以满足无障碍需求。'],props:[{prop:"items",type:"BottomNavItem[]",required:!0,description:"导航项数组。"},{prop:"items[].key",type:"string",required:!0,description:"唯一标识。"},{prop:"items[].label",type:"string",required:!0,description:"图标下方的显示标签。"},{prop:"items[].icon",type:"ReactNode",required:!0,description:"显示在标签上方的图标。"},{prop:"items[].badge",type:"string | number",description:"图标角落显示的角标值。"},{prop:"items[].active",type:"boolean",description:"标记此项为当前激活页面。"},{prop:"items[].onSelect",type:"() => void",description:"点击处理函数(有 submenu 时忽略)。"},{prop:"items[].submenu",type:"BottomNavSubMenuItem[]",description:"点击时以弹出菜单显示的子菜单项。"},{prop:"className",type:"string",description:"自定义 CSS 类名。"}]}}},si={en:Ru,zh:d1},Uv=m.createContext({t:Ru,locale:"en",setLocale:()=>{}});function u1(){var r;const s=typeof localStorage!="undefined"?localStorage.getItem("vxui-locale"):null;if(s&&si[s])return s;const c=typeof navigator!="undefined"?(r=navigator.languages)!=null&&r.length?navigator.languages:[navigator.language]:[];for(const d of c){const p=d.toLowerCase().split("-")[0];if(si[d])return d;if(si[p])return p}return"en"}function p1({children:s}){var f;const[c,r]=m.useState(()=>u1()),d=(f=si[c])!=null?f:Ru,p=v=>{r(v),typeof localStorage!="undefined"&&localStorage.setItem("vxui-locale",v)};return a.jsx(Uv.Provider,{value:{t:d,locale:c,setLocale:p},children:s})}function Mo(){return m.useContext(Uv)}function f1(s){const c=s==="zh";return{badgeLabel:c?"法律文档":"Legal document",title:c?"隐私政策":"Privacy Policy",lead:c?"最后更新时间:2026 年 5 月 8 日。请阅读以下内容,了解该响应式 UI 框架演示环境如何处理您的数据。":"Last updated: May 8, 2026. Review the sections below to understand how this responsive UI framework demo handles your data.",meta:c?["适用于演示环境","覆盖桌面 / 平板 / 手机"]:["Applies to the demo environment","Covers desktop / tablet / phone"],summaryTitle:c?"快速摘要":"At a glance",summaryItems:c?["仅收集必要数据","本地化保存会话","更新会在入口显著提示"]:["Only minimum data is collected","Sessions are stored locally","Updates are announced at the entry points"],sections:c?[{title:"1. 信息收集",paragraphs:["为了向您提供框架文档的交互演示及保存您的最终偏好设置,我们会收集必要的最小范围数据,例如您的注册邮箱、基本访问记录以及设备的屏幕尺寸,用于响应式页面适配呈现。","这些信息仅在您自愿完成注册或主动使用特定交互功能时被提取与暂存。"]},{title:"2. 信息用途",paragraphs:["您的数据仅用于验证会话状态、管理路由权限以及优化测试用例环境中的操作体验。","我们不会向任何外部或第三方机构出售、透露您的数据,也不会将其用于分析型商业广告投放。"]},{title:"3. 存储与安全",paragraphs:["登录凭证和会话将以本地化的安全方式被存放于您的浏览器,例如 LocalStorage。退出登录后,相应的临时记录会立即被移除。","请不要在此类交互评估环境中使用您在真实涉密业务系统中的常用密码。"]},{title:"4. 更新机制",paragraphs:["如果本隐私政策发生实质性修订,我们会在框架系统主页或访问入口处展示明显的更新提示。"]}]:[{title:"1. Data Collection",paragraphs:["To provide interactive framework demos and preserve your final preferences, we collect the minimum necessary data such as your registration email, basic access logs, and device screen sizes for responsive presentation.","This information is only captured or cached when you voluntarily register or actively use specific interactive features."]},{title:"2. Data Usage",paragraphs:["Your data is only used to validate session state, manage route access, and improve the workflow inside the testing environment.","We do not sell or disclose your data to any external party, and we do not use it for targeted advertising."]},{title:"3. Storage and Security",paragraphs:["Credentials and sessions are stored using localized browser mechanisms such as LocalStorage. Once you log out, the temporary records are removed immediately.","Do not reuse passwords that you rely on for real confidential business systems inside this evaluation environment."]},{title:"4. Policy Updates",paragraphs:["If this privacy policy is materially updated, the framework homepage and entry points will show a clear update notice."]}]}}function m1(s){const c=s==="zh";return{badgeLabel:c?"法律文档":"Legal document",title:c?"服务条款":"Terms of Service",lead:c?"最后更新时间:2026 年 5 月 8 日。以下条款适用于当前响应式 UI 框架的组件演示与文档浏览环境。":"Last updated: May 8, 2026. The clauses below apply to the current responsive UI framework demo and documentation environment.",meta:c?["开源授权","适用于演示环境"]:["Open-source licensing","Applies to the demo environment"],summaryTitle:c?"快速摘要":"At a glance",summaryItems:c?["允许使用与分发","需保留原始许可声明","演示环境按原样提供"]:["Use and distribution are allowed","Original license notices must remain","The demo environment is provided as is"],sections:c?[{title:"1. 接受条款",paragraphs:["通过访问和使用 vxUI 框架文档与组件库测试环境,您即同意受到本服务条款的约束。","如果您不同意本条款的部分或全部内容,请停止使用。"]},{title:"2. 使用许可",paragraphs:["本框架及组件集代码基于 Apache License 2.0 协议进行开源授权,您可以自由使用、修改、分发并用于商业用途。","分发副本时,请保留原始许可声明、版权声明以及必要的修改说明。"]},{title:"3. 免责声明",paragraphs:["本演示环境按原样提供,不附带任何明示或暗示的保证。","平台不保证组件库始终无错误运行,也不对评估过程中造成的后果承担法律责任。"]}]:[{title:"1. Acceptance of Terms",paragraphs:["By accessing and using the vxUI framework documentation and component library testing environment, you agree to be bound by these terms of service.","If you disagree with any part of the terms, please discontinue use."]},{title:"2. License and Copyright",paragraphs:["This framework and component set are open-sourced under Apache License 2.0, which allows usage, modification, distribution, and commercial use.","When distributing copies, keep the original license notice, copyright notice, and any required modification statements."]},{title:"3. Disclaimer",paragraphs:["This demonstration environment is provided as is, without warranty of any kind, express or implied.","The platform does not guarantee uninterrupted or error-free operation, nor does it accept liability for consequences arising during evaluation."]}]}}function h1(s){const c=s.publicPages,r=[{key:"zero-deps",icon:A0,title:c.feat1,description:c.feat1Desc},{key:"components",icon:Cr,title:c.feat2,description:c.feat2Desc},{key:"themeable",icon:li,title:c.feat3,description:c.feat3Desc},{key:"dark-mode",icon:k0,title:c.feat4,description:c.feat4Desc}],d=[{id:"quick-start",icon:oi,label:s.pages["quick-start"],meta:s.nav.gettingStarted},{id:"button",icon:li,label:s.pages.button,meta:s.nav.components},{id:"mobile",icon:ks,label:s.pages.mobile,meta:s.nav.mobile}],p=[{key:"access-modes",icon:Zn,title:c.previewAccessTitle,lines:[c.previewAccessMember,c.previewAccessGuest]},{key:"mobile-ready",icon:ks,title:c.previewMobileTitle,lines:[c.previewMobileLead]}];return{features:r,previewSections:d,metaItems:p}}const Pv={light:{label:"Light",mode:"light"},dark:{label:"Dark",mode:"dark"}};function Ma(s,c={}){return{label:c.label,mode:s,tokens:c.tokens}}const v1=we(le({},Pv),{sunset:Ma("light",{label:"Sunset",tokens:{"--vx-primary":"#c2410c","--vx-primary-strong":"#9a3412","--vx-primary-soft":"rgba(194, 65, 12, 0.12)","--vx-secondary":"#9a3412","--vx-bg":"#fff7ed","--vx-bg-accent":"#ffedd5","--vx-surface-hover":"#fffaf5","--vx-border":"#fed7aa","--vx-border-strong":"#fdba74","--vx-text":"#431407","--vx-text-secondary":"#9a3412","--vx-text-muted":"#b45309","--vx-shadow-sm":"0 1px 2px rgba(124, 45, 18, 0.08)","--vx-shadow":"0 14px 32px rgba(124, 45, 18, 0.08)","--vx-shadow-lg":"0 28px 64px rgba(124, 45, 18, 0.12)"}}),mint:Ma("light",{label:"Mint",tokens:{"--vx-primary":"#0f766e","--vx-primary-strong":"#115e59","--vx-primary-soft":"rgba(15, 118, 110, 0.12)","--vx-secondary":"#0f766e","--vx-bg":"#f0fdfa","--vx-bg-accent":"#ccfbf1","--vx-surface-hover":"#f6fffd","--vx-border":"#99f6e4","--vx-border-strong":"#5eead4","--vx-text":"#042f2e","--vx-text-secondary":"#115e59","--vx-text-muted":"#0f766e","--vx-shadow-sm":"0 1px 2px rgba(4, 47, 46, 0.08)","--vx-shadow":"0 14px 32px rgba(4, 47, 46, 0.08)","--vx-shadow-lg":"0 28px 64px rgba(4, 47, 46, 0.12)"}}),graphite:Ma("dark",{label:"Graphite",tokens:{"--vx-primary":"#f59e0b","--vx-primary-strong":"#d97706","--vx-primary-soft":"rgba(245, 158, 11, 0.16)","--vx-bg":"#111111","--vx-bg-accent":"#191919","--vx-surface":"#18181b","--vx-surface-strong":"#111111","--vx-surface-hover":"#222225","--vx-border":"rgba(244, 244, 245, 0.10)","--vx-border-strong":"rgba(244, 244, 245, 0.18)","--vx-text":"#fafafa","--vx-text-secondary":"#d4d4d8","--vx-text-muted":"#a1a1aa","--vx-shadow-sm":"0 1px 2px rgba(0, 0, 0, 0.34)","--vx-shadow":"0 20px 44px rgba(0, 0, 0, 0.28)","--vx-shadow-lg":"0 30px 72px rgba(0, 0, 0, 0.38)"}}),"ivory-gold":Ma("light",{label:"Ivory Gold",tokens:{"--vx-primary":"#a0742a","--vx-primary-strong":"#7d5a1e","--vx-primary-soft":"rgba(160, 116, 42, 0.12)","--vx-bg":"#faf6ee","--vx-bg-accent":"#f2ead8","--vx-surface":"#ffffff","--vx-surface-strong":"#faf6ee","--vx-surface-hover":"#f6f0e4","--vx-border":"rgba(160, 116, 42, 0.18)","--vx-border-strong":"rgba(160, 116, 42, 0.38)","--vx-text":"#1c1409","--vx-text-secondary":"#5a4320","--vx-text-muted":"#9a7c4a","--vx-shadow-sm":"0 1px 2px rgba(90, 67, 32, 0.08)","--vx-shadow":"0 12px 32px rgba(90, 67, 32, 0.10)","--vx-shadow-lg":"0 28px 64px rgba(90, 67, 32, 0.14)","--vx-success":"#1a9e6e","--vx-warning":"#c4820a","--vx-danger":"#d63b3b"}}),"black-gold":Ma("dark",{label:"Black Gold",tokens:{"--vx-primary":"#c8a97c","--vx-primary-strong":"#9a7545","--vx-primary-soft":"rgba(200, 169, 124, 0.16)","--vx-bg":"#05070b","--vx-bg-accent":"#0a0d14","--vx-surface":"rgba(15, 18, 25, 0.76)","--vx-surface-strong":"rgba(18, 21, 29, 0.9)","--vx-surface-hover":"rgba(245, 233, 215, 0.1)","--vx-border":"rgba(245, 233, 215, 0.12)","--vx-border-strong":"rgba(200, 169, 124, 0.42)","--vx-text":"#f5e9d7","--vx-text-secondary":"#d7c8b2","--vx-text-muted":"#928a81","--vx-shadow-sm":"0 1px 2px rgba(0, 0, 0, 0.4)","--vx-shadow":"0 0 42px rgba(200, 169, 124, 0.16)","--vx-shadow-lg":"0 34px 120px rgba(0, 0, 0, 0.62)","--vx-success":"#32d49a","--vx-warning":"#e6ad64","--vx-danger":"#ef6a64"}}),ocean:Ma("dark",{label:"Ocean",tokens:{"--vx-primary":"#38bdf8","--vx-primary-strong":"#0ea5e9","--vx-primary-soft":"rgba(56, 189, 248, 0.16)","--vx-bg":"#06131f","--vx-bg-accent":"#0b1a2b","--vx-surface":"#0d2236","--vx-surface-strong":"#06131f","--vx-surface-hover":"#13314d","--vx-border":"rgba(125, 211, 252, 0.16)","--vx-border-strong":"rgba(56, 189, 248, 0.24)","--vx-text":"#e0f2fe","--vx-text-secondary":"#bae6fd","--vx-text-muted":"#7dd3fc","--vx-shadow-sm":"0 1px 2px rgba(2, 6, 23, 0.34)","--vx-shadow":"0 20px 44px rgba(2, 6, 23, 0.28)","--vx-shadow-lg":"0 30px 72px rgba(2, 6, 23, 0.4)"}}),indigo:Ma("light",{label:"Indigo",tokens:{"--vx-primary":"#5c5fe8","--vx-primary-strong":"#4f52d4","--vx-primary-soft":"rgba(92, 95, 232, 0.10)","--vx-secondary":"#818cf8","--vx-success":"#059669","--vx-warning":"#d97706","--vx-danger":"#dc2626","--vx-info":"#5c5fe8","--vx-bg":"#e8ecf6","--vx-bg-accent":"#dde3f0","--vx-surface":"#ffffff","--vx-surface-strong":"#f8f9ff","--vx-surface-hover":"#f4f5ff","--vx-border":"#d4daf0","--vx-border-strong":"#bfc8e8","--vx-text":"#1a2336","--vx-text-secondary":"#4a5572","--vx-text-muted":"#8b96b4","--vx-shadow-sm":"0 1px 3px rgba(28, 40, 80, 0.08)","--vx-shadow":"0 8px 28px rgba(28, 40, 80, 0.10)","--vx-shadow-lg":"0 24px 60px rgba(28, 40, 80, 0.14)","--vx-glass-bg":"color-mix(in srgb, #ffffff 86%, transparent)","--vx-glass-bg-strong":"color-mix(in srgb, #f8f9ff 93%, transparent)","--vx-glass-border":"rgba(92, 95, 232, 0.18)","--vx-glass-shadow":"0 16px 44px rgba(28, 40, 80, 0.12)","--vx-glass-highlight":"inset 0 1px 0 rgba(255, 255, 255, 0.70)","--vx-radius-sm":"10px","--vx-radius":"12px","--vx-radius-lg":"16px","--vx-radius-xl":"22px"}}),violet:Ma("light",{label:"Violet",tokens:{"--vx-primary":"#7c3aed","--vx-primary-strong":"#6d28d9","--vx-primary-soft":"rgba(124, 58, 237, 0.10)","--vx-secondary":"#8b5cf6","--vx-success":"#059669","--vx-warning":"#d97706","--vx-danger":"#dc2626","--vx-info":"#6d28d9","--vx-bg":"#f8f7ff","--vx-bg-accent":"#ede9fe","--vx-surface":"#ffffff","--vx-surface-strong":"#faf9ff","--vx-surface-hover":"#f5f3ff","--vx-border":"#e4dfff","--vx-border-strong":"#c9bffd","--vx-text":"#1e1b2e","--vx-text-secondary":"#6e6a8a","--vx-text-muted":"#a89fc8","--vx-shadow-sm":"0 1px 3px rgba(109, 40, 217, 0.07)","--vx-shadow":"0 12px 32px rgba(109, 40, 217, 0.10)","--vx-shadow-lg":"0 28px 64px rgba(109, 40, 217, 0.14)","--vx-glass-bg":"color-mix(in srgb, #ffffff 84%, transparent)","--vx-glass-bg-strong":"color-mix(in srgb, #faf9ff 92%, transparent)","--vx-glass-border":"rgba(196, 181, 253, 0.55)","--vx-glass-shadow":"0 18px 48px rgba(109, 40, 217, 0.12)","--vx-glass-highlight":"inset 0 1px 0 rgba(255, 255, 255, 0.60)","--vx-radius-sm":"10px","--vx-radius":"12px","--vx-radius-lg":"16px","--vx-radius-xl":"24px"}}),"violet-dark":Ma("dark",{label:"Violet Dark",tokens:{"--vx-primary":"#a78bfa","--vx-primary-strong":"#8b5cf6","--vx-primary-soft":"rgba(167, 139, 250, 0.16)","--vx-secondary":"#c4b5fd","--vx-success":"#34d399","--vx-warning":"#fbbf24","--vx-danger":"#f87171","--vx-info":"#c4b5fd","--vx-bg":"#0d0b1a","--vx-bg-accent":"#13102a","--vx-surface":"#1a1735","--vx-surface-strong":"#0d0b1a","--vx-surface-hover":"#1e1b3a","--vx-border":"rgba(167, 139, 250, 0.16)","--vx-border-strong":"rgba(167, 139, 250, 0.30)","--vx-text":"#f0eeff","--vx-text-secondary":"#c4b5fd","--vx-text-muted":"#8b7fc8","--vx-shadow-sm":"0 1px 3px rgba(0, 0, 0, 0.40)","--vx-shadow":"0 18px 44px rgba(0, 0, 0, 0.30)","--vx-shadow-lg":"0 30px 72px rgba(0, 0, 0, 0.44)","--vx-glass-bg":"color-mix(in srgb, #1a1735 86%, transparent)","--vx-glass-bg-strong":"color-mix(in srgb, #0d0b1a 94%, transparent)","--vx-glass-border":"rgba(167, 139, 250, 0.22)","--vx-glass-shadow":"0 22px 54px rgba(0, 0, 0, 0.50)","--vx-glass-highlight":"inset 0 1px 0 rgba(255, 255, 255, 0.07)","--vx-glass-scrim":"color-mix(in srgb, #04030d 62%, transparent)","--vx-radius-sm":"10px","--vx-radius":"12px","--vx-radius-lg":"16px","--vx-radius-xl":"24px"}}),vxai:Ma("light",{label:"VXAI (Default)",tokens:{"--vx-primary":"#4f46e5","--vx-primary-strong":"#4338ca","--vx-primary-soft":"rgba(79, 70, 229, 0.1)","--vx-secondary":"#64748b","--vx-success":"#10b981","--vx-warning":"#f59e0b","--vx-danger":"#ef4444","--vx-info":"#4f46e5","--vx-bg":"#f8fafc","--vx-bg-accent":"#f1f5f9","--vx-surface":"#ffffff","--vx-surface-strong":"#f8fafc","--vx-surface-hover":"#f1f5f9","--vx-border":"#e2e8f0","--vx-border-strong":"#cbd5e1","--vx-text":"#0f172a","--vx-text-secondary":"#334155","--vx-text-muted":"#64748b","--vx-shadow-sm":"0 1px 2px -1px rgba(0, 0, 0, 0.1), 0 1px 3px 0 rgba(0, 0, 0, 0.1)","--vx-shadow":"0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -2px rgba(0, 0, 0, 0.1)","--vx-shadow-lg":"0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -4px rgba(0, 0, 0, 0.1)","--vx-glass-bg":"rgba(255, 255, 255, 0.8)","--vx-glass-bg-strong":"rgba(255, 255, 255, 0.95)","--vx-glass-border":"#e2e8f0","--vx-glass-shadow":"none","--vx-glass-highlight":"none","--vx-radius-sm":"4px","--vx-radius":"6px","--vx-radius-lg":"8px","--vx-radius-xl":"12px"}}),"vxai-dark":Ma("dark",{label:"VXAI Dark",tokens:{"--vx-primary":"#6366f1","--vx-primary-strong":"#4f46e5","--vx-primary-soft":"rgba(99, 102, 241, 0.16)","--vx-secondary":"#cbd5e1","--vx-success":"#34d399","--vx-warning":"#fbbf24","--vx-danger":"#f87171","--vx-info":"#6366f1","--vx-bg":"#020617","--vx-bg-accent":"#0f172a","--vx-surface":"#0f172a","--vx-surface-strong":"#020617","--vx-surface-hover":"#1e293b","--vx-border":"oklch(27.8% 0.033 256.848)","--vx-border-strong":"#334155","--vx-text":"oklch(96.8% 0.007 247.896)","--vx-text-secondary":"#94a3b8","--vx-text-muted":"#64748b","--vx-shadow-sm":"0 1px 2px -1px rgba(0, 0, 0, 0.4), 0 1px 3px 0 rgba(0, 0, 0, 0.4)","--vx-shadow":"0 4px 6px -1px rgba(0, 0, 0, 0.4), 0 2px 4px -2px rgba(0, 0, 0, 0.4)","--vx-shadow-lg":"0 10px 15px -3px rgba(0, 0, 0, 0.4), 0 4px 6px -4px rgba(0, 0, 0, 0.4)","--vx-glass-bg":"rgba(15, 23, 42, 0.7)","--vx-glass-bg-strong":"rgba(15, 23, 42, 0.95)","--vx-glass-border":"oklch(27.8% 0.033 256.848)","--vx-glass-shadow":"none","--vx-glass-highlight":"none","--vx-radius-sm":"4px","--vx-radius":"6px","--vx-radius-lg":"8px","--vx-radius-xl":"12px"}})});function g1(s){return le(le({},Pv),s)}function x1(s,c){if(s&&c[s])return s;if(c.light)return"light";const[r]=Object.keys(c);return r!=null?r:"light"}function b1(s,c){const r=window.localStorage.getItem(s);return r&&c[r]?r:null}function y1(s,c,r){var p;if(((p=s[r])==null?void 0:p.mode)===c)return r;const d=Object.entries(s).find(([,f])=>f.mode===c);return d==null?void 0:d[0]}const qv=m.createContext(null);function j1({children:s,defaultTheme:c="light",storageKey:r="vxui-re-theme",themes:d}){const p=m.useMemo(()=>g1(d),[d]),f=m.useMemo(()=>x1(c,p),[c,p]),v=m.useRef([]),[x,b]=m.useState(()=>{var k;return typeof window=="undefined"?f:(k=b1(r,p))!=null?k:f}),g=p[x]?x:f,y=p[g];m.useEffect(()=>{x!==g&&b(g)},[g,x]),m.useEffect(()=>{var L;const k=document.documentElement;for(const D of v.current)k.style.removeProperty(D);k.dataset.theme=y.mode,k.dataset.themeName=g;const A=Object.entries((L=y.tokens)!=null?L:{}).filter(D=>typeof D[1]=="string"&&D[1].length>0);for(const[D,E]of A)k.style.setProperty(D,E);v.current=A.map(([D])=>D),window.localStorage.setItem(r,g)},[y,g,r]);const j=m.useMemo(()=>({theme:g,mode:y.mode,themes:p,setTheme:k=>{b(p[k]?k:f)},toggleTheme:()=>{b(k=>{var D,E;const L=((D=p[k])!=null?D:y).mode==="light"?"dark":"light";return(E=y1(p,L,L))!=null?E:k})}}),[y,f,p,g]);return a.jsx(qv.Provider,{value:j,children:s})}function Iv(){const s=m.useContext(qv);if(!s)throw new Error("useTheme must be used within ThemeProvider.");return s}var ca=wv();const w1=Ao(ca);function lt(s,c,{checkForDefaultPrevented:r=!0}={}){return function(p){if(s==null||s(p),r===!1||!p.defaultPrevented)return c==null?void 0:c(p)}}function Zh(s,c){if(typeof s=="function")return s(c);s!=null&&(s.current=c)}function Vv(...s){return c=>{let r=!1;const d=s.map(p=>{const f=Zh(p,c);return!r&&typeof f=="function"&&(r=!0),f});if(r)return()=>{for(let p=0;p<d.length;p++){const f=d[p];typeof f=="function"?f():Zh(s[p],null)}}}}function Qa(...s){return m.useCallback(Vv(...s),s)}function Dr(s,c=[]){let r=[];function d(f,v){const x=m.createContext(v),b=r.length;r=[...r,v];const g=j=>{var C;const T=j,{scope:k,children:A}=T,L=be(T,["scope","children"]),D=((C=k==null?void 0:k[s])==null?void 0:C[b])||x,E=m.useMemo(()=>L,Object.values(L));return a.jsx(D.Provider,{value:E,children:A})};g.displayName=f+"Provider";function y(j,k){var D;const A=((D=k==null?void 0:k[s])==null?void 0:D[b])||x,L=m.useContext(A);if(L)return L;if(v!==void 0)return v;throw new Error(`\`${j}\` must be used within \`${f}\``)}return[g,y]}const p=()=>{const f=r.map(v=>m.createContext(v));return function(x){const b=(x==null?void 0:x[s])||f;return m.useMemo(()=>({[`__scope${s}`]:we(le({},x),{[s]:b})}),[x,b])}};return p.scopeName=s,[d,S1(p,...c)]}function S1(...s){const c=s[0];if(s.length===1)return c;const r=()=>{const d=s.map(p=>({useScope:p(),scopeName:p.scopeName}));return function(f){const v=d.reduce((x,{useScope:b,scopeName:g})=>{const j=b(f)[`__scope${g}`];return le(le({},x),j)},{});return m.useMemo(()=>({[`__scope${c.scopeName}`]:v}),[v])}};return r.scopeName=c.scopeName,r}function fu(s){const c=_1(s),r=m.forwardRef((d,p)=>{const g=d,{children:f}=g,v=be(g,["children"]),x=m.Children.toArray(f),b=x.find(N1);if(b){const y=b.props.children,j=x.map(k=>k===b?m.Children.count(y)>1?m.Children.only(null):m.isValidElement(y)?y.props.children:null:k);return a.jsx(c,we(le({},v),{ref:p,children:m.isValidElement(y)?m.cloneElement(y,void 0,j):null}))}return a.jsx(c,we(le({},v),{ref:p,children:f}))});return r.displayName=`${s}.Slot`,r}function _1(s){const c=m.forwardRef((r,d)=>{const v=r,{children:p}=v,f=be(v,["children"]);if(m.isValidElement(p)){const x=T1(p),b=C1(f,p.props);return p.type!==m.Fragment&&(b.ref=d?Vv(d,x):x),m.cloneElement(p,b)}return m.Children.count(p)>1?m.Children.only(null):null});return c.displayName=`${s}.SlotClone`,c}var k1=Symbol("radix.slottable");function N1(s){return m.isValidElement(s)&&typeof s.type=="function"&&"__radixId"in s.type&&s.type.__radixId===k1}function C1(s,c){const r=le({},c);for(const d in c){const p=s[d],f=c[d];/^on[A-Z]/.test(d)?p&&f?r[d]=(...x)=>{const b=f(...x);return p(...x),b}:p&&(r[d]=p):d==="style"?r[d]=le(le({},p),f):d==="className"&&(r[d]=[p,f].filter(Boolean).join(" "))}return le(le({},s),r)}function T1(s){var d,p;let c=(d=Object.getOwnPropertyDescriptor(s.props,"ref"))==null?void 0:d.get,r=c&&"isReactWarning"in c&&c.isReactWarning;return r?s.ref:(c=(p=Object.getOwnPropertyDescriptor(s,"ref"))==null?void 0:p.get,r=c&&"isReactWarning"in c&&c.isReactWarning,r?s.props.ref:s.props.ref||s.ref)}function Fv(s){const c=s+"CollectionProvider",[r,d]=Dr(c),[p,f]=r(c,{collectionRef:{current:null},itemMap:new Map}),v=D=>{const{scope:E,children:T}=D,C=bn.useRef(null),_=bn.useRef(new Map).current;return a.jsx(p,{scope:E,itemMap:_,collectionRef:C,children:T})};v.displayName=c;const x=s+"CollectionSlot",b=fu(x),g=bn.forwardRef((D,E)=>{const{scope:T,children:C}=D,_=f(x,T),u=Qa(E,_.collectionRef);return a.jsx(b,{ref:u,children:C})});g.displayName=x;const y=s+"CollectionItemSlot",j="data-radix-collection-item",k=fu(y),A=bn.forwardRef((D,E)=>{const z=D,{scope:T,children:C}=z,_=be(z,["scope","children"]),u=bn.useRef(null),S=Qa(E,u),N=f(y,T);return bn.useEffect(()=>(N.itemMap.set(u,le({ref:u},_)),()=>void N.itemMap.delete(u))),a.jsx(k,{[j]:"",ref:S,children:C})});A.displayName=y;function L(D){const E=f(s+"CollectionConsumer",D);return bn.useCallback(()=>{const C=E.collectionRef.current;if(!C)return[];const _=Array.from(C.querySelectorAll(`[${j}]`));return Array.from(E.itemMap.values()).sort((N,z)=>_.indexOf(N.ref.current)-_.indexOf(z.ref.current))},[E.collectionRef,E.itemMap])}return[{Provider:v,Slot:g,ItemSlot:A},L,d]}var E1=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","select","span","svg","ul"],Et=E1.reduce((s,c)=>{const r=fu(`Primitive.${c}`),d=m.forwardRef((p,f)=>{const g=p,{asChild:v}=g,x=be(g,["asChild"]),b=v?r:c;return typeof window!="undefined"&&(window[Symbol.for("radix-ui")]=!0),a.jsx(b,we(le({},x),{ref:f}))});return d.displayName=`Primitive.${c}`,we(le({},s),{[c]:d})},{});function Gv(s,c){s&&ca.flushSync(()=>s.dispatchEvent(c))}function ci(s){const c=m.useRef(s);return m.useEffect(()=>{c.current=s}),m.useMemo(()=>(...r)=>{var d;return(d=c.current)==null?void 0:d.call(c,...r)},[])}function A1(s,c=globalThis==null?void 0:globalThis.document){const r=ci(s);m.useEffect(()=>{const d=p=>{p.key==="Escape"&&r(p)};return c.addEventListener("keydown",d,{capture:!0}),()=>c.removeEventListener("keydown",d,{capture:!0})},[r,c])}var z1="DismissableLayer",mu="dismissableLayer.update",D1="dismissableLayer.pointerDownOutside",M1="dismissableLayer.focusOutside",Jh,Yv=m.createContext({layers:new Set,layersWithOutsidePointerEventsDisabled:new Set,branches:new Set}),Xv=m.forwardRef((s,c)=>{var V;const z=s,{disableOutsidePointerEvents:r=!1,onEscapeKeyDown:d,onPointerDownOutside:p,onFocusOutside:f,onInteractOutside:v,onDismiss:x}=z,b=be(z,["disableOutsidePointerEvents","onEscapeKeyDown","onPointerDownOutside","onFocusOutside","onInteractOutside","onDismiss"]),g=m.useContext(Yv),[y,j]=m.useState(null),k=(V=y==null?void 0:y.ownerDocument)!=null?V:globalThis==null?void 0:globalThis.document,[,A]=m.useState({}),L=Qa(c,O=>j(O)),D=Array.from(g.layers),[E]=[...g.layersWithOutsidePointerEventsDisabled].slice(-1),T=D.indexOf(E),C=y?D.indexOf(y):-1,_=g.layersWithOutsidePointerEventsDisabled.size>0,u=C>=T,S=O1(O=>{const Q=O.target,U=[...g.branches].some(F=>F.contains(Q));!u||U||(p==null||p(O),v==null||v(O),O.defaultPrevented||x==null||x())},k),N=L1(O=>{const Q=O.target;[...g.branches].some(F=>F.contains(Q))||(f==null||f(O),v==null||v(O),O.defaultPrevented||x==null||x())},k);return A1(O=>{C===g.layers.size-1&&(d==null||d(O),!O.defaultPrevented&&x&&(O.preventDefault(),x()))},k),m.useEffect(()=>{if(y)return r&&(g.layersWithOutsidePointerEventsDisabled.size===0&&(Jh=k.body.style.pointerEvents,k.body.style.pointerEvents="none"),g.layersWithOutsidePointerEventsDisabled.add(y)),g.layers.add(y),ev(),()=>{r&&g.layersWithOutsidePointerEventsDisabled.size===1&&(k.body.style.pointerEvents=Jh)}},[y,k,r,g]),m.useEffect(()=>()=>{y&&(g.layers.delete(y),g.layersWithOutsidePointerEventsDisabled.delete(y),ev())},[y,g]),m.useEffect(()=>{const O=()=>A({});return document.addEventListener(mu,O),()=>document.removeEventListener(mu,O)},[]),a.jsx(Et.div,we(le({},b),{ref:L,style:le({pointerEvents:_?u?"auto":"none":void 0},s.style),onFocusCapture:lt(s.onFocusCapture,N.onFocusCapture),onBlurCapture:lt(s.onBlurCapture,N.onBlurCapture),onPointerDownCapture:lt(s.onPointerDownCapture,S.onPointerDownCapture)}))});Xv.displayName=z1;var R1="DismissableLayerBranch",$v=m.forwardRef((s,c)=>{const r=m.useContext(Yv),d=m.useRef(null),p=Qa(c,d);return m.useEffect(()=>{const f=d.current;if(f)return r.branches.add(f),()=>{r.branches.delete(f)}},[r.branches]),a.jsx(Et.div,we(le({},s),{ref:p}))});$v.displayName=R1;function O1(s,c=globalThis==null?void 0:globalThis.document){const r=ci(s),d=m.useRef(!1),p=m.useRef(()=>{});return m.useEffect(()=>{const f=x=>{if(x.target&&!d.current){let b=function(){Kv(D1,r,g,{discrete:!0})};const g={originalEvent:x};x.pointerType==="touch"?(c.removeEventListener("click",p.current),p.current=b,c.addEventListener("click",p.current,{once:!0})):b()}else c.removeEventListener("click",p.current);d.current=!1},v=window.setTimeout(()=>{c.addEventListener("pointerdown",f)},0);return()=>{window.clearTimeout(v),c.removeEventListener("pointerdown",f),c.removeEventListener("click",p.current)}},[c,r]),{onPointerDownCapture:()=>d.current=!0}}function L1(s,c=globalThis==null?void 0:globalThis.document){const r=ci(s),d=m.useRef(!1);return m.useEffect(()=>{const p=f=>{f.target&&!d.current&&Kv(M1,r,{originalEvent:f},{discrete:!1})};return c.addEventListener("focusin",p),()=>c.removeEventListener("focusin",p)},[c,r]),{onFocusCapture:()=>d.current=!0,onBlurCapture:()=>d.current=!1}}function ev(){const s=new CustomEvent(mu);document.dispatchEvent(s)}function Kv(s,c,r,{discrete:d}){const p=r.originalEvent.target,f=new CustomEvent(s,{bubbles:!1,cancelable:!0,detail:r});c&&p.addEventListener(s,c,{once:!0}),d?Gv(p,f):p.dispatchEvent(f)}var B1=Xv,H1=$v,Ri=globalThis!=null&&globalThis.document?m.useLayoutEffect:()=>{},U1="Portal",Qv=m.forwardRef((s,c)=>{var b;const x=s,{container:r}=x,d=be(x,["container"]),[p,f]=m.useState(!1);Ri(()=>f(!0),[]);const v=r||p&&((b=globalThis==null?void 0:globalThis.document)==null?void 0:b.body);return v?w1.createPortal(a.jsx(Et.div,we(le({},d),{ref:c})),v):null});Qv.displayName=U1;function P1(s,c){return m.useReducer((r,d)=>{const p=c[r][d];return p!=null?p:r},s)}var Ou=s=>{const{present:c,children:r}=s,d=q1(c),p=typeof r=="function"?r({present:d.isPresent}):m.Children.only(r),f=Qa(d.ref,I1(p));return typeof r=="function"||d.isPresent?m.cloneElement(p,{ref:f}):null};Ou.displayName="Presence";function q1(s){const[c,r]=m.useState(),d=m.useRef(null),p=m.useRef(s),f=m.useRef("none"),v=s?"mounted":"unmounted",[x,b]=P1(v,{mounted:{UNMOUNT:"unmounted",ANIMATION_OUT:"unmountSuspended"},unmountSuspended:{MOUNT:"mounted",ANIMATION_END:"unmounted"},unmounted:{MOUNT:"mounted"}});return m.useEffect(()=>{const g=Zl(d.current);f.current=x==="mounted"?g:"none"},[x]),Ri(()=>{const g=d.current,y=p.current;if(y!==s){const k=f.current,A=Zl(g);s?b("MOUNT"):A==="none"||(g==null?void 0:g.display)==="none"?b("UNMOUNT"):b(y&&k!==A?"ANIMATION_OUT":"UNMOUNT"),p.current=s}},[s,b]),Ri(()=>{var g;if(c){let y;const j=(g=c.ownerDocument.defaultView)!=null?g:window,k=L=>{const E=Zl(d.current).includes(CSS.escape(L.animationName));if(L.target===c&&E&&(b("ANIMATION_END"),!p.current)){const T=c.style.animationFillMode;c.style.animationFillMode="forwards",y=j.setTimeout(()=>{c.style.animationFillMode==="forwards"&&(c.style.animationFillMode=T)})}},A=L=>{L.target===c&&(f.current=Zl(d.current))};return c.addEventListener("animationstart",A),c.addEventListener("animationcancel",k),c.addEventListener("animationend",k),()=>{j.clearTimeout(y),c.removeEventListener("animationstart",A),c.removeEventListener("animationcancel",k),c.removeEventListener("animationend",k)}}else b("ANIMATION_END")},[c,b]),{isPresent:["mounted","unmountSuspended"].includes(x),ref:m.useCallback(g=>{d.current=g?getComputedStyle(g):null,r(g)},[])}}function Zl(s){return(s==null?void 0:s.animationName)||"none"}function I1(s){var d,p;let c=(d=Object.getOwnPropertyDescriptor(s.props,"ref"))==null?void 0:d.get,r=c&&"isReactWarning"in c&&c.isReactWarning;return r?s.ref:(c=(p=Object.getOwnPropertyDescriptor(s,"ref"))==null?void 0:p.get,r=c&&"isReactWarning"in c&&c.isReactWarning,r?s.props.ref:s.props.ref||s.ref)}var V1=jv[" useInsertionEffect ".trim().toString()]||Ri;function Ro({prop:s,defaultProp:c,onChange:r=()=>{},caller:d}){const[p,f,v]=F1({defaultProp:c,onChange:r}),x=s!==void 0,b=x?s:p;{const y=m.useRef(s!==void 0);m.useEffect(()=>{const j=y.current;j!==x&&console.warn(`${d} is changing from ${j?"controlled":"uncontrolled"} to ${x?"controlled":"uncontrolled"}. Components should not switch from controlled to uncontrolled (or vice versa). Decide between using a controlled or uncontrolled value for the lifetime of the component.`),y.current=x},[x,d])}const g=m.useCallback(y=>{var j;if(x){const k=G1(y)?y(s):y;k!==s&&((j=v.current)==null||j.call(v,k))}else f(y)},[x,s,f,v]);return[b,g]}function F1({defaultProp:s,onChange:c}){const[r,d]=m.useState(s),p=m.useRef(r),f=m.useRef(c);return V1(()=>{f.current=c},[c]),m.useEffect(()=>{var v;p.current!==r&&((v=f.current)==null||v.call(f,r),p.current=r)},[r,p]),[r,d,f]}function G1(s){return typeof s=="function"}var Y1=Object.freeze({position:"absolute",border:0,width:1,height:1,padding:0,margin:-1,overflow:"hidden",clip:"rect(0, 0, 0, 0)",whiteSpace:"nowrap",wordWrap:"normal"}),X1="VisuallyHidden",Lu=m.forwardRef((s,c)=>a.jsx(Et.span,we(le({},s),{ref:c,style:le(le({},Y1),s.style)})));Lu.displayName=X1;var Bu="ToastProvider",[Hu,$1,K1]=Fv("Toast"),[Wv]=Dr("Toast",[K1]),[Q1,Oo]=Wv(Bu),Zv=s=>{const{__scopeToast:c,label:r="Notification",duration:d=5e3,swipeDirection:p="right",swipeThreshold:f=50,children:v}=s,[x,b]=m.useState(null),[g,y]=m.useState(0),j=m.useRef(!1),k=m.useRef(!1);return r.trim()||console.error(`Invalid prop \`label\` supplied to \`${Bu}\`. Expected non-empty \`string\`.`),a.jsx(Hu.Provider,{scope:c,children:a.jsx(Q1,{scope:c,label:r,duration:d,swipeDirection:p,swipeThreshold:f,toastCount:g,viewport:x,onViewportChange:b,onToastAdd:m.useCallback(()=>y(A=>A+1),[]),onToastRemove:m.useCallback(()=>y(A=>A-1),[]),isFocusedToastEscapeKeyDownRef:j,isClosePausedRef:k,children:v})})};Zv.displayName=Bu;var Jv="ToastViewport",W1=["F8"],hu="toast.viewportPause",vu="toast.viewportResume",eg=m.forwardRef((s,c)=>{const E=s,{__scopeToast:r,hotkey:d=W1,label:p="Notifications ({hotkey})"}=E,f=be(E,["__scopeToast","hotkey","label"]),v=Oo(Jv,r),x=$1(r),b=m.useRef(null),g=m.useRef(null),y=m.useRef(null),j=m.useRef(null),k=Qa(c,j,v.onViewportChange),A=d.join("+").replace(/Key/g,"").replace(/Digit/g,""),L=v.toastCount>0;m.useEffect(()=>{const T=C=>{var u;d.length!==0&&d.every(S=>C[S]||C.code===S)&&((u=j.current)==null||u.focus())};return document.addEventListener("keydown",T),()=>document.removeEventListener("keydown",T)},[d]),m.useEffect(()=>{const T=b.current,C=j.current;if(L&&T&&C){const _=()=>{if(!v.isClosePausedRef.current){const z=new CustomEvent(hu);C.dispatchEvent(z),v.isClosePausedRef.current=!0}},u=()=>{if(v.isClosePausedRef.current){const z=new CustomEvent(vu);C.dispatchEvent(z),v.isClosePausedRef.current=!1}},S=z=>{!T.contains(z.relatedTarget)&&u()},N=()=>{T.contains(document.activeElement)||u()};return T.addEventListener("focusin",_),T.addEventListener("focusout",S),T.addEventListener("pointermove",_),T.addEventListener("pointerleave",N),window.addEventListener("blur",_),window.addEventListener("focus",u),()=>{T.removeEventListener("focusin",_),T.removeEventListener("focusout",S),T.removeEventListener("pointermove",_),T.removeEventListener("pointerleave",N),window.removeEventListener("blur",_),window.removeEventListener("focus",u)}}},[L,v.isClosePausedRef]);const D=m.useCallback(({tabbingDirection:T})=>{const _=x().map(u=>{const S=u.ref.current,N=[S,...uj(S)];return T==="forwards"?N:N.reverse()});return(T==="forwards"?_.reverse():_).flat()},[x]);return m.useEffect(()=>{const T=j.current;if(T){const C=_=>{var N,z,V;const u=_.altKey||_.ctrlKey||_.metaKey;if(_.key==="Tab"&&!u){const O=document.activeElement,Q=_.shiftKey;if(_.target===T&&Q){(N=g.current)==null||N.focus();return}const ie=D({tabbingDirection:Q?"backwards":"forwards"}),fe=ie.findIndex(Z=>Z===O);au(ie.slice(fe+1))?_.preventDefault():Q?(z=g.current)==null||z.focus():(V=y.current)==null||V.focus()}};return T.addEventListener("keydown",C),()=>T.removeEventListener("keydown",C)}},[x,D]),a.jsxs(H1,{ref:b,role:"region","aria-label":p.replace("{hotkey}",A),tabIndex:-1,style:{pointerEvents:L?void 0:"none"},children:[L&&a.jsx(gu,{ref:g,onFocusFromOutsideViewport:()=>{const T=D({tabbingDirection:"forwards"});au(T)}}),a.jsx(Hu.Slot,{scope:r,children:a.jsx(Et.ol,we(le({tabIndex:-1},f),{ref:k}))}),L&&a.jsx(gu,{ref:y,onFocusFromOutsideViewport:()=>{const T=D({tabbingDirection:"backwards"});au(T)}})]})});eg.displayName=Jv;var tg="ToastFocusProxy",gu=m.forwardRef((s,c)=>{const v=s,{__scopeToast:r,onFocusFromOutsideViewport:d}=v,p=be(v,["__scopeToast","onFocusFromOutsideViewport"]),f=Oo(tg,r);return a.jsx(Lu,we(le({tabIndex:0},p),{ref:c,style:{position:"fixed"},onFocus:x=>{var y;const b=x.relatedTarget;!((y=f.viewport)!=null&&y.contains(b))&&d()}}))});gu.displayName=tg;var Mr="Toast",Z1="toast.swipeStart",J1="toast.swipeMove",ej="toast.swipeCancel",tj="toast.swipeEnd",ag=m.forwardRef((s,c)=>{const g=s,{forceMount:r,open:d,defaultOpen:p,onOpenChange:f}=g,v=be(g,["forceMount","open","defaultOpen","onOpenChange"]),[x,b]=Ro({prop:d,defaultProp:p!=null?p:!0,onChange:f,caller:Mr});return a.jsx(Ou,{present:r||x,children:a.jsx(ij,we(le({open:x},v),{ref:c,onClose:()=>b(!1),onPause:ci(s.onPause),onResume:ci(s.onResume),onSwipeStart:lt(s.onSwipeStart,y=>{y.currentTarget.setAttribute("data-swipe","start")}),onSwipeMove:lt(s.onSwipeMove,y=>{const{x:j,y:k}=y.detail.delta;y.currentTarget.setAttribute("data-swipe","move"),y.currentTarget.style.setProperty("--radix-toast-swipe-move-x",`${j}px`),y.currentTarget.style.setProperty("--radix-toast-swipe-move-y",`${k}px`)}),onSwipeCancel:lt(s.onSwipeCancel,y=>{y.currentTarget.setAttribute("data-swipe","cancel"),y.currentTarget.style.removeProperty("--radix-toast-swipe-move-x"),y.currentTarget.style.removeProperty("--radix-toast-swipe-move-y"),y.currentTarget.style.removeProperty("--radix-toast-swipe-end-x"),y.currentTarget.style.removeProperty("--radix-toast-swipe-end-y")}),onSwipeEnd:lt(s.onSwipeEnd,y=>{const{x:j,y:k}=y.detail.delta;y.currentTarget.setAttribute("data-swipe","end"),y.currentTarget.style.removeProperty("--radix-toast-swipe-move-x"),y.currentTarget.style.removeProperty("--radix-toast-swipe-move-y"),y.currentTarget.style.setProperty("--radix-toast-swipe-end-x",`${j}px`),y.currentTarget.style.setProperty("--radix-toast-swipe-end-y",`${k}px`),b(!1)})}))})});ag.displayName=Mr;var[aj,nj]=Wv(Mr,{onClose(){}}),ij=m.forwardRef((s,c)=>{const fe=s,{__scopeToast:r,type:d="foreground",duration:p,open:f,onClose:v,onEscapeKeyDown:x,onPause:b,onResume:g,onSwipeStart:y,onSwipeMove:j,onSwipeCancel:k,onSwipeEnd:A}=fe,L=be(fe,["__scopeToast","type","duration","open","onClose","onEscapeKeyDown","onPause","onResume","onSwipeStart","onSwipeMove","onSwipeCancel","onSwipeEnd"]),D=Oo(Mr,r),[E,T]=m.useState(null),C=Qa(c,Z=>T(Z)),_=m.useRef(null),u=m.useRef(null),S=p||D.duration,N=m.useRef(0),z=m.useRef(S),V=m.useRef(0),{onToastAdd:O,onToastRemove:Q}=D,U=ci(()=>{var P;(E==null?void 0:E.contains(document.activeElement))&&((P=D.viewport)==null||P.focus()),v()}),F=m.useCallback(Z=>{!Z||Z===1/0||(window.clearTimeout(V.current),N.current=new Date().getTime(),V.current=window.setTimeout(U,Z))},[U]);m.useEffect(()=>{const Z=D.viewport;if(Z){const P=()=>{F(z.current),g==null||g()},$=()=>{const re=new Date().getTime()-N.current;z.current=z.current-re,window.clearTimeout(V.current),b==null||b()};return Z.addEventListener(hu,$),Z.addEventListener(vu,P),()=>{Z.removeEventListener(hu,$),Z.removeEventListener(vu,P)}}},[D.viewport,S,b,g,F]),m.useEffect(()=>{f&&!D.isClosePausedRef.current&&F(S)},[f,S,D.isClosePausedRef,F]),m.useEffect(()=>(O(),()=>Q()),[O,Q]);const ie=m.useMemo(()=>E?og(E):null,[E]);return D.viewport?a.jsxs(a.Fragment,{children:[ie&&a.jsx(sj,{__scopeToast:r,role:"status","aria-live":d==="foreground"?"assertive":"polite",children:ie}),a.jsx(aj,{scope:r,onClose:U,children:ca.createPortal(a.jsx(Hu.ItemSlot,{scope:r,children:a.jsx(B1,{asChild:!0,onEscapeKeyDown:lt(x,()=>{D.isFocusedToastEscapeKeyDownRef.current||U(),D.isFocusedToastEscapeKeyDownRef.current=!1}),children:a.jsx(Et.li,we(le({tabIndex:0,"data-state":f?"open":"closed","data-swipe-direction":D.swipeDirection},L),{ref:C,style:le({userSelect:"none",touchAction:"none"},s.style),onKeyDown:lt(s.onKeyDown,Z=>{Z.key==="Escape"&&(x==null||x(Z.nativeEvent),Z.nativeEvent.defaultPrevented||(D.isFocusedToastEscapeKeyDownRef.current=!0,U()))}),onPointerDown:lt(s.onPointerDown,Z=>{Z.button===0&&(_.current={x:Z.clientX,y:Z.clientY})}),onPointerMove:lt(s.onPointerMove,Z=>{if(!_.current)return;const P=Z.clientX-_.current.x,$=Z.clientY-_.current.y,re=!!u.current,ge=["left","right"].includes(D.swipeDirection),xe=["left","up"].includes(D.swipeDirection)?Math.min:Math.max,R=ge?xe(0,P):0,W=ge?0:xe(0,$),B=Z.pointerType==="touch"?10:2,te={x:R,y:W},pe={originalEvent:Z,delta:te};re?(u.current=te,Jl(J1,j,pe,{discrete:!1})):tv(te,D.swipeDirection,B)?(u.current=te,Jl(Z1,y,pe,{discrete:!1}),Z.target.setPointerCapture(Z.pointerId)):(Math.abs(P)>B||Math.abs($)>B)&&(_.current=null)}),onPointerUp:lt(s.onPointerUp,Z=>{const P=u.current,$=Z.target;if($.hasPointerCapture(Z.pointerId)&&$.releasePointerCapture(Z.pointerId),u.current=null,_.current=null,P){const re=Z.currentTarget,ge={originalEvent:Z,delta:P};tv(P,D.swipeDirection,D.swipeThreshold)?Jl(tj,A,ge,{discrete:!0}):Jl(ej,k,ge,{discrete:!0}),re.addEventListener("click",xe=>xe.preventDefault(),{once:!0})}})}))})}),D.viewport)})]}):null}),sj=s=>{const g=s,{__scopeToast:c,children:r}=g,d=be(g,["__scopeToast","children"]),p=Oo(Mr,c),[f,v]=m.useState(!1),[x,b]=m.useState(!1);return cj(()=>v(!0)),m.useEffect(()=>{const y=window.setTimeout(()=>b(!0),1e3);return()=>window.clearTimeout(y)},[]),x?null:a.jsx(Qv,{asChild:!0,children:a.jsx(Lu,we(le({},d),{children:f&&a.jsxs(a.Fragment,{children:[p.label," ",r]})}))})},rj="ToastTitle",ng=m.forwardRef((s,c)=>{const p=s,{__scopeToast:r}=p,d=be(p,["__scopeToast"]);return a.jsx(Et.div,we(le({},d),{ref:c}))});ng.displayName=rj;var lj="ToastDescription",ig=m.forwardRef((s,c)=>{const p=s,{__scopeToast:r}=p,d=be(p,["__scopeToast"]);return a.jsx(Et.div,we(le({},d),{ref:c}))});ig.displayName=lj;var sg="ToastAction",oj=m.forwardRef((s,c)=>{const p=s,{altText:r}=p,d=be(p,["altText"]);return r.trim()?a.jsx(lg,{altText:r,asChild:!0,children:a.jsx(Uu,we(le({},d),{ref:c}))}):(console.error(`Invalid prop \`altText\` supplied to \`${sg}\`. Expected non-empty \`string\`.`),null)});oj.displayName=sg;var rg="ToastClose",Uu=m.forwardRef((s,c)=>{const f=s,{__scopeToast:r}=f,d=be(f,["__scopeToast"]),p=nj(rg,r);return a.jsx(lg,{asChild:!0,children:a.jsx(Et.button,we(le({type:"button"},d),{ref:c,onClick:lt(s.onClick,p.onClose)}))})});Uu.displayName=rg;var lg=m.forwardRef((s,c)=>{const f=s,{__scopeToast:r,altText:d}=f,p=be(f,["__scopeToast","altText"]);return a.jsx(Et.div,we(le({"data-radix-toast-announce-exclude":"","data-radix-toast-announce-alt":d||void 0},p),{ref:c}))});function og(s){const c=[];return Array.from(s.childNodes).forEach(d=>{if(d.nodeType===d.TEXT_NODE&&d.textContent&&c.push(d.textContent),dj(d)){const p=d.ariaHidden||d.hidden||d.style.display==="none",f=d.dataset.radixToastAnnounceExclude==="";if(!p)if(f){const v=d.dataset.radixToastAnnounceAlt;v&&c.push(v)}else c.push(...og(d))}}),c}function Jl(s,c,r,{discrete:d}){const p=r.originalEvent.currentTarget,f=new CustomEvent(s,{bubbles:!0,cancelable:!0,detail:r});c&&p.addEventListener(s,c,{once:!0}),d?Gv(p,f):p.dispatchEvent(f)}var tv=(s,c,r=0)=>{const d=Math.abs(s.x),p=Math.abs(s.y),f=d>p;return c==="left"||c==="right"?f&&d>r:!f&&p>r};function cj(s=()=>{}){const c=ci(s);Ri(()=>{let r=0,d=0;return r=window.requestAnimationFrame(()=>d=window.requestAnimationFrame(c)),()=>{window.cancelAnimationFrame(r),window.cancelAnimationFrame(d)}},[c])}function dj(s){return s.nodeType===s.ELEMENT_NODE}function uj(s){const c=[],r=document.createTreeWalker(s,NodeFilter.SHOW_ELEMENT,{acceptNode:d=>{const p=d.tagName==="INPUT"&&d.type==="hidden";return d.disabled||d.hidden||p?NodeFilter.FILTER_SKIP:d.tabIndex>=0?NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_SKIP}});for(;r.nextNode();)c.push(r.currentNode);return c}function au(s){const c=document.activeElement;return s.some(r=>r===c?!0:(r.focus(),document.activeElement!==c))}var pj=Zv,fj=eg,mj=ag,hj=ng,vj=ig,gj=Uu;const cg=m.createContext(null);let xj=1;const bj={info:a.jsx(Au,{size:15}),success:a.jsx(Do,{size:15}),warning:a.jsx(Ba,{size:15}),danger:a.jsx(Tv,{size:15})};function yj({children:s}){const[c,r]=m.useState([]),d=m.useMemo(()=>({push:p=>{r(f=>[...f,le({id:xj+=1,tone:"info"},p)])}}),[]);return a.jsx(cg.Provider,{value:d,children:a.jsxs(pj,{swipeDirection:"right",children:[s,c.map(p=>{var f,v;return a.jsxs(mj,{className:K("vx-toast",`vx-toast--${(f=p.tone)!=null?f:"info"}`),duration:4500,open:!0,onOpenChange:x=>{x||r(b=>b.filter(g=>g.id!==p.id))},children:[a.jsxs("div",{className:"vx-toast__content",children:[a.jsxs("div",{className:"vx-toast__header",children:[a.jsx("span",{className:"vx-toast__icon","aria-hidden":"true",children:bj[(v=p.tone)!=null?v:"info"]}),a.jsx(hj,{className:"vx-toast__title",children:p.title})]}),p.description?a.jsx(vj,{className:"vx-toast__description",children:p.description}):null]}),a.jsx(gj,{className:"vx-toast__close","aria-label":"Dismiss notification",children:a.jsx(Ha,{size:14})})]},p.id)}),a.jsx(fj,{className:"vx-toast__viewport"})]})})}function Pu(){const s=m.useContext(cg);if(!s)throw new Error("useToast must be used within ToastProvider.");return s}const ue=m.forwardRef(function(L,A){var D=L,{className:c,variant:r="solid",size:d="md",shape:p="rect",fullWidth:f=!1,loading:v=!1,startIcon:x,endIcon:b,disabled:g,type:y="button",children:j}=D,k=be(D,["className","variant","size","shape","fullWidth","loading","startIcon","endIcon","disabled","type","children"]);return a.jsxs("button",we(le({ref:A,type:y,disabled:g||v,"aria-busy":v||void 0,className:K("vx-button",`vx-button--${r}`,`vx-button--${d}`,p==="square"&&"vx-button--square",p==="pill"&&"vx-button--pill",p==="circle"&&"vx-button--circle",f&&"vx-button--full-width",v&&"vx-button--loading",c)},k),{children:[v?a.jsx("span",{className:"vx-button__spinner","aria-hidden":"true"}):x!=null?x:null,j,!v&&b?b:null]}))});function jj(s,c,r=!0){const d=m.useRef(!1);m.useEffect(()=>{const p=s.current,f=c.current;if(!p)return;if(!r||!f){p.dataset.scrollable="false",p.dataset.scrollbarState="hidden",p.style.setProperty("--vx-scrollbar-thumb-height","0px"),p.style.setProperty("--vx-scrollbar-thumb-offset","0px");return}let v;const x=()=>{const T=f.scrollHeight>f.clientHeight+1;if(p.dataset.scrollable=T?"true":"false",!T){p.dataset.scrollbarState="hidden",p.style.setProperty("--vx-scrollbar-thumb-height","0px"),p.style.setProperty("--vx-scrollbar-thumb-offset","0px");return}const C=Math.max(p.clientHeight-16,0),_=Math.max(f.clientHeight/f.scrollHeight*C,36),u=f.scrollHeight-f.clientHeight,S=Math.max(C-_,0),N=u>0?f.scrollTop/u*S:0;p.style.setProperty("--vx-scrollbar-thumb-height",`${_}px`),p.style.setProperty("--vx-scrollbar-thumb-offset",`${N}px`),p.dataset.scrollbarState!=="active"&&(p.dataset.scrollbarState="hidden")},b=()=>{p.dataset.scrollable==="true"&&(p.dataset.scrollbarState="active",v!==void 0&&window.clearTimeout(v),v=window.setTimeout(()=>{p.dataset.scrollbarState="hidden"},640))},g=()=>{x(),b()},y=p.querySelector(".vx-overlay-scrollbar__thumb"),j=()=>{v!==void 0&&window.clearTimeout(v)},k=()=>{j(),v=window.setTimeout(()=>{p.dataset.scrollbarState="hidden"},640)},A=()=>{j(),p.dataset.scrollbarState="active"},L=()=>{k()},D=T=>{T.preventDefault(),T.stopPropagation(),d.current=!0,p.dataset.scrollbarDragging="true",j();const C=T.clientY,_=f.scrollTop,u=Math.max(p.clientHeight-16,0),S=Math.max(f.clientHeight/f.scrollHeight*u,36),N=f.scrollHeight-f.clientHeight,z=Math.max(u-S,0),V=Q=>{if(!d.current)return;const U=Q.clientY-C;if(z<=0)return;const F=U/z*N;f.scrollTop=Math.max(0,Math.min(N,_+F))},O=()=>{d.current=!1,p.dataset.scrollbarDragging="false",document.removeEventListener("mousemove",V),document.removeEventListener("mouseup",O),k()};document.addEventListener("mousemove",V),document.addEventListener("mouseup",O)};y&&(y.addEventListener("mousedown",D),y.addEventListener("mouseenter",A),y.addEventListener("mouseleave",L)),x(),f.addEventListener("scroll",g,{passive:!0});const E=new ResizeObserver(()=>x());return E.observe(p),E.observe(f),()=>{f.removeEventListener("scroll",g),y&&(y.removeEventListener("mousedown",D),y.removeEventListener("mouseenter",A),y.removeEventListener("mouseleave",L)),E.disconnect(),v!==void 0&&window.clearTimeout(v)}},[r,s,c])}function Ra(x){var b=x,{variant:s="overlay",maxHeight:c,maxWidth:r,children:d,className:p,style:f}=b,v=be(b,["variant","maxHeight","maxWidth","children","className","style"]);const g=m.useRef(null),y=m.useRef(null);jj(g,y,s==="overlay");const j=typeof c=="number"?`${c}px`:c,k=typeof r=="number"?`${r}px`:r,A=s==="overlay";return a.jsxs("div",we(le({ref:g,className:K("vx-scroll-area",A&&"vx-scroll-host",p),"data-scrollable":A?"false":void 0,"data-scrollbar-state":A?"hidden":void 0,style:le({maxHeight:j,maxWidth:k},f)},v),{children:[a.jsx("div",{ref:y,className:K("vx-scroll-area__viewport",A&&"vx-scroll-hide-native"),children:d}),A&&a.jsx("span",{className:"vx-overlay-scrollbar","aria-hidden":"true",children:a.jsx("span",{className:"vx-overlay-scrollbar__thumb"})})]}))}const xu=m.createContext(!1);function wj({collapsed:s=!1,mobileNavOpen:c=!1,density:r,sidebarWidth:d,className:p,children:f}){const{isTablet:v,isTabletPortrait:x}=zo(),b=d?{"--vx-sidebar-width":typeof d=="number"?`${d}px`:d}:void 0;return a.jsx(xu.Provider,{value:s,children:a.jsx("div",{className:K("vx-shell",p),"data-collapsed":s,"data-nav-open":c,"data-tablet":v,"data-tablet-portrait":x,"data-density":r,style:b,children:f})})}function Sj({brand:s="VXUI",brandCaption:c,brandIcon:r,collapsed:d=!1,footer:p,onToggle:f,collapseLabel:v="Collapse",expandLabel:x="Expand",onSidebarClick:b,children:g}){return a.jsx("aside",{className:"vx-sidebar",onClickCapture:b,children:a.jsxs(Ra,{className:"vx-sidebar__scroll",children:[a.jsx("div",{className:"vx-sidebar__header",children:a.jsxs("div",{className:"vx-sidebar__brand",children:[r?a.jsx("span",{className:"vx-sidebar__brand-icon",children:r}):null,a.jsxs("div",{className:"vx-sidebar__brand-copy",children:[a.jsx("span",{className:"vx-sidebar__brand-text",children:s}),c?a.jsx("span",{className:"vx-sidebar__brand-caption",children:c}):null]})]})}),g,a.jsxs("div",{className:"vx-sidebar__footer",children:[p?a.jsx("div",{className:"vx-sidebar__footer-content",children:p}):null,f?a.jsxs(ue,{variant:"ghost",size:"sm",className:"vx-sidebar__toggle",onClick:f,"aria-label":d?x:v,children:[d?a.jsx(Rv,{size:16}):a.jsx(Mv,{size:16}),a.jsx("span",{className:"vx-sidebar__toggle-label",children:d?x:v})]}):null]})]})})}function qu({label:s="Primary navigation",children:c}){return a.jsx("nav",{className:"vx-sidebar__nav","aria-label":s,children:c})}function Ar({title:s,children:c}){return a.jsxs("div",{className:"vx-nav-section-block",children:[s?a.jsx("div",{className:"vx-nav-section-block__title",children:s}):null,a.jsx("div",{className:"vx-nav-section-block__items",children:c})]})}function jt({label:s,icon:c,badge:r,trailing:d,active:p,onSelect:f,children:v,defaultOpen:x=!1}){const[b,g]=m.useState(x),[y,j]=m.useState(!1),[k,A]=m.useState({top:0,left:0}),L=m.useRef(null),D=m.useRef(void 0),E=m.useContext(xu),T=!!v;m.useEffect(()=>()=>{D.current!==void 0&&clearTimeout(D.current)},[]);const C=()=>{T&&!E&&g(z=>!z),(!T||E)&&(f==null||f())},_=()=>{if(!E||!T||!L.current)return;D.current!==void 0&&clearTimeout(D.current);const z=L.current.getBoundingClientRect(),V=L.current.closest(".vx-sidebar"),O=V?V.getBoundingClientRect().right:z.right;A({top:z.top-6,left:O+4}),j(!0)},u=()=>{D.current=setTimeout(()=>j(!1),100)},S=()=>{D.current!==void 0&&clearTimeout(D.current)},N=a.jsxs("button",{type:"button",className:K("vx-nav-item",p&&"vx-nav-item--active",T&&"vx-nav-item--parent"),onClick:C,"aria-expanded":T&&!E?b:void 0,title:E?s:void 0,children:[c?a.jsx("span",{className:"vx-nav-item__icon",children:c}):null,a.jsx("span",{className:"vx-nav-item__label",children:s}),r?a.jsx("span",{className:"vx-nav-item__badge",children:r}):null,T?a.jsx(xt,{size:14,className:K("vx-nav-item__chevron",b&&"vx-nav-item__chevron--open")}):d?a.jsx("span",{className:"vx-nav-item__trailing",children:d}):null]});return T?a.jsxs("div",{ref:L,className:"vx-nav-item-wrap",onMouseEnter:_,onMouseLeave:E?u:void 0,children:[N,!E&&b&&a.jsx("div",{className:"vx-nav-sublist",role:"group",children:v}),E&&y&&ca.createPortal(a.jsx(xu.Provider,{value:!1,children:a.jsxs("div",{className:"vx-nav-sublist-flyout",style:{top:k.top,left:k.left},role:"group",onMouseEnter:S,onMouseLeave:u,children:[a.jsx("div",{className:"vx-nav-sublist-flyout__label",children:s}),v]})}),document.body)]}):N}function _j({onClose:s,closeLabel:c="Close sidebar"}){return a.jsx("button",{type:"button",className:"vx-shell__overlay","aria-label":c,onClick:s})}function kj({children:s}){return a.jsx("div",{className:"vx-shell__main",children:s})}const Nj=m.forwardRef(function({title:c,description:r,breadcrumb:d,actions:p,onMenuToggle:f,mobileNavOpen:v=!1,menuButtonLabel:x="Open navigation"},b){return a.jsxs("header",{ref:b,className:"vx-topbar",children:[f?a.jsx(ue,{variant:"ghost",size:"sm",className:"vx-topbar__menu","aria-label":x,onClick:f,children:v?a.jsx(Mv,{size:16}):a.jsx(Rv,{size:16})}):null,a.jsx("div",{className:"vx-topbar__title-group",children:d||a.jsxs("div",{children:[c?a.jsx("h1",{className:"vx-topbar__title",children:c}):null,r?a.jsx("p",{className:"vx-topbar__description",children:r}):null]})}),p?a.jsx("div",{className:"vx-topbar__actions",children:p}):null]})});function Cj({children:s}){return a.jsx("div",{className:"vx-shell__content-wrap",children:a.jsx(Ra,{className:"vx-shell__content",children:s})})}function Tj({brand:s="VXUI",brandCaption:c,brandIcon:r,topbarRef:d,breadcrumb:p,title:f,description:v,navItems:x,navSections:b,sidebarCollapsed:g=!1,sidebarWidth:y,mobileNavOpen:j=!1,onSidebarToggle:k,onMobileNavToggle:A,onSidebarClick:L,menuButtonLabel:D="Open navigation",sidebarCollapseLabel:E="Collapse",sidebarExpandLabel:T="Expand",sidebarCloseLabel:C="Close sidebar",density:_,headerActions:u,sidebarFooter:S,children:N}){const z=b!=null?b:x?[{items:x}]:[];function V(O){var $;const P=O,{key:Q,onSelect:U,children:F,defaultOpen:ie}=P,fe=be(P,["key","onSelect","children","defaultOpen"]),Z=($=F==null?void 0:F.some(re=>re.active))!=null?$:!1;return a.jsx(jt,we(le({onSelect:U,defaultOpen:ie!=null?ie:F?Z:void 0},fe),{children:F==null?void 0:F.map(V)}),Q)}return a.jsxs(wj,{collapsed:g,mobileNavOpen:j,density:_,sidebarWidth:y,children:[a.jsx(Sj,{brand:s,brandCaption:c,brandIcon:r,collapsed:g,footer:S,onToggle:k,onSidebarClick:L,collapseLabel:E,expandLabel:T,children:a.jsx(qu,{children:z.map((O,Q)=>{var U,F;return a.jsx(Ar,{title:O.title,children:O.items.map(V)},(F=(U=O.key)!=null?U:O.title)!=null?F:Q)})})}),A?a.jsx(_j,{onClose:A,closeLabel:C}):null,a.jsxs(kj,{children:[a.jsx(Nj,{ref:d,breadcrumb:p,title:f,description:v,actions:u,onMenuToggle:A,mobileNavOpen:j,menuButtonLabel:D}),a.jsx(Cj,{children:N})]})]})}function He(d){var p=d,{className:s,variant:c="neutral"}=p,r=be(p,["className","variant"]);return a.jsx("span",le({className:K("vx-badge",`vx-badge--${c}`,s)},r))}function $t(f){var v=f,{className:s,variant:c="default",padding:r,hoverable:d=!1}=v,p=be(v,["className","variant","padding","hoverable"]);return a.jsx("section",le({className:K("vx-card",c!=="default"&&`vx-card--${c}`,r&&`vx-card--pad-${r}`,d&&"vx-card--hoverable",s)},p))}function sa(r){var d=r,{className:s}=d,c=be(d,["className"]);return a.jsx("header",le({className:K("vx-card__header",s)},c))}function ra(r){var d=r,{className:s}=d,c=be(d,["className"]);return a.jsx("h2",le({className:K("vx-card__title",s)},c))}function la(r){var d=r,{className:s}=d,c=be(d,["className"]);return a.jsx("p",le({className:K("vx-card__description",s)},c))}function oa(r){var d=r,{className:s}=d,c=be(d,["className"]);return a.jsx("div",le({className:K("vx-card__content",s)},c))}function dg({open:s,defaultOpen:c=!1,onOpenChange:r}){const d=s!==void 0,[p,f]=m.useState(c),v=d?s:p,x=m.useRef(r);x.current=r;const b=m.useCallback(k=>{var A;if(d){const L=typeof k=="function"?k(s):k;(A=x.current)==null||A.call(x,L)}else f(k)},[d,s]);m.useEffect(()=>{d&&f(s)},[d,s]),m.useEffect(()=>{var k;d||(k=x.current)==null||k.call(x,p)},[d,p]);const g=m.useCallback(()=>b(!0),[b]),y=m.useCallback(()=>b(!1),[b]),j=m.useCallback(()=>b(k=>!k),[b]);return{isOpen:v,open:g,close:y,toggle:j}}const ug=["a[href]",'button:not([disabled]):not([aria-hidden="true"])','input:not([disabled]):not([aria-hidden="true"])','textarea:not([disabled]):not([aria-hidden="true"])','select:not([disabled]):not([aria-hidden="true"])','[tabindex]:not([tabindex="-1"]):not([aria-hidden="true"])',"area[href]","iframe","object","embed"].join(", ");function pg(s,c){const{active:r,autoFocus:d=!0,onMountAutoFocus:p,onUnmountAutoFocus:f}=c,v=m.useRef(null);m.useEffect(()=>{var g,y;if(!r){if(v.current&&document.contains(v.current)){const j=v.current,k=new Event("focusrestore");((g=f==null?void 0:f(k))!=null?g:!0)&&requestAnimationFrame(()=>{j.focus({preventScroll:!0})})}v.current=null;return}const x=s.current;if(!x)return;if(v.current=document.activeElement,d){const j=new Event("focusauto");if((y=p==null?void 0:p(j))!=null?y:!0){const A=Aj(x);A?A.focus({preventScroll:!0}):x.focus({preventScroll:!0})}}const b=j=>{if(j.key!=="Tab")return;const k=Ej(x);if(k.length===0){j.preventDefault();return}const A=k[0],L=k[k.length-1],D=k.indexOf(document.activeElement);j.shiftKey?D<=0&&(j.preventDefault(),L.focus({preventScroll:!0})):(D===-1||D===k.length-1)&&(j.preventDefault(),A.focus({preventScroll:!0}))};return document.addEventListener("keydown",b),()=>{document.removeEventListener("keydown",b)}},[r,d,s,p,f])}function Ej(s){return Array.from(s.querySelectorAll(ug))}function Aj(s){return s.querySelector(ug)}function Iu(s){const c=m.useRef(0);m.useEffect(()=>(s?(c.current+=1,c.current===1&&zj()):(c.current-=1,c.current<=0&&(c.current=0,av())),()=>{c.current-=1,c.current<=0&&(c.current=0,av())}),[s])}let no=null,io=null;function zj(){const s=document.body,c=window.innerWidth-document.documentElement.clientWidth;if(no=s.style.overflow,io=s.style.paddingRight,s.style.overflow="hidden",c>0){const r=parseFloat(getComputedStyle(s).paddingRight)||0;s.style.paddingRight=`${r+c}px`}}function av(){const s=document.body;no!==null?(s.style.overflow=no,no=null):s.style.overflow="",io!==null?(s.style.paddingRight=io,io=null):s.style.paddingRight=""}const fg=m.createContext(null);function Dj(s){var c;if(s){const r=s.closest("[data-dialog-content-ref]");if(r)return r}return(c=s==null?void 0:s.closest(".vx-dialog__content"))!=null?c:null}function di(s){return{dialogContent:Dj(s),shouldInline:!1}}function Mj(){return m.useContext(fg)}const Rj=m.createContext(null);function Oj({children:s,scrollable:c}){return c?a.jsx("div",{className:"vx-dialog__body-wrap",children:a.jsx(Ra,{className:"vx-dialog__body",children:s})}):a.jsx("div",{className:"vx-dialog__body-wrap",children:a.jsx("div",{className:"vx-dialog__body",children:s})})}function Lj({trigger:s,onOpen:c}){if(m.isValidElement(s)){const r=s;return m.cloneElement(r,{onClick:d=>{const p=r.props.onClick;p==null||p(d),d.defaultPrevented||c()}})}return a.jsx("button",{type:"button",onClick:c,children:s})}function Ga({trigger:s,title:c,description:r,children:d,footer:p,className:f,size:v="md",padding:x,placement:b="center",scrollable:g=!0,closable:y=!0,fullscreen:j=!1,open:k,defaultOpen:A,onOpenChange:L,onConfirm:D,onCancel:E,confirmLabel:T="Confirm",cancelLabel:C="Cancel",confirmVariant:_="solid"}){const{isOpen:u,open:S,close:N}=dg({open:k,defaultOpen:A,onOpenChange:L}),z=m.useCallback(()=>{D==null||D(),N()},[D,N]),V=m.useCallback(()=>{E==null||E(),N()},[E,N]),O=m.useRef(null),Q=m.useId(),U=m.useId();Iu(u),pg(O,{active:u}),m.useEffect(()=>{if(!u)return;const Z=P=>{if(P.key!=="Escape")return;const $=O.current;if(!$)return;const re=!!$.querySelector(".vx-select__dropdown, .vx-multiselect__dropdown, .vx-datepicker__popover, .vx-timepicker__popover, .vx-colorpicker__panel"),ge=$.dataset.hasOpenPortal==="1";if(re||ge){P.preventDefault();return}N()};return document.addEventListener("keydown",Z),()=>document.removeEventListener("keydown",Z)},[u,N]);const F=m.useCallback(Z=>{if(Z.target!==Z.currentTarget)return;const P=O.current;(P==null?void 0:P.dataset.hasOpenPortal)!=="1"&&N()},[N]),ie={close:N,contentRef:O},fe=p!=null?p:D?a.jsxs(a.Fragment,{children:[a.jsx("button",{type:"button",className:"vx-button vx-button--secondary",onClick:V,children:C}),a.jsx("button",{type:"button",className:K("vx-button",_==="danger"?"vx-button--danger":"vx-button--solid"),onClick:z,children:T})]}):null;return a.jsxs(a.Fragment,{children:[s!=null&&a.jsx(Lj,{trigger:s,onOpen:S}),u&&ca.createPortal(a.jsx(Rj.Provider,{value:ie,children:a.jsxs(fg.Provider,{value:O.current,children:[a.jsx("div",{className:"vx-dialog__overlay",onClick:F,onPointerDown:Z=>{const P=O.current;(P==null?void 0:P.dataset.hasOpenPortal)==="1"&&Z.preventDefault()}}),a.jsxs("div",{ref:O,role:"dialog","aria-modal":"true","aria-labelledby":Q,"aria-describedby":r?U:void 0,tabIndex:-1,className:K("vx-dialog__content",j&&"vx-dialog__content--fullscreen",v!=="md"&&`vx-dialog__content--${v}`,b!=="center"&&`vx-dialog__content--${b}`,x&&`vx-dialog__content--pad-${x}`,g&&"vx-dialog__content--scrollable",f),children:[a.jsxs("div",{className:"vx-dialog__header",children:[a.jsxs("div",{children:[a.jsx("h2",{id:Q,className:"vx-dialog__title",children:c}),r?a.jsx("p",{id:U,className:"vx-dialog__description",children:r}):null]}),y?a.jsx("button",{type:"button",className:"vx-dialog__close","aria-label":"Close dialog",onClick:N,children:a.jsx(Ha,{size:16})}):null]}),d?a.jsx(Oj,{scrollable:g,children:d}):null,fe?a.jsx("div",{className:"vx-dialog__footer",children:fe}):null]})]})}),document.body)]})}function st(y){var j=y,{className:s,label:c,hint:r,prefix:d,suffix:p,error:f,variant:v="default",size:x="md",rounded:b=!1}=j,g=be(j,["className","label","hint","prefix","suffix","error","variant","size","rounded"]);return a.jsxs("label",{className:"vx-field-group",children:[c?a.jsx("span",{className:"vx-field-group__label",children:c}):null,a.jsxs("span",{className:K("vx-input",v!=="default"&&`vx-input--${v}`,x!=="md"&&`vx-input--${x}`,b&&"vx-input--rounded",f&&"vx-input--invalid",s),children:[d?a.jsx("span",{className:"vx-input__ornament",children:d}):null,a.jsx("input",le({className:"vx-input__field","aria-invalid":f?"true":void 0},g)),p?a.jsx("span",{className:"vx-input__ornament",children:p}):null]}),f?a.jsx("span",{className:"vx-field-group__error",children:f}):null,!f&&r?a.jsx("span",{className:"vx-field-group__hint",children:r}):null]})}function Bj(s){const c=m.useRef({value:s,previous:s});return m.useMemo(()=>(c.current.value!==s&&(c.current.previous=c.current.value,c.current.value=s),c.current.previous),[s])}function Hj(s){const[c,r]=m.useState(void 0);return Ri(()=>{if(s){r({width:s.offsetWidth,height:s.offsetHeight});const d=new ResizeObserver(p=>{if(!Array.isArray(p)||!p.length)return;const f=p[0];let v,x;if("borderBoxSize"in f){const b=f.borderBoxSize,g=Array.isArray(b)?b[0]:b;v=g.inlineSize,x=g.blockSize}else v=s.offsetWidth,x=s.offsetHeight;r({width:v,height:x})});return d.observe(s,{box:"border-box"}),()=>d.unobserve(s)}else r(void 0)},[s]),c}var Lo="Switch",[Uj]=Dr(Lo),[Pj,qj]=Uj(Lo),mg=m.forwardRef((s,c)=>{const _=s,{__scopeSwitch:r,name:d,checked:p,defaultChecked:f,required:v,disabled:x,value:b="on",onCheckedChange:g,form:y}=_,j=be(_,["__scopeSwitch","name","checked","defaultChecked","required","disabled","value","onCheckedChange","form"]),[k,A]=m.useState(null),L=Qa(c,u=>A(u)),D=m.useRef(!1),E=k?y||!!k.closest("form"):!0,[T,C]=Ro({prop:p,defaultProp:f!=null?f:!1,onChange:g,caller:Lo});return a.jsxs(Pj,{scope:r,checked:T,disabled:x,children:[a.jsx(Et.button,we(le({type:"button",role:"switch","aria-checked":T,"aria-required":v,"data-state":xg(T),"data-disabled":x?"":void 0,disabled:x,value:b},j),{ref:L,onClick:lt(s.onClick,u=>{C(S=>!S),E&&(D.current=u.isPropagationStopped(),D.current||u.stopPropagation())})})),E&&a.jsx(gg,{control:k,bubbles:!D.current,name:d,value:b,checked:T,required:v,disabled:x,form:y,style:{transform:"translateX(-100%)"}})]})});mg.displayName=Lo;var hg="SwitchThumb",vg=m.forwardRef((s,c)=>{const f=s,{__scopeSwitch:r}=f,d=be(f,["__scopeSwitch"]),p=qj(hg,r);return a.jsx(Et.span,we(le({"data-state":xg(p.checked),"data-disabled":p.disabled?"":void 0},d),{ref:c}))});vg.displayName=hg;var Ij="SwitchBubbleInput",gg=m.forwardRef((v,f)=>{var x=v,{__scopeSwitch:s,control:c,checked:r,bubbles:d=!0}=x,p=be(x,["__scopeSwitch","control","checked","bubbles"]);const b=m.useRef(null),g=Qa(b,f),y=Bj(r),j=Hj(c);return m.useEffect(()=>{const k=b.current;if(!k)return;const A=window.HTMLInputElement.prototype,D=Object.getOwnPropertyDescriptor(A,"checked").set;if(y!==r&&D){const E=new Event("click",{bubbles:d});D.call(k,r),k.dispatchEvent(E)}},[y,r,d]),a.jsx("input",we(le({type:"checkbox","aria-hidden":!0,defaultChecked:r},p),{tabIndex:-1,ref:g,style:we(le(le({},p.style),j),{position:"absolute",pointerEvents:"none",opacity:0,margin:0})}))});gg.displayName=Ij;function xg(s){return s?"checked":"unchecked"}var Vj=mg,Fj=vg;function Ya(p){var f=p,{className:s,label:c,description:r}=f,d=be(f,["className","label","description"]);return a.jsxs("label",{className:"vx-switch",children:[a.jsxs("span",{className:"vx-switch__copy",children:[a.jsx("span",{className:"vx-switch__label",children:c}),r?a.jsx("span",{className:"vx-switch__description",children:r}):null]}),a.jsx(Vj,we(le({className:K("vx-switch__control",s)},d),{children:a.jsx(Fj,{className:"vx-switch__thumb"})}))]})}var Gj=jv[" useId ".trim().toString()]||(()=>{}),Yj=0;function bg(s){const[c,r]=m.useState(Gj());return Ri(()=>{r(d=>d!=null?d:String(Yj++))},[s]),s||(c?`radix-${c}`:"")}var Xj=m.createContext(void 0);function yg(s){const c=m.useContext(Xj);return s||c||"ltr"}var nu="rovingFocusGroup.onEntryFocus",$j={bubbles:!1,cancelable:!0},Rr="RovingFocusGroup",[bu,jg,Kj]=Fv(Rr),[Qj,wg]=Dr(Rr,[Kj]),[Wj,Zj]=Qj(Rr),Sg=m.forwardRef((s,c)=>a.jsx(bu.Provider,{scope:s.__scopeRovingFocusGroup,children:a.jsx(bu.Slot,{scope:s.__scopeRovingFocusGroup,children:a.jsx(Jj,we(le({},s),{ref:c}))})}));Sg.displayName=Rr;var Jj=m.forwardRef((s,c)=>{const V=s,{__scopeRovingFocusGroup:r,orientation:d,loop:p=!1,dir:f,currentTabStopId:v,defaultCurrentTabStopId:x,onCurrentTabStopIdChange:b,onEntryFocus:g,preventScrollOnEntryFocus:y=!1}=V,j=be(V,["__scopeRovingFocusGroup","orientation","loop","dir","currentTabStopId","defaultCurrentTabStopId","onCurrentTabStopIdChange","onEntryFocus","preventScrollOnEntryFocus"]),k=m.useRef(null),A=Qa(c,k),L=yg(f),[D,E]=Ro({prop:v,defaultProp:x!=null?x:null,onChange:b,caller:Rr}),[T,C]=m.useState(!1),_=ci(g),u=jg(r),S=m.useRef(!1),[N,z]=m.useState(0);return m.useEffect(()=>{const O=k.current;if(O)return O.addEventListener(nu,_),()=>O.removeEventListener(nu,_)},[_]),a.jsx(Wj,{scope:r,orientation:d,dir:L,loop:p,currentTabStopId:D,onItemFocus:m.useCallback(O=>E(O),[E]),onItemShiftTab:m.useCallback(()=>C(!0),[]),onFocusableItemAdd:m.useCallback(()=>z(O=>O+1),[]),onFocusableItemRemove:m.useCallback(()=>z(O=>O-1),[]),children:a.jsx(Et.div,we(le({tabIndex:T||N===0?-1:0,"data-orientation":d},j),{ref:A,style:le({outline:"none"},s.style),onMouseDown:lt(s.onMouseDown,()=>{S.current=!0}),onFocus:lt(s.onFocus,O=>{const Q=!S.current;if(O.target===O.currentTarget&&Q&&!T){const U=new CustomEvent(nu,$j);if(O.currentTarget.dispatchEvent(U),!U.defaultPrevented){const F=u().filter($=>$.focusable),ie=F.find($=>$.active),fe=F.find($=>$.id===D),P=[ie,fe,...F].filter(Boolean).map($=>$.ref.current);Ng(P,y)}}S.current=!1}),onBlur:lt(s.onBlur,()=>C(!1))}))})}),_g="RovingFocusGroupItem",kg=m.forwardRef((s,c)=>{const E=s,{__scopeRovingFocusGroup:r,focusable:d=!0,active:p=!1,tabStopId:f,children:v}=E,x=be(E,["__scopeRovingFocusGroup","focusable","active","tabStopId","children"]),b=bg(),g=f||b,y=Zj(_g,r),j=y.currentTabStopId===g,k=jg(r),{onFocusableItemAdd:A,onFocusableItemRemove:L,currentTabStopId:D}=y;return m.useEffect(()=>{if(d)return A(),()=>L()},[d,A,L]),a.jsx(bu.ItemSlot,{scope:r,id:g,focusable:d,active:p,children:a.jsx(Et.span,we(le({tabIndex:j?0:-1,"data-orientation":y.orientation},x),{ref:c,onMouseDown:lt(s.onMouseDown,T=>{d?y.onItemFocus(g):T.preventDefault()}),onFocus:lt(s.onFocus,()=>y.onItemFocus(g)),onKeyDown:lt(s.onKeyDown,T=>{if(T.key==="Tab"&&T.shiftKey){y.onItemShiftTab();return}if(T.target!==T.currentTarget)return;const C=aw(T,y.orientation,y.dir);if(C!==void 0){if(T.metaKey||T.ctrlKey||T.altKey||T.shiftKey)return;T.preventDefault();let u=k().filter(S=>S.focusable).map(S=>S.ref.current);if(C==="last")u.reverse();else if(C==="prev"||C==="next"){C==="prev"&&u.reverse();const S=u.indexOf(T.currentTarget);u=y.loop?nw(u,S+1):u.slice(S+1)}setTimeout(()=>Ng(u))}}),children:typeof v=="function"?v({isCurrentTabStop:j,hasTabStop:D!=null}):v}))})});kg.displayName=_g;var ew={ArrowLeft:"prev",ArrowUp:"prev",ArrowRight:"next",ArrowDown:"next",PageUp:"first",Home:"first",PageDown:"last",End:"last"};function tw(s,c){return c!=="rtl"?s:s==="ArrowLeft"?"ArrowRight":s==="ArrowRight"?"ArrowLeft":s}function aw(s,c,r){const d=tw(s.key,r);if(!(c==="vertical"&&["ArrowLeft","ArrowRight"].includes(d))&&!(c==="horizontal"&&["ArrowUp","ArrowDown"].includes(d)))return ew[d]}function Ng(s,c=!1){const r=document.activeElement;for(const d of s)if(d===r||(d.focus({preventScroll:c}),document.activeElement!==r))return}function nw(s,c){return s.map((r,d)=>s[(c+d)%s.length])}var iw=Sg,sw=kg,Bo="Tabs",[rw]=Dr(Bo,[wg]),Cg=wg(),[lw,Vu]=rw(Bo),Tg=m.forwardRef((s,c)=>{const A=s,{__scopeTabs:r,value:d,onValueChange:p,defaultValue:f,orientation:v="horizontal",dir:x,activationMode:b="automatic"}=A,g=be(A,["__scopeTabs","value","onValueChange","defaultValue","orientation","dir","activationMode"]),y=yg(x),[j,k]=Ro({prop:d,onChange:p,defaultProp:f!=null?f:"",caller:Bo});return a.jsx(lw,{scope:r,baseId:bg(),value:j,onValueChange:k,orientation:v,dir:y,activationMode:b,children:a.jsx(Et.div,we(le({dir:y,"data-orientation":v},g),{ref:c}))})});Tg.displayName=Bo;var Eg="TabsList",Ag=m.forwardRef((s,c)=>{const x=s,{__scopeTabs:r,loop:d=!0}=x,p=be(x,["__scopeTabs","loop"]),f=Vu(Eg,r),v=Cg(r);return a.jsx(iw,we(le({asChild:!0},v),{orientation:f.orientation,dir:f.dir,loop:d,children:a.jsx(Et.div,we(le({role:"tablist","aria-orientation":f.orientation},p),{ref:c}))}))});Ag.displayName=Eg;var zg="TabsTrigger",Dg=m.forwardRef((s,c)=>{const j=s,{__scopeTabs:r,value:d,disabled:p=!1}=j,f=be(j,["__scopeTabs","value","disabled"]),v=Vu(zg,r),x=Cg(r),b=Og(v.baseId,d),g=Lg(v.baseId,d),y=d===v.value;return a.jsx(sw,we(le({asChild:!0},x),{focusable:!p,active:y,children:a.jsx(Et.button,we(le({type:"button",role:"tab","aria-selected":y,"aria-controls":g,"data-state":y?"active":"inactive","data-disabled":p?"":void 0,disabled:p,id:b},f),{ref:c,onMouseDown:lt(s.onMouseDown,k=>{!p&&k.button===0&&k.ctrlKey===!1?v.onValueChange(d):k.preventDefault()}),onKeyDown:lt(s.onKeyDown,k=>{[" ","Enter"].includes(k.key)&&v.onValueChange(d)}),onFocus:lt(s.onFocus,()=>{const k=v.activationMode!=="manual";!y&&!p&&k&&v.onValueChange(d)})}))}))});Dg.displayName=zg;var Mg="TabsContent",Rg=m.forwardRef((s,c)=>{const k=s,{__scopeTabs:r,value:d,forceMount:p,children:f}=k,v=be(k,["__scopeTabs","value","forceMount","children"]),x=Vu(Mg,r),b=Og(x.baseId,d),g=Lg(x.baseId,d),y=d===x.value,j=m.useRef(y);return m.useEffect(()=>{const A=requestAnimationFrame(()=>j.current=!1);return()=>cancelAnimationFrame(A)},[]),a.jsx(Ou,{present:p||y,children:({present:A})=>a.jsx(Et.div,we(le({"data-state":y?"active":"inactive","data-orientation":x.orientation,role:"tabpanel","aria-labelledby":b,hidden:!A,id:g,tabIndex:0},v),{ref:c,style:we(le({},s.style),{animationDuration:j.current?"0s":void 0}),children:A&&f}))})});Rg.displayName=Mg;function Og(s,c){return`${s}-trigger-${c}`}function Lg(s,c){return`${s}-content-${c}`}var ow=Tg,cw=Ag,dw=Dg,uw=Rg;const Cs=ow,Ts=m.forwardRef(function(p,d){var f=p,{className:c}=f,r=be(f,["className"]);return a.jsx(cw,le({ref:d,className:K("vx-tabs__list",c)},r))}),Kt=m.forwardRef(function(p,d){var f=p,{className:c}=f,r=be(f,["className"]);return a.jsx(dw,le({ref:d,className:K("vx-tabs__trigger",c)},r))}),Qt=m.forwardRef(function(p,d){var f=p,{className:c}=f,r=be(f,["className"]);return a.jsx(uw,le({ref:d,className:K("vx-tabs__content",c)},r))});function Ct(x){var b=x,{as:s="p",variant:c="default",size:r="base",weight:d="normal",truncate:p=!1,className:f}=b,v=be(b,["as","variant","size","weight","truncate","className"]);return a.jsx(s,le({className:K("vx-text-component",`vx-text--${c}`,`vx-text-size--${r}`,`vx-text-weight--${d}`,p&&"vx-text--truncate",f)},v))}function _a(x){var b=x,{as:s,level:c=2,variant:r="default",weight:d="bold",truncate:p=!1,className:f}=b,v=be(b,["as","level","variant","weight","truncate","className"]);const g=s||`h${c}`;return a.jsx(g,le({className:K("vx-heading",`vx-heading--h${c}`,`vx-heading--${r}`,`vx-heading-weight--${d}`,p&&"vx-text--truncate",f)},v))}function Or(){const{isPhone:s,screenWidth:c,aspectRatio:r}=zo();return!!(s||r>0&&r<_v&&c<=Nu)}function pw(s){const{isOpen:c,open:r,close:d}=dg(s),[p,f]=m.useState("hidden"),v=m.useRef(!1);m.useEffect(()=>{c?(v.current=!1,f("visible")):v.current||(v.current=!0,f("exiting"))},[c]),m.useEffect(()=>{if(p==="exiting"){const g=setTimeout(()=>{f("hidden"),v.current=!1},280);return()=>clearTimeout(g)}},[p]);const x=p!=="hidden",b=m.useCallback(()=>{d()},[d]);return{isVisible:x,phase:p,open:r,close:b,isOpen:c}}function fw({side:s,phase:c,title:r,description:d,children:p,header:f,footer:v,className:x,showClose:b=!0,showConfirm:g=!1,confirmText:y="确认",confirmDisabled:j=!1,onConfirm:k,onClose:A,closeOnOverlayClick:L=!0,action:D=!1,width:E}){const T=m.useRef(null),C=m.useId(),_=m.useId(),u=c!=="hidden";if(Iu(u),pg(T,{active:c==="visible"}),m.useEffect(()=>{if(c!=="visible")return;const N=z=>{z.key==="Escape"&&A()};return document.addEventListener("keydown",N),()=>document.removeEventListener("keydown",N)},[c,A]),!u)return null;const S=s==="left"||s==="right";return ca.createPortal(a.jsx("div",{className:K("vx-sheet__overlay",c==="exiting"&&"vx-sheet__overlay--exiting"),onClick:L?A:void 0,children:a.jsxs("div",{ref:T,role:"dialog","aria-modal":"true","aria-labelledby":r?C:void 0,"aria-describedby":d?_:void 0,tabIndex:-1,className:K("vx-sheet",`vx-sheet--${s}`,c==="exiting"&&"vx-sheet--exiting",D&&"vx-sheet--action",x),onClick:N=>N.stopPropagation(),style:S&&E?{width:E}:void 0,children:[!D&&b&&a.jsx("button",{type:"button",className:"vx-sheet__close",onClick:A,"aria-label":"Close",children:a.jsx(Ha,{size:16})}),f,!f&&(r||d)&&a.jsx("div",{className:"vx-sheet__header",children:a.jsxs("div",{children:[r&&a.jsx("h2",{id:C,className:"vx-sheet__title",children:r}),d&&a.jsx("p",{id:_,className:"vx-sheet__description",children:d})]})}),a.jsx("div",{className:K("vx-sheet__body",D&&"vx-sheet__body--action"),children:p}),v,!D&&g&&a.jsx("div",{className:"vx-sheet__footer",children:a.jsx("button",{type:"button",className:"vx-sheet__confirm",disabled:j,onClick:()=>{k==null||k(),A()},children:y})})]})}),document.body)}function mw(f){var v=f,{icon:s,destructive:c,className:r,children:d}=v,p=be(v,["icon","destructive","className","children"]);return a.jsxs("button",we(le({type:"button",className:K("vxm-actionsheet-item",c&&"vxm-actionsheet-item--destructive",r)},p),{children:[s&&a.jsx("span",{className:"vxm-actionsheet-item__icon",children:s}),d]}))}function hw(s){return s!=null&&typeof s=="object"&&"type"in s&&"props"in s}function vw(s,c){const f=s.props,{onClick:r}=f,d=be(f,["onClick"]),p=v=>{typeof r=="function"&&r(v),typeof c.onClick=="function"&&c.onClick(v)};return we(le({},s),{props:we(le(le({},d),c),{onClick:p})})}function gw({trigger:s,onOpen:c}){return hw(s)?vw(s,{onClick:c}):a.jsx("button",{type:"button",onClick:c,children:s})}function it({trigger:s,title:c,description:r,side:d="right",variant:p="default",children:f,header:v,footer:x,className:b,open:g,defaultOpen:y,onOpenChange:j,showClose:k=!0,closeOnOverlayClick:A=!0,showConfirm:L=!1,confirmText:D="确认",confirmDisabled:E=!1,onConfirm:T,width:C}){const{phase:_,open:u,close:S}=pw({open:g,defaultOpen:y,onOpenChange:j});return a.jsxs(a.Fragment,{children:[s?a.jsx(gw,{trigger:s,onOpen:u}):null,a.jsx(fw,{side:d,phase:_,title:c,description:r,header:v,footer:x,className:b,showClose:p==="action"?!1:k,closeOnOverlayClick:A,showConfirm:L,confirmText:D,confirmDisabled:E,onConfirm:T,onClose:S,action:p==="action",width:C,children:f})]})}it.Item=mw;function xw(s){return s.searchLabel!==void 0?s.searchLabel:typeof s.label=="string"?s.label:""}function wt({options:s,value:c,defaultValue:r,onChange:d,placeholder:p="Select...",searchPlaceholder:f="Search...",label:v,hint:x,error:b,disabled:g,clearable:y=!1,emptyText:j="No results",searchable:k=!0,className:A,mobileSheet:L}){var J;const D=c!==void 0,[E,T]=m.useState(r),C=D?c:E,[_,u]=m.useState(!1),[S,N]=m.useState(""),z=m.useRef(null),V=m.useRef(null),O=m.useRef(null),Q=m.useRef(null),U=m.useId(),F=Or(),[ie,fe]=m.useState(null),Z=m.useRef(null),P=s.find(I=>I.value===C),$=s.filter(I=>{const he=xw(I);return he&&he.toLowerCase().includes(S.toLowerCase())}),re=typeof k=="number"?s.length>k:k;m.useEffect(()=>{if(!_){N("");return}if(re){const he=setTimeout(()=>{var ce;return(ce=Q.current)==null?void 0:ce.focus()},F?350:0);return()=>clearTimeout(he)}},[_,re,F]),m.useEffect(()=>{if(!_||F)return;const I=ce=>{var Ee,Ge;const oe=(Ee=z.current)==null?void 0:Ee.contains(ce.target),ke=(Ge=O.current)==null?void 0:Ge.contains(ce.target);!oe&&!ke&&u(!1)},he=ce=>{ce.key==="Escape"&&(ce.preventDefault(),u(!1))};return document.addEventListener("mousedown",I),document.addEventListener("touchstart",I,{passive:!0}),document.addEventListener("keydown",he),()=>{document.removeEventListener("mousedown",I),document.removeEventListener("touchstart",I),document.removeEventListener("keydown",he)}},[_,F]),m.useEffect(()=>{di(z.current)},[_]),m.useEffect(()=>{if(!_||!ie)return;const I=Z.current;if(I)return I.dataset.hasOpenPortal="1",()=>{delete I.dataset.hasOpenPortal}},[_,ie]),m.useLayoutEffect(()=>{const{dialogContent:I,shouldInline:he}=di(z.current);if(!_||!V.current||he||F){fe(null),Z.current=null;return}Z.current=I;const ce=V.current.getBoundingClientRect(),oe=window.innerHeight-ce.bottom,ke=ce.top,Ee=oe<200&&ke>oe?"up":"down",Ge=8,ut=120,At=Ee==="down"?Math.max(ut,oe-Ge):Math.max(ut,ke-Ge);fe(Ee==="down"?{top:ce.bottom+4,left:ce.left,width:ce.width,direction:Ee,maxHeight:At}:{bottom:window.innerHeight-ce.top+4,left:ce.left,width:ce.width,direction:Ee,maxHeight:At})},[_,F]),m.useEffect(()=>{if(!_||!ie)return;const I=he=>{var ce;(ce=O.current)!=null&&ce.contains(he.target)||u(!1)};return window.addEventListener("scroll",I,{capture:!0,passive:!0}),window.addEventListener("resize",I),()=>{window.removeEventListener("scroll",I,{capture:!0}),window.removeEventListener("resize",I)}},[_,ie]);const ge=I=>{I.disabled||(D||T(I.value),d==null||d(I.value),u(!1))},xe=I=>{I.stopPropagation(),D||T(void 0),d==null||d(void 0)},[R,W]=m.useState(C);m.useEffect(()=>{_&&F&&W(C)},[_,F,C]);const B=I=>{I.disabled||W(I.value)},te=()=>{D||T(R),d==null||d(R)},pe=a.jsxs(a.Fragment,{children:[re&&a.jsx("div",{className:"vx-select__search-wrap",children:a.jsx("input",{ref:Q,type:"text",className:"vx-select__search",placeholder:f,value:S,onChange:I=>N(I.target.value),"aria-label":f})}),a.jsx("ul",{id:U,className:"vx-select__list",role:"listbox","aria-label":v!=null?v:"Options",children:$.length===0?a.jsx("li",{className:"vx-select__empty",children:j}):$.map(I=>a.jsxs("li",{className:K("vx-select__option",I.value===R&&"vx-select__option--selected",I.disabled&&"vx-select__option--disabled"),role:"option","aria-selected":I.value===R,"aria-disabled":I.disabled,onClick:()=>B(I),children:[a.jsx("span",{children:I.label}),I.value===R?a.jsx(Ka,{size:14}):null]},I.value))})]});return a.jsxs("div",{ref:z,className:K("vx-select",_&&"vx-select--open",A),children:[v?a.jsx("span",{className:"vx-field-group__label",children:v}):null,a.jsxs("button",{ref:V,type:"button",className:K("vx-select__trigger",b&&"vx-select__trigger--invalid",g&&"vx-select__trigger--disabled"),onClick:()=>!g&&u(I=>!I),disabled:g,"aria-haspopup":"listbox","aria-expanded":_,"aria-controls":U,children:[a.jsx("span",{className:K("vx-select__value",!P&&"vx-select__value--placeholder"),children:(J=P==null?void 0:P.label)!=null?J:p}),a.jsxs("span",{className:"vx-select__icons",children:[y&&P&&a.jsx("span",{className:"vx-select__clear",onClick:xe,role:"button","aria-label":"Clear selection",children:a.jsx(Ha,{size:14})}),a.jsx(Cu,{size:14,className:K("vx-select__chevron",_&&"vx-select__chevron--open")})]})]}),b?a.jsx("span",{className:"vx-field-group__error",children:b}):null,!b&&x?a.jsx("span",{className:"vx-field-group__hint",children:x}):null,_&&!F&&(()=>{const I=!!ie,he=ie?{top:ie.top,bottom:ie.bottom,left:ie.left,width:ie.width,pointerEvents:"auto"}:void 0,ce=a.jsxs("div",{ref:O,className:K("vx-select__dropdown",(ie==null?void 0:ie.direction)==="up"&&"vx-select__dropdown--up",!!Z.current&&"vx-select__dropdown--in-dialog"),style:he,children:[re&&a.jsx("div",{className:"vx-select__search-wrap",children:a.jsx("input",{ref:Q,type:"text",className:"vx-select__search",placeholder:f,value:S,onChange:oe=>N(oe.target.value),"aria-label":f})}),a.jsx("ul",{id:U,className:"vx-select__list",role:"listbox","aria-label":v!=null?v:"Options",style:ie?{maxHeight:ie.maxHeight}:void 0,children:$.length===0?a.jsx("li",{className:"vx-select__empty",children:j}):$.map(oe=>a.jsxs("li",{className:K("vx-select__option",oe.value===C&&"vx-select__option--selected",oe.disabled&&"vx-select__option--disabled"),role:"option","aria-selected":oe.value===C,"aria-disabled":oe.disabled,onClick:()=>ge(oe),children:[a.jsx("span",{children:oe.label}),oe.value===C?a.jsx(Ka,{size:14}):null]},oe.value))})]});return I?ca.createPortal(ce,document.body):ce})(),F&&(L!==void 0?L:a.jsx(it,{side:"bottom",open:_,onOpenChange:I=>{I||u(!1)},title:v||p,showConfirm:!0,confirmDisabled:R===void 0,onConfirm:te,children:pe}))]})}function Oa(f){var v=f,{className:s,label:c,description:r,indeterminate:d}=v,p=be(v,["className","label","description","indeterminate"]);return a.jsxs("label",{className:K("vx-checkbox",p.disabled&&"vx-checkbox--disabled"),children:[a.jsxs("span",{className:"vx-checkbox__control-wrap",children:[a.jsx("input",le({type:"checkbox",className:K("vx-checkbox__input",s),ref:x=>{x&&(x.indeterminate=d!=null?d:!1)}},p)),a.jsx("span",{className:"vx-checkbox__box","aria-hidden":"true",children:d?a.jsx("svg",{width:"10",height:"10",viewBox:"0 0 10 10",fill:"none",children:a.jsx("path",{d:"M2 5h6",stroke:"currentColor",strokeWidth:"1.75",strokeLinecap:"round"})}):a.jsx("svg",{width:"10",height:"10",viewBox:"0 0 10 10",fill:"none",children:a.jsx("path",{d:"M2 5l2.5 2.5L8 3",stroke:"currentColor",strokeWidth:"1.75",strokeLinecap:"round",strokeLinejoin:"round"})})})]}),c?a.jsxs("span",{className:"vx-checkbox__copy",children:[a.jsx("span",{className:"vx-checkbox__label",children:c}),r?a.jsx("span",{className:"vx-checkbox__description",children:r}):null]}):null]})}function Bg({options:s,value:c,defaultValue:r,onChange:d,className:p,fullWidth:f,size:v="md"}){var E;const[x,b]=m.useState(r!=null?r:(E=s[0])==null?void 0:E.value),g=c!==void 0,y=g?c:x,[j,k]=m.useState({left:0,width:0,opacity:0}),A=m.useRef(null),L=m.useRef({});m.useEffect(()=>{requestAnimationFrame(()=>{const T=L.current[y];T&&k({left:T.offsetLeft,width:T.offsetWidth,opacity:1})})},[y,s,f,v]);const D=T=>{g||b(T),d==null||d(T)};return a.jsxs("div",{ref:A,className:K("vx-segmented-control",`vx-segmented-control--${v}`,f&&"vx-segmented-control--full",p),children:[a.jsx("div",{className:"vx-segmented-control__slider",style:{transform:`translateX(${j.left}px)`,width:`${j.width}px`,opacity:j.opacity}}),s.map(T=>{const C=y===T.value;return a.jsx("button",{ref:_=>{L.current[T.value]=_},type:"button",role:"radio","aria-checked":C,disabled:T.disabled,onClick:()=>!T.disabled&&D(T.value),className:K("vx-segmented-control__item",C&&"vx-segmented-control__item--active"),children:T.label},T.value)})]})}function ka(p){var f=p,{className:s,label:c,description:r}=f,d=be(f,["className","label","description"]);return a.jsxs("label",{className:K("vx-radio",d.disabled&&"vx-radio--disabled"),children:[a.jsxs("span",{className:"vx-radio__control-wrap",children:[a.jsx("input",le({type:"radio",className:K("vx-radio__input",s)},d)),a.jsx("span",{className:"vx-radio__circle","aria-hidden":"true",children:a.jsx("span",{className:"vx-radio__dot"})})]}),c?a.jsxs("span",{className:"vx-radio__copy",children:[a.jsx("span",{className:"vx-radio__label",children:c}),r?a.jsx("span",{className:"vx-radio__description",children:r}):null]}):null]})}function fo({label:s,children:c,className:r}){return a.jsxs("fieldset",{className:K("vx-radio-group",r),children:[s?a.jsx("legend",{className:"vx-field-group__label",children:s}):null,a.jsx("div",{className:"vx-radio-group__items",children:c})]})}function mo(v){var x=v,{className:s,label:c,hint:r,resize:d="vertical",style:p}=x,f=be(x,["className","label","hint","resize","style"]);return a.jsxs("label",{className:"vx-field-group",children:[c?a.jsx("span",{className:"vx-field-group__label",children:c}):null,a.jsx("textarea",le({className:K("vx-textarea",s),style:le({resize:d},p)},f)),r?a.jsx("span",{className:"vx-field-group__hint",children:r}):null]})}function ho(x){var b=x,{className:s,label:c,showValue:r=!1,hint:d,value:p,defaultValue:f}=b,v=be(b,["className","label","showValue","hint","value","defaultValue"]);var y;const g=(y=p!=null?p:f)!=null?y:"";return a.jsxs("label",{className:"vx-field-group",children:[c||r?a.jsxs("span",{className:"vx-slider__header",children:[c?a.jsx("span",{className:"vx-field-group__label vx-slider__label",children:c}):null,r?a.jsx("span",{className:"vx-slider__value",children:g}):null]}):null,a.jsx("input",le({type:"range",className:K("vx-slider",s),value:p,defaultValue:f},v)),d?a.jsx("span",{className:"vx-field-group__hint",children:d}):null]})}const bw={sm:16,md:24,lg:36};function Na(p){var f=p,{className:s,size:c="md",label:r="Loading…"}=f,d=be(f,["className","size","label"]);const v=bw[c];return a.jsx("span",we(le({role:"status","aria-label":r,className:K("vx-spinner",`vx-spinner--${c}`,s)},d),{children:a.jsx("svg",{width:v,height:v,viewBox:"0 0 24 24",fill:"none","aria-hidden":"true",children:a.jsx("circle",{cx:"12",cy:"12",r:"9",stroke:"currentColor",strokeWidth:"2.5",strokeLinecap:"round",strokeDasharray:"42 14"})})}))}function Tt(g){var y=g,{className:s,value:c=0,max:r=100,label:d,showLabel:p=!1,size:f="md",variant:v="default",indeterminate:x=!1}=y,b=be(y,["className","value","max","label","showLabel","size","variant","indeterminate"]);const j=x?void 0:Math.min(100,Math.max(0,c/r*100));return a.jsxs("div",we(le({className:K("vx-progress-wrap",s)},b),{children:[d||p?a.jsxs("div",{className:"vx-progress__header",children:[d?a.jsx("span",{className:"vx-progress__label",children:d}):null,p&&!x?a.jsxs("span",{className:"vx-progress__value",children:[Math.round(j),"%"]}):null]}):null,a.jsx("div",{role:"progressbar","aria-valuenow":x?void 0:c,"aria-valuemin":0,"aria-valuemax":r,"aria-label":d,className:K("vx-progress",`vx-progress--${f}`,`vx-progress--${v}`,x&&"vx-progress--indeterminate"),children:a.jsx("div",{className:"vx-progress__bar",style:x?void 0:{width:`${j}%`}})})]}))}const yw={info:a.jsxs("svg",{width:"16",height:"16",viewBox:"0 0 16 16",fill:"none","aria-hidden":"true",children:[a.jsx("circle",{cx:"8",cy:"8",r:"7",stroke:"currentColor",strokeWidth:"1.5"}),a.jsx("path",{d:"M8 7v4M8 5.5v.5",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round"})]}),success:a.jsxs("svg",{width:"16",height:"16",viewBox:"0 0 16 16",fill:"none","aria-hidden":"true",children:[a.jsx("circle",{cx:"8",cy:"8",r:"7",stroke:"currentColor",strokeWidth:"1.5"}),a.jsx("path",{d:"M5 8.5l2 2 4-4",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})]}),warning:a.jsxs("svg",{width:"16",height:"16",viewBox:"0 0 16 16",fill:"none","aria-hidden":"true",children:[a.jsx("path",{d:"M8 2L14.5 13.5H1.5L8 2z",stroke:"currentColor",strokeWidth:"1.5",strokeLinejoin:"round"}),a.jsx("path",{d:"M8 6.5v3M8 11v.5",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round"})]}),danger:a.jsxs("svg",{width:"16",height:"16",viewBox:"0 0 16 16",fill:"none","aria-hidden":"true",children:[a.jsx("circle",{cx:"8",cy:"8",r:"7",stroke:"currentColor",strokeWidth:"1.5"}),a.jsx("path",{d:"M10 6L6 10M6 6l4 4",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round"})]})};function rt(x){var b=x,{className:s,variant:c="info",title:r,icon:d,onClose:p,children:f}=b,v=be(b,["className","variant","title","icon","onClose","children"]);return a.jsxs("div",we(le({role:"alert",className:K("vx-alert",`vx-alert--${c}`,s)},v),{children:[a.jsx("span",{className:"vx-alert__icon",children:d!=null?d:yw[c]}),a.jsxs("div",{className:"vx-alert__body",children:[r?a.jsx("p",{className:"vx-alert__title",children:r}):null,f?a.jsx("div",{className:"vx-alert__content",children:f}):null]}),p?a.jsx("button",{type:"button",className:"vx-alert__close",onClick:p,"aria-label":"关闭",children:a.jsx("svg",{width:"14",height:"14",viewBox:"0 0 14 14",fill:"none","aria-hidden":"true",children:a.jsx("path",{d:"M1 1l12 12M13 1L1 13",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round"})})}):null]}))}function Xa(x){var b=x,{className:s,width:c,height:r,variant:d="rect",lines:p=1,style:f}=b,v=be(b,["className","width","height","variant","lines","style"]);return d==="text"&&p>1?a.jsx("span",we(le({className:K("vx-skeleton-text",s)},v),{children:Array.from({length:p}).map((g,y)=>a.jsx("span",{className:"vx-skeleton vx-skeleton--text",style:y===p-1?{width:"70%"}:void 0},y))})):a.jsx("span",le({className:K("vx-skeleton",`vx-skeleton--${d}`,s),style:le({width:typeof c=="number"?`${c}px`:c,height:typeof r=="number"?`${r}px`:r},f)},v))}function Es({content:s,placement:c="top",delay:r=600,children:d,className:p}){const[f,v]=m.useState(!1),x=m.useRef(null),b=m.useCallback(()=>{x.current=setTimeout(()=>v(!0),r)},[r]),g=m.useCallback(()=>{x.current&&clearTimeout(x.current),v(!1)},[]);return m.useEffect(()=>()=>{x.current&&clearTimeout(x.current)},[]),a.jsxs("span",{className:K("vx-tooltip-wrap",p),onMouseEnter:b,onMouseLeave:g,onFocus:b,onBlur:g,children:[d,f?a.jsx("span",{role:"tooltip",className:K("vx-tooltip",`vx-tooltip--${c}`),children:s}):null]})}function vo({content:s,placement:c="bottom",trigger:r="click",children:d,className:p,open:f,onOpenChange:v}){const[x,b]=m.useState(!1),g=f!==void 0,y=g?f:x,j=m.useRef(null),k=m.useCallback(D=>{g||b(D),v==null||v(D)},[g,v]),A=m.useCallback(()=>k(!y),[y,k]);m.useEffect(()=>{if(!y)return;const D=T=>{T.key==="Escape"&&k(!1)},E=T=>{j.current&&!j.current.contains(T.target)&&k(!1)};return document.addEventListener("keydown",D),document.addEventListener("mousedown",E),()=>{document.removeEventListener("keydown",D),document.removeEventListener("mousedown",E)}},[y,k]);const L=r==="click"?{onClick:A}:{onMouseEnter:()=>k(!0),onMouseLeave:()=>k(!1)};return a.jsxs("div",we(le({ref:j,className:K("vx-popover-wrap",p)},L),{children:[d,y?a.jsx("div",{className:K("vx-popover",`vx-popover--${c}`),role:"dialog",children:s}):null]}))}function so(s){return Array.from(s.querySelectorAll('.vx-dropdown__item:not(.vx-dropdown__item--disabled):not([aria-hidden]):not([aria-haspopup="menu"])'))}function Jn(s,c){var d;if(c.length===0)return;const r=Math.max(0,Math.min(s,c.length-1));(d=c[r])==null||d.focus()}function jw({trigger:s,items:c,disabled:r,onCloseAll:d,onSelect:p}){const[f,v]=m.useState(!1),x=m.useRef(null),b=m.useRef(null),g=m.useId(),y=m.useId(),j=m.useRef(void 0),k=m.useCallback(()=>v(!1),[]),A=m.useCallback(()=>{r||(clearTimeout(j.current),v(!0))},[r]),L=m.useCallback(()=>{j.current=setTimeout(k,150)},[k]);m.useEffect(()=>()=>clearTimeout(j.current),[]),m.useEffect(()=>{if(!f)return;const E=T=>{var C,_;(T.key==="Escape"||T.key==="ArrowLeft")&&(T.preventDefault(),T.stopPropagation(),k(),(_=(C=x.current)==null?void 0:C.querySelector('[aria-haspopup="menu"]'))==null||_.focus())};return document.addEventListener("keydown",E),()=>document.removeEventListener("keydown",E)},[f,k]);const D=m.useCallback(E=>{if(!b.current)return;const T=so(b.current);if(T.length===0)return;const C=T.indexOf(document.activeElement);switch(E.key){case"ArrowDown":E.preventDefault(),Jn(C+1,T);break;case"ArrowUp":E.preventDefault(),Jn(C-1,T);break;case"Home":E.preventDefault(),Jn(0,T);break;case"End":E.preventDefault(),Jn(T.length-1,T);break}},[]);return a.jsxs("div",{ref:x,className:"vx-dropdown__sub-wrap",onMouseEnter:A,onMouseLeave:L,children:[m.cloneElement(s,{id:g,"aria-expanded":f,"aria-controls":f?y:void 0}),f&&!r?a.jsx("div",{ref:b,id:y,className:"vx-dropdown__sub-menu",role:"menu","aria-labelledby":g,onKeyDown:D,children:c.map((E,T)=>a.jsxs("button",{role:"menuitem",disabled:E.disabled,className:K("vx-dropdown__item",E.type&&"vx-dropdown__item--checkable",E.type==="checkbox"&&"vx-dropdown__item--checkbox",E.type==="radio"&&"vx-dropdown__item--radio",E.danger&&"vx-dropdown__item--danger",E.disabled&&"vx-dropdown__item--disabled"),"aria-disabled":E.disabled||void 0,"aria-checked":E.type?E.checked:void 0,onClick:()=>{var C;E.disabled||((C=E.onClick)==null||C.call(E),p==null||p(E),d==null||d())},children:[E.type?a.jsx("span",{className:"vx-dropdown__item-check","aria-hidden":"true",children:E.type==="checkbox"&&E.checked?"✓":E.type==="radio"&&E.checked?"●":null}):E.icon?a.jsx("span",{className:"vx-dropdown__item-icon",children:E.icon}):null,a.jsxs("span",{className:"vx-dropdown__item-content",children:[a.jsx("span",{className:"vx-dropdown__item-label",children:E.label}),E.description&&a.jsx("span",{className:"vx-dropdown__item-desc",children:E.description})]}),E.shortcut?a.jsx("kbd",{className:"vx-dropdown__shortcut",children:E.shortcut}):null]},T))}):null]})}function ww({asChild:s,children:c,extraProps:r,wrapper:d}){return s&&m.isValidElement(c)?m.cloneElement(c,r):m.cloneElement(d,r,c)}function wn({trigger:s,groups:c,items:r,side:d="bottom",align:p="start",sideOffset:f=4,className:v,open:x,onOpenChange:b,onSelect:g}){var R,W;const[y,j]=m.useState(!1),k=x!==void 0,A=k?x:y,L=m.useRef(null),D=m.useRef(null),E=m.useRef(null),T=m.useId(),C=Mj(),_=Or(),[u,S]=m.useState(null),N=m.useRef(""),z=m.useRef(void 0),V=m.useCallback(B=>{var pe;if(!E.current)return;clearTimeout(z.current),N.current+=B.toLowerCase(),z.current=setTimeout(()=>{N.current=""},350);const te=so(E.current);for(const J of te)if(((pe=J.textContent)!=null?pe:"").trim().toLowerCase().startsWith(N.current)){J.focus();return}},[]),O=m.useCallback(B=>{k||j(B),b==null||b(B)},[k,b]),Q=m.useCallback(()=>O(!A),[A,O]),U=m.useCallback(()=>{var B;O(!1),(B=L.current)==null||B.focus()},[O]),F=m.useCallback(B=>{var te,pe;B.disabled||((te=B.onClick)==null||te.call(B),g==null||g(B),B.type||(O(!1),(pe=L.current)==null||pe.focus()))},[g,O]),ie=m.useCallback(()=>{if(!L.current||_){S(null);return}const B=L.current.getBoundingClientRect(),te=window.innerHeight-B.bottom,pe=B.top,J=8,I=120,he=192;let ce=d;d==="bottom"&&te<200&&pe>te?ce="top":d==="top"&&pe<200&&te>pe&&(ce="bottom");const oe=ce==="bottom"?Math.max(I,te-f-J):Math.max(I,pe-f-J);let ke=p;const Ee=Math.max(he,B.width);p==="start"&&B.left+Ee>window.innerWidth-J?ke="end":p==="end"&&B.right-Ee<J&&(ke="start");let Ge,ut;ke==="start"?Ge=Math.max(J,B.left):ut=Math.max(J,window.innerWidth-B.right),S({top:ce==="bottom"?B.bottom+f:void 0,bottom:ce==="top"?window.innerHeight-B.top+f:void 0,left:Ge,right:ut,maxHeight:oe,actualSide:ce,actualAlign:ke,width:B.width})},[d,f,p,_]);m.useLayoutEffect(()=>{A&&!_?ie():S(null)},[A,_,ie]),m.useEffect(()=>{if(!A||_)return;const B=()=>ie();return window.addEventListener("scroll",B,{capture:!0,passive:!0}),window.addEventListener("resize",B),()=>{window.removeEventListener("scroll",B,{capture:!0}),window.removeEventListener("resize",B)}},[A,_,ie]),m.useEffect(()=>{if(!A||_)return;const B=pe=>{var J;pe.key==="Escape"&&(pe.preventDefault(),O(!1),(J=L.current)==null||J.focus())},te=pe=>{D.current&&!D.current.contains(pe.target)&&!(E.current&&E.current.contains(pe.target))&&O(!1)};return document.addEventListener("keydown",B),document.addEventListener("mousedown",te),()=>{document.removeEventListener("keydown",B),document.removeEventListener("mousedown",te)}},[A,_,O]),m.useEffect(()=>{if(!A||_||!E.current)return;const B=requestAnimationFrame(()=>{const te=so(E.current);te.length>0&&te[0].focus()});return()=>cancelAnimationFrame(B)},[A,_]);const fe=m.useCallback(B=>{var J;if(B.key.length===1&&!B.ctrlKey&&!B.altKey&&!B.metaKey){B.preventDefault(),V(B.key);return}if(!E.current)return;const te=so(E.current);if(te.length===0)return;const pe=te.indexOf(document.activeElement);switch(B.key){case"ArrowDown":B.preventDefault(),Jn(pe+1,te);break;case"ArrowUp":B.preventDefault(),Jn(pe-1,te);break;case"Home":B.preventDefault(),Jn(0,te);break;case"End":B.preventDefault(),Jn(te.length-1,te);break;case"Tab":B.preventDefault(),O(!1),(J=L.current)==null||J.focus();break}},[V,O]),Z=c!=null?c:r?[{items:r}]:[],P=(B,te)=>B.subItems&&B.subItems.length>0?a.jsx(jw,{disabled:B.disabled,onCloseAll:U,onSelect:g,trigger:a.jsxs("button",{role:"menuitem","aria-haspopup":"menu",disabled:B.disabled,className:K("vx-dropdown__item",B.danger&&"vx-dropdown__item--danger",B.disabled&&"vx-dropdown__item--disabled"),"aria-disabled":B.disabled||void 0,children:[B.icon?a.jsx("span",{className:"vx-dropdown__item-icon",children:B.icon}):null,a.jsxs("span",{className:"vx-dropdown__item-content",children:[a.jsx("span",{className:"vx-dropdown__item-label",children:B.label}),B.description&&a.jsx("span",{className:"vx-dropdown__item-desc",children:B.description})]}),a.jsx("span",{className:"vx-dropdown__sub-arrow","aria-hidden":"true",children:"▶"})]}),items:B.subItems},te):a.jsxs("button",{role:"menuitem",disabled:B.disabled,className:K("vx-dropdown__item",B.type&&"vx-dropdown__item--checkable",B.type==="checkbox"&&"vx-dropdown__item--checkbox",B.type==="radio"&&"vx-dropdown__item--radio",B.danger&&"vx-dropdown__item--danger",B.disabled&&"vx-dropdown__item--disabled"),"aria-disabled":B.disabled||void 0,"aria-checked":B.type?B.checked:void 0,onClick:()=>F(B),children:[B.type?a.jsx("span",{className:"vx-dropdown__item-check","aria-hidden":"true",children:B.type==="checkbox"&&B.checked?"✓":B.type==="radio"&&B.checked?"●":null}):B.icon?a.jsx("span",{className:"vx-dropdown__item-icon",children:B.icon}):null,a.jsxs("span",{className:"vx-dropdown__item-content",children:[a.jsx("span",{className:"vx-dropdown__item-label",children:B.label}),B.description&&a.jsx("span",{className:"vx-dropdown__item-desc",children:B.description})]}),B.shortcut?a.jsx("kbd",{className:"vx-dropdown__shortcut",children:B.shortcut}):null]},te),$=a.jsx("div",{ref:E,id:T,role:"menu",tabIndex:-1,className:K("vx-dropdown__menu",`vx-dropdown__menu--${(R=u==null?void 0:u.actualSide)!=null?R:d}`,((W=u==null?void 0:u.actualAlign)!=null?W:p)==="end"&&"vx-dropdown__menu--align-end",!!C&&"vx-dropdown__menu--in-dialog"),style:{top:u==null?void 0:u.top,bottom:u==null?void 0:u.bottom,left:u==null?void 0:u.left,right:u==null?void 0:u.right,maxHeight:u==null?void 0:u.maxHeight,minWidth:u==null?void 0:u.width},onKeyDown:fe,"aria-label":"Menu",children:Z.length===0?a.jsx("div",{className:"vx-dropdown__empty",role:"presentation",children:"No items"}):Z.map((B,te)=>{const pe=B.label?`${T}-group-${te}`:void 0;return a.jsxs("div",{className:"vx-dropdown__group",role:"group","aria-labelledby":pe,children:[B.label?a.jsx("div",{id:pe,className:"vx-dropdown__group-label","aria-hidden":"true",children:B.label}):null,te>0&&!B.label?a.jsx("div",{className:"vx-dropdown__separator",role:"separator","aria-orientation":"horizontal"}):null,B.items.map((J,I)=>P(J,I))]},te)})}),re=_?null:document.body,ge=m.isValidElement(s)&&typeof s.type=="function",xe={ref:L,type:"button","aria-haspopup":"menu","aria-expanded":A,"aria-controls":T,onClick:B=>{if(ge&&s.props&&typeof s.props=="object"){const te=s.props;typeof te.onClick=="function"&&te.onClick(B)}B.defaultPrevented||Q()},onKeyDown:B=>{if((B.key==="Enter"||B.key===" "||B.key==="ArrowDown")&&(B.preventDefault(),Q()),ge&&s.props&&typeof s.props=="object"){const te=s.props;typeof te.onKeyDown=="function"&&te.onKeyDown(B)}}};return a.jsx("div",{ref:D,className:K("vx-dropdown",A&&"vx-dropdown--open",v),children:_?a.jsxs(a.Fragment,{children:[a.jsx("button",{ref:L,type:"button",className:"vx-dropdown__trigger vx-dropdown__trigger--default",onClick:Q,"aria-haspopup":"menu","aria-expanded":A,"aria-controls":T,children:s}),a.jsx(it,{side:"bottom",open:A,onOpenChange:B=>{B||O(!1)},title:"",children:a.jsx("div",{className:"vx-dropdown__mobile-sheet",children:Z.map((B,te)=>{const pe=B.label?`${T}-mob-group-${te}`:void 0;return a.jsxs("div",{className:"vx-dropdown__group",role:"group","aria-labelledby":pe,children:[B.label?a.jsx("div",{id:pe,className:"vx-dropdown__group-label","aria-hidden":"true",children:B.label}):null,te>0&&!B.label?a.jsx("div",{className:"vx-dropdown__separator",role:"separator","aria-orientation":"horizontal"}):null,B.items.map((J,I)=>a.jsxs("button",{type:"button",role:"menuitem",className:K("vx-dropdown__item",J.type&&"vx-dropdown__item--checkable",J.type==="checkbox"&&"vx-dropdown__item--checkbox",J.type==="radio"&&"vx-dropdown__item--radio",J.danger&&"vx-dropdown__item--danger",J.disabled&&"vx-dropdown__item--disabled"),disabled:J.disabled,"aria-checked":J.type?J.checked:void 0,onClick:()=>F(J),children:[J.type?a.jsx("span",{className:"vx-dropdown__item-check","aria-hidden":"true",children:J.type==="checkbox"&&J.checked?"✓":J.type==="radio"&&J.checked?"●":null}):J.icon?a.jsx("span",{className:"vx-dropdown__item-icon",children:J.icon}):null,a.jsxs("span",{className:"vx-dropdown__item-content",children:[a.jsx("span",{className:"vx-dropdown__item-label",children:J.label}),J.description&&a.jsx("span",{className:"vx-dropdown__item-desc",children:J.description})]}),J.shortcut?a.jsx("kbd",{className:"vx-dropdown__shortcut",children:J.shortcut}):null]},I))]},te)})})})]}):a.jsxs(a.Fragment,{children:[ge?a.jsx(ww,{asChild:!0,wrapper:a.jsx("button",{className:"vx-dropdown__trigger"}),extraProps:xe,children:s}):a.jsx("button",we(le({className:"vx-dropdown__trigger vx-dropdown__trigger--default"},xe),{children:s})),A&&re?ca.createPortal($,re):null]})})}const Sw=()=>a.jsx("svg",{width:"12",height:"12",viewBox:"0 0 12 12",fill:"none","aria-hidden":"true",children:a.jsx("path",{d:"M4.5 2.5L7.5 6l-3 3.5",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})});function go({items:s,separator:c,className:r}){return a.jsx("nav",{"aria-label":"Breadcrumb",className:K("vx-breadcrumb",r),children:a.jsx("ol",{className:"vx-breadcrumb__list",children:s.map((d,p)=>{const f=p===s.length-1;return a.jsxs("li",{className:"vx-breadcrumb__item",children:[f?a.jsx("span",{className:"vx-breadcrumb__current","aria-current":"page",children:d.label}):d.href?a.jsx("a",{href:d.href,className:"vx-breadcrumb__link",children:d.label}):a.jsx("button",{type:"button",className:"vx-breadcrumb__link",onClick:d.onClick,children:d.label}),f?null:a.jsx("span",{className:"vx-breadcrumb__sep","aria-hidden":"true",children:c!=null?c:a.jsx(Sw,{})})]},p)})})})}function eo(s,c){return Array.from({length:c-s+1},(r,d)=>s+d)}function yu({page:s,total:c,pageSize:r=10,siblingCount:d=1,onChange:p,className:f}){const v=Math.max(1,Math.ceil(c/r)),x=(()=>{const b=d*2+5;if(v<=b)return eo(1,v);const g=Math.max(s-d,1),y=Math.min(s+d,v),j=g>3,k=y<v-2;return!j&&k?[...eo(1,3+d*2),"…",v]:j&&!k?[1,"…",...eo(v-(2+d*2),v)]:[1,"…",...eo(g,y),"…",v]})();return a.jsxs("nav",{role:"navigation","aria-label":"Pagination",className:K("vx-pagination",f),children:[a.jsx("button",{type:"button",className:"vx-pagination__btn vx-pagination__btn--prev",disabled:s<=1,onClick:()=>p(s-1),"aria-label":"上一页",children:a.jsx("svg",{width:"14",height:"14",viewBox:"0 0 14 14",fill:"none","aria-hidden":"true",children:a.jsx("path",{d:"M9 11L5 7l4-4",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})})}),x.map((b,g)=>b==="…"?a.jsx("span",{className:"vx-pagination__ellipsis","aria-hidden":"true",children:"…"},`e-${g}`):a.jsx("button",{type:"button","aria-current":b===s?"page":void 0,className:K("vx-pagination__btn",b===s&&"vx-pagination__btn--active"),onClick:()=>p(b),children:b},b)),a.jsx("button",{type:"button",className:"vx-pagination__btn vx-pagination__btn--next",disabled:s>=v,onClick:()=>p(s+1),"aria-label":"下一页",children:a.jsx("svg",{width:"14",height:"14",viewBox:"0 0 14 14",fill:"none","aria-hidden":"true",children:a.jsx("path",{d:"M5 11l4-4-4-4",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})})})]})}function zr({items:s,multiple:c=!1,defaultOpen:r=[],className:d}){const[p,f]=m.useState(new Set(r));function v(x){f(b=>{const g=new Set(c?b:[]);return b.has(x)?g.delete(x):g.add(x),g})}return a.jsx("div",{className:K("vx-accordion",d),children:s.map(x=>{const b=p.has(x.key);return a.jsxs("div",{className:K("vx-accordion__item",b&&"vx-accordion__item--open",x.disabled&&"vx-accordion__item--disabled"),children:[a.jsxs("button",{type:"button",disabled:x.disabled,"aria-expanded":b,className:"vx-accordion__trigger",onClick:()=>!x.disabled&&v(x.key),children:[a.jsx("span",{className:"vx-accordion__title",children:x.title}),a.jsx("span",{className:"vx-accordion__chevron","aria-hidden":"true",children:a.jsx("svg",{width:"14",height:"14",viewBox:"0 0 14 14",fill:"none",children:a.jsx("path",{d:"M3 5l4 4 4-4",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})})})]}),b?a.jsx("div",{className:"vx-accordion__content",children:x.content}):null]},x.key)})})}function ei(p){var f=p,{className:s,orientation:c="horizontal",decorative:r=!0}=f,d=be(f,["className","orientation","decorative"]);return a.jsx("hr",le({role:r?"none":"separator","aria-orientation":r?void 0:c,className:K("vx-separator",`vx-separator--${c}`,s)},d))}function _w(s){const c=s.trim().split(/\s+/);return c.length===1?c[0].slice(0,2).toUpperCase():(c[0][0]+c[c.length-1][0]).toUpperCase()}const nv=[0,30,60,120,160,200,240,270,300,340];function kw(s){let c=0;for(let r=0;r<s.length;r++)c+=s.charCodeAt(r);return nv[c%nv.length]}function Ut(b){var g=b,{src:s,name:c,size:r="md",shape:d="circle",fallback:p,className:f,alt:v}=g,x=be(g,["src","name","size","shape","fallback","className","alt"]);var D,E;const[y,j]=m.useState(!1),k=s&&!y,A=(D=c!=null?c:v)!=null?D:"",L=A?kw(A):200;return a.jsx("span",{className:K("vx-avatar",`vx-avatar--${r}`,`vx-avatar--${d}`,f),"aria-label":A||void 0,style:k?void 0:{"--vx-avatar-hue":L},children:k?a.jsx("img",le({src:s,alt:(E=v!=null?v:c)!=null?E:"",className:"vx-avatar__img",onError:()=>j(!0)},x)):p?a.jsx("span",{className:"vx-avatar__fallback",children:p}):A?a.jsx("span",{className:"vx-avatar__initials",children:_w(A)}):a.jsxs("svg",{className:"vx-avatar__placeholder",viewBox:"0 0 24 24",fill:"none","aria-hidden":"true",children:[a.jsx("circle",{cx:"12",cy:"8",r:"4",stroke:"currentColor",strokeWidth:"1.5"}),a.jsx("path",{d:"M4 20c0-4 3.58-7 8-7s8 3 8 7",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round"})]})})}function iu(s,c){if(s.searchValue)return s.searchValue(c);const r=s.accessor(c);return typeof r=="string"||typeof r=="number"?String(r):""}function Nw({dir:s,active:c}){return c?s==="asc"?a.jsx(By,{size:12,className:"vx-table__sort-icon vx-table__sort-icon--active"}):a.jsx(Dy,{size:12,className:"vx-table__sort-icon vx-table__sort-icon--active"}):a.jsx(Oy,{size:12,className:"vx-table__sort-icon"})}function dt(W){var B=W,{columns:s,data:c,size:r="md",striped:d=!1,hoverable:p=!0,bordered:f=!1,compact:v=!1,stickyHeader:x=!1,stickyFilter:b=!1,borderless:g=!1,headless:y=!1,rounded:j=!0,loading:k=!1,caption:A,emptyText:L="暂无数据",sortColumn:D,sortDirection:E,onSortChange:T,variant:C="default",fixed:_=!1,removeBorders:u,flush:S=!1,onRowClick:N,rowClassName:z,selectable:V=!1,selectedRows:O,onSelectionChange:Q,className:U,filterable:F,filterPlaceholder:ie="搜索...",filterValue:fe,onFilterChange:Z,columnFilters:P,onColumnFilterChange:$,filterThreshold:re=10,searchDebounce:ge=200,searchColumns:xe}=B,R=be(B,["columns","data","size","striped","hoverable","bordered","compact","stickyHeader","stickyFilter","borderless","headless","rounded","loading","caption","emptyText","sortColumn","sortDirection","onSortChange","variant","fixed","removeBorders","flush","onRowClick","rowClassName","selectable","selectedRows","onSelectionChange","className","filterable","filterPlaceholder","filterValue","onFilterChange","columnFilters","onColumnFilterChange","filterThreshold","searchDebounce","searchColumns"]);const te=v?"sm":r,[pe,J]=m.useState(null),[I,he]=m.useState(null),ce=D!==void 0,oe=ce?D:pe,ke=ce?E!=null?E:null:I,Ee=m.useCallback(ve=>{let Ne;oe!==ve?Ne="asc":ke==="asc"?Ne="desc":ke==="desc"?Ne=null:Ne="asc",ce||(J(Ne===null?null:ve),he(Ne)),T==null||T(ve,Ne)},[oe,ke,ce,T]),[Ge,ut]=m.useState(""),[At,Ua]=m.useState({}),Wa=fe!=null?fe:Ge,Sn=P!=null?P:At,[qe,_n]=m.useState(Wa),Wt=m.useRef(null);m.useEffect(()=>{if(ge<=0){_n(Wa);return}return Wt.current&&clearTimeout(Wt.current),Wt.current=setTimeout(()=>{_n(Wa)},ge),()=>{Wt.current&&clearTimeout(Wt.current)}},[Wa,ge]);const kn=m.useCallback(ve=>{Z?Z(ve):ut(ve)},[Z]),ui=m.useCallback((ve,Ne)=>{$?$(ve,Ne):Ua(Ue=>{const me=le({},Ue);return Ne===""||Ne===void 0?delete me[ve]:me[ve]=Ne,me})},[$]),zt=m.useMemo(()=>xe||s.filter(ve=>ve.searchable!==!1).map(ve=>ve.key),[s,xe]),Ca=m.useMemo(()=>{let ve=c;if(qe){const Ne=qe.toLowerCase();ve=ve.filter(Ue=>s.some(me=>zt.includes(me.key)?iu(me,Ue).toLowerCase().includes(Ne):!1))}for(const[Ne,Ue]of Object.entries(Sn))Ue&&(ve=ve.filter(me=>{const De=s.find(et=>et.key===Ne);return De?iu(De,me)===Ue:!0}));return ve},[c,qe,Sn,s,zt]),Za=m.useMemo(()=>{if(ce||!oe||!ke)return Ca;const ve=s.find(Ne=>Ne.key===oe);return ve?[...Ca].sort((Ne,Ue)=>{const me=ve.accessor(Ne),De=ve.accessor(Ue);let et;return typeof me=="number"&&typeof De=="number"?et=me-De:et=String(me!=null?me:"").localeCompare(String(De!=null?De:""),void 0,{numeric:!0}),ke==="desc"?-et:et}):Ca},[Ca,oe,ke,s,ce]),[Li,Pa]=m.useState(new Set),da=O!=null?O:Li,Ta=m.useMemo(()=>Za.map(ve=>c.indexOf(ve)),[Za,c]),Bi=m.useCallback(ve=>{const Ne=Ta[ve];if(Ne===void 0)return;const Ue=new Set(da);Ue.has(Ne)?Ue.delete(Ne):Ue.add(Ne),O||Pa(Ue),Q==null||Q(Ue)},[da,Ta,O,Q]),zs=m.useCallback(()=>{const ve=Ta.filter(me=>me!==void 0),Ne=ve.every(me=>da.has(me)),Ue=new Set(da);Ne?ve.forEach(me=>Ue.delete(me)):ve.forEach(me=>Ue.add(me)),O||Pa(Ue),Q==null||Q(Ue)},[Ta,da,O,Q]),Ea=Ta.filter(ve=>ve!==void 0),St=Ea.length>0&&Ea.every(ve=>da.has(ve)),ua=!St&&Ea.some(ve=>da.has(ve)),Dt=F===!0||F!==!1&&c.length>re,pi=s.filter(ve=>ve.filterable),Hi=m.useMemo(()=>{const ve={};for(const Ne of pi)if(Ne.filterOptions)ve[Ne.key]=Ne.filterOptions;else{const Ue=[...new Set(c.map(me=>iu(Ne,me)).filter(Boolean))];ve[Ne.key]=Ue.map(me=>({value:me,label:me}))}return ve},[pi,c]),Ja=m.useMemo(()=>u?u==="all"?{top:!0,right:!0,bottom:!0,left:!0}:Object.fromEntries(u.map(ve=>[ve,!0])):{},[u]);return a.jsxs("div",we(le({className:K("vx-table-wrap",C!=="default"&&`vx-table-wrap--${C}`,g&&"vx-table-wrap--borderless",!j&&"vx-table-wrap--square",S&&"vx-table-wrap--flush",Ja.top&&"vx-table-wrap--no-top",Ja.right&&"vx-table-wrap--no-right",Ja.bottom&&"vx-table-wrap--no-bottom",Ja.left&&"vx-table-wrap--no-left",b&&"vx-table-wrap--sticky-filter",U)},R),{children:[Dt?a.jsxs("div",{className:"vx-table__filterbar",children:[a.jsx("div",{className:"vx-table__filterbar-search",children:a.jsx(st,{size:"sm",placeholder:ie,value:Wa,onChange:ve=>kn(ve.target.value),prefix:a.jsx(jn,{size:14}),rounded:!0})}),pi.map(ve=>{var Ne,Ue;return a.jsx("div",{className:"vx-table__filterbar-col",children:a.jsx(wt,{options:[{value:"",label:`全部${ve.header}`},...(Ne=Hi[ve.key])!=null?Ne:[]],value:(Ue=Sn[ve.key])!=null?Ue:"",onChange:me=>ui(ve.key,me!=null?me:""),placeholder:`筛选${ve.header}`,searchable:!1,clearable:!0})},ve.key)})]}):null,a.jsxs("table",{className:K("vx-table",`vx-table--${C}`,d&&"vx-table--striped",p&&"vx-table--hoverable",f&&"vx-table--bordered",g&&"vx-table--borderless",_&&"vx-table--fixed",te!=="md"&&`vx-table--${te}`,x&&"vx-table--sticky",N&&"vx-table--clickable",V&&"vx-table--selectable"),children:[A?a.jsx("caption",{className:"vx-table__caption",children:A}):null,y?null:a.jsx("thead",{children:a.jsxs("tr",{children:[V?a.jsx("th",{className:"vx-table__th vx-table__th--checkbox",style:{width:44},children:a.jsx(Oa,{checked:St,indeterminate:ua,onChange:zs,"aria-label":"全选"})}):null,s.map(ve=>a.jsx("th",{className:K("vx-table__th",ve.sortable&&"vx-table__th--sortable",ve.align&&`vx-table__th--${ve.align}`,ve.className),style:{width:ve.width},onClick:ve.sortable?()=>Ee(ve.key):void 0,"aria-sort":oe===ve.key?ke==="asc"?"ascending":ke==="desc"?"descending":"none":void 0,children:a.jsxs("span",{className:"vx-table__th-inner",children:[ve.header,ve.sortable?a.jsx(Nw,{dir:oe===ve.key?ke:null,active:oe===ve.key}):null]})},ve.key))]})}),a.jsx("tbody",{className:K(k&&"vx-table__body--loading"),children:Za.length===0?a.jsx("tr",{children:a.jsx("td",{colSpan:s.length+(V?1:0),className:"vx-table__empty",children:L})}):Za.map((ve,Ne)=>{const Ue=Ta[Ne],me=Ue!==void 0&&da.has(Ue),De=typeof z=="function"?z(ve,Ne):z;return a.jsxs("tr",{className:K("vx-table__row",me&&"vx-table__row--selected",De),onClick:N?()=>N(ve,Ne):void 0,children:[V?a.jsx("td",{className:"vx-table__td vx-table__td--checkbox",children:a.jsx(Oa,{checked:me,onChange:()=>Bi(Ne),"aria-label":`选择第 ${Ne+1} 行`})}):null,s.map(et=>a.jsx("td",{className:K("vx-table__td",et.align&&`vx-table__td--${et.align}`,et.className),children:et.accessor(ve)},et.key))]},Ne)})})]})]}))}function Lr(r){var d=r,{className:s}=d,c=be(d,["className"]);return a.jsx("ul",le({className:K("vxm-list",s),role:"list"},c))}function Oi(p){var f=p,{title:s,className:c,children:r}=f,d=be(f,["title","className","children"]);return a.jsxs("div",we(le({className:K("vxm-list-section",c)},d),{children:[s&&a.jsx("div",{className:"vxm-list-section__title",children:s}),r]}))}function La({leading:s,trailing:c,label:r,description:d,chevron:p,destructive:f,disabled:v,onClick:x,className:b}){const g=a.jsxs(a.Fragment,{children:[s&&a.jsx("span",{className:"vxm-list-item__leading",children:s}),a.jsxs("span",{className:"vxm-list-item__content",children:[a.jsx("span",{className:"vxm-list-item__label",children:r}),d&&a.jsx("span",{className:"vxm-list-item__description",children:d})]}),c&&a.jsx("span",{className:"vxm-list-item__trailing",children:c}),p&&a.jsx(xt,{size:16,className:"vxm-list-item__chevron","aria-hidden":"true"})]});return a.jsx("li",{className:K("vxm-list-item",f&&"vxm-list-item--destructive",v&&"vxm-list-item--disabled",!x&&"vxm-list-item--static",b),children:a.jsx("button",{type:"button",className:"vxm-list-item__btn",onClick:v?void 0:x,disabled:v,tabIndex:x?0:-1,children:g})})}const ti=m.forwardRef(function(v,f){var x=v,{className:c,required:r,children:d}=x,p=be(x,["className","required","children"]);return a.jsxs("label",we(le({ref:f,className:K("vx-label",c)},p),{children:[d,r?a.jsx("span",{className:"vx-label__required","aria-hidden":"true",children:" *"}):null]}))}),Hg=m.createContext({});function Cw(){return m.useContext(Hg)}function Ug(r){var d=r,{className:s}=d,c=be(d,["className"]);return a.jsx("form",le({noValidate:!0,className:K("vx-form",s)},c))}function xo({error:s,children:c,className:r}){return a.jsx(Hg.Provider,{value:{error:s},children:a.jsx("div",{className:K("vx-form-field",s&&"vx-form-field--invalid",r),children:c})})}function bo(p){var f=p,{className:s,required:c,children:r}=f,d=be(f,["className","required","children"]);return a.jsxs("label",we(le({className:K("vx-form-label",s)},d),{children:[r,c?a.jsx("span",{className:"vx-form-label__required","aria-hidden":"true",children:" *"}):null]}))}function Pg(d){var p=d,{className:s,children:c}=p,r=be(p,["className","children"]);return a.jsx("p",we(le({className:K("vx-form-description",s)},r),{children:c}))}function yo(d){var p=d,{className:s,children:c}=p,r=be(p,["className","children"]);const{error:f}=Cw(),v=f!=null?f:c;return v?a.jsx("p",we(le({className:K("vx-form-message",f&&"vx-form-message--error",s)},r),{children:v})):null}function jo(j){var k=j,{className:s,label:c,hint:r,error:d,value:p,onChange:f,min:v,max:x,step:b=1,disabled:g}=k,y=be(k,["className","label","hint","error","value","onChange","min","max","step","disabled"]);const A=m.useCallback(_=>{let u=_;return v!==void 0&&(u=Math.max(v,u)),x!==void 0&&(u=Math.min(x,u)),u},[v,x]),L=()=>{g||f==null||f(A((p!=null?p:0)+b))},D=()=>{g||f==null||f(A((p!=null?p:0)-b))},E=_=>{const u=parseFloat(_.target.value);isNaN(u)||f==null||f(A(u))},T=v!==void 0&&(p!=null?p:0)<=v,C=x!==void 0&&(p!=null?p:0)>=x;return a.jsxs("label",{className:"vx-field-group",children:[c?a.jsx("span",{className:"vx-field-group__label",children:c}):null,a.jsxs("span",{className:K("vx-number-input",d&&"vx-number-input--invalid",g&&"vx-number-input--disabled",s),children:[a.jsx("button",{type:"button",className:"vx-number-input__btn",onClick:D,disabled:g||T,"aria-label":"Decrease",tabIndex:-1,children:a.jsx("svg",{width:"12",height:"12",viewBox:"0 0 12 12",fill:"none","aria-hidden":"true",children:a.jsx("path",{d:"M2 6h8",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round"})})}),a.jsx("input",le({type:"number",className:"vx-number-input__field",value:p!=null?p:"",onChange:E,min:v,max:x,step:b,disabled:g,"aria-invalid":d?"true":void 0},y)),a.jsx("button",{type:"button",className:"vx-number-input__btn",onClick:L,disabled:g||C,"aria-label":"Increase",tabIndex:-1,children:a.jsx("svg",{width:"12",height:"12",viewBox:"0 0 12 12",fill:"none","aria-hidden":"true",children:a.jsx("path",{d:"M6 2v8M2 6h8",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round"})})})]}),d?a.jsx("span",{className:"vx-field-group__error",children:d}):null,!d&&r?a.jsx("span",{className:"vx-field-group__hint",children:r}):null]})}function Tw(s,c){return new Date(s,c+1,0).getDate()}function Ew(s,c){return new Date(s,c,1).getDay()}function iv(s,c){return s.getFullYear()===c.getFullYear()&&s.getMonth()===c.getMonth()&&s.getDate()===c.getDate()}function ri({value:s,defaultValue:c,onChange:r,min:d,max:p,className:f,weekStartsOnMonday:v=!1}){const x=new Date,b=s!==void 0,[g,y]=m.useState(c),j=b?s:g,[k,A]=m.useState((j!=null?j:x).getFullYear()),[L,D]=m.useState((j!=null?j:x).getMonth()),E=Tw(k,L),T=Ew(k,L),C=v?T===0?6:T-1:T,_=v?["Mo","Tu","We","Th","Fr","Sa","Su"]:["Su","Mo","Tu","We","Th","Fr","Sa"],u=()=>{L===0?(A(Q=>Q-1),D(11)):D(Q=>Q-1)},S=()=>{L===11?(A(Q=>Q+1),D(0)):D(Q=>Q+1)},N=m.useCallback(Q=>{const U=new Date(k,L,Q);if(d){const F=new Date(d.getFullYear(),d.getMonth(),d.getDate());if(U<F)return!0}if(p){const F=new Date(p.getFullYear(),p.getMonth(),p.getDate());if(U>F)return!0}return!1},[k,L,d,p]),z=Q=>{if(N(Q))return;const U=new Date(k,L,Q);b||y(U),r==null||r(U)},V=new Date(k,L).toLocaleString("default",{month:"long"}),O=[...Array(C).fill(null),...Array.from({length:E},(Q,U)=>U+1)];for(;O.length%7!==0;)O.push(null);return a.jsxs("div",{className:K("vx-calendar",f),children:[a.jsxs("div",{className:"vx-calendar__header",children:[a.jsx("button",{type:"button",className:"vx-calendar__nav-btn",onClick:u,"aria-label":"Previous month",children:a.jsx(Tu,{size:16})}),a.jsxs("span",{className:"vx-calendar__month-label",children:[V," ",k]}),a.jsx("button",{type:"button",className:"vx-calendar__nav-btn",onClick:S,"aria-label":"Next month",children:a.jsx(xt,{size:16})})]}),a.jsxs("div",{className:"vx-calendar__grid",role:"grid","aria-label":`${V} ${k}`,children:[_.map(Q=>a.jsx("div",{className:"vx-calendar__weekday",role:"columnheader",children:Q},Q)),O.map((Q,U)=>{if(Q===null)return a.jsx("div",{className:"vx-calendar__cell vx-calendar__cell--empty"},`e-${U}`);const F=new Date(k,L,Q),ie=iv(F,x),fe=j?iv(F,j):!1,Z=N(Q);return a.jsx("button",{type:"button",role:"gridcell",className:K("vx-calendar__cell",ie&&"vx-calendar__cell--today",fe&&"vx-calendar__cell--selected",Z&&"vx-calendar__cell--disabled"),onClick:()=>z(Q),disabled:Z,"aria-label":F.toLocaleDateString(),"aria-selected":fe,children:Q},Q)})]})]})}function Aw(s){return s.toLocaleDateString()}function zw(){return a.jsxs("svg",{width:"15",height:"15",viewBox:"0 0 15 15",fill:"none","aria-hidden":"true",children:[a.jsx("rect",{x:"1",y:"3",width:"13",height:"11",rx:"2",stroke:"currentColor",strokeWidth:"1.2"}),a.jsx("path",{d:"M1 6.5h13",stroke:"currentColor",strokeWidth:"1.2"}),a.jsx("path",{d:"M5 1v3M10 1v3",stroke:"currentColor",strokeWidth:"1.4",strokeLinecap:"round"})]})}function wo({value:s,defaultValue:c,onChange:r,placeholder:d="Select date",label:p,hint:f,error:v,min:x,max:b,disabled:g,weekStartsOnMonday:y,className:j}){const k=s!==void 0,[A,L]=m.useState(c),D=k?s:A,[E,T]=m.useState(!1),C=m.useRef(null),_=m.useRef(null),u=m.useRef(null),S=m.useRef(null),N=Or(),[z,V]=m.useState(null);m.useEffect(()=>{if(!E||N)return;const Z=$=>{var xe,R;const re=(xe=C.current)==null?void 0:xe.contains($.target),ge=(R=u.current)==null?void 0:R.contains($.target);!re&&!ge&&T(!1)},P=$=>{$.key==="Escape"&&($.preventDefault(),T(!1))};return document.addEventListener("mousedown",Z),document.addEventListener("touchstart",Z,{passive:!0}),document.addEventListener("keydown",P),()=>{document.removeEventListener("mousedown",Z),document.removeEventListener("touchstart",Z),document.removeEventListener("keydown",P)}},[E,N]),m.useEffect(()=>{di(C.current)},[E]),m.useEffect(()=>{if(!E||!z)return;const Z=S.current;if(Z)return Z.dataset.hasOpenPortal="1",()=>{delete Z.dataset.hasOpenPortal}},[E,z]),m.useLayoutEffect(()=>{const{dialogContent:Z,shouldInline:P}=di(C.current);if(!E||!_.current||P||N){V(null),S.current=null;return}S.current=Z;const $=_.current.getBoundingClientRect(),re=window.innerHeight-$.bottom,ge=$.top,xe=re<320&&ge>re?"up":"down";V(xe==="down"?{top:$.bottom+6,left:$.left,direction:xe}:{bottom:window.innerHeight-$.top+6,left:$.left,direction:xe})},[E,N]),m.useEffect(()=>{if(!E||!z)return;const Z=P=>{var $;($=u.current)!=null&&$.contains(P.target)||T(!1)};return window.addEventListener("scroll",Z,{capture:!0,passive:!0}),window.addEventListener("resize",Z),()=>{window.removeEventListener("scroll",Z,{capture:!0}),window.removeEventListener("resize",Z)}},[E,z]);const O=Z=>{k||L(Z),r==null||r(Z),T(!1)},[Q,U]=m.useState(D);m.useEffect(()=>{E&&N&&U(D)},[E,N,D]);const F=Z=>{U(Z)},ie=()=>{k||L(Q),r==null||r(Q)},fe=a.jsx(a.Fragment,{children:a.jsx(ri,{value:Q,onChange:F,min:x,max:b,weekStartsOnMonday:y})});return a.jsxs("div",{ref:C,className:K("vx-datepicker",j),children:[p?a.jsx("span",{className:"vx-field-group__label",children:p}):null,a.jsxs("button",{ref:_,type:"button",className:K("vx-datepicker__trigger",v&&"vx-datepicker__trigger--invalid",g&&"vx-datepicker__trigger--disabled"),onClick:()=>!g&&T(Z=>!Z),disabled:g,"aria-haspopup":"dialog","aria-expanded":E,children:[a.jsx(zw,{}),a.jsx("span",{className:K("vx-datepicker__value",!D&&"vx-datepicker__value--placeholder"),children:D?Aw(D):d})]}),v?a.jsx("span",{className:"vx-field-group__error",children:v}):null,!v&&f?a.jsx("span",{className:"vx-field-group__hint",children:f}):null,E&&!N&&(()=>{const Z=!!z,P=z?{position:"fixed",top:z.top,bottom:z.bottom,left:z.left,pointerEvents:"auto"}:void 0,$=a.jsx("div",{ref:u,className:K("vx-datepicker__popover",(z==null?void 0:z.direction)==="up"&&"vx-datepicker__popover--up",!!S.current&&"vx-datepicker__popover--in-dialog"),role:"dialog","aria-label":"Date picker",style:P,children:a.jsx(ri,{value:D,onChange:O,min:x,max:b,weekStartsOnMonday:y})});return Z?ca.createPortal($,document.body):$})(),N&&E&&a.jsx(it,{side:"bottom",open:E,onOpenChange:Z=>{Z||T(!1)},title:p||"Select date",showConfirm:!0,confirmDisabled:Q===void 0,onConfirm:ie,children:fe})]})}function Dw(s){return s.searchLabel!==void 0?s.searchLabel:typeof s.label=="string"?s.label:""}function qg({options:s,value:c,defaultValue:r=[],onChange:d,placeholder:p="Select...",searchPlaceholder:f="Search...",label:v,hint:x,error:b,disabled:g,clearable:y=!1,emptyText:j="No results",maxDisplay:k,className:A}){const L=c!==void 0,[D,E]=m.useState(r),T=L?c:D,[C,_]=m.useState(!1),[u,S]=m.useState(""),N=m.useRef(null),z=m.useRef(null),V=m.useRef(null),O=m.useRef(null),Q=m.useId(),U=Or(),[F,ie]=m.useState(null),fe=m.useRef(null),Z=s.filter(I=>{const he=Dw(I);return he&&he.toLowerCase().includes(u.toLowerCase())});m.useEffect(()=>{if(!C){S("");return}const he=setTimeout(()=>{var ce;return(ce=O.current)==null?void 0:ce.focus()},U?350:0);return()=>clearTimeout(he)},[C,U]),m.useEffect(()=>{if(!C||U)return;const I=ce=>{var Ee,Ge;const oe=(Ee=N.current)==null?void 0:Ee.contains(ce.target),ke=(Ge=V.current)==null?void 0:Ge.contains(ce.target);!oe&&!ke&&_(!1)},he=ce=>{ce.key==="Escape"&&(ce.preventDefault(),_(!1))};return document.addEventListener("mousedown",I),document.addEventListener("touchstart",I,{passive:!0}),document.addEventListener("keydown",he),()=>{document.removeEventListener("mousedown",I),document.removeEventListener("touchstart",I),document.removeEventListener("keydown",he)}},[C,U]),m.useEffect(()=>{di(N.current)},[C]),m.useEffect(()=>{if(!C||!F)return;const I=fe.current;if(I)return I.dataset.hasOpenPortal="1",()=>{delete I.dataset.hasOpenPortal}},[C,F]),m.useLayoutEffect(()=>{const{dialogContent:I,shouldInline:he}=di(N.current);if(!C||!z.current||he||U){ie(null),fe.current=null;return}fe.current=I;const ce=z.current.getBoundingClientRect(),oe=window.innerHeight-ce.bottom,ke=ce.top,Ee=oe<300&&ke>oe?"up":"down";ie(Ee==="down"?{top:ce.bottom+4,left:ce.left,width:ce.width,direction:Ee}:{bottom:window.innerHeight-ce.top+4,left:ce.left,width:ce.width,direction:Ee})},[C,U]),m.useEffect(()=>{if(!C||!F)return;const I=he=>{var ce;(ce=V.current)!=null&&ce.contains(he.target)||_(!1)};return window.addEventListener("scroll",I,{capture:!0,passive:!0}),window.addEventListener("resize",I),()=>{window.removeEventListener("scroll",I,{capture:!0}),window.removeEventListener("resize",I)}},[C,F]);const P=I=>{if(I.disabled)return;const he=T.includes(I.value)?T.filter(ce=>ce!==I.value):[...T,I.value];L||E(he),d==null||d(he),_(!1)},$=(I,he)=>{I.stopPropagation();const ce=T.filter(oe=>oe!==he);L||E(ce),d==null||d(ce)},re=I=>{I.stopPropagation(),L||E([]),d==null||d([])},ge=k?T.slice(0,k):T,xe=k?Math.max(0,T.length-k):0,R=s.reduce((I,he)=>(I[he.value]=he.label,I),{}),[W,B]=m.useState(T);m.useEffect(()=>{C&&U&&B(T)},[C,U,T]);const te=I=>{I.disabled||B(he=>he.includes(I.value)?he.filter(ce=>ce!==I.value):[...he,I.value])},pe=()=>{L||E(W),d==null||d(W)},J=a.jsxs(a.Fragment,{children:[a.jsx("div",{className:"vx-multiselect__search-wrap",children:a.jsx("input",{ref:O,type:"text",className:"vx-multiselect__search",placeholder:f,value:u,onChange:I=>S(I.target.value),"aria-label":f})}),a.jsx("ul",{id:Q,className:"vx-multiselect__list",role:"listbox","aria-multiselectable":"true","aria-label":v!=null?v:"Options",children:Z.length===0?a.jsx("li",{className:"vx-multiselect__empty",children:j}):Z.map(I=>{const he=W.includes(I.value);return a.jsxs("li",{className:K("vx-multiselect__option",he&&"vx-multiselect__option--selected",I.disabled&&"vx-multiselect__option--disabled"),role:"option","aria-selected":he,"aria-disabled":I.disabled,onClick:()=>te(I),children:[a.jsx("span",{className:K("vx-multiselect__checkbox",he&&"vx-multiselect__checkbox--checked"),children:he?a.jsx(Ka,{size:11}):null}),a.jsx("span",{children:I.label})]},I.value)})})]});return a.jsxs("div",{ref:N,className:K("vx-multiselect",C&&"vx-multiselect--open",A),children:[v?a.jsx("span",{className:"vx-field-group__label",children:v}):null,a.jsxs("button",{ref:z,type:"button",className:K("vx-multiselect__trigger",b&&"vx-multiselect__trigger--invalid",g&&"vx-multiselect__trigger--disabled"),onClick:()=>!g&&_(I=>!I),disabled:g,"aria-haspopup":"listbox","aria-expanded":C,"aria-controls":Q,children:[a.jsx("span",{className:"vx-multiselect__tags",children:T.length===0?a.jsx("span",{className:"vx-multiselect__placeholder",children:p}):a.jsxs(a.Fragment,{children:[ge.map(I=>{var oe;const he=(oe=R[I])!=null?oe:I,ce=typeof he=="string"?he:I;return a.jsxs("span",{className:"vx-multiselect__tag",children:[he,!g&&a.jsx("span",{className:"vx-multiselect__tag-remove",role:"button","aria-label":`Remove ${ce}`,onClick:ke=>$(ke,I),children:a.jsx(Ha,{size:11})})]},I)}),xe>0&&a.jsxs("span",{className:"vx-multiselect__overflow",children:["+",xe]})]})}),a.jsxs("span",{className:"vx-multiselect__icons",children:[y&&T.length>0&&a.jsx("span",{className:"vx-multiselect__clear",role:"button","aria-label":"Clear all",onClick:re,children:a.jsx(Ha,{size:14})}),a.jsx(Cu,{size:14,className:K("vx-multiselect__chevron",C&&"vx-multiselect__chevron--open")})]})]}),b?a.jsx("span",{className:"vx-field-group__error",children:b}):null,!b&&x?a.jsx("span",{className:"vx-field-group__hint",children:x}):null,C&&!U&&(()=>{const I=!!F,he=I&&F?{top:F.top,bottom:F.bottom,left:F.left,width:F.width,pointerEvents:"auto"}:void 0,ce=a.jsxs("div",{ref:V,className:K("vx-multiselect__dropdown",(F==null?void 0:F.direction)==="up"&&"vx-multiselect__dropdown--up",!!fe.current&&"vx-multiselect__dropdown--in-dialog"),style:he,children:[a.jsx("div",{className:"vx-multiselect__search-wrap",children:a.jsx("input",{ref:O,type:"text",className:"vx-multiselect__search",placeholder:f,value:u,onChange:oe=>S(oe.target.value),"aria-label":f})}),a.jsx("ul",{id:Q,className:"vx-multiselect__list",role:"listbox","aria-multiselectable":"true","aria-label":v!=null?v:"Options",children:Z.length===0?a.jsx("li",{className:"vx-multiselect__empty",children:j}):Z.map(oe=>{const ke=T.includes(oe.value);return a.jsxs("li",{className:K("vx-multiselect__option",ke&&"vx-multiselect__option--selected",oe.disabled&&"vx-multiselect__option--disabled"),role:"option","aria-selected":ke,"aria-disabled":oe.disabled,onClick:()=>P(oe),children:[a.jsx("span",{className:K("vx-multiselect__checkbox",ke&&"vx-multiselect__checkbox--checked"),children:ke?a.jsx(Ka,{size:11}):null}),a.jsx("span",{children:oe.label})]},oe.value)})})]});return I?ca.createPortal(ce,document.body):ce})(),U&&a.jsx(it,{side:"bottom",open:C,onOpenChange:I=>{I||_(!1)},title:v||p,showConfirm:!0,confirmDisabled:W.length===0,onConfirm:pe,children:J})]})}function yn(s){return String(s).padStart(2,"0")}function su(s){var r,d,p;const c=s.split(":").map(Number);return{h:(r=c[0])!=null?r:0,m:(d=c[1])!=null?d:0,s:(p=c[2])!=null?p:0}}function sv(s,c,r,d){return d?`${yn(s)}:${yn(c)}:${yn(r)}`:`${yn(s)}:${yn(c)}`}function Mw(){return a.jsxs("svg",{width:"15",height:"15",viewBox:"0 0 15 15",fill:"none","aria-hidden":"true",children:[a.jsx("circle",{cx:"7.5",cy:"7.5",r:"6",stroke:"currentColor",strokeWidth:"1.2"}),a.jsx("path",{d:"M7.5 4v3.5l2.5 1.5",stroke:"currentColor",strokeWidth:"1.2",strokeLinecap:"round",strokeLinejoin:"round"})]})}function Rw({size:s=14}){return a.jsx("svg",{width:s,height:s,viewBox:"0 0 14 14",fill:"none","aria-hidden":"true",children:a.jsx("path",{d:"M3 9l4-4 4 4",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})})}function Ow({size:s=14}){return a.jsx("svg",{width:s,height:s,viewBox:"0 0 14 14",fill:"none","aria-hidden":"true",children:a.jsx("path",{d:"M3 5l4 4 4-4",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})})}function Ss({value:s,min:c,max:r,onChange:d,label:p}){const f=()=>d(s===c?r:s-1),v=()=>d(s===r?c:s+1),x=j=>{j.preventDefault(),j.deltaY>0?v():f()},b=j=>{j.key==="ArrowUp"&&(j.preventDefault(),f()),j.key==="ArrowDown"&&(j.preventDefault(),v())},g=s===c?r:s-1,y=s===r?c:s+1;return a.jsxs("div",{className:"vx-timepicker__col",role:"spinbutton","aria-label":p,"aria-valuenow":s,"aria-valuemin":c,"aria-valuemax":r,"aria-valuetext":yn(s),tabIndex:0,onKeyDown:b,onWheel:x,children:[a.jsx("button",{type:"button",className:"vx-timepicker__col-btn",onClick:f,"aria-label":`Decrease ${p}`,tabIndex:-1,children:a.jsx(Rw,{size:13})}),a.jsxs("div",{className:"vx-timepicker__col-items",children:[a.jsx("div",{className:"vx-timepicker__col-item vx-timepicker__col-item--adjacent",children:yn(g)}),a.jsx("div",{className:"vx-timepicker__col-item vx-timepicker__col-item--selected",children:yn(s)}),a.jsx("div",{className:"vx-timepicker__col-item vx-timepicker__col-item--adjacent",children:yn(y)})]}),a.jsx("button",{type:"button",className:"vx-timepicker__col-btn",onClick:v,"aria-label":`Increase ${p}`,tabIndex:-1,children:a.jsx(Ow,{size:13})})]})}function Ig({value:s,defaultValue:c,onChange:r,placeholder:d="Select time",label:p,hint:f,error:v,disabled:x,seconds:b=!1,className:g}){const y=s!==void 0,[j,k]=m.useState(c),A=y?s:j,L=A?su(A):{h:12,m:0,s:0},[D,E]=m.useState(L.h),[T,C]=m.useState(L.m),[_,u]=m.useState(L.s),[S,N]=m.useState(!1),z=m.useRef(null),V=m.useRef(null),O=m.useRef(null),Q=m.useRef(null),U=Or(),[F,ie]=m.useState(null);m.useEffect(()=>{if(s){const oe=su(s);E(oe.h),C(oe.m),u(oe.s)}},[s]),m.useEffect(()=>{if(!S||U)return;const oe=Ee=>{var At,Ua;const Ge=(At=z.current)==null?void 0:At.contains(Ee.target),ut=(Ua=O.current)==null?void 0:Ua.contains(Ee.target);!Ge&&!ut&&N(!1)},ke=Ee=>{Ee.key==="Escape"&&(Ee.preventDefault(),N(!1))};return document.addEventListener("mousedown",oe),document.addEventListener("touchstart",oe,{passive:!0}),document.addEventListener("keydown",ke),()=>{document.removeEventListener("mousedown",oe),document.removeEventListener("touchstart",oe),document.removeEventListener("keydown",ke)}},[S,U]),m.useEffect(()=>{di(z.current)},[S]),m.useEffect(()=>{if(!S||!F)return;const oe=Q.current;if(oe)return oe.dataset.hasOpenPortal="1",()=>{delete oe.dataset.hasOpenPortal}},[S,F]),m.useLayoutEffect(()=>{const{dialogContent:oe,shouldInline:ke}=di(z.current);if(!S||!V.current||ke||U){ie(null),Q.current=null;return}Q.current=oe;const Ee=V.current.getBoundingClientRect(),Ge=window.innerHeight-Ee.bottom,ut=Ee.top,At=Ge<220&&ut>Ge?"up":"down";ie(At==="down"?{top:Ee.bottom+4,left:Ee.left,direction:At}:{bottom:window.innerHeight-Ee.top+4,left:Ee.left,direction:At})},[S,U]),m.useEffect(()=>{if(!S||!F)return;const oe=ke=>{var Ee;(Ee=O.current)!=null&&Ee.contains(ke.target)||N(!1)};return window.addEventListener("scroll",oe,{capture:!0,passive:!0}),window.addEventListener("resize",oe),()=>{window.removeEventListener("scroll",oe,{capture:!0}),window.removeEventListener("resize",oe)}},[S,F]);const fe=m.useCallback((oe,ke,Ee)=>{const Ge=sv(oe,ke,Ee,b);y||k(Ge),r==null||r(Ge)},[y,b,r]),Z=oe=>{E(oe),fe(oe,T,_)},P=oe=>{C(oe),fe(D,oe,_)},$=oe=>{u(oe),fe(D,T,oe)},re=A!=null?A:S?sv(D,T,_,b):void 0,[ge,xe]=m.useState(L.h),[R,W]=m.useState(L.m),[B,te]=m.useState(L.s);m.useEffect(()=>{if(S&&U){const oe=A?su(A):{h:12,m:0,s:0};xe(oe.h),W(oe.m),te(oe.s)}},[S,U,A]);const pe=oe=>xe(oe),J=oe=>W(oe),I=oe=>te(oe),he=()=>{fe(ge,R,B)},ce=a.jsx(a.Fragment,{children:a.jsxs("div",{className:"vx-timepicker__columns",children:[a.jsx(Ss,{value:ge,min:0,max:23,onChange:pe,label:"Hours"}),a.jsx("span",{className:"vx-timepicker__sep",children:":"}),a.jsx(Ss,{value:R,min:0,max:59,onChange:J,label:"Minutes"}),b&&a.jsxs(a.Fragment,{children:[a.jsx("span",{className:"vx-timepicker__sep",children:":"}),a.jsx(Ss,{value:B,min:0,max:59,onChange:I,label:"Seconds"})]})]})});return a.jsxs("div",{ref:z,className:K("vx-timepicker",g),children:[p?a.jsx("span",{className:"vx-field-group__label",children:p}):null,a.jsxs("button",{ref:V,type:"button",className:K("vx-timepicker__trigger",v&&"vx-timepicker__trigger--invalid",x&&"vx-timepicker__trigger--disabled"),onClick:()=>!x&&N(oe=>!oe),disabled:x,"aria-haspopup":"dialog","aria-expanded":S,children:[a.jsx(Mw,{}),a.jsx("span",{className:K("vx-timepicker__value",!re&&"vx-timepicker__value--placeholder"),children:re!=null?re:d})]}),v?a.jsx("span",{className:"vx-field-group__error",children:v}):null,!v&&f?a.jsx("span",{className:"vx-field-group__hint",children:f}):null,S&&!U&&(()=>{const oe=!!F,ke=F?{position:"fixed",top:F.top,bottom:F.bottom,left:F.left,pointerEvents:"auto"}:void 0,Ee=a.jsxs("div",{ref:O,className:K("vx-timepicker__popover",(F==null?void 0:F.direction)==="up"&&"vx-timepicker__popover--up",!!Q.current&&"vx-timepicker__popover--in-dialog"),role:"dialog","aria-label":"Time picker",style:ke,children:[a.jsxs("div",{className:"vx-timepicker__columns",children:[a.jsx(Ss,{value:D,min:0,max:23,onChange:Z,label:"Hours"}),a.jsx("span",{className:"vx-timepicker__sep",children:":"}),a.jsx(Ss,{value:T,min:0,max:59,onChange:P,label:"Minutes"}),b&&a.jsxs(a.Fragment,{children:[a.jsx("span",{className:"vx-timepicker__sep",children:":"}),a.jsx(Ss,{value:_,min:0,max:59,onChange:$,label:"Seconds"})]})]}),a.jsx("div",{className:"vx-timepicker__footer",children:a.jsx("button",{type:"button",className:"vx-timepicker__done",onClick:()=>{A||fe(D,T,_),N(!1)},children:"Done"})})]});return oe?ca.createPortal(Ee,document.body):Ee})(),U&&S&&a.jsx(it,{side:"bottom",open:S,onOpenChange:oe=>{oe||N(!1)},title:p||"Select time",showConfirm:!0,onConfirm:he,children:ce})]})}function So({label:s,hint:c,error:r,accept:d,multiple:p=!1,maxSize:f,disabled:v,onFiles:x,className:b}){const[g,y]=m.useState(!1),[j,k]=m.useState([]),[A,L]=m.useState(),D=m.useRef(null),E=m.useCallback(S=>{if(!S)return;const N=Array.from(S);if(f&&N.filter(Q=>Q.size>f).length>0){L(`File too large (max ${(f/1024/1024).toFixed(1)} MB)`);return}L(void 0);const z=N.map(O=>({file:O,id:crypto.randomUUID()})),V=p?[...j,...z]:z;k(V),x==null||x(V.map(O=>O.file))},[j,f,p,x]),T=S=>{S.preventDefault(),y(!1),v||E(S.dataTransfer.files)},C=S=>{S.preventDefault(),v||y(!0)},_=S=>{const N=j.filter(z=>z.id!==S);k(N),x==null||x(N.map(z=>z.file))},u=r!=null?r:A;return a.jsxs("div",{className:K("vx-file-upload",b),children:[s?a.jsx("span",{className:"vx-field-group__label",children:s}):null,a.jsxs("div",{className:K("vx-file-upload__zone",g&&"vx-file-upload__zone--dragging",v&&"vx-file-upload__zone--disabled",u&&"vx-file-upload__zone--invalid"),onDrop:T,onDragOver:C,onDragLeave:()=>y(!1),onClick:()=>{var S;return!v&&((S=D.current)==null?void 0:S.click())},role:"button",tabIndex:v?-1:0,onKeyDown:S=>{var N;return S.key==="Enter"&&!v&&((N=D.current)==null?void 0:N.click())},"aria-label":"Upload files, click or drag and drop",children:[a.jsx(Du,{size:24,className:"vx-file-upload__icon"}),a.jsxs("p",{className:"vx-file-upload__text",children:[a.jsx("span",{className:"vx-file-upload__link",children:"Click to upload"})," or drag and drop"]}),c?a.jsx("p",{className:"vx-file-upload__hint",children:c}):null,a.jsx("input",{ref:D,type:"file",accept:d,multiple:p,disabled:v,className:"vx-file-upload__input",onChange:S=>E(S.target.files),"aria-hidden":"true",tabIndex:-1})]}),u?a.jsx("span",{className:"vx-field-group__error",children:u}):null,j.length>0&&a.jsx("ul",{className:"vx-file-upload__list",children:j.map(({id:S,file:N})=>a.jsxs("li",{className:"vx-file-upload__file",children:[a.jsx(c0,{size:14,className:"vx-file-upload__file-icon"}),a.jsx("span",{className:"vx-file-upload__file-name",children:N.name}),a.jsxs("span",{className:"vx-file-upload__file-size",children:[(N.size/1024).toFixed(0)," KB"]}),a.jsx("button",{type:"button",className:"vx-file-upload__remove",onClick:()=>_(S),"aria-label":`Remove ${N.name}`,children:a.jsx(Ha,{size:14})})]},S))})]})}function $a(b){var g=b,{pressed:s,defaultPressed:c=!1,onPressedChange:r,size:d="md",className:p,children:f,onClick:v}=g,x=be(g,["pressed","defaultPressed","onPressedChange","size","className","children","onClick"]);const[y,j]=m.useState(c),k=s!==void 0,A=k?s:y,L=D=>{k||j(E=>!E),r==null||r(!A),v==null||v(D)};return a.jsx("button",we(le({type:"button","aria-pressed":A,className:K("vx-toggle",`vx-toggle--${d}`,A&&"vx-toggle--on",p),onClick:L},x),{children:f}))}function Fu({items:s,value:c,defaultValue:r,onValueChange:d,type:p="single",size:f="md",className:v}){const[x,b]=m.useState(r!=null?r:p==="multiple"?[]:""),g=c!==void 0,y=g?c:x,j=A=>Array.isArray(y)?y.includes(A):y===A,k=A=>{let L;if(p==="multiple"){const D=Array.isArray(y)?y:[];L=D.includes(A)?D.filter(E=>E!==A):[...D,A]}else L=y===A?"":A;g||b(L),d==null||d(L)};return a.jsx("div",{className:K("vx-toggle-group",v),role:"group",children:s.map(A=>a.jsx("button",{type:"button","aria-pressed":j(A.value),disabled:A.disabled,className:K("vx-toggle",`vx-toggle--${f}`,j(A.value)&&"vx-toggle--on","vx-toggle-group__item"),onClick:()=>!A.disabled&&k(A.value),children:A.label},A.value))})}function Vg({groups:s,items:c,children:r,className:d}){const[p,f]=m.useState(null),v=m.useRef(null),x=s!=null?s:c?[{items:c}]:[];m.useEffect(()=>{if(!p)return;const g=j=>{v.current&&!v.current.contains(j.target)&&f(null)},y=j=>{j.key==="Escape"&&f(null)};return document.addEventListener("mousedown",g),document.addEventListener("keydown",y),()=>{document.removeEventListener("mousedown",g),document.removeEventListener("keydown",y)}},[p]);const b=m.useCallback(g=>{g.preventDefault(),f({x:g.clientX,y:g.clientY})},[]);return a.jsxs("div",{className:K("vx-context-menu-wrap",d),onContextMenu:b,children:[r,p&&a.jsx("div",{ref:v,className:"vx-dropdown__menu vx-context-menu",style:{position:"fixed",top:p.y,left:p.x},role:"menu",children:x.map((g,y)=>a.jsxs("div",{className:"vx-dropdown__group",children:[y>0&&a.jsx("div",{className:"vx-dropdown__separator"}),g.label&&a.jsx("div",{className:"vx-dropdown__group-label",children:g.label}),g.items.map((j,k)=>a.jsxs("button",{type:"button",role:"menuitem",disabled:j.disabled,className:K("vx-dropdown__item",j.danger&&"vx-dropdown__item--danger",j.disabled&&"vx-dropdown__item--disabled"),onClick:()=>{var A;(A=j.onClick)==null||A.call(j),f(null)},children:[j.icon&&a.jsx("span",{className:"vx-dropdown__item-icon",children:j.icon}),a.jsx("span",{className:"vx-dropdown__item-label",children:j.label}),j.shortcut&&a.jsx("span",{className:"vx-dropdown__shortcut",children:j.shortcut})]},k))]},y))})]})}function Fg({content:s,placement:c="bottom",delay:r=400,children:d,className:p}){const[f,v]=m.useState(!1),x=m.useRef(null),b=m.useCallback(()=>{x.current=setTimeout(()=>v(!0),r)},[r]),g=m.useCallback(()=>{x.current&&clearTimeout(x.current),v(!1)},[]);return a.jsxs("span",{className:K("vx-hovercard-wrap",p),onMouseEnter:b,onMouseLeave:g,onFocus:b,onBlur:g,children:[d,f&&a.jsx("div",{className:K("vx-hovercard",`vx-hovercard--${c}`),children:s})]})}function _o({menus:s,className:c}){const[r,d]=m.useState(null),p=m.useRef(null);return m.useEffect(()=>{if(r===null)return;const f=x=>{p.current&&!p.current.contains(x.target)&&d(null)},v=x=>{x.key==="Escape"&&d(null)};return document.addEventListener("mousedown",f),document.addEventListener("keydown",v),()=>{document.removeEventListener("mousedown",f),document.removeEventListener("keydown",v)}},[r]),a.jsx("div",{ref:p,className:K("vx-menubar",c),role:"menubar",children:s.map((f,v)=>{var g;const x=(g=f.groups)!=null?g:f.items?[{items:f.items}]:[],b=r===v;return a.jsxs("div",{className:"vx-menubar__item-wrap",children:[a.jsx("button",{type:"button",role:"menuitem",className:K("vx-menubar__trigger",b&&"vx-menubar__trigger--open"),disabled:f.disabled,"aria-haspopup":"menu","aria-expanded":b,onClick:()=>d(b?null:v),onMouseEnter:()=>{r!==null&&d(v)},children:f.label}),b&&a.jsx("div",{className:"vx-dropdown__menu",role:"menu",children:x.map((y,j)=>a.jsxs("div",{className:"vx-dropdown__group",children:[j>0&&a.jsx("div",{className:"vx-dropdown__separator"}),y.label&&a.jsx("div",{className:"vx-dropdown__group-label",children:y.label}),y.items.map((k,A)=>a.jsxs("button",{type:"button",role:"menuitem",disabled:k.disabled,className:K("vx-dropdown__item",k.danger&&"vx-dropdown__item--danger",k.disabled&&"vx-dropdown__item--disabled"),onClick:()=>{var L;(L=k.onClick)==null||L.call(k),d(null)},children:[k.icon&&a.jsx("span",{className:"vx-dropdown__item-icon",children:k.icon}),a.jsx("span",{className:"vx-dropdown__item-label",children:k.label}),k.shortcut&&a.jsx("span",{className:"vx-dropdown__shortcut",children:k.shortcut})]},A))]},j))})]},v)})})}function Gg({items:s,className:c}){const[r,d]=m.useState(null),p=m.useRef(null);return m.useEffect(()=>{if(r===null)return;const f=x=>{p.current&&!p.current.contains(x.target)&&d(null)},v=x=>{x.key==="Escape"&&d(null)};return document.addEventListener("mousedown",f),document.addEventListener("keydown",v),()=>{document.removeEventListener("mousedown",f),document.removeEventListener("keydown",v)}},[r]),a.jsx("nav",{ref:p,className:K("vx-nav-menu",c),"aria-label":"Main navigation",children:a.jsx("ul",{className:"vx-nav-menu__list",role:"list",children:s.map((f,v)=>{var g;const x=f.items&&f.items.length>0,b=r===v;return a.jsxs("li",{className:"vx-nav-menu__item-wrap",children:[x?a.jsxs("button",{type:"button",className:K("vx-nav-menu__link",f.active&&"vx-nav-menu__link--active",b&&"vx-nav-menu__link--open"),"aria-haspopup":"true","aria-expanded":b,onClick:()=>d(b?null:v),children:[f.label,a.jsx(Cu,{size:14,className:K("vx-nav-menu__chevron",b&&"vx-nav-menu__chevron--open")})]}):a.jsx("a",{href:(g=f.href)!=null?g:"#",className:K("vx-nav-menu__link",f.active&&"vx-nav-menu__link--active"),onClick:f.onClick,children:f.label}),x&&b&&a.jsx("div",{className:"vx-nav-menu__dropdown",children:f.items.map((y,j)=>{var k;return a.jsxs("a",{href:(k=y.href)!=null?k:"#",className:"vx-nav-menu__sub-item",onClick:()=>{var A;(A=y.onClick)==null||A.call(y),d(null)},children:[y.icon&&a.jsx("span",{className:"vx-nav-menu__sub-icon",children:y.icon}),a.jsxs("span",{children:[a.jsx("span",{className:"vx-nav-menu__sub-label",children:y.label}),y.description&&a.jsx("span",{className:"vx-nav-menu__sub-desc",children:y.description})]})]},j)})})]},v)})})})}function Lw(s,c,r){return s.status?s.status:c<r?"completed":c===r?"active":"pending"}function ko({steps:s,currentStep:c=0,orientation:r="horizontal",className:d}){const p=Math.min(Math.max(c,0),s.length-1),f=s[p];return a.jsxs("div",{className:K("vx-stepper",`vx-stepper--${r}`,d),children:[a.jsx("ol",{className:"vx-stepper__track","aria-label":"Steps",children:s.map((v,x)=>{const b=Lw(v,x,c),g=x===s.length-1;return a.jsxs(m.Fragment,{children:[a.jsx("li",{className:K("vx-stepper__step",`vx-stepper__step--${b}`),"aria-current":b==="active"?"step":void 0,children:a.jsx("div",{className:"vx-stepper__indicator","aria-hidden":"true",children:b==="completed"?a.jsx(Ka,{size:14}):a.jsx("span",{children:x+1})})}),!g&&a.jsx("div",{className:"vx-stepper__connector","data-prev-status":b,"aria-hidden":"true"})]},x)})}),a.jsx("div",{className:"vx-stepper__active-panel","aria-live":"polite",children:f&&a.jsxs("div",{className:"vx-stepper__content",children:[a.jsx("span",{className:"vx-stepper__label",children:f.label}),f.description&&a.jsx("span",{className:"vx-stepper__description",children:f.description})]})})]})}function No({items:s,className:c}){return a.jsx("ol",{className:K("vx-timeline",c),"aria-label":"Timeline",children:s.map((r,d)=>{var p;return a.jsxs("li",{className:K("vx-timeline__item",r.status&&`vx-timeline__item--${r.status}`),children:[a.jsx("div",{className:"vx-timeline__dot","aria-hidden":"true",children:(p=r.icon)!=null?p:null}),a.jsxs("div",{className:"vx-timeline__body",children:[a.jsxs("div",{className:"vx-timeline__header",children:[a.jsx("span",{className:"vx-timeline__title",children:r.title}),r.time&&a.jsx("span",{className:"vx-timeline__time",children:r.time})]}),r.description&&a.jsx("p",{className:"vx-timeline__description",children:r.description})]})]},d)})})}function Co({items:s,defaultIndex:c=0,index:r,onIndexChange:d,autoPlay:p=!1,interval:f=3e3,loop:v=!0,showDots:x=!0,showArrows:b=!0,className:g}){const y=r!==void 0,[j,k]=m.useState(c),A=y?r:j,L=s.length,D=m.useRef(null),E=m.useCallback(_=>{let u=_;v?u=(_%L+L)%L:u=Math.max(0,Math.min(_,L-1)),y||k(u),d==null||d(u)},[y,v,d,L]);m.useEffect(()=>{if(p)return D.current=setInterval(()=>E(A+1),f),()=>{D.current&&clearInterval(D.current)}},[p,A,E,f]);const T=()=>E(A-1),C=()=>E(A+1);return L===0?null:a.jsxs("div",{className:K("vx-carousel",g),role:"region","aria-roledescription":"carousel","aria-label":"Carousel",children:[a.jsx("div",{className:"vx-carousel__track-wrap",children:a.jsx("div",{className:"vx-carousel__track",style:{transform:`translateX(-${A*100}%)`},children:s.map((_,u)=>a.jsx("div",{className:"vx-carousel__slide",role:"group","aria-roledescription":"slide","aria-label":`Slide ${u+1} of ${L}`,"aria-hidden":u!==A,children:_},u))})}),b&&a.jsxs(a.Fragment,{children:[a.jsx("button",{type:"button",className:"vx-carousel__arrow vx-carousel__arrow--prev",onClick:T,disabled:!v&&A===0,"aria-label":"Previous slide",children:a.jsx(Tu,{size:20})}),a.jsx("button",{type:"button",className:"vx-carousel__arrow vx-carousel__arrow--next",onClick:C,disabled:!v&&A===L-1,"aria-label":"Next slide",children:a.jsx(xt,{size:20})})]}),x&&a.jsx("div",{className:"vx-carousel__dots",role:"tablist","aria-label":"Slides",children:s.map((_,u)=>a.jsx("button",{type:"button",role:"tab",className:K("vx-carousel__dot",u===A&&"vx-carousel__dot--active"),onClick:()=>E(u),"aria-selected":u===A,"aria-label":`Go to slide ${u+1}`},u))})]})}function Bw({filled:s,half:c}){return a.jsx("svg",{width:"20",height:"20",viewBox:"0 0 20 20",fill:"none","aria-hidden":"true",children:c?a.jsxs(a.Fragment,{children:[a.jsx("defs",{children:a.jsxs("linearGradient",{id:"vx-star-half",children:[a.jsx("stop",{offset:"50%",stopColor:"currentColor"}),a.jsx("stop",{offset:"50%",stopColor:"none",stopOpacity:"0"})]})}),a.jsx("path",{d:"M10 1.5l2.39 4.84 5.34.78-3.87 3.77.91 5.32L10 13.77l-4.77 2.44.91-5.32L2.27 7.12l5.34-.78L10 1.5z",fill:"url(#vx-star-half)",stroke:"currentColor",strokeWidth:"1.2",strokeLinejoin:"round"})]}):a.jsx("path",{d:"M10 1.5l2.39 4.84 5.34.78-3.87 3.77.91 5.32L10 13.77l-4.77 2.44.91-5.32L2.27 7.12l5.34-.78L10 1.5z",fill:s?"currentColor":"none",stroke:"currentColor",strokeWidth:"1.2",strokeLinejoin:"round"})})}function ai({value:s,defaultValue:c=0,onChange:r,max:d=5,allowHalf:p=!1,disabled:f,readOnly:v,label:x,className:b,size:g="md"}){const y=s!==void 0,[j,k]=m.useState(c),A=y?s:j,[L,D]=m.useState(null),E=L!=null?L:A,T=(u,S)=>{if(!p)return u;const N=S.currentTarget.getBoundingClientRect();return S.clientX-N.left<N.width/2?u-.5:u},C=(u,S)=>{if(f||v)return;const N=T(u,S);y||k(N),r==null||r(N)},_=(u,S)=>{f||v||D(T(u,S))};return a.jsx("div",{className:K("vx-rating",`vx-rating--${g}`,f&&"vx-rating--disabled",b),role:"group","aria-label":x!=null?x:"Rating",children:Array.from({length:d},(u,S)=>{const N=S+1,z=E>=N,V=!z&&E>=N-.5;return a.jsx("button",{type:"button",className:K("vx-rating__star",(z||V)&&"vx-rating__star--active"),onClick:O=>C(N,O),onMouseMove:O=>_(N,O),onMouseLeave:()=>D(null),disabled:f,"aria-label":`${N} star${N!==1?"s":""}`,"aria-pressed":A>=N,tabIndex:v||f?-1:0,children:a.jsx(Bw,{filled:z,half:V})},S)})})}function Yg({node:s,depth:c,selected:r,expanded:d,onSelect:p,onToggle:f}){const v=s.children&&s.children.length>0,x=d.has(s.id),b=r===s.id,g=y=>{(y.key==="Enter"||y.key===" ")&&(y.preventDefault(),s.disabled||p(s.id,s)),y.key==="ArrowRight"&&v&&!x&&(y.preventDefault(),f(s.id)),y.key==="ArrowLeft"&&x&&(y.preventDefault(),f(s.id))};return a.jsxs("li",{role:"treeitem","aria-selected":b,"aria-expanded":v?x:void 0,children:[a.jsxs("div",{className:K("vx-tree__node",b&&"vx-tree__node--selected",s.disabled&&"vx-tree__node--disabled"),style:{paddingLeft:`${8+c*20}px`},onClick:()=>{s.disabled||(p(s.id,s),v&&f(s.id))},onKeyDown:g,tabIndex:s.disabled?-1:0,role:"button","aria-label":typeof s.label=="string"?s.label:void 0,children:[a.jsx("span",{className:K("vx-tree__expand",!v&&"vx-tree__expand--hidden"),children:a.jsx(xt,{size:14,className:K("vx-tree__chevron",x&&"vx-tree__chevron--open")})}),s.icon&&a.jsx("span",{className:"vx-tree__icon",children:s.icon}),a.jsx("span",{className:"vx-tree__label",children:s.label})]}),v&&x&&a.jsx("ul",{role:"group",className:"vx-tree__children",children:s.children.map(y=>a.jsx(Yg,{node:y,depth:c+1,selected:r,expanded:d,onSelect:p,onToggle:f},y.id))})]})}function Xg({nodes:s,selected:c,defaultSelected:r,onSelect:d,defaultExpanded:p=[],expanded:f,onExpandedChange:v,className:x}){const b=c!==void 0,[g,y]=m.useState(r),j=b?c:g,k=f!==void 0,[A,L]=m.useState(new Set(p)),D=k?new Set(f):A,E=m.useCallback((C,_)=>{b||y(C),d==null||d(C,_)},[b,d]),T=m.useCallback(C=>{const _=new Set(D);_.has(C)?_.delete(C):_.add(C),k||L(_),v==null||v([..._])},[D,k,v]);return a.jsx("ul",{className:K("vx-tree",x),role:"tree","aria-multiselectable":"false",children:s.map(C=>a.jsx(Yg,{node:C,depth:0,selected:j,expanded:D,onSelect:E,onToggle:T},C.id))})}function To(A){var L=A,{value:s,defaultValue:c=[],onChange:r,label:d,hint:p,error:f,placeholder:v="Add tag...",confirmKeys:x=["Enter",","],maxTags:b,validate:g,disabled:y,className:j}=L,k=be(L,["value","defaultValue","onChange","label","hint","error","placeholder","confirmKeys","maxTags","validate","disabled","className"]);const D=s!==void 0,[E,T]=m.useState(c),C=D?s:E,[_,u]=m.useState(""),[S,N]=m.useState(),z=m.useRef(null),V=ie=>{D||T(ie),r==null||r(ie)},O=ie=>{const fe=ie.trim();if(fe){if(C.includes(fe)){N("Tag already exists");return}if(b&&C.length>=b){N(`Max ${b} tags`);return}if(g){const Z=g(fe);if(Z===!1){N("Invalid tag");return}if(typeof Z=="string"){N(Z);return}}N(void 0),V([...C,fe]),u("")}},Q=ie=>{V(C.filter((fe,Z)=>Z!==ie))},U=ie=>{x.includes(ie.key)?(ie.preventDefault(),O(_)):ie.key==="Backspace"&&!_&&C.length>0&&Q(C.length-1)},F=f!=null?f:S;return a.jsxs("div",{className:K("vx-tag-input",j),children:[d?a.jsx("span",{className:"vx-field-group__label",children:d}):null,a.jsxs("div",{className:K("vx-tag-input__wrap",F&&"vx-tag-input__wrap--invalid",y&&"vx-tag-input__wrap--disabled"),onClick:()=>{var ie;return(ie=z.current)==null?void 0:ie.focus()},children:[C.map((ie,fe)=>a.jsxs("span",{className:"vx-tag-input__tag",children:[ie,!y&&a.jsx("button",{type:"button",className:"vx-tag-input__remove",onClick:Z=>{Z.stopPropagation(),Q(fe)},"aria-label":`Remove tag ${ie}`,children:a.jsx(Ha,{size:11})})]},fe)),a.jsx("input",le({ref:z,className:"vx-tag-input__input",value:_,placeholder:C.length===0?v:"",disabled:y,onKeyDown:U,onChange:ie=>{u(ie.target.value),N(void 0)},onBlur:()=>{_.trim()&&O(_)},"aria-label":d!=null?d:"Tag input"},k))]}),F?a.jsx("span",{className:"vx-field-group__error",children:F}):null,!F&&p?a.jsx("span",{className:"vx-field-group__hint",children:p}):null]})}function Hw(s){const c=parseInt(s.slice(1,3),16)/255,r=parseInt(s.slice(3,5),16)/255,d=parseInt(s.slice(5,7),16)/255,p=Math.max(c,r,d),f=Math.min(c,r,d),v=(p+f)/2;let x=0,b=0;if(p!==f){const g=p-f;switch(b=g/(v>.5?2-p-f:p+f),p){case c:x=((r-d)/g+(r<d?6:0))/6;break;case r:x=((d-c)/g+2)/6;break;case d:x=((c-r)/g+4)/6;break}}return[Math.round(x*360),Math.round(b*100),Math.round(v*100)]}function _s(s,c,r){const d=s/360,p=c/100,f=r/100,v=(j,k,A)=>{let L=A;return L<0&&(L+=1),L>1&&(L-=1),L<1/6?j+(k-j)*6*L:L<1/2?k:L<2/3?j+(k-j)*(2/3-L)*6:j};let x,b,g;if(p===0)x=b=g=f;else{const j=f<.5?f*(1+p):f+p-f*p,k=2*f-j;x=v(k,j,d+1/3),b=v(k,j,d),g=v(k,j,d-1/3)}const y=j=>Math.round(j*255).toString(16).padStart(2,"0");return`#${y(x)}${y(b)}${y(g)}`}function rv(s){return/^#[0-9a-f]{6}$/i.test(s)}const Uw=["#ef4444","#f97316","#eab308","#22c55e","#06b6d4","#3b82f6","#8b5cf6","#ec4899","#64748b","#0f172a","#ffffff","#f8fafc"];function $g({value:s,defaultValue:c="#3b82f6",onChange:r,label:d,hint:p,error:f,disabled:v,presets:x=Uw,showPresets:b=!0,className:g}){const y=s!==void 0,[j,k]=m.useState(c),A=y?s:j,[L,D]=m.useState(A),[E,T]=m.useState(!1),C=m.useRef(null),_=m.useCallback(()=>typeof window=="undefined"?!1:window.innerWidth<=1e3&&window.innerHeight>window.innerWidth,[]),[u,S,N]=rv(A)?Hw(A):[0,0,50],z=m.useCallback(U=>{y||k(U),D(U),r==null||r(U)},[y,r]),V=U=>{const F=U.startsWith("#")?U:`#${U}`;D(F),rv(F)&&z(F)},O=a.jsxs("div",{className:K("vx-colorpicker__panel"),role:"dialog","aria-label":"Color picker",children:[a.jsx("div",{className:"vx-colorpicker__section-label",children:"Hue"}),a.jsx("input",{type:"range",className:"vx-colorpicker__hue-slider",min:"0",max:"360",value:u,onChange:U=>z(_s(Number(U.target.value),S,N)),"aria-label":"Hue"}),a.jsx("div",{className:"vx-colorpicker__section-label",children:"Saturation"}),a.jsx("input",{type:"range",className:"vx-colorpicker__sat-slider",min:"0",max:"100",value:S,style:{"--vx-cp-hue":u},onChange:U=>z(_s(u,Number(U.target.value),N)),"aria-label":"Saturation"}),a.jsx("div",{className:"vx-colorpicker__section-label",children:"Lightness"}),a.jsx("input",{type:"range",className:"vx-colorpicker__lit-slider",min:"0",max:"100",value:N,style:{"--vx-cp-hue":u,"--vx-cp-sat":`${S}%`},onChange:U=>z(_s(u,S,Number(U.target.value))),"aria-label":"Lightness"}),b&&a.jsx("div",{className:"vx-colorpicker__presets",children:x.map(U=>a.jsx("button",{type:"button",className:K("vx-colorpicker__preset",A.toLowerCase()===U.toLowerCase()&&"vx-colorpicker__preset--active"),style:{background:U},onClick:()=>z(U),"aria-label":U},U))}),a.jsx("button",{type:"button",className:"vx-colorpicker__close",onClick:()=>T(!1),children:"Done"})]}),Q=a.jsxs("div",{className:"vxm-colorpicker__sheet",children:[a.jsx("div",{className:"vx-colorpicker__section-label",children:"Hue"}),a.jsx("input",{type:"range",className:"vx-colorpicker__hue-slider",min:"0",max:"360",value:u,onChange:U=>z(_s(Number(U.target.value),S,N)),"aria-label":"Hue"}),a.jsx("div",{className:"vx-colorpicker__section-label",children:"Saturation"}),a.jsx("input",{type:"range",className:"vx-colorpicker__sat-slider",min:"0",max:"100",value:S,style:{"--vx-cp-hue":u},onChange:U=>z(_s(u,Number(U.target.value),N)),"aria-label":"Saturation"}),a.jsx("div",{className:"vx-colorpicker__section-label",children:"Lightness"}),a.jsx("input",{type:"range",className:"vx-colorpicker__lit-slider",min:"0",max:"100",value:N,style:{"--vx-cp-hue":u,"--vx-cp-sat":`${S}%`},onChange:U=>z(_s(u,S,Number(U.target.value))),"aria-label":"Lightness"}),b&&a.jsx("div",{className:"vx-colorpicker__presets",children:x.map(U=>a.jsx("button",{type:"button",className:K("vx-colorpicker__preset",A.toLowerCase()===U.toLowerCase()&&"vx-colorpicker__preset--active"),style:{background:U},onClick:()=>z(U),"aria-label":U},U))})]});return a.jsxs("div",{ref:C,className:K("vx-colorpicker",g),children:[d?a.jsx("span",{className:"vx-field-group__label",children:d}):null,a.jsxs("div",{className:"vx-colorpicker__row",children:[a.jsx("button",{type:"button",className:K("vx-colorpicker__swatch-btn",v&&"vx-colorpicker__swatch-btn--disabled"),style:{"--vx-cp-color":A},onClick:()=>!v&&T(U=>!U),disabled:v,"aria-label":`Current color: ${A}. Click to open color picker.`,"aria-haspopup":"dialog","aria-expanded":E}),a.jsx("input",{type:"text",className:"vx-colorpicker__hex-input",value:L,onChange:U=>V(U.target.value),disabled:v,"aria-label":"Hex color value",maxLength:7})]}),f?a.jsx("span",{className:"vx-field-group__error",children:f}):null,!f&&p?a.jsx("span",{className:"vx-field-group__hint",children:p}):null,!_()&&E&&O,_()&&a.jsx(it,{side:"bottom",open:E,onOpenChange:U=>{U||T(!1)},title:"颜色选择器",children:Q})]})}const Kg=m.createContext(null);function Qg(s){const c=m.useContext(Kg);if(!c)throw new Error(`<${s}> must be rendered inside <ResizablePanelGroup>.`);return c}function Wg({direction:s="horizontal",children:c,className:r,style:d,disabled:p=!1}){const f=m.useMemo(()=>({direction:s,disabled:p}),[s,p]);return a.jsx(Kg.Provider,{value:f,children:a.jsx("div",{className:K("vx-resizable-group",`vx-resizable-group--${s}`,p&&"vx-resizable-group--disabled",r),style:d,"data-direction":s,children:c})})}function Eo({children:s,defaultSize:c=50,minSize:r=10,maxSize:d=90,className:p,style:f}){const{direction:v}=Qg("ResizablePanel"),x=`${Math.min(Math.max(c,0),100)}%`,b=v==="horizontal";return a.jsx("div",{className:K("vx-resizable-panel",p),style:le({flexBasis:x,flexGrow:0,flexShrink:1,width:b?x:"100%",height:b?"100%":x},f),"data-min":r,"data-max":d,"data-size":c,children:s})}function lv(s,c){var r,d;if("touches"in s){const p=(d=s.touches[0])!=null?d:(r=s.changedTouches)==null?void 0:r[0];return c?p.clientX:p.clientY}return c?s.clientX:s.clientY}function Zg({direction:s,ariaLabel:c,className:r}){const{direction:d,disabled:p}=Qg("ResizableHandle"),f=d==="horizontal",v=m.useRef(!1),x=m.useRef(0),b=m.useRef(0),g=m.useRef(0),y=m.useRef(0),j=m.useRef(null),[k,A]=m.useState(!1),[L,D]=m.useState(null),E=m.useCallback(()=>{var Z,P,$,re;const u=j.current;if(!u)return null;const S=u.previousElementSibling,N=u.nextElementSibling;if(!S||!N)return null;const z=u.parentElement;if(!z)return null;const V=f?z.getBoundingClientRect().width:z.getBoundingClientRect().height,O=f?S.getBoundingClientRect().width:S.getBoundingClientRect().height,Q=f?N.getBoundingClientRect().width:N.getBoundingClientRect().height,U=Number((Z=S.dataset.min)!=null?Z:10),F=Number((P=S.dataset.max)!=null?P:90),ie=Number(($=N.dataset.min)!=null?$:10),fe=Number((re=N.dataset.max)!=null?re:90);return{handle:u,prev:S,next:N,parent:z,parentSize:V,prevSize:O,nextSize:Q,prevMin:U/100*V,prevMax:F/100*V,nextMin:ie/100*V,nextMax:fe/100*V}},[f]),T=m.useCallback((u,S,N)=>{if(!N)return;const{prev:z,next:V,parentSize:O}=N,Q=Math.min(Math.max(u,N.prevMin),N.prevMax),U=Math.min(Math.max(S,N.nextMin),N.nextMax),F=Q/O*100,ie=U/O*100,fe=`${F}%`,Z=`${ie}%`;z.style.flexBasis=fe,z.style.flexGrow="0",z.style.flexShrink="1",f?z.style.width=fe:z.style.height=fe,V.style.flexBasis=Z,V.style.flexGrow="0",V.style.flexShrink="1",f?V.style.width=Z:V.style.height=Z},[f]),C=m.useCallback(u=>{if(p)return;u.preventDefault();const S=E();if(!S)return;x.current=lv(u.nativeEvent,f),b.current=S.parentSize,g.current=S.prevSize,y.current=S.nextSize,v.current=!0,A(!0);const N=V=>{var F;if(!v.current)return;V.cancelable&&V.preventDefault();const O=(F=E())!=null?F:S,U=lv(V,f)-x.current;T(g.current+U,y.current-U,O)},z=()=>{v.current=!1,A(!1),document.removeEventListener("mousemove",N),document.removeEventListener("mouseup",z),document.removeEventListener("touchmove",N),document.removeEventListener("touchend",z),document.removeEventListener("touchcancel",z)};document.addEventListener("mousemove",N),document.addEventListener("mouseup",z),document.addEventListener("touchmove",N,{passive:!1}),document.addEventListener("touchend",z),document.addEventListener("touchcancel",z)},[T,E,p,f]),_=m.useCallback(u=>{if(p)return;const S=f?u.key==="ArrowRight"||u.key==="ArrowUp":u.key==="ArrowDown"||u.key==="ArrowRight",N=f?u.key==="ArrowLeft"||u.key==="ArrowDown":u.key==="ArrowUp"||u.key==="ArrowLeft";if(!S&&!N)return;u.preventDefault();const z=E();if(!z)return;const V=u.shiftKey?10:2,O=S?V:-V;g.current===0&&(g.current=z.prevSize,y.current=z.nextSize);const Q=z.parentSize*O/100;T(z.prevSize+Q,z.nextSize-Q,z),D(O)},[T,E,p,f]);return m.useEffect(()=>{if(L===null)return;const u=window.setTimeout(()=>D(null),600);return()=>window.clearTimeout(u)},[L]),a.jsx("div",{ref:j,role:"separator",tabIndex:p?-1:0,"aria-orientation":f?"vertical":"horizontal","aria-label":c,"aria-disabled":p||void 0,"aria-valuenow":L!=null?L:void 0,className:K("vx-resizable-handle",`vx-resizable-handle--${d}`,k&&"vx-resizable-handle--active",p&&"vx-resizable-handle--disabled",r),onMouseDown:C,onTouchStart:C,onKeyDown:_,children:a.jsx("span",{className:"vx-resizable-handle__bar","aria-hidden":"true"})})}function ov(s,c){if(!c)return s;const r=s.toLowerCase().indexOf(c.toLowerCase());return r===-1?s:a.jsxs(a.Fragment,{children:[s.slice(0,r),a.jsx("mark",{className:"vx-cmd__mark",children:s.slice(r,r+c.length)}),s.slice(r+c.length)]})}function Pw(s,c){var x;const r=c.toLowerCase(),d=s.title.toLowerCase(),p=s.section.toLowerCase(),f=s.description.toLowerCase(),v=((x=s.keywords)!=null?x:[]).join(" ").toLowerCase();return d===r?100:d.startsWith(r)?80:d.includes(r)?60:p.includes(r)?40:v.includes(r)?35:f.includes(r)?20:0}function qw({entries:s,open:c,onClose:r,onSelect:d,placeholder:p="Search components, pages, keywords…",ariaLabel:f="Search",emptyText:v=y=>`No results for "${y}"`,labelNavigate:x="Navigate",labelGo:b="Go",labelClose:g="Close"}){const[y,j]=m.useState(""),[k,A]=m.useState(0),L=m.useRef(null),D=m.useRef(null),E=y.trim()?s.map(u=>({entry:u,s:Pw(u,y.trim())})).filter(u=>u.s>0).sort((u,S)=>S.s-u.s).map(u=>u.entry):s;m.useEffect(()=>{c&&(j(""),A(0),setTimeout(()=>{var u;return(u=L.current)==null?void 0:u.focus()},30))},[c]),m.useEffect(()=>{A(0)},[y]),m.useEffect(()=>{var S,N;const u=(S=D.current)==null?void 0:S.children[k];(N=u==null?void 0:u.scrollIntoView)==null||N.call(u,{block:"nearest"})},[k]);const T=m.useCallback(u=>{d(u),r()},[d,r]),C=m.useCallback(u=>{u.key==="ArrowDown"?(u.preventDefault(),A(S=>Math.min(S+1,E.length-1))):u.key==="ArrowUp"?(u.preventDefault(),A(S=>Math.max(S-1,0))):u.key==="Enter"?(u.preventDefault(),E[k]&&T(E[k].key)):u.key==="Escape"&&r()},[E,k,T,r]);if(!c)return null;const _=[];for(const u of E){const S=_[_.length-1];S&&S.section===u.section?S.items.push(u):_.push({section:u.section,items:[u]})}return a.jsx("div",{className:"vx-cmd__backdrop",onMouseDown:r,children:a.jsxs("div",{className:"vx-cmd",role:"dialog","aria-modal":"true","aria-label":f,onMouseDown:u=>u.stopPropagation(),children:[a.jsxs("div",{className:"vx-cmd__search",children:[a.jsxs("svg",{className:"vx-cmd__search-icon",width:"16",height:"16",viewBox:"0 0 16 16",fill:"none","aria-hidden":"true",children:[a.jsx("circle",{cx:"6.5",cy:"6.5",r:"5",stroke:"currentColor",strokeWidth:"1.5"}),a.jsx("path",{d:"M10.5 10.5L14 14",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round"})]}),a.jsx("input",{ref:L,className:"vx-cmd__input",type:"text",placeholder:p,value:y,onChange:u=>j(u.target.value),onKeyDown:C,autoComplete:"off",spellCheck:!1}),y?a.jsx("button",{className:"vx-cmd__clear",onClick:()=>j(""),"aria-label":"清除",children:a.jsx("svg",{width:"14",height:"14",viewBox:"0 0 14 14",fill:"none","aria-hidden":"true",children:a.jsx("path",{d:"M1 1l12 12M13 1L1 13",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round"})})}):a.jsx("kbd",{className:"vx-cmd__esc",children:"esc"})]}),a.jsx("ul",{className:"vx-cmd__list",ref:D,role:"listbox",children:E.length===0?a.jsx("li",{className:"vx-cmd__empty",children:v(y)}):_.map(u=>u.items.map((S,N)=>{const z=E.indexOf(S),V=z===k;return a.jsxs("li",{role:"option","aria-selected":V,className:`vx-cmd__item${V?" vx-cmd__item--active":""}`,onMouseEnter:()=>A(z),onMouseDown:()=>T(S.key),children:[S.icon?a.jsx("span",{className:"vx-cmd__item-icon",children:S.icon}):a.jsx("span",{className:"vx-cmd__item-icon vx-cmd__item-icon--section",children:(S.title||S.section).slice(0,1)}),a.jsxs("span",{className:"vx-cmd__item-body",children:[a.jsx("span",{className:"vx-cmd__item-title",children:ov(S.title,y)}),a.jsx("span",{className:"vx-cmd__item-sub",children:ov(S.section,y)})]}),V&&a.jsx("kbd",{className:"vx-cmd__enter",children:"↵"})]},S.key)}))}),a.jsxs("div",{className:"vx-cmd__footer",children:[a.jsxs("span",{children:[a.jsx("kbd",{children:"↑↓"})," ",x]}),a.jsxs("span",{children:[a.jsx("kbd",{children:"↵"})," ",b]}),a.jsxs("span",{children:[a.jsx("kbd",{children:"esc"})," ",g]})]})]})})}var ru={exports:{}},cv;function Iw(){return cv||(cv=1,(function(s){var c=typeof window!="undefined"?window:typeof WorkerGlobalScope!="undefined"&&self instanceof WorkerGlobalScope?self:{};/**
390
+ * Prism: Lightweight, robust, elegant syntax highlighting
391
+ *
392
+ * @license MIT <https://opensource.org/licenses/MIT>
393
+ * @author Lea Verou <https://lea.verou.me>
394
+ * @namespace
395
+ * @public
396
+ */var r=(function(d){var p=/(?:^|\s)lang(?:uage)?-([\w-]+)(?=\s|$)/i,f=0,v={},x={manual:d.Prism&&d.Prism.manual,disableWorkerMessageHandler:d.Prism&&d.Prism.disableWorkerMessageHandler,util:{encode:function C(_){return _ instanceof b?new b(_.type,C(_.content),_.alias):Array.isArray(_)?_.map(C):_.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/\u00a0/g," ")},type:function(C){return Object.prototype.toString.call(C).slice(8,-1)},objId:function(C){return C.__id||Object.defineProperty(C,"__id",{value:++f}),C.__id},clone:function C(_,u){u=u||{};var S,N;switch(x.util.type(_)){case"Object":if(N=x.util.objId(_),u[N])return u[N];S={},u[N]=S;for(var z in _)_.hasOwnProperty(z)&&(S[z]=C(_[z],u));return S;case"Array":return N=x.util.objId(_),u[N]?u[N]:(S=[],u[N]=S,_.forEach(function(V,O){S[O]=C(V,u)}),S);default:return _}},getLanguage:function(C){for(;C;){var _=p.exec(C.className);if(_)return _[1].toLowerCase();C=C.parentElement}return"none"},setLanguage:function(C,_){C.className=C.className.replace(RegExp(p,"gi"),""),C.classList.add("language-"+_)},currentScript:function(){if(typeof document=="undefined")return null;if(document.currentScript&&document.currentScript.tagName==="SCRIPT")return document.currentScript;try{throw new Error}catch(S){var C=(/at [^(\r\n]*\((.*):[^:]+:[^:]+\)$/i.exec(S.stack)||[])[1];if(C){var _=document.getElementsByTagName("script");for(var u in _)if(_[u].src==C)return _[u]}return null}},isActive:function(C,_,u){for(var S="no-"+_;C;){var N=C.classList;if(N.contains(_))return!0;if(N.contains(S))return!1;C=C.parentElement}return!!u}},languages:{plain:v,plaintext:v,text:v,txt:v,extend:function(C,_){var u=x.util.clone(x.languages[C]);for(var S in _)u[S]=_[S];return u},insertBefore:function(C,_,u,S){S=S||x.languages;var N=S[C],z={};for(var V in N)if(N.hasOwnProperty(V)){if(V==_)for(var O in u)u.hasOwnProperty(O)&&(z[O]=u[O]);u.hasOwnProperty(V)||(z[V]=N[V])}var Q=S[C];return S[C]=z,x.languages.DFS(x.languages,function(U,F){F===Q&&U!=C&&(this[U]=z)}),z},DFS:function C(_,u,S,N){N=N||{};var z=x.util.objId;for(var V in _)if(_.hasOwnProperty(V)){u.call(_,V,_[V],S||V);var O=_[V],Q=x.util.type(O);Q==="Object"&&!N[z(O)]?(N[z(O)]=!0,C(O,u,null,N)):Q==="Array"&&!N[z(O)]&&(N[z(O)]=!0,C(O,u,V,N))}}},plugins:{},highlightAll:function(C,_){x.highlightAllUnder(document,C,_)},highlightAllUnder:function(C,_,u){var S={callback:u,container:C,selector:'code[class*="language-"], [class*="language-"] code, code[class*="lang-"], [class*="lang-"] code'};x.hooks.run("before-highlightall",S),S.elements=Array.prototype.slice.apply(S.container.querySelectorAll(S.selector)),x.hooks.run("before-all-elements-highlight",S);for(var N=0,z;z=S.elements[N++];)x.highlightElement(z,_===!0,S.callback)},highlightElement:function(C,_,u){var S=x.util.getLanguage(C),N=x.languages[S];x.util.setLanguage(C,S);var z=C.parentElement;z&&z.nodeName.toLowerCase()==="pre"&&x.util.setLanguage(z,S);var V=C.textContent,O={element:C,language:S,grammar:N,code:V};function Q(F){O.highlightedCode=F,x.hooks.run("before-insert",O),O.element.innerHTML=O.highlightedCode,x.hooks.run("after-highlight",O),x.hooks.run("complete",O),u&&u.call(O.element)}if(x.hooks.run("before-sanity-check",O),z=O.element.parentElement,z&&z.nodeName.toLowerCase()==="pre"&&!z.hasAttribute("tabindex")&&z.setAttribute("tabindex","0"),!O.code){x.hooks.run("complete",O),u&&u.call(O.element);return}if(x.hooks.run("before-highlight",O),!O.grammar){Q(x.util.encode(O.code));return}if(_&&d.Worker){var U=new Worker(x.filename);U.onmessage=function(F){Q(F.data)},U.postMessage(JSON.stringify({language:O.language,code:O.code,immediateClose:!0}))}else Q(x.highlight(O.code,O.grammar,O.language))},highlight:function(C,_,u){var S={code:C,grammar:_,language:u};if(x.hooks.run("before-tokenize",S),!S.grammar)throw new Error('The language "'+S.language+'" has no grammar.');return S.tokens=x.tokenize(S.code,S.grammar),x.hooks.run("after-tokenize",S),b.stringify(x.util.encode(S.tokens),S.language)},tokenize:function(C,_){var u=_.rest;if(u){for(var S in u)_[S]=u[S];delete _.rest}var N=new j;return k(N,N.head,C),y(C,N,_,N.head,0),L(N)},hooks:{all:{},add:function(C,_){var u=x.hooks.all;u[C]=u[C]||[],u[C].push(_)},run:function(C,_){var u=x.hooks.all[C];if(!(!u||!u.length))for(var S=0,N;N=u[S++];)N(_)}},Token:b};d.Prism=x;function b(C,_,u,S){this.type=C,this.content=_,this.alias=u,this.length=(S||"").length|0}b.stringify=function C(_,u){if(typeof _=="string")return _;if(Array.isArray(_)){var S="";return _.forEach(function(Q){S+=C(Q,u)}),S}var N={type:_.type,content:C(_.content,u),tag:"span",classes:["token",_.type],attributes:{},language:u},z=_.alias;z&&(Array.isArray(z)?Array.prototype.push.apply(N.classes,z):N.classes.push(z)),x.hooks.run("wrap",N);var V="";for(var O in N.attributes)V+=" "+O+'="'+(N.attributes[O]||"").replace(/"/g,"&quot;")+'"';return"<"+N.tag+' class="'+N.classes.join(" ")+'"'+V+">"+N.content+"</"+N.tag+">"};function g(C,_,u,S){C.lastIndex=_;var N=C.exec(u);if(N&&S&&N[1]){var z=N[1].length;N.index+=z,N[0]=N[0].slice(z)}return N}function y(C,_,u,S,N,z){for(var V in u)if(!(!u.hasOwnProperty(V)||!u[V])){var O=u[V];O=Array.isArray(O)?O:[O];for(var Q=0;Q<O.length;++Q){if(z&&z.cause==V+","+Q)return;var U=O[Q],F=U.inside,ie=!!U.lookbehind,fe=!!U.greedy,Z=U.alias;if(fe&&!U.pattern.global){var P=U.pattern.toString().match(/[imsuy]*$/)[0];U.pattern=RegExp(U.pattern.source,P+"g")}for(var $=U.pattern||U,re=S.next,ge=N;re!==_.tail&&!(z&&ge>=z.reach);ge+=re.value.length,re=re.next){var xe=re.value;if(_.length>C.length)return;if(!(xe instanceof b)){var R=1,W;if(fe){if(W=g($,ge,C,ie),!W||W.index>=C.length)break;var J=W.index,B=W.index+W[0].length,te=ge;for(te+=re.value.length;J>=te;)re=re.next,te+=re.value.length;if(te-=re.value.length,ge=te,re.value instanceof b)continue;for(var pe=re;pe!==_.tail&&(te<B||typeof pe.value=="string");pe=pe.next)R++,te+=pe.value.length;R--,xe=C.slice(ge,te),W.index-=ge}else if(W=g($,0,xe,ie),!W)continue;var J=W.index,I=W[0],he=xe.slice(0,J),ce=xe.slice(J+I.length),oe=ge+xe.length;z&&oe>z.reach&&(z.reach=oe);var ke=re.prev;he&&(ke=k(_,ke,he),ge+=he.length),A(_,ke,R);var Ee=new b(V,F?x.tokenize(I,F):I,Z,I);if(re=k(_,ke,Ee),ce&&k(_,re,ce),R>1){var Ge={cause:V+","+Q,reach:oe};y(C,_,u,re.prev,ge,Ge),z&&Ge.reach>z.reach&&(z.reach=Ge.reach)}}}}}}function j(){var C={value:null,prev:null,next:null},_={value:null,prev:C,next:null};C.next=_,this.head=C,this.tail=_,this.length=0}function k(C,_,u){var S=_.next,N={value:u,prev:_,next:S};return _.next=N,S.prev=N,C.length++,N}function A(C,_,u){for(var S=_.next,N=0;N<u&&S!==C.tail;N++)S=S.next;_.next=S,S.prev=_,C.length-=N}function L(C){for(var _=[],u=C.head.next;u!==C.tail;)_.push(u.value),u=u.next;return _}if(!d.document)return d.addEventListener&&(x.disableWorkerMessageHandler||d.addEventListener("message",function(C){var _=JSON.parse(C.data),u=_.language,S=_.code,N=_.immediateClose;d.postMessage(x.highlight(S,x.languages[u],u)),N&&d.close()},!1)),x;var D=x.util.currentScript();D&&(x.filename=D.src,D.hasAttribute("data-manual")&&(x.manual=!0));function E(){x.manual||x.highlightAll()}if(!x.manual){var T=document.readyState;T==="loading"||T==="interactive"&&D&&D.defer?document.addEventListener("DOMContentLoaded",E):window.requestAnimationFrame?window.requestAnimationFrame(E):window.setTimeout(E,16)}return x})(c);s.exports&&(s.exports=r),typeof Hh!="undefined"&&(Hh.Prism=r),r.languages.markup={comment:{pattern:/<!--(?:(?!<!--)[\s\S])*?-->/,greedy:!0},prolog:{pattern:/<\?[\s\S]+?\?>/,greedy:!0},doctype:{pattern:/<!DOCTYPE(?:[^>"'[\]]|"[^"]*"|'[^']*')+(?:\[(?:[^<"'\]]|"[^"]*"|'[^']*'|<(?!!--)|<!--(?:[^-]|-(?!->))*-->)*\]\s*)?>/i,greedy:!0,inside:{"internal-subset":{pattern:/(^[^\[]*\[)[\s\S]+(?=\]>$)/,lookbehind:!0,greedy:!0,inside:null},string:{pattern:/"[^"]*"|'[^']*'/,greedy:!0},punctuation:/^<!|>$|[[\]]/,"doctype-tag":/^DOCTYPE/i,name:/[^\s<>'"]+/}},cdata:{pattern:/<!\[CDATA\[[\s\S]*?\]\]>/i,greedy:!0},tag:{pattern:/<\/?(?!\d)[^\s>\/=$<%]+(?:\s(?:\s*[^\s>\/=]+(?:\s*=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+(?=[\s>]))|(?=[\s/>])))+)?\s*\/?>/,greedy:!0,inside:{tag:{pattern:/^<\/?[^\s>\/]+/,inside:{punctuation:/^<\/?/,namespace:/^[^\s>\/:]+:/}},"special-attr":[],"attr-value":{pattern:/=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+)/,inside:{punctuation:[{pattern:/^=/,alias:"attr-equals"},{pattern:/^(\s*)["']|["']$/,lookbehind:!0}]}},punctuation:/\/?>/,"attr-name":{pattern:/[^\s>\/]+/,inside:{namespace:/^[^\s>\/:]+:/}}}},entity:[{pattern:/&[\da-z]{1,8};/i,alias:"named-entity"},/&#x?[\da-f]{1,8};/i]},r.languages.markup.tag.inside["attr-value"].inside.entity=r.languages.markup.entity,r.languages.markup.doctype.inside["internal-subset"].inside=r.languages.markup,r.hooks.add("wrap",function(d){d.type==="entity"&&(d.attributes.title=d.content.replace(/&amp;/,"&"))}),Object.defineProperty(r.languages.markup.tag,"addInlined",{value:function(p,f){var v={};v["language-"+f]={pattern:/(^<!\[CDATA\[)[\s\S]+?(?=\]\]>$)/i,lookbehind:!0,inside:r.languages[f]},v.cdata=/^<!\[CDATA\[|\]\]>$/i;var x={"included-cdata":{pattern:/<!\[CDATA\[[\s\S]*?\]\]>/i,inside:v}};x["language-"+f]={pattern:/[\s\S]+/,inside:r.languages[f]};var b={};b[p]={pattern:RegExp(/(<__[^>]*>)(?:<!\[CDATA\[(?:[^\]]|\](?!\]>))*\]\]>|(?!<!\[CDATA\[)[\s\S])*?(?=<\/__>)/.source.replace(/__/g,function(){return p}),"i"),lookbehind:!0,greedy:!0,inside:x},r.languages.insertBefore("markup","cdata",b)}}),Object.defineProperty(r.languages.markup.tag,"addAttribute",{value:function(d,p){r.languages.markup.tag.inside["special-attr"].push({pattern:RegExp(/(^|["'\s])/.source+"(?:"+d+")"+/\s*=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+(?=[\s>]))/.source,"i"),lookbehind:!0,inside:{"attr-name":/^[^\s=]+/,"attr-value":{pattern:/=[\s\S]+/,inside:{value:{pattern:/(^=\s*(["']|(?!["'])))\S[\s\S]*(?=\2$)/,lookbehind:!0,alias:[p,"language-"+p],inside:r.languages[p]},punctuation:[{pattern:/^=/,alias:"attr-equals"},/"|'/]}}}})}}),r.languages.html=r.languages.markup,r.languages.mathml=r.languages.markup,r.languages.svg=r.languages.markup,r.languages.xml=r.languages.extend("markup",{}),r.languages.ssml=r.languages.xml,r.languages.atom=r.languages.xml,r.languages.rss=r.languages.xml,(function(d){var p=/(?:"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"|'(?:\\(?:\r\n|[\s\S])|[^'\\\r\n])*')/;d.languages.css={comment:/\/\*[\s\S]*?\*\//,atrule:{pattern:RegExp("@[\\w-](?:"+/[^;{\s"']|\s+(?!\s)/.source+"|"+p.source+")*?"+/(?:;|(?=\s*\{))/.source),inside:{rule:/^@[\w-]+/,"selector-function-argument":{pattern:/(\bselector\s*\(\s*(?![\s)]))(?:[^()\s]|\s+(?![\s)])|\((?:[^()]|\([^()]*\))*\))+(?=\s*\))/,lookbehind:!0,alias:"selector"},keyword:{pattern:/(^|[^\w-])(?:and|not|only|or)(?![\w-])/,lookbehind:!0}}},url:{pattern:RegExp("\\burl\\((?:"+p.source+"|"+/(?:[^\\\r\n()"']|\\[\s\S])*/.source+")\\)","i"),greedy:!0,inside:{function:/^url/i,punctuation:/^\(|\)$/,string:{pattern:RegExp("^"+p.source+"$"),alias:"url"}}},selector:{pattern:RegExp(`(^|[{}\\s])[^{}\\s](?:[^{};"'\\s]|\\s+(?![\\s{])|`+p.source+")*(?=\\s*\\{)"),lookbehind:!0},string:{pattern:p,greedy:!0},property:{pattern:/(^|[^-\w\xA0-\uFFFF])(?!\s)[-_a-z\xA0-\uFFFF](?:(?!\s)[-\w\xA0-\uFFFF])*(?=\s*:)/i,lookbehind:!0},important:/!important\b/i,function:{pattern:/(^|[^-a-z0-9])[-a-z0-9]+(?=\()/i,lookbehind:!0},punctuation:/[(){};:,]/},d.languages.css.atrule.inside.rest=d.languages.css;var f=d.languages.markup;f&&(f.tag.addInlined("style","css"),f.tag.addAttribute("style","css"))})(r),r.languages.clike={comment:[{pattern:/(^|[^\\])\/\*[\s\S]*?(?:\*\/|$)/,lookbehind:!0,greedy:!0},{pattern:/(^|[^\\:])\/\/.*/,lookbehind:!0,greedy:!0}],string:{pattern:/(["'])(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,greedy:!0},"class-name":{pattern:/(\b(?:class|extends|implements|instanceof|interface|new|trait)\s+|\bcatch\s+\()[\w.\\]+/i,lookbehind:!0,inside:{punctuation:/[.\\]/}},keyword:/\b(?:break|catch|continue|do|else|finally|for|function|if|in|instanceof|new|null|return|throw|try|while)\b/,boolean:/\b(?:false|true)\b/,function:/\b\w+(?=\()/,number:/\b0x[\da-f]+\b|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:e[+-]?\d+)?/i,operator:/[<>]=?|[!=]=?=?|--?|\+\+?|&&?|\|\|?|[?*/~^%]/,punctuation:/[{}[\];(),.:]/},r.languages.javascript=r.languages.extend("clike",{"class-name":[r.languages.clike["class-name"],{pattern:/(^|[^$\w\xA0-\uFFFF])(?!\s)[_$A-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\.(?:constructor|prototype))/,lookbehind:!0}],keyword:[{pattern:/((?:^|\})\s*)catch\b/,lookbehind:!0},{pattern:/(^|[^.]|\.\.\.\s*)\b(?:as|assert(?=\s*\{)|async(?=\s*(?:function\b|\(|[$\w\xA0-\uFFFF]|$))|await|break|case|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally(?=\s*(?:\{|$))|for|from(?=\s*(?:['"]|$))|function|(?:get|set)(?=\s*(?:[#\[$\w\xA0-\uFFFF]|$))|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)\b/,lookbehind:!0}],function:/#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*(?:\.\s*(?:apply|bind|call)\s*)?\()/,number:{pattern:RegExp(/(^|[^\w$])/.source+"(?:"+(/NaN|Infinity/.source+"|"+/0[bB][01]+(?:_[01]+)*n?/.source+"|"+/0[oO][0-7]+(?:_[0-7]+)*n?/.source+"|"+/0[xX][\dA-Fa-f]+(?:_[\dA-Fa-f]+)*n?/.source+"|"+/\d+(?:_\d+)*n/.source+"|"+/(?:\d+(?:_\d+)*(?:\.(?:\d+(?:_\d+)*)?)?|\.\d+(?:_\d+)*)(?:[Ee][+-]?\d+(?:_\d+)*)?/.source)+")"+/(?![\w$])/.source),lookbehind:!0},operator:/--|\+\+|\*\*=?|=>|&&=?|\|\|=?|[!=]==|<<=?|>>>?=?|[-+*/%&|^!=<>]=?|\.{3}|\?\?=?|\?\.?|[~:]/}),r.languages.javascript["class-name"][0].pattern=/(\b(?:class|extends|implements|instanceof|interface|new)\s+)[\w.\\]+/,r.languages.insertBefore("javascript","keyword",{regex:{pattern:RegExp(/((?:^|[^$\w\xA0-\uFFFF."'\])\s]|\b(?:return|yield))\s*)/.source+/\//.source+"(?:"+/(?:\[(?:[^\]\\\r\n]|\\.)*\]|\\.|[^/\\\[\r\n])+\/[dgimyus]{0,7}/.source+"|"+/(?:\[(?:[^[\]\\\r\n]|\\.|\[(?:[^[\]\\\r\n]|\\.|\[(?:[^[\]\\\r\n]|\\.)*\])*\])*\]|\\.|[^/\\\[\r\n])+\/[dgimyus]{0,7}v[dgimyus]{0,7}/.source+")"+/(?=(?:\s|\/\*(?:[^*]|\*(?!\/))*\*\/)*(?:$|[\r\n,.;:})\]]|\/\/))/.source),lookbehind:!0,greedy:!0,inside:{"regex-source":{pattern:/^(\/)[\s\S]+(?=\/[a-z]*$)/,lookbehind:!0,alias:"language-regex",inside:r.languages.regex},"regex-delimiter":/^\/|\/$/,"regex-flags":/^[a-z]+$/}},"function-variable":{pattern:/#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*[=:]\s*(?:async\s*)?(?:\bfunction\b|(?:\((?:[^()]|\([^()]*\))*\)|(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*)\s*=>))/,alias:"function"},parameter:[{pattern:/(function(?:\s+(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*)?\s*\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\))/,lookbehind:!0,inside:r.languages.javascript},{pattern:/(^|[^$\w\xA0-\uFFFF])(?!\s)[_$a-z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*=>)/i,lookbehind:!0,inside:r.languages.javascript},{pattern:/(\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\)\s*=>)/,lookbehind:!0,inside:r.languages.javascript},{pattern:/((?:\b|\s|^)(?!(?:as|async|await|break|case|catch|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally|for|from|function|get|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|set|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)(?![$\w\xA0-\uFFFF]))(?:(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*\s*)\(\s*|\]\s*\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\)\s*\{)/,lookbehind:!0,inside:r.languages.javascript}],constant:/\b[A-Z](?:[A-Z_]|\dx?)*\b/}),r.languages.insertBefore("javascript","string",{hashbang:{pattern:/^#!.*/,greedy:!0,alias:"comment"},"template-string":{pattern:/`(?:\\[\s\S]|\$\{(?:[^{}]|\{(?:[^{}]|\{[^}]*\})*\})+\}|(?!\$\{)[^\\`])*`/,greedy:!0,inside:{"template-punctuation":{pattern:/^`|`$/,alias:"string"},interpolation:{pattern:/((?:^|[^\\])(?:\\{2})*)\$\{(?:[^{}]|\{(?:[^{}]|\{[^}]*\})*\})+\}/,lookbehind:!0,inside:{"interpolation-punctuation":{pattern:/^\$\{|\}$/,alias:"punctuation"},rest:r.languages.javascript}},string:/[\s\S]+/}},"string-property":{pattern:/((?:^|[,{])[ \t]*)(["'])(?:\\(?:\r\n|[\s\S])|(?!\2)[^\\\r\n])*\2(?=\s*:)/m,lookbehind:!0,greedy:!0,alias:"property"}}),r.languages.insertBefore("javascript","operator",{"literal-property":{pattern:/((?:^|[,{])[ \t]*)(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*:)/m,lookbehind:!0,alias:"property"}}),r.languages.markup&&(r.languages.markup.tag.addInlined("script","javascript"),r.languages.markup.tag.addAttribute(/on(?:abort|blur|change|click|composition(?:end|start|update)|dblclick|error|focus(?:in|out)?|key(?:down|up)|load|mouse(?:down|enter|leave|move|out|over|up)|reset|resize|scroll|select|slotchange|submit|unload|wheel)/.source,"javascript")),r.languages.js=r.languages.javascript,(function(){if(typeof r=="undefined"||typeof document=="undefined")return;Element.prototype.matches||(Element.prototype.matches=Element.prototype.msMatchesSelector||Element.prototype.webkitMatchesSelector);var d="Loading…",p=function(D,E){return"✖ Error "+D+" while fetching file: "+E},f="✖ Error: File does not exist or is empty",v={js:"javascript",py:"python",rb:"ruby",ps1:"powershell",psm1:"powershell",sh:"bash",bat:"batch",h:"c",tex:"latex"},x="data-src-status",b="loading",g="loaded",y="failed",j="pre[data-src]:not(["+x+'="'+g+'"]):not(['+x+'="'+b+'"])';function k(D,E,T){var C=new XMLHttpRequest;C.open("GET",D,!0),C.onreadystatechange=function(){C.readyState==4&&(C.status<400&&C.responseText?E(C.responseText):C.status>=400?T(p(C.status,C.statusText)):T(f))},C.send(null)}function A(D){var E=/^\s*(\d+)\s*(?:(,)\s*(?:(\d+)\s*)?)?$/.exec(D||"");if(E){var T=Number(E[1]),C=E[2],_=E[3];return C?_?[T,Number(_)]:[T,void 0]:[T,T]}}r.hooks.add("before-highlightall",function(D){D.selector+=", "+j}),r.hooks.add("before-sanity-check",function(D){var E=D.element;if(E.matches(j)){D.code="",E.setAttribute(x,b);var T=E.appendChild(document.createElement("CODE"));T.textContent=d;var C=E.getAttribute("data-src"),_=D.language;if(_==="none"){var u=(/\.(\w+)$/.exec(C)||[,"none"])[1];_=v[u]||u}r.util.setLanguage(T,_),r.util.setLanguage(E,_);var S=r.plugins.autoloader;S&&S.loadLanguages(_),k(C,function(N){E.setAttribute(x,g);var z=A(E.getAttribute("data-range"));if(z){var V=N.split(/\r\n?|\n/g),O=z[0],Q=z[1]==null?V.length:z[1];O<0&&(O+=V.length),O=Math.max(0,Math.min(O-1,V.length)),Q<0&&(Q+=V.length),Q=Math.max(0,Math.min(Q,V.length)),N=V.slice(O,Q).join(`
397
+ `),E.hasAttribute("data-start")||E.setAttribute("data-start",String(O+1))}T.textContent=N,r.highlightElement(T)},function(N){E.setAttribute(x,y),T.textContent=N})}}),r.plugins.fileHighlight={highlight:function(E){for(var T=(E||document).querySelectorAll(j),C=0,_;_=T[C++];)r.highlightElement(_)}};var L=!1;r.fileHighlight=function(){L||(console.warn("Prism.fileHighlight is deprecated. Use `Prism.plugins.fileHighlight.highlight` instead."),L=!0),r.plugins.fileHighlight.highlight.apply(this,arguments)}})()})(ru)),ru.exports}var Vw=Iw();const to=Ao(Vw);Prism.languages.markup={comment:{pattern:/<!--(?:(?!<!--)[\s\S])*?-->/,greedy:!0},prolog:{pattern:/<\?[\s\S]+?\?>/,greedy:!0},doctype:{pattern:/<!DOCTYPE(?:[^>"'[\]]|"[^"]*"|'[^']*')+(?:\[(?:[^<"'\]]|"[^"]*"|'[^']*'|<(?!!--)|<!--(?:[^-]|-(?!->))*-->)*\]\s*)?>/i,greedy:!0,inside:{"internal-subset":{pattern:/(^[^\[]*\[)[\s\S]+(?=\]>$)/,lookbehind:!0,greedy:!0,inside:null},string:{pattern:/"[^"]*"|'[^']*'/,greedy:!0},punctuation:/^<!|>$|[[\]]/,"doctype-tag":/^DOCTYPE/i,name:/[^\s<>'"]+/}},cdata:{pattern:/<!\[CDATA\[[\s\S]*?\]\]>/i,greedy:!0},tag:{pattern:/<\/?(?!\d)[^\s>\/=$<%]+(?:\s(?:\s*[^\s>\/=]+(?:\s*=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+(?=[\s>]))|(?=[\s/>])))+)?\s*\/?>/,greedy:!0,inside:{tag:{pattern:/^<\/?[^\s>\/]+/,inside:{punctuation:/^<\/?/,namespace:/^[^\s>\/:]+:/}},"special-attr":[],"attr-value":{pattern:/=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+)/,inside:{punctuation:[{pattern:/^=/,alias:"attr-equals"},{pattern:/^(\s*)["']|["']$/,lookbehind:!0}]}},punctuation:/\/?>/,"attr-name":{pattern:/[^\s>\/]+/,inside:{namespace:/^[^\s>\/:]+:/}}}},entity:[{pattern:/&[\da-z]{1,8};/i,alias:"named-entity"},/&#x?[\da-f]{1,8};/i]};Prism.languages.markup.tag.inside["attr-value"].inside.entity=Prism.languages.markup.entity;Prism.languages.markup.doctype.inside["internal-subset"].inside=Prism.languages.markup;Prism.hooks.add("wrap",function(s){s.type==="entity"&&(s.attributes.title=s.content.replace(/&amp;/,"&"))});Object.defineProperty(Prism.languages.markup.tag,"addInlined",{value:function(c,r){var d={};d["language-"+r]={pattern:/(^<!\[CDATA\[)[\s\S]+?(?=\]\]>$)/i,lookbehind:!0,inside:Prism.languages[r]},d.cdata=/^<!\[CDATA\[|\]\]>$/i;var p={"included-cdata":{pattern:/<!\[CDATA\[[\s\S]*?\]\]>/i,inside:d}};p["language-"+r]={pattern:/[\s\S]+/,inside:Prism.languages[r]};var f={};f[c]={pattern:RegExp(/(<__[^>]*>)(?:<!\[CDATA\[(?:[^\]]|\](?!\]>))*\]\]>|(?!<!\[CDATA\[)[\s\S])*?(?=<\/__>)/.source.replace(/__/g,function(){return c}),"i"),lookbehind:!0,greedy:!0,inside:p},Prism.languages.insertBefore("markup","cdata",f)}});Object.defineProperty(Prism.languages.markup.tag,"addAttribute",{value:function(s,c){Prism.languages.markup.tag.inside["special-attr"].push({pattern:RegExp(/(^|["'\s])/.source+"(?:"+s+")"+/\s*=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+(?=[\s>]))/.source,"i"),lookbehind:!0,inside:{"attr-name":/^[^\s=]+/,"attr-value":{pattern:/=[\s\S]+/,inside:{value:{pattern:/(^=\s*(["']|(?!["'])))\S[\s\S]*(?=\2$)/,lookbehind:!0,alias:[c,"language-"+c],inside:Prism.languages[c]},punctuation:[{pattern:/^=/,alias:"attr-equals"},/"|'/]}}}})}});Prism.languages.html=Prism.languages.markup;Prism.languages.mathml=Prism.languages.markup;Prism.languages.svg=Prism.languages.markup;Prism.languages.xml=Prism.languages.extend("markup",{});Prism.languages.ssml=Prism.languages.xml;Prism.languages.atom=Prism.languages.xml;Prism.languages.rss=Prism.languages.xml;Prism.languages.clike={comment:[{pattern:/(^|[^\\])\/\*[\s\S]*?(?:\*\/|$)/,lookbehind:!0,greedy:!0},{pattern:/(^|[^\\:])\/\/.*/,lookbehind:!0,greedy:!0}],string:{pattern:/(["'])(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,greedy:!0},"class-name":{pattern:/(\b(?:class|extends|implements|instanceof|interface|new|trait)\s+|\bcatch\s+\()[\w.\\]+/i,lookbehind:!0,inside:{punctuation:/[.\\]/}},keyword:/\b(?:break|catch|continue|do|else|finally|for|function|if|in|instanceof|new|null|return|throw|try|while)\b/,boolean:/\b(?:false|true)\b/,function:/\b\w+(?=\()/,number:/\b0x[\da-f]+\b|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:e[+-]?\d+)?/i,operator:/[<>]=?|[!=]=?=?|--?|\+\+?|&&?|\|\|?|[?*/~^%]/,punctuation:/[{}[\];(),.:]/};Prism.languages.javascript=Prism.languages.extend("clike",{"class-name":[Prism.languages.clike["class-name"],{pattern:/(^|[^$\w\xA0-\uFFFF])(?!\s)[_$A-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\.(?:constructor|prototype))/,lookbehind:!0}],keyword:[{pattern:/((?:^|\})\s*)catch\b/,lookbehind:!0},{pattern:/(^|[^.]|\.\.\.\s*)\b(?:as|assert(?=\s*\{)|async(?=\s*(?:function\b|\(|[$\w\xA0-\uFFFF]|$))|await|break|case|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally(?=\s*(?:\{|$))|for|from(?=\s*(?:['"]|$))|function|(?:get|set)(?=\s*(?:[#\[$\w\xA0-\uFFFF]|$))|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)\b/,lookbehind:!0}],function:/#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*(?:\.\s*(?:apply|bind|call)\s*)?\()/,number:{pattern:RegExp(/(^|[^\w$])/.source+"(?:"+(/NaN|Infinity/.source+"|"+/0[bB][01]+(?:_[01]+)*n?/.source+"|"+/0[oO][0-7]+(?:_[0-7]+)*n?/.source+"|"+/0[xX][\dA-Fa-f]+(?:_[\dA-Fa-f]+)*n?/.source+"|"+/\d+(?:_\d+)*n/.source+"|"+/(?:\d+(?:_\d+)*(?:\.(?:\d+(?:_\d+)*)?)?|\.\d+(?:_\d+)*)(?:[Ee][+-]?\d+(?:_\d+)*)?/.source)+")"+/(?![\w$])/.source),lookbehind:!0},operator:/--|\+\+|\*\*=?|=>|&&=?|\|\|=?|[!=]==|<<=?|>>>?=?|[-+*/%&|^!=<>]=?|\.{3}|\?\?=?|\?\.?|[~:]/});Prism.languages.javascript["class-name"][0].pattern=/(\b(?:class|extends|implements|instanceof|interface|new)\s+)[\w.\\]+/;Prism.languages.insertBefore("javascript","keyword",{regex:{pattern:RegExp(/((?:^|[^$\w\xA0-\uFFFF."'\])\s]|\b(?:return|yield))\s*)/.source+/\//.source+"(?:"+/(?:\[(?:[^\]\\\r\n]|\\.)*\]|\\.|[^/\\\[\r\n])+\/[dgimyus]{0,7}/.source+"|"+/(?:\[(?:[^[\]\\\r\n]|\\.|\[(?:[^[\]\\\r\n]|\\.|\[(?:[^[\]\\\r\n]|\\.)*\])*\])*\]|\\.|[^/\\\[\r\n])+\/[dgimyus]{0,7}v[dgimyus]{0,7}/.source+")"+/(?=(?:\s|\/\*(?:[^*]|\*(?!\/))*\*\/)*(?:$|[\r\n,.;:})\]]|\/\/))/.source),lookbehind:!0,greedy:!0,inside:{"regex-source":{pattern:/^(\/)[\s\S]+(?=\/[a-z]*$)/,lookbehind:!0,alias:"language-regex",inside:Prism.languages.regex},"regex-delimiter":/^\/|\/$/,"regex-flags":/^[a-z]+$/}},"function-variable":{pattern:/#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*[=:]\s*(?:async\s*)?(?:\bfunction\b|(?:\((?:[^()]|\([^()]*\))*\)|(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*)\s*=>))/,alias:"function"},parameter:[{pattern:/(function(?:\s+(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*)?\s*\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\))/,lookbehind:!0,inside:Prism.languages.javascript},{pattern:/(^|[^$\w\xA0-\uFFFF])(?!\s)[_$a-z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*=>)/i,lookbehind:!0,inside:Prism.languages.javascript},{pattern:/(\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\)\s*=>)/,lookbehind:!0,inside:Prism.languages.javascript},{pattern:/((?:\b|\s|^)(?!(?:as|async|await|break|case|catch|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally|for|from|function|get|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|set|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)(?![$\w\xA0-\uFFFF]))(?:(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*\s*)\(\s*|\]\s*\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\)\s*\{)/,lookbehind:!0,inside:Prism.languages.javascript}],constant:/\b[A-Z](?:[A-Z_]|\dx?)*\b/});Prism.languages.insertBefore("javascript","string",{hashbang:{pattern:/^#!.*/,greedy:!0,alias:"comment"},"template-string":{pattern:/`(?:\\[\s\S]|\$\{(?:[^{}]|\{(?:[^{}]|\{[^}]*\})*\})+\}|(?!\$\{)[^\\`])*`/,greedy:!0,inside:{"template-punctuation":{pattern:/^`|`$/,alias:"string"},interpolation:{pattern:/((?:^|[^\\])(?:\\{2})*)\$\{(?:[^{}]|\{(?:[^{}]|\{[^}]*\})*\})+\}/,lookbehind:!0,inside:{"interpolation-punctuation":{pattern:/^\$\{|\}$/,alias:"punctuation"},rest:Prism.languages.javascript}},string:/[\s\S]+/}},"string-property":{pattern:/((?:^|[,{])[ \t]*)(["'])(?:\\(?:\r\n|[\s\S])|(?!\2)[^\\\r\n])*\2(?=\s*:)/m,lookbehind:!0,greedy:!0,alias:"property"}});Prism.languages.insertBefore("javascript","operator",{"literal-property":{pattern:/((?:^|[,{])[ \t]*)(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*:)/m,lookbehind:!0,alias:"property"}});Prism.languages.markup&&(Prism.languages.markup.tag.addInlined("script","javascript"),Prism.languages.markup.tag.addAttribute(/on(?:abort|blur|change|click|composition(?:end|start|update)|dblclick|error|focus(?:in|out)?|key(?:down|up)|load|mouse(?:down|enter|leave|move|out|over|up)|reset|resize|scroll|select|slotchange|submit|unload|wheel)/.source,"javascript"));Prism.languages.js=Prism.languages.javascript;(function(s){var c=s.util.clone(s.languages.javascript),r=/(?:\s|\/\/.*(?!.)|\/\*(?:[^*]|\*(?!\/))\*\/)/.source,d=/(?:\{(?:\{(?:\{[^{}]*\}|[^{}])*\}|[^{}])*\})/.source,p=/(?:\{<S>*\.{3}(?:[^{}]|<BRACES>)*\})/.source;function f(b,g){return b=b.replace(/<S>/g,function(){return r}).replace(/<BRACES>/g,function(){return d}).replace(/<SPREAD>/g,function(){return p}),RegExp(b,g)}p=f(p).source,s.languages.jsx=s.languages.extend("markup",c),s.languages.jsx.tag.pattern=f(/<\/?(?:[\w.:-]+(?:<S>+(?:[\w.:$-]+(?:=(?:"(?:\\[\s\S]|[^\\"])*"|'(?:\\[\s\S]|[^\\'])*'|[^\s{'"/>=]+|<BRACES>))?|<SPREAD>))*<S>*\/?)?>/.source),s.languages.jsx.tag.inside.tag.pattern=/^<\/?[^\s>\/]*/,s.languages.jsx.tag.inside["attr-value"].pattern=/=(?!\{)(?:"(?:\\[\s\S]|[^\\"])*"|'(?:\\[\s\S]|[^\\'])*'|[^\s'">]+)/,s.languages.jsx.tag.inside.tag.inside["class-name"]=/^[A-Z]\w*(?:\.[A-Z]\w*)*$/,s.languages.jsx.tag.inside.comment=c.comment,s.languages.insertBefore("inside","attr-name",{spread:{pattern:f(/<SPREAD>/.source),inside:s.languages.jsx}},s.languages.jsx.tag),s.languages.insertBefore("inside","special-attr",{script:{pattern:f(/=<BRACES>/.source),alias:"language-javascript",inside:{"script-punctuation":{pattern:/^=(?=\{)/,alias:"punctuation"},rest:s.languages.jsx}}},s.languages.jsx.tag);var v=function(b){return b?typeof b=="string"?b:typeof b.content=="string"?b.content:b.content.map(v).join(""):""},x=function(b){for(var g=[],y=0;y<b.length;y++){var j=b[y],k=!1;if(typeof j!="string"&&(j.type==="tag"&&j.content[0]&&j.content[0].type==="tag"?j.content[0].content[0].content==="</"?g.length>0&&g[g.length-1].tagName===v(j.content[0].content[1])&&g.pop():j.content[j.content.length-1].content==="/>"||g.push({tagName:v(j.content[0].content[1]),openedBraces:0}):g.length>0&&j.type==="punctuation"&&j.content==="{"?g[g.length-1].openedBraces++:g.length>0&&g[g.length-1].openedBraces>0&&j.type==="punctuation"&&j.content==="}"?g[g.length-1].openedBraces--:k=!0),(k||typeof j=="string")&&g.length>0&&g[g.length-1].openedBraces===0){var A=v(j);y<b.length-1&&(typeof b[y+1]=="string"||b[y+1].type==="plain-text")&&(A+=v(b[y+1]),b.splice(y+1,1)),y>0&&(typeof b[y-1]=="string"||b[y-1].type==="plain-text")&&(A=v(b[y-1])+A,b.splice(y-1,1),y--),b[y]=new s.Token("plain-text",A,null,A)}j.content&&typeof j.content!="string"&&x(j.content)}};s.hooks.add("after-tokenize",function(b){b.language!=="jsx"&&b.language!=="tsx"||x(b.tokens)})})(Prism);var dv={},uv;function Fw(){return uv||(uv=1,(function(s){s.languages.typescript=s.languages.extend("javascript",{"class-name":{pattern:/(\b(?:class|extends|implements|instanceof|interface|new|type)\s+)(?!keyof\b)(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?:\s*<(?:[^<>]|<(?:[^<>]|<[^<>]*>)*>)*>)?/,lookbehind:!0,greedy:!0,inside:null},builtin:/\b(?:Array|Function|Promise|any|boolean|console|never|number|string|symbol|unknown)\b/}),s.languages.typescript.keyword.push(/\b(?:abstract|declare|is|keyof|readonly|require)\b/,/\b(?:asserts|infer|interface|module|namespace|type)\b(?=\s*(?:[{_$a-zA-Z\xA0-\uFFFF]|$))/,/\btype\b(?=\s*(?:[\{*]|$))/),delete s.languages.typescript.parameter,delete s.languages.typescript["literal-property"];var c=s.languages.extend("typescript",{});delete c["class-name"],s.languages.typescript["class-name"].inside=c,s.languages.insertBefore("typescript","function",{decorator:{pattern:/@[$\w\xA0-\uFFFF]+/,inside:{at:{pattern:/^@/,alias:"operator"},function:/^[\s\S]+/}},"generic-function":{pattern:/#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*\s*<(?:[^<>]|<(?:[^<>]|<[^<>]*>)*>)*>(?=\s*\()/,greedy:!0,inside:{function:/^#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*/,generic:{pattern:/<[\s\S]+/,alias:"class-name",inside:c}}}}),s.languages.ts=s.languages.typescript})(Prism)),dv}Fw();(function(s){var c=s.util.clone(s.languages.typescript);s.languages.tsx=s.languages.extend("jsx",c),delete s.languages.tsx.parameter,delete s.languages.tsx["literal-property"];var r=s.languages.tsx.tag;r.pattern=RegExp(/(^|[^\w$]|(?=<\/))/.source+"(?:"+r.pattern.source+")",r.pattern.flags),r.lookbehind=!0})(Prism);(function(s){var c="\\b(?:BASH|BASHOPTS|BASH_ALIASES|BASH_ARGC|BASH_ARGV|BASH_CMDS|BASH_COMPLETION_COMPAT_DIR|BASH_LINENO|BASH_REMATCH|BASH_SOURCE|BASH_VERSINFO|BASH_VERSION|COLORTERM|COLUMNS|COMP_WORDBREAKS|DBUS_SESSION_BUS_ADDRESS|DEFAULTS_PATH|DESKTOP_SESSION|DIRSTACK|DISPLAY|EUID|GDMSESSION|GDM_LANG|GNOME_KEYRING_CONTROL|GNOME_KEYRING_PID|GPG_AGENT_INFO|GROUPS|HISTCONTROL|HISTFILE|HISTFILESIZE|HISTSIZE|HOME|HOSTNAME|HOSTTYPE|IFS|INSTANCE|JOB|LANG|LANGUAGE|LC_ADDRESS|LC_ALL|LC_IDENTIFICATION|LC_MEASUREMENT|LC_MONETARY|LC_NAME|LC_NUMERIC|LC_PAPER|LC_TELEPHONE|LC_TIME|LESSCLOSE|LESSOPEN|LINES|LOGNAME|LS_COLORS|MACHTYPE|MAILCHECK|MANDATORY_PATH|NO_AT_BRIDGE|OLDPWD|OPTERR|OPTIND|ORBIT_SOCKETDIR|OSTYPE|PAPERSIZE|PATH|PIPESTATUS|PPID|PS1|PS2|PS3|PS4|PWD|RANDOM|REPLY|SECONDS|SELINUX_INIT|SESSION|SESSIONTYPE|SESSION_MANAGER|SHELL|SHELLOPTS|SHLVL|SSH_AUTH_SOCK|TERM|UID|UPSTART_EVENTS|UPSTART_INSTANCE|UPSTART_JOB|UPSTART_SESSION|USER|WINDOWID|XAUTHORITY|XDG_CONFIG_DIRS|XDG_CURRENT_DESKTOP|XDG_DATA_DIRS|XDG_GREETER_DATA_DIR|XDG_MENU_PREFIX|XDG_RUNTIME_DIR|XDG_SEAT|XDG_SEAT_PATH|XDG_SESSION_DESKTOP|XDG_SESSION_ID|XDG_SESSION_PATH|XDG_SESSION_TYPE|XDG_VTNR|XMODIFIERS)\\b",r={pattern:/(^(["']?)\w+\2)[ \t]+\S.*/,lookbehind:!0,alias:"punctuation",inside:null},d={bash:r,environment:{pattern:RegExp("\\$"+c),alias:"constant"},variable:[{pattern:/\$?\(\([\s\S]+?\)\)/,greedy:!0,inside:{variable:[{pattern:/(^\$\(\([\s\S]+)\)\)/,lookbehind:!0},/^\$\(\(/],number:/\b0x[\dA-Fa-f]+\b|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:[Ee]-?\d+)?/,operator:/--|\+\+|\*\*=?|<<=?|>>=?|&&|\|\||[=!+\-*/%<>^&|]=?|[?~:]/,punctuation:/\(\(?|\)\)?|,|;/}},{pattern:/\$\((?:\([^)]+\)|[^()])+\)|`[^`]+`/,greedy:!0,inside:{variable:/^\$\(|^`|\)$|`$/}},{pattern:/\$\{[^}]+\}/,greedy:!0,inside:{operator:/:[-=?+]?|[!\/]|##?|%%?|\^\^?|,,?/,punctuation:/[\[\]]/,environment:{pattern:RegExp("(\\{)"+c),lookbehind:!0,alias:"constant"}}},/\$(?:\w+|[#?*!@$])/],entity:/\\(?:[abceEfnrtv\\"]|O?[0-7]{1,3}|U[0-9a-fA-F]{8}|u[0-9a-fA-F]{4}|x[0-9a-fA-F]{1,2})/};s.languages.bash={shebang:{pattern:/^#!\s*\/.*/,alias:"important"},comment:{pattern:/(^|[^"{\\$])#.*/,lookbehind:!0},"function-name":[{pattern:/(\bfunction\s+)[\w-]+(?=(?:\s*\(?:\s*\))?\s*\{)/,lookbehind:!0,alias:"function"},{pattern:/\b[\w-]+(?=\s*\(\s*\)\s*\{)/,alias:"function"}],"for-or-select":{pattern:/(\b(?:for|select)\s+)\w+(?=\s+in\s)/,alias:"variable",lookbehind:!0},"assign-left":{pattern:/(^|[\s;|&]|[<>]\()\w+(?:\.\w+)*(?=\+?=)/,inside:{environment:{pattern:RegExp("(^|[\\s;|&]|[<>]\\()"+c),lookbehind:!0,alias:"constant"}},alias:"variable",lookbehind:!0},parameter:{pattern:/(^|\s)-{1,2}(?:\w+:[+-]?)?\w+(?:\.\w+)*(?=[=\s]|$)/,alias:"variable",lookbehind:!0},string:[{pattern:/((?:^|[^<])<<-?\s*)(\w+)\s[\s\S]*?(?:\r?\n|\r)\2/,lookbehind:!0,greedy:!0,inside:d},{pattern:/((?:^|[^<])<<-?\s*)(["'])(\w+)\2\s[\s\S]*?(?:\r?\n|\r)\3/,lookbehind:!0,greedy:!0,inside:{bash:r}},{pattern:/(^|[^\\](?:\\\\)*)"(?:\\[\s\S]|\$\([^)]+\)|\$(?!\()|`[^`]+`|[^"\\`$])*"/,lookbehind:!0,greedy:!0,inside:d},{pattern:/(^|[^$\\])'[^']*'/,lookbehind:!0,greedy:!0},{pattern:/\$'(?:[^'\\]|\\[\s\S])*'/,greedy:!0,inside:{entity:d.entity}}],environment:{pattern:RegExp("\\$?"+c),alias:"constant"},variable:d.variable,function:{pattern:/(^|[\s;|&]|[<>]\()(?:add|apropos|apt|apt-cache|apt-get|aptitude|aspell|automysqlbackup|awk|basename|bash|bc|bconsole|bg|bzip2|cal|cargo|cat|cfdisk|chgrp|chkconfig|chmod|chown|chroot|cksum|clear|cmp|column|comm|composer|cp|cron|crontab|csplit|curl|cut|date|dc|dd|ddrescue|debootstrap|df|diff|diff3|dig|dir|dircolors|dirname|dirs|dmesg|docker|docker-compose|du|egrep|eject|env|ethtool|expand|expect|expr|fdformat|fdisk|fg|fgrep|file|find|fmt|fold|format|free|fsck|ftp|fuser|gawk|git|gparted|grep|groupadd|groupdel|groupmod|groups|grub-mkconfig|gzip|halt|head|hg|history|host|hostname|htop|iconv|id|ifconfig|ifdown|ifup|import|install|ip|java|jobs|join|kill|killall|less|link|ln|locate|logname|logrotate|look|lpc|lpr|lprint|lprintd|lprintq|lprm|ls|lsof|lynx|make|man|mc|mdadm|mkconfig|mkdir|mke2fs|mkfifo|mkfs|mkisofs|mknod|mkswap|mmv|more|most|mount|mtools|mtr|mutt|mv|nano|nc|netstat|nice|nl|node|nohup|notify-send|npm|nslookup|op|open|parted|passwd|paste|pathchk|ping|pkill|pnpm|podman|podman-compose|popd|pr|printcap|printenv|ps|pushd|pv|quota|quotacheck|quotactl|ram|rar|rcp|reboot|remsync|rename|renice|rev|rm|rmdir|rpm|rsync|scp|screen|sdiff|sed|sendmail|seq|service|sftp|sh|shellcheck|shuf|shutdown|sleep|slocate|sort|split|ssh|stat|strace|su|sudo|sum|suspend|swapon|sync|sysctl|tac|tail|tar|tee|time|timeout|top|touch|tr|traceroute|tsort|tty|umount|uname|unexpand|uniq|units|unrar|unshar|unzip|update-grub|uptime|useradd|userdel|usermod|users|uudecode|uuencode|v|vcpkg|vdir|vi|vim|virsh|vmstat|wait|watch|wc|wget|whereis|which|who|whoami|write|xargs|xdg-open|yarn|yes|zenity|zip|zsh|zypper)(?=$|[)\s;|&])/,lookbehind:!0},keyword:{pattern:/(^|[\s;|&]|[<>]\()(?:case|do|done|elif|else|esac|fi|for|function|if|in|select|then|until|while)(?=$|[)\s;|&])/,lookbehind:!0},builtin:{pattern:/(^|[\s;|&]|[<>]\()(?:\.|:|alias|bind|break|builtin|caller|cd|command|continue|declare|echo|enable|eval|exec|exit|export|getopts|hash|help|let|local|logout|mapfile|printf|pwd|read|readarray|readonly|return|set|shift|shopt|source|test|times|trap|type|typeset|ulimit|umask|unalias|unset)(?=$|[)\s;|&])/,lookbehind:!0,alias:"class-name"},boolean:{pattern:/(^|[\s;|&]|[<>]\()(?:false|true)(?=$|[)\s;|&])/,lookbehind:!0},"file-descriptor":{pattern:/\B&\d\b/,alias:"important"},operator:{pattern:/\d?<>|>\||\+=|=[=~]?|!=?|<<[<-]?|[&\d]?>>|\d[<>]&?|[<>][&=]?|&[>&]?|\|[&|]?/,inside:{"file-descriptor":{pattern:/^\d/,alias:"important"}}},punctuation:/\$?\(\(?|\)\)?|\.\.|[{}[\];\\]/,number:{pattern:/(^|\s)(?:[1-9]\d*|0)(?:[.,]\d+)?\b/,lookbehind:!0}},r.inside=s.languages.bash;for(var p=["comment","function-name","for-or-select","assign-left","parameter","string","environment","function","keyword","builtin","boolean","file-descriptor","operator","punctuation","number"],f=d.variable[1].inside,v=0;v<p.length;v++)f[p[v]]=s.languages.bash[p[v]];s.languages.sh=s.languages.bash,s.languages.shell=s.languages.bash})(Prism);Prism.languages.json={property:{pattern:/(^|[^\\])"(?:\\.|[^\\"\r\n])*"(?=\s*:)/,lookbehind:!0,greedy:!0},string:{pattern:/(^|[^\\])"(?:\\.|[^\\"\r\n])*"(?!\s*:)/,lookbehind:!0,greedy:!0},comment:{pattern:/\/\/.*|\/\*[\s\S]*?(?:\*\/|$)/,greedy:!0},number:/-?\b\d+(?:\.\d+)?(?:e[+-]?\d+)?\b/i,punctuation:/[{}[\],]/,operator:/:/,boolean:/\b(?:false|true)\b/,null:{pattern:/\bnull\b/,alias:"keyword"}};Prism.languages.webmanifest=Prism.languages.json;function Jg({code:s,language:c="tsx",copyLabel:r,copiedLabel:d,onCopy:p}){const[f,v]=m.useState(!1),x=m.useRef(null),b=m.useMemo(()=>{var j,k;const y=(k=(j=to.languages[c])!=null?j:to.languages.tsx)!=null?k:to.languages.typescript;return y?to.highlight(s,y,c):s},[s,c]);m.useEffect(()=>()=>{x.current&&clearTimeout(x.current)},[]);function g(){return Xd(this,null,function*(){(yield p(s))&&(v(!0),x.current&&clearTimeout(x.current),x.current=setTimeout(()=>{v(!1),x.current=null},1600))})}return a.jsxs("div",{className:"vx-code-block-wrap","data-language":c,children:[a.jsxs(ue,{type:"button",size:"sm",variant:f?"solid":"secondary",className:f?"vx-code-block__copy vx-code-block__copy--copied":"vx-code-block__copy",onClick:()=>void g(),children:[f?a.jsx(Ka,{size:14}):a.jsx(Jy,{size:14}),f?d:r]}),a.jsx("pre",{className:"vx-code-block",children:a.jsx("code",{className:`vx-code-block__code language-${c}`,dangerouslySetInnerHTML:{__html:b}})})]})}const Gw=Object.entries(si).map(([s,c])=>({value:s,label:c.label}));function ju({variant:s="inline",className:c}){const{locale:r,setLocale:d}=Mo();return a.jsx(wt,{options:Gw,value:r,onChange:p=>{p&&d(p)},placeholder:"Language",searchable:!1,clearable:!1,className:["vx-lang-switcher",s==="sidebar"&&"vx-lang-switcher--sidebar",c].filter(Boolean).join(" ").trim(),mobileSheet:null})}const Yw={none:"0",sm:"var(--vx-radius-sm)",md:"var(--vx-radius)",lg:"var(--vx-radius-lg)",full:"9999px"};function lu(L){var D=L,{src:s,alt:c="",width:r,height:d,radius:p="md",fit:f="cover",lazy:v=!0,placeholder:x,fallback:b,preview:g=!1,caption:y,className:j,style:k}=D,A=be(D,["src","alt","width","height","radius","fit","lazy","placeholder","fallback","preview","caption","className","style"]);const[E,T]=m.useState("idle"),[C,_]=m.useState(!1),u=m.useRef(null),S=m.useRef(null);m.useEffect(()=>{if(!v){T("loading");return}const F=S.current;if(!F)return;const ie=new IntersectionObserver(([fe])=>{fe.isIntersecting&&(T("loading"),ie.disconnect())},{rootMargin:"200px"});return ie.observe(F),()=>ie.disconnect()},[v,s]);const N=m.useCallback(()=>T("loaded"),[]),z=m.useCallback(()=>T("error"),[]),V=m.useCallback(()=>{g&&E==="loaded"&&_(!0)},[g,E]),O=E==="idle"||E==="loading",Q=E==="error",U=we(le({},k),{width:typeof r=="number"?`${r}px`:r,height:typeof d=="number"?`${d}px`:d,"--vx-image-radius":Yw[p]});return a.jsxs(a.Fragment,{children:[a.jsx("div",{ref:S,className:K("vx-image",g&&E==="loaded"&&"vx-image--preview",j),style:U,children:Q&&b?a.jsx("div",{className:"vx-image__fallback",children:b}):a.jsxs(a.Fragment,{children:[O&&a.jsx("div",{className:"vx-image__placeholder",children:x!=null?x:a.jsxs("svg",{viewBox:"0 0 24 24",fill:"none",className:"vx-image__placeholder-icon","aria-hidden":"true",children:[a.jsx("rect",{x:"3",y:"3",width:"18",height:"18",rx:"3",stroke:"currentColor",strokeWidth:"1.5"}),a.jsx("circle",{cx:"8.5",cy:"8.5",r:"2",stroke:"currentColor",strokeWidth:"1.5"}),a.jsx("path",{d:"M3 16l5-5 3 3 4-4 6 6",stroke:"currentColor",strokeWidth:"1.5",strokeLinejoin:"round"})]})}),E!=="idle"&&a.jsx("img",le({ref:u,src:s,alt:c,className:"vx-image__img",style:{objectFit:f},onLoad:N,onError:z,onClick:V},A)),g&&E==="loaded"&&a.jsx("div",{className:"vx-image__preview-hint","aria-hidden":"true",children:a.jsx(s1,{size:14})})]})}),y&&!Q&&a.jsx("p",{className:"vx-image__caption",children:y}),C&&ca.createPortal(a.jsx(Xw,{src:s,alt:c,onClose:()=>_(!1)}),document.body)]})}function Xw({src:s,alt:c,onClose:r}){Iu(!0),m.useEffect(()=>{const p=f=>{f.key==="Escape"&&r()};return document.addEventListener("keydown",p),()=>document.removeEventListener("keydown",p)},[r]);const d=p=>{p.target===p.currentTarget&&r()};return a.jsxs("div",{className:"vx-image-lightbox",onClick:d,children:[a.jsx("img",{src:s,alt:c,className:"vx-image-lightbox__img"}),a.jsx("button",{type:"button",className:"vx-image-lightbox__close",onClick:r,"aria-label":"关闭预览",children:a.jsx(Ha,{size:20})})]})}function pv(s,c){return c==="numeric"?/^\d$/.test(s):/^[a-zA-Z0-9]$/.test(s)}function ou({length:s=6,value:c,defaultValue:r="",onChange:d,onComplete:p,type:f="numeric",size:v="md",placeholder:x="○",disabled:b=!1,error:g,label:y,hint:j,mask:k=!1,autoFocus:A=!1,"aria-label":L,className:D}){var U;const E=c!==void 0,[T,C]=m.useState(r.padEnd(s,"").slice(0,s)),_=E?c.padEnd(s,"").slice(0,s).split(""):T.padEnd(s,"").slice(0,s).split(""),u=m.useRef([]),S=m.useId(),N=m.useCallback(F=>{E||C(F),d==null||d(F),F.length===s&&!F.includes("")&&(p==null||p(F))},[E,s,d,p]),z=m.useCallback(F=>{const ie=u.current[F];ie&&(ie.focus(),ie.select())},[]),V=m.useCallback((F,ie)=>{if(!pv(ie,f))return;const Z=_.map((P,$)=>$===F?ie:P).join("");N(Z),F<s-1&&z(F+1)},[_,f,s,N,z]),O=m.useCallback((F,ie)=>{if(ie.key==="Backspace"){ie.preventDefault();const Z=_.map((P,$)=>$===F?"":P).join("");N(Z),F>0&&z(F-1)}else ie.key==="ArrowLeft"&&F>0?(ie.preventDefault(),z(F-1)):ie.key==="ArrowRight"&&F<s-1&&(ie.preventDefault(),z(F+1))},[_,s,N,z]),Q=m.useCallback(F=>{F.preventDefault();const fe=F.clipboardData.getData("text").slice(0,s).split("").filter(re=>pv(re,f)).join("");if(!fe)return;const Z=_.map((re,ge)=>ge<fe.length?fe[ge]:re),P=Z.join("");N(P);const $=Z.findIndex(re=>!re||re===" ");z($===-1?Math.min(fe.length,s-1):$)},[_,s,f,N,z]);return a.jsxs("div",{className:K("vx-pin-input",D),children:[y?a.jsx("label",{className:"vx-field-group__label",htmlFor:`${S}-0`,children:y}):null,a.jsx("div",{className:K("vx-pin-input__group",`vx-pin-input--${v}`,g&&"vx-pin-input--invalid",b&&"vx-pin-input--disabled"),role:"group","aria-label":(U=L!=null?L:y)!=null?U:"Pin input",children:Array.from({length:s},(F,ie)=>a.jsx("input",{id:`${S}-${ie}`,ref:fe=>{u.current[ie]=fe},type:k?"password":f==="numeric"?"tel":"text",inputMode:f==="numeric"?"numeric":"text",pattern:f==="numeric"?"[0-9]":void 0,maxLength:1,value:_[ie]&&_[ie]!==" "?_[ie]:"",placeholder:x,disabled:b,autoComplete:"one-time-code","aria-label":`Digit ${ie+1}`,className:"vx-pin-input__field",autoFocus:A&&ie===0,onChange:fe=>{const Z=fe.target.value;Z&&V(ie,Z.slice(-1))},onKeyDown:fe=>O(ie,fe),onPaste:Q,onFocus:fe=>fe.target.select()},ie))}),g?a.jsx("span",{className:"vx-field-group__error",children:g}):null,!g&&j?a.jsx("span",{className:"vx-field-group__hint",children:j}):null]})}const $w={sm:{py:"6px",px:"10px",fs:"12px"},md:{py:"10px",px:"14px",fs:"13px"},lg:{py:"14px",px:"18px",fs:"14px"}};function Kw(g){var y=g,{items:s,layout:c="horizontal",column:r,size:d="md",bordered:p=!0,title:f,extra:v,className:x}=y,b=be(y,["items","layout","column","size","bordered","title","extra","className"]);var _;const j=r!=null?r:c==="vertical"?1:3,k=$w[d],A=[];let L=[],D=0;for(const u of s){const S=Math.min((_=u.span)!=null?_:1,j);D+S>j?(L.length>0&&A.push(L),L=[u],D=S):(L.push(u),D+=S)}L.length>0&&A.push(L);const E={padding:`${k.py} ${k.px}`,fontSize:k.fs},T=()=>a.jsx("table",{className:"vx-descriptions__table",children:a.jsx("tbody",{children:A.map((u,S)=>a.jsx("tr",{className:"vx-descriptions__row",children:u.map((N,z)=>{var O;const V=(O=N.span)!=null?O:1;return a.jsxs("td",{colSpan:V,className:"vx-descriptions__cell",children:[a.jsx("dt",{className:"vx-descriptions__label",style:E,children:N.label}),a.jsx("dd",{className:"vx-descriptions__value",style:E,children:N.children})]},z)})},S))})}),C=()=>a.jsx("div",{className:"vx-descriptions__vertical",children:A.map((u,S)=>a.jsx("div",{className:"vx-descriptions__vrow",children:u.map((N,z)=>{var O;const V=(O=N.span)!=null?O:1;return a.jsxs("div",{className:"vx-descriptions__vcell",style:{gridColumn:V>1?`span ${V}`:void 0},children:[a.jsx("dt",{className:"vx-descriptions__label",style:E,children:N.label}),a.jsx("dd",{className:"vx-descriptions__value",style:E,children:N.children})]},z)})},S))});return a.jsxs("div",we(le({className:K("vx-descriptions",`vx-descriptions--${c}`,`vx-descriptions--${d}`,p&&"vx-descriptions--bordered",x),style:{"--vx-desc-cols":j}},b),{children:[(f||v)&&a.jsxs("div",{className:"vx-descriptions__header",children:[f&&a.jsx("h3",{className:"vx-descriptions__title",children:f}),v&&a.jsx("div",{className:"vx-descriptions__extra",children:v})]}),c==="horizontal"?T():C()]}))}const ex=m.createContext(null);let Qw=1;const Ww={info:a.jsx(Au,{size:16}),success:a.jsx(Do,{size:16}),warning:a.jsx(Ba,{size:16}),danger:a.jsx(Tv,{size:16})};function Zw({children:s,placement:c="top-right",maxCount:r=5}){const[d,p]=m.useState([]),f=m.useCallback(g=>{p(y=>y.filter(j=>j.id!==g))},[]),v=m.useCallback(()=>{p([])},[]),x=m.useCallback(g=>{const y=Qw+=1,j=we(le({tone:"info",duration:0},g),{id:y});return p(k=>{const A=[...k,j];return A.length>r?A.slice(A.length-r):A}),j.duration&&j.duration>0&&setTimeout(()=>f(y),j.duration),y},[r,f]),b=m.useMemo(()=>({push:x,dismiss:f,clear:v}),[x,f,v]);return a.jsxs(ex.Provider,{value:b,children:[s,d.length>0&&ca.createPortal(a.jsx("div",{className:K("vx-notification-stack",`vx-notification-stack--${c}`),role:"region","aria-label":"通知",children:d.map(g=>{var y,j;return a.jsxs("div",{className:K("vx-notification",`vx-notification--${(y=g.tone)!=null?y:"info"}`),role:"alert","aria-live":"polite",children:[a.jsx("div",{className:"vx-notification__icon","aria-hidden":"true",children:Ww[(j=g.tone)!=null?j:"info"]}),a.jsxs("div",{className:"vx-notification__body",children:[a.jsx("p",{className:"vx-notification__title",children:g.title}),g.description&&a.jsx("p",{className:"vx-notification__description",children:g.description}),g.action&&a.jsx("div",{className:"vx-notification__action",children:g.action})]}),a.jsx("button",{type:"button",className:"vx-notification__close","aria-label":"关闭通知",onClick:()=>f(g.id),children:a.jsx(Ha,{size:14})})]},g.id)})}),document.body)]})}function Jw(){const s=m.useContext(ex);if(!s)throw new Error("useNotification must be used within a NotificationProvider.");return s}const eS={success:{icon:a.jsx(Do,{size:56}),className:"vx-result--success"},error:{icon:a.jsx(Qy,{size:56}),className:"vx-result--error"},warning:{icon:a.jsx(Ba,{size:56}),className:"vx-result--warning"},info:{icon:a.jsx(Au,{size:56}),className:"vx-result--info"},forbidden:{icon:a.jsx(Uy,{size:56}),className:"vx-result--forbidden"},"not-found":{icon:a.jsx(B0,{size:56}),className:"vx-result--not-found"},"server-error":{icon:a.jsx(P0,{size:56}),className:"vx-result--server-error"}};function fv(b){var g=b,{status:s,title:c,description:r,icon:d,actions:p,extra:f,className:v}=g,x=be(g,["status","title","description","icon","actions","extra","className"]);const y=eS[s];return a.jsxs("div",we(le({className:K("vx-result",y.className,v),role:"status","aria-live":"polite"},x),{children:[a.jsx("div",{className:"vx-result__icon","aria-hidden":"true",children:d!=null?d:y.icon}),a.jsx("h2",{className:"vx-result__title",children:c}),r&&a.jsx("p",{className:"vx-result__description",children:r}),p&&a.jsx("div",{className:"vx-result__actions",children:p}),f&&a.jsx("div",{className:"vx-result__extra",children:f})]}))}function tS({pp:s,features:c,onLogin:r,onDocs:d,onPrivacy:p}){return a.jsxs("div",{className:"vxm-docs-home",children:[a.jsxs("div",{className:"vxm-docs-home__hero",children:[a.jsx("div",{className:"vxm-docs-home__hero-badge",children:a.jsx(He,{variant:"accent",children:s.heroTag})}),a.jsx("h1",{className:"vxm-docs-home__title",children:s.heroTitle}),a.jsx("p",{className:"vxm-docs-home__lead",children:s.heroLead}),a.jsxs("div",{className:"vxm-docs-home__actions",children:[a.jsx(ue,{shape:"pill",onClick:r,style:{flex:1,minHeight:48},children:s.heroCta}),a.jsx(ue,{variant:"secondary",shape:"pill",onClick:d,style:{flex:1,minHeight:48},children:s.heroCtaAlt})]})]}),a.jsxs("div",{className:"vxm-docs-home__bottom",children:[a.jsx("div",{className:"vxm-docs-home__chips",children:c.map(f=>{const v=f.icon;return a.jsxs("div",{className:"vxm-docs-home__chip",children:[a.jsx("div",{className:"vxm-docs-home__chip-icon",children:a.jsx(v,{size:16})}),a.jsxs("div",{className:"vxm-docs-home__chip-body",children:[a.jsx("span",{className:"vxm-docs-home__chip-label",children:f.title}),a.jsx("span",{className:"vxm-docs-home__chip-desc",children:f.description})]})]},f.key)})}),a.jsxs("div",{className:"vxm-docs-home__footer",children:[a.jsx("span",{className:"vxm-docs-home__footer-copy",children:s.footerCopy}),a.jsx("button",{type:"button",className:"vxm-docs-home__footer-link",onClick:p,children:s.footerPrivacy})]})]})]})}function mv({mode:s,t:c,onSwitchMode:r}){const[d,p]=m.useState(!1),f=c.publicPages,v=c.locale==="zh";return s==="login"?a.jsxs("div",{className:"vxm-auth-screen",children:[a.jsxs("div",{className:"vxm-auth-screen__body",children:[a.jsx("div",{className:"vxm-auth-screen__icon",children:a.jsx(co,{size:38})}),a.jsx("h1",{className:"vxm-auth-screen__title",children:f.loginCta}),a.jsxs("div",{className:"vxm-auth-screen__fields",children:[a.jsxs("div",{children:[a.jsx("span",{className:"vxm-auth-screen__label",children:f.loginEmail}),a.jsx(st,{type:"email",placeholder:f.loginEmailPlaceholder})]}),a.jsxs("div",{children:[a.jsx("span",{className:"vxm-auth-screen__label",children:f.loginPassword}),a.jsx(st,{type:"password",placeholder:f.loginPasswordPlaceholder})]}),a.jsx("p",{className:"vxm-auth-screen__forgot",children:a.jsx("button",{type:"button",className:"vxm-auth-screen__forgot-btn",children:v?"忘记密码?来这里找回":"Forgot password?"})})]})]}),a.jsxs("div",{className:"vxm-auth-screen__actions",children:[a.jsx(ue,{shape:"pill",style:{width:"100%",minHeight:52,fontSize:"1rem",fontWeight:600},children:f.loginCta}),a.jsxs("p",{className:"vxm-auth-screen__footer-link",children:[f.loginNoAccount," ",a.jsx("button",{type:"button",onClick:r,children:v?"点这里注册":f.loginRegister})]})]})]}):a.jsxs("div",{className:"vxm-auth-screen",children:[a.jsxs("div",{className:"vxm-auth-screen__body",children:[a.jsx("div",{className:"vxm-auth-screen__icon",children:a.jsx(co,{size:38})}),a.jsx("h1",{className:"vxm-auth-screen__title",children:f.registerCta}),a.jsxs("div",{className:"vxm-auth-screen__fields",children:[a.jsxs("div",{children:[a.jsx("span",{className:"vxm-auth-screen__label",children:f.registerName}),a.jsx(st,{placeholder:f.registerNamePlaceholder})]}),a.jsxs("div",{children:[a.jsx("span",{className:"vxm-auth-screen__label",children:f.registerEmail}),a.jsx(st,{type:"email",placeholder:f.registerEmailPlaceholder})]}),a.jsxs("div",{children:[a.jsx("span",{className:"vxm-auth-screen__label",children:f.registerPassword}),a.jsx(st,{type:"password",placeholder:f.registerPasswordPlaceholder})]}),a.jsx(Oa,{label:`${f.registerTermsAgree} ${f.registerTermsLink} ${f.registerTermsAnd} ${f.registerPrivacyLink}`,checked:d,onChange:x=>p(x.target.checked)})]})]}),a.jsxs("div",{className:"vxm-auth-screen__actions",children:[a.jsx(ue,{shape:"pill",style:{width:"100%",minHeight:52,fontSize:"1rem",fontWeight:600},children:f.registerCta}),a.jsxs("p",{className:"vxm-auth-screen__footer-link",children:[f.registerHasAccount," ",a.jsx("button",{type:"button",onClick:r,children:v?"点这里登录":f.registerLogin})]})]})]})}function aS({value:s,onChange:c,placeholder:r,ariaLabel:d}){const p=m.useRef(null);return m.useEffect(()=>{const f=setTimeout(()=>{var v;return(v=p.current)==null?void 0:v.focus()},80);return()=>clearTimeout(f)},[]),a.jsxs("div",{style:{display:"flex",alignItems:"center",gap:10,padding:"0 14px",height:44,borderRadius:"var(--vx-radius)",background:"var(--vx-bg-accent)"},children:[a.jsx(jn,{size:16,style:{color:"var(--vx-text-muted)",flexShrink:0}}),a.jsx("input",{ref:p,type:"search",value:s,onChange:f=>c(f.target.value),placeholder:r,"aria-label":d,autoComplete:"off",style:{flex:1,border:"none",background:"transparent",outline:"none",fontSize:15,color:"var(--vx-text)",minWidth:0}}),s&&a.jsx("button",{type:"button",onClick:()=>c(""),style:{border:"none",background:"none",padding:0,cursor:"pointer",color:"var(--vx-text-muted)",display:"flex",alignItems:"center",flexShrink:0},children:a.jsx(Ha,{size:16})})]})}function nS({searchQuery:s,setSearchQuery:c,filteredItems:r,onSelect:d,placeholder:p,ariaLabel:f}){const v=s.trim().toLowerCase();return a.jsxs("div",{children:[a.jsx("div",{style:{padding:"12px 16px 0"},children:a.jsx(aS,{value:s,onChange:c,placeholder:p,ariaLabel:f})}),a.jsx(Oi,{title:v?`${r.length} result${r.length!==1?"s":""}`:"All pages",style:{padding:"16px 16px 0"},children:r.length>0?a.jsx(Lr,{children:r.map(x=>a.jsx(La,{leading:x.icon,label:x.label,description:x.section,chevron:!0,onClick:()=>{d(x.key),c("")}},x.key))}):a.jsxs("div",{style:{padding:"32px 0",textAlign:"center",color:"var(--vx-text-muted)",fontSize:14},children:['No results for "',s,'"']})})]})}function iS({content:s,footerCopy:c}){return a.jsxs("div",{className:"vxm-legal-page",children:[a.jsxs("div",{className:"vxm-legal-page__hero",children:[a.jsx(He,{variant:"accent",children:s.badgeLabel}),a.jsx("h1",{className:"vxm-legal-page__title",children:s.title}),a.jsx("p",{className:"vxm-legal-page__lead",children:s.lead}),a.jsx("div",{className:"vxm-legal-page__meta",children:s.meta.map(r=>a.jsx("span",{className:"vx-version-pill vx-version-pill--token",children:r},r))})]}),a.jsx(Oi,{title:s.summaryTitle,children:a.jsx(Lr,{className:"vxm-legal-page__list",children:s.summaryItems.map(r=>a.jsx(La,{leading:a.jsx("span",{className:"vxm-legal-page__summary-icon",children:a.jsx(Ka,{size:16})}),label:r},r))})}),s.sections.map(r=>a.jsx(Oi,{title:r.title,children:a.jsx("div",{className:"vxm-legal-page__section-card",children:r.paragraphs.map(d=>a.jsx("p",{className:"vxm-legal-page__paragraph",children:d},d))})},r.title)),a.jsx("div",{className:"vxm-legal-page__footer",children:c})]})}function sS({activeDocument:s,preview:c,hasPreview:r,docHeaderRef:d}){return a.jsxs("div",{className:"vxm-docs-page",children:[a.jsxs("div",{ref:d,className:"vxm-docs-page__header",children:[a.jsx("span",{className:"vxm-docs-page__kicker",children:s.section}),a.jsx("h1",{className:"vxm-docs-page__title",children:s.title}),a.jsx("p",{className:"vxm-docs-page__lead",children:s.description})]}),r&&c&&a.jsxs("div",{className:"vxm-docs-page__section",children:[a.jsx("div",{className:"vxm-docs-page__section-title",children:"Preview"}),a.jsx("div",{className:"vxm-docs-page__preview",children:c})]}),a.jsxs("div",{className:"vxm-docs-page__section",children:[a.jsx("div",{className:"vxm-docs-page__section-title",children:"Guidance"}),a.jsx(Lr,{children:s.guidance.map((p,f)=>a.jsx(La,{label:p,leading:a.jsx(Ka,{size:16,style:{color:"var(--vx-primary)"}})},f))})]}),a.jsx("div",{className:"vxm-docs-page__section",children:a.jsxs("div",{className:"vx-inline vx-inline--wrap",children:[a.jsx(He,{variant:"accent",children:"Core"}),a.jsx(He,{variant:"success",children:"Accessible"}),a.jsx(He,{variant:"warning",children:"Documented"})]})}),a.jsx("div",{style:{height:32}})]})}const As={introduction:a.jsx(ro,{size:16}),"quick-start":a.jsx(oi,{size:16}),"shell-sidebar":a.jsx(Lv,{size:16}),"grid-page":a.jsx(Sa,{size:16}),"nav-layout":a.jsx(Sa,{size:16}),"scroll-area":a.jsx(wa,{size:16}),separator:a.jsx(Av,{size:16}),resizable:a.jsx(Ev,{size:16}),typography:a.jsx(wa,{size:16}),"typography-base":a.jsx(wa,{size:16}),badge:a.jsx(Zn,{size:16}),avatar:a.jsx(Ns,{size:16}),skeleton:a.jsx(Sa,{size:16}),card:a.jsx(Sa,{size:16}),"code-block":a.jsx(Tr,{size:16}),"language-switcher":a.jsx(Eu,{size:16}),button:a.jsx(co,{size:16}),elements:a.jsx(li,{size:16}),"form-controls":a.jsx(wa,{size:16}),"form-inputs":a.jsx(ii,{size:16}),toggle:a.jsx(ii,{size:16}),rating:a.jsx(pu,{size:16}),label:a.jsx(Hv,{size:16}),"vxui-provider":a.jsx(Cr,{size:16}),viewport:a.jsx(zu,{size:16}),constants:a.jsx(ii,{size:16}),calendar:a.jsx(uu,{size:16}),"bottom-nav":a.jsx(oo,{size:16}),"date-pickers":a.jsx(uu,{size:16}),"file-upload":a.jsx(Du,{size:16}),"color-picker":a.jsx(li,{size:16}),form:a.jsx(Sa,{size:16}),accordion:a.jsx(yt,{size:16}),tabs:a.jsx(wa,{size:16}),breadcrumb:a.jsx(yt,{size:16}),pagination:a.jsx(yt,{size:16}),stepper:a.jsx(yt,{size:16}),progress:a.jsx(yt,{size:16}),spinner:a.jsx(yt,{size:16}),alert:a.jsx(Ba,{size:16}),toasts:a.jsx(Er,{size:16}),table:a.jsx(wa,{size:16}),"data-list":a.jsx(yt,{size:16}),timeline:a.jsx(yt,{size:16}),"tree-view":a.jsx(Cr,{size:16}),carousel:a.jsx(Sa,{size:16}),"empty-states":a.jsx(Ba,{size:16}),overlays:a.jsx(xt,{size:16}),"data-display":a.jsx(Cr,{size:16}),navigation:a.jsx(ro,{size:16}),feedback:a.jsx(Zn,{size:16}),dialog:a.jsx(xt,{size:16}),sheet:a.jsx(Ov,{size:16}),popover:a.jsx(xt,{size:16}),tooltip:a.jsx(xt,{size:16}),"hover-card":a.jsx(xt,{size:16}),"dropdown-menu":a.jsx(xt,{size:16}),"context-menu":a.jsx(xt,{size:16}),"command-palette":a.jsx(jn,{size:16}),"navigation-menu":a.jsx(Dv,{size:16}),menubar:a.jsx(oo,{size:16}),mobile:a.jsx(ks,{size:16}),"mobile-list":a.jsx(yt,{size:16}),image:a.jsx(v0,{size:16}),"pin-input":a.jsx(f0,{size:16}),descriptions:a.jsx(yt,{size:16}),notification:a.jsx(Er,{size:16}),result:a.jsx(Do,{size:16}),"home-page":a.jsx(Mi,{size:16}),"login-page":a.jsx(lo,{size:16}),"register-page":a.jsx(uo,{size:16}),"error-page":a.jsx(Ba,{size:16}),"privacy-policy":a.jsx(Zn,{size:16}),"terms-of-service":a.jsx(Tr,{size:16})},wu=[{key:"gettingStarted",items:["introduction","vxui-provider","viewport","constants"]},{key:"layout",items:["quick-start","shell-sidebar","grid-page","nav-layout","scroll-area","separator","resizable"]},{key:"content",items:["typography","typography-base","badge","avatar","skeleton","card","code-block","language-switcher","image","descriptions"]},{key:"forms",items:[{type:"submenu",key:"inputs",i18nKey:"inputs",pages:["form-controls","form-inputs"],icon:a.jsx(ii,{size:16})},"toggle","rating","label","date-pickers","file-upload","color-picker","form","calendar","pin-input"]},{key:"components",items:["button","elements","accordion","tabs","breadcrumb","pagination","stepper","progress","spinner","alert","toasts","table","data-list","timeline","tree-view","carousel","empty-states","notification","result"]},{key:"overlays",items:["dialog","sheet","popover","tooltip","hover-card","dropdown-menu","context-menu","command-palette"]},{key:"navigation",items:["navigation-menu","menubar"]},{key:"feedback",items:["feedback"]},{key:"templates",items:["home-page","login-page","register-page","error-page","privacy-policy","terms-of-service"]},{key:"mobile",items:["mobile","mobile-list","bottom-nav"]}],rS=new Set(["quick-start","shell-sidebar","grid-page","nav-layout","scroll-area","separator","resizable","typography","typography-base","badge","avatar","skeleton","card","code-block","language-switcher","button","elements","form-controls","form-inputs","toggle","rating","label","date-pickers","file-upload","color-picker","form","calendar","accordion","tabs","breadcrumb","vxui-provider","viewport","constants","calendar","bottom-nav","pagination","stepper","progress","spinner","alert","toasts","table","data-list","timeline","tree-view","carousel","empty-states","overlays","data-display","navigation","feedback","dialog","sheet","popover","tooltip","hover-card","dropdown-menu","context-menu","command-palette","navigation-menu","menubar","mobile","mobile-list","home-page","login-page","register-page","error-page","privacy-policy","terms-of-service","image","pin-input","descriptions","notification","result"]);function hv(s,c){const d={gettingStarted:["介绍","Getting Started"],layout:["布局","Layout"],content:["内容展示","Content"],forms:["表单","Forms"],components:["组件","Components"],overlays:["浮层","Overlays"],navigation:["导航","Navigation"],feedback:["反馈","Feedback"],templates:["模板","Templates"],mobile:["响应式","Responsive"]}[s];return c?d[0]:d[1]}function lS(s,c){const d={gettingStarted:["先理解设计目标、页面壳层和这套组件系统解决的问题。","Start with the design goals, the page shell, and what this library is meant to solve."],layout:["页面框架、栅格系统、布局组件和响应式容器。","Page shell, grid system, layout components, and responsive containers."],content:["排版、徽章、头像、卡片和代码块等内容展示组件。","Typography, badges, avatars, cards, and code blocks for content display."],forms:["输入框、选择器、开关、日期选择器和表单组合模式。","Inputs, selectors, switches, date pickers, and form composition patterns."],components:["按钮、反馈、数据展示和交互核心组件。","Buttons, feedback, data display, and core interaction components."],overlays:["弹窗、弹出框、提示和侧滑面板等浮层组件。","Modals, popovers, tooltips, and sheet panels for overlay interactions."],navigation:["导航菜单和菜单栏组件。","Navigation menu and menubar components."],feedback:["确认状态、加载状态和空状态的反馈模式。","Review status, loading, and empty-state feedback patterns."],templates:["直接查看主页、认证页、错误页和法务页等完整页面结构。","Jump straight to full-page examples for home, auth, error, and legal flows."],mobile:["同一套路由和内容模型如何适配手机、平板和桌面。","See how the same route tree and content model adapt across phone, tablet, and desktop."]}[s];return c?d[0]:d[1]}const ni={install:String.raw`npm install vxui-re
398
+
399
+ // src/main.tsx
400
+ import 'vxui-re/styles.css';`,providers:String.raw`import ReactDOM from 'react-dom/client';
401
+ import { ThemeProvider, ToastProvider, ViewportProvider, themePresets } from 'vxui-re';
402
+ import App from './App';
403
+ import 'vxui-re/styles.css';
404
+
405
+ ReactDOM.createRoot(document.getElementById('root')!).render(
406
+ <ThemeProvider themes={themePresets} defaultTheme="light">
407
+ <ViewportProvider>
408
+ <ToastProvider>
409
+ <App />
410
+ </ToastProvider>
411
+ </ViewportProvider>
412
+ </ThemeProvider>,
413
+ );`,layout:String.raw`import {
414
+ AppShell,
415
+ Button,
416
+ Card,
417
+ CardContent,
418
+ CardHeader,
419
+ CardTitle,
420
+ ViewportProvider,
421
+ } from 'vxui-re';
422
+
423
+ const navSections = [
424
+ {
425
+ title: 'Workspace',
426
+ items: [
427
+ { key: 'overview', label: 'Overview', active: true },
428
+ { key: 'components', label: 'Components' },
429
+ ],
430
+ },
431
+ ];
432
+
433
+ export default function App() {
434
+ return (
435
+ <ViewportProvider>
436
+ <AppShell
437
+ brand="Acme Ops"
438
+ title="Overview"
439
+ description="Build admin screens from one reusable shell."
440
+ navSections={navSections}
441
+ headerActions={<Button size="sm">Create order</Button>}
442
+ >
443
+ <Card>
444
+ <CardHeader>
445
+ <CardTitle>Queue health</CardTitle>
446
+ </CardHeader>
447
+ <CardContent>All services are online.</CardContent>
448
+ </Card>
449
+ </AppShell>
450
+ </ViewportProvider>
451
+ );
452
+ }`,feedback:String.raw`import { Button, useToast } from 'vxui-re';
453
+
454
+ export function SaveButton() {
455
+ const { push } = useToast();
456
+
457
+ return (
458
+ <Button
459
+ onClick={() =>
460
+ push({
461
+ tone: 'success',
462
+ title: 'Saved',
463
+ description: 'The latest changes are now available to your team.',
464
+ })
465
+ }
466
+ >
467
+ Save changes
468
+ </Button>
469
+ );
470
+ }`},oS={calendar:String.raw`import { Calendar } from 'vxui-re';
471
+
472
+ export function CalendarExample() {
473
+ return (
474
+ <div style={{ display: 'grid', gap: 24 }}>
475
+ <Calendar />
476
+ <Calendar weekStartsOnMonday />
477
+ <Calendar min={new Date()} max={new Date(Date.now() + 30 * 86400000)} />
478
+ </div>
479
+ );
480
+ }`,"bottom-nav":String.raw`import { BottomNav } from 'vxui-re';
481
+ import { Bell, House, Search, User } from 'lucide-react';
482
+
483
+ export function MobileNav() {
484
+ return (
485
+ <BottomNav items={[
486
+ { key: 'home', label: 'Home', icon: <House size={20} />, active: true },
487
+ { key: 'search', label: 'Search', icon: <Search size={20} /> },
488
+ { key: 'alerts', label: 'Alerts', icon: <Bell size={20} />, badge: 3 },
489
+ { key: 'profile', label: 'Profile', icon: <User size={20} /> },
490
+ ]} />
491
+ );
492
+ }`,"vxui-provider":String.raw`import { VXUIProvider, themePresets } from 'vxui-re';
493
+ import 'vxui-re/styles.css';
494
+
495
+ export function App() {
496
+ return (
497
+ <VXUIProvider themes={themePresets} defaultTheme="light">
498
+ <YourApp />
499
+ </VXUIProvider>
500
+ );
501
+ }`,viewport:String.raw`import { ViewportProvider, useViewport } from 'vxui-re';
502
+
503
+ function DeviceInfo() {
504
+ const { viewport, isPhone, isTablet, isDesktop, screenWidth } = useViewport();
505
+ return (
506
+ <div>
507
+ <p>Device: {viewport}</p>
508
+ <p>Screen: {screenWidth}px</p>
509
+ </div>
510
+ );
511
+ }
512
+
513
+ export function App() {
514
+ return (
515
+ <ViewportProvider>
516
+ <DeviceInfo />
517
+ </ViewportProvider>
518
+ );
519
+ }`,constants:String.raw`import { BREAKPOINTS, PHONE_MAX_WIDTH, PHONE_ASPECT_RATIO_THRESHOLD } from 'vxui-re';
520
+
521
+ // CSS layout breakpoints
522
+ console.log(BREAKPOINTS.sm); // 640
523
+ console.log(BREAKPOINTS.md); // 768
524
+ console.log(BREAKPOINTS.lg); // 1000
525
+
526
+ // Device detection thresholds
527
+ console.log(PHONE_MAX_WIDTH); // 1000
528
+ console.log(PHONE_ASPECT_RATIO_THRESHOLD); // 0.7`,introduction:String.raw`import {
529
+ AppShell,
530
+ ThemeProvider,
531
+ ToastProvider,
532
+ ViewportProvider,
533
+ themePresets,
534
+ } from 'vxui-re';
535
+ import 'vxui-re/styles.css';
536
+
537
+ export function App() {
538
+ return (
539
+ <ThemeProvider themes={themePresets} defaultTheme="light">
540
+ <ViewportProvider>
541
+ <ToastProvider>
542
+ <AppShell
543
+ title="Overview"
544
+ description="Start with the shell, then compose cards, forms, and feedback."
545
+ navItems={[{ key: 'home', label: 'Home', active: true }]}
546
+ >
547
+ <div>Your first VXUI screen.</div>
548
+ </AppShell>
549
+ </ToastProvider>
550
+ </ViewportProvider>
551
+ </ThemeProvider>
552
+ );
553
+ }`,"quick-start":String.raw`import { useState } from 'react';
554
+ import {
555
+ AppShell, Button, Card, CardContent, CardHeader, CardTitle,
556
+ Input, ThemeProvider, ToastProvider, ViewportProvider,
557
+ themePresets, useToast,
558
+ } from 'vxui-re';
559
+ import 'vxui-re/styles.css';
560
+
561
+ const navSections = [
562
+ {
563
+ title: 'Workspace',
564
+ items: [{ key: 'overview', label: 'Overview', active: true }],
565
+ },
566
+ ];
567
+
568
+ function Workspace() {
569
+ const [projectName, setProjectName] = useState('Launch checklist');
570
+ const { push } = useToast();
571
+
572
+ return (
573
+ <AppShell
574
+ brand="Acme Ops"
575
+ title="Overview"
576
+ description="Ship internal tools with one component system."
577
+ navSections={navSections}
578
+ headerActions={
579
+ <Button size="sm" onClick={() => push({ tone: 'success', title: 'Saved', description: 'The project settings were updated.' })}>
580
+ Save
581
+ </Button>
582
+ }
583
+ >
584
+ <Card>
585
+ <CardHeader><CardTitle>Project</CardTitle></CardHeader>
586
+ <CardContent>
587
+ <Input label="Project name" value={projectName} onChange={(event) => setProjectName(event.target.value)} />
588
+ </CardContent>
589
+ </Card>
590
+ </AppShell>
591
+ );
592
+ }
593
+
594
+ export default function App() {
595
+ return (
596
+ <ThemeProvider themes={themePresets} defaultTheme="light">
597
+ <ViewportProvider>
598
+ <ToastProvider>
599
+ <Workspace />
600
+ </ToastProvider>
601
+ </ViewportProvider>
602
+ </ThemeProvider>
603
+ );
604
+ }`,button:String.raw`import { Button } from 'vxui-re';
605
+
606
+ export function ButtonExamples() {
607
+ return (
608
+ <div style={{ display: 'grid', gap: 16 }}>
609
+ <div style={{ display: 'flex', gap: 12, flexWrap: 'wrap' }}>
610
+ <Button>Primary</Button>
611
+ <Button variant="secondary">Secondary</Button>
612
+ <Button variant="ghost">Ghost</Button>
613
+ <Button variant="danger">Danger</Button>
614
+ </div>
615
+ <div style={{ display: 'flex', gap: 12, flexWrap: 'wrap' }}>
616
+ <Button size="sm">Small</Button>
617
+ <Button size="md">Medium</Button>
618
+ <Button size="lg">Large</Button>
619
+ </div>
620
+ <Button fullWidth>Full width action</Button>
621
+ </div>
622
+ );
623
+ }`,"typography-base":String.raw`import {
624
+ Article, ArticleHeader, ArticleTitle, ArticleBody,
625
+ Section, SectionHeading, Pager, PropsTable,
626
+ ArticleEmptyState, StatsGrid,
627
+ } from 'vxui-re';
628
+ import 'vxui-re/styles.css';
629
+
630
+ // 方式一:直接使用 CSS 类名
631
+ function UsingCSSClasses() {
632
+ return (
633
+ <div className="vx-article">
634
+ <header className="vx-article__header">
635
+ <span className="vx-kicker">Category</span>
636
+ <h1 className="vx-article__title">Page Title</h1>
637
+ <p className="vx-article__description">Page description.</p>
638
+ </header>
639
+ <div className="vx-article__body">
640
+ <section className="vx-section">
641
+ <h2 className="vx-section__heading">
642
+ Section Title
643
+ <a href="#section" className="vx-section__anchor">#</a>
644
+ </h2>
645
+ <p className="vx-lead">Lead paragraph text.</p>
646
+ <ul className="vx-list">
647
+ <li>List item one</li>
648
+ <li>List item two</li>
649
+ </ul>
650
+ </section>
651
+ </div>
652
+ </div>
653
+ );
654
+ }
655
+
656
+ // 方式二:使用 React 组件
657
+ function UsingComponents() {
658
+ const columns = [
659
+ { prop: 'variant', type: "'primary' | 'secondary'", default: "'primary'", description: 'Button variant.' },
660
+ { prop: 'size', type: "'sm' | 'md' | 'lg'", default: "'md'", description: 'Button size.', required: true },
661
+ ];
662
+
663
+ return (
664
+ <Article>
665
+ <ArticleHeader>
666
+ <span className="vx-kicker">Components</span>
667
+ <ArticleTitle>Button</ArticleTitle>
668
+ <p className="vx-article__description">Primary action element.</p>
669
+ </ArticleHeader>
670
+ <ArticleBody>
671
+ <Section sectionId="overview">
672
+ <SectionHeading anchor="#overview">Overview</SectionHeading>
673
+ <p>Content here...</p>
674
+ </Section>
675
+ <Section sectionId="api">
676
+ <SectionHeading anchor="#api">API Reference</SectionHeading>
677
+ <PropsTable columns={columns} />
678
+ </Section>
679
+ </ArticleBody>
680
+ <Pager
681
+ prev={{ label: 'Previous page', onClick: () => {} }}
682
+ next={{ label: 'Next page', onClick: () => {} }}
683
+ />
684
+ </Article>
685
+ );
686
+ }
687
+
688
+ // 方式三:空状态和统计网格
689
+ function Utilities() {
690
+ return (
691
+ <>
692
+ <StatsGrid items={[
693
+ { label: 'Components', value: '10', hint: 'Ready to import', icon: <Zap size={20} /> },
694
+ { label: 'CSS Classes', value: '30+', hint: 'Out of the box', icon: <Palette size={20} /> },
695
+ ]} />
696
+ <ArticleEmptyState
697
+ icon={<AlertTriangle size={20} />}
698
+ title="No content yet"
699
+ description="Use ArticleEmptyState to display empty states."
700
+ />
701
+ </>
702
+ );
703
+ }`,dialog:String.raw`import { Dialog, Button, Select, Input } from 'vxui-re';
704
+ import { useState } from 'react';
705
+
706
+ export function DialogExample() {
707
+ const [open, setOpen] = useState(false);
708
+ const [role, setRole] = useState<string>();
709
+ return (
710
+ <>
711
+ <Button onClick={() => setOpen(true)}>Create User</Button>
712
+ <Dialog trigger={<div />} title="New User" open={open} onOpenChange={setOpen}
713
+ onConfirm={() => console.log({ role })} onCancel={() => setOpen(false)}>
714
+ <div style={{ display: 'flex', flexDirection: 'column', gap: 12 }}>
715
+ <Input label="Name" placeholder="Full name" />
716
+ <Input label="Email" placeholder="user@example.com" />
717
+ <Select
718
+ label="Role"
719
+ placeholder="Choose a role"
720
+ options={[
721
+ { value: 'admin', label: 'Admin' },
722
+ { value: 'editor', label: 'Editor' },
723
+ { value: 'viewer', label: 'Viewer' },
724
+ ]}
725
+ value={role}
726
+ onChange={setRole}
727
+ />
728
+ </div>
729
+ </Dialog>
730
+ </>
731
+ );
732
+ }`,popover:String.raw`import { Popover, Button } from 'vxui-re';
733
+
734
+ export function PopoverExample() {
735
+ return (
736
+ <Popover content={<div style={{ padding: 16 }}>Popover content with <Button size="sm">Action</Button></div>}>
737
+ <Button>Open Popover</Button>
738
+ </Popover>
739
+ );
740
+ }`,tooltip:String.raw`import { Tooltip } from 'vxui-re';
741
+
742
+ export function TooltipExample() {
743
+ return (
744
+ <Tooltip content="This is a tooltip">
745
+ <span>Hover me</span>
746
+ </Tooltip>
747
+ );
748
+ }`,"hover-card":String.raw`import { HoverCard } from 'vxui-re';
749
+
750
+ export function HoverCardExample() {
751
+ return (
752
+ <HoverCard content={<div style={{ padding: 16 }}><strong>Details</strong><p>Rich preview content here.</p></div>}>
753
+ <span>Hover for details</span>
754
+ </HoverCard>
755
+ );
756
+ }`,"dropdown-menu":String.raw`import { useState } from 'react';
757
+ import { DropdownMenu } from 'vxui-re';
758
+
759
+ export function DropdownMenuExample() {
760
+ const [showLineNumbers, setShowLineNumbers] = useState(true);
761
+ const [wrapLines, setWrapLines] = useState(false);
762
+ const [fontSize, setFontSize] = useState<'sm' | 'md' | 'lg'>('md');
763
+
764
+ return (
765
+ <DropdownMenu
766
+ trigger={<button>Editor Settings</button>}
767
+ onSelect={(item) => console.log('Selected:', item.label)}
768
+ groups={[
769
+ {
770
+ label: 'Actions',
771
+ items: [
772
+ { label: 'Duplicate', onClick: () => {} },
773
+ {
774
+ label: 'Archive',
775
+ description: 'Move to archive folder',
776
+ onClick: () => {},
777
+ },
778
+ ],
779
+ },
780
+ {
781
+ label: 'Preferences',
782
+ items: [
783
+ {
784
+ label: 'Show Line Numbers',
785
+ type: 'checkbox',
786
+ checked: showLineNumbers,
787
+ onClick: () => setShowLineNumbers((v) => !v),
788
+ },
789
+ {
790
+ label: 'Wrap Lines',
791
+ type: 'checkbox',
792
+ checked: wrapLines,
793
+ onClick: () => setWrapLines((v) => !v),
794
+ },
795
+ ],
796
+ },
797
+ {
798
+ label: 'Font Size',
799
+ items: [
800
+ { label: 'Small', type: 'radio', checked: fontSize === 'sm', onClick: () => setFontSize('sm') },
801
+ { label: 'Medium', type: 'radio', checked: fontSize === 'md', onClick: () => setFontSize('md') },
802
+ { label: 'Large', type: 'radio', checked: fontSize === 'lg', onClick: () => setFontSize('lg') },
803
+ ],
804
+ },
805
+ {
806
+ items: [
807
+ { label: 'Delete', danger: true, onClick: () => {} },
808
+ ],
809
+ },
810
+ ]}
811
+ />
812
+ );
813
+ }`,"context-menu":String.raw`import { ContextMenu } from 'vxui-re';
814
+
815
+ export function ContextMenuExample() {
816
+ return (
817
+ <ContextMenu
818
+ items={[
819
+ { label: 'Copy', onClick: () => {} },
820
+ { label: 'Paste', onClick: () => {} },
821
+ { label: 'Delete', danger: true, onClick: () => {} },
822
+ ]}
823
+ >
824
+ <div style={{ padding: 40, border: '1px dashed #ccc', textAlign: 'center' }}>
825
+ Right-click this area
826
+ </div>
827
+ </ContextMenu>
828
+ );
829
+ }`,"command-palette":String.raw`import { CommandPalette } from 'vxui-re';
830
+
831
+ export function CommandPaletteExample() {
832
+ const entries = [
833
+ { key: 'home', title: 'Home', section: 'Pages', description: 'Go to home page' },
834
+ { key: 'settings', title: 'Settings', section: 'Pages', description: 'Open settings' },
835
+ ];
836
+ return (
837
+ <CommandPalette
838
+ entries={entries}
839
+ open={false}
840
+ onClose={() => {}}
841
+ onSelect={(key) => console.log(key)}
842
+ />
843
+ );
844
+ }`,"navigation-menu":String.raw`import { NavigationMenu } from 'vxui-re';
845
+
846
+ export function NavigationMenuExample() {
847
+ return (
848
+ <NavigationMenu
849
+ items={[
850
+ { label: 'Home', href: '#' },
851
+ { label: 'Products', items: [
852
+ { label: 'Overview', href: '#' },
853
+ { label: 'Pricing', href: '#' },
854
+ ]},
855
+ { label: 'About', href: '#' },
856
+ ]}
857
+ />
858
+ );
859
+ }`,menubar:String.raw`import { Menubar } from 'vxui-re';
860
+
861
+ export function MenubarExample() {
862
+ return (
863
+ <Menubar
864
+ menus={[
865
+ { label: 'File', items: [
866
+ { label: 'New', onClick: () => {} },
867
+ { label: 'Open', onClick: () => {} },
868
+ { label: 'Save', shortcut: 'Ctrl+S', onClick: () => {} },
869
+ ]},
870
+ { label: 'Edit', items: [
871
+ { label: 'Undo', shortcut: 'Ctrl+Z', onClick: () => {} },
872
+ { label: 'Redo', shortcut: 'Ctrl+Shift+Z', onClick: () => {} },
873
+ ]},
874
+ ]}
875
+ />
876
+ );
877
+ }`,resizable:String.raw`import { ResizablePanelGroup, ResizablePanel, ResizableHandle } from 'vxui-re';
878
+
879
+ export function ResizableExample() {
880
+ return (
881
+ <ResizablePanelGroup direction="horizontal" style={{ height: 200 }}>
882
+ <ResizablePanel defaultSize={50}>
883
+ <div style={{ padding: 16 }}>Left panel</div>
884
+ </ResizablePanel>
885
+ <ResizableHandle />
886
+ <ResizablePanel defaultSize={50}>
887
+ <div style={{ padding: 16 }}>Right panel</div>
888
+ </ResizablePanel>
889
+ </ResizablePanelGroup>
890
+ );
891
+ }`,"file-upload":String.raw`import { FileUpload } from 'vxui-re';
892
+
893
+ export function FileUploadExample() {
894
+ return (
895
+ <FileUpload
896
+ label="Upload files"
897
+ hint="Drag and drop or click to browse"
898
+ multiple
899
+ onFiles={(files) => console.log(files)}
900
+ />
901
+ );
902
+ }`,"color-picker":String.raw`import { ColorPicker } from 'vxui-re';
903
+
904
+ export function ColorPickerExample() {
905
+ return (
906
+ <ColorPicker
907
+ label="Brand color"
908
+ defaultValue="#3b82f6"
909
+ onChange={(color) => console.log(color)}
910
+ />
911
+ );
912
+ }`,accordion:String.raw`import { Accordion } from 'vxui-re';
913
+
914
+ export function AccordionExample() {
915
+ return (
916
+ <Accordion
917
+ items={[
918
+ { key: '1', title: 'Section 1', content: 'Content for section 1.' },
919
+ { key: '2', title: 'Section 2', content: 'Content for section 2.' },
920
+ { key: '3', title: 'Section 3', content: 'Content for section 3.' },
921
+ ]}
922
+ />
923
+ );
924
+ }`,tabs:String.raw`import { Tabs, TabsList, TabsTrigger, TabsContent } from 'vxui-re';
925
+
926
+ export function TabsExample() {
927
+ return (
928
+ <Tabs defaultValue="tab1">
929
+ <TabsList>
930
+ <TabsTrigger value="tab1">Tab 1</TabsTrigger>
931
+ <TabsTrigger value="tab2">Tab 2</TabsTrigger>
932
+ <TabsTrigger value="tab3">Tab 3</TabsTrigger>
933
+ </TabsList>
934
+ <TabsContent value="tab1">Content for tab 1.</TabsContent>
935
+ <TabsContent value="tab2">Content for tab 2.</TabsContent>
936
+ <TabsContent value="tab3">Content for tab 3.</TabsContent>
937
+ </Tabs>
938
+ );
939
+ }`,breadcrumb:String.raw`import { Breadcrumb } from 'vxui-re';
940
+
941
+ export function BreadcrumbExample() {
942
+ return (
943
+ <Breadcrumb
944
+ items={[
945
+ { label: 'Home', href: '/' },
946
+ { label: 'Products', href: '/products' },
947
+ { label: 'Details' },
948
+ ]}
949
+ />
950
+ );
951
+ }`,pagination:String.raw`import { Pagination } from 'vxui-re';
952
+
953
+ export function PaginationExample() {
954
+ return (
955
+ <Pagination
956
+ page={1}
957
+ total={100}
958
+ onChange={(page) => console.log('Page:', page)}
959
+ />
960
+ );
961
+ }`,stepper:String.raw`import { Stepper } from 'vxui-re';
962
+
963
+ export function StepperExample() {
964
+ return (
965
+ <Stepper
966
+ steps={[
967
+ { label: 'Cart', description: 'Review items' },
968
+ { label: 'Shipping', description: 'Enter address' },
969
+ { label: 'Payment', description: 'Complete order' },
970
+ ]}
971
+ currentStep={1}
972
+ />
973
+ );
974
+ }`,progress:String.raw`import { Progress } from 'vxui-re';
975
+
976
+ export function ProgressExample() {
977
+ return <Progress value={65} label="Upload progress" showLabel />;
978
+ }`,spinner:String.raw`import { Spinner } from 'vxui-re';
979
+
980
+ export function SpinnerExample() {
981
+ return (
982
+ <div style={{ display: 'flex', gap: 16, alignItems: 'center' }}>
983
+ <Spinner size="sm" />
984
+ <Spinner size="md" />
985
+ <Spinner size="lg" />
986
+ </div>
987
+ );
988
+ }`,alert:String.raw`import { Alert } from 'vxui-re';
989
+
990
+ export function AlertExample() {
991
+ return (
992
+ <div style={{ display: 'grid', gap: 12 }}>
993
+ <Alert variant="info" title="Information" />
994
+ <Alert variant="success" title="Success" />
995
+ <Alert variant="warning" title="Warning" />
996
+ <Alert variant="danger" title="Error" />
997
+ </div>
998
+ );
999
+ }`,table:String.raw`import { Table } from 'vxui-re';
1000
+
1001
+ const columns = [
1002
+ { key: 'name', header: 'Name', accessor: (row: any) => row.name, sortable: true },
1003
+ { key: 'role', header: 'Role', accessor: (row: any) => row.role },
1004
+ ];
1005
+
1006
+ const data = [
1007
+ { name: 'Alice', role: 'Engineer' },
1008
+ { name: 'Bob', role: 'Designer' },
1009
+ ];
1010
+
1011
+ export function TableExample() {
1012
+ return <Table columns={columns} data={data} striped />;
1013
+ }`,"code-block":String.raw`import { CodeBlock } from 'vxui-re';
1014
+
1015
+ export function CodeBlockExample() {
1016
+ return (
1017
+ <CodeBlock
1018
+ code="npm install vxui-re"
1019
+ language="bash"
1020
+ copyLabel="Copy"
1021
+ copiedLabel="Copied"
1022
+ onCopy={async () => true}
1023
+ />
1024
+ );
1025
+ }`,"language-switcher":String.raw`import { LanguageSwitcher } from 'vxui-re';
1026
+
1027
+ export function LanguageSwitcherExample() {
1028
+ return <LanguageSwitcher />;
1029
+ }`,toasts:String.raw`import { Button, useToast } from 'vxui-re';
1030
+
1031
+ export function ToastExample() {
1032
+ const { push } = useToast();
1033
+ return (
1034
+ <Button onClick={() => push({ tone: 'success', title: 'Saved', description: 'Changes saved successfully.' })}>
1035
+ Show Toast
1036
+ </Button>
1037
+ );
1038
+ }`,image:String.raw`import { Image } from 'vxui-re';
1039
+
1040
+ export function ImageExample() {
1041
+ return (
1042
+ <div style={{ display: 'grid', gap: 16 }}>
1043
+ <Image
1044
+ src="https://picsum.photos/400/300"
1045
+ alt="Sample"
1046
+ width={320}
1047
+ height={220}
1048
+ radius="lg"
1049
+ preview
1050
+ caption="Click to preview"
1051
+ />
1052
+ <Image
1053
+ src="/broken.jpg"
1054
+ width={200}
1055
+ height={140}
1056
+ fallback={<span>Image unavailable</span>}
1057
+ />
1058
+ </div>
1059
+ );
1060
+ }`,"pin-input":String.raw`import { useState } from 'react';
1061
+ import { PinInput } from 'vxui-re';
1062
+
1063
+ export function PinInputExample() {
1064
+ const [code, setCode] = useState('');
1065
+ return (
1066
+ <div style={{ display: 'grid', gap: 24 }}>
1067
+ <PinInput
1068
+ label="Verification code"
1069
+ length={6}
1070
+ value={code}
1071
+ onChange={setCode}
1072
+ onComplete={(val) => console.log('Code:', val)}
1073
+ />
1074
+ <PinInput length={4} type="alphanumeric" size="sm" />
1075
+ <PinInput length={6} mask error="Incorrect code" />
1076
+ </div>
1077
+ );
1078
+ }`,descriptions:String.raw`import { Descriptions, Badge } from 'vxui-re';
1079
+
1080
+ export function DescriptionsExample() {
1081
+ return (
1082
+ <Descriptions
1083
+ title="User Profile"
1084
+ items={[
1085
+ { label: 'Name', children: 'Alice Johnson' },
1086
+ { label: 'Email', children: 'alice@example.com' },
1087
+ { label: 'Role', children: <Badge variant="accent">Admin</Badge> },
1088
+ { label: 'Status', children: <Badge variant="success">Active</Badge> },
1089
+ { label: 'Joined', children: '2024-01-15' },
1090
+ { label: 'Last login', children: '2 hours ago' },
1091
+ ]}
1092
+ bordered
1093
+ column={2}
1094
+ />
1095
+ );
1096
+ }`,notification:String.raw`import { NotificationProvider, useNotification, Button } from 'vxui-re';
1097
+
1098
+ function NotificationDemo() {
1099
+ const { push } = useNotification();
1100
+ return (
1101
+ <div style={{ display: 'flex', gap: 8, flexWrap: 'wrap' }}>
1102
+ <Button onClick={() => push({ title: 'Upload complete', tone: 'success', description: '3 files uploaded.', duration: 4000 })}>
1103
+ Auto-dismiss
1104
+ </Button>
1105
+ <Button variant="secondary" onClick={() => push({ title: 'System update', tone: 'warning', description: 'Restart required.' })}>
1106
+ Persistent
1107
+ </Button>
1108
+ </div>
1109
+ );
1110
+ }
1111
+
1112
+ export function NotificationExample() {
1113
+ return (
1114
+ <NotificationProvider placement="top-right">
1115
+ <NotificationDemo />
1116
+ </NotificationProvider>
1117
+ );
1118
+ }`,result:String.raw`import { Result, Button } from 'vxui-re';
1119
+
1120
+ export function ResultExample() {
1121
+ return (
1122
+ <div style={{ display: 'grid', gap: 24 }}>
1123
+ <Result
1124
+ status="success"
1125
+ title="Payment Successful"
1126
+ description="Your order #12345 has been confirmed."
1127
+ actions={
1128
+ <>
1129
+ <Button>View Order</Button>
1130
+ <Button variant="secondary">Back to Home</Button>
1131
+ </>
1132
+ }
1133
+ />
1134
+ <Result
1135
+ status="not-found"
1136
+ title="Page Not Found"
1137
+ description="The page you are looking for does not exist."
1138
+ actions={<Button variant="secondary">Go Home</Button>}
1139
+ />
1140
+ </div>
1141
+ );
1142
+ }`};function Wn({code:s,language:c="tsx",copyLabel:r="Copy code",copiedLabel:d="Copied",onCopy:p}){return a.jsx(Jg,{code:s,language:c,copyLabel:r,copiedLabel:d,onCopy:p!=null?p:(f=>!0)})}function cS({pageKey:s,pageTitle:c,pageDescription:r,onNavigate:d,openPageLabel:p}){const f={"home-page":()=>d({view:"home"}),"login-page":()=>d({view:"login"}),"register-page":()=>d({view:"register"}),"error-page":()=>d({view:"error"}),"privacy-policy":()=>d({view:"privacy-policy"}),"terms-of-service":()=>d({view:"terms-of-service"})};return a.jsxs("div",{className:"vx-template-launch",children:[a.jsxs("div",{className:"vx-template-launch__head",children:[a.jsx("span",{className:"vx-template-launch__icon",children:As[s]}),a.jsxs("div",{children:[a.jsx("strong",{children:c}),a.jsx("p",{children:r})]})]}),a.jsxs(ue,{variant:"secondary",onClick:f[s],children:[a.jsx(Cv,{size:16})," ",p]})]})}function vv({initialPage:s=1,total:c,pageSize:r}){const[d,p]=m.useState(s);return a.jsx(yu,{page:d,total:c,pageSize:r,onChange:p})}function dS({isZh:s}){const[c,r]=m.useState(!0),[d,p]=m.useState(!1),[f,v]=m.useState(!0),[x,b]=m.useState("4"),[g,y]=m.useState("auto");return a.jsxs("div",{style:{display:"flex",gap:16,flexWrap:"wrap",alignItems:"flex-start"},children:[a.jsx(wn,{trigger:a.jsx(ue,{variant:"secondary",children:s?"文件操作":"File Actions"}),onSelect:j=>console.log("[File]",j.label),groups:[{label:s?"操作":"Actions",items:[{label:s?"复制":"Duplicate",onClick:()=>{}},{label:s?"归档":"Archive",description:s?"移入归档文件夹":"Move to archive folder",onClick:()=>{}},{label:s?"导出":"Export",description:s?"下载为 ZIP":"Download as ZIP",onClick:()=>{}}]},{items:[{label:s?"删除":"Delete",danger:!0,onClick:()=>{}}]}]}),a.jsx(wn,{trigger:a.jsx(ue,{variant:"secondary",children:s?"编辑器设置":"Editor Settings"}),onSelect:j=>console.log("[Editor]",j.label),groups:[{label:s?"显示":"Display",items:[{label:s?"行号":"Line Numbers",type:"checkbox",checked:c,onClick:()=>r(j=>!j)},{label:s?"自动换行":"Word Wrap",type:"checkbox",checked:d,onClick:()=>p(j=>!j)},{label:s?"缩略图":"Minimap",type:"checkbox",checked:f,onClick:()=>v(j=>!j)}]},{label:s?"Tab 宽度":"Tab Size",items:[{label:"2 spaces",type:"radio",checked:x==="2",onClick:()=>b("2")},{label:"4 spaces",type:"radio",checked:x==="4",onClick:()=>b("4")},{label:"8 spaces",type:"radio",checked:x==="8",onClick:()=>b("8")}]}]}),a.jsx(wn,{trigger:a.jsx(ue,{variant:"secondary",children:s?"主题":"Theme"}),items:[{label:s?"跟随系统":"Follow System",type:"radio",checked:g==="auto",onClick:()=>y("auto")},{label:s?"浅色":"Light",type:"radio",checked:g==="light",onClick:()=>y("light")},{label:s?"深色":"Dark",type:"radio",checked:g==="dark",onClick:()=>y("dark")}]})]})}function uS({isZh:s}){const[c,r]=m.useState("system"),[d,p]=m.useState(68),[f,v]=m.useState(!0),[x,b]=m.useState(!1),[g,y]=m.useState("system");return a.jsxs("div",{className:"vx-preview-stack",children:[a.jsxs("div",{className:"vx-preview-stack__group",children:[a.jsx(Oa,{checked:f,label:s?"默认启用响应式抽屉":"Enable responsive drawer",onChange:()=>v(j=>!j)}),a.jsx(Oa,{checked:x,label:s?"显示调试边界":"Show debug boundaries",onChange:()=>b(j=>!j)})]}),a.jsxs(fo,{label:s?"密度策略":"Density strategy",children:[a.jsx(ka,{checked:g==="system",label:s?"跟随系统":"Follow system",name:"density",onChange:()=>y("system")}),a.jsx(ka,{checked:g==="comfortable",label:s?"舒适":"Comfortable",name:"density",onChange:()=>y("comfortable")}),a.jsx(ka,{checked:g==="compact",label:s?"紧凑":"Compact",name:"density",onChange:()=>y("compact")})]}),a.jsx(Bg,{value:c,onChange:r,fullWidth:!0,options:[{label:a.jsxs(a.Fragment,{children:[a.jsx(zu,{size:16}),s?"跟随系统":"System"]}),value:"system"},{label:a.jsxs(a.Fragment,{children:[a.jsx(Bv,{size:16}),s?"浅色":"Light"]}),value:"light"},{label:a.jsxs(a.Fragment,{children:[a.jsx(zv,{size:16}),s?"深色":"Dark"]}),value:"dark"}]}),a.jsx(ho,{label:s?"文档完成度":"Coverage",max:100,min:0,onChange:j=>p(Number(j.target.value)),showValue:!0,value:d}),a.jsxs("div",{className:"vx-preview-stack__group",style:{marginTop:24},children:[a.jsxs("div",{style:{display:"flex",gap:8,alignItems:"center"},children:[a.jsx($a,{"data-state":"on",children:s?"自动保存":"Auto-save"}),a.jsx($a,{children:s?"多标签模式":"Multiple tabs"})]}),a.jsx(Fu,{type:"single",defaultValue:"grid",items:[{value:"grid",label:s?"网格":"Grid"},{value:"list",label:s?"列表":"List"},{value:"table",label:s?"表格":"Table"}]}),a.jsx(Ya,{defaultChecked:!0,label:s?"开启实验性功能":"Enable experimental features"}),a.jsx(jo,{min:0,max:100,defaultValue:10,label:s?"阈值":"Threshold"}),a.jsx(To,{placeholder:s?"添加标签...":"Add tag...",defaultValue:["React","Vite"]}),a.jsx(So,{multiple:!0,label:s?"上传附件":"Upload attachments"}),a.jsx("div",{style:{marginTop:8},children:a.jsx(ri,{})})]})]})}function pS(s,c){var x,b,g,y,j,k,A,L,D,E,T,C,_;const{isZh:r,pages:d,onNavigate:p,push:f}=c,v=p!=null?p:(u=>{});switch(s){case"quick-start":{const u=[{value:"install",label:r?"安装":"Install",code:ni.install},{value:"providers",label:"Providers",code:ni.providers},{value:"layout",label:r?"页面壳层":"Layout",code:ni.layout},{value:"feedback",label:r?"反馈":"Feedback",code:ni.feedback}];return a.jsxs(Cs,{defaultValue:"install",children:[a.jsx(Ts,{children:u.map(S=>a.jsx(Kt,{value:S.value,children:S.label},S.value))}),u.map(S=>a.jsx(Qt,{value:S.value,children:a.jsx(Wn,{code:S.code,language:S.value==="install"?"bash":"tsx"})},S.value))]})}case"vxui-provider":return a.jsxs("div",{className:"vx-preview-stack",children:[a.jsx(rt,{variant:"info",title:r?"组合 Provider":"Combined Provider",children:r?"VXUIProvider 将 ThemeProvider、ViewportProvider 和 ToastProvider 合并为单一根组件。":"VXUIProvider merges ThemeProvider, ViewportProvider, and ToastProvider into one root component."}),a.jsx(Wn,{code:r?`import { VXUIProvider, themePresets } from 'vxui-re';
1143
+
1144
+ export function App() {
1145
+ return (
1146
+ <VXUIProvider themes={themePresets} defaultTheme="light">
1147
+ <Shell>
1148
+ <ShellMain>
1149
+ <p>应用内容</p>
1150
+ </ShellMain>
1151
+ </Shell>
1152
+ </VXUIProvider>
1153
+ );
1154
+ }`:`import { VXUIProvider, themePresets } from 'vxui-re';
1155
+
1156
+ export function App() {
1157
+ return (
1158
+ <VXUIProvider themes={themePresets} defaultTheme="light">
1159
+ <Shell>
1160
+ <ShellMain>
1161
+ <p>App content</p>
1162
+ </ShellMain>
1163
+ </Shell>
1164
+ </VXUIProvider>
1165
+ );
1166
+ }`})]});case"viewport":return a.jsxs("div",{className:"vx-preview-stack",children:[a.jsx(rt,{variant:"info",title:r?"响应式设备检测":"Responsive Device Detection",children:r?"ViewportProvider 根据物理屏幕宽度自动检测设备类型。":"ViewportProvider automatically detects device type based on physical screen width."}),a.jsx(Wn,{code:r?`import { ViewportProvider, useViewport } from 'vxui-re';
1167
+
1168
+ function DeviceInfo() {
1169
+ const { viewport, isPhone, isTablet, isDesktop } = useViewport();
1170
+ return <p>���备类型:{viewport}</p>;
1171
+ }`:`import { ViewportProvider, useViewport } from 'vxui-re';
1172
+
1173
+ function DeviceInfo() {
1174
+ const { viewport, isPhone, isTablet, isDesktop } = useViewport();
1175
+ return <p>Device: {viewport}</p>;
1176
+ }`})]});case"constants":return a.jsxs("div",{className:"vx-preview-stack",children:[a.jsx("div",{style:{display:"grid",gap:8,maxWidth:360},children:[{label:"BREAKPOINTS.sm",value:480},{label:"BREAKPOINTS.md",value:768},{label:"BREAKPOINTS.lg",value:1e3},{label:"PHONE_MAX_WIDTH",value:1e3}].map(u=>a.jsxs("div",{style:{display:"flex",justifyContent:"space-between",padding:"8px 12px",background:"var(--vx-surface-elevated)",borderRadius:"var(--vx-radius-sm)"},children:[a.jsx("code",{style:{fontSize:13},children:u.label}),a.jsx("strong",{children:u.value})]},u.label))}),a.jsx(Wn,{code:`import { BREAKPOINTS, PHONE_MAX_WIDTH } from 'vxui-re';
1177
+
1178
+ console.log(BREAKPOINTS.lg); // 1000`})]});case"button":return a.jsxs("div",{className:"vx-preview-stack",children:[a.jsxs("div",{className:"vx-preview-inline vx-preview-inline--wrap",children:[a.jsx(ue,{children:r?"主要按钮":"Primary"}),a.jsx(ue,{variant:"secondary",children:r?"次级按钮":"Secondary"}),a.jsx(ue,{variant:"ghost",children:r?"幽灵按钮":"Ghost"}),a.jsx(ue,{variant:"danger",children:r?"危险按钮":"Danger"})]}),a.jsxs("div",{className:"vx-preview-inline vx-preview-inline--wrap",children:[a.jsx(ue,{size:"sm",children:r?"小":"Small"}),a.jsx(ue,{size:"md",children:r?"中":"Medium"}),a.jsx(ue,{size:"lg",children:r?"大":"Large"})]}),a.jsxs("div",{className:"vx-preview-inline vx-preview-inline--wrap",children:[a.jsx(ue,{shape:"square",children:r?"直角":"Square"}),a.jsx(ue,{shape:"rect",children:r?"圆角":"Rounded"}),a.jsx(ue,{shape:"pill",children:r?"胶囊":"Pill"}),a.jsx(ue,{variant:"secondary",shape:"pill",children:r?"次级胶囊":"Secondary pill"})]}),a.jsx(ue,{fullWidth:!0,children:r?"整行操作":"Full width action"})]});case"elements":return a.jsxs("div",{className:"vx-preview-stack",children:[a.jsxs("div",{className:"vx-preview-inline vx-preview-inline--wrap",children:[a.jsxs(ue,{children:[a.jsx(oi,{size:16}),r?"主要操作":"Primary action"]}),a.jsx(ue,{variant:"secondary",children:r?"次级操作":"Secondary"}),a.jsx(ue,{variant:"ghost",children:r?"幽灵按钮":"Ghost"})]}),a.jsxs("div",{className:"vx-preview-inline",children:[a.jsx(He,{variant:"accent",children:"Brand"}),a.jsx(He,{variant:"success",children:"Live"}),a.jsx(He,{variant:"warning",children:"Beta"})]}),a.jsx(rt,{title:r?"统一风格":"Unified styling",variant:"info",children:r?"基础元素在所有页面共享同一套颜色、圆角和交互节奏。":"Core elements share the same color, radius, and interaction rhythm."}),a.jsxs("div",{className:"vx-preview-stack__group",children:[a.jsx(_a,{level:1,children:r?"H1 标题":"Heading 1"}),a.jsx(_a,{level:2,children:r?"H2 标题":"Heading 2"}),a.jsx(_a,{level:3,children:r?"H3 标题":"Heading 3"}),a.jsx(Ct,{variant:"secondary",children:r?"大段文本":"Lead text"}),a.jsx(Ct,{variant:"muted",children:r?"次要文本":"Muted text"})]})]});case"typography":return a.jsxs("div",{className:"vx-preview-stack",style:{display:"grid",gap:8},children:[a.jsx(_a,{level:1,children:r?"标题 1":"Heading 1"}),a.jsx(_a,{level:2,children:r?"标题 2":"Heading 2"}),a.jsx(_a,{level:3,children:r?"标题 3":"Heading 3"}),a.jsx(Ct,{children:r?"默认正文文本。":"Default body text."}),a.jsx(Ct,{variant:"secondary",children:r?"次级强调文本。":"Secondary emphasis text."}),a.jsx(Ct,{variant:"muted",children:r?"弱化辅助文本。":"Muted helper text."}),a.jsx(Ct,{weight:"bold",children:r?"加粗正文。":"Bold body text."})]});case"typography-base":return a.jsxs("div",{className:"vx-preview-stack",children:[a.jsxs("div",{className:"vx-article",children:[a.jsxs("header",{className:"vx-article__header",children:[a.jsx("span",{className:"vx-kicker",children:r?"CSS 类名":"CSS Classes"}),a.jsx("h1",{className:"vx-article__title",children:r?"使用 CSS 类名":"Using CSS Classes"}),a.jsx("p",{className:"vx-article__description",children:r?"直接使用 className 即可应用排版样式。":"Apply typography styles directly via className."})]}),a.jsx("div",{className:"vx-article__body",children:a.jsxs("section",{className:"vx-section",children:[a.jsxs("h2",{className:"vx-section__heading",children:[r?"章节标题":"Section Heading",a.jsx("a",{href:"#section",className:"vx-section__anchor",children:"#"})]}),a.jsx("p",{className:"vx-lead",children:r?"这是导语文本(vx-lead)。":"This is lead text (vx-lead)."}),a.jsxs("ul",{className:"vx-list",children:[a.jsx("li",{children:r?"使用 vx-article 作为文章容器":"Use vx-article as the article container"}),a.jsx("li",{children:r?"使用 vx-section 划分章节":"Use vx-section to divide chapters"})]})]})})]}),a.jsx("div",{className:"vx-example",children:a.jsxs("div",{className:"vx-stats",style:{marginBottom:16},children:[a.jsxs("div",{className:"vx-stat",children:[a.jsxs("div",{className:"vx-stat__copy",children:[a.jsx("span",{className:"vx-stat__label",children:r?"组件":"Components"}),a.jsx("strong",{className:"vx-stat__value",children:"10"}),a.jsx("small",{className:"vx-stat__hint",children:r?"可直接导入使用":"Ready to import"})]}),a.jsx("div",{className:"vx-stat__icon",children:a.jsx(oi,{size:20})})]}),a.jsxs("div",{className:"vx-stat",children:[a.jsxs("div",{className:"vx-stat__copy",children:[a.jsx("span",{className:"vx-stat__label",children:r?"CSS 类":"CSS Classes"}),a.jsx("strong",{className:"vx-stat__value",children:"30+"}),a.jsx("small",{className:"vx-stat__hint",children:r?"开箱即用":"Out of the box"})]}),a.jsx("div",{className:"vx-stat__icon",children:a.jsx(li,{size:20})})]})]})})]});case"badge":return a.jsx("div",{className:"vx-preview-stack",children:a.jsxs("div",{className:"vx-preview-inline",children:[a.jsx(He,{variant:"accent",children:r?"新品":"New"}),a.jsx(He,{variant:"success",children:r?"在线":"Live"}),a.jsx(He,{variant:"warning",children:r?"测试版":"Beta"}),a.jsx(He,{variant:"neutral",children:r?"草稿":"Draft"})]})});case"avatar":return a.jsx("div",{className:"vx-preview-stack",children:a.jsxs("div",{className:"vx-preview-inline",style:{gap:16,alignItems:"center"},children:[a.jsx(Ut,{src:"https://i.pravatar.cc/80?u=1",name:"Alex Morgan",size:"xs"}),a.jsx(Ut,{src:"https://i.pravatar.cc/80?u=2",name:"Jamie Chen",size:"sm"}),a.jsx(Ut,{src:"https://i.pravatar.cc/80?u=3",name:"Taylor Kim",size:"md"}),a.jsx(Ut,{name:"Sam Wilson",size:"lg"}),a.jsx(Ut,{size:"xl"})]})});case"skeleton":return a.jsx("div",{className:"vx-preview-stack",children:a.jsxs("div",{style:{display:"grid",gap:8,width:240},children:[a.jsx(Xa,{variant:"rect",width:"100%",height:100}),a.jsx(Xa,{variant:"text",width:"65%"}),a.jsx(Xa,{variant:"text",lines:2})]})});case"code-block":return a.jsx("div",{className:"vx-preview-stack",children:a.jsx(Wn,{code:r?`import { Button } from 'vxui-re';
1179
+
1180
+ export function Example() {
1181
+ return <Button>点击我</Button>;
1182
+ }`:`import { Button } from 'vxui-re';
1183
+
1184
+ export function Example() {
1185
+ return <Button>Click me</Button>;
1186
+ }`,language:"tsx"})});case"language-switcher":return a.jsxs("div",{className:"vx-preview-stack",children:[a.jsx("div",{className:"vx-preview-inline",children:a.jsx(ju,{variant:"inline"})}),a.jsx(rt,{variant:"info",title:r?"全局语言切换":"Global language switch",children:r?"切换语言后,文档内所有 UI 文案同步更新。":"Switching locale updates all UI copy across the entire docs surface."})]});case"form-controls":return a.jsxs("div",{className:"vx-preview-stack",children:[a.jsx(st,{label:r?"项目名称":"Project name",value:"VXUI Workspace",readOnly:!0}),a.jsx(wt,{label:r?"发布通道":"Release track",value:"stable",onChange:()=>{},placeholder:r?"选择通道…":"Select track…",options:[{value:"stable",label:"Stable"},{value:"preview",label:"Preview"},{value:"internal",label:"Internal"}]}),a.jsx(wt,{label:r?"部署环境":"Environment",value:void 0,onChange:()=>{},clearable:!0,searchable:4,placeholder:r?"选择环境…":"Select environment…",options:[{value:"prod",label:r?"生产":"Production"},{value:"staging",label:r?"预发布":"Staging"},{value:"preview",label:r?"预览":"Preview"},{value:"dev",label:r?"开发":"Development"}]}),a.jsx(qg,{label:r?"技术栈":"Tech stack",value:["react","typescript"],onChange:()=>{},clearable:!0,options:[{value:"react",label:"React"},{value:"typescript",label:"TypeScript"},{value:"vite",label:"Vite"},{value:"css",label:"CSS"}]}),a.jsx(Ig,{label:r?"部署时间":"Deploy time",value:void 0,onChange:()=>{},placeholder:r?"选择时间":"Select time"}),a.jsx(mo,{label:r?"变更摘要":"Change summary",value:r?"整合移动端与桌面端资源。":"Consolidate mobile and desktop resources.",readOnly:!0,resize:"none"}),a.jsxs("div",{style:{borderTop:"1px solid var(--vx-border)",paddingTop:16},children:[a.jsx("p",{style:{fontSize:11,fontWeight:700,textTransform:"uppercase",letterSpacing:"0.06em",color:"var(--vx-text-muted)",margin:"0 0 12px"},children:r?"堆叠验证":"Stacking verification"}),a.jsxs("div",{style:{display:"grid",gap:12},children:[a.jsx(wt,{label:r?"来源区域":"Source region",value:void 0,onChange:()=>{},placeholder:r?"选择区域…":"Select region…",options:[{value:"us-east-1",label:"US East"},{value:"us-west-2",label:"US West"},{value:"eu-west-1",label:"EU West"}]}),a.jsx(wt,{label:r?"目标区域":"Target region",value:void 0,onChange:()=>{},placeholder:r?"选择区域…":"Select region…",options:[{value:"us-east-1",label:"US East"},{value:"us-west-2",label:"US West"},{value:"eu-west-1",label:"EU West"}]})]})]})]});case"form-inputs":return a.jsx(uS,{isZh:r});case"toggle":return a.jsxs("div",{className:"vx-preview-stack",children:[a.jsxs("div",{className:"vx-preview-inline",style:{marginBottom:12},children:[a.jsx($a,{defaultPressed:!1,children:a.jsx(Ct,{size:"sm",children:r?"加粗":"Bold"})}),a.jsx($a,{children:a.jsx(Ct,{size:"sm",children:r?"斜体":"Italic"})}),a.jsx($a,{children:a.jsx(Ct,{size:"sm",children:r?"下划线":"Underline"})})]}),a.jsx(Fu,{type:"single",defaultValue:"grid",items:[{value:"grid",label:r?"网格":"Grid"},{value:"list",label:r?"列表":"List"},{value:"table",label:r?"表格":"Table"}]})]});case"rating":return a.jsx("div",{className:"vx-preview-stack",children:a.jsxs("div",{className:"vx-preview-inline",style:{flexDirection:"column",gap:16},children:[a.jsx(ai,{defaultValue:3.5,allowHalf:!0}),a.jsx(ai,{defaultValue:4,size:"sm"}),a.jsx(ai,{defaultValue:5,size:"lg",readOnly:!0})]})});case"label":return a.jsxs("div",{className:"vx-preview-stack",style:{display:"grid",gap:12,maxWidth:320},children:[a.jsxs("div",{style:{display:"grid",gap:4},children:[a.jsx(ti,{required:!0,children:r?"电子邮箱":"Email"}),a.jsx(st,{placeholder:"name@example.com"})]}),a.jsxs("div",{style:{display:"grid",gap:4},children:[a.jsx(ti,{children:r?"备注(选填)":"Notes (optional)"}),a.jsx(st,{placeholder:r?"添加备注...":"Add notes..."})]})]});case"date-pickers":return a.jsxs("div",{className:"vx-preview-stack",style:{display:"grid",gap:16,maxWidth:320},children:[a.jsx(wo,{label:r?"开始日期":"Start date"}),a.jsx(wo,{label:r?"结束日期":"End date",weekStartsOnMonday:!0})]});case"file-upload":return a.jsx("div",{className:"vx-preview-stack",style:{maxWidth:480},children:a.jsx(So,{multiple:!0,label:r?"上传附件":"Upload attachments",hint:r?"支持多文件上传,单文件最大 10MB":"Multiple files allowed, up to 10MB each",accept:"image/*,.pdf"})});case"color-picker":return a.jsx("div",{className:"vx-preview-stack",style:{maxWidth:480},children:a.jsx($g,{label:r?"主题色":"Theme color"})});case"form":return a.jsx("div",{className:"vx-preview-stack",children:a.jsxs(Ug,{style:{display:"grid",gap:16,maxWidth:400},children:[a.jsxs(xo,{children:[a.jsx(bo,{required:!0,children:r?"邮箱":"Email"}),a.jsx(Pg,{children:r?"我们不会分享你的邮箱。":"We will never share your email."}),a.jsx(st,{type:"email",placeholder:"name@example.com"}),a.jsx(yo,{})]}),a.jsxs(xo,{children:[a.jsx(bo,{required:!0,children:r?"密码":"Password"}),a.jsx(st,{type:"password",placeholder:"••••••••"}),a.jsx(yo,{})]}),a.jsx(ue,{type:"submit",children:r?"提交":"Submit"})]})});case"calendar":return a.jsxs("div",{className:"vx-preview-stack",style:{display:"grid",gap:16},children:[a.jsx(ri,{}),a.jsx(ri,{weekStartsOnMonday:!0})]});case"shell-sidebar":return a.jsx("div",{className:"vx-preview-stack",children:a.jsx("div",{style:{background:"var(--vx-surface)",border:"1px solid var(--vx-border)",borderRadius:"var(--vx-radius-lg)",overflow:"hidden"},children:a.jsxs(qu,{label:r?"导航示例":"Navigation demo",children:[a.jsx(Ar,{title:r?"快速开始":"Getting started",children:a.jsx(jt,{label:r?"介绍":"Introduction",active:!0,onSelect:()=>{}})}),a.jsxs(Ar,{title:r?"组件":"Components",children:[a.jsxs(jt,{label:r?"表单控件":"Form controls",defaultOpen:!0,onSelect:()=>{},children:[a.jsx(jt,{label:r?"输入框":"Input",onSelect:()=>{}}),a.jsx(jt,{label:r?"多选框":"MultiSelect",onSelect:()=>{}}),a.jsx(jt,{label:r?"时间选择器":"TimePicker",onSelect:()=>{}})]}),a.jsxs(jt,{label:r?"叠层浮层":"Overlays",onSelect:()=>{},children:[a.jsx(jt,{label:r?"对话框":"Dialog",onSelect:()=>{}}),a.jsx(jt,{label:r?"抽屉":"Sheet",onSelect:()=>{}})]}),a.jsx(jt,{label:r?"导航":"Navigation",onSelect:()=>{}})]})]})})});case"grid-page":return a.jsx("div",{className:"vx-stats-grid",children:[{label:r?"模板数":"Templates",value:"6",hint:r?"完整页面示例":"Full-page examples"},{label:r?"文档数":"Docs",value:"70+",hint:r?"交互式文档页":"Interactive doc pages"},{label:r?"断点数":"Breakpoints",value:"3",hint:r?"响应式适配":"Responsive adaptation"},{label:r?"主题数":"Themes",value:"6",hint:r?"开箱即用":"Out of the box"}].map(u=>a.jsxs("div",{className:"vx-stats-grid__item",children:[a.jsx("span",{children:u.label}),a.jsx("strong",{children:u.value}),a.jsx("small",{children:u.hint})]},u.label))});case"nav-layout":return a.jsxs("div",{className:"vx-preview-stack",children:[a.jsx(go,{items:[{label:"Home"},{label:"Components"},{label:"Navigation"}]}),a.jsx(_o,{menus:[{label:"File",items:[{label:"New",shortcut:"⌘N"},{label:"Open...",shortcut:"⌘O"},{label:"Exit",danger:!0}]},{label:"Edit",items:[{label:"Undo",shortcut:"⌘Z"},{label:"Redo",shortcut:"⇧⌘Z"}]}]}),a.jsx(ei,{}),a.jsx(Ra,{maxHeight:100,style:{border:"1px solid var(--vx-color-border)",borderRadius:"var(--vx-radius-md)",padding:16},children:(r?"此区域展示了 ScrollArea 组件的用法。":"This area demonstrates the ScrollArea component. ").repeat(20)}),a.jsx(zr,{defaultOpen:["hierarchy"],items:[{key:"hierarchy",title:r?"层级保持一致":"Hierarchy stays consistent",content:r?"所有断点共享同一路由。":"Every breakpoint shares the same route tree."},{key:"density",title:r?"壳层只调密度":"Shell adjusts density",content:r?"导航抽屉、顶部工具区和内容栅格按宽度变化。":"The drawer, header tools, and content grids adapt by width."}]})]});case"scroll-area":return a.jsxs("div",{className:"vx-preview-stack",children:[a.jsx("p",{style:{fontSize:13,fontWeight:600,color:"var(--vx-text-secondary)",margin:0},children:r?"场景一:Overlay 模式(默认)":"Scene 1: Overlay mode (default)"}),a.jsx(Ra,{maxHeight:160,style:{border:"1px solid var(--vx-color-border)",borderRadius:8},children:Array.from({length:10},(u,S)=>a.jsx("div",{style:{padding:"8px 12px",borderBottom:"1px solid var(--vx-color-border)"},children:r?`日志行 ${S+1}`:`Log line ${S+1}`},S))}),a.jsx(Wn,{code:r?`<ScrollArea maxHeight={160}>
1187
+ {/* 默认 variant="overlay" */}
1188
+ {...children}
1189
+ </ScrollArea>`:`<ScrollArea maxHeight={160}>
1190
+ {/* Default variant="overlay" */}
1191
+ {...children}
1192
+ </ScrollArea>`}),a.jsx("p",{style:{fontSize:13,fontWeight:600,color:"var(--vx-text-secondary)",margin:0},children:r?"场景二:Native 模式":"Scene 2: Native mode"}),a.jsx(Ra,{variant:"native",maxHeight:160,style:{border:"1px solid var(--vx-color-border)",borderRadius:8},children:Array.from({length:10},(u,S)=>a.jsx("div",{style:{padding:"8px 12px",borderBottom:"1px solid var(--vx-color-border)"},children:r?`日志行 ${S+1}`:`Log line ${S+1}`},S))}),a.jsx(Wn,{code:r?`<ScrollArea variant="native" maxHeight={160}>
1193
+ {/* 浏览器原生滚动条 */}
1194
+ {...children}
1195
+ </ScrollArea>`:`<ScrollArea variant="native" maxHeight={160}>
1196
+ {/* Native browser scrollbar */}
1197
+ {...children}
1198
+ </ScrollArea>`}),a.jsx("p",{style:{fontSize:13,fontWeight:600,color:"var(--vx-text-secondary)",margin:0},children:r?"场景三:水平 + 垂直滚动":"Scene 3: Horizontal + vertical scroll"}),a.jsx(Ra,{maxHeight:120,maxWidth:300,style:{border:"1px solid var(--vx-color-border)",borderRadius:8,padding:"8px 0"},children:a.jsx("div",{style:{width:500,padding:"0 12px"},children:Array.from({length:6},(u,S)=>a.jsx("div",{style:{padding:"6px 0",borderBottom:"1px solid var(--vx-color-border)",whiteSpace:"nowrap"},children:r?`宽内容行 ${S+1} — 这行文字超出容器宽度因此会触发水平滚动`:`Wide content row ${S+1} — this text exceeds container width so horizontal scroll is triggered`},S))})}),a.jsx(Wn,{code:`<ScrollArea maxHeight={120} maxWidth={300}>
1199
+ <div style={{ width: 500 }}>
1200
+ {/* 宽内容触发水平滚动 */}
1201
+ </div>
1202
+ </ScrollArea>`})]});case"separator":return a.jsxs("div",{className:"vx-preview-stack",children:[a.jsxs("div",{style:{display:"flex",gap:12,alignItems:"center"},children:[a.jsx("span",{children:r?"左":"Left"}),a.jsx(ei,{orientation:"vertical",style:{height:24}}),a.jsx("span",{children:r?"中":"Center"}),a.jsx(ei,{orientation:"vertical",style:{height:24}}),a.jsx("span",{children:r?"右":"Right"})]}),a.jsx(ei,{}),a.jsx("p",{children:r?"水平分隔线上方内容":"Content above the horizontal separator."})]});case"resizable":return a.jsx("div",{className:"vx-preview-stack",children:a.jsx("div",{style:{height:200,border:"1px solid var(--vx-border)",borderRadius:"var(--vx-radius-lg)",overflow:"hidden"},children:a.jsxs(Wg,{direction:"horizontal",children:[a.jsx(Eo,{defaultSize:50,minSize:20,children:a.jsx("div",{style:{padding:16,height:"100%",display:"flex",alignItems:"center",justifyContent:"center"},children:r?"左侧面板":"Left panel"})}),a.jsx(Zg,{}),a.jsx(Eo,{defaultSize:50,minSize:20,children:a.jsx("div",{style:{padding:16,height:"100%",display:"flex",alignItems:"center",justifyContent:"center"},children:r?"右侧面板":"Right panel"})})]})})});case"breadcrumb":return a.jsx("div",{className:"vx-preview-stack",children:a.jsx(go,{items:[{label:r?"首页":"Home",href:"#"},{label:r?"组件":"Components",href:"#"},{label:r?"导航":"Navigation"}]})});case"data-display":return a.jsxs("div",{className:"vx-preview-stack",children:[a.jsxs("div",{className:"vx-preview-inline",children:[a.jsx(Ut,{name:"Alice Chen",size:"sm"}),a.jsx(Ut,{name:"Bo Wang",size:"md"}),a.jsx(Ut,{name:"Cora Lin",size:"lg"})]}),a.jsx(dt,{columns:[{key:"name",header:r?"角色":"Role",accessor:u=>u.name},{key:"scope",header:"Scope",accessor:u=>u.scope}],data:[{name:r?"设计系统":"Design system",scope:r?"公共组件":"Shared primitives"},{name:r?"文档库":"Documentation",scope:r?"内容导航":"Content navigation"}]}),a.jsx(No,{items:[{title:r?"已创建":"Created",time:"10:00 AM"},{title:r?"处理中":"Processing",time:"10:05 AM"},{title:r?"已完成":"Completed",time:"10:15 AM"}]}),a.jsx(Co,{items:[a.jsx("div",{style:{display:"flex",alignItems:"center",justifyContent:"center",height:100,background:"var(--vx-surface-elevated)",borderRadius:"var(--vx-radius-md)"},children:"Slide 1"},"1"),a.jsx("div",{style:{display:"flex",alignItems:"center",justifyContent:"center",height:100,background:"var(--vx-surface-elevated)",borderRadius:"var(--vx-radius-md)"},children:"Slide 2"},"2")]})]});case"data-list":return a.jsx(dt,{columns:[{key:"name",header:r?"页面":"Screen",accessor:u=>u.name},{key:"status",header:r?"状态":"Status",accessor:u=>a.jsx(He,{variant:u.v,children:u.status})},{key:"updated",header:r?"更新时间":"Updated",accessor:u=>u.updated}],data:[{name:(b=(x=d["home-page"])==null?void 0:x.title)!=null?b:"Home",status:r?"已整合":"Unified",updated:"2026-05-08",v:"success"},{name:(y=(g=d["error-page"])==null?void 0:g.title)!=null?y:"Error",status:r?"新增":"New",updated:"2026-05-08",v:"accent"},{name:(k=(j=d.mobile)==null?void 0:j.title)!=null?k:"Mobile",status:r?"已重写":"Reframed",updated:"2026-05-08",v:"warning"}]});case"table":{const u=U=>a.jsx("div",{className:"vx-table-demo-section",children:a.jsx("p",{children:U})}),S=r?["设计师","工程师","产品经理","测试"]:["Designer","Engineer","Product manager","QA"],N=r?["设计系统","平台","增长","基础架构"]:["Design system","Platform","Growth","Infrastructure"],z=r?["在岗","休假","出差"]:["Active","On leave","On site"],V=Array.from({length:200},(U,F)=>({id:F+1,name:`User-${String(F+1).padStart(3,"0")}`,role:S[F%S.length],team:N[F%N.length],status:z[F%z.length],score:F*37%100})),O=[{key:"id",header:r?"编号":"ID",accessor:U=>U.id,sortable:!0,width:80,align:"right"},{key:"name",header:r?"姓名":"Name",accessor:U=>U.name,sortable:!0},{key:"role",header:r?"角色":"Role",accessor:U=>U.role,filterable:!0},{key:"team",header:r?"团队":"Team",accessor:U=>U.team,filterable:!0},{key:"status",header:r?"状态":"Status",accessor:U=>a.jsx(He,{variant:U.status==="Active"||U.status==="在岗"?"success":"warning",children:U.status}),sortable:!0,filterable:!0},{key:"score",header:r?"得分":"Score",accessor:U=>U.score,align:"right",sortable:!0}],Q=r?"在岗":"Active";return a.jsxs("div",{className:"vx-preview-stack",children:[a.jsx(dt,{columns:[{key:"name",header:r?"名称":"Name",accessor:U=>U.name},{key:"role",header:r?"角色":"Role",accessor:U=>U.role},{key:"status",header:r?"状态":"Status",accessor:U=>a.jsx(He,{variant:U.status===Q?"success":"warning",children:U.status})}],data:[{name:"Alice Chen",role:r?"设计师":"Designer",status:Q},{name:"Bo Wang",role:r?"工程师":"Engineer",status:Q}],striped:!0,bordered:!0}),u(r?"视觉变体":"Variants"),a.jsx(dt,{variant:"dark",striped:!0,hoverable:!0,columns:[{key:"name",header:r?"名称":"Name",accessor:U=>U.name},{key:"role",header:r?"角色":"Role",accessor:U=>U.role}],data:[{name:"Alice Chen",role:r?"高级工程师":"Senior Engineer"},{name:"Bo Wang",role:r?"设计主管":"Design Lead"}]}),a.jsx(dt,{variant:"outline",striped:!0,hoverable:!0,columns:[{key:"name",header:r?"名称":"Name",accessor:U=>U.name},{key:"role",header:r?"角色":"Role",accessor:U=>U.role}],data:[{name:"Cora Lin",role:r?"产品经理":"PM"},{name:"Dan Xu",role:r?"测试工程师":"QA Engineer"}]}),u(r?"行选择":"Row Selection"),a.jsx(dt,{selectable:!0,striped:!0,hoverable:!0,columns:[{key:"name",header:r?"名称":"Name",accessor:U=>U.name},{key:"role",header:r?"角色":"Role",accessor:U=>U.role}],data:[{name:"Alice Chen",role:r?"设计师":"Designer"},{name:"Bo Wang",role:r?"工程师":"Engineer"},{name:"Cora Lin",role:r?"产品经理":"PM"}]}),u(r?"嵌入与边框控制":"Embedding & Borders"),a.jsxs("div",{style:{marginBottom:12},children:[a.jsx("p",{style:{fontSize:13,fontWeight:600,color:"var(--vx-text-secondary)",margin:"0 0 8px"},children:r?"flush 模式(嵌入 Card 等容器)":"Flush mode (for embedding in containers)"}),a.jsx(dt,{flush:!0,hoverable:!0,columns:[{key:"name",header:r?"名称":"Name",accessor:U=>U.name},{key:"role",header:r?"角色":"Role",accessor:U=>U.role}],data:[{name:"Alice Chen",role:r?"设计师":"Designer"},{name:"Bo Wang",role:r?"工程师":"Engineer"}]})]}),a.jsx("p",{style:{fontSize:13,fontWeight:600,color:"var(--vx-text-secondary)",margin:"0 0 8px"},children:r?"移除底部边框(无缝衔接下方内容)":"Remove bottom border (seamless continuation)"}),a.jsx(dt,{removeBorders:["bottom"],columns:[{key:"name",header:r?"名称":"Name",accessor:U=>U.name},{key:"role",header:r?"角色":"Role",accessor:U=>U.role}],data:[{name:"Alice",role:r?"设计师":"Designer"},{name:"Bo",role:r?"工程师":"Engineer"}]}),u(r?"搜索与筛选":"Search & Filter"),a.jsx(dt,{columns:O,data:V,stickyHeader:!0,stickyFilter:!0,striped:!0,hoverable:!0,filterable:!0,style:{maxHeight:360,overflow:"auto"},caption:r?`成员名单 · ${V.length} 人`:`Roster · ${V.length} members`})]})}case"timeline":return a.jsx("div",{className:"vx-preview-stack",children:a.jsx(No,{items:[{title:r?"订单已创建":"Order created",time:"09:42",status:"success"},{title:r?"支付成功":"Payment confirmed",time:"09:43",status:"info"},{title:r?"配送中":"Shipping",time:"10:15",status:"warning"},{title:r?"已签收":"Delivered",time:"14:30",status:"default"}]})});case"tree-view":return a.jsx("div",{className:"vx-preview-stack",children:a.jsx(Xg,{nodes:[{id:"src",label:"src",children:[{id:"components",label:"components",children:[{id:"btn",label:"Button.tsx"},{id:"card",label:"Card.tsx"}]},{id:"pages",label:"pages",children:[{id:"home",label:"Home.tsx"},{id:"about",label:"About.tsx"}]}]},{id:"public",label:"public",children:[{id:"index",label:"index.html"}]}],defaultExpanded:["src","components","pages"]})});case"carousel":return a.jsx("div",{className:"vx-preview-stack",children:a.jsx("div",{style:{maxWidth:400},children:a.jsx(Co,{items:[a.jsx("div",{style:{padding:40,textAlign:"center",background:"var(--vx-surface)",borderRadius:"var(--vx-radius-md)"},children:r?"第一张":"Slide 1"},"1"),a.jsx("div",{style:{padding:40,textAlign:"center",background:"var(--vx-surface-hover)",borderRadius:"var(--vx-radius-md)"},children:r?"第二张":"Slide 2"},"2"),a.jsx("div",{style:{padding:40,textAlign:"center",background:"var(--vx-surface)",borderRadius:"var(--vx-radius-md)"},children:r?"第三张":"Slide 3"},"3")],showDots:!0,showArrows:!0})})});case"card":return a.jsx("div",{className:"vx-preview-stack",children:a.jsxs("div",{className:"vx-preview-inline vx-preview-inline--wrap",children:[a.jsxs($t,{variant:"default",padding:"md",children:[a.jsxs(sa,{children:[a.jsx(ra,{children:"Default"}),a.jsx(la,{children:"Standard card."})]}),a.jsx(oa,{children:"Content."})]}),a.jsxs($t,{variant:"elevated",padding:"md",hoverable:!0,children:[a.jsxs(sa,{children:[a.jsx(ra,{children:"Elevated"}),a.jsx(la,{children:"Interactive."})]}),a.jsx(oa,{children:"Hover over this card."})]}),a.jsxs($t,{variant:"outlined",padding:"md",children:[a.jsxs(sa,{children:[a.jsx(ra,{children:"Outlined"}),a.jsx(la,{children:"Bordered."})]}),a.jsx(oa,{children:"Content."})]})]})});case"accordion":return a.jsx("div",{className:"vx-preview-stack",children:a.jsx(zr,{defaultOpen:["getting-started"],items:[{key:"getting-started",title:r?"快速开始":"Getting Started",content:r?"安装包并配置 Provider。":"Install the package and set up providers."},{key:"components",title:r?"组件库":"Components",content:r?"按分类浏览全部组件。":"Browse the full component library."},{key:"templates",title:r?"页面模板":"Templates",content:r?"可直接引入项目的预置页面布局。":"Pre-built page layouts."}]})});case"tabs":return a.jsx("div",{className:"vx-preview-stack",children:a.jsxs(Cs,{defaultValue:"preview",children:[a.jsxs(Ts,{children:[a.jsx(Kt,{value:"preview",children:r?"预览":"Preview"}),a.jsx(Kt,{value:"code",children:r?"代码":"Code"}),a.jsx(Kt,{value:"props",children:r?"属性":"Props"})]}),a.jsx(Qt,{value:"preview",children:r?"实时预览组件效果。":"Preview the component in real time."}),a.jsx(Qt,{value:"code",children:r?"查看源代码并复制到项目中使用。":"View the source code."}),a.jsx(Qt,{value:"props",children:r?"浏览完整的 API 参考。":"Browse the full API reference."})]})});case"pagination":return a.jsx("div",{className:"vx-preview-stack",children:a.jsx(vv,{initialPage:1,total:48,pageSize:10})});case"stepper":return a.jsx("div",{className:"vx-preview-stack",children:a.jsx(ko,{currentStep:1,steps:[{label:r?"规划":"Plan",description:r?"确定需求和目标":"Define requirements & goals"},{label:r?"开发":"Build",description:r?"编码与测试":"Code & test"},{label:r?"发布":"Launch",description:r?"部署上线":"Deploy to production"}]})});case"alert":return a.jsxs("div",{className:"vx-preview-stack",children:[a.jsx(rt,{title:r?"提示信息":"Information",variant:"info",children:r?"这是一条提示信息。":"This is an informational message."}),a.jsx(rt,{title:r?"操作成功":"Success",variant:"success",children:r?"操作已成功完成。":"Operation completed successfully."}),a.jsx(rt,{title:r?"错误":"Error",variant:"danger",children:r?"出错了,请重试。":"Something went wrong."})]});case"progress":return a.jsxs("div",{className:"vx-preview-stack",children:[a.jsx(Tt,{label:r?"默认":"Default",showLabel:!0,value:68}),a.jsx(Tt,{label:r?"成功":"Success",showLabel:!0,value:68,variant:"success"}),a.jsx(Tt,{label:r?"警告":"Warning",showLabel:!0,value:68,variant:"warning"}),a.jsx(Tt,{label:r?"危险":"Danger",showLabel:!0,value:68,variant:"danger"})]});case"spinner":return a.jsxs("div",{className:"vx-preview-inline vx-preview-inline--wrap",children:[a.jsx(Na,{size:"sm"}),a.jsx(Na,{size:"md"}),a.jsx(Na,{size:"lg"})]});case"feedback":return a.jsxs("div",{className:"vx-preview-stack",children:[a.jsx(rt,{title:r?"迁��进度":"Migration progress",variant:"info",children:r?"响应式壳层、模板页面和文档内容库已经收敛到同一套运行时。":"The responsive shell, template pages, and docs library now share the same runtime."}),a.jsx(Tt,{label:r?"默认":"Default",showLabel:!0,value:68}),a.jsx(Tt,{label:r?"成功":"Success",showLabel:!0,value:68,variant:"success"}),a.jsx(Tt,{label:r?"警告":"Warning",showLabel:!0,value:68,variant:"warning"}),a.jsx(Tt,{label:r?"危险":"Danger",showLabel:!0,value:68,variant:"danger"}),a.jsx(Tt,{label:r?"炫彩":"Rainbow",showLabel:!0,value:68,variant:"rainbow",size:"lg"}),a.jsxs("div",{className:"vx-doc-skeleton-grid",children:[a.jsx(Xa,{lines:3,variant:"text"}),a.jsx(Xa,{height:92})]}),a.jsxs("div",{className:"vx-preview-stack__group",children:[a.jsxs("div",{className:"vx-preview-inline",children:[a.jsx(Na,{size:"sm"}),a.jsx(Na,{size:"md"}),a.jsx(Na,{size:"lg"})]}),a.jsx(ko,{currentStep:2,steps:[{label:"Step 1"},{label:"Step 2"},{label:"Step 3"}]})]})]});case"toasts":return a.jsxs("div",{className:"vx-preview-inline vx-preview-inline--wrap",children:[a.jsx(ue,{onClick:()=>f==null?void 0:f({tone:"info",title:r?"文档树已同步":"Docs tree synced",description:r?"所有页面已映射到统一壳层。":"Every page is mapped to the unified shell."}),children:r?"信息提示":"Info toast"}),a.jsx(ue,{variant:"secondary",onClick:()=>f==null?void 0:f({tone:"success",title:r?"路由更新完成":"Route update complete",description:r?"桌面端、平板和手机已共享同一套页面定义。":"Desktop, tablet, and phone now share one page definition set."}),children:r?"成功提示":"Success toast"})]});case"empty-states":return a.jsxs("div",{className:"vx-empty",children:[a.jsx("div",{className:"vx-empty__icon",children:a.jsx(Ba,{size:20})}),a.jsx("strong",{children:r?"这里暂时没有内容":"Nothing lives here yet"}),a.jsx("p",{children:r?"空状态与错误页共享同一套视觉策略。":"Empty states share the same visual language."})]});case"dialog":{const u=()=>{const[V,O]=m.useState(!1);return a.jsxs(a.Fragment,{children:[a.jsx(ue,{onClick:()=>O(!0),children:r?"打开对话框":"Open dialog"}),a.jsx(Ga,{title:r?"确认操作":"Confirm action",description:r?"请确认此操作。":"Please confirm this operation.",open:V,onOpenChange:O,confirmLabel:r?"确认":"Confirm",cancelLabel:r?"取消":"Cancel",children:r?"此操作将立即生效。":"This action will be applied immediately."})]})},S=()=>{const[V,O]=m.useState(!1),[Q,U]=m.useState();return a.jsxs(a.Fragment,{children:[a.jsx(ue,{onClick:()=>O(!0),children:r?"创建用户":"Create User"}),a.jsx(Ga,{title:r?"新建用户":"New User",open:V,onOpenChange:O,onConfirm:()=>{console.log({role:Q}),O(!1)},onCancel:()=>O(!1),children:a.jsxs("div",{style:{display:"flex",flexDirection:"column",gap:12},children:[a.jsx(st,{label:r?"姓名":"Name",placeholder:r?"全名":"Full name"}),a.jsx(st,{label:"Email",placeholder:"user@example.com"}),a.jsx(wt,{label:r?"角色":"Role",placeholder:r?"选择角色":"Choose a role",options:[{value:"admin",label:r?"管理员":"Admin"},{value:"editor",label:r?"编辑者":"Editor"},{value:"viewer",label:r?"观察者":"Viewer"}],value:Q,onChange:U})]})})]})},N=()=>{const[V,O]=m.useState(!1);return a.jsxs(a.Fragment,{children:[a.jsx(ue,{onClick:()=>O(!0),children:r?"侧边面板":"Side panel"}),a.jsx(Ga,{placement:"right",title:r?"侧边面板":"Side panel",open:V,onOpenChange:O,children:r?"固定在右侧边缘的对话框。":"A dialog anchored to the right edge."})]})},z=()=>{const[V,O]=m.useState(!1),[Q,U]=m.useState(),[F,ie]=m.useState(),[fe,Z]=m.useState(3),[P,$]=m.useState(["设计","前端"]);return a.jsxs(a.Fragment,{children:[a.jsx(ue,{onClick:()=>O(!0),children:r?"滚动测试":"Scroll test"}),a.jsx(Ga,{title:r?"滚动测试":"Scroll test",description:r?"当内容超出弹窗最大高度时,主体区域会出现滚动条。":"When content exceeds the dialog max height, the body becomes scrollable.",open:V,onOpenChange:O,onConfirm:()=>O(!1),onCancel:()=>O(!1),confirmLabel:r?"提交":"Submit",cancelLabel:r?"取消":"Cancel",children:a.jsxs("div",{style:{display:"flex",flexDirection:"column",gap:14},children:[a.jsx(st,{label:r?"项目名称":"Project name",placeholder:r?"输入项目名称":"Enter project name"}),a.jsx(st,{label:"Email",placeholder:"owner@example.com"}),a.jsx(jo,{label:r?"预算(元)":"Budget (CNY)",min:0,defaultValue:5e3}),a.jsx(wt,{label:r?"负责人":"Owner",placeholder:r?"选择负责人":"Choose an owner",options:[{value:"alice",label:"Alice"},{value:"bob",label:"Bob"},{value:"carol",label:"Carol"}],value:Q,onChange:U}),a.jsx(wt,{label:r?"优先级":"Priority",placeholder:r?"选择优先级":"Choose priority",options:[{value:"low",label:r?"低":"Low"},{value:"medium",label:r?"中":"Medium"},{value:"high",label:r?"高":"High"}],value:F,onChange:ie}),a.jsx(mo,{label:r?"项目描述":"Description",placeholder:r?"简要描述项目目标…":"Briefly describe the project goal…",rows:3}),a.jsx(To,{label:r?"标签":"Tags",placeholder:r?"输入后回车":"Press Enter to add",value:P,onChange:$}),a.jsxs("div",{style:{display:"flex",flexDirection:"column",gap:6},children:[a.jsx(ti,{children:r?"评分":"Rating"}),a.jsx(ai,{value:fe,onChange:Z})]}),a.jsx(ho,{label:r?"完成度":"Progress",min:0,max:100,defaultValue:40,showValue:!0}),a.jsxs("div",{style:{display:"flex",flexDirection:"column",gap:6},children:[a.jsx(ti,{children:r?"类型":"Type"}),a.jsxs(fo,{children:[a.jsx(ka,{value:"feature",label:r?"功能":"Feature"}),a.jsx(ka,{value:"bug",label:r?"缺陷":"Bug"}),a.jsx(ka,{value:"task",label:r?"任务":"Task"})]})]}),a.jsx(Ya,{label:r?"启用通知":"Enable notifications",defaultChecked:!0}),a.jsx(Ya,{label:r?"公开可见":"Publicly visible"}),a.jsx(Oa,{label:r?"我已阅读并同意服务条款":"I have read and agree to the terms of service"}),a.jsx(Oa,{label:r?"订阅产品更新邮件":"Subscribe to product update emails",defaultChecked:!0})]})})]})};return a.jsx("div",{className:"vx-preview-stack",style:{gap:12},children:a.jsxs("div",{className:"vx-preview-inline vx-preview-inline--wrap",style:{gap:8},children:[a.jsx(u,{}),a.jsx(S,{}),a.jsx(N,{}),a.jsx(z,{})]})})}case"sheet":return a.jsx("div",{className:"vx-preview-stack",children:a.jsx("div",{className:"vx-preview-inline",children:a.jsx(it,{trigger:a.jsx(ue,{children:r?"打开面板":"Open panel"}),title:r?"侧滑面板":"Sheet panel",description:r?"这是从右侧滑入的面板。":"This panel slides in from the right.",side:"right",children:a.jsx("div",{style:{padding:16},children:r?"面板内容":"Panel content"})})})});case"popover":return a.jsx("div",{className:"vx-preview-stack",children:a.jsx("div",{className:"vx-preview-inline vx-preview-inline--wrap",children:a.jsx(vo,{content:a.jsx("div",{style:{padding:8},children:r?"弹出内容,提供额外信息。":"Popover content."}),children:a.jsx(ue,{variant:"secondary",children:r?"点击打开":"Click me"})})})});case"tooltip":return a.jsx("div",{className:"vx-preview-stack",children:a.jsxs("div",{className:"vx-preview-inline vx-preview-inline--wrap",children:[a.jsx(Es,{content:r?"这是一个工具提示":"This is a tooltip",children:a.jsx(ue,{variant:"secondary",children:r?"悬停查看":"Hover me"})}),a.jsx(Es,{content:r?"顶部提示":"Top tooltip",placement:"top",children:a.jsx(ue,{variant:"ghost",children:r?"顶部":"Top"})})]})});case"hover-card":return a.jsx("div",{className:"vx-preview-stack",children:a.jsx("div",{className:"vx-preview-inline vx-preview-inline--wrap",children:a.jsx(Fg,{content:a.jsxs("div",{style:{padding:12,maxWidth:220},children:[a.jsx("strong",{children:r?"用户资料":"User profile"}),a.jsx("p",{style:{margin:"4px 0 0",color:"var(--vx-text-secondary)"},children:r?"无需导航即可预览更多上下文。":"Preview additional context."})]}),children:a.jsx(ue,{variant:"secondary",children:r?"悬停查看":"Hover me"})})})});case"dropdown-menu":return a.jsx("div",{className:"vx-preview-stack",children:a.jsx(dS,{isZh:r})});case"context-menu":return a.jsx("div",{className:"vx-preview-stack",children:a.jsx("div",{className:"vx-preview-inline",children:a.jsx(Vg,{items:[{label:r?"复制":"Copy",onClick:()=>{}},{label:r?"粘贴":"Paste",onClick:()=>{}},{label:r?"删除":"Delete",danger:!0,onClick:()=>{}}],children:a.jsx("div",{style:{padding:"2rem 3rem",border:"1px dashed var(--vx-color-border)",borderRadius:"var(--vx-radius-md)",textAlign:"center",color:"var(--vx-text-secondary)"},children:r?"在此区域右键点击":"Right-click this area"})})})});case"overlays":return a.jsxs("div",{className:"vx-preview-inline vx-preview-inline--wrap",children:[a.jsx(Ga,{trigger:a.jsx(ue,{variant:"secondary",children:r?"打开对话框":"Open dialog"}),title:r?"删除项目":"Delete project",description:r?"此操作将移除所有成员的访问权限。":"This action removes access for the whole team.",confirmLabel:r?"删除":"Delete",cancelLabel:r?"取消":"Cancel",confirmVariant:"danger",children:a.jsx("div",{style:{padding:"4px 0",lineHeight:1.5,color:"var(--vx-text-secondary)"},children:r?"此项目将被永久删除且无法恢复。":"This project will be removed permanently and cannot be recovered."})}),a.jsx(vo,{content:a.jsx("div",{children:r?"Popover 用于补充上下文。":"Popover adds context."}),children:a.jsx(ue,{variant:"secondary",children:"Popover"})}),a.jsx(wn,{trigger:a.jsx(ue,{variant:"secondary",children:r?"更多操作":"More actions"}),items:[{label:r?"打开首页":"Open home",onClick:()=>v({view:"home"})},{label:r?"打开文档":"Open docs",onClick:()=>v({view:"docs",page:"introduction"})}]}),a.jsx(it,{trigger:a.jsx(ue,{variant:"secondary",size:"sm",children:r?"底部抽屉":"Bottom sheet"}),title:r?"通知设置":"Notifications",side:"bottom",children:a.jsxs("div",{className:"vx-stack",children:[a.jsx(Ya,{label:r?"邮件通知":"Email notifications",defaultChecked:!0}),a.jsx(Ya,{label:r?"推送通知":"Push notifications",defaultChecked:!0})]})}),a.jsx(Es,{content:r?"这是一个工具提示":"This is a tooltip",children:a.jsx(ue,{variant:"ghost",children:r?"工具提示":"Tooltip"})})]});case"command-palette":return a.jsxs("div",{className:"vx-preview-stack",children:[a.jsx("div",{className:"vx-preview-inline",children:a.jsxs(ue,{onClick:()=>{},children:[r?"打开搜索":"Open search",a.jsx("kbd",{className:"vx-search-kbd",children:"⌘K"})]})}),a.jsx(rt,{variant:"info",title:r?"键盘优先":"Keyboard first",children:r?"按下 ⌘K 即可随时唤起命令面板。":"Press ⌘K to open the palette from anywhere."})]});case"navigation":return a.jsxs("div",{className:"vx-preview-stack",children:[a.jsxs(Cs,{defaultValue:"library",children:[a.jsxs(Ts,{children:[a.jsx(Kt,{value:"library",children:r?"组件库":"Library"}),a.jsx(Kt,{value:"templates",children:r?"模板":"Templates"}),a.jsx(Kt,{value:"responsive",children:r?"响应式":"Responsive"})]}),a.jsx(Qt,{value:"library",children:"A lightweight component library. Zero heavy dependencies, themeable, and dark-mode ready."}),a.jsx(Qt,{value:"templates",children:(A=d["home-page"])==null?void 0:A.description}),a.jsx(Qt,{value:"responsive",children:(L=d.mobile)==null?void 0:L.description})]}),a.jsx(vv,{initialPage:4,total:96,pageSize:8})]});case"navigation-menu":return a.jsx("div",{className:"vx-preview-stack",children:a.jsx(Gg,{items:[{label:r?"文档":"Docs",items:[{label:r?"介绍":"Introduction",description:r?"开始使用 VXUI":"Get started",onClick:()=>{}},{label:r?"快速开始":"Quick Start",description:r?"安装和配置":"Install and configure",onClick:()=>{}}]},{label:r?"组件":"Components",items:[{label:"Button",description:r?"主要操作元素":"Primary action",onClick:()=>{}},{label:"Dialog",description:r?"模态叠层":"Modal overlay",onClick:()=>{}}]},{label:r?"模板":"Templates",onClick:()=>{}}]})});case"menubar":return a.jsx("div",{className:"vx-preview-stack",children:a.jsx(_o,{menus:[{label:"File",items:[{label:"New",shortcut:"⌘N",onClick:()=>{}},{label:"Open...",shortcut:"⌘O",onClick:()=>{}},{label:"Save",shortcut:"⌘S",onClick:()=>{}},{label:"Exit",danger:!0,onClick:()=>{}}]},{label:"Edit",items:[{label:"Undo",shortcut:"⌘Z",onClick:()=>{}},{label:"Redo",shortcut:"⇧⌘Z",onClick:()=>{}}]}]})});case"mobile":return a.jsxs("div",{className:"vx-breakpoint-grid",children:[[{label:"Phone",accent:"< 480px",description:r?"单列布局,底部导航,简化数据表。":"Single-column layout, bottom nav, simplified tables."},{label:"Tablet",accent:"480–768px",description:r?"保持可读间距,折叠侧边栏。":"Readable spacing, collapsible sidebar."},{label:"Desktop",accent:"> 768px",description:r?"全功能布局,多列栅格。":"Full-featured layout, multi-column grids."}].map(u=>a.jsxs("div",{className:"vx-breakpoint-card",children:[a.jsx(He,{variant:"accent",children:u.accent}),a.jsx("strong",{children:u.label}),a.jsx("p",{children:u.description})]},u.label)),a.jsx(rt,{title:r?"统一代码基":"Unified codebase",variant:"info",children:r?"桌面端和移动端共享同一套路由树、状态管理和组件定义。":"Desktop and mobile share the same route tree, state management, and component definitions."})]});case"mobile-list":return a.jsx("div",{className:"vx-preview-stack",style:{maxWidth:320,border:"1px solid var(--vx-color-border)",borderRadius:8,overflow:"hidden"},children:a.jsxs(Lr,{children:[a.jsxs(Oi,{title:r?"账户":"Account",children:[a.jsx(La,{label:r?"个人资料":"Profile",chevron:!0,onClick:()=>{}}),a.jsx(La,{label:r?"安全设置":"Security",chevron:!0,onClick:()=>{}})]}),a.jsxs(Oi,{title:r?"偏好":"Preferences",children:[a.jsx(La,{label:r?"通知":"Notifications",trailing:a.jsx(He,{variant:"accent",children:"3"})}),a.jsx(La,{label:r?"主题":"Theme",description:r?"跟随系统":"System",chevron:!0,onClick:()=>{}})]})]})});case"bottom-nav":return a.jsx("div",{className:"vx-preview-stack",style:{maxWidth:400,border:"1px solid var(--vx-color-border)",borderRadius:8,overflow:"hidden"},children:a.jsx("div",{style:{padding:16},children:a.jsx(Mu,{items:[{key:"home",label:r?"首页":"Home",icon:a.jsx(Mi,{size:20}),active:!0},{key:"search",label:r?"搜索":"Search",icon:a.jsx(jn,{size:20})},{key:"alerts",label:r?"通知":"Alerts",icon:a.jsx(Er,{size:20}),badge:3},{key:"profile",label:r?"我的":"Profile",icon:a.jsx(Ns,{size:20})}]})})});case"home-page":case"login-page":case"register-page":case"error-page":case"privacy-policy":case"terms-of-service":{const u={"home-page":r?"打开主页":"Open home","login-page":r?"打开登录":"Open login","register-page":r?"打开注册":"Open register","error-page":r?"打开错误页":"Open error page","privacy-policy":r?"打开隐私政策":"Open privacy policy","terms-of-service":r?"打开服务条款":"Open terms of service"};return a.jsx(cS,{pageKey:s,pageTitle:(E=(D=d[s])==null?void 0:D.title)!=null?E:s,pageDescription:(C=(T=d[s])==null?void 0:T.description)!=null?C:"",onNavigate:v,openPageLabel:(_=u[s])!=null?_:r?"打开页面":"Open page"})}default:return null}}function cu(){if(typeof window=="undefined")return"home";const s=window.location.pathname.replace(/^\/m/,"")||"/";return s==="/login"?"login":s==="/register"?"register":s==="/privacy-policy"?"privacy-policy":s==="/terms-of-service"?"terms-of-service":s.startsWith("/docs")?"docs":"home"}function gv(){if(typeof window=="undefined")return"introduction";const s=window.location.pathname.replace(/^\/m/,"")||"/";if(s.startsWith("/docs/")){const c=s.split("/")[2];if(c)return c}return"introduction"}function xv(){const{t:s,locale:c,setLocale:r}=Mo(),{push:d}=Pu(),{themes:p}=Iv(),f=s.publicPages,v=s.pageDefs,{features:x}=h1(s),b=f1(c),g=m1(c),[y,j]=m.useState(cu),[k,A]=m.useState(gv),[L,D]=m.useState(cu()==="docs"?"docs":"home"),[E,T]=m.useState(""),[C,_]=m.useState(!1),[u,S]=m.useState(!1),N=m.useRef(null);m.useEffect(()=>{if(typeof window=="undefined")return;let J="/m";y==="login"?J="/m/login":y==="register"?J="/m/register":y==="privacy-policy"?J="/m/privacy-policy":y==="terms-of-service"?J="/m/terms-of-service":y==="docs"&&(J=`/m/docs/${k}`),window.location.pathname!==J&&window.history.pushState({mobileView:y,activePage:k},"",J)},[y,k]),m.useEffect(()=>{if(typeof window=="undefined")return;const J=()=>{const I=cu(),he=gv();j(I),A(he),D(I==="docs"?"docs":"home")};return window.addEventListener("popstate",J),()=>window.removeEventListener("popstate",J)},[]);const z=J=>{A(J),j("docs"),D("docs"),_(!1)},V=J=>{j(J),D("home"),_(!1)},O=J=>{D(J),J==="home"?j("home"):J==="docs"&&j("docs")},Q=v[k],U=c==="zh"?"文档":"Docs",F=[{title:s.nav.gettingStarted,collapsible:!0,defaultOpen:!0,items:[{key:"introduction",label:s.pages.introduction,icon:a.jsx(ro,{size:16})}]},{title:s.nav.layout,collapsible:!0,defaultOpen:!0,items:[{key:"quick-start",label:s.pages["quick-start"],icon:a.jsx(oi,{size:16})},{key:"shell-sidebar",label:s.pages["shell-sidebar"],icon:a.jsx(Lv,{size:16})},{key:"grid-page",label:s.pages["grid-page"],icon:a.jsx(Sa,{size:16})},{key:"nav-layout",label:s.pages["nav-layout"],icon:a.jsx(Sa,{size:16})},{key:"scroll-area",label:s.pages["scroll-area"],icon:a.jsx(wa,{size:16})},{key:"separator",label:s.pages.separator,icon:a.jsx(Av,{size:16})},{key:"resizable",label:s.pages.resizable,icon:a.jsx(Ev,{size:16})}]},{title:s.nav.content,collapsible:!0,defaultOpen:!1,items:[{key:"typography",label:s.pages.typography,icon:a.jsx(wa,{size:16})},{key:"badge",label:s.pages.badge,icon:a.jsx(Zn,{size:16})},{key:"avatar",label:s.pages.avatar,icon:a.jsx(Ns,{size:16})},{key:"skeleton",label:s.pages.skeleton,icon:a.jsx(Sa,{size:16})},{key:"card",label:s.pages.card,icon:a.jsx(Sa,{size:16})},{key:"code-block",label:s.pages["code-block"],icon:a.jsx(Tr,{size:16})},{key:"language-switcher",label:s.pages["language-switcher"],icon:a.jsx(Eu,{size:16})}]},{title:s.nav.forms,collapsible:!0,defaultOpen:!1,items:[{key:"form-controls",label:s.pages["form-controls"],icon:a.jsx(ii,{size:16})},{key:"form-inputs",label:s.pages["form-inputs"],icon:a.jsx(ii,{size:16})},{key:"toggle",label:s.pages.toggle,icon:a.jsx(ii,{size:16})},{key:"rating",label:s.pages.rating,icon:a.jsx(pu,{size:16})},{key:"label",label:s.pages.label,icon:a.jsx(Hv,{size:16})},{key:"date-pickers",label:s.pages["date-pickers"],icon:a.jsx(uu,{size:16})},{key:"file-upload",label:s.pages["file-upload"],icon:a.jsx(Du,{size:16})},{key:"color-picker",label:s.pages["color-picker"],icon:a.jsx(li,{size:16})},{key:"form",label:s.pages.form,icon:a.jsx(Sa,{size:16})}]},{title:s.nav.components,collapsible:!0,defaultOpen:!1,items:[{key:"button",label:s.pages.button,icon:a.jsx(co,{size:16})},{key:"elements",label:s.pages.elements,icon:a.jsx(Wh,{size:16})},{key:"accordion",label:s.pages.accordion,icon:a.jsx(yt,{size:16})},{key:"tabs",label:s.pages.tabs,icon:a.jsx(wa,{size:16})},{key:"breadcrumb",label:s.pages.breadcrumb,icon:a.jsx(yt,{size:16})},{key:"pagination",label:s.pages.pagination,icon:a.jsx(yt,{size:16})},{key:"stepper",label:s.pages.stepper,icon:a.jsx(yt,{size:16})},{key:"progress",label:s.pages.progress,icon:a.jsx(yt,{size:16})},{key:"spinner",label:s.pages.spinner,icon:a.jsx(yt,{size:16})},{key:"alert",label:s.pages.alert,icon:a.jsx(Ba,{size:16})},{key:"toasts",label:s.pages.toasts,icon:a.jsx(Er,{size:16})},{key:"table",label:s.pages.table,icon:a.jsx(wa,{size:16})},{key:"data-list",label:s.pages["data-list"],icon:a.jsx(yt,{size:16})},{key:"timeline",label:s.pages.timeline,icon:a.jsx(yt,{size:16})},{key:"tree-view",label:s.pages["tree-view"],icon:a.jsx(Cr,{size:16})},{key:"carousel",label:s.pages.carousel,icon:a.jsx(Sa,{size:16})},{key:"empty-states",label:s.pages["empty-states"],icon:a.jsx(l0,{size:16})}]},{title:s.nav.overlays,collapsible:!0,defaultOpen:!1,items:[{key:"dialog",label:s.pages.dialog,icon:a.jsx(xt,{size:16})},{key:"sheet",label:s.pages.sheet,icon:a.jsx(Ov,{size:16})},{key:"popover",label:s.pages.popover,icon:a.jsx(xt,{size:16})},{key:"tooltip",label:s.pages.tooltip,icon:a.jsx(xt,{size:16})},{key:"hover-card",label:s.pages["hover-card"],icon:a.jsx(xt,{size:16})},{key:"dropdown-menu",label:s.pages["dropdown-menu"],icon:a.jsx(xt,{size:16})},{key:"context-menu",label:s.pages["context-menu"],icon:a.jsx(xt,{size:16})},{key:"command-palette",label:s.pages["command-palette"],icon:a.jsx(jn,{size:16})},{key:"overlays",label:s.pages.overlays,icon:a.jsx(Wh,{size:16})}]},{title:s.nav.navigation,collapsible:!0,defaultOpen:!1,items:[{key:"navigation-menu",label:s.pages["navigation-menu"],icon:a.jsx(Dv,{size:16})},{key:"menubar",label:s.pages.menubar,icon:a.jsx(oo,{size:16})}]},{title:s.nav.feedback,collapsible:!0,defaultOpen:!0,items:[{key:"feedback",label:s.pages.feedback,icon:a.jsx(Zn,{size:16})}]},{title:s.nav.templates,collapsible:!0,defaultOpen:!0,items:[{key:"home-page",label:s.pages["home-page"],icon:a.jsx(Mi,{size:16})},{key:"login-page",label:s.pages["login-page"],icon:a.jsx(lo,{size:16})},{key:"register-page",label:s.pages["register-page"],icon:a.jsx(uo,{size:16})},{key:"error-page",label:s.pages["error-page"],icon:a.jsx(Ba,{size:16})},{key:"privacy-policy",label:s.pages["privacy-policy"],icon:a.jsx(Zn,{size:16})},{key:"terms-of-service",label:s.pages["terms-of-service"],icon:a.jsx(wa,{size:16})}]},{title:s.nav.mobile,collapsible:!0,defaultOpen:!0,items:[{key:"mobile",label:s.pages.mobile,icon:a.jsx(ks,{size:16})},{key:"mobile-list",label:s.pages["mobile-list"],icon:a.jsx(yt,{size:16})}]}],ie=()=>{const I=pS(k,{isZh:c==="zh",pages:v,push:d,onNavigate:z});if(I!==null)return I;switch(k){case"introduction":return a.jsxs("div",{className:"vx-stack",children:[a.jsx(rt,{variant:"info",title:"Welcome to vxUI",children:"A lightweight React component library. Zero heavy dependencies, themeable, and dark-mode ready."}),a.jsxs("div",{className:"vx-inline vx-inline--wrap",children:[a.jsx(He,{variant:"accent",children:"React"}),a.jsx(He,{variant:"success",children:"TypeScript"}),a.jsx(He,{variant:"warning",children:"MIT"}),a.jsx(He,{children:"Zero deps"})]})]});default:return null}},fe=()=>a.jsx(tS,{pp:f,features:x,onLogin:()=>j("login"),onDocs:()=>z("introduction"),onPrivacy:()=>V("privacy-policy")}),Z=J=>a.jsx(iS,{content:J,footerCopy:f.footerCopy}),P=()=>{if(!Q)return null;const J=ie();return a.jsx(sS,{activeDocument:Q,preview:J,hasPreview:J!==null,docHeaderRef:N})},$=()=>{const J=F.flatMap(ce=>ce.items.map(oe=>we(le({},oe),{section:ce.title}))),I=E.trim().toLowerCase(),he=I?J.filter(ce=>ce.label.toLowerCase().includes(I)||ce.section.toLowerCase().includes(I)):J;return a.jsx(nS,{searchQuery:E,setSearchQuery:T,filteredItems:he,onSelect:ce=>{z(ce),D("docs")},placeholder:s.searchPlaceholder,ariaLabel:s.searchAriaLabel})},re=()=>a.jsx(mv,{mode:"login",t:s,onSwitchMode:()=>j("register"),onBack:()=>j("home")}),ge=()=>a.jsx(mv,{mode:"register",t:s,onSwitchMode:()=>j("login"),onBack:()=>j("home")}),xe=()=>{var oe;const J=L==="docs"&&y==="docs",I=y==="privacy-policy"||y==="terms-of-service",ce=J?(oe=Q==null?void 0:Q.title)!=null?oe:U:I?y==="privacy-policy"?b.title:g.title:L==="search"?c==="zh"?"搜索":"Search":"vxUI";return a.jsx(l1,{title:ce,leading:J?a.jsx(tu,{label:"Open navigation",onClick:()=>_(!0),children:a.jsx(oo,{size:20})}):I?a.jsx(tu,{label:f.backHome,onClick:()=>{j("home"),D("home")},children:a.jsx(Tu,{size:20})}):void 0,trailing:a.jsx(tu,{label:"Actions",onClick:()=>S(!0),children:a.jsx(I0,{size:20})})})},R=()=>y==="login"?re():y==="register"?ge():y==="privacy-policy"?Z(b):y==="terms-of-service"?Z(g):L==="search"?$():L==="docs"?P():fe(),W=()=>a.jsx(it,{side:"left",open:C,onOpenChange:J=>{J||_(!1)},header:a.jsxs("div",{style:{display:"flex",alignItems:"center",gap:10},children:[a.jsx("div",{style:{width:32,height:32,borderRadius:8,background:"var(--vx-primary)",display:"flex",alignItems:"center",justifyContent:"center",color:"#fff",fontWeight:800,fontSize:13},children:"vx"}),a.jsx("span",{style:{fontWeight:700,fontSize:16,color:"var(--vx-text)"},children:"vxUI Docs"})]}),footer:a.jsxs("button",{type:"button",className:"vx-cmd-trigger",style:{width:"100%",justifyContent:"center",fontSize:12},onClick:()=>{window.location.href="/docs/introduction"},children:[a.jsx(ks,{size:13}),"Desktop version",a.jsx(xt,{size:13})]}),children:F.map(J=>a.jsxs("div",{className:"vxm-drawer-section",children:[J.title&&a.jsx("div",{className:"vxm-drawer-section__title",children:J.title}),a.jsx("div",{className:"vxm-drawer-section__items",children:J.items.map(I=>a.jsxs("button",{type:"button",className:"vxm-drawer-item"+(k===I.key?" vxm-drawer-item--active":""),onClick:()=>z(I.key),children:[I.icon&&a.jsx("span",{className:"vxm-drawer-item__icon",children:I.icon}),a.jsx("span",{className:"vxm-drawer-item__label",children:I.label})]},I.key))})]},J.title))}),B=y==="login"||y==="register",te=y==="privacy-policy"||y==="terms-of-service",pe=()=>a.jsx(Mu,{items:[{key:"home",label:c==="zh"?"首页":"Home",icon:a.jsx(Mi,{size:22}),active:L==="home"&&!B&&!te,onSelect:()=>{O("home"),j("home")}},{key:"docs",label:c==="zh"?"文档":"Docs",icon:a.jsx(Tr,{size:22}),active:L==="docs"&&!B&&!te,submenu:F.flatMap(J=>J.items).map(J=>({key:J.key,label:J.label,icon:J.icon,onSelect:()=>{z(J.key),O("docs")}}))},{key:"search",label:c==="zh"?"搜索":"Search",icon:a.jsx(jn,{size:22}),active:L==="search"&&!B&&!te,onSelect:()=>{O("search")}}]});return a.jsxs(a.Fragment,{children:[W(),a.jsx(r1,{topBar:B?void 0:xe(),bottomNav:!B&&!te?pe():void 0,children:R()}),a.jsx(it,{variant:"action",open:u,onOpenChange:J=>{J||S(!1)},title:y==="docs"?c==="zh"?"页面操作":"Page actions":c==="zh"?"快捷操作":"Quick actions",description:y==="docs"?c==="zh"?"为当前页面选择一个动作。":"Choose an action for this page.":c==="zh"?"浏览首页、文档、账户与语言入口。":"Open home, docs, account, and language actions.",children:y==="docs"?a.jsxs(a.Fragment,{children:[a.jsx(it.Item,{icon:a.jsx(pu,{size:18}),onClick:()=>S(!1),children:c==="zh"?"收藏页面":"Bookmark page"}),a.jsx(it.Item,{icon:a.jsx(t0,{size:18}),onClick:()=>S(!1),children:c==="zh"?"下载 PDF":"Download PDF"}),a.jsx(it.Item,{icon:a.jsx(W0,{size:18}),destructive:!0,onClick:()=>S(!1),children:c==="zh"?"清除历史":"Clear history"})]}):a.jsxs(a.Fragment,{children:[a.jsx(it.Item,{icon:a.jsx(Tr,{size:18}),onClick:()=>{S(!1),z("introduction")},children:f.navDocs}),a.jsx(it.Item,{icon:a.jsx(lo,{size:18}),onClick:()=>{S(!1),j("login")},children:f.navLogin}),a.jsx(it.Item,{icon:a.jsx(uo,{size:18}),onClick:()=>{S(!1),j("register")},children:f.navSignup}),a.jsx(it.Item,{icon:c==="zh"?a.jsx(Ka,{size:18}):void 0,onClick:()=>{r("zh"),S(!1)},children:"中文"}),a.jsx(it.Item,{icon:c==="en"?a.jsx(Ka,{size:18}):void 0,onClick:()=>{r("en"),S(!1)},children:"English"}),a.jsx(it.Item,{icon:a.jsx(Zn,{size:18}),onClick:()=>{S(!1),V("privacy-policy")},children:f.footerPrivacy}),a.jsx(it.Item,{icon:a.jsx(wa,{size:18}),onClick:()=>{S(!1),V("terms-of-service")},children:s.pages["terms-of-service"]}),a.jsx(it.Item,{icon:a.jsx(ks,{size:18}),onClick:()=>{S(!1),window.location.href="/docs/introduction"},children:c==="zh"?"桌面版文档":"Desktop docs"})]})})]})}const Su=["introduction","quick-start","shell-sidebar","grid-page","nav-layout","scroll-area","separator","resizable","typography","typography-base","badge","avatar","skeleton","card","code-block","language-switcher","button","elements","form-controls","form-inputs","toggle","rating","label","date-pickers","file-upload","color-picker","form","accordion","tabs","breadcrumb","pagination","stepper","progress","spinner","alert","toasts","table","data-list","timeline","tree-view","carousel","empty-states","vxui-provider","viewport","constants","calendar","bottom-nav","overlays","data-display","navigation","feedback","dialog","sheet","popover","tooltip","hover-card","dropdown-menu","context-menu","command-palette","navigation-menu","menubar","mobile","mobile-list","image","pin-input","descriptions","notification","result","home-page","login-page","register-page","error-page","privacy-policy","terms-of-service"],_u="vxui-re-auth-session";function fS(s){return!!(s&&Su.includes(s))}function mS(s){return s.replace(/\/+$/,"")||"/"}function du(s){const c=mS(s);if(c==="/")return{view:"home"};if(c==="/login")return{view:"login"};if(c==="/register")return{view:"register"};if(c==="/privacy-policy")return{view:"privacy-policy"};if(c==="/terms-of-service")return{view:"terms-of-service"};if(c==="/error")return{view:"error"};if(c==="/docs")return{view:"docs"};if(c.startsWith("/docs/")){const r=c.split("/")[2];if(fS(r))return{view:"docs",page:r}}return{view:"error",path:c}}function bv(s){switch(s.view){case"home":return"/";case"login":return"/login";case"register":return"/register";case"privacy-policy":return"/privacy-policy";case"terms-of-service":return"/terms-of-service";case"error":return"/error";case"docs":default:return s.page?`/docs/${s.page}`:"/docs"}}function hS(s){return`/m/docs/${s}`}function vS(){if(typeof window=="undefined")return null;try{const s=window.localStorage.getItem(_u);if(!s)return null;const c=JSON.parse(s);if(typeof c.name=="string"&&(c.mode==="member"||c.mode==="guest"))return{name:c.name,mode:c.mode}}catch(s){return null}return null}function gS({isZh:s,docsHomeCopy:c,copy:r,docsHomeGroups:d,metricCards:p,releaseTrack:f,setReleaseTrack:v,navigate:x,pages:b}){return a.jsxs("div",{className:"vx-docs-workspace__home",children:[a.jsx("section",{className:"vx-docs-home__hero",children:a.jsxs("div",{className:"vx-docs-home__copy",children:[a.jsx(He,{variant:"accent",children:c.badge}),a.jsx("h1",{children:c.title}),a.jsx("p",{children:c.lead}),a.jsxs("div",{className:"vx-docs-home__actions",children:[a.jsxs(ue,{size:"lg",onClick:()=>x({view:"docs",page:"introduction"}),children:[a.jsx(ro,{size:16}),c.primary]}),a.jsxs(ue,{size:"lg",variant:"secondary",onClick:()=>x({view:"docs",page:"quick-start"}),children:[a.jsx(oi,{size:16}),c.secondary]})]}),a.jsx(rt,{title:c.pathTitle,variant:"info",children:c.pathBody})]})}),a.jsxs("section",{className:"vx-docs-home__section",children:[a.jsxs("div",{className:"vx-docs-home__section-head",children:[a.jsx("h2",{children:c.indexTitle}),a.jsx("p",{children:c.indexLead})]}),a.jsxs("div",{className:"vx-doc-architecture-grid",children:[a.jsxs($t,{className:"vx-docs-home__panel",children:[a.jsxs(sa,{children:[a.jsx(ra,{children:s?"文档总览":"Docs Overview"}),a.jsx(la,{children:s?"从页面规模、断点层级和发布轨道快速判断当前文档范围。":"Review the scope of the docs through page count, breakpoints, and release track."})]}),a.jsxs(oa,{children:[a.jsx("div",{className:"vx-doc-metric-grid",children:p.map(g=>a.jsxs("div",{className:"vx-doc-metric-grid__item",children:[a.jsx("span",{children:g.label}),a.jsx("strong",{children:g.value}),a.jsx("small",{children:g.hint})]},g.label))}),a.jsx("div",{className:"vx-doc-control-grid vx-doc-control-grid--single",children:a.jsx(wt,{label:r.releaseLabel,value:f,onChange:g=>{g&&v(g)},options:[{value:"stable",label:r.releaseOptions.stable},{value:"preview",label:r.releaseOptions.preview},{value:"internal",label:r.releaseOptions.internal}]})})]})]}),a.jsxs($t,{className:"vx-docs-home__panel",children:[a.jsxs(sa,{children:[a.jsx(ra,{children:r.contentMapTitle}),a.jsx(la,{children:r.libraryLead})]}),a.jsx(oa,{children:a.jsx("div",{className:"vx-doc-content-map",children:d.map(g=>a.jsxs("button",{type:"button",className:"vx-doc-content-map__row",onClick:()=>x({view:"docs",page:g.pages[0]}),children:[a.jsxs("div",{children:[a.jsx("strong",{children:g.label}),a.jsx("span",{children:g.description})]}),a.jsx(xt,{size:16})]},g.key))})})]})]})]}),a.jsxs("section",{className:"vx-docs-home__section",children:[a.jsxs("div",{className:"vx-docs-home__section-head",children:[a.jsx("h2",{children:c.sectionsTitle}),a.jsx("p",{children:c.sectionsLead})]}),a.jsx("div",{className:"vx-doc-library-grid",children:d.map(g=>a.jsxs($t,{className:"vx-doc-library-card",children:[a.jsxs(sa,{children:[a.jsx(ra,{children:g.label}),a.jsxs(la,{children:[g.pages.length," ",c.entryCount]})]}),a.jsxs(oa,{children:[a.jsx("div",{className:"vx-doc-library-card__links",children:g.pages.slice(0,5).map(y=>{var j,k;return a.jsxs("button",{type:"button",className:"vx-doc-library-card__link",onClick:()=>x({view:"docs",page:y}),children:[a.jsx("span",{children:As[y]}),a.jsx("span",{children:(k=(j=b==null?void 0:b[y])==null?void 0:j.title)!=null?k:y})]},y)})}),a.jsx("div",{style:{marginTop:14},children:a.jsx(ue,{size:"sm",variant:"secondary",onClick:()=>x({view:"docs",page:g.pages[0]}),children:c.openSection})})]})]},g.key))})]}),a.jsxs("section",{className:"vx-docs-home__section",children:[a.jsxs("div",{className:"vx-docs-home__section-head",children:[a.jsx("h2",{children:c.pathsTitle}),a.jsx("p",{children:c.pathsLead})]}),a.jsxs("div",{className:"vx-doc-architecture-grid",children:[a.jsxs($t,{children:[a.jsxs(sa,{children:[a.jsx(ra,{children:c.walkthroughTitle}),a.jsx(la,{children:c.pathBody})]}),a.jsx(oa,{children:a.jsx("ul",{className:"vx-list",children:c.walkthroughItems.map(g=>a.jsx("li",{children:g},g))})})]}),a.jsxs($t,{children:[a.jsxs(sa,{children:[a.jsx(ra,{children:c.adoptionTitle}),a.jsx(la,{children:c.sectionsLead})]}),a.jsx(oa,{children:a.jsx(zr,{items:c.adoptionItems,defaultOpen:["product"]})})]})]})]}),a.jsxs("section",{className:"vx-docs-home__section",children:[a.jsxs("div",{className:"vx-docs-home__section-head",children:[a.jsx("h2",{children:c.rulesTitle}),a.jsx("p",{children:c.rulesLead})]}),a.jsxs("div",{className:"vx-doc-architecture-grid",children:[a.jsxs($t,{children:[a.jsxs(sa,{children:[a.jsx(ra,{children:c.rulesTitle}),a.jsx(la,{children:c.rulesLead})]}),a.jsx(oa,{children:a.jsx("ul",{className:"vx-list",children:c.rulesItems.map(g=>a.jsx("li",{children:g},g))})})]}),a.jsxs($t,{children:[a.jsxs(sa,{children:[a.jsx(ra,{children:c.toolsTitle}),a.jsx(la,{children:c.toolsLead})]}),a.jsx(oa,{children:a.jsx("ul",{className:"vx-list",children:c.toolsItems.map(g=>a.jsx("li",{children:g},g))})})]})]})]})]})}function xS({isZh:s,activePage:c,activeDocument:r,pages:d,copy:p,renderSample:f,renderCodeBlock:v,renderTemplateLauncher:x,navigate:b,docHeaderRef:g}){const y=oS[c],j=f(c),k=j!==null,A=rS.has(c)?hS(c):null,L=wu.flatMap(C=>C.items.flatMap(_=>typeof _=="string"?_:_.pages)),D=L.indexOf(c),E=D>0?L[D-1]:null,T=D<L.length-1?L[D+1]:null;return a.jsxs("article",{className:"vx-article",children:[a.jsxs("header",{ref:g,className:"vx-article__header",children:[a.jsx("span",{className:"vx-kicker",children:r.section}),a.jsx("h1",{className:"vx-article__title",children:r.title}),a.jsx("p",{className:"vx-article__description",children:r.description}),a.jsx("div",{className:"vx-badges",children:a.jsx("span",{className:"vx-version-pill",children:p.livePreview})})]}),a.jsx("div",{className:"vx-article__body",children:a.jsxs("div",{className:"vx-article__content",children:[a.jsxs("section",{id:"overview",className:"vx-section",children:[a.jsxs("h2",{className:"vx-section__heading",children:[s?"使用指南":"Overview",a.jsx("a",{href:"#overview",className:"vx-section__anchor","aria-label":s?"链接到使用指南":"Link to Overview",children:"#"})]}),a.jsx("ul",{className:"vx-list",children:r.guidance.map(C=>a.jsx("li",{children:C},C))})]}),k&&a.jsxs("section",{id:"example",className:"vx-section",children:[a.jsxs("h2",{className:"vx-section__heading",children:[s?"示例":"Example",a.jsx("a",{href:"#example",className:"vx-section__anchor","aria-label":s?"链接到示例":"Link to Example",children:"#"})]}),a.jsxs("div",{className:"vx-example__grid",children:[a.jsxs("div",{className:"vx-example__panel",children:[a.jsxs("div",{className:"vx-example__meta",children:[a.jsx("span",{className:"vx-example__eyebrow",children:s?"桌面端":"Desktop"}),a.jsx("strong",{children:p.livePreview})]}),a.jsx("div",{className:"vx-example",children:j})]}),A&&a.jsxs("div",{className:"vx-example__panel vx-example__panel--mobile",children:[a.jsxs("div",{className:"vx-example__meta",children:[a.jsx("span",{className:"vx-example__eyebrow",children:s?"移动端":"Mobile"}),a.jsx("strong",{children:s?"同步预览":"Synced preview"})]}),a.jsxs("div",{className:"vx-mobile-preview",children:[a.jsx("div",{className:"vxm-phone-frame vx-mobile-preview__frame",children:a.jsx("iframe",{className:"vx-mobile-preview__iframe",loading:"lazy",src:A,title:`${r.title} ${s?"移动端预览":"mobile preview"}`})}),a.jsx("p",{className:"vx-mobile-preview__hint",children:s?"这里加载真实的移动端文档页,便于同时对比桌面与手机呈现。":"This loads the real mobile docs page so desktop and phone presentations stay in sync."})]})]})]})]}),y&&a.jsxs("section",{id:"usage",className:"vx-section",children:[a.jsxs("h2",{className:"vx-section__heading",children:[s?"用法":"Usage",a.jsx("a",{href:"#usage",className:"vx-section__anchor","aria-label":s?"链接到用法":"Link to Usage",children:"#"})]}),v(y)]}),r.props&&r.props.length>0&&a.jsxs("section",{id:"api",className:"vx-section",children:[a.jsxs("h2",{className:"vx-section__heading",children:[s?"API 参考":"API Reference",a.jsx("a",{href:"#api",className:"vx-section__anchor","aria-label":s?"链接到 API 参考":"Link to API Reference",children:"#"})]}),a.jsx("div",{className:"vx-props-table-wrapper",children:a.jsxs("table",{className:"vx-props-table",children:[a.jsx("thead",{children:a.jsxs("tr",{children:[a.jsx("th",{children:s?"属性":"Prop"}),a.jsx("th",{children:s?"类型":"Type"}),a.jsx("th",{children:s?"默认值":"Default"}),a.jsx("th",{children:s?"说明":"Description"})]})}),a.jsx("tbody",{children:r.props.map(C=>a.jsxs("tr",{children:[a.jsxs("td",{children:[a.jsx("code",{children:C.prop}),C.required&&a.jsx("span",{className:"vx-prop-required",title:s?"必填":"Required",children:"*"})]}),a.jsx("td",{children:a.jsx("code",{className:"vx-prop-type",children:C.type})}),a.jsx("td",{children:C.default?a.jsx("code",{children:C.default}):a.jsx("span",{className:"vx-prop-dash",children:"—"})}),a.jsx("td",{children:C.description})]},C.prop))})]})})]})]})}),(E!=null?E:T)&&a.jsxs("nav",{className:"vx-pager","aria-label":s?"分页导航":"Page navigation",children:[E?a.jsxs("button",{type:"button",className:"vx-pager__btn",onClick:()=>b({view:"docs",page:E}),children:[a.jsxs("span",{className:"vx-pager__dir",children:["← ",s?"上一页":"Previous"]}),a.jsx("span",{className:"vx-pager__label",children:d[E].title})]}):a.jsx("div",{}),T&&a.jsxs("button",{type:"button",className:"vx-pager__btn vx-pager__btn--next",onClick:()=>b({view:"docs",page:T}),children:[a.jsxs("span",{className:"vx-pager__dir",children:[s?"下一页":"Next"," →"]}),a.jsx("span",{className:"vx-pager__label",children:d[T].title})]})]})]})}function bS(s){return s?{docsBadge:"统一响应式 UI 框架",docsTitle:"一套资源,覆盖手机、平板与桌面",docsLead:"首页、登录页、注册页、错误页、隐私政策、服务条款和文档内容库全部运行在同一套路由、同一套布局壳层与同一套设计 Token 上。",docsPrimary:"查看快速开始",docsSecondary:"返回首页",splitTitle:"不再维护独立移动端应用",splitBody:"手机端通过抽屉导航、一列排版和内容重排适配,而不是切换到另一套 /m 路由和另一套页面组件。",libraryTitle:"文档内容库",libraryLead:"每个章节都可搜索、可预览、可直接打开真实页面。",supportTitle:"响应式支撑",supportCards:[{label:"手机",accent:"单列",description:"关键操作保持在拇指可达区域,侧边导航收拢为抽屉,内容卡片自然堆叠。"},{label:"平板",accent:"双列",description:"保留文档上下文与工具区,同时把表单、统计卡和内容区平衡到双列结构。"},{label:"桌面",accent:"三轨",description:"支持长文档、实时预览和控制面板并行出现,无需复制组件与状态管理。"}],architectureTitle:"统一信息架构",architectureLead:"搜索、导航、预览和页面跳转绑定到同一个内容模型,不再分裂成两套应用。",architectureBullets:["桌面端保留常驻导航和工具栏,适合长文档浏览。","平板端压缩密度与栅格,不改动页面层级和数据源。","手机端将侧边栏转成抽屉,仍然使用同一套路由和组件。"],rolloutTitle:"落地方式",rolloutItems:[{key:"shell",title:"统一入口",content:"入口只渲染一个 App,所有设备共享同一套路由解析和状态管理。"},{key:"pages",title:"统一页面树",content:"首页、认证页、错误页、法务页和文档页全部保留在同一个页面树中。"},{key:"shell-responsive",title:"统一壳层响应式",content:"侧边栏在窄屏收为抽屉,顶部工具区自动换行,内容从多列过渡为单列。"}],releaseLabel:"发布轨道",releaseOptions:{stable:"稳定版",preview:"预览版",internal:"内部版"},contentMapTitle:"内容地图",metrics:{templates:"模板页面",templatesDesc:"首页、认证、错误与法务",docs:"文档条目",docsDesc:"单一内容树驱动导航与搜索",breakpoints:"断点层级",breakpointsDesc:"手机 / 平板 / 桌面",themes:"主题预设",themesDesc:"统一作用于全站"},livePreview:"实时预览",openPage:"打开完整页面",deliveryTitle:"交付清单",responsiveTitle:"响应式检查",responsiveChecklist:["主操作是否在 390px 宽度下仍位于首屏可见区域。","文档导航是否从常驻侧栏平滑转为抽屉,不复制状态。","卡片、表格和表单是否可从三列过渡为单列而不溢出。"],runtimeTitle:"控制台",runtimeDesc:"把主题、密度和会话状态视为全局能力,而不是页面特例。",sessionMember:"成员视图",sessionGuest:"访客视图",accountMenu:"账户"}:{docsBadge:"Unified Responsive UI Framework",docsTitle:"One resource system for phone, tablet, and desktop",docsLead:"The home page, login, register, error, privacy policy, terms of service, and documentation library now run on one route tree, one layout shell, and one token system.",docsPrimary:"Open Quick Start",docsSecondary:"Back to Home",splitTitle:"No separate mobile application anymore",splitBody:"Phone layouts now adapt through drawer navigation, single-column composition, and content reflow instead of switching to a second /m route tree.",libraryTitle:"Documentation Library",libraryLead:"Every section is searchable, previewable, and linked to the full live page.",supportTitle:"Responsive Support",supportCards:[{label:"Phone",accent:"Single column",description:"Primary actions stay thumb-reachable, the sidebar becomes a drawer, and cards stack without losing hierarchy."},{label:"Tablet",accent:"Two columns",description:"The shell keeps context visible while forms, stats, and content rebalance into comfortable two-column compositions."},{label:"Desktop",accent:"Three tracks",description:"Long-form docs, live previews, and controls can sit side by side without duplicating components or state."}],architectureTitle:"Unified Information Architecture",architectureLead:"Search, navigation, previews, and route changes are all driven by the same content model instead of two different apps.",architectureBullets:["Desktop keeps persistent navigation and a utility-rich header for long-form browsing.","Tablet compresses density and grid structure without changing routes or data sources.","Phone turns the sidebar into a drawer while keeping the same components and route ownership."],rolloutTitle:"How It Lands",rolloutItems:[{key:"shell",title:"Single entry point",content:"The entry now renders one App, so every device shares the same route parsing and state model."},{key:"pages",title:"Single page tree",content:"Home, auth, error, and legal docs remain in one page tree instead of being copied for mobile."},{key:"shell-responsive",title:"Responsive shell",content:"The sidebar collapses into a drawer on narrow screens, the top bar wraps, and content shifts from multi-column to single-column layouts."}],releaseLabel:"Release Track",releaseOptions:{stable:"Stable",preview:"Preview",internal:"Internal"},contentMapTitle:"Content Map",metrics:{templates:"Template screens",templatesDesc:"Home, auth, error, and legal",docs:"Doc entries",docsDesc:"One content tree drives nav and search",breakpoints:"Breakpoints",breakpointsDesc:"Phone / tablet / desktop",themes:"Theme presets",themesDesc:"Applied across the whole app"},livePreview:"Live preview",openPage:"Open full page",deliveryTitle:"Delivery Checklist",responsiveTitle:"Responsive Checklist",responsiveChecklist:["Keep the primary action visible within a 390px viewport.","Turn docs navigation into a drawer instead of duplicating route state.","Let cards, forms, and tables reflow from three columns to one without overflow."],runtimeTitle:"Control Panel",runtimeDesc:"Treat theme, density, and session state as app-wide capabilities instead of page-specific exceptions.",sessionMember:"Member view",sessionGuest:"Guest view",accountMenu:"Account"}}function yS(s){return s?{badge:"Documentation",title:"VXUI React 文档",lead:"文档入口按标准组件库目录组织:先看介绍,再完成安装,然后进入组件、模板和响应式模式。",primary:"阅读简介",secondary:"开始安装",pathTitle:"推荐顺序",pathBody:"首次接入建议按照 介绍 -> 安装 -> 组件 -> 模板 -> 响应式 的顺序浏览。",indexTitle:"Documentation Index",indexLead:"五个标准入口覆盖整个文档库,避免把概念、接入方式和页面模板混在一起。",sectionsTitle:"按章节浏览",sectionsLead:'使用更标准的文档分层,让用户先找到"看什么",再决定"怎么用"。',pathsTitle:"推荐阅读路径",pathsLead:"不同任务从不同入口进入,但都落在同一套文档结构里。",rulesTitle:"全局约定",rulesLead:"规则性的说明适合集中放在首页,避免在每个组件页和模板页重复出现。",rulesItems:["保持所有断点上的路由树一致,只调整壳层结构和内容密度。","在窄屏上把常驻侧边导航转成抽屉,而不是复制另一套页面实现。","让卡片、表单和表格从多列到单列平滑重排,不改变组件归属。"],toolsTitle:"文档级控制",toolsLead:"主题、密度和搜索属于全局工具,应放在文档工具栏统一控制,而不是在每个章节底部重复渲染。",toolsItems:["主题切换统一放在顶部工具栏的 Theme 菜单中。","紧凑模式通过顶部工具栏的密度切换按钮统一开关。","详情页默认只保留 Guidance、Preview 和 Code Example 三个核心区块。"],openSection:"打开章节",entryCount:"个条目",walkthroughTitle:"首次接入",walkthroughItems:["先看简介,明确这套组件库的边界和目标。","进入安装章节,完成样式引入、Provider 挂载和第一个页面。","再浏览组件章节,按布局、表单、反馈和数据展示逐步接入。"],adoptionTitle:"常见使用路径",adoptionItems:[{key:"product",title:"搭业务页面",content:"从安装开始,然后进入 Components,优先看 Shell、Form Controls、Data Display。"},{key:"marketing",title:"搭公共页面",content:"先看 Templates,再回到 Components 补充按钮、表单和反馈细节。"},{key:"responsive",title:"做多端适配",content:"最后看 Responsive,确认同一套路由和内容在窄屏下如何重排。"}]}:{badge:"Documentation",title:"VXUI React Documentation",lead:"The docs entry is now organized like a standard UI library: introduction first, installation next, then components, templates, and responsive patterns.",primary:"Read introduction",secondary:"Start installation",pathTitle:"Recommended order",pathBody:"For a first pass, follow Introduction -> Installation -> Components -> Templates -> Responsive.",indexTitle:"Documentation Index",indexLead:"Five standard entry points cover the whole library so concepts, setup, and page examples no longer compete on the same screen.",sectionsTitle:"Browse by Section",sectionsLead:"Use a more standard information architecture so people can find what to read before deciding how to apply it.",pathsTitle:"Recommended Paths",pathsLead:"Different tasks start from different entry points, but they all land in the same documentation structure.",rulesTitle:"Global Conventions",rulesLead:"Rule-oriented guidance belongs on the docs entry page so it does not repeat across every component or template page.",rulesItems:["Keep one route tree across breakpoints and only adapt shell structure and density.","Turn persistent side navigation into a drawer on narrow screens instead of duplicating page implementations.","Let cards, forms, and tables reflow from multiple columns to one without changing component ownership."],toolsTitle:"Documentation Controls",toolsLead:"Theme, density, and search are global documentation tools, so they belong in the toolbar instead of being repeated at the bottom of every page.",toolsItems:["Theme switching lives in the top toolbar Theme menu.","Compact density is controlled through the toolbar density toggle.","Detail pages now keep only Guidance, Preview, and Code Example as the core content blocks."],openSection:"Open section",entryCount:"entries",walkthroughTitle:"First integration",walkthroughItems:["Read the introduction to understand the goals and boundaries of the library.","Move to installation to import styles, mount providers, and ship the first page.","Browse components next, starting with shell, form controls, feedback, and data display."],adoptionTitle:"Common reading paths",adoptionItems:[{key:"product",title:"Build product screens",content:"Start with Installation, then move into Components, especially Shell, Form Controls, and Data Display."},{key:"marketing",title:"Build public pages",content:"Start from Templates, then return to Components to refine actions, forms, and feedback."},{key:"responsive",title:"Ship across devices",content:"Finish with Responsive to verify how the same route tree and content reflow at smaller widths."}]}}function jS(s,c,r,d,p){function f(b){return Xd(this,null,function*(){var g;try{if(typeof navigator!="undefined"&&((g=navigator.clipboard)!=null&&g.writeText))yield navigator.clipboard.writeText(b);else if(typeof document!="undefined"){const y=document.createElement("textarea");y.value=b,y.setAttribute("readonly","true"),y.style.position="absolute",y.style.left="-9999px",document.body.appendChild(y),y.select(),document.execCommand("copy"),document.body.removeChild(y)}else throw new Error("Clipboard is unavailable.");return p({tone:"success",title:s?"代码已复制":"Code copied",description:s?"示例代码已复制到剪贴板。":"The example code was copied to your clipboard."}),!0}catch(y){return p({tone:"warning",title:s?"复制失败":"Copy failed",description:s?"当前环境不支持自动复制,请手动选择代码。":"Automatic copy is unavailable here. Please select and copy the code manually."}),!1}})}function v(b,g="tsx"){return a.jsx(Jg,{code:b,language:g,copyLabel:s?"复制代码":"Copy code",copiedLabel:s?"已复制":"Copied",onCopy:f})}function x(b){const g={"home-page":()=>d({view:"home"}),"login-page":()=>d({view:"login"}),"register-page":()=>d({view:"register"}),"error-page":()=>d({view:"error"}),"privacy-policy":()=>d({view:"privacy-policy"}),"terms-of-service":()=>d({view:"terms-of-service"})};return a.jsxs("div",{className:"vx-template-launch",children:[a.jsxs("div",{className:"vx-template-launch__head",children:[a.jsx("span",{className:"vx-template-launch__icon",children:As[b]}),a.jsxs("div",{children:[a.jsx("strong",{children:c[b].title}),a.jsx("p",{children:c[b].description})]})]}),a.jsxs(ue,{variant:"secondary",onClick:g[b],children:[a.jsx(Cv,{size:16})," ",r.openPage]})]})}return{renderCodeBlock:v,renderTemplateLauncher:x}}const yv=new Map;function wS(s={}){const{rootMargin:c="-72px 0px 0px 0px",threshold:r=0}=s,[d,p]=m.useState(!0),f=m.useRef(null);return m.useEffect(()=>{let x=yv.get(c);x||(x=new IntersectionObserver(([g])=>{var j;const y=(j=g==null?void 0:g.isIntersecting)!=null?j:!0;p(y)},{rootMargin:c,threshold:r}),yv.set(c,x));const b=f.current;return b&&x.observe(b),()=>{b&&x.unobserve(b)}},[c,r]),{ref:m.useCallback(x=>{f.current=x},[]),isInView:d}}function SS({isZh:s}){const{push:c}=Jw();return a.jsxs("div",{className:"vx-preview-stack",children:[a.jsx(rt,{variant:"info",title:s?"持久化通知":"Persistent Notifications",children:s?"与 Toast 不同,通知保持可见直到手动关闭。":"Unlike Toast, notifications stay visible until dismissed."}),a.jsxs("div",{style:{display:"flex",gap:8,flexWrap:"wrap"},children:[a.jsx(ue,{onClick:()=>c({title:s?"上传完成":"Upload complete",tone:"success",description:s?"3 个文件已上传。":"3 files uploaded.",duration:4e3}),children:s?"自动消失":"Auto-dismiss"}),a.jsx(ue,{variant:"secondary",onClick:()=>c({title:s?"系统更新":"System update",tone:"warning",description:s?"需要重启。":"Restart required."}),children:s?"持久显示":"Persistent"}),a.jsx(ue,{variant:"danger",onClick:()=>c({title:s?"操作失败":"Operation failed",tone:"danger",description:s?"请检查网络连接。":"Check your network."}),children:s?"错误通知":"Error"})]})]})}function _S({isZh:s}){const[c,r]=m.useState(!0),[d,p]=m.useState(!1),[f,v]=m.useState(!0),[x,b]=m.useState("4"),[g,y]=m.useState("auto");return a.jsxs("div",{style:{display:"flex",gap:16,flexWrap:"wrap",alignItems:"flex-start"},children:[a.jsx(wn,{trigger:a.jsx(ue,{variant:"secondary",children:s?"文件操作":"File Actions"}),onSelect:j=>console.log("[File]",j.label),groups:[{label:s?"操作":"Actions",items:[{label:s?"复制":"Duplicate",onClick:()=>{}},{label:s?"归档":"Archive",description:s?"移入归档文件夹":"Move to archive folder",onClick:()=>{}},{label:s?"导出":"Export",description:s?"下载为 ZIP":"Download as ZIP",onClick:()=>{}}]},{items:[{label:s?"删除":"Delete",danger:!0,onClick:()=>{}}]}]}),a.jsx(wn,{trigger:a.jsx(ue,{variant:"secondary",children:s?"编辑器设置":"Editor Settings"}),onSelect:j=>console.log("[Editor]",j.label),groups:[{label:s?"显示":"Display",items:[{label:s?"行号":"Line Numbers",type:"checkbox",checked:c,onClick:()=>r(j=>!j)},{label:s?"自动换行":"Word Wrap",type:"checkbox",checked:d,onClick:()=>p(j=>!j)},{label:s?"缩略图":"Minimap",type:"checkbox",checked:f,onClick:()=>v(j=>!j)}]},{label:s?"Tab 宽度":"Tab Size",items:[{label:"2 spaces",type:"radio",checked:x==="2",onClick:()=>b("2")},{label:"4 spaces",type:"radio",checked:x==="4",onClick:()=>b("4")},{label:"8 spaces",type:"radio",checked:x==="8",onClick:()=>b("8")}]}]}),a.jsx(wn,{trigger:a.jsx(ue,{variant:"secondary",children:s?"主题":"Theme"}),items:[{label:s?"跟随系统":"Follow System",type:"radio",checked:g==="auto",onClick:()=>y("auto")},{label:s?"浅色":"Light",type:"radio",checked:g==="light",onClick:()=>y("light")},{label:s?"深色":"Dark",type:"radio",checked:g==="dark",onClick:()=>y("dark")}]})]})}function kS({route:s,onNavigate:c,onMobileNavToggle:r,mobileNavOpen:d,sidebarCollapsed:p,onSidebarToggle:f,searchOpen:v,onSearchOpenChange:x,compactDensity:b,onCompactDensityChange:g,releaseTrack:y,onReleaseTrackChange:j,viewerSession:k,onLogin:A,onRegister:L,onGuest:D,onLogout:E}){var Hi,Ja,ve,Ne,Ue;const{t:T,locale:C,setLocale:_}=Mo(),u=C==="zh",S=T.pageDefs,{push:N}=Pu(),{mode:z,setTheme:V,theme:O,themes:Q}=Iv(),{isTablet:U,isTabletPortrait:F}=zo(),ie=Object.entries(Q),[fe,Z]=m.useState(!0),[P,$]=m.useState(!1),[re,ge]=m.useState("system"),[xe,R]=m.useState(68),[W,B]=m.useState(4),[te,pe]=m.useState(["react","typescript"]),[J,I]=m.useState(void 0),[he,ce]=m.useState(void 0),[oe,ke]=m.useState(void 0),[Ee,Ge]=m.useState(void 0),[ut,At]=m.useState(1),Ua=m.useRef(null),{ref:Wa,isInView:Sn}=wS({rootMargin:"-72px 0px 0px 0px"}),qe=bS(u),_n=yS(u),Wt=jS(u,S,qe,c,N),kn=s.view==="docs"&&(Hi=s.page)!=null?Hi:"introduction",ui=(Ja=S[kn])!=null?Ja:S.introduction,Ca=s.view==="docs"&&s.page!==void 0&&!Sn,Za=Ca?ui.title:u?"文档":"Documentation",Li=u?`密度:${b?"紧凑":"舒适"}`:`Density: ${b?"Compact":"Comfortable"}`,Pa=ie.map(([me,De])=>{var et;return{value:me,label:`${(et=De.label)!=null?et:me}${O===me?u?" (当前)":" (current)":""}`}});Pa.map(me=>({label:me.label,icon:a.jsx(li,{size:14}),onClick:()=>V(me.value)})),k?T.publicPages.navLogout:(T.publicPages.navLogin,T.publicPages.navSignup,T.publicPages.guestLabel);const da=k?[{value:"logout",label:T.publicPages.navLogout}]:[{value:"login",label:T.publicPages.navLogin},{value:"register",label:T.publicPages.navSignup},{value:"guest",label:T.publicPages.guestLabel}];function Ta(me){if(me){if(me==="logout"){E();return}if(me==="guest"){D();return}if(me==="login"){c({view:"login"});return}if(me==="register"){c({view:"register"});return}}}T.publicPages.backHome,T.searchTrigger,qe.accountMenu,Object.entries(si).map(([me,De])=>({label:`${De.label}${C===me?u?" (当前)":" (current)":""}`,icon:a.jsx(Eu,{size:14}),onClick:()=>_(me)}));const Bi=[{label:qe.metrics.templates,value:"6",hint:qe.metrics.templatesDesc},{label:qe.metrics.docs,value:String(Su.length),hint:qe.metrics.docsDesc},{label:qe.metrics.breakpoints,value:"3",hint:qe.metrics.breakpointsDesc},{label:qe.metrics.themes,value:String(ie.length),hint:qe.metrics.themesDesc}],zs=m.useMemo(()=>Su.map(me=>({key:me,title:S[me].title,section:S[me].section,description:S[me].description,keywords:S[me].guidance,icon:As[me]})),[S]),Ea=m.useMemo(()=>wu.map(me=>({key:me.key,title:hv(me.key,u),items:me.items.map(De=>{if(typeof De=="string"){const Bt=De;return{key:Bt,label:S[Bt].title,icon:As[Bt],active:Bt===kn,onSelect:()=>c({view:"docs",page:Bt})}}const et=u?si.zh.families[De.i18nKey]:si.en.families[De.i18nKey];return{key:De.key,label:et,icon:De.icon,children:De.pages.map(Bt=>({key:Bt,label:S[Bt].title,icon:As[Bt],active:Bt===kn,onSelect:()=>c({view:"docs",page:Bt})}))}})})),[kn,u,S,c]),St=wu.map(me=>we(le({},me),{pages:me.items.flatMap(De=>typeof De=="string"?De:De.pages),label:hv(me.key,u),description:lS(me.key,u)}));function ua(me){var Bt,Ds,Ui,Nn,Br,Ms,Rs,Os,Pi;const{renderCodeBlock:De,renderTemplateLauncher:et}=Wt;switch(me){case"quick-start":{const Te=[{value:"install",label:u?"安装":"Install",code:ni.install},{value:"providers",label:"Providers",code:ni.providers},{value:"layout",label:u?"页面壳层":"Layout",code:ni.layout},{value:"feedback",label:u?"反馈":"Feedback",code:ni.feedback}];return a.jsxs(Cs,{defaultValue:"install",children:[a.jsx(Ts,{children:Te.map($e=>a.jsx(Kt,{value:$e.value,children:$e.label},$e.value))}),Te.map($e=>a.jsx(Qt,{value:$e.value,children:De($e.code,$e.value==="install"?"bash":"tsx")},$e.value))]})}case"shell-sidebar":return a.jsx("div",{className:"vx-preview-stack",children:a.jsx("div",{style:{background:"var(--vx-surface)",border:"1px solid var(--vx-border)",borderRadius:"var(--vx-radius-lg)",overflow:"hidden"},children:a.jsxs(qu,{label:u?"导航示例":"Navigation demo",children:[a.jsx(Ar,{title:u?"快速开始":"Getting started",children:a.jsx(jt,{label:u?"介绍":"Introduction",active:!0,onSelect:()=>{}})}),a.jsxs(Ar,{title:u?"组件":"Components",children:[a.jsxs(jt,{label:u?"表单控件":"Form controls",defaultOpen:!0,onSelect:()=>{},children:[a.jsx(jt,{label:u?"输入框":"Input",onSelect:()=>{}}),a.jsx(jt,{label:u?"多选框":"MultiSelect",onSelect:()=>{}}),a.jsx(jt,{label:u?"时间选择器":"TimePicker",onSelect:()=>{}})]}),a.jsxs(jt,{label:u?"叠层浮层":"Overlays",onSelect:()=>{},children:[a.jsx(jt,{label:u?"对话框":"Dialog",onSelect:()=>{}}),a.jsx(jt,{label:u?"抽屉":"Sheet",onSelect:()=>{}})]}),a.jsx(jt,{label:u?"导航":"Navigation",onSelect:()=>{}})]})]})})});case"grid-page":return a.jsx("div",{className:"vx-stats-grid",children:Bi.map(Te=>a.jsxs("div",{className:"vx-stats-grid__item",children:[a.jsx("span",{children:Te.label}),a.jsx("strong",{children:Te.value}),a.jsx("small",{children:Te.hint})]},Te.label))});case"button":return a.jsxs("div",{className:"vx-preview-stack",children:[a.jsxs("div",{className:"vx-preview-inline vx-preview-inline--wrap",children:[a.jsx(ue,{children:u?"主要按钮":"Primary"}),a.jsx(ue,{variant:"secondary",children:u?"次级按钮":"Secondary"}),a.jsx(ue,{variant:"ghost",children:u?"幽灵按钮":"Ghost"}),a.jsx(ue,{variant:"danger",children:u?"危险按钮":"Danger"})]}),a.jsxs("div",{className:"vx-preview-inline vx-preview-inline--wrap",children:[a.jsx(ue,{size:"sm",children:u?"小":"Small"}),a.jsx(ue,{size:"md",children:u?"中":"Medium"}),a.jsx(ue,{size:"lg",children:u?"大":"Large"})]}),a.jsxs("div",{className:"vx-preview-inline vx-preview-inline--wrap",children:[a.jsx(ue,{shape:"square",children:u?"直角":"Square"}),a.jsx(ue,{shape:"rect",children:u?"圆角":"Rounded"}),a.jsx(ue,{shape:"pill",children:u?"胶囊":"Pill"}),a.jsx(ue,{variant:"secondary",shape:"pill",children:u?"次级胶囊":"Secondary pill"})]}),a.jsx(ue,{fullWidth:!0,children:u?"整行操作":"Full width action"})]});case"elements":return a.jsxs("div",{className:"vx-preview-stack",children:[a.jsxs("div",{className:"vx-preview-inline",children:[a.jsxs(ue,{children:[a.jsx(oi,{size:16}),u?"主要操作":"Primary action"]}),a.jsx(ue,{variant:"secondary",children:u?"次级操作":"Secondary"}),a.jsx(ue,{variant:"ghost",children:u?"幽灵按钮":"Ghost"})]}),a.jsxs("div",{className:"vx-preview-inline",children:[a.jsx(He,{variant:"accent",children:"Brand"}),a.jsx(He,{variant:"success",children:"Live"}),a.jsx(He,{variant:"warning",children:"Beta"})]}),a.jsx(rt,{title:u?"统一风格":"Unified styling",variant:"info",children:u?"基础元素在所有页面共享同一套颜色、圆角和交互节奏。":"Core elements now share the same color, radius, and interaction rhythm."}),a.jsxs("div",{className:"vx-preview-stack__group",children:[a.jsx(_a,{level:1,children:u?"H1 标题":"Heading 1"}),a.jsx(_a,{level:2,children:u?"H2 标题":"Heading 2"}),a.jsx(_a,{level:3,children:u?"H3 标题":"Heading 3"}),a.jsx(Ct,{variant:"secondary",children:u?"大段文本":"Lead text"}),a.jsx(Ct,{variant:"muted",children:u?"次要文本":"Muted text"})]})]});case"form-controls":return a.jsxs("div",{className:"vx-preview-stack",children:[a.jsx(st,{label:u?"项目名称":"Project name",value:"VXUI Workspace",readOnly:!0}),a.jsx(wt,{label:qe.releaseLabel,value:y,onChange:Te=>{Te&&j(Te)},options:[{value:"stable",label:qe.releaseOptions.stable},{value:"preview",label:qe.releaseOptions.preview},{value:"internal",label:qe.releaseOptions.internal}]}),a.jsx(wt,{label:u?"部署环境":"Environment",value:J,onChange:I,clearable:!0,searchable:4,placeholder:u?"选择环境…":"Select environment…",options:[{value:"prod",label:u?"生产":"Production"},{value:"staging",label:u?"预发布":"Staging"},{value:"preview",label:u?"预览":"Preview"},{value:"dev",label:u?"开发":"Development"},{value:"sandbox",label:u?"沙箱":"Sandbox"}]}),a.jsx(qg,{label:u?"技术栈":"Tech stack",value:te,onChange:pe,clearable:!0,options:[{value:"react",label:"React"},{value:"typescript",label:"TypeScript"},{value:"vite",label:"Vite"},{value:"css",label:"CSS"}]}),a.jsx(Ig,{label:u?"部署时间":"Deploy time",value:Ee,onChange:Ge,placeholder:u?"选择时间":"Select time"}),a.jsx(mo,{label:u?"变更摘要":"Change summary",value:u?"整合移动端与桌面端资源。":"Consolidate mobile and desktop resources.",readOnly:!0,resize:"none"}),a.jsxs("div",{style:{borderTop:"1px solid var(--vx-border)",paddingTop:16},children:[a.jsx("p",{style:{fontSize:11,fontWeight:700,textTransform:"uppercase",letterSpacing:"0.06em",color:"var(--vx-text-muted)",margin:"0 0 12px"},children:u?"堆叠验证":"Stacking verification"}),a.jsxs("div",{style:{display:"grid",gap:12},children:[a.jsx(wt,{label:u?"来源区域":"Source region",value:he,onChange:ce,placeholder:u?"选择区域…":"Select region…",options:[{value:"us-east-1",label:"US East"},{value:"us-west-2",label:"US West"},{value:"eu-west-1",label:"EU West"},{value:"ap-southeast-1",label:"Singapore"}]}),a.jsx(wt,{label:u?"目标区域":"Target region",value:oe,onChange:ke,placeholder:u?"选择区域…":"Select region…",options:[{value:"us-east-1",label:"US East"},{value:"us-west-2",label:"US West"},{value:"eu-west-1",label:"EU West"},{value:"ap-southeast-1",label:"Singapore"}]})]})]})]});case"form-inputs":return a.jsxs("div",{className:"vx-preview-stack",children:[a.jsxs("div",{className:"vx-preview-stack__group",children:[a.jsx(Oa,{checked:fe,label:u?"默认启用响应式抽屉":"Enable responsive drawer",onChange:Te=>Z(Te.target.checked)}),a.jsx(Oa,{checked:P,label:u?"显示调试边界":"Show debug boundaries",onChange:Te=>$(Te.target.checked)})]}),a.jsxs(fo,{label:u?"密度策略":"Density strategy",children:[a.jsx(ka,{checked:re==="system",label:u?"跟随系统":"Follow system",name:"density",onChange:()=>ge("system")}),a.jsx(ka,{checked:re==="comfortable",label:u?"舒适":"Comfortable",name:"density",onChange:()=>ge("comfortable")}),a.jsx(ka,{checked:re==="compact",label:u?"紧凑":"Compact",name:"density",onChange:()=>ge("compact")})]}),a.jsx(Bg,{value:re,onChange:ge,fullWidth:!0,options:[{label:a.jsxs(a.Fragment,{children:[a.jsx(zu,{size:16}),u?"跟随系统":"System"]}),value:"system"},{label:a.jsxs(a.Fragment,{children:[a.jsx(Bv,{size:16}),u?"浅色":"Light"]}),value:"comfortable"},{label:a.jsxs(a.Fragment,{children:[a.jsx(zv,{size:16}),u?"深色":"Dark"]}),value:"compact"}]}),a.jsx(ho,{label:u?"文档完成度":"Coverage",max:100,min:0,onChange:Te=>R(Number(Te.target.value)),showValue:!0,value:xe}),a.jsxs("div",{className:"vx-preview-stack__group",style:{marginTop:24},children:[a.jsxs("div",{style:{display:"flex",gap:8,alignItems:"center"},children:[a.jsx($a,{"data-state":"on",children:u?"自动保存":"Auto-save"}),a.jsx($a,{children:u?"多标签模式":"Multiple tabs"})]}),a.jsx(Ya,{defaultChecked:!0,label:u?"开启实验性功能":"Enable experimental features"}),a.jsx(jo,{min:0,max:100,defaultValue:10,label:u?"阈值":"Threshold"}),a.jsx(To,{placeholder:u?"添加标签...":"Add tag...",defaultValue:["React","Vite"]}),a.jsx(So,{multiple:!0,label:u?"上传附件":"Upload attachments"}),a.jsx("div",{style:{marginTop:8},children:a.jsx(ri,{})})]})]});case"navigation":return a.jsxs("div",{className:"vx-preview-stack",children:[a.jsxs(Cs,{defaultValue:"library",children:[a.jsxs(Ts,{children:[a.jsx(Kt,{value:"library",children:qe.libraryTitle}),a.jsx(Kt,{value:"templates",children:u?"模板":"Templates"}),a.jsx(Kt,{value:"responsive",children:u?"响应式":"Responsive"})]}),a.jsx(Qt,{value:"library",children:qe.libraryLead}),a.jsx(Qt,{value:"templates",children:(Bt=S["home-page"])==null?void 0:Bt.description}),a.jsx(Qt,{value:"responsive",children:(Ds=S.mobile)==null?void 0:Ds.description})]}),a.jsx(yu,{page:W,total:96,pageSize:8,onChange:B})]});case"data-list":return a.jsx(dt,{columns:[{key:"name",header:u?"页面":"Screen",accessor:Te=>Te.name},{key:"status",header:u?"状态":"Status",accessor:Te=>a.jsx(He,{variant:Te.v,children:Te.status})},{key:"updated",header:u?"更新时间":"Updated",accessor:Te=>Te.updated}],data:[{name:(Nn=(Ui=S["home-page"])==null?void 0:Ui.title)!=null?Nn:"Home",status:u?"已整合":"Unified",updated:"2026-05-08",v:"success"},{name:(Ms=(Br=S["error-page"])==null?void 0:Br.title)!=null?Ms:"Error",status:u?"新增":"New",updated:"2026-05-08",v:"accent"},{name:(Os=(Rs=S.mobile)==null?void 0:Rs.title)!=null?Os:"Mobile",status:u?"已重写":"Reframed",updated:"2026-05-08",v:"warning"}]});case"empty-states":return a.jsxs("div",{className:"vx-empty",children:[a.jsx("div",{className:"vx-empty__icon",children:a.jsx(Ba,{size:20})}),a.jsx("strong",{children:u?"这里暂时没有内容":"Nothing lives here yet"}),a.jsx("p",{children:u?"空状态与错误页共享同一套视觉策略。":"Empty states share the same visual language."}),a.jsx(ue,{variant:"secondary",onClick:()=>c({view:"error"}),children:qe.openPage})]});case"toasts":return a.jsxs("div",{className:"vx-preview-inline vx-preview-inline--wrap",children:[a.jsx(ue,{onClick:()=>N({tone:"info",title:u?"文档树已同步":"Docs tree synced",description:u?"所有页面已映射到统一壳层。":"Every page is mapped to the unified shell."}),children:u?"信息提示":"Info toast"}),a.jsx(ue,{variant:"secondary",onClick:()=>N({tone:"success",title:u?"路由更新完成":"Route update complete",description:u?"桌面端、平板和手机已共享同一套页面定义。":"Desktop, tablet, and phone now share one page definition set."}),children:u?"成功提示":"Success toast"})]});case"feedback":return a.jsxs("div",{className:"vx-preview-stack",children:[a.jsx(rt,{title:u?"迁移进度":"Migration progress",variant:"info",children:u?"响应式壳层、模板页面和文档内容库已经收敛到同一套运行时。":"The responsive shell, template pages, and docs library now share the same runtime."}),a.jsx(Tt,{label:u?"默认":"Default",showLabel:!0,value:xe}),a.jsx(Tt,{label:u?"成功":"Success",showLabel:!0,value:xe,variant:"success"}),a.jsx(Tt,{label:u?"警告":"Warning",showLabel:!0,value:xe,variant:"warning"}),a.jsx(Tt,{label:u?"危险":"Danger",showLabel:!0,value:xe,variant:"danger"}),a.jsx(Tt,{label:u?"炫彩":"Rainbow",showLabel:!0,value:xe,variant:"rainbow",size:"lg"}),a.jsxs("div",{className:"vx-doc-skeleton-grid",children:[a.jsx(Xa,{lines:3,variant:"text"}),a.jsx(Xa,{height:92})]}),a.jsxs("div",{className:"vx-preview-stack__group",children:[a.jsxs("div",{className:"vx-preview-inline",children:[a.jsx(Na,{size:"sm"}),a.jsx(Na,{size:"md"}),a.jsx(Na,{size:"lg"})]}),a.jsx(ko,{currentStep:2,steps:[{label:"Step 1"},{label:"Step 2"},{label:"Step 3"}]})]})]});case"overlays":return a.jsxs("div",{className:"vx-preview-inline vx-preview-inline--wrap",children:[a.jsx(Ga,{trigger:a.jsx(ue,{variant:"secondary",children:u?"打开对话框":"Open dialog"}),title:u?"删除项目":"Delete project",description:u?"此操作将移除所有成员的访问权限。":"This action removes access for the whole team.",confirmLabel:u?"删除":"Delete",cancelLabel:u?"取消":"Cancel",confirmVariant:"danger",children:a.jsx("div",{style:{padding:"4px 0",lineHeight:1.5,color:"var(--vx-text-secondary)"},children:u?"此项目将被永久删除且无法恢复。":"This project will be removed permanently and cannot be recovered."})}),a.jsx(vo,{content:a.jsx("div",{children:u?"Popover 用于补充上下文。":"Popover adds context."}),children:a.jsx(ue,{variant:"secondary",children:"Popover"})}),a.jsx(wn,{trigger:a.jsx(ue,{variant:"secondary",children:u?"更多操作":"More actions"}),items:[{label:u?"打开首页":"Open home",onClick:()=>c({view:"home"})},{label:u?"打开文档":"Open docs",onClick:()=>c({view:"docs",page:"introduction"})}]}),a.jsx(it,{trigger:a.jsx(ue,{variant:"secondary",size:"sm",children:u?"底部抽屉":"Bottom sheet"}),title:u?"通知设置":"Notifications",side:"bottom",children:a.jsxs("div",{className:"vx-stack",children:[a.jsx(Ya,{label:u?"邮件通知":"Email notifications",defaultChecked:!0}),a.jsx(Ya,{label:u?"推送通知":"Push notifications",defaultChecked:!0})]})}),a.jsx(Es,{content:u?"这是一个工具提示":"This is a tooltip",children:a.jsx(ue,{variant:"ghost",children:u?"工具提示":"Tooltip"})})]});case"nav-layout":return a.jsxs("div",{className:"vx-preview-stack",children:[a.jsx(go,{items:[{label:"Home"},{label:"Components"},{label:"Navigation"}]}),a.jsx(_o,{menus:[{label:"File",items:[{label:"New",shortcut:"⌘N"},{label:"Open...",shortcut:"⌘O"},{label:"Exit",danger:!0}]},{label:"Edit",items:[{label:"Undo",shortcut:"⌘Z"},{label:"Redo",shortcut:"⇧⌘Z"}]}]}),a.jsx(ei,{}),a.jsx(Ra,{style:{height:100,border:"1px solid var(--vx-border)",borderRadius:"var(--vx-radius-md)",padding:16},children:(u?"此区域展示了 ScrollArea 组件的用法。":"This area demonstrates the ScrollArea component. ").repeat(20)}),a.jsx(zr,{defaultOpen:["hierarchy"],items:[{key:"hierarchy",title:u?"层级保持一致":"Hierarchy stays consistent",content:u?"所有断点共享同一路由。":"Every breakpoint shares the same route tree."},{key:"density",title:u?"壳层只调密度":"Shell adjusts density",content:u?"导航抽屉、顶部工具区和内容栅格按宽度变化。":"The drawer, header tools, and content grids adapt by width."}]})]});case"data-display":return a.jsxs("div",{className:"vx-preview-stack",children:[a.jsxs("div",{className:"vx-preview-inline",children:[a.jsx(Ut,{name:"Alice Chen",size:"sm"}),a.jsx(Ut,{name:"Bo Wang",size:"md"}),a.jsx(Ut,{name:"Cora Lin",size:"lg"})]}),a.jsx(dt,{columns:[{key:"name",header:u?"角色":"Role",accessor:Te=>Te.name},{key:"scope",header:"Scope",accessor:Te=>Te.scope}],data:[{name:u?"设计系统":"Design system",scope:u?"公共组件":"Shared primitives"},{name:u?"文档库":"Documentation",scope:u?"内容导航":"Content navigation"}]}),a.jsx(No,{items:[{title:u?"已创建":"Created",time:"10:00 AM"},{title:u?"处理中":"Processing",time:"10:05 AM"},{title:u?"已完成":"Completed",time:"10:15 AM"}]}),a.jsx(Co,{items:[a.jsx("div",{style:{display:"flex",alignItems:"center",justifyContent:"center",height:100,background:"var(--vx-surface-elevated)",borderRadius:"var(--vx-radius-md)"},children:"Slide 1"},"1"),a.jsx("div",{style:{display:"flex",alignItems:"center",justifyContent:"center",height:100,background:"var(--vx-surface-elevated)",borderRadius:"var(--vx-radius-md)"},children:"Slide 2"},"2")]})]});case"mobile-list":return a.jsx("div",{className:"vx-preview-stack",style:{maxWidth:320,border:"1px solid var(--vx-color-border)",borderRadius:8,overflow:"hidden"},children:a.jsxs(Lr,{children:[a.jsxs(Oi,{title:u?"账户":"Account",children:[a.jsx(La,{label:u?"个人资料":"Profile",chevron:!0,onClick:()=>{}}),a.jsx(La,{label:u?"安全设置":"Security",chevron:!0,onClick:()=>{}})]}),a.jsxs(Oi,{title:u?"偏好":"Preferences",children:[a.jsx(La,{label:u?"通知":"Notifications",trailing:a.jsx(He,{variant:"accent",children:"3"})}),a.jsx(La,{label:u?"主题":"Theme",description:u?"跟随系统":"System",chevron:!0,onClick:()=>{}})]})]})});case"mobile":return a.jsxs("div",{className:"vx-breakpoint-grid",children:[(Pi=qe.supportCards)==null?void 0:Pi.map(Te=>a.jsxs("div",{className:"vx-breakpoint-card",children:[a.jsx(He,{variant:"accent",children:Te.accent}),a.jsx("strong",{children:Te.label}),a.jsx("p",{children:Te.description})]},Te.label)),a.jsx(rt,{title:qe.splitTitle,variant:"info",children:qe.splitBody})]});case"home-page":case"login-page":case"register-page":case"error-page":case"privacy-policy":case"terms-of-service":return et(me);case"command-palette":return a.jsxs("div",{className:"vx-preview-stack",children:[a.jsx("div",{className:"vx-preview-inline",children:a.jsxs(ue,{onClick:()=>x(!0),children:[u?"打开搜索":"Open search",a.jsx("kbd",{className:"vx-search-kbd",children:"⌘K"})]})}),a.jsx(rt,{variant:"info",title:u?"键盘优先":"Keyboard first",children:u?"按下 ⌘K 即可随时唤起命令面板。":"Press ⌘K to open the palette from anywhere."})]});case"code-block":return De(u?`import { Button } from 'vxui-re';
1203
+
1204
+ export function Example() {
1205
+ return <Button>点击我</Button>;
1206
+ }`:`import { Button } from 'vxui-re';
1207
+
1208
+ export function Example() {
1209
+ return <Button>Click me</Button>;
1210
+ }`,"tsx");case"language-switcher":return a.jsxs("div",{className:"vx-preview-stack",children:[a.jsx("div",{className:"vx-preview-inline",children:a.jsx(ju,{variant:"inline"})}),a.jsx(rt,{variant:"info",title:u?"全局语言切换":"Global language switch",children:u?"切换语言后,文档内所有 UI 文案同步更新。":"Switching locale updates all UI copy across the entire docs surface."})]});case"scroll-area":return a.jsxs("div",{className:"vx-preview-stack",children:[a.jsx("p",{style:{fontSize:13,fontWeight:600,color:"var(--vx-text-secondary)",margin:0},children:u?"场景一:Overlay 模式(默认)":"Scene 1: Overlay mode (default)"}),a.jsx(Ra,{maxHeight:160,style:{border:"1px solid var(--vx-color-border)",borderRadius:8},children:Array.from({length:15},(Te,$e)=>a.jsx("div",{style:{padding:"8px 12px",borderBottom:"1px solid var(--vx-color-border)"},children:u?`日志行 ${$e+1}`:`Log line ${$e+1}`},$e))}),De(u?`<ScrollArea maxHeight={160}>
1211
+ {/* 默认 variant="overlay" */}
1212
+ {...children}
1213
+ </ScrollArea>`:`<ScrollArea maxHeight={160}>
1214
+ {/* Default variant="overlay" */}
1215
+ {...children}
1216
+ </ScrollArea>`),a.jsx("p",{style:{fontSize:13,fontWeight:600,color:"var(--vx-text-secondary)",margin:0},children:u?"场景二:Native 模式":"Scene 2: Native mode"}),a.jsx(Ra,{variant:"native",maxHeight:160,style:{border:"1px solid var(--vx-color-border)",borderRadius:8},children:Array.from({length:15},(Te,$e)=>a.jsx("div",{style:{padding:"8px 12px",borderBottom:"1px solid var(--vx-color-border)"},children:u?`日志行 ${$e+1}`:`Log line ${$e+1}`},$e))}),De(u?`<ScrollArea variant="native" maxHeight={160}>
1217
+ {/* 浏览器原生滚动条 */}
1218
+ {...children}
1219
+ </ScrollArea>`:`<ScrollArea variant="native" maxHeight={160}>
1220
+ {/* Native browser scrollbar */}
1221
+ {...children}
1222
+ </ScrollArea>`),a.jsx("p",{style:{fontSize:13,fontWeight:600,color:"var(--vx-text-secondary)",margin:0},children:u?"场景三:水平 + 垂直滚动":"Scene 3: Horizontal + vertical scroll"}),a.jsx(Ra,{maxHeight:120,maxWidth:300,style:{border:"1px solid var(--vx-color-border)",borderRadius:8,padding:"8px 0"},children:a.jsx("div",{style:{width:500,padding:"0 12px"},children:Array.from({length:8},(Te,$e)=>a.jsx("div",{style:{padding:"6px 0",borderBottom:"1px solid var(--vx-color-border)",whiteSpace:"nowrap"},children:u?`宽内容行 ${$e+1} — 这行文字超出容器宽度因此会触发水平滚动`:`Wide content row ${$e+1} — this text exceeds container width so horizontal scroll is triggered`},$e))})}),De(`<ScrollArea maxHeight={120} maxWidth={300}>
1223
+ <div style={{ width: 500 }}>
1224
+ {/* 宽内容触发水平滚动 */}
1225
+ </div>
1226
+ </ScrollArea>`)]});case"separator":return a.jsxs("div",{className:"vx-preview-stack",children:[a.jsxs("div",{style:{display:"flex",gap:12,alignItems:"center"},children:[a.jsx("span",{children:u?"左":"Left"}),a.jsx(ei,{orientation:"vertical",style:{height:24}}),a.jsx("span",{children:u?"中":"Center"}),a.jsx(ei,{orientation:"vertical",style:{height:24}}),a.jsx("span",{children:u?"右":"Right"})]}),a.jsx(ei,{}),a.jsx("p",{children:u?"水平分隔线上方内容":"Content above the horizontal separator."})]});case"timeline":return a.jsx("div",{className:"vx-preview-stack",children:a.jsx(No,{items:[{title:u?"订单已创建":"Order created",time:"09:42",status:"success"},{title:u?"支付成功":"Payment confirmed",time:"09:43",status:"info"},{title:u?"配送中":"Shipping",time:"10:15",status:"warning"},{title:u?"已签收":"Delivered",time:"14:30",status:"default"}]})});case"tree-view":return a.jsx("div",{className:"vx-preview-stack",children:a.jsx(Xg,{nodes:[{id:"src",label:"src",children:[{id:"components",label:"components",children:[{id:"btn",label:"Button.tsx"},{id:"card",label:"Card.tsx"}]},{id:"pages",label:"pages",children:[{id:"home",label:"Home.tsx"},{id:"about",label:"About.tsx"}]}]},{id:"public",label:"public",children:[{id:"index",label:"index.html"}]}],defaultExpanded:["src","components","pages"]})});case"carousel":return a.jsx("div",{className:"vx-preview-stack",children:a.jsx("div",{style:{maxWidth:400},children:a.jsx(Co,{items:[a.jsx("div",{style:{padding:40,textAlign:"center",background:"var(--vx-surface)",borderRadius:"var(--vx-radius-md)"},children:u?"第一张":"Slide 1"},"1"),a.jsx("div",{style:{padding:40,textAlign:"center",background:"var(--vx-surface-hover)",borderRadius:"var(--vx-radius-md)"},children:u?"第二张":"Slide 2"},"2"),a.jsx("div",{style:{padding:40,textAlign:"center",background:"var(--vx-surface)",borderRadius:"var(--vx-radius-md)"},children:u?"第三张":"Slide 3"},"3")],showDots:!0,showArrows:!0})})});case"toggle":return a.jsxs("div",{className:"vx-preview-stack",children:[a.jsxs("div",{className:"vx-preview-inline",style:{marginBottom:12},children:[a.jsx($a,{defaultPressed:!1,children:a.jsx(Ct,{size:"sm",children:u?"加粗":"Bold"})}),a.jsx($a,{children:a.jsx(Ct,{size:"sm",children:u?"斜体":"Italic"})}),a.jsx($a,{children:a.jsx(Ct,{size:"sm",children:u?"下划线":"Underline"})})]}),a.jsx(Fu,{type:"single",defaultValue:"grid",items:[{value:"grid",label:u?"网格":"Grid"},{value:"list",label:u?"列表":"List"},{value:"table",label:u?"表格":"Table"}]})]});case"rating":return a.jsx("div",{className:"vx-preview-stack",children:a.jsxs("div",{className:"vx-preview-inline",style:{flexDirection:"column",gap:16},children:[a.jsx(ai,{defaultValue:3.5,allowHalf:!0}),a.jsx(ai,{defaultValue:4,size:"sm"}),a.jsx(ai,{defaultValue:5,size:"lg",readOnly:!0})]})});case"label":return a.jsxs("div",{className:"vx-preview-stack",style:{display:"grid",gap:12,maxWidth:320},children:[a.jsxs("div",{style:{display:"grid",gap:4},children:[a.jsx(ti,{required:!0,children:u?"电子邮箱":"Email"}),a.jsx(st,{placeholder:"name@example.com"})]}),a.jsxs("div",{style:{display:"grid",gap:4},children:[a.jsx(ti,{children:u?"备注(选填)":"Notes (optional)"}),a.jsx(st,{placeholder:u?"添加备注...":"Add notes..."})]})]});case"date-pickers":return a.jsxs("div",{className:"vx-preview-stack",style:{display:"grid",gap:16,maxWidth:320},children:[a.jsx(wo,{label:u?"开始日期":"Start date"}),a.jsx(wo,{label:u?"结束日期":"End date",weekStartsOnMonday:!0})]});case"avatar":return a.jsx("div",{className:"vx-preview-stack",children:a.jsxs("div",{className:"vx-preview-inline",style:{gap:16,alignItems:"center"},children:[a.jsx(Ut,{src:"https://i.pravatar.cc/80?u=1",name:"Alex Morgan",size:"xs"}),a.jsx(Ut,{src:"https://i.pravatar.cc/80?u=2",name:"Jamie Chen",size:"sm"}),a.jsx(Ut,{src:"https://i.pravatar.cc/80?u=3",name:"Taylor Kim",size:"md"}),a.jsx(Ut,{name:"Sam Wilson",size:"lg"}),a.jsx(Ut,{size:"xl"})]})});case"badge":return a.jsx("div",{className:"vx-preview-stack",children:a.jsxs("div",{className:"vx-preview-inline",children:[a.jsx(He,{variant:"accent",children:u?"新品":"New"}),a.jsx(He,{variant:"success",children:u?"在线":"Live"}),a.jsx(He,{variant:"warning",children:u?"测试版":"Beta"}),a.jsx(He,{variant:"neutral",children:u?"草稿":"Draft"})]})});case"skeleton":return a.jsx("div",{className:"vx-preview-stack",children:a.jsxs("div",{style:{display:"grid",gap:8,width:240},children:[a.jsx(Xa,{variant:"rect",width:"100%",height:100}),a.jsx(Xa,{variant:"text",width:"65%"}),a.jsx(Xa,{variant:"text",lines:2})]})});case"typography":return a.jsxs("div",{className:"vx-preview-stack",style:{display:"grid",gap:8},children:[a.jsx(_a,{level:1,children:u?"标题 1":"Heading 1"}),a.jsx(_a,{level:2,children:u?"标题 2":"Heading 2"}),a.jsx(_a,{level:3,children:u?"标题 3":"Heading 3"}),a.jsx(Ct,{children:u?"默认正文文本。":"Default body text."}),a.jsx(Ct,{variant:"secondary",children:u?"次级强调文本。":"Secondary emphasis text."}),a.jsx(Ct,{variant:"muted",children:u?"弱化辅助文本。":"Muted helper text."}),a.jsx(Ct,{weight:"bold",children:u?"加粗正文。":"Bold body text."})]});case"card":return a.jsx("div",{className:"vx-preview-stack",children:a.jsxs("div",{className:"vx-preview-inline vx-preview-inline--wrap",children:[a.jsxs($t,{variant:"default",padding:"md",children:[a.jsxs(sa,{children:[a.jsx(ra,{children:"Default"}),a.jsx(la,{children:"Standard card."})]}),a.jsx(oa,{children:"Content."})]}),a.jsxs($t,{variant:"elevated",padding:"md",hoverable:!0,children:[a.jsxs(sa,{children:[a.jsx(ra,{children:"Elevated"}),a.jsx(la,{children:"Interactive."})]}),a.jsx(oa,{children:"Hover over this card."})]}),a.jsxs($t,{variant:"outlined",padding:"md",children:[a.jsxs(sa,{children:[a.jsx(ra,{children:"Outlined"}),a.jsx(la,{children:"Bordered."})]}),a.jsx(oa,{children:"Content."})]})]})});case"form":return a.jsx("div",{className:"vx-preview-stack",children:a.jsxs(Ug,{style:{display:"grid",gap:16,maxWidth:400},children:[a.jsxs(xo,{children:[a.jsx(bo,{required:!0,children:u?"邮箱":"Email"}),a.jsx(Pg,{children:u?"我们不会分享你的邮箱。":"We will never share your email."}),a.jsx(st,{type:"email",placeholder:"name@example.com"}),a.jsx(yo,{})]}),a.jsxs(xo,{children:[a.jsx(bo,{required:!0,children:u?"密码":"Password"}),a.jsx(st,{type:"password",placeholder:"••••••••"}),a.jsx(yo,{})]}),a.jsx(ue,{type:"submit",children:u?"提交":"Submit"})]})});case"sheet":return a.jsx("div",{className:"vx-preview-stack",children:a.jsx("div",{className:"vx-preview-inline",children:a.jsx(it,{trigger:a.jsx(ue,{children:u?"打开面板":"Open panel"}),title:u?"侧滑面板":"Sheet panel",description:u?"这是从右侧滑入的面板。":"This panel slides in from the right.",side:"right",children:a.jsx("div",{style:{padding:16},children:u?"面板内容":"Panel content"})})})});case"resizable":return a.jsx("div",{className:"vx-preview-stack",children:a.jsx("div",{style:{height:200,border:"1px solid var(--vx-border)",borderRadius:"var(--vx-radius-lg)",overflow:"hidden"},children:a.jsxs(Wg,{direction:"horizontal",children:[a.jsx(Eo,{defaultSize:50,minSize:20,children:a.jsx("div",{style:{padding:16,height:"100%",display:"flex",alignItems:"center",justifyContent:"center"},children:u?"左侧面板":"Left panel"})}),a.jsx(Zg,{}),a.jsx(Eo,{defaultSize:50,minSize:20,children:a.jsx("div",{style:{padding:16,height:"100%",display:"flex",alignItems:"center",justifyContent:"center"},children:u?"右侧面板":"Right panel"})})]})})});case"accordion":return a.jsx("div",{className:"vx-preview-stack",children:a.jsx(zr,{defaultOpen:["getting-started"],items:[{key:"getting-started",title:u?"快速开始":"Getting Started",content:u?"安装包并配置 Provider。":"Install the package and set up providers."},{key:"components",title:u?"组件库":"Components",content:u?"按分类浏览全部组件。":"Browse the full component library."},{key:"templates",title:u?"页面模板":"Templates",content:u?"可直接引入项目的预置页面布局。":"Pre-built page layouts."}]})});case"tabs":return a.jsx("div",{className:"vx-preview-stack",children:a.jsxs(Cs,{defaultValue:"preview",children:[a.jsxs(Ts,{children:[a.jsx(Kt,{value:"preview",children:u?"预览":"Preview"}),a.jsx(Kt,{value:"code",children:u?"代码":"Code"}),a.jsx(Kt,{value:"props",children:u?"属性":"Props"})]}),a.jsx(Qt,{value:"preview",children:u?"实时预览组件效果。":"Preview the component in real time."}),a.jsx(Qt,{value:"code",children:u?"查看源代码并复制到项目中使用。":"View the source code."}),a.jsx(Qt,{value:"props",children:u?"浏览完整的 API 参考。":"Browse the full API reference."})]})});case"breadcrumb":return a.jsx("div",{className:"vx-preview-stack",children:a.jsx(go,{items:[{label:u?"首页":"Home",href:"#"},{label:u?"组件":"Components",href:"#"},{label:u?"导航":"Navigation"}]})});case"pagination":return a.jsx("div",{className:"vx-preview-stack",children:a.jsx(yu,{page:ut,total:48,pageSize:10,onChange:At})});case"stepper":return a.jsx("div",{className:"vx-preview-stack",children:a.jsx(ko,{currentStep:1,steps:[{label:u?"规划":"Plan",description:u?"确定需求和目标":"Define requirements & goals"},{label:u?"开发":"Build",description:u?"编码与测试":"Code & test"},{label:u?"发布":"Launch",description:u?"部署上线":"Deploy to production"}]})});case"progress":return a.jsxs("div",{className:"vx-preview-stack",children:[a.jsx(Tt,{label:u?"默认":"Default",showLabel:!0,value:xe}),a.jsx(Tt,{label:u?"成功":"Success",showLabel:!0,value:xe,variant:"success"}),a.jsx(Tt,{label:u?"警告":"Warning",showLabel:!0,value:xe,variant:"warning"}),a.jsx(Tt,{label:u?"危险":"Danger",showLabel:!0,value:xe,variant:"danger"})]});case"spinner":return a.jsxs("div",{className:"vx-preview-inline vx-preview-inline--wrap",children:[a.jsx(Na,{size:"sm"}),a.jsx(Na,{size:"md"}),a.jsx(Na,{size:"lg"})]});case"alert":return a.jsxs("div",{className:"vx-preview-stack",children:[a.jsx(rt,{title:u?"提示信息":"Information",variant:"info",children:u?"这是一条提示信息。":"This is an informational message."}),a.jsx(rt,{title:u?"操作成功":"Success",variant:"success",children:u?"操作已成功完成。":"Operation completed successfully."}),a.jsx(rt,{title:u?"错误":"Error",variant:"danger",children:u?"出错了,请重试。":"Something went wrong."})]});case"table":{const Te=u?["设计师","工程师","产品经理","测试"]:["Designer","Engineer","Product manager","QA"],$e=u?["设计系统","平台","增长","基础架构"]:["Design system","Platform","Growth","Infrastructure"],fi=u?["在岗","休假","出差"]:["Active","On leave","On site"],qt=Array.from({length:200},(de,_t)=>({id:_t+1,name:`User-${String(_t+1).padStart(3,"0")}`,role:Te[_t%Te.length],team:$e[_t%$e.length],status:fi[_t%fi.length],score:_t*37%100})),Ze=[{key:"id",header:u?"编号":"ID",accessor:de=>de.id,sortable:!0,width:80,align:"right"},{key:"name",header:u?"姓名":"Name",accessor:de=>de.name,sortable:!0},{key:"role",header:u?"角色":"Role",accessor:de=>de.role,filterable:!0},{key:"team",header:u?"团队":"Team",accessor:de=>de.team,filterable:!0},{key:"status",header:u?"状态":"Status",accessor:de=>a.jsx(He,{variant:de.status==="Active"||de.status==="在岗"?"success":"warning",children:de.status}),sortable:!0,filterable:!0},{key:"score",header:u?"得分":"Score",accessor:de=>de.score,align:"right",sortable:!0}];return a.jsxs("div",{className:"vx-preview-stack",children:[a.jsx("p",{style:{fontSize:12,fontWeight:600,textTransform:"uppercase",letterSpacing:"0.05em",color:"var(--vx-text-muted)",margin:0},children:u?"基础用法(striped + bordered)":"Basic (striped + bordered)"}),a.jsx(dt,{columns:[{key:"name",header:u?"名称":"Name",accessor:de=>de.name},{key:"role",header:u?"角色":"Role",accessor:de=>de.role},{key:"status",header:u?"状态":"Status",accessor:de=>a.jsx(He,{variant:de.status==="Active"?"success":"warning",children:de.status})}],data:[{name:"Alice Chen",role:u?"设计师":"Designer",status:"Active"},{name:"Bo Wang",role:u?"工程师":"Engineer",status:"Active"}],striped:!0,bordered:!0}),a.jsx("p",{style:{fontSize:12,fontWeight:600,textTransform:"uppercase",letterSpacing:"0.05em",color:"var(--vx-text-muted)",margin:"12px 0 0"},children:u?"无边框 + headless(borderless + headless)":"Borderless + headless"}),a.jsx(dt,{columns:[{key:"name",header:u?"名称":"Name",accessor:de=>de.name},{key:"email",header:"Email",accessor:de=>de.email}],data:[{name:"Alice Chen",email:"alice@example.com"},{name:"Bo Wang",email:"bo@example.com"},{name:"Cora Lin",email:"cora@example.com"}],borderless:!0,headless:!0,hoverable:!0}),a.jsx("p",{style:{fontSize:12,fontWeight:600,textTransform:"uppercase",letterSpacing:"0.05em",color:"var(--vx-text-muted)",margin:"12px 0 0"},children:u?'变体:深色主题(variant="dark")':'Variant: Dark (variant="dark")'}),a.jsx(dt,{variant:"dark",striped:!0,hoverable:!0,columns:[{key:"name",header:u?"名称":"Name",accessor:de=>de.name},{key:"role",header:u?"角色":"Role",accessor:de=>de.role},{key:"level",header:u?"级别":"Level",accessor:de=>de.level}],data:[{name:"Alice",role:u?"高级工程师":"Senior Engineer",level:"L6"},{name:"Bo",role:u?"设计主管":"Design Lead",level:"L5"},{name:"Cora",role:u?"产品经理":"Product Manager",level:"L6"}]}),a.jsx("p",{style:{fontSize:12,fontWeight:600,textTransform:"uppercase",letterSpacing:"0.05em",color:"var(--vx-text-muted)",margin:"12px 0 0"},children:u?'变体:外框(variant="outline")':'Variant: Outline (variant="outline")'}),a.jsx(dt,{variant:"outline",hoverable:!0,columns:[{key:"name",header:u?"名称":"Name",accessor:de=>de.name},{key:"role",header:u?"角色":"Role",accessor:de=>de.role}],data:[{name:"Alice",role:u?"设计师":"Designer"},{name:"Bo",role:u?"工程师":"Engineer"}]}),a.jsx("p",{style:{fontSize:12,fontWeight:600,textTransform:"uppercase",letterSpacing:"0.05em",color:"var(--vx-text-muted)",margin:"12px 0 0"},children:u?"行选择(selectable)":"Row selection (selectable)"}),a.jsx(dt,{selectable:!0,striped:!0,hoverable:!0,columns:[{key:"name",header:u?"名称":"Name",accessor:de=>de.name},{key:"role",header:u?"角色":"Role",accessor:de=>de.role},{key:"team",header:u?"团队":"Team",accessor:de=>de.team}],data:[{name:"Alice Chen",role:u?"设计师":"Designer",team:u?"设计系统":"Design System"},{name:"Bo Wang",role:u?"工程师":"Engineer",team:u?"平台":"Platform"},{name:"Cora Lin",role:u?"产品经理":"PM",team:u?"增长":"Growth"}],onSelectionChange:de=>console.log(u?"已选:":"Selected:",de)}),a.jsx("p",{style:{fontSize:12,fontWeight:600,textTransform:"uppercase",letterSpacing:"0.05em",color:"var(--vx-text-muted)",margin:"12px 0 0"},children:u?"可点击行 + 固定布局(onRowClick + fixed)":"Clickable rows + fixed layout"}),a.jsx(dt,{fixed:!0,hoverable:!0,onRowClick:de=>alert(`Clicked: ${de.name}`),columns:[{key:"name",header:u?"名称":"Name",accessor:de=>de.name,width:"30%"},{key:"email",header:"Email",accessor:de=>de.email,width:"50%"},{key:"role",header:u?"角色":"Role",accessor:de=>de.role,width:"20%"}],data:[{name:"Alice Chen",email:"alice.chen@longdomainname.example.com",role:u?"设计师":"Designer"},{name:"Bo Wang",email:"bo.wang@longdomainname.example.com",role:u?"工程师":"Engineer"}]}),a.jsx("p",{style:{fontSize:12,fontWeight:600,textTransform:"uppercase",letterSpacing:"0.05em",color:"var(--vx-text-muted)",margin:"12px 0 0"},children:u?"内置自动搜索(防抖 200ms + 列筛选 + 搜索栏吸顶)":"Built-in auto search (debounce 200ms + column filters + sticky filter)"}),a.jsx(dt,{columns:Ze,data:qt,stickyHeader:!0,stickyFilter:!0,striped:!0,hoverable:!0,filterable:!0,style:{maxHeight:360,overflow:"auto"},caption:u?`成员名单 · ${qt.length} 人(内置自动搜索,无需外部控制)`:`Roster · ${qt.length} members (built-in auto search, no external control needed)`}),a.jsx("p",{style:{fontSize:12,fontWeight:600,textTransform:"uppercase",letterSpacing:"0.05em",color:"var(--vx-text-muted)",margin:"12px 0 0"},children:u?"嵌入模式(flush,嵌入 Card 间距为 0)":"Flush mode (embedded in Card, zero spacing)"}),a.jsxs($t,{padding:"none",children:[a.jsxs("div",{style:{padding:"12px 16px",borderBottom:"1px solid var(--vx-border)"},children:[a.jsx("strong",{style:{fontSize:14},children:u?"项目成员":"Team members"}),a.jsx("p",{style:{fontSize:12,color:"var(--vx-text-muted)",margin:"2px 0 0"},children:u?"表格嵌入 Card,无外边框,内边距为 0":"Table embedded in Card, no outer border, zero padding"})]}),a.jsx(dt,{flush:!0,hoverable:!0,columns:[{key:"name",header:u?"名称":"Name",accessor:de=>de.name},{key:"role",header:u?"角色":"Role",accessor:de=>de.role}],data:[{name:"Alice Chen",role:u?"设计师":"Designer"},{name:"Bo Wang",role:u?"工程师":"Engineer"},{name:"Cora Lin",role:u?"产品经理":"PM"}]})]}),a.jsx("p",{style:{fontSize:12,fontWeight:600,textTransform:"uppercase",letterSpacing:"0.05em",color:"var(--vx-text-muted)",margin:"12px 0 0"},children:u?"单边移除边框(removeBorders)":"Selective border removal (removeBorders)"}),a.jsxs("div",{style:{display:"flex",gap:16,flexWrap:"wrap"},children:[a.jsxs("div",{style:{flex:1,minWidth:200},children:[a.jsx("p",{style:{fontSize:11,color:"var(--vx-text-muted)",margin:"0 0 4px"},children:u?"移除底部边框":"Remove bottom border"}),a.jsx(dt,{removeBorders:["bottom"],columns:[{key:"name",header:u?"名称":"Name",accessor:de=>de.name},{key:"role",header:u?"角色":"Role",accessor:de=>de.role}],data:[{name:"Alice",role:u?"设计师":"Designer"},{name:"Bo",role:u?"工程师":"Engineer"}]})]}),a.jsxs("div",{style:{flex:1,minWidth:200},children:[a.jsx("p",{style:{fontSize:11,color:"var(--vx-text-muted)",margin:"0 0 4px"},children:u?"移除左右边框":"Remove left & right borders"}),a.jsx(dt,{removeBorders:["left","right"],columns:[{key:"name",header:u?"名称":"Name",accessor:de=>de.name},{key:"role",header:u?"角色":"Role",accessor:de=>de.role}],data:[{name:"Alice",role:u?"设计师":"Designer"},{name:"Bo",role:u?"工程师":"Engineer"}]})]}),a.jsxs("div",{style:{flex:1,minWidth:200},children:[a.jsx("p",{style:{fontSize:11,color:"var(--vx-text-muted)",margin:"0 0 4px"},children:u?"移除四边边框":"Remove all borders"}),a.jsx(dt,{removeBorders:"all",columns:[{key:"name",header:u?"名称":"Name",accessor:de=>de.name},{key:"role",header:u?"角色":"Role",accessor:de=>de.role}],data:[{name:"Alice",role:u?"设计师":"Designer"},{name:"Bo",role:u?"工程师":"Engineer"}]})]})]})]})}case"file-upload":return a.jsx("div",{className:"vx-preview-stack",style:{maxWidth:480},children:a.jsx(So,{multiple:!0,label:u?"上传附件":"Upload attachments",hint:u?"支持多文件上传,单文件最大 10MB":"Multiple files allowed, up to 10MB each",accept:"image/*,.pdf"})});case"color-picker":return a.jsx("div",{className:"vx-preview-stack",style:{maxWidth:480},children:a.jsx($g,{label:u?"主题色":"Theme color"})});case"dialog":{const Te=()=>{const[Ze,de]=m.useState(!1),[_t,mi]=m.useState();return a.jsxs(a.Fragment,{children:[a.jsx(ue,{onClick:()=>de(!0),children:u?"创建用户":"Create User"}),a.jsx(Ga,{title:u?"新建用户":"New User",open:Ze,onOpenChange:de,onConfirm:()=>{console.log({role:_t}),de(!1)},onCancel:()=>de(!1),children:a.jsxs("div",{style:{display:"flex",flexDirection:"column",gap:12},children:[a.jsx(st,{label:u?"姓名":"Name",placeholder:u?"全名":"Full name"}),a.jsx(st,{label:"Email",placeholder:"user@example.com"}),a.jsx(wt,{label:u?"角色":"Role",placeholder:u?"选择角色":"Choose a role",options:[{value:"admin",label:u?"管理员":"Admin"},{value:"editor",label:u?"编辑者":"Editor"},{value:"viewer",label:u?"观察者":"Viewer"}],value:_t,onChange:mi})]})})]})},$e=()=>{const[Ze,de]=m.useState(!1);return a.jsxs(a.Fragment,{children:[a.jsx(ue,{onClick:()=>de(!0),children:u?"打开对话框":"Open dialog"}),a.jsx(Ga,{title:u?"确认操作":"Confirm action",description:u?"请确认此操作。":"Please confirm this operation.",open:Ze,onOpenChange:de,confirmLabel:u?"确认":"Confirm",cancelLabel:u?"取消":"Cancel",children:u?"此操作将立即生效。":"This action will be applied immediately."})]})},fi=()=>{const[Ze,de]=m.useState(!1);return a.jsxs(a.Fragment,{children:[a.jsx(ue,{onClick:()=>de(!0),children:u?"侧边面板":"Side panel"}),a.jsx(Ga,{placement:"right",title:u?"侧边面板":"Side panel",open:Ze,onOpenChange:de,children:u?"固定在右侧边缘的对话框。":"A dialog anchored to the right edge."})]})},qt=()=>{const[Ze,de]=m.useState(!1),[_t,mi]=m.useState(),[Ho,Uo]=m.useState(),[Hr,hi]=m.useState(3),[Ls,Cn]=m.useState(["设计","前端"]);return a.jsxs(a.Fragment,{children:[a.jsx(ue,{onClick:()=>de(!0),children:u?"滚动测试":"Scroll test"}),a.jsx(Ga,{title:u?"滚动测试":"Scroll test",description:u?"当内容超出弹窗最大高度时,主体区域会出现滚动条。":"When content exceeds the dialog max height, the body becomes scrollable.",open:Ze,onOpenChange:de,onConfirm:()=>de(!1),onCancel:()=>de(!1),confirmLabel:u?"提交":"Submit",cancelLabel:u?"取消":"Cancel",children:a.jsxs("div",{style:{display:"flex",flexDirection:"column",gap:14},children:[a.jsx(st,{label:u?"项目名称":"Project name",placeholder:u?"输入项目名称":"Enter project name"}),a.jsx(st,{label:"Email",placeholder:"owner@example.com"}),a.jsx(jo,{label:u?"预算(元)":"Budget (CNY)",min:0,defaultValue:5e3}),a.jsx(wt,{label:u?"负责人":"Owner",placeholder:u?"选择负责人":"Choose an owner",options:[{value:"alice",label:"Alice"},{value:"bob",label:"Bob"},{value:"carol",label:"Carol"}],value:_t,onChange:mi}),a.jsx(wt,{label:u?"优先级":"Priority",placeholder:u?"选择优先级":"Choose priority",options:[{value:"low",label:u?"低":"Low"},{value:"medium",label:u?"中":"Medium"},{value:"high",label:u?"高":"High"}],value:Ho,onChange:Uo}),a.jsx(mo,{label:u?"项目描述":"Description",placeholder:u?"简要描述项目目标…":"Briefly describe the project goal…",rows:3}),a.jsx(To,{label:u?"标签":"Tags",placeholder:u?"输入后回车":"Press Enter to add",value:Ls,onChange:Cn}),a.jsxs("div",{style:{display:"flex",flexDirection:"column",gap:6},children:[a.jsx(ti,{children:u?"评分":"Rating"}),a.jsx(ai,{value:Hr,onChange:hi})]}),a.jsx(ho,{label:u?"完成度":"Progress",min:0,max:100,defaultValue:40,showValue:!0}),a.jsxs("div",{style:{display:"flex",flexDirection:"column",gap:6},children:[a.jsx(ti,{children:u?"类型":"Type"}),a.jsxs(fo,{children:[a.jsx(ka,{value:"feature",label:u?"功能":"Feature"}),a.jsx(ka,{value:"bug",label:u?"缺陷":"Bug"}),a.jsx(ka,{value:"task",label:u?"任务":"Task"})]})]}),a.jsx(Ya,{label:u?"启用通知":"Enable notifications",defaultChecked:!0}),a.jsx(Ya,{label:u?"公开可见":"Publicly visible"}),a.jsx(Oa,{label:u?"我已阅读并同意服务条款":"I have read and agree to the terms of service"}),a.jsx(Oa,{label:u?"订阅产品更新邮件":"Subscribe to product update emails",defaultChecked:!0})]})})]})};return a.jsx("div",{className:"vx-preview-stack",children:a.jsxs("div",{className:"vx-preview-inline vx-preview-inline--wrap",style:{gap:12},children:[a.jsx($e,{}),a.jsx(Te,{}),a.jsx(fi,{}),a.jsx(qt,{})]})})}case"popover":return a.jsx("div",{className:"vx-preview-stack",children:a.jsx("div",{className:"vx-preview-inline vx-preview-inline--wrap",children:a.jsx(vo,{content:a.jsx("div",{style:{padding:8},children:u?"弹出内容,提供额外信息。":"Popover content."}),children:a.jsx(ue,{variant:"secondary",children:u?"点击打开":"Click me"})})})});case"tooltip":return a.jsx("div",{className:"vx-preview-stack",children:a.jsxs("div",{className:"vx-preview-inline vx-preview-inline--wrap",children:[a.jsx(Es,{content:u?"这是一个工具提示":"This is a tooltip",children:a.jsx(ue,{variant:"secondary",children:u?"悬停查看":"Hover me"})}),a.jsx(Es,{content:u?"顶部提示":"Top tooltip",placement:"top",children:a.jsx(ue,{variant:"ghost",children:u?"顶部":"Top"})})]})});case"hover-card":return a.jsx("div",{className:"vx-preview-stack",children:a.jsx("div",{className:"vx-preview-inline vx-preview-inline--wrap",children:a.jsx(Fg,{content:a.jsxs("div",{style:{padding:12,maxWidth:220},children:[a.jsx("strong",{children:u?"用户资料":"User profile"}),a.jsx("p",{style:{margin:"4px 0 0",color:"var(--vx-text-secondary)"},children:u?"无需导航即可预览更多上下文。":"Preview additional context."})]}),children:a.jsx(ue,{variant:"secondary",children:u?"悬停查看":"Hover me"})})})});case"dropdown-menu":return a.jsx("div",{className:"vx-preview-stack",children:a.jsx(_S,{isZh:u})});case"context-menu":return a.jsx("div",{className:"vx-preview-stack",children:a.jsx("div",{className:"vx-preview-inline",children:a.jsx(Vg,{items:[{label:u?"复制":"Copy",onClick:()=>{}},{label:u?"粘贴":"Paste",onClick:()=>{}},{label:u?"删除":"Delete",danger:!0,onClick:()=>{}}],children:a.jsx("div",{style:{padding:"2rem 3rem",border:"1px dashed var(--vx-color-border)",borderRadius:"var(--vx-radius-md)",textAlign:"center",color:"var(--vx-text-secondary)"},children:u?"在此区域右键点击":"Right-click this area"})})})});case"navigation-menu":return a.jsx("div",{className:"vx-preview-stack",children:a.jsx(Gg,{items:[{label:u?"文档":"Docs",items:[{label:u?"介绍":"Introduction",description:u?"开始使用 VXUI":"Get started",onClick:()=>{}},{label:u?"快速开始":"Quick Start",description:u?"安装和配置":"Install and configure",onClick:()=>{}}]},{label:u?"组件":"Components",items:[{label:"Button",description:u?"主要操作元素":"Primary action",onClick:()=>{}},{label:"Dialog",description:u?"模态叠层":"Modal overlay",onClick:()=>{}}]},{label:u?"模板":"Templates",onClick:()=>{}}]})});case"menubar":return a.jsx("div",{className:"vx-preview-stack",children:a.jsx(_o,{menus:[{label:"File",items:[{label:"New",shortcut:"⌘N",onClick:()=>{}},{label:"Open...",shortcut:"⌘O",onClick:()=>{}},{label:"Save",shortcut:"⌘S",onClick:()=>{}},{label:"Exit",danger:!0,onClick:()=>{}}]},{label:"Edit",items:[{label:"Undo",shortcut:"⌘Z",onClick:()=>{}},{label:"Redo",shortcut:"⇧⌘Z",onClick:()=>{}}]}]})});case"typography-base":return a.jsxs("div",{className:"vx-preview-stack",children:[a.jsxs("div",{className:"vx-article",children:[a.jsxs("header",{className:"vx-article__header",children:[a.jsx("span",{className:"vx-kicker",children:u?"CSS 类名":"CSS Classes"}),a.jsx("h1",{className:"vx-article__title",children:u?"使用 CSS 类名":"Using CSS Classes"}),a.jsx("p",{className:"vx-article__description",children:u?"直接使用 className 即可应用排版样式,无需额外组件。":"Apply typography styles directly via className — no extra components needed."})]}),a.jsx("div",{className:"vx-article__body",children:a.jsxs("section",{className:"vx-section",children:[a.jsxs("h2",{className:"vx-section__heading",children:[u?"章节标题":"Section Heading",a.jsx("a",{href:"#section",className:"vx-section__anchor",children:"#"})]}),a.jsx("p",{className:"vx-lead",children:u?"这是导语文本(vx-lead),用于段落开头的引导性内容。":"This is lead text (vx-lead), used for introductory content at the start of a section."}),a.jsxs("ul",{className:"vx-list",children:[a.jsx("li",{children:u?"使用 vx-article 作为文章容器":"Use vx-article as the article container"}),a.jsx("li",{children:u?"使用 vx-section 划分章节":"Use vx-section to divide chapters"}),a.jsx("li",{children:u?"使用 vx-kicker 作为分类标签":"Use vx-kicker as a category label"})]})]})})]}),a.jsxs("div",{className:"vx-section",children:[a.jsxs("h2",{className:"vx-section__heading",children:[u?"React 组件":"React Components",a.jsx("a",{href:"#components",className:"vx-section__anchor",children:"#"})]}),a.jsx("div",{className:"vx-example",children:a.jsxs("div",{className:"vx-stats",style:{marginBottom:16},children:[a.jsxs("div",{className:"vx-stat",children:[a.jsxs("div",{className:"vx-stat__copy",children:[a.jsx("span",{className:"vx-stat__label",children:u?"组件":"Components"}),a.jsx("strong",{className:"vx-stat__value",children:"10"}),a.jsx("small",{className:"vx-stat__hint",children:u?"可直接导入使用":"Ready to import"})]}),a.jsx("div",{className:"vx-stat__icon",children:a.jsx(oi,{size:20})})]}),a.jsxs("div",{className:"vx-stat",children:[a.jsxs("div",{className:"vx-stat__copy",children:[a.jsx("span",{className:"vx-stat__label",children:u?"CSS 类":"CSS Classes"}),a.jsx("strong",{className:"vx-stat__value",children:"30+"}),a.jsx("small",{className:"vx-stat__hint",children:u?"开箱即用":"Out of the box"})]}),a.jsx("div",{className:"vx-stat__icon",children:a.jsx(li,{size:20})})]})]})})]}),a.jsxs("div",{className:"vx-section",children:[a.jsxs("h2",{className:"vx-section__heading",children:[u?"空状态":"Empty State",a.jsx("a",{href:"#empty",className:"vx-section__anchor",children:"#"})]}),a.jsxs("div",{className:"vx-empty",children:[a.jsx("div",{className:"vx-empty__icon",children:a.jsx(Ba,{size:20})}),a.jsx("strong",{children:u?"暂无内容":"No content yet"}),a.jsx("p",{children:u?"使用 vx-empty 和 vx-empty__icon 展示空状态。":"Use vx-empty and vx-empty__icon to display empty states."})]})]})]});case"vxui-provider":return a.jsxs("div",{className:"vx-preview-stack",children:[a.jsx(rt,{variant:"info",title:u?"组合 Provider":"Combined Provider",children:u?"VXUIProvider 将 ThemeProvider、ViewportProvider 和 ToastProvider 合并为单一根组件。":"VXUIProvider merges ThemeProvider, ViewportProvider, and ToastProvider into one root component."}),a.jsx("div",{className:"vx-example",children:De(u?`import { VXUIProvider, themePresets } from 'vxui-re';
1227
+
1228
+ export function App() {
1229
+ return (
1230
+ <VXUIProvider themes={themePresets} defaultTheme="light">
1231
+ <Shell>
1232
+ <ShellMain>
1233
+ <p>应用内容</p>
1234
+ </ShellMain>
1235
+ </Shell>
1236
+ </VXUIProvider>
1237
+ );
1238
+ }`:`import { VXUIProvider, themePresets } from 'vxui-re';
1239
+
1240
+ export function App() {
1241
+ return (
1242
+ <VXUIProvider themes={themePresets} defaultTheme="light">
1243
+ <Shell>
1244
+ <ShellMain>
1245
+ <p>App content</p>
1246
+ </ShellMain>
1247
+ </Shell>
1248
+ </VXUIProvider>
1249
+ );
1250
+ }`)})]});case"viewport":return a.jsxs("div",{className:"vx-preview-stack",children:[a.jsx(rt,{variant:"info",title:u?"响应式设备检测":"Responsive Device Detection",children:u?"ViewportProvider 根据物理屏幕宽度自动检测设备类型,并通过 useViewport hook 暴露状态。":"ViewportProvider automatically detects device type based on physical screen width and exposes state via the useViewport hook."}),De(u?`import { ViewportProvider, useViewport } from 'vxui-re';
1251
+
1252
+ function DeviceInfo() {
1253
+ const { viewport, isPhone, isTablet, isDesktop } = useViewport();
1254
+ return <p>设备类型:{viewport}</p>;
1255
+ }
1256
+
1257
+ export function App() {
1258
+ return (
1259
+ <ViewportProvider>
1260
+ <DeviceInfo />
1261
+ </ViewportProvider>
1262
+ );
1263
+ }`:`import { ViewportProvider, useViewport } from 'vxui-re';
1264
+
1265
+ function DeviceInfo() {
1266
+ const { viewport, isPhone, isTablet, isDesktop } = useViewport();
1267
+ return <p>Device: {viewport}</p>;
1268
+ }
1269
+
1270
+ export function App() {
1271
+ return (
1272
+ <ViewportProvider>
1273
+ <DeviceInfo />
1274
+ </ViewportProvider>
1275
+ );
1276
+ }`)]});case"constants":return a.jsxs("div",{className:"vx-preview-stack",children:[a.jsx("div",{className:"vx-stats",style:{marginBottom:16},children:[{label:"BREAKPOINTS.sm",value:ao.sm},{label:"BREAKPOINTS.md",value:ao.md},{label:"BREAKPOINTS.lg",value:ao.lg},{label:"PHONE_MAX_WIDTH",value:Nu},{label:"PHONE_ASPECT_RATIO_THRESHOLD",value:Sv},{label:"TABLET_ASPECT_RATIO_THRESHOLD",value:_v}].map(Te=>a.jsx("div",{className:"vx-stat",children:a.jsxs("div",{className:"vx-stat__copy",children:[a.jsx("span",{className:"vx-stat__label",children:Te.label}),a.jsx("strong",{className:"vx-stat__value",children:Te.value})]})},Te.label))}),De(`import { BREAKPOINTS, PHONE_MAX_WIDTH } from 'vxui-re';
1277
+
1278
+ console.log(BREAKPOINTS.lg); // 1000
1279
+ console.log(PHONE_MAX_WIDTH); // 1000`)]});case"calendar":return a.jsxs("div",{className:"vx-preview-stack",style:{display:"grid",gap:16},children:[a.jsx(ri,{}),a.jsx(ri,{weekStartsOnMonday:!0})]});case"bottom-nav":return a.jsx("div",{className:"vx-preview-stack",style:{maxWidth:400,border:"1px solid var(--vx-color-border)",borderRadius:8,overflow:"hidden"},children:a.jsx("div",{style:{padding:16},children:a.jsx(Mu,{items:[{key:"home",label:u?"首页":"Home",icon:a.jsx(Mi,{size:20}),active:!0},{key:"search",label:u?"搜索":"Search",icon:a.jsx(jn,{size:20})},{key:"alerts",label:u?"通知":"Alerts",icon:a.jsx(Er,{size:20}),badge:3},{key:"profile",label:u?"我的":"Profile",icon:a.jsx(Ns,{size:20})}]})})});case"introduction":case"image":return a.jsx("div",{className:"vx-preview-stack",children:a.jsxs("div",{style:{display:"grid",gap:16,maxWidth:400},children:[a.jsx(lu,{src:"https://picsum.photos/400/260?random=1",alt:"Landscape",width:360,height:220,radius:"lg",preview:!0,caption:u?"点击预览大图":"Click to preview"}),a.jsxs("div",{style:{display:"flex",gap:12},children:[a.jsx(lu,{src:"https://picsum.photos/120/120?random=2",width:100,height:100,radius:"full"}),a.jsx(lu,{src:"/broken.jpg",width:120,height:100,fallback:a.jsx("span",{style:{padding:8},children:u?"图片加载失败":"Image failed"})})]})]})});case"pin-input":return a.jsxs("div",{className:"vx-preview-stack",children:[a.jsx(ou,{label:u?"验证码":"Verification code",length:6,onComplete:Te=>console.log("Code:",Te)}),a.jsx(ou,{length:4,type:"alphanumeric",size:"sm",placeholder:"-"}),a.jsx(ou,{length:6,mask:!0,error:u?"验证码错误":"Invalid code"})]});case"descriptions":return a.jsx("div",{className:"vx-preview-stack",children:a.jsx(Kw,{title:u?"用户信息":"User Profile",items:[{label:u?"姓名":"Name",children:"Alice Johnson"},{label:u?"邮箱":"Email",children:"alice@example.com"},{label:u?"角色":"Role",children:a.jsx(He,{variant:"accent",children:"Admin"})},{label:u?"状态":"Status",children:a.jsx(He,{variant:"success",children:u?"活跃":"Active"})},{label:u?"注册时间":"Joined",children:"2024-01-15"},{label:u?"最后登录":"Last login",children:u?"2 小时前":"2 hours ago"}],bordered:!0,column:2})});case"notification":return a.jsx(Zw,{placement:"top-right",children:a.jsx(SS,{isZh:u})});case"result":return a.jsxs("div",{className:"vx-preview-stack",children:[a.jsx(fv,{status:"success",title:u?"支付成功":"Payment Successful",description:u?"订单 #12345 已确认。":"Your order #12345 has been confirmed.",actions:a.jsxs(a.Fragment,{children:[a.jsx(ue,{children:u?"查看订单":"View Order"}),a.jsx(ue,{variant:"secondary",children:u?"返回首页":"Back to Home"})]})}),a.jsx(fv,{status:"not-found",title:u?"页面未找到":"Page Not Found",description:u?"你访问的页面不存在。":"The page you are looking for does not exist.",actions:a.jsx(ue,{variant:"secondary",children:u?"返回首页":"Go Home"})})]});default:return null}}const Dt=s.view==="docs"&&(ve=s.page)!=null?ve:"introduction",pi=s.view==="docs"&&!s.page;return a.jsxs(a.Fragment,{children:[a.jsx(qw,{ariaLabel:T.searchAriaLabel,emptyText:T.searchEmpty,entries:zs,labelClose:T.searchClose,labelGo:T.searchGo,labelNavigate:T.searchNavigate,onClose:()=>x(!1),onSelect:me=>c({view:"docs",page:me}),open:v,placeholder:T.searchPlaceholder}),a.jsx(Tj,{brand:"vxUI",brandCaption:u?"统一响应式系统":"Unified responsive system",brandIcon:a.jsx("img",{src:"/colorful_flat_icon.svg",alt:""}),topbarRef:Ua,density:b?"compact":"comfortable",breadcrumb:a.jsxs("div",{className:"vx-breadcrumb","data-state":Ca?"pinned":"overview",children:[Ca?a.jsx("span",{className:"vx-breadcrumb__kicker",children:ui.section}):null,a.jsx("strong",{children:Za})]}),headerActions:a.jsxs("div",{className:"vx-docs-toolbar",children:[a.jsxs(ue,{className:"vx-docs-toolbar__item--back",variant:"outline",size:"sm",onClick:()=>c({view:"home"}),children:[a.jsx(Mi,{size:14}),T.publicPages.backHome]}),a.jsxs(ue,{className:"vx-docs-toolbar__item--search",variant:"outline",size:"sm",onClick:()=>x(!0),children:[a.jsx(jn,{size:14}),T.searchTrigger,a.jsx("kbd",{className:"vx-search-kbd",children:"⌘K"})]}),a.jsxs(ue,{className:"vx-docs-toolbar__item--density",variant:b?"soft":"outline",size:"sm",onClick:()=>g(!b),children:[a.jsx(ii,{size:14}),Li]}),a.jsx(wt,{className:"vx-docs-toolbar__item--theme",options:Pa,value:O,onChange:me=>me&&V(me),placeholder:u?"选择主题":"Select theme",searchable:!1}),a.jsx(wt,{className:"vx-docs-toolbar__item--account",options:da,placeholder:(Ne=k==null?void 0:k.name)!=null?Ne:T.publicPages.guestLabel,searchable:!1,onChange:Ta}),a.jsx("span",{className:"vx-docs-toolbar__item--language",children:a.jsx(ju,{variant:"inline"})}),a.jsx(wn,{className:"vx-docs-toolbar__more",trigger:a.jsxs(ue,{variant:"outline",size:"sm",children:[a.jsx(n0,{size:14}),u?"更多":"More"]}),groups:[],align:"end"},"docs-toolbar-more")]}),menuButtonLabel:u?"切换导航":"Toggle navigation",mobileNavOpen:d,navSections:Ea,onMobileNavToggle:r,onSidebarToggle:f,onSidebarClick:me=>{F&&!d&&(me.stopPropagation(),me.preventDefault(),r())},sidebarCloseLabel:T.sidebarCloseLabel,sidebarCollapseLabel:T.sidebarCollapse,sidebarExpandLabel:T.sidebarExpand,sidebarCollapsed:p,sidebarFooter:a.jsxs("div",{className:"vx-sidebar-session",children:[a.jsxs("div",{className:"vx-sidebar-session__card",children:[a.jsx("span",{children:k?qe.sessionMember:qe.sessionGuest}),a.jsx("strong",{children:(Ue=k==null?void 0:k.name)!=null?Ue:T.publicPages.guestLabel})]}),a.jsxs("div",{className:"vx-sidebar-session__meta",children:[a.jsx("span",{className:"vx-version-pill",children:T.versionLabel}),a.jsx("span",{className:"vx-version-pill vx-version-pill--token",children:T.modeLabel(z)})]})]}),children:a.jsx("div",{className:"vx-docs-workspace",children:pi?a.jsx(gS,{isZh:u,docsHomeCopy:_n,copy:qe,docsHomeGroups:St,metricCards:Bi,releaseTrack:y,setReleaseTrack:j,navigate:c,pages:S}):a.jsx(xS,{isZh:u,activePage:Dt,activeDocument:ui,pages:S,copy:qe,renderSample:ua,renderCodeBlock:Wt.renderCodeBlock,renderTemplateLauncher:Wt.renderTemplateLauncher,navigate:c,docHeaderRef:Wa})})})]})}function NS(){const{t:s}=Mo(),{push:c}=Pu(),[r,d]=m.useState(()=>typeof window=="undefined"?{view:"home"}:du(window.location.pathname)),[p,f]=m.useState(vS),[v,x]=m.useState(!1),[b,g]=m.useState(!1),[y,j]=m.useState(!1),[k,A]=m.useState(!1),[L,D]=m.useState("stable");m.useEffect(()=>{if(typeof window=="undefined")return;const N=du(window.location.pathname);if(!(N.view==="error"&&N.path&&N.path!=="/error")){const z=bv(N);window.location.pathname!==z&&window.history.replaceState(N,"",z)}},[]),m.useEffect(()=>{if(typeof window=="undefined")return;const N=()=>{d(du(window.location.pathname)),x(!1)};return window.addEventListener("popstate",N),()=>window.removeEventListener("popstate",N)},[]),m.useEffect(()=>{if(typeof window=="undefined")return;const N=()=>{window.innerWidth<1024?g(!1):x(!1)};return N(),window.addEventListener("resize",N),()=>window.removeEventListener("resize",N)},[]),m.useEffect(()=>{x(!1),setTimeout(()=>{const N=document.querySelector(".vx-shell__content");N?N.scrollTop=0:window.scrollTo(0,0)},50)},[r.view,r.page]),m.useEffect(()=>{const N=z=>{(z.metaKey||z.ctrlKey)&&z.key.toLowerCase()==="k"&&(z.preventDefault(),j(V=>!V))};return document.addEventListener("keydown",N),()=>document.removeEventListener("keydown",N)},[]);function E(N,z){if(d(N),typeof window=="undefined"||N.view==="error"&&N.path&&N.path!=="/error")return;const V=bv(N);if(window.location.pathname===V)return;const O=z!=null&&z.replace?"replaceState":"pushState";window.history[O](N,"",V)}function T(N){if(f(N),typeof window!="undefined"){if(N){window.localStorage.setItem(_u,JSON.stringify(N));return}window.localStorage.removeItem(_u)}}function C(N){const z={name:N.email.split("@")[0]||"member",mode:"member"};T(z),c({tone:"success",title:s.publicPages.sessionLoginTitle,description:s.publicPages.sessionLoginBody}),E({view:"docs",page:"introduction"})}function _(N){T({name:N.name,mode:"member"}),c({tone:"success",title:s.publicPages.sessionRegisterTitle,description:s.publicPages.sessionRegisterBody}),E({view:"docs",page:"introduction"})}function u(){T({name:s.publicPages.guestLabel,mode:"guest"}),c({tone:"info",title:s.publicPages.sessionGuestTitle,description:s.publicPages.sessionGuestBody}),E({view:"docs",page:"introduction"})}function S(){T(null),c({tone:"info",title:s.publicPages.sessionLogoutTitle,description:s.publicPages.sessionLogoutBody}),E({view:"home"})}return a.jsx(kS,{route:r,onNavigate:E,onMobileNavToggle:()=>x(N=>!N),mobileNavOpen:v,sidebarCollapsed:b,onSidebarToggle:()=>g(N=>!N),searchOpen:y,onSearchOpenChange:j,compactDensity:k,onCompactDensityChange:A,releaseTrack:L,onReleaseTrackChange:D,viewerSession:p,onLogin:C,onRegister:_,onGuest:u,onLogout:S})}function CS(){return typeof window!="undefined"&&window.location.pathname.startsWith("/m")?a.jsx(xv,{}):a.jsx(ky,{desktop:a.jsx(NS,{}),mobile:a.jsx(xv,{})})}Sy.createRoot(document.getElementById("root")).render(a.jsx(bn.StrictMode,{children:a.jsx(p1,{children:a.jsx(j1,{themes:v1,storageKey:"vxui-re-docs-theme",children:a.jsx(_y,{children:a.jsx(yj,{children:a.jsx(CS,{})})})})})}));